6강
목차
-
Activation Functions
-
Data Preprocessing
-
Weight Initialization
-
Batch Normalization
-
Babysitting the Learning Process
-
Hyperparameter Optimization
Activation Functions
Dead Relu 가 발생하는 경우
- 초기화를 잘못한 경우
- 가중치 평면이 data cloud에서 멀리 떨어져 있는 경우
- learning rate 가 지나치게 큰 경우 (update를 지나치게 크게 해 가중치가 높아져 버리면 학습이 제대로 진행되지 않음)
Data Preprocessing
- 데이터 전처리 (zero-mean) 을 하는이유
- 모든 차원이 동일한 범위안에 있게 해줘서 전부 동등한 기여를 할 수 있게 함.
- gradient 문제를 해결 할 수 있음.
- 스케일이 다양한 ml 문제와 달리 이미지에서는 normalization을 엄청 잘 해줄 필요는 없음.
- test 데이터에서도 train 데이터와 마찬가지로 zero-mean을 적용시켜줘야함
- test 데이터에 적용하는 값은 train 데이 터의 전체 평균값임
- mini-batch 단위로 학습하는 경우에도 zero-mean 처리는 train데이터의 전체 평균을 사용함
Weight Initialization
모든 가중치를 동일하게(w = 0) 초기화 하면 발생하는 문제점
- 출력이 모두 같다.
- gradient가 모두 같다.
- 모든 가중치가 같은 값으로 업데이트 된다.
초기화 문제를 해결하는 방법
- 임의의 작은 값으로 초기화 (깊은 네트워크에서는 여전히 문제) w가 너무 작은 값들이어서 출력 값이 급격하게 줄어들음.
- 가중치 초기화 값이 너무작으면 사라져버리고 너무 크면 saturation 문제가 발생함
- activation 함수가 linear 하다는 가정하에 Xavier initialization 기법을 사용 할 수 있음
ReLU 함수에서 Xavier initialization을 사용할 경우의 문제점
- 출력의 분산을 반토막 내어버림
Batch Normalization
guassian의 범위로 activation을 유지시키는 것에 관련한 아이디어
- activaton function 의 입력값을 그래프에서 linear 한 영역에 위치하도록 강제하는 것.
- saturation이 어느정도 일어나게 하고 싶으면 batch normalization을 할때 사용한 분산과 평균 값으로 x값을 원상복귀 시켜줄 수 있음
- 각 레이어의 출력이 해당 데이터 하나 뿐만 아니라 batch 안에 존재하는 모든 데이터들에 영향을 받기 때문에 regularization 의 역할도 해줌
Babysitting the Learning Process
- 데이터 전처리
- 모델 설계
- loss 값 확인
- train 마다 loss 값이 감소하는지 확인
- 적절한 learning rate 찾기 보통 (1e-3 ~ 1e-5) 의 값을 사용
Hyperparameter Optimization
cross validation
- Training set으로 학습시키고 Validation set으로 평가하는 방법.
- 적은 에폭만으로도 어떤 parameter가 잘 동작하는지 확인 할 수 있음.
- 어느정도 parameter를 설정했다면 큰 에폭을 사용하고 fine search 를 수행함.
- 현재 cost 가 이전 cost 보다 비정상적으로 높아지면 학습이 잘못 수행되고있다는 증거.
- learning rate 값을 샘플링 할 때 10의 차수값만 샘플링하는것이 좋음 (learning rate는 그래디언트와 곱해지기 때문에 log scale을 사용하는 편이 더 좋음)
Random search vs Grid search
- Random search 는 중요한 파라미터 에게도 더 많은 샘플링이 가능하므로 grid search보다 더 좋음.
Questions 6
Q1. Input neuron(x) 의 값이 모두 양수일 경우 w 의 값이 어떤식으로 변하는지 설명하시오.
Q2. ReLU 활성함수의 장, 단점을 서술하시오.
Q3. sigmoid, tanh, ReLU, Leaky ReLU의 함수를 구하고 그래프를 그리시오.
Q4. 일반적으로 learning rate 값을 샘플링 할 때 10^-3, 10^-4, 10^-5 등 10의 차수로 샘플링하는 것이 좋다, 이유를 설명하시오.
Q5. 학습에서 Batch Normalization을 사용하는 이유를 간략하게 설명하시오.
Q6. 학습을 진행 할때 Loss 함수가 아래 그래프와 같은 형태를 띌 경우 어떤 문제가 발생한건지 설명하지오.