이미 학습된 가중치를 통해 finetunning을 진행한다.
가져온 가중치를 기반으로 데이터셋을 이용해서 fine-tunning
지금까지 mini-batch SGD
NN에 대해서 배웠음.
그래서 Training NN의 간단한 역사
1차 암흑기
backpropagation도입
그러나 실행이 잘 안됌
2차 암흑기
backpropagation실행
2010,2012년
AlexNet등장
weight initilaization,data늘어남,gpu등장 등등 따라서 발전 가능
Activation function
x와w의 linear한 합을 activation function으로non-linear하게 출력
Activation function
sigmoid(마치 0과 1사이의 확률로 표현)
문제점->
1.뉴런이 포화되서 vanishing gradient(saturated regime에서 gradient=0)
2. zero-centered가 아니어서 slow convergence
3. exp()함수가 성능의 저하를 가져온다.
tanh(x)
1.번 문제가 여전히 존재한다.
ReLU
현재 defualt한 선택으로 ReLU를 사용한다.
zero centered아님.
x가0보다 작을때 0.
but,계산이 빠르고 성능이 좋다.
dead ReLU zone lr가 너무 클때나 처음 초기화된 값이 음수일때.
대처방안으로 bias값을 0.01과 같이 초기화...
Leaky ReLU
x<0일때도 기울기를 가져서 vanishing gradient경우 없다
ELU
(Relu+exponential)
Maxout "Neuron"
saturation발생안하지만 parameter2개이기때문에 연산이 2배로 증가
정리하자면 특별한 경우가 아니면 RELU 실험이 필요한 경우에는 LeakyReLU,ELU,maxout사용
전처리))
zero-centered data,normalized data.
PCA(주성분분석->데이터 비상관화 해서 차원을 줄이는),whitening
이미지에 대해서는 PCA,whitening안함
이미지에 대해서는 zero-centered만 신경씀.
weight initialization
만약에 모든가중치가 0이면 모든연산이 동일,->문제
random number를 사용하되 매우작은 값을 적용.
network가 커지면 문제가 생긴다.
모든 activations become zero!
너무작은 수가 아닌 큰수를 적용하면 오버슈팅 거의 모든 값들이 saturated된다.
Xavier initialization
Relu일때 문제
Relu일때는 He.et.al
그런데 이렇게 weight initialization 의존안해도 되게 하는 것?
batch normalization 사용
학습하는 과정 자체를 안정화 시켜서 안정적인 학습이 가능하도록 하게!
내부에서 covariance shift가 일어난다. 따라서 각 layer를 거칠때마다 normalization을 하자.
수식처럼 정규분포를 적용.
첫번째 단계에서 normalization
두번째 단계에서 scaling과 shift를 통해서 squash
결과적으로 네트워크상에서 gradient flow를 향상시켜주고
learning rate가 크더라도 허용
초기화에 의존하지 않도록
regularization을 사용하는 효과 dropout안사용해도 되도록,,
training할때와 test할때 다르게 작용함.
training->batch 기준
test->전체 기준
(mean과 variance)
learning process?
1)preprocessing the data
2)regularization설정
hyperparameter optimization
lr, regularization term
coarse->fine
epoch을 작게해서 감을 잡고 수행
random search, grid search
오히려 등간격 즉, grid search가 더 못찾는다.
hyperparameter search에는 무조건 random search!
초기화가 잘못되었다면 loss가 큰 상태에서 정체하는 그래프
강화학습은 정확한 dataset을 가지는게 아니라 계속된 상호작용으로 학습하기 때문에
lossfunction그래프가 왔다갔다한 형태로
accuracy graph는 해석이 가능하다
gap이 크다?->overfitting되었다. overfitting방지?->regulraization strength를 높여줘야한다.
gap이없다?->모델 capacity가 문제가 있다.
weight updates/weight magnitudes
0.001이 되는 것이 일반적.
