확률적 경사하강법과 파블로프 전략
아마 이번 제목은 바로 이해하는 사람이 거의 없을 꺼에요 ㅎㅎ;;; 제가 2019~2020년만 하더라도 <수국비>를 집필하면서 수능을 치르는 고등학생 수험생들에게 직접적으로 큰 도움이 되는 비문학 지문이나 수학, 재수생 생활 등에 대한 칼럼을 썼는데 이제는 저도 대학원 진학을 준비하느라 이제 고등학교 범위를 벗어나는 주제를 자주 들고오게 되네요... 나름 5년 동안 열심히 활동해왔는데 슬슬 오르비를 은퇴(?)할 때가 오는 것 같네요 ㅠㅠ
제가 신경과학 대학원을 간다고 했잖요? 그래서 부족한 통계학 지식을 보충하기 위해서, kmooc에서 서울대학교 서인석 교수님의 수업을 들었습니다. 그런데 거기서 아주 흥미로운 최적화 문제를 알게 되어서, 기존에 알고 있던 '파블로프 전략'이라는, 게임 이론의 전략 중 하나를 연결해서 써봅니다.
고등학교 수학에서 극대, 극소값을 찾는 방법은 미분을 활용합니다. 미분을 해서 0이 나오는 곳을 일단 찾고, 혹시 모르니까 양 옆의 부호가 달라지는지 확인을 꼭 해야합니다. 매우 쉽게 극대와 극소값을 구할 수 있는 것이죠.
굳이 미분을 쓰지 않고(그러니까 미분을 해서 0이 되는 부분을 찾는 방법이 아니라) 극소값을 구하는 방법도 있습니다. '경사하강법'이라는 방법인데요(미분 개념을 사용하긴 합니다). 쉽게 말해서 함수 위에 어떤 공을 하나 두고, 그 공이 점점 더 작은 값을 향하게끔 알고리즘을 설정하는 것입니다. 반드시 지금 상태보다 더 작은 함수값으로 가게끔 해야합니다. 그럼 자연스럽게 극소값에 도착한 다음 멈추겠죠?
https://lemidia.github.io/development/boostcamp-week2-day7/
https://velog.io/@yellow372/08.-%ED%99%95%EB%A5%A0%EC%A0%81-%EA%B2%BD%EC%82%AC-%ED%95%98%EA%B0%95%EB%B2%95
그런데 문제가 하나 있습니다! 만약에 그래프가 저렇게 제가 제시한 것처럼 x^2 형태로 단순하지 않고, 4차 이상의 다항함수처럼 매우 복잡해서 극소값이 여러 개가 존재하면, 공이 해당 함수의 최소값으로 가지 못하고 다른 극소값에 들어가서 그대로 갇힐 위험이 있습니다.
애초에 왜 최소값을 찾는 것이 중요하냐면, 그래프가 오차에 대한 그래프라고 생각하면 됩니다. 우리가 어떤 데이터를 가지고 있고, 이것을 예측하는 함수를 만들었는데, 그 오차를 저런 그래프로 나타내서 경사하강법을 사용하여 최소값을 구하는 것이라고 상상하면 그 필요성이 바로 이해가 됩니다. 당연히 오차가 적은 좋은 함수를 구하는 것이 좋으니까, 우린 본질적으로 극소값보다는 전체 함수에서 가장 낮은 최소값(물론 이것도 극소값이겠죠?)을 찾아야 하는 것입니다.(좀 더 궁금하면 손실함수에 대해서 알아보면 될 것입니다)
예컨데
https://velog.io/@dbs991013/%ED%99%95%EB%A5%A0%EC%A0%81-%EA%B2%BD%EC%82%AC-%ED%95%98%EA%B0%95%EB%B2%95Stochastic-Gradient-Descent
만약 그래프가 이렇게 생겼다면, 공은 전역 최소값에 도달할 수도 있겠지만, 재수없게 맨 왼쪽에서 시작하여 단순한 경사하강법으로 아래로만 내려간다면, 지역 최소값에 도달하고 나서는 옴짝달싹을 하지 못할 것입니다.
이때 우리는 한번 타협을 해보는 것입니다. 단순한 경사하강법에는 아주 단순하게, 그냥 무조건 아래로 내려가라(미분값이 점점 더 작아지는 쪽으로만 이동하라)라는 매우 1차원적인 알고리즘을 입력하였습니다. 그랬더니 전역 최소값이 아닌 지역 최소값에 갇히는 일이 발생했습니다.
그래서 이번에는 '노이즈(잡음)'을 일부러 넣는 것입니다. 이게 무슨 말이냐면, 알고리즘에 일부러 노이즈를 넣어서, 일부로 한번씩 반대 방향으로 '튀어오르게' 설정하는 것입니다. 이렇게 설정한다면, 지역 최소값에 도달하더라도 약간의 확률로 반대 방향으로 뛰어오르니까, 극소값을 탈출할 수도 있는 것입니다! 물론 반대로 튀어오르는 정도를 얼마나 조절하느냐에 따라서, 너무 작게 잡아버리면 극소값에서 살짝 위로 올라갔다가 다시 도로 돌아오는 문제가 생기거나, 혹은 너무 크게 잡아버리면 아예 전역 최소값도 지나쳐버리고 이상한 데까지 가버릴 수도 있겠지만요.
https://www.mltut.com/stochastic-gradient-descent-a-super-easy-complete-guide/
이제 파블로프 전략으로 넘어가보죠. 여러분 혹시 팃포탯 전략에 대해서 들어보신 바 있으실까요? 아마 이름은 잘 모르겠지만 그 내용은 듣자마자 아주 쉽게 이해할 수 있을 것입니다. "눈에는 눈, 이에는 이" 전략입니다.
팃포탯 전략은 상대방이 배신을 때리면 나도 배신을 때려주고, 협력을 하거나 도움을 주면 마땅히 그 대가를 주거나 혜택을 이쪽에서도 제공하는 전략입니다. 특히 '죄수의 딜레마' 게임을 통해서 이 팃포탯 전략의 유용성을 확인할 수 있습니다.
http://kgunews.co.kr/m/view.php?idx=2771
죄수의 딜레마에서 가장 특징적인 부분은 서로가 협력을 하면 모두가 이득을 보고, 내가 자백(협력)을 했음에도 상대방이 묵비권(배신)을 하면 나만 큰 손해를 보는 구조입니다. 그래서 상대방의 행동을 예측하는 것이 굉장히 중요합니다. 특히 흥미로운 점은, 각자의 개인 차원에서만 전략을 확인하면 배신을 하는 것이 항상 유리하다는 판단으로 이어지기에, 모두가 배신을 때리고 모두가 불행해지는 결과로 직행한다는 점입니다.
팃포탯은 상대방의 제안을 그대로 복사하며, 나만 혼자 독박 쓰는 일을 방지하는 것이 주된 핵심 사고입니다. 상대가 협력을 했을 때 나 또한 협력을 한다면 모두에게 이익이 되고, 상대가 배신하면 나의 경우에는 협력보다는 배신이 더욱 안전하다는 논리입니다.
저도 깊이 있게 찾아본 적은 없지만, 여러 전략을 가지고 경쟁적으로 시뮬레이션을 돌려서 1등을 하는(그러니까 득점을 많이 하는) 게임을 시켜보는데, 단연 팃포탯이 간단한 원칙임에도 불구하고 1등을 하거나 매우 높은 성적을 거두었다는 거에서 굉장히 흥미로운 전략으로 화자됩니다.
저 또한 비슷하게, 이 전략을 알기 전에는 상대가 배신을 때리면 나 또한 뒤통수를 후려갈겨버리고, 철저히 보복을 해왔으며 저에게 협력하는 분에게는 어떻게서든 그에 상응하는 보상과 감사를 드리곤 하였습니다.
https://www.youtube.com/watch?app=desktop&time_continue=4&v=iPEZ83bwKec&feature=emb_logo
그런데 팃포탯에는 매우 치명적인 약점이 하나 있습니다. '오류 가능성'이 바로 그것인데, 보통 이런 전략을 시뮬레이션 할때는 매우 경직되고 완벽한 조건에서 실행합니다. 팃포탯 전략을 체택한 알고리즘은, 상대 알고리즘이 이전에 어떤 선택을 했는지 분명하게 알고 있기에, 거기에 대해서 맞대응을 시작합니다.
근데 이런 상황에서 만약에, 실수로 상대 알고리즘의 선택을 거꾸로 기억하는 순간 무슨 일이 벌어질까요? 상대가 배신을 했음에도 협력했다고 잘못 기억하는 경우 나는 계속 협력만 할 것이고, 상대 알고리즘은 자신에게 이득이 된다는 이유에서 배신을 계속 할 것입니다. 그럼 팃포탯을 체택한 알고리즘은 파국으로 치닫습니다.
굉장히 간단하고 분명한 원칙은 강점이지만, 특히 이 세상은 단지 하나의 이론만을 가지고 설명하기가 힘듭니다. 바로 '불확실성'이 존재하기 때문입니다. 컴퓨터 알고리즘이야 굉장히 깔끔하고 엄밀하게 정리되고, 다른 변수를 다 배제한 매우 간단한 상황에서 게임을 진행하지만, 이를 인간 사회에 그대로 대입해서 쓰기에는 문제가 있다는 것입니다.
제가 이대열 교수의 <지능의 탄생>을 읽어보았는데, 장기적인 관점에서 보았을 때는 팃포탯보다 더 강력한 전략이 바로 파블로프 전략(혹은 너그러운 팃포탯?)입니다. 자세히 설명하면 길어지니까 아주 간단히 요약을 하자면, 혹시 내가 위의 상황처럼 실수를 하고 상대의 선택을 잘못 기억하는 경우가 생길 수도 있으니까, 중간에 한번씩 일부러 전략을 바꾸고 관찰을 하여 전략을 재정립하는 것입니다.
단순무식하고 경직된 팃포탯 전략의 경우 한번 삐끗하는 순간 나락으로 떨어지지만, 파블로프 전략은 중간에 유연하게, 불확실성을 의도적으로 채택함으로써 이런 심각한 파국에서 벗어날 여지가 큰 것입니다. 내가 실수를 해서 손해가 크더라도, 팃포탯은 그냥 게임이 끝날 때까지 계속 손해만 나겠지만, 파블로프 전략은 한번씩 나의 전략을 뒤집고 관찰을 하는 중간 점검을 하여 끝까지 배신만 당하는 일을 방지한다는 것입니다.
그래서 특히 일회성이 아닌 다회성, 여러번 게임을 하는 상황에서는 파블로프 전략이 오히려 더 좋은 결과를 얻었다는 설명입니다. 좀 신기하지 않나요?
https://blog.naver.com/arete_minzee/220561381234
이제 서로 달라 보이는 두 가지 소개한 개념들을 한번 합쳐서, 저만의 재해석을 해보겠습니다.
일반적으로 컴퓨터과학, 컴퓨터공학에서는 일관성을 매우 중시합니다. 저도 과거 <수국비>에서 귀에 딱지가 생기도록 반복 강조하였듯이, 우리는 어떤 유형의 문제에 대해서 그에 대응하는 전략과 풀이를 미리 연습하고 계속 각인을 시켜야 합니다. 저도 그랬지만, 공부 못하는 친구들은 한달 전에는 이렇게 풀고, 어제는 요렇게 풀고, 오늘은 또 저렇게 풉니다. 풀이와 사고 과정에 일관성이 없다는 것이죠.
그런데 한번 상상해봅시다. 계산기를 두들겨서 1+1=2가 나오는데, 이건 어느 계산기를 써도 마찬가지여야 하며 항상 그래야 합니다. 만약에 1+1=1 같은 값이 나오는 계산기라면 우리는 그걸 불량이라고 하겠죠.
문제는 이 세상은 저런 간단한 식으로는 모두 표현을 할 수 없다는 것입니다. 그런 면에서, 이 세상은 불확실하고 유연하며, 변칙적이지만 컴퓨터 알고리즘이나 트랜지스터는 상대적으로 경직되어 있으며 유연하지 못하고, 불확실성을 완전히 배제한다고 볼 수 있습니다. 여기서 문제가 발생합니다.
게임 이론은 어떤 전략을 취해야 내가 최대한의 이득을 볼 수 있을 것인가에 대해서 과학적으로 접근하는 경제학 분야입니다. 그런데 이 게임 이론을 현실 그대로 적용하기에는 현실이 너무 복잡하고 불확실합니다. 막말로 우리 대통령이 어제는 북한과 화해 제스처를 취하다가 오늘 갑자기 아침부터 술을 처먹더니 오늘은 북한과 적대적 대결을 부르짖는 식의 극단적인 불확실성이 발생할 수도 있다는 것입니다.
맨 위에서 불확실성(노이즈)를 일부러 집어넣어서, 무조건 아래로만 내려가는 것이 아니라 가끔씩 반대편 위로 점프를 하듯이 만들어서 가짜 최소값(극소값)의 함정을 벗어나는 알고리즘에 대해서 설명하였죠? 비슷하게 게임 이론에서도, 팃포탯보다는 중간 중간에 한번씩 멈춰서, 무식하게 이전 전략만 계속 고수하는 것이 아니라 변칙성을 줘서 한 번씩 나의 전략을 새로이 초기화하고 그 결과를 관찰하며 장기적인 이득을 도모한다는 파블로프 전략도 설명하였습니다.
저는 이 두 가지 서로 달라 보이는 개념이 굉장히 유사하다고 생각하였습니다. 바로 '불확실성'을 적극적으로 활용하여 이익을 추구한다는 점에서요.
아까 말했듯이 계산기는 1+1의 연산을 무조건! 2라고만 냅니다. 컴퓨터에 있는 트랜지스터는, 같은 입력에 대해서 항상 동일한 결과를 내는 일관성을 유지해야 하지, 혹시라도 다른 결과를 낸다면 불량품으로 간주되어 쓰레기통에 던져질 것입니다.
그런데 전 오히려 이런 경직성에 한번 변화를 주어보자는 것입니다. 알고리즘이나 트랜지스터에 '의도적으로' 노이즈와 불확실성을 가미하여, 복잡한 문제에 효율적으로 접근하는 방안을 생각해보았습니다.
이미 생물에 대해서 아는 학생들의 경우 돌연변이가 어떻게 진화로 연결되는지 잘 아실 껍니다. 바로 유전적 다양성이죠. 전 이것도 마찬가지로 불확실성이라고 이해합니다.
만약 무언가 양분을 흡수하는 바다에 사는 플랑크톤이 있는데, 얘네가 분열을 하다가 실수로 어떤 애는 특정 부분에 대해서 좀 더 특화된 식으로 약간 원본과 다르게 복제가 되었습니다. 그런데 정말 정말 운이 좋게도 아주 우연히, 그 돌연변이가 생존에 조금이라도 도움이 된다면? 그 개체는 상대적으로 다른 개체들에 비해서 더 환경에 잘 적응하여 양분을 많이 얻을 수 있을 것이고, 급격히 숫자가 불어나서 우세종이 됩니다. 진화는 이런 식으로 일어납니다.
비슷하게 아까 말했듯이 트랜지스터나 알고리즘에 일부러 불확실성을 넣어서, 한번 변칙성을 넣어보는 것입니다. 만약에 아주 만약에 이 변칙성으로 인해 다른 방식으로 계산한 과정이 더 효율적이고 최적의 결과에 좀 더 접근하였다면, 바로 그 방법을 체택하는 것입니다.
무조건 컴퓨터는 동일한 과정에 대해서 동일한 결과만을 출력해야 해! 라는 경직된 사고에서 좀 더 유연성을 가미해보자는 것이죠. 그렇게 한 다음 다른 경직된 알고리즘들과 경쟁을 시켜보는 것입니다. 예컨데 해답을 찾아내는 속도라던지, 아니면 에너지 효율성이라던지요.
정서적 학대와 방치, 특히 아동기와 성장기에 겪는 아동 학대는 대부분의 정신 질환에 근본적인 원인을 유발한다고 널리 알려져 있습니다
https://www.doctorsnews.co.kr/news/articleView.html?idxno=150921
저도 우울증을 겪어봐서 알지만, 정신질환은 대체로 신경전달 물질의 교란(과대나 과소 분비)으로 일어납니다. 당연히 인간의 몸이 완벽하지는 않습니다. 가끔씩 암세포도 생기는데, 그것이 너무 소수이기에 우리 몸의 면역 체계가 바로 알아내서 파괴를 시켜버리기에 큰 암으로 이어지지 않는 것일 뿐이지, 우리 몸도 복제 과정에서 지속적인 불확실성과 오류로 인해서 문제가 조금씩 발생합니다.
정신질환은 그런 오류가 너무 커져서, 일상생활이 불가능하고 매우 힘들어질때를 기준으로 합니다. 그러니까 강도의 차이가 있을 뿐이지, 누구나 성격적으로나 조금씩 정신질환을 가지고 있긴 하다는 것입니다. 병적인 수준은 아니지만 아주 가끔 분노에 미쳐버린다던지, 아니면 남들은 그냥 조금 우울하고 넘어갈 일을 더 오랫동안 우울감에 빠지는 사람이라던지요.
그러면 이런 좀 웃기고 황당한 상상을 해볼 수도 있습니다.
제가 앞서 트랜지스터나 알고리즘에 의도적으로 불확실성을 넣자고 했잖아요? 그럼 보통은 극히 일부의 오류만이 발생할 뿐이지, 모든 알고리즘과 트랜지스터가 이상해지는 경우는 잘 없을 것입니다. 그런데 아주 아주 가끔 엄청난 확률로, 거의 모든 트랜지스터와 알고리즘에 오류가 발생해서 겹쳐버리는 상황을 상상해봅시다.
마치 인간의 뇌세포에서 신경전달 물질이 대량으로 교란되어 심각한 우울증이 발생하는 것처럼, 컴퓨터도 가끔씩 너무 많은 알고리즘들이 동시다발적으로 오류를 일으키며 전혀 엉뚱하고 이상한 답을 내놓거나 적절한 성능을 내지 못하는 경우도 생길 것입니다. 이런 경우를 뭐라고 부를까요? 제 생각에는 '인공지능도 정신병에 걸렸다' 라고 할 수 있을 것 같습니다 ㅋㅋㅋ
최근에는 뉴로모픽이나 생체 모사, 모방 반도체처럼 인간과 비슷한 하드웨어와 소프트웨어를 개발하려는 연구가 많이 있습니다. 그런데 당연히 인간 뇌의 장점만을 가질 수는 없을 것이잖아요? 인간 뇌도 가끔 심각한 오류가 겹쳐서 정신병에 걸려서 제대로 성능을 내지 못하는 것처럼, 나중에 인간과 정말 비슷한 인공지능이 생긴다면 아마 인간처럼 인공지능만 걸리는 정신병도 생겨나지 않을까 하는 생각이 듭니다 ㅋㅋㅋㅋ
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
좋아요 0 답글 달기 신고
-
진정한 1타 수학 차영진, 영어 조은정, 수학 정상모 선생님 신규 입성 기념 전국...
-
[대성마이맥] 2015대입 최종지원전략 대성입시설명회 다시보기! 0
2015대입 최종지원전략 大成입시설명회 지난 50년간 수험생들의...
-
"내가 취약한 2과목 7주만에 끝낸다" 종로학원 재수선행반 모집
-
[홈페이지 바로가기] WizardU.co.kr [전화문의] 02-556-6580
-
전 영역 34개 강좌 무제한 수강! 예비고3을 위한 학습지원 혜택...
-
[대성마이맥] 2015대입 최종지원전략 대성입시설명회! 0
2015대입 최종지원전략 大成입시설명회 지난 50년간 수험생들의 승리를 이끌어...
-
단기 이해기반 실전형 수능 SKYEDU 성장률 1위 기념, 수능 필수 강좌 ‘0원’...
-
스카이에듀 온라인 성장률 1위 기념 EVENT 슈퍼위크, 매일 400명...
-
종로학원 모의고사, 대학수학능력시험 수학A형 문항 예상 적중 4
이번 2015학년도 대학수학능력시험 수학A형 주관식 28번 문항이, 지난 11월에...
-
온라인 성장률 1위 스카이에듀! 온/오프라인 1위에 빛나는 스카이에듀의 신규 국어,...
-
온/오프라인 1위가 제시하는 성공수능 성패의 기준 맞춤 전략 스카이에듀 1위...
-
"내가 취약한 2과목 7주만에 끝낸다"종로학원 재수선행반 모집, 11월...
-
예비고3으로서의 첫 모의고사인 11월 모의고사! 스카이에듀에서 11월 모의고사의...
-
──────────────────────────본 제휴사공지는 (주)디지털대성과,...
-
스카이에듀 + 대치동 + 서울대 논술 최강 라인업 스카이에듀 대치동 1위 논술 강의...
-
고1, 2라면 2016학년도 수능일까지 모든 강좌 20% 상시할인 스카이에듀 고1,...
-
MODU 매거진 11월호 표지모델 선발 이벤트...
-
2015학년도 수능 전, 마지막 최종점검인 10월 모의고사! 스카이에듀에서 10월...
-
MODU 매거진 11월호 표지모델 선발 이벤트...
-
오프라인 강의 100% 그대로! 스카이에듀 독점 공개! 대치동 명품 수리논술 차기옥...
-
스카이에듀에서 고1,2 학생들을 위한 최상위권 비공개 설명회(Super...
-
오프라인 영어 1위의 1등급 전략 ‘실전력 파이널 모의고사 패키지’with EBS...
-
2015 수능! 수험생들을 위한 응원 너를 위한 한마디 우리는 여러분을...
-
온ㆍ오프라인 1위의 초단기 성적 향상 전략 스카이에듀 D-60 All-in 성공...
-
2015학년도 수능 전, 마지막 평가원 모의고사! 스카이에듀에서 9월 모의고사...
-
수능 최저 기준 No, 내신 반영 No 한양대 합격 지금이 기회다! 한양대 모의논술...
-
MODU 매거진 10월호 표지모델 선발 이벤트...
-
[대성마이맥] 9평만점! 수시합격! 기원 반배송이벤트 0
대성 마이맥 9평 만점 수시합격 기원 반배송 이벤트! 9평만점!...
-
『쉽게 공부하는 숨마』한국사, 사회탐구 시리즈 출정~!!! 7
2014년 고1 적용 교육과정에 해당하는 와 , , , 과목의 '쉽게 공부하는...
-
2015학년도 수능을 앞둔 수험생의 최종 점검, 9월 모의고사! 올해 마지막으로...
-
[대성마이맥] 수시합격예측으로 전략적인 수시 준비! 0
하반기의 주요 입시 일정이 다가오고 있습니다. 수능 D-day도...
-
앞서가는 고1, 2를 위한 최적의 선택! 스카이에듀에서 평가원, 수능 기출...
-
단 6번의 수시 지원 기회! 합격을 위한 남들과 다른 수시 지원 전략 스카이에듀에서...
-
[대성마이맥] D-100 서로에게 힘이 되는 마음을 전해보세요! 0
당신은 누군가에게, 누군가는 당신에게 D-100 힘이 되는 사이 ...
-
MODU 매거진 9월호 표지모델 선발 이벤트...
-
수능은 코앞으로 다가왔지만 성적은 오를 기미를 안보이고 두렵기만 하나요? ...
-
믿을 수 없는 48시간의 자유! 스카이에듀 48 슈퍼프리데이가 돌아왔습니다! ...
-
오늘은 인천광역시 교육청에서 주관하는 7월 모의고사입니다. 스카이에듀에서는 수험생...
-
[대성마이맥] 이명학, 한석원 선생님이 여러분께 공부메시지를 전달합니다. 0
수능이 130여일 남았습니다. 가장 중요한 이 시점, 이명학, 한석원 선생님이...
-
단기 이해기반 실전형 수능 SKYEDU 성장률 1위, 최단기 ‘3위’로 신수능의...
-
이근갑, 이지영 선생님 등의 스타 강사가 1:1 직접 상담하는 최상위 1%를 위한...
-
고1, 2 누구나 강좌 20% 상시 할인! 스카이에듀 고1, 2 멤버십 이벤트가...
-
2015학년도 수능에서도 연계율 70%에 달하는 EBS! EBS 연계 문제 때문에...
-
[수능연계논술][자이스토리] 수리×수리논술 (Ver.2015) 오픈기념 선착순 50명 교재 무료 이벤트!! 0
[수능연계논술][자이스토리] 수리×수리논술 (Ver.2015) 오픈기념 선착순...
-
온, 오프라인 1타 선생님의 6월 모의고사 After 공부법 및 학습전략...
-
믿을 수 없는 48시간의 자유! 스카이에듀 48 프리데이 ▼스카이에듀 48...
-
6월 12일은 한국교육과정평가원에서 진행하는 6월 모의고사 날입니다....
-
[홈페이지 바로가기] WizardU.co.kr [전화문의] 02-556-6580