피너클의 it공부방
신경망, 활성화 함수 본문
728x90
반응형
신경망은 퍼셉트론을 다층으로 쌓고 활성화 함수를 개선한 것이다.
앞의 퍼셉트론을 수식으로 표현한다면
$y = h(b + w_{1}x_{1} + w_{2}x_{2})$
$h(x) = \left\{\begin{matrix}
0\quad if\,x\leq 0
\\
1\quad if\,x> 0
\end{matrix}\right.$
위처럼 된다. 위에서 h(x) 함수같이 x를 출력신호로 변환하는 함수를 활성화 함수라 한다.
여기서 x는 앞의 입력신호화 가중치, 편향의 계산 결과이다.
그림으로 그리면 이런 형태이다.
하지만 활성화 함수에는 여러 종류가 있다.
시그모이드 함수
S자 형태의 함수이다.
def sigmoid(x):
return 1 / (1 + np.exp(-x))
계단함수
계단함수는 0보다 크면 1 반환하고 0이하면 0을 반환한다.
def step_function(x):
return np.array(x > 0, dtype=int)
계단함수는 0을 경계로 출력이 갑작스럽게 바뀌고 시그모이드는 부드러운 곡선 형태로 연속적으로 바뀐다.
시그모이드의 부드러운 곡선이 신경망 학습에서 역전파를 가능하게 해주는 중요한 역할을 한다.
ReLU함수
def ReLU(x):
return np.maximum(0, x)
0보다 작으면 0으로 가고 0을 넘으면 그대로 값을 출력한다.
소프트맥스 함수
def softmax(x):
c = np.max(x)
return np.exp(x - c) / np.sum(np.exp(x - c))
x는 배열의 형태로 들어온다.
c는 배열안에서 가장 큰 수를 받아가며
만약 x안의 값이 너무클경우 오버플로우가 발생할수있어 모든 수를 c로 빼준다.
이렇게 하면 소프트맥스 함수는 0과 1 사이의 실수를 출력하게 되며 이는 확률로 해석할수있다.
728x90
반응형
'인공지능' 카테고리의 다른 글
AND, NAND, OR, XOR 퍼셉트론 구현 (1) | 2025.06.10 |
---|
Comments