- Published on
밑바닥부터 시작하는 딥러닝 | 퍼셉트론
- Authors
- Name
- 박준열 | Eric Park
퍼셉트론 Perceptron
다수의 신호를 입력 받아 하나의 신호를 출력.
퍼셉트론의 출력은 두 가지 값이 있다.
- 흐른다: 1
- 안흐른다: 0
위에 예시에서 보면: X_1W_1 + X_2W_2 <= θ라면 안흐른다 X_1W_1 + X_2W_2 > θ라면 흐른다
W_1, W_2, θ 값은 임의로 정한 값
Machine Learning
지금까지는 퍼셉트론의 가중치를 수동으로 입력을 했는데, 머신러닝은 이 작업을 자동화하는 것이다.
- 학습 - 적절한 가중치를 찾는 작업
- 사람은 퍼셉트론의 구조를 정하고 컴퓨터에 학습 데이터를 공급
Rosenblatt's Algorithm
- Weight값을 랜덤으로 지정한다
- 정해진 X값으로 Y값을 예측한다
- 만약 Y = 0을 예측 했는데, 실제로는 Y = 1이었다면, weight값을 증가시킨다.
- 만약 Y = 1을 예측 했는데, 실제로는 Y = 0이었다면, weight값을 감소시킨다.
- 예측 값이 정확할 때까지 반복.
편향값 (Bias)
θ값 대신 b값 도입
b + X_1W_1 + X_2W_2 <= 0라면 안흐른다 b + X_1W_1 + X_2W_2 > 0라면 흐른다
W_1, W_2, b 값은 임의로 정한 값
Weight(가중치): W_1, W_2는 각 입력 신호가 결과에 주는 영향력을 조정
Bias(편향): 퍼셉트론이 얼마나 쉽게 활성화 되는지를 조절
- b = -0.1 각 입력 신호에 가중치를 곱한 값들의 합이 0.1을 초과할 때 활성화
- b = -20.0 각 입력 신호에 가중치를 곱한 값들의 합이 20.0을 초과할 때 활성화
퍼셉트론의 한계
(b, W_1, W_2) = (-0.5, 1.0, 1.0)일 때,
- 파란 영역은 0을 출력하는 영역
- 하얀 영역은 1을 출력하는 영역
- 0을 원, 1을 삼각형으로 표현
OR게이트를 만들려면 원과 삼각형을 직선으로 나눠야 한다
그럼 XOR게이트를 만들려면 원과 삼각형을 직선으로 어떻게 나눠야 할까?
정답은: 한 직선으로는 절대로 나눌 수가 없다
그러면 어떻게 해야 원과 삼각형을 나눌 수 있을까?
이렇게 직선이라는 제약이 사라진다면 나눌 수가 있다
쉽게 생각하면, 하나의 계층의 퍼셉트론으로는 XOR게이트를 구현할 수가 없고, 다층 퍼셉트론으로는 가능하다는 뜻이다
다층 퍼셉트론 Multi-layer Perceptron
- 퍼셉트론을 여러 층으로 쌓은 모델 = Neural Networks
XOR게이트 구현
이렇게 세개의 게이트가 주어졌을때, XOR게이트를 구현하려면 어떻게 게이트를 배치해야 할까
정답은 바로: OR NAND AND 순서대로 이다.
XOR은 다층 구조의 네트워크이기 때문에, 이런식으로 구현이 가능하다. (일반적으로 아웃풋 레이어는 계층에 포함되지 않는다)
정리
- 퍼셉트론은 입출력을 갖춘 알고리즘이다.
- 입력을 주면 정해진 규칙에 따른 값을 출력한다.
- 퍼셉트론으로 AND, OR게이트 등의 논리회로를 표현할 수 있다.
- XOR 게이트는 2층 퍼셉트론으로 표현할 수 있다.
- 다층 퍼셉트론은 직선형 영역만 표현하는 반면 다층 퍼셉트론은 비선형 영역도 표현할 수 있다.
- 다층 퍼셉트론으로는 이론상 컴퓨터도 만들 수 있다.