해결책
2015년 당시 통념은 순환 신경망을 학습시키기 어렵다는 것이었고, 이를 사용한 논문들은 수식과 벤치마크 표로 가득해 독자가 네트워크가 실제로 무엇을 학습했는지 거의 알 수 없었다. 안드레이 카파시는 이미지 캡셔닝 작업에서 그 반대를 발견했다. 작고 임의로 구성된 모델이 몇 분 만에 놀랍도록 좋은 캡션을 생성했던 것이다. 그는 이 모델들이 왜 주목받을 만한지 보여주기로 했다.
그의 에세이는 RNN을 하나의 상태를 지닌 단계 함수로 가르친 뒤, 텍스트의 다음 문자를 예측하는 문자 단위 언어 모델로 확장했다. 이 글에는 numpy로 구현한 100줄짜리 최소 구현과 MIT 라이선스의 Torch/Lua 코드베이스인 char-rnn이 포함되어, 독자가 하나의 큰 텍스트 파일을 입력하여 모든 실험을 재현할 수 있었다.
데모들은 학습 과정을 눈에 보이게 만들었다. 학습 후 샘플링을 하자 셰익스피어식 대화, XML과 괄호가 올바르게 중첩된 위키백과 마크다운, 거의 컴파일될 뻔한 가짜 대수기하학 LaTeX, 중괄호가 균형을 이루고 그럴듯한 주석이 달린 리눅스 커널 C 코드가 나타났다. 《전쟁과 평화》 모델은 100회 반복에서 무작위로 뒤섞인 문자열이던 것이 2000회 반복에서는 철자가 제대로 된 문장으로 개선되었고, 뉴런 시각화를 통해 문자열을 암기하는 대신 텍스트가 URL, 인용문, 위키 링크 안에 있는지를 추적하는 법을 학습한 세포들을 발견했다.
글 끝에 덧붙인 편집 목록은 반응을 기록한다. 레딧 토론, 런던 딥러닝 밋업에서의 발표, 요아브 골드버그의 n-gram 기준선과의 비교, 그리고 요리 레시피, 에미넴 가사, 오바마 연설, 아일랜드 민요, ABC 표기법 음악, 성경으로 char-rnn을 학습시킨 커뮤니티 재현 사례들이다. 이 에세이는 2019년 2월 3일 해커 뉴스에 다시 올라와 161점과 51개의 댓글을 받았다.
성과
학습이 일어나는 과정을 보여주라: 코퍼스당 하나의 문자 모델, 코드와 뉴런 지도 포함
100줄짜리 numpy 구현과 공개된 저장소는 주장을 반증 가능하게 만들었다. 어떤 독자든 저자의 스크린샷을 믿는 대신 같은 모델을 직접 학습시킬 수 있었다.
셰익스피어, 위키백과, LaTeX, 리눅스 소스 같은 익숙한 코퍼스가 설명을 공짜로 해주었다. 독자들은 ML 전문 지식 없이도 샘플링된 출력이 맞는지 판단할 수 있었기 때문이다.
100, 300, 700, 2000회 반복에서의 샘플을 보여줌으로써 네트워크가 학습한다는 추상적 진술을, 띄어쓰기에서 철자로, 철자에서 문법으로 구조가 드러나는 가시적 과정으로 대체했다.
뉴런 발화 지도는 블랙박스에 대한 회의론에 답했다. 순수한 문자로부터 인용문 감지, URL 추적, 괄호 세기를 학습한 세포들을 보여주었기 때문이다.
MIT 라이선스 덕분에 파생 프로젝트들이 이 기법을 레시피, 음악, 정치 연설로 확산시켰고, 이렇게 해서 하나의 블로그 글이 가시적인 생태계를 만들어냈다.
내부가 보이지 않아 기법이 불신받을 때는, 가장 작은 동작 버전을 내놓고 학습이 일어나는 과정을 보여주라. 독자가 다시 실행할 수 있는 증거는 너무 어렵다는 주장을 이긴다.
그 후
글 끝에 덧붙인 편집 목록은 즉각적인 후속 반응을 기록한다. r/machinelearning과 r/programming에서의 토론, 런던 딥러닝 밋업 발표, 요아브 골드버그의 n-gram 기준선 비교, 요리 레시피, 에미넴 가사, 오바마 연설, 아일랜드 민요, 성경으로 학습시킨 커뮤니티 모델들, 그리고 char-rnn이 미리 설치된 Terminal.com 스냅샷이다. 이 에세이는 이 글에서 대중화한 기반 LSTM 연구가 발표된 지 수년 후인 2019년 2월 3일 해커 뉴스에 다시 올라와 161점과 51개의 댓글을 받았다.
근거 확인하기
출처
- The Unreasonable Effectiveness of Recurrent Neural Networks Andrej Karpathy · karpathy.github.io ·
- The Unreasonable Effectiveness of Recurrent Neural Networks — Hacker News discussion Hacker News · news.ycombinator.com ·