Mini Project : Training an MLP on MNIST - 딥러닝은 이해하려 한다면 쉽지않을뿐더러, 실무에서 관습상 자연스레 사용하는 것들이 이론보다 앞서있는 경우가 많다. - 딥러닝이 처음인 경우 모델의 작동방식에 대한 직관을 키우기위해 여러 모델을 가지고 이런저런 시도를 해보는 것이 좋다. - 이번 미니 프로젝트에선 제공된 mnist_mlp.ipynb 파일을 바탕으로 - 신경망을 수정하고 모델의 구성을 변경해보며 그 결과를 비교해볼 것임. ** 참고 - over-fitting 이 감지되고있다는 판단의 근거는 validation loss와 training loss를 비교함으로써 알아낼 수 있다. - training loss가 validation loss보다 훨씬 낮은경우 그 모델은 ov..
Model Validation in Keras - 컴파일이 끝나면 모델을 학습시킬 준비가 다 됐다. - 모델을 학습시키는 과정에서 모델이 수정되는 과정을 이해하기위해 - 모델 유효화의 개념에 대해 먼저 알고있어야한다. - 우리는 지금껏 모델이 잘 학습되고있는지를 epoch가 증가함에 따라 loss의 정확도의 변화 추이를 보며 판단하였다. - 모델을 구현할 때, 얼마만큼의 레이어가 필요한지 또, 각 레이어마다 얼마만큼의 노드가 필요한지 명확하지 않았다. - 이런 결정을 내리기 수월하도록 일반적으로 데이터셋을 분류한다. - 보통 3가지로 나누는데, Train Set / Validation Set / Test Set 이 이에 해당된다. - 모델은 각각의 데이터셋을 각기 다른식으로 접근하게 된다. - 모델은 T..
MLPs for Image Classification - 이미지분류를 위해 신경망을 만들어 데이터의 패턴을 분석해보자. - 신경망을 만든 뒤 학습 된 모델이 새로운 이미지의 숫자를 분류해 낼 것임. - input으로 받을 벡터의 크기가 784이므로 784개의 노드를 가진 input layer가 필요하다. - hidden layer는 임의로 512개의 노드를 가진 hidden layer를 2개 연결해주고 - output layer로는 0~9까지의 숫자에 대한 분류가 필요하므로 총 10개의 노드를 생성하여 연결해주자. - 이제 이렇게 잡은 초안 설계를 Keras에 구현해주어야한다. - 위의 코드는 이전에 다뤘던 것과 크게 다르진 않지만 추가된 부분이 Flatten layer 이다. - Flatten laye..
Applications of CNNs - CNN(Convolutional Neural Networks) 은 한국어로 합성곱 신경망 또는 콘볼루션 신경망 으로 불린다. - 콘볼루션 신경망은 VUI(Voice User Interface), 자연어처리, 컴퓨터 비전 등 응용분야가 무긍무진하다. - VUI의 사례로, 구글은 CNN을 사용하여 WaveNet 모델을 발매하였는데 - WaveNet은 텍스트를 input으로 받아 컴퓨터가 창출해낸 목소리로 그것을 읽어낸다. - 진짜 개쩌는건 샘플을 제공해주면 가령, 내 목소리의 샘플을 제공해주면 - input으로 텍스트를 넣을때마다 output으로 내 목소리로 그 텍스트를 읽어낸다. - 자연어처리에서는 RNN(Recurrent Neural Networks)가 CNN보다..
Launch an Instance - AWS에서 GPU 제한을 상향조정했다면 인스턴스를 시작할 수 있다. - EC2 Management Console 에서 인스턴스를 시작할 수 있다. - 다음으로 AMI(Amazon Machine Image)를 선택하여야 한다. - AMI는 인스턴스의 OS를 의미하는데, 디폴트 소프트웨어 및 작동에 필요한 셋팅이 미리 설정되어있다. - 위와같이 AWS Marketplace에서 Deep Learning AMI with Source Code (CUDA 8, Ubuntu)를 입력하여 설치. - 이 AMI에는 GPU에서 학습시킬 수 있는 모든 환경과 드라이버가 포함되어 있다. - AMI엔 cuDNN와 같은 여러 다른 패키지가 포함되어 있다. Select the Instance ..