Coursera의 Deep Learning Specialization - Week 1의 강의를 수강하면서 필기한 내용을 바탕으로 정리한 글입니다.
지난 주차에는 아주 기본적인 Neural Network를 살펴 보았습니다. 이번에는 얕은 Neural Network를 살펴 보겠습니다.
Shallow Neural Network
입력 X와 출력 Y Layer를 제외하고, 그 사이에 있는 Layer를 Hidden Layer라고 합니다. 숨겨진 레이어에서 파라미터 W와 b의 학습이 이루어집니다. 아래의 간단한 그림을 살펴 보면, Input Layer를 제외하고 모든 Hidden Layer와 Output Layer에는 활성 함수 activation이 존재하며, 이 Layer들을 각 값들 우측 상단에 대괄호로 표기합니다.
Hidden Layer에서 z를 구하고, 활성 함수를 통해 활성 값을 계산하는 하나의 연산이 이루어지는 단위를 Unit이라고 부릅니다.
Activation Function (활성 함수)
각 Layer에서 W와 b에 의해 계산된 z값을 다음 Layer로 얼마 만큼이나 넘겨줄 것인지 결정하는 함수로 활성 함수를 정의합니다.
- Sigmoid - 0에서 1 사이의 값을 가지도록 하는 함수입니다.
그러나 z의 절댓값이 증가하면 Gradient가 0으로 수렴하여 Gradient가 소멸하는 Vanishing Gradient가 일어나 잘 쓰이지 않습니다. 주로 이진 분류에 이용됩니다. - Tanh - Sigmoid의 개선된 버전으로, -1에서 1 사이의 값을 가지도록 하는 함수입니다.
그러나 z의 절댓값이 매우 커지면 Gradient가 소멸하는 현상은 여전히 존재합니다. - ReLU - Rectified Linear Unit의 약자입니다. 이전과는 다르게 비선형을 유지하는 활성 함수로,
음수의 z값에서는 0을 반환합니다. 현재 자주 이용되나, 음수의 z값에 대해 뉴런이 죽는 현상이 발생합니다. - Leaky ReLU - ReLU에서 음수 z값에 대해 뉴런이 죽는 것을 방지하기 위해 max(0.01z, z)를 적용하여 음수의 z값에도 0.01z값을 반환합니다. 잘 이용되지는 않고, ReLU의 차선책으로 이용됩니다.
Forward Propagation
입력 X에서 Layer들을 거쳐 출력 Y로 진행하는 전파를 Forward Propagation이라고 합니다.
Backward Propagation
출력 Y로부터 입력 X로 진행하면서 각 Layer 별 파라미터 변수에 대한 도함수를 계산하는 전파를 Backward Propagation이라고 합니다. dW, db를 계산하여 W와 b를 갱신하고 학습시킵니다.
Random Initialization (무작위 초기화)
처음 W와 b를 초기화할 때, zero로 초기화하면 a[1]과 a[2]가 대칭적인 값을 띠게 되어 심층 학습의 의미가 줄어듭니다.
따라서 매개변수 값을 무작위로 초기화해야 합니다. 단, b는 zero로 초기화했을 때의 영향이 많지 않다고 밝혀져 Weight만 무작위로 초기화하도록 합니다.
'Deep Learning Specialization' 카테고리의 다른 글
Tuning Process [Deep Learning Specialization #6] (0) | 2022.07.18 |
---|---|
Optimization [Deep Learning Specialization #5] (0) | 2022.07.14 |
Improving Deep Neural Network [Deep Learning Specialization #4] (0) | 2022.07.14 |
Deep Neural Network [Deep Learning Specialization #3] (0) | 2022.07.13 |
Basic Neural Network [Deep Learning Specialization #1] (0) | 2022.07.13 |
댓글