33. 레고처럼 넷트웍 모듈을 마음껏 쌓아 보자 (lec 10-4)


Deep Learning 기초를 마무리하는 시간. 지금까지 많은 것을 배웠고, 이번 동영상에서는 교수님께서 누구나 잘 할 수 있다고 희망을 북돋워 주신다.


Neural Network은 마치 레고 놀이와 같다. 필요한 만큼 블록을 가져다 꽂기만 하면 된다. 이런 방식을 feedforward neural network이라고 부른다. 다만 많이 꽂으면 시간이 오래 걸린다. 좋은 GPU가 필수적인 요소가 된다.


2015년. 불과 1년밖에 되지 않았다. 홍콩 중문대 he가 ImageNet에 제출한 모델. 3% 이하의 error를 보인 놀라운 작품.

fast forward라는 이름으로 부르는데, 음악을 빨리 돌리는 것과 유사하다. 앞쪽으로 이동할 때 한 칸이 아니라 여러 칸씩 건너뛴다. 그림에서는 1칸씩 가야 하는데, 2칸씩 가고 있다. 헐.. 이라는 생각밖에 들지 않지만, 생각의 관점에서 다양한 방법들이 많이 남아있을 것 같은 희망이 들기도 한다. 나도 새로운 모델을 하나쯤 만들어 볼 수 있지 않을까? 김성훈 교수님께서 바라는 것이 이걸까?

fast forward 또한 dropout이나 ensemble처럼 다양한 결과를 통합하는 느낌을 주고 있다. 이동하는 과정에서 난수를 사용하면, 반복할 때마다 다른 결과를 얻게 되고, 전체적으로 균형이 잡히게 된다.


layer를 구축할 때 꼭 한 줄로 늘어놔야 할까? 중간에 벌어졌다가 나중에 다시 모이거나 처음부터 여러 개로 출발해서 나중에 하나로 합쳐지는 것도 가능할까?

이것이 엄청나게 유명한 Convolutional Neural Network(CNN)이다. 생각은 단순하지만, 이런 단순한 생각들이 너무 잘 동작한다는 사실이 감동적이다. TensorFlow에 포함된 mnist 모델이 CNN으로 구축되었고, 99.2%의 정확도를 보여줬다. 깜놀.


여러 방향으로 진행하는 것도 가능할까? 앞으로도 가고 옆으로도 가고..

이것도 엄청나게 유명한 모델로 Recurrent Neural Network(RNN)이라고 부른다. 연속된 방식으로 입력되는 음성인식 등의 분야에서 활발하게 연구 중인 주제이다.


누구나 모델을 만들 수 있다. 상상할 수 있다면, 어렵지 않게 만들어서 확인할 수 있다. TensorFlow라는 이미 만들어진 도구를 통해 누구나 가능한 세상이 되었다.

그림에는 현실에 존재할 수 없는 모양이 레고로 만들어져 있다. 그리기 전에는 누구도 이런 그림이 존재할 거라고 생각하지 못했다. 나도, 너도, 그녀도 할 수 있다.