220v
젝무의 개발새발
220v
전체 방문자
오늘
어제
  • 분류 전체보기 (255)
    • AI (35)
      • ML, DL 학습 (30)
      • 논문 리뷰 (4)
      • 실습 및 프로젝트 (1)
    • Algorithm (145)
      • LeetCode (13)
      • 프로그래머스 (35)
      • 백준 (96)
      • 알고리즘, 문법 정리 (1)
    • Mobile, Application (17)
      • Flutter (10)
      • iOS, MacOS (7)
    • BackEnd (7)
      • Flask (1)
      • Node.js (5)
      • Spring, JSP..etc (1)
    • Web - FrontEnd (18)
      • JavaScript, JQuery, HTML, C.. (12)
      • React (6)
    • DataBase (1)
      • MySQL (1)
      • Firebase Firestore (0)
      • Supabase (0)
    • Git (1)
    • 기타 툴 및 오류 해결 (3)
    • 강의 (5)
      • Database (3)
      • 암호학 (2)
      • 알고리즘 (0)
    • 후기와 회고 (2)
    • 블로그 꾸미기 (1)
    • 일상과 이것저것 (20)
      • 맛집 (12)
      • 세상사는일 (4)
      • 도서리뷰 (1)
      • 이런저런 생각들 (잡글) (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • simulation
  • 위상 정렬
  • IMPLEMENT
  • disjoint set
  • two pointer
  • Minimum Spanning Tree
  • Prefix Sum
  • 오블완
  • binary search
  • brute-Force
  • dfs
  • bitmasking
  • union-find
  • Priority Queue
  • Greedy
  • 백준
  • dp
  • Dynamic Programming
  • Backtracking
  • REACT
  • 구현
  • topological sort
  • 티스토리챌린지
  • 프로그래머스
  • Lis
  • top-down
  • BFS
  • Mathematics
  • implementation
  • 다익스트라

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
220v

젝무의 개발새발

AI/ML, DL 학습

[ML/DL 스터디] <Classification - 1> Perceptron

2024. 9. 1. 01:00

Reference

https://iai.postech.ac.kr/teaching/machine-learning
https://iai.postech.ac.kr/teaching/deep-learning
위 링크의 강의 내용에 기반하여 중요하거나 이해가 어려웠던 부분들을 정리하여 작성하였고,
모든 강의 슬라이드의 인용은 저작권자의 허가를 받았습니다.

또한, 모든 내용은 아래 Notion에서 더 편하게 확인하실 수 있습니다.
>>노션 링크<<

 

Keywords

  • Perceptron
  • signed distance

 

Signed Distance

(앞에서의 perceptron의 기본적인 개요에 대해서는 생략.)

⇒ discrete한 값의 y에서의 Classification.

boundary를 찾기 위한 여정.

평면 상에서 $\vec\omega$가 위의 이유로 직선에 대한 법선벡터(orthogonal함)임을 확인할 수 있다.

 

 

그리고 위의 두 식을 통해, 원점으로부터 직선의 거리 $d$ 와 직선으로부터 임의의 한 점까지의 거리 $h$ 에 대한 $\omega$ 로 나타낸 식을 구할 수 있다.

(앞의 pdf에서는 $x$가 직선 위의 임의의 한 점, 뒤의 pdf에서는 원점→평면 상의 임의의 점인 벡터 $\vec x$를 정의하고 계산. 식을 보면 어렵지 않게 이해할 수 있을 것.)

 

Perceptron에서 갑자기 $g(x)=0$ 직선에서부터의 signed distance(부호가 있는 거리)에 대해 다루는 이유. ⇒ 직선 $g(x)=0$을 통해 평면을 binary classify한 결과가 됨!

Perceptron에서 이러한 것을 갑자기 다루었던 것은, 기하학적으로 쉽게 이해하기 위함.

$\vec\omega$의 방향에 따라, 같은 방향 평면쪽의 모든 점에 대해 $g(x)>0, h>0$ 이며,
반대 방향 평면 쪽의 모든 점에 대해 $g(x) < 0, h<0$ 이다.
(이는 w와 inner product(내적)했을 때 사이각이 90도 미만이면 양수, 90도 초과 180도 미만이면 음수이기 때문임을 직관적으로 이해할 수 있다.)

결국 $g(x) = \omega^Tx = 0$ 이라는 직선이 전체 평면을 둘로 나누는 binary classification boundary가 된다.

 

따라서 특정 $x$ (input)에 대해, $g(\omega^Tx)$ 의 부호를 계산하면 그 input에 대한 class를 결정할 수 있게 되는 것이다.

 

Perceptron

앞의 기반들을 알고 나서, Perceptron에서 어떻게 parameter(weights, $\omega$)를 찾을 것인가에 대한 문제를 확인할 수 있다.

  • perceptron 함수 $h(x) = sign(\omega^Tx)$ 를 정의하고,
  • 모든 training data에 대해 이 함수를 적용한 후,
  • prediction의 결과 class와 output의 실제 class가 다르다면,
  • $\omega ← \omega + y_nx_n$을 통해 weight를 업데이트한다.

 

* 데이터가 선형 분리 가능할 경우, 이 규칙을 사용하면 Perceptron이 유한한 횟수의 업데이트 후에 수렴함이 수학적으로 증명되어 있다.

여기서 왜 $\omega ← \omega + y_nx_n$라는 뜬금없는 식을 통해 weight을 업데이트하는 지에 대해서는 PDF 아래쪽의 그림을 보면 대략 이해할 수 있다.

왼쪽의 그림에서 기존의 $\mathbf w$를 기준으로 직선을 상상해 보면, $\mathbf x$는 직선 반대쪽에 있으므로 $y=-1$로 misclassified된 것이다.

그렇기 때문에 파란색의 새로운 벡터로 갱신하여 다시 그 벡터를 기준으로 직교하는 직선을 상상해 보면, x가 같은 방향에 존재하여 $y=+1$로 잘 classify되는 것을 확인할 수 있다.

 

위의 로직을 수행하면, 적어도 weight을 갱신한 해당 data point에 대해서는 항상 perceptron이 잘 동작(잘 분류)한다.

이 과정을 misclassify되는 data point가 존재하지 않을 때까지 weight을 갱신시켜 나가며 반복하는 것이 Perceptron Algorithm이다.

식을 보면 결국 이는 perceptron의 loss function에 대한 음수 방향으로 가중치를 조정하는 간단한 경우의 gradient descent라고 볼 수 있다.

 

    'AI/ML, DL 학습' 카테고리의 다른 글
    • [ML/DL 스터디] <Classification - 3> Logisitic Regression, Kernel
    • [ML/DL 스터디] <Classification - 2> Support Vector Machine (SVM)
    • [ML/DL 스터디] <Regression - 3> Overfitting, Regularization
    • [ML/DL 스터디] <Regression - 2> Nonlinear Regression, Functional Approximation
    220v
    220v
    DGU CSE 20 / Apple Developer Academy @ POSTECH 2nd Jr.Learner.

    티스토리툴바