Disqus for deduction-theory

이기준 이기환의 딥러닝 연구 2



관계 게임 모델로 본 퍼셉트론


요약

퍼셉트론은 딥러닝의 핵심 모델이다. 우리는 페드로 도밍고스의 비유 [2] 를 연역하여 관계 게임으로 퍼셉트론을 해석하는 모델을 만들었다. 그리고 퍼셉트론 모델에서 관계정보를 추론했다. 나아가 우리는 이 모델에서 퍼셉트론의 이면의 본질을 이해하고, 더나은 정보처리를 창조하는데 필요한 단서를 제시한다.


정의

우리는 지난 연구에서 우리가 이 세계의 정보처리를 보는 관점을 제시했다. 이 연구에서 우리는 우리의 이론인 "연역론" [7] 을 이 세계의 정보의 동조관계와 비대칭성을 사용해서 사물의 관계, 즉 상대성을 추론하는 이론이라고 설명했다. 이것은 전제된 공리, 결정론적 세계관 없이 열린 정보구조체를 만드는 것으로 달성된다. 열린정보구조체는 모델 혹은 게임의 룰과 유사한데, 결과정보가 아닌 정보 간의 관계를 기반으로 한다. 그래서 열린정보구조체는 유연하고 다른 분야에 쉽게 적용이 가능하다.


Figure1. Perceptron [10]


퍼셉트론은 벡터 수로 된 입력을 사용하여 기준에 따라 분류하는 함수로 알려져 있다. 페드로 도밍고스는 "퍼셉트론은 다수결이 우위를 차지하는 작은 국회와 유사하다." [2] 라고 하였는데 우리는 이 비유를 확장하여 퍼셉트론 모델을 관계 게임 모델로 풀이했다. 인간관계와 마찬가지로 퍼셉트론은 정보를 전달하는 과정에서 왜곡을 한다. 우리는 이 왜곡 행위를 인지, 기억, 상상의 근본으로 본다.


정보 이론에서 정보 엔트로피는 상태, 동일성, 평균적인 정보의 예측불가능성을 측정하는 단위이다. 정보이론으로 보았을때 퍼셉트론이 정보를 왜곡하여 더 많은 유사정보를 만들면 정보 엔트로피가 증가한다. 그런데 딥러닝에서는 다중으로 중첩된 레이어에서 정보의 왜곡이 일어나는데 오히려 정보예측가능성을 더 높이고 있다.


우리는 퍼셉트론이 어떻게 예측가능성을 높이는지 설명하고 앞으로 신경망의 정보처리를 발전시키려면 어떻게 해야하는지 다음장에서 다룬다.

퍼셉트론을 관계 게임으로 보는 모델



퍼셉트론은 정보를 전달하는 과정에서 왜곡한다. 각 입력과 퍼셉트론 사이의 연결 사이에는 정보를 왜곡하는 통로가 있다. 퍼셉트론 모델에서는 가중치라고 하는데 우리는 이것을 "통로관점"이라고 부른다. 그 이유는 퍼셉트론이 입력으로 들어온 데이터 그 자체보다 어떤 통로로 입력이 들어오는지에 더 큰 비중을 두기 때문이다. 그 뒤 퍼셉트론은 각 통로관점에서 왜곡된 정보를 합해서 확률적 결과정보를 만든다. 확률적 결과정보인 이유는 조건식 연산이나 결정론적 계산이 아닌 확률적 왜곡 결과이기 때문이다. 왜냐하면 고정된, 일반화된 결정론적 계산을 하지 않기 때문이다.


우리는 이런 통로관점의 관계를 인간 사회에서도 발견할 수 있다. 이것은 인지 편향, 선입견, 존재규정이라고도 불린다. 이것이 하는 일은 입력된 정보를 왜곡하는 것이다. 인지 편향, 선입견은 실제 현실이 아니고 각 개인의 경험과 감정에 의해 만들어진다. 통로관점도 마찬가지로 학습 경험과 무작위 값으로 만들어 진다. (감정은 무작위 값은 아니지만 두뇌에서 만들어진 또다른 확률적 결과정보이다.)


입력되는 정보는 문자, 이미지, 이진수 등의 결과정보이다. 퍼셉트론은 입력을 왜곡하여 확률적 결과정보를 만든다. 우리는 이 확률적 결과정보가 기존의 결과정보와는 근본적으로 다르고 이 확률적 결과정보가 열린정보구조체를 만드는 방법을 알아내는 열쇠라고 본다.




차이점을 알아보려면 딥러닝의 정보처리 과정을 본다. 오른쪽의 딥러닝 과정에서 연구자는 절대적인 규칙을 제시하지 않는다. 연구자는 라벨링하고 지도를 하지만 딥러닝 에이전트가 스스로 규칙을 찾도록 한다.




자세하게 보면 첫째, 연구자는 라벨과 데이터가 짝지어진 데이터셋을 만든다. 그리고 데이터를 입력하면 퍼셉트론이 통로관점을 통해서 정보를 왜곡한다. 이 과정에서 벡터 계산을 하면서 결과정보의 양식이 제거되고 입력정보 사이의 관계가 유사복제된다.  유사복제라고 부르는 이유는 동일한 결과정보를 복제하는 것이 아니고, 입력에 반응하여 왜곡한 정보를 만들기 때문이다.


퍼셉트론이 유사복제를 하는 과정에서 정보의 유사성과 비대칭성을 찾을 확률이 생긴다. 확률 결과정보는 퍼셉트론이 유사성과 비대칭성을 찾은 결과, 즉 정보 동조관계와 비대칭성 사이의 관계정보이다.


논리적으로 퍼셉트론은 데이터의 의미를 이해하지 못한다. 그래서 퍼셉트론은 명령형 프로그래밍에서와 같이 조건적으로 결과정보를 선택하지 않는다. 퍼셉트론은 데이터의 위상 차이를 사용한다.
만약 데이터 A가 데이터 B보다 수치상 더 높이 있고 가중치가 데이터 A를 더 인정하게 되어 있으면 출력값은 데이터 A쪽으로 몰아주게 된다. 사람으로 예를 들면 퍼셉트론은 “개념에 대한 이해는 없지만 결과적으로 긍정하거나 부정하는 진술을 하는 사람"과 유사하다.


마찬가지로 사람의 경우에서도 우리가 신체 기관과 두뇌를 통해 경험하는 현실 정보는 결과정보이다. "인지, 기억, 상상"은 두뇌 속 정보처리의 결과정보이다. 차이점은 인지와 기억의 경우 두뇌에서 사실이라고 믿고, 상상은 사실이 아니라고 믿는 것이다. 인간에게 믿는다는 것은 라벨링과 동일한 행위이다. 어떻게 라벨링 하느냐에 따라 우리는 어떤 것을 기억이나 상상으로 구분한다. 그래서 인간은 쉽게 속는다. 같은 이유로 신경망도 속을 수 있고 [4] 인지 편향을 만들 수 [9] 있다.

학습 과정

퍼셉트론을 학습시키려고 하는 연구자는 먼저 무엇을 학습시킬지 행위를 정의해야 한다. 그리고 학습 결과를 판단할 수 있는 정량 기준을 사용해야 한다. 학습을 할 때 일관된 명령 체계를 실행해야 한다. 이것이 현재 딥러닝 필드에서 학습을 보는 사고방식이다. 이와 같은 사고방식의 한계는 첫째, 학습대상이 자신이 만드는 결과를 이해하지 못한다. 둘째, 그러므로 학습 목표의 정의가 변경, 수정되면 이전에 학습한 가중치는 쓸모없게 된다. 셋째, 학습대상은 자신의 행위를 스스로 평가하지 않고 그저 학습한 것이 절대적으로 옳은 것으로 간주한다. 이것은 기존 딥러닝 필드가 가진 한계이기도 하다.


,


백프로퍼게이션의 과정을 예로 들어 자세하게 설명한다.
먼저 현재 상태에서 오류값이 줄어드는 기울기, 경향을 알아내려고 오류값의 변화량(dE) / 가중치의 변화량(dw)을 계산한다. 앞단계 레이어의 각 퍼셉트론에 대해서 연결된 가중치를 역으로 계산하여 해당 퍼셉트론에게 전파할 에러값을 산출한다. 오류값을 줄이는 경향을 따라서 퍼셉트론의 값을 조정한다.
다른말로 설명하면 퍼셉트론은 가중치로 생성된 다차원 공간에서 데이터가 위치한 관계를 왜곡해서 데이터와 동조관계를 가진 확률 결과정보를 만들어내는데 역전파법은 이 가중치로 생성된 다차원 공간의 왜곡된 정도를 미분 방식(목표를 달성하는 결과적인 모양에 맞춰 단계별로 깎아나가는)으로 조정하는 것이다.


이 과정에서 볼 수 있는 것은 퍼셉트론 개체가 연구자가 가진 사고방식의 겉모양을 흉내낸다는 것이다. 겉모양이라고 한 이유는 목표를 달성하는 결과적인 모양에 맞춰 위상의 왜곡 상태를 조절하기 때문이다.


Screenshot_2017-06-24_13-38-26.png
perceptron learning simulation by hand and back-propagation


우리는 우리의 관점이 어떻게 퍼셉트론 모델에 적용되는지 확인하려고 단순한 시뮬레이션 어플리케이션 [6] 을 만들었다. 우리가 이 프로젝트를 통해서 이해한 것은 가중치 공간이 변형되는 것, 데이터의 위상이 변경되는 것, xor이라는 정보처리 겉모양을 달성하게 되는 것이다.

퍼셉트론에서 추론한 관계정보



문장이 있을 때 거기서 결과정보에 해당하는 부분을 비운다. 결과정보를 다 비우고 나면 관계정보와 정보구조체를 추론해 낼 수 있다. 이 정보구조체를 사용해서 다른 정보를 만들어 낼 수 있다. 이것은 우리가 어떻게 열린정보구조체를 만들 수 있는지를 설명한 것이다. 육하원칙을 예로들면 결과정보는 "누가, 언제, 어디서, 무엇을"이고 관계정보는 "어떻게, 왜"이다.




우리는 같은 추론 방법이 퍼셉트론 모델에 적용이 되는지 실천해보았다. 퍼셉트론 모델에서 결과정보를 담고있는 인풋과 아웃풋을 비웠다. 그러고 나면 퍼셉트론 모델에 신경망 구조와 가중치가 남는다. 이것은 문장구조나 게임의 룰과 같은 열린 정보구조체로 작동한다.


우리는 퍼셉트론이 단지 사고방식의 겉모양을 흉내내는 것에 그치는 것이 아니라 사고방식을 유사복제할 수 있는 알고리즘인 것을 발견했다. 왜냐하면 퍼셉트론의 정보처리 과정에 열린정보구조체를 만드는 핵심 행위가 있기 때문이다.

시나리오 정보처리에 다가가기

나는 소설가 이탈로 칼비노가 제시한 “The Castle of Crossed Destinies” [1] 비유를 각색해 보았다. "나는 처음보는 알수없는 카드게임에 참여하게 되었다. 나는 게임의 룰을 모르고 다른 참여자에게 물어볼 수도 없고 오로지 다른 참여자가 하는 행위를 관찰해서 그들이 하는 것을 따라해야하는 것을 알게되었다. 왜냐하면 다른 참여자도 룰을 모르기 때문이다." 이 게임 이야기에서 참여자인 내가 할 수 있는 선택은 게임의 룰을 상상한뒤 그것을 실천하면서 생존과 보상을 얻는것에 도움되는 방향으로 개선하는 방법밖에 없다. 왜냐하면 절대적인 게임의 룰이 없기 때문에 나 스스로 게임 구조를 상상해서 만들어 내야 하기 때문이다.


이것이 인간이 사고를 하는 방법의 본질이다. 인간의 언어, 철학, 논리, 수학, 과학 등의 개념은 절대적 규칙이 아니고 단지 각 개인이 상상한 것을 현실에서 검증하고 개선해 나간 것이다. 우리의 생각 속에서 상상과 실제가 다른 점은 상상은 실제에 비해 정보구조체의 동조관계가 부실하게 되어 있는 것이다. 이 관점에서 우리는 각 개인의 상상력에 의해 창조된 게임이 중첩되어 사회가 형성되고 인류의 정보처리 방법이 발전한다고 본다.


어떻게 해야 퍼셉트론 모델의 정보처리 능력을 이 수준으로 끌어올릴 수 있는가? 우리는 퍼셉트론 모델이 게임의 구조를 상상하는 행위, 즉 열린정보구조체를 만드는 것을 할 수 있다고 설명했다. 다음 과정으로는 신경망에게 생각하는 방법을 가르쳐야 한다. 이것을 달성하기 위해 우리는 "시나리오 정보처리"라는 개념을 만들었다. 시나리오 정보처리는 각 정보처리 과정을 비교하고 새로운 과정을 만들고, 더나은 과정을 선택한다.


시나리오 정보처리의 반대 개념은 자동반응 정보처리이다. 이것은 기존의 신경망 학습모델의 방식이다. 이것을 자동반응 정보처리라고 한 이유는 입력에 즉시 반응하도록 설계되어 있기 때문이다. 이 정보처리 과정은 파충류 뇌와 유사하다. 이 방식에서는 강화학습 [8] 의 경우처럼 현실에 대한 시뮬레이션은 오직 연구자만 제시할 수 있다.


시나리오 정보처리의 과정은 다음과 같다. 첫째, 경험을 기반으로 해서 미래에 발생할 수 있는 정보처리 과정(시나리오)를 상상한다. 최근 딥러닝 연구인 Pathnet [3] 이나 Decoupled Neural Interfaces(DNI) [5] 는 하나의 신경망을 설계하고 학습시키는 또다른 신경망을 사용하는 방법을 제시한다. 이와 같은 연구에 대해 우리는 신경망을 설계하고 학습시키는 또다른 신경망을 시나리오 프로세서라고 본다. 그러나 해당 연구에서는 시나리오 프로세서가 아닌 해당 신경망을 관리하는 매니징 툴 정도로 가능성을 제한했다. 그렇게 생각하는 이유는 시나리오 프로세서의 역할이 대상 신경망을 목표 학습을 완료하는 것으로 종료하도록 설계되어 있고 현재 최대 보상 시나리오가 아닌 다른 시나리오를 유지하고 개발하는 과정이 없기 때문이다.


둘째, 시나리오 정보처리는 다차원 시뮬레이션 환경을 만든다. 그리고 각 시나리오 간의 정보 동조관계와 비대칭성을 찾는다. 그뒤 이 추론을 발전시켜 열린 정보구조체를 만든다. 이렇게 만든 열린정보구조체는 각 시나리오의 확률적 특징을 비교할 수 있고 현재 처한 환경에 맞는 시나리오를 효과적인 타이밍에 선택할 수 있다. 마지막으로 내부의 시나리오를 개선하여 시나리오가 가진 정보처리 성공 가능성을 끌어올린다.

결론

퍼셉트론은 전달 중에 정보를 왜곡한다. 이것은 열린정보구조체를 만드는 핵심 기능이다. 다음 세대의 신경망을 만들려면 신경망에게 스스로 생각하는 방법을 가르쳐야 한다. 우리는 이것을 위해 시나리오 정보처리를 제시한다.
그러므로 우리는 앞으로 딥러닝 필드에서는 시나리오 정보처리에 더 가까운 기술이 더 효과적이고 실제 성과를 낼 것이라고 본다.

참고문헌과 데이터

[1]  Italo Calvino.The Castle of Crossed Destinies.  Random House, 1973.
[10]  Frank Rosenblatt.  The perceptron:  A probabilistic model for information storage and organization in the brain.Psychological review, 65(6):386, 1958.
[11]  David E Rumelhart, Geoffrey E Hinton, and Ronald J Williams.  Learning representations  by  back-propagating  errors.Cognitive modeling,  5(3):1,1988.

저자

이기준
이기환


이기준의 완전쉬운 딥러닝 시리즈



후원 안내

글이 마음에 들고 저희를 후원하고 싶으시다면 아래 모네로 마이닝을 해주세요. 밑에 링크한 주소로 들어가서 START MINING 버튼을 누르면 님들의 컴퓨터가 일을 해서 저희에게 가상화폐 후원을 해줍니다. 하루종일 하면 백원 정도로요. 참고로 SPEED를 100%로 하지 말고 한 80%로 내리면 컴퓨터가 버벅거리지 않아서 좋습니다.

저는 후원을 받아서 제 개인 용도로 사용하지 않습니다. 저는 개인적으로는 이미 부족함 없이 잘살고 있습니다. 저는 앞으로 부모 없는 아동과 청소년을 돌보는 그룹홈(보육원)을 만들어서 후원할 생각입니다. 그리고 저는 컴퓨터 프로그래머인데 릴랏이라는 무료 코딩 교육 활동을 2016년부터 하고 있습니다. 후원해주신 것은 여기에 전부 사용할 것입니다.


이미 가상화폐를 갖고 계신 분은 저희에게 송금을 해서 후원을 해주실 수 있습니다.

Bitcoin: 1Jocrm8iKUtw4h19JttGLjj9ouQnDHrmpB
Monero: 45sQXZzqtFAKgJJgtQh3MuGYwUHHTb5bEZzvfdw3QhvSKpb1KMJmgnSQCVkWGcmL1PVzqVfV4bZH5D2C5uRfeWHLUf5pMkw

그외 기타 다른 방식으로 후원을 해주실 분은 저에게 메세지를 주십시오. 감사합니다.

Facebook Comments

Disqus Comments

글쓴이 소개

안녕하세요. 제 이름은 이기준이에요. 저는 Deduction Theory, LLC라는 소프트웨어 회사에서 CEO로 일하고 있어요.
저는 제 동생 이기환님과 함께 일을 하구요. 연구와 공부도 하고 있어요. 우리가 연구하는 주제는 논리학, 수학, 과학, 그리고 컴퓨터 정보공학이에요. 이 블로그는 우리가 연구하고 공부하는 주제를 설명하는 곳이에요.
그리고 저는 최근 오픈소스 공개 스터디 릴랏 프로젝트의 내용을 번역해 주실 자원봉사자를 모집하고 있어요. 제 생각에는 이 프로젝트가 전세계에 사는 어린이, 학생, 어른에게 도움이 될 거에요. 특히 저소득층에게요. 이 프로젝트는 무료에요. 사람들에게 도움을 주려고 기획했어요. 저는 나중에 저소득 국가에 학교와 고아원을 짓고 사람들에게 이 프로젝트 방식으로 컴퓨터 프로그래밍을 가르쳐 주고 싶어요. 그렇게 해서 나중에 그 사람들이 더 나은 직업을 가질 수 있게 돕고 싶어요.
아래에 링크한 릴랏 소개 페이지를 읽어 본 다음 이것이 도울 만한 가치가 있다고 생각되시면 저에게 말해주세요.
오픈소스 공개 스터디 프로젝트 Rellat을 소개합니다
원문 컨텐츠는 한글로 전부 제가 쓴 것이에요. 우리는 세계 모든 언어로 번역할 계획을 가지고 있어요. 감사합니다.
안녕하세요. 이기준님과 함께 Rellat 프로젝트를 진행하고 있는 이기환입니다.
제가 프로그래밍을 처음 시작한 것은 어린 시절 어도비 플래시 프로그램에서 애니메이션을 만들다가 게임을 만들고 싶어서 액션스크립트를 사용한 것입니다.
Rellat 프로젝트의 방법론은 제가 평소에 일을 하는 방법과 같습니다.
저는 사실 500줄 이상 넘어가는 코드를 보면 정신이 없고 잘 기억도 안됩니다. 지금도 간단한 코드 문법이 기억이 안나서 구글을 뒤지는 경우가 허다합니다.
대신 저는 이 코드가 어떤 사고방식을 사용해서 만들어졌는지, 어떤 관계정보를 사용했는지를 추적합니다. 이것이 연역론의 코딩 방법론, 코딩 스타일, 컴퓨팅 세계관입니다.
이 사고방식을 갖추면 더 나은 정보처리 방식이 무엇인지 비교할 수가 있습니다. 이것이 프로그래밍의 본질이고, 가장 중요한 것입니다.
나머지 프로그램의 빈공간은 구글과 스택오버플로우의 힘을 빌려서 채워넣습니다.
저는 여러분도 그렇게 하면 끊임없이 만들어지는 새로운 기술, 수만 줄의 코드 속에서 허우적거리지 않으면서 대규모의 질 높은 정보처리를 더 효과적으로 할 수 있다고 생각합니다.

Popular Posts

Visitor Map

Flag Counter