Deep Neural Network (DNN) 란
DNN 의 구성요소
DNN 의 구조형성 방법
DNN 이 무엇인지 이해할 수 있다.
DNN 의 구성요소를 이해할 수 있다.
DNN 을 위한 적절한 구조를 파악할 수 있다.
DNN: 전통적인 머신러닝 기법들의 총집합체
DNN 사용이유
비선형 문제 해결
Overfitting 문제 해결
convolution filter 등으로 feature 를 뽑았음에도 비선형성이 복잡하게 남아 있는 경우 Kernelization 을 활용합니다.
비선형성 해결을 위해 모델을 키우고 복잡한 커널 적용 시 overfitting 문제는 점점 더 증가합니다.
딥러닝에서는 복잡한 비선형성을 어떻게 풀 수 있을까?
과적합 문제는?
데이터를 많이 사용함으로써 문제 해결
iid condition
학습데이터와 테스트데이터가 어느 정도 동일한 샘플 분포, 데이터 분포를 가진다는 의미
즉 학습데이터가 충분히 크다면 테스트 데이터를 충분히 표현할 수 있습니다.
기존 머신러닝 vs 딥러닝
기존: 모든 데이터 중 일부를 선택하여 활용
딥러닝: 모든 데이터를 고려
DNN 구성요소
Convolution Layer
Convolution Filter 종류
Gaussian: 평균을 내는 필터
Sharpen: 엣지 정보들을 중점적으로 찾아내는 필터
Laplacian of Gaussian filter
Traditional Filters | Convolutional Layers | |
---|---|---|
필터의 개수 | 10~30 | 64~1024 |
필터값 | 사용자가 미리 결정 | 학습을 통해 취득 |
필터의 출력 목표값 | 필요없음 | 필요하나 모름 (hidden feature 혹은 latent feature) |
필터의 입력 | 입력 이미지 | 입력 이미지 혹은 앞선 Layer 의 결과 |
Fully-connected Layer
Linear Regression
아웃풋 1개
원하는 prediction 결과와 최대한 비슷하게 출력하는 것이 목표
Fully-connected layer
아웃풋 여러개 (128개 ~ 2048개)
목표 값이 없음 (제 생각에는 아마 backpropagation 과 연관이 있는 것 같습니다. 체인룰을 적용하면 목표값이 생긴다고 볼 수 있는게 아닐까 싶네요...)
즉, linear regression 이 여러 개 있는 것과 똑같은 구조라 볼 수 있습니다.
Pooling Layer
Activation Function
간단한 비선형성을 구현하는 부분
뉴런의 구조에서 착안
Kernel Trick 의 경우 feature dimension 이 커질수록 복잡도가 증가하지만 AF 의 경우 고정된 함수 형태를 사용하기 때문에 속도가 빠르고 구조가 단순합니다.
AF가 없다면 layer 를 쌓아도 결과적으로 한개의 layer 구성과 동일한 구조입니다.