Notice
Recent Posts
Recent Comments
Link
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

Silver bullet

머신러닝 기초 (capacity, overfitting, K-Fold cross validation) 본문

AI/AI

머신러닝 기초 (capacity, overfitting, K-Fold cross validation)

밀크쌀과자 2024. 7. 8. 13:39

1. 쉽게 풀어서 살펴보는 인공지능

  • 인공지능(Artificial Intelligence)
    • 자신을 둘러싼 환경을 지각/인식하고 적절한 행동을 취하여 목표를 성취할 가능성을 최대화하는 기계(가 가진 지능) -> "  Intelligence Agents "
  • 약인공지능 (Artificial Narrow Intelligence, ANI, "weak AI")
    • 어떤 하나의 작업은 잘하나, 모두 잘하지 못함 (현재의 인공지능 수준), Good at performing a single task, Works within a very limited context
  • 강인공지능 (Artificial General Intelligence, AGI, "weak AI")
    • as smart as a human (아직 구현은 조금 멀었다)
  • 슈퍼인공지능 (Artificial Super Intelligence, ASI)
    • much smarter than the best human brains (공상과학단계)

  • 학습이란?
    • 실제 정답과 예측 결과 사이의 오차(Loss, Cost, Error)를 줄여나가는 최적화 과정
  • Model fitting
    • 데이터를 가장 잘 표현하는 모델을 찾는 과정
  • 데이터를 가장 잘 설명하는 모델을 어떻게 찾을 건가?
    • 1. 초기 모델에 데이터 넣기
    • 2. 결과 평가
    • 3. 결과를 개선하기 위해 모델을 수정 (모델 내부의 Parameter 수정, 모델 종류의 변경 등)

 


2. 머신러닝 핵심 개념 이해

  • 머신러닝
    • A field of artificial intelligence that gives computers the ability to learn from data, without being explicitly programmed. - Arthur Samuel, 1959 -
    • 만약 작업 T에 대해 기준 P로 측정한 성능이 경험 E로 인해 향상되었다면, 그 프로그램은 작업 T에 대해 기준 P의 관점에서 경험 E로부터 "배웠다"라고 말할 수 있다. - Tom M. Mitchell, 1997 -
  • 머신러닝의 분류 (Supervised, Unsupervised, Reinforcement)

 

  • 지도학습 (Supervised learning)
    • input data에 대한 정답을 예측하기 위한 학습 (Function approximator)
    • 데이터에 정답(Label, Target)이 존재함
    • output 형태에 따라 회귀 분석과 분류 분석으로 나눌 수 있음
    • 대표 알고리즘 : Linear/Logistic regression, Decision tree, Bayesian classfication
    • Numerical, Categorical

  • 비지도학습 (Unsupervised learning)
    • input data 속데 숨어있는 규칙성을 찾기 위해 학습 (→ (shorter) Description)
    • 데이터에 정답(Label, Target)이 존재하지 않음
    • 군집분석, 차원축소(PCA)
    • 대표 알고리즘 : K-means clustering, Nearest Neighbor clustering, t-SNE, EM clustering, PCA, Linear Discriminant Analysis(LDA)
  • 강화학습 (Reinforcement)
    • Trial & Error를 통한 학습 (→ Sequential decision making)
    • 주위 환경과 자신의 행동 사이의 반복적 상호작용을 바탕으로, 최종적으로 얻게 될 기대 보상을 최대화하기 위한 행동 선택 정책(Policy)을 학습
    • 연속적인 단계마다 상태(State)를 인식하고, 각 상태에 대해 결정한 행동(Action)들의 집합에 대해, 환경으로부터 받는 보상(Reward)을 학습하여, 전체 행동에 대한 보상을 최대화하는 행동 선택 정책(Policy)을 찾는 알고리즘

3. Capacity & Overfitting

  • Model's Capacity
    • 현실세계의 문제를 모델이 얼마나 잘 포용할 수 있는지에 대한 척도
    • 용량, 포용력

  • X data : 독립변수
  • Y data : 종속변수(label(class), target(Reg & class))
  • Feature : X data
  • Attribute, Dimension, Column : X & Y data

 

  • Capacity의 극대화  → Overfitting 발생 Generalization error(일반화 성능 낮아짐) 증가 새로운 데이터에 잘 대응하지 못함

4. Overfitting & Generalization

  • 새로운 데이터들에 대해서도 좋은 결과를 내게 하려면?
    • Cross validation (교차 검증)
      • 데이터를 3개의 그룹으로 나눈다.
      • 1) 60% Training data로 모델의 학습시킨다.
      • 2) 20% Validation data로 모델(or 하이퍼파라미터)을 최적화/선택 한다.
      • 3) 20% Test data로 모델을 평가(Test only, no more tune)한다.
      • * Validation과 Test의 차이
        • Validation : 여러 후보 모델 중 가장 좋은 결과를 내는 모델을 선택하는 과정
        • Test : 선택한 모델의 실제 정확도를 평가하는 것 (estimate the accuracy)
      • Validation과 Test를 나누지 않고, Training과 Test로 7:3으로 나누는 경우도 있다.
      • 100 ~ n * 10000 data 6:2:2 or 7:3
      • more than n*100,000 data 98:1:1 or 99:0.5:0.5.....
    • 그 외 활용되는 방법들
      • (Stratified) K-Fold cross validation (후보 모델 간 비교 및 선택을 위한 알고리즘)
        • Stratified : 층화 (이 옵션을 키면 비율 유지가 된다. 예를 들어 만약 class 0, 1을 분류하는 문제에서 라벨 비율이 class 0은 80%, 1은 20%로 치중되어 있더라도, Stratified 옵션을 키면 K-Fold 할 때 비율을 잘 유지 시켜준다.)
        • K값은 보통 5, 10 정도를 많이 사용함
      • Cost Function에 Regularization term 추가 (L1 or L2, weight up = cost up)
      • Drop-out & Batch Normalization (NN) 등
      • Training data를 많이 확보(Data augumentation & Test time augumentation)하거나 모델의 Feature를 줄이는 것도 좋은 방법

(Stratified) K-Fold cross validation