Pull to refresh

Comments 11

Пока наши классификаторы сбоят даже при минимальных изменениях между учебным и тестовым распределением, мы не сможем достичь удовлетворительной гарантированной надежности.
М.б. нужны принципиально другие классификаторы? М.б. нейронным сетям будут всегда мерещиться овцы, как их ни обучай? Сожалею, но какое-то не оптимистичное первое впечатление по прочтении. Спасибо за перевод — много инфы для размышления.
TLDR: нейросети могут всё, но поставить исходную задачу может быть сложнее, чем решить.

1. Им действительно всегда будут мерешиться овцы. Известен случай (из книги «Верховный алгоритм», научпоп, но рекомендую к чтению на досуге), что одна нейросеть очень хорошо обучилась распознавать танки. А когда подсунули лошадь, она тоже решила что танк, потому что все танки были светлыми фотками, и фото с лошадью тоже. Т.е. вариант такой — нейросети могут сколько угодно хорошо работать даже на отложенном датасете, но она не в состоянии генерализовать знание настолько, насколько человек имеет его априорно от рождения (та же устойчивость к вращениям). По сути, из этого вытекала бы слабость мат. аппарата нейросетей в человекопривычных задачах.
2. Как ни странно, но нейросети как матаппарат — аппроксимируют любые функции. Следовательно, либо исходный датасет просто так себе (это универсальный ответ, но из разряда второго из трёх конвертов на работе), либо функция (архитектура и прочее) подобраны слабые.

Я лично склоняюсь к варианту, что нейросети не врут. Просто они живут в мире без тех априори, в котором мы живем, и даже если мы устраним проблему с поворотами — каким-нибудь предварительным преобразованием (пришло в голову isomap, но это не точно) или архитектурой, то вылезет еще что-нибудь, неучтенное в математике вопроса.

Теоретический ответ есть в упомянутой книге, но алгоритма на нем, если не считать Conditional Random Fields им в некотором роде, я что-то в либах даже не видел, не говоря уж продакшн.

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

Человек априорно от рождения знает, что такое танк и лошадь? Думаю, нет. ИМХО новорожденный и сеть до обучения имеют одинаковый нуль знаний. Но человек учится гораздо лучше сети. Это заставляет предположить, что их устройства принципиально разные.
вылезет еще что-нибудь, неучтенное в математике вопроса
М.б. математика у сети и у человека разные? — два разных алгоритма м.б. основаны на разных мат. принципах. BTW интересно отметить, что шахматист не думает по альфа-бета алгоритму, которые использует ПО компьютерных шахмат. Но ни один хороший шахматист не может объяснить, как он думает, настолько подробно, чтобы реализовать это объяснение в ПО.

Шахматы уже давно не по альфа-бета алгоритму работают. Также, как и гроссмейстеры, мыслят фрагментами. Как и (сверточные) нейросети. Человек от рождения отличает танк от лошади на фото, при поворотах изображения тоже, в отличие от некоторых сетей.


Если человек смог описать, сам различает, обратная индукция сработает.

Человек от рождения отличает танк от лошади на фото
М.б. человек от рождения отличает модели танков и породы лошадей? — Я точно не отличаю, хотя и не вчера родился.

Модели танков и породы лошадей отличают специально обученные люди :) я их тоже не очень отличаю.


Я говорю о том, что сетка или даже любой другой алгоритм — не мозг, а продолжение мозга. Будет это кувалда или скальпель — зависит от архитектуры и от данных.

Проблема в том, что сети обучают на неподвижных фото, а не на видео, в результате:
— реальный танк — это подвижный 3D-объект,
— но для нейросети — это неподвижный набор цветных пятен на плоскости.

Ну человек-то отличает же фото, он может не знает танком ли это называется, но с лошадью не спутает. Видео кстати тоже набор пятен :) И время — одно из априори для человека, память у него сортирует картинки автоматом. Сети нужна архитектура для этого.


Дело в постановке задачи все же. Разделяемые визуально множества может разделить и нейросеть, только разделяющее преобразование очень сложно подобрать.

Человек — увидев картинку, сразу пытается выстроить у себя в голове 3D-модель.
Нейросеть занимающаяся распознаванием — этого не делает, в чём и ошибка!
Нужно два слоя:
— первый слой строит 3D-модель из плоской картинки
— второй слой пытается распознать эту 3D-модель.

Соглашусь в том плане, что человек если и не 3D-модель строит, то как минимум ближе-дальше на фотках различает. Светом, тенями и так далее. Сети с осветлением справляются, а вот содержать в себе ту же модель Фонга, восстановить нормали они теоретически могут, но не делают. И все равно, проблема с переворачиванием останется скорее всего, там в другом проблема.

Если злоумышленник может обмануть классификатор и выдать вредоносный ввод (скажем, спам или вирус) за безвредный, то спам-детектор или антивирусный сканер, работающий на основе машинного обучения, окажется неэффективен.
На яндексовую почту периодически приходит любопытный спам. Он не только отправлен не на мой адрес и даже не на домен яндекса, там в заголовке мой адрес вообще не упоминается нигде и ни в каком виде (я честно старался найти). Они там случаем не загнали в продакшн антиспамный аи? Вроде какие-то новости про такие перспективы были…
Sign up to leave a comment.