Machine Learnung에서 수학의 역할이 무엇일까요 ?
수학은 목적함수를 정의하고, 목적함수가 최저가 되는 점을 찾아주는 최적화 이론을 제공합니다. 최적화 이론에 규제, 모멘텀, 학습률, 멈춤조건과 같은 제어를 추가하여 알고리즘 만들어가는 것입니다. 우리는 이런 알고리즘에 적절한 값을 입력하고 설계하고 데이터 실험하는 역할을 하게 됩니다. 올해는 이 긴 흐름을 쭉 작성해보고자 합니다.
우선 최적화에 대해서 설명하려 합니다
이번 포스팅 목차는 이렇습니다.
1. 순수 수학 최적화와 기계 학습 최적화의 차이
2. 머신러닝 최적화 알고리즘 방법
3. $\Theta$ 가 가장 작아지는 방법(미분)
4. 여러개 변수의 최적화(편미분)
5. 머신러닝에서 독립변수와 종속변수
1. 순수 수학 최적화와 기계 학습 최적화의 차이
- 순수수학 : $ f(x_1,x_2) = -(\cos (x_{1}^{2}) + -(\sin (x_{2}^{2}) )^2$의 최저점을 찾는 것
주로 미분을 사용하며, 미분가능한 함수의 최저점을 찾는 문제 - 머신러닝 : 최적화는 단지 훈련집합이 주어지고, 훈련집합에 따라 정해지는 목적함수의 최저점을 찾아야함
> 주로 SGD(스토캐스틱 경사 하강법)을 사용합니다. 또한 오류 역전파 알고리즘을 사용해야하는데 추후 포스팅 해보겠습니다.
즉, 머신러닝의 최적화란
$J(\Theta)$를 최소로 하는 최적해 $J(\hat{\Theta})$를 찾는 것입니다.
2. 머신러닝의 최적화 알고리즘 방법
낱낱탐색(exhaustive Search) 알고리즘, 무작위 탐색(random Search) 알고리즘, 머신러닝의 최적화 알고리즘 등이 있지만 머신러닝 최적화 알고리즘에 대해서만 알고 넘어가면 될것 같습니다.
머신러닝의 최적화 알고리즘(수치적 방법) 1 난수를 생성하여 초기해 $ \Theta $를 설정한다. 2 repeat 3 $J({\Theta})$가 작아지는 방향 $d({\Theta})$를 구한다 ${\Theta} = {\Theta} + d({\Theta}) $ 4 until(멈춤 조건) -- 변화가 크게 없다면 멈춰도 되겠죠 5 $\hat{\Theta} = {\Theta}$ |
3. $\Theta$ 가 가장 작아지는 방법(미분)
머신러닝에선 미분에 의한 최적화를 하게 됩니다.
$ f(x) = x^{2}-4x+3$
$ f'(x) = 2x - 4 $
1. f'(4)일때, 값은 4입니다. 이때 최저점은 더 왼쪽인 x가 2일때인 것을 알 수 있습니다.
2. f'(1)일때는 반대로 최저점은 오른쪽에 있다는 것을 알 수 있습니다.
3. 따라서 도함수 값이 양수이면 왼쪽으로, 음수이면 왼쪽으로 가야 최저점을 찾을 수 있겠네요
위에서 본 $J({\Theta})$가 작아지는 방향 $d({\Theta})$를 구하는 것을 말합니다.
머신러닝의 최적화는 $d({\Theta}) $ 만큼 조금씩 이동을 반복하면서 최저점을 찾는 방법을 말합니다.
4. 변수가 여러개인 함수의 미분(편미분)
3번과 다르게 머신러닝에선 많은 변수로 원하는 값을 계산합니다. 변수 각각에 대해 독립적으로 미분하는 것을 편미분이라고 합니다. 편미분의 결과는 벡터 형태가 되는데, 이 미분 값이 이루는 벡터를 그레디언트(Gradient)라고 합니다. 앞으로 자주 보게 될 것입니다 :)
* 이런식으로 표현합니다 : $\triangledown f,\frac{\mathrm{d} f}{\mathrm{d} x}$
5. 머신러닝에서 독립변수와 종속변수
보통 우리는 $ y = wx + b$ 에서 y는 종속변수, x는 독립변수라고 알고 있었습니다. 이때 y와 x의 관계를 이용하여 예측을 해나갑니다. 선형회귀 모델에서 y는 키, x는 몸무게로 정의하면 몸무게를 알면 키를 예측할 수 있는 것이죠.
하지만 머신러닝에서는 조금 다릅니다. 머신러닝에는 예측에 단계에서 필요한 것이 아니라 학습에 단계에서 필요합니다.
약간 이해가 헷갈리는 개념입니다. 머신러닝에서 예측단계라는 것은 최적화를 이미 완료했다는 것이거든요. 그래서 머신러닝에선 예측 단계가 아닌 학습 단계에서 독립변수, 종속변수가 필요합니다.
예를 들면 최적화는 예측 단계가 아니라 학습 단계에서 필요한데요.다음과 같은 식이 있습니다.$J(\Theta) = \frac{1}{n} \sum_{n}^{i=1}(f_\Theta(x_i)-y_i)^2$ 여기서 $\Theta$가 독립변수이고 e = $J(\Theta)$라 하면 e(에러)가 종속 변수가 되는 것입니다.
이번 포스팅에서는 Latex표현을 사용해서 시간이 조금 걸렸네요.
다음 포스팅은 최적화를 만드는 그레디언트(경사 하강 알고리즘)에 대해서 알아보겠습니다.
감사합니다!
'Data > ML&DL' 카테고리의 다른 글
CNN을 활용해서 주식차트를 학습해서 예측하자. 1부. 서론~데이터수집 (0) | 2023.05.29 |
---|---|
Attention(Seq2Seq와 Attention) (0) | 2023.04.23 |
RNN(Recurrent Neural Network) (0) | 2023.04.23 |
FFNN(Feed Forward Neural Net) (0) | 2023.04.22 |
음성인식개론(문제정의, 저장방법, Tokenization) (0) | 2023.04.22 |