Almost Baseball, CSE and Diary

요새 가장 Hot한 Deep Learning 라이브러리는 아무래도 Tensorflow이고 또 많은 연구자들이 사용하고 있다.

Keras는 Tensorflow의 Wrapper 라이브러리로 일관성 있는 인터페이스와 Tensorflow에는 미구현 상태인

많은 Deep Learning 관련 도구들이 구현되어있다(BatchNormalization, Xavier Initialization 등...)

이번 포스트에서는 유명한 MNIST 예제를 Multi Layer Perceptrone을 설계해서 성능을 측정해보겠습니다.

ipython 파일의 포맷은 여기서 보실 수 있습니다.

해당 예제는 김성훈 교수님의 강의에서 Tensorflow로 구현된 것을 Keras로 구현해본 것입니다.

- 모듈 import 부분

MNIST 데이터 관련 패키지와 Feature Scaling 및 Multi Layer Perceptron 관련 패키지를 로드합니다.


- Data 로드 및 전처리

로드 한 데이터를 입력으로 받을 수 있는 포맷으로 변환하고 레이블은 One-hot 인코딩으로 변환합니다.

특히 Feature Scaling을 통해서 [0-1] 도메인으로 값을 바꾸는 것을 꼭 하셔야합니다!

MNIST 데이터는 단순히 모든 값을 255로 나눠도 되지만, 다른 데이터 셋을 사용하실 때는

scikit의 minmax_scale 함수를 활용하시면 좋을 것 같네요.


- MLP 구성 및 Evaluation

너무너무 간단합니다... Tensorflow에서 Weight와 Bias를 셋팅하는 것보다 훨씬 간편하다고 개인적으로는 생각합니다.

강의에서 언급하신 각종 기법들(Xavier initialization, Dropout, adam optimizer)로 MLP를 구성합니다.

Tensorflow로 구현한 것과 거의 일치하는 성능을 확인할 수 있습니다.


티스토리 툴바