수업을 들은 학생들은 알겠지만, One Layer Neural Net은 사실상 Factor Analysis와 동치이다. 차이를 만들어낸다면 아마 Activation function이라고 부르는 Kernel 함수를 쓴다는 것 정도. 일반적으로 정규분포의 합과 차는 모두 정규분포이기 때문에, Input 데이터 간의 Linear combination을 찾아내는 계산으로 Factor를 찾을 수 있다는 관점은 Input과 Output 모두 정규분포를 따른다는 뜻이다. Universal (approximation) Theorem 증명을 보면 알겠지만, One Layer에 Node 숫자를 계속 추가하면, 마치 Taylor’s Expansion에서 봤던것처럼 어떤 Non-linear shape의 함수도 근사치로 표현할 수 있다. 고차항 or Node가 무한대까지 추가되면 (상황에 따라 약간 조건이 더 필요하지만) Asymptotic convergence도 이야기할 수 있으니까.
Multi Layer가 필요하다는 말은 데이터의 구조가 위상적인 구조를 가지고 있기 때문에, 일종에 4차원 좌표 위에 3차원 공간 그룹 N(>1)개라는 해를 찾고, 각각의 해 안에서 다시 2차원의 공간 그룹 Kn(>1)개를 찾아가는 작업의 반복으로 이해하면 그림이 좀 더 이해가 쉬울텐데, 그런 위상적인 구조를 찾아내는 계산은 더 이상 (일반적인) Factor Analysis에서 쓰는 1 layer 계산이 아니기 때문에, 계산을 표현하는 여러 방식 중 Network이라는 구조가 도움이 되니까, 그래서 Neural Net을 활용하는 것이다. (그렇다고 전통적인 Factor Analysis로 이 문제를 못 푸는 것도 아니다.)
더 설명할 내용이 최소 몇 십 단락이 더 있지만, 위의 지식만 있어도 One layer w/ many nodes vs. Many layers w/ few nodes (또는 Fat vs. Long) 라는 논쟁을 이해하고 자기 방식대로 설명할 수 있을텐데, 이걸 모르는 사람들이 Neural Net 전문가라며 명문대와 유명 대기업에서 강의를 하고 있는 실정이다. 그러니까 “실험”해보고 제일 좋은거 찾는다는 헛소리하거나, 자기가 모른다는 사실을 Blackbox라고 포장하고 다니는 것이다. (그래놓고 꼴에 AI Guru다 ㅆㅂ)
Neural Network라는 모델을 이해하기 위해서 필요한 수학 지식만 뽑아놓으면 벌써 1년 교육과정이 나오는데, 이 정도 허접한 수준으로 밖에 이해를 못 하고 있으니 기껏해야 실업계 고등학교, 전문대 수준의 직업훈련 코딩으로만 잔뜩 채워진, 시간만 때우는 강의를 하고 있는 것이다.