Artificial intelligence, as it aims to mimic intelligence, must necessarily be analyzed through philosophical concepts that study intelligence.
물리학을 전공하고 로봇을 좀 알아보던 중 되게 물리학이란 학문에 불만이 많았다. 분명 물리학은 어떻게 우리가 움직이는 설명한다. 힘을 표시하고 어떻게 움직이는지 설명한다. 그런데 어떻게 움직여야하는지는 설명하고 있지 않다. 내가 왜 당신에게 힘을 가하면서 칼을 찌르지 말아야 하는가? 이게 중력이나 힘이나 에너지로 설명할 수 있는 주제인가? 윤리학의 문제이지 않은가? 지능 자체는 자연과학과 멀어보였다. 이에 지능 자체를 공부하기 위해 철학을 공부하기 시작했다. 여기서는 이미 몇천년전부터 지능을 연구해왔기 때문이다. 사유의 구조를 연구하는 논리학, 인식의 형식을 연구하는 인식론, 미적 판단을 연구하는 미학, 윤리학 등 전부 준비가 되어 있는 것이다. 특히 칸트를 공부하면서 이를 어떻게 인공지능에 적용할 수 있을지 알아보다가 인공지능 판단에 대해 설명불가능성과 연계시킬 내용들이 칸트의 순수이성비판 글귀들에서 보였다. 순수이성비판이란 우리 인간의 감성, 지성, 이성의 전체 능력을 지도로 그려낸다. 그리고 그 지도를 바탕으로 경험 넘어의 명제들에 대한 판단이 정말로 가능한지 불가능한지 연구한다. 인간의 전체 인지 능력을 간파한 나는 이 능력이 인공지능에서 드러나는지 비교하기 시작했고, 여러 주제들을 엮어 출판을 진행하였다.
Breaking the stereotype - Zero initialization leads to performance improvement.
내 또래에 비해서 역전파를 가장 많이 만진 사람중 한명이 나 일 것이다. 나는 물리학 학사, 철학 학사 학위를 가지고 있는데 내 성향이 그대로 드러난다. 대충 공부하는 스타일은 아니고 근원을 파고 들어가는 경향이 있다. 그래서 각 계열에서 근원을 파고들 수 있는 연구를 하는 학문을 전공했다. 인공지능도 이런스타일로 공부했는데 이게 어떻게 발현되냐면 코딩쪽으로 프레임 워크 없이 코드짜는 것을 연습하는걸로 드러나기 시작했다. 왜냐하면 CNN에서 커널이 이렇게 움직이면서 계산이 된다는 등 이미지 몇개보고 torch.nn.conv2d 코드 한줄로 구현하는 것 가지고는 내가 너무 답답함을 느꼈다. 잘 모르면서 구현하는 것 같았으니 말이다. 잘 모르니 자유롭게 변형도 불가능했다. 자유자재로 변형이 되려면 완전히 내가 이해해야한다는 생각을 가지기 시작했다. 자동차 엔진을 연구를 하는 사람이라고 하자. 어떻게 하면 더 좋은 엔진을 만들까? 간단하게 할 수 있는건 기존 엔진을 사서 거기다가 겉에 뭐를 간단하게 붙인다던지 하는 것이다. 그러나 내가 엔진을 완전하게 이해할 수 없어 엔진 겉에만 뭘 변형할 수 있지 내부를 뜯어서 내부를 수정할 능력이 안됨은 당연하다. 그러므로 근본적으로 공부하기 위해서는 만개나 되는 엔진 부품을 전부 뜯어서 전부 조립하고 뜯고 조립하는 것을 반복하는 것이다. 그러다보면 내부를 동영상처럼 재생하면서 역학을 완전히 이해할 수 있으니 말이다. 이렇게 프레임워크 없이 순전파 역전파 전부 코드 한줄씩 구현해서 대부분의 인공신경망을 구현해보았다. 그리고 또한 spiking neural network 를 잠시 연구한 적이 있는데 미분이 불가능해서 역전파를 근사값을 넣어줘야했다. 이걸 구현하다보면서 역전파 공식을 보았는데 이게 다르게 다가왔다. 역전파에서 그레디언트 값은 웨이트 크기에 영향을 안 받는 것이다 (물론 간접적으로 영향을 받는다). 웨이트 값에 -1을 넣어도 학습이 되어야하고 0을 넣어도 되어야하고 무한한 값을 넣어도 되어야하는 것 같았다. 이에 연습장을 꺼내 내부 동작을 그려가면서 해보니 이론적으로 0을 넣어도 학습이 되어야한다. 그러나 학계에서는 안된다고 주장한다. 여기서 충돌이 발생했다. 그러나 내 지식으로는 되어야했다. 이에 이것을 실험하고 증명하여 논문을 출판하게 되었다. 자세히 분석해보니 제로로 초기화하면 학습이 안되는 것은 사실이지만, 이걸 살짝 비껴가면 학습이 된다는 것을 발견했다.
Can AI outperform physicists in the field of physics? — Yes
직관적 물리란 물리학 없이 물리현상을 처리하는 동물의 능력을 말하는데 기존 연구들은 뉴턴의 법칙이라던지 간단한 물리학 내용들을 이해하는 인공지능을 구현했었다. 그러나 사실 내 시각에서는 물리학은 별로 할 수 있는게 많지 않다. 어떤 물리 현상을 수학식으로 세우는 것 부터가 일단 난제인 경우가 많다. 대부분의 물리학 교과서는 변수가 몇개 안되는 간단한 상황을 가정해버린다. 실제 현실 문제로 들어가면 변수가 매우 많고 어려워진다. 또한 수학식을 세우게되면 미분 방정식 형태로 표현이 되는데 이 때 미분 방정식의 해가 있는지 조차 모르는 경우가 대다수이고 풀기가 사실상 불가능한 경우가 99%라고 봐도 무방하다. 그래서 전세계 모든 수학과 교수들이 미분방정식의 해를 찾기위한 여행을 하고 있고, 응용수학 연구자들은 근사값을 찾기위해 노력한다. 양자역학 교재로 사용되는 교과서들도 서문에 선언을 하고 시작한다. 우리가 풀 수 있는 문제는 간단한 문제들 몇개 밖에 없다고 말이다. 태양계의 행성들의 궤도를 완전하게 계산해낼 수 조차 없는게 물리학이다. 여기서 발생하는 문제는 Many body problem 이라고 정의되고 학계의 연구 주제이다. "지구는 태양 주위를 돈다" 면서 마치 다 아는 것 마냥 물리학자들이 나와서 떠드는데 사실 근사값으로 계산하는 것이다. 소행성이나 인공위성이 지구로 충돌하려고 할 때 어떻게 표현하는가? 확률형태로 표현한다. 이는 정확히 계산이 불가능하다는 것을 뜻한다. 걸음걸이 조차 물리학으로 정확히 계산할 수 없다. 그래서 두발 로봇 구현이 기계공학에서 그렇게 어려운 것이다. 근사 값을 얻어내는 인공지능이 차라리 훨씬 강화학습 알고리즘으로 잘 구현한다. 그래서 공대생들은 수치해석이라는 근사값을 얻어내는 학문을 모두 이수한다. 기존 연구들은 단순한 뉴턴의 법칙 등을 이야기하는데 내가 보기에는 답답했다. 그들의 목표는 최대한 물리학적 지식을 가지는 인공지능을 구현하는 것이었다. 그러나 물리학 자체가 한계를 가진다. 그렇다면 내가 고민한게 물리학을 인공지능이 넘어설 수 있을까? 내가 보기에는 보여주기 쉬워보였다. 모두가 풀 수 없는 물리학 문제를 만들고 그걸 인공지능이 학습해서 푸는걸 보여주고 물리학을 이용해서 얻은 결과와 비교해 보이는 것이다. 이렇게 하여 물리학을 넘어설 수 있음을 간단히 보였다.
How can human knowledge be transferred to AI? — Through the input layer with an activation function.
대학생 때 의철학 관련한 공부를 개인적으로 했었다. 아마 헤겔 철학에 기반해서 의철학과 관련한 내용이었을 것이다. 현대 의학으로 넘어오면서 질병을 측정가능한 형태로 표현을 하기 시작했는데 이 때 질병은 질적인 성질이지만 질병의 유무를 양으로 표현하기 시작한다. 여기서 문제가 발생하는데 고혈압을 혈압이 120 이상이라고 정의한다면 119.99999999는 고혈압이 아닌가? 양은 완전하게 질적인 성질을 표현하지 못한다는 주장을 하는 것이다. 컴퓨터는 양적인 측면에서 정보를 처리한다. 즉 숫자를 사용한다는 말이다. 이런 기계한테 어떻게 질적으로 차이나는 내용을 뚜렷하게 양적으로 차이나도록 표현할까? 양적으로 큰 차이를 만들어내면 되지 않을까? 고민하였다. 이에 체온에 해당하는 36도 근처의 입력 값을 예를들어 10배 곱한다던지 해서 360 이란 값으로 바꿔버리는 아이디어를 제안했다. 35와 36이 35 과 360 으로 되어버린 것이다. 이를 학술적으로 표현하면 입력 층에서 비활성함수를 적용한 것이다. y=x 이지만 특정 구간에서는 y=10x 되는 비선형함수가 되겠다. 논문에서는 포함되지 않은 정보인데. 학습에 걸리는 시간이 입력 층에 적용한 후 최고 성능까지 도달하는데 상대적으로 매우 적은 시간이 걸렸다.