오늘은 6강을 거의 봤다. 시간이 부족하여 전부 보지는 못했다.
1.활성화 함수(Activation Function)의 종류를 보았다.
- Sigmoid : 이진 분류에 쓰인다. 0 ~ 1의 값이 나온다. vanishing gradient가 생길 수 있다. zero-centered 하지 못하다. exp함수를 이용하므로 계산이 복잡해진다.
- tanh(x) : sigmoid의 단점을 일부 보완한다. zero-centered 하다. 그렇지만 vanishing gradient가 생길 수 있다.
- ReLU : max(0, x), vanishing gradient문제를 해결했다. 효율적으로 계산한다. 훨씬 빠르게 수렴한다. 생물학적으로 더 뉴런처럼 행동한다. 그러나 zero-centered하지 못하다. 죽는다 -> (죽는다는 표현은 무엇일까? : x <0 일 때 기울기가 어떻게 되는지 생각해보면 된다)
- Leaky ReLU : max(0.01x, x), ReLU의 변형으로 ReLU의 장점 + 죽지 않는다.
- Parametric Rectifier (PReLU) : max(αx, x), Leaky ReLU와 마찬가지로 변형이다.
- Exponential Linear Units (ELU) : ReLU의 변형, ReLU의 모든 이점을 다 가져왔지만, exp함수를 사용하여 계산이 복잡해졌다.
- 우리는 대부분 ReLU를 사용하게 될 것이고, 그의 변형을 쓰는것도 시도해볼만하다. tanh는 시도해도 좋으나 그리 기대하지 않았으면 좋겠다. 그리고 sigmoid는 쓰지 않는걸 추천한다.
2. 데이터 전처리(Data Preprocessing)를 배웠다.
- 데이터를 평균에서 뺄 것인가, 채널당 평균에서 뺄 것인가에 따라 생각하면 된다.
- zero-centered를 하고 normalized를 하는 것을 의미한다. 이미지 데이터는 0 ~ 255 값을 가지기 때문에 normalized을 하지 않는다.
- 차원축소로는 PCA와 Whitening도 있다.
3. 가중치 초기화(Weight Initialization)를 배웠다.
- 첫번째 생각으로는 매우 작은 랜덤의 값으로 초기화 하는 것이다. 하지만 이는 깊을수록 효과가 없었다.
- Xavier initialization를 고안했다. 하지만 ReLU에서는 소용이 없었다.
- Xavier initialization에 /2를 넣어주니까 ReLU에서도 잘 작동했다.
4. Batch Normalization를 배웠다.
- 보통 Fully Connected 또는 Convolutional layer 이후와 활성화 함수 이전의 사이에 쓴다.
- gradient 흐름과 학습률이 좋아지고, 의존도가 감소한다. 드롭아웃을 할 필요가 사라진다.
'공부 > AIFFEL' 카테고리의 다른 글
FUNDAMENTAL 16. 컴퓨터 파워 UP (0) | 2021.02.03 |
---|---|
Exploration 8 : 아이유팬이 좋아할 만한 다른 아티스트 찾기 (0) | 2021.02.03 |
FUNDAMENTAL 15. 선형 회귀와 로지스틱 회귀 (0) | 2021.02.01 |
FUNDAMENTAL 14. 다양한 데이터 전처리 기법 (0) | 2021.01.29 |
Exploration 7 : 나랑 닮은 연예인은 누구? (0) | 2021.01.28 |