Автоматизирано машинно обучение или AutoML обяснено

Двете най-големи пречки пред използването на машинно обучение (както класическо машинно обучение, така и дълбоко обучение) са уменията и изчислителните ресурси. Можете да разрешите втория проблем, като хвърлите пари за него, или за закупуване на ускорен хардуер (като компютри с графични процесори от висок клас) или за отдаване под наем на изчислителни ресурси в облака (като например с прикачени графични процесори, TPU и FPGA).

От друга страна, решаването на проблема с уменията е по-трудно. Учените по данни често командват солидни заплати и все още може да е трудно да бъдат наети. Google успя да обучи много от своите служители на собствената си рамка TensorFlow, но повечето компании едва ли разполагат с достатъчно квалифицирани хора, за да могат сами да изграждат модели за машинно обучение и дълбоко обучение, още по-малко да учат другите как.

Какво е AutoML?

Автоматизираното машинно обучение или AutoML има за цел да намали или премахне необходимостта от опитни изследователи на данни за изграждане на модели за машинно обучение и дълбоко обучение. Вместо това, AutoML система ви позволява да предоставите етикетираните данни за обучение като вход и да получите оптимизиран модел като изход.

Има няколко начина за това. Един от подходите е софтуерът просто да обучи всеки вид модел върху данните и да избере този, който работи най-добре. Усъвършенстване на това би било то да изгради един или повече ансамбълни модели, които комбинират останалите модели, което понякога (но не винаги) дава по-добри резултати.

Втора техника е да се оптимизират хиперпараметрите (обяснени по-долу) на най-добрия модел или модели, за да се обучи още по-добър модел. Техническото проектиране (също обяснено по-долу) е ценно допълнение към всяко обучение за модели. Един от начините за премахване на уменията за дълбоко обучение е да се използва трансферно обучение, като по същество се персонализира добре обучен общ модел за конкретни данни.

Какво е оптимизация на хиперпараметри?

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

Повечето модели за машинно обучение имат и хиперпараметри, които са зададени извън цикъла на обучение. Те често включват скоростта на обучение, степента на отпадане и специфичните за модела параметри като броя на дърветата в случайна гора.

Настройката на хиперпараметрите или оптимизацията на хиперпараметри (HPO) е автоматичен начин за почистване или търсене в един или повече от хиперпараметрите на модел, за да се намери наборът, който води до най-добре обучения модел. Това може да отнеме много време, тъй като трябва да обучите модела отново (вътрешната верига) за всеки набор от стойности на хиперпараметри в размах (външната верига). Ако тренирате паралелно много модели, можете да намалите необходимото време за сметка на използването на повече хардуер.

Какво е инженеринг на функции?

Една характеристика е индивидуално измеримо свойство или характеристика на наблюдаваното явление. Понятието „характеристика“ е свързано с това на обяснителна променлива, която се използва в статистически техники като линейна регресия. А функцията вектор съчетава всички функции за един ред в числен вектор. Инженерингът на характеристиките е процесът на намиране на най-добрия набор от променливи и най-доброто кодиране и нормализиране на данни за въвеждане в процеса на обучение на модела.

Част от изкуството на избора на характеристики е да се избере минимален набор от независими променливи, които обясняват проблема. Ако две променливи са силно корелирани, или те трябва да бъдат комбинирани в една характеристика, или една трябва да отпадне. Понякога хората извършват анализ на основните компоненти (PCA), за да преобразуват корелираните променливи в набор от линейно некорелирани променливи.

За да използвате категорични данни за класификация на машината, трябва да кодирате текстовите етикети в друга форма. Има две общи кодировки.

Едното е кодирането на етикети , което означава, че всяка стойност на текстовия етикет се заменя с число. Другото е еднократно кодиране , което означава, че всяка стойност на текстовия етикет се превръща в колона с двоична стойност (1 или 0). Повечето рамки за машинно обучение имат функции, които правят преобразуването вместо вас. По принцип се предпочита едно-горещо кодиране, тъй като кодирането на етикети понякога може да обърка алгоритъма на машинното обучение да мисли, че кодираната колона е подредена.

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

Някои от трансформациите, които хората използват, за да конструират нови характеристики или да намалят размерността на векторите на характеристики, са прости. Например извадете Year of Birthот Year of Deathи конструирате Age at Death, което е основна независима променлива за анализ на живота и смъртността. В други случаи конструирането на характеристики може да не е толкова очевидно.

Какво представлява трансферното обучение?

Трансферното обучение понякога се нарича персонализирано машинно обучение, а понякога се нарича AutoML (най-вече от Google). Вместо да започне от нулата, когато обучава модели от вашите данни, Google Cloud AutoML прилага автоматично обучение за дълбоко прехвърляне (което означава, че започва от съществуваща дълбока невронна мрежа, обучена на други данни) и търсене на невронна архитектура (което означава, че намира правилната комбинация от допълнителни мрежови слоеве) за превод на езикова двойка, класификация на естествен език и класификация на изображения.

Това е различен процес от този, който обикновено се разбира под AutoML, и не обхваща толкова много случаи на употреба. От друга страна, ако имате нужда от персонализиран модел за дълбоко обучение в поддържана област, трансферното обучение често ще създаде превъзходен модел.

Внедрения на AutoML

Има много реализации на AutoML, които можете да опитате. Някои са платени услуги, а други безплатен изходен код. Списъкът по-долу в никакъв случай не е пълен или окончателен.

Услуги на AutoML

Всичките три големи облачни услуги имат някакъв вид AutoML. Amazon SageMaker прави настройка на хиперпараметри, но не изпробва автоматично множество модели или изпълнява инженеринг на функции. Azure Machine Learning има както AutoML, който обхваща функции и алгоритми, така и настройка на хиперпараметри, които обикновено изпълнявате на най-добрия алгоритъм, избран от AutoML. Google Cloud AutoML, както споменах по-рано, е задълбочено трансферно обучение за превод на езикови двойки, класификация на естествен език и класификация на изображения.

Редица по-малки компании предлагат и услуги на AutoML. Например DataRobot, който твърди, че е изобретил AutoML, има силна репутация на пазара. И докато dotData има малък пазарен дял и посредствен потребителски интерфейс, той има силни възможности за инженерни характеристики и обхваща много случаи на корпоративно използване. Изкуственият интелект H2O.ai Driverless, който прегледах през 2017 г., може да помогне на учен за данни да създаде модели като капитан на Kaggle, извършвайки инженеринг на функции, алгоритмични обхождания и оптимизиране на хиперпараметри по унифициран начин.

Рамки на AutoML

AdaNet е лека базирана на TensorFlow рамка за автоматично обучение на висококачествени модели с минимална експертна намеса. Auto-Keras е софтуерна библиотека с отворен код за автоматизирано машинно обучение, разработена в Texas A&M, която предоставя функции за автоматично търсене на архитектура и хиперпараметри на модели за дълбоко обучение. NNI (Neural Network Intelligence) е набор от инструменти на Microsoft, който помага на потребителите да проектират и настройват модели за машинно обучение (например хиперпараметри), архитектури на невронна мрежа или параметри на сложна система по ефективен и автоматичен начин.

Можете да намерите допълнителни проекти на AutoML и доста пълен и актуален списък с документи за AutoML на GitHub.