Есть много подходов, которые направлены на то, чтобы сделать обученную нейронную сеть более понятной и менее похожей на «черный ящик», в частности , на упомянутые вами сверточные нейронные сети .
Визуализация активаций и веса слоев
Визуализация активаций является первой очевидной и прямой. В сетях ReLU активация обычно начинается с относительно дряблой и плотной структуры, но по мере обучения активация обычно становится более разреженной (большинство значений равно нулю) и локализована. Иногда это показывает, на чем конкретно сфокусирован определенный слой, когда он видит изображение.
Еще одна замечательная работа по активациям, которую я хотел бы упомянуть, это deepvis, который показывает реакцию каждого нейрона на каждом слое, включая пул и нормализацию. Вот как они это описывают :
Короче говоря, мы собрали несколько различных методов, которые позволяют вам «триангулировать» то, чему научился нейрон, что может помочь вам лучше понять, как работают DNN.
Вторая общая стратегия - визуализация весов (фильтров). Они обычно наиболее интерпретируемы на первом слое CONV, который смотрит непосредственно на необработанные данные пикселей, но можно также показать вес фильтра глубже в сети. Например, первый слой обычно изучает похожие на фильтры фильтры, которые в основном обнаруживают края и пятна.
Окклюзионные эксперименты
Вот идея. Предположим, что ConvNet классифицирует изображение как собаку. Как мы можем быть уверены в том, что на самом деле на изображении появляется собака, а не какие-то контекстные подсказки на заднем плане или какой-то другой разный объект?
Один из способов изучения того, из какой части изображения исходит какое-то классификационное предсказание, состоит в построении графика вероятности класса интереса (например, класса собаки) в зависимости от положения объекта окклюдера. Если мы проведем итерации по областям изображения, заменим его всеми нулями и проверим результат классификации, мы сможем построить двухмерную тепловую карту того, что наиболее важно для сети на конкретном изображении. Этот подход использовался в книге Мэтью Цайлера «Визуализация и понимание сверточных сетей» (на которую вы ссылаетесь в своем вопросе):
деконволюция
Другой подход заключается в синтезировании изображения, которое вызывает срабатывание определенного нейрона, в основном то, что ищет нейрон. Идея состоит в том, чтобы вычислить градиент по отношению к изображению вместо обычного градиента по отношению к весам. Таким образом, вы выбираете слой, устанавливаете градиент там равным нулю, за исключением одного для одного нейрона и backprop для изображения.
Deconv на самом деле делает так называемое обратное распространение, чтобы сделать изображение более привлекательным , но это всего лишь деталь.
Подобные подходы к другим нейронным сетям
Настоятельно рекомендую этот пост Андрея Карпати , в котором он много играет с Recurrent Neural Networks (RNN). В конце он применяет похожую технику, чтобы увидеть, чему на самом деле учатся нейроны:
Нейрон, выделенный на этом изображении, кажется, очень взволнован по поводу URL-адресов и отключается за пределами URL-адресов. LSTM, вероятно, использует этот нейрон, чтобы запомнить, находится ли он внутри URL или нет.
Заключение
Я упомянул лишь небольшую часть результатов в этой области исследований. Это довольно активно, и каждый год появляются новые методы, которые проливают свет на внутреннюю работу нейронной сети.
Чтобы ответить на ваш вопрос, ученые всегда что-то еще не знают, но во многих случаях они имеют хорошее (литературное) представление о том, что происходит внутри, и могут ответить на многие конкретные вопросы.
Для меня цитата из вашего вопроса просто подчеркивает важность исследования не только повышения точности, но и внутренней структуры сети. Как говорит Мэтт Цилер в этом выступлении , иногда хорошая визуализация может, в свою очередь, привести к большей точности.