확률적 경사하강법과 파블로프 전략
게시글 주소: https://ui.orbi.kr/00069212694
아마 이번 제목은 바로 이해하는 사람이 거의 없을 꺼에요 ㅎㅎ;;; 제가 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 답글 달기 신고
-
앞부분은 모르겠는데 유형편 빈순삽+요약 이쪽이 왤케 머리 아프냐 한글로 읽어도...
-
어떤 실모에서 아니라는데
-
EX는 아직 무리
-
왜 그런 거임? 정시에도 내신 반영ㅇㅈㄹ이라서? 에휴ㅅㅂ 고되다
-
시험 방식이 가져오는 부작용들은 수능의 중요한 문제였다. 17
치열한 경쟁은 학문에 대한 깊이 있는 학습이 아니라 합격만을 목적으로 하는 형식적...
-
답 끼워맞추기가 없음 사후적으로 판단하면 누가 해설을 못하냐며 끼워맞추기 엄청...
-
공대가지마라 4
하.... 가지마라.
-
서킷도 어떤가요? 살까 고민 중이예요
-
짱깨툰 개재밌네 4
한국웹툰 절대 안보는데 짱깨 무협툰은 봄 내용도 웃긴데 댓글창은 더웃김 ㅋㅋㅋ
-
7덮2 8덮1 9모2 9덮1 백호 모고는 1~3등급 나와요. 보통 2문제 못 풀고...
-
금테되니까 19
너무 눈에 띄는 느낌이야... 색감도 안맞고 은테가 되고싶구나...
-
닥치는대로 싹싹 긁어모앗더니 수학만 80개 남음 담주부터 1일 3모에 토탈리콜 돌려야징
-
35번 답 3
+ t를 -inf나 inf로 보낼 때 1, 5가 뜨므로 그래프 상으로 치역은 1 2...
-
노트정리하는데 글씨체가 너무 더러워서 노트정라가 노트정리 같지가 않음....
-
허근을 갖는 다항함수가 나온적이 잇나요? 엔제풀때 케이스 분류문제 나오면 딱히 허근...
-
수능때 저정도 나오면 미적 1컷 어느정도인가요?
-
평범한 대화 도중 갑자기 답장으로 “?” 이렇게 물음표 하나 보내는거랑 말끝에 ㅋ...
-
'시발점'이라고 하니 "왜 욕해요?"…학생들 문해력 부족 심각 24
'족보는 족발보쌈세트', '두발은 두 다리', '이부자리는 별자리' 교원 92%...
-
미적 기하 각각
-
남은기간동안 하루2실모를 할까요 아니면 하프모고n제를 할까요 3인데 1까지 올리고싶습니다
-
힐링이지 양모나 킬캠보다는 야 뭐
-
희대의 스캠
-
영어 쓰면 그냥 쭉 이어지던데 I want to know가 I want to kn ow 이런 식으로
-
1시간 거리인데 갔다와야하나 말아야하나
-
지금은 누워있음
-
날씨가 오락가락하니깐 체온조절이안되어서.. 잘만큼 잤는데도 이러네요
-
안녕하세요 저는 22학번으로 지금 3-2를 재학중인 대학생입니다. 어릴 때 부터...
-
이런 쪽지 종종 오더라
-
인서울은불가능인가
-
간혹가다 답 설명할때 뭔가 억지로 끼워맞춘다는 느낌 드는데 나만그런가
-
션티 0
션티쌤 겨울에 현강 뭐부터 시작하시나요..?
-
매일 하게 되는 건 아닌지..
-
작년에 서울대 대부분 가능인데 약대 감 근데 올해 다시 서울대 가랴니까 1년 버린거 같애서 뭔가
-
불안해서 막상 풀기 시작하면 노잼이라 40~42 안풀고 끝냄
-
현역 문과생 입니다 그래도 성적은 잘 나와서 설경이나 한의,약대 정도 생각중인데...
-
내년부터 한양대 정시도 내신 본다던데 수능 90에 학종 10이라던데…….….....
-
내 기억보다 잘생겨서 놀람
-
9모 92떴는데 워낙 쉬웠어서 실제실력은 2중반 정도 되는거같아요 지금 계속 워마...
-
나재수하기싫어....................
-
애들 조용할 때 해야하는데 조용한 시간이 별로 없음 강제 수스퍼거당함 ㅎㅎ..
-
수리논술 개념강의 싹 다 들어야되나요? 해당 대학 기출문제들 쫙 뽑고 정석 답안이랑...
-
수능이 점점 다가오고 있습니다. 수능 대비는 벼락치기로는 사실상 어려운 상황입니다....
-
2024.10.12.(토)은 수시모집 논술 시험일입니다 2
시험당일 외부인의 교내 출입은 밴이야 밴!
-
근데 올해 물2 아무리 잘봐도 물2 과외는 안할듯... 21
물리덕후 물스퍼거 학생들 무서움...
-
현재 고2인데여 뉴런 대신에 지금 시발점 대수랑 미적분1 새로 나온거로하고 바로...
-
1. 노력 부족 2. 재능 부족 이건 본인이 더 잘 앎 1은 본인도 하 공부 ㅈㄴ...
-
한국지리가 너무 안 나오네 사문은 잘 되는데 엉엉
-
본인한테 한없이 관대하고 남한테 매우 인색한 사람
-
심지어 틀린거 다 개념임 Adhd있나 진짜,...