Finding Words for Intuitions
1.1장에서는 기본적인 용어에 대해서 정리합니다.
머신러닝에서 부딪히는 어려움 중 하나는 개념과 단어의 의미가 선명하지 않고, 머신러닝 시스템에서 특정 컴포넌트들이 다른 수학적 개념으로 추상화될 수 있다는 점입니다. 예를 들어, 알고리즘(algorithm)이라는 단어는 머신러닝의 맥락에서 적어도 두 가지의 다른 의미로 사용됩니다.
첫 번째 의미로의 알고리즘은 입력 데이터를 기반으로 예측하는 시스템을 의미합니다. 여기서 이러한 알고리즘을 predictor라고 칭합니다. 다른 의미로의 알고리즘은 ‘머신러닝 알고리즘’이라고 하는데, predictor 내부의 파라미터를 정하기 위한 시스템을 의미합니다. 이를 training system이라고 칭합니다.
이 책이 모호함을 해결해주는 것은 아니지만, 문맥에 따라 다른 의미를 갖는 다는 것에 주의해야 합니다.
모든 데이터가 숫자는 아니지만 데이터를 숫자 형태로 간주하는 것은 유용합니다. 이 책에서는 데이터가 이미 컴퓨터가 읽을 수 있는 수치형으로 변환되었다고 간주합니다. 따라서, 이러한 데이터를 벡터로 생각합니다.
단어가 얼마나 모호한지 여기서 또 보여주는데, 벡터라는 단어 자체로 크게 3가지 의미가 있을 수 있습니다.
- 숫자들의 배열 (a computer science view)
- 방향과 크기가 있는 화살표 (a physics view)
- 수학적 의미의 벡터 (a mathematical view)
모델(model)은 일반적으로 데이터를 생성하는 과정을 설명하는 데 사용됩니다. 따라서, 좋은 모델은 (알 수는 없지만) 실제 데이터 생성 프로세스의 단순화된 버전이라고 생각할 수 있으며, 데이터 모델링과 관련된 측면을 포착하고 이로부터 숨겨진 패턴을 추출합니다. 좋은 모델을 사용하면 실제 실험을 수행하지 않고도 어떤 일이 발생할 지 예측할 수 있습니다.
데이터셋과 적절한 모델이 주어졌다고 가정해봅시다. 모델을 학습(learning)한다는 것은 모델의 파라미터를 최적화할 수 있는 데이터를 사용하는 것을 의미합니다. 이때, utility function을 통해 학습 데이터(training data)를 얼마나 잘 예측하는지 평가합니다.
대부분의 학습 방법은 정상을 향해 언덕을 오르는 것에 비유할 수 있습니다. 여기서 정상은 원하는 성능 측정치의 최댓값에 해당합니다. 하지만 실제로 우리는 우리가 모르는 데이터에 대해서도 잘 수행되도록 하는 것이 목적입니다. 이미 알고 있는 데이터(학습 데이터)에 대해 잘 예측한다는 것은 단순히 이를 암기하는 좋은 방법을 찾은 것일 수도 있습니다. 따라서, 새로운 데이터에는 일반화되지 않을 수 있으며, 실제로는 이전에 접하지 않은 상황에 노출시키는 것이 필요합니다.
이 책에서 다루는 머신러닝의 주요 컨셉을 요약하면 다음과 같습니다.
- 데이터를 벡터로 표현
- 확률 또는 최적화 관점을 사용하여 적절한 모델을 선택
- 학습에 사용되지 않은 데이터에 대해서도 잘 수행하는 모델을 목표로 수치적인 최적화 방법을 사용하여 학습 데이터로부터 학습