본문 바로가기

AI73

[DLBasic] 11 - 2. CNN introduction : Max pooling and others 저번 시간에는 간단하게 CNN의 개념을 알아보았다. 이번 시간에는 max pooling 등을 알아보도록 하겠다. 저번 시간에도 살펴보았듯이 CNN에서는 중간중간에 pooling이라는 단계가 있었다. pooling은 간단하게 샘플링이라고 볼 수 있다. 저번 시간에 배웠듯이 한 개의 convolutional layer의 깊이는 몇 개의 필터를 사용하는지에 따라 달라졌었고, 여기에서 한 개의 layer만 뽑아내서 작은 사이즈로 축소하는 것이 pooling layer이다. 위의 예시를 보자. stride 2이므로 2칸씩 이동하고, 2 x 2 필터이므로 2 x 2의 결과가 나올 것이다. 각각의 필터에서 가장 큰 값을 뽑아낸다면 맨 오른쪽과 같은 결과가 나올 것이다. 필터와 stride를 어떻게 정하느냐에 따라 다.. 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.