Deep Learning

퍼셉트론, 활성화 함수

해파리냉채무침 2023. 7. 1. 14:08

퍼셉트론은 여러개의 input과 한개의 output이 있다.

https://github.com/ZahidHasan/Perceptron

input이 두개있다고 가정하고, 입력치는 각각 12와 4, 가중치를 0.5와 -1라고 가정해보자.

이러한 입력치에 가중치를 곱하게 된다. 

12*0.5 + 4*-1 

입력치를 가중치와 곱한 결과를 취해서 활성화 함수(activation function)으로 보낸다. 

외부를 볼 수 없는 hidden layer도 존재하는데, input과 output 사이에 존재하고, 3개의 이상의 hidden layer가 있을 때, deep network 라고 부른다. 

https://en.wikipedia.org/wiki/Perceptron

입력값들이 양수면 1 음수면 0을 출력한다.만약 입력치가 0이라면 output은 항상0이 도출된다. 

이러면 문제가 생기기 때문에, bias를 추가하여 이러한 딜레마를 해결함. 

 

활성화 함수에는 기본적으로 relu, sigmoid, tanh 함수가 있다. 딥러닝 모델링 시 활성화 함수를 변경하면 성능이 더 괜찮아 질 수도 있다. 

선형함수는 f(x) = x로 일직선으로 뻗어나간다.

https://towardsdatascience.com/activation-functions-neural-networks-1cbd9f8d91d6

비선형 함수는 곡선, 커브모양을 띈다.

https://towardsdatascience.com/activation-functions-neural-networks-1cbd9f8d91d6

 Sigmoid 함수

sigmoid함수는 0과 1사이에 있으며, 미분가능하다. 하지만 로지스틴 sigmoid는 학습 중 신경망이 멈출 수 있다는 단점이 있다. softmax는 다중 분류에 사용되는 일반적인 로지스틱 활성화 함수이다. 

https://towardsdatascience.com/activation-functions-neural-networks-1cbd9f8d91d6

tanh 함수 

tanh함수는 로지스틱 시그모이드와 비슷하지만 조금 더 나은 성능을 보인다. tanh함수는 (-1,1) 이다. sigmoid와 차이점이 있다면 음수는 음수로 출력되고, 0이면 0으로 나온다. 또한 sigmoid와 같게 미분가능하다. 

sigmoid와 tanh 함수 둘다 feed-forward nets에 쓰인다. 

https://towardsdatascience.com/activation-functions-neural-networks-1cbd9f8d91d6

 

ReLU함수

ReLU함수는 음수면 0을 반환하고 양수면 양수를 반환한다. 가장 많이 사용되는 활성화함수이다. 

https://towardsdatascience.com/activation-functions-neural-networks-1cbd9f8d91d6