-
딥러닝 - 활성화함수딥러닝 2023. 5. 23. 16:12
1. 활성화 함수
활성화 함수란 입력된 데이터의 가중 합을 출력신호로 변환하는 함수이다. 즉 가중치를 계산한 퍼셉트론의 마지막 단계에 위치하고 있는 것이다.
활성화 함수는 은닉층에서 비선형 함수여야 한다. 인공 신경망의 능력을 높이기 위해서는 은닉층을 계속해서 쌓아야 한다. 하지만 활성화 함수를 선형함수로 추가할 경우 가중치가 생기지만 계속해서 값을 곱하는 것이기 때문에 결국 한번 추가한 것과 차이가 없다. 또한 입력에 이상치가 존재하는 경우 분류가 불가능해진다.
2. 시그모이드 함수
기본적으로 시그모이드 함수는 0에서 1 사이의 값을 연속적으로 반환하는 함수이다. 계단함수의 0과 1의 이진값만을 반환한다는 단점을 보완한 함수이다.
하지만 시그모이드 함수는 치명적인 문제로 기울기 소실이 있다.
1. 시그모이드 함수는 아무리 큰 값이 들어오더라도 0~1사이의 값만 반환하기 때문에 값이 현저하게 줄어들 수 있다.
2. 출력 값의 중앙값이 0.5이며 양수이기 때문에 출력의 가중치 합이 입력의 가중치 합보다 크다.
3. 이것이 레이어를 통과할때마다 분산이 커져서 활성화 함수의 출력이 0과 1에 수렴한다.
4. 결국 뉴런의 기울기는 0이 되고 역전파 시 0에 곱해져서 기울기가 소멸된다.
5. 역전파가 진행될수록 아래 층에 신호가 소실된다.
따라서 시그모이드 함수는 은닉층의 함수로 사용하지 않고 이진분류를 위한 출력층에만 사용한다.
3. 렐루 함수
1986년부터 2006년까지 기울기 소실이 해결되지 않았으나 제프리 힌튼이 렐루 함수를 고안하여 해결되었다.
렐루 함수는 양수는 자기 자신을 음수는 0을 반환한다.
1. 출력층의 범위가 넓기 때문에 기울기 소실이 발생하지 않는다.
2. 음수면 0, 양수면 자신을 반환하는 간단한 공식으로 속도가 빠르다.
3. 입력값이 음수일 때 기울기가 0이 되어 가중치 업데이트가 되지 않는다.
4. 가중치 합이 음수가 되는 순간 렐루 함수는 0을 반환하기 때문에 해당 뉴런은 그 이후로 0만 반환할 수 있는 문제가 발생한다.(dying relu)
4. 리키렐루 함수
leakyrelu 함수는 뉴런이 죽는 현상을 해결하기 위한 함수이다.
렐루 함수의 한계점인 음수값이 모두 0이 되는 것을 방지하기 위해 음수 값은 0.01배를 하는 함수이다.
1. 리키렐루 함수는 음수에서 선형이 되기 때문에 복잡한 분류에 사용할 수 없어서 제한적이다.
5. e렐루 함수
erelu함수는 리키렐루에서 선형이었던 음수의 값을 지수함수를 이용해 비선형적으로 만든 것이다.
1. elu는 미분 시 0에서 끊어지는 렐루와 다르게 부드럽게 이어진다.
2. lrelu나 prelu와 다르게 복잡한 분류에도 사용할 수 있다.
3. 하지만 지수함수 때문에 연산량이 늘어나 테스트 시 속도가 느리다.
6. 소프트 맥스 함수
소프트 맥스 함수는 다중 클래스 분류에 사용한다.
k번일 확률/전체확률을 나타내면 하나의 값이 출력값 1에서 몇 퍼센트를 차지하는지를 추정한다.
1. 소프트맥스 함수는 지수 함수가 큰 값을 더욱 확대하기 때문에 너무 큰 값이 입력되었을 때 값이 무한대가 되는 오버플로가 발생한다.
2. 이 문제를 함수의 입력값에서 최댓값을 빼는 것으로 해결한다.