Neural Network의 기본
DL (deep learning) 이란?
: feature extraction & decision making을 machine이 수행
: 인간이 feature selection을 했을 때의 일반화 한계를 극복
: 여러 layer를 거쳐가며 feature를 뽑음 (원초적인 low-level feature -> 추상적 high-level feature)
: 학습에 사용된 데이터 양이 많아질수록 accuracy가 높아짐
Perceptron
: 하나의 뉴런에 대한 수학적 모델링
: input * weight의 sum -> activation function -> output
Batch computing
: 컴퓨터는 scalr, vector (dot-production) 연산보다 matrix*matrix multiplication에 최적화되어 있음
: input, weigth를 matrix로 묶어서 처리
MLP (Multi-layer perceptron)
: 여러 perceptron의 층 구성
: 전결합 (층 사이 모든 node가 pairwise로 결합됨)
: XOR (Exclusive-OR) problem을 해결할 수 있음
: output이 input*weight의 linear 곱으로만 이루어진다면 결국 직선만 그을 수 있음 -> 분류에 실패
: layer를 쌓으면 input을 새로운 공간에 뿌림 = space transformation
: nonlinear인 activation function을 가짐
DNN (Deep Neural Network)
: 2개 이상의 "deep" layers를 가진 NN
: neuron 간 연결의 종류에 따라 FC, CNN, RNN..
FC (Fully-Connected Network) = MLP (Multi-Layer Perceptron) = DenseNet = Linear
전결합되어있음
선형 분류기로 사용
CNN = ConvNet
전결합x, weigth의 재사용, convolution 연산 수행 => less computaion
feature extractor로 사용. 주로 이미지 분류
여러 CNN layer로 feature extraction => FC로 분류
Zero Padding
: border에 zero pad
: input-ouput size를 유지 & edge pixels의 information loss를 피함
Pooling Layer (Subsampling)
: size reduction을 시켜서 연산량을 줄여줌 + 뒤에서 channel size를 늘리는 방향으로 정보 손실을 복구
: translation invariance의 효과 (위치가 이동해도 같은 object로의 인식) ; 특히 max poolingdml ruddn