전체 보기
2️⃣

[밑바닥부터 시작하는 딥러닝] Chapter 2. 퍼셉트론

작성일자
2022/10/30
태그
SUB PAGE
프로젝트
밑바닥 딥러닝
책 종류
1 more property

1. 퍼셉트론이란?

1) 퍼셉트론 알고리즘

정의) 다수의 신호를 입력으로 받아 하나의 신호를 출력
특징)
신경망의 기원이 되는 알고리즘
신호: 흐름이 있는 것
1 → 신호가 흐름
0 → 신호가 흐르지 않음
예시)
2개의 신호를 입력으로 받은 퍼셉트론
그림)
용어)
x1,x2x_1, x_2 : 입력 신호
yy : 출력 신호
w1,w2w_1, w_2: 가중치 → 각 신호가 결과에 주는 영향력을 조절
가중치가 클 수록 해당 신호가 중요하단 의미
원: 뉴런 == 노드
동작 원리)
y={0(w1x1+w2x2<=θ)1(w1x1+w2x2>θ)y=\begin{cases} 0 (w_1x_1+w_2x_2<=\theta) \\ 1 (w_1x_1+w_2x_2>\theta) \end{cases}
입력 신호는 보내질 때 각각 고유한 고중치가 곱해짐
도착한 신호의 총합이 임계값(정해진 한계, θ\theta)을 넘어서면 1 출력
신호가 흐른단 의미

2. 퍼셉트론 구현

1) 구현 방법

1.
진리표: 입력 신호와 출력 신호의 대응 표
2.
진리표대로 작동하도록 가중치와 임계값을 정함 (w1,w2,θ)(w_1, w_2, \theta)
y={0(w1x1+w2x2<=θ)1(w1x1+w2x2>θ)y=\begin{cases} 0 (w_1x_1+w_2x_2<=\theta) \\ 1 (w_1x_1+w_2x_2>\theta) \end{cases}
3.
θ\theta를 -b로 치환
b : 편향
4.
가중치와 편향 도입해 구현
y={0(b+w1x1+w2x2<=0)1(b+w1x1+w2x2>0)y=\begin{cases} 0 (b+w_1x_1+w_2x_2<=0) \\ 1 (b+w_1x_1+w_2x_2>0) \end{cases}

2) AND 게이트

진리표
가중치와 임계값 이용해 구현
x1,x2x_1, x_2가 모두 1일 때만 가중 신호 총합이 임계값 웃돌게 함
가중치와 임계값
(0.5, 0.5, 0.7) (0.5, 0.5, 0.8) (1.0, 1.0, 1.0)… → 무수히 많음
코드
가중치와 편향 도입해 구현
코드

3) NAND 게이트 (Not And)

진리표 : and 게이트 출력 뒤집은 것
가중치와 편향 도입해 구현
가중치와 임계값
(-0.5, -0.5, -0.7)… → AND 게이트 매개변수 부호 모두 반전한 것
코드

4) OR 게이트

진리표
가중치와 편향 도입해 구현
가중치와 임계값
(0.5, 0.5, 0.2)…
코드
구현 가능 (선형)
퍼셉트론 시각화
linear한 decision boundary로 분류 가능 → 퍼셉트론으로 구현 가능
직선으로 세모와 동그라미 분류 가능
예시) 가중치와 임계값: (1.0, 1.0, 0.5)

3. 퍼셉트론의 한계

1) xor 게이트 (배타적 논리합)

진리표
구현 불가능 (비선형)
퍼셉트론 시각화
곡선으로 분류 가능 → 퍼셉트론으로 구현 불가능

2) 선형과 비선형, 퍼셉트론의 한계

퍼셉트론의 한계: 직선 하나로 나눈 영역만 표현 가능
선형: 직선 영역 / 비선형: 곡선 영역
해결) 층을 쌓아 다층 퍼셉트론을 만듦

4. 다층 퍼셉트론

1) 기존 게이트 조합해 XOR 게이트 만들기

조합 회로
진리표

2) XOR 게이트 구현

다층 퍼셉트론
정의) 층이 여러 개인 퍼셉트론
그림) 단층 퍼셉트론 vs 다층 퍼셉트론(2층 퍼셉트론)
과정)
1) 0층의 두 뉴런이 입력 신호를 받아 1층의 뉴런으로 신호 보냄
2) 1층의 뉴런이 2층의 뉴런으로 신호 보내고, 2층의 뉴런은 y를 출력함
특징) 단층 퍼셉트론으론 표현하지 못한 것을 층을 늘려 구현할 수 있음
예시) XOR 게이트 구현
코드