기계학습 / 딥러닝이란 무엇인가

37
기기 기기 / 기기기기기 기기기기 스스스스스스스스스 iO 스스스스 2016.0329 기기기 @ysoya

Upload: yongha-kim

Post on 06-Jan-2017

21.622 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: 기계학습 / 딥러닝이란 무엇인가

기계 학습 / 딥러닝이란 무엇인가

스마일게이트모바일 iO 스튜디오2016.0329 김용하 @ysoya

Page 2: 기계학습 / 딥러닝이란 무엇인가

인공지능 ?일반인의 인식 :

자연어 처리가가능한 인공 성격

… 에다가 인간 외형을 씌운 것

A.I が止まらない (Ken Akamatsu)

Page 3: 기계학습 / 딥러닝이란 무엇인가

실제로는 …입력값으로 부터 결과 값을 내는 함수를 만들어 내는 것

하드코딩 인공지능 (?)

곱셈 인공지능 (?)

Page 4: 기계학습 / 딥러닝이란 무엇인가

이런 함수는 어떻게 만들 수 있을까 ?

input = 비트맵 이미지를 입력 받아 무엇인지 출력하는 함수

Page 5: 기계학습 / 딥러닝이란 무엇인가

예를 들면 이렇게 해볼 수 있다

윤곽선 검출Edge Detection 윤곽선 템플릿들

teapot

apple

bottle

윤곽선 템플릿을 겹쳐보았을 때 얼마나 잘겹치는지를 비교하여 제일 잘 겹친 것을 선택 !30 년 전이었으면 이 것으로 논문도 낼 수 있었음

Page 6: 기계학습 / 딥러닝이란 무엇인가

대학에서도 아직 가르치는 내용

컴퓨터 비전 교재입니다 앞 페이지에서 말한 내용을 포함한각종 기하학적 전 - 후처리 동원

Page 7: 기계학습 / 딥러닝이란 무엇인가

성능 올리기가 쉽지 않다

반대로 돌아간 teapot 은 ?

무늬가 있는 teapot 은 ?

특이하게 생긴 teapot 은 ?

배경과 섞여 있는 특이한 teapot 은 ?

사람은 ?

고양이는 ?

https://www.wikiwand.com/en/Outline_of_object_recognition

선배들이 매우 다양한 방법을 사용해봤지만 , 은탄환은 없었다

Page 8: 기계학습 / 딥러닝이란 무엇인가

다른 분야도 제각기 다양한 알고리즘 시도

자연어 처리- 형태소 분석- 구문 트리- 기계 번역- 키워드 추출

음성 인식- 음성 검출 , 퓨리에 변환- 각종 음향학적 필터- 음소 추출- 은닉 마르코프 모델 (HMM)

Page 9: 기계학습 / 딥러닝이란 무엇인가

사람처럼 할 수 없을까 ?• 제각각 다른 로직을 작성하는 것이 아니라 ,• 배우면서 점점 잘하게 되는 만능 알고리즘 ?

–엔지니어가 일일이 튜닝하지 않아도–수 많은 데이터들을 통해–내부 동작을 스스로 구성해가며–기존에 고안했던 방법론 이상의 성능을 내었으면…

Page 10: 기계학습 / 딥러닝이란 무엇인가

기계 학습 : 데이터로부터 임의의 함수를 도출해보자 !

• 교사 학습 (supervised learning)– 입력에 대한 정답값이 있음 . 대조하며 학습– backpropagation

• 비교사 학습 (unsupervised learning)– 정답 없이 입력값들만 주어짐– clustering, autoencoder

• 강화 학습 (reinforcement learning)– 입력값 ( 액션 ) 에 대한 평가만 주어짐– Q-learning

clustering

Q-learning

Page 11: 기계학습 / 딥러닝이란 무엇인가

다양한 기계 학습 방법론 등장

• 신경망 : 인간의 뇌신경 흉내를 내보면 어떨까

• 유전자 알고리즘 : 정보를 유전자로 인코딩하고 교배와 선택을 반복하면 진화하지 않을까

• 의사 결정 트리 : 세상은 if-then 의 반복이여

등등…

이 방법론이 수많은 역경을 딛고 현재 가장 고도화 됨

Page 12: 기계학습 / 딥러닝이란 무엇인가

신경망 모델 (1957 년에 나왔음 )

x0

x1 y0

x2

w0

w1

w2

y0 = act( x0*w0 + x1*w1 + x2*w2 )

활성 함수 . 결과값 정규화를 위해 사용(ex : 0 보다 크면 1 로 간주하고 0 보다 같거나 작으면 0)

입력 노드

가중치 (weight) 들

출력 노드

x0 는 상수 문턱값으로 , -1 고정

w0~2 는 -0.5 ~ 0.5 로 랜덤 초기화

입력값에 대해 적절한 출력값을 내도록w 값들을 조정해보자 = 신경망 학습

x 와 w 벡터 내적입니다 . 참 쉽죠 ?최근의 심층 신경망도 대부분의 연산은 벡터 내적입니다 .

Page 13: 기계학습 / 딥러닝이란 무엇인가

신경망 모델

x0

x1 y0

x2

w0

w1

w2

OR ANDx1 x2 target x1 x2 target

0 0 0 0 0 00 1 1 0 1 01 0 1 1 0 01 1 1 1 1 1

입력값을 넣었을 때 출력값이 타겟값과 다르면출력이 타겟값에 가까워질 수 있도록 가중치를 조정한다

△wi = η(target – result)xi

학습률 (0 ~ 1)

기초적인 이진 논리를 배운다고 해봅시다

Page 14: 기계학습 / 딥러닝이란 무엇인가

이것이 단층 퍼셉트론

x0

x1 y0

x2

w0

w1

w2

수학적으로는 n 차원 선형 분리 함수 (hyperplane) 의 계수를 찾아내는 과정임https://en.wikipedia.org/wiki/Perceptron

Page 15: 기계학습 / 딥러닝이란 무엇인가

그러나 문제 발생

어리석은 중생들아신경망으론 XOR 학습이 안됨요 : 수학적으로 증명하심

문제 많으니 연구 그만하라

Perceptrons (1969)

심볼릭 AI 의 거두였던 고 Minsky옹은사술에 현혹되는 제자들을두고 볼 수가 없어 논문을 썼다

https://en.wikipedia.org/wiki/Perceptrons_(book)

신경망은 그 뒤로 10 년간 암흑기

AND, OR와 달리 ,XOR는 선 하나로 분류할 수 없다

Page 16: 기계학습 / 딥러닝이란 무엇인가

다층 신경망 (MLP : Multi-Layer Perceptron) 1980~

• 다층 신경망을 학습시키는 새 알고리즘( Backpropagation ) 으로 XOR 문제 돌파

–하지만 노이즈에 취약–층을 여럿 쌓으면 학습이 잘 안됨

–전처리가 필요 (edge detection… ㅜ .ㅜ )

–어느 이상 성능이 안올라가네 ?• 역시 안돼…

https://en.wikipedia.org/wiki/Vanishing_gradient_problem

잠깐 다시 유행했지만 , 고도화된 다른 방법들을 능가하지 못했습니다

https://en.wikipedia.org/wiki/Backpropagation

Page 17: 기계학습 / 딥러닝이란 무엇인가

심층 신경망 (DNN : Deep Neural Network) 2010~

• 여러 층을 효율적으로 학습 시킬 수 있는 방법들이 등장 !• 빡세게 학습 돌릴 수 있는 방대한 트레이닝 데이터와• 초 빠른 성능의 컴퓨터 (GPU)

전처리도 필요가 없다 !

그러나 기존 다층 신경망의 한계를 2010 년께 심층 신경망으로 돌파 !

신경망 층이 깊어서 deep 입니다

Page 18: 기계학습 / 딥러닝이란 무엇인가

심층 신경망심층 학습 방법의 예 : Autoencoder

중간층의 노드 수를 줄이면서도입력값과 출력값이 같아질 수 있도록가중치 값을 학습

비교사 학습 가능이것을 반복해서 신경망 층을 쌓아갈 수 있다

입력 ( 비트맵 이미지 ) 과 출력 (‘cat’) 사이의 큰 간극을교사학습을 하지 않고도 채워나갈 수 있네 ?

Page 19: 기계학습 / 딥러닝이란 무엇인가

심층 신경망

• 입력에 가까운 노드는 저수준 개념을 ,출력에 가까운 노드는 고수준 개념을 추상화함

Page 20: 기계학습 / 딥러닝이란 무엇인가

결과 , 기존 방법론을 다 발라버림

이미지 인식 에러율

Page 21: 기계학습 / 딥러닝이란 무엇인가

인간이 0.1 초 (뉴런이 10 번 동작하는 시간 )이내에 할 수 있는 것이면

(그게 무엇이든 )

컴퓨터도 10단계 정도의인공신경망으로 해낼 수 있다 !

Page 22: 기계학습 / 딥러닝이란 무엇인가

이미지 인식 이외의 분야로 확장

음성 인식도 급격하게 에러율 내려감http://deview.kr/2014/session?seq=26

AlphaGo (2016)강화 학습으로 방대한 탐색 공간에 대한고수준 전략을 수행할 수 있게됨

Page 23: 기계학습 / 딥러닝이란 무엇인가

단어 같이 입력 공간이 퍼져 있는 데이터 ?고래

망치

서울

유황오리

단어 종류 만큼의 차원이 필요 ?! 수십만 차원에 퍼져있는 데이터 ?

‘ 개념 차원’으로 프로젝션하여 처리주변에 출현한 단어들을 고려한 클러스터링word2vec ( 자세한 설명은 생략 )

Sparse input space

Page 24: 기계학습 / 딥러닝이란 무엇인가

Sequence to sequence

RNN / LSTM 신경망 모델 사용 ( 자세한 설명은 생략 )Recurrent NN

Long Short-Term Memory

번역 (text to text)

현재 구글 번역기7월에 로이터가 언급했듯 , 좌석 구성이 바로 최신 장치들 사이에서의 다툼의 연료가 되고 있다

딥뉴럴넷 번역7월에 로이터가 언급했듯 , 좌석의 구성이 바로 최신 비행기들 사이에서의 다툼을 벌이고 있는 분야이다

인간 번역7월에 로이터가 언급했듯 , 좌석 배치가 바로 최신 제트기들이 다툼을 벌이고 있는 분야이다

Page 25: 기계학습 / 딥러닝이란 무엇인가

심층 신경망들의 조합

이미지를 인식하는 DNN(Deep Neural Network) + 설명문 작성 DNN (image to text)

Page 26: 기계학습 / 딥러닝이란 무엇인가

심층 신경망들의 조합이미지를 인식한 뒤 ,질문을 파악하여 답을 내놓음(Question Answering)

Page 27: 기계학습 / 딥러닝이란 무엇인가

특이점이 몇 년 내에 오는 것 아닐까요 ? ㅜ .ㅜ

Page 28: 기계학습 / 딥러닝이란 무엇인가

아직 괜찮다 ! : 돌파구가 몇 번 더 필요

• 적은 데이터로도 학습할 수 있어야 함

알파고 초기 학습에 3천만개의 교사학습 데이터가 필요했고 , 이후 매일 수십만번의 강화 학습 반복그러나 , 실세계에서 동작하는 로봇은 가동 시간과 공간의 물리적인 제약이 있고시행착오 도중 고장날 수도 있다… $$$

Page 29: 기계학습 / 딥러닝이란 무엇인가

아직 괜찮다 ! : 돌파구가 몇 번 더 필요

• 부가 학습에 제약이 있다

성능은 꾸준히 올릴 수 있으나 , 도중에 학습 방침을 변경하는 것은 곤란

인간은 기존 지식을 응용하여 적응하는 추가 학습을 빠르게 할 수 있으나현재의 신경망은 처음부터 다시 학습해야 함

Page 30: 기계학습 / 딥러닝이란 무엇인가

아직 괜찮다 ! : 돌파구가 몇 번 더 필요

• 기본적으로는 복잡한 함수의 근사

인간의 사고는 다양한 신경망 컴포넌트의 공동 작업 .어떻게 각 컴포넌트의 결과를 취합하여 보다 고도의 지능 활동으로 연결할 수 있을까 ?( 아직 이런 것들은 인간이 휴리스틱하게 구성하고 있다 )

‘ 관심’이란 무엇인가 ?‘의식’이란 무엇인가 ?‘의지’란 무엇인가 ?

최근엔 인지심리와 뇌과학의 성과를신경망으로 모델화 하기 위해 노력중…

Page 31: 기계학습 / 딥러닝이란 무엇인가

일반인이 보는 인공지능으로 돌아가서…

날라리 10 대 소녀 Tayhttps://www.tay.ai/

셋 다 MS 것 . 이 녀석들 의외로 덕후였습니다 .

코타나 동생 微軟小冰http://www.msxiaoice.com/

여고생 린나http://rinna.jp/rinna/

자연어 처리가 가능한 인공 성격들

Page 32: 기계학습 / 딥러닝이란 무엇인가

FAIL !일반인들과의 대화를 통해 학습하도록 했더니하루도 안되어 흑화함

범용적인 AI 는 아직 걸음마 단계이며보완해야 할 과제가 많이 남아 있다

하지만 우리 세대에결국 초지능이 나올 확률이매우 높으므로 , 미리 대비해야함

https://www.ted.com/talks/nick_bostrom_what_happens_when_our_computers_get_smarter_than_we_are

Page 33: 기계학습 / 딥러닝이란 무엇인가

프로그래머는 안전할까 ?• 프로그래밍도 Sequence (요구사항 ) to Sequence (

코드 ) 작업 다만 , 불완전한 요구사항으로부터 무결한 코드를 만들려면 다양한 사전 지식을 활용해야 함

일종의 번역

하스스톤 카드 설명을 보고 기능을 코딩하는 AI: 정형화된 도메인에서는 이미 코드 자동 생성이 가능

Latent Predictor Networks for Code Generationhttp://arxiv.org/pdf/1603.06744.pdf

Page 34: 기계학습 / 딥러닝이란 무엇인가

AI 에 지지 않기 위해 공부합시다

• Python + Theano(혹은 TensorFlow) 가요즘 딥러닝계의 Matlab

• 쉽게 딥러닝 테스트 해볼수 있는 유틸리티 라이브러리도나와 있고 튜토리얼도 많이 있습니다http://keras.io/

http://deeplearning.net/reading-list/tutorials/

Page 35: 기계학습 / 딥러닝이란 무엇인가

Q & A

Page 36: 기계학습 / 딥러닝이란 무엇인가

APPENDIX

Page 37: 기계학습 / 딥러닝이란 무엇인가

게임에 적용해볼 수 있을까요 ?어떤 함수를 , 어떤 방식으로 학습시킬 것인가? 를 고려해야 함

• 딥러닝 NPC AI ?– 뭘 어째얄지… FSM이나 BT 같은 기존 방식을 통으로 대체하는 것은 허들이 높습니다 .– 챗봇? 타겟 셀렉션 (어그로 )을 신경망으로? 등 도메인을 좁혀서 접근합시다 .

• 이상 행동 탐지 : 봇 탐지 , 어뷰징 탐지

– 최근 N분간의 플레이이어 액션을 입력으로 하여 , 이상 행동인지 판정

– 비교사학습으로 접근하는 것이 좋다 교사학습 하려면 이상 행동을 많은 예제를 통해 모델링 가능해야 함

• 동적인 레벨 디자인– 플레이어의 만족 함수를 근사 , 스테이지에서의 만족감을 극대화 할 수 있도록난이도나 보상을 조정