알파고 제로와 학습이론

Posted by 보더라인
2017. 10. 20. 17:49 카테고리 없음

2016년 최고의 이슈 중 하나는 인공지능 AI 이었습니다. 이세돌 프로와의 대국에서 승리하여 대한민국을 한동안 떠들썩하게 만들었던 알파고를 기억하시나요? 당시 한국에서 엄청난 관심을 끌면서 4차산업혁명에 대해 사회 각층의 관심을 모았고, 한동안 서점의 추천도서 목록에는 인공지능 도서가 줄기차게 올라오게 만들었던 주인공 입니다.

 

 

2017년 10월 18일자로 구글 딥마인드 Deep mind 에서 새로운 버전의 알파고를 네이처에 발표하였습니다. 알파고 제로 AlphaGo Zero 가 바로 그 주인공 입니다. 외신들과 국내 주요 언론사들이 알파고 제로에 대해서 기고를 하고 있는데, 기존의 알파고와는 어떻게 다른 것일까요? 오늘 포스팅은 알파고 제로의 의미에 대해서 저 나름대로의 생각을 정리한 글입니다.

 

알파고 제로, 알파고 리를 100 : 0으로 이기다.

 

 

알파고 버전별 비교, 출처 : 위키피디아

 

이세돌 프로와의 대국에서 승리하여 우리나라를 떠들썩하게 했던 알파고의 버전은 바로 알파고 리 AlphaGo Lee입니다. 알파고 제로는 알파고 리에게 100 : 0으로 승리하여 그 기량을 증명하였습니다. 그 뒤 버전인 알파고 마스터 Alphago Master 도 있는데, 여기에 대해서는 89 : 11로 승리하였다고 합니다. 아주 강력한 인공지능인건 알겠는데, 사실 이보다 더 중요한 것은 따로 있습니다.

 

지도학습 Supervised learning 과 강화학습 reinforcement learning

 

 

이전버전의 알파고들은 '지도학습'과 '강화학습'을 통해서 바둑 실력을 키웠습니다. 지도학습이라는 것은, 인간 프로 바둑기사들의 기보를 바탕으로 하는 학습입니다. 이때 알파고는 인간을 '흉내'내는 수준에 불과합니다. 다르게 표현하자면, 어떤 상황에 처할 때 인간의 기보를 바탕으로 "인간이라면 이 상황에서 어떻게 둘까?'"를 계산하여 가장 확률이 높다고 생각되는 지점에 다음 수를 결정하게 되는 것입니다. 

 

한편 강화학습은 게임을 시뮬레이션 하여 위에서 설명한 지도학습으로 둔 수에 가중치를 부여하는 것입니다. 어떤 수를 두었는데, 그 수가 승리로 이어질 경우, 신경망 네트워크는 그 수를 강화하게 됩니다. 그리고 많은 시뮬레이션을 통해 이러한 데이터가 누적이되면, 경험적 확률에의해 "지금 어떤 수를 두면 이길 가능성이 높은가?"에 대해 계산을 할 수 있게 되는 것입니다.

 

알파고 제로는 강화로만 학습한다.

 

 

알파고 제로가 인공지능 기술에서 중요한 이정표가 되었다고 발표하는 외신들의 주장은 다름아닌, 지도학습이 없는 강화학습만을 통한 발전입니다. 알파고 제로는 기본적인 바둑의 규칙만을 입력한 상태에서 시작하게 됩니다. 네이처 Nature 에 발표된 Abstract를 참고하면 좀 더 이해하기 쉽습니다.

 

네이처에 발표된 딥마인드의 알파고 제론 논문

 

빨간줄 부분만 대충 해석을 해보겠습니다.

"강화학습에만 기반을 가지고, 인간의 데이터나 가이드가 필요없는 새로운 알고리즘을 소개한다. 완전 백지의 상태에서, 우리의 새로운 프로그램인 알파고 제로는 이전의 버전의 알파고를 100 : 0 으로 압도하였다."

 

여기에서 주목할 점은 지도학습, 즉 '인간의 데이터'가 필요없다는 것입니다.



지도학습 supervised learning 이 필요없다는 것은?

 

 

지도학습이 필요없다는 말은, 앞으로 인공지능이 인간이 개척하지 못한 분야를 홀로 개척할 수 있다는 점을 시사한다는 점에서 중요한 이정표라고 할 수 있습니다. 이전버전의 알파고가 지도학습을 하기 위해서는 방대한 양의 인간프로가 두었던 기보가 필요했습니다. 따라서 이미 인간이 전문성을 가지고 있는 분야를 자동화 시키거나, 좀 더 잘하게 하는 역할에 국한되어 있습니다. 그러나 인공지능이 더 발전할 경우, 인간은 잘 모르는 미지의 부분을 인공지능이 혼자서 연구하고 전문가가 될 수 있는 가능성을 시사한 것이라고 할 수 있습니다. 학습할 데이터가 없는 상태에서도 말이죠. 물론, 현재는 바둑과 같이 룰이 명확하게 정해져 있는 분야에만 사용할 수 있겠죠.

 

딥 마인드는 앞으로 이런기술이 단백질 3차원 구조나 신약개발과 같은 분야에 사용할 수 있을 것으로 기대된다고 밝혔습니다.

 

개인적인 생각

 

 

어제 알파고 제로에 대해서 공부하다가 문득 이런생각이 들었습니다.

'마치 사람이  수학공부하는 것과 똑같은데?'

 

 

 

 

이전부터 선행학습은 많은 논란이 되어왔습니다. 저는 선행학습이 반드시 나쁘다고 생각하지는 않습니다. 그러나 선행학습은 구경학습이라는 말이 있을 정도로 그 효과에 대해 논란이 많습니다. 저는 그 이유를 알파고의 학습방법에서 어느정도 찾을 수 있다고 봅니다.

 

우리가 선행학습을 통해서 수학을 배울 때, 정규 수준 이상의 내용을 배우게 되므로, 선생님은 어떻게 푸는지 한번 보는 과정을 거치게 됩니다. 이른바 지도학습 supervised learning 이 필요한 것입니다. 

 

그럼, 한번 보면 내 것이 될까요? 당연히 내 것이 되지 않습니다. 그 다음에 혼자만의 시간을 가지면서 자기학습을 해야 내 것이 되는 것이죠. 즉, 강화학습 reinforcement learning 을 통해 신경망을 강화시켜주어야 온전히 내 것이 됩니다. 온전히 내 것이 되었다고 생각해도 시간이 지나면 까먹는 일이 비일비재 합니다. 

 

 

 

알파고 제로가 강화학습 만으로 이전 버전의 알파고들을 압도하였지만, 그렇다고 지도학습이  필요없다고는 생각하지 않습니다. 아마 하드웨어의 차이와, 강화학습의 알고리즘의 차이들이 복합적으로 작용하여 이런 결과들을 만들어 낸 것이라고 생각합니다.

 

중요한 것은 강화학습은 신경망 발달과정에서 빠질 수 없는 필수불가결한 존재라는 것입니다. 알파고 리가 만약 강화학습을 거치지 않고 이세돌 프로에게 도전했다면 어찌 되었을까요? 개인적인 생각으로는 필패했을 것이라고 생각합니다. 알파고 리가 흡수한 많은 기보들은 승패를 가리지 않고, 오로지 인간이 이런 상황에서 어떻게 다음수를 두는가에 대한 대답만 얻을 수 있습니다. 자기성찰(강화학습)을 통해서 그 길이 옳은 것임을 입증해야하는 과정이 빠져있는 상태인 것이죠.

 

어찌보면 당연한 진리를 새로운 시대가 열리는 지금 인공지능을 통해서 배우고 있다는 느낌이 듭니다. 어떤 것을 학습할 때, 새로운 지식을 접하는 것은 시간이 얼마 걸리지 않습니다. 그러나 그것을 자기강화하는데는 수많은 시간이 필요합니다. 그것이 학창시절의 수학에만 국한 되는 것은 아닙니다. 저는 최근에 양치기에만 주력하는 저의 독서습관에 대해서 반성을 하는 계기가 되었습니다. 아무리 많은 책을 읽어도, 그것을 통해 새로운 생각을 해보지 않으면, 무슨 소용이 있을까요? 그 책은 과연 진리만을 담고 있을까요?

 

새로운 시대를 열어가는 알파고 제로가 우리에게 주는 메세지는 '자기강화'입니다. 이 글을 읽는 여러분도 지금부터 여러분의 신경망을 강화해보는 것은 어떨까요? 그것이 게임이든, 학습이든 말입니다.

 

 

 

 

에버노트 활용 (3) - 노트만들기 총론

Posted by 보더라인
2017. 3. 4. 20:00 Evernote
노트만들기는 에버노트 사용 이전의 문제로 노트작성에 기본이면서도 가장 중요한 부분이다. 어떤 노트앱을 쓰더라도 지속적으로 작성할 컨텐츠가 있는 상황에서 노트를 활용할 수 있다. 즉, 어떤 일을 하고 있거나 공부를 하고 있는 특수한 상황에서만이 노트를 작성할 수 있는 원동력이 나오는 것이다. (물론 영수증이나 명함을 모으는 등 일상적인 용도로도 쓸 있다.) 오늘은 노트작성을 어려워 하는 분들에게 노트작성법에 대해서 간략하게 소개하도록 하겠다.


노트작성의 이유



업무와 학습으로 에버노트를 사용할 때 노트 사용의 목적은 크게 두가지로 구분된다. 첫번째는 그 내용을 외우기 위해서이다. 두번째는 나중에 그 내용을 찾아보기 위해서이다. 여기서 주목할 점은, 우리가 노트를 만드는 것은 노트를 만드는 것 자체가 목적은 아니라는 것이다.



기억곡선과 망각


노트작성법에 대해서 이야기 한다해놓고 갑자기 무슨소리인가 어리둥절 하실 분들이 있을 것이다. 노트작성의 이유와 연관되어 있는 내용이므로, 본론으로 들어가기 전에 배경지식 삼아서 한번 읽어보면 도움이 될 것이다.


우리가 공부를 할 때, 새로운 내용을 접하게 되면, 그 순간은 그 내용이 생생하게 기억이 나지만, 3일만 지나도 까먹는다. 사람의 기억곡선에 대해서 들어보았겠지만, 어떤 내용을 학습하고 1시간 후에는 50%, 하루만 지나게 되도 70%의 내용을 망각하게 된다. 


망각을 극복하는 가장 좋은 방법은 복습이다.


효과적인 복습은 장기기억을 도와준다. 그러면 복습을 어떻게 할 것인가? 복습을 완벽하게 하는 것은 책을 두번 읽는 것이다. 예를들어, 오늘 1장과 2장을 공부했으면, 내일은 3장과 4장을 공부하기 전에 1장과 2장을 한번 더 보면 완벽한 복습을 한 것이다. 글쓴이도 한때 이 방법으로 공부를 한 적이 있었다. 그러나 이 방법에는 큰 단점이 있는데, 봐야할 분량이 눈더미처럼 불어난다는 것이다. 3일 째에는 1장부터 6장까지 봐야한다. 4일째에는 1장부터 8장까지 봐야한다. 이론적으로 복습을 할 때마다 그 내용이 친숙해지므로 복습하는 시간이 줄어들어서 다 볼수 있을 것 같지만 (나는 그렇게 생각했다.) 사실 쉽지는 않은 일이었다.


파편화된 복습이 더 효과적일 수 있다.


완벽함을 포기하면 복습이 조금은 쉬워진다. 그날 그날 공부하거나 새로 알게된 개념들 중에서, 중요하거나 특별히 기억이 안날 것 같은 내용만 따로 에버노트에 정리를 해보자. 그리고 그것만 복습하면 된다. 1권부터 1000권까지 있는 거대한 전집이 뒤죽박죽 섞여서 어질러져 있다고 가정해보자. 책장에 순서대로 정리하려하면 엄두가 안난다. 그러나 그냥 순서 생각안하고 매일 손에 잡히는대로 5권씩만 스트레스 받지 않고 꽂는다고 하면 어느정도 해볼만하다. 처음부터 너무 거창한 계획을 세우기 보다는 확실하게 할 수 있는 것부터 정리하다보면 점차 정리하는 스킬도 생기게 된다. 

정리할 시간에 진도를 더 나가는게 효율적이지는 않을까?

그럴수도 있다. 단, 전제조건이 있는데 공부하는 장소가 일정하고 이동시간이 매우 짧은 사람일 경우이다. 또, 이런상황에 있는 사람이라 할 지라도, 때때로 공부를 하다가 어떤 것에 대해 유기화 (내용간의 연결을 말한다)가 머릿속에서 일어나게 되면 정리를 하고 싶은 충동을 느끼게 된다. 다음번에 그 내용을 볼때는 십중팔구 유기화한 내용을 망각하게 된다. 정리를 하게 되면 이런 망각을 어느정도 극복할 수 있기 때문에 효율성을 끌어올릴 수 있다. 

그러나 글쓴이 본인도 에버노트를 쓰기전에는 이런 정리를 생활화 하지 않았다. 그 이유는 일단 나는 글씨가 너무 악필이고, 오랫동안 내용을 쓰고 있으면 너무 힘들었기 때문이다. 사실 지금도 대부분 눈으로 공부하고 필요한 경우에만 컴퓨터나 스마트폰으로 에버노트에 정리를 하게된다. 정리를 싫어하게 된 내가 에버노트를 사용해서 정리를 하게된 이유는 무엇일까?

1. 책 정리는 내가 해야하지만 노트정리는 에버노트가 해준다. 

가장 큰 이유는 편하기 때문이다. 첫번째로 손으로 쓰는 것보다 타이핑을 하는 것이 매우 편하다. 또한, 지난 글인 "태그와 노트북"에도 나와있지만, 파편화된 복습을 종이 노트에 정리한다면 나중에 챕터별로 정리를 다시한번 해야한다. 그러나 태그기능을 잘 이용하면 내가 원하는 과목이나 범주별로 알아서 분류를 해주기 때문에 오로지 노트만들기에만 집중하면 된다. 

2. 높은 접근성, 경량화 그리고 보안성

10년정도 전에 "유비쿼터스 시대"라는 말을 처음 들었다. 사전적인 의미는 시간과 장소에 구애받지 않고 어디서나 정보통신 서비스를 사용할 수 있다는 말인데, 스마트폰이야말로 이런 유비쿼터스라는 말에 어울리는 말이 아닌가 싶다. 에버노트에 정리한 내용은 내가 원하면 언제 어디서든 스마트 폰으로 볼 수 있다. 내가 버스를 타고 이동해야 하는 상황이라면, 종이 노트를 펼치지 않고 주머니에서 스마트폰을 켜는 것 만으로도 오늘 공부한 내용을 복습할 수 있는 것이다. 정말 멋진 일이 아닐 수 없다. 오늘 처음 공부한 내용이 너무 어려워서 어떻게 이해는 했지만, 다음번에 기억이 안날 것 같다면 에버노트가 도움이 될 수 있다. 어떤 정보에 반복 노출되면 우리의 뇌는 그것을 상식수준으로 받아들이게 된다. 상식이 된 내용은 더이상 어려운 내용이 아니다. 이렇게 어려운 내용을 의도적으로 정리한 다음 반복 노출 시키는 것은 학습에 있어서 아주 큰 효과를 가져오게 된다.


또 하나, 내가 말한 보안성은 앱 자체의 보안성을 말하는 것이 아니다. 공부를 열심히 하고싶어도 왠지 버스에서 두꺼운 책을 펼치거나 하면 조금 부끄러운 마음이 드는 것이 사실이다. 글쓴이가 소심해서 그러는지도 모르겠지만 나는  그런 편이다. 그러나 요즘은 대중교통이나 길거리에서 스마트폰을 사용하는 것은 너무 흔한일이다. 사람들이 내가 스마트폰으로 뭘 하는지까지는 관심이 없을 것이다. 그러므로 타인의 눈을 신경쓰지 않고 내가 하고싶은 일을 할 수 있게 된다. 이 글도 에버노트를 이용해서 버스안에서 일부 편집을 하였다.

구조화 + 상식화 = ?

잠깐 공부이야기를 좀 하겠다. 공부란 무엇일까? 공부라는 것은 결국 책에 있는 내용을 내 머리속에 넣으면서 구조화시키는 것이다. 여기서 머리에 넣으려면 해당 내용과 친숙해져야 한다. 해당 내용이 너무 친숙해져서 거의 상식수준이 되었을 때 다음 단계로 나가기 위한 발판이 마련되는 것이다. 이렇게 개별 내용을 머릿속에 집어넣다보면 어느순간 목차를 읽을 때 안에 있는 내용들이 대강 기억나게 되고 구조화가 시작된다. 공부를 잘 하는 방법론 중에서 목차를 보면서 공부해야한다는 말을 들어보았을 것이다. 어떤 이는 공부하기 전에 반드시 목차를 보는 습관을 들이라고도 한다. 여기서 오해하면 안되는 것은, 목차를 안다고 해서 해당내용을 아는 것은 아니라는 것이다. 목차를 몰라도 파편화된 내용만 알면 그럭저럭 시험을 잘 칠 수 있다. 반면에 목차만 아는 사람은 개별내용을 모르기 때문에 시험을 잘 칠수가 없다. 목차를 안다는 것은 우선 개별내용을 어느정도 아는 상태에서 그 내용들을 연결시키고 구조화시키는 작업을 말하는 것이다. 즉 개별내용을 이해한 상태에서 한단계 더 나아간 상태라는 말이다.



공부이야기를 끝내고 나니 어디서 많이 들어본 말인 것 같다. 글쓴이가 위에서 에버노트의 장점을 언급하면서 많이 말했기 때문이다. 에버노트는 태그기능을 잘 활용하면 구조화를 알아서 해준다. 그리고 높은 접근성으로 인해 해당내용에 노출이 자주되고, 결국 정보의 상식화가 일어난다. 이 상태야말로 우리가 원하는 상태이다. 물론 말처럼 쉽게되는 것은 아니지만, 최소한 에버노트가 도움을 주는 것은 확실하다. 핵심은 노트 작성도 쉽고, 노트 접근도 쉽다. 그리고 구조화는 자동으로 된다. (내머리에 다시 넣어야하긴 하지만..) 이보다 더 좋을 수 있을까?
 
그래서 어떻게 만들라는 건지?.....

그럼 실제로 노트를 어떻게 만들면 좋을까? 사실 정답은 없다. 공부하면서 그날그날 만들어야겠다는 마음이 드는 내용을 발견하면 열심히 만들면 되는 것이다. 그런데 "나는 도무지 만들 내용이 없어요." 또는 "어떤 내용을 만들어야할 지 모르겠어요"라는 분들이 있을 것으로 생각된다. 이런분들을 위해서 다음편 부터는 노트 작성의 실제 예시를 들어가며 각론을 설명하도록 하겠다.