top of page
작성자 사진JC.kim

[Python] Machine Learning #1. Perceptron


머신러닝의 초기 모델인 Perceptron 모델에 대하여 공부해 본다.

Perceptron 모델은 뇌의 뉴런의 구조를 본따 만든 알고리즘이다. 뉴런은 뇌에서 서로 상호 연결되어 있고, 화학신호와 전기신호를 이용하여 신호를 주고 받는다. 특정신호가 시냅스에 일정이상 쌓이면 firing 을 하게 되는데 이 임계치를 '역치 ;Threshold' 라고 한다. percentron모델은 뉴런 모델에서 이러한 특정 임계값에 대한 업데이트 함수를 Heaviside step function 으로 아래와 같이 수식으로 표현하였다.

위의 z (순 입력값 ; 들어오는 자극)이 일정 역치(θ) 값을 넘기면 함수는 1을 반환한다. 그렇지 않으면 -1로 반환한다.

이 스텝 함수에는 가장 간단한 연산인 '내적' 을 이용할 것이다. input 신호가 들어와 weight 가중치와 연산하여 z 값을 만들어 낸다. input은 외부데이터 (input value) 이고 weight는 정보처리인자, 데이트를 처리하는 정보 (corresponding weight vector) 로 정의한다.

이 weight와 input data 의 내적인 activation function 'z' 는 w와 x의 선형 조합이며, (z =wx+w'x'+w''x''+…) Learning 을 통해 weight를 계속 갱신 해 나간다. weight가 계속 갱신되는 것은 해당 모델이 잘 학습되고 있다는 의미이다.

초기 Perceptron 규칙은 아래와 같이 정리할 수 있다.

1. Weight를 0 혹은 임의의 작은 숫자로 초기화한다.

2. 각각의 훈련 샘플 xⁿ 에 대해서 다음의 단계를 수행한다.

- 출력 값 y'을 계산한다.

- Weight를 업데이트한다.


<파이썬 머신러닝 Python Machine Learning 21.page 참조 >


여기서 Weight vector 에서 동시에 업데이트 되는 과정을 아래처럼 나타낼 수 있다.

Weight 를 업데이트 해주는 Δw 값은 Perceptron Learning rule 에 의해 아래와 같이 계산된다.

η는 Learning rate (0~0.1사이의 상수), y 는 모델의 실제값 y'(hat)은 모델의 예측값, x는 input data이다. 이 수식은 2차원 데이터에 대해 아래와 같이 연산된다.

이 결과값을 Perceptron이 정확히 예측하면 weight는 업데이트 되지 않는다. 그러나 실제값과 예측값 사이의 오차가 발생한다면, 이 모델은 weight를 동시에 업데이트 하게된다.


이제 파이썬을 이용하여 이 Perceptron 모델의 수식들을 코드로 표현해 볼 것이다.


<파이썬 머신러닝 Python Machine Learning 참조 >

조회수 218회댓글 1개

최근 게시물

전체 보기

1 commento


rlacksdid93
22 nov 2017

정말 유용한 정보군요 ㅎㅎ

Mi piace

bottom of page