"인공지능" 이라는 단어가 주변에 심심치 않게 보인다.. "인공지능 XXX" 같은 단어로 광고도 많이 나오고, 뉴스에서도 인공지능 관련 기사를 드물지 않게 다룬다. 인공지능이 우리에게 어떤 미래를 가져다 줄지 각자 생각이 다르겠지만, 이제 인공지능이 우리 삶 깊숙히 들어와 있다는 사실은 누구도 쉽게 부인할 수 없을 것 같다.  

 

 이렇게 "인공지능"이라는 단어가 자주 보이게 된 데는 제작년 딥마인드 챌린지가 큰 역할을 한 것 같다. 나는 그 때 "알파고는 절대 이세돌을 이길 수 없을 것" 이라고 말하고 다녔다. 결국 알파고가 학습하는 기보는 사람이 만든 기보고, 그 기보를 통해 얻을 수 있는 정보는 결국 이세돌같은 최고수의 직관을 넘어설 수 없을 것이라고 생각했기 때문이다.

(결과는 아시다시피..)

그런데 결과는 아시다시피 정반대로 나왔다. 꽤나 놀랐었다. 예전에 봤던 신경망은 "다" 하고 "하"를 구별 못하는 알고리즘이었는데, 내가 별 관심 없는 동안 똑똑하신 분들이 그녀석을 딥러닝이라는 괴물로 키워 내셨다.

그런데 알파고와 동일한 DNA를 가진 괴물들이 또 있었다. 괴물들 중 유명한 괴물에게는 이름이 부여되기도 하는데, AlexNet, GoogleNet, LeNet 라는 이름을 달고 있다..

 

(각기 다른 이름을 가지고 있지만 모두 인공뉴런 이라는 공통 DNA를 가진다)

일종의 Named 몹이라고 보면 좋겠다. 여러 괴물들이 각자의 능력을 뽐내지만 이 괴물들은 모두 아래와 같이 neuron이라는 공통 DNA를 가진다. 괴물들이 모두 아래와 같은 neuron조직의 연결로 만들어져 있다는 이야기다.

 

 

 

왼쪽 사진은 사람이 가진 생체 뉴론이다. 외부로부터 신호를 받고 그 신호의 총량이 역치를 넘어서면 다른 뉴런과 연결된 신경다발을 통해 또다시 신호를 전달한다. 이때 전달되는 신호의 강도는 다른 신경과 연결된 신경다발의 연결강도를 통해 알 수 있다. 이런 생체뉴론을 컴퓨터상에서 시뮬레이션 해 망으로 엮어 만든 것이 괴물의 정체라고도 할 수 있겠다.  

여기서 한개의 뉴런을 컴퓨터 상에서 시뮬레이션 하기 위해 외부로부터 받는 input 신호 x, 연결의 강도를 표현하기 위한 w, 뉴런의 역치를 표현하기 위한 bias b, 그리고 마지막으로 뉴런의 반응을 표현하기 위한 activation function f(z)등이 사용된다. 그리고 이것들을 조합해서 한개의 뉴런이 내는 activation signal은 아래와 같이 결정된다. 아무리 크고 대단한 괴물들도 모두 이 단순한 뉴런의 연결로 구성되어 있다.

 

 

그럼 이 단순한 뉴런들을 가지고 어떻게 그 괴물들을 만들 수 있었을까? 

사람의 뇌에는 특정한 일에 특화된 기계장치가 없다. 단순히 서로 연결 될 수 있는 뉴런이 무진장 많이 들어있다. 뇌는 뉴런을 서로서로 연결해서 특정 기능이 가능한 구조를 만들어 낸다. 뉴런간의 연결구조를 보고 어떤 기능을 할지 알아 낼 방법은 없지만, 어찌됐든 연결된 망은 물건을 인식하고, 숫자를 분별하고, 책을 읽고, 번역을 하고 특정 기능을 한다.

우리가 컴퓨터 상에서 시뮬레이션 하고 있는 신경망 또한 이와 같이 동작한다. 뇌 속의 망과 같이, 우리는 왜 어떤 연결 구조가 특정한 기능을 하는지 모른다. 다만 뇌가 그랬던 것 처럼 뉴런간 연결 구조를 만들어 사람이하듯 숫자를 분별하고, 책을 읽고, 번역을 하도록 구조를 만들어 기능을 부여할 수 있다. 여기서 뉴런간의 연결구조를 만드는 과정을 학습이라고 한다.

'이론 > 신경망' 카테고리의 다른 글

He 초기화 구현 in tensorflow  (0) 2018.09.19
tensorboard 간단 요약  (0) 2018.09.13
전미분, 편미분, Gradient에 대해  (2) 2018.02.28
공부할 때 참고한 자료들  (0) 2018.02.27
신경망 글을 시작하면서..  (0) 2018.02.26
Posted by 굿쟌
,