문서 편집 권한이 없습니다. 다음 이유를 확인해주세요: 요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다: 사용자. 문서의 원본을 보거나 복사할 수 있습니다. [[분류:지도 학습]] [[분류:수치 해석]] [[파일:기울기 하강.png|섬네일]] ==개요== 기울기 하강(Gradient Descent)은 함수의 기울기를 구해서 기울기가 낮은 쪽으로 계속 이동시켜서 극값에 이를 때까지 반복시키는 알고리즘이다. == 설명 == 최적화할 함수 <math>f(\mathbf{x})</math>에 대하여, 먼저 시작점 <math>\mathbf{x}_0</math>를 정한다. 현재 <math>\mathbf{x}_i</math>가 주어졌을 때, 그 다음으로 이동할 점인 <math>\mathbf{x}_{i+1}</math>은 다음과 같이 계산된다. :<math>\mathbf{x}_{i+1} = \mathbf{x}_i - \gamma_i \nabla f(\mathbf{x}_i)</math> 이때 <math>\gamma_i</math>는 이동할 거리를 조절하는 매개변수이다. (역 삼각형 기호는 [[그라디언트]]를 의미한다.) # 이 알고리즘의 수렴 여부는 함수의 성질과 <math>\gamma_i</math>의 선택에 따라 달라진다. 또한, 이 알고리즘은 가장 가까운 최적해로 수렴한다. 따라서 구한 값이 주어진 함수의 진짜 최적해라는 것을 보장하지 않으며 시작점 <math>\mathbf{x}_0</math>의 선택에 따라서 달라진다. 이에 따라 다양한 시작점에 대해 하강법을 적용하여 그 중 가장 좋은 결과를 선택할 수도 있다. # [[재귀 함수]]나 [[루프]]를 이용하여 최적해를 찾아 나가게 된다. 이경우 <math>\mathbf{x} = \mathbf{x} - \gamma_i \nabla f(\mathbf{x})</math> 로 표현된다. == 인공 지능 == [[인공지능]]에서 사용하는 [[비용 함수]]도 기울기 하강의 논리를 사용하여 작동한다. :<math> h(x) = a_{0} + a_{1} * x_{1} + a_{2} * x{2} + a_{3} * x{3} .... </math> 라 주어진 선형 회귀식이 있다고 해보자. 이떄 오차함수 h에 대하여 기울기 하강법을 이용해 <math>a_{0}, a_{1}, a_{2} .. </math>을 업데이트 하는 식을 나타내면, :<math>\mathbf{x} = \mathbf{x} - \gamma \nabla f(\mathbf{x})</math> 로 나타내 진다. 결국 기울기 하강법을 이용하면, 우리가 원하는 [[가중치]]들의 집합을 구할 수 있다. # x는 [[선형 회귀]]에서의 기울기 들의 집합 즉 (a0,a1,a2 ... )를 의미한다. # 감마는 [[학습 속도]](Learning rate)를 의미한다. 감마가 커질수록 수렴도가 높아지지만 지역수렴도로 갈 확률이 커진다. 또한 학습속도가 너무 크면 기울기 하강법이 수렴하지 않고 발산할 위험도 있다. # h는 주어진 [[오차함수]]를 의미한다. 오차함수는 식에서 보이다 시피 미분가능해야 한다. 기울기 하강 문서로 돌아갑니다.