확률적 경사 하강법
📂최적화이론확률적 경사 하강법
정의
목적 함수 Q 와 러닝 레이트 α>0, 배치사이즈 m 과 i번째 데이터에 대해
ωn+1:=ωn−αn1i=1∑m∇Qi(ωn)
를 확률적 경사 하강법이라 한다.
설명
머신러닝
확률적 경사 하강법은 데이터를 다루는만큼 필연적으로 머신러닝과 깊은 관계를 가지고 있을 수밖에 없다. 몇몇 단어가 익숙하지 않더라도 일단 예시를 통해 이해해보는 게 좋다:
x1 와 x2 가 주어졌을 때 y 를 예측하는 문제가 있다고 하자. 짐작되는 모델은 선형결합 y=ax1+bx2 이다. 우리의 데이터셋은 약 30조개정도의 관측치를 포함할 정도로 큰데, 이를 처리할 컴퓨터의 사양이 열악해 문제를 조금씩 나눠서 푼다고 해보자.
y5.22.19.06.7x12.01.23.83.7x20.90.01.3−0.5
가령 위와 같이 4 개의 데이터로 나눠서 처리하겠다면 배치사이즈는 m=4 가 된다. 이는 어디까지나 예시일 뿐이므로 문제는 굉장히 간단하고, 대강 눈으로 보아도 a≈2,b≈1 가 정답임을 알 수는 있다. 전형적인 회귀분석 문제이므로 그냥 최소제곱법으로 풀어도 되지만 이해를 돕기 위해 굳이 최적화 기법으로 풀 생각을 해보자.
최적화 기법에는 우선 목적 함수가 주어져야한다. 여기서 목적 함수 Q 는 다음과 같이 정의할 수 있고, 우리의 목표는 목적 함수가 최소가 되도록 하는 ω=(a,b) 를 구하는 것이다.
Q(a,b):=(ax1+bx2−y)2
여기서 우리가 관심을 갖는 변수가 a,b 라는 것을 다시금 상기하도록 하자. 주어진 데이터에 따라 a,b 를 구한다는 것은 다음과 같이 i=1,⋯,m 번째 데이터에 대한 네 개의 함수를 동시에 생각하는 것과 같다.
Q1(a,b):=(2.0a+0.9b−5.2)2Q2(a,b):=(1.2a+0.0b−2.1)2Q3(a,b):=(3.8a+1.3b−9.0)2Q4(a,b):=(3.7a−0.5b−6.7)2
이제 ‘확률적’ 경사 하강법이라는 이름의 모티브가 나왔다. 확률론적인 개념이 없는데도 이것을 확률적 경사 하강법이라고 부르는 이유는 보통 이렇게 뽑히는 데이터가 랜덤하기 때문이다. 이에 대한 도함수들의 평균으로 새로운 값을 업데이트하는 것은 두 말 할 것 없이 상식적이다.
경사 하강법?
확률적 경사 하강법은 수식적으로 그냥 경사 하강법과 다를 것이 없다. 본질적인 차이는 데이터의 유무고, 확률적 경사 하강법을 발달시킨 최적화 기법들 역시 데이터를 신경쓴다는 점만 기억하면 된다.