[기계학습개론] Machine learning basics-math

SUbbb·2021년 10월 24일
0

기계학습개론

목록 보기
2/10
post-thumbnail

기계학습 이해를 위한 기본 수학 개념 이해
모델 훈련 관련 주요 용어 이해

기계 학습에서 수학의 역할

선형대수: 벡터

벡터

  • 샘플을 특징 벡터로feature vector^{feature \space vector} 표현
  • 예) Iris데이터에서 꽃받침의 길이, 꽃받침의 너비, 꽃잎의 길이, 꽃잎의 너비라는 4개의 특징이 각각 5.1, 3.5, 1.4, 0.2인 샘플

  • 여러 개의 특징 벡터를 첨자로 구분

선형대수: 행렬

행렬

  • 여러 개의 벡터를 담음
  • 예) Iris데이터에 있는 150개의 샘플을 설계 행렬 X로 표현

전치행렬(Transpose)

예를 들어, A = (341052)\begin{pmatrix}3&4&1\\0&5&2\\ \end{pmatrix}라면, AT^T = (304512)\begin{pmatrix}3&0\\4&5\\1&2 \end{pmatrix}

  • Iris dataset을 전치행렬로 표현하면,

1차원 특징 공간

  • 특징: input

2차원 특징 공간

  • 특징 벡터 표기 x=(x1,x2)Tx=(x_1,x_2)^T
  • 예시
    x=(몸무게,)T,y=장타율x=(몸무게,키)^T, y=장타율
    x=(체온,두통)T,y=감기 여부x=(체온,두통)^T, y=감기\space여부

다차원 특징공간

  • 복잡한 차원에 대해서 때로는 차원의 축소가 필요할 수도 있다.

다차원 공간 -> 행렬, 텐서

  • 벡터의 배열 \rarr 행렬(matrix) 또는 2D 텐서(Tensor)
    • 텐서는 임의의 차원 개수를 가지는 행렬의 일반화된 모습 (텐서에서는 차원(dimension)을 종종 축(axis)이라고 부름)

텐서(Tensor)

  • 3D 텐서와 고차원 텐서
    • numpy에서 3D 텐서를 나타내면,

4D Tensor

  • 4D 이미지 데이터 텐서(채널 우선 표기)
    • 총 4개의 차원

선형 분리 불가능linearly nonseparable^{linearly\space non-separable}한 경우

  • (a)는 어떠한 직선으로도 분리가 불가능하다 = 선형 분리 불가능
  • (a)의 선형 분리 불가능 해결을 위해 축을 바꿈 \rarr 특징 공간 변환
  • (b)는 분리가 가능 = 선형 분리 가능

확률과 통계

기초

  • 간단한 확률실험 장치
    • 주머니에서 번호를 뽑은 다음, 번호에 따라 해당 병에서 공을 뽑고 색을 관찰함
    • 번호를 y, 공의 색을 x라는 확률변수로 표현하면 정의역은
      y{1,2,3},x{파랑,하양}y\in\{1,2,3\},x\in\{파랑,하양\}
    • 카드는 1번, 공은 하양일 확률은 P(y=1,x=하양)=P(1,하양)P(y=1, x=하양)=P(1,하양)
      \rarr 결합확률(jointprob.joint\,prob.)
    • 곱규칙: P(y,x)=P(xy)P(y)P(y,x)=P(x|y)P(y)

베이즈 정리

  • 베이즈 정리(식(2.26))
    P(y,x)=P(xy)P(y)=P(x,y)=P(yx)P(x)P(yx)=P(xy)P(y)P(x)P(y,x)=P(x|y)P(y)=P(x,y)=P(y|x)P(x)\rarr P(y|x)=\frac{P(x|y)P(y)}{P(x)}
  • 다음 질문을 식(2.27)로 쓸 수 있다.
    "하얀 공이 나왔다는 사실만 알고 어느 병에서 나왔는지 모르는데, 어느 병인지 추정하라."
    y^=arg maxyP(yx)\hat y=\displaystyle\argmax_yP(y|x) = 함수를 최대화하는 y를 찾아라(x의 범위는 주어짐)

x=input, y=output이라 가정

  • 기계학습에 적용
    • 예) Iris 데이터 분류 문제
      • 특정 벡터 x, 부류 y {setosa,versicolor,virginica}\in\{setosa,versicolor, virginica\}

정보이론

= 엔트로피 이론

  • 메시지가 지닌 정보를 수량화할 수 있나?
    • "고비 사막에 눈이 왔다"와 "대관령에 눈이 왔다"라는 두 메시지 중 어느 것이 더 많은 정보를 가지나? 고비 사막에 눈이 왔다
    • 정보이론의 기본 원리 \rarr 확률이 작을수록 많은 정보
  • 자기 정보selfinformation^{self\,information}
    • 사건(메시지)eje_j의 정보량(단위:bit) (반비례 관계를 보임)
      h(ei)=log2P(ei)h(e_i)=-log_2P(e_i) 또는 h(ei)=logeP(ei)h(e_i)=-log_eP(e_i)
  • 엔트로피
    • 확률변수 x의 불확실성을 나타내는 엔트로피
      이산확률분포
      연속확률분포
  • 자기 정보와 엔트로피 예제
    주사위의 경우가 더 낮은 확률을 가지고, 더 많은 정보량을 가진다.

최적화

최적화

  • 순수 수학 최적화와 기계학습 최적화의 차이
    • 순수 수학의 최적화 예) f(x1,x2)=(cos(x12)+sin(x22))2f(x_1,x_2)=-(cos(x_1^2)+sin(x_2^2))^2이 최저점을 찾아라.
    • 기계학습의 최적화는 단지 훈련집합이 주어지고, 훈련집합에 따라 정해지는 목적함수의 최저점을 찾아야 함 (완벽한 최저점을 찾는 것만이 목적은 아닐 수도 있고, 근사값을 찾을 수도 있다.)
      • 데이터로 미분하는 과정 필요 \rarr 오류 역전파 알고리즘
      • 주로 스토캐스틱 경사 하강법(SGD) 사용
  • 최적화를 이용한 기계학습의 문제풀이 과정
    • J(θ)J(\theta)에서 θ\theta: 학습에 필요한 모든 정보
    • arg minθJ(θ)\displaystyle\argmin_\theta J(\theta)에서 J(θ)J(\theta)가 최소가 되도록 하는 θ\theta를 찾아야 한다. \rarr 머신 러닝의 목표
    • 선형회귀: 미분을 통해 최저점을 도출
      • fθ(xi)f_\theta(x_i): 식을 통해 나온 결과값, yiy_i: 실제값

J(x)J(x)는 제곱값이므로 0보다 크다.
x^\hat x은 전역 최적해, x2x_2x4x_4는 지역 최적해

기계학습이 해야 할 일을 식으로 정의
J(θ)J(\theta)를 최소로 하는 최적해 θ^\hat\theta을 찾아라.
즉, θ^=arg minθJ(θ)\hat\theta=\displaystyle\argmin_\theta J(\theta)

기계학습이 사용하는 전형적인 탐색 알고리즘의 pseudocode

미분

미분에 의한 최적화

  • 1차 도함수 f(x)f'(x)는 함수의 기울기, 즉 값이 커지는 방향을 지시
  • 따라서, f(x)-f'(x) 방향에 목적함수의 최저점이 존재
  • 알고리즘2_3에서 dθd\thetaf(x)-f'(x)를 사용함 \larr 경사 하강 알고리즘의 핵심 원리

편미분

  • 변수가 여러 개인 함수의 미분
  • 미분값이 이루는 벡터를 Gradient라 부름
  • 예)

경사 하강 알고리즘

  • 식 (2.58)은 경사 하강법이 낮은 곳을 찾아가는 원리
    • g=dθ=Jθg=d\theta=\frac{\partial J}{\partial\theta}이고, ρ\rho는 학습률
    • 식 (2.58) θ=θρg\theta=\theta -\rho g

배치 경사 하강 알고리즘

  • 샘플의 gradient를 평균한 후 한꺼번에 갱신
    • 1번 학습에 파라미터를 1번 수정

스토캐스틱 경사 하강SGD(stochastic gradient descent)^{SGD(stochastic\space gradient\space descent)}알고리즘

  • 한 샘플의 gradient를 계산한 후 즉시 갱신
  • 라인 3~6을 한 번 반복하는 일을 한 세대라 부름 (1번 학습)

전형적인 탐색 알고리즘배치 경사 하강 알고리즘, 스토캐스틱 경사 하강 알고리즘의 차이 확인

모델 훈련

Underfitting

  • fitting이 너무 부족함
  • 차수가 적을수록 과소적합, 차수가 많아질수록 과잉적합
  • 차수가 적다 = 학습시킬 파라미터가 적다.

Overfitting

  • 12차 다항식 곡선을 채택한다면 훈련집합에 대해 거의 완벽하게 근사화함
  • 하지만 '새로운' 데이터를 예측한다면 큰 문제 발생
    • x0x_0에서 빨간 막대 근방을 예측해야 하지만 빨간 점을 예측
    • 훈련집합이 모든 데이터를 표현할 수 있는 것이 아니기 때문에 무조건 고차방정식을 사용한다고 해서 좋은 것만은 아님

검증집합

  • 훈련집합과 테스트집합과 다른 별도의 검증집합을 가진 상황
    • 훈련집합과 중복되어선 안됨

훈련집합과 검증집합의 차이를 체크하여 "overfitting"을 체크 (차이가 크면 overfitting)

모델 선택의 한계

  • SVM, Decision tree, GMM, PCA, MLP, CNN, RNN, GAN, etc.
    • 현실에서는 모델의 종류가 아주 많음
  • 현실에서는 경험으로 큰 틀 선택 (경험적 접근방법)
profile
배우고 정리하고 공유하기

0개의 댓글