Если вы пользуетесь интернетом, вы наверняка взаимодействовали с нейросетями. Это разновидность алгоритма машинного обучения, используемая во многих областях, от перевода языков до финансового моделирования. Одна из специальностей этого подхода – распознавание изображений. Несколько компаний – включая Google, Microsoft, IBM и Facebook – разработали свои алгоритмы разметки фотографий. Но пока эти алгоритмы могут совершать очень странные ошибки.


API для компьютерного зрения Microsoft Azure добавило к этому изображению следующую подпись: «стадо овец пасётся на покрытом буйной растительностью склоне холма», и тэги: «пастись, овцы, гора, скот, лошадь». Но на фото нет никаких овец. Вообще. Я каждое пятнышко изучила.


тэги: трава, поле, овца, стоит, радуга, человек

На этом фото компьютер тоже увидел овец. По случайности я знаю, что рядом с этим местом действительно паслось несколько овец. Но на фото их не видно.


тэги: склон холма, пастись, овца, жираф, стадо

А вот ещё один пример. Нейросети вообще мерещились овцы каждый раз, когда она видела подобные изображения. Что происходит?

Нейросети обучаются, обрабатывая множество примеров. В данном случае ей скармливали множество изображений, размеченных людьми вручную – и на многих из них овцы были. Начиная с полного отсутствия знаний по поводу увиденного, нейросети необходимо создать правила, согласно которым изображениям нужно присваивать метку «овца». Судя по всему, она не поняла, что слово «овца» обозначает животное, а не просто траву без деревьев. Похожим образом второму фото она дала метку «радуга», поскольку тот пейзаж влажный и дождливый, не сообразив, что для радуги необходима многоцветная полоска.

Может быть, нейросети чрезмерно чувствительны, и везде видят овец? Оказывается, нет. Они видят овец, только когда ожидают их увидеть. Они легко находят овец в полях и на склонах гор, но как только овцы начинают появляться в неожиданных местах, становится очевидно, насколько эти алгоритмы полагаются на угадывание и вероятности.

Заведите овцу в помещение, и её обозначат, как кошку. Поднимите овцу или козу на руки, и её обозначат, как собаку.


«Слева: мужчина держит в руке собаку. Справа: женщина держит в руке собаку».

Раскрасьте их в оранжевый цвет, и они станут цветочками.


«Несколько оранжевых цветов в поле»

Посадите овцу на поводок, и её обозначат, как собаку. Посадите её в машину, и это будет собака или кошка. Если они зайдут в воду, их могут отметить, как птиц или даже белых медведей.

А если козы заберутся на дерево, они превратятся в птиц. Или жирафов (оказалось, что Microsoft Azure печально известна тем, что ей везде мерещатся жирафы, из-за чрезмерного обилия жирафов, которое, по слухам, наблюдалось в начальном наборе данных).


NeuralTalk2: стая птиц летит в воздухе
Microsoft Azure: несколько жирафов стоят рядом с деревом


Нейросети сопоставляют закономерности. Они видят куски текстур, похожие на мех, участки зелёного цвета, и решают, что на картинке есть овцы. Если они видят мех и формы, напоминающие кухню, они могут решить, что видят кошек.

Если жизнь идёт по правилам, распознавание изображений работает, как надо. Но как только люди или овцы делают что-то неожиданное, алгоритмы сразу демонстрируют слабину.

Если вы хотите пронести что-то незаметно мимо нейросети, то вам, почти в киберпанковском стиле, поможет сюрреализм. Возможно, в будущем тайные агенты будут одеваться в куриц или водить автомобили, разукрашенные пятнами, как коровы.

В ветке в твиттера, начавшейся с простого вопроса, есть множество примеров очень смешных ошибок:


И вы сами можете проверить работу API для распознавания образов от Microsoft Azure и убедиться, что даже самые передовые алгоритмы полагаются на удачу и вероятности. Ещё один алгоритм, NeuralTalk2, я по большей части использовала для обработки изображений из этой ветки комментариев в твиттер.

Комментарии (5)


  1. scifinder
    12.04.2018 10:19

    Из личного опыта: Google Фото находит среди моей коллекции фотографий джунгли (это он про берёзовые леса), собак (а это кусты сирени) и озёра (так он Иню обозвал). Зато по запросу «Кошки» выдаёт действительно кошек. Только четверых. А у меня их пять =)


  1. Sadler
    12.04.2018 13:57

    несколько жирафов стоят рядом с деревом
    Похоже, я тоже MS Azure: когда я впервые захватил эту картинку боковым зрением, мне показалось, что перед деревом стоит шираф. Там так причудливо изогнуто дерево в центре, что оно правда может отдалённо напоминать жирафа с вытянутой шеей.


  1. denis64
    12.04.2018 21:08
    +2

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


  1. martin__marlen
    13.04.2018 13:58

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


  1. artygrand
    13.04.2018 20:13

    А этим нейросетям разве нельзя отправлять какой-то фидбек, типа «здесь нет овец, вот тебе 100 картинок с овцами»?

    Хотя и я в pbs.twimg.com/media/DXZNiYnWsAAb5Gv.jpg вижу спящих овец