[기계학습] 머신러닝이란?

공부한 것들을 제 생각과 함께 정리한 것이기에 오류가 있을 수 있습니다.
오타나 잘못된 정보는 지적해 주시면 감사하겠습니다.

머신러닝이란?

머신러닝은 말 그대로 기계가 사람 대신 학습하는 것이다.
여기서 학습이란 기계가 적절한 답을 도출해 내도록 훈련시키는 과정을 의미한다.

분류 예제1

예를 들어 위와 같은 그래프에 세모와 엑스를 분류하는 선을 머신러닝을 통해 찾을 수 있다.

세로축을 y, 가로축을 x라 했을 때 어떤 직선을 y=wx+b라 하자.
이때 w는 기울기, b는 y절편이다.

기계가 두 데이터를 분류하는 선을 찾는 과정은 다음과 같다.

  1. 처음 y=wx+b의 w, b값을 임의의 값으로 초기화 한다.
  2. 계산한 y=wx+b와 실제 데이터와의 오차를 확인한다.
  3. 오차를 줄이는 방향으로 w, b를 갱신한다.
  4. 2번부터 다시 반복한다.

머신러닝 예제2

위의 과정에서 h(x)=wx+b를 가설함수(Hypothesis)라 부른다.
특히 w, b와 같이 갱신되는 값은 가중치(weight)이라 한다.
머신러닝의 목표는 적절한 가중치를 가지는 가설함수를 찾는것이라 할 수 있다.

손실함수와 최적화

오차를 구하기 위해 비용함수(cost function)를 사용한다.
비용함수는 어떤 형태든 오차를 나타낼 수 있으면 된다.
다만 후술할 최적화 기법때문에 함수의 생김새가 아래로 볼록할수록 좋다.
아래는 평균 제곱 오차(Mean Square Error, MSE)로 간단한 비용함수의 예다.

$E(W,b)=\frac{1}{m}\sum^{m}_{i=1} (H(x_i)-y_i)^2$

여기서 $H(x_i)$는 가설함수의 출력값, $y_i$는 훈련 데이터의 결과값(정답)을 의미한다.

우리는 오차가 가장 작게 나오는 가중치를 찾아야 한다.
최소값을 찾기 위해 아래의 식과 같이 미분을 사용한다.

$W:=W-\alpha\cfrac{\delta E(W,b)}{\delta W}$

위의 식은 경사하강법으로, $\alpha$는 Hyper parameter로 사람이 직접 적절한 값을 맞춰주어야 한다.
ㄴ이렇게 적절한 가중치를 찾아가는 과정을 최적화(optimizer)라 한다.

지도학습과 비지도학습

정답에 맞춰가며 학습하는 방법을 지도학습(supervised learning)이라 한다.
예를 들어 라벨링된 강아지, 고양이 사진을 가지고 강아지인지 고양이인지 분류하도록 학습하는건 지도학습으로 볼 수 있다.

비지도학습은 정답이 주어지지 않고 기계 스스로 데이터의 특징을 파악하는 학습이다. 이를 통해 데이터를 비슷한 것끼리 분류할 수 있다.

Updated:

Leave a comment