데이터분석/Machine Learning

일반인들을 위한 머신러닝 (6) - 신경망 알고리즘

늘근이 2015. 8. 31. 22:11

그렇다면, 여러가지 수학식이 있고 충분히 이를 통해 학습된 결과식을 받아볼수 있는데 대체 이 신경망 알고리즘은 무엇인가?

 기계학습 + 신경망 이라면 굉장히 있어보인다. 따라서 적어본다.

위와같은 분포를 따라 식을 세우고 싶으면, 상당히 복잡할수 있다. 현재는 x1, x2 두 변수에 대해서만 그래프로 나타내고 있는데, 이를 식으로 나타내보면 다음과 같다.

$$수식$$

혹시 이 두개의 변수를 벗어나 세개..네개..다섯개.. 점점 많아진다면 이제는 삼차원 그래프로도 나타내기도 어렵고 실제로 식으로도 나타내기 힘들다. 대체 나타낼 방도도 없고 파악해봤자 별로 눈에 딱들어오지도 않아서 그다지 무쓸모일 가능성이 크다. 게다가 데이터가 굉장히 커지면 이를 계산하는데도 상당히 많은 컴퓨팅파워가 소모될수 있다.


신경망 알고리즘은 사실 80년대에 잠깐 빛을 봤다가 사라진 기술인데 다시한번 대유행을 타게 되는데, 컴퓨팅 파워가 굉장히 발전을 많이 했기 때문에, 이를 받쳐줄 환경이 생긴것이다.


Dendrite, Input Wires <- 값이 들어가고

Axon, Output Wires <- 값이 나가고


따라서 뉴런은 일종의 함수처럼 작동하는것이다. 들어가고 나가고. 값을 넣어주면 값이 튀어나온다. 그렇다면, 컴퓨터로도 계산 가능하지 않을까?

위의 그림은 여러 변수를 받아서 안에서 열심히 계산해서 최종적으로 결과를 만들어주는 것을 볼수 있다.



마찬가지로 여러가지 레이어대로 계산을 복잡다단하게 할수 있다. 최종적으로 결과를 받는 곳은 layer3이며, layer2의 경우는 밖에서 보이지 않기 때문에 hidden layer라고 부른다. x, y같은 변수로 표현할수도 없다. 인풋레이어와 아웃풋레이어가 아닌놈은 모두 hidden layer라고 부른다.

결국에는 다음과 같은 식들이 hidden layer 안에서 신나게 돌아가고 있다.

굉장히 복잡한 상태이며, 이를 실질적으로 파악하는것도 힘들기 때문에 블랙박스 속성을  가진다고 본다.