머신러닝 : 머신러닝은 데이터에서부터 '학습'하도록 컴퓨터를 프로그래밍하는 과학(or 예술) 연구 분야. -traning set : 시스템이 학습하는 데 사용하는 샘플 -traning instance: 각 훈련 데이터 -accuracy : 성능 측정 (직접 정의, ex> 스팸 필터의 성능 측정 : 정확히 분류된 메일의 비율)
왜 머신러닝을 사용하는가? -기존 솔루션으로 많은 수동 조정/규칙이 필요할 경우 -전통적이 방식으로는 해결 방법이 없는 복잡한 문제 -유동적인 환경 (새 데이터 적응) -복잡한 문제와 대량의 데이터에서 통찰 찾기 *Data Mining : ML기술을 적용하여 대용량의 데이터를 분석하여 패턴을 발견하는 것. (ML 알고리즘이 학습한 것을 배우는 것)
머신러닝 시스템의 종류(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) : 모델을 적용해 새로운 데이터에 예측
머신러닝의 주요 도전 과제 (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-규제 하이퍼파라마터 감소)
테스트와 검증
모델 선택 : 다양한 모델을 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 데이터 불일치 여부' 확인