Изменения

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

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

839 байт добавлено, 19:21, 5 сентября 2019
м
Частое использование относительного местоимения "который“
Описанная выше функция <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. Пример линейной регрессии]]]В качестве примера модели приведем [[Линейная регрессия | линейную регрессию]]. Линейная регрессия задается следующей формулой: <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://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).
Библиотека позволяет автоматически выбирать из 27 базовых алгоритмов, 10 мета-алгоритмов и 2 ансамблевых алгоритмов лучший, одновременно настраивая его гиперпараметры при помощи алгоритма [https://www.ml4aad.org/automated-algorithm-design/algorithm-configuration/smac/ SMAC]. Решение достигается полным перебором: оптимизация гиперпараметров запускается на всех алгоритмах по очереди. Недостатком такого подхода является слишком большое время выбора модели.
===Автоматизированный выбор модели в библиотеке [https://epistasislab.github.io/tpot/ Tree-base Pipeline Optimization Tool (TPOT)] для Python.===
[[Файл:TPOT-scheme.jpeg|500px|thumb|[https://raw.githubusercontent.com/EpistasisLab/tpot/master/images/tpot-ml-pipeline.png Рис 3. Схема выбора модели в библиотеке TPOT]]]
Библиотека используется для одновременного поиска оптимальной модели и оптимальных гиперпараметров модели для задачи классификации.
После поиска конвейера его также можно экспортировать в файл 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 Байесовской оптимизации], чтобы найти наилучшие гиперпараметры для наилучших моделей.
== См. также ==
* [[Настройка гиперпараметров]]<sup>[на 0828.01.19 не создан]</sup>
* [[Переобучение]]
* [[Мета-обучение]]<sup>* [на 08.01.19 не создан[Линейная регрессия]]</sup>
== Примечания ==
# [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://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. 
[[Категория: Автоматическое машинное обучение]]
[[Категория: Машинное обучение]]
24
правки

Навигация