본문 바로가기
Python/deep learning

파이썬에서 계단 함수 만들기

by 철이88 2023. 3. 21.
반응형

앞서 포스팅에서 퍼셉트론에 대해 알아봤는데요. 퍼셉트론은 입력 데이터를 받아서 계산 후 출력 값을 내보내는 구조를 가지며, 이때 입력 값과 가중치(weight)를 곱한 값의 합이 임계치(Threshold)를 넘으면 출력값이 1, 그렇지 않으면 0을 출력합니다. 이처럼 임계값을 기준으로 출력값이 바뀌는 함수를 활성화함수라고 합니다. 이번에는 파이썬에서 계단 함수를 만들어 보겠습니다.

계단 함수(Step Function)는 입력 값이 0을 기준으로 0보다 크면 1, 0보다 작으면 0을 출력하는 함수입니다. 이 함수는 퍼셉트론에서 매우 중요한 역할을 합니다. 계단 함수는 파이썬에서 다음과 같이 구현할 수 있습니다.

 

사실 계단 함수는 매우 간단합니다. 아래와 같이 만들 수 있습니다.

 

1. 입력값이 실수인 경우의 계단 함수

def step_function(x):
    if x > 0:
        return 1
    else:
        return 0

입력 값인 x가 0보다 크면 1, 0보다 작으면 0을 출력하도록 되어있습니다.

 

다음 코드를 가지고 만들어진 계단 함수가 잘 작동하는지 확인할 수 있습니다.

print(step_function(2))  # 1 출력
print(step_function(-1))  # 0 출력

 

2. 입력값이 배열인 경우의 계단 함수

배열 형태의 입력값을 받아 계단 함수를 계산하는 함수는 아래와 같이 만들 수 있습니다.

이때 numpy를 써서 배열을 입력해줘야 합니다. 

import numpy as np

def step_function(x):
    y = x > 0
    return y.astype(np.int)

print(step_function(np.array([1, -2])))

위 코드에서 x는 numpy array를 이용한 배열 입력값으로 y는 입력 배열 x의 각 요소가 0보다 큰지 비교하는 불리언 값입니다. 이 불리언 값은 astype 함수를 사용하여 0과 1로 변환된 다음, 계단 함수의 출력값으로 반환됩니다.

위의 예에서는 [1, 0]이 반환됩니다.

 

3. Matplotlib을 이용해서 계단 함수 그리기

위에서 만든 계단 함수를 다음과 같이 matplotlib을 이용해서 그래프로 그릴 수 있습니다.

import numpy as np
import matplotlib.pyplot as plt

def step_function(x):
    y = x > 0
    return y.astype(np.int)

x = np.arange(-3.0, 3.0, 0.01)
plt.plot(x, step_function(x))
plt.ylim(-0.1, 1.1)
plt.show()

이 코드를 실행하면, 아래와 같은 그래프를 얻을 수 있습니다.

반응형

댓글