[딥러닝] 퍼셉트론, 신경망

Seung Joo·2021년 8월 9일
0

퍼셉트론 (Perceptron)

퍼셉트론(Perceptron)은 프랑크 로젠블라트(Frank Rosenblatt)가 1957년에 제안한 초기 형태의 인공 신경망으로 다수의 입력으로부터 하나의 결과를 내보내는 알고리즘

퍼셉트론은 실제 뇌를 구성하는 신경 세포 뉴런의 동작과 유사한데 뉴런은 가지돌기에서 신호를 받아들이고 신호가 임계값을 넘어서는 전류가 생기면 가지면 축삭돌기를 통해서 신호를 전달

신경 세포 뉴런

이미지출처 : 딥러닝을 이용한 자연어처리 입문 퍼셉트론

퍼셉트론은 다수의 신호를 입력으로 받아 하나의 신호를 출력

이미지출처 : 딥러닝을 이용한 자연어처리 입문 퍼셉트론

xx = 입력값
WW = 가중치(weight)
yy = 출력값

실제 신경 세포 뉴런에서의 신호를 전달하는 축삭돌기의 역할퍼셉트론에서는 가중치가 대신한다.
각각의 인공 뉴런에서 보내진 입력값 xx는 각각의 가중치 WW와 함께 종착지인 인공 뉴런에 전달된다.
각 입력값에는 가중치가 존재하는데 가중치가 클수록 입력값이 중요하다는 것을 의미한다.
입력값에 가중치가 곱해져 인공 뉴런으로 보내지고, 각 입력값과 그에 해당되는 가중치의 곱의 전체 합이 임계치를 넘으면 종착지의 인공 뉴런은 출력신호로써 1을 내보내고, 그렇지 않은 경우엔 0을 출력한다.
다음과 같은 함수를 계단 함수(Step function)이라고 한다.

계단 함수 (step function)

이미지출처 : 딥러닝을 이용한 자연어처리 입문 퍼셉트론

계단 함수의 식

ifinWixiθy=1ifinWixi<θy=0if \sum_i^nW_ix_i \geq \theta \rightarrow y = 1 \\ if \sum_i^nW_ix_i < \theta \rightarrow y = 0

θ\theta = 임계값

위의 식에서 임계값을 좌변으로 넘기고 편향(bias)로 표현할수도 있다.
편향 또한 퍼셉트론의 입력으로 사용되고 보통 그림으로 표현할 때는 입력값이 1로 고정되고 편향 bb가 곱해지는 변수로 표현된다.

편향이 추가로 표현된 그림

ifinWixi+bθy=1ifinWixi+b<θy=0if \sum_i^nW_ix_i + b \geq \theta \rightarrow y = 1 \\ if \sum_i^nW_ix_i + b < \theta \rightarrow y = 0

뉴런에서 출력값을 변경시키는 함수활성화 함수(Activation Function)라고 한다.

활성화 함수 (Activation Function)

신경망에서 각 노드는 활성화 함수를 가지고 있는데 일반적으로 각 층에는 같은 종류의 활성화 함수를 가지고 있다. 실제 뉴런 세포에서 신호를 전달할지 안 할지를 결정하는 기능을 말하는데 인공신경망에서 활성화 함수는 다음 층으로 신호를 얼마나 전달할지를 결정한다.

활성화 함수의 필요 이유

활성화 함수가 사용된 이유는 인공신경망의 한계를 맞게된 첫번째 과제인 XOR 문제에서 시작되었다.
AND와 OR 문제는 해결할 수 있었지만 선형 분류기라는 한계에 의해서 XOR와 같은 비선형 문제는 해결할 수 없었다.

이미지출처 : ganghee-lee tistory

XOR와 같은 비선형 문제의 해결책으로 제시된 것이 활성화 함수이다.

활성화 함수의 다양한 종류


이외에도 다양한 종류의 활성화 함수가 존재한다.

신경망 (Neural Network)

신경망은 여러층으로 구성되는데 기본적으로 입력층(input layers), 은닉층(hidden layers), 출력층(output layers)로 나뉜다.

  • 입력층 (input layers)
    입력층은 데이터셋으로부터 입력을 받는다. 입력변수의 수와 노드의 수는 같다.
    입력층은 어떤 계산도 수행하지 않고 값들을 전달하기만 하는 특징을 가지고 있다.
    그래서 신경망의 층수(깊이)를 셀 때 입력층은 포함하지 않는다.
    결국 위의 신경망은 2층 신경망이라고 할 수 있다.

  • 은닉층 (hidden layers)
    계산이 일어나는 층이 둘 이상인 신경망을 다층신경망 이라고 부르는데 입력층과 출력층 사이에 있는 층들을 은닉층이라고 한다.
    계산의 결과를 사용자가 볼 수 없기 때문에 은닉층이라는 이름이 붙었다.
    딥러닝은 두개 이상의 은닉층을 가진 신경망 (두개 이상일 경우 부터 깊다(deep)하다 라고 한다) 입력층을 제외하고 시작하여 3개 이상의 Layer를 갖는 신경망을 의미한다.

  • 출력층 (output layers)
    신경망의 가장 오른쪽 마지막 층이 출력층이다. 출력층에는 대부분 활성화함수(activation function)이 존재하는데 활성화함수는 풀고자 하는 문제에 따라 다른 종류를 사용한다.

문제의 종류에 따른 활성화함수의 사용

  • 회귀문제에서 예측할 목표값이 실수값인 경우 활성화 함수는 필요하지 않으며 출력노드의 수는 출력변수의 갯수와 같다.

  • 이진분류 문제의 경우 시그모이드(sigmoid) 함수를 사용해서 출력을 확률 값으로 변환하여 예측하고자 하는 타겟을 결정하도록 한다.

  • 다중분류 문제의 경우 출력층의 노드가 예측하고자 하는 타겟의 갯수 만큼 존재하며 소프트맥스(softmax) 함수를 활성화 함수로 사용한다.

profile
조금씩 천천히

0개의 댓글