본문 바로가기

모두를위한딥러닝4

[DLBasic] 11 - 3. CNN case study 저번 시간까지 CNN의 기본적인 구성 요소를 알아보았다. 이것들을 응용해서 많은 형태를 구성할 수 있다. 가장 처음으로 만들어진 LeCun 교수님의 CNN 모델이다. 5 x 5의 필터를 사용했고 stride는 1이고 총 6개를 사용했다. 6개의 층으로 이루어진 feature map이 나오고 subsampling을 하면서 나아간다. 가장 기본적인 형태이다. 그 다음으로 살펴볼 것은 AlexNET이라는 이미지 경진대회에서 1등을 해서 주목을 많이 받았던 모델이다. 첫번째 layer에서는 color 이미지를 입력받아서 96개의 필터를 사용하고 stride는 4로 해서 output을 얻을 수 있다. 두번째 layer인 pooling layer이다. 3 x 3 필터를 사용하고 stride는 2를 사용했다. 그런 .. 2020. 1. 20.
[DLBasic] 11 -1 . CNN introduction 저번 시간에 잠깐 소개했었던 Split & Merge 방법을 사용한 Convolutional Neural Network 방법을 소개하겠다. Convolutional Neural Network의 기본 생각은 예전에도 잠깐 소개했던 고양이 실험에서 시작되었다. 입력을 나누어받는 고양이 뇌의 뉴런처럼 따로따로 처리하는 것이다. 하나의 이미지가 있으면 잘라서 각각의 입력으로 넘기고, 이 층을 Convolutional Network라고 한다. 중간에 ReLU 층을 넣고, pooling이나 convolutional layer도 여러 번 중간에 할 수 있다. 처음에 이미지를 입력으로 받고, 위의 예에서는 32 x 32 크기의 RGB를 가지고 있는 그림이라고 하자. 처리하는 단위는 filter라고 하고, 한꺼번에 얼마.. 2020. 1. 20.
[DLBasic] 10 - 4. NN LEGO Play 네트워크를 조립하는 것은 마치 레고와도 같다. 입력이 주어지면 layer을 계속 쌓았다. 직전 결과를 바로 앞에 전달하는 것과 달리 2개 전의 결과를 전달하는 방법도 있고, 이것을 Fast Forward라고 한다. 실제로 error rate가 3% 떨어진다고 한다. 처음에 몇 개의 독립적인 NN으로 구분해서 진행한 다음 모으는 Split 방법도 있고, 처음에는 여러 개로 나눠진 데이터들을 모아서 진행하는 방법도 있다. 이것이 Convolutional Neural Network로 이어진다고 한다. 한 방향으로만 나아가지만 말고 위 그림에서 보듯이 옆으로도 나아갈 수 있고, 경우에 따라서 또다른 입력을 받을 수도 있다. 이 방법이 RNN이다. 어떤 형태이든 NN을 조합해서 만들 수 있다. 2020. 1. 20.
[DLBasic] 10 - 3. NN dropout and model ensemble 이번 시간에는 오버피팅 문제를 해결하는 드롭아웃과 모델 앙상블에 대해 알아보겠다. 오버 피팅이란 훈련데이터에만 딱 맞는 모델이 되어서 범용적으로 올바른 결과를 맞추지 못하는 문제이다. 학습 데이터로는 99%같이 정확도가 정말 높게 나오는데 실제 시험 데이터로는 결과가 낮게 나오는 것이 오버피팅의 현상이다. 이런 모델을 실전에 사용하면 안 된다. 위의 그래프에서는 빨간 선이 test data's error rate이고 파란 선이 train data's error rate이다. layer가 많아질수록 train data에서는 error rate가 떨어진다. overfitting을 해결하는 방법으로는 학습 데이터를 더 많이 준비하는 것이 가장 좋다. 교수님 말씀으로는 feature의 개수를 줄일 필요는 없다고.. 2020. 1. 20.