-
인공지능 - 5. Neural Network(CNN)인공지능 2021. 5. 30. 18:44
MLP의 한계: layer의 수가 늘어날수록 학습속도와 일반화속도가 매우 느려진다.
Local minima: 기울기 강하 학습법의 근본적인 문제 = 오차가 충분히 작지않은 지역극소에서 학습이 멈춤(원하는 오차까지 줄어들지 않음) - Online mode, Simulated annealing 사용으로 해결
Slow Learning: Plateau Problem - 학습이 느려지는 평평한 구간이 나타, gradient(가중치 수정폭이 gradient의 크기에 의존) 크기가 점점 작아져서 학습이 느려짐(Vanishing gradient problem: 오차신호가 입력층으로 내려오면서 점점 약해짐)
Plateau 원인: saddle의 존재 (극대, 극소가 아닌 점)
Overfitting: 학습데이터에 포함된 노이즈까지 학습하여 정확도가 떨어지는 현상(신경망이 복잡할수록)
해결:
Activation Function 교체, 기울기가 줄어들지 않는 relu등 사용
????????Weight Initialization: Cell saturation이 일어나지 않도록 작은값으로
-Optimizer 관련 해결법들임-
Update rule with momentum: 이전의 움직임(관성)을 반영 - Plateau를 만나 느려져도 관성에 따라 학습함
Changing update rule: RMSprop, AdaDelta등 Weight마다 서로다른 학습률을 가지고, weight가 변화된 크기의 누적합을 적용시킨다.
Errorfunction의 curvature정보 활용
Batch Normalization: 학습하는 동안 각 node의 활성화 함수로 들어가는 입력을 normalization(입력분포를 항상 일정하게 유지) = Cell saturation, covariant shift현상 방지
Overfitting - EarlyStop(발생전에 종료), Regularization:오차함수에 정규화항 추가하여 Weight가 지나치게 커지는것 방지, Dropout: 매 update마다 hidden layer의 node 일부를 randomly하게 끈다.
Increasing Generalization Performance: Data Augmentation - Original data에 인위적인 변형을 가하여 추가 데이터 생성
CNN
Neuron:
Convolution
Subsampling = Pooling
Fully connected
input: 2d grid(image) * channels - rgb값을 받을경우 channel이 3개이다. flatten하면 없어진다.
Convolution layer
raw image로부터 의미있는 특징을 추출하기위해 사용한다.
이미지의 일부분을 자른다(filter = weight), 잘라낸 작은 이미지의 각 vector를 계산하여 Result값을 반환한다.
stride: changing size of output - 연속적으로 filter가 움직일때 몇칸씩 움직일지 결정한다.
Paddding: 원본이미지의 모서리 몇칸을 때고 Parameter로 받는다
Pooling Layer
Resizing을 위해 사용
'인공지능' 카테고리의 다른 글
인공지능 - 3. Classification (0) 2021.05.23 인공지능 - 1. 개요 (0) 2021.05.23