머신러닝 & 딥러닝/기초 이론

[머신러닝/딥러닝 기초] 7. 퍼셉트론에서 신경망으로 가는 핵심: 활성화 함수란?

by seokii 2022. 2. 11.
728x90
반응형

퍼셉트론의 한계와 다층 퍼셉트론

https://seokii.tistory.com/56

 

6. 퍼셉트론의 한계와 다층 퍼셉트론(multi-layer perceptr)

퍼셉트론 이론과 간단 구현 - 2 https://seokii.tistory.com/55 5. 퍼셉트론(Perceptron) 이론과 간단 구현 - 2 퍼셉트론 이론과 간단 구현 - 1 https://seokii.tistory.com/54?category=1054781 4. 퍼셉트론(Perc..

seokii.tistory.com

지난 글에서 퍼셉트론의 한계와 이를 극복하기 위해 다층 퍼셉트론에 대해 정리했습니다.

이번 글에서는 신경망으로 개념을 확장하기 위해서 중요한 요소인 활성화 함수에 대해 정리하겠습니다.

 

활성화 함수

\begin{cases}0\left(b+ w_{1}x_{1}+w_{2}x_{2}\leq 0 \right) \\ 1 \left(b+w_{1}x_{1}+w_{2}x_{2} >0 \right) \end{cases}

위 식은 처음 퍼셉트론의 이론을 정리할 때 나왔던 \(x_{1}\), \(x_{2}\) 를 입력 값으로 하는 퍼셉트론의 수식입니다.

식을 다시 하나의 함수로 나타내면 다음과 같습니다.

$$y = h(b+w_{1}x_{1}+w_{2}x_{2})$$

\begin{cases}0\left(x\leq 0 \right)\\1\left(x >0 \right) \end{cases}

입력 값의 총합이 \(h(x)\)라는 함수를 거쳐 변환되어, 그 값이 \(y\) 의 출력이 됩니다.

\(h(x)\)함수는 입력이 0을 넘으면 1을 돌려주고 그렇지 않으면 0을 돌려줍니다.

 

이렇게 입력 신호의 총합을 출력 신호로 변환하는 함수를 활성화 함수(activation function)라고 합니다.

이름의 뜻에서 알 수 있듯이 입력의 총합이 활성화를 일으키는지를 정하는 역할을 합니다.

활성화 함수는 퍼셉트론에서 신경망으로 가기 위한 핵심입니다.

위의 식은 활성화 함수 중에서도 계단 함수(step function)인데, 퍼셉트론에서 사용되는 계단 함수를 다른 함수로 변경하는 것이 신경망의 핵심이라고 할 수 있습니다.

 

계단 함수 (step function)

계단 함수(step function)

계단 함수의 위의 그림과 같이 입력이 0을 넘으면 1을 출력하고, 그 외에는 0을 출력하는 함수입니다.

그림에서 확인할 수 있듯이 0을 경계로 출력이 0에서 1 (1에서 0)로 바뀝니다.

이처럼 값이 바뀌는 형태가 계단처럼 생겼기 때문에 계단 함수라고 불립니다.

 

시그모이드 함수 (sigmoid function)

시그모이드 함수(sigmoid function)

시그모이드 함수는 신경망에서 자주 쓰입니다.

위의 그림은 시그모이드 함수의 형태를 나타내는 그래프이며 아래는 시그모이드 함수를 나타낸 식입니다.

$$h\left( x\right) =\dfrac{1}{1+e^{-x}}$$

신경망에서는 활성화 함수로 시그모이드 함수를 이용해 입력을 변환하고, 그 변환된 입력을 다음 노드에 전달합니다.

 

시그모이드 함수 vs 계단 함수

시그모이드 함수는 부드러운 곡선의 형태이며 입력에 따라서 출력인 연속적으로 변화합니다.

하지만, 계단 함수는 0을 경계로 출력이 갑자기 바뀝니다.

시그모이드 함수의 이러한 연속적인 값을 갖는다는 특징이 신경망 학습에서 아주 중요한 역할을합니다.

공통점으로는 둘 다 비선형 함수라는 점입니다.

신경망에서 선형 함수를 사용하지 안되는 이유는 선형 함수를 이용하면 신경망의 층을 깊게 하는 의미가 없어지기 때문입니다. 층을 구성하는 이점을 살리기 위해서는 활성화 함수로 반드시 비선형 함수를 사용해야 합니다.

 

렐루 함수 (ReLU)

 

렐루 함수(ReLU)

자주 사용하는 활성화 함수 중에 렐루 함수(Rectified Linear Unit)도 있습니다.

ReLU는 입력이 0을 넘으면 그 입력을 그대로 출력하고, 0이하면 0을 출력하는 함수입니다.

위의 그림은 렐루 함수의 형태를 나타내는 그래프이며 아래의 식은 렐루 함수를 나타내는 식입니다.

$$h\left( x\right) =\begin{cases}x\left( x >0\right) \\ 0\left( x\leq 0\right) \end{cases}$$

그래프와 수식에서 보듯 렐루 함수는 간단한 함수입니다.

다음 글에서는 신경망에 대해서 더 자세히 정리하도록 하겠습니다.

 

 

728x90
반응형

댓글