확률적 경사하강법과 파블로프 전략
아마 이번 제목은 바로 이해하는 사람이 거의 없을 꺼에요 ㅎㅎ;;; 제가 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 답글 달기 신고
-
다들 언매 공부 어케해요? 저는 기출풀때 한 20분 걸리는것같음… ㅠㅠ 그리고...
-
난 어짜피 최저러라서 다른사람 멘탈 다 터트리고 혼자서 고고히 수학 1을 찍을것이기...
-
내일 풀려고 하는데 등급컷이 어디 나와있는지 몰라서ㅠ 언매 확통 생윤 윤사만 알면 됩니당!!
-
후자가 더 나을까요? 다 안봤다는 불안도 있긴한데 냉정하게 지금은 후자가 맞는거 같은느낌 수탐기준
-
오늘의공부 2
국어 과학 연계 a+다 쳐내기 지문 읽고 이승모교재벅벗 수학 철맞이(사망)/서바...
-
45의 제곱은 2025다ㅇㅇ
-
화독문인데 2
화작이 그 시험의 컨디션을 결정하는거같음.......먼저푸는걸 잘해야 다음꺼에 맘이...
-
생윤 특 2
2번 선지가 ㄱ, ㄹ이면 정답일 확률 90%이상
-
댓글로 남기기 좀 그런 것들은 오픈채팅으로 주시면 감사하겠습니다 시간 날 때마다...
-
그래서 의머생 수능 기 불어넣어줌 수능 코앞인 거 체감 ㅈ되네ㅋㅋ
-
사문 질문 1
사회운동에서 특정집단만의 권리 보장을 요구하는것은 사회운동으로 볼 수 없다. 맞나요??
-
수시, 정시 둘다 대비로 수1,2 겨울방학동안 하려하는데요 저희 학교는 1학기 수1...
-
군수라 그런 듯?? 사실 적은 나이도 아니고 횟수로는 4수지만 사실은 미필 재수였던...
-
전글: https://orbi.kr/00064278177 오르비의 메인에 해당하는...
-
나는 실모벅벅하다가 뇌가 노릇노릇하게 타버린 기분이야 응애계산다틀려살려조
-
방t강의보다 강의수가 너무 차이나던데요 모자람없이 갈수있나요???
-
은둔고수들 대거출몰
-
(가)(나) 복합으로 나올것. 이 글은 성지가 됩니다
-
놀고왔다 3
인싸체험도 좋구만..
-
최근 평가원 성적 인증해달라 해서 9모로 했는데 만점이 백분위 99인가요?...
-
6모때 감각적 직관 믿고 케이스 찍기로 밀었다가 88맞았는데 9모때 듣는 쌤이...
-
두날개 다풀었다 9
-
현장에서 풀때 빡셌ㅈ겠죠
-
N>=4 특징 8
연계공부 하나도 안했는데 다 아는 작품들임
-
미적3점 0
미적 3점운 실모로 하고 4점은 서킷으로 커버가능할까요
-
독서론 어디감?
-
다를게뭐임 ㄹㅇㅋㅋ
-
원래 그런가요 맨날 6시간 자다가 9~10시간 잤는데
-
김승모 2회 3
김승모 2회 3컷 몇점인가요??? 알려주시면 감사하겠습니다!!!
-
질문인데 제가 글을 잘 기억하는 편이 아니라서 내용일치 문제 풀때 왔다갔다 거려서...
-
비연계인지 작년연계인지 구별 안 감? N수생은 연계 감각이 없어... 비연계도 나한텐 연계였어...
-
덜 평가원스럽달까…
-
아 나 또 실수하뮤ㅠ 병신인듯 퓨ㅠㅠ ㅇㅈㄹ하는 놈들 존나패고싶음 이게 그냥 적당히...
-
무조건임
-
셋 다 20수능 나형입니다.
-
1컷 한 44로 나와서 실수해도 괜찮게
-
득의양양하게 계획 세우고 1페이지 넘김 10번쯤 가면 15~20분 15번까지 가는...
-
수능샤프 고장 5
수능샤프 고장나면 새걸로 바꿔주나요?
-
개잘풀었다 이러면 갑자기 앞에서 이상한거 틀리더라 뒷페이지는 항상 다 맞는데
-
밴드로 수리해도 달그덕거리네 액땜하고 갑니다..
-
앱스키마 이때 딴거한다고 바빠서 강의 제대로 못듣고 책으로 영차함
-
당장 생각나는건 행정부 수반으로서 대통령 권한 헌법/법 개정 절차 기간 같은거
-
… 진짜 잘봐야겠다 떡 2박스 엿 1박스 초콜릿 1박스 성물 2 문상 1…. 엿...
-
국어 사설실모 안풀어도 괜찮을까요?? 올해기출풀면서 연계하면서 총정리과제7 풀려고하는데
-
대학 다니면서 재수 가능할까요?
-
어떡하지
-
[ (26요청) 국어 EBS 수특수완 9지문 초압축 예상 ] 3
내가 만약 EBS 연계를 안했다면 이 9작품은 보고 들어갈 것 같음 오르비 씹갓들...
-
올해는 꼭 의대간다 진짜로 아자!!!!!!!!!!!!!!!!!