Версия для слабовидящих
Нужен ли человек для построения самообучающихся моделей? Печать Email
Новости об инновациях
22.12.2015

Конечно, в Data Science существует множество самообучающихся моделей, но действительно ли они являются таковыми? На самом деле, нет: сейчас в машинном обучении сложилась ситуация, когда человеческий фактор играет решающую роль в построении эффективных моделей.

Data Science сейчас представляет собой некий сплав науки и интуиции, потому что не существует формализованного знания о том, как правильно предобрабатывать предикторы, какую модель выбрать из десятков существующих, и как настраивать множество параметров в этой модели. Всё это плохо поддается формализации, и поэтому получается парадоксальная ситуация – машинное обучение требует человеческого фактора.

Именно человек должен выстроить цепочку обучения, и настроить параметры, которые легко могут превратить самую лучшую модель в абсолютно бесполезную. Построение этой цепочки, превращающей исходные данные в предсказательную модель – может занимать несколько недель, в зависимости от сложности задачи, и часто делается просто методом проб и ошибок.

Это серьезный недостаток, и поэтому возникла идея: может ли машинное обучение — обучить себя тому же, что делает человек? Такая система была создана.

ТРОТ (Tree-based Pipeline Optimization Tool)

Ренди Ольсон (Randy Olson), аспирант из Computational Genetics Lab (University of Pennsylvania) в качестве своего дипломного проекта разработал систему ТРОТ (Tree-based Pipeline Optimization Tool).

Эта система позиционируется как Data Science помощник. Она автоматизирует самую утомительную часть машинного обучения, изучая и подбирая среди тысячи возможных цепочек построения именно ту, которая лучше всего подойдёт для обработки ваших данных.

Система была написана на Питоне с использованием библиотеки scikit-learn, и посредством генетических алгоритмов самостоятельно строит полную цепочку подготовки и построения модели. На рисунке в начале этой статьи представлены те части цепочки, которые можно автоматизировать с её помощью: предобработка и выбор предикторов, выбор моделей, оптимизация их параметров.

Идея достаточно проста – генетический алгоритм.

Это алгоритм поиска нужной нам цепочки путём случайного подбора, с использованием механизмов, аналогичных естественному отбору в природе. О них достаточно подробно написано в википедии, или в книге «Самообучающиеся системы» (рекомендую для интересующихся этой темой, есть в сети в электронном виде).

В качестве функции отбора (Fitness функции) выступает точность предсказания в тестовой выборке, в качестве объекта популяции – scikit-методы и их параметры.

Результаты

У автора представлен простой пример того, как можно использовать TPOT для решения эталонной задачи по классификации рукописных цифр из набора MNIST

from tpot import TPOT from sklearn.datasets import load_digits from sklearn.cross_validation import train_test_split

digits = load_digits() X_train, X_test, y_train, y_test = train_test_split(digits.data, digits.target, train_size=0.75)

tpot = TPOT(generations=5, verbosity=2) tpot.fit(X_train, y_train)

print( tpot.score(X_train, y_train, X_test, y_test) ) tpot.export(‹tpot_exported_pipeline.py›)

При запуске кода, через пару минут TPOT может получить цепочку построения модели, точность которой достигает 98%. Это произойдёт в том случае, когда TPOT обнаружит что классификатор Random Forest отлично работает на данных MNIST.

Правда, так как этот процесс вероятностный, для повторяемости результатов рекомендуется задавать параметр random_state – у меня, например, за 5 поколений нашлась только цепочка с SVC и KNeighborsClassifier.

Проверка системы на ещё одной классической задаче, ирисах Фишера, дало точность 97% за 10 поколений.

Будущее

ТРОТ – это опенсорсный проект, который возник всего месяц назад (что для таких систем вообще детский возраст) и сейчас активно развивается. На сайте проекта автор призывает сообщество Data Scientists присоединятся к развитию системы, код которой доступен на гитхаб (https://github.com/rhiever/tpot)

Конечно, сейчас система очень далека от идеала, но идея этой системы выглядит крайне логичной – полная автоматизация всего процесса машинного обучения. И если идея будет развиваться – то возможно, скоро появятся системы, где от человека требуется лишь загрузить данные, и получить результат. И тогда возникнет другой вопрос:

А нужен ли вообще человек для построения самообучающихся моделей?

Источник - http://www.nanonewsnet.ru/news/2015/nuzhen-li-chelovek-dlya-postroeniya-samoobuchayushchikhsya-modelei

 

Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта Карта сайта