Tuesday, August 23, 2016

제프리 힌튼 - 드롭아웃을 깨닫게 된 3번의 '아하'

2016년 8월 초에 레딧 머신러닝에서 있었던 구글브레인 팀과의 AMA(Ask Me Anything: 무엇이든 물어보세요!)에서 드롭아웃을 발견하는 과정을 누가 질문했습니다. 원문은 여기입니다.

[–]figplucker 23 points  
How was 'Dropout' conceived? Was there an 'aha' moment?
[–]geoffhintonGoogle Brain 67 points  
There were actually three aha moments. One was in about 2004 when Radford Neal suggested to me that the brain might be big because it was learning a large ensemble of models. I thought this would be a very inefficient use of hardware since the same features would need to be invented separately by different models. Then I realized that the "models" could just be the subset of active neurons. This would allow combinatorially many models and might explain why randomness in spiking was helpful. 
Soon after that I went to my bank. The tellers kept changing and I asked one of them why. He said he didn't know but they got moved around a lot. I figured it must be because it would require cooperation between employees to successfully defraud the bank. This made me realize that randomly removing a different subset of neurons on each example would prevent conspiracies and thus reduce overfitting.
I tried this out rather sloppily (I didn't have an adviser) in 2004 and it didn't seem to work any better than keeping the squared weights small so I forgot about it.
Then in 2011, Christos Papadimitriou gave a talk at Toronto in which he said that the whole point of sexual reproduction was to break up complex co-adaptations. He may not have said it quite like that, but that's what I heard. It was clearly the same abstract idea as randomly removing subsets of the neurons. So I went back and tried harder and in collaboration with my grad students we showed that it worked really well.

제프리 힌튼: 드롭아웃은 총 세 번에 걸쳐 깨닫게 되었습니다. 우선 2004년에 레드포드 닐이 저한테 이야기해준 내용입니다. 인간의 뇌의 용량이 이렇게 큰 이유는 어쩌면 뇌 안에 여러 모델이 있고 그 모델을 합치는 (ensemble) 것 때문일지도 모른다는 내용이었죠. 그 당시에는 그 이론이 현실적으로 너무 많은 하드웨어를 필요로 하기 때문에 비효율적이라고 생각했습니다. 그러다가 어느 순간 그 모델이 꼭 큰 모델이 아니라 전체 뉴런의 일부가 될 수도 있겠다는 생각을 했습니다. 그렇게 생각하면 신경 세포가 임의로 반응(spike)하는 것도 설명을 할 수가 있겠다구요.
그러고 얼마 지나지 않아서 은행을 갈 일이 있었습니다. 그런데 은행을 갈때마다 창구 직원이 매번 바뀌더라구요. 직원에게 왜 그런지 물어보니 본인도 잘 모르지만 그런 순환이 자주 일어난다고 대답했습니다. 저는 아마도 은행에서 횡령같은 범죄를 일으키려면 여러 직원의 협동이 필요해서 그것을 막기 위한것이 아닌가하는 생각을 생각을 했습니다. 그리고 같은 논리로 계속 다른 뉴런의 부분집합을 제거하면 뉴런들의 음모 - 즉 과적합(overfitting)을 막을 수 있지 않을까 하는 생각을 했어요. 그래서 2004년에 이걸 대강 구현해봤습니다 (당시에 저를 지도해줄 사람이 없었죠). 당시엔 그렇게 잘 돌아가지가 않아서 l2-reguralisation이 더 나은것으로 결론을 내리고 잊고 있었습니다.
그런데 2011년에 크리스토스 파파디미트리우가 토론토에서 강의하는걸 들었습니다. 강의 내용중에 생물의 2세 생산이 (두 유전자를 임의로 합치는 과정에서) co-adaptation을 막는 의미를 갖는다는 내용이 있었습니다. 어쩌면 강의의 촛점은 약간 다른 것 이었을 수도 있어요. 아무튼 저는 그렇게 받아들였습니다. 그리고 뉴런의 일부를 제거하는 것과 본질적으로 같은 내용이었죠. 그래서 이번엔 대학원생들과 함께 좀 더 열심히 구현을 해봤고 결과적으로 이 이론이 잘 작동한다는 것을 밝혀냈습니다.

----------
아이디어의 착상, 구현 실패, 재도전으로 구현 성공. 
대부분의 아이디어가 이런 과정으로 빛을 발하는 것이 아닌가 합니다. 
그리고 제프리 힌튼같은 사람도 지도해줄 사람이 없어서 구현을 실패했었다는게 재밌군요. 

No comments:

Post a Comment