Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2014-06-16

Neural Net Flaws

Недавно было проведено одно очень интересное исследование. Исследователи исследовали (прикольно, да — три раза подряд) некоторые неявные свойства нейросетей. Результаты ошеломляют.

«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

Комментариев нет:

Отправить комментарий

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) humor (23) Java (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Klaipeda (15) Manager (15) web-browser (15) Никонов (15) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) Baltic (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) seaside (1) serialization (1) shore (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)