1. 한눈에 보는 머신러닝
in ML/DL / Handson-ml2
핸즈온 머신러닝 2판에서 공부했던 내용을 정리하는 부분입니다.
모든 데이터 과학자가 알아야 할 머신러닝의 여러가지 기초 개념과 용어 정리
1.1 머신러닝이란?
- 일반적 정의: 데이터에서부터 학습하도록 컴퓨터를 프로그래밍하는 과학(또는 예술)
- 공학적 정의: 어떤 작업 T에 대한 컴퓨터 프로그램의 성능을 P로 측정했을 때 경험 E로 인해 성능이 향상 → 컴퓨터 프로그램은 작업 T와 측정 P에 대해 경험 E로 학습
- ex) 스팸 필터
- T: 스팸인지 구분하는 것
- P: 정확도 등
- E: 훈련 데이터
1.2 왜 머신러닝을 사용하는가?
- 데이터 마이닝: 머신러닝 기술을 적용하여 대용량의 데이터를 분석해서 패턴을 발견하는 것
- 기존 솔루션으로는 많은 작업 및 규칙이 필요한 문제: 하나의 머신러닝 모델이 코드를 간단하게 하고 전통적인 방법보다 더 잘 수행
- 전통적인 방법으로는 해결하기 힘든 복잡한 문제: 가장 뛰어난 머신러닝 기법으로 해결
- 유동적인 환경: 머신러닝 시스템은 새로운 데이터에 적응할 수 있다.
- 복잡한 문제와 대량의 데이터에서 통찰 얻기
1.3 머신러닝 시스템의 종류
1.3.1 지도학습과 비지도 학습
- 머신러닝 시스템은 학습하는 동안의 감독 형태나 정보량에 따라 분류 가능
- 지도 학습
- 알고리즘에 주입하는 훈련 데이터에 레이블 포함
- 속성: 데이터 타입(attribute) (ex) 주행거리), 특성(feature): 속성 + 값 (ex) 주행거리=15000)
- k-최근접 이웃, 선형 회귀, 로지스틱 회귀, SVM, 결정 트리와 랜덤 포레스트, 신경망
- 비지도 학습
- 훈련 데이터에 레이블 X → 시스템이 아무런 도움 없이 학습
- 군집, 이상치 탐지와 특이치 탐지, 시각화와 차원 축소, 연관 규칙 학습
- 준지도 학습
- 일부만 레이블된 데이터를 학습
- 대부분 지도 학습 + 비지도 학습으로 이루어짐
- ex) 심층 신뢰 신경망(DBN)은 제한된 볼츠만 머신(RBM)이라는 비지도 학습에 기초
- 강화 학습
- 매우 다른 종류의 알고리즘
- 에이전트(학습 시스템), 보상, 벌점, 정책(최고의 보상을 위한 최상의 전략)
- 과정
- 관찰
- 정책에 따라 행동 선택
- 행동 실행
- 보상 or 벌점 받음
- 정책 수정(학습 단계)
- 최적의 정책 찾을 때까지 반복
- 보행 로봇, 알파고
1.3.2 배치 학습과 온라인 학습
- 입력 데이터 스트림으로부터 점진적 학습 가능 여부에 따라 분류
- 배치 학습
- 시스템이 점진적으로 학습 불가능 → 가용 데이터 모두 학습 후 시스템에 적용 (오프라인 학습)
- 새로운 데이터 학습 시 다시 훈련 후 새 시스템으로 교체 필요
- 전체 데이터셋 사용해 훈련 시 많은 컴퓨팅 자원 필요
- 자원이 제한된 시스템이 스스로 학습 시 심각한 문제 발생 → 점진적 학습 알고리즘이 낫다
- 온라인 학습
- 데이터 순차적으로 ‘미니 배치’ 라는 작은 묶음 단위로 주입하여 학습
- 매 학습 단계 빠르고 비용이 적게 든다
- 연속적으로 데이터를 받고 빠른 변화에 스스로 적응하는 시스템에 적합
- 외부 메모리 학습에 사용 가능
- 외부 메모리 학습
- 보통 오프라인에서 실행(온라인 학습 X → 점진적 학습)
- 외부 메모리를 이용하여 전체 데이터의 일부를 읽어 전체 데이터에 적용될 때까지 학습
- 학습률
- 변화하는 데이터에 얼마나 빠르게 적응할 것인지 (온라인 학습 시 중요 파라미터)
- 높은 학습률: 데이터에 빠르게 적응하지만, 예전 데이터 금방 잊어버림
- 낮은 학습률: 더 느리게 학습하지만, 데이터의 잡음에 덜 민감
- 가장 큰 문제점: 시스템에 나쁜 데이터 주입 시 성능이 점진적으로 감소
- 시스템, 데이터 모니터링을 통해 방지해야함
1.3.3 사례 기반 학습과 모델 기반 학습
- 어떻게 일반화 되는가에 따라 분류
- 사례 기반 학습
- 시스템이 훈련 데이터를 기억하는 방식으로 학습 → 유사도 측정으로 새로운 데이터와 학습한 샘플 비교
- 모델 기반 학습
- 샘플들로 모델을 만들어 예측에 사용하는 것
- 과정
- 데이터 분석 → 모델 선택
- 훈련 데이터로 모델 훈련
- 효용 함수, 비용 함수를 사용하여 성능 측정 → 최소화하는 파라미터 찾기
- 새로운 데이터에 모델 적용해 예측 (추론)
1.4 머신러닝의 주요 도전 과제
1.4.1 충분하지 않은 양의 데이터
- 대부분의 머신러닝이 잘 작동하기 위해서는 데이터가 많아야 한다
1.4.2 대표성 없는 훈련 데이터
- 일반화하려는 사례들을 대표하는 훈련세트 사용이 매우 중요
- 샘플이 작으면 ‘샘플링 잡음’, 샘플이 너무 크면 ‘샘플링 편향’이 발생
1.4.3 낮은 품질의 데이터
- 훈련 데이터 이상치, 에러, 잡음으로 가득하여 훈련 데이터 정제는 필요하다.
1.4.4 관련 없는 특성
- 훈련 데이터에 관련 있는 특성이 많고 관련 없는 특성이 적어야 한다.
- 특성 공학
- 특성 선택: 훈련에 가장 유용한 특성 선택
- 특성 추출: 특성을 결합하여 더 유용한 특성 만듦 (ex) 차원 축소)
- 새로운 데이터 수집해 새 특성 만듦
1.4.5 훈련 데이터 과대적합
- 과대적합: 모델이 훈련 데이터에 너무 맞아 일반성이 떨어지는 것
- 훈련 데이터의 잡음의 양에 비해 모델이 너무 복잡할 때 발생
- 해결 방법
- 파라미터 수 적은 모델 사용, 특성 수 줄임, 모델 제약하여 단순화
- 훈련 데이터 많이 모음
- 훈련 데이터의 잡음을 줄임
- 규제: 모델 단순하게 하고 제약을 가하는 것
- 데이터에 완벽히 맞추는 것과 단순한 모델을 유지하는 것 사이의 올바른 균형을 찾는 것이 좋다.
- 학습 동안 적용할 규제의 양은 하이퍼파라미터가 결정
- 하이퍼파라미터
- 학습 알고리즘의 파라미터
- 학습 알고리즘의 영향 받지 않고, 훈련전에 미리 지정, 훈련하는 동안 상수로 남아있는다.
- 하이퍼파라미터 튜닝은 머신러닝 시스템 구축에서 매우 중요한 과정
1.4.6 훈련 데이터 과소적합
- 과대적합의 반대, 모델이 너무 단순해서 데이터의 내재된 구조 학습 못하는 경우
- 해결 방법
- 모델 파라미터가 더 많은 강력한 모델 사용
- 학습 알고리즘에 더 좋은 특성 제공(특성 공학)
- 모델의 제약을 줄임(규제 하이퍼파라미터 감소)
1.5 테스트와 검증
- 훈련 데이터를 훈련 세트, 테스트 세트로 나눔 (일반적을 8:2, 데이터의 크기가 더 크면 테스트의 비율을 낮춰도 됨)
- 일반화 오차(외부 샘플 오차): 새로운 샘플에 대한 오류 비율
- 테스트 세트에서 모델을 평가함으로써 오차에 대한 추정 값 얻음 → 모델이 얼마나 잘 작동될지 알려줌
- ex) 훈련 오차가 낮지만 일반화 오차가 높으면 모델이 과대적합 되어있다는 것
1.5.1 하이퍼파라미터 튜닝과 모델 선택
- 일반화 오차가 적은 최적의 하이퍼 파라미터 찾아 적용했지만 실제 결과가 예상보다 좋지 않다.
- 모델이 테스트 세트에 최적화되었기 때문이다.
- 해결 방법
- 홀드아웃 검증
- 과정
- 훈련 세트에서 검증 세트를 만들어 냄
- 훈련 세트에서 다양한 하이퍼파라미터 값 가진 여러 모델 훈련
- 검증 세트에서 가장 좋은 성능 내는 모델 선택
- 이 최선의 모델을 전체 훈련 세트에서 다시 훈련하여 최종 모델 만듦
- 마지막으로 테스트 세트에서 평가하여 일반화 오차 추정
- 단점
- 검증 세트가 너무 작거나 클 때, 모델 선택이 잘못 될 수 있다.
- 과정
- 교차 검증
- 작은 검증 세트를 여러 개 사용하여 반복 수행
- 장점
- 모든 모델이 평가를 평균하여 더 정확한 성능을 측정할 수 있다.
- 단점
- 훈련 시간이 검증 세트의 수에 비례하여 증가
- 홀드아웃 검증
- 데이터 불일치
- 어떤 경우 쉽게 많은 양의 훈련 데이터를 얻을 수 있지만, 이 데이터가 실제 제품에 사용될 데이터를 완벽하게 대표하지 못할 수 있다.
- 훈련 세트를 훈련- 개발 세트로 나누어 평가에 이용
- 훈련-개발 세트로 나누고 훈련 세트에서만 모델 훈련
- 훈련-개발 세트에서 평가
- 검증 세트에서 나쁜 성능을 보이면 데이터 불일치에 의한 것
- 훈련-개발 세트에서 나쁜 성능을 보이면 과대적합된 것
- 공짜 점심 없음 이론
- 데이터에 대해 어떤 가정도 하지 않으면 한 모델을 다른 모델보다 선호할 근거가 없다.
- 데이터에 관해 타당한 가정을 하고 적절한 모델 몇가지만 평가
- ex) 간단한 작업: 규제의 수준이 다양한 선형 모델을 평가, 복잡한 작업: 여러가지 신경망을 평가
출처
- 핸즈온 머신러닝 2판