Изменения

Перейти к: навигация, поиск

Модель алгоритма и её выбор

1686 байт добавлено, 13:49, 10 марта 2020
Источники информации
Описанная выше функция <tex> g </tex> для фиксированного значения весов <tex> \theta \in \Theta </tex> называется '''решающим правилом'''.
'''Модель''' {{---}} это совокупность всех решающих правил, которые получаются путем присваивания весам всех возможных допустимых значений.
Формально модель <tex> A = \{g(x, \theta)| \theta \in \Theta\} </tex>.
Модель определяется множеством допустимых весов <tex> \Theta </tex> и структурой решающего правила <tex> g(x,\theta) </tex>.
=== Понятие гиперпараметров модели ===
'''Гиперпараметры модели''' {{---}} это параметры, значения которых задается до начала обучения модели и не изменяется в процессе обучения. У модели может не быть гиперпараметров.
'''Параметры модели''' {{---}} это параметры, которые изменяются и оптимизируются в процессе обучения модели и итоговые значения этих параметров являются результатом обучения модели.
Примерами гиперпараметров могут служить количество слоев нейронной сети, а также количество нейронов на каждом слое. Примерами параметров могут служить веса ребер нейронной сети.
Для нахождения оптимальных гиперпараметров модели могут применяться различные алгоритмы [[Настройка гиперпараметров | настройки гиперпараметров]]<sup>[на 0828.01.19 не создан]</sup>.
=== Пример ===
[[Файл:Linear-regression.png|300px|thumb|[http://www.machinelearning.ru/wiki/index.php?title=%D0%9B%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%B0%D1%8F_%D1%80%D0%B5%D0%B3%D1%80%D0%B5%D1%81%D1%81%D0%B8%D1%8F_%28%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%29 Рис 1. Пример линейной регрессии]]]
В качестве примера модели приведем [[Линейная регрессия | линейную регрессию]]<sup>[на 18.01.19 не создан].
Линейная регрессия задается следующей формулой:
<tex> g(x, \theta) = \theta_0 + \theta_1x_1 + ... + \theta_kx_k = \theta_0 + \sum_{i=1}^k \theta_ix_i = \theta_0 + x^T\theta</tex>, где <tex> x^T = (x_1, x_2, ..., x_k) </tex> {{---}} вектор признаков,  <tex> \theta = (\theta_1, \theta_2, ..., \theta_k)</tex> {{---}} веса модели, настраиваемые в процессе обучения.
Гиперпараметром модели является число слагаемых в функции <tex> g(x, \theta) </tex>.
== Задача выбора модели ==
Пусть <tex> A </tex> {{---}} модель алгоритма, характеризующаяся гиперпараметрами <tex> \lambda = \{\lambda_1, ..., \lambda_m\}, \lambda_1 \in \Lambda_1, ..., \lambda_m \in \Lambda_m </tex>. Тогда с ней связано пространство гиперпараметров <tex> \Lambda = \Lambda_1 \times ... \times \Lambda_m </tex>.  За <tex> A_{\lambda}</tex> обозначим алгоритм, то есть модель алгоритма, для которой задан вектор гиперпараметров <tex> \lambda \in \Lambda </tex>.
Для выбора наилучшего алгоритма необходимо зафиксировать меру качества работы алгоритма. Назовем эту меру <tex> Q(A_{\lambda}, D) </tex>.
==== Подзадача выбора лучшего алгоритма из портфолио ====
Дано некоторое множество алгоритмов с фиксированными структурными параметрами <tex> \mathcal{A} = \{A^1_{\lambda_1}, ..., A^m_{\lambda_m}\}</tex> и обучающая выборка <tex> D = \{d_1, ..., d_n\}</tex>. Здесь <tex> d_i = (x_i, y_i) \in (X, Y)</tex>. Требуется выбрать алгоритм <tex> A^*_{\lambda_*} </tex>, который окажется наиболее эффективным с точки зрения меры качества <tex> Q </tex>.
==== Подзадача оптимизации гиперпараметров ====
Подзадача оптимизации гиперпараметров заключается в подборе таких <tex> \lambda^* \in \Lambda </tex>, при которых заданная модель алгоритма <tex> A </tex> будет наиболее эффективна.
=== Методы выбора модели ===
Модель можно выбрать из некоторого множества моделей, проверив результат работы каждой модели из множества с помощью ручного тестирования, но ручное тестирование серьезно ограничивает количество моделей, которые можно перебрать, а также требует больших трудозатрат. Поэтому в большинстве случаев используются алгоритмы, позволяющие автоматически выбирать модель. Далее будут рассмотрены некоторые из таких алгоритмов.
[[Файл:Scikit-learn-scheme.png|900px|thumb|center|[https://www.codeastar.com/choose-machine-learning-models-python/ Рис 2. Схема выбора модели в библиотеке scikit-learn для Python]]]
==== Кросс-валидация ====
{{main|Кросс-валидация}} Основная идея алгоритма кросс-валидации {{---}} разбить обучающую выборку на обучающую и тестовую. Таким образом, чтобы таким образом будет возможным эмулировать наличие тестовой выборки, которая не участвует участвующей в обучении, но для которой известны правильные ответы. Более подробно про алгоритм кросс-валидации можно прочитать в [[Кросс-валидация | соответствующей статье]].
Достоинства и недостатки кросс-валидации:
==== Мета-обучение ====
Целью мета{{main|Мета-обучения является решение задачи выбора алгоритма из портфолио алгоритмов для решения поставленной задачи без непосредственного применения каждого из них. Решение этой задачи в рамках мета-обучения сводится к задаче [https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81_%D1%83%D1%87%D0%B8%D1%82%D0%B5%D0%BB%D0%B5%D0%BC обучения с учителем]. Для этого используется заранее отобранное множество наборов данных <tex> D </tex>. Для каждого набора данных <tex> d \in D </tex> вычисляется вектор мета-признаков, которые описывают свойства этого набора данных. Ими могут быть: число категориальных или численных признаков объеков в <tex> d </tex>, число возможных меток, размер <tex> d </tex> и [https://ieeexplore.ieee.org/document/7382962 многие другие], а еще эту статью можно найти вот [https://www.fruct.org/publications/ainl-fruct/files/Fil.pdf тут]. Каждый алгоритм запускается на всех наборах данных из <tex> D </tex>. После этого вычисляется эмпирический риск, на основе которого формируются метки классов. Затем мета-классификатор обучается на полученных результатах. В качестве описания набора данных выступает вектор мета-признаков, а в качестве метки — алгоритм, оказавшийся самым эффективным с точки зрения заранее выбранной меры качества. обучение}}
Более подробно про Целью мета-обучение можно почитать обучения является решение задачи выбора алгоритма из портфолио алгоритмов для решения поставленной задачи без непосредственного применения каждого из них. Решение этой задачи в рамках мета-обучения сводится к задаче [[Метаhttps://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81_%D1%83%D1%87%D0%B8%D1%82%D0%B5%D0%BB%D0%B5%D0%BC обучения с учителем]. Для этого используется заранее отобранное множество наборов данных <tex> D </tex>. Для каждого набора данных <tex> d \in D </tex> вычисляется вектор мета-обучение | соответствующей статье]]признаков, которые описывают свойства этого набора данных. Ими могут быть: число категориальных или численных признаков объектов в <tex> d </tex>, число возможных меток, размер <tex> d </tex> и многие другие<supref>[на 08https://www.01fruct.19 не созданorg/publications/ainl-fruct/files/Fil.pdf Datasets meta-feature description for recommending feature selection algorithm]</supref>. Каждый алгоритм запускается на всех наборах данных из <tex> D </tex>. После этого вычисляется эмпирический риск, на основе которого формируются метки классов. Затем мета-классификатор обучается на полученных результатах. В качестве описания набора данных выступает вектор мета-признаков, а в качестве метки — алгоритм, оказавшийся самым эффективным с точки зрения заранее выбранной меры качества.
Достоинства и недостатки мета-обучения:
# Точность алгоритма может быть ниже, чем при кросс-валидации.
==== [http://www.machinelearning.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%D0%BD%D0%BE%D1%81%D1%82%D1%8C_%D0%92%D0%B0%D0%BF%D0%BD%D0%B8%D0%BA%D0%B0-%D0%A7%D0%B5%D1%80%D0%B2%D0%BE%D0%BD%D0%B5%D0%BD%D0%BA%D0%B8%D1%81%D0%B0 Теория Вапника-Червоненкиса Червоненкинса] ====
Идея данной теории заключается в следующем: чем более «гибкой» является модель, тем хуже ее обобщающая способность. Данная идея базируется на том, что «гибкое» решающее правило способно настраиваться на малейшие шумы, содержащиеся в обучающей выборке.
<tex> P_{test}(\theta) <= P_{train}(\theta) + \sqrt{\frac{h(\Theta) * (\log{(\frac{2d}{h(\Theta)})} + 1) - \log{(\frac{\eta}{4})}}{n}} </tex>, где <tex> d </tex> {{---}} размерность пространства признаков.
Неравенство верно с вероятностью <tex> 1 - \eta </tex> <tex> \forall \theta \in \Theta </tex>.
Алгоритм выбора модели согласно теории Вапника-Червоненкиса: Последовательно последовательно анализируя модели с увеличивающейся емкостью, необходимо выбирать модель с наименьшей верхней оценкой тестовой ошибки.
Достоинства теории Вапника-Червоненкиса:
== Существующие системы автоматического выбора модели ==
===Автоматизированный выбор модели в библиотеке [https://www.ml4aad.org/wp-content/uploads/2018/07/automl_book_draft_auto-weka.pdf auto-WEKA] для Java.===
Библиотека используется для одновременного поиска оптимальной модели и оптимальных гиперпараметров модели для задач классификации и регрессии (начиная с версии 2.0).
Библиотека используется для одновременного поиска оптимальной модели и оптимальных гиперпараметров модели для задачи классификации.
Выбор модели осуществляется на основе конвейера, организованного в древовидной структуре. Каждая вершина дерева {{---}} один из четырех операторов конвейера (preprocessing, decomposition, feature selection, modellingmodeling). Каждый конвейер начинается с одной или нескольких копий входного набора данных, которые являются листьями дерева и которые подаются в операторы в соответствии со структурой конвейера. Данные модифицируются оператором в вершине и поступают на вход следующей вершины. В библиотеке используются генетические алгоритмы для нахождения лучших конвейеров. После создания конвеера, оценивается его производительность и случайным образом изменяются части конвеера для поиска наибольшей эффективности. Время работы TPOT может варьироваться в зависимости от размера входных данных. При начальных настройках в 100 поколений с размером популяции 100, за время работы оценивается 10000 конфигураций конвеера. По времени это сравнимо с [https://en.wikipedia.org/wiki/Hyperparameter_optimization#Grid_search поиском по сетке] для 10000 комбинаций гиперпараметров. Это 10000 конфигураций модели со [[Кросс-валидация | скользящим контролем]] по 10 блокам, что означает, что около 100000 моделей создается и оценивается на обучающих данных в одном поиске по сетке. Поэтому, для некоторых наборов данных требуется всего несколько минут, чтобы найти высокопроизводительную модель для работы, а некоторым может потребоваться несколько дней.
После поиска конвейера его также можно экспортировать в файл Python.
===Автоматизированный выбор модели в библиотеке [https://automl.github.io/auto-sklearn/stable/ auto-sklearn] для Python.===
[[Файл:Auto-sklearn-scheme.png|500px|thumb|[https://papers.nips.cc/paper/5872-efficient-and-robust-automated-machine-learning.pdf Рис 4. Схема выбора модели в библиотеке auto-sklearn]]]
Библиотека используется для одновременного поиска оптимальной модели и оптимальных гиперпараметров модели для задачи классификации.
Сначала используется мета-обучение, использующая различные признаки на основе различных признаков и мета-признаки признаков набора данных, чтобы найти наилучшие модели. После этого используется подход [https://en.wikipedia.org/wiki/Bayesian_optimization Байесовской оптимизации], чтобы найти наилучшие гиперпараметры для наилучших моделей. На рисунке 5 показаны общие компоненты Auto-sklearn. Он состоит из 15 алгоритмов классификации, 14 методов предварительной обработки и 4 методов предварительной обработки данных. Мы параметризовали каждый из них, что привело к пространству, состоящему из 110 гиперпараметров. Большинство из них являются условными гиперпараметрами, которые активны, только если выбран соответствующий компонент. Отметим, что SMAC может обрабатывать эту обусловленность изначально. [[Файл:model_5.png|900px|center|thumb| Рис 5. Структурированное пространство конфигурации. Квадратные прямоугольники обозначают родительские гиперпараметры, прямоугольники с закругленными краями являются листовыми гиперпараметрами. Серые прямоугольники отмечают активные гиперпараметры, которые образуют пример конфигурации и конвейера машинного обучения. Каждый конвейер содержит один препроцессор, классификатор и до трех методов препроцессора данных, а также соответствующие гиперпараметры.]]
== См. также ==
* [[Настройка гиперпараметров]]<sup>[на 0828.01.19 не создан]</sup>
* [[Переобучение]]
* [[Мета-обучение]]<sup>[на 08.01.19 не создан]</sup>* [[Линейная регрессия]]<sup>[на 18.01.19 не создан]
== Примечания ==
# [http:<references//www.machinelearning.ru/wiki/index.php?title=%D0%A0%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%D0%BD%D0%BE%D1%81%D1%82%D1%8C_%D0%92%D0%B0%D0%BF%D0%BD%D0%B8%D0%BA%D0%B0-%D0%A7%D0%B5%D1%80%D0%B2%D0%BE%D0%BD%D0%B5%D0%BD%D0%BA%D0%B8%D1%81%D0%B0 Теория Вапника-Червоненкинса]# [https://en.wikipedia.org/wiki/Cross-validation_(statistics) Кросс-валидация]# [https://link.springer.com/article/10.1023/B:MACH.0000015878.60765.42 Мета-обучение]# [https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81_%D1%83%D1%87%D0%B8%D1%82%D0%B5%D0%BB%D0%B5%D0%BC Обучение с учителем]# [https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%B0%D1%8F_%D1%80%D0%B5%D0%B3%D1%80%D0%B5%D1%81%D1%81%D0%B8%D1%8F Линейная регрессия]# [https://www.fruct.org/publications/ainl-fruct/files/Fil.pdf Datasets Meta-Feature Description for Recommending Feature Selection Algorithm]# [https://www.ml4aad.org/automated-algorithm-design/algorithm-configuration/smac/ SMAC]# [https://7bce9816-a-62cb3a1a-s-sites.googlegroups.com/site/automl2017icml/accepted-papers/AutoML_2017_paper_23.pdf?attachauth=ANoY7cr6uPaUoNh3gc3A-A1UbLXQgNEATEkfZmKD8kozB3hpCYtM9JwnOevEsW9W42CwurzJKrxxEatcB4DCjWNB_Ndvy1uC0lbQyCTlDIfrW6eYJXvdbFJPilYfmf8_ryilH0IwG0ddntLYy-VA3Fm1JeM495fTZxorYth0DDKiqtKvSR92dGl8CM_mUB7sun0R6wurCxM36QqcYEaf5kIm13MM0reWlR3aPZVNe_-AefOCpoXznR-wH04mSWjH8jmlk5Bw51AN&attredirects=0 Fast Automated Selection of Learning Algorithm And its Hyperparameters by Reinforcement Learning]># Shalamov V., Efimova V., Muravyov S., and Filchenkov A. "Reinforcement-based Method for Simultaneous Clustering Algorithm Selection and its Hyperparameters Optimization." Procedia Computer Science 136 (2018): 144-153.
== Источники информации ==
# * [http://www.machinelearning.ru/wiki/images/0/05/BMMO11_4.pdf Выбор machinelearning.ru {{---}} Задачи выбора модели] - презентация на MachineLearning.ru# * [https://en.wikipedia.org/wiki/Hyperparameter_(machine_learning) ГиперпараметрыWikipedia {{---}} Hyperparameter] - статья на Википедии# * [https://machinelearningmastery.com/difference-between-a-parameter-and-a-hyperparameter/ Разница между параметрами и гиперпараметрамиWhat is the Difference Between a Parameter and a Hyperparameter?] - описание разницы между параметрами и гиперпараметрами модели# * [http://jmlda.org/papers/doc/2016/no2/Efimova2016Reinforcement.pdf Применение обучения с подкреплением для одновременного выбора модели алгоритма классификации и ее структурных параметров]* [https://7bce9816-a-62cb3a1a-s-sites.googlegroups.com/site/automl2017icml/accepted-papers/AutoML_2017_paper_23.pdf?attachauth=ANoY7cr6uPaUoNh3gc3A-A1UbLXQgNEATEkfZmKD8kozB3hpCYtM9JwnOevEsW9W42CwurzJKrxxEatcB4DCjWNB_Ndvy1uC0lbQyCTlDIfrW6eYJXvdbFJPilYfmf8_ryilH0IwG0ddntLYy-VA3Fm1JeM495fTZxorYth0DDKiqtKvSR92dGl8CM_mUB7sun0R6wurCxM36QqcYEaf5kIm13MM0reWlR3aPZVNe_-AefOCpoXznR-wH04mSWjH8jmlk5Bw51AN&attredirects=0 Fast Automated Selection of Learning Algorithm And its Hyperparameters by Reinforcement Learning]* Shalamov V., Efimova V., Muravyov S., and Filchenkov A. "Reinforcement-based Method for Simultaneous Clustering Algorithm Selection and its Hyperparameters Optimization." Procedia Computer Science 136 (2018): 144-153. 
[[Категория: Автоматическое машинное обучение]]
[[Категория: Машинное обучение]]
84
правки

Навигация