머신러닝/딥러닝

퍼셉트론(Perceptron)

yc7764 2022. 12. 7. 14:36

퍼셉트론(Perceptron)이란?

신경 세포 뉴런(Neuron)의 그림

  • 1957년에 프랑크 로젠블라트(Frank Rosenblatt)가 제안한 초기 형태의 인공 신경망
  • 실제 사람의 뇌를 구성하는 신경 세포 뉴런(Neuron)을 모방한 다수의 입력으로부터 하나의 결과를 내보내는 알고리즘
  • 퍼셉트론은 단층 퍼셉트론과 다층 퍼셉트론으로 나누어짐

퍼셉트론(Perceptron)의 그림

  • x는 입력값, w는 가중치(Weight), y는 출력값을 의미하고 파란색 원은 인공 뉴런에 해당
  • 각 입력값에는 가중치가 존재하며, 가중치의 값이 크면 클수록 해당 입력값이 중요하다는 것을 의미

계단 함수의 예시와 계단 함수의 수식

  • 각 입력값이 가중치와 곱해져 인공 뉴런에 보내지고, 곱해진 값들의 전체 합이 임계치(Threshold)를 넘으면 종착지에 있는 인공 뉴런은 출력 신호로 1을 출력하고, 넘지 않으면 0을 출력
  • 계단 함수에 사용된 임계치 값을 수식으로 표현할 때는 보통 세타(Θ)로 표현
  • 계단 함수의 수식에서 임계치를 좌변으로 넘기고 편향 b(Bias)로 표현하기도 함
  • 위의 계단함수처럼 뉴런에서 출력값을 변경시키는 함수를 활성화 함수(Activation Function)라고 함

단층 퍼셉트론(Single-Layer Perceptron)

  • 단층 퍼셉트론은 값을 보내는 단계와 값을 받아서 출력하는 두 단계로 이루어짐
  • 이때, 각 단계를 층(Layer)라고 하며 값을 보내는 층을 입력층(Input Layer), 값을 받아서 출력하는 층을 출력층(Output Layer)라고 함
  • AND, NAND, OR 게이트를 구현할 수 있지만 XOR 게이트를 구현할 수 없다는 단점이 있음.
    • 컴퓨터는 두 개의 값 0과 1을 입력해 하나의 값을 출력하는 회로가 모여 만들어짐
    • 이런 회로를 게이트라고 하며 간단한 XOR 게이트조차 구현할 수 없는 부족한 신경망이라는 지적을 받음

AND 게이트의 구현

  • 출력값 0을 하얀색 점, 1을 검은색 점으로 표현
  • 직선을 기준으로 나누게 되면 AND 게이트를 구현할 수 있음

OR 게이트와 NAND 게이트의 구현

  • AND 게이트와 마찬가지로 직선을 이용해 OR 게이트와 NAND 게이트의 구현이 가능

XOR 게이트 구현 시 발생하는 문제

  • 위의 그림에서 볼 수 있듯이 하얀색 원과 검은색 원을 직선 하나로 나누는 것이 불가능하기 때문에 단층 퍼셉트론으로는 XOR 게이트를 구현할 수 없음

다층 퍼셉트론(MultiLayer Perceptron, MLP)

  • 단층 퍼셉트론은 입력층과 출력층만 존재하지만, 다층 퍼셉트론은 중간에 은닉층(Hidden Layer)가 추가됨
  • 위의 그림처럼 XOR 문제나 기타 복잡한 문제를 해결하기 위해 중간에 수많은 은닉층을 추가할 수 있음
  • 은닉층과 뉴런의 수는 사용자가 설정할 수 있음

  • 은닉층이 2개 이상인 신경망을 심층 신경망(Deep Neural Network, DNN)이라고 함
  • 기계가 적절한 가중치를 스스로 찾아내도록 자동화하는 것이 훈련(Training), 학습(Learning)이라고 함
  • 손실 함수(Loss Function)옵티마이저(Optimizer)를 사용해 훈련과 학습을 진행함
  • 학습을 시키는 인공 신경망이 심층 신경망일 경우에는 이를 심층 신경망을 학습시킨다고 하여, 딥 러닝(Deep Learning)이라고 함.

참고사이트

https://wikidocs.net/24958

 

07-01 퍼셉트론(Perceptron)

인공 신경망은 수많은 머신 러닝 방법 중 하나입니다. 하지만 최근 인공 신경망을 복잡하게 쌓아 올린 딥 러닝이 다른 머신 러닝 방법들을 뛰어넘는 성능을 보여주는 사례가 늘면서, …

wikidocs.net