Contents
접기
활성화 함수
- Activation 함수
뉴런의 가중치 합을 다음 층으로 전달 시 활성화를 할지 말지 결정.
뉴런의 가중합의 값이 충분하지 않으면 활성화 함수는 다음 층에 0에 가까운 값 또는 그 이하의 값을 전달한다.
활성화 함수로는 비선형 함수를 이용하는데, 이는 심층 신경망을 통해 선형 분류 또는 풀기 어려운 문제(= 비선형 문제)를 풀기 위해서이다.
함수 종류
softmax, elu, softplus, relu, tanh, sigimoid, hard_sigmoid, exponential, linear 등
Hidden Layer 의 활성화 함수
종류 | 내용 | 식 |
시그모이드 함수 | exp 연산 때문에 연산 속도가 느리다. | y = 1 / ( 1 - exp(-x) |
하이퍼볼릭탄젠트 함수 | 출력값이 0을 기준으로 대칭하여 학습속도가 시그모이드 함수보다 빠르다. | y = exp(x) - exp(-x) / exp(x) + exp(-x) |
ReLU 함수 | sigmoid 와 tahn 이 갖는 vanishing gradient 문제를 해결. x 가 음수인 경우 데이터의 손실이 발생한다. |
y = MAX(0,x) |
출력함수
출력중에는 히든레이어에서 사용한 활성화 함수와는 다른 활성화 함수(출력 함수)를 사용하는데, 얻고자 하는 결과의 종류에 따라 분류된다.
함수 종류
종류 | 내용 |
Linear (선형 함수) |
Regression (회귀 문제) |
sigmoid | BInary-calssification (이진 분류) |
softmax | Multi-classification (다지분류, 확률분포 <출력의 합이 총 1>) |
손실함수 (Cost function 비용함수)
예측값 (y_hat) 과 실제 값(y)을 비교했을때 얼마나 차이가 나는지를 정의하기 위한 함수.
손실함수의 값을 줄이는 방향으로 학습이 진행된다.
함수 종류
종류 | 내용 |
Mean Squared Error(MSE) : 평균제곱오차 |
- 실제값과 예측값의 차이를 제곱해 평균화하여 계산 - 회귀 문제를 예측하고자 할 때 사용한다. L(w) = 1/2n∑(y_i - (wx_i + b))^2 |
손실함수에서 예측값과 정답(라벨)의 오차를 절대값이 아닌 제곱으로 처리하는 이유 - 오차가 큰 경우 더 큰 가중치를 주어 학습을 빠르게 하기 때문이다. - MSE 를 볼록(곡선) 함수 (Convex Function) 로 만들어 최적의 가중치를 효과적으로 찾기 위해서 이다. - 절대값은 미분이 불가능한 수식이기 때문이다. |
|
Cross Entropy Error(CEE) : 교차엔트로피오차 |
- 주어진 데이터와 모델의 예측값 사이의 차이를 계산 - 분류 문제를 풀고자 할때 사용한다. L(w) = -∑_i t_i * log y_i |
이진 분류의 경우 추론값과 정답값이 2개로, 하나는 참(1)이고 두번째는 거짓(0)이다. L = -(ylog(y_hat) + (1 - y)log(1 - y_hat)) [y: 타겟값, y_hat: 추론값] ![]() |
최적화 함수
최적화란?
- 신경망 모델의 학습과 그 결과에 따른 손실함수의 값을 최소화하는 방향으로 가중치의 값(w)을 찾는 것
- 최적의 가중치 값을 구하기 위해서는 손실함수 값을 모든 가중치에 대해 미분을 통하여 기울기를 구하여 찾는다.
경사하강법 Gradient Descent
- 현재 가중치 w 의 위치에서 오차가 작아지는 방향으로 조금씩 이동하면서 가중치를 수정하는 방법이다. | |
- 이 과정을 계속 반복하면 오차의 최소값에 근접하게 되고 그 때 가중치 파라미터 신경망이 학습한 지능이 된다. | |
경사 하강법의 문제 - 무작위 초기화로 인해 국소적 최소값(Local Minmal)에 빠지는 문제발생 - 기울기가 평탄한 지역을 지나는데 시간이 오래 걸려 더 이상 loss 가 업데이트 되지 않아 일찍 멈춰 전역 최소값(Global Minimal) 에 도달하지 못하는 문제 발생 |
![]() |
- 훈련 자료의 양을 조절한 경사하강법
종류 | 내용 |
배치 경사하강법 Batch Gradient Descent |
- 모든 학습 데이터에 대한 가중치의 평균을 구해서 업데이트한다. (즉 1번만 가중치를 갱신한다.) - 전체 학습에 대해 가중치를 편미분한다. - 학습 데이터가 많을 경우 많은 시간이 소요된다. |
미니 배치 경사 하강법 Mini-Batch Gradient Descent |
데이터를 Mini-Batch 한 만큼 사용하여 미니 배치 한 개마다 기울기를 구한 후 그것의 평균 기울기를 이용하여 모델을 업데이트 한다. |
확률적 경사하강법 Stochastic Gradient Descent |
- 한개의 샘플을 무작위로 선택하여 가중치를 조금씩 업데이트 (즉 학습데이터 1개마다 가중치를 갱신한다.) - 학습속도가 매우 빠르다. - 손실함수가 국소적 최소값에 이를 때까지 부드럽게 감소하지 않고 요동치며 평균적으로 감소한다. |
- 학습률을 조절한 경사 하강법
종류 | 내용 |
Momentum 관성 |
기존 진행방향에 대한 관성을 기억함으로서 SGD 방법의 진동폭을 완화시킨다. (Global optima 에서도 이전의 가속도가 더해지기 때문에 지나치는 현상이 발생할 수 있다.) |
AdaGrad | 기존 가중치 변화의 진행 폭을 고려하여 이를 반영하여 학습률을 변화 시킨다. (가능한 일직선으로 업데이트 된다. 하지만 실행이 느려진다는 단점이 존재한다.) |
RMSProp | AdaGrad 를 개선한 방식으로서 AdaGrad의 제곱값이 무한정 커지는 것을 방지하기 위해 고안됨 |
ADAM | Momentum 과 RMSProp의 혼합형으로 기존 진행방향과 진행폭을 모두 반영한 방식이다. |
'국비 교육 > 머신러닝, 딥러닝' 카테고리의 다른 글
[머신러닝] 상관분석 - 변수 간의 관계 (선형, 비선형) (0) | 2024.08.06 |
---|---|
[딥러닝] RNN 순환 신경망 (0) | 2024.08.01 |
[딥러닝] DNN 심층신경망 (0) | 2024.08.01 |
[딥러닝 - 교육 외] DNN - [실습] Heart Disease (0) | 2024.08.01 |