ROKO

[coursera] Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization: Week 3 본문

Artificial Intelligence/Deep Learning

[coursera] Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization: Week 3

RO_KO 2024. 7. 1. 16:34
728x90

모델을 구성하는 많은 hyperparameter들이 존재하는데 우선순위를 매기면 다음과 같다.

 

1. learning rate

2, moment, #hidden units, mini-batch size

3. #layers, learning rate decay

4. etc

 

각각의 hyperparameter는 어떻게 구할 수 있을까?

smapling 방식으로 grid search, random search 가 기본적인데 hyperparameter 범위가 아주 작지 않은 한 random search를 추천한다. 그리고 이 sampling을 가지고 coarse to fine 방식으로 hyperparameter를 찾을 수 있다.

* sampling을 할때 적절한 hyperparameter 범위를 찾는게 중요하다. 

 

ex) 0.9~0.99 사이의 momentum hyperparameter 찾기

import numpy as np

r = np.random.rand()
beta = 1-10**(-r-1)

 

보통 hyperparameter 를 tuning하는 상황은 두가지이다.

  • babysitting one model (자원부족, panda approach)
  • training many models in parallel (자원풍족, caviar approach)

당연히 자원이 된다면 caviar approach를 따르는 것이 좋다.

Batch normalization

데이터를 넣기전에 정규화를 하면 학습속도를 빠르게 한다는 것은 자명하게 알고 있다. 딥러닝의 은닉층 단위로 볼때 각 층에서 나온 값들을 정규화 하여 다음 층으로 넘겨주게 되면 이또한 전체적인 학습 속도가 빨라지게 될 것이다. 이것이 배치정규화 (batch normalization)의 직관적인 이해이다.

배치 정규화는 Z값을 정규화 해주는데 학계에서는 A와 Z중 어느 상황에서 정규화를 해야하는지에 대한 토론이 많이 벌어지고 있다. 실세계에서 대부분은 Z에서 정규화를 하는 방법을 사용한다.

이때 정규화 과정에서 평균을 뺄때 이전 은닉층에서 적용된 편향이 상쇄되어 사라진다. 즉 편향의 역할이 무의미해지므로 편향을 제거해도 된다. 또한 \(\beta\)가 편향의 역할 대신하여 수행 할 수 있다.

https://resultofeffort.tistory.com/128

 

[pytorch] 학습의 가속화를 위한 배치 정규화(Batch Normalization)

1. 입력 데이터 정규화딥러닝 모델에 입력되는 데이터는 각기 다른 범위의 값들을 포함할 수 있습니다. 예를 들어, 어떤 특성은 1에서 5 사이의 값을 가질 수 있고, 다른 특성은 1000에서 99999 사이

resultofeffort.tistory.com

 

배치정규화가 가능한 이유들로는 많은 관점이 존재한다.

1. covariance shift

https://ko.d2l.ai/chapter_deep-learning-basics/environment.html

 

3.16. 환경 — Dive into Deep Learning documentation

 

ko.d2l.ai

2. regularization

mini-batch는 batch에 비해 noise가 많다. batch normalization이 이런 noise들을 줄이는 규제 기법으로 역할을 할 수 있다.

 

* 배치정규화에서 사용되는 \(\gamma, \beta\) 모두 learnable parameter이다.

 

Batch norm at test time

batch나 mini-batch같이 많은 데이터가 아닌 각각의 데이터가 들어오는데 하나의 데이터의 평균 분산은 전체 데이터의 평균 분산과 다르기 때문에 사용하면 성능에 악영향을 미친다. 

따라서 학습시에 사용한 mini-batch 데이터들의 평균 분산 moving average를 사용한다.

 

Softmax regression

이진분류가 아닌 다중분류를 위한 모델이다. softmax를 사용하면서 생기는 loss function 변형과 backprop 변형 말고는 큰 차이는 없다.

https://towardsdatascience.com/derivative-of-the-softmax-function-and-the-categorical-cross-entropy-loss-ffceefc081d1

 

Derivative of the Softmax Function and the Categorical Cross-Entropy Loss

A simple and quick derivation

towardsdatascience.com


Programming framework

https://medium.com/in-pursuit-of-artificial-intelligence/choosing-a-deep-learning-framework-5669a85ebc3f

 

Choosing a Deep Learning Framework

Few points on deep learning frameworks that will influence your decision on choosing one for your project.

medium.com

 

728x90
Comments