데이터 모델, 그리고 학습
이 시점에서 잠시 멈추고 기계 학습 알고리즘이 해결하도록 설계된 문제에 대해 숙고해 볼 가치가 있다. 1장에서 논의했듯이 기계 학습 시스템에는 데이터, 모델, 학습이라는 세 가지 주요 구성 요소가 있다. 기계 학습의 주요 질문은 좋은 모델이란 무엇을 의미하는가이다. 모델이라는 단어에는 많은 미묘한 의미가 있으며, 우리는 이 장에서 이를 여러 번 다시 살펴볼 것이다. 좋다는 단어를 객관적으로 어떻게 정의할 것인지도 완전히 명확하지는 않다. 기계 학습의 지침이 되는 원칙 중 하나는 좋은 모델이 보이지 않는 데이터에 대해 잘 수행되어야 한다는 것이다. 이를 위해서는 정확도나 실제 값과의 거리와 같은 몇 가지 성능 지표를 정의해야 할 뿐만 아니라 이러한 성능 지표 하에서 잘 수행할 수 있는 방법을 알아내야 한다. 이 장에서는 기계 학습 모델에 관해 이야기할 때 흔히 사용되는 수학적 및 통계적 언어의 몇 가지 필수적인 부분들을 다룬다. 그렇게 함으로써 결과적인 예측기가 우리가 아직 보지 못한 데이터에 대해 잘 수행하도록 모델을 훈련시키기 위한 현재의 모범 사례들을 간략하게 개괄한다.
$\quad$ 1장에서 언급했듯이, 우리가 기계 학습 알고리즘이라는 문구를 사용하는 데에는 훈련과 예측이라는 두 가지 다른 의미가 있다. 우리는 이 장에서 이러한 아이디어들과 더불어 여러 모델 중에서 선택하는 아이디어에 대해 설명할 것이다. 우리는 8.2장에서 경험적 위험 최소화 프레임워크를, 8.3장에서 최대 우도 원리를, 8.4장에서 확률적 모델의 아이디어를 소개할 것이다. 8.5장에서는 확률적 모델을 명시하기 위한 그래픽 언어를 간략하게 개괄하고, 마지막으로 8.6장에서는 모델 선택에 대해 논의한다. 이 절의 나머지 부분은 기계 학습의 세 가지 주요 구성 요소인 데이터, 모델, 학습에 대해 자세히 설명한다.
8.1.1 Data as Vectors
벡터로서의 데이터
우리는 데이터가 컴퓨터에 의해 판독될 수 있고 수치 형식으로 적절하게 표현될 수 있다고 가정한다. 데이터는 표 형태라고 가정하며, 여기서 표의 각 행은 특정 인스턴스나 예시를 나타내고 각 열은 특정 특성을 나타낸다고 생각한다. 최근 몇 년 동안 기계 학습은 유전체 서열, 웹페이지의 텍스트 및 이미지 콘텐츠, 소셜 미디어 그래프와 같이 표 형태의 수치 형식으로 명확하게 제공되지 않는 많은 유형의 데이터에 적용되었다. 우리는 좋은 특성을 식별하는 중요하고 까다로운 측면에 대해서는 논의하지 않는다. 이러한 측면의 대부분은 도메인 전문 지식에 의존하고 세심한 엔지니어링을 요구하며, 최근 몇 년 동안 데이터 과학이라는 영역 아래 통합되었다.

$\quad$ 표 형태의 데이터를 가지고 있을 때조차도 수치 표현을 얻기 위해 이루어져야 할 선택들이 여전히 존재한다. 예를 들어 표 8.1에서 성별 열은 남성을 나타내는 0과 여성을 나타내는 1이라는 숫자로 변환될 수 있다.

대안적으로 표 8.2에 나타난 바와 같이 성별은 각각 -1과 +1이라는 숫자로 표현될 수도 있다. 게다가 학사에서 석사, 박사로 대학 학위가 진행된다는 것을 알거나 제공된 우편번호가 단순한 문자열이 아니라 실제로는 런던의 특정 지역을 인코딩한다는 것을 인지하는 것과 같이 표현을 구성할 때 도메인 지식을 사용하는 것이 종종 중요하다. 표 8.2에서 우리는 표 8.1의 데이터를 수치 형식으로 변환했으며, 각 우편번호는 위도와 경도라는 두 개의 숫자로 표현된다. 기계 학습 알고리즘으로 직접 읽어 들일 가능성이 있는 수치 데이터조차도 단위, 스케일 및 제약 조건에 대해 신중하게 고려되어야 한다. 추가 정보가 없다면 데이터셋의 모든 열이 0의 경험적 평균과 1의 경험적 분산을 가지도록 이동 및 스케일 조정을 해야 한다. 이 책의 목적을 위해 우리는 도메인 전문가가 이미 데이터를 적절하게 변환했다고 가정한다. 즉, 각 입력 $x_n$ 은 특성, 속성 또는 공변량이라고 불리는 실수들의 D차원 벡터이다. 우리는 데이터셋이 표 8.2에 설명된 형태라고 간주한다. 새로운 수치 표현에서 표 8.1의 이름 열을 삭제했다는 점을 관찰하기 바란다. 이것이 바람직한 두 가지 주요 이유가 있다. 첫째로 식별자인 이름이 기계 학습 작업에 유용한 정보를 제공할 것이라고 기대하지 않으며, 둘째로 직원의 프라이버시를 보호하는 데 도움을 주기 위해 데이터를 익명화하기를 원할 수 있기 때문이다.
$\to$ ‘추가 정보’란, 관측된 데이터의 특성(단위, 측정 방식, 또는 데이터가 생성된 배경)에 대한 도메인 지식을 의미한다.
구체적인 예시로, 여러 특성이 이미 동일한 물리적 단위를 공유하고 그 상대적인 크기 자체가 중요한 기하학적 의미를 갖는 경우를 들 수 있다. 공간 좌표 데이터에서 $x,y,z$ 축이 모두 동일한 미터 단위로 측정되었따면, 이미 단위 스케일이 통일되어 있으므로 각 축을 개별적으로 표준화할 필요가 없다. 이떄 만약 각 축의 분산을 1로 표준화한다면 원래 데이터 포인트들이 형성하고 있던 비율이나 유클리드 거리가 왜곡된다.
또한 데이터의 경계나 분포에 대한 명확한 물리적 제약이 있는 경우도 ‘추가 정보’에 해당한다. 가령 이미지의 픽셀 값이나 범위가 정해져 있는(각도) 데이터와 같이 절대적인 최솟값과 최댓값이 고정되어 있는 경우, 경험적 분산을 1로 맞추는 과정보다 특정 구간 안으로 비율을 유지하며 크기를 조정하는 최소-최대 정규화가 더 타당할 수 있다.
$\to$ 표준화를 한다는 것이 모든 특성(feature)이 파라미터 업데이트에 균등하게 기여하도록 등방성을 주기 위함인데, 이때 실제 특정 feature가 타겟을 예측할 때 기여하는 ‘중요도’가 사라지는 것인가?
데이터를 표준화하는 과정은 물리적인 스케일(단위)를 통일시키는 연산이다. 만약 스케일이 다른 두 특성이 있다면, 모델의 손실함수 등고선은 값의 범위가 큰 축 방향으로 길쭉하게 늘어진 타원형이 된다. 이 상태에서 그래디언트는 곧바로 최적점을 향하지 못하고, 지그재그로 진동하여 학습 속도가 저하된다. 표준화를 통해 분산을 1로 맞추면, 이 등고선이 구형에 가까운 등방성을 띠게 되며, (음의)그래디언트는 최적점을 향한다. 또한 어떤 특성이 타겟 예측에 더 크기 기여하는지(어떤 가중치를 더 많이 키우거나 줄여야 하는지)를 찾아낼 수 있다.
$\to$ 표 8.2에서 표 8.1의 이름 열은 삭제했다. 기계학습 작업에 유용한 정보를 제공할 것이라 기대되는 feature는 어떤 feature일까?
기계학습의 핵심은, 훈련 데이터 사이에 패턴을 찾아내어 보지 못한 데이터에 대해 일반화를 수행하는 것이다. 어떤 행(데이터)이 고유한 값(이름이나 주민등록번호)을 가지는 특성은 어떤 수학적인 군집이나 규칙을 형성하지 못한다. 모델이 이런 고유 식별자를 학습한다면, 패턴이 아닌 훈련 데이터셋 자체를 1대1매핑(단순 암기)하게 되어 새로운 데이터에 대한 예측 오차가 커지는 과적합을 유발한다.
$\to$ 기수성(cardinality)이란 범주형 데이터가 가지는 고유한 값의 개수를 의미한다. ‘이름’, ‘주민등록번호’, ‘계좌번호’와 같은 특성은 전체 데이터 샘플의 수 $N$ 과 거의 동일한 매우 높은 기수성을 가진다. 따라서 이런 변수는 모델이 패턴을 학습할 없다. 그렇다면 이러한 고유 식별자 변수를 학습에서 무조건 배제해야 하는가?
주민등록번호같은 ID자체는 데이터마다 고유하므로 모델이 패턴을 학습할 수 없는 고기수성(high cardinality)변수이다. 하지만 이 변수로 사람의 나이, 성별, 출생 지역, 연령대, 생일 등과 같은 파생 변수를 만들 수 있다.
이름 변수는 비교적 기수성이 낮지만, 특수한 도메인이나 NLP에서 이름 자체의 패턴을 찾아내는 연구가 있다. 예를 들어 이름의 음절이나 문자 조합 패턴(예: 한국 이름의 경우 ‘철’, ‘민’은 남성, ‘영’, ‘희’는 여성 비율이 높음)을 모델에 학습시켜, 성별 정보가 누락된 고객의 성별을 확률적으로 추정한다던가, 영어 이름의 조합 패턴을 분석하여 출신 국가나 문화권을 유추하고, 그에 따른 다국어 서비스나 맞춤형 마케팅을 제공할 수도 있겠다.
혹은 성(last name)이 같고 주소지나 전화번호가 동일한 데이터를 연결하여 가구 단위의 소비 패턴을 묶어서 분석할 때 이름의 일부 정보가 사용될 수 있다.
특정 시대의 유행했던 이름 패턴을 분석하여, 나이 데이터가 불확실할 때 시대적 배경이나 사회 계층을 간접적으로 추론하는 사회학 연구에 활용되기도 한다.
이런 측면에서 고기수성 변수는 무조건 배제해야하는 대상이 아닌, 그 자체로 정보가 너무 압축되어 있기 때문에 모델이 소화하지 못한다고 생각할 수 있겠다.
$\to$ 데이터베이스의 관점에서는 카디널리티를 ‘상대적인 개념’으로써 이해하면 쉬운데, 예를 들어 주민등록번호같은 경우는 중복되는 값이 없으므로 기수성이 높다고(high-cardinality) 할 수 있다. 반면 이름같은 경우는 ‘주민등록번호에 비해’ 중복되는 값이 많으므로 비교적 기수성이 낮다고 할 수 있다. 여러 컬럼을 인덱싱할 때, 기수성이 높은 컬럼을 우선순위로 두는 것이 유리하다.
$\to$ 표준화한 데이터의 공분산행렬의 대각성분은 모두 1인가?
공분산 행렬을 행렬 $\Sigma$ 라고 할 때 행렬의 대각 성분 $\Sigma_{ii}$ 는 자기 자신과의 공분산을 의미하며 이는 해당 특성의 분산과 동일하다. 표준화를 거친 데이터는 평균이 0이 되고 분산이 1이 되는데, 이때 공분산 행렬을 구성하게 되면 주대각선에 위치한 모든 원소의 값은 1이 된다.
추가적으로 표준화된 데이터의 공분산 행렬은 원본 데이터의 피어슨 상관계수 행렬과 일치하다. 피어슨 상관계수는 두 변수의 공분산을 각각의 표준편차의 곱으로 나눈 값인데 이미 표준화를 통해 모든 feature의 표준편차가 1이 되었으므로, 분모가 1이 되어 공분산 값 자체가 상관계수가 된다. 상관계수 행렬에서 자기 자신과의 상관계수(대각 성분)이 항상 1이므로, 표준화된데이터의 공분산 행렬의 대각 성분이 모두 1이 된다는 사실은 자명하다.
$\quad$ 이 책의 이 부분에서 우리는 데이터셋의 예시 개수를 나타내기 위해 $N$ 을 사용하고 소문자 $n = 1, \dots, N$ 으로 예시들을 인덱싱할 것이다. 우리는 표 8.2와 같이 벡터의 배열로 표현되는 수치 데이터 집합이 주어졌다고 가정한다. 각 행은 특정 개별 $x_n$ 이며 기계 학습에서는 종종 예시 또는 데이터 포인트라고 불린다. 아래첨자 $n$ 은 이것이 데이터셋의 전체 $N$ 개 예시 중 $n$ 번째 예시라는 사실을 나타낸다. 각 열은 예시에 대해 관심 있는 특정 특성을 나타내며 우리는 특성을 $d = 1, \dots, D$ 로 인덱싱한다. 데이터가 벡터로 표현된다는 것을 상기해 보면 이는 각 예시 즉 각 데이터 포인트가 $D$ 차원 벡터임을 의미한다. 표의 방향은 데이터베이스 커뮤니티에서 비롯되었지만 10장과 같은 일부 기계 학습 알고리즘의 경우 예시를 열벡터로 표현하는 것이 더 편리하다.
$\quad$ 표 8.2의 데이터를 기반으로 나이로부터 연봉을 예측하는 문제를 고려한다. 이것은 각 예시 $x_n$ (나이)과 연관된 레이블 $y_n$ (연봉)을 가지는 지도 학습 문제라고 불린다. 레이블 $y_n$ 은 타겟, 반응 변수, 주석을 포함한 다양한 다른 이름들을 가진다. 데이터셋은 예시와 레이블 쌍의 집합인 ${(x_1, y_1), \dots, (x_N, y_N)}$ 으로 작성된다. 예시들의 표 ${x_1, \dots, x_N}$ 은 종종 연결되어 $X \in \mathbb{R}^{N \times D}$ 로 작성된다. 그림 8.1은 표 8.2의 가장 오른쪽 두 열로 구성된 데이터셋을 보여주며 여기서 $x$ 는 나이이고 $y$ 는 연봉이다.

그림 8.1 선형 회귀를 위한 토이 데이터. 표 8.2의 가장 오른쪽 두 열에서 가져온 $(x_n, y_n)$ 쌍의 훈련 데이터이다. 우리는 훈련 데이터의 일부가 아니며 수직 빨간색 점선으로 설명된 60세인 사람( $x=60$ )의 연봉에 관심이 있다.
$\quad$ 우리는 이전 단락에서와 같은 기계 학습 문제들을 공식화하기 위해 책의 첫 번째 부분에서 소개된 개념들을 사용한다. 데이터를 벡터 $x_n$ 으로 표현하면 2장에서 소개된 선형대수학의 개념들을 사용할 수 있다. 많은 기계 학습 알고리즘에서 우리는 추가적으로 두 벡터를 비교할 수 있어야 한다. 9장과 12장에서 볼 수 있듯이 두 예시 사이의 유사도나 거리를 계산하는 것은 유사한 특성을 가진 예시가 유사한 레이블을 가져야 한다는 직관을 공식화할 수 있게 해준다. 두 벡터의 비교는 3장에서 설명된 기하학을 구성할 것을 요구하며 7장의 기술들을 사용하여 결과적인 학습 문제를 최적화할 수 있게 해준다.
$\quad$ 데이터의 벡터 표현을 가지고 있으므로 우리는 데이터를 조작하여 잠재적으로 더 나은 표현을 찾을 수 있다. 우리는 원본 특성 벡터의 저차원 근사를 찾는 것과 원본 특성 벡터의 비선형적 고차원 조합을 사용하는 두 가지 방법으로 좋은 표현을 찾는 것에 대해 논의할 것이다. 10장에서 우리는 주성분을 찾음으로써 원본 데이터 공간의 저차원 근사를 찾는 예시를 볼 것이다. 주성분을 찾는 것은 4장에서 소개된 고윳값 및 특이값 분해의 개념들과 밀접하게 관련되어 있다. 고차원 표현의 경우 우리는 입력 $x_n$ 을 고차원 표현 $\phi(x_n)$ 을 사용하여 표현할 수 있게 해주는 명시적인 특성 맵 $\phi(\cdot)$ 를 볼 것이다. 고차원 표현의 주된 동기는 원본 특성들의 비선형 조합으로 새로운 특성을 구성할 수 있으며 이것이 결과적으로 학습 문제를 더 쉽게 만들 수 있다는 것이다. 우리는 9.2절에서 특성 맵에 대해 논의하고 12.4절에서 이 특성 맵이 어떻게 커널로 이어지는지 보여줄 것이다. 최근 몇 년 동안 딥러닝 방법론들은 새롭고 좋은 특성을 학습하기 위해 데이터 자체를 사용하는 데 가능성을 보여주었으며 컴퓨터 비전, 음성 인식 및 자연어 처리와 같은 분야에서 매우 성공적이었다. 우리는 책의 이 부분에서 신경망을 다루지는 않지만 신경망을 훈련하기 위한 핵심 개념인 역전파의 수학적 설명에 대해서는 5.6절을 참조하기 바란다.
차원축소가 어떻게 다중공선성을 완화하는가?
다중공선성은 입력 피처간 선형 상관관계가 있을 때 타겟을 예측하기 힘든 문제인데, 데이터의 공분산행렬을 고윳값분해하여 주성분을 찾아 투영하면 이 변환된 좌표계에서 변수의 상관계수는 0이 된다.
기하학적으로 각 변수들의 (선형적인)상관관계가 사라지는 경우, 비선형 관계에 미치는 영향은 어떠한가?
기존 기계학습에서 특성맵을 수학자가 어떻게 선험적으로 설계하는가?
8.1.2 Models as Functions
함수로서의 모델
데이터를 적절한 벡터 표현으로 가지게 되면 우리는 예측 함수(예측기라고 알려짐)를 구성하는 작업에 착수할 수 있다. 1장에서는 아직 모델에 대해 정확하게 표현할 언어를 가지고 있지 않았다. 책의 첫 번째 부분에서 배운 개념들을 사용하여 우리는 이제 모델이 무엇을 의미하는지 소개할 수 있다. 우리는 이 책에서 두 가지 주요 접근법을 제시하는데 그것은 함수로서의 예측기와 확률적 모델로서의 예측기이다. 우리는 전자를 여기서 설명하고 후자를 다음 소절에서 설명한다.
$\quad$ 예측기는 특정 입력 예시(우리의 경우 특성들의 벡터)가 주어졌을 때 출력을 생성하는 함수이다. 당분간은 출력이 단일 숫자 즉 실수형 스칼라 출력이라고 간주한다. 이것은 다음과 같이 작성될 수 있다.
여기서 입력 벡터 $x$ 는 $D$ 차원( $D$ 개의 특성을 가짐)이며 그에 적용된 함수 $f$ ( $f(x)$ 로 작성됨)는 실수를 반환한다. 그림 8.2는 입력값 $x$ 에 대한 예측값을 계산하는 데 사용될 수 있는 가능한 함수를 보여준다.

그림 8.2 예시 함수(검은색 실선 대각선)와 $x = 60$ 에서의 예측 즉 $f(60) = 100$ 이다.
$\quad$ 이 책에서 우리는 함수 해석학의 필요성을 수반할 모든 함수의 일반적인 경우를 고려하지 않는다. 대신 우리는 다음과 같은 선형 함수의 특수한 경우를 고려한다.
여기서 $\theta$ 와 $\theta_0$ 은 알려지지 않은 값이다. 이러한 제한은 2장과 3장의 내용이 기계 학습의 비확률적 관점(다음에 설명될 확률적 관점과 대조적으로)에 대한 예측기의 개념을 정확하게 명시하는 데 충분하다는 것을 의미한다. 선형 함수는 해결할 수 있는 문제의 일반성과 필요한 배경 수학의 양 사이에서 좋은 균형을 이룬다.
8.1.3 Models as Probability Distributions
확률 분포로서의 모델
우리는 종종 데이터를 진정한 근원적 효과에 대한 노이즈가 섞인 관측치로 간주하며, 기계 학습을 적용함으로써 노이즈로부터 신호를 식별할 수 있기를 바란다. 이를 위해서는 노이즈의 효과를 정량화하기 위한 언어가 필요하다. 우리는 또한 특정 테스트 데이터 포인트에 대한 예측값에 대해 우리가 가지는 신뢰도를 정량화하는 것과 같이, 일종의 불확실성을 표현하는 예측기를 원할 때가 많다. 6장에서 본 바와 같이 확률론은 불확실성을 정량화하기 위한 언어를 제공한다. 그림 8.3은 함수 예측의 불확실성을 가우시안 분포로 설명한다.

그림 8.3 예시 함수(검은색 실선 대각선)와 $x = 60$ 에서의 예측 불확실성(가우시안으로 그려짐)이다.
$\quad$ 예측기를 단일 함수로 고려하는 대신 예측기를 확률적 모델, 즉 가능한 함수들의 분포를 설명하는 모델로 고려할 수 있다. 우리는 이 책에서 유한 차원 매개변수를 가지는 분포의 특수한 경우로 우리 자신을 제한하며, 이는 확률 과정과 무작위 측도 없이도 확률적 모델을 설명할 수 있게 해준다. 이 특수한 경우에 대해 우리는 확률적 모델을 다변량 확률 분포로 생각할 수 있으며, 이는 이미 풍부한 모델 클래스를 허용한다.
$\quad$ 우리는 8.4절에서 확률(6장)의 개념을 사용하여 기계 학습 모델을 정의하는 방법을 소개할 것이며, 8.5절에서 확률적 모델을 간결한 방식으로 설명하기 위한 그래픽 언어를 소개할 것이다.
관측된 데이터의 무작위성(노이즈)를 걸러낼 수 있는가?
어떤 알고리즘이 특정 데이터에 더해진 노이즈의 정확한 값을 계산해내어 뺄 수 있다면, 그 노이즈는 더이상 예측 불가능한 불확실성이 아니라, 특정 패턴을 따르는 일부가 된다. 무작위 노이즈는 정의상 정보 이론적 엔트로피(불확실성)를 가지므로, 결정론적인 알고리즘(함수)으로 이를 개별적으로 역산하여 제거한다는 것은 모순이다.
8.1.4 Learning is Finding Parameters
학습은 매개변수를 찾는 것이다
학습의 목표는 결과적인 예측기가 보지 못한 데이터에 대해 잘 수행하도록 모델과 그에 상응하는 매개변수를 찾는 것이다. 기계 학습 알고리즘을 논의할 때 개념적으로 세 가지 뚜렷한 알고리즘 단계가 있다.
- 예측 또는 추론
- 훈련 또는 매개변수 추정
- 하이퍼파라미터 튜닝 또는 모델 선택
예측 단계는 이전에 보지 못한 테스트 데이터에 훈련된 예측기를 사용할 때이다. 즉 매개변수와 모델 선택은 이미 고정되어 있으며 예측기는 새로운 입력 데이터 포인트를 나타내는 새로운 벡터에 적용된다. 1장과 이전 소절에서 개괄한 바와 같이 우리는 이 책에서 예측기가 함수인지 확률적 모델인지에 상응하는 두 가지 기계 학습 학파를 고려할 것이다. 우리가 확률적 모델을 가질 때 (8.4절에서 더 논의됨) 예측 단계를 추론이라고 부른다.
Remark. 불행히도 다른 알고리즘 단계들에 대해 합의된 명명법은 없다. 추론이라는 단어는 때때로 확률적 모델의 매개변수 추정을 의미하는 데에도 사용되며 비확률적 모델에 대한 예측을 의미하는 데에도 덜 빈번하게 사용될 수 있다.
$\quad$ 훈련 또는 매개변수 추정 단계는 훈련 데이터를 기반으로 예측 모델을 조정할 때이다. 우리는 훈련 데이터가 주어졌을 때 좋은 예측기를 찾고자 하며 이를 수행하기 위한 두 가지 주요 전략이 있다. 품질의 어떤 척도에 기반하여 최상의 예측기를 찾거나 (때때로 점 추정을 찾는 것이라고 불림) 베이지안 추론을 사용하는 것이다. 점 추정을 찾는 것은 두 유형의 예측기 모두에 적용될 수 있지만 베이지안 추론은 확률적 모델을 요구한다.
$\quad$ 비확률적 모델의 경우 우리는 8.2절에서 설명하는 경험적 위험 최소화의 원리를 따른다. 경험적 위험 최소화는 좋은 매개변수를 찾기 위한 최적화 문제를 직접적으로 제공한다. 통계적 모델의 경우 최대 우도 원리를 사용하여 매개변수의 좋은 집합을 찾는다 (8.3절). 우리는 추가적으로 확률적 모델을 사용하여 매개변수의 불확실성을 모델링할 수 있으며 이는 8.4절에서 더 자세히 살펴볼 것이다.
$\quad$ 우리는 데이터에 적합한 좋은 매개변수를 찾기 위해 수치적 방법론을 사용하며 대부분의 훈련 방법론은 목적 함수의 최댓값 예를 들어 우도의 최댓값을 찾기 위한 언덕 오르기 접근법으로 생각할 수 있다. (최적화에서의 관례는 목적 함수를 최소화하는 것이다. 따라서 기계 학습 목적 함수에는 종종 추가적인 마이너스 기호가 있다.) 언덕 오르기 접근법을 적용하기 위해 5장에서 설명된 기울기를 사용하고 7장의 수치적 최적화 접근법을 구현한다.
기계학습의 전반적인 철학은 “오차(Error), 비용(Cost), 손실(Loss), 위험(Risk)을 줄인다”는 개념에 맞춰져 있다. 실제값과 예측값의 차이를 최소화, 분류가 틀릴 확률을 최소화. 거의 모든 목적함수가 최소화를 목표로 설계되어 있는데, 우도(likelihood)만 최대화를 요구한다. 때문에 마이너스를 붙여 음의 로그 우도를 만들면 이또한 ‘손실’ 함수처럼 취급할 수 있게 된다.
그래디언트를 따라 파라미터 공간의 바닥으로 공이 굴러 떨어지는 이미지가 기하학적으로 손실을 줄이는 사실을 직관적으로 받아들이기 쉽다.
또한 어떤 함수 $f(x)$ 가 $x = \theta^{*}$ 에서 최댓값을 가진다면, 그 함수를 x축 기준으로 뒤집은 $-f(x)$ 는 정확히 동일한 위치인 $x = \theta^{*}$ 에서 최솟값을 가진다.
$\quad$ 1장에서 언급했듯이 우리는 모델이 미래 데이터에 대해 잘 수행하도록 데이터를 기반으로 모델을 학습하는 데 관심이 있다. 모델이 훈련 데이터에만 잘 적합되는 것으로는 충분하지 않으며 예측기는 보지 못한 데이터에 대해 잘 수행되어야 한다. 우리는 교차 검증을 사용하여 미래의 보지 못한 데이터에 대한 예측기의 동작을 시뮬레이션한다 (8.2.4절). 이 장에서 볼 수 있듯이 보지 못한 데이터에 대해 잘 수행된다는 목표를 달성하기 위해 훈련 데이터에 잘 적합되는 것과 현상에 대한 단순한 설명을 찾는 것 사이의 균형을 맞출 필요가 있다. 이 상충 관계는 정규화를 사용하거나 (8.2.3절) 사전을 추가하여 (8.3.2절) 달성된다. 철학에서 이것은 귀납이나 연역이 아니라 귀추법이라고 불린다. 스탠퍼드 철학 백과사전에 따르면 귀추법은 최선의 설명으로의 추론 과정이다.
귀추법(abduction)은 가정을 선택하는 추론의 한 방법으로써, 만약 사실이라면 관계있는 증거를 가장 잘 설명할 것 같은 가정을 선택하는 방법이다. 귀추법은 결과를 먼저 보고, 원인(가설)을 역추적한다. 확실하지는 않지만, 현재 상황을 설명하는 ‘가장 그럴듯한 최선의 설명’을 찾아낸다.
연역법은 전제가 참이면 결론은 참임을 보이지만, 새로운 지식을 창출하지는 못한다.
귀납법은 여러 사례를 통해 보편적인 규칙을 만들어낸다. 기계 학습에서 데이터를 모아 패턴을 찾는 것은 모두 귀납법이다.
$\quad$ 우리는 종종 사용할 구성 요소의 수나 고려할 확률 분포의 클래스와 같이 예측기의 구조에 대한 고수준의 모델링 결정을 내려야 한다. 구성 요소의 수를 선택하는 것은 하이퍼파라미터의 예시이며 이 선택은 모델의 성능에 상당한 영향을 미칠 수 있다. 다른 모델들 중에서 선택하는 문제는 모델 선택이라고 불리며 8.6절에서 설명한다. 비확률적 모델의 경우 모델 선택은 종종 중첩 교차 검증을 사용하여 수행되며 이는 8.6.1절에서 설명된다. 우리는 또한 모델의 하이퍼파라미터를 선택하기 위해 모델 선택을 사용한다.
Remark. 매개변수와 하이퍼파라미터 사이의 구분은 다소 자의적이며 대부분 수치적으로 최적화될 수 있는 것과 탐색 기술을 사용해야 하는 것 사이의 구분에 의해 주도된다. 구분을 고려하는 또 다른 방법은 매개변수를 확률적 모델의 명시적인 매개변수로 간주하고 하이퍼파라미터(더 높은 수준의 매개변수)를 이러한 명시적 매개변수의 분포를 제어하는 매개변수로 간주하는 것이다.
$\quad$ 이어지는 절에서 우리는 기계 학습의 세 가지 특징인 경험적 위험 최소화(8.2절), 최대 우도 원리(8.3절), 확률적 모델링(8.4절)을 살펴볼 것이다.
$\to$ 파라미터(가중치)가 함수의 기울기를 조정한다면, 하이퍼파라미터(다항식의 차수, 트리의 깊이, 신경망의 층 수 등)은 함수의 유연성을 의미한다. 만약 모델에게 파라미터 뿐만 아니라, 하이퍼파라미터도 훈련 오차가 작아지게 학습한다면, N개 데이터포인트가 주어졌을 때, N-1차 함수를 사용하여 오차를 거의 0에 가깝게 줄일 수 있다.
$\to$ 훈련 데이터와 테스트 데이터가 동일한 모집단(확률 분포)에서 샘플링되었는데 모델한테 훈련 데이터를 적당히 잘 맞추라고 하는 행동은 직관적으로 모순처럼 보인다.
그러나 이는 데이터의 무작위성을 배제했기 때문인데, 데이터가 생성되는(=샘플링되는, 관측되는) 환경을 수식으로 표현하면 다음과 같다.
(이때 노이즈는 ‘훈련 데이터용 노이즈 집합’이나 ‘테스트 데이터용 노이즈 집합’으로 나뉘는게 아닌, 모든 개별 데이터 하나하나가 독립적인 노이즈 변수( $\epsilon_i$ )를 가진다.)
여기서 $f(x)$ 는 두 데이터의 패턴이며, $\epsilon$ 은 평균이 0인 확률분포에서 무작위로 추출되는 노이즈이다. 이때 중요한 점은 $\epsilon_{train}$ 과 $\epsilon_{test}$ 가 서로 독립적인 확률 변수라는 점이다. 즉 훈련 데이터에 +0.5의 노이즈가 더해졌다고 해서, 테스트 데이터에도 +0.5가 더해질 보장이 전혀 없다.
만약 모델 $\hat{f}(x)$ 를 훈련하여 훈련 데이터의 오차(MSE)를 0으로 만들었다고 가정해보자.
모델이 훈련 데이터를 완벽히 맞췄다는 것은, 데이터의 패턴인 $f(x)$ 뿐만 아니라, 훈련 데이터 고유의 무작위 노이즈 $\epsilon_{train}$ 까지 가중치로 계산했음을 뜻한다. 이때 예측 오차는 다음과 같다.
모델은 $\epsilon_{train}$ 의 패턴이 나올 것이라 예상하고 예측하지만, 실제 테스트 데이터에는 전혀 다른 방향의 $\epsilon_{test}$ 가 존재한다. 두 독립적인 확률 변수의 차이로 인해, 예측 오차의 분산은 커질 수 밖에 없다.