확률적 경사하강법과 파블로프 전략
아마 이번 제목은 바로 이해하는 사람이 거의 없을 꺼에요 ㅎㅎ;;; 제가 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 답글 달기 신고
-
소득분위 10분위중 8분위 이하 아마 거의 반?은 국장+전액장학(학교장학) 받아서...
-
어떻게 해결해야할까요? 누구나 열등감 하나쯤은 갖고있겠지만 제 열등감은 품고 살...
-
재수 문제집 0
이번 수능 끝나고 새로운 문제집 사고 싶어서 지금은 pdf 파일 a4로 프린트해서...
-
현역이고 시리즈도 겁나 많던데.. 미대라 수학은 안하고 국영지1세계사 만 하는데...
-
오늘 공부한 시간 - 3시간 42분 오늘 한 공부 수학 - 오르빗 70번까지 -...
-
그렇게하면 많이 안맞을까요? 의대생기부가 그나마 힘을 발휘할 수 있는 영역이 어디죠 치한약수 중에
-
얼버기 0
는 아니고 걍 잠 못 잠 ㅅㅂ
-
작수 무서운 점 2
19 22는 9평 물로 낸 후 다 방심시킨 뒤에 폭탄 던지고 1컷 84 떴는데...
-
님들 왜 안잠 1
-
저번주 목요일에 서민앱에서 신청해서 금욜승인나고 지금 ibk 계좌개설해서 오늘...
-
반수 최저러라 파이널 강좌로 김승리T 처음 들어봅니다 주간 학습 계획표 보면 EBS...
-
말이 되나 싶네 국어 그냥 호기심에 메가 낮은타수 분들 해설 봤는데 무슨 문학지문도...
-
국가장학금 기초수급자 아닌 이상 받을 수 있는 성적 커트라인 못해도 3.3/4.3...
-
ㅈㄴ 병신같긴 하다 휴르비 드간다….
-
그동안 쭉 의대생기부로 써왔음 차피 갈수있을만한 유일한 학종의대가 지역인재...
-
이번 9평을 기준으로 해봅시다 (1) 남들이 다 맞출법한데 혼자 틀린 문제 ex)...
-
옆에서 휴지 부스럭 거리고 재채기하면 많이 민폐죠…? 재채기도 코등 찌르면서 최대한...
-
이거에 양말만 갈아 신음 강민철 듣습니다
-
지역: 서울시, 과천시, 성남시, 용인시 과목: 수학 (미적, 확통), 물리학1 -...
-
농구를 그렇게했는데 겨울언제와
-
오늘 아침 8시부터 저녁 8시까지 끊임없이 콧물 질질 나고 재채기 했음 에어컨...
-
가을 옷 15
옯비언들도 가을 옷 사나요 다들 패션 취향 어떤지 궁금 일단 전 스트릿 조아해요
-
6평 집모 50 9평 현장 50인데 6평은 뭐 집모라 그렇다치고 9평은 헷갈리는...
-
진심 느끼고 싶지 않은 기분임…
-
그 무엇으로도 돌이킬 수가 없구나 이런 생각이 드는 것을 보니 잘시간이 온거같다
-
자야되는데 0
늦개자면 학교 가서 쳐졸걸 알면서도 폰을 놓을 수가 없다..
-
표점 상관없고 1컷이나 2등급만 맞으면 되는상황이면 기하가 꿀 아님?
-
수분감 어삼쉬사 0
어삼쉬사는 무슨 쉬사를 9~14, 20~21이라고 잡아뒀던데 11번부터 막히는...
-
패션 안경 살까 0
원래 도수 높은 안경 썼다가 렌즈 끼고 그나마 사람답게 생겨졌는데 그 이후로 안경...
-
근데 사탐임
-
ㅅㅂ 공군가기 힘들다
-
오르비 망했다
-
하
-
화작 기하 영어 물리 지구 순서 원점수 85 93(22, 26틀) 3 45(13,...
-
걱정 마셈 1
이번 비 끝나면 수능 공기 입갤임
-
9월 끝나가는데 30도가 말이되냐;; 자다가 모기 때매 깼는데 슬슬 무서워질 지경임
-
안 자는 사람? 2
왜 안 자용?
-
드뎌 다했다 0
집 가자 더럽게 힘들었지만 오늘치 총정리과제 다 맞아서 행복
-
되도록이면 정상인들하고만 교류하는 게 좋음 이래서
-
오늘의 망상 2
연애도 좀 하고 친구들이랑 농구도 좀 하고 아는 형들이랑 오랜만에 만나서 술 한 잔...
-
심한 발상보다는 기출에서 나왔던 발상이 꼬여서 나오는 문제가 많은 n제 추천해 주세요
-
사설 망: 문제 너무 이상한데 사설 잘봄: 평가원보다 쉬운데, 평가원 이렇게 싑게...
-
국어 기출 책 뭐풀죠 지금까지 평가원 기출 제대로 안풀어봄
-
오우난 2
?️
-
리미트 x->0 sinx 이거 구할때 당연하게 0 아닌가요? 이걸 꼭 lim...
-
더러운 뒷골목을 헤매고 다녀도
-
잠니다 1
잠 잠니다
-
지금 생윤 시작.. 15
9모 치고 마지막에 생윤으로 과목 틀었는데 추석 지나고 이제 시작합니당당.. 최선을 다할게요..ㅜ
-
덕코가 안보여요
-
반박시 아알못