티스토리 뷰
목차
1. 퍼셉트론??
인공 뉴런 / 단순 퍼셉트론으로 불리며, 그림에서 처럼 2개의 노드로부터 입력을 받아 $y$를 출력하는 형태이다. $x_1, x_2$를 노드 $w_1, w_2$를 가중치 $y$를 출력값으로 한다.
퍼셉트론을 수식으로 나타내면 다음과 같다.
$$ y = \begin{cases} 0 \ (w_1x_1+w_2x_2 \le \theta) \\ 1 \ (w_1x_1+w_2x_2 \ge \theta)\end{cases} $$
2. 단순 논리 회로
1. AND 게이트
진리표
x1 | x2 | y |
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
입력이 둘, 출력이 하나인 게이트로 퍼셉트론으로 표현할 수 있다.
$ (w_1, w_2, \theta) = (0.5, 0.5, 0.7), (0.5, 0.5, 0.8) $ 등 무수히 많은 조합으로 AND 게이트 표현이 가능하다.
2. NAND 게이트와 OR 게이트
NAND : Not AND를 의미한다.
진리표
x1 | x2 | y |
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
퍼셉트론으로 게이트를 표현하려면 AND게이트의 조합의 부호를 모두 반전시키면 된다.
OR 게이트 진리표
x1 | x2 | y |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
AND, NAND, OR 모두 퍼셉트론으로 표현 가능하다.
3. 편향
편향을 추가했을 때 퍼셉트론은 다음과 같이 작성할 수 있다.
$$ y = \begin{cases} 0 (b + w_1x_1 + w_2x_2 \le \theta) \\ 1 (b + w_1x_! + w_2x_2 \ge \theta) \end{cases} $$
가중치와는 다른 역할이다. 가중치는 결과에 영향력을 조정하는 매개변수라 하면 편향은 활성화정도를 조정하는 매개변수인데 Neural Network에서 필수 요소인 Activation Function 통과 후 출력 값을 조절하는 역할을 한다. Input data의 성향을 반영한다 정도로 이해하면 편하다.
3. 퍼셉트론의 한계
1. XOR 게이트
둘 중 한쪽만 1일 때 1을 출력하는 게이트로 진리표는 다음과 같다.
x1 | x2 | y |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
지금까지의 퍼셉트론으로는 구현은 불가능하다. 다음 그림을 통해 확인해보자
위의 그림처럼 $b+w_1x_1 +w_2x_2$ 를 그리면 조건을 만족시킬 수 있다.
XOR 문제는 주어진 선형식으로 구현하는 것은 불가능하고, 위의 두번째 그림처럼 비선형 표현이 필요하다. 이를 해결해주는 것이 다층 퍼셉트론(MLP)이다.
4. 다층 퍼셉트론
퍼셉트론으로 층을 쌓아서 다층 퍼셉트론을 만들 수 있다. 2개의 층으로 XOR을 표현할 수 있다.
기존 게이트 조합
XOR 게이트를 만드는 방법은 다양하지만 그 중 하나는 AND, NAND, OR 게이트를 조합하면 다음과 같다.
XOR 진리표
x1 | x2 | s1 | s2 | y |
0 | 0 | 1 | 0 | 0 |
0 | 1 | 1 | 1 | 1 |
1 | 0 | 1 | 1 | 1 |
1 | 1 | 0 | 1 | 0 |
s1은 NAND, s2는 OR, y는 s1, s2에 대한 AND 게이트의 출력값이다.
이러한 방법으로 단층 퍼셉트론으로 표현하지 못한 것을 층을 쌓으면서 다양한 것으로 표현할 수 있다.
이론 상으론 컴퓨터를 만들 정도로 표현력이 뛰어나다.
'AI' 카테고리의 다른 글
[딥러닝 Basic] 신경망 (Neural Network) 간단하게 알아보기2 (0) | 2022.07.25 |
---|---|
[딥러닝 Basic] 신경망 (Neural Network) 간단하게 알아보기1 (0) | 2022.07.25 |
[논문 리뷰] DenseNet 간단리뷰 (0) | 2022.07.24 |
[논문 구현] Pytorch로 AlexNet 간단하게 구현해보기 (0) | 2022.07.24 |
[논문 리뷰] ResNet (Residual Network) 리뷰하기 (0) | 2022.07.24 |