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

[머신러닝/딥러닝 기초] 4. 퍼셉트론(Perceptron) 이론과 간단 구현 - 1

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

지난 포스팅

https://seokii.tistory.com/52

 

3. 머신러닝을 하면서 주의해야 할 6가지

머신러닝 시스템의 종류 https://seokii.tistory.com/49 2. 머신러닝 시스템의 종류 머신러닝이란 https://seokii.tistory.com/48?category=1054781 1. 머신러닝(Machine Learning, 기계학습)이란 무엇인가? 머신..

seokii.tistory.com

저번 글에서는 머신러닝을 공부하고 진행하면서 주의해야 할 점들에 대해서 정리했습니다.

이번 글에서는 퍼셉트론이 무엇인지에 대해 정리하고 간단한 구현을 통해 실습하겠습니다.

 

퍼셉트론이란?

퍼셉트론은 프랑크 로젠블라트(Frank Rosenblatt)가 1957년에 고안한 알고리즘입니다.

퍼셉트론은 신경망(딥러닝)의 기원이 되는 알고리즘이기 때문에 오래되었지만 알아야 할 필요가 있습니다.

입력이 2개인 퍼셉트론

퍼셉트론은 기본적으로 다수의 입력 값을 받아 하나의 결과 값을 출력합니다.

퍼셉트론의 입력은 0 혹은 1의 두 가지 값을 가질 수 있습니다.

위의 그림은 입력으로 2개의 신호를 받은 퍼셉트론의 예시입니다.

\(x_{1}\)과 \(x_{2}\)는 입력 값, \(y\)는 출력 값, \(w_{1}\)과 \(w_{2}\)는 가중치를 뜻합니다. (\(w\) = weight)

그림의 원을 노드 혹은 뉴런이라고 부릅니다.

입력 값이 노드(뉴런)에 보내질 때는 각각 고유한 가중치가 곱해집니다.(\(w_{1}x_{1} , w_{2}x_{2}\))

노드(뉴런)에서 보내온 입력의 총합이 정해진 한계를 넘어설 때만 1을 출력하게 됩니다.

그 한계값을 임계값이라 하며, \(\theta\)(theta, 세타)로 나타냅니다.

 

위의 설명을 식으로 나타내면 다음과 같습니다.

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

퍼셉트론은 다수의 입력 각각에 고유한 가중치를 부여하고 가중치는 결과에 주는 영향력을 조절하는 요소로 작용하게 됩니다. 즉, 가중치가 클수록 해당 입력이 그만큼 더 중요함을 뜻합니다.

 

퍼셉트론 구현하기

아래와 같은 간단한 논리 회로인 AND 게이트를 퍼셉트론을 알고리즘을 사용해 구현해보도록 하겠습니다.

구현 코드

def AND(x1, x2):
    w1, w2, theta = 0.5, 0.5, 0.7
    tmp = x1*w1 + x2*w2
    if tmp <= theta:
        return 0
    elif tmp > theta:
        return 1

print(AND(0, 0))
print(AND(1, 0))
print(AND(0, 1))
print(AND(1, 1))

결과

0
0
0
1

AND라는 이름의 함수를 지정하고 실행해 구현을 진행했습니다.

이 함수에서 w1, w2, theta 매개변수를 초기화하고, 가중치를 곱한 입력의 총합이 임계값을 넘으면 1을 반환 그렇지 않으면 0을 반환하도록 코드를 작성했습니다.

같은 방법으로 다른 게이트도 구현할 수 있습니다.

 

 

728x90
반응형

댓글