* Domain-Adversarial Training of Neural Networks - Yaroslav Ganin 2016 논문을 기본으로 작성한 리뷰.
[DANN으로 toy problem 풀어보기]
* Shallow Neural Network & two moon dataset
공부를 할 때 가장 기본은 많이 읽는 것으로 시작해서 그림으로 생각하고, 마지막으로는 코딩을 통해 직접 이론을 implement를 하여 결과를 시각화하는 것이 최고라고 생각합니다. 거기에 더해 요즘은 블로그로 글 정리를 해보고 있는데 이 것도 스스로 공부가 많이 되네요ㅎㅎ
아무튼 앞에서 이론은 열심히 봤으니까 이젠 코딩을 해봅시다. 지난 글 (1), 글 (2)에서 다뤘던 Domain Adaptation (DA) 이론을 hidden layer 수가 한 개씩으로 얕은 Neural Network를 이용하여 간단한 clustering 문제를 풀어보도록 하겠습니다. 본 글에 나오는 예제 코드는 MATLAB으로 작성하였으며 제 github에 올려두었습니다.
아무튼 앞에서 이론은 열심히 봤으니까 이젠 코딩을 해봅시다. 지난 글 (1), 글 (2)에서 다뤘던 Domain Adaptation (DA) 이론을 hidden layer 수가 한 개씩으로 얕은 Neural Network를 이용하여 간단한 clustering 문제를 풀어보도록 하겠습니다. 본 글에 나오는 예제 코드는 MATLAB으로 작성하였으며 제 github에 올려두었습니다.
* MATLAB보다 Python이 편하신 분은 제 github에 Window 7,10 Python 3.5 tensorflow-gpu 1.0.0.rc2 버전에서 돌아가는 Jupyter notebook으로 올려두었으니 보시면 됩니다.
다만 본 글은 수식과 연관하여 이해를 돕기 위해 논문의 pseudo code를 그대로 적용한 MATLAB 코드를 기준으로 설명을 진행하겠습니다.
사실 이 역시도 논문에 포함되어있는 내용이고, 심지어 저자가 toy code를 python으로 작성하여 github에 올려두었지만 제가 MATLAB language로 옮겨 짜면서 새로 data generation 함수를 추가하였고 main 역시도 더 간단하게 딱 실험에 필요한 부분만 남겨 이해를 도울 수 있도록 요약해보았습니다.
먼저 해결하고자 하는 문제를 확인해보겠습니다.
먼저 해결하고자 하는 문제를 확인해보겠습니다.