ML

활성함수와 목적함수

술임 2023. 1. 12. 20:31

활성함수

- 활성화 함수 : 입력 신호를 다음 레이어로 전달할 때 사용하는 함수

- 이전 층의 결과값을 변환하여 다른 층의 뉴런으로 신호를 전달하는 역할

--> 입력을 활성화할지, 비활성화할지를 결정하는데 사용함

- 활성화 함수를 통해 모델의 복잡도를 올릴 수 있지만, 신경망의 층을 깊게 쌓기 위해 비선형 함수 사용

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