[머신러닝] 데이터 행렬과 모델
데이터 행렬 (Data Matrix)
$N$개의 데이터 샘플이 있고, 각 샘플이 $D$차원 벡터라고 하자.
하나의 샘플을 아래와 같이 열벡터로 표현할 수 있다.
\[\mathbf{x}^{(i)}=\begin{bmatrix}x_1^{(i)}\\\vdots\\x_D^{(i)}\end{bmatrix}\in\mathbb{R}^D\]$N$개의 샘플로 이루어진 데이터 샘플 집합은 아래와 같이 행렬로 표현할 수 있다. 각 행이 하나의 샘플을 의미한다.
\[X=\begin{bmatrix}-\left(\mathbf{x}^{(1)}\right)^\top-\\\vdots\\-\left(\mathbf{x}^{(N)}\right)^\top-\end{bmatrix} = \begin{bmatrix} x_1^{(1)}&\cdots&x_D^{(1)}\\ \vdots&&\vdots\\ x_1^{(N)}&\cdots&x_D^{(N)} \end{bmatrix} \in\mathbb{R}^{N\times D}\]각 데이터 샘플에 대해 라벨 (정답)이 존재한다면, 라벨은 $N$차원 벡터이다.
\[\mathbf{y}=\begin{bmatrix}y_1\\\vdots\\y_N\end{bmatrix}\in\mathbb{R}^N\]입력 변수 $x$를 독립 변수, 출력 변수 $y$를 종속 변수라고 하며, 하나의 데이터 쌍은 일반적으로 $(\mathbf{x},y)$로 표현한다.
이때 입력 변수는 데이터 샘플을 의미하는 것이 아니라, 샘플을 이루는 특징 (feature)을 의미한다.
즉, 입력 변수가 1개라는 뜻은 데이터 샘플의 개수가 1개인 것이 아니라 데이터의 특징이 1차원이라는 뜻이다.
모델
모델이 데이터로 학습하면서 찾아가는 값을 파라미터라고 한다.
일반적으로 모델의 파라미터를 $\theta$, 예측값을 $\hat{y}$으로 표현한다.
데이터 샘플 $\mathbf{x}^{(i)}$에 대해 실제 정답 $y^{(i)}$를 예측하는 모델을 아래와 같이 표현할 수 있다.
\[f(\mathbf x^{(i)};\boldsymbol\theta)=\hat{y}^{(i)}\]세미콜론 $;$은 입력 변수와 파라미터를 구분하는 역할을 한다. 즉, $f(\mathbf x;\boldsymbol\theta)$는 $\theta$라는 파라미터로 정의된 모델 $f$에 데이터 $\mathbf{x}$를 입력한다는 의미이다.
모델은 실제 정답 $y^{(i)}$에 가장 근접한 예측을 할 수 있는 파라미터 $\boldsymbol\theta^*$를 찾도록 학습된다.
확률 모델 (Probabilistic Model)
확률 관점에서 모델은 입력 $\mathbf{x}$가 주어졌을 때 출력 $y$가 발생할 확률을 추정하는 함수로 본다.
\[P(y\mid\mathbf{x};\boldsymbol\theta)\]즉, 위의 식 자체가 확률 모델이다.
\[p(\mathbf y\mid\mathbf{X};\boldsymbol\theta)= \prod_{i=1}^nP(y^{(i)}\mid\mathbf{x}^{(i)};\boldsymbol\theta)\]이때 최적의 파라미터 $\boldsymbol\theta^*$는 일반적으로 주어진 데이터에서 우도를 최대화하도록 선택된다.