인공지능/머신러닝

[머신러닝 - Python] 활성화 함수 - 시그모이드 함수 구현 (Activation Function - Sigmoid Function Implemetation)

바보1 2022. 5. 7. 16:05


 

앞의 글을 읽으시면 이해에 도움이 됩니다.

 

2022.10.18 - [Computer Science/머신러닝] - [머신러닝 - 이론] Logistic Regression (로지스틱 회귀)

 

[머신러닝 - 이론] Logistic Regression (로지스틱 회귀)

앞의 글을 읽으시면 이해에 도움이 됩니다. 2022.05.07 - [Computer Science/머신러닝] - [머신러닝 - Python] 활성화 함수 - 시그모이드 함수 구현 (Activation Function - Sigmoid Function Implemetation) [머신러닝 - Python]

hi-guten-tag.tistory.com


퍼셉트론은 계단 함수를 사용하지만, 이는 활성화 함수의 일부일 뿐이다.

실제로 제대로 된 신경망을 구현하기 위해서는 다양한 활성화 함수를 이용해야만 한다.

대표적인 활성화 함수로는 시그모이드 함수가 있다.

식은 아래와 같다.

\(h(x) = \frac{1}{1 + e^{-x}}\)

 

자연 상수를 가지고 있는 이 식은 0~1 사이의 값을 나타낸다.

쉽게 말해서 확률을 나타내기에 매우 용이하다.

 

아무튼 위의 식을 코드로 구현해보면,

import numpy as np
import matplotlib.pyplot as plt


def sigmoid(x):
    return 1 / (1 + np.exp(-x))


x = np.array([-1.0, 1.0, 2.0])
y = sigmoid(x)
print(y)

x = np.arange(-5.0, 5.0, 0.1)
y = sigmoid(x)
plt.plot(x, y)
plt.ylim(-0.1, 1.1)
plt.show()
[0.26894142 0.73105858 0.88079708]

위에는 간단하게 -1.0, 1.0, 2.0의 값을 확인해본 것이고, 아래는 -5.0부터 5.0까지 0.1간격으로 함수의 모양을 파악해봤다.

 

 

 

감사합니다.

 

 

지적 환영합니다.