Изменения

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

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

789 байт добавлено, 13:37, 16 января 2019
Исправлены замечания
Пусть дана обучающая выборка <tex>(X, Y)</tex>, где <tex> X </tex> {{---}} множество признаков, описывающих объекты, а <tex> Y </tex> {{---}} конечное множество меток.
Пусть множество всевозможных значений признаков задана функция <tex> g: X \times \Theta \hat{X} rightarrow Y </tex>, множество всевозможных классификаций где <tex> \hat{T} Theta </tex>{{---}} множество дополнительных параметров (весов) функции.
Пусть задана функция <tex> f: \hat{X} -> W -> \hat{T} </tex>, где <tex> W </tex> {{---}} множество дополнительных параметров (весов) функции. Описанная выше функция <tex> f g </tex> для фиксированного значения весов <tex> w \theta \in W \Theta </tex> называется '''решающим правилом'''.
'''Модель''' {{---}} это совокупность всех решающих правил, которые получаются путем присваивания весам всех возможных допустимых значений.
Формально модель <tex> M A = \{fg(.x, w\theta)| w \theta \in W\Theta\} </tex>.
Модель определяется множеством допустимых весов <tex> W \Theta </tex> и структурой решающего правила <tex> fg(.x,.\theta) </tex>
==Понятие гиперпараметров модели==
=== Методы выбора модели ===
'''Методы выбора Модель можно выбрать из некоторого множества моделей, проверив результат работы каждой модели''' {{---}} из множества с помощью ручного тестирования, но ручное тестирование серьезно ограничивает количество моделей, которые можно перебрать, а также требует больших трудозатрат. Поэтому в большинстве случаев используются алгоритмы, позволяющие проводить автоматический выбор моделиавтоматически выбирать модель. Далее будут рассмотрены некоторые из таких алгоритмов.
==== Кросс-валидация ====
Алгоритм Основная идея алгоритма кросс-валидации работает следующим образом:# Обучающая выборка разбивается на <tex> k </tex> непересекающихся одинаковых по объему частей;# Производится <tex> k </tex> итераций. На каждой итерации происходит следующее:## Модель обучается на <tex> k {{--- 1 </tex> части обучающей выборки;## Модель тестируется }} разбить обучающую выборку на части обучающей выборки, которая не участвовала в обучении;# В результате можно посчитать различные метрикиобучающую и тестовую, показывающие, насколько модель удачная, например, среднюю ошибку на частях, которые не участвовали в обучающей выборке.Таким чтобы таким образом эмулируется эмулировать наличие тестовой выборки, которая не участвует в обучении, но для которой известны правильные ответы.Более подробно про алгоритм кросс-валидации можно прочитать в [http://neerc.ifmo.ru/wiki/index.php?title=%D0%9A%D1%80%D0%BE%D1%81%D1%81-%D0%B2%D0%B0%D0%BB%D0%B8%D0%B4%D0%B0%D1%86%D0%B8%D1%8F соответствующей статье]
Достоинства и недостатки кросс-валидации:
==== Мета-обучение ====
Целью мета-обучения является решение задачи выбора алгоритма из портфолио алгоритмов для решения поставленной задачи без непосредственного применения каждого из них. Решение этой задачи в рамках мета-обучения сводится к задаче [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://www.fruct.org/publications/ainl-fruct/files/Fil.pdf многие другие]. Каждый алгоритм запускается на всех наборах данных из <tex> D </tex>. После этого вычисляется эмпирический риск, на основе которого формируются метки классов. Затем мета-классификатор обучается на полученных результатах. В качестве описания набора данных выступает вектор мета-признаков, а в качестве метки — алгоритм, оказавшийся самым эффективным с точки зрения заранее выбранной меры качества. Более подробно про мета-обучение можно почитать в соответствующей статье: [[Мета-обучение]]<sup>[на 08.01.19 не создан]</sup>
Достоинства и недостатки мета-обучения:
Очевидно, что чем больше емкость, тем более «гибкой» является модель и, соответственно, тем хуже. Значит нужно добиваться минимально возможного количества ошибок на обучении при минимальной возможной емкости.
Существует формула Вапника, связывающая ошибку на обучении <tex> P_{train}(w\theta) </tex>, емкость <tex> h(W\theta) </tex> и ошибку на генеральной совокупности <tex> P_{test}(w\theta) </tex>:
<tex> P_{test}(w\theta) <= P_{train}(w\theta) + \sqrt{\frac{h(W\Theta) * (\log{(\frac{2d}{h(W\Theta)})} + 1) - \log{(\frac{\eta}{4})}}{n}} </tex>, где <tex> d </tex> {{---}} размерность пространства признаков.
Неравенство верно с вероятностью <tex> 1 - \eta </tex> <tex> \forall w \theta \in W \Theta </tex>
Алгоритм выбора модели согласно теории Вапника-Червоненкиса: Последовательно анализируя модели с увеличивающейся емкостью, необходимо выбирать модель с наименьшей верхней оценкой тестовой ошибки.
# Для большинства моделей емкость не поддается оценке;
# Многие модели с бесконечной емкостью показывают хорошие результаты на практике.
 
== Существующие системы автоматического выбора модели ==
# [https://www.ml4aad.org/wp-content/uploads/2018/07/automl_book_draft_auto-weka.pdf Автоматизированный выбор модели в библиотеке WEKA для Java]
# [https://epistasislab.github.io/tpot/ Автоматизированный выбор модели в библиотеке TPOT для Python]
# [https://automl.github.io/auto-sklearn/stable/ Автоматизированный выбор модели в библиотеке sklearn для Python]
== См. также ==
# [https://en.wikipedia.org/wiki/Cross-validation_(statistics) Кросс-валидация]
# [https://link.springer.com/article/10.1023/B:MACH.0000015878.60765.42 Мета-обучение]
# [https://wwwru.ml4aadwikipedia.org/wp-content/uploads/2018wiki/07/automl_book_draft_auto-weka.pdf Автоматизированный выбор модели в библиотеке WEKA для Java%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://epistasislabwww.githubfruct.ioorg/tpotpublications/ Автоматизированный выбор модели в библиотеке TPOT для Python]# [https:ainl-fruct/files/automlFil.github.io/autopdf Datasets Meta-sklearn/stable/ Автоматизированный выбор модели в библиотеке sklearn для PythonFeature Description for Recommending Feature Selection Algorithm]
== Источники информации ==
# [http://www.machinelearning.ru/wiki/images/0/05/BMMO11_4.pdf Выбор модели] - презентация на MachineLearning.ru
# [http://jmlda.org/papers/doc/2016/no2/Efimova2016Reinforcement.pdf Применение обучения с подкреплением для одновременного выбора модели алгоритма классификации и ее структурных параметров]
[[Категория: Машинное Автоматическое машинное обучение]] [[Категория: Модель алгоритма и ее выбор]]
Анонимный участник

Навигация