오늘 배운 내용
오늘은 Loss function, Activation function, Optiizer 각각의 개념과 종류, 특징에 대해 공부했다.
손실 함수 (Loss function)
손실 함수란 인공 신경망이 예측한 값과 실제 정답 값이 얼마나 다른지를 나타내는 지표이다. 이 함수의 결과값(Loss)이 클수록 모델의 예측이 많이 틀렸다는 의미이며, 작을수록 예측을 잘했다는 의미이다.
신경망 학습의 목표는 바로 이 손실 함수의 값을 최소화하는 것이다. 모델은 손실 함수가 알려주는 오차를 통해 정답에 더 가까워지기 위해 내부의 가중치(weights)를 스스로 수정해 나간다. 어떤 손실 함수를 선택하느냐는 모델이 풀어야 할 문제의 종류(회귀, 분류 등)에 따라 달라지며, 학습의 효율성과 성능에 직접적인 영향을 미친다.
1. 평균 제곱 오차 (Mean Squared Error, MSE)
실제 정답 값과 모델이 예측한 값의 차이를 제곱하여 평균을 낸 값이다.
- 주요 용도: 회귀(Regression)
- 특징: 오차가 클수록 제곱 연산 때문에 손실 값이 기하급수적으로 커진다. 따라서 실제 값과 예측 값의 차이가 큰, 즉 이상치(outlier)에 민감하게 반응한다.
- 수식:

2. 평균 절대 오차 (Mean Absolute Error, MAE)
실제 정답 값과 모델이 예측한 값의 차이의 절댓값을 취해 평균을 낸 값이다.
- 주요 용도: 회귀(Regression)
- 특징: 오차를 제곱하지 않기 때문에 이상치(outlier)에 덜 민감하다.
- 수식:

3. 크로스 엔트로피 오차 (Cross-Entropy Error)
모델이 예측한 확률 분포와 실제 정답의 확률 분포가 얼마나 다른지를 측정하는 지표이다. 분류 문제에서 주로 사용된다.
- 주요 용도: 분류(Classification)
- 특징:
- 이진 크로스 엔트로피 (Binary Cross-Entropy): 이진 분류에 사용된다. 주로 출력층의 활성화 함수로 시그모이드(Sigmoid)와 함께 쓰인다.
- 범주형 크로스 엔트로피 (Categorical Cross-Entropy): 다중 분류에 사용된다. 주로 출력층의 활성화 함수로 소프트맥스(Softmax)와 함께 쓰인다.
- 수식 (이진 크로스 엔트로피):

활성화 함수 (Activation function)
활성화 함수란 인공 신경망에서 사용되는 은닉층을 활성화하기 위한 함수다. 여기서 활성화란 인공 신경망의 뉴런의 출력값을 선형에서 비선형으로 변환하는 것이다.
활성화 함수는 비선형성을 추가하여 신경망이 복잡한 패턴을 학습할 수 있도록 한다. 만약, 활성화 함수가 선형 함수라면 신경망의 각 계층을 거쳐도 결국 하나의 선형 변환으로 귀결되므로 다층 구조의 의미가 사라진다. 또한, 활성화 함수는 입력 값을 변환하여 신경망이 더 효과적으로 학습할 수 있도록 한다.
1. 시그모이드 함수(Sigmoid function)
- 모든 입력값을 0과 1 사이의 값으로 매핑한다.
- 이진 분류 신경망의 출력 계층에서 활성화 함수로 사용된다.
- [0, 1] 범위로 인해 기울기 폭주 현상을 방지할 수 있으나, 매우 큰 값이 입력돼도 최대 1의 값을 갖게 되어 기울기 소실 문제가 발생한다.
- 수식:

- 그래프:

2. 하이퍼볼릭 탄젠트 함수(Hyperbolic Tangent function)
- 시그모이드 함수와 유사한 형태를 지니지만 출력값의 중심이 0이다.
- [-1, 1] 사이의 값으로 매핑하므로 음수값도 반환할 수 있다.
- 시그모이드 함수보단 비교적 덜 하지만, 기울기 소실 문제가 발생한다.
- 수식:

- 그래프:

3. ReLU 함수(Rectified Linear Unit function)
- 입력값이 0 이하면 0을 반환하고, 0보다 크면 x값(자기 자신)을 반환한다.
- 입력값이 양수라면 기울기 소실이 발생하지 않는다.
- 수식이 간단하기 때문에 순전파나 역전파 과정의 연산이 매우 빠르다.
- 하지만 입력값이 음수인 경우 가중치나 편향이 업데이트 되지 않을 수 있다.
- 가중치의 합이 음수가 되면 해당 노드는 더 이상 값을 업데이트하지 않아 죽은 뉴런(Dead Neuron, Dying ReLU)이 된다.
- 딥러닝 네트워크에서 널리 사용되는 효과적인 활성화 함수이다.
- 수식:

- 그래프:

4. LeakyReLU 함수
- 음수 기울기를 제어하여 죽은 뉴런 현상을 방지하기 위해 사용한다.
- 입력값이 음수일 때 작은 값이라도 출력시켜 더 넓은 범위의 패턴을 학습할 수 있다.
- 수식:

- 그래프:

5. PReLU 함수(Parametic ReLU function)
- LeakyReLU 함수와 형태가 동일하지만, 음수 기울기 값을 고정값이 아닌, 학습을 통해 업데이트 되는 값으로 간주한다.
- 따라서 α는 매개변수이므로 학습 데이터세트에 영향을 받는다.
6. ELU 함수(Exponential LU function)
- 지수 함수를 사용하여 부드러운 곡선의 형태를 갖는다.
- 음의 기울기에서 비선형 구조를 갖기 때문에 입력값이 0인 경우에도 출력값이 급변하지 않아, GD의 수렴 속도가 비교적 빠르다.
- 더 복잡한 연산을 수행하게 되므로 학습 속도는 느려진다.
- 수식:

- 그래프:

7. 소프트맥스 함수(Softmax function)
- 차원 벡터에서 특정 출력값이 k 번째 클래스에 속할 확률을 계산한다.
- 클래스에 속할 확률을 계산하는 함수이므로 시그모이드 함수와 마찬가지로 은닉층이 아닌 출력층에서 사용된다.
- 수식:

- 그래프:

Optimizer
옵티마이저란 손실 함수(Loss Function)의 결과값을 최소화하기 위해, 신경망의 가중치(weights)와 편향(bias)을 어떻게 업데이트할지 결정하는 알고리즘이다.
1. 경사 하강법 (Stochastic Gradient Descent, SGD)
가장 기본적인 옵티마이저로, 전체 데이터 중 하나 또는 일부(미니배치)의 데이터를 사용해 가중치를 업데이트한다.
- 특징:
- 매 업데이트마다 적은 데이터만 사용하므로 계산 속도가 빠르다.
- 업데이트가 다소 불안정하여 최적점으로 가는 경로가 지그재그 형태로 나타날 수 있다.
- 이러한 불안정성 덕분에 지역 최적점(local minimum)에 빠질 위험이 적다는 장점이 있다.
2. 모멘텀 (Momentum)
SGD에 관성(Momentum)의 개념을 추가한 옵티마이저이다. 이전 업데이트의 방향을 기억하여 현재 업데이트에 반영한다.
- 특징:
- 이전 이동 방향을 참고하므로, 기존 SGD보다 더 빠르고 안정적으로 수렴한다.
- SGD의 지그재그 움직임을 줄여주어 학습 효율을 높인다.
3. Adagrad (Adaptive Gradient)
각각의 가중치마다 서로 다른 학습률(learning rate)을 적용하는 적응형 옵티마이저이다.
- 특징:
- 지금까지 많이 변한 가중치는 학습률을 작게, 적게 변한 가중치는 학습률을 크게 만들어 효율적으로 학습시킨다.
- 학습이 오래 진행될수록 학습률이 거의 0에 가까워져 더 이상 학습이 진행되지 않는 문제가 있다.
4. RMSprop (Root Mean Square Propagation)
Adagrad의 학습률이 계속 감소하여 학습이 멈추는 문제를 해결하기 위해 제안되었다.
- 특징:
- 최근의 기울기 정보만 반영하여 학습률을 조절함으로써, 학습률이 0으로 수렴하는 문제를 방지한다.
- Adagrad의 장점은 유지하면서 단점을 보완한 방식이다.
5. Adam (Adaptive Moment Estimation)
모멘텀(Momentum)과 RMSprop의 장점을 결합한 옵티마이저로, 현재 가장 널리 사용되는 방식 중 하나이다.
- 특징:
- 각 가중치마다 적응적으로 학습률을 조절하면서, 동시에 이동 방향에 관성을 부여한다.
- 대부분의 상황에서 빠른 수렴 속도와 높은 성능을 보여주어, 기본 옵티마이저로 널리 채택된다.