인공지능 데브코스 6기

[인공지능 데브코스 TIL] 0921 Deep Learning: 신경망의 기초 - 기계학습

비쵸비쵸비 2023. 9. 28. 23:32
728x90

📌프로그래머스 인공지능 데브코스 5주차 강의


기계학습

  • 기계학습이란?
    • 프로그램(기계)이 특정 작업을 수행하며 그 성능을 평가했을 때 경험을 따라 성능이 개선된다면 이 프로그램은 학습을 하는 것이다.
  • 기계학습의 훈련
    • 주어진 문제인 예측을 가장 정확하게 할 수 있는 최적의 매개변수를 찾는 작업
    • 훈련이 끝나면 추론(inference)을 통해 새로운 특징에 대응되는 값을 예측하고자 한다.
  • 기계학습의 궁극적인 목표
    • 훈련하지 않은 데이터에 대한 일반화
  • 기계학습의 필수 요소
    • 데이터의 존재하고, 데이터의 규칙이 존재하며, 그 규칙이 수학적으로 설명 불가능해야한다. (수학적으로 설명이 가능하다면 모델링을 하면 된다.)

특징 공간

  • 데이터는 특징 공간 상에 존재한다.
    • 우리는 그 공간에 있는 데이터의 위치의 규칙을 찾고자 한다.
  • 차원의 저주
    • 차원이 높아지면 데이터의 분포가 sparse해진다.
    • 차원이 높아질수록 지수적으로 많은 데이터가 필요하다.
    • 예를 들어 MNIST는 28*28 픽셀로, 흑백이라면 가능한 총 샘플 수는 $2^{784}$개이지만, 데이터의 개수는 고만 6만 개이다.
  • 표현 문제(representations matter)
    • 같은 데이터라도 다른 특징 공간에 데이터를 projection하면 더 쉽게 문제를 해결할 수 있다.
    • 좋은 특징 공간을 자동으로 찾는 작업을 표현학습(representation learning)이라고 한다.
  • 심층학습(deep learning)
    • 표현학습 중 하나로, 신경망을 이용하여 최적의 계층적인 특징을 학습한다.

데이터

  • 주사위를 던져 나오는 눈의 합을 구하는 문제처럼 데이터 생성과정을 완전히 아는 경우, 우리는 새로운 데이터를 생성할 수 있다.
  • 그러나 실제 기계학습 문제에서는 데이터 생성 과정을 알 수 없고, 훈련집합으로 내재된 규칙을 학습하여 가설모델을 만들어 추정만 할 수 있을 뿐이다.
  • 데이터의 양과 질은 모델의 성능에 중요하다.
    • 차원의 저주 관점에서, 우리는 아주 많은 데이터가 필요하다. 어떻게 적은 양의 데이터로 높은 성능을 달성할 수 있을까?
      • data sparsity: 방대한 공간에서 실제 데이터가 발생하는 곳을 매우 작은 부분이다.
      • manifold assumption(매니폴드 가정): 고차원의 sparse한 데이터를 저차원으로 (고차원의 데이터 규칙이 저차원에서도 유지되도록) projection하여 보는 방법

간단한 기계학습의 예

  • 선형 회귀(linear regression)
    • 직선 모델을 사용하여 가설을 설명한다.
    • cf) 회귀: 결과 값이 연속, 분류: 결과 값이 불연속
  • 목적함수(objection function), 비용함수(cost function)
    • 선형 회귀를 위한 목적함수: MSE(mean squared error)
    • $J(\theta) = \frac{1}{n}\sum_{i=1}^{n}(f_\theta(x_i)-y_i)^2$ ($f_\theta(x_i)$는 예측값, $y_i$는 정답값)
    • 모든 sample에 대해 오차 $f_\theta(x_i)-y_i$를 구한 뒤 평균을 낸다.
  • 기계학습이 하는 일
    • 파라미터를 변화시키며 MSE가 가장 작아지도록 최적화한다.
    • $\hat{\theta} = argmin_{\theta}J(\theta)$
  • 교사학습의 경우
    • UNKNOWN target distribution $P(y|\bf x)$: x와 y의 연관 관계
    • UNKNOWN input distribution $P(\bf x)$: 데이터 자체가 생성되는 원리, 실제 x의 분포
    • training sample $(\bf x_1,y_1),(\bf x_2,y_2), ...,(\bf x_N,y_N)$: 우리는 이 sample data를 통해 target distribution을 예측하고자 한다.
    • error measure: object function
    • learning algorithm를 통해 error를 줄이도록 최적화한다.

모델 선택

Underfitting and Overfitting

  • underfitting
    • 모델의 용량(자유도)이 작아 오차가 클 수 밖에 없는 현상
    • 파라미터 수의 부족이 원인
  • overfitting
    • 모델의 용량이 커서 훈련 집합에 대해 거의 완벽하게 근사화할 수 있다.
      • 학습 과정에서 잡음까지 수용하는 문제
      • 일반화가 잘 안된다.
    • 새로운 데이터를 예측하는 경우 높은 차원으로 인해 실제 값과 많이 떨어진 예측을 할 수 있다.
  • underfitting vs overfitting
    • train set, test set 모두 낮은 성능 → underfitting
    • train set에 대해서는 높은 성능, test set에 대해서는 낮은 성능 → overfitting
    • train set에 대해서 용량이 너무 큰 경우보단 낮은 성능, test set에서는 높은 성능 → 적절!
  • bias variance trade off
    • 용량이 작은 모델은 편향이 크고 분산이 작다.
      • 모델의 모양이 분포를 충분히 설명할 수 없어 항상 어느정도의 error가 있음, 그러나 모델의 생김새는 비슷하기 때문에(자유도가 낮기 때문에) 비슷한 결과만 낼 수 있기 때문
    • 용량이 큰 모델은 편향이 작고 분산이 크다.
      • 훈련집합에 맞춰 다 표현할 수 있지만, 높은 차원에 의해 훈련집합이 조금만 달라져도 모델이 확확 바뀌어버린다.
    • 따라서 적절한 capacity를 가지는 모델을 선택해야함: 낮은 편향, 낮은 분산을 가지는 모델을 만드는 것이 기계학습의 목표이다.

모델 선택 알고리즘: validation

  • validation: 모의고사처럼 답을 알고있는 문제에 대해 test하여 일반화 성능이 좋은 모델을 선택하도록 하는 것
  • 교차검증(cross validation)
    • 데이터 양이 적은 경우
    • 전체 데이터를 k개로 나누고 하나씩 validation set으로 설정하여 학습 후 validation하고, 각각의 성능을 평균하여 해당 모델의 성능으로 취하는 방법
  • 부트스트랩(bootstrap)
    • 데이터 분포가 불균형한 경우 (ex: class1은 10000개, class2는 100개의 데이터가 있는 경우)
    • 복원 추출 샘플링을 반복하여 train set을 구성하는 방법

Regularization

  • data augmentation: 데이터를 많이 수집하여 일반화 능력 향상
  • weight decay: overfitting 되는 경우 objection function의 weight가 굉장히 커진다. weight가 커지지 못하게 강제하여 복잡도를 낮추는 기법
    • $J(\theta) = \frac{1}{n}\sum_{i=1}^{n}(f_\theta(x_i)-y_i)^2 + \lambda|\theta|^2_2$

기계학습의 유형

  • 지도 방식

    • supervised learning
      • feature vector x와 정답 y가 모두 주어짐
      • 회귀와 분류 문제로 구분됨
    • unsupervised learning
      • feature vector x는 주어지지만 정답 y는 주어지지 않음
      • clustering, 추천시스템, density estimation, PCA 등
    • reinforcement learning
      • 보상(목표치)을 최대화하기 위해 학습
    • semi-supervised learning
      • 일부는 x와 y를 모두 가지지만, 나머지는 x만 가진 상황
  • 학습하는 데이터

    • offline learning: 수집된 데이터에 대해서만 학습
    • online learning: 지속적으로 들어오는 데이터를 학습
  • 결정론적 vs 확률적

    • deterministic learning: 같은 데이터를 가지고 다시 학습하면 같은 예측 모델이 만들어짐
    • stochastic learning: 학습 과정에서 확률 분포를 사용하므로 같은 데이터로 다시 학습하면 다른 예측 모델이 만들어짐
  • 분별 vs 생성

    • discriminative models: target distribution $P(y|\bf x)$ 추정, x에서 y가 되는 상관관계에 대한 관심
    • generative models: $P(\bf x)$, 또는 $P(\bf x|y)$를 추정. $\bf x$에 관심 → 입력 데이터의 분포를 알기 때문에 새로운 샘플을 생성할 수 있음
728x90