PGR21.com
- 자유 주제로 사용할 수 있는 게시판입니다.
- 토론 게시판의 용도를 겸합니다.
Date 2015/05/03 05:25:11
Name azurespace
Subject [일반] 딥 러닝의 최근 성과들 #1

요즘 피지알21 자유게시판에도 인공지능 관련 글들이 많이 올라왔었죠. 저도 이런 분위기에 편승해서 글을 한번 남겨보려고 합니다. 시리즈가 될지 어떨지는 아직 저도 모르겠지만 일단 1편이네요.


한동안 인공신경망이 핫하다가 학습에 시간이 너무 걸리고 생각보다 좋은 결과가 나오지 않아서 망했었죠. 그러던 것이 다시 살아나게 된 것에는 물론 하드웨어의 발전(GPU라던지, Nerual Processing Unit라던지)이 가장 큰 영향을 주었습니다만, 알고리즘 측면에서도 많은 발전이 있었기 때문입니다.


인공신경망은 생명체의 뉴런과, 그 뉴런들 사이를 연결하는 시냅스를 모사하는 회로입니다. 물론 신경세포와 완전히 똑같은 방식으로 동작하는 것은 아니고요. 실제 생물학적 뉴런을 시뮬레이트해서 신경망의 정확도를 높이는 연구도 있습니다만, 요즘 대세인 딥 러닝에서 보통 사용하는 뉴런은 단순히 이전 단계에 연결된 뉴런의 출력값과 연결 강도의 벡터 내적을 구한 다음, 활성화 함수(Activation function)라는 이름의 함수에 대입한 것을 이번 단계의 뉴런의 출력값으로 합니다.


혹시 위의 문장이 전혀 이해가 되지 않으실 수도 있습니다. 그런 분들을 위해 쉽게 말하자면, 생물 시간에 역치에 대해서는 배우셨죠? 감각은 특정 역치값을 넘지 않으면 느껴지지 않습니다. 우리가 모델링한 가짜 뉴런도 마찬가지로 어떤 값을 넘기 전에는 아무것도 느끼지 못하다가, 어떤 값을 넘으면 으아아아아아 나 이만큼 크게 불났아아으아아아아 하고 연결된 뉴런들에게 알립니다. 이것을 발화(firing)라고 부릅니다.


아무튼 신경망을 만들었으면, 이 신경망을 학습시켜야 하는데요. 학습이라는 게 말은 쉽지만 사실 쉬운 게 아닙니다. 솔직히 인간은 아직 인간은커녕 생쥐가 어떻게 해서 새로운 것들을 배우는지도 파악하지 못하고 있습니다. 그런데 어떻게 신경망에게 원하는 것을 학습시킬까요?


그러나 이 고민은 이미 수학자들이 다 해 두었습니다. 신경망을 학습시킬 때는 일단 가지고 있는 데이터를 신경망에 집어넣어본 다음, 신경망의 출력값과 원래 나와야 할 값의 차이(오류)를 계산한 다음, 이 오류를 최소로 만들게끔 뉴런들 사이의 연결 강도를 수정하면 됩니다! 참 쉽죠? 그래서 뭐... 연결 강도를 어떻게 수정할 것인가는 미적분 지식을 활용합니다. 오류 값에 대한 그라디언트를 구해서 더하고 빼고 하면 되는 거죠. 간단합니다.
뭐..... 당연하지만 생쥐나 인간 뇌가 에러를 계산해서 연결강도의 편미분을 구해 스스로를 변화시키는 방식으로 학습하지는 않을 겁니다. 단지 실용적으로 우리가 원하는 결과는 얻을 수 있는 방법이고 실제로 결과도 괜찮은 편이기에 이걸 쓰는 거죠. 더 좋은 방법이 있기는 할 것 같지만 그건 수학자들이 아니라 생물학자들이 찾아야 할 것 같습니다.


으으, 최근 딥 러닝에서 사용하는 기술들이 과거의 신경망 붐 때에 비해 어떻게 발전했는가를 설명하려고 했는데, 쓰다 보니 굉장히 길고 수식이 남발해서 관련 지식이 없는 분들께는 읽는 것 자체가 상당한 고역이 될지도 모르겠습니다. 그래서 과감히 생략하고, 나중에 기회가 될 때 설명하도록 하겠습니다. 핵심은 요즘 많이 쓰는 딥 네트워크는 예전에 쓰던 것과는 원리적으론 동일하나, 테크닉에서는 많은 발전을 이루었다는 것만 이해하시면 됩니다.


스스로 게임 방법을 배우는 인공지능



NuRi's Tools - YouTube 변환기


출처 : [아하! 이렇게 하면 이만큼의 보상을 받을 수 있겠구나] 라는 것을 추측해서, 그 다음에는 여러분에게 칭찬을 받을 가능성이 높아 보이는 선택을 합니다. 그리고 나서 다시 채점을 받고, 다시 시도하고, ... 이러한 과정을 반복하면서 배우는 알고리즘입니다.


해서 연구진들은 앞에 말한 CNN 뒤에 다른 신경망을 붙여서, 아타리 2600의 컨트롤러로 할 수 있는 수많은 동작들 중에서 하나를 선택하도록 조정한 다음 위의 Q-Learning 알고리즘을 적용해서 학습시킨 것입니다. 이 때 채점은 일일히 사람이 한 것이 아니고, 게임 화면에 나오는 점수를 그대로 사용한 것입니다. 이러면 신경망은 게임의 점수를 최대한 많이 받을 수 있는 방법을 찾기 위해 노력하게 됩니다.


네. 이렇게 했더니 이 신경망은 게임의 룰을 따로 교육받지 않았는데도 불구하고, 화면만 보고 계속 이것도 해보고 저것도 해보고 하면서 스스로 게임의 룰을 터득하고는, 높은 점수를 받기 위해서 그 룰을 이용하는 데에 이르더라는 겁니다.


이 사람들은 한 50개 정도의 게임에 같은 알고리즘을 적용해 봤는데, 한 20퍼센트 정도는 잘 안 되었고, 일부 게임에서는 평균적인 사람의 천배가 넘는 실력(...)을 보였다고 하는군요.


진짜 작정하고 전용 가속 하드웨어를 만들어서 초대규모 네트워크를 만들면 스타크래프트를 프로게이머보다 잘하는 인공지능을 만들 가능성도 있을 것 같습니다. 그런 거 있어도 어디에다 쓰겠습니까만(...)


바둑을 배우는 신경망


http://www0.cs.ucl.ac.uk/staff/d.silver/web/Publications_files/deepgo.pdf


요즘 최고 수준의 바둑 인공지능들은 주로 몬테카를로 탐색 방법을 사용합니다. 모든 경우의 가짓수를 탐색하기에는 컴퓨터의 성능이 부족하니까, 시간이 허락하는 한도 내에서 임의로 아무렇게나 두어 보면서 모양이 괜찮은가를 평가하고, 시간 내에 찾은 가장 좋은 자리에 돌을 두는 것이죠. 이런 방법으로 과연 괜찮은 인공지능을 만들 수 있을까 싶지만, 그래도 실용적으로 사용되는 방법들 중에서는 가장 성능이 뛰어난 편입니다. 바둑의 모든 요소를 하나로 정의내리기는 어렵기 때문에 초반 정석단계, 사활, 수싸움, 끝내기 등을 서로 다른 알고리즘이 담당하는 것이 일반적이고, 대부분의 프로그램들은 몬테카를로 기법을 탐색에 이용하되 자기들 나름의 노하우로 탐색 속도를 높이는 식입니다. 이런 알고리즘들의 성능은 프로 기사를 상대로 4점 깔고 두면 이기는 정도 수준으로 알려져 있습니다.


그런데 이 연구진은 딥 러닝을 바둑 인공지능에 적용해봤습니다. 이 사람들은 19x19의 바둑판 상황을 CNN(또!)에 입력으로 하였습니다. 단순히 돌의 유무만 넣은 것은 아니고, 주변에 인접하고 있는 빈 칸들, 착수금지점, 잡은 돌의 갯수, 현재 몇 수 째인가, 두고 있는 사람들은 몇 단 정도인가 등의 정보를 함께 넣습니다. 그리고 나서.... KGS Go Server( https://www.gokgs.com/ )라는 온라인 바둑 대전 사이트의 기보 데이터를 이 인공지능에 학습시켰습니다.


해서 이 신경망은 바둑판의 각 위치에 대해서 각 위치에 착수하는 것이 얼마나 적절한지 계산합니다. 신경망이 가장 적절하다고 생각한 위치가 사람이 그 다음 수로 둔 위치와 같다면 신경망의 예측은 성공한 셈이죠. 이 신경망은(12레이어) 다음 수를 약 55% 정도의 확률로 정확하게 맞추었습니다. 기존에 사용되던 알고리즘들의 정확도는 30퍼센트 후반이라고 하니 상당한 발전을 이룬 셈입니다. 가능성이 높은 지점을 잘 찾아낼 수 있다면, 이는 탐색해야 할 공간을 크게 줄이는 효과를 가지므로 몬테카를로 알고리즘 등과 결합될 때 훨씬 더 좋은 성능을 낼 수 있을 것이라는 기대를 할 수 있습니다. 참고삼아 측정한 기력 6단의 사람은 같은 데이터에 대해서 52%의 정확도를 보였다고 합니다.


그래도 뭐, 한 수 내다보는 능력이 사람보다 좋았다고 실제 실력이 좋은 것은 아니죠. 그래서 이 사람들은 이 신경망을 몬테카를로 탐색과 결합해서, 가능성이 가장 높은 몇 개의 위치에다가 돌을 미리 둬보는 식으로 탐색하는 새 알고리즘을 만들었습니다. 그 결과는, 세상에! 원래의 신경망만 사용한 알고리즘을 상대로 87.6%의 승률을 기록했습니다. 이 신경망과 몬테카를로 알고리즘은 제법 궁합이 잘 맞는 듯합니다.


기보


위 알고리즘과 기존의 인공지능이 맞붙은 대국의 기보입니다. 백돌이 신경망을 적용한 쪽이고, 흑돌이 몬테카를로 기법이죠.


글쎄요. 과연 사람을 상대로 이 알고리즘이 얼마나 강할지는 만든 사람들이 아직 논문으로 내지 않았기에 알 수 없습니다. 6단 사용자보다 예측이 정확하다고 하니 아마 탐색과 결합된 알고리즘의 실력은 그 이상 수준은 되겠지요. 바둑 인공지능은 사람을 따라잡기 어렵다는 기존의 일반적인 인식은 그리 머지않아 바뀌어야 할지도 모릅니다. 하드웨어의 성능은 점점 좋아지게 마련이고, 위의 알고리즘에 또 다른 테크닉들이 계속 더해진다면 알고리즘의 성능 또한 점점 좋아질 것이니까요.


그리고 사용한 데이터 자체가 프로 기사들의 공식 대국 기보가 아니라 인터넷 바둑이기 때문에 성능에 제한을 받는 측면도 분명 있을 겁니다.  이것은 기보 데이터를 일일히 변경해서 입력하는 수고를 하고 싶지는 않았던 것 같습니다. 전산화된 프로 대국 기보를 제공받을 수 있다면 분명히 신경망의 성능도 지금보다 훨씬 좋아질 것으로 기대할 수 있겠죠.


연구진이 논문에 쓴 말을 인용하면서 마칩니다.


"이 신경망은 좋은 형태, 초석, 정석, 수순, 전투, 집, 세력 등 바둑의 수많은 복잡한 측면들을 암시적으로 이해하고 있는 것이 분명하다. 단 하나의 간단한 통합 아키텍쳐가 게임의 이 모든 요소들을 어떠한 내다보기(탐색) 없이도 이 정도 수준으로 마스터할 수 있다는 것은 특기할 만하다"



통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
회색사과
15/05/03 08:57
수정 아이콘
Cnn 하면 저는 요새 이미지 검색에 사용되는 예시가 제일 그 능력을 보여주기 좋았던 것 같습니다.

예전에 질게에 이미지 검색은 어떻게 이루어지냐는 질문에 ...

기본적으로는 유사성 검사이다라는 답변이 달렸던 것으로 기억하는데....

요새 이미지 검사는(특히 구글)
이미지를 넣고 rnn cnn 을 거치고 나면 해당 이미지를 설명하는 자연어 문장이 생성되고,
그 문장으로 이미지 검색을 하는 기능이 추가되어 있습니다.

워드임베딩이나 저런걸 보면.... 좀 많이 무섭더라구요
azurespace
15/05/03 12:16
수정 아이콘
Show and Tell이었나.. 그것도 소개할까 싶었는데 귀차니즘으로요... 소개한 두 논문도 구글 딥마인드 소속 학자들이 쓴 것입니다
스핔스핔
15/05/03 10:08
수정 아이콘
우왕.... 뭔가 감격스럽네여
롤하는철이
15/05/03 10:18
수정 아이콘
이미지검색도 무서운 수준이지만, 제가 가장 인상적이었던 연구결과들은 구글에서 주로 나오더군요. 아마 아시겠지만 word2vec이라는 semantic을 보존하는 단어의 표현벡터를 찾는 점이나 (ex, '서울 - 한국 = 수도'.. 이런 연산은 이해는 되지만 컴퓨터가 하도록 만들다니요. 덜덜덜.), 작년 학회에서 봤던 사진을 묘사하는 모델까지 (단순히 태그를 붙이는게 아니라 문법적으로 정확하게 묘사하는 문장을 만들더라구요. 아.. 윗분이 언급하셨군요.) 말이죠. 제가 이해하기로는 대규모의 데이터가 없으면 그만큼의 성능에 도달하기 어려운지라 기업차원에서나 연구가 가능한데, 어찌되었든 어디까지 발전할지 기대가 됩니다.
회색사과
15/05/03 11:28
수정 아이콘
요새 저희 연구실 대세가 워드투벡이나 임베딩으로
감정분석 / 의도분석 입니다. 나오는 것들 보면 무서워요.
킹 -남자+여자 = 여왕 이라던가...
#include
15/05/03 10:45
수정 아이콘
몇년전까지 이분야에서 공부한적 있고 최근에는 취
업해서 일하면서 인공지능 분야에 손땠었는데...
최근 딥러닝 관련해서 찾아봤는데 불과 3년 사이에 상전벽해를 이뤘더군요!!!
이게 얼마나 대단한거냐면 사실 인공지능이란 학문이 90년대 오면서 크게 벽에 막혔엇습니다. 그래서 한참 잘나갈때 입턴거에 비해 발전속도가 늦어 사기 학문소리도 나올정도로...
근데 저 딥러닝 이란게 나오고 3년 사이에 모든게 바꼈습니다. 10년 이상 정체되었던것이 풀린 느낌이죠. 자신있게 말할수있는건 제가 공부했던 3년전에 비해 지금 기술은 그동안 10~20년 사이의 진보 속도보다 더 빠르게 진화하고 있다는 겁니다...
최근에는 카이스트 김대식 박사 팀이 캠 영상으로 천가지 이상의 물체를 실시간으로 구분하는 시스템을 봤는데 몸에 소름끼치더군요.
관련분야에 있는 사람의 설레발일수도 있지만 제생각에 곧 다른세상이 펼쳐질것 같습니다. 적어도 스마트폰이 처음 탄생했을때의 파급력이상을 가질것으로 판단합니다.
15/05/03 10:45
수정 아이콘
우와 재밌는 연재 감사합니다. 이 분야는 언제나 곁눈질로 보는 거지만 그럴 때마다 사람을 흥분시키는 것 같아요. 부디 계속 연재해주세요!!
15/05/03 11:11
수정 아이콘
기보의 내용을 보면 아마 4~5단인 제게도 7점은 깔아야 할 거 같...
그래도 생각보다 인공지능의 발전이 빨라서 위협을 느끼고 있습니다
azurespace
15/05/03 12:34
수정 아이콘
학습은 사람끼리 한 기보로 시켰는데 AI를 상대로 시켰기 때문에 그럴 수도 있습니다. 실전에서는 나오지 않는 모양이 나오니까 약간 성능이 낮아지는거죠. 아니면 학습에 사용된 기보의 수준이 낮아서 그럴 수도 있습니다. 프로기사 대국을 넣었을 때의 결과가 어떨지 궁금합니다.

그리고 제 생각엔 인공지능들은 큰 그림에는 약해도 전투 등의 세밀한 부분은 센 편이라 또 막상 둬보시면 쉽지만도 않을 것 같아요... 글에도 적은 바 있습니다만 인공지능 상대로 일본 프로가 4점깔고 지기도 했거든요.

개인적으로는 요 신경망에다가 위의 Q러닝과 유전알고리즘 같은 전역최적화 알고리즘을 도입해서 지들끼리 두면서 발전하게 만들면 또 더 나은 성능의 인공지능을 만들 수 있을 것 같은데 하드웨어 성능이 문제로군요 흐흐;
리멤버노루시안
15/05/03 17:18
수정 아이콘
최근에 카이스트 김대식 박사님 강연을 정말 재밌게 들었습니다.
최근 이 분야의 발전이 정말 눈부신 것 같아요. 제 수명이 다하기 전에 학습하고 생각하고 자신의 목적을 위해 무언가 행동하는 인공지능을 만날 것 같습니다.
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회 추천
57967 [일반] 티베트인은 중국인과 같은 민족일까? [33] 군디츠마라7782 15/05/04 7782 3
57966 [일반] [DATA주의] 환율도 떨어졌는데 일본 여행을 가볼까? - 6.<도요쿠니 신사><니시키 시장> [7] 페르디난트 3세5050 15/05/04 5050 2
57965 [일반] [야구] 지난 주말의 대형 트레이드와 롯데 투수진 교통정리 [67] giants7830 15/05/04 7830 0
57964 [일반] 마이 리틀 텔레비전, 백주부를 꺾을 경쟁자를 찾아라! [113] 안자 이라라12568 15/05/04 12568 0
57963 [일반] 문재인이 이번엔 역으로 가네요. [99] 삭제됨13200 15/05/04 13200 0
57962 [일반] 창문 열리던 기차의 추억 [33] 짱구11231 15/05/04 11231 3
57961 [일반] 양상문 감독님.. "독한야구" 보여주신다면서요.. [110] iloveus10511 15/05/04 10511 0
57960 [일반] 해외 공연 투어 수익 TOP 20 [9] 비타에듀9440 15/05/04 9440 0
57959 [일반] [야구] 2015년 프로야구 현재까지 시청률 탑 15 [8] 천재의눈물5437 15/05/04 5437 2
57958 [일반] [KBO] 어린이날 잠실더비 직관을 하루 앞두고.... [25] SKY924817 15/05/04 4817 2
57956 [일반] 김치찌개의 오늘의 메이저리그(강정호 시즌 1호 솔로 홈런) [11] 김치찌개5660 15/05/04 5660 0
57954 [일반] PC 뮤직에 대해 [7] 분리수거6662 15/05/04 6662 2
57953 [일반] [해축] 14-15 EPL 첼시 우승 [50] SKY928447 15/05/03 8447 0
57952 [일반] 1 [56] 삭제됨46603 15/05/03 46603 3
57951 [일반] 야권의 대선 승리 시나리오..정말 힘들다는 계산입니다 [102] 삭제됨9786 15/05/03 9786 0
57949 [일반] 새누리당 상대로 누가 가장 경쟁력 있을까요? [90] 삭제됨7508 15/05/03 7508 0
57948 [일반] AS: 맥쿼리인프라 주주분들은 꼭 참고하세요. [5] 기아트윈스14369 15/05/03 14369 0
57947 [일반] 사카모토 마아야 20주년 콘서트 관람 후기 [20] 랜덤여신8097 15/05/03 8097 2
57946 [일반] 오늘 파퀴아오 vs 메이웨더 점수표와 펀치기록(?)입니다 [49] 하얀마녀13583 15/05/03 13583 2
57945 [일반] 김치찌개의 오늘의 메이저리그(추신수 시즌 2호 3점 홈런) [5] 김치찌개4896 15/05/03 4896 1
57944 [일반] 역대 프로복싱 시합 PPV 판매량 Top10 [11] 김치찌개7622 15/05/03 7622 1
57942 [일반] 파퀴아오 vs 메이웨더 세기의대결 승자는 메이웨더네요 [193] 발롱도르14646 15/05/03 14646 1
57941 [일반] 1 [55] 삭제됨8885 15/05/03 8885 0
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로