Интерпретация работы нейронных сетей — тестирование с помощью векторов активации концепции


Исследователи из Google Brain представили новый метод интепретации работы искусственных нейронных сетей.
Метод получил название Тестирование с помощью векторов активации концепции (Testing with CAVs (TCAV)).

Методы значимости являются одним из самых популярных локальных методов объяснения для классификации изображений. Эти методы обычно создают карту, которая показывает — насколько важен каждый пиксель конкретной картинки для его классификации.
Хотя карта значимости (saliency map) часто определяет соответствующие регионы и даёт им количественную оценку значимости (т.е. важности каждого пикселя), есть пара ограничений:
1) поскольку получаемая карта значимости генерируется только по одной картинке (то есть, локальное объяснение), люди должны вручную оценить каждую картинку, чтобы сделать общий вывод,
2) пользователи не имеют никакого контроля над тем, какие понятия интересуют эти карты (отсутствуют настройки).
Например, рассмотривая две карты значимости у двух разных картинок, на одной из которых — кошачьи ушки имеют большую яркость. Можем ли мы оценить, насколько были важны ушки в предсказании «кошки»?
Кроме этого у карт значимости есть и другие проблемы: в недавней работе (Local explanation methods for deep neural networks lack sensitivity to parameter values) было показано, что глубокие нейронные сети (Deep neural network (DNN)) со случайно инициализированными весами дают объяснения, которые визуально, и количественно аналогичны тем, которые создаются обученной DNN, а кроме того — они могут быть уязвимы к состязательным атакам (adversarial attacks) (Interpretation of neural networks is fragile).

Используя TCAV, можно проводить проверку гипотез любой концепции на лету, на уже обученной сети, давая глобальное объяснение для каждого класса.

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

Далее, следуя подходу линейной интерпретируемости, учитывая множество примеров, представляющих концепцию интереса, выполняется поиск вектора в пространстве слоя активации l, который представляет эту концепцию. Чтобы найти такой вектор, рассматриваются активации в слое l, произведенные входными примерами, которые отражают интересующую концепцию, против множества просто случайных примеров. Затем определяется «вектор активации концепции» (Concept Activation Vector (CAV)) как нормаль к гиперплоскости, разделяющей случайные примеры и примеры с интересующей концепцией.

Используя CAV, измеряется чувствительность ML-прогнозов к изменениям входов в направлении концепции, на нейронной активации слоя l.

Это не метрика использования фич (как, например, карта значимости для каждого пикселя), а метрика концепции (вычисляется для всего входа или наборов входов).

Статьи
Kim B., Wattenberg M., Gilmer J., Cai C., Wexler J., Viegas F. Interpretability beyond feature attribution: Quantitative testing with concept activation vectors (tcav) //International Conference on Machine Learning. – 2018. – С. 2673-2682. (PDF)

Ссылки
Новый подход к пониманию мышления машин

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

Нейронная сеть
Нейронная сеть — введение
Принцип обучения многослойной нейронной сети с помощью алгоритма обратного распространения
Пример работы самоорганизующейся инкрементной нейронной сети SOINN


Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение