새소식

인기 검색어

TL

20/11/08 TL. DeepLearning이 되살아난 이유

  • -

오늘 할 일

강의 - 컴네, 기학

과제 - 기학

자소서 작성

 

내일 할 일

강의 - 진설2, 컴개

컴프2 공부

과제 - 컴그

 

시간 날 때 해야하는 일

코드 최적화 정리

리액트 클론 코딩 - 영화 리뷰 앱

java -> UML, class 분할 interface공부

도커 복습


hidden layer가 2개 이상인 걸 일반적으로 Deep Learning, Deep Neural Network...라고 한다.

 

MLP에서는 node 수를 늘려서 모든 것을 표현 가능하다. -> 노드 수가 많아질 수록 simple한 문제로 mapping할 수 있다.

즉, 상위 layer에서 simple한 representation을 찾는 것이 목표라고 할 수 있다. 이는 generalization power를 증가시킨다.

 

이제야 DNN이 유행하기 시작한 이유?

-연산능력이 좋아졌다. = H/W가 좋아졌다.(GPU)

-데이터가 증가됐다.

+다른 이유

 

다른 이유?

1. vanishing gradient를 해결.

vanishing gradient란? gradient가 0에 가깝게 수렴하는 현상. gradient가 어느정도 값이 되어야 update를 할 수 있는데, 기존엔 act func으로 sigmoid 함수를 사용했기 때문에 back propagation하며 한 층 올라갈 때마다, 0으로 값이 수렴해 갔다.

=> Pre-training, ReLu로 극복.

pre-training란? 사전학습. unsupervised하게 층별로 학습시켜 놓고, fine-tunnung한다.

RBM으로 pre-train하고 DBN하는 방식을 썼었는데, 이 방법은 layer별로 RBM 해야 해서 너무 무겁다. 최근엔 DBN을 잘 안 쓴다.

Relu란? 0 혹은 large값으로 만드는 active func. 계산이 쉽고, gradient가 large이다. 그러나, 초기에 값이 0이면 뒤도 다 0이기 때문에 그 점이 취약하다. 따라서, 이를 개선하기 위해 0으로 보내는 것이 아닌 작은 음수 값으로 보내는 Leaky ReLU도 등장했다.

Maxout units라는 것도 있는데, 이건 노드군을 이루고 하나만 active 시키는 방법이다. regularization하는 효과가 있는데, NLP 분야에서 자주 사용된다.

 

2. overfitting 개선

drop-out regularization이란? 뉴런의 수 만큼 경우의 수로 random하게 제거해본다.

Norm Regularization이란? loss func에 error뿐만이 아니라, capacity도 더해 적정치를 찾는다. train error와 capacity는 trade off 관계이다.

Data augmentation이란? model에 인의적으로 noise data를 더해서 데이터를 늘리고, 원래 원하는 것을 잘 찾도록 만든다.

multitask learning이란? shared parameter들을 놓는다. 이눈 다른 task지만, parameter들을 공유하게 해서 weight가 변경된다고 해서 마음대로 값들이 이동하지 못하게 한다. 모든 내용들을 고려해서 움직이도록 한다.

parameter sharing, sparse connection : CNN의 핵심 idea

 

3. optimization

일반적으론 효율성이 증가한다는 것은 정확도가 감소하는 trade-off 관계이다. 그러나, DL에서는 efficiency가 증가한다는 것은, epoch을 한 번이라도 더 학습시킬 수 있다는 의미로도 된다. 어차피 느리니까!

Stochastic Gradient Descent(SGD) : 조금만 훑어보고(mini batch) 빠르게 가보자. 

-Online learning : 1epoch = 1data point

-Batch learning : 1epoch = batch(all data)

-Minibatch : 1epoch = 1mini batch(100 data)

momentum이란? weight update할 때, current gradient만 따지는 것이 아니라, past gradient도 보는 것. 과거의 누적치가 총 반영되는데, 과거 정보를 어느정도 잊어버리는 것도 필요하므로 hyperparameter α도 있다.

adaptive learning rate란? large gradient일 때, learning rate를 작게 줄여주고, small gradient일 때, learning rate를 늘려준다.

adam optimizer란? adaptive optimizer + momentum

batch normalization이란? 기존에는 layer간 고정시켜놓고, backpropagation할 떄 마다 2개의 layer간 update하는데, 위에서의 update가 내려가면서 밑에도 영향을 끼친다. 이걸 막기 위해 minibatch 보고 전체에서 normalization한다.

net -> act func이 아니라, net -> BN -> act func 적용한다.

'TL' 카테고리의 다른 글

20/11/11 TL. BOW(img). CNN.  (0) 2020.11.11
20/11/10 TL. 라우팅, subnetting.  (0) 2020.11.10
20/11/06 TL. 도커 정리  (0) 2020.11.06
20/11/04 TL.  (0) 2020.11.04
20/11/03 TL.  (0) 2020.11.03
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.