Недавно было
проведено одно очень интересное
исследование. Исследователи исследовали
(прикольно, да — три раза подряд) некоторые
неявные свойства нейросетей. Результаты
ошеломляют.
«Intriguing properties
of neural networks»
На i-programmer есть
статья об этой работе:
What has been
discovered is that a single neuron's feature is no more interpretable
as a meaningful feature than a random set of neurons. That is, if you
pick a random set of neurons and find the images that produce the
maximum output on the set then these images are just as semantically
similar as in the single neuron case.
This means that
neural networks do not "unscramble" the data by mapping
features to individual neurons in say the final layer. The
information that the network extracts is just as much distributed
across all of the neurons as it is localized in a single neuron.
This is an
interesting finding and it leads on to the second and even more
remarkable finding..
Every deep neural
network has "blind spots" in the sense that there are
inputs that are very close to correctly classified examples that are
misclassified.
Если кратко и
по русски, то в первой части работы был
сделан вывод о том, что в нейросетях нет
отдельных нейронов, отвечающих за те
или иные свойства входных данных (в
качестве данных были использованы
картинки с целью распознавания образов).
Во второй части
работы были сделаны ошеломляющие выводы
касательно способности нейросетей
справляться со своей работой. А именно
— для каждой обученной нейросети можно
найти такие примеры входных данных,
которые будут давать на выходе
отрицательный ответ, в то время как эти
примеры данных ничтожно отличаются от
примеров дающих положительный ответ.
Если по простому — то это типа так:
нейросеть натренирована распознавать
картинки — рукописные цифры. Можно
чуть-чуть подправить картинки, так, что
глазом не отличишь, а нейросеть перестанет
их распознавать.
Как отмечается,
это следствие сильной нелинейности
функций зависимости выхода нейросети
от входа. Если представить эти функции
в виде графиков, допустим, в трехмерном
пространстве, то среди всего объема
возможных вариантов, правильно
распознаваемые картинки заключаются
внутри неких отдельно расположенных
пузырей странной формы. Если картинка
хоть чуть-чуть не попадает в один из
этих пузырей, происходит ошибка
распознавания.
В общем, люди
обескуражены и расстроены — как же так,
мы думали нейросети спасут мир, а они
гораздо тупее чем мы себе представляли.
Вангую: грядет
новый виток исследований по теме, что
даст еще более сложносочиненные алгоритмы
/ схемы построения нейросетей.
Лично я вижу
выход в многослойной / многоэтапной
обработке данных. Комбинирование разных
подходов — если говорить про распознавание
образов, то это что-то типа набора
методов: распознавания границ,
кластеризация, нормализация, классификация
не в одном большом универсальном
классификаторе а в нескольких поменьше,
но специализированных, выделение
архетипов и пр. И все эти инструменты
натравливаются на картинку и терзают
ее в попытках познать суть.
Кстати,
следствием второго исследования стал
тщательно скрываемый алгоритм генерации
«adversarial examples» (можно перевести как
«противные примеры»). С точки зрения
человека, эти противные примеры
практически не отличаются от эталонных
данных, но нейросеть на них дает ошибку.
Так вот, еспользуя генератор противных
примеров в процессе обучения нейросетей,
можно изрядно улучшить результаты
классификации/распознавания.
Очень ценное
изобретение, ящетаю.
original post http://vasnake.blogspot.com/2014/06/neural-net-flaws.html
Комментариев нет:
Отправить комментарий