활성함수
- 활성화 함수 : 입력 신호를 다음 레이어로 전달할 때 사용하는 함수
- 이전 층의 결과값을 변환하여 다른 층의 뉴런으로 신호를 전달하는 역할
--> 입력을 활성화할지, 비활성화할지를 결정하는데 사용함
- 활성화 함수를 통해 모델의 복잡도를 올릴 수 있지만, 신경망의 층을 깊게 쌓기 위해 비선형 함수 사용
e.g. 시그모이드 함수(이진 분류에서 마지막 classification 출력층에 사용됨), 하이퍼블릭 탄젠트, ReLU(은닉층에서 주로 사용됨)
하이퍼볼릭 탄젠트
- 전 구간에서 미분 가능함
- 값이 어느정도 커지면 1에 근접하는 포화 saturation 현상이 일어남
softmax 활성함수
- 출력노드는 softmax 활성함수를 사용하기도 함
- max 함수 모방
- softmax는 최댓값을 더욱 활성화하고 작은 값을 억제하는 효과를 모방함
- 출력값을 모두 더하면 1.0이 됨 --> softmax의 출력을 확률분포로 취급하면 여러 목적에 유용하게 사용
- 최댓값이 아닌 값을 억제하여 0에 가깝게
최적화
; 모델의 예측값과 실제값의 오차를 줄이는 작업
- 출력값과 모든 데이터 사이의 오차의 합이 작아지는 함수를 만들어야함
-> constrained optimization ; 목적함수 외에 파라미터가 만족해야 할 별도의 제약조건이 있는 경우
-> unconstrained optimization ; 별도의 제약 조건이 없는 경우
- 목적함수가 profit, score 등일 경우에는 최대화해야하고, cost, loss, error일 경우에는 최소화해야함
* 목적 함수가 항상 미분 가능한 형태로 주어지는 것은 아님
* saddle point; 미분해서 0이 된다고 해도 무조건 최적점이 아닐 수 있음
최적화의 원리
-> 현재 위치에서 함수값이 감소하는 방향으로 조금씩 파라미터 값을 이동해 나가는 것
경사하강법
: 목적함수의 값을 최소화하기 위해 경사를 내려가듯 최소값을 찾는 방법
- 함수의 최솟값을 찾기 위해 미분을 사용해야함
- 딥러닝 알고리즘 학습 시 사용되는 최적화 방법 중 하나
- gradient가 양의 값을 가지면 parameter를 더 작은 쪽으로 움직여야함
--> gradient에 learning rate(학습률; 어느 정도 이동할지를 정의함)을 곱해서 현재 파라미터 값에서 빼주는 형태로 업데이트
Learning Rate
- 학습률이 너무 크면 한 지점으로 수렴이 아니라 발산할 가능성이 존재함
- 학습률이 너무 작으면 수렴이 늦어짐
Mini batch Stochastic Gradient Descent
- Stochastic + Batch
- 한 번에 여러 개의 데이터 포인트를 샘플링해서 gradient를 계산함
목적함수
: 목적을 가지고 모델을 학습해 최적화하고자 하는 함수
- 학습 : 오류를 줄이는 방향으로 가중치와 바이어스를 교정하는 작업
- 최소값을 찾는 최적화 문제에서 사용하는 함수
평균제곱오차
- 그래디언트가 교정값에 해당
- MSE를 목적함수로 사용하면 더딘 학습 현상이 발생할 수 있음
- DL에서는 MSE 대신 교차 엔트로피를 주로 사용함
교차 엔트로피 Cross entropy 목적함수
- 오류가 클수록 더 큰 벌점을 부과함
log likelihood 목적함수
- 마지막 층의 활성화함수로 softmax가 사용될 경우 목적함수로 주로 사용됨
- 모든 노드를 고려하는 MSE나 교차 엔트로피랑 달리 하나의 노드값(정답)만 확인함
'ML' 카테고리의 다른 글
Learning Rate (0) | 2023.01.12 |
---|---|
Data Preprocessing (0) | 2023.01.12 |
생성 모델 (0) | 2023.01.11 |
CNN (0) | 2023.01.10 |
Deep Learning (0) | 2023.01.03 |