머신러닝/딥러닝
퍼셉트론(Perceptron)
yc7764
2022. 12. 7. 14:36
퍼셉트론(Perceptron)이란?
- 1957년에 프랑크 로젠블라트(Frank Rosenblatt)가 제안한 초기 형태의 인공 신경망
- 실제 사람의 뇌를 구성하는 신경 세포 뉴런(Neuron)을 모방한 다수의 입력으로부터 하나의 결과를 내보내는 알고리즘
- 퍼셉트론은 단층 퍼셉트론과 다층 퍼셉트론으로 나누어짐
- 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 게이트조차 구현할 수 없는 부족한 신경망이라는 지적을 받음
- 출력값 0을 하얀색 점, 1을 검은색 점으로 표현
- 직선을 기준으로 나누게 되면 AND 게이트를 구현할 수 있음
- AND 게이트와 마찬가지로 직선을 이용해 OR 게이트와 NAND 게이트의 구현이 가능
- 위의 그림에서 볼 수 있듯이 하얀색 원과 검은색 원을 직선 하나로 나누는 것이 불가능하기 때문에 단층 퍼셉트론으로는 XOR 게이트를 구현할 수 없음
다층 퍼셉트론(MultiLayer Perceptron, MLP)
- 단층 퍼셉트론은 입력층과 출력층만 존재하지만, 다층 퍼셉트론은 중간에 은닉층(Hidden Layer)가 추가됨
- 위의 그림처럼 XOR 문제나 기타 복잡한 문제를 해결하기 위해 중간에 수많은 은닉층을 추가할 수 있음
- 은닉층과 뉴런의 수는 사용자가 설정할 수 있음
- 은닉층이 2개 이상인 신경망을 심층 신경망(Deep Neural Network, DNN)이라고 함
- 기계가 적절한 가중치를 스스로 찾아내도록 자동화하는 것이 훈련(Training), 학습(Learning)이라고 함
- 손실 함수(Loss Function)과 옵티마이저(Optimizer)를 사용해 훈련과 학습을 진행함
- 학습을 시키는 인공 신경망이 심층 신경망일 경우에는 이를 심층 신경망을 학습시킨다고 하여, 딥 러닝(Deep Learning)이라고 함.
참고사이트
07-01 퍼셉트론(Perceptron)
인공 신경망은 수많은 머신 러닝 방법 중 하나입니다. 하지만 최근 인공 신경망을 복잡하게 쌓아 올린 딥 러닝이 다른 머신 러닝 방법들을 뛰어넘는 성능을 보여주는 사례가 늘면서, …
wikidocs.net