본문으로 바로가기

TIL 2021-11-27 Deep Learning, Local Model

category TIL 2021. 11. 27. 23:49

딥러닝

 

MLP에서 hidden layer가 엄청 많은 것

 

Human contribution 최소화

 

complex error surface -> difficult to learn

 

grandient vanishing/exploding

 

계산된 Output으로부터 error을 backpropagate해서 각 layer의 gradient를 계산하는데, 중간에 0에 가까운 값이 나오면 low layer들은 update가 잘 안되서 gradient가 사라지는 현상, 1보다 큰 값들이 계속나와 너무 커지는 현상

 

 

Rectified Linear Unit(ReLU)

 

큰 a에서 saturate하지 않음

 

0보다 작으면 0이므로 sparse representation (hidden unit 개수 줄음)

 

a<0인 경우 학습이 없으니 초기화 조심해야함 (0에 가까운 작은 wegiht에 positive bias를 붙이는 등..)

 

Leaky ReLU

 

low layer에서부터 몇개의 hidden node로부터 weighted sum이 계산되는 incoming edge 개수 -> fan in

 

Momentum

 

과거 gradient의 평균값을 일부 적용해줌(궤적 smoothing)

 

Adaptive Learning factor

 

RMSprop

 

gradient가 적으면 업데이트 더 하고 적으면 적게 함

 

ADAM

 

s,r은 처음에 0이고 알파와 로우는 1에 가까워서 초반에는 estimation이 0에 biased되는데 division을 통해서 고쳐짐

 

 

Batch Normalization

 

online, small mini-batch에 적용안됨

 

hiddent unit을 Z-normalize

 

inference에는 먼저 트레이닝 subset 을 통해서 mj, sj을 계산하고 이후 inference

 

 

Regularization

 

Hints

 

사이즈, 회전등의 변화를 주어도 불변해야할수 있도록

 

Virtual example 추가

 

원래 값과 virtual example 값 사이의 prediction값이 같아야함, 멀어질수록 Eh값이 커짐

 

 

Weight Decay

 

weight 0 -> simpler model

 

모든 weight은 0이었다가 점차 움직임

 

미리 멈춤 or 0이 아닌 weight에 penalty 적용(weight decay)

 

 

 

Bayesian Perspective

Bayesian rule 통해서

p(w)의 log likelihood function이 최대가 되는 것 찾기

 

 

Dropout

 

input/ hidden unit에 noise를 넣거나 drop을 해버림

 

Convoltions

 

Fan-in 줄이기

 

Image 경우는 local patch만 보는 등..

 

Weight Sharing

 

다른 location에 같은 weight을 사용함

 

pooling은 dimension을 줄이는 방법, 2x2를 하나의 셀로 바꿔버리는 등..

 

stride는 layer에 있을때 중간에 있는것은 버려버림. pooling을 하고 위의 layer에서 stride해서 pooling한 값만 가지고 있는 등..

 

Tuning Network size

 

불필요한 edge를 제거하기

 

network growth

 

Skip Connection

 

중간 layer 스킵 -> simpler model

gate unit

비중을 조절할수 있음

 

 

Learning Time

 

Time-delay network

 

마지막 input이 들어올떄까지 기다렸다가 mlp 실행

 

input 사이즈가 t보다 넘으면 t까지만 본다는게 단점

 

 

Recurrent

 

과거 state를 반영해서 현재를 prediction

 

Long short term memory

과거의 값이 시간이 갈수록 영향이 적어지는 것을 보완

 

 

 

Gated Recurrent Unit

 

Generative Adversarial Networks

 

G가 생성하는 사진이 진짜 사진인지 D가 판별

 

상호 경쟁적

 

D 업데이트할떄는 G를 고정하고 max loss

 

G 업데이트할떄는 D를 고정하고 min loss

 

 

Local Model

 

input space를 local region으로 나누어 각 patch마다 간단한 모델 학습

 

Online k-Means

 

xt에서 가장 가까운 centroid를 xt 방향으로 move

 

Adaptive Resonance Theory

 

vigilance로 비교해 만약 커버되지 않는 input x라면 새로운 cluster 추가함

 

Self Organizing Maps

 

neighbored function 통해서 neighbor에 해당하는 모든 애들을 centroid 적용

 

Radial Basis Function (RBF)

 

아웃풋 입장에서는 MLP와 다를게 없는데, 각각의 hidden unit이 갖는 값들이 달라짐

 

xt번째 input의 feature는, RBF의 center와 3 시그마 이내 unit들만 active되고 나머지는 0에 수렴하게 됨

 

x0가 필요하지 않음 center만 찾는것이기 떄문

 

 

Training RBF

 

Hybrid

 

1. k-mean 돌려서 center, spread값 구함

 

2.activation unit을 input으로 하는 퍼셉트론으로 보고 weight을 학습

 

Fully supervised

 

 

 

Rules and Exception

 

local region을 벗어난 input x에 대해서는 default rule에 의해서 w0 or linear rule을 리턴

 

Rule based Knowledge

 

미리 prior knowledge로 initialize하고 데이터로 fine tuning

 

Mixture of Expert

 

linear model로 weight을 학습시킴