Чи мрія автоматизованого машинного навчання?


12

Коли я відкриваю машинне навчання, я бачу різні цікаві методи, такі як:

  • автоматично налаштовувати алгоритми з такими методами, як grid search,
  • отримати більш точні результати за допомогою комбінації різних алгоритмів одного "типу" boosting,
  • отримати більш точні результати за рахунок поєднання різних алгоритмів (але не той же самий тип алгоритмів), це stacking,
  • і, напевно, ще багато чого мені ще належить відкрити ...

Моє запитання таке: є всі ці твори. Але чи можливо їх скласти разом, щоб скласти алгоритм, який приймає як вхідні очищені дані та виводить хороші результати, беручи найкращі з усіх методів? (Звичайно, професійним вченим з даних буде, мабуть, менш ефективно, але він буде кращим за мене!) Якщо так, чи є у вас зразки кодів чи ви знаєте рамки, які можуть це зробити?

EDIT: Після деяких відповідей, здається, необхідно зробити деяке звуження. Візьмемо для прикладу, у нас є один стовпчик з категоричними даними, назвемо його yі ми хочемо передбачити це з числових даних, Xщо є або манекенами, або реальними числовими даними (висота, температура). Ми припускаємо, що чистка була зроблена раніше. Чи існує алгоритм, який може приймати такі дані і давати прогноз? (тестуючи декілька алгоритмів, налаштовуючи їх, збільшуючи їх і т.д.) Якщо так, чи є обчислювально ефективним (чи обчислення робляться в розумний час, якщо порівняти зі звичайним алгоритмом), і чи є у вас приклад коду?


1
Напевно, поки не буде сильного ШІ.
gung - Відновіть Моніку

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

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

2
Є продукти, які стверджують, що вони роблять те, що ви описуєте, наприклад, Crystal Ball . Я особисто їм не довіряю, але як ви писали: вони роблять роботу краще, ніж хтось, хто не має поняття про статистику
Aksakal

1
Бо прогнозування auto.arimaforecastбібліотеки) може бути краще, ніж люди, - Роб Хайндман кілька разів згадував у своїх презентаціях. Тож є області, де якісь "автоматичні навчання" застосовуються з успіхом.
Тім

Відповіді:


7

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

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

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


EDIT для вирішення відредагованого питання:

у нас є один стовпець з категоричними даними, назвемо його і ми хочемо передбачити це з числових даних що є манекенами або реальними числовими данимиXyX

Це звучить як щось, у чому насправді досить випадкові ліси . Тоді знову ж , «універсальний» алгоритм , як ФР, швидше за все , не бив алгоритм , який був налаштований до конкретного типу заздалегідь відомі, ризики , наприклад, рукописні цифр, або кредит за замовчуванням.y


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

Не впевнений, що останній абзац все ще дотримується, враховуючи величезний успіх глибокого вивчення великої різноманітності проблем. Ці методи, безумовно, мають загальне призначення, але вони ведуть облік у кількох областях застосування, таких як комп’ютерне бачення та NLP. Можна стверджувати, що архітектури відрізняються між завданнями, але на теоретичному рівні повністю пов'язана глибока мережа буде виконувати принаймні так само добре, як, скажімо, конволюційні мережі, просто правильні методи навчання залишаються невловимими.
Marc Claesen

@MarcClaesen: Я б сказав, що "це лише те, що правильні методи навчання залишаються невловимими" - це точка, коли вам все одно знадобиться спеціальна експертиза домену.
Стефан Коласа

7

Те, що ви описуєте, вже певною мірою існує, наприклад, в AutoWEKA і активно досліджується (наприклад, такі проблеми, як AutoML Chalearn's ).

Зазвичай це розглядається в підполі оптимізації гіперпараметрів. Програмні пакети, такі як Optunity , Hyperopt та ParamILS, можуть використовуватися для автоматичної оптимізації гіперпараметрів для заданого підходу та вибору, який підхід буде найкращим. Однак, такі проблеми оптимізації не тривіальні, і, як правило, потрібен тривалий час, щоб автоматично отримати найкращу модель (або близьку до неї).

Ви можете знайти приклад використання Optunity для автоматичного визначення найкращого алгоритму навчання та оптимізації його гіперпараметрів за адресою http://optunity.readthedocs.org/en/latest/notebooks/notebooks/sklearn-automated-classification.html


4

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

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

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

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

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

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


Я згоден, що ми ще далеко від повністю автоматизованого машинного навчання, але не з вказаних вами причин. Дві речі: (i) пошук найкращої моделі (+ оптимізація її гіперпараметрів) із заданого набору вже можливий, і (ii) інженерія та видобуток функцій втрачають значення через досягнення глибокого навчання. Головне, що нам зараз бракує, - це автоматизовані способи включення попередніх знань та спеціального здорового глузду.
Marc Claesen

Я думаю, я не бачу, як "попередні знання та здоровий глузд" можуть покращити процес ML, за винятком того, щоб допомогти (i) знайти найкращу модель та (ii) знайти найкращі функції. Я спробував розрізнити справжні моделі та оптимальні (максимальна точність) моделі з другого до останнього абзацу.
brandco

виявити очевидні недоліки в процесі моделювання, такі як помилкові мітки та / або витоки інформації, як боротися з відсутніми даними, ідентифікувати фактичне завдання навчання (+ відповідна функція оцінки / втрати) і взагалі зробити повне очищення даних (що завжди були основними зусиллями щодо всіх практичних проблем, в яких я брав участь).
Marc Claesen

2

Залежить від того, кого ви запитуєте.

Нещодавно я почув розмову Скотта Голдера в " Контексті релевантному" . Їх продукт по суті є особливістю та вибору моделі робота. Основною базовою моделлю є логістична регресія, але система в основному використовує машинне навчання для з'ясування правильної комбінації вибору особливостей, зменшення розмірів, регуляризації тощо для створення точних прогнозів. Це була дуже вражаюча розмова, і всі деталі дуже захищені. Очевидно, їхні клієнти включають великі фінансові компанії, і система може обробляти довільно масивні набори даних.

Принаймні, кілька людей, здається, вважають, що тут вже є автоматизована наука даних, принаймні для певних застосувань. А деякі з цих людей (клієнти Context Relevant), очевидно, платять через ніс за доступ до нього.


1

Ні, це не мрія. Ми реалізували це (поєднання всіх згаданих вами методик, включаючи складені ансамблі) в бібліотеці машинного навчання H2O . Ви можете прочитати більше про нього та знайти приклади коду в R та Python тут .

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