🔑 Chapter 1. 한눈에 보는 머신 러닝
1장에서는 데이터 과학자가 꼭 알아야 할 여러 가지 기초 용어와 개념을 알아가자.
자세한 내용은 차후 알아가자.
💡 머신러닝 기본
- 머신러닝 이란 ? -> 데이터에서부터 학습하도록 컴퓨터를 프로그래밍하는 과학 이다.
- 시스템이 학습하는 데 사용하는 샘플을 훈련세트(training set) 이라고 한다.
- 각 훈련 데이터를 훈련 사례(training instance 혹은 샘플) 라고 한다.
- 머신러닝 기술을 적용해서 대용량 데이터를 분석하면 겉으로 보이지 않은 패턴을 발견할 수 있는데 이를 데이터 마이닝 이라고 한다.
💡 머신러닝 시스템의 종류
- 사람의 감독하에 훈련하는 것인지 그렇지 않은 것인지(지도, 비지도, 준지도, 강화 학습)
- 실시간으로 점진적인 학습을 하는지 아닌지(온라인 학습과 배치학습)
- 단순하게 알고 있는 데이터 포인트와 새 데이터 포인트를 비교하는 것인지 아니면 과학자들이 하는 것처럼 훈련 데이터셋에서 패턴을 발견하여 예측 모델을 만드는지(사례 기반 학습과 모델 기반 학습)
🕹 지도 학습
지도 학습(supervised learning) 에는 알고리즘에 주입하는 훈련 데이터에 레이블이라는 원하는 답이 포함된 것이다.
분류가 전형적인 지도 학습 작업이고, 스팸필터가 좋은 예이다.
또다른 작업은 예측 변수라고 부르는 특성을 사용해 타깃 수치를 예측하는 것이다.
머신러닝에서 속성은 데이터 타입(ex 주행거리)을 말하며, 특성은 속성과 값이 합쳐진 것을 의미한다(ex 주행거리 = 100).
🕹 비지도 학습
비지도 학습(unsupervised learning) 은 말 그대로 훈련 데이터에 레이블이 없는 것을 뜻한다.
중요한 비지도 학습 알고리즘으로는 그룹을 나누는 계층 군집 , 데이터를 간소화 하는 차원 축소 , 이상치 탐지 , 특이치 탐지 , 연관 규칙 학습 등이 있다.
이상치 탐지는 정상 데이터인지 이상치 인지 판단하는 것이고, 특이치 탐지는 훈련 세트에 있는 모든 샘플과 달라 보이는 새로운 샘플을 탐지하는 것이다. ex) 강아지 수천장 중에 1%가 치와와 사진이면 특이치 탐지는 판단하지 못하지만 이상치 탐지는 판단한다.
🕹 준지도 학습
일부 데이터에는 레이블이 있고 어떤 데이터에는 레이블이 없는 것을 학습하는 것을 준지도 학습 이라고 한다.
대부분의 준지도 학습 알고리즘은 지도 학습과 비지도 학습의 조합으로 이루어져 있습니다.
ex) 심층 신뢰 신경망은 여러 겹으로 쌓은 제한된 볼츠만 머신(RBM)이라 불리는 비지도 학습에 기초한다. RBM이 비지도 학습 방식으로 순차적으로 훈련된 다음 전체시스템이 지도 학습 방식으로 세밀하게 조정된다.
🕹 강화 학습
강화 학습에서 학습하는 시스템은 에이전트 라고 부르며 환경을 관찰해서 행동을 실행하고 그 결과로 보상(또는 벌점)을 받는다.
시간이 지나면서 가장 큰 보상을 얻기 위해 정책이라고 부르는 최상의 전략을 스스로 학습한다.
ex ) 유명한 알파고!
🕹 배치 학습
배치 학습 에서는 시스템이 점진적으로 학습 할 수 없으며, 가용한 데이터를 모두 사용해 훈련시켜야 한다.
이는 시간과 자원을 많이 소모하므로 보통 오프라인에서 수행되며 오프라인 학습 이라고도 한다.
🕹 온라인 학습
온라인 학습에서는 데이터를 순차적으로 한 개씩 또는 미니배치라고 부르는 작은 묶음 단위로 주입하여 시스템을 훈련한다.
연속적으로 데이터를 받고 빠른 변화에 스스로 적응해야 하는 시스템에 적합하다.
또한 컴퓨터 한 대의 메인 메모리에 들어갈 수 없는 아주 큰 데이터셋을 학습하는 시스템에도 온라인 학습 알고리즘을 사용할 수 있다.(이를 외부 메모리 학습이라고도 한다.)
외부 메모리 학습은 오프라인으로 실행되기 때문에 점진적 학습이라고 생각하자 변화하는 데이터에 얼마나 빠르게 적응할 것인지를 뜻하는 용어를 학습률 이라고 한다.
🕹 사례 기반 학습
시스템이 훈련 샘플을 기억함으로써 학습하는 것을 사례 기반 학습 이라고 한다.
유사도 측정을 사용해 새로운 데이터와 학습한 샘플을 비교하는 식으로 일반화 한다.
🕹 모델 기반 학습
샘플들의 모델을 만들어 예측에 사용하는 것을 모델 기반 학습이라고 한다.
💡 머신러닝 주요 도전 과제
- 충분하지 않은 양의 데이터 -> “복잡한 문제에서는 알고리즘 보다 데이터가 더 중요하다”는 논문(by Peter Norvig이 있다.
- 대표성 없는 훈련 데이터 -> 샘플이 작으면 샘플링 잡음(우연에 의한 대표성없는 데이터)이 생겨 샘플링 편향이 발생 할 수 있다.
- 낮음 품질의 데이터 -> 훈련 데이터에 에러, 이상치, 잡음으로 가득하면 패턴을 찾기 어려워 제대로 작동하지 않는다. 이를 위해 데이터 정제가 필요하다.
- 관련 없는 특성 -> 엉터리가 들어가면 엉터리가 나온다!!
- 특성 선택 : 가지고 있는 특성 중에서 훈련에 가장 유용한 특성을 선택한다.
- 특성 추출 : 특성을 결합하여 더 유용한 특성을 만든다.
- 훈련 데이터에 과대적합 -> 모델이 훈련 데이터에 너무 잘 맞지만 일반성이 떨어진다. 훈련 데이터에 있는 잡음의 양에 비해 모델이 너무 복합할때.
- 해결방안
- 파라미터 수가 적은 모델을 선택, 훈련 데이터에 있는 특성 수를 줄임, 모델의 제약을 가하여(규제) 단순화 시킴.
- 훈련 데이터를 더 많이 모은다.
- 훈련 데이터의 잡음을 줄인다(예를 들면 오류 데이터 수정, 이상치 제거).
- 훈련 데이터에 과소적합-> 모델이 너무 단순해서 데이터의 내재된 구조를 학습하지 못하는 것.
- 해결방안
- 모델 파라미터가 더 많은 강력한 모델을 선택한다.
- 학습 알고리즘에 더 좋은 특성을 제공한다(특성공학).
- 모델의 제약을 줄인다(예를 들면 하이퍼파라미터를 감소시킴.).
💡 테스트와 검증
- 모델이 새로운 샘플에 얼마나 잘 일반화 할지 아는 방법은 새로운 샘플에 실제로 적용해 보는 것이다. 이것을 위해 훈련 세트와 테스트 세트로 나누어 훈련 시킨 모델에 테스트 세트로 테스트한다.
- 새로운 샘플에 대한 오류 비율을 일반화 오차 (또는 외부 샘플 오차)라고 하며, 테스트 세트에서 모델을 평가함으로써 이 오차에 대한 추정값을 얻는다.
- 일반화 오차가 가장 작은 모델을 찾았지만 이는 테스트 세트에 최적화된 하이퍼파라미터가 사용된 모델이다. 이를 방지하기 위해 홀드아웃 검증을 사용한다.
- 홀드 아웃 세트를 검증 세트라고 한다.
💎 각종 용어
호용 함수 : 모델이 얼마나 좋은지 측정하는 함수. 비용 함수 : 모델이 얼마나 나쁜지를 측정하는 함수. 추론 : 새로운 데이터에 모델을 적용해 예측하는 것. 특성 공학 : 훈련에 사용할 좋은 특성을 찾는것. 규제 : 모델을 단순하게 하고 과대적합의 위험을 감소시키기 위해 모델에 제약을 가하는 것. 하이퍼 파라미터: 학습 알고리즘의 파라미터이며, 학습 알고리즘으로 부터 영향을 받지 않으며 훈련 전에 저장되고, 훈련하는 동안에 상수로 남아있다.
Comments