Оценка модели в задачах глубокого обучения

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

По материалам ODSC – открытая наука о данных.

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

Приложения для машинного и глубокого обучения становятся все более доступными. Например, Keras предоставляет API-интерфейсы с бэкэндом TensorFlow, которые позволяют пользователям создавать нейронные сети, не разбираясь в TensorFlow. Несмотря на простоту построения и тестирования моделей, глубокое обучение страдает от недостатка интерпретируемости; Модели глубокого обучения являются черными ящиками для многих пользователей. В своем выступлении на ODSC West в 2018 году Прамит Чоудхари объяснил важность оценки модели и ее интерпретации в глубоком обучении и некоторые передовые методы для ее нахождения.

Предсказательная точность – не единственная проблема, касающаяся производительности модели. Во многих случаях ученым, работающим с данными, важно понимать, почему модели делают предсказания, которые они делают. Приложения включают в себя объяснение выводов модели руководителям компаний, выявление слепых зон, позволяющих противостоять состязательным атакам, соблюдение правил защиты данных и / или обоснование классификации данных. Прамит Чоудхари отметил, что существует два уровня интерпретации: глобальный и локальный. Глобальная интерпретация – это понимание условного взаимодействия признаков и целевых переменных по всему набору данных, в то время как локальная интерпретация подразумевает понимание той же взаимосвязи, но для индивидуального элемента данных.

Глубокие нейронные сети, такие как сверточная нейронная сеть Inception-v4, характеризуются высокой степенью параметризации с несколькими уровнями и различными функциями, поэтому их трудно интерпретировать. В то время как отдельные значения параметров в линейной регрессии могут помочь интерпретировать модель, в глубоких нейронных сетях имеется слишком много параметров для подобного подхода. Несмотря на сложность, Прамит Чоудхари представил ряд методов для анализа сверточных нейронных сетей.

Прамит объяснил, что один из методов глобальной визуализации нейронных сетей состоит в том, чтобы передавать изображения через сеть для извлечения объектов, уменьшать размерность объектов и отображать их в двухмерном пространстве. Уменьшение размерности может быть достигнуто с помощью анализа главных компонентов (PCA), который обнаруживает линейные зависимости между многими признаками, но предпочтительным является использование метода t-SNE, который осуществляет нелинейное уменьшение размерности. На рисунке ниже показано, как t-SNE может помочь визуализировать предсказания моделей относительно друг друга, используя набор данных MNIST из рукописных чисел.

Недостатком визуализации прогнозов в пространстве PCA или использования t-SNE является то, что нужно сделать вывод о том, как модель расшифровывает различные формы. Более прямой способ состоит в том, чтобы визуализировать слои активации во время прямого прохода (forward propagation), позволяя увидеть тип функций, которые идентифицирует каждый слой. Ранние слои выбирают шаблоны в масштабе пикселей, в то время как слои ближе к концу идентифицируют больше пространственной информации, что видно ниже.

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

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

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


Оригинальный пост здесь.

Поделиться...
Поделиться в facebook
Поделиться в twitter
Поделиться в vk