МЕТОД ГРАДІЄНТНОГО СПУСКУ ДЛЯ НАВЧАННЯ МОДЕЛІ ЛІНІЙНОЇ РЕГРЕСІЇ

Найбільш простий і зрозумілий, разом з тим часто використовуваний метод математичного програмування для вирішення задач такого роду - метод градієнтного спуску (gradient descent). Це ітераційний алгоритм, на кожному кроці якого вектор ваг w змінюється в напрямку найбільшого убування цільового функціоналу [1] [2] , тобто в напрямку антіградіента:

де г) - параметр, званий швидкістю навчання.

Вибір параметра швидкості навчання (learning rate) виконується експериментальним шляхом, залежить від природи даних, для яких підбирається значення цього параметра. Якщо мінімізується функція досить гладка, то параметр г | можна вибрати досить великим, внаслідок чого час роботи алгоритму навчання буде малим. Однак якщо цільова функція має сильну кривизну, то в разі великих значень швидкості навчання можлива ситуація, при якій вектор ваг w буде «перескакувати» своє оптимальне значення. Для таких випадків слід брати малі значення параметра г - швидкість збіжності до мінімуму функції (локальному!) Буде малою, проте менше шанс його пропустити.

Для реалізації алгоритму навчання можливі два підходи:

  • 1) пакетний {batch) - на кожній ітерації алгоритму навчальна вибірка проглядається цілком і після цього розраховується нове значення вектора w;
  • 2) стохастичний ( stochastic ) [3] - на кожній ітерації алгоритму випадковим чином вибирається тільки один об'єкт з навчальної вибірки.

Перший метод обчислювально більш складний, однак він швидше сходиться до мінімуму завдяки перегляду всієї вибірки. Другий метод передбачає менш трудомісткі обчислення, але вимагає розробки алгоритму вибору наступного елемента для навчання.

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

З точки зору оптимального використання обчислювальних ресурсів більш цікавий алгоритм стохастичного градієнта. Нижче представлений його псевдокод.

Вхід:

  • X L - навчальна вибірка.
  • • ц - темп навчання.
  • X - параметр згладжування Q.

вихід:

• Вектор ваг w.

алгоритм:

  • 1. Ініціалізувати ваги w- y
  • 2. Ініціалізувати поточну оцінку функціоналу

  • 3. Поки значення Q не стабілізується і (або) ваги w не перестануть змінюватися, повторювати:
  • 3.1. Вибрати Xj з X L .
  • 3.2. Обчислити вихідне значення алгоритму a (w y Xj) і помилку

3.3. Зробити крок градієнтного спуску:

4. Оцінити значення функціоналу Q:

Існує кілька способів ініціалізації вектора ваг w

  • 1) ініціювати вектор нулями;
  • 2) ініціювати вектор випадковими числами в діапазоні

де k - розмірність простору ознак. З точки

зору застрявання в локальних мінімумах такий підхід краще, так як дозволяє виконувати кілька запусків алгоритму і отримувати різні і можливо більш підходящі варіанти рішень.

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

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

Однак метод стохастичного градієнта не позбавлений недоліків, зокрема:

  • • можлива повільна збіжність алгоритму;
  • • якщо функціонал Q (w) має велику кількість екстремальних точок, то є велика ймовірність застрявання алгоритму в локальних мінімумах. Для боротьби з цим використовується метод випадкової модифікації вектора w, внаслідок якої одна або кілька координат вектора трохи змінюються і тим самим знижується ймовірність застрявання.

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

  • [1] Subjects // Clinical Pharmacology and Therapeutics. 1968. № 9.
  • [2] Див .: Хофер Е., Лундерштедт P. Чисельні методи оптимізації. М .: Машинобудування, 1981.
  • [3] Bottou L. Stochastic Gradient Descent Tricks // Microsoft. Research. 2012. URL: http: //research.microsoft.com/pubs/192769/tricks-2012.pdf
 
Переглянути оригінал
< Попер   ЗМІСТ   ОРИГІНАЛ   Наст >