1장 - 한눈에 보는 머신러닝
머신러닝이란?
-
명시적인 프로그래밍 없이 컴퓨터가 학습하는 능력을 갖추게 하는 연구 분야
-
훈련 세트 : 시스템이 학습하는 데 사용하는 샘플
-
훈련 사례 (샘플) : 각각의 훈련 데이터
-
모델 : 학습하고 예측을 만드는 부분
-
정확도 : 성능 측정 지표 중 하나, 분류 작업에 많이 사용됨
머신러닝을 사용하는 이유
- 기존의 프로그램에 비해 유지보수가 편리 : 복잡한 규칙이 필요하지 않음, 자동화 기능을 갖춤
- 전통적인 방식으로는 너무 복잡하거나 알려진 알고리즘이 없는 문제를 해결 가능 : ex) 음성 인식
- 데이터 마이닝 : 대용량의 데이터를 분석하여 숨겨진 패턴을 발견하는 것. 이처럼 머신러닝을 통해 새로운 지식을 배울 수 있음.
머신러닝 시스템의 종류
다양한 범주로 나눌 수 있음.
훈련 지도 방식
학습하는 동안의 지도 형태나 정보량에 따라 분류하는 방법.
- 지도 학습 : 훈련 데이터에 레이블이라는 원하는 답이 포함되는 방법. ex) 분류, 회귀
- 비지도 학습 : 레이블이 없어 시스템이 아무런 도움 없이 학습해야 하는 방법.
- 준지도 학습 : 레이블이 일부만 있는 데이터를 다루는 학습 방법.
- 자기 지도 학습 : 레이블이 전혀 없는 데이터셋에서 레이블이 완전히 부여된 데이터셋을 생성하는 방법.
- 강화 학습 : 에이전트(학습하는 시스템)이 환경을 관찰하여 행동을 실행하고 그 결과로 보상 또는 벌점을 얻는 방식. 시간이 지나면서 가장 큰 보상을 얻기 위해 정책이라고 하는 최상의 전략을 스스로 학습함.
배치 학습과 온라인 학습
배치 학습
- 가용한 데이터를 모두 사용해 훈련시키는 방법.
- 오프라인 학습 : 시스템을 오프라인에서 훈련시킨 뒤 학습한 것을 적용하기만 함.
- 문제점 : 세상은 진화하는데 모델은 바뀌지 않고 그대로임. -> 모델 부패, 데이터 드리프트
온라인 학습
- 데이터를 순차적으로 한 개씩 또는 미니배치라고 부르는 작은 묶음 단위로 주입.
- 학습률 : 변화하는 데이터에 얼마나 빠르게 적응할지를 결정하는 파라미터.
사례 기반 학습과 모델 기반 학습
어떻게 일반화되는가에 따라 머신러닝 시스템을 분류함.
- 사례 기반 학습 : 시스템이 훈련 샘플을 기억함으로써 학습함.
- 모델 기반 학습 : 샘플들의 모델을 만들어 예측에 사용.
머신러닝의 주요 도전 과제
나쁜 모델과 나쁜 데이터의 사례로 나누어짐.
충분하지 않은 양의 훈련 데이터
- 대부분의 머신러닝 알고리즘이 잘 작동하려면 데이터가 아주 많아야 함.
대표성 없는 훈련 데이터
- 일반화가 잘 되려면 훈련 데이터가 일반화하고 싶은 새로운 사례를 잘 대표하는 것이 중요.
- 샘플링 잡음 : 우연에 의한 대표성 없는 데이터, 샘플이 작을 경우 생김.
- 샘플링 편향 : 대표성을 띠지 못하는 샘플을 의미.
낮은 품질의 데이터
- 훈련 오류가 오류, 이상치, 잡음으로 가득하다면 데이터 정제를 위해 많은 시간을 투자해야 함.
관련 없는 특성
- 훈련 데이터에 관련 없는 특성이 적고 관련 있는 특성이 충분해야 시스템이 학습할 수 있음.
- 훈련에 사용할 좋은 특성을 찾는 것을 특성 공학이라고 함.
- 특성 선택 : 가지고 있는 특성 중 훈련에 가장 유용한 특성을 선택.
- 특성 추출 : 특성을 결합하여 더 유용한 특성을 만듦.
- 데이터 수집 : 새로운 데이터를 수집해 새 특성을 만듦.
훈련 데이터 과대적합
- 과대적합 : 모델이 훈련 데이터에는 너무 잘 맞지만 일반성이 떨어지는 경우
- 훈련 데이터의 양과 잡음에 비해 모델이 너무 복잡할 때 일어남.
- 규제를 통해 문제를 해결할 수 있음.
훈련 데이터 과소적합
- 모델이 너무 단순해서 데이터의 내제된 구조를 학습하지 못할 때 일어남.
테스트와 검증
- 훈련 데이터를 훈련 세트와 테스트 세트 두 개로 나누어 검증을 진행함.
- 일반화 오차 : 새로운 샘플에 대한 오차 비율, 테스트 세트에서 모델을 평가함으로써 이 값에 대한 추정값을 얻음.
하이퍼파라미터 튜닝과 모델 선택
- 하이퍼파라미터 튜닝 과정에서 테스트 세트에 최적화된 모델이 만들어져 새로운 데이터에 잘 작동하지 않게 될 수 있음.
- -> 홀드아웃 검증을 사용.
- 훈련 세트의 일부를 떼어내어 여러 후보 모델을 평가하고 가장 좋은 하나를 선택하는 방법.
- 검증 세트 : 새로운 홀드아웃 세트
- 교차 검증 : 검증 세트마다 나머지 데이터에서 훈련한 모델을 해당 검증 세트에서 평가하는 방법. 훨씬 정확한 성능을 측정할 수 있지만, 훈련 시간이 검증 세트의 개수에 비례해 늘어남.