이제 지도 학습(supervised learning)의 마지막 주제인
인공신경망
입니다.
.
인공신경망은 머신러닝에서 매우 중요한 부분이므로 2부로 나누어 진행하려합니다.
.
1부 — 인공신경망이 왜 중요한가?
2부 — 그래서 어떻게 쓰면되지?
.
이렇게 나누어서 오늘은 인공신경망의 중요성에 대해 이야기하겠습니다.
.
1부 — 인공신경망이 왜 중요한가?
.
인간은 계속해서 인간 혹은 닮은 것들을 만들고 싶어했습니다.
.
호기심
일자리 대체(아이로봇)
감정적 이유(강철의 연금술사)
.
호기심, 일자리 대체, 감정적인 이유 등등등 너무나 다양한 이유로 인간을 만들고 싶어했습니다.
.
많은 시도들이 있었고 고안해낸 방법이 인간의 뇌를 프로그래밍 해보자는 것입니다.
.
이게 가능하다면 진짜 스스로 생각하는 인간과 같은 것을 만들수 있다고 생각한것이죠.
.
그리고 그들은 뇌에 대해 알아보기 시작합니다.
.
뉴런(neuron — Wikipedia)
이것은 우리몸에 존재하는 신경세포인 뉴런입니다.
.
뉴런은 전기적인 신호를 전달하는 특이한 세포인데 뇌는 뉴런의 집합체라고 할 수 있습니다.
.
줄줄이 연결 되어있습니다.
.
뉴런들은 이와 같이 연결 되어있는데 수상 돌기(input)에서 신호를 받아들이고 축색 돌기(output)에서 신호를 전송합니다.
.
그 사이는 시냅스로 연결되어있는데 신호가 전달되기 위해서는 일정 기준(임계값 : threshold) 이상의 전기 신호가 존재해야 합니다.
.
이 신호들의 전달을 통해서 정보를 전송하고 저장한다는 것입니다.
.
이런 정보를 토대로 시스템 모델링을 해보면
.
뉴런의 시스템 모델링 결과
이렇게 표현할 수 있습니다.
.
그리고 뇌는 이것들이 이러한 뉴런들이 1천억개 존재하고 100조개의 연결이 존재한다고 합니다.
.
이때 잠시 인간의 위대함을 느끼고 컴퓨터 성능에 겸손을 표하며 아래와 같이 연결해봅시다.
.
뉴런들의 연결
.
그러면 1천억개의 뉴런을 매우 매우 매우 간소화한 인공신경망 구조를 완성한 것입니다.
.
이 모델의 학습은 각 노드(원)를 연결하는 가중치를 알아내는 것입니다.
.
마치 각각의 뉴런을 연결하는 시냅스의 적절한 임계값을 찾는 것이지요.
.
이런 신박한 아이디어를 많은 사람들이 호기심을 갖고 연구하기 시작합니다.
그리고 한계를 발견하지요.
.
.
엄청난 계산량
인공신경망 — 왼쪽 은닉층 1개, 오른쪽 은닉층 3개
간단한 분류와 같은 것은 왼쪽 처럼 1층의 뉴런만으로 가능하지만 문제가 복잡할수록 불안정해지고 (xor도 처리 못하는…)
.
오른쪽 사진 처럼 여러 층으로 뉴런을 구성해야만 문제를 해결할 수 있었습니다.
.
그리고 이렇게 모델을 구성하면 엄청나게 많은 연산을 해야했고… 그 당시 컴퓨터는 절대 불가능했습니다.
.
.
진짜 인간은 이런 방식으로 학습하는가
.
인간의 뇌가 진짜 이와 같이 학습하느냐는 것입니다.
인간의 뇌는 어떻게 학습할까?
지금 생각나는 차이점을 써보면
.
- 인간은 기억을 잊을 수 있다.
- 인간은 사건이 발생한 매 순간순간 배우지 않는다
- 인간은 협소한 지식 혹은 편견을 배울 수 있다.
- 인간은 감정을 갖는다.(번외)
등등등 아주 직관적인 차이점들이 존재합니다.
.
.
이렇게 한계점들이 확실했지만 머신러닝 학자들은 돌파구를 찾아갑니다.
.
첫번째 엄청난 계산량은… 세월이 해결해줬습니다.
.
과거에 더하기 빼기도 간신히 하던 컴퓨터가 아닌 1초에 조~경 단위로 계산을 실행하는 성능이기에 계산량이 많고 적고를 고려하지 않아도 되어졌습니다.
.
그리고 사실 오른쪽이 바로 그 유명한 딥러닝입니다.
.
실제로 알파고는 13개의 층으로 수백 ~ 수천만개의 연결 고리를 갖고 있었다고 하니 얼마나 성능이 향상되었는지 짐작이 가시겠지요?
.
그리고 정보의 홍수라고 할 만큼 수많은 데이터가 존재하기에 학습량 부족을 고민하지 않아도 되었지요.
.
두번째 인간의 학습과 닮았느냐 입니다.
.
이것은 현재까지도 매우 논쟁이 되고 있는 부분이지만 역시 학자들은 많은 문제점을 발견하고 해결하고 있습니다.
.
너무 인간답지 못하게 학습한 나머지 모든 데이터를 외워버리는 Overfitting 문제는 Dropout이나 Batch Normalization같은 것으로 해결하고 있습니다.
.
또한 학습하고 보니 우물 안 개구리가 되어서 빠져나가지 못하는 local minima 문제는 backpropagattion이나 데이터와 층을 미리 학습하는 pretraining 방식으로 해결하고 있습니다.
.
이렇게 한단계 한단계 뚫고 나가면서
.
인간의 눈을 뛰어넘는 이미지 분석
사람인지 프로그램인지 구분할 수 없는 답변 시스템
자동으로 주식 시장을 파악하고 직접 투자하는 머신 펀드매니저
등등 놀라운 시스템들을 만들어내고 있습니다.
.
인공신경망이 지나온 길을 알고나니 이제 얼마나 중요한 것인지 느낌이 오시지 않나요?!!
.
그러면 다음 시간에는 ‘그래서 어떻게 쓰면 되지?’라는 주제로 돌아오겠습니다.
.
cf) 오탈자 혹은 잘못된 개념에 대한 피드백은 항상 환영합니다.
Deep Learning 기술 및 IT 동향에 관한 좋은 블로그
http://t-robotics.blogspot.kr/2015/05/deep-learning.html