Градиентно спускане

От testwiki
Направо към навигацията Направо към търсенето

Шаблон:Повече източници

Градиентно спускане (на английски: Gradient Descent) е метод (алгоритъм) за намиране на локален минимум на диференцируема функция.

Идеята е чрез итеративен подход да се намери най-ниските стойности на функция, като се правят постепенни стъпки в посока обратна на градиента. Обратното на градиентно спускане е градиентно изкачване, което има за цел да намери локален максимум, чрез стъпване в посока на градиента. Метода на градиентното спускане е широко използван в машинното обучение, за минимизиране на функцията на загубата.

Има три вида алгоритъма за обучение на невронни мрежи чрез градиентно спускане. Те са batch gradient descent, mini-batch gradient descent и стохастично градиентно спускане, който е е в основата на тренирането на повечето невронни мрежи в днешно време.

Описание

Градиентното спускане се базира на наблюдението, че ако функцията с множество променливи f(x): Df е диференцируема в околност Uδ(a)Df, то f намалява най-бързо ако се премине от a в посока на отрицателния градиент f(a). Всяка следваща стъпка се изчислява според формулата an+1=anη*f(an). От нея следва, че за достатъчно малка скорост на обучение η+ , имаме f(an)f(an+1). Изваждаме градиента f(a), защото искаме да движим срещу него и към локалния минимум.

Имайки предвид това, при прилагане на метода се започва от предположение x0 за локален минимум от f и се разглежда последователността x0,x1,x2...xn, такава, че xn+1=xnηxn,n0. Стойността на размера на стъпката η може да се променя след всяка итерация. Получава се монотонна редица f(x0)f(x1)(f(x2))...f(xn). Накрая редицата трябва да е сходяща и да се доближава до желания локален минимум.

Пример за градиентно спускане в реалния свят

Градиентното спускане може да бъде илюстрирано чрез конкретен сценарий. Да си представим, че човек се намира високо в планината и иска да слезе (т.е. да намери локалния минимум). Пред него, обаче има гъста мъгла и видимостта е изключително намалена. Пътеката за слизане не се вижда, така че той е принуден да използва само информацията от стръмността на наклона. Логично е този човек да следва местата с най-голям наклон надолу за да слезе възможно най-бързо. Така след като изпробва няколко посоки, той накрая ще успее или да слезе от планината или да заседне в някоя дупка (т.е. локален минимум или седлова точка).

В този пример, човекът представлява алгоритъма, а пътят поет надолу по планината, последователността от точки x0,x1,x2...xn, които човекът ще изследва. Стръмността на пътят представлява производната на функцията f в точка xn. Пътят по който се движи е в съответствие с отрицателния градиент на f в т. xn. Времето в което пътува преди отново да се съобрази с наклона на пътя е размерът на стъпката..

Литература

J. W. Neuberger (2009). Sobolev gradients and differential equations

Източници

Шаблон:Commonscat