Disqus for deduction-theory

완전쉬운 딥러닝 2


안녕하세요. 이기준이에요.
제가 전에 썼던 완전쉬운 딥러닝에 이어서 거의 두 달만이죠? 그동안 저와 이기환님이 연구한 것이 좀 진행되었어요. 그래서 2편을 준비해 보았어요.



제가 그동안 쓴 딥러닝 관련 글의 목록

이 글은 유머 버전이 아니라서 좀 딱딱해요.

이 글은 유머 버전이에요. 비교적 쉽죠. 그리고 저는 앞으로 오유에는 유머 버전 위주로 글을 올릴 생각이에요. 딱딱한 글은 링크로 대신하구요.

이 글은 제가 사람들에게 질문을 받고 대답을 해주다가 시작하게 된 프로젝트를 강의하는 내용이에요. 여기에도 딥러닝 얘기가 나와요.


당부말씀

제가 본론을 시작하기 전에 당부 말씀 한 개 드릴게요. 제가 전에 쓴 글에서 악플과 비공감 테러를 많이 받았어요. 그래서 그 중에 정도가 심한 20명 정도를 고소했어요. 악플과 고소 내용 정리 링크
한 번 제가 받은 악플 중에 정도가 심한 것을 예를 들어서 보여 드릴게요.


저 댓글을 보니까 너무 심하다는 생각이 들었어요. 일부 사람들이 근거도 제시하지 않고 막무가내로 저런 댓글을 달더라구요. 그리고 이런 생각도 들었어요. 저 사람들은 집에 돈이 많으신가? 저거 형사소송 걸고 민사까지 걸 수 있는 사안인데.. 무슨 깡으로 저렇게까지 심한 말을 하는걸까? 그래서 저는 저런 분들이 자기 행동에 책임을 지면서 살 수 있도록 전부 고소를 해드렸어요. 인생은 실전이죠. 겪어 봐야 아는 거에요.


한 번 시원하게 까놓고 물어 볼게요.
제가 다른 사람들에게 돈을 받아서 사기를 쳤어요?
제가 객관적인 사실이 아닌 것을 객관적인 사실이라고 우겼어요?
제가 무슨 주장이던 그것을 절대적으로 믿으라고 했어요?
제가 저를 절대적으로 믿고 따르라고 했어요?
그런적 없죠? 그런데 왜 그렇게 난리세요?

저 일부 사람들이 저에게 하는 댓글이 도를 넘어서 너무 심한 거라는 것을 저 사람들은 알까요? 일부 사람들은 제가 가만히 있으면 되는데 대댓글로 말대답을 해서 싸움이 난 거라고 생각하더라구요. 그런데요. 한 번 생각을 해보세요. 이건 애초부터 쌍방이 싸우는 것이 아니에요.

저는 싸운 것이 아니라 제 글에 간섭을 하고 악성 댓글을 다는 사람들에게 "그러지 마세요."라고 말한 거에요.
제 글에 와서 건전한 과학 토론을 하는 것이 아니라 "내 마음에 안 드니까 네가 고쳐라.”고 윽박지르는 사람들에게 그러지 말라고 한 거에요.


제가 "싫어요. 이 부분은 저의 개인적인 영역이니까 이래라저래라 하지 말아 주세요."라고 말한 것이 잘못이에요? 그것은 저의 자유에요. 제가 대단한 건 아니지만 그정도는 알아요. 어떤 사람은 이러더군요. "이기준님만 자유 있어요? 나도 내가 하고 싶은 말 할 자유 있어요. 내가 이기준님에게 뭐라고 하던지 내 마음이에요. 왜 나보고 그러지 마라고 하세요?"

그런데요. 남의 자유를 침해하는 행위는 더 이상 자유가 아니에요. 자유라는 것은 남의 자유를 침해하지 않는 선까지만 자유인 거에요. 앵똘레랑스는 똘레랑스 아니에요. 다른 사람을 존중하지 않는 행위는 존중받지 못한다는 뜻이에요. 일부 사람들이 저에게 선을 넘어서 간섭하기 시작했을 때부터 이미 그 사람들의 행동은 자유가 아니에요. 그리고 거기에 대해서 제가 하지 말아달라고 하는 것은 정당한 요구에요.


그래서 이건 쌍방이 댓글로 싸움을 한게 아니라 일방적으로 님들이 저를 괴롭힌 거에요. 제 글에 와서 댓글로 저보고 개인적인 영역에 대해서 고쳐라 말아라, 이래라저래라 하는 것은 제 자유에 대한 침해에요. 님들이 하는 행동이 부당한 간섭이에요. 님들이 무슨 다른 생각을 하더라도 상관은 없는데 이게 현실이라는 말이에요.

"타인의 권리를 침해할 자유는 없다."라는 개념은 제가 지어낸 것이 아니에요. 현대 민주주의 사회에서 통용되는 자유의 기본 개념이에요. 악플 달면서 비아냥 거리는 분들이 잘 모르시는게 그분들이 하는 행동이 저를 괴롭히는 행위, 조리돌림, 왕따행위, 더 정확하게 말해서 범죄라는 거에요.


님들 댓글 달기 전에 이거 읽어보세요? 불편하면 뒤로 가기를 눌러서 나가면 되잖아요. 왜 그걸 참지 못하고 이렇게 간섭을 하고 나쁜 말을 하세요? 여튼 제가 이렇게 모진 댓글을 받기 시작하고 비공감 테러를 받으면서 생각을 해보았어요. "앞으로 계속 글을 오유에 써야 하나 말아야 하나.." 솔직히 위에 저런 식으로 마녀사냥식 댓글을 받으니까 무서운 마음이 들고요. 서러운 기분이 들었어요. "한국 사회는 여전하구나. 내가 이 나이 먹고 아직도 괴롭힘을 받는구나." 하는 생각이 들더군요."

저는 이미 한국 사회에 매여서 살고 있지 않아요. 미국인 아내와 결혼하고 자녀도 있구요. 앞으로 장기적으로 미국 국적을 신청할 계획이에요. 앞으로 한국에 왔다갔다 하기는 하지만 사업이나 이런 것은 미국과 유럽 쪽에서 할거구요. 제가 소프트웨어 업계에서 일하면서 만나는 사람도 대부분 미국인 등 외국인이에요. 제가 오유에 와서 제 생각이 옳다고 우길 이유가 뭐가 있겠어요? 그걸 해서 제가 얻는게 뭐 있다고요.

제가 저에게 너무 심하게 하는 몇몇 분들에게 얘기하고 싶은 건 "그러지 마세요.”라는 거에요. 님들이 자기도 모르게 한국 사회를 병들게 하고 있는 거에요. 님들이 저에게 하는 행동이 일베, 메갈하고 사고방식의 뿌리가 같다는 거에요. 자신의 고정관념이 절대적이라고 착각하고 거기에 맞지 않는 다른 사람에게 성질을 부리고, 다구리를 놓고, 화풀이를 하는 것이요.

그런데도 제가 오유에 글을 쓰는 이유는 가끔씩 응원을 해주고 말없이 추천해 주는 사람들 때문이에요. 제가 글을 쓰면서 이런 이메일을 한 개 받았어요. 이메일을 보내신 분은 저처럼 한국에서 학교 다닐 때 적응을 못하다가 미국에 가서 공부한 사람이었어요. 그래서 하는 말이, "30살이 되어서 이 나이에 공부를 계속 해야하나 고민했었는데 이기준님의 글을 읽고 큰 힘을 얻었습니다. 고맙습니다."라고 하더군요.


제가 지금까지 이런 식으로 제 글을 읽고 힘이 나고 도움이 되었다는 메세지를 받는 것이 한 스무 건 정도 되었어요. 그러고 나니까 이대로 중단하면 안되겠다는 생각이 들었어요. 제 글을 읽고 힘이 난다고 하잖아요. 그래서 포기하지 않고 계속 쓰기로 마음먹었어요. 제가 모범이 되어서 이겨 내는 모습을 보여 주어야 겠다고 생각하게 되었어요.

제가 부탁드리고 싶은 것은 두 가지에요.
  1. 저를 괴롭히는 분들은 더 이상 그러지 말아 주세요. 님들이 다는 악글은 이제 선을 넘어서 범죄에 해당하게 되었어요. 나중에 가서 후회하지 않도록 이제부터라도 자제해 주세요. 전과 생기면 인생 사는거 힘들어져요. 그리고 이미 고소 당하신 분들은 죄값을 치르고 반성하세요.
  2. 제 글을 좋아해 주시고 말없이 추천해 주신 분들께 감사드려요. 제가 한국을 떠나서 미국인으로 살더라도 님들에게 제가 알아낸 것, 제가 생각한 것을 공유하면서 살아갈게요. 눈앞에 보이는 세상이 전부라고 생각하지 말구요. 더 나은 미래를 우리가 스스로 만들어가요.

마지막으로 드릴 말씀은 추천을 주시던 분들께 드리는 것인데요. 제가 비공감 테러를 받아서 초반부터 게시물이 갑자기 블라인드 당하지 않도록 가능하다면 추천을 일찍 주세요. 이 부탁은 오로지 제 글을 좋아해 주셨던 분들에게만 제가 드리는 말씀이에요.


영어 번역

제가 처음 썼던 이기준 이기환의 딥러닝 연구에서 계획을 밝힌 것처럼 저는 그 글을 영어로 번역했어요. 그런 다음 다양한 곳에 올리고 의견을 받았어요. 의지력 짱이죠? 회사 일하면서 짬짬이 A4지 50페이지 짜리를 번역하고 교정하니 거의 2주가 걸리더라구요. 번역을 하면서 연구도 추가로 했어요. A Theory Explains Deep Learning

저는 이 글을 영어권 딥러닝 모임에 올리기 시작했어요. 그랬더니 한 사람이 저에게 이런 제안을 했어요. "이 글을 공식적인 논문(문서) 저장소에 올려 놓는 것이 어떨까요? 그래야 사람들이 인용도 할 수 있고 비판도 할 수 있으니까요. 도용 시비도 예방할 수 있구요."

오, 좋은 생각이다 싶어서 그래서 저는 즉시 그 일을 추진하기 시작했어요. 이쪽 계열에서 유명한 저장소가 arXiv라는 곳이 있어요. 저는 여기에 업로드를 하려고 과정을 시작했죠.


arXiv에 글을 업로드 하려면 추천과 분류검사를 거쳐야 하는데요. 추천은 쉽게 말해서 이미 arXiv를 이용하고 있는 연구자가 추천을 해주는 것이구요. 분류검사는 그 글이 arXiv에서 다루는 카테고리에 해당하는지 확인하는 절차에요. 자세한 내용은 arXiv - 위키백과를 참고하세요.

저는 먼저 논문을 검색해서 제가 연구하는 것과 관련이 있는 주제를 연구하는 다른 연구자를 한 명 찾아냈어요. 그리고 그 사람에게 arXiv 추천을 부탁하는 이메일을 보냈어요. 제 글 링크를 넣어서요. 읽어 보고 마음에 들면 추천을 해주세요 라고 한거죠.

연구자 Rohitash님에게 감사드려요. Namaste.

그랬더니 좋은 응답이 왔어요. 그렇게 추천을 받고 나서 PDF 파일을 만들고 업로드를 했는데 며칠 후에 분류검사 단계에서 이런 메세지가 날라왔어요. “귀하가 제출한 문서는 arXiv에서 분류하는 카테고리에 맞지 않아서 보류되었습니다."하고요. 자세한 규정을 읽어 보니 arXiv는 과학 문서 전문 저장소라서 제가 글에서 언급한 철학이나 논리학 주제를 다루지 않는다고 하네요. 그래서 저보고 다른 저장소에 업로드 해줄 것을 권유하더라구요.

그래서 저는 차선책으로 다른 저장소를 알아 보았어요. 철학과 논리학까지 받아 주는 곳을요. 그래서 찾아냈죠. 그곳은 바로 Philpapers였어요. 그렇게 해서 업로드를 마쳤어요. Philpapers 문서 링크


우리는 앞으로 과학 주제만 따로 떼어서 arXiv 재등록할 계획이에요. 이걸 지금 안 하고 나중에 하는 이유는 지금은 계속 철학 논리학 주제를 언급하면서 진도를 나가야 하기 때문이죠. 이렇게 영어로 글을 쓰고 올리는 과정에서 제가 한 미국인과 나눈 토론 내용을 보여 드릴게요. 제가 이걸 보여 드리는 이유는 토론에서 나온 질문과 답이 의미가 있었기 때문이에요. Elliott Collin Ploutz님과의 토론 정리


이걸 보면 무엇을 알 수 있어요? 우리는 외국인 앞에서 쫄지 않고 차분하게 우리가 가진 생각을 풀어서 전달하고 생산적인 토론을 한다는 것이에요. 우리의 주장이 맞건 틀리건 그건 나중의 문제에요. 토론을 하고 그 과정을 즐긴다는 것이 중요한 거죠. 우리는 저렇게 긴 토론 외에 짧은 코멘트와 메세지는 수시로 받고 있어요. 제가 외국 사람들과는 이런식으로 차분하게 학문에 대해서 토론을 하다가 한국 인터넷에 글을 올리면 일부 한국 사람들에게 다짜고짜 사기꾼, 정신이 이상한 사람 취급하는 악플을 받으니 얼마나 황당하겠어요?

잘 배운 미국인과 외국인들은 대개 선을 넘는 비난을 하지 않아요. 건전한 토론 문화가 정착이 되어 있기 때문이죠. 의견의 다름이 있더라도 이 정도 선에서 대화가 마무리되요.
"내 입장에서는 네 의견이 이해가 안된다."
"너의 주장이 이번에는 나를 설득하는데 실패한 것 같다."


그에 비해서 한국은 어떤가요? 일부 한국 사람들은 자기와 다른 의견을 만나면 참지를 못해요. 바로 커밍아웃하고 인신공격과 비아냥거림을 해버려요. 그게 자신의 내면에 잠재된 야만성과 폭력성을 드러내서 "누워서 침뱉기" 꼴이 된다는 것을 인지하지 못해요. 좋은 말로 그만하라고 주의를 주면 깨우치고 그만두어야 하는데 결국 막말을 하면서 끝까지 가려고 해요. 외국인 전문가 앞에서는 쫄아서 한 마디도 못할 사람들이 한국 인터넷 상에서 일면식도 없는 다른 사람들에게는 허세를 부리고 욕을 하고 비아냥거리죠.

제가 외국 사람과 토론한 내용을 올리는 이유는 해외 사람들이 한국 사람보다 절대적으로 잘났다고 생각해서가 아니에요. 해외에서는 똑같은 글을 읽고 이렇게 토론하는 사람들도 있다는 사실을 전달하려고 한 것이에요. 고정관념에 사로잡힌 일부 한국 사람들에게 "당신 눈에 보이는 것만이 이 세상의 전부가 아니다."라는 보편적인 사실을 일깨워 주려고 하는 것이에요.

제가 무조건 옳다, 제가 잘낫다고 하는 것이 아니에요. 해외에서 제가 잘한다고 칭찬해 주는 사람이 있으니까 제가 옳다고 자랑하는 것이 아니에요. 반대로 제가 하고 싶은 말은 이것을 보는 님들도 쫄지 말고 연구해서 자신이 생각한 것을 영어로 만들어서 올리고 전세계 사람들과 공유하고 토론하라는 말이에요. 자기는 실천하는 것이 없으면서 남한테 시비걸지 말고요. 저는 제가 모범이 되어서 보여 드렸어요. 입으로만 말한게 아니라 실천을 해서 증명을 한 거죠.


그동안 추가로 연구한 것들

자 이제부터 그동안 추가로 연구한 것을 풀어 보도록 할게요. 아마 이번 강의에서 이전까지 업계에서 발표된적 없었던 새로운 주장을 하게 될 것 같네요. 초반에는 논리 철학 이야기를 할 것인데요. 이게 좀 지루하게 느껴지더라도 관심을 갖고 읽어 주시면 뒤에 내용을 이해하는데 도움이 될거에요.


존재론과 결정론

먼저 존재론과 결정론에 대해서 강의를 해볼게요. 존재론과 결정론, 이것들은 사람의 사고방식이에요. 먼저 존재론부터 볼게요. 존재론은 "이 세상은 존재들로 이루어져 있다."는 주장이에요. 그런데 존재가 뭘까요? 존재란 "원래부터 그랬고 앞으로도 그럴 것"이라는 뜻이에요. 불변하는 고유의 성질을 가진 것이라는 뜻이죠.

그런데 이 세상에 원래부터 그런 것이 있나요? 간단한 논리로 예를 들어 봐요. 어머니가 있어요. 어머니는 원래부터 어머니인가요? 아니죠. 출산을 하거나 입양을 해서 양육행위를 해야 어머니죠. 행위를 해야 된다는 말에 주목해 보세요.

옛날 중국에 순자와 맹자라는 학자가 있었어요. 순자는 이렇게 말했어요.
"인간의 내면에는 본성적으로 악한 마음이 있다. 그래서 사람은 개인적으로는 수양을 하고 사회적으로는 예의와 법률로 다스려서 그 악한 마음으로 나쁜 행동을 하지 못하도록 다스려야 한다."
이것이 성악설이에요. 인간이 원래부터 "악한 존재"라고 주장하는 거죠. 존재론이네요?


맹자는 이렇게 말했어요.
"인간의 내면에는 본성적으로 선한 마음이 있다. 만약 물가에 아기가 놀다가 물 속으로 떨어지려고 하면 제정신을 가진 사람은 전부 아기를 구해 주려고 할 것이다. 이것이 인간이 가진 선한 마음이다. 우리는 개인적으로는 이 선한 마음을 개발하고 사회적으로도 선한 행동을 장려해야 한다."
이것이 성선설이에요. 인간이 원래부터 "선한 존재"라고 주장하는 거죠. 이것도 존재론이네요.


그런데 제가 연구하는 "이기준의 연역론"에서는 이렇게 주장해요. (이하 연역론이라고 함)
  1. 인간이 원래부터 선하거나 악한 것이 아니다.
  2. 물가에 아기가 놀다가 물 속으로 떨어지려고 할 때 그것을 지켜보는 사람에게는 게임이론에서 두 가지 선택지가 있다.
    1. 뛰어가서 도와준다.
    2. 보고도 가만히 있는다. 못 본 척 한다.
  3. 그리고 이 선택지를 실행하는 사고방식이 있다.
  4. 사람들이 "뛰어가서 도와주는" 사고방식을 실천하는 경우 그 마을은 구성원들이 서로 믿을 수 있는 사회가 된다.
    1. 사람들에게 마을의 필요 가치가 상대적으로 커진다.
    2. 사람들이 이 사고방식을 응용해서 다른 일에도 사용하면 이 마을은 점점 서로 상호협력을 잘 하는 마을이 된다.
    3. 점점 마을이 발달한다. 상호협력의 빈도가 늘어나기 때문이다.
  5. 사람들이 "가만히 있고 못 본 척 하는" 사고빙식을 실천하는 경우 이 마을은 구성원들이 서로 믿을 수 없는 사회가 된다.
    1. 사람들에게 마을이 필요 가치가 상대적으로 떨어진다.    
    2. 사람들이 이 사고방식을 응용해서 다른 일에도 사용하면 이 마을은 점점 서로 상호협력을 안 하는 마을이 된다.
    3. 점점 마을이 해체된다. 상호협력의 빈도가 줄어들기 때문이다.
  6. 인간이 확률적으로 "뛰어가서 도와주는" 사고방식을 가지는 경우가 많은 이유는 사람이 본성적으로 착해서가 아니다. 선택지는 언제나 두 가지가 제시되었다. 그것은 고대로부터 지금까지 변한 적이 없다.
  7. “뛰어가서 도와주는" 선택을 한 사람들은 마을을 번성하고 모여 살게 되었다.
  8. "가만히 있고 못 본 척 하는" 선택을 한 사람들은 마을을 유지하지 못하고 뿔뿔히 흩어져서 개인플레이로 살게 되었다.
  9. 마을을 번성하고 모여 사는 쪽이 기근, 재해, 전쟁, 기타 생존위기가 발생했을 때 개인플레이로 사는 사람들보다 살아남을 확률이 훨씬 높았다.
  10. 그래서 점점 "뛰어가서 도와주는" 사고방식(습관)을 가진 쪽이 많이 살아남고 자손을 번성하게 되었다. 상대적으로 개인플레이 하는 사람들은 자손을 남기고 생존하기 어려웠다.
  11. "뛰어가서 도와주는" 사고방식을 가진 사람들은 그들의 자녀들에게 이것을 가르치기 시작했다. 이것이 교육이고, 진화인류학자들이 말하는 밈이다.
  12. 그렇게 오랜 시간 동안 사고방식을 훈련하고 실천한 결과 통계적으로 다수가 "뛰어가서 도와주는" 사고방식을 학습하게 되었다. 그리고 "가만히 있고 못 본 척"하면서 이득만 챙기는 사람을 예방하려고 비양심적인 행동을 하는 사람에게 불이익을 주는 방법까지 개발하게 되었다.
    1. 맹자와 순자는 이 결론에 해당하는 상황만을 보고 각각 사람이 원래부터 그런 사고방식을 가진 존재라고 해석을 잘못한 것이다.
      1. 실제로는 행위가 먼저 있고 그에 따르는 확률적 결과가 있었는데 맹자와 순자는 결과를 보고 그것을 성질(존재)로 간주한 다음 그 성질 때문에 행위가 비롯되었다고 주장한 것이다.

자, 어때요? 제가 설명한 이 내용에는 게임이론과 진화론을 함께 사용했어요. 그러나 존재론은 사용하지 않았죠. 이것이 제가 하는 주장의 특징이에요. 제 주장을 간단하게 요약하면 "이 세상에 원래 그런 것, 즉 절대적인 존재는 없고, 개체의 행위로 그 개체의 특성이 확률적으로 결정된다."는 것이에요. 이것이 이기준의 연역론에서 주장하는 기본이에요.

우리는 이 행위의 선택지를 21세기인 지금도 제시받고 있어요. 세월호 사건을 보세요. 이 세월호 사건을 맹자가 제시한 이야기로 바꾸어 봐요. 세월호 사건을 보고 "아이고, 어떡해, 우리가 도와줘야 겠다. 앞으로 이런 일이 다시는 안 생기도록 막아야 겠다.”라고 생각하는 "뛰어가서 도와주는" 사고방식이 있어요. 그리고 그 반대로 "겨우 해상교통사고 나서 300명 남짓 죽은 것 때문에 왜 이렇게 나라가 난리법썩이냐. 좀 가만히 있지."하고 "가만히 있고 못 본 척 하는" 사고방식이 있어요.


2천 년 전에 공자 맹자 시대가 아니라요. 지금 2017년에도 똑같다구요. 우리가 선택할 사고방식의 선택지는요. 우리 사회의 다수가 "뛰어가서 도와주는" 사고방식을 실천하면 우리 사회는 그 방향으로 진행되고 더 나아지게 되요. 사람들이 세월호 뿐만 아니라 사회의 모든 분야에서 "뛰어가서 도와주는" 사고방식을 실천할 가능성이 높아지죠. 상대적으로요. 그렇게 해서 마을 구성원들이 서로 믿을 수 있는 사회가 되요. 마을이 번성하게 되죠. 이 경우에는 우리나라가 발전해요.


반대로 "가만히 있고 못 본 척"하면서 자기 이득만 챙기는 사람이 많아지면 우리나라는 점점 사회가 황폐해지고 해체되는 방향으로 가게 되지요. 사회 구성원들이 서로를 못 믿고 도와주지 않으니까요. 그러나 제가 하는 주장은 존재론이 아니에요. 사람 본성이 좋기 때문에, 사람 본성이 나쁘기 때문에 그런 것이 아니라 사람의 행동 선택 때문에 확률적으로 그렇게 되어간다는 거죠.


이 세상에 태어날 때부터 나쁜 놈으로 태어난 사람이 있을까요? 이 세상에 태어날 때부터 죄를 짓고 태어나는 사람이 있을까요? 태어날 때부터 죄를 지을 운명으로 태어난 사람이 있을까요? 말도 안되죠. 나쁜 생각을 실제로 하고, 그 행동을 실제로 해서, 범죄를 저질러야 죄인인거죠. 간단하잖아요. 생각을 하고 그걸 실천을 해야 그때부터 죄인이 되는 거죠.

아니, 그런데 인류 역사에 보면 그런 어처구니 없는 사고방식을 예전부터 사용하고 있었어요. 바로 원죄론과 운명론이에요.
  1. 원죄론: 사람은 날 때부터 죄를 짓고 태어났다. 사람은 원래 죄지은 존재다. 그래서 그 죄를 용서 받으려면 00을 해야 한다.
  2. 운명론: 사람은 날 때부터 00을 할 수 밖에 없도록 태어났다. 사람은 원래 그리될 운명을 타고난 존재다. 그래서 그 운명의 굴레에서 구원를 받으려면 XX를 해야 한다.
  3. 윤회론: 사람은 날 때부터 00을 할 수 밖에 없도록 태어났다. 그러나 그 사람이 XX를 하면 다음 생에 더 좋게 태어난다.
  4. 종말론: 이 세계는 모년 모월 모일에 멸망하도록 정해져 있다. 그래서 우리가 대비하려면 00해야 한다.

오, 이거 뭔가요. 역사 속에서 종교의 발달과 함께 만들어진 개념이죠. 그런데 우리가 21세기에도 종교를 믿는 사람들이 많은 것을 보면 무엇을 알 수 있나요? 바로 많은 사람들이 이 존재론 계열 사고방식을 가지고 있고 여기에 취약하다는 것을 알 수 있어요.


원죄론, 운명론, 윤회론, 종말론 모두 존재론 계열이에요.
  1. 존재론: 이 세상을 불변하는 특성을 가진 "존재"로 정의해서 이해하려고 한다. 이 행위를 연역론에서는 존재규정이라고 한다.
  2. 원죄론: 사람과 세상에 대해서 존재규정 한다.
  3. 운명론: 사람과 세상에 대해서 존재규정 한다.
  4. 윤회론: 사람과 세상에 대해서 존재규정 한다.
  5. 종말론: 사람과 세상에 대해서 존재규정 한다.

그리고 모든 존재론 계열의 사고방식은 절대론에 속해요. 절대론이란 "절대적인 원인" 때문에 이 세상이 이렇게 되었다고 생각하는 사고방식이에요. 자, 지금까지 말한 내용을 보면 존재론이 무엇인지 설명하고 사회에서 일어나는 의사결정을 연역론과 게임이론으로 설명했네요. 그리고 존재론 계열에 원죄론, 운명론, 윤회론, 종말론이 있었네요. 그리고 이것들은 종교의 발달과 관련이 있었네요.

음, 그런데 과학에는 절대론이 없을까요? 있었어요. 과학에서도 절대론과 존재론에 해당하는 개념이 있었어요. 이것을 결정론이라고 불러요.


결정론은 이 세상은 절대적으로 결정된 법칙이 있고 그 법칙에 의해서 모든 것이 일사분란하게 절대적으로 움직인다는 주장이에요. 존재규정을 사람이나 사물이 아니라 규칙에다 했네요. 참 재미있는 사실은 많은 과학자들이 종교를 끔찍하게 싫어한다는 사실이에요. 과학자들 중에는 무신론자가 상당히 많아요. 그런데 더 재미있는 사실은 그 과학자들이 믿고 있는 결정론이 사실 종교의 존재론과 논리적으로는 동일한 유형의 사고방식이라는 거에요. "전지전능한 신"이 "전지전능한 과학법칙"으로 대체되었을 뿐 존재규정하는 방식은 같은 거죠.

미워하다가 서로 닮는다는 말이 생각나네요.

저는 존재가 없다고 주장해요. 존재규정을 하면 오류가 가중되어서 누적된다고 주장해요. 결정론에서는 "원래부터 그런 것"을 공리라고 해요. 공리는 자명한 논리라는 뜻인데요. 자명하다는 말은 다른 근거 없이 자기 스스로 증명이 된다는 말이에요. 논리를 절대적인 존재로 만들면 이렇게 되요.


1800년대 말에 버트런드 러셀이라는 사람이 진짜 공리가 있는지 없는지, 공리가 어떻게 작동하는지 연구를 시작했어요. 그렇게 연구를 한 결과 뜻밖에도 "공리는 존재하지 않는다."라는 결론을 내놓고 말았어요. 여기에 대해서는 아래 문헌을 참고하세요. 일부 악플다는 사람들이 저보고 하도 레퍼런스도 없이 뭘 잘 모르면서 허황된 주장을 한다고 난리를 치길래 이제부터 본문에 대놓고 참고문헌 삽입하면서 진행할게요. 어디 누가 이기나 보자구요.

[1] Bertrand Russell (1919) "Introduction to Mathematical Philosophy". London: George Allen & Unwin. (ISBN 0-415-09604-9 for Routledge paperback)

참고로 이 사람은 다른 댓글 내용 때문에 저에게 이미 고소당한 분이네요.
여기서도 이러고 있었구나.. 고소장에 범죄사실을 한 건 더 추가해야 겠어요.

러셀은 쉬운 비유로 공리가 만들어 내는 모순을 이렇게 설명했어요.
  1. 모든 국민은 "이발사"에게만 머리(혹은 수염)를 깎아야 한다.
  2. 이발사 자기 스스로는 이발을 못한다.
  3. 그런데 이발사도 국민이다.
  4. 그러면 이발사 머리는 누가 깎아주나?

러셀의 "이발사 모순"을 묘사한 만화 "로지코믹스"

동양에서도 "중이 제 머리 못 깎는다."라는 비슷한 말이 있지요. 여기서 이발사를 공리라고 해봐요. 공리는 공리가 포함하는 세계의 모든 정보들을 공리를 근거로 만들어 낸 규칙으로 처리해야 해요. 그런데 만약 공리 자신이 그 세계의 일부라면 공리에 대해서는 누가 정보처리를 해주나요? 없는 거죠. 공리가 근거가 부실한 거에요. 공리가 원래부터 존재했던 것이 아니라 사람이 임시로 생각을 해낸 건데 과학자들이 그동안 "원래 그런 것, 절대적인 것"이라고 착각을 했던 거죠. 이것을 러셀이 주장한 이발사의 모순이라고 불러요.


저한테 레퍼런스 없다고 한 사람들은 구글번역 돌려가면서 열심히 읽어보세요. 요즘 구글 번역이 딥러닝 사용한 뒤부터 정확도가 80% 이상으로 상당히 높아졌거든요. 읽어보지도 않고 우기기 없기에요.

  1. 공리가 속한 이 세상의 모든 정보는 공리를 근거로 하여 정보처리를 해야 한다.
  2. 그런데 공리도 이 세상에 속한 정보다.
  3. 그러면 공리의 근거는 어떻게 증명하는가?
    1. 이전까지는 그냥 자동으로 증명된다고 우겼는데 실제로 해보니까 자동으로 증명이 안됨.

사실 이렇게 알아보려면 간단한 내용인데 왜 이게 1900년대가 다 되어서야 정리가 되었을까요? 과학자들 세계관이 존재론과 결정론으로 되어 있어서 그 사실을 눈을 뜨고도 보지 못했거나 어렴풋이 봤는데도 외면하려고 했던 거죠. 벌거벗은 임금님을 보고 벗었다고 말 못한 사람들처럼요.

여기에 대해서 제가 주장하는 연역론은 이렇게 설명해요.
  1. 이발사는 머리를 깎는 행위를 하면 이발사다.
  2. 국민들 중 누구라도 필요해서 머리를 깎는 행위를 하면 그 사람이 그때부터 이발사다.
    1. 이발 활동을 종료하면 더 이상 이발사 아니다.
    2. 이발 활동 능력이 없어지면 더 이상 이발사 아니다.
  3. 국민들 중에는 이발을 더 잘하는 사람이 있고 덜 잘하는 사람이 있다. 영 못하는 사람도 있다.
  4. 그래서 만약 이발을 잘하는 것이 목표라면 상대적으로 이발을 더 잘하는 사람에게 이발을 받아야 한다.

제가 주장하는 것의 요지는 절대적인 존재, 절대적인 논리, 절대적인 규칙이 없다는 거에요. 대신 만드는 행위가 있고 만들어 낸 결과물이 있다는 거죠. 이제 연역론의 이발사 얘기를 정보공학으로 바꾸어 보아요.
  1. 정보 중에 다른 정보를 만들어 내는 정보를 관계정보(이발사)라고 한다.
    1. 관계정보가 만들어 낸 정보를 결과정보라고 한다.
    2. 관계정보를 조립해서 정보구조체를 만들면 결과정보를 만들어 낸다.
  2. 무슨 정보든지 다른 정보를 만들어 낼 수 있으면 관계정보 역할을 할 수 있다.
    1. 다른 정보를 만드는 행위를 못하게 되면 관계정보 아니다.
  3. 관계정보 중에는 다른 정보를 더 잘 만드는 것이 있고 덜 만드는 것이 있다.
  4. 그래서 정보처리의 수준을 높이고 싶으면 상대적으로 목적에 맞는 더 나은 관계정보를 추론하고 조립해서 정보구조체를 만들어야 한다.

다시 이야기를 1800년대 말에서 1900년대 초로 돌려 보아요. 결정론을 믿고 있다가 낭패를 본 논리학자들과 수학자들은 약간 트릭을 써서 "러셀의 모순"을 우회하는 공리주의라는 것을 만들어 내요.
  1. 공리가 이 세상 전체에 적용되는 것이 아니라는 것은 인정한다.
  2. 그럼 대신 공리가 절대적으로 적용되는 세상을 가정해 보자. 그것을 공리계라고 부르자.
    1. 사실 엄밀히 말하면 공리를 가정한다고 하면 더 이상 공리라는 말을 쓰면 안됨.
    2. 왜냐하면 족보가 꼬이기 때문. 가정을 하면 가설이라고 하면 됨.
  3. 공리계가 성립하면 그 공리계에서는 절대적인 공리가 적용된다고 가정하자. 이것이 공리주의다.
    1. 공리주의의 조건
      1. 모든 정리가 그 공리계에서 얻어질 것
      2. 그 공리계에서 임의로 1개의 명제를 제외시킨 경우 이미 증명불가능하게 되는 정리가 존재할 것
      3. 그 공리계로부터 서로 모순되는 여러 정리를 증명하는 것이 불가능할 것


하, 그런데 쿠르드 괴델이라는 분이 나타서 핵펀치를 한 방 더 날리게 되었어요. 이분은 결정론자들이 피신처로 만든 공리주의가 모순임을 증명했어요. 자세한 내용은 아래 참고문헌 나가요. 저작권 만료 논문이니까요. 구글 검색하고 구글번역 돌리면서 읽어보세요.


[3] Gödel, Kurt (1931). “Über formal unentscheidbare Sätze der Principia Mathematica und verwandter Systeme I”. 《Monatshefte für Mathematik und Physik》

괴델은 공리주의를 성립시키는 세 번째 조건을 뒤집는 "공리계에 발생하는 모순 관계"를 증명했어요. 이렇게 결정론자들은 떡실신을 당하고 나서 그냥 아무 말 없이 가만히 있기로 했어요. 공리주의의 한계를 인정하고 모순 없이 정보처리가 되는 작은 분야만 조용히 연구하기로 한 거죠. 그래서 이런 기이한 현상이 생겼어요.

  1. 초중고등학교를 다닐 때까지는 재래식 결정론과 존재론 방식으로 만물에 절대적으로 적용되는 공리가 있다고 배운다.
    1. 사실 공리가 있다는 것을 가르쳐 주지도 않는다. 그냥 책에 나오는 걸 절대적으로 외우라고 한다.
  2. 대학교에 들어가면 공리가 온 세상에 적용되는 것이 아니라 한정된 공리계에만 적용되는 것이라고 배운다. 즉, 공리주의를 배운다.
    1. 이때부터 헷갈리기 시작한다. 이게 그럴 수도 있고 아닐 수도 있다고 한다.
    2. 그동안 배운 것이 이 세상에 안 통할 수도 있다는 것을 알게 되었다.
  3. 대학원에 들어가면 이제 공리계에도 모순이 있을 수도 있다는 것을 알게된다. 허탈해진다.
    1. 가정이 들어맞을지 안 맞을지는 확률이고 해봐야 안다고 가르친다.
  4. 그러다보니 연구주제가 자꾸 한정되고 쪼개진다. 공리주의가 적용되는 좁은 분야에서 한정된 가정만을 해야 하기 때문이다.

대부분의 결정론 사고방식을 가진 학자들은 결정론과 공리주의가 깨지고 난 다음에도 이것들을 근거로 연구를 해나가요. 핵펀치로 깨지기는 했는데 아직 결정론을 대신할 사고방식이 발명된 것은 아니었거든요. 그리고 결정론자들은 왠만하면 근본적으로 질문을 해보려고 하지 않죠. 해봤자 자기가 연구하는 주제에 모순을 발견하게 되어서 골치만 아프니까요.

프랑크 로젠블라트가 퍼셉트론을 창안했을 때 많은 공격을 받았던 이유 중에 하나가 퍼셉트론의 정보처리 방식이 결정론으로 설명이 불가능했기 때문이에요. 마빈 민스키라는 사람이 XOR 계산이 안된다는 것으로 호되게 비판을 했었는데 그건 실제 따지고 들어가면 그렇지가 않았어요. XOR 계산이란 참거짓을 가리는 논리연산의 일종이에요. 배타적 논리합 - 위키백과

로젠블라트는 몰랐지만 동시대 같은 시기에 퍼셉트론으로 XOR 계산을 성공시킨 사람들이 몇 명 있었거든요. 그러나 문제는 XOR 계산이 성공했더라도 그것이 어떻게 해서 성공하는지 설명을 못했다는 점이에요. 그래서 퍼셉트론, 더 나아가서 딥러닝의 내부 정보처리 방식을 "블랙박스 모델"이라고 불러요. 계산을 하면 결과는 나오는데 내부에서 뭔 일이 일어나는지 알 수가 없다는 뜻이죠.


참고로 프랭크 로젠블라트 대신 퍼셉트론의 XOR 계산을 성공시킨 다른 연구자의 이야기는 Quantum brain : the search for freedom and the next generation of/Satinover, Jeffrey를 참고하세요. 그리고 아래에 프랭크 로젠블라트가 쓴 논문 나갈게요. 제가 근거 없이 아무 말이나 막 던진다고 댓글 다신 분들 반성해 주세요. 저는 단락별로 근거 다 갖추고 있어요. 저는 이런 근거가 없으면 주장을 안 해요.

[5] Frank Rosenblatt (1958), The Perceptron: A Probabilistic Model for Information Storage and Organization in the Brain, Cornell Aeronautical Laboratory, Psychological Review, v65, No. 6, pp. 386–408. doi 10.1037/h0042519.

제가 오늘 이 글에서 퍼셉트론의 블랙박스 모델의 비밀을 풀어서 설명을 할 거에요. 제가 이렇게 초반에 썰을 길게 푼 이유가 그걸 설명하려고 한 것이거든요. 그런데 바로 퍼셉트론 얘기로 못 넘어가고 이제 상대론 이야기를 조금 할거에요.


상대론와 상대주의 개념

상대론과 상대주의는 "이 세상에 절대적인 주장, 절대적인 개념, 절대적인 논리가 없다."라는 주장이에요. 이 명제는 좋은데 그 다음에 이어지는 구체적인 내용이 없어요. 맞는 말인데 처음 명제만 가지고는 문제 해결을 못한다는 단점이 있어요.

쉽게 말해서 "그래요, 그렇다고 쳐요. 그러면 이제 앞으로 이 세상을 어떻게 탐구하고 연구해야 하나요?"라는 질문에 대답을 못 해주었다는 거에요. 그래서 결정론자들에게 무시당해요. 말은 맞는데 실천이 불가능한 공허한 외침이라는 말이죠.


그리고 절대론과 결정론의 관점에서는 상대론이 어떻게 보이냐면 절대성의 반대인 혼돈(카오스), 즉 허무주의 개념으로 보여요. 왜냐하면 자기 생각의 기반이 절대론이기 때문에 절대성 없는 세계가 그렇게 상상되는 거죠. 혼돈이거나, 허무하거나, 아햏햏한 것으로요.

그러나 만약 생각의 기반이 절대론이 아니라면 어떻게 될까요? 그러면 혼란을 겪지 않을 수 있겠죠. 그리고 절대적인 근거 없이도 정보처리를 해나갈 수 있으면 문제해결 능력이 없었던 재래식 상대주의의 문제도 극복할 수 있구요. 제가 주장하는 연역론은 이런 과정에서 만들어진 거에요.


이기준의 연역론이 뜻하는 것

저보고 연역이라는 말을 쓰면 안된다고, 연역이 그런 뜻이 아니라고 한 사람이 몇 명 있었는데 이번에 이 단락을 쓰면서 그 논란을 다 없애 드릴게요.

님들 우리말에서 연역이 무슨 뜻인지 알고 있어요? 연역은 펼 연演, 풀 역繹이라는 뜻의 단어에요. 펼치고 풀다는 뜻이죠. 더 쉽게 말해서 코어인 안쪽에서 바깥쪽으로 정보처리를 해나가는 것을 말해요. 영어의 Deduce가 순수하게 딱 그런 뜻만 가지고 있어요.

그런데 님들이 초중고대 다니면서 배운 재래식 연역법은 이런 뜻이에요. "문장 구조에서 절대성을 근거로 해서 논지를 전개해 나가는 논리방법(사고방식)" 연역 - 위키백과

이름은 연역법인데 사실 본질은 문장 구조에서 명제를 절대적인 근거로 전제하고 나서 다음 문장을 전개해 나가는 논리라는 거에요. 절대성을 근거로 한다는 것이 핵심이죠. 안에서 밖으로 정보처리를 한다는 것만이 연역의 참 뜻이구요. 핵심은 "절대성을 전제하는 명제 추론"인데 줄여서 용어로 만들면서 연역이라는 단어만 남긴 거죠. 그래서 제가 재래식 연역법 이름을 다시 지으면 "절대성 명제 추론법"이라고 하겠어요.

존재론을 기반으로 한 재래식 연역법에서 나올 수 있는 오류 예시

자, 이제 그럼 귀납법을 볼까요? 귀납이라는 단어의 순수한 뜻은 돌아갈 귀歸, 들일 납納이에요. 돌아가고 들어간다는 뜻이에요. 밖에서 안쪽으로 정보처리를 한다는 거죠. 영어의 induce도 단어로는 순수하게 그 뜻만 가지고 있구요.
그런데 님들이 학교 다니면서 배운 재래식 귀납법은 "사실을 수집해서 그 사실을 절대적인 근거로 가정하고 결론을 내리는 논리방법(사고방식)"이에요. 귀납법에서도 역시 핵심은 절대성이에요. 귀납 - 위키백과

재래식 귀납법 역시 핵심은 "절대성을 전제하는 사실 추론"이죠. 수집한 사실을 절대적인 원인이라고 간주하고 결론을 내리니까요. 그래서 이름을 다시 지으면 "절대성 사실 추론법"이라고 해야 맞아요.

누가 그러더군요. 연역법은 절대성 근거로 하지만 귀납법은 절대성 근거로 안 한다고요. 그건 귀납법이 그런게 아니라 그 사람이 배운 것이 재래식 귀납법에 확률을 적용한 업그레이드 버전의 귀납법이라서 그래요. 통계학이 그렇죠. 확률적 귀납법은 결정론자들이 재래식 귀납법으로 망하고 나서 수정 보완 방식으로 새롭게 개발한 거에요. 재래식 귀납법은 절대성을 기반으로 해요.

그러나 확률적 귀납법도 가끔씩 블랙스완 나타나서 깨져요. 블랙스완이란 기존 확률에서는 일어나지 않아야 할 미미한 작은 확률이 실제 현실에서 발생하는 상황을 뜻하는 비유에요. 확률을 사용하기는 했지만 여전히 존재하지 않는 절대성을 기반으로 하다 보니까 오류의 위험에 노출되어 있는 거죠.

존재론을 기반으로 한 재래식 귀납법에서 나올 수 있는 오류 예시

정리를 해볼게요.
  1. 연역과 귀납의 순수한 뜻은 이렇다.
    1. 연역演繹, Deduce: 안쪽에서 바깥쪽으로 정보처리를 해나간다.
    2. 귀납歸納, Induce: 바깥쪽에서 안쪽으로 정보처리를 해나간다.
  2. 그러나 관습적으로 현재까지 논리 방법으로 사용되는 연역법 귀납법은 이런 뜻을 가지고 있었다.
    1. 재래식 연역법: 문장 구조에서 제시한 명제를 절대적인 근거로 삼아서 논지를 전개해 나가는 논리 방법(사고방식)
      1. 줄이면 "절대성 명제 추론법"
    2. 재래식 귀납법: 사실 정보를 수집해서 그 사실을 절대적인 근거로 전제하고 결론을 내리는 논리 방법(사고방식)
      1. 줄이면 "절대성 사실 추론법"
  3. 가끔씩 귀납법은 절대성 근거로 안 한다고 알고 있는 사람들이 있는데 그 사람들은 주로 통계를 배운 사람들이다.
    1. 통계는 재래식 귀납법을 수정해서 만든 확률적 귀납법이다.
    2. 그러나 여전히 확률적 귀납법도 블랙스완같은 문제를 가지고 있다. 확률을 도입했지만 여전히 세계관에서 존재를 기반으로 하기 때문이다.

확률적 귀납법의 문제는 통계학에서 “P값의 오용(역설)"이라고 부르기도 함

이기준의 연역론은 뭐가 다르죠?
  1. 이기준의 연역론은 절대성 가정을 안 한다. 절대성 없다고 간주한다. 존재가 없다고 간주한다.
  2. 이기준의 연역론에서도 안에서 밖으로 정보처리를 해나가는 패턴 추론을 한다. 그래서 연역이라는 단어를 쓴 거다.
  3. 그래서 용어를 좀 더 자세하게 만들면 이기준의 연역론은 "이기준의 상대성 연역론"이라고 할 수 있다.
    1. 줄여서 상대성 연역론
    2. 더 줄이면 연역론
  4. 현재 상대성과 상대론은 결정론자들에게 혼돈과 허무주의로 간주되고 있다. 이기준의 연역론은 그렇지 않다.
  5. 이기준의 연역론은 관계정보와 결과정보를 구분하는 특별한 정보처리 방법을 사용한다.
    1. 관계정보를 사용해서 결과정보를 만드는 과정이 안에서 밖으로 정보처리를 하는 패턴이고 연역이다.
  6. 그리고 용어는 단어를 여러 개 사용하는 것보다. 한 단어로 끊어지는 것이 좋다. 내가 글 쓰면서 계속 써야 하는 이름이기 때문이다. 그리고 "연역론, Deduction Theory"는 현재까지 누가 선점해서 현재 사용하는 사람도 없다.
  7. 그렇게 최종 결정함.

이기준의 연역론에서 상대성과 연역관계가 어떻게 성립하는지를 나타낸 그림



그외 나머지 절대론과 존재론, 결정론 기반의 학설들

집합론이 있어요. 1800년대 말에 한 때 수학자들이 모여서 집합론으로 모든 과학분야에서 사용할 절대 공리를 만들어 보려고 했어요. 버트런드 러셀도 여기에 기여하려고 했구요. 그런데 그 과정에서 역설적으로 공리의 모순을 발견하게 된 거죠. Set theory - Wikipedia

절대반지를 찾으러 갔다가 반지 깨지는 일이 일어났네요.
버트런드 러셀이 공리의 모순을 증명한 다음 고틀로프 프레게는 자신이 발표한 “산술의 기본 법칙” 2권 부록에서 직접 자신의 주장이 실패했다는 것을 공식적으로 밝혔어요. 학자의 양심이 대단하네요. Gottlob Frege - Wikipedia

[2] Gottlob Frege (1879) Begriffsschrift: eine der arithmetischen nachgebildete Formelsprache des reinen Denkens. Halle.

프레게의 집합론과 논리주의는 나중에 일부 현대 수학과 컴퓨터 정보공학에 많은 영향을 주었어요. 모순이 좀 발견되었다고 해서 그 사람이 연구한 내용이 다 쓸모없어지는 것은 아니에요. 그 과정에서 새로운 발견이 이루어질 수 있는 거죠. asdfzxcvasdf님이라는 분은 제가 이렇게 과거 학설에 모순이 있었다는 역사를 언급할 때마다 답답해 하면서 자꾸 반박을 하더라구요. 그런데 모순은 그냥 담백하게 모순이잖아요. 모순이 있으면 그 모순을 극복할 연구를 또 하면 되요. 모순 있다고 역사 속에서 이미 정리가 끝난 문제를 가지고 자꾸 그런게 아니었다고 방어를 하려고 하면 안되죠. 그러면 학자(사람)와 학설에 대해서 존재규정을 하는게 되요. 학문을 절대적인 신앙으로 믿으면 안되잖아요.

"아.. 내가 배운 학설이, 나의 영웅들이 그럴리가 없어! 골룸 골룸!”

경험주의를 볼게요. 경험주의는 쉽게 말해서 사람이 경험한 것, 경험할 수 있는 것을 기반으로 논리 전개를 해야 한다는 주장이에요. 재래식 귀납법의 근거가 되는 사상이구요. 주장하는 명제 자체는 나쁘지 않아요. 단지 경험을 절대적인 근거로 삼을 때 오류가 생긴다는 거죠. Empiricism - Wikipedia

합리주의는 명제와 논리 전개가 갑툭튀 하지 않고 일관되게 연결되어야 한다는 주장이에요. 재래식 연역법의 근거가 되는 사상이구요. 이것 역시 제가 위에서 설명한 것처럼 절대성을 근거로 하면 오류가 생기죠.

그리고 유물론이 있어요. 유물론은 경험주의에서 파생된 주장인데요. 인간의 경험 정도가 아니라 계량이 가능한 물질만을 근거로 판단을 해야 한다는 주장이에요. 마르크스가 주장했구요. 물질을 절대적인 근거로 생각하고 물질에 대한 존재규정을 한 거죠.


참고로 제가 즉석에서 집합론의 모순을 증명해 볼게요. 제가 예전에 썼던 글에서 가져올 거에요. 거짓말쟁이 그리스인의 역설해제

에피메니데스의 역설



에피메니데스의 역설은 다음과 같은 추론에 따라 모순에 봉착한다.

1. 에피메니데스는 "모든 크레타인은 거짓말쟁이"라고 주장했다.
2. 그의 주장이 맞다고 전제한다면, 모든 크레타인은 거짓말쟁이이다.
3. 그런데 에피메니데스는 크레타인이다.
4. 고로 에피메니데스는 거짓말쟁이다.
5. 거짓말쟁이의 말은 거짓말이므로, 에피메니데스의 말은 거짓말이다.
6. 에피메니데스의 말이 거짓말이므로, 모든 크레타인은 거짓말쟁이가 아니다.

위의 추론에서, 2번 항목과 6번 항목은 서로 모순된 내용을 갖지만, 두 항목 모두 올바른 추론 과정을 따라 나온 결과이다. 그래서 전체 추론이 모순이 되는 결과가 발생한다.


이 집합 다이어그램에 따르면 에피메니데스는 크레타인이고 크레타인은 거짓말쟁이에요. 그런데 에피메니데스가 모든 ‘크레타인은 거짓말쟁이다.’라는 참말을 했어요. 그러면 역설이 발생해요. 에피메니데스가 자기 자신을 포함하는 크레타인에 대해서 진술을 하면서 모순이 발생한 것이죠. 자기 언급의 모순이 일어났어요. 더 이상 정보처리를 하지 못하는 오류가 발생하게 된 거죠. 이것이 집합론에서 발생하는 자기 언급의 모순이라고 해요. 러셀의 이발사 역설과 맥락이 같구요.

제가 링크한 거짓말쟁이 그리스인의 역설해제을 보면 저는 거기에 대해서 역설을 해제해서 풀어 놓았어요. 모순이 더 이상 모순이 아니게 새로운 논리를 만들어서 모순해제를 했다는 거죠. 저는 지난 10여 년 동안 이런 작업을 꾸준히 했어요. 수십 개의 모순을 연구하면서 새로운 논리, 즉 정보처리 방법을 고안해 내게 되었어요. 그게 제가 주장하는 연역론이에요.  


양자역학의 태동

모든 과학의 기반이 되는 논리학과 수학에서 버트런드 러셀과 쿠르드 괴델의 연타 펀치가 이어지는 시기에 물리학계에서도 그것을 뒷받침하는 중요한 발견이 일어났어요. 그것은 바로 양자역학이었어요.


이것을 쉽게 설명하면 이래요. 양자역학을 발견하기 전까지 물리학계 학자들은 다른 분야와 마찬가지로 결정론 사고방식으로 연구를 하고 있었어요. 물질의 물리적 특성을 존재로 규정하고, 이 세계의 역학적 원리를 절대적인 존재로 규정했던 거죠. 그런데 양자 미시세계를 관찰했더니 대상이 정확하게 존재로 결정되지 않는 현상이 나타나더라는 거에요. 관찰 대상이 입자이기도 하고 파동이기도 하고, 참이기도 하고 거짓이기도 하고, 위치가 여기이기도 하고 저기이기도 한 상황이 나오더라는 거죠.


처음에 물리학자들은 이것을 받아들이지 않으려고 했어요. 결정론을 고수하면서 양자역학의 동시성을 거부하려고 한 알베르트 아인슈타인과 그에 대비해서 결정론을 대폭 수정해서 확률적인 양자역학의 세계관을 받아들여야 한다고 주장한 닐스 보어의 논쟁이 이 시기에 일어난 일이에요. Quantum mechanics History - Wikipedia

논쟁이 이어지고 이후에 양자역학의 확률적인 현상을 증명하는 관측 결과와 계산방법이 속속 등장하면서 물리학자들은 그때까지 고수하던 결정론을 포기하고 "확률적 결정론, 비결정론"이라고 이름 붙인 사고방식을 사용하게 되었어요. 위에서 잠깐 예기한 통계학, 확률적 귀납법도 "확률적 결정론"에 속해요.  Indeterminism - Wikipedia  


양자역학을 깊이 연구하려고 유럽 12개 나라들은 힘을 모아서 CERN이라고 하는 유럽입자물리학 연구소를 만들게 되었어요. 스위스와 프랑스가 맞닿은 국경지대에 만들어졌죠. 여기서 길이 27 km에 달하는 입자가속기를 만들어서 양자물리학 관측 실험을 했어요. 그외 다른 양자물리학 관련 실험도 많이 했죠. 참고로 이 연구소에서 연구를 진행하는 과정에서 연구자료를 공유하려고 만든 것이 인터넷의 월드 와이드 웹(www)이에요. 물리학 연구를 하다가 인터넷 세상에도 공헌을 했네요.  CERN - Wikipedia
 

최근 이 연구소는 "힉스 입자"라는 것을 발견했어요. 이것이 2013년 노벨상 주제가 되었죠. 힉스 입자는 물리적인 특성은 관측되지 않지만 다른 입자들의 물리적 특성인 질량을 가지도록 영향을 준다고 알려진 입자에요. 그래서 물질이 아니라 정보에 해당한다는 주장이 나왔어요. 그리고 이 시기부터 물리학과 정보공학이 서로 의견을 공유하게 되었어요. 일부 물리학자는 대담하게 이 세계가 양자로 이루어진 컴퓨터가 정보처리를 해서 만들어 낸 산물이라고 주장해요. 저도 그런 입장에서 생각하고 있구요. Higgs boson - Wikipedia  
제가 연역론으로 주장하는 바는 이래요.
  1. 사물의 고유한 물성, 존재적인 특성은 없다.
  2. 물리적 고유 성질이 없는 형이상의 정보가 결합하여 정보를 처리하는 과정에 의해서 물성이 만들어 진다.
  3. 즉 우리가 물성이라고 관찰하는 결과는 정보처리의 결과물에 불과하다. 줄여서 결과정보다.

이것은 지금까지 제가 설명해 드린 연역론 논리 관점으로 충분히 설명을 해드렸구요. 앞으로 연구가 진행되면 더 많은 것을 알아낼 수 있을 거에요. 저는 철학, 논리학, 수학, 정보공학, 소프트웨어를 연구하고 물리학자가 아니지만 지난 몇 년 전부터 물리학에 대해서 관심을 가지고 자료를 읽어 보고 있어요.



그러면 이기준의 연역론은 문제 해결을 어떻게 하는가?

자, 이제부터 본론이 시작되네요. 이기준의 연역론에서는 "우리가 이 세상에서 이미 과정을 거쳐서 만들어진 개체이기 때문에 제3자인 관찰자 입장에서 이 세상의 절대적인 진실을 알 수 없다."고 주장해요. 그러면 결정론자들은 이렇게 물어보아요. 그러면 혼돈(카오스), 허무주의, 아햏햏되는거 아니냐구요. 그걸로 뭔 과학을 하느냐구요. 그런 상대주의로 정보처리를 어떻게 할 수 있냐구요. 할 수 있어요. 제가 보여 드릴게요. 지금부터 설명해 드릴 내용은 일부는 이기준 이기환의 딥러닝 연구 글에서 가져온 것이에요. 말만 더 쉬운 말로 바꾼 거죠.

님들이 현실을 관찰해서 경험을 했어요. 그렇게 해서 현실을 인식했어요. 그러면 님들이 보고, 듣고, 냄새 맡고, 만지고, 씹고 뜯고 맛보고 즐기고 한 모든 정보는 현실 그대로 인가요, 아니면 현실을 경험하고 님들 머릿속에 저장된 "새로운 다른 정보"인가요?

애매하시죠? 그럼 좀 더 단순화된 말로 질문을 가다듬어 보아요. 님에게 디지털 카메라가 한 개 있어요. 이 디지털 카메라로 사진을 한 장 찍었어요. 이제 디지털 카메라에 저장된 사진은 현실 그대로 인가요, 아니면 현실을 흉내내서 저장한 "유사한 정보"인가요?


이제 대답이 쉬워졌죠? 디지털 카메라가 찍은 사진은 현실 그대로가 아니에요. 현실을 흉내낸 정보죠. 이것을 연역론에서는 정보의 유사복제라고 하고 이렇게 만들어진 정보를 결과정보라고 해요. 자, 이 질문에 대답을 했기 때문에 위에 처음 질문도 대답이 가능해졌어요. 우리가 현실을 관찰자로 보고 기억으로 저장했어요. 우리가 기억한 정보는 현실 그대로일까요, 아니면 현실의 유사복제 정보일까요? 바로 답 나오죠?


우리가 인지한 것, 기억한 것, 상상한 것 전부 현실이 아니에요. 현실을 유사복제한 결과정보라는 거죠. 자, 이 명제 때문에 경험주의에 모순이 생겨요. 왜냐하면 경험주의는 인간의 마음에는 순수한 영역이 있어서 경험을 순수하게 정량하고 그것을 근거로 논리를 전개하면 진실에 이를 수 있다고 생각했거든요. 이것은 경험주의를 만든 존 로크의 견해에요. 이것을 존 로크의 "타불라 라싸(깨끗한 석판) 이론"이라고 해요. 경험론 - 위키백과

근대 경험론을 창시한 영국의 철학자 존 로크와 타불라 라싸(깨끗한 석판)

그런데 위에서 우리가 즉시 확인한 것처럼  인간의 경험은 순수한 본질이 아니에요. 인간이 얻을 수 있는 모든 정보는 정보처리 과정을 거쳐서 유사복제된 결과정보라는 거에요. 그래서 이 경험을 절대적인 근거로 전제하고 정보처리를 하면 오류를 겪는 거죠. 마치 디지털 카메라로 찍은 사진을 사진이 아니라 진짜 현실이라고 착각하면 나중에 낭패를 겪을 수 있는 것처럼요. 우리가 머릿속에 인지한 것, 기억한 것, 상상한 것을 절대적인 근거라고 생각하면 어떻게 될까요? 그걸 고정관념이라고 하죠. 인간은 잘 속아요. 생각이 잘 왜곡되구요.

인간이 가진 인지능력의 왜곡: 마술, 선동, 광고, 인지편향 등

그러면 연역론은 어떻게 생각하나요? 연역론에서는 인간의 인지, 기억, 상상 모두 정보처리 과정을 거친 유사복제 결과정보라고 해요. 그리고 정보처리 과정에서 사용하는 정보를 관계정보라고 불러요. 연역론에서는 결과정보를 현실이라고 착각하지 않아요. 결과정보를 있는 그대로 결과정보라고 생각해요. 그런 다음 어떻게 해서 정보처리 과정이 이루어졌는지 추론을 해요. 그렇게 해서 현실이 무엇이었는지 추적하는 거죠.

디지털 카메라의 경우에는 그것을 사람이 만든 것이기 때문에 정보처리 과정을 잘 알아요. 어떻게 해서 카메라가 사진이라는 결과정보를 만들어 냈는지 과정을 풀이해 낼 수가 있어요. 그런데 인간의 뇌는 어떤가요? 대략적인 정보는 알려져 있지만 아직 정보처리 과정이 완벽하게 규명되지 않았어요. 그외 다른 문제들은 어떤가요? 그래서 정보구조체와 관계정보를 추론하는 과정이 필요해요.

쉽게 정리해서 비교를 해봐요.
  1. 이 세상에 우리가 보고 듣고 기타 경험하는 모든 정보는 이미 만들어지고 난 뒤의 결과정보다.
  2. 이 입장에서 우리는 절대적인 현실, 절대적인 진실을 알 수 없다.
  3. 그리고 모든 만들어진 정보는 만들어지는 과정을 거쳐서 만들어진다.
  4. 그래서 정보를 만드는 과정을 알아내면 결과정보를 만들어 낼 수 있다.
  5. 이 정보를 만드는 과정에 사용하는 정보를 관계정보라고 한다.
  6. 결과정보를 현실이라고 착각하지 않고 결과정보로만 받아들이고, 그 결과정보를 만들어 낸 과정을 추론하면 관계정보를 알아낼 수 있다.
  7. 그렇게 추론을 해서 알아낸 관계정보로 정보구조체를 만들어서 결과정보를 만들어 내는데 성공하면 재현이 성공한 것이다.
  8. 그러면 상대적으로 더 가까운 현실, 진실을 알아낼 수 있다.

어떤가요? 경험주의의 모순에 빠지지 않고 문제해결을 할 수 있는 방법론을 제시했죠? 2500년 전 쯤에 도가 사상에서 유명한 노자가 쓴 도덕경이라는 책에 이런 구절이 나와요. "도(道)를 도라고 이름 지어서 부르면 그 도는 더 이상 도가 아니다. 이름을 지어서 부를 수는 있지만 항상 그 이름인 것은 아니다."


도가도, 비상도; 道可道, 非常道
명가명, 비상명; 名可名, 非常名

이것을 연역론으로 풀이하면 이래요. "현실(진실)에 이름을 붙여서 결과정보로 만들면 그것은 더 이상 현실(진실)이 아니다. 이것이 우리가 사는 세계의 상대성이다. 그러나 우리는 이 결과정보들에서 닮은 점과 다른 점을 찾아내고 그 관계정보를 통해 진실에 접근할 수 있다. 만물의 근원을 알아낼 수 있고, 만물을 창조할 수 있다."

제가 이 이야기의 첫머리에서 순자 맹자 이야기를 하면서 이렇게 말했죠. 착한 존재, 나쁜 존재가 있는 것이 아니라 착한 행동과 나쁜 행동이 있고 그것을 사람들이 선택해서 실천하는 것이 전부라구요. 착한 행동이라는 과정을 실천한 사람을 우리가 착한 사람이라고 이름 붙인 것에 불과하다는 거죠. 이름 붙이는 행위는 라벨링이라는 거에요.

정리를 해보아요.
  1. 착한 사람, 나쁜 사람은 우리가 뒤에 붙인 이름에 불과하다. 즉, 결과정보다.
  2. 그래서 착한 사람, 나쁜 사람이 따로 본성적인 존재로 정해져 있는 것이 아니다.
    1. 그러나 사람들은 습관적으로 문제의 원인이 존재 때문이라고 생각하고 자꾸 그 방향으로 생각하려고 한다. 그게 존재규정이다.
  3. 착한 행동, 나쁜 행동이 있다. 이것도 역시 이름에 불과하고 행위의 본질은 예를 들어서 이렇다.
    1. 착한 행동이라고 이름 붙인 것의 본질: 다른 사람이 위험을 겪을 때 뛰어가서 도와주는 행동
    2. 나쁜 행동이라고 이름 붙인 것의 본질: 다른 사람이 위험을 겪을 때 모른 척하고 가만히 있는 행동
  4. 우리가 착한 행동과 나쁜 행동을 구별할 수 있는 까닭은 그 사고방식과 행동을 사람들이 계속 반복할 경우 미래에 어떤 일이 확률적으로 생길지 추론을 해볼 수 있기 때문이다.
    1. 착한 행동: 사람들이 점점 서로 믿고 도우면서 살아간다. 마을이 발전한다.
    2. 나쁜 행동: 사람들이 점점 서로를 믿지 않고 협력하지 않는다. 마을이 해체된다.
  5. 행동은 사고방식으로 생각하고 그것을 실천(실행)하는 과정으로 표현된다.
    1. 사고방식, 실천, 행동은 전부 결과를 만드는 과정이다.
  6. 사람들이 어떤 사고방식을 실천하느냐에 따라서 사회가 확률적인 경향을 띄게 된다.
    1. 그래서 착한 행동과 나쁜 행동이 이 세상에 정해져 있었던 것이 아니라 "뛰어가서 도와주는” 사고방식을 실천하는 사람들이 많은 사회의 미래 경향과 "모른 척하고 가만히 있는" 사고방식을 실천하는 사람들이 많은 사회의 미래 경향이 있는 것이다.
    2. 이 미래에 대한 확률적인 경향을 보고 착한 행동, 나쁜 행동으로 구별하고 결론을 짓는 것이다.
    3. 연역론에서는 사고방식들 간의 닮은 점과 사고방식의 실천이 미래에 미치는 영향을 동조관계라고 한다.
    4. 그리고 사고방식들이 간의 서로 다른 점과 사고방식의 실천이 미래에 영향을 주지 못하는 부분을 정보비대칭성이라고 한다.

자, 이렇게 정리한 내용을 논리학과 수학, 정보공학에도 그대로 적용할 수 있어요. 이제 관계정보 추론을 어떻게 하는지 증명해 볼게요. 연역론 논리학 실습을 해보아요.


연역론 논리학 실습

그러면 이런 방법론이 있는 것은 알겠는데 그것을 구체적으로 어떻게 실행해야 할까요? 어떻게 하면 결과정보들에서 관계정보를 추론할 수 있을까요? 이렇게 하면 되요.
  1. 수집한 정보에서 결과정보를 제거한다.
  2. 그러면 관계정보로 이루어진 뼈대를 찾아낼 수 있다. 그것이 정보구조체다.
  3. 이 정보구조체에서 핵심 역할을 하는 것이 관계정보다.
  4. 정보구조체를 사용해서 다른 결과정보를 만들어 본다. 그렇게 해서 작동하면 재현이 되는 것이고 제대로 추론한 것이다.
  5. 관계정보를 추론하고, 조립해서 정보구조체로 만드는 방법에 대해서 아는 것이 많아지면 특정한 목적을 가진 정보구조체를 만들어서 결과정보를 만들어 본다.
    1. 정보구조체를 만들고 결과정보를 만들어 내는 활동을 연역이라고 한다.
    2. 창의, 창조라고 할 수도 있다.
  6. 그렇게 해서 더 현실에 부합하는 정보구조체, 현실에서 제대로 작동하는 정보구조체를 만들어 나간다.

자, 그러면 실습을 해볼게요. 먼저 언어와 수학 영역에서 해보아요.


이렇게 정보가 있을 때 거기서 "무엇"에 해당하는 결과정보를 다 비워 보아요. 육하원칙 아시죠? "누가, 언제, 어디서, 무엇을, 어떻게, 왜"로 이루어진 체크 리스트에요. 여기서 "누가, 언제, 어디서, 무엇을"은 같은 계열이에요. 이 넷을 줄여서 "무엇" 계열이라고 할게요. 그리고 어떻게와 왜가 있어요. 이것들은 둘이 같은 계열이에요. 줄여서 "어떻게" 계열이라고 할게요.


제가 연구하는 연역론에서 "무엇" 계열을 결과정보라고 하고 "어떻게" 계열을 관계정보라고 불러요. 우리가 이름을 지어서 부르는 이 세상의 모든 것들은 "어떻게" 과정을 거쳐서 만들어 낸 결과물이라는 거죠. 그리고 어떻게는 사물의 관계를 알아내고 의미를 알아내는 활동이구요.

그래서 사물을 관찰하고 비교해서 어떻게와 왜에 대해서 많은 것을 알게되면 그것을 조립해서 "무엇"에 해당하는 것들을 만들어 낼 수 있어요. 창의와 창조를 할 수 있게 된다는 거죠. 이 육하원칙에 대한 설명은 제가 쓴 딥러닝으로 예술 창작을 하고 싶은 사람을 찾고 있어요 글에서 인용했어요.

정리를 해볼게요. 이 내용은 이기준 이기환의 딥러닝 연구 글에도 그대로 있어요. 더 자세한 설명은 링크를 타고 들어가서 읽어보세요.
  1. 패턴, 알고리즘, 행동, 행위 전부 "정보처리 과정"을 뜻한다.
    1. 패턴은 비교적 좀 더 짧고 단순한 과정을 뜻한다.
    2. 알고리즘은 비교적 좀 더 길고 복잡한 과정을 뜻한다.
  2. 행동, 행위는 언어 문법과 물질세계에서 정보처리를 하는 과정에 사용하는 말이다.
    1. 언어 문장에서 명사, 이름, 결과정보를 비우면 행위와 문법 깔맞춤이 남는다.
    2. 그러면 이 문장은 다른 결과정보를 끼워 넣어서 새로운 정보를 만들어 낼 수 있는 "열린정보구조체”가 된다.
    3. 언어에서 행위를 표현하는 동사와 문법 깔맞춤이 관계정보와 정보구조체 역할을 한다.
    4. 수학식에서도 결과정보를 비우면 행위에 해당하는 수학 문법과 관계정보가 드러난다.
  3. 물질세계에서도 정보처리 과정을 행위, 행동으로 표현한다.
    1. 예를 들어서 컴퓨터의 경우 오실레이터라고 불리는, 신호정보를 복제하는 반도체를 이용해서 정보를 생성하고, 스위치를 이용해서 반복하는 신호를 특정한 패턴으로 만들어서 정보를 처리하고, 메모리를 이용해서 그 정보를 저장한다.
    2. 그리고 저장해 놓은 패턴을 특정한 목적을 달성하도록 조립해서 이어붙이면 그것이 알고리즘이 되고 프로그램이 된다.
    3. 이것이 컴퓨터가 정보처리를 하는 방법이고, 어떤 패턴을 어떻게 조립해서 사용할지를 사람이 정해 놓은 것이 컴퓨터 프로그램, 소프트웨어다.

자, 그럼 이제 딥러닝 퍼셉트론에서도 동일한 정보처리가 일어나는지 한 번 증명해 보자구요. 블랙박스 모델의 비밀이 풀어집니다. 개봉박두.


딥러닝의 퍼셉트론을 연역론 논리로 설명

이제 퍼셉트론을 연역론 논리로 설명해 보겠어요. 퍼셉트론 - 위키백과 /  Perceptron - Wikipedia
퍼셉트론을 쉬운 말로 설명하면 인간이 가진 신경 네트워크를 컴퓨터 프로그램으로 흉내낸 것이에요. 퍼셉트론의 정보처리 과정은 연역론에서 정보의 동조관계와 비대칭성을 찾는 행위와 작용 반작용 행위의 조합으로 설명할 수 있어요.


퍼셉트론 시스템은 퍼셉트론이라는 정보구조체를 많이 모아서 조립한 것이에요. 이걸 업계에서는 다층 퍼셉트론이라고 불러요. 딥러닝도 다층 퍼셉트론 구조로 되어 있어요.

퍼셉트론 정보구조체 한 개의 입장에서 "외부정보"란 다른 정보구조체가 만들어 낸 유사복제한 결과정보에요. 퍼셉트론 시스템 내의 정보구조체 유닛은 주변에 있는 다른 퍼셉트론 정보구조체들와 연결되어서 정보를 전달하고 함께 정보를 유사복제하는 행위를 해요. 자신과 연결되어 있는 여러 개의 정보구조체에 영향을 받아서 입력받은 정보를 확률적으로 왜곡하는 과정을 가져요.

  1. 퍼셉트론은 인간의 신경 네트워크를 컴퓨터 프로그램으로 모방한 것이다.
  2. 퍼셉트론 시스템은 여러 개의 퍼셉트론 정보구조체를 조립해서 연결한 것이다.
    1. 쉽게 말해서 많은 정보구조체의 조합이 시스템이다.  
    2. 이것을 다층(멀티 레이어) 퍼셉트론 이라고 한다.
    3. 딥러닝도 다층 퍼셉트론이다.
  3. 퍼셉트론 시스템에서 각 퍼셉트론 정보구조체를 퍼셉트론 정보구조체 개체라고 부르겠다.  
    1. 줄여서 퍼셉트론 개체라고 한다.
  4. 퍼셉트론 정보구조체 개체의 입장에서 인풋으로 들어오는 외부정보는 다른 개체가 만들어 낸 유사복제한 결과정보다.
    1. 전체 퍼셉트론 시스템 밖에서 들어오는 정보는 외부정보다.
    2. 그리고 퍼셉트론 정보구조체 개체의 입장에서는 개체 자신과 연결된 다른 퍼셉트론 개체에서 보내는 정보도 외부정보다.
    3. 퍼셉트론 개체 자신과 연결된 다른 퍼셉트론 개체들을 "친구 퍼셉트론"이라고 이름 지어서 부르겠다.

퍼셉트론 정보구조체는 정보를 확률적으로 왜곡해요. 정보의 왜곡, 논리의 왜곡이 이루어져요. 퍼셉트론은 연역론에서 말하는 정보의 유사복제 행위를 해요. 프랭크 로젠블라트는 이 원리를 알고 퍼셉트론을 개발한 것은 아니었어요. 그는 신경 네트워크를 관찰해서 그것을 모방했을 뿐이죠. 이제 이 퍼셉트론이 하는 정보처리를 제가 연역론 논리로 풀이하고 증명하는 거에요. 그렇게 해서 블랙박스 모델을 풀이하고 해제하는 거죠.

퍼셉트론은 입력에서 출력으로 연결되는 한 방향 구조로 만들어져 있어요. 이제 퍼셉트론을 의인화해서 입력 정보를 받아서 결론까지 내리는 것을 도식으로 설명해 볼게요.

[그림 P-1] [그림 P-1] 퍼셉트론에서 일어나는 의사결정 과정을 사람으로 의인화해서 설명한 모델

영화가 한 편 있었어요. 이 영화에 대해서 두 개의 결과정보 의견이 있었어요. 하나는 "꿀잼이다."라는 의견이고, 다른 하나는 "노잼이다."라는 의견이었어요. 이 의견은 네티즌이 평점을 매긴 것이었어요. 이것이 라벨링한 결과정보에요.

위의 예에서 퍼셉트론 개체는 인풋1과 인풋2에서 "라벨링한 결과정보"인 영화에 대한 의견을 받은 다음, 그것을 확률적으로 왜곡해서 유사복제한 의견을 만들어요. 자, 퍼셉트론 개체는 들어오는 인풋 통로에 대해서 왜곡된 관점을 가지고 있어요. 예를 들어서 "인풋통로1"로 들어오는 정보는 상대적으로 긍정해요. 실전으로 예를 들어서 이 경우에 높은 수치의 가중치를 줘요. "인풋통로2"로 들어오는 정보는 상대적으로 부정해요. 실전으로 예를 들어서 이 경우에는 낮은 수치의 가중치를 줘요. 그림을 보면 "꿀잼 영화"라는 의견이 상대적으로 더 긍정하는 통로로 들어왔기 때문에 최종 아웃풋에 꿀잼 확률이 더 많이 반영되었네요. 이렇게 되는 거죠.

제가 아까 위에서 좋은 사람, 나쁜 사람이 그저 라벨링한 이름일 뿐이고 원래부터 그런 존재는 없다고 한 것 기억나시죠? 여기서도 역시 좋은 영화, 나쁜 영화는 그저 라벨링한 이름일 뿐이에요. 이름 뒤에 행위가 있어요. 그리고 퍼셉트론은 좋은 영화, 나쁜 영화를 구분하게 한 행위와 사고방식을 확률적으로 추론하는 거죠. 그렇게 해서 인간이 꿀잼 영화와 노잼 영화를 구분하는 행위를 라벨링으로 했었다면 그 행위를 비슷하게 따라할 수 있게 되는 거에요. 퍼셉트론 시스템이 사람처럼 영화를 구분하는 행위를 할 수 있게 되는 거죠. 여기서 영화라는 단어를 사진, 단어(문장), 소리(음악) 등으로 바꾸어도 맥락은 같아요.

영화를 사진으로 바꾸어서 예를 들면 사진이 한 장 있었어요. 그걸 보고 두 개의 의견이 있었어요. 한 의견은 "개다.”라고 하고, 다른 의견은 "고양이다.”라는 것이었죠. 이것은 라벨링한 결과정보였어요. 퍼셉트론이 작동하는 방식은 위에 설명한 것과 똑같구요.

이제 정보처리의 결론에 해당하는 아웃풋을 보세요. 여기서 아웃풋은 확률적인 패턴을 보여요. 결과가 "꿀잼 영화일 확률 70%"같은 방식으로 결과값이 확률로 나오게 되요. 이 확률은 통로 가중치를 어떻게 설정했느냐에 따라서 달라져요. 저는 이 아웃풋 유형에 "확률적 결과정보"라는 이름을 지어 주었어요.

자, 여기서 중요한 것은 퍼셉트론의 겉모양이 전부 다 이렇게 생겨 먹은 것이 아니라 퍼셉트론이 내부적으로 작동하는 기본원리가 이렇다는 거에요. 연구자가 퍼셉트론을 프로그래밍하기에 따라서 "인풋통로1"과 "인풋통로2"에 가중치를 다양하게 바꾸어서 줄 수 있어요. 가중치를 사람이 손수 입력하는 것이 아니라 알고리즘으로 자동으로 할당할 수도 있구요. 그러나 변하지 않는 부분이 있죠. 바로 정보를 일부러 왜곡해서 유사정보를 만들어 내는 부분이에요. 퍼셉트론에서 연구자가 가중치 옵션을 바꿀 수 있는 여지는 많지만 인풋 가중치를 주어서 정보를 유사복제한다는 부분은 바뀌지 않아요. 이것이 퍼셉트론의 본질, 관계정보인거죠.


제가 논리로 설명한 퍼셉트론의 가중치 개념을 수식으로 표현하면 위 그림과 같아요. 라벨링한 결과정보가 인풋으로 들어오면 퍼셉트론은 내부에 그 라벨링한 결과정보 하나에 대응하는 가중값(weight)을 적용해서 계산해요. 그리고 각각의 라벨링한 결과정보에 대응하는 가중값을 곱한 뒤 각각의 가중값을 전부 더한 값을 출력해요. 출력한 값에 필터를 씌어서 "true, false(참과 거짓. 위 도식에서는 1과 -1)"로 이분할 수도 있구요.

이렇게 계산방법이 있었고 퍼셉트론이 실제 현실에서 작동을 하는데도 불구하고 연구자들은 퍼셉트론이 왜 이렇게 작동하는지, 퍼셉트론이 어떻게 정보처리를 해서 결론에 이르게 되는지 논리적으로 알지 못했어요. 그걸 제가 연역론으로 지금 정리해서 증명하고 있는 거죠. 퍼셉트론은 정보의 유사복제를 하려고 일부러 인풋으로 들어오는 결과정보를 왜곡한다구요. 자, 이제 또 다음 진도를 나가 볼게요.

질문을 해봐요 이런 단순한 형태로 복잡한 사건에 대한 의사결정을 할 수 있을까요? 정보를 일부러 왜곡하는데 정보처리의 정확성이 높아질 수 있을까요? 통계에서는 귀납적으로 사실 정보만 입력받아서 통계를 내어도 "P값의 오용(역설)"같은 뒤통수를 맞는데 퍼셉트론은 아예 대놓고 왜곡 매커니즘을 가지고 입력된 결과정보를 왜곡해서 유사복제 정보를 만든다고 하네요. 이것으로 제대로 된 판단을 하는 것이 과연 가능할까요? 네, 가능해요. 연역론의 세계관에서는 가능해요.

연역론에서는 결과정보를 절대적으로 믿을 수 있는 근거로 여기지 않아요. 퍼셉트론도 마찬가지에요. 퍼셉트론은 왜곡을 하는 기능을 내장한 프로그램이에요. 그래서 인풋으로 들어오는 결과정보를 절대적으로 믿지 않아요. 퍼셉트론은 정보의 왜곡과 유사복제를 세계관의 밑바닥에서 기본적으로 세팅하고 그 왜곡에서 발생하는 정보의 닮은 점과 다른 점, 즉 동조관계와 비대칭성을 이용해서 정보처리를 해나가요. 이게 재래식 통계, 빅데이터, 머신러닝과 다른 점이죠. 이런 단순한 형태의 퍼셉트론 개체를 여러 개 묶어서 다층으로 만들 수 있어요. 아래에 그 예를 들어 볼게요.

[그림 P-2] 다층 퍼셉트론에서 피드 포워드하는 과정을 인간 개체의 의사결정 방식에 비유한 도식
현실에서 인간은 생각을 한 후 직접 실천을 해서 확인하는 행위를 할 수 있지만 퍼셉트론 모델에서는 개체가 외부정보의 원인을 직접 접할 수 있는 방법이 없어요. 위의 예로 설명하면 퍼셉트론 시스템이 영화를 직접 볼 수가 없다는 말이죠. 그래서 직접 현실을 경험해서 정보처리를 하고 개선할 수가 없고 내부 퍼셉트론 개체들과 상대적인 관계 속에서 정보의 닮은 점과 다른 점을 유추해서 처리해야 해요. 이것이 바로 퍼셉트론 시스템 내부에서 개체들 간에 일어나는 정보 동조관계와 비대칭성 추론이에요.


위 그림을 보세요. 위 그림은 "플라톤의 이데아설"을 개조해서 연역론 세계관을 표현한 그림이에요. 여기서 관찰자인 우리와 퍼셉트론 시스템은 실제 현실과 정보처리 과정을 직접 보지 못하네요. 결과정보만 접할 수 있네요. 이제 이 결과정보를 확률 정보처리를 해서 "정보처리 과정"을 추적하는 거죠.

실제로 요즘 넷플릭스 같은 서비스의 영화 추천에 사용되는 딥러닝으로 예를 들어볼 수 있어요. 즉, 딥러닝은 영화를 직접 관람하는 경험을 하지 않고 영화를 본 사람들에 대한 정보(성향, 연령, 성별, 등등)와 영화를 본 사람들이 하는 행위 정보(관련 영화를 찾아보는 것, 평점을 주는 것, 코멘트를 다는 것)를 라벨링 입력으로 받아서 상대적인 관계 차이를 유추하고 확률적인 예상 결과를 출력해요. 그렇게 해서 사람이 하는 평가 행위와 사고방식을 역추적하고 모방하는 거에요.

  1. 퍼셉트론은 연역론에서 주장하는 정보의 유사복제를 해서 유사복제한 정보들 간에 정보 동조관계와 비대칭성을 추론한다.
  2. 유사복제의 변화 폭을 주려고 일부러 인풋이 들어오는 통로에 가중치를 주어서 정보를 왜곡한다.
  3. 아웃풋은 확률적 결과정보로 표현한다.

이렇게 해서 퍼셉트론이 정보를 왜곡해서 유사복제하는 것을 어떻게 하는지 증명이 끝났구요. 이제 동조관계와 정보비대칭성을 어떻게 추론하는지 알아볼게요. 먼저 백프로퍼게이션 학습을 볼게요. Backpropagation - Wikipedia

자, 지금까지 설명한 퍼셉트론 시스템을 보면 특징이 있었어요. 퍼셉트론이 정보를 입력받는 통로의 가중치에 따라서 아웃풋이 영향을 받는다는 것인데요. 그런데 만약 그렇게 해서 아웃풋으로 출력한 확률적 결과정보가 연구자가 원하는 것이 아니면 어떻게 될까요? 확률적으로 그런 삑사리가 날 수가 있어요. 그러면 열심히 퍼셉트론 계산을 하고 나서도 만족할만한 성과를 얻을 수 없게 되죠. 이 문제를 해결하려면 퍼셉트론의 통로 가중치를 적절하게 수정해 주어야 하는데 어떻게 해야 할까요?

이것이 퍼셉트론이 개발되고 나서 오랜 시간 동안 연구자가 만족할만한 성과를 내주지 못한 이유였어요. 그러다가 백프로퍼게이션이 개발되게 되었죠. 백프로퍼게이션이 무엇인지 아주 쉬운 말로 설명해 볼게요. 님이 연구자에요. 연구자가 퍼셉트론 시스템을 만들어서 라벨링한 데이터를 입력해 주고 정보처리를 시켰는데 글쎄, 아웃풋으로 뻘소리가 나와버렸어요. 그래서 연구자가 "그게 아니야. 내가 원하는 아웃풋은 이런 모양이야. 좀 알아 들으라고."하고 지도를 해주었어요. 이제 이 영역이 백프로퍼게이션이에요.

[그림 P-3] 퍼셉트론에서 백프로퍼게이션으로 학습을 하는 과정을 인간 개체의 의사결정 방식에 비유한 도식

출력 레이어 퍼셉트론 개체가 연구자로부터 지도 의견을 입력받고 자기 전 단계 레이어 개체에게 피드백을 해주어요. 피드백은 연구자가 정한 특정한 확률적 결과정보가 아웃풋으로 나오도록 정보 유사복제를 해달라는 의견이에요. 이 의견을 받은 퍼셉트론 개체는 그때까지 세팅했던 통로 관점을 바꾸게 되요. 그렇게 해서 연구자가 원하는 아웃풋이 나오는데 방해가 되는 의견을 제시한 모든 퍼셉트론 개체가 피드백을 반영해서 자신과 연결된 개체와의 통로관점을 수정해요. 제가 그 과정을 위 그림에서 "우리 엄마(연구자)가 그러지 말라고 했다.”라는 말로 표현을 해놓았네요. 저 지도 의견을 받고 통로 관점이 수정된 곳이 바로 그림에서 오렌지색으로 표현된 부분이에요.

이 백프로퍼게이션은 일사분란하게 자동으로 이루어져요. 예전에는 이걸 자동으로 못하고 연구자가 신경망 한 개씩 가중치를 조정해 주어야 했어요. 이것을 자동으로 하는 방법을 개발한 것이 인공신경망 계열의 큰 성과였죠. 아래는 백프로퍼게이션 공식이에요.
weight = old weight - learning rate * (current output - desired output) * gradient descent function(current output) * old input

자, 이렇게 백프로퍼게이션 학습을 하고 나면 무슨 일이 일어나게 되나요. 바로 연구자가 목표로 하는 확률적 결과정보에 대해서 퍼셉트론 시스템이 동조관계를 형성하게 되요. 퍼셉트론 시스템이 사람(연구자)의 아웃풋 지도를 받고 통로 관점을 수정하는 과정을 거치면서 연구자의 사고방식과 동조관계를 이루기 시작한다는 거죠.

  1. 연구자(사람)가 있다. 퍼셉트론 시스템은 연구자가 무슨 생각을 하는지, 무슨 과정을 거쳐서 판단을 하고 선택을 하는지 모른다.
  2. 그러나 퍼셉트론에게는 자체적으로 정보를 유사복제하고 확률적 결과정보 아웃풋을 표현하는 매커니즘이 있다.
  3. 이제 이 퍼셉트론 시스템에 연구자가 자신이 원하는 확률적 결과정보 아웃풋을 제시한다.
    1. 이것이 백프로퍼게이션이고, 인공신경망 학습의 일종이다. 지도라고도 한다.
  4. 그러면 퍼셉트론 시스템은 연구자가 제시한 그 확률적 결과정보를 충족할 수 있는 형태로 통로 관점을 수정한다. 가중치를 자동으로 조절한다. 그렇게 해서 정보를 유사복제하는 패턴을 바꾸어 나간다.
  5. 이 과정을 거치면 퍼셉트론 시스템은 연구자의 사고방식과 동조화관계를 이루게 된다.
    1. 연구자와 동일한 정보처리 과정을 거쳐서 결론을 내리는 것은 아니지만 확률적으로 유사한 결론을 내리는 정보처리가 가능하게 된다.
    2. 쉽게 말해서 정보처리를 하는 과정은 서로 다르지만 결론은 확률적으로 비슷한 정보처리를 하게 된다.
      1. 더 쉽게 예를 들면 연구자가 서울에서 부산까지 가고 싶어하는데 어느 고속도로(과정)를 선택할지는 연구자와 퍼셉트론의 선택이 서로 다르지만 퍼셉트론도 연구자를 따라서 확률적으로 부산에 도착하는 선택을 하게 된다.
      2. 여기서 중요한 부분은 연구자가 서울에서 부산까지 가는 방법을 일일이 다 지시하지 않아도 퍼셉트론이 알아서 한다는 사실이다. 이것이 머신러닝과 딥러닝의 큰 차이다.
        1. 머신러닝은 딥러닝 퍼셉트론 시스템에 비해 과정 알고리즘을 훨씬 더 많이 입력해 주어야 하기 때문이다.  
  6. 정보의 동조관계와 비대칭성 추론은 퍼셉트론 개체 단위에서도 일어나고, 전체 퍼셉트론 시스템 단위에서도 일어난다.

이렇게 해서 퍼셉트론에서 정보 동조관계와 비대칭성을 추론하는 것에 대한 증명을 했어요. 이제 또 진도를 더 나가볼게요. 학습을 시키려고 의도한 값에 퍼셉트론이 현재 출력한 값을 뺀 나머지 값을 학습이 필요한 양(업계에서는 loss, 오류 등으로 표현한다)이라고 부르겠어요. 이것은 연역론에서 설명하는 정보비대칭성이에요. 출력 레이어에서 퍼셉트론에게 학습이 필요한 양을 제시하면 퍼셉트론은 그것을 기준으로 어떤 통로의 관점을 얼마나 수정할지 정해서 적용해요. 다층 퍼셉트론에서 숨은 레이어 층이 있을 때는 출력 레이어에서 입력 레이어 방향으로 나가면서 연쇄적으로 통로관점을 조정하구요.

지금까지 설명한 예는 퍼셉트론의 학습 방법 중 하나인 백프로퍼게이션(Back-Propagation)을 설명한 것인데요. 퍼셉트론이 학습을 하는 방법은 이것 외에도 수치 미분, 전역 가중치 확률 검색, 진화 알고리즘 등이 있지만 백프로퍼게이션이 학습 속도가 가장 빨라서 주로 사용되고 있어요. 자세한 설명은 참고링크를 확인하세요. Is it possible to measure accurate weights for a neural network without back-propagation? - Quora

이렇게 말로 설명하니 이해하기는 쉽지만 이런 언어 논리로 퍼셉트론이 실제로 논리 계산 문제를 해결하는 것을 설명할 수 있을까요? 좋아요. 되는지 안되는지 보여 드릴게요. 한 번 시작했으니까 뽕을 뽑아 보자구요. 제가 지난 두 달 동안 갈고 닦았거든요.

일단 수식이 뭔지 얘기해 볼게요. 수식은 논리 이후에 성립하는 기호 문법이에요. 수식을 논리로 증명하려면 수식에서 결과정보인 숫자를 비운 식의 관계정보를 논리로 설명할 수 있어야 해요. 그렇지 못하면 수식을 제대로 이해한 것이 아니에요. 연역론에서는 이렇게 가르쳐요. 그래서 퍼셉트론이 XOR 수식 계산을 할 수 있었음에도 불구하고 지금까지는 논리로 설명을 못해서 미지의 블랙박스 모델이라고 불린 거죠.

그러면 이 연역론 방식으로 퍼셉트론의 XOR 계산이 설명되는지도 봐야겠죠? 아래는 퍼셉트론의 문제해결 능력을 증명하는 예로 자주 거론되는 XOR문제 해결과정을 위에서 예로 든 것처럼 도식으로 표현한 것이에요. 연역론으로 퍼셉트론의 XOR 정보처리를 증명해 볼게요.

[그림 P-4] 퍼셉트론에서 XOR 문제 해결하는 과정을 비유한 도식. 단계 1 ~ 4

위의 정보처리 과정은 수식으로 동일하게 재현할 수 있어요 아래는 수식으로 표현한 XOR 학습 샘플이에요.


이렇게 퍼셉트론에서 결과정보인 숫자를 비우고 정보처리 과정을 추출해서 논리로 풀이해 보면 수 문법만 가지고 생각할때와는 다른 차원의 정보처리 과정을 발견할 수 있어요. 이것이 연역론에서 정보구조체와 관계정보를 추론하는 방법을 증명한 것이에요.

정리해 볼게요.
  1. 연역론은 퍼셉트론을 "정보를 만들어 내는 정보구조체"로 본다.
    1. 예를 들어서 신경망 구조란 언어에서 문법과 같은 것이다.
  2. 우리는 연역론의 관계정보 추론 방법을 사용해서 퍼셉트론이 가진 논리적 정보처리 방법을 증명했다.
  3. 우리는 연역론으로 퍼셉트론, 딥러닝의 블랙박스 모델을 논리 증명했다.

아래에는 문장과 수식에서 관계정보를 추출하는 방법과 퍼셉트론의 정보처리 과정을 비교한 도식이에요. 이것과 퍼셉트론의 정보처리 방법을 비교해 보아요.

[그림 P-6] 문장과 수식에서 관계정보를 추론하는 방법


[그림 P-7] 퍼셉트론 모델에서 관계정보를 추론하는 방법

이로서 딥러닝이 가진 블랙박스 모델의 논리적 정보처리 과정을 완벽하게 규명했어요. 그리고 이것이 세계 최초임을 확인했어요. 이전까지 이렇게 퍼셉트론을 증명한 사람이 없었던 거죠. 우리는 앞으로 이 내용을 영어로 번역하고, 공식 연구문서로 쓰고, 저장소에 올릴 예정이에요. 위키백과에도 등록할 거에요. 여기까지 연구하는데 한 6개월은 걸릴 줄 알았는데 두 달 밖에 안 걸려서 기쁘네요.

저는 앞으로 양자역학도 퍼셉트론 풀이한 것과 같은 방식으로 풀이해 볼 생각이에요. 양자역학도 수식만 작동하고 논리로 풀이하지 못하는 영역이 있기 때문이죠.


다음 편 예고

분량이 길어져서 이번 편은 여기서 끝낼게요. 다음 편 내용은 이래요.

  1. 딥러닝과 통계, 빅데이터, 머신러닝의 차이점
  2. DQN의 논리 설명
  3. 시나리오 정보처리
  4. 그외 연구 진행한 것

이기준 이기환의 딥러닝 연구 글에 보면 이미 정리한 내용도 있으니까 궁금하면 들어가서 보세요.


우리가 올린 이종포팅 소스 검증

어쩌다어른이라는 분이 제가 쓴 완전쉬운 딥러닝 글에서 제가 올린 줄리아 이종포팅 소스에 대해 "원본 소스 포팅을 다 안 한거"라고 주장했어요. 댓글 증거 자료부터 먼저 첨부할게요.


이 분이 보자보자하니까 진짜 막나가시더라구요. 그래서 제가 증명을 한 번 해보겠어요. 누가 이기는지 한 번 보자구요. 저는 저런식으로 누가 집적거리면 그냥 안 넘어가요. 끝까지 가는 거죠.  


이 상황을 표현하면 위 그림같은 상황이죠. 어쩌다어른님은 제가 원본 소스를 전부 다 포팅하지 않았다고 주장했어요. 그 이유로 소스의 코드를 보면 자신이 아는 함수들이 안 나온다고 했죠.


그런데 어쩌다어른님의 주장을 보면 뭔가 이상했어요. 소스가 제대로 포팅되었는지 보려면 제일 먼저 그 프로그램을 돌려 봐야 되잖아요. 왜냐하면 재현이라는 것이 다른 조건, 다른 환경에서 동일 결과(아웃풋)를 얻는 것을 의미하니까요. 그런데 가장 중요한 그 확인 작업에 대해서는 아무런 말이 없고 자기가 아는 함수 몇 개가 없다는 말을 하면서 깔보는 말을 하더니 다짜고짜 저보고 "포팅 다 안 하신거죠?"하고 물어보더라구요. 그런 다음 "아, 포팅 다 안 하셨구나.."하고 단정하는 말을 했구요. 쉽게 말하면 프로그램이 작동하는지 확인도 안 해보고 저에게 간을 보더라구요.

저는 일단 프로그램을 돌려서 아웃풋이 나오는지 안 나오는지를 보여 드릴게요. 검수에서 이게 제일 중요하구요. 함수 부분은 그 다음에 얘기할 거에요. 유튜브 동영상 링크 보여 드릴게요. 20170111 Perceptron-jl 동작 영상


이 글을 읽으시는 그 어떤 분이라도 원하시면 이 확인을 해볼 수 있어요. 저만 할 수 있는게 아니에요. 누구라도 우리가 링크한 소스와 원본 C++ 소스를 다운로드해서 작동시킬 수 있어요. 아웃풋 검증은 이것으로 마칠게요.

함수 부분 설명
줄리아는 C++과 문법이 달라요. 동일한 함수를 사용하지 않고도 같은 정보처리를 하도록 만들 수 있어요. 어쩌다어른님이 만약 "00함수가 안 보이는데 그 부분 정보처리를 어떻게 재현했느냐?"이렇게 물어보았으면 트러블이 안 생기고 제가 아는 대로 대답했을거에요. 그러면 그냥 건전한 토론이 되었겠죠. 제가 보니까 어쩌다어른님이 객기를 부려서 "포팅을 제대로 다 안 했다."는 거짓말까지 하는 바람에 이렇게 문제가 커진거죠.  

원본 C++ 코드 구조
Julia 포팅 코드 구조
main.cpp
Array1D.h
VectorND.h
MatrixMN.h, MatrixMN.cpp
NeuralNetwork.h, NeuralNetwork.cpp
   initialize
   getSigmoid
   getRELU
   getLRELU
   getSigmoidGradFromY
   getRELUGradFromY
   getLRELUGradFromY
   applySigmoidToVector
   applyRELUToVector
   applyLRELUToVector
   propForward
   propBackward
   updateWeight
   setInputVector
   copyOutputVector
MultiLayerPerceptron.jl 에서 main함수 통합
Julia에서 자체지원함
Julia에서 자체지원함
Julia에서 자체지원함
MultiLayerPerceptron.jl
   initNeuralNet
   재현 실험에 불필요함
   getAvtivate 활성함수 중 RELU만 선택해서 사용
   재현 실험에 불필요함
   재현 실험에 불필요함
   getActGrad 활성함수 중 RELU만 선택해서 사용
   재현 실험에 불필요함
   재현 실험에 불필요함
   단순 반복문이라 feedForward 함수에 포함시켰다
   재현 실험에 불필요함
   feedForward 함수로 재현했다
   feedBackward 함수로 재현했다
   단순 반복문이라 feedBackward 함수에 포함시켰다
   setInputs 함수로 재현했다
   getOutputs 함수로 재현했다

위의 표 내용 중에 "재현 실험에 불필요함", "활성함수 중 RELU만 선택해서 사용"이라는 말이 있는데요. 이 말은 C++ 원본 소스를 만드신 분이 같은 역할을 하는 함수1, 함수2, 함수3 등 여러 함수 중에 아무 것이나 한 개 선택해서 사용하라고 한 옵션 부분이에요. 원본 소스 저자도 그렇게 한 개만 선택해서 프로그램을 작동시켰구요. 그래서 우리는 그 함수들을 다 재현하지 않고 한 개만 선택해서 재현했어요.

함수 부분 논란은 이것으로 정리할게요. 이걸 보면서 알 수 있는 것은 어쩌다어른님이 기본적으로 코드 읽는 능력이 떨어진다는 것이에요. 그리고 자기가 다른 언어에 대해서 잘 모르면 물어보면 되는데 넘겨집기로 객기를 부린 것을 확인했어요.

이기환님 코멘트
우리가 쓴 글에는 이렇게 적혀 있습니다.
"딥러닝을 처음부터 공부해 보기로 했다. 강좌를 보고 원본 소스를 다른 언어로 포팅해 보았다."
이렇게 과정을 담백하게 적었습니다.
그것을 보고 학부생 수준도 안되느니 하는 말은 그 사람 본인이 가진 그릇된 권위의식을 표현하는 말입니다. 이것은 과학이 아닙니다. 과학을 빙자한 폭력입니다.
자신이 더 나은 방법을 알면 담백하게 더 나은 방법이 있다고 솔직하게 말하면 되는데 괜히 자신이 가진 알량한 권위에 다른 사람이 도전한다는 왜곡된 사고방식으로 감정을 섞어서 지적하고 나무라는 것입니다. 우리는 주로 능력이 없고 열등감에 사로잡힌 사람들이 이런 행패를 부리는 것을 볼 수 있습니다.
저는 누가 뭐라고 해도 앞으로도 담백하게 계속 연구하면서 추론의 수준을 높여 나갈 것입니다. 어쩌다어른님이 이렇게 막나가다가 망가지는 것을 보니 안타깝습니다.

이제 마무리로 간단 정리 해볼게요.
  1. 프로그램의 이종포팅이 제대로 되었는지 확인하는 절차에서 제일 첫 번째는 그 프로그램을 작동시켜서 원본과 동일한 아웃풋이 나오는지 확인하는 것이다.
    1. 이것이 과학에서 재현 실험의 원칙이다. 재현 실험의 원칙이란 다른 환경, 다른 조건에서 동일 결과를 얻을 수 있는지 확인해야 한다는 것이다.  
    2. 그러나 어쩌다어른님은 그 확인을 하지 않았다. 그렇게 말할 수 있는 이유는 어쩌다어른님이 처음 문제의 댓글을 달았던 2016년 12월 23일 17시 41분부터 현재까지 아웃풋에 대해서 단 한 차례도 언급을 하지 않았기 때문이다.
  2. 어쩌다어른님은 1번 과정을 실행하지도 않았으면서 우리가 "포팅을 다 하지 않았다."고 단정해서 주장했다. 그가 그렇게 말한 이유는 우리가 올린 줄리아 소스에 자신이 아는 함수가 나오지 않았기 때문이라고 했다.
    1. 그러나 줄리아 코드는 C++과 문법이 다르다. 정보처리를 할 때 같은 함수를 사용하지 않는다.
    2. 어쩌다어른님이 지적한 내용을 우리는 대응하는 표를 만들어서 반박 증명했다.
    3. 이런 정황으로 어쩌다어른님이 줄리아 코드를 읽을 줄 모른다는 것이 확인되었다.
    4. 줄리아 코드를 읽을 줄 모르더라도 어쩌다어른님이 과학자의 관점으로 알고 싶었다면 C++에서 00함수로 하는 정보처리를 줄리아에서 어떻게 재현했냐고 물어보면 되는 일이었다. 그러나 어쩌다어른님은 막무가네로 우리가 원본 소스 포팅을 다 안 한 것이라고 단정해서 주장했고 그것이 그 사람의 가장 큰 실수였다.
  3. 어쩌다어른님은 심지어 원본 소스인 C++ 소스까지 문제 삼으면서 제대로 된 퍼셉트론 소스가 아니라고 주장했다. 비아냥 거리면서 이걸 누가 만들었는지 물었다.
    1. 해당 C++ 원본 소스는 동국대학교 컴퓨터공학과 홍정모 교수가 교육용으로 만든 것이었다.
    2. 어쩌다어른님이 저런 얘기를 꺼낸 것은 과학자로서 실례다. 객관적인 증거도 없이 다른 사람을 까내리고 비아냥 거리는 것이 과학인가?
  4. 어쩌다어른님은 제대로 된 프로그램 확인 절차도 거치지 않고 이기준, 이기환 뿐만 아니라 원본 소스를 만든 사람까지 포함해서 다른 사람이 만든 소스에 대해서 조롱하고 폄하하는 말을 했다.
    1. 사실관계를 왜곡해서 포팅을 다 안했다고 거짓말을 하면서 몰아간 것은 명예훼손이다. 쉽게 말해서 범죄다.
    2. 원본 소스를 근거도 없이 폄하한 것도 명예훼손이다. 이것 역시 범죄다.

이것으로 전체 증명을 마칠게요.

어쩌다어른님아, 인생은 실전이에요. 과학자면 과학자 답게 담백하게 프로그램이 제대로 작동하는지 실행 시켜보고, 자기가 모르는 내용이면 물어보고 확인을 하면 되는거지 확인도 안 해본 주제에 감히 어디 포팅을 다 했니 안 했니 단정하고 비아냥거려요. 제가 좋은 말로 정중하게 그러지 말라고 하니까 제가 우습게 보였어요? 제가 님 명예훼손으로 고소했거든요. 조만간에 법원에서 만나요. 세상이 그렇게 호락호락하지 않다는 것을 가르쳐 드릴게요.


딥러닝 코딩 공부할 사람 모집

제가 최근 몇 달 동안 많은 사람들에게 코딩에 대해서 배우고 싶다는 요청을 받았어요. 그래서 오픈소스 방식으로 코딩을 가르치는 프로젝트를 진행하고 있어요. 이 프로젝트의 이름은 Rellat(릴랏)이에요.

이 프로젝트가 어떻게 진행되고 있는지는 릴랏 강의 1 글을 읽어보면 자세하게 나와요. 오픈소스구요. 무료에요. 관심있는 분들은 릴랏 페이스북 그룹에 가입하세요.


딥러닝 컨퍼런스 강연 안내

제가 오는 2017년 2월 17일 금요일 오후 9시에 코엑스 컨퍼런스룸 남 308호에서 강연을 해요.
주최하는 곳은 Deep Learning 그룹이구요. 제가 주최 측의 초대를 받아서 하게 되었어요. 자세한 정보는 링크를 확인하세요. 딥러닝 컨퍼런스 1회

제가 할 강연 내용은 제가 딥러닝 연구한 내용을 동영상과 슬라이드로 설명하는 것이구요. 딥러닝을 응용하는 사례에 대해서 여기서 우리가 진행하고 있는 릴랏을 예로 들 거에요.


마치며..

제가 연구한 것에서 현실에 부합하는 결과가 나와서 기쁘게 생각해요. 무엇보다 제가 궁금해서 알고 싶다고 생각한 것을 납득할 수 있게 정리해서 좋네요. 매일 꾸준히 자기가 좋아하는 일을 해나가면 그게 행복한 삶이에요. 경제적인 성공, 명예 같은 보상은 뒤에 따라오는 덤이죠. 우리는 행복을 스스로 만들어 내서 살아갈 수 있어요. 저는 즐거운 마음으로 제가 좋아하는 분야를 공부하고 연구했어요. 남들이 궁시렁 거리더라도 게의치 마세요. 묵묵히 우리가 하고 싶은 일을 실천하면 되요. 인생은 그게 전부에요.



참고문헌

[1] Bertrand Russell (1919) "Introduction to Mathematical Philosophy". London: George Allen & Unwin. (ISBN 0-415-09604-9 for Routledge paperback)
[2] Gottlob Frege (1879) Begriffsschrift: eine der arithmetischen nachgebildete Formelsprache des reinen Denkens. Halle.
[3] Gödel, Kurt (1931). “Über formal unentscheidbare Sätze der Principia Mathematica und verwandter Systeme I”. 《Monatshefte für Mathematik und Physik》
[4] Aizerman, M. A. and Braverman, E. M. and Lev I. Rozonoer. Theoretical foundations of the potential function method in pattern recognition learning. Automation and Remote Control, 25:821–837, 1964.
[5] Frank Rosenblatt (1958), The Perceptron: A Probabilistic Model for Information Storage and Organization in the Brain, Cornell Aeronautical Laboratory, Psychological Review, v65, No. 6, pp. 386–408. doi 10.1037/h0042519.
[6] David Chalmers, Robert M. French & Douglas R. Hofstadter (1990) High-Level Perception, Representation, and Analogy: A Critique of Artificial Intelligence Methodology. Journal of Experimental and Theoretical Artificial Intelligence 4:185-211, 1992. Reprinted in (D. R. Hofstadter) Fluid Concepts and Creative Analogies. Basic Books.
[7] Klaus Greff, Rupesh Kumar Srivastava, Jan Koutník, Bas R. Steunebrink, Jürgen Schmidhuber (2015) “LSTM: A Search Space Odyssey
[8]  Kim, Y. (2014). Convolutional Neural Networks for Sentence Classification. Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP 2014), 1746–1751.
[9] Volodymyr Mnih, Koray Kavukcuoglu, David Silver, Andrei A. Rusu, Joel Veness, Marc G. Bellemare, Alex Graves, Martin Riedmiller, Andreas K. Fidjeland, Georg Ostrovski, Stig Petersen, Charles Beattie, Amir Sadik, Ioannis Antonoglou, Helen King, Dharshan Kumaran, Daan Wierstra, Shane Legg & Demis Hassabis (2015) "Human-Level Control through Deep Reinforcement Learning". Nature. 529 – 533
[10] Schacter D, Addis D, Hassabis D, Martin V, Spreng N, Szpunar K (2012) "The Future of Memory: Remembering, Imagining, and the Brain". Neuron. 76, 677 – 694


관련된 글 목록



연락처




Facebook Comments

Disqus Comments

About Author

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

Popular Posts

Visitor Map

Flag Counter