Градиентно спускане
Градиентно спускане (на английски: Gradient Descent) е метод (алгоритъм) за намиране на локален минимум на диференцируема функция.
Идеята е чрез итеративен подход да се намери най-ниските стойности на функция, като се правят постепенни стъпки в посока обратна на градиента. Обратното на градиентно спускане е градиентно изкачване, което има за цел да намери локален максимум, чрез стъпване в посока на градиента. Метода на градиентното спускане е широко използван в машинното обучение, за минимизиране на функцията на загубата.
Има три вида алгоритъма за обучение на невронни мрежи чрез градиентно спускане. Те са batch gradient descent, mini-batch gradient descent и стохастично градиентно спускане, който е е в основата на тренирането на повечето невронни мрежи в днешно време.
Описание
[редактиране | редактиране на кода]Градиентното спускане се базира на наблюдението, че ако функцията с множество променливи : е диференцируема в околност , то намалява най-бързо ако се премине от в посока на отрицателния градиент . Всяка следваща стъпка се изчислява според формулата . От нея следва, че за достатъчно малка скорост на обучение , имаме . Изваждаме градиента , защото искаме да движим срещу него и към локалния минимум.
Имайки предвид това, при прилагане на метода се започва от предположение за локален минимум от и се разглежда последователността , такава, че . Стойността на размера на стъпката може да се променя след всяка итерация. Получава се монотонна редица . Накрая редицата трябва да е сходяща и да се доближава до желания локален минимум.
Пример за градиентно спускане в реалния свят
[редактиране | редактиране на кода]Градиентното спускане може да бъде илюстрирано чрез конкретен сценарий. Да си представим, че човек се намира високо в планината и иска да слезе (т.е. да намери локалния минимум). Пред него, обаче има гъста мъгла и видимостта е изключително намалена. Пътеката за слизане не се вижда, така че той е принуден да използва само информацията от стръмността на наклона. Логично е този човек да следва местата с най-голям наклон надолу за да слезе възможно най-бързо. Така след като изпробва няколко посоки, той накрая ще успее или да слезе от планината или да заседне в някоя дупка (т.е. локален минимум или седлова точка).
В този пример, човекът представлява алгоритъма, а пътят поет надолу по планината, последователността от точки които човекът ще изследва. Стръмността на пътят представлява производната на функцията в точка . Пътят по който се движи е в съответствие с отрицателния градиент на в т. . Времето в което пътува преди отново да се съобрази с наклона на пътя е размерът на стъпката..
Литература
[редактиране | редактиране на кода]J. W. Neuberger (2009). Sobolev gradients and differential equations