본문 바로가기
ML | DL/머신러닝 이론|실습

[머신러닝] 퍼셉트론과 아달린 (feat. 경사하강법)

by Leeys 2020. 10. 28.
반응형

* 제가 이해한 내용을 적어 틀린 내용이 있을 수 있으니 지적 해주세요!!

 

 

퍼셉트론(Perceptron) 이란?

 

- 인간의 뉴런 구조를 따라한 학습모델

 

퍼셉트론 다이어그램 출처 : https://www.oreilly.com/library/view/deep-learning-for/9781788295628/33d24719-7e83-41c1-983e-59310eacdd50.xhtml

1이라는 편향 값을 가진 퍼셉트론 이다.

입력값(x)과 가중치(w) 서로 곱하고 더한값이 weighted sum이다

결정 함수(여기선 계단함수)는 임계값(𝜃)을 기준으로 그 이상일 때 클래스1로, 아 닐 때 클래스 -1로 예측한다.

 

퍼셉트론을 순서대로 설명하자면

 

1. 가중치를 초기화 하고 학습률을 정해준다.

2. weighted sum을 진행한다.

3. 계단함수에서 일정 임계값을 기준으로 0과 1 클래스를 예측한다

4. 만약 예측할 값이 0이였는데 1을 예측했다면 x값에 비례한 가중치를 업데이트 한다.

5. 위 내용 2번부터 반복

 

그리고 퍼셉트론은 두 클래스가 선형적으로 구분되고 학습률이 충분히 작을 때만 수렴한다.

즉 비선형인 것은 예측할수 없다는 것!

 

적응형 선형 뉴런(아달린)

 

아달린이 퍼셉트론과 거의 비슷하지만 다른 점은 weighted sum과 계단함수 사이에

활성화 함수가 들어갔다는 점이다.

선형 활성화 함수와 임계 함수 사이에서 가중치를 업데이트 한다.

 

위에 퍼셉트론이 예측값과 진짜 예측값을 비교해서 가중치를 업데이트 했다면

아달린은 활성화 함수에서 나온값과 진짜 예측값을 비교한다.

그리고 그 오차를 비용함수라 불른다.

 

여기서 사용하는게 경사하강법 이다.

비용함수값이 최소가 되게 하는 w와 b(y = ax + b)를 찾아야 하는 것이다.

즉, 실제값과 예측값의 차이를 최소화 시키도록 반복 한다.

 

경사하강법에는 학습률도 중요하다. 학습률이 0.0001 처럼 낮으면 전역최솟값을 찾는데 오래 걸릴것이고

1 으로 설정하면 양옆으로 값이 튀면서 전역최솟값을 영원히 찾지 못할수도 있다..

 

경사하강법 종류

 

경사하강법(GD): 모든 데이터를 보고 오류 수정 

확률적 경사하강법(SGD): 하나의 데이터를 볼 때마다 오류 수정 

미니배치 경사하강법(MBGD): 한 챕터(batch)를 보고 오류 수정 - 제일 많이 씀

 

반응형

댓글