Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
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 29 30 31
Archives
Today
Total
관리 메뉴

데이터분석 공부하기

[핸즈온 머신러닝] 제 1장 기록 본문

머신러닝

[핸즈온 머신러닝] 제 1장 기록

Eileen's 2021. 8. 24. 17:42
  1. 머신러닝 : 머신러닝은 데이터에서부터 '학습'하도록 컴퓨터를 프로그래밍하는 과학(or 예술) 연구 분야. 
         -traning set : 시스템이 학습하는 데 사용하는 샘플
         -traning instance: 각 훈련 데이터 
         -accuracy : 성능 측정 (직접 정의, ex> 스팸 필터의 성능 측정 : 정확히 분류된 메일의 비율)

  2.  왜 머신러닝을 사용하는가?
       -기존 솔루션으로 많은 수동 조정/규칙이 필요할 경우
       -전통적이 방식으로는 해결 방법이 없는 복잡한 문제
       -유동적인 환경 (새 데이터 적응)
       -복잡한 문제와 대량의 데이터에서 통찰 찾기
           *Data Mining : ML기술을 적용하여 대용량의 데이터를 분석하여 패턴을 발견하는 것. (ML 알고리즘이 학습한 것을 배우는 것)

  3. 머신러닝 시스템의 종류(NOT mutually exclusive)
    • 지도 학습 vs 비지도 학습 vs 준지도 학습 vs 강화 학습
      • 지도학습(Supervised Learning): 레이블 有 
        - Classification(분류)
        - Regression(회기)
      • 비지도학습(Unsupervised Learning) : 레이블 無 
        - Clustering
        - Visualization
        - Dimensionality Reduction
        - Outlier Detection
        - Association Rule Learning
      • 준지도 학습(Semi-supervised Learning) : 레이블이 있는 데이터와 없는 데이터를 함께 훈련
      • 강화학습(Reinformacement Learning) : 학습하는 시스템(a.k.a. 에이전트)가 환경을 관찰해서 행동을 실행하고 그 결과로 보상 or 벌점을 받아 학습
    • 배치 학습 vs 온라인 학습
      • 배치 학습 (Batch Learning): 가용 데이터를 모두 사용하여 훈련 (점진 X), 오프라인 학습; 
        - 단점 : 자주 훈련이 필요, 많은 커뮤팅 자원 필요
      • 온라인 학습(Online Learning) : 순차적으로 한개 or 미니배치 단위로 시스템 훈련; 빠른 학습 단계, 낮은 비용 
        - 단점 : 나쁜 데이터 주입 시, 시스템 성능 감소
        * 주요 파라미터 - 학습률(Learning Rate) : 얼마나 빠르게 변화하는 데이터에 적응 하는가?
                                                                            (너무 빠르면 과거 데이터를 잊고, 너무 느리면 느리게 학습)
    • 사례 기반 학습 VS 모델 기반 학습
      • 사례기반 학습(instance-based learning) : traning instance(훈련샘플)을 '기억'하여 유사도 측정으로 새 데이터와 비교하여 일반화
      • 모델 기반 학습(model-based learning) : 샘플들의 모델을 만들어 예측에 사용하는 것
         1) 데이터 분석
         2) 모델 선택 (model selection) : 훈련데이터에 가장 잘 맞는 모델 선택)
         3) 모델 훈련(model traning) : 학습 알고리즘이 비용 함수를 최소화하는 모델 파라미터(model parameter)찾기
                                - 호용 함수(utility function)(or 적합도 함수(fitneses function)) & 비용함수(cost function) 사용
         4) 추론(inference) : 모델을 적용해 새로운 데이터에 예측
  4. 머신러닝의 주요 도전 과제 (Bad data & Bad Algorithm)
    • 훈련데이터:
      - 충분하지 않은 양
      - 대표성 결여 : Sampling noise(작은 샘플-우연에 의한 대표성 X), Sampling bias(잘못된 표본 추출 방법)
      - 낮은 품질 : Null, Outlier, Error etc.; Need Cleansing 
      - 관련없는 특성: Need Feature Engineering(feature selection, feature extraction)
    • 알고리즘:
      -Overfitting :  1) model selection : 파라미터 수가 적은 모델 선택 (파라미터 (internal), ex> linear reg's coefficient)
                              2) feature: 훈련데이터의 특성 수 줄이기
                              3) regularization : 모델 규제 높이기(ex-하이퍼파라미터로 조정)
                              4) More training data
                              5) reduce data noise(outlier, error etc.)
      -Underfitting: 1) model selection : 파라미터 수가 더 많은 모델 선택
                              2) feature engineering: 더 좋은 특성 선택
                              3) regularization : 모델 규제 낮추기(ex-규제 하이퍼파라마터 감소)
  5. 테스트와 검증
    • 모델 선택 : 다양한 모델을 train-test하여 얼마나 잘 일반화되는지 비교 
      -일반화 오차(generationlization error) or 외부 샘플 오차(out-of-sample error) : 새로운 샘플에 대한 오류 비율
      -train한 모델을 test set에서 평가함으로 이 오차에 대한 추정값(estimation)을 얻음
    • 하이퍼파라미터 튜닝 : 
      - 홀드아웃 검증(holdout validation) : 
           1) 모델 선택 후, 데이터를 train/ validation(a.k.a. dev set)/ test set으로 나눔
           2) train set에서 다양한 하이퍼파라미터 값을 가진 모델을 훈련
           3) validation set에서 가장 높은 성능을 내는 모델 선택
           4) 검증과정이 끝나면 최선의 모델을 전체훈련세트(train+validation set)로 다시 훈련 -> 최종 모델 도출
           5) 최종 모델을 test set에서 평가 : 일반화 오차 추정
      - 교차 검증(cross-validation) : 더욱 정확한 성능 측정, 작은 데이터에 활용 가능; 시간이 더 소요됨
           1) 검증 세트마다 나머지 데이터에서 훈련한 모델을 해당 검증 세트에서 평가
           2) 모든 모델의 평가를 평균하여 성능 측정
           3) 검증과정이 끝나면 최선의 모델을 전체훈련세트(train+validation set)로 다시 훈련 -> 최종 모델 도출
           4) 최종 모델을 test set에서 평가 : 일반화 오차 추정
    • 데이터 불일치 : 훈련-개발 세트(train-dev set)으로 '과대 적합 vs 데이터 불일치 여부' 확인