딥러닝 기초 - [1] 퍼셉트론 개념
퍼셉트론
인공신경망(ANN)
퍼셉트론에 대해 논하기 전에 간단히 신경망의 정의를 아는 것이 좋다. 신경망에 대한 설명을 위키백과에서 살펴보자면 다음과 같다.
신경망(neural network)는 신경회로 또는 신경의 망이다. 즉, 이 정의에 따르면 생물학적 신경망과 인공지능에서 사용되는 인공 신경망으로 분리될 수 있다. 여기서 우리가 다루는 개념은 ANN(Artificial Neural Network)인 인공신경망이다.
인공 신경망은 좁은 의미에서 다층 퍼셉트론을 가리키긴 하지만 이에 국한되는 개념은 아니다.
퍼셉트론이란
퍼셉트론은 인공신경망을 이야기 할 때 나오는 개념이고 인간의 뉴런을 보고 착안하여 나오게 된 개념이다.퍼셉트론은 single layer neural network라고도 불리는데 즉, 단층 신경망이다. 퍼셉트론은 인공신경망의 기본 단위로 사용된다
이 퍼셉트론을 여러개 이상 쌓아서 사용하게 되면 이것을 MLP(Multi Layer Perceptron)라고 하는데, 사람들이 말하는 Neural networks가 바로 이 MLP를 가리킨다.
Nueral Nets은 Deep Nets, Deep Learning인데 단순히 이름을 바꾼 것 뿐이다. AI 혹한기의 여파로 nerual nets만 넣어도 사람들이 부정적인 반응을 보여 명칭을 다르게 작성해보았던 것이다. 게다가 지금의 딥러닝은 꼭 생물학적인 신경에서 영감을 받은 것이 아니라, layer를 여러겹 쌓아 간단한 개념으로 복잡한 문제를 해결한다는 일반적인 원칙에 가깝다.
퍼셉트론의 역할은 “이진(binary) 분류 작업에 사용할 수 있는 선형 분리기”라고 설명할 수 있다. input layer 하나와 output layer 하나로 이루어져 있는 가장 단순한 구조의 신경망이다. 퍼셉트론은 입력을 받아 특징을 인식하여 출력하는데 출력은 0 또는 1만 가능하다. 그래서 퍼셉트론을 선형 분리기라고 한다.
퍼셉트론의 구성
퍼셉트론은 다음 4가지로 구성된다.
- 입력값 또는 하나의 입력 레이어
- Weights, bias
- Weighted sum (Net sum)
- Activation Function
퍼셉트론의 조금 더 디테일 한 이미지는 다음과 같다.
퍼셉트론의 동작
퍼셉트론은 다음과 같은 간단한 순서로 작동한다.
[1] 모든 입력 x에 각 weight w를 곱한다. 이것을 k라고 한다.
그리고 그림에는 bias가 생략되어 있지만 x위치에 상수값 1을 작성하고 w위치에 b를 작성하여 1에 bias를 곱하는 형태로 표현할 수 있다.
[2] 곱해진 값들을 모두 더한다. 이를 weigthed sum이라고 한다.
[3] 해당 weigthed sum을 올바른 activation function에 적용한다.
weights와 bias는 왜 필요한가?
가중치는 특정 노드의 강도를 나타낸다. 바이어스 값을 사용하면 활성화 함수 곡선을 위 또는 아래로 이동시킬 수 있다.
activation function의 사용처
activation fucntion는 인공뉴런 노드의 출력값을 결정하는 함수이다. activation function은 “일정치 이상이 되는 기준”으로 사용되는데, weigthed sum값이 activation function으로 들어가면 activation function이 0 또는 1의 값을 출력하게 된다. 여기서 값이 0 또는 1로 결정되는 기준이 activation function에 따라 상이하다.
activation function의 종류는 step function, sigmoid, softmax, TanH, ReLU 등 매우 많다. 이에 대한 것은 다음에 알아보자.
활성화 함수가 필요한 이유는 무엇인가?
간단히 말해, 활성화 함수는 (0, 1) 또는 (-1, 1)과 같은 필수 값 사이에 입력을 매핑하는 데 사용된다.
퍼셉트론은 언제 사용하나?
퍼셉트론은 일반적으로 데이터를 두 부분으로 분류하는데 사용된다. 그래서 선형 이진 분류기라고도 불린다.
출처
- https://towardsdatascience.com/what-the-hell-is-perceptron-626217814f53
- https://towardsdatascience.com/what-is-a-perceptron-basics-of-neural-networks-c4cfea20c590
- https://ko.wikipedia.org/wiki/%EC%8B%A0%EA%B2%BD%EB%A7%9D
- https://ko.wikipedia.org/wiki/%EC%9D%B8%EA%B3%B5_%EC%8B%A0%EA%B2%BD%EB%A7%9D
- https://supermemi.tistory.com/entry/Chapter-1-%EC%8B%A0%EA%B2%BD%EB%A7%9D-%EC%9E%85%EB%AC%B8Neural-network-1
- https://www.youtube.com/watch?v=n7DNueHGkqE&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm&index=23
- https://89douner.tistory.com/22