위 책을 요약한 내용입니다.
머신러닝은 컴퓨터가 명시적으로 프로그래밍되지 않아도 학습할 수 있는 능력을 부여하는 연구 분야입니다. —아서 사무엘, 1959
어떤 경험 E, 작업 T, 성능 측정 P에 대하여 컴퓨터 프로그램이 경험 E를 통해 작업 T에서 P로 측정한 성능이 향상된다면, 그 프로그램은 학습한다고 말할 수 있습니다. —톰 미첼, 1997
예를 들어, 스팸 필터는 스팸 이메일(예: 사용자가 표시한 것)과 일반 이메일의 예시를 통해 스팸을 표시하는 데 학습할 수 있는 머신 러닝 프로그램입니다. 시스템이 학습하는 데 사용하는 예시를 훈련 세트(training data)라고 하며, 이 경우 작업 T는 새 이메일에 대한 스팸 표시이고, 경험 E는 훈련 데이터이며, 성능 측정 P는 정의해야 합니다. 예를 들어, 올바르게 분류된 이메일의 비율을 사용할 수 있습니다. 이 특정 성능 측정은 정확도라고 하며, 분류 작업에서 자주 사용됩니다.
- 인간의 감독 하에 훈련되는지 여부
ex) 지도 학습, 비지도 학습, 준지도 학습, 강화 학습- 점진적으로 학습할 수 있는지 여부
ex) 온라인 학습 대 배치 학습- 새로운 데이터 포인트를 알려진 데이터 포인트와 단순히 비교하는지, 아니면 과학자들이 하는 것처럼 훈련 데이터에서 패턴을 감지하고 예측 모델을 구축하는지 여부
ex) 인스턴스 기반 대 모델 기반 학습
이러한 기준은 배타적이지 않으며 원하는 대로 조합할 수 있습니다. 예를 들어, 머신러닝을 적용한 스팸 필터는 스팸과 햄(비스팸)의 예시를 사용해 훈련된 깊은 신경망 모델을 사용하여 즉석에서 학습할 수 있으며, 이는 온라인, 모델 기반, 지도 학습 시스템으로 만듭니다.
지도 학습에서는 알고리즘에 공급하는 훈련 데이터의 context가 포함되어 있으며, 이를 라벨이라고 합니다. 지도학습에서는 라벨을 통해 데이터를 학습합니다.
ex) k-Nearest Neighbors, Linear Regression, Logistic Regression, Support Vector Machines (SVMs), Decision Trees and Random Forests, Neural networks
비지도 학습에서는 짐작할 수 있듯이 훈련 데이터에 레이블이 지정되지 않습니다. 시스템은 선생님 없이 학습을 시도합니다.
일부 알고리즘은 부분적으로 레이블이 지정된 교육 데이터, 일반적으로 많은 레이블이 지정되지 않은 데이터와 약간의 레이블이 지정된 데이터를 처리할 수 있습니다. 이것을 준지도 학습이라고 합니다.
에이전트라고 하는 학습 시스템은 환경을 관찰하고, 행동을 선택 및 수행하고, 그 대가로 보상(또는 부정적인 보상 형태의 페널티)을 받을 수 있습니다. 그런 다음 시간이 지남에 따라 가장 많은 보상을 얻기 위해 정책이라고 하는 최상의 전략이 무엇인지 스스로 학습해야 합니다. 정책은 주어진 상황에 있을 때 에이전트가 선택해야 하는 조치를 정의합니다.
배치 학습에서 시스템은 점진적으로 학습할 수 없으며, 사용 가능한 모든 데이터를 사용하여 훈련해야 합니다. 일반적으로 이것은 많은 시간과 컴퓨팅 자원을 필요로 하므로, 보통 오프라인에서 수행됩니다. 먼저 시스템이 훈련되고, 그런 다음 생산에 투입되어 더 이상 학습하지 않고 실행됩니다; 그저 배운 것을 적용할 뿐입니다. 이것을 오프라인 학습이라고 합니다.
온라인 학습에서는 데이터 인스턴스를 순차적으로 시스템에 공급하여 점진적으로 훈련시킵니다. 이는 개별적으로 또는 미니 배치라고 하는 작은 그룹으로 수행됩니다. 각 학습 단계는 빠르고 저렴하므로, 시스템은 도착하는 새로운 데이터에 대해 즉시 학습할 수 있습니다. 온라인 학습은 데이터를 연속적인 흐름으로 받고 (예: 주식 가격) 빠르게 또는 자동으로 변화에 적응해야 하는 시스템에 좋습니다.
가장 간단한 형태의 학습은 아마도 암기하는 방법일 것입니다. 이 방법으로 스팸 필터를 만든다면, 그것은 사용자가 이미 플래그한 이메일과 동일한 모든 이메일을 플래그할 것입니다 - 최악의 해결책은 아니지만 확실히 최선은 아닙니다.
알려진 스팸 이메일과 동일한 이메일만 플래그하는 대신에, 스팸 필터는 알려진 스팸 이메일과 매우 유사한 이메일을 플래그하도록 프로그래밍될 수 있습니다. 이것은 두 이메일 사이의 유사성을 측정해야 합니다. (아주 기본적인) 두 이메일 사이의 유사성 측정은 그들이 공통으로 가지고 있는 단어의 수를 세는 것일 수 있습니다. 시스템은 알려진 스팸 이메일과 많은 단어를 공유하고 있다면 이메일을 스팸으로 플래그할 것입니다.
이것을 인스턴스 기반 학습이라고 합니다: 시스템은 예시를 외우고 나서 유사성 측정을 사용하여 학습된 예시(또는 그 중 일부)와 비교하여 새로운 경우에 일반화합니다.
data들을 일반화하는 또 다른 방법은 이러한 data를 나타내는 모델을 구축하고 그 모델을 사용해 예측을 만드는 것입니다. 이것을 모델 기반 학습이라고 합니다
정리가 잘 된 글이네요. 도움이 됐습니다.