일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- 논문 리뷰
- CVPR2023
- IROS
- NeRF paper
- Semantic Segmentation
- GAN
- linux
- Python
- pytorch
- 논문리뷰
- 딥러닝
- 융합연구
- 2022
- docker
- CVPR
- panoptic nerf
- Computer Vision
- ICCV
- ICCV 2021
- NERF
- 논문
- 파이토치
- panoptic segmentation
- Vae
- Neural Radiance Field
- 리눅스
- Paper
- 경희대
- Deep Learning
- paper review
- Today
- Total
윤제로의 제로베이스
퍼셉트론(Perceptron) 본문
02. 퍼셉트론(Perceptron)
인공 신경망은 수많은 머신 러닝 방법 중 하나입니다. 하지만 최근 인공 신경망을 복잡하게 쌓아 올린 딥 러닝이 다른 머신 러닝 방법들을 뛰어넘는 성능을 보여주는 사례가 늘면 ...
wikidocs.net
1. 퍼셉트론(Perceptron)
퍼셉트론은 프랑크 로젠블라트가 1957년에 제안한 초기 형태의 인공 신경망으로 다수의 입력으로부터 하나의 결과를 내보내는 알고리즘이다.
x는 입력값을 의미하며 W는 가중치, y는 출력값이다.
그림 안의 원은 인공 뉴런에 해당된다.
각각의 인공 뉴런에서 보내진 입력값 x는 각각의 가중치 W와 함께 종착지인 인공 뉴런에 전달된다.
각각의 입력값에는 각각의 가중치가 존재하는데, 이때 가중치의 값이 크면 클수록 해당 입력값이 중요하다는 것을 의미한다.
각 입력값이 가중치와 곱해져 인공 뉴런에 보내지고, 각 입력값과 그에 해당 가중치의 곱의 전체 합이 임계치를 넘으면 종착지에 있는 뉴런은 출력 신호로서 1을 출력하고, 그렇지 않을 경우 0을 출력한다.
이러한 함수를 계단 함수라고 한다. 계단 함수에 사용된 임계치값을 수식으로 표현할 떄 아래와 같이 표현한다.
단, 위의 식에서 임계치를 좌변으로 넘기고 편향 b로 표현할 수도 있다.
편향 b 또한 퍼셉트론의 입력으로 사용된다.
뉴런에서 출력값을 변경 시키는 함수를 활성화 함수(Activation Function)이라고 한다.
초기 모델에서는 활성화 함수로 계단 함수를 사용했지만, 그 뒤에 등장하는 다양한 활성화 함수를 사용하기 시작했다.
시그모이드 함수나 소프트맥스 함수 또한 활성화 함수 중 하나이다.
로지스틱 회귀 모델이 인공 신경망에서는 하나의 인공 뉴런으로도 볼 수 있다.
로지스틱 회귀를 수행하는 인공 뉴런과 퍼셉트론의 차이는 활성화 함수이다.
2. 단층 퍼셉트론(Single-Layer Perceptron)
단층 퍼셉트론은 값을 보내는 단계와 값을 받아서 출력하는 두단계로만 이루어진다.
이 단계를 보통 층(layer)라 부르고, 이 두개의 층을 입력층(input layer)과 출력층(output layer)이라고 한다.
단층 퍼셉트론의 한계를 개선하기 위해 등장한 것이 다층 퍼셉트론이다.
단층 퍼셉트론을 사용하면 AND, NAND, OR 게이트를 쉽게 구현할 수 있다.
def AND_gate(x1, x2):
w1=0.5
w2=0.5
b=-0.7
result = x1*w1 + x2*w2 + b
if result <= 0:
return 0
else:
return 1
def NAND_gate(x1, x2):
w1=-0.5
w2=-0.5
b=0.7
result = x1*w1 + x2*w2 + b
if result <= 0:
return 0
else:
return 1
def OR_gate(x1, x2):
w1=0.6
w2=0.6
b=-0.5
result = x1*w1 + x2*w2 + b
if result <= 0:
return 0
else:
return 1
하지만 XOR 게이트는 단층 퍼셉트로는 구현이 불가능하다.
XOR 게이트는 입력값 두개가 서로 다른 값을 가지고 있을 때에만 1이 출력되고, 입력값 두개가 서로 같은 값을 가지면 출력값이 0이 되는 게이트이다.
이러한 XOR 게이트를 단층 퍼셉트론으로는 구현이 불가한 이유는 단층 퍼셉트론으로는 직선 하나로 두영역을 나눌 수 있는 문제에 대해서만 구현이 가능하기 때문이다.
3. 다층 퍼셉트론(MultiLayer Perceptron, MLP)
XOR 게이트는 기존의 AND, NAND, OR 게이트를 조합하면 만들 수 있다.
퍼셉트론의 관점에서는 층을 더 쌓으면 가능하다.
다층 퍼셉트론과 단층 퍼셉트론의 차이는 단층 퍼셉트론은 입력층과 출력층만 존재했다면, 다층 퍼셉트론은 중간의 층을 추가했다는 것이다.
이렇게 입력층과 출력층 사이에 존재하는 층을 은닉층(hidden layer)라고 한다.
즉 다층 퍼셉트론은 중간에 은닉층이 존재한다는 점이 단층 퍼셉트론과 다르다.
은닉층이 2개 이상인 신경망을 심층 신경망(Deep Neural Network, DNN)이라고 한다.
'Background > Pytorch 기초' 카테고리의 다른 글
비선형 활성화 함수(Activation function) (0) | 2022.01.17 |
---|---|
역전파(Backpropagation) (0) | 2022.01.17 |
머신 러닝 용어 이해하기 (0) | 2022.01.16 |
소프트맥스 회귀로 MNIST 데이터 분류하기 (0) | 2022.01.16 |
소프트맥스 회귀 구현하기 (0) | 2022.01.16 |