converges much faster는 6배의 속도가 나지 않습니다. 사다리가 죽지 않기 때문입니다
easy computation
but half of the data will die
생물신경망의 개념에 부합
tanh
saturated -> kill gradient
sigmoid
이거 쓰지 마, because it's not zero centered
포화,exp가 계산하기 어려운 문제
도 있다.
gradient on w will be all negative or positive
maxout
Data Preprocessing
Mean/Normalization
이렇게 하지 않으면 w가 살짝 움직이면 분류가 안 된다
Batch Normalization
레이어당 normalization
마지막으로 y =gamma*xi+beta를 사용하여 복원하여expressive의 능력을 향상시킨다
Weight Initialization
W=0이면 업데이트되지 않음
W가 작으면 높은 층이 점점 0에 가까워진다
W가 비교적 크면 많은 활성화 함수가saturated로 인해 사다리가 0
으로 변한다.
마지막으로 Xavier initialization을 써야 하는데 이거 좋네
ReLu의 경우 Half Killed의 경우 1/2 이상
babysitting the network
시작
loss가 합리적인지 아닌지
그리고 reg를 넣으면 로스가 커진다
그리고 작은 데이터 집합을 훈련시켜 효과
를 본다
Learning Rate
비교적 작은reg부터loss를 작게 만들 수 있는learning rate
를 찾아라
로스가 잘 안 변하면 러닝 레이트가 너무 작아
NaN 또는 inf라면 learning rate가 너무 크다
learning rate는 보통 1e-3~1e-5 사이
Hyper Parameters Learning
Grid Search
랜덤으로 몇 가지를 선택하고 간격이 가까워서는 안 된다. 특히 중요한 매개 변수에 대해 비교적 좋은 분포가 중요하다
먼저 랜덤으로 러버 range를 찾은 다음 더 세밀하게 검색
Regularization
Training accuracy와Validation Accuracy를 주의해서 보십시오. 만약Validation Accuracy가 별로 변하지 않으면 Training Accuracy가 증가하고 있습니다. 이것은 의합이 되어 커질 수 있음을 설명합니다
알고리즘
SGD 알고리즘
decay 문제 주의
가장 장점에 가까울 때 속도를 늦추고 for learning rate
decay usually be 0.9 or 0.999
안장 지점(saddle)이나 local optima에 빠지기 쉽다
주의, high dimension 문제에 대해 saddle는 더욱 흔히 볼 수 있다. 왜냐하면 local optima는 모든 방향이 가장 우수하다는 것을 의미하고 saddle는 일부 방향이 가장 우수하다는 것을 의미하기 때문이다
빠지지 않아도 사다리가 작아져 속도가 느려진다
SGD가 막 뛰어
부분 방향 really sensitive
SGD+Momentum(운동량)
velocity(initialized to be zero) 추가
vx = rho * vx + dx
는 이전의 사다리의 조합에 해당한다
gradient -= alpha * vx
작은 공이 위에서 아래로 내려갈 때 운동량이 있으면 작은 로컬optima, 즉 작은 구덩이에 멈추지 않고 관성 있게 계속 앞으로 달리는 것과 같다
Nesters Momentum Gradient Descent
Firstly compute the gradient of (v + grad)
AdaGrad (not so common)
국부 최우수를 만났을 때 비참할 수 있으니 주의
for convex case, it’s a good feature to slow it down when you approach the optima
RMSprop (it runs well)
Adam (Stick all above together)
Problems come up at the initial steps, ‘cause these steps might be really large
so we should add a bias correction term
We can set like this, and it’s a good start point
beta1 = 0.9
beta2 = 0.99
learning_rate = 1e-3 or 5e-4
What’s more
우리는 매끄러운 미니마
를 선호한다
직감적으로 말하자면sharp 미니마는 보통 좋은 가장 좋은 장점이 아니기 때문에 우리는 데이터량을 늘려 이런sharp
를 제거할 수 있다.
Also we can decay our learning rate
step decay
exponential decay
1/t decay
아담은 보통 안 쓰는 것 같은데(보폭은 자동으로 줄어든다?)
먼저 no decay부터 시작해서 볼래요
Second-order optimization
All above are first-order optimization
Try second-order taylor expansion
Newton’s method to solve ‘gradient = 0’
=>theta_star = theta - Hessian-1(gradient)
in vanilla version of Newton’s method, H replace the learning rate, which is used to be a hyper parameter (but actually we still need to add learning rate because the second-order approximation maybe not perfect too)
However, Hessian is time-consuming to compute, not to say invert
alternatively, we can use BGFS/L-BGFS
Ensemble Model 집계 모델
Less the gap of training error and test error (validation error)
enjoy 2% extra performance to address the problem of overfitting
hyper parameters usually are not the same
Overfitting
다음은 모두 Regularization 방법입니다.
Vanilla Regularization
Dropout
Every time we do a forward pass through the network, at each layer, we randomly set some neurons to zero.
interpretation
Not use too much features to prevent overfitting
ensemble
주의 나누기 확률 P
Common pattern
Add some randomness to improve the generalization in training, and then average out randomness in testing
Batch Normalization (most commonly use and tend to be enough)
여기에 도입된 랜덤성을 정리하기 어렵다. 훈련할 때batch normalization은 모든mini batch에서 했기 때문에 그 규범화는 더욱 랜덤적이다. 테스트 단계에서 우리는pre-compute의 전체 균일치, 방차로 하기 때문에 이런 랜덤성
을 평균화했다.
이게 있으면 보통 dropout
을 안 해도 돼요.
Data Augmentation
입력을 무작위로 변환한다. 예를 들어 그림, 회전 렌즈,Color jittering, 이미지 정보 처리 등 일련의 조작
DropConnect
Fractional Max Pooling
Pooling(풀화)은 특정한 구역 내의 최대치를 무작위로 선택하여 이 구역의feature를 나타낸다. 주로 그림의 크기를 줄이고 제어하기 쉽다
Fractional이면 랜덤 Pooling인 것 같고 region 크기가 고정되지 않습니다
Stochastic Depth
Transfer Learning=> 물론 데이터 양을 직접 늘려도 Overfitting 완화
이미 배운 모델 매개 변수를 새로운 모델로 옮겨 새로운 모델 훈련을 돕는다
특히 데이터가 많지 않으면 ImageNet 같은 곳에 가서 비슷한 빅데이터 집합을 찾아서 훈련할 수 있다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다: