1. 이미지 특징의 추상화가 가능한 AI -> 2. 멀티 모달한 추상화 가능한 AI

이미지를보고 특징을 추출해서 분별한다는 것은 인간의 시각에 가깝지만 인간은청각이나 촉각과 같은 감각기도 가지고있다. 예를들면 소리에는색이나형태가 없듯이 본래 시각과 청각은 데이터의 종류가 완전히 다른것이다. 뇌가 재미있는것은 이러한 데이터의 종류에 의존하지 않고 같은 처리 기구에서 처리가 이뤄지고 있다는 점이다. 딥러닝에서도 동일하게 다양한데이터에 대하여 같은 방법을 적용할 수 있을 것이다. (혹은 그렇게 개량될 필요가있다.)

그경우에 큰것은 먼저 시간을 다루는것, 즉 이미지로 말하면 동영상이다. 동영상으로도 한장 한장의 플립북같은이미지에낱개 처리로 할수있지만 그것은 본질적인 방식이 아니다. 시간을 두고 대국적인 문맥을 이해할 필요가 있고, 특히 시간의 취급은 의외로 어렵다. 그리고 시각뿐만 아니라 음성이나 촉가등 이미지 이외의 정보를 받아들이는 것으로 멀티 모달한 추상화가 가능하게 될것이다.

예를 들면 만지는 감각이라는것은 압력센서의 시계열 변화이다. 인간이 고양이의 움직임, 울음소리, 닿는 느낌등 다양한 정보를 조합시켜서 고양이라고 인식하는것을 컴퓨터가 처리할 수 있도록 해야 한다.


3. 행동과 결과가의 추상화가 가능한 AI

다음에 필요한 것은 컴퓨터 스스로 행위와 그결과를 합쳐서 추상화 하는것이다. 인간의 뇌에서 보면 자기 자신의 신체가 움직이고 그결과 무엇인가 눈에 들어오는 것에 변화가 일어나지만 뇌의 일부에서 들어오는 데이터라는의미에서는 동일하다. 그런데 인간은 생물이므로 자신이 명령을 내렸기 때문에 신체가 움지깅고, 그것에 의해서 눈으로 보이는것이 변화 되었다라는 데이터가 들어오는것인지, 그렇지 않으면 신체는 움직이지 않는데 눈으로 보이는 것이 바뀐것인지 구별할 필요가 있다. 즉 문을 열었기 때문에 문이 열린것인지, 제멋대로 문이 열린것인지는 인간의 생존에 있어서 대단히 중요한 차이다. 어딘가에 적이 숨어있을지 모르기 때문이다.

인간은 자신을 둘러싼 환경에서 다양한 정보를 읽어내고 있지만, 단지 가만히 앉아서 관찰을 계속하는것이 아니다. 아기때 물건을 움켜쥐거나 장래를 약속하거나 여러가지 일을 하고이다. 그안에서 물건을 움직인다. 물건을 누른다라는 개념을 획득해간다.

이렇게해서 자신의 행동과 결과를 세트로 추상화시키는 것의 메리트는 먼저 의자를 움직이고, 그위에서 올라가고, 높은곳에 있는 바나나를 가져가자라는것과 행동 계획이 세워지는것이다.

1과 2에서는 인공지능이 외부세계에 있는것을 관찰하고 있을뿐이었다. 3에서는 자신도 그안에 억지로 들어가고 외부세계와 상호작용을하면서 관계성을 배우게 된다. 이단계에서 네비게이션이나 외부세계의 시뮬레이션혹은 보다 일화 한것으로 사고라는 프로세스가 필요하게 될것이다.


4.행동을 통한 특징을 획드하는 AI

계속해서 그러한 행동을 할 수 있게 되면행동한결과에 대해서도 추상화가 진행된다. 사실 외부세계와의 상호갖ㄱ요에 의한 동작개념 획득은 새로운 특징을 꺼내는데 있어서 중요하다. 

과거부터 필자가 사용하는 예가 있는데, 소수인가 아닌가 라는 특징을 어떻게 획득하면 좋을까라는 문제가 있다. 2는 소수, 3도 소수, 4는 소수가 아님, 5는 소수이다. 예를 들어 퍼즐게임으로 주인공이 가지는 아이템의 수가 소수라면 적을 쓰러뜨릴수 있거, 소수가 아니면 쓰러뜨릴수 없다는 상황이 있을때 아이템의 수가 소수일것인가 아닌가라는 특징을 만들수 있으면 이문제는 풀기 쉬워진다.

수학문제하면서 쉬운지 어려운지, 장기판을 보고 형세가 좋은지 나쁜지는 자신이 동작해본 결과에 반해서 자체 자신의 성질을 취하게 된다. 이러한 형용사적인 개념은 몇번을 해본뒤에야 획득가능한 추상적인 개념이다. 깨지기쉬운 컵이라고 하면 누르면 깨진다, 떨어뜨리면 같은 결과가 나올것이란것을 추상가능하다.

컴퓨터는 3. 의 학습을 진행할때 그러한 추상적인 개념도 배우게 된다. 한 묶음의 동작이 사물의 새로운 특징을 끌어내는데, 인간으로 말하면 '생각을 한후, 앗 하고 깨닫는다' 또는 하다보면 요령을 안다라는것과 같은 일이 발생한다.

일단 동작을 통한 특징을 얻을수 잇따면 다음부터는 본순간 깨지기 쉬운컵이기에 주의해서 취급하고, 부드러운 소파이기에 앉으면 어느정도 신체가 가라앉을것을 예측한다.


5. 언어이해. 자동번역이 가능한 AI
지금까지 살펴본 내용에서 우리들이 일상적으로 사용하는 개념은 거의 나왔다. 물론 이러한 인공지능이 존재하는 환경에서 가능하다. 인간정도의 신체를 가진 인공지능이라면 인간이만들어 내는 개념에 어느정도 가까운 것을 획득할 수 있을것이다. 그결과 컴퓨터는 스스로 언어를 획득하는 준비가 정돈된다. 먼저 개념을 획득할 수 있으면 뒤에 말을 결부시키는 것은 간단하기 때문이다. 고양이, 야옹하고 운다, 부드럽다 개념은 이미 각각되어 있기때문에 여기에 고양이 야옹하고운다. 부드럽다 결부시키면 그말과 그것이 의미하는 개념을 세트로 이해한다. 여기에서는 개념을 말과 결부시킬수 있는것이 중요하기때문에 그 말이 단어가 몇개인지는 문제되지않는다. 즉 어떤 개념에 영어 결부시키는것도, 일본어, 한국어 하는것도 노동력에서는 변함이 없다. 컴퓨터로 번역하는것이 생활에 충분히 활용되려면 이단계가 지나야한다. 기계번역이라는것은 친근한만큼이나 간단한 기술로 생각될지도 모르지만 상당히고도의 기술이다.


6. 지식획득이 가능한 AI
컴퓨터가 인간의 말을 이해할 수 있게 된다는 것은 컴퓨터안에 어떠한 시뮬레이터가 준비됭 인간의 문장을 읽으면 거기에 어떠한 정경을 재현할 수 있다는 것을 의미한다. 그렇게되면 컴퓨터도 책을 읽을수 있게된다, 다양한 소설을 읽은후 망원경으로 들여다보는것은 대체로 남자들이 많다는 것을 이해할지도 모른다. 또 위키피디아를 비롯한 방대한 웹정보도 읽을수 있게된다. 그정도에이르면 컴퓨터는 빠른기세로 지식을 습득할것이다. 


예전에는 인공지능에대한 벽이 느껴졌고 특징표현을 어떻게획득할까라는것이 최대관문이었고, 그산을 넘을수가 없었다. 그런데 지금 빅데이터와 기계학습사이에 작은길(딥러닝)인데이고을 빠져나가면 정말 비옥한 세계가 펼쳐질것이다. 그러나 인공지능이 긴정체의 시간을 넘어서 비로소 움직인것이다.

'Artificial Intelligence > Deep Learning' 카테고리의 다른 글

차근차근 확장되는 인공지능의 영향  (0) 2016.01.24
딥러닝과 산업효과  (0) 2016.01.24
딥러닝 다계층  (0) 2016.01.22
딥러닝  (0) 2016.01.22
뉴럴 네트워크  (0) 2016.01.21
Posted by MIDDLE
,

출력과 입력을 될 수 있는한 가깝게 하기 위해서는 어떻게 하면 좋을까? 이에대한 답은 정보량을 사용하면 된다. 예를들어 어떤 화소가 흑일때 옆의 화소도 반드시 흑이라면 그 2개의 화소는 합쳐서 취급해버리면된다. 즉 2개의 화소를 따로따로 숫자로써 은닉층에 건네주는것이 아니고 그 2개의 숫자가 합쳐져서 흑인지 백인지를 은닉층에 건네주면 되는 것이다. 간토우 지방의 날씨는 비슷하기 때문에 하나로 정리해서 취급하라는것과 같다.


여기에서 어디를 합치면 결과에 영향을 주지 않을것인지, 반대로 어디를 취급하면 크게 다른 결과가 나올것인지, 컴퓨터는 압축포인트를 오차역전파를 통해 스스로 학습하게 된다. 즉 복원에러가 최소가 되는 적절한 특징표현을 발견하는것이다.


수학이나 통계에 익숙한 오토인코더를 할때에는 앙케이트 분석 등으로 익숙한 주성분 분석과 같다고 보면된다.

주성분 분석이란 많은 변수를 가장 큰분산을 나타내는 주성분을 축으로 압축하는 방법으로 마케팅 분야에서 자주 사용된다. 실제로 오토인코더에 선형 가중치를 이용하고 최소 자승오차를 복원에러의 함수로 하면 주성분 분석과 일치하는 결과를 얻을 수 있다.


오토인코더의 경우에는 다양한 형태로 노이즈를 주고 그것을 통해 아주 신뢰도 높은 주성분을 꺼낼 수 있다. 이것이 딥, 즉 다계층으로 하는것을 가능하게 하고 그결과 주성분 분석에서는 꺼낼수 없는 높은 차원인 특징을 꺼낼수 있다.


딥러닝에서는 위와같은 작업을 한단한단 포개 간다. 첫 번째 단의 은닉층을 두번째 단의 입력으로 컴퓨터가 컴퓨터에 학습시키는것이다. (end-to-end learning 이라고 부른다.)


계층 포개어 탐구하다. 이미지 올리기

'Artificial Intelligence > Deep Learning' 카테고리의 다른 글

딥러닝과 산업효과  (0) 2016.01.24
딥러닝에서의 기술발전  (0) 2016.01.22
딥러닝  (0) 2016.01.22
뉴럴 네트워크  (0) 2016.01.21
기계 학습  (0) 2016.01.21
Posted by MIDDLE
,

2012년 세계적인 인식 컴피티션 대회에서 처음 출전한 토론토 대학에서 압도적인 점수로 우승하게 되었다.

이것은 오랜 세월 이미지 인식 연구를 진행시켜온 다른 연구자들을 혼란스럽게하였다.

그승리의 원인은 대학교수 제프리 힌톤이 중심이 되어서 개발한 새로운 기계학습 방법 딥러닝(심층 학습)이었다.

딥러닝의 연구자체는 2006년부터 시작되었지만, 그때까지 이미지 인식의 연구자들이 각자가 쌓아온 노하우와 전혀 다른 방식으로 접근하였고, 갑작스럽게 정상에 오른것이라서 충격이었다.

딥러닝이란 데이터를 바탕으로 컴퓨터가 스스로 특징을 만들어 낸다. 인간이 특징을 설계하는것이 아니고 컴퓨터가 스스로 높은 차원인 특징을 획득하고, 그것을 바탕으로 이미지를 분류할 수 있게 된다. 딥러닝으로 인해 지금까지 인간이 관여해야만 했던 영역에 인공지능이 깊이 파고들 수 있게된 것이다.


딥러닝을 인공지능 연구에있어서 50년간의 혁신이라고 칭하고 싶다. 좀더 정확하게는 앞에서 살펴본것과 같이 인공지능의 주요한 성과가 대부분 인공지능의 여명기, 즉 1956년 부터 최초의 10년 내지는 20년사이에 태어났다고 본다. 그 후 몇가지 큰 발명은 있었지만 발전 방향에 대해 마한다면 마이너 체인지 였다.

그러나 딥러닝에 대표되는 특징표현 학습은 여명기의 혁신적인 발명, 발견에 필적할 만한 대발명이다. 컴퓨터가 스스로 특징표현을 만들어 내는것은 그자체만으로 큰비약인것이다. 


사실대부분의 딥러닝이 딥뉴럴 네트워크를 의미하지만 그렇지 않은 경우도 있다. (예 딥가우시안프로세스

인간의 뇌는 겹친 구조를 하고있어서 뉴럴네트워크 연구 초기부터 깊은층 의 뉴럴네트워크를 만드는것을 당연한 시도로 생각했지만, 아무리 노력해도 잘되지 않았다.


층이 늘어날 수록 자유도는 올라가고, 뉴럴네트워크로 표현할 수 있는 함수의 종류는 층을 거듭하면 포갠만큼 늘어난다 여겼지만, 정작 해보면 그렇게 되지 않고. 정밀도가 오르지 않는것이다. 왜냐하면 깊은층에는 오차반대전파 (가중치 수정)가 아래쪽까지 도달하지 않기 때문이다.


그런데 딥러닝은 그 다층의 뉴럴네트워크를 실현했다. 어떻게 실현한것일까?

딥러닝이 종래 기계학습과 다른점이 크게 2가지가 있다. 하나는 한층씩 계층마다 학습해 가는점, 또하나는 오토 인코더라는 정보 압축기를 사용했다는 점이다.

오토 인코더에서는 조금 바뀐 처리를 하는데, 뉴럴 네트워크를 만들기 위해서는 정답을 주어서 학습시키는 학습페이즈가 필요하다.

예를들면 손으로쓴 3이라는 이미지를 보여주면 정답데이터로 3을 준다. 그런데 오토인코더에서는 출력과 입력을 같이한다. 다음의 그림에서 볼 수 있듯이 손글씨3의 이미지를 입력하고 같은 손글씨 3의 이미지로 서로 답하기를 하는것이다.

손글씨3의 이미지를 입력하고 이것이 3입니다 라고 가르치는 것이 아니고, 손글씨 3의 이미지를 입력하고 정답은 같은 손글씨 3의 이미지라고 가르치는 것이다. 

제프 호킨스의 그의 저서 생각하는 뇌 생각하는 컴퓨터(진짜 재미 보장)에서 이방식을 예상하고 있었다.

오토인코더 사진 올리기

'Artificial Intelligence > Deep Learning' 카테고리의 다른 글

딥러닝에서의 기술발전  (0) 2016.01.22
딥러닝 다계층  (0) 2016.01.22
뉴럴 네트워크  (0) 2016.01.21
기계 학습  (0) 2016.01.21
인공지능 발전 역사  (0) 2016.01.21
Posted by MIDDLE
,