안녕하세요 :)
오늘은 딥러닝의 기초 개념 중 하나인 경사하강법과 회귀분석에 대해서 간단하게 다뤄보겠습니다.
1. 경사하강법 (Gradient descent)
신경망에서는 z = f(x, y)를 최소화하는 x, y 값을 구하는 것이 목표입니다.
이러한 목표를 달성하기 위한 방법 중 하나가 바로 경사하강법(Gradient descent)입니다.
경사하강법은 그래프 상의 점을 조금씩 움직여서 함수의 최소 값을 구하는 방식입니다.
점을 조금씩 움직일 때, 가장 가파른 방향으로 이동하게 됩니다.
이러한 방법을 수치해석에서는 최급하강법(method of steepest descent)라고 합니다.
앞서 배운 내적을 이용한 근사식 표현으로 돌아가 보겠습니다.
z = f(x, y)에서 x, y를 △x, △y 만큼 변화했을 때, z 값의 변화량을 △z = f(x + △x, y + △y) - f(x, y)라고 정의했습니다.
z 값의 변화량 △z를 위와 같이 정의할 수 있었고, 다음과 같이 두 벡터의 내적으로도 나타낼 수 있었습니다.
이전 게시물에서 벡터에 대해서 배웠을 때,
두 벡터의 내적의 최솟값을 두 벡터가 반대 방향을 향하고 있는 경우라고 배웠습니다. (기억이 안나시는 분들은 여기를 클릭하세요!)
그러므로, 위의 식에서 z 값의 변화량 △z를 최소로 하기 위해서는 두 벡터가 반대 방향을 향하고 있어야 합니다.
점 (x, y)에서 (x + △x, y + △y)로 이동하는 경우 z값의 변화량이 최소가 되기 위해서는
(△x, △y)가 위와 같은 조건을 만족해야 합니다.
위의 조건을 만족하는 (△x, △y)만큼 이동하면 경사면을 가장 빠르게 내려갈 수 있다는 뜻과 동일합니다.
이때, df(x, y) / dx, df(x, y) / dy는 점 (x, y)에서의 기울기(descent)입니다.
여태까지 배운 내용을 n개 이상의 변수에 대해 일반화한다면 다음과 같습니다.
앞에서 계속 나오는 기호 η 는 작은 값을 갖는 양의 상수로 학습률(learning rate)을 의미합니다.
학습률이 너무 작으면 최솟값을 찾는데 너무 오래걸리고,
값이 너무 크면 최소값을 뛰어넘을 수 있기 때문에,
학습률을 신중하게 정해야 합니다.
2. 회귀분석 (regression analysis)
회귀분석은 특정 변수 하나와 나머지 변수들의 관계를 설명하는 방법입니다.
회귀분석 중 단순회귀분석에 대해 설명하겠습니다.
단순회귀분석을 변수 2개로 구성한 자료를 분석하는 것입니다.
두 변수 x, y에 대해서 (x, y) 값들 사이를 나누는 직선을 구해야 하는데, 해당 직선을 회귀직선(regression line)이라고 합니다.
- x : 입력값, 원인 = 독립 변수
- y : 출력값, 결과 = 종속 변수
단순회귀분석을 일반화하면 다음과 같습니다.
여기서 구하는 오차값은 실제값과 예측값 사이의 차이이기 때문에 양수가 나올 수도 있고, 음수가 나올수도 있습니다.
그렇기 때문에 단순히 오차값만 모두 더한다면 총합이 0이 나오는 등 정확하지 않은 지표가 될 수 있습니다.
이러한 문제를 해결하기 위해 사용하는 방법 중 하나가 제곱오차입니다.
제곱오차는 실제값과 예측값의 차이의 제곱을 사용합니다.
오차값(여기서는 제곱오차)의 총합을 오차 함수 또는 비용함수(cost function)이라고 합니다.
비용함수의 값이 0이 아니더라도 상관없습니다.
하지만 0에 가까울수록 좋은 모델로 사용될 수 있습니다.
다음 게시물에서는 신경망의 구조와 학습 과정에 대해서 다뤄보겠습니다.
![]() |
|
<처음 배우는 딥러닝 수학>을 읽으면서 개인적으로 정리한 내용입니다.
제가 잘못 이해했거나, 수정이 필요한 부분에 대한 피드백은 언제든지 환영입니다.
감사합니다 :)
'필기 노트 > 처음 배우는 딥러닝 수학' 카테고리의 다른 글
[딥러닝 기초] 오차역전법 (back-propagation) (0) | 2020.07.10 |
---|---|
[딥러닝 기초] 신경망과 학습 (0) | 2020.07.09 |
[딥러닝 기초] 딥러닝 수학 - 2 : 행렬, 미분 (0) | 2020.07.06 |
[딥러닝 기초] 딥러닝 수학 - 1 : 함수, 수열, 벡터 (0) | 2020.07.01 |
[딥러닝 기초] 신경망과 딥러닝 개요 (0) | 2020.06.29 |
댓글