검수요청.png검수요청.png

"확률적 경사하강법"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
5번째 줄: 5번째 줄:
  
 
확률적 경사하강법은 [[머신러닝]] [[알고리즘]]에 대한 최적의 매개변수 구성을 찾는 방법이다. 네트워크 오류를 줄이기 위해 반복적으로 머신러닝 네트워크 구성에 작은 조정을 한다. 오류 함수가 일반적인 포물선처럼 간단한 경우는 드물다. 대부분 기울기가 심한 언덕과 계곡이 많다. 이 그래프의 왼쪽에서 실제 경사하강법이 시작되면 이 지점에서 어느 방향으로 이동하든 위로 이동해야 하기 때문에 왼쪽 계곡에서 멈춘다. 이 지점을 로컬 최소치라고 한다. 그러나 그래프에는 더 낮은 점이 또 있다. 전체 그래프에서 가장 낮은 지점은 확률적 경사하강법이 찾으려고 하는 전역 최소값이다. 확률적 경사하강법은 각 훈련 지점 후에 네트워크의 구성을 조정하여 전역 최소값을 찾으려고 한다. 이 방법은 전체 데이터 세트에 대해 오류를 줄이거나 기울기를 찾는 대신 무작위로 선택한 배치에 대한 기울기를 근사하게 함으로써 오류를 줄인다. 실제로 무작위 선택은 데이터 세트를 무작위로 섞고 단계적으로 배치를 통해 작업함으로써 달성된다. 만약 네트워크가 훈련 예제를 잘못 받으면 이후에 정확하게 수행하기 위해 구성을 업데이트할 것이다. 그러나 구성 업데이트로 다른 질문을 잘못 받아 네트워크의 전체 오류를 증가시킬 수 있다. 따라서 모든 훈련 반복이 확률적 경사하강 알고리즘을 통해 네트워크를 개선할 수 있는 것은 아니다. 반면에 확률적 경사하강법은 모델을 로컬 최소값에서 전역 최소값으로 이동시키는 방식으로 네트워크 매개변수를 조정할 수 있다. 오목함수를 다시 살펴보면, 훈련 사례를 처리한 후 알고리즘은 우리가 있던 로컬 최소값에서 벗어나기 위해 그래프에서 오른쪽으로 이동하도록 선택할 수 있다. 그렇게 하면 네트워크의 오차가 커지지만, 언덕 위로 이동할 수 있다. 이렇게 하면 추가 훈련을 통해 경사하강법이 전역 최소값으로 이동하도록 할 수 있다. 확률적 경사하강법의 이점은 일반적으로 최소값으로 수렴하면서 실제 경사하강법보다 훨씬 적은 계산이 필요하다는 것이다.<ref>Stochastic Gradient Descent DeepAI -  https://deepai.org/machine-learning-glossary-and-terms/stochastic-gradient-descent </ref>
 
확률적 경사하강법은 [[머신러닝]] [[알고리즘]]에 대한 최적의 매개변수 구성을 찾는 방법이다. 네트워크 오류를 줄이기 위해 반복적으로 머신러닝 네트워크 구성에 작은 조정을 한다. 오류 함수가 일반적인 포물선처럼 간단한 경우는 드물다. 대부분 기울기가 심한 언덕과 계곡이 많다. 이 그래프의 왼쪽에서 실제 경사하강법이 시작되면 이 지점에서 어느 방향으로 이동하든 위로 이동해야 하기 때문에 왼쪽 계곡에서 멈춘다. 이 지점을 로컬 최소치라고 한다. 그러나 그래프에는 더 낮은 점이 또 있다. 전체 그래프에서 가장 낮은 지점은 확률적 경사하강법이 찾으려고 하는 전역 최소값이다. 확률적 경사하강법은 각 훈련 지점 후에 네트워크의 구성을 조정하여 전역 최소값을 찾으려고 한다. 이 방법은 전체 데이터 세트에 대해 오류를 줄이거나 기울기를 찾는 대신 무작위로 선택한 배치에 대한 기울기를 근사하게 함으로써 오류를 줄인다. 실제로 무작위 선택은 데이터 세트를 무작위로 섞고 단계적으로 배치를 통해 작업함으로써 달성된다. 만약 네트워크가 훈련 예제를 잘못 받으면 이후에 정확하게 수행하기 위해 구성을 업데이트할 것이다. 그러나 구성 업데이트로 다른 질문을 잘못 받아 네트워크의 전체 오류를 증가시킬 수 있다. 따라서 모든 훈련 반복이 확률적 경사하강 알고리즘을 통해 네트워크를 개선할 수 있는 것은 아니다. 반면에 확률적 경사하강법은 모델을 로컬 최소값에서 전역 최소값으로 이동시키는 방식으로 네트워크 매개변수를 조정할 수 있다. 오목함수를 다시 살펴보면, 훈련 사례를 처리한 후 알고리즘은 우리가 있던 로컬 최소값에서 벗어나기 위해 그래프에서 오른쪽으로 이동하도록 선택할 수 있다. 그렇게 하면 네트워크의 오차가 커지지만, 언덕 위로 이동할 수 있다. 이렇게 하면 추가 훈련을 통해 경사하강법이 전역 최소값으로 이동하도록 할 수 있다. 확률적 경사하강법의 이점은 일반적으로 최소값으로 수렴하면서 실제 경사하강법보다 훨씬 적은 계산이 필요하다는 것이다.<ref>Stochastic Gradient Descent DeepAI -  https://deepai.org/machine-learning-glossary-and-terms/stochastic-gradient-descent </ref>
 +
 +
== 이론 ==
 +
=== 배경 ===
 +
통계적 추정과 머신러닝은 모두 합계의 형태를 갖는 객관적 함수를 최소화하는 문제를 고려한다.
 +
: <math>Q(w) = \frac{1}{n}\sum_{i=1}^n Q_i(w),</math>
 +
여기에서 <math>Q(w)</math>를 최소화하는 모수 통계 <math>w</math>을 추정해야 한다. 각 종합 함수 <math>Q_i</math>은 일반적으로 데이터 집합의 <math>i</math>번째 관측치와 연관된다.
 +
전형적인 통계량에서 합계 최소화 문제는 최소 제곱과 최대 우도 추정에서 발생한다. 합계의 최소제로서 발생하는 추정기의 일반적인 클래스를 M-추정기(estimators)라고 한다. 그러나 통계에서 로컬 최소값를 요구하는 것조차 최대 우도 추정의 일부 문제에 대해 지나치게 제한적이라는 것은 오래 전부터 인정되어 왔다. 따라서 현대의 통계 이론가들은 종종 우도함수의 고정점 또는 파생상품의 0, 점수 함수 및 기타 추정 방정식을 고려한다. 또한 총액 최소화 문제는 경험적 위험 최소화를 위해 발생한다. 이 경우 <math>Q_i(w)</math>은 <math>i</math>번째 예에서 손실함수의 값이고, <math>Q(w)</math>은 경험적 위험이다. 위의 기능을 최소화하기 위해 사용할 경우 표준 또는 배치 경사하강법은 다음과 같은 반복을 수행한다.
 +
: <math>w := w - \eta \nabla Q(w) = w - \frac{\eta}{n} \sum_{i=1}^n \nabla Q_i(w),</math>
 +
위 식에서 <math>\eta</math>은 한 단계 크기이다.
 +
 +
그러나 다른 경우에 총점수를 평가하려면 모든 종합 함수의 경사율에 대한 값비싼 평가가 필요할 수 있다. 훈련 세트가 거대하고 단순한 공식은 존재하지 않을 때, 경사를 평가하려면 모든 전체 함수의 경사를 평가해야 하기 때문에 경사 합계를 평가하는 것은 매우 비싸진다. 반복할 때마다 계산 비용을 절약하기 위해 확률적 경사하강  전체 함수의 하위 집합을 샘플링한다. 이는 대규모 머신러닝 문제의 경우 매우 효과적이다.<ref name="위키피디아">Stochastic gradient descent Wikipedia - https://en.wikipedia.org/wiki/Stochastic_gradient_descent</ref>
 +
 +
=== 반복법 ===
 +
확률적 경사 강하에서 <math>Q(w)</math>의 실제 경사도는 단일 예에서 경사도에 의해 근사치된다.
 +
: <math>w := w - \eta \nabla Q_i(w).</math>
 +
알고리즘이 훈련 세트를 휩쓸면서 각 훈련 예에 대해 위의 업데이트를 수행한다. 알고리즘이 수렴될 때까지 훈련 세트에 걸쳐 여러 차례 패스를 할 수 있다. 이렇게 하면 각 패스에 대해 데이터를 섞어서 사이클을 방지할 수 있다. 일반적인 구현에서는 알고리즘이 수렴되도록 적응 학습 속도를 사용할 수 있다. 유사점에서는 확률적 구배 강하를 다음과 같이 나타낼 수 있다.
 +
* 매개변수 <math>w</math>와 학습률 <math>\eta</math>의 초기 벡터를 선택한다.
 +
* 최소값을 구할 때까지 반복하십시오.
 +
** 교육 세트의 예제를 무작위로 섞으십시오.
 +
** <math> i=1, 2, ..., n</math>의 경우 다음을 수행한다.
 +
*** <math>\! w := w - \eta \nabla Q_i(w).</math>
 +
단일 예에서 실제 경사와 경사 계산 사이의 절충안은 각 단계에서 둘 이상의 훈련 예시에 대한 경사 계산이다. 이를 미니 배치라고도 한다. 코드는 각 단계를 별도로 계산하기 보다는 벡터화 라이브러리를 사용할 수 있기 때문에, 이것은 설명된 '진정한' 확률적 경사 강하보다 훨씬 더 좋은 성능을 발휘할 수 있다. 또한 각 단계에서 계산된 경사는 더 많은 훈련 예에 걸쳐 평균이 산출되기 때문에 더 부드러운 수렴을 초래할 수 있다. 확률적 경사 하강의 수렴은 볼록 최소화와 확률적 근사 이론을 사용하여 분석되었다. 간단히 말해서, 학습률 <math>\eta</math>가 적절한 비율로 감소하고, 비교적 가벼운 가정 하에 있을 때, 확률적 경사 하강은 거의 확실히 볼록하거나 유사 콘벡스일 때 전역 최소로 수렴되고, 그렇지 않으면 거의 확실히 로컬 최소로 수렴된다.<ref name="위키피디아"></ref>
 +
 +
== 변형 ==
 +
기본적인 확률적 경사하강법 알고리즘에 대한 많은 개선사항이 제안되어 사용되어 왔다. 특히 머신러닝에서는 학습율(스텝 사이즈) 설정의 필요성이 문제점으로 인식되고 있다. 이 파라미터를 너무 높게 설정하면 알고리즘이 분산될 수 있다. 반면 알고리즘을 너무 낮게 설정하면 수렴 속도가 느려진다. 개념적으로 단순한 확률적 경사 하강 연장은 학습 속도를 반복 횟수 <math>t</math>의 감소 함수 <math>\eta t</math>로 만들어 학습 속도 스케줄을 부여하여 첫 번째 반복은 매개변수에 큰 변화를 일으키지만, 이후 반복은 미세 조정만 한다. 이런 일정은 맥퀸(MacQueen)이 k-means 클러스터링 작업을 하면서부터 알려졌다. 확률적 경사하강법의 여러 변종에서 단계 크기를 선택하기 위한 실제 지침은 스팰(Spall)에 의해 제공된다.
 +
;암시적 업데이트
 +
앞서 언급한 바와 같이 고전적인 확률적 경사 하강은 일반적으로 학습률 <math>\eta</math>에 민감하다. 빠른 융합은 높은 학습률을 필요로 하지만 이것은 수치적 불안정을 유발할 수 있다. 이러한 문제는 현재가 아닌 다음 반복에서 확률적 경사를 평가함으로써 암시적 업데이트(ISGD)를 고려함으로써 크게 해결될 수 있다
 +
:<math>w^{new} := w^{old} - \eta \nabla Q_i(w^{new}).</math>
 +
이 방정식은 <math>w^{new}</math>가 방정식의 양쪽에 나타나기 때문에 암묵적이다. 업데이트 이후 최소 경사 방법의 확률적 형식이다. 다음과 같이 쓸 수도 있다.
 +
:<math>w^{new} := \arg\min_w \{ Q_i(w) + \frac{1}{2\eta} ||w - w^{old}||^2 \}.</math>
 +
예를 들어 형상 <math>x_1, \ldots, x_n \in\mathbb{R}^p</math>와 관측치 <math>y_1, \ldots, y_n\in\mathbb{R}</math>가 있는 최소 제곱을 고려한다. 고전적인 확률적 경사하강법 진행은 다음과 같다.
 +
:<math>w^{new} = w^{old} + \eta (y_i - x_i'w^{old}) x_i</math>
 +
여기서 <math>i</math>는 1과 <math>n</math> 사이에 균일하게 샘플링된다. 이 절차의 이론적 정합성은 비교적 가벼운 가정 하에서 발생하지만, 실제로는 절차가 상당히 불안정할 수 있다. 특히 <math>I - \eta x_i x_i'</math>가 높은 확률로 큰 절대 고유값을 갖도록 <math>\eta</math>를 잘못 지정했을 때 이 절차는 몇 번의 반복 내에서 숫자로 갈릴 수 있다. 이와는 대조적으로 '불확실한 확률적 경사 강하'(ISGD)는 다음과 같이 폐쇄형 형태로 해결할 수 있다.
 +
:<math>w^{new} = w^{old} + \frac{\eta}{1 + \eta ||x_i||^2} (y_i - x_i'w^{old}) x_i.</math>
 +
이 과정은 현재 학습률이 정상화되었기 때문에 사실상 모든 <math>\eta</math>에게 수적으로 안정적일 것이다. 최소 제곱 문제에서 고전적 및 암묵적 확률적 그라데이션 강하 간의 비교는 최소 평균 제곱 필터와 최소 평균 제곱 필터 정규화 최소 제곱 필터(NLMS)의 비교와 매우 유사하다. ISGD용 폐쇄형 솔루션은 최소 사각형에서만 가능하지만, 다양한 모델에서 절차가 효율적으로 구현될 수 있다. 구체적으로는 <math>Q_i(w)</math>가 형상 <math>x_i</math>와 선형 결합을 통해서만 <math>w</math>에 의존한다고 가정해, 우리가 <math>\nabla_w Q_i(w) = -q(x_i'w) x_i</math>를 쓸 수 있도록 한다. <math>q() \in\mathbb{R}</math>도 <math>x_i, y_i</math>에 의존할 수 있지만 <math>x_i'w</math>을 제외하고 <math>w</math>에 의존하지 않는다. 최소 제곱은 이 규칙을 준수하며, 논리 회귀와 대부분의 일반화된 선형 모형도 준수한다. 예를 들어 최소 제곱, <math>q(x_i'w) = y_i - x_i'w</math> 및 로지스틱 회귀 분석 <math>q(x_i'w) = y_i - S(x_i'w)</math>에서 <math>S(u) = e^u/(1+e^u)</math>는 로지스틱 함수이다. 포아송 회귀, <math>q(x_i'w) = y_i - e^{x_i'w}</math> 등에서는 다음과 같이 한다.
 +
 +
간단하게 다음과 같이 구현된다. <math>f(\xi) = \eta q(x_i'w^{old} + \xi ||x_i||^2)</math>를, <math>\xi</math>가 스칼라인 곳에 둔다. 그렇다면 ISGD는 다음과 같다.
 +
:<math>w^{new} = w^{old} + \xi^\ast x_i,~\text{where}~\xi^\ast = f(\xi^\ast).</math>
 +
스케일링 계수 <math>\xi^\ast\in\mathbb{R}</math>는 이분법을 통해 확인할 수 있다. 앞서 언급한 일반화된 선형 모형과 같은 대부분의 일반 모델에서 함수 <math>q()</math>는 감소하고 있다. 따라서 <math>\xi^\ast</math>에 대한 검색 범위는 <math>[\min(0, f(0)), \max(0, f(0))]</math>이다.
 +
  
 
{{각주}}
 
{{각주}}
10번째 줄: 50번째 줄:
 
== 참고자료 ==
 
== 참고자료 ==
 
* Stochastic Gradient Descent DeepAI -  https://deepai.org/machine-learning-glossary-and-terms/stochastic-gradient-descent
 
* Stochastic Gradient Descent DeepAI -  https://deepai.org/machine-learning-glossary-and-terms/stochastic-gradient-descent
 +
* Stochastic gradient descent Wikipedia - https://en.wikipedia.org/wiki/Stochastic_gradient_descent
  
 
== 같이 보기 ==
 
== 같이 보기 ==

2020년 8월 14일 (금) 15:26 판

확률적 경사하강법(Stochastic Gradient Descent, SGD)은 무작위로 배치 크기가 1인 단 한 개의 데이터를 추출하여 기울기를 계산하고, 경사 하강 알고리즘을 적용하는 방법을 말한다. 빠르게 최적점을 찾을 수 있지만 비교적 노이즈가 심하다는 단점이 있다.

개요

확률적 경사하강법

확률적 경사하강법은 머신러닝 알고리즘에 대한 최적의 매개변수 구성을 찾는 방법이다. 네트워크 오류를 줄이기 위해 반복적으로 머신러닝 네트워크 구성에 작은 조정을 한다. 오류 함수가 일반적인 포물선처럼 간단한 경우는 드물다. 대부분 기울기가 심한 언덕과 계곡이 많다. 이 그래프의 왼쪽에서 실제 경사하강법이 시작되면 이 지점에서 어느 방향으로 이동하든 위로 이동해야 하기 때문에 왼쪽 계곡에서 멈춘다. 이 지점을 로컬 최소치라고 한다. 그러나 그래프에는 더 낮은 점이 또 있다. 전체 그래프에서 가장 낮은 지점은 확률적 경사하강법이 찾으려고 하는 전역 최소값이다. 확률적 경사하강법은 각 훈련 지점 후에 네트워크의 구성을 조정하여 전역 최소값을 찾으려고 한다. 이 방법은 전체 데이터 세트에 대해 오류를 줄이거나 기울기를 찾는 대신 무작위로 선택한 배치에 대한 기울기를 근사하게 함으로써 오류를 줄인다. 실제로 무작위 선택은 데이터 세트를 무작위로 섞고 단계적으로 배치를 통해 작업함으로써 달성된다. 만약 네트워크가 훈련 예제를 잘못 받으면 이후에 정확하게 수행하기 위해 구성을 업데이트할 것이다. 그러나 구성 업데이트로 다른 질문을 잘못 받아 네트워크의 전체 오류를 증가시킬 수 있다. 따라서 모든 훈련 반복이 확률적 경사하강 알고리즘을 통해 네트워크를 개선할 수 있는 것은 아니다. 반면에 확률적 경사하강법은 모델을 로컬 최소값에서 전역 최소값으로 이동시키는 방식으로 네트워크 매개변수를 조정할 수 있다. 오목함수를 다시 살펴보면, 훈련 사례를 처리한 후 알고리즘은 우리가 있던 로컬 최소값에서 벗어나기 위해 그래프에서 오른쪽으로 이동하도록 선택할 수 있다. 그렇게 하면 네트워크의 오차가 커지지만, 언덕 위로 이동할 수 있다. 이렇게 하면 추가 훈련을 통해 경사하강법이 전역 최소값으로 이동하도록 할 수 있다. 확률적 경사하강법의 이점은 일반적으로 최소값으로 수렴하면서 실제 경사하강법보다 훨씬 적은 계산이 필요하다는 것이다.[1]

이론

배경

통계적 추정과 머신러닝은 모두 합계의 형태를 갖는 객관적 함수를 최소화하는 문제를 고려한다.

여기에서 를 최소화하는 모수 통계 을 추정해야 한다. 각 종합 함수 은 일반적으로 데이터 집합의 번째 관측치와 연관된다. 전형적인 통계량에서 합계 최소화 문제는 최소 제곱과 최대 우도 추정에서 발생한다. 합계의 최소제로서 발생하는 추정기의 일반적인 클래스를 M-추정기(estimators)라고 한다. 그러나 통계에서 로컬 최소값를 요구하는 것조차 최대 우도 추정의 일부 문제에 대해 지나치게 제한적이라는 것은 오래 전부터 인정되어 왔다. 따라서 현대의 통계 이론가들은 종종 우도함수의 고정점 또는 파생상품의 0, 점수 함수 및 기타 추정 방정식을 고려한다. 또한 총액 최소화 문제는 경험적 위험 최소화를 위해 발생한다. 이 경우 번째 예에서 손실함수의 값이고, 은 경험적 위험이다. 위의 기능을 최소화하기 위해 사용할 경우 표준 또는 배치 경사하강법은 다음과 같은 반복을 수행한다.

위 식에서 은 한 단계 크기이다.

그러나 다른 경우에 총점수를 평가하려면 모든 종합 함수의 경사율에 대한 값비싼 평가가 필요할 수 있다. 훈련 세트가 거대하고 단순한 공식은 존재하지 않을 때, 경사를 평가하려면 모든 전체 함수의 경사를 평가해야 하기 때문에 경사 합계를 평가하는 것은 매우 비싸진다. 반복할 때마다 계산 비용을 절약하기 위해 확률적 경사하강 전체 함수의 하위 집합을 샘플링한다. 이는 대규모 머신러닝 문제의 경우 매우 효과적이다.[2]

반복법

확률적 경사 강하에서 의 실제 경사도는 단일 예에서 경사도에 의해 근사치된다.

알고리즘이 훈련 세트를 휩쓸면서 각 훈련 예에 대해 위의 업데이트를 수행한다. 알고리즘이 수렴될 때까지 훈련 세트에 걸쳐 여러 차례 패스를 할 수 있다. 이렇게 하면 각 패스에 대해 데이터를 섞어서 사이클을 방지할 수 있다. 일반적인 구현에서는 알고리즘이 수렴되도록 적응 학습 속도를 사용할 수 있다. 유사점에서는 확률적 구배 강하를 다음과 같이 나타낼 수 있다.

  • 매개변수 와 학습률 의 초기 벡터를 선택한다.
  • 최소값을 구할 때까지 반복하십시오.
    • 교육 세트의 예제를 무작위로 섞으십시오.
    • 의 경우 다음을 수행한다.

단일 예에서 실제 경사와 경사 계산 사이의 절충안은 각 단계에서 둘 이상의 훈련 예시에 대한 경사 계산이다. 이를 미니 배치라고도 한다. 코드는 각 단계를 별도로 계산하기 보다는 벡터화 라이브러리를 사용할 수 있기 때문에, 이것은 설명된 '진정한' 확률적 경사 강하보다 훨씬 더 좋은 성능을 발휘할 수 있다. 또한 각 단계에서 계산된 경사는 더 많은 훈련 예에 걸쳐 평균이 산출되기 때문에 더 부드러운 수렴을 초래할 수 있다. 확률적 경사 하강의 수렴은 볼록 최소화와 확률적 근사 이론을 사용하여 분석되었다. 간단히 말해서, 학습률 가 적절한 비율로 감소하고, 비교적 가벼운 가정 하에 있을 때, 확률적 경사 하강은 거의 확실히 볼록하거나 유사 콘벡스일 때 전역 최소로 수렴되고, 그렇지 않으면 거의 확실히 로컬 최소로 수렴된다.[2]

변형

기본적인 확률적 경사하강법 알고리즘에 대한 많은 개선사항이 제안되어 사용되어 왔다. 특히 머신러닝에서는 학습율(스텝 사이즈) 설정의 필요성이 문제점으로 인식되고 있다. 이 파라미터를 너무 높게 설정하면 알고리즘이 분산될 수 있다. 반면 알고리즘을 너무 낮게 설정하면 수렴 속도가 느려진다. 개념적으로 단순한 확률적 경사 하강 연장은 학습 속도를 반복 횟수 의 감소 함수 로 만들어 학습 속도 스케줄을 부여하여 첫 번째 반복은 매개변수에 큰 변화를 일으키지만, 이후 반복은 미세 조정만 한다. 이런 일정은 맥퀸(MacQueen)이 k-means 클러스터링 작업을 하면서부터 알려졌다. 확률적 경사하강법의 여러 변종에서 단계 크기를 선택하기 위한 실제 지침은 스팰(Spall)에 의해 제공된다.

암시적 업데이트

앞서 언급한 바와 같이 고전적인 확률적 경사 하강은 일반적으로 학습률 에 민감하다. 빠른 융합은 높은 학습률을 필요로 하지만 이것은 수치적 불안정을 유발할 수 있다. 이러한 문제는 현재가 아닌 다음 반복에서 확률적 경사를 평가함으로써 암시적 업데이트(ISGD)를 고려함으로써 크게 해결될 수 있다

이 방정식은 가 방정식의 양쪽에 나타나기 때문에 암묵적이다. 업데이트 이후 최소 경사 방법의 확률적 형식이다. 다음과 같이 쓸 수도 있다.

예를 들어 형상 와 관측치 가 있는 최소 제곱을 고려한다. 고전적인 확률적 경사하강법 진행은 다음과 같다.

여기서 는 1과 사이에 균일하게 샘플링된다. 이 절차의 이론적 정합성은 비교적 가벼운 가정 하에서 발생하지만, 실제로는 절차가 상당히 불안정할 수 있다. 특히 가 높은 확률로 큰 절대 고유값을 갖도록 를 잘못 지정했을 때 이 절차는 몇 번의 반복 내에서 숫자로 갈릴 수 있다. 이와는 대조적으로 '불확실한 확률적 경사 강하'(ISGD)는 다음과 같이 폐쇄형 형태로 해결할 수 있다.

이 과정은 현재 학습률이 정상화되었기 때문에 사실상 모든 에게 수적으로 안정적일 것이다. 최소 제곱 문제에서 고전적 및 암묵적 확률적 그라데이션 강하 간의 비교는 최소 평균 제곱 필터와 최소 평균 제곱 필터 정규화 최소 제곱 필터(NLMS)의 비교와 매우 유사하다. ISGD용 폐쇄형 솔루션은 최소 사각형에서만 가능하지만, 다양한 모델에서 절차가 효율적으로 구현될 수 있다. 구체적으로는 가 형상 와 선형 결합을 통해서만 에 의존한다고 가정해, 우리가 를 쓸 수 있도록 한다. 에 의존할 수 있지만 을 제외하고 에 의존하지 않는다. 최소 제곱은 이 규칙을 준수하며, 논리 회귀와 대부분의 일반화된 선형 모형도 준수한다. 예를 들어 최소 제곱, 및 로지스틱 회귀 분석 에서 는 로지스틱 함수이다. 포아송 회귀, 등에서는 다음과 같이 한다.

간단하게 다음과 같이 구현된다. 를, 가 스칼라인 곳에 둔다. 그렇다면 ISGD는 다음과 같다.

스케일링 계수 는 이분법을 통해 확인할 수 있다. 앞서 언급한 일반화된 선형 모형과 같은 대부분의 일반 모델에서 함수 는 감소하고 있다. 따라서 에 대한 검색 범위는 이다.


각주

참고자료

같이 보기


  검수요청.png검수요청.png 이 확률적 경사하강법 문서는 인공지능 기술에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.