-
[#003] 퍼셉트론인공지능 2020. 5. 21. 14:14
퍼셉트론이란?
퍼셉트론(Perceptron) 은 1957년에 코넬 항공 연구소의 프랑크 로젠블라트가 고안한 알고리즘이며, 다수의 신호를 입력으로 받아 하나의 신호를 출력하는 알고리즘이다.
퍼셉트론을 배우는 이유는 딥러닝의 시작이라고 할 수 있는 알고리즘이기 때문이다. 시작이되는 알고리즘을 배움으로써 앞으로의 딥러닝 원리를 이해하고 역사를 공부하고자 한다.
단층 퍼셉트론(Single-Layer Perceptron)
퍼셉트론의 예 위의 그림은 단층 퍼셉트론을 그림으로 표현한 예이다. 퍼셉트론은 단층 or 다층 퍼셉트론있는데, 우선 단층만 설명하자면 단층 퍼셉트론은 값을 보내는 단계과 값을 받아서 출력하는 두 단계로 이루어집니다. 이때 이 각 단계를 보통 층(layer)라고 부르며, 각 층을 입력층(input layer)과 출력층(output layer)이라고 합니다.
x는 입력값을 의미하며, w는 가중치(Weight), y는 출력값이다. 이때 입력신호값은 각 고유한 가중치 w의 값이 곱해지며 출력값 y에 해당 값이 전달되게 됩니다. 이때, 임계치(θ)를 기준으로 0 혹은 1로 y 값에 전달되게 된다. 전달되는 순간 편향 값 b에 따라 임계치값이 변경될수 있다. 이를 수식으로 나타내면 아래와 같다.
퍼셉트론 수식 논리 회로
퍼셉트론을 이용하여 AND, OR, NAND, XOR 게이트를 구현해보자. 이에 대한 설명이 중요한 이유는 앞으로 신경망으로 발전하는 이유가 되기 때문이다.
좌표 내에 네개의 점 (0,0), (0,1), (1,0), (1,1) 이 존재하고, 각 점마다 빨간색 동그라미 혹은 초록색 X 로 되어 있고 표 안에 랜덤하게 표시된다고 가정하자. 이 때, 해당 서로다른 점들을 하나의 직선으로 구분하고자 할 때 어떤식으로 가능할지 논리회로와 이를 시각화한 화면으로 표현해보자.
AND GATE
하나의 빨간 동그라미(1,1)과 세개의 초록색 X(0,0), (0,1), (1,0) 을 하나의 직선으로 구분하기 위해서 AND 게이트를 이용하여 아래 같이 구분하였다.
AND 게이트의 진리표와 시각화 OR GATE
세개의 빨간 동그라미(1,1), (0,1), (1,0) 과 하나의 초록색 (0,0)을 구분하기 위해서 OR 게이트를 이용하여 아래 같이 구분하였다.
OR 게이트의 진리표와 시각화 NAND GATE
세개의 빨간 동그라미(0,0), (0,1), (1,0) 과 하나의 초록색 (1,1)을 구분하기 위해서 NAND 게이트를 이용하여 아래 같이 구분하였다.
NAND 게이트의 진리표와 시각화 XOR GATE
두개의 빨간 동그라미 (0,1), (1,0) 과 두개의 초록색 (0,0), (1,1)을 구분하기 위해서 XOR 게이트를 이용하여 구분하여야 하지만 하나의 직선으로 구분하기는 불가능하다.
XOR 게이트의 진리표와 시각화 다층 퍼셉트론(MultiLayer Perceptron, MLP)
XOR경우 처럼, 하나의 직선으로 구분할 수 없는 경우가 존재한다. 하나의 직선으로 표현이 안된다는 것이지 구분을 못한다는 것은 아니다. 가장 간단한 방법으로는 직선 두개를 사용하여 구분하면 된다. 이말은 다시 말하면 두개의 퍼셉트론을 통해서 구현이 가능하다는 것이다.
XOR 게이트의 진리표와 시각화 여러 블로그나 문서에는 해당 XOR 게이트를 AND, NAND, OR 게이트를 이용하여 조합하여 표현하는 방식으로 단층 퍼셉트론을 설명하였지만, 본 블로그에서는 아래와 같이 단순하게 그림으로 표현하고자 하였다. OR 게이트와 NANA 게이트의 시각화된 결과를 결합(AND) 하여 XOR 게이트를 표현한 것이다.
OR, NAND, AND 게이트를 이용하여 XOR 게이트를 구현 위의 그림을 아래와 같이 다층의 퍼셉트론으로 표현할 수 있다. s1에서 OR 계산식의 결과를 전달받고, s2에서는 NAND 계산식의 결과를 전달 받습니다. 그리고 s1와 s2의 결과를 다시 AND 계산식으로 통해서 최종 결과를 전달 받는다.
다층 퍼셉트론 예 이런식으로 복잡한 문제들을 여러 층을 통해서 해결할 수 있고, 층을 여러개 쌓았다고 해서 다층 퍼셉트론이라고 한다. 입력층과 출력층 사이에 존재하는 층을 은닉층(hidden layer)이라고 합니다. 다층 퍼셉트론은 중간에 은닉층이 존재한다는 점이 단층 퍼셉트론과 다르다.
마무리
이번에는 단층 퍼셉트론과 다층 퍼셉트론에 대해서 알아보았다. 퍼셉트론을 시작으로 어떤식으로 인공신경망으로 발전했는지 그리고 딥러닝까지 이루어졌는지 알아볼 예정이다. 이후에는 인공신경망에 대한 내용을 다루며 틈틈히 인공지능과 관련된 상식같은 것도 추가 하도록 하겠다.
관련글
1.사이토 고키, Deep Learning from Scratch, 밑바닥부터 시작하는 딥러닝, 개앞맵시, 한빛미디어, 2018
* 건전한 비판과 문의사항은 언제나 환영입니다.
'인공지능' 카테고리의 다른 글
[#004] 신경망-1 (0) 2020.07.16 [#002] 인공지능의 역사 (0) 2020.05.13 [#001] 인공지능이란? (0) 2020.04.29