머신러닝의 주요 목적은 데이터에 기반해 어떤 결정 혹은 예측을 하는 것입니다. 기술적으로 수많은 분야들이 상당히 겹치는 부분이 많지만 각각 다른곳에 초첨을 둡니다: 경제와 심리학에서는 평상시의 프로세스를 발견하는데 초점을 둔다면, 통계학에서는 어떤 데이터 셋에 잘 맞는 모델을 찾아 내는 등 말이지요. 그러한 분야들에서 결과적으로 도출되는 생산물은 모델입니다. 머신러닝에서는, 우리는 모델을 맞춰보곤 합니다, 어떤 적절한 예측 혹은 결정을 만드는 수단으로서요.
머신러닝이 문제를 해결하는데 있어서 가장 주요한 측면중 하나는 인간 공학이 아주 중요한 역할을 한다는 것입니다. 인간은 여전히 문제를 정의합니다: 데이터를 수집하고 조직화하며, 여러가지 해결책에 대한 공간을 설계하고, 알고리즘과 그 파라미터들을 선택하며, 데이터에 알고리즘을 적용하고, 해결책에 대한 결과의 유효성 검사를 하는등 이러한 과정들은 매우 중요합니다.
데이터로부터 학습하는 것은 추론의 문제입니다: 왜 우리는 한번 보았던 데이터가 미래를 예측하는데 도움이 된다고 생각할까요? 이것은 매우 오래되었고 지속적으로 있었던 철학적인 중요한 문제입니다.
일반적으로, 우리는 두가지 문제를 해결해야 합니다.
예측 (Estimation): 데이터들이 매우 많은 잡음들이 있는 경우, 우리는 데이터를 모아서 어떤 예측값을 만들어야 합니다. 어떻게 사실만을 다룰 것이며, 예를들어 동일하게 실행했지만 각각 다른 결과들을 나을수도 있고.. 어떻게 미래의 결과에 비교해서 더 낳은 예측을 할 것인지 등이 중요합니다.
일반화 (generalization): 어떻게 우리의 데이터셋에 없던, 한번도 만나보지 못했던 어떤 실험 혹은 상황의 결과를 예측할 수 있을 것인가?
우리는 여섯개의 특징을 이용해 이러한 문제와 해결책에 대해 설명할 수 있습니다. 그 중 세개는 문제이며, 세 개는 해결책입니다.
1. Problem class: 학습 데이터의 원천은 무엇이며, 테스트 시에 어떤 결정의 종류들이 있을 것인가?
2. Assumptions: 데이터의 원천 혹은 해결책의 형태에 대해 우리는 무엇을 아는가?
3. Evaluation criteria: 예측 혹은 예상 시스템의 목표는 무엇인가? 각각의 쿼리가 평가될 수 있는 요소는 무엇인가? 시스템의 전체적인 퍼포먼스가 어떻게 측정될 것인가?
4. Model Type: 중간 모델이 만들어질것인가? 데이터의 어떤 측면이 모델화될 것이낙? 예측을 하는데 모델이 어떻게 이용될 것인가?
5. Model Class: 어떤 특정한 parametric 클래스의 모델이 사용될 것인가? 모델 클래스로부터 어떤 특정한 모델이 기준으로써 사용될 것인가?
6. Alogorithm: 예측을 하기 위해서 혹은 모델에 데이터를 맞추기 위해 어떤 연산적인 프로세스가 사용될 것인가?
데이터가 생성되는 자연적인 프로세스에 대해서 어떤 가정을 만들지 않고서는, 우리는 일반화를 할 수 없습니다. 앞으로의 섹션들에서는, 이러한 아이디어를 정교화 해볼 것입니다.