확률적 경사하강법과 파블로프 전략
게시글 주소: 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 답글 달기 신고
-
이때 시험응시하려하는데, 연논 10월 연휴끝나고임? 9월임?
-
너무 안일했다 0
생각해봤는데 문과 삼수는 정말 아닌거 같네 대학 합격해도 cpa cfa등등 자격증...
-
이감 모의고사 풀면 매번 문학이 날라가서;; 적당히 빠르게빠르게 들어보려고 하는데 괜찮나요
-
반박시 님도 화1함
-
나도 애니프사 추천받음 51
수능잘보면 블아 시작할 생각이라 블아 프사도 관심있음 맘에드는애있으면 천장쳐서라도 뽑고 시작할 예정
-
내년 수능 칠 예정이고 2년전 마지막 수능때 생명치고 대학에서 생명 좀 배운거...
-
과즙세연 좋아요 누른게 현우진쌤이였으면 어땠을거같음? 4
상상만해도 꿀잼이노 ㅋㅋ
-
나돌아오면 더러운 애니프사 육수새끼 플라스크 속으로 들어가버려!! 라고 댓글에 다셈 그냥
-
국어, 이 시기에 하지 말아야 할 5가지 (FINAL 개강 안내) 17
0. 오르비 1. 실모 양치기'만' 하기 대충 풀다 보면 뭐라도 되겠지 하면서 푸는...
-
지금까지 양승진, 꿀모, 이해원, 빡모만 풀었는데 최고난도 들어가려니까 엄청 겁먹음.. 할수이따
-
더 길고 더 간지나는 애들도 많은데, 순간적인 임팩트와 공간을 떠올리는 능력을...
-
옆에서 오르비 같은 커뮤에 절여진거 아니냐고 하더라고요...
-
빨리 전역하고 5
복학하기 전까지 토플 점수 만들어야 하는데 인생바빠요바빠 하고싶은공부도 하고 필요한...
-
26 경한 인문 1
26학번부터 경한인문 국어 35 수학 35 탐구 30이던데 미적하는게 훨씬...
-
나프사추천해줘 14
애니프사만받음 안끌리면 안바꿀거임
-
“레바논 동시다발 폭발 배후는 이軍 8200부대… 폭발물 삽입 참여” 0
“이스라엘 8200부대가 헤즈볼라에 대한 작전(폭발물이 삽입된 무선호출기)의...
-
3수는 안되는데 1
씨1발ㅋㅋㅋㅋ 하필 또 왜 교육과정은 좆같이 바뀌어서 군수생각도 못하게 하는것이며...
-
김기철t 1
개인적으로 고등학교 선배님이셔서 호감이심 고3 때는 이 분 인강도 들었었는데 좋았음
-
서울에서 공부한 지방학생은? 내가 지방출신이지만 위에 해당되는데 난 지방학생인거잖아
-
이게되네
-
이번 9모때 확통 찍맞 없이 80 나왔습니다. 기출 풀어본게 뉴런 문제들이랑 작년에...
-
인장 주작은 뭐야 19
-
변호사 만나면 우선 적극적으로 무죄로 대시하라던데 애프터까지 갈 수 있겠져?
-
오늘은 11시에 자야지
-
프사도 추천받음 19
애니프사 제외
-
수특수학 17
요 며칠동안 밀어둔 수특 수학 풀다보니 느낀건데 이거 표지 가능할 것 같음 정든건가?
-
N3 접수 완료 3
자신은 없지만 공부할 동기가 필요했어요,,
-
생명N제,실모 둘중에 뭘 하는게 좋을까요 ㅜㅜ 9평은 2등급입니다,,근데 운이...
-
이감 2세트면 충분하다
-
???: 아니 왜 벌써누르는데
-
사만다 화나네 0
왜 1회부터 3회로 갈수록 점수가 떨어지냐ㅠ
-
잘못된 길이 때론 지도를 만들었잖아 혼자 걷는 이 길이 막막하겠지만 느리게 걷는...
-
맛있겠다
-
얼버기도 박닝겐파친코여장부 어떰?
-
추석에 한 동태전 가시때문에 안먹으려다가 동태전의 맛을 못잊고 딱 전 하나먹었는데...
-
서울에 있는 대학은 서울대가 아닐까? 저는 서울(에있는)대학교 다녀요ㅎㅎ
-
헬스갈거임 0
-
[칼럼] 의대 교과 면접 분석 (2) 기출 풀이 #영남대 창의인재/의대생/MMI 면접 대비 1
저번 글에 이어서 이번엔 23년도 기출 풀이를 해보겠습니다. 우선 영남대는 문제...
-
나는 약대 희망하는 고2 익임 학교가 ㅈ반고라서 내신은 1점대 중반정도 되고...
-
어쩌면 대부분의 수험생이 수학 N제와 실모가 필수라고 생각하는건 마케팅에 당한것이...
-
얼라리요 0
기출 담아둔 usb가 없어졌네?ㅋㅋ;;
-
따먹자 33
이거 맛있었는데 어디간거지...
-
닉넴 추천 해주세요 14
닉이 너무 여르비인거 티나서 다른거 하려는데 생각 안남 참고로 이 닉도 내가 지은게아님
-
구문강의가 영어 긴문장 해석하는거 알려주는 강의임? 11
5등급도 들어도ㄱㅊ?
-
김성은한테 따이누
-
랑데뷰 모고 0
랑데뷰 모고 쳐보신 분들 어떰?
-
브레턴우즈 같은 게 수능에 다시 나올 수도 있겠죠? 6
전 왜 22수능 국어 등급컷이 80점 초반대인지.. 정말 이해할 수가 없어요......
-
인원은 언매 210명 화작 200명 정도 인데 문법은 저한테 어렵던데 화작이 나을까요