컴퓨터 공학 분야 별 지식/딥러닝 및 머신러닝

[AI, 딥러닝] 딥러닝을 위한 퍼셉트론 정리(단층 퍼셉트론, 다층 퍼셉트론MLP)

N돌핀 2022. 7. 13. 00:48

이번 포스팅에선 딥러닝을 공부할 때 필요한 지식인 퍼셉트론, 그리고 이를 통해 만들어진 단층 퍼셉트론과 다층 퍼셉트론에 대해 알아보겠습니다.

 

딥러닝

손실함수와 옵티마이저를 이용하여 기계가 가중치를 찾아내도록 자동화시키는데 학습을 시키는 인공 신경망이 심층 신경망인 것을 말합니다

손실함수와 옵티마이저는 따로 알아보도록 하고 여기서는 뒤의 내용이 무슨 뜻인지 알아보겠습니다.

퍼셉트론

Frank Rosenblatt가 1957년 제안한 초기 형태의 인공 신경망

  • 다수의 입력으로부터 하나의 결과를 내보내는 알고리즘으로 퍼셉트론은 w0, x0 바이어스와 w1, w2의 가중치를 계속 변경하는 심층 신경망의 기본이 된다.
  • 퍼셉트론은 뇌에서 뉴런과 비슷한 역할이다.

인공 신경망의 작동원리

  1. 각 입력값(x)가 가중치(w)와 곱해져서 인공 뉴런에 보내진다
  2. 각 입력값과 그에 해당되는 가중치의 곱의 전체 합계가 임계치(threshold)를 넘으면 종착지에 있는 인공 뉴런은 출력 신호로서 1을 출력하고, 그렇지 않을 경우에는 0을 출력한다. (계단 함수)
  • 퍼셉트론의 활성화 함수는 계단 함수이다.

단층퍼셉트론(논리게이트): 매컬리-피츠의 신경회로망

단층 퍼셉트론은 값을 보내는 단계와 값을 받아서 출력하는 두 단계로 구성되어 있음

  • layer: 각 단계
  • input layer: 입력층
  • output layer: 출력층

💡 퍼셉트론은 논리게이트로 쉽게 표현이 가능하다. 예를들어 두개의 입력을 받는 and게이트는

w1, w2, 세타(계단함수 임계치) 를 0.5, 0.5, 0.7로 표현이 가능하다. EX): x1 = 1, x2 = 0라면 10.5 + 00.5 = 0.5 < 0.7

 

단층 퍼셉트론 설명

여러개의 입력에 대해 하나의 값을 출력

입력 x에 결합 가중치 Wi를 곱한 값의 합이 임계치(파라미터)보다 크면 1출력, 작으면 0출력

논리연산 표현 가능

학습을 통한 파라미터 결정 방법

학습 표본과 그에 대한 정답 신호를 세트로 하여 학습(지도 학습)

출력값과 정답 신호 사이의 오차를 수정해 나가는 학습방법(오차 수정학습)

  • 오차수정학습식: wi = wi + A(r-y) xi

A는 업데이트 결정 파라미터, A를 크게 설정하면 오차가 크게 반영됨.

r은 정답신호, y는 출력

오차 수정 학습식을 통해서 w를 지속적으로 업데이트해줄 수 있다.

단층 퍼셉트론의 장단점

장점

  • 오차 수정 학습을 사용
  • 자동으로 파라미터 값을 얻음

단점

  • 선형분리(직선 한개로 나누기) 가능한 문제만 해결가능
  • XOR와 같은 비선형은 불가능

단층 퍼셉트론과 델타규칙

단층 퍼셉트론은 델타 규칙을 이용해 가중치값을 학습하고 결정

  • 델타 규칙: 경사하강법 원리를 이용해 손실함수를 최소화하는 가중치값을 찾는 학습
  • w의 변화량의 정도를 결정하는 것은 학습률인데 여기서 학습률이 작을 수록 변화량이 작아져서 느리게 찾지만 더 정확한 값을 도출 가능하다

아달라인(Adaline)과 경사하강법

  1. 기존의 퍼셉트론에서는 활성 함수가 출력값과 임계값을 비교해 결과에 따른 값을 반환
  2. 가중치의 업데이트는 위의 반환값과, 트레이닝 데이터의 실제 결과값이 같은지 다른지에 따라 이루어진다.
  • 아달라인에서는 활성 함수가 단순 비교가 아니라 출력값과 실제 결과값 자체의 오차가 최소가 되도록 하는 함수

최소 제곱법을 이용한 비용함수가 최소가 되도록 가중치를 업데이트 하는 것이 핵심

아달라인은 정리하자면 출력값이 나오면 해당 예측값을 바로 실제값과 차이를 제고 이를 경사하강법으로 가중치 업데이트하는 것

단층 퍼셉트론의 한계

단층 퍼셉트론은 XOR같은 비선형적인 경계를 표현하는 데 한계가 있다

이로 인해 인공지능에 관한 연구는 1969~1986까지 암흑기를 겪는다


다층 퍼셉트론(MLP)

  • 단층 퍼셉트론의 한계 (비선형적인 문제 해결 못함)를 극복하기 위해 나옴
  • 입력층과 출력층 사이에 은닉층(hidden layer)를 두면 좀 더 복잡한 문제를 해결 가능

활성화 함수

다음 입력값으로 넘어갈 때 선형식으로 전파된다면 은닉층이 여러개 있나 하나 있나 차이가 없어서 출력층의 결괏값을 비선형으로 변환시켜줄 장치인 활성화 함수 탄생

  • Sigmoid : 양 끝에서 기울기가 0에 수렴하고 출력범위가 0~1 기울기 소실(Vanishing Gradient)문제 발생
  • Tanh: 양 끝에서 기울기가 0에 수렴하고 출력범위가 -1~1, Sigmoid함수의 문제점인 기울기 소실(Vanishing Gradient)문제를 가지고 있다
  • ReLU: 0보다 작은 구간에서는 기울기가 0, 0보다 큰 구간에서는 일정한 기울기

sigmoid문제점에 대한 자세한 설명 :

https://wikidocs.net/24987

 

02) 인공 신경망(Artificial Neural Network) 훑어보기

인공 신경망에 대한 기본적인 내용들을 정리합니다. ##**1. 피드 포워드 신경망(Feed-Forward Neural Network, FFNN)** ![](https ...

wikidocs.net

https://medium.com/@kmkgabia/ml-sigmoid-%EB%8C%80%EC%8B%A0-relu-%EC%83%81%ED%99%A9%EC%97%90-%EB%A7%9E%EB%8A%94-%ED%99%9C%EC%84%B1%ED%99%94-%ED%95%A8%EC%88%98-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0-c65f620ad6fd

 

ML — Sigmoid 대신 ReLU? 상황에 맞는 활성화 함수 사용하기

Sigmoid의 한계

medium.com

참고: 파이썬을 활용한 데이터 AI분석 (건강 보험 심사 평가원)