경기도 인공지능 개발 과정/Python

[Ptyhon] 딥러닝 활성화 함수, 가중치 정리

agingcurve 2022. 7. 26. 09:54
반응형

활성화 함수

(1) 뇌세포의 출력값

- 뇌세포는 항상 일정한 크기의 값을 출력함 (0 or 1)

- 뇌세포의 출력물은 디지털 신호로 간주할 수 있음

 

(1) Sigmoid 함수

 - 입력값을 0부터 1사이의 값으로 출력

(2) Tanh 함수

 - -1 부터 1사이값으로 다듬어주며 입력값이 작을수록 -1에 가까운 값을 출력하고 입력값이 크면 1에 가까운 값을 출력하게 된다. 음수값을 사용하지 않으려는 추세가 등장하면서 선호도가 낮아짐

(3) ReLU 함수

 - 0보다 작은값을 0으로 만들고, 0보다 큰 값은 그대로 출력한다.

 - 렐루는 뉴런의 활동을 모사하기 보단, 기울기 소실 문제(vanishing gradient problem)을 해결하기 위한 방법으로 조명됨

 - 기울기 소실문제 : 딥러닝 신경망의 가중치 수정은 출력층에서 입력층으로 거꾸로 오는 역전파(backpropagation)가 실행되는데, 역전파 알고리즘은 미분을 통해 기울기를 계산하는 것이 핵심이며, 기울기가 클수록 가중치가 많이 수정된다. 거리가 멀어질수록 이 기울기가 작아지며 가중치가 수정이 안되는 문제를 기울기 소실문제라고 한다.

 

(4) Leaky ReLU 함수

 - 렐루와 달리 0보다 작은 값도 버리지 않는다. 그러나 원본보다 좀 더 작은 값을 출력한다.

 - 상황에 따라 렐루보다 월등한 성능을 보인다.

 

가중치

 - 딥러닝에서 첫 가중치는 랜덤으로 결정 된다. 이후, 역전파(backpropagation) 알고리즘을 적용하여 입력값을 목표값과 매칭 되어 가중치가 수정 된다. 양질의 데이터가 있다면 가중치를 더욱 잘 수정한다.