노트 :

활성화 함수 구현하기 본문

ML

활성화 함수 구현하기

IT_달토끼 2023. 3. 27. 17:21

 

먼저 numpy와 matplotlib 라이브러리를 임포트한다.

 

import numpy as np
import matplotlib.pyplot as plt

 

각각의 함수를 구현한다.

 

1. 계단함수

 

1) 정의: 0을 경계로 출력이 0에서 1(또는 1에서 0)으로 바뀌는 함수로, 그래프의 결과가 계단처럼 생김

 

2) 코드

def step_function(x):
    return np.array(x > 0, dtype = np.int)

x = np.arange(-5.0, 5.0, 0.1) #-5.0에서 5.0 전까지 0.1간격의 넘파이 배열 생성
y = step_function(x)
plt.plot(x, y)
plt.ylim(-0.1, 1.1) #y축의 범위 지정
plt.show()

3) 실행결과

 

계단함수

 

2. 시그모이드(Sigmoid) 함수

 

1) 정의: 0 또는 1을 반환하는 계단 함수와 달리 실수 값을 반환하는 함수로, 매끄러운 S자 모양의 비선형 함수

 

2) 코드

def sigmoid(x):
    return 1 / (1 + np.exp(-x)) #np.exp(-x)는 자연상수e의 -x승을 의미

x = np.arange(-5.0, 5.0, 0.1)
y = sigmoid(x)
plt.plot(x, y)
plt.ylim(-0.1, 1.1)
plt.show()

 

3) 실행결과

시그모이드 함수

 

3. ReLU(Rectified Linear Unit) 함수

 

1) 정의: 입력이 0을 넘으면 그 입력 그대로 출력하고, 0이하이면  0을 출력하는 함수, 0을 기준으로 상승하는 형태

 

2) 코드

def relu(x):
    return np.maximum(0, x)

x = np.arange(-5.0, 5.0, 0.1)
y = relu(x)
plt.plot(x, y)
plt.ylim(-0.1, 1.1)
plt.show()

 

3) 실행결과

ReLU 함수

 

 

출처: 「밑바닥부터 시작하는 딥러닝」, 사이토 고키 지음, 개앞맵시 옮김, 한빛미디어

 

'ML' 카테고리의 다른 글

Scikit-learn - 데이터 인코딩  (0) 2023.04.08
피처 스케일링과 정규화  (0) 2023.03.27
반응형 머신러닝 앱을 만드는 가장 빠른 방법 - gradio  (0) 2023.03.04
DALL-E 2  (0) 2023.03.03
ChatGPT  (0) 2023.01.29