경사하강법

부스트캠프 AI Tech 2기/2기 U-Stage

1주차 Gradient Descent, Stochastic gradient descent

선형회귀모델 \begin{equation} f(x)=wX+B \end{equation} $$ f'(x) = \lim_{x \rightarrow 0} \frac{f(x+h)-f(x)}{h} $$ Gradient Descent(경사하강법) 함수 값이 낮아지는 방향으로 독립 변수(W,B) 값을 변형시켜가면서 최종적으로는 최소 함수 값을 갖도록 하는 독립 변수 값을 찾는 방법이다. 함수의 최소, 최대값을 찾기위해 사용하는 방법으로 미분 계수가 0이 되는 지점을 찾는다. 하지만 함수의 형태가 복잡해서 정확히 0이되는 지점을 찾기는 불가능에 가까워서 0에 가까운 epsilon값을 사용 아래와 같이 w와 b를 개선해서 error가 최적의 w와 b를 구할 수 있다 w와 b에 대해서 각각 편미분을하고 학습 데이터의 개수..

카테고리 없음

경사하강법 (2)

경사하강법 선형 회귀의 목적식을 최소화 하게끔 그레디언트 벡터를 구해야 함 선형 회귀의 목적식은 ||y-XB||2 (L2 norm)이고 이를 최소화 하는 B를 찾아야함 목적식을 B로 미분하고 주어진 B에서 미분값을 빼주게 되면 경사하강법 알고리즘으로 최소가 되는 값을 찾을 수 있음 경사하강법 기반 선형회귀 알고리즘 X = np.array([1,1],[1,2],[2,2],[2,3]]) y = np.dot(X, np.array([1,2])) + 3 beta_gd = [10.1, 15.1, -6.5] X_ = np.array([np.append(x,[1]) for x in X]) for t in range(5000): error = y - X_ @beta_gd grad = - np.transpose(X_) @..

부스트캠프 AI Tech 2기/Precourse

경사하강법 (1)

미분(differentiation) 변수의 움직임에 따른 함수 값의 변화를 측정하는 도구 최적화에서 제일 많이 사용하는 기법 파이썬의 sympy를 사용하면 미분을 계산 가능 import sympy as sym sym.diff(sym.poly(x**2 + 2*x +3), x) -> 2x + 2 함수값을 증가시키고 싶다면 미분값을 더함 함수값을 감소시키고 싶다면 미분값을 뺌 경사 상승법(gradient ascent): 미분값을 더하면서 함수의 극대값을 구할 때 경사 하강법(gradient descent): 미분값을 빼면서 함수의 극소값을 구할 때 극 값에 도달하게 되면 움직임이 멈춤 편미분: 벡터가 입력인 다변수 함수의 경우 사용되는 미분방법 그레디언트 벡터: d차원 벡터를 입력으로 갖는 함수는 편미분을 d..

모플로
'경사하강법' 태그의 글 목록