Що означає алгоритм конвергенції?


12

Я продовжую стикатися з цим терміном, коли читаю про підкріплення, наприклад, у цьому реченні:

Якщо проблему моделюють обережно, деякі алгоритми навчання посилення можуть сходитися до глобального оптимуму

http://reinforcementlearning.ai-depot.com/

або тут:

Для будь-якої фіксованої політики Pi алгоритм TD, описаний вище, було доведено, що він збігається до VPi

http://webdocs.cs.ualberta.ca/~sutton/book/ebook/node62.html

Я розумію, що слово сходиться в тому, що це означає, що декілька речей збираються в одну точку, але як одна річ (алгоритм) може це зробити?


7
У випадку ітеративних алгоритмів, як кажуть, вони сходяться, коли їхні кандидатурні рішення для кожної ітерації мають тенденцію наближатися до потрібного рішення.
MetaFight

6
Це може допомогти нагадати, що ліміт математики також кажуть або збігатися, або розходитися, хоча "межа" є "єдиною річчю".
Іксрек

@Ixrec: "Ліміт" було названо за значенням, яке воно переходить / відхиляє. Наприклад, як у "вона сходить до 1", тобто сказати "вона ніколи не перевищує 1", тобто сказати "1 - це максимально отримане значення", а отже, "межа" ваших очікувань. Звідси однина.
Flater

Відповіді:


14

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

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

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


3

Що таке конвергенція, взагалі

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

Формальне визначення має приблизно таке:

Враховуючи (нескінченну) послідовність дійсних чисел, X0, X1, X2, ... Xn ...ми говоримо, Xn converges to a given number Lякщо для кожної позитивної помилки, яку ви думаєте, існує Xmтака, що кожен елемент, Xnщо виникає після, Xmвідрізняється Lменшим, ніж помилка.

Приклад:

Уявіть послідовність як таку:

  • X0 = 1
  • X1 = 0,1
  • X2 = 0,01
  • X3 = 0,001
  • X4 = 0,0001
  • ...
  • Xn = 1 / (10 ^ n)

Чи зближується Xn до нуля? Так! Чому?

Подумайте про помилку E (наприклад, E = 0.0025). Чи є елемент у послідовності, що після цього кожен елемент знаходиться нижче 0.025? Так! Цей елемент є X3 = 0.001. Після X2 все XNнижче 0.0025. Чи можна це зробити кожному E> 0? Так. За кожною позитивною помилкою, яку ми вибрали, ми можемо побачити, скільки нулів має перед першою десятковою комою, і послідовність буде нижчою, ніж вона починається від елемента, який має однакову кількість нулів.

Це означає, що Xn = 1/(10^5) converges to 0. Як і в "він може наблизитися і наблизитися до нуля" стільки, скільки нам хочеться.


Що означає алгоритм конвергенції?

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

Алгоритм починає друкувати числа типу:

  • X0 = 3,14
  • X1 = 3.141
  • X2 = 3,1415
  • X3 = 3,14159
  • ...

Ми могли б запитати себе: чи алгоритм друкує номери все ближче до PI? Іншими словами, чи послідовність, X0, X1, ... XN ...яку друкує наш алгоритм, сходиться до PI?

Якщо так, ми говоримо, що наш алгоритм сходить до PI.


Нам зазвичай цікаво довести правильність алгоритму.

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

Взагалі алгоритми мають те, що ми називаємо метрикою . Метрика - це число, яке ми даємо заданому результату, який виробляє алгоритм. Наприклад, в ітераційних алгоритмах AI / Machine Learning дуже часто ми відстежуємо «помилку», яку алгоритм генерує на основі вхідних даних. Ця помилка є показником.

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

У цих випадках, global optimumяк правило, визначається як установка, яка має найменшу можливу помилку. У такому випадку "алгоритм переходить до глобального оптимуму" означає, що "алгоритм генерує помилки в послідовності, яка сходиться до найменшої можливої ​​помилки".

Якщо "глобальний оптимум" - це наше "правильне рішення", то заявляючи, що наш алгоритм збігається, це те саме, що заявляти, що наш алгоритм правильний.

Також майте на увазі, що заявляючи, що алгоритм збігається, потрібно довести (як ми це зробили для нашого прикладу 0,001, 0,0001, ...).


Наприклад, класифікатор

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

  • (1, непарне)
  • (2, навіть)
  • (3, непарне)
  • (77, непарне)
  • (4, навіть)

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

Отже, якщо наш алгоритм плює наступне:

  • (1, навіть) // неправильно
  • (2, навіть)
  • (3, навіть) // неправильно
  • (77, навіть) // неправильно
  • (4, навіть)

Наш показник помилок був би 3/5 = 0.6. Тепер скажемо, що ми знову запускаємо алгоритм і він зараз плює:

  • (1, навіть) // неправильно
  • (2, навіть)
  • (3, непарне)
  • (77, непарне)
  • (4, навіть)

Наш показник помилок був би 1/5 = 0.2.

Скажімо, вона працює все більше разів, і наша послідовність помилок виглядає приблизно так:

0.6, 0.2, 0.1, 0.01, 0.000456, 0.00000543, 0.000000000444 ....

Отже, велике питання: чи буде наш алгоритм коли-небудь нульовим? Чи коли-небудь він сходиться до нуля? Чи сходиться кожен наш алгоритм? Чи можемо ми довести, що зрештою це вийде правильно (або як можна ближче до правого)?

Сподіваємось так :)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.