Machine Learning:Perceptron

aiden·2022년 10월 28일
0

Machine Learning

목록 보기
3/5
post-custom-banner

Perceptron 알고리즘

📌What is a perceptron?

퍼셉트론이란 프랑크 로젠블라트가 1957년 고안한 알고리즘으로, 신경망(딥러닝)의 기원이 되는 알고리즘이다.
퍼셉트론은 다수의 신호를 입력으로 받아 하나의 신호를 출력한다. 이 신호는 0또는 1의 값을 갖는다. 신호가 흐르면 1, 흐르지 않으면 0으로 표현한다.

perceptron

입력으로 두개의 신호를 받는 단일 퍼셉트론을 예로 들어보자. 입력신호 x1, x2, 출력신호 y, 가중치 w1, w2로 표현한다. 각 신호는 뉴런/노드로 나타내어진다. 입력 신호가 뉴런에 보내질 때는 각각 신호에 가중치가 곱해진다. 이렇게 뉴런에서 보낸 신호의 총 합이 임계값 세타를 넘어설 때에 1을 출력신호로 내보낸다. 이를 뉴런이 활성화된다고 표현한다. 가중치는 각 신호가 결과에 주는 영향력을 조절하는 역할을 한다.

📌가중치 weight와 편향 bias

위의 식에서 세타를 -b로 치환하여 표기를 바꾼다. w1, w2는 가중치이고 b는 편향이다. 편향과 가중치의 역할에 대해 알아 둘 필요가 있다. 가중치는 위에서 말한 대로 각 입력 신호가 결과에 주는 영향력이 다름을 나타내고, 편향은 뉴런이 얼마나 쉽게 활성화되는지를 나타낸다. 뉴런이 활성화된다는 것은 결과로 1을 출력한다는 의미이며, 편향이 클수록 활쉽게 활성화될 것이다.

📌다층 퍼셉트론

퍼셉트론으로 AND, NAND, OR의 세 논리회로를 구현할 수 있다.(구현 실습은 이후 게시하겠다.)
배타적 논리합인 XOR는 어떨까?
지금까지 알아본 퍼셉트론으로는 이 XOR 게이트를 구현할 수가 없다. 직선 하나로 0을 출력하는 영역과 1을 출력하는 영역을 나눌 수가 없기 때문이다. 즉 선형 범위로 영역을 묶을 수가 없다는 것이다.

이 문제는 다층 퍼셉트론을 이용해 해결할 수 있다. 비선형 영역을 나누는 것이 가능하다.
다층 퍼셉트론은 단층 퍼셉트론에서 층을 늘려 여러 층을 가진 구조이며 단층 퍼셉트론으로는 표현할 수 없었던 것을 구현해낼 수 있다.

MultiLayerPerceptron

층을 세는 기준을 가중치를 갖는 층으로 하여, 위의 퍼셉트론을 2층 퍼셉트론으로 한다. 왼쪽부터 0층, 1층, 2층으로 센다.

이 퍼셉트론에서 신호는 아래와 같이 전달된다.

0층의 뉴런이 입력 신호를 받아 1층의 뉴런으로 신호를 전송.
1층의 뉴런이 2층의 뉴런으로 신호 전송.
2층의 뉴런은 이 입력 신호를 바탕으로 y 출력.

이번 2장에서 실습과 여러 수식들을 생략했지만, 모두 구현해보았고 나중에 시간이 있으면 추가할 예정이다.

다음은 3장 신경망을 공부하겠다.

profile
파인애플 좋아하세요?
post-custom-banner

0개의 댓글