Оценка производительности нейронной сети Keras с помощью визуализаций Yellowbrick |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2019-05-29 20:00 Если вы когда-то использовали Keras для создания модели машинного обучения, то скорее всего перед этим вы строили примерно такие графики: Здесь представлена матрица потери при обучении, потери при валидации, точности обучения и графики точности валидации. Они являются первым и важным этапом при оценке точности и уровня обучения или переобучения для модели. Но для моделирования производительности существует большое количество нюансов, которые находятся в зоне недосягаемости для простых линейных графиков. Но что, если хочется учесть все? Yellowbrick — набор инструментов для визуализации данных, предоставляющий множество современных графиков для оценки данных и моделей. С их помощью можно построить следующие графики: Впервые я опробовал Yellowbrick год назад, и с тех пор он является одним из моих любимых инструментов. Но он предназначен для работы со Scikit-Learn и пока не совместим с Keras. К счастью, это можно исправить, создав простую оболочку для модели. И это отличная новость, так как вам открывается доступ к нескольким продвинутым графикам для оценки моделей нейронной сети. Создание оболочки scikit-learn для Keras.
# import a classifier object # initialize it with hyperparameters # call fit on data to train the model # call predict to get predictions API для # import model base and layers def twoLayerFeedForward(): # call fit to train the model # call predict to get predictions В from keras.wrappers.scikit_learn import KerasClassifier # notice how we go back to stating hyperparameters at init time # now fit and predict Это позволяет использовать нейронную сеть Keras с такими инструментами Scikit-Learn, как перекрестная проверка и сеточный поиск. К сожалению, если наша цель заключается в использовании визуализаций Yellowbrick для моделей Keras, то
Но это можно исправить, написав самостоятельно подкласс import numpy as np class KerasBatchClassifier(KerasClassifier, BaseEstimator): def fit(self, *args, **kwargs):
Невозможность использовать fit_generator с KerasClassifier — известная проблема. Этот код — адаптация (и усовершенствование) уже существующих решений, разработанных другими пользователями, . в частности это Теперь мы можем перейти к интересной части: применение визуализаций Оценочная классификация Начнем с проверки графиков оценочной классификации. Для демонстрации, я обучил самую базовую клеточную нейронную сеть на основе изображений фруктов из Google картинок. Демонстрационный набор данных можно найти здесь, а код здесь. Простейшей оценочной классификацией является С таким графиком можно быстро оценить, какие классы являются популярными целями классификации, а какие — нет. А также можно увидеть, какие наиболее распространенные ошибки классификации находятся в определенном классе. Но лично я предпочитаю Такая визуализация позволяет быстро распознать важные свойства модели:
Наконец, мы видим отчет классификации. Он состоит из четырех основных показателей матричной модели классификации — точность (precision), полнота (recall), F-мера (F1 score) и поддержка (support). Эти показатели представлены в удобной визуальной форме: Оценочная регрессия Yellowbrick также упаковывает инструменты для моделей оценочной регрессии. Для наглядности я обучил простую нейронную сеть прямого распространения для прогнозирования цен на определенный день различных домов из набора данных Boston AirBnBs на Kaggle. Код можно просмотреть здесь. Мы используем базовый график регрессионного анализа Такая диаграмма полезна для определения закономерностей в данных и наблюдения за тем, насколько хорошо модель к ним адаптируется. Например, значения Также существует Остаток модели — это интервал между фактическим и спрогнозированным значениями одной записи. Показав все остатки на одном графике, можно оценить, в какой части данных модель работает лучше, а в какой — хуже. Здесь мы видим, что чем больше спрогнозированное значение, тем больше остатки. Это значит, что модель больше подходит для меньших значений в наборе данных. Заключение Работая с нейронными сетями, используйте более развитые визуализации, чтобы подробнее изучить определенные свойства модели. Это поможет вам эффективно проводить итерацию модели. Итак, в данной статье мы разобрали способы использования Перевод статьи Aleksey Bilogur: Evaluating Keras neural network performance using Yellowbrick visualizations Источник: nuancesprog.ru Комментарии: |
|