유머천국 코하비닷컴
https://cohabe.com/sisa/46985

딥러닝과 논리학 연구


안녕하세요. 저는 이기준이라고 합니다. 저는 제 친동생 이기환님과 함께 소프트웨어 연구와 개발 사업을 하는데요. 최근 우리가 딥러닝 연구를 시작하게 되었습니다.


우리는 프로그래밍을 잘하는 방법을 이렇게 생각하고 있습니다.

잘 쓰여진 코드를 읽고 분석한다.

내 입장에서 분석을 해보고 그 내용을 주석으로 단다.

분석한 코드를 다른 언어로 포팅해 본다.

이 과정에서 내가 분석한 것이 정확했는지, 내가 프로그램의 정보처리 과정을 제대로 이해했는지를 검증한다.

그렇게 배운 것을 바탕으로 해서 내가 원하는 소프트웨어의 목표를 기획하고 그 목표를 달성할 수 있는 정보처리 과정을 코드로 구현한다.


우리는 이것을 "프로그래밍의 왕도(王道)"라고 부릅니다. 우리는 이 방법을 이용해서 그동안 프로그래밍 실력을 꾸준하게 닦았습니다. 이번에 딥러닝을 연구할 때에도 같은 방법으로 접근해서 연구하고 있습니다.


우리는 2016년 11월 초부터 싱글 퍼셉트론, 다중 퍼셉트론 구현 코드를 분석하고 주석을 다는 일을 시작했습니다.

퍼셉트론은 인공신경망의 기본 단위입니다. 우리가 분석한 소스는 C++로 쓰여진 것이었습니다.


우리는 2주 정도 분석하고 주석을 다는 기간을 가졌고 그 후로는 포팅을 했습니다. 우리가 포팅 대상으로 선택한 언어는 “줄리아 Julia”였습니다. 우리는 Golang과 줄리아 중에 무엇을 선택할지 토론하는 시간을 가져 보고 최종적으로 줄리아로 해보기로 선택했습니다. 그 이유는 줄리아가 좀 더 수학적인 표현을 하는데 유리하다고 판단했기 때문이었습니다.


줄리아를 포팅 언어로 선택한 이유

비교적 최신 언어다.

퍼포먼스가 빠르다.

수학 계산을 하는데 편리하다.


그렇게 작업을 시작해서 2016년 12월 둘째 주에 싱글 퍼셉트론과 다중 퍼센트론 코드를 줄리아로 포팅하는 것을 완료했습니다. 우리가 포팅하고 주석을 단 코드를 공유하겠습니다. 깃허브 링크에 C++ 원소스 링크도 있습니다.

깃허브 링크


우리가 프레임워크를 사용한 재현 실험으로 학습을 하지 않고 굳이 포팅을 했던 이유

우리는 2016년 10월부터 몇 주 동안 텐서플로, 카페, 티아노, 케라스 등 프레임워크 툴과 소스를 사용해서 재현 실험을 했었습니다. 딥마인드 DQN 소스 재현도 했었구요. 그런데 그런 것을 해도 딥러닝에 대한 기본적인 원리를 이해하는데 이르지 못했습니다. 그래서 정공법을 택해서 기본 단위부터 분석하는 일을 했던 것입니다.


우리가 분석한 소스의 주석과 포팅한 소스를 공유하는 이유는 우리와 비슷한 입장에서 딥러닝의 기본 원리를 탐구하고자 하는 사람들에게 도움이 되기를 원하기 때문입니다. 그리고 관심 있으신 분들이 리뷰를 하고 의견을 피드백 해주시기를 바랍니다. 우리가 발견하지 못한 실수나 보완할 점이 있으면 언제든지 얘기해 주세요.


우리는 앞으로 CNN, RNN, DQN, NLP 기타 복합적인 강화학습 패키지를 포팅해서 구현하고 문서로 정리를 해볼 생각입니다. 관심 있으신 분들과 교류하기를 바랍니다.


이 문서의 아래 부분에는 우리가 연구하면서 작성한 연구 일지의 일부를 첨부합니다.


이기준 이기환의 연구일지

우리는 이 작업을 하면서 벡터, 행렬, 미적분, 위상수학 등 생소했던 수학 분야를 배우면서 정리하는 작업을 같이 하게 되었습니다.  


우리는 딥러닝과 인공지능을 연구하기 전부터 논리학과 수학을 연구하고 있었는데요. 그 주제에 "연역론"이라는 이름을 붙여서 연구하고 있었습니다. 이어질 내용에서 "연역론"이라는 단어가 나오면 "아, 이건 이기준 이기환님이 자기가 연구하던 주제에 이름을 붙인 것이구나."라고 생각하면 이해하기 편하실 것입니다.


우리가 일지에서 서술한 내용은 절대적인 사실이 아니고 우리가 딥러닝을 연구하는데 도움이 되는 세계관을 구상하면서 만들어 낸 가설입니다. 그렇게 이해해 주시고 합리적인 의견이 있으신 분은 피드백을 해주십시오. 감사합니다.


연역론이란 무엇인가?

연역론은 생각을 하는 방법, 사고방식이다.


연역론은 어떻게 이루어지는가? 연역론으로 생각하는 방법은 어떤 과정으로 이루어지는가?

재래식 논리학에는 정보처리가 이루어지는 과정에 대해서 생각하는 방식으로 절대적인 관점, 상대적인 관점이 있다.

관점, 세계관, 사고방식은 정보를 처리하는 방법이라는 뜻으로 셋 다 같은 뜻으로 사용한다.


절대적인 관점에 대해서 알아보자.

절대적인 관점이란 정보처리가 이루어지는 과정의 원인에 절대적인 요소, 절대적인 이유, 절대적인 근거가 있다고 생각하는 것이다. 이것의 예를 들어보자. 논리학, 수학에서는 “공리"가 있다고 가정한다.


그런데 공리가 있다고 “가정"한다는 말 자체가 모순이다. 공리는 근거를 대지 않아도 저절로 참인 절대적인 논리라는 뜻이다. 그런데 공리를 가정한다고 하면 절대적인 논리가 있다고 가상으로 생각해보자는 뜻이다. 그러므로 절대적인 논리가 있다고 가정하자는 말은 절대적인 논리가 없을 수도 있다는 말이다.


이렇게 모순된 말을 쓸 필요 없이 그냥 “앞으로 할 정보처리에 사용할 상위 규칙을 한 개 제시한다.”라고 하면 된다. 그렇게 하면 되는데 괜히 논리학과 수학의 권위를 세우려고 절대적인 공리 가정같은 주장을 하는 것이다.


이렇게 공리에 대해서 모순적인 제안이 나온 이유는 1900년대 초 “버틀런트 러셀"이 공리의 허구에 대해서 논증을 했기 때문이다. 논증이라는 말은 논리 증명이라는 뜻이다. 버틀런트 러셀의 이야기는 “로지 코믹스" 책에 나온다. 이렇게 버틀런트 러셀이 공리가 참이 아니라 허구라는 것을 논증하고 나서부터는 논리학, 수학계에서 더 이상 “공리가 있다.”고는 주장하지 못하고 “공리를 가정해 보자.”고 주장한다.



버틀런트 러셀이 공리의 허구, 공리의 오류를 논증하기 전에는 논리학, 수학계에서 “공리가 있다.”고 주장을 했었다. 절대적인 논리가 있다고 한 것이다. 절대적이라는 말의 뜻은 더 이상 어떻게 만들어졌는지 과정을 알아내지 않아도 되는 원래부터 그런 것, 당연히 그런 것이라는 뜻이다. 그러나 그런 것은 없다. 버틀런트 러셀은 논리학에서 “자기 언급의 오류” 때문에 공리가 성립하지 않는 것으로 증명했다.


그렇다면 연역론의 상대적인 관점은 무엇일까? 연역론에서는 절대적인 공리, 절대적인 정보처리 과정, 절대적인 요소, 절대적인 근거가 없다고 생각한다. 대신에 연역론의 상대적인 관점은 상위에 관계정보가 되는 규칙, 룰을 정하면 하위에서 확률적으로 결과정보를 만들어 내고 게임을 운영할 수 있다고 주장한다.



이렇게 연역론에서 주장하는 상대성과 지금까지 역사에서 사람들이 주장한 상대성은 다르다.

지금까지 역사에서 사람들이 주장한 상대성, 상대적인 관점은 절대성, 절대적인 관점의 반대 개념이었다. 그런데 생각을 해보자. 절대성이 허구다. 절대성 없다. 그런데 그것의 반대 개념이 어떻게 성립할 수 있는가? 그래서 옛날 사람들이 생각하던 상대성은 주로 혼돈, 카오스, 무질서 등이었다.


그런데 정말 그런가? 상대성은 혼돈, 카오스, 무질서, 무작위인가? 그렇지 않다. 우리는 빅데이터 머신러닝 딥러닝 연구를 하면서 절차지향과 객체지향 정보처리 과정이 무엇이 어떻게 다른지, 결과지향과 확률지향 정보처리 과정이 무엇이 어떻게 다른지 연구를 해보았다.


절차지향보다 객체지향 정보처리 과정이 상대적으로 더 상대성을 띈다. 왜냐하면 절차지향에서는 절대적으로 특정해 놓은 순서대로 정보를 처리하려고 하고, 그 순서에 해당하지 않는 입력이 들어오거나 변수가 발생하면 오류가 생겨서 프로그램이 제대로 동작하지 않기 때문이다. 반면에 객체지향은 다차원 조건, 사건에 대응해서 작동하도록 프로그램을 설계한다. 객체지향 프로그램이 더 오류를 줄일 확률이 높다. 실제로 객체지향 프로그램은 절차지향 프로그램의 오류를 줄이려는 목적으로 개발한 것이다.


결과지향과 확률지향 정보처리 과정을 비교해보자. 확률지향 정보처리 과정이 더 상대성을 띈다. 결과지향 정보처리를 할 때는 정확하게 특정을 한 결과정보를 필요로 한다. 그 조건이 맞지 않으면 오류가 생긴다. 그러나 확률지향 정보처리 과정에서는 많은 데이터에서 확률패턴을 추론해서 그것을 근거로 정보처리 판단을 해나간다.



객체지향 정보처리 과정, 확률지향 정보처리 과정은 더욱 상대적이기 때문에 “불확실성"을 증가시키는가? 그렇지 않다. 오히려 반대다. 오류를 줄일 확률을 높힌다. 정보처리의 정확도를 높힌다. 절대성의 관점으로 프로그램을 만들면 오히려 오류가 확률적으로 더 많이 발생한다.


절대성의 반대 개념으로 상대성을 설명하려고 하면 절대성의 관점으로 상대성을 해석하려고 하게 되어서 오류가 계속 발생한다. 대표적인 오류로 이런 것이 있다. 베르나르 베르베르라는 소설가가 자신의 책에서 이런 질문을 한 적이 있다. “만약 이 세상에 절대적인 진리가 없고 모든 것이 상황에 따라서 달라지는 상대적인 결과 뿐이라면 이 세상에 너와 나, 우리가 존재하는 것 자체가 무의미한 것이 아닐까? 그리고 이 세상이 전부 상대적이라고 생각하는 것도 상대적이라는 이름의 절대적인 규칙을 적용하는 것이지 않을까?”


베르나르 베르베르가 한 질문은 두 가지다.

만약 이 세상에 절대적인 진리가 없고 모든 것이 상황에 따라서 달라지는 상대적인 결과 뿐이라면 이 세상에 너와 나, 우리가 존재하는 것 자체가 무의미한 것이 아닐까?

이 세상이 전부 상대적이라고 생각하는 것도 상대적이라는 이름의 절대적인 규칙을 적용하는 것이지 않을까?

이 두가지 질문을 분석해서 대답해보자.


베르베르의 질문1: 만약 이 세상에 절대적인 진리가 없고 모든 것이 상황에 따라서 달라지는 상대적인 결과 뿐이라면 이 세상에 너와 나, 우리가 존재하는 것 자체가 무의미한 것이 아닐까?


이 질문을 보면 절대적인 관점, 절대적인 진리가 없다고 가정을 해놓고 이어지는 문장 뒷부분에서는 다시 절대적인 진리, 절대적인 관점에서 상대성을 논해 보려고 하고 있다. 절대성 없다고 가정해놓고 다시 절대성 관점으로 상대성을 풀이해보려고 하는 것이다. 그래서 오류다.


그리고 상대성에 대해서 논할 때에 상대성을 관계로 이해하는 것이 아니라 결과로 이해하고, 너라는 존재, 나라는 존재, 우리라는 존재를 예를 들어서 이해하려고 한다. 여기서 절대성 관점 외에 또 다른 것을 찾아낼 수 있다. 바로 결과, 존재에 대한 관점이다.


이 부분이 재미있는 부분이다. 절대성이 없다고 가정하고 진술을 해도 그 사람이 계속 절대성 관점으로 생각을 하기 때문에 오류가 계속 이어진다. 연역론에는 이 절대성 관점, 결과를 근거로 생각하려는 관점, 존재를 근거로 생각하는 관점을 존재규정이라고 부른다.



연역론 관점에서는 절대성이 없다. 존재가 없다. 결과정보는 과정을 거쳐서 만들어진 것이다.

한 번 생각을 해보자. 나라는 사람은 과정을 거쳐서 만들어진 것인가, 아니면 원래부터 이렇게 존재하는 것인가? 우리는 이미 답을 알고 있다. 나는 과정을 거쳐서 만들어졌고 살아가면서 유지하는 것이다. 나의 DNA 정보구조체에서 만들어낸 내 몸의 육체 정보구조체가 있고, 내가 생각을 해서 만들어 낸 의식 정보구조체가 있다. 그것으로 내 인생을 실시간으로 운영하고 있다.


이 우주는 과정을 거쳐서 만들어진 것일까, 아니면 원래부터 이렇게 존재하는 것일까? 이 우주도 과정을 거쳐서 만들어진 것이고 지금도 계속 그 과정을 이어나가고 있다. 그러면 연역론에서는 어떻게 생각하는가? 연역론에서는 상대성을 이렇게 정의한다.

연역론 사고방식, 연역론 세계관

정보를 조립해서 다른 정보를 만들어 내면 그것을 정보구조체라고 부른다.

다른 정보를 만들어 내는 정보를 “상위의 정보구조체", “관계정보"라고 부른다.

정보구조체를 통해서 만들어진 정보를 결과정보라고 부른다.

우리는 이 세계의 절대적인 진실을 모른다. 우리가 이 세계의 하위에서 만들어진 개체이기 때문이다.

그러나 우리는 관계정보를 만드는 방법, 더 상위의 관계정보를 알아낼 수 있다.

그래서 이 방향을 추적해서 더욱 상위의 관계정보, 확률적으로 더 잘 들어맞는 관계정보를 알아낼 수 있다.

상위 관계정보가 확률적으로 하위의 결과정보를 만들어 내는 관계, 영향을 주는 관계를 “동조관계"라고 한다.

정보를 조립해서 정보구조체를 만드는 방법, 관계정보를 만드는 방법이 있다. 그것들을 기본적인 단순한 패턴으로 정리한 것을 연역원리라고 한다.

많은 관계정보들이 간단한 연역원리 패턴을 조립해서 이루어진다.

연역원리가 절대적인 원리인 것은 아니다. 이것은 추론해서 알아낸 것이지 원래부터 존재한 것이 아니기 때문이다.

연역원리 상위에 더 간단한 조립패턴이 있을 수 있다. 연역론은 그것을 계속 연구해 나갈 것이다.

관계정보를 조립해서 결과정보를 만들 수 있게 하면 그것을 정보구조체라고 부른다.

정보구조체 중에 일부 결과정보 인풋 아웃풋, 조건 등을 재조립해서 다른 분야에서 사용할 수 있게 만들면 그것을 열린정보구조체라고 부른다. 열린정보구조체는 반조립 상태의 모듈이다. 그래서 이것을 예전에는 연역모듈이라고 불렀다.

정보구조체들을 많이 모아서 대규모 정보구조체를 만들면 그것을 시스템이라고 부른다. 그래서 정보구조체와 시스템은 같은 뜻이다.





베르베르의 질문2: 이 세상이 전부 상대적이라고 생각하는 것도 상대적이라는 이름의 절대적인 규칙을 적용하는 것이지 않을까?


이 질문을 보자. 이 질문은 이런 내용을 담고 있다. “상대적”인 것은 “절대적인 규칙없음"에 해당하는데 이 세상이 전부 상대적이라는 것은 이 세상에 상대적이라는 절대적인 규칙이 있다는 말 아니냐?”하는 질문이다. 연역론은 상대적인 관계라도 확률적으로 더 잘 들어맞는 관계, 확률적으로 영향력이 큰 관계가 있고 덜한 관계가 있다고 했다. 상대적인 관계에서도 절대적인 영향력이 발휘되는 것이 아닌 것이다. 위의 질문은 상대적인 관계를 다시 절대적인 관계로 해석을 했기 때문에 저런 질문이 나오는 것이다. 이렇게 아무리 논리 진술을 해도 사고방식, 관점이 바뀌지 않으면 같은 방식의 오류가 계속 일어난다.


과정, 패턴, 알고리즘, 행동, 행위

패턴, Pattern, 알고리즘, Algorithm의 뜻은 둘 다 같다. “정보를 처리하는 과정"이라는 뜻이다. 패턴은 비교적 좀 더 짧고 단순한 과정, 알고리즘은 비교적 좀 더 길고 복잡한 과정을 뜻한다.


연역원리 도식에 보면 “00을 하는 행위"라는 말이 나온다. “정보처리 과정”은 언어로 나타낼 때 행위로 표현한다. 행위와 행동은 같은 뜻이다. 문장에서 명사, 이름, 결과정보를 비우면 행위와 문법 깔맞춤이 남는다. 그러면 이 문장은 다른 결과정보를 끼워 넣어서 정보를 만들어 낼 수 있는 "열린정보구조체”가 된다. 언어에서 행위, 행동을 표현하는 동사와 문장을 깔맞춤하는 문법이 관계정보, 정보구조체 역할을 하는 것이다. 수학 식에서도 결과정보를 비우면 행위에 해당하는 수학 문법과 관계정보가 드러난다.


물질적인 현실 세계에서도 정보처리 과정은 행위, 행동으로 표현한다. 예를 들어서 컴퓨터의 경우 오실레이터라는 신호정보의 반복 복제행위를 하는 반도체를 이용해서 정보를 복제하고, 스위치를 이용해서 반복하는 신호를 특정한 패턴으로 만들고 메모리를 이용해서 그 정보를 저장한다. 그리고 저장해놓은 패턴을 다시 조립해서 이어붙이면 그것이 알고리즘이 되고 프로그램이 된다. 이것이 컴퓨터가 정보처리를 하는 방법이고, 어떤 패턴을 어떻게 조립해서 사용할지를 정하는 것이 컴퓨터 프로그램, 소프트웨어다.


정리를 해보자.

패턴, 알고리즘, 행동, 행위 전부 "정보처리 과정"을 뜻한다.

패턴은 비교적 좀 더 짧고 단순한 과정을 뜻한다.

알고리즘은 비교적 좀 더 길고 복잡한 과정을 뜻한다.

행동, 행위는 언어 문법과 물질세계에서 정보처리를 하는 과정에 사용하는 말이다.

언어 문장에서 명사, 이름, 결과정보를 비우면 행위와 문법 깔맞춤이 남는다.

그러면 이 문장은 다른 결과정보를 끼워 넣어서 정보를 만들어 낼 수 있는 "열린정보구조체”가 된다.

언어에서 행위를 표현하는 동사와 문법 깔맞춤이 관계정보, 정보구조체 역할을 한다.

수학 식에서도 결과정보를 비우면 행위에 해당하는 수학 문법과 관계정보가 드러난다.

물질세계에서도 정보처리 과정을 행위, 행동으로 표현한다.

예를 들어서 컴퓨터의 경우 오실레이터라는 신호 정보의 반복 복제행위를 하는 반도체를 이용해서 정보를 복제하고, 스위치와 메모리를 이용해서 반복하는 신호를 특정한 패턴으로 만들고 그 정보를 저장한다.

그리고 저장해놓은 패턴을 다시 조립해서 이어붙이면 그것이 알고리즘이 되고 프로그램이 된다.

이것이 컴퓨터가 정보처리를 하는 방법이고, 어떤 패턴을 어떻게 조립해서 사용할지를 정하는 것이 컴퓨터 프로그램, 소프트웨어다.


연역론을 연구하는 방법

연역론을 연구하는 방법은 이렇다.

이 세상이 모두 정보처리 과정으로 이루어져 있다는 것을 이해한다. 연역론의 상대성을 이해한다. 재래식 절대성과 상대성의 오류, 결과정보 오류, 존재규정 오류를 이해한다.


이 세상을 연역론 관점으로 관찰하고 분석한다. 내가 그냥 평소에 생활을 하면서 관찰한 것, 내가 공부하는 것, 내가 업무로 일하는 일 하는 것에서 관찰한 것들에서 정보처리 과정을 분석한다.


길고 복잡한 정보처리 과정을 좀 더 짧고 단순한 과정으로 분석하고, 이것들이 어떻게 조립되어 있는지 알아내서 정리한다. 길고 복잡한 과정을 짧고 단순한 과정의 조립으로 만들어 본다. 정보처리 과정을 분석할 때는 연역원리의 간단한 패턴을 참고해서 그것을 응용한다.


그러면 지금 이 패턴이 무엇의 복제인지, 무엇의 확장인지, 무엇과 대칭인지 혹은 두 개 이상의 중첩인지 하는 식으로 정보처리 과정을 비교하면 차이점, 같은 점을 알아낼 수 있다. 지금 이 패턴이 왜 그렇게 만들어졌는지, 어떻게 작동하는지 더 작고 자세한 과정을 알아낼 수 있다.


정보처리 과정을 분석하면서 그것을 열린정보구조체로 만들어 본다. 정보처리 과정을 언어로 만들어 보고 결과정보를 해제해서 열린정보구조체로 만들어 본다. 수학식을 서술과 도식으로 풀이하고 열린정보구조체로 만들어 본다. 컴퓨터 프로그램 소스를 분석해서 열린정보구조체로 만들고 다른 일에 응용해 본다. 정보처리과정을 알아내고 열린정보구조체로 만들면 다른 분야, 다른 일에 응용할 수 있다. 그것이 나의 창조적인 능력, 나의 노하우가 된다.


그렇게 해서 알아낸 것들을 사용해서 내가 하려고 하는 일에 정보처리 시스템을 만든다. 정보처리 성공확률이 높은 시스템, 자동대량 정보처리가 잘 되는 시스템을 만든다.


정리를 해보자.

이 세상이 정보처리 과정으로 이루어져 있다는 것을 이해한다.

연역론의 상대성을 이해한다.  

재래식 절대성과 상대성의 오류, 결과정보 오류, 존재규정 오류를 이해한다.

이 세상을 연역론 관점으로 정보처리 과정을 관찰하고 분석한다.

내가 그냥 평소에 생활을 하면서 관찰한 것

내가 공부하는 것

내가 업무로 일하는 일 하는 것

길고 복잡한 정보처리 과정을 좀 더 짧고 단순한 과정으로 분석하고, 이것들이 어떻게 조립되어 있는지 알아내서 정리한다

길고 복잡한 과정을 짧고 단순한 과정의 조립으로 만들어 본다.

정보처리 과정을 분석할 때는 연역원리의 간단한 패턴을 참고해서 그것을 응용한다.

지금 이 패턴이 무엇의 복제인지, 무엇의 확장인지, 무엇과 대칭인지 혹은 두 개 이상의 중첩인지 하는 식으로 정보처리 과정을 비교하면 차이점, 같은 점을 알아낼 수 있다.

지금 이 패턴이 왜 그렇게 만들어졌는지, 어떻게 작동하는지 더 작고 자세한 과정을 알아낼 수 있다.

정보처리 과정을 분석하면서 그것을 열린정보구조체로 만들어 본다.

정보처리 과정을 언어로 표현하고 결과정보를 해제해서 열린정보구조체로 만들어 본다.

수학식을 서술과 도식으로 풀이하고 열린정보구조체로 만들어 본다.

컴퓨터 프로그램 소스를 분석해서 열린정보구조체로 만들고 다른 일에 응용해 본다.

정보처리과정을 알아내고 열린정보구조체로 만들면 다른 분야, 다른 일에 응용할 수 있다.

그것이 나의 창조적인 능력, 나의 노하우가 된다.

그렇게 해서 알아낸 것들을 사용해서 내가 하려고 하는 일에 정보처리 시스템을 만든다.

정보처리 성공확률이 높은 시스템, 자동대량 정보처리가 잘되는 시스템을 만든다.


댓글
  • 이기준 2016/12/20 14:51

    추천 주신 분들께 감사드려요.
    제가 연구하고 있는 이 주제가 제가 아는 범위에서는 딥러닝에 대한 거의 최초의 배경적인 근거 이론이 될 수 있을 것 같은데요. 과학에 관심있는 분들이 많이 볼 수 있게 되었으면 좋겠습니다.
    코드 리뷰, 합리적인 의견 교류도 이루어졌으면 좋겠구요.

    (qePhyY)

  • 묻어가자 2016/12/20 16:03

    연역론이 뭔지 검색해보니 전부 "이기준의 연역론"으로 출처가 나오는데
    연역론은 본인이 창조한 학문이신가요?

    (qePhyY)

  • 긍정대답왕 2016/12/20 16:30

    오유는 참 신기해.. 내용은 1도 모르겠지만 추천주고싶어지니깐...

    (qePhyY)

  • 이기준 2016/12/20 16:34

    댓글 다는 동안에 베스트를 가게 되었네요.
    감사합니다. 제가 2013년부터 이 논리학 관련 주제로 오유에 글을 올려왔어요. 이 주제를 연구하게 된 것은 제가 20대 초반일 때부터니까 10년 이상 되었구요.
    옛날에 오유 과학 게시판에 글을 썼을 때는 사람들 중에 악플을 달거나 욕을 하는 사람들이 있었어요. 그럴 때는 참 마음이 아팠습니다. 그래서 2014년을 마지막으로 거의 2년 가까이 오유에 접속하지 않았어요.
    그리고 제가 연구하는 주제는 점점 진행이 되어서 지금은 쉬운 말로 여러운 주제를 설명할 수 있을 정도가 되었습니다. 이런 연구가 제가 하고 있던 소프트웨어 사업에도 도움이 되었구요.
    저는 앞으로도 예전처럼 계속 제가 좋아하는 주제로 연구를 할 거에요. 그러다가 과학계에도 도움되는 일이 생기면 좋겠죠.
    아무말없이 추천 해주신 분들께 감사드립니다. 옛날에 악플 받고 그래서 상처입었던 제 마음의 응어리가 풀어지네요.
    좋은 하루 되세요.

    (qePhyY)

  • 해다르 2016/12/20 16:34

    친동생 분에게 님자를 붙이셨는데
    평소에도 님자를 붙이시나요?
    뻘질문 죄송합니다...

    (qePhyY)

  • 추천은1초 2016/12/20 16:35

    이 인공지능의 앞잡이들!!
    암튼 앞잡이임 ..

    (qePhyY)

  • ObLiVion 2016/12/20 16:35

    이  글  인공지능이 작성한거 같네요. 그냥 제 생각이에요.   딥러닝이란 주제 때문인가.

    (qePhyY)

  • 이기준 2016/12/20 16:36

    @묻어가자
    딥러닝에 제가 연구하는 주제를 응용할 수 있다는 것은 딥러닝이 세상에 공개되고 난 이후에 알게되었어요.
    그 전까지는 논리학과 수학 주제로 연구를 했었습니다. 빅데이터, 머신러닝에 대해서는 2000년대 후반부터 알고 있었구요.
    연역론 연구회는 2012년 9월에 제가 만든 것이 맞습니다.

    (qePhyY)

  • 볶음양파 2016/12/20 16:49

    댓글에서 설명한 것처럼 보다 쉬운 말로 설명하려고 해서 그런지 엄밀하게 정의되진 않았지만 좋은 접근이네요.
    연역론은 게임을 어떻게 정의하는가? 부분에서는 프로그래밍 패러다임이랑 수학적 모델링 방법 등을 섞어서 설명했는데 이 부분은 틀린 부분도 있고 개선이 많이 필요해보입니다. (예를 들어 딥러닝이란~ 하고 설명한 부분이 있는데 현실적으로 딥러닝에는 지도학습이 많습니다. 머신러닝도 엄청 큰 개념이기 때문에 지금 설명한 방식으로 표현하기엔 부족해요.)
    하지만 단계를 밟아나가는 모습이 되게 좋은 것 같습니다. Computational Theory를 공부해보면 좋을 것 같아요.
    각 챕터 별 연계관계가 좀 더 매끄러우면 좋을 것 같기도 하네요. 수학 기호의 혼란은 약간 뜬금없이 들어간 느낌이 있달까요?
    연역론만 봐서는 이걸로 어떻게 딥러닝의 블랙박스 구조를 파악하겠다는 건지 잘 모르겠지만 앞으로 꾸준한 발전이 있길 기원합니다!
    저는 저 나름대로 파악 중인데, 저도 나중에 뭔가 정리가 잘 되면 공유해볼게요 :-)

    (qePhyY)

  • 볶음양파 2016/12/20 16:52

    아, 그리고 약간 설명의 레벨이 애매해 보이긴 합니다. 수학적 베이스가 있는 사람들한테는 적당히 인문학스러운 느낌의 글이지만 정말 초보적으로 접근하는 사람들에겐 애매한 정보성 글일 수 있을 것 같아요. 단순 정리용 글이면 뭐 아무래도 상관없겠지만 공유하고 토론하고자 쓰는 글이면 타겟층을 잘 잡아서 정리할 필요가 있을 것 같습니다. 위상 수학 쪽은 정리한 거 열심히 지켜보겠습니다 ㅎㅎ

    (qePhyY)

  • 통닭실종사건 2016/12/20 16:53

    프로그래밍언어 구성 이론과 컴파일러에 대해 공부해보셨는지요? 사실상 위에있는 대부분의 내용이(실제 개발 부분 제외) 이미 학문적으로 정리되어있습니다
    앞으로 개발시 활용하시면 좋을것 같습니다

    (qePhyY)

  • mayro 2016/12/20 16:56

    딥러닝 입문하시는분들에게 좋은자료가 될것같네요

    (qePhyY)

  • 철학김말이 2016/12/20 17:02

    무슨 말인지 도무지..

    (qePhyY)

  • 꼬추가큰사람 2016/12/20 17:03

    와 진짜 알기쉽게 잘 정리되어있네요

    (qePhyY)

  • cwc7419 2016/12/20 17:08

    죄송합니다.

    (qePhyY)

  • 코볼팅 2016/12/20 17:09

    흥미롭게 읽었습니다. 다만 아직 정립된 이론은 아닌거같으니 읽으시는분들 어느정도는 비판적인 자세로 읽으시길 권장합니다.
    그래도 딥러닝 개념 입문에는 좋은 듯 합니다.

    (qePhyY)

  • 미로정원 2016/12/20 17:11

    딥러닝과 논리학 저장

    (qePhyY)

(qePhyY)