Чи слід перекваліфікувати модель, якщо є нові спостереження?


28

Отже, мені не вдалося знайти жодної літератури на цю тему, але здається, що варто щось думати:

  • Які найкращі практики у навчанні та оптимізації моделей за наявності нових спостережень?

  • Чи є спосіб визначити період / частоту перепідготовки моделі до того, як прогнози почнуть погіршуватися?

  • Чи надмірно підходить, якщо параметри оптимізуються для агрегованих даних?

Зауважте, що навчання не обов’язково може бути в Інтернеті. Можна побажати модернізувати існуючу модель після дотримання значної розбіжності в останніх прогнозах.


Відповідь сильно залежить від бізнес-сфери та конкретного застосування моделі.
Піт

Відповіді:


16
  1. Після того, як модель буде навчена, і ви отримаєте нові дані, які можна використовувати для навчання, ви можете завантажити попередню модель і тренуватися на ній. Наприклад, ви можете зберегти свою модель у .pickleфайлі, завантажити її та навчити її далі, коли з’являться нові дані. Зверніть увагу , що для моделі правильно передбачити, the new training data should have a similar distribution as the past data.
  2. Прогнози, як правило, погіршуються залежно від набору даних, який ви використовуєте. Наприклад, якщо ви намагаєтеся тренуватися, використовуючи дані Twitter, і ви зібрали дані щодо продукту, який в цей день широко твітують. Але якщо ви користуєтеся твітом через кілька днів, коли цей продукт навіть не обговорюється, він може бути упередженим. The frequency will be dependent on datasetі немає конкретного часу заявляти як такого. If you observe that your new incoming data is deviating vastly, then it is a good practise to retrain the model.
  3. Оптимізація параметрів на агрегованих даних не є надмірною. Великі дані не означають перевиконання. Використовуйте перехресну перевірку, щоб перевірити наявність надлишкового розміру.

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

Якщо дані не змінюються, і якщо ви задоволені точністю поточної моделі, я не бачу сенсу її перекваліфікувати.
Хіма Варша

@Aayush, Можливо, ви можете використовувати вхідні дані як набір перевірки та перевірити вашу поточну модель.
Хіма Варша

Ще рано приймати, але я буду. Спасибі!
user140323

Привіт @ tktktk0711, у мене зараз немає коду, щоб показати вам. Але просто перегляньте це, що вказує на ще одне посилання з кодом. github.com/tflearn/tflearn/isissue/39
Хіма Варша

20

Коли з'являться нові спостереження, є три способи вдосконалити модель:

  1. В Інтернеті: щоразу, коли з'являється нове спостереження, ви використовуєте цю єдину точку даних для подальшого навчання вашої моделі (наприклад, завантажуйте свою поточну модель та додатково тренуйте її, роблячи зворотне розповсюдження за допомогою цього одного спостереження). За допомогою цього методу ваша модель навчається послідовно і на зразок локально адаптується до ваших даних, оскільки на неї більше впливатимуть останні спостереження, ніж попередні спостереження. Це може бути корисно в ситуаціях, коли вашій моделі потрібно динамічно адаптуватися до нових шаблонів даних. Це також корисно, коли ви маєте справу з надзвичайно великими наборами даних, для яких відразу ж неможливо пройти навчання.
  2. Офлайн: ви додаєте нові спостереження до вже наявного набору даних і повністю перекваліфікуєте свою модель на цей новий, більший набір даних. Це, як правило, призводить до кращого глобального наближення цільової функції і є дуже популярним, якщо у вас є фіксований набір даних або якщо у вас часто немає нових спостережень. Однак для великих наборів даних це недоцільно.
  3. нн

Більшість моделей сьогодні використовуватиме пакетну / міні-партію, і вибір розміру партії залежить від вашої заявки та моделі. Вибір партії потрібного розміру еквівалентний вибору правильної частоти, з якою перекваліфікувати вашу модель. Якщо ваше нове спостереження має низьку розбіжність з вашими існуючими даними, я б запропонував більші партії (можливо, 256-512), а якщо навпаки, нові спостереження, як правило, сильно відрізняються від ваших існуючих даних, використовуйте невеликі партії (8-256). Зрештою, розмір партії схожий на ще один гіперпараметр, який потрібно налаштувати і який є специфічним для ваших даних


Привіт, я хочу запитати вас в Інтернеті: як онлайн для нових даних. Чи обмежує цей метод деяку модель ML, я маю на увазі не все машинне навчання.
tktktk0711

Чи знаєте ви будь-які тензорфлорні приклади, в яких використовується партія ?
maxisme

1

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

Якщо ваша вартість витрат:

хвθJ(х,у,θ)

θхi,уi

θт=θт-1-θJ(хi,уi)

По суті це SGD з розміром партії 1.

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

θт=θт-1-iθJ(хi,уi)

Це по суті міні-пакетний SGD.


0

Питання: МОЖЕТЕ ви перекваліфікуватися?

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

Поясню на кількох прикладах:

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

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

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