Мініиізація функції декількох змінних використовуючи метод градієнтного спуску

З курсу математики відомо, що напрямок найбільшого зростання будь-якої функції, в нашому випадку Метод градієнтного спуску характеризується її градієнтом:

Метод градієнтного спуску

де Метод градієнтного спуску — одиничні вектори у напрямку координатних осей. Отже, напрям, протилежний градієнтному, вкаже напрямок найбільшого спадання функції а методи, засновані на виборі шляху оптимізації за допомогою градієнта, називаються градієнтними.

Процес відшукання точки мінімуму функції Метод градієнтного спуску за методом градієнтного спуску полягає в наступному: на початку вибираємо деяку початкову точку Метод градієнтного спуску і обчислюємо в ній градієнт функції Метод градієнтного спуску. Далі, робимо крок у антиградієнтному напрямку Метод градієнтного спуску (де Метод градієнтного спуску). У результаті отримуємо нову точку Метод градієнтного спуску, значення функції в якій зазвичай менше  за значення функції в точці Метод градієнтного спуску. Якщо ця умова не виконується, тобто значення функції не змінилося або навіть зросла, то потрібно зменшити крок Метод градієнтного спуску (Метод градієнтного спуску), після чого, у новій точці обчислюємо градієнт і знову робимо крок у зворотному до нього напрямку Метод градієнтного спуску.

Процес продовжується до отримання найменшого значення цільової функції. Строго кажучи, момент закінчення пошуку настане тоді, коли рух з отриманої точки, при виборі будь-якого кроку, призводить до зростання значення цільової функції. Якщо мінімум функції досягається всередині розглядуваної області, то в цій точці градієнт дорівнює нулю, що також може служити сигналом про закінчення процесу оптимізації.

Формули для частинних похідних можна отримати в явному вигляді лише в тому випадку, коли цільова функція задана аналітично. В іншому випадку ці похідні обчислюються за допомогою чисельного диференціювання:

metod_gradientnoho_spysky24

Зауважимо, що знайти точку мінімуму функції Метод градієнтного спуску можна також шляхом зведення багатовимірної задачі оптимізації до послідовності одновимірних задач на кожному кроці оптимізації. Такий спосіб називається  методом покоординатного спуску. Різниця полягає в тому, що у методі градієнтного спуску напрямок оптимізації визначається градієнтом цільової функції, тоді як у методі покоординатного спуску проводиться спуск на кожному кроці вздовж одного з координатних напрямків.

Блок-схема програмної реалізації методу градієнтного спуску для функції двох змінних:

Метод градієнтного спуску

Матеріал був корисним, поділись в соціальних мережах:

Якщо тобі сподобалась дана тема, залиш свій коментар