다음 장부터 3회에 걸쳐 딥러닝을 포함한 머신 러닝에 필요한 수학의 기초로 '미분', '선형 대수학', '확률 통계'의 3가지에 대한 요점을 짧게 소개하겠습니다.
그 전에, 이 장에서는 기계 학습(machine learning)의 개념에 대해 큰 틀을 잡고, 어느 부분에서 각 항목이 등장하는지 파악해 둡시다.
2.1 기계 학습이란?
기계 학습은 주어진 데이터에서 알 수 없는 데이터에 대하여 특정 규칙이나 패턴을 추출하고, 이를 바탕으로 미지의 데이터를 분류하거나 예측하는 방법을 연구하는 학문 영역입니다. 기계 학습은 다양한 기술에 응용되고 있으며, 예를 들어 화상 인식, 음성 인식, 문서 분류, 의료 진단, 스팸 메일 탐지, 상품 추천 등 다양한 분야에서 중요한 역할을 하고 있습니다.
2.2. 지도 학습의 개념
기계 학습의 대표적인 문제 설정으로 지도 학습(supervised learning)이라는 것이 있습니다. 이것은 문제에 대한 답을 미리 준비해두고, 예상된 응답과 실제 응답의 간극이 작아지도록 훈련하는 방법입니다.
좀 더 구체적으로 설명하면, 아래 그림처럼 빨간 점들의 모임이 있다고 합시다.
이 그림은 가로축이 x축, 세로축이 t축입니다. 이 빨간 점 하나하나는 x와 t가 만나는 점을 나타냅니다. 그림에서 x=0 부근에서는 t도 0 부근의 값이 많은 듯합니다. 또한, x=200 부근에서는 t는 40 전후의 값을 취하고 있는 것 같습니다. 그럼 x=−400 일 때, t는 어떤 값을 가질까요?
이와 같이, 주어진 데이터에서 관계를 예상하여 미지의 데이터에 대해서도 더 좋은 전망을 세우는 것이 지도 학습의 대표적인 목표 중 하나입니다.
2.2.1 직선에 의한 근사
그렇다면 다음과 같은 직선의 방정식을 생각해 봅시다.
f(x) = wx + b
이것은 하나의 입력 x가 주어지면 하나의 출력을 반환하는 함수 f를 나타내고 있고, 이 함수는 기울기 w와 절편 b의 2개의 파라미터로 특징지어져 있습니다. 위의 그림 w=0.5, b=50인 경우를 나타냅니다. 여기서 첫 그림에 있던 빨간 점의 군집에서 보이는 x와 t의 관계를, f(x) = wx + b 직선에 의해 근사하는 것을 생각해 봅시다.
이 직선을 빨간 점 위에 겹쳐보면 다음과 같이 됩니다.
그다지 x와 t의 관계를 잘 나타내고 있는 것 같지 않습니다.
식 f(x) = wx + b로 표현되는 직선은 w와 b가 결정되면, 어떤 직선이 될지 결정됩니다. 즉, w와 b 값을 잘 결정하여 빨간 점의 모임에 최대한 근접한 직선을 찾을 수 있다면, 새로운 x가 주어졌을 때 t값이 어떻게 될지 예측이 가능합니다. 이때, 미지의 데이터에 대해서도 정밀하게 예측이 가능한 것을 일반화 성능(generalizability)이 높다고 합니다.
또한 매개 변수 w와 b에 의해 특징지어진 직선의 방정식 f(x) = wx + b처럼, 매개 변수를 사용하여 어떤 계산을 실시하는 것으로, 주어진 데이터의 특징과 관계성을 나타내는 것을 이후, 간단히 모델 (model)이라고 부르겠습니다.
그럼 x와 t의 관계를 잘 나타내는 모델의 매개 변수 w와 b는 어떻게 결정하면 좋을까요. 아까처럼 빨간 점의 모임을 눈으로 보고 x와 t의 관계에 이유를 달아 최적의 w와 b의 값을 사람 손으로 직접 찾아서 맞히는 일은, 만약 붉은 점이 3차원 공간과 4차원, 5차원... 같이 고차원 공간에 흩어진다면, 눈으로는 쫓을 수 없기 때문에 매우 곤란해집니다. 그래서 컴퓨터에 이 빨간 점 데이터를 주고 자동으로 최적의 w와 b를 찾도록 하는 것이 기계 학습에서 이루어지는 대표적인 처리 중 하나입니다.
2.3 목적 함수
컴퓨터가 좋은 파라미터(매개 변수)를 자동으로 찾아내기 위해서는 무엇이 좋은 매개 변수인가라는 지표를 정의해야 합니다. 이러한 지표를 나타내는 함수를 목적 함수(objective function)라고 합니다.
여기에서 위 직선의 예로 다시 생각해 봅시다. 우선, 식 f(x) = wx + b에 있는 x를 주고, w와 b를 사용하여 wx+b라는 계산이 이루어집니다. 그 결과를 y로 나타낼 수 있습니다.
여기에서 x를 입력 변수(input variable), y를 출력 변수(output variable)라고 합니다.
이제 위 그림의 빨간 점의 집합 중 하나의 점을 골라 그 x좌표 값을 식 f(x) = wx + b에 적용해 봅시다.
이때, 식에 주어진 구체적인 x값을 입력값(input value)이라고 합니다.
그리고 매개 변수 w와 b를 이용한 계산 결과로 얻어지는 구체적인 y값을 예측값(predicted value)이라고 합니다.
이때, 실제 빨간 점이 갖는 t값은, 이 식이 예측하고자 하는 목표 값이므로 목표값(target value)이라고 합니다.
목적 함수는 종종 모델의 예측값과 목표값을 받고 그 사이의 차를 측정하여 반환하는 함수입니다. 차이는 작을수록 모델의 예측이 맞다는 것을 의미하기 때문에, 이 경우 목적 함수의 값을 최소화하는 파라미터를 찾는 것이 목적입니다.
2.3.1 제곱 오차 함수
목적 함수의 구체적인 예를 들겠습니다.
예를 들어, 적당히 빨간 점을 하나 선택하고, 그 x좌표가 100이고, t좌표가 40이었다고 합시다. 이 값을 x1=100, t1=40 으로 둡니다. 그리고 다른 점도 가져와서 좌표값 (x,t)를 (x2,t2)라고 쓰기로 합니다. 같은 방법으로 200개의 빨간 점을 가져왔다면 200개의 x값 x1,x2,…,x200 과 t1,t2,…,t200을 얻을 수 있습니다.
이 x1,x2,…,x200 에서 t1,t2,…,t200를 예측하는 것이 목표입니다.
즉, x1,x2,…,x200 이 입력값이고, t1,t2,…,t200 이 목표값입니다.
그리고 이 200개의 x의 모든 매개 변수에 대해, 식 f(x) = wx + b에 의한 예측치 y를 계산한 결과, y1,y2,…,y200 이 얻어졌다고 합시다. 이때, 이러한 예측치의 정확도를, 해당 목표값 사이의 차이의 제곱에 의해 측정한 것이 제곱 오차 함수(squared error function)라는 것입니다.
구체적으로는, n개의 예측 값을 yn, 목표치를 tn이라고 하면, 다음과 같은 함수입니다.
이것은 n의 데이터에 대한 예측 값과 목표 값의 차이를 나타냅니다. 그러나 하나의 데이터에 대해서 예측을 잘하더라도, 그 이외의 데이터에 대해 전혀 예측할 수 없다면, 그 모델이 새로운 값에 대해 정확한 예측을 하기가 어렵습니다. 그래서 200개의 데이터에 대하여 이 제곱 오차를 합한 수를 200으로 나눈 평균으로 판단합니다.
∑라는 기호는 합계를 나타냅니다. 위의 식은 (tn - yn)의 제곱값을 n=1부터 순서대로 n=2,n=3,…,n=200 까지 계산하고, 모두 더하여 200으로 나누는 것을 의미합니다.
이것은 평균 제곱 오차(mean squared error)라고 연속 값을 예측하는 회귀 문제에 자주 사용되는 대표적인 목적 함수의 하나입니다. 이 함수는 예측 값과 목표 값이 모든 n에서 완전히 일치할 때만 0이 되고, 그 외에는 반드시 양수 값을 취합니다. 따라서 이 목적 함수의 값을 최소화하는 w와 b가 최적의 매개 변수입니다. 좋은 매개 변수란 무엇인지 정량적으로 정의할 수 있었기 때문에, 다음은 컴퓨터에게 정답을 탐색시키는 방법을 생각해 봅시다.
2.4 목적 함수 최적화
함수를 최소화하는 입력 변수값을 구하는 걸 최적화라고 합니다. 이 최적화를 컴퓨터가 자동으로 하게 하려면 어떻게 해야 할까요?. 예를 들어, 다음과 같은 함수가 있다고 합시다. 가로축이 입력 값, 세로축이 출력값입니다.
이때, 함수에 적당한 값을 먼저 입력해보고 얻은 값을 사용하여 그 값이 작아지는 방향으로 입력값을 조금씩 움직여서 함수가 최소가 되는 값을 찾는 방법이 있습니다.
2.5 기계 학습에 사용되는 수학
이러한 최적화를 수행하는 데 필요한 것이 미분(differential)의 지식입니다. 왜냐하면 '입력값을 얼마나 움직이면 출력값이 작아질까'를 알기 위해서는 대상 함수를 미분할 필요가 있기 때문입니다. 자세한 내용은 다음 장에서 설명합니다.
또한 처음에 나온 빨간 점의 군집에 알맞게 직선을 구하는 문제는 하나의 값을 입력하여 하나의 값이 출력되는 함수였습니다만, 여러 값을 동시에 취급할 때 필요한 것이, 선형 대수학(linear algebra)의 지식입니다.
또한 붉은 점이 만일 직선에 딱 맞는 데이터였는데, 관측시에 어떠한 이유로 인하여 노이즈가 생겨버려 직선 주변에 흩어져 있다면, 그 노이즈가 어느 정도의 범위에서 값의 차이를 발생시키는지 알고 싶을 것입니다. 이때, 필요한 것이 확률(probability) · 통계(statistics)의 지식입니다.
이 세 가지에 대해 기계 학습에 필요한 최소한의 지식을 추려서, 이후 3개의 장으로 설명합니다.
다음 장은 우선 미분입니다.
'AI · 인공지능 > 딥러닝 Tutorial' 카테고리의 다른 글
[딥러닝 입문 - 4] 선형 대수의 기초(4/9) (0) | 2020.07.18 |
---|---|
[딥러닝 입문 - 4] 선형 대수의 기초(3/9) (0) | 2020.07.17 |
[딥러닝 입문 - 4] 선형 대수의 기초(2/9) (0) | 2020.07.16 |
[딥러닝 입문 - 4] 선형 대수의 기초(1/9) (0) | 2020.07.15 |
[딥러닝 입문 - 3] 미분의 기초 (3/3) (0) | 2020.07.12 |
[딥러닝 입문 - 3] 미분의 기초 (2/3) (0) | 2020.07.11 |
[딥러닝 입문 - 3] 미분의 기초 (1/3) (1) | 2020.07.10 |
[딥러닝 입문 - 1] 딥러닝 시작하기 (0) | 2020.07.04 |