본문 바로가기
Archive/ML & DL

[DL] Single Layer Perceptron

by 다람이도토리 2021. 6. 21.

사람의 신경망을 본따 만든 인경 신공망을 배워보기 시작하자.

(프로그래머스 Week9 - Day1 정리)
추가참고 : 밑바닥부터 시작하는 딥러닝1

신경망의 구분

- 전방 신경망 vs 순환 신경망 : 뒤로 다시 돌아갈 수도 있을까?
- 깊은 신경망 vs 얕은 신경망 : 은닉층이 얼마나 많을까?
- 결정론 신경망 vs 확률론적 신경망 : 매개변수와 조건이 동일하면 완전히 결정되는가, 아니면 분포로 답이 나와 달라질 수 있는가?(불완정성 부여)

Perceptron 이란?

입력 신호에 weight를 곱해, 학습시키는 가장 간단한 인공신경망 형태의 구조이다.
학습이 잘 되었다는 것의 의미는, 알맞은 가중치를 찾는 것을 의미한다.
이에 따라 최종 학습 값이, 임계치 이상일 경우 1을 주고, 아닐 경우 -1을 주는 것이 퍼셉트론의 가장 기본적인 원리이다

퍼셉트론의 구조

입력 : i번째 노드 : 특징 벡터의 i번째 요소, 
  - 이 때, 항상 1이 입력이 되는 편향을 부여한다.(w0, 추후 상수항 b의 역할을 할 애가 된다.)
입력과 출력사이의 연산에는 가중치를 부여하여 내적한다. (단일 층 구조)
출력 : 활성 함수에 의해 값을 넣어 수치( +1 or -1)을 출력하게 된다.

여기서 편향을 통해서, 임계 값을 0으로 조정하게 된다.

Remark. 상수항을 추가하면, 내적 형태로도 표현이 쉽게 가능하다.

그림으로 이해

퍼셉트론 문제는 s = 0 을 기준으로 하는 binary classification 역할을 하게 된다.

결정 경계는 2차원에서는 직선의 형태로, 더 높은 차원에서는 초평면(전체차원 -1) 형태로 나타나게 된다.

좌표평면 상에서는 다음과 같이 2개의 영역을 나누는 하나의 직선(결정 직선, 그림에서는 초록색 직선)을 얻을 수 있다.

목적 함수 접근

(Y는, w가 틀리는 샘플의 집합)

여기서 y_k 값은 실제 값이 된다. 예측값과 실제 값이 다를 경우 곱하면 -1이 되므로 결국 틀린거 1개 마다 1이 추가되는 함수로 목적 함수로 적합하다. 이를 최소화 하기 위해 경사하강법 등을 적용하게 된다.

델타 규칙

위의 식을 각 wi 에 대해 편미분을 적용하면, 

이를 경사 하강법에 적용한 것이, 델타규칙이다.

물론, 적절한 학습률을 찾는 과정이 중요할 것이다.

'Archive > ML & DL' 카테고리의 다른 글

[DL] Multi Layer Perceptron, Back Propagation 감잡기  (0) 2021.06.22
[DL] Pytorch Tutorial  (0) 2021.06.21
[ML/DL] 경사하강법  (0) 2021.06.09
[ML] 배치 학습 vs 온라인 학습  (0) 2021.06.03
[DS] Numpy and Pytorch 기본연산  (0) 2021.05.03