활성화 함수
활성화 함수란 퍼셉트론에서 입력 신호의 총합이 활성화를 일으키는지를 정하는 역할을 한다.
활성화 함수의 대표적인 예로는 시그모이드 함수, 계단 함수, relu함수 등이 있다. 이들의 종류에 대해서는 간단하니 나중에 자세히 알아보도록 하자.
활성화 함수의 대표적 특징
활성화 함수는 비선형 함수라는 특징이 있다. 이는 활성화 함수는 선형함수를 사용하면 안된다를 말하고 있다. 이는 선형 함수를 사용하면 신경망의 층을 깊게 하는 의미가 없어진다.
선형 함수의 문제는 층을 아무리 깊게 해도 은닉층이 없는 네트워크로도 똑같은 기능을 할 수 있다.
출력층 설계
신경망은 분류와 회귀 모두에 이용할 수 있다.
신경망에서 회귀에는 항등 함수를, 분류에는 소프트맥스함수를 사용한다.
항등 함수
항등 함수는 입력을 그대로 사용한다, 즉 입력과 출력이 항상 같다.
소프트맥스 함수
분류에서 사용하는 소프트맥스 함수의 식은 다음과 같다.
$$y_k=\frac{exp(a_k)}{\sum_{i=1}^{n}exp(a_i)}$$
n은 출력층의 뉴런 수, $y_k$는 그중 k번째 출력이다.
다음은 이를 파이썬을 이용하여 구현한 것이다.
1
2
3
4
5
|
def softmax(a):
exp_a=np.exp(a)
sum_exp_a = np.sum(exp_a)
y = exp_a / sum_exp_a
return y
|
cs |
하지만 이를 그대로 사용할 시 오버플로 문제가 발생할 수 있다. 그렇기 때문에 이를 방지하기 위해 다음과 같이 바꾸어준다.
1
2
3
4
5
6
|
def softmax(a):
c = np.max(a)
exp_a=np.exp(a - c) #오버플로
sum_exp_a = np.sum(exp_a)
y = exp_a / sum_exp_a
return y
|
cs |
소프트맥스의 지수 함수를 계산할 때 어떤 정수를 더하거나 빼도 결과에는 영향을 주지 않기 때문에 보편적으로 최대값을 배서 오버플로현상을 방지한다.
'Artifical Inteligence > 인공지능 이론' 카테고리의 다른 글
손실함수 및 최적화 (0) | 2022.11.09 |
---|