라즈베리파이반

라즈베리파이 등 컴퓨터계열 게시판입니다.

제목딥러닝(Deep Learning) : 퍼셉트론(Perceptron)2022-05-11 03:38
작성자user icon Level 4

88x31.png


딥러닝(Deep Learning)은 여러 층을 가진 인공신경망(Artificial Neural Network, ANN)을 사용한 머신러닝의 한 종류입니다. 기존 머신러닝은 사람이 사용할 특성을 직접 분석하여 모델에 제공했지만 딥러닝의 경우 모델 스스로 학습할 특성을  추출합니다.



1. 퍼셉트론(Perceptron)


퍼셉트론(Perceptron)은 1957년 프랑크 로젠블라트(Frank Rosenblatt)가 고안한 초기 형태의 인공신경망 알고리즘입니다. 퍼셉트론은 뇌를 구성하는 신경 세포인 뉴런의 동작을 모방했습니다. 


mb-file.php?path=2022%2F05%2F11%2FF5289_1.png
 

mb-file.php?path=2022%2F05%2F11%2FF5290_2.jpg
 

뉴런의 축삭말단에서 신경전달물질이 시냅스로 분비되어 뉴런의 수상돌기에 있는 수용체에 결합하여 신호를 전달합니다. 여러 수상돌기로 전달된 신호는 신경세포체에서 통합되어 특정 역치값을 넘으면 축삭을 통해 신호가 전달되고, 신호를 받은 축삭말단은 다시 신경전달물질을 분비하여 다른 뉴런으로 신호를 전달합니다.


뉴런을 도식화하면 다음과 같습니다.


mb-file.php?path=2022%2F05%2F11%2FF5291_3.png
 

Xi입력신호(input)이며, 신경전달물질과 같습니다. Wi가중치(weight)로, 수용체의 결합강도에 해당합니다. 각각의 입력신호는 고유의 가중치를 가지며, 전송함수(transfer function, ∑)에 의해 통합되고 활성함수(activation function, φ)에 의하여 출력값(ouput)이 결정됩니다. 퍼셉트론의 경우 전송함수값이 임계값 θ 를 넘으면 1, 그렇지 않으면 0을 출력합니다.


mb-file.php?path=2022%2F05%2F11%2FF5292_4.png
 

그래프로 나타내면 다음과 같으며, 이런 형태를 계단함수라고 합니다.


mb-file.php?path=2022%2F05%2F11%2FF5293_5.png 



2. 논리회로(Logical circuit)


논리회로(Logical circuit)는 하나 이상의 논리값(True/False)이 들어가면 논리 연산을 통해 하나의 논리값(True/False)을 얻는 전자회로를 말합니다. 컴퓨터도 논리회로를 통해 고등연산이 가능합니다. 여기서 AND, NOT, OR, XOR 등과 같은 기본이 되는 논리 연산을 논리 게이트(Logical gate)라고 합니다.


퍼셉트론 또한 하나 이상의 논리값이 입력되면 하나의 논리값이 출력되므로, 퍼셉트론을 통해 가중치와 임계값을 조절하여 논리 게이트의 표현이 가능할 것입니다.


1) AND 게이트


AND 게이트는 논리곱을 구현한 논리 게이트 입니다.


100px-AND_ANSI.svg.png


x1

x​2 

y 

0

0

0

0

1

0

1

0

0

1

1

1


가중치 w = (1, 1), 임계값 θ = 1.5로 설정한 경우 퍼셉트론의 출력값은 AND 게이트와 같습니다.

x​1

x​2

z

φ(z)

0

0

0

0

0

1

1

0

1

0

1

0

1

1

2

1



2) OR 게이트


OR 게이트는 논리합을 구현한 논리 게이트 입니다.


120px-OR_ANSI_Labelled.svg.png 


x1

x​2 

y 

0

0

0

0

1

1

1

0

1

1

1

1


가중치 w = (1, 1), 임계값 θ = 0.5로 설정한 경우 퍼셉트론의 출력값은 OR 게이트와 같습니다.

x​1

x​2

z

φ(z)

0

0

0

0

0

1

1

1

1

0

1

1

1

1

2

1


3) NAND 게이트


NAND 게이트는 negative-AND 게이트로, 모든 입력이 참일 경우에만 거짓을 출력하는 논리회로입니다.


120px-NAND_ANSI_Labelled.svg.png 


x1

x​2 

y 

0

0

1

0

1

1

1

0

1

1

1

0


가중치 w = (-1, -1), 임계값 θ = -1.5로 설정한 경우 퍼셉트론의 출력값은 NAND 게이트와 같습니다.

x​1

x​2

z

φ(z)

0

0

0

1

0

1

-1

1

1

0

-1

1

1

1

-2

0



3. 퍼셉트론의 한계


퍼셉트론은 XOR 게이트의 구현이 불가능합니다. XOR 게이트는 참 입력의 개수가 홀수인 경우에만 참을 출력하는 논리회로 입니다.


100px-XOR_ANSI.svg.png 


x1

x​2 

y 

0

0

0

0

1

1

1

0

1

1

1

0


AND, NAND, OR 게이트의 경우 아래와 같이 하나의 직선을 통해 분류가 가능합니다.

mb-file.php?path=2022%2F05%2F11%2FF5294_6.png 

mb-file.php?path=2022%2F05%2F11%2FF5296_7.png
 

그러나 XOR 게이트의 경우 하나의 직선으로 분류할 수 없습니다. 아래처럼 적어도 2개의 직선이 필요합니다.


mb-file.php?path=2022%2F05%2F11%2FF5297_8.png
 

물론 활성함수가 비선형인 경우 하나의 비선형 곡선을 통해 분류가 가능하겠지만 퍼셉트론의 경우 곡선을 표현할 수 없을뿐만 아니라 활성함수가 비선형 곡선이더라도 학습이 일어나지 않을 수도 있습니다.



4. 다층 퍼셉트론(Multi-layer perceptron, MLP)


하나의 퍼셉트론으로는 XOR 게이트를 표현할 수 없지만, NAND, OR, AND 게이트를 조합하면 XOR 게이트를 표현할 수 있습니다. 즉, 퍼셉트론을 조합하여 XOR 게이트를 표현할 수 있다는 말입니다.


254px_3gate_XOR.jpg 

x​1

x​2

​​NAND​

​ OR​

AND (XOR)

0

0

0

0

0

0

1

1

1

1

1

0

1

1

1

1

1

0

1

0


하나의 퍼셉트론의 경우 입력층(input layer)출력층(output layer)으로 구성되어 있습니다.


mb-file.php?path=2022%2F05%2F11%2FF5298_9.png


다층 퍼셉트론의 경우 입력층과 출력층 사이에 층이 추가되는데, 이를 은닉층(hidden layer)이라고 합니다.


mb-file.php?path=2022%2F05%2F11%2FF5299_10.png


은닉층이 2개 이상인 신경망을 심층 신경망(Deep Neural Networ, DNN)이라고 합니다.


F4606_8.png 

#딥러닝# 퍼셉트론# 뉴런# 계단함수# 논리회로# 논리 게이트# 다층 퍼셉트론# 심층 신경망
댓글
자동등록방지
(자동등록방지 숫자를 입력해 주세요)