Ансамбль синапсов – структурная единица нейронной сети



В мае прошлого года сотрудники лаборатории глубокого обучения Гугла и учёные из двух американских университетов опубликовали исследование «Intriguing properties of neural networks». Статья о нём вольно пересказывалась здесь на Хабре, и само исследование также критиковалось специалистом из ABBYY.

Гугловцы в результате своих исследований разочаровались в способностях нейронов сети распутывать признаки входных данных и стали склоняться к мысли, что нейронные сети не распутывают семантически значимые признаки по отдельным структурным элементам, а хранят их во всей сети в целом как в голограмме. В нижней части иллюстрации к этой статье чёрно-белыми я привёл карты активации 29, 31 и 33-его нейронов сети, которую обучил рисовать картинку. То, что тушка птицы без головы и крыльев, изображаемая для примера 29-ым нейроном, покажется людям семантически значимым признаком гугловцы считают всего лишь ошибкой интерпретации наблюдателя.

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

Вопрос сейчас активно дискутируется как среди интересующихся так и среди профессионалов. Доказательств выдерживающих критики не сумела пока предъявить пока ни одна сторона.

Притом что экспериментаторам с помощью имплантированных в мозг электродов в опытах на людях удавалось обнаружить так называемый «нейрон Дженнифер Энистон» – нейрон, реагирующий только на изображение актрисы. Удавалось поймать и нейрон Люка Скайуокера, и нейрон Элизабет Тейлор. С обнаружением у крыс и летучих мышей «координатных нейронов», «нейронов места» и «нейронов границ», многие окончательно привыкают говорить «нейрон такого-то свойства». Хотя открыватели нейрона Дженифер Энистон, ответственно интерпретируя данные, скорее говорят о том, что обнаружили часть крупных ансамблей нейронов, а не отдельные нейроны признаков. Её нейрон реагировал на связанные с ней понятия (например, сцены из сериала, в которых её нет в кадре), а найденный у человека нейрон Люка Скайуокера срабатывал и на магистра Йоду. Чтобы окончательно всех запутать в одном исследовании – нейроны, реагирующие выборочно на змею, удавалось найти у обезьян, которые змеи никогда в своей жизни не видели.

В общем тема «Нейрона Бабушки», поднятая нейрофизиологами в 1967-69 годах вызывает немалые волнения по сей день.

Часть первая: данные


Чаще всего нейронная сеть используется для классификации. На вход ей подаётся множество входных зашумлённых образов, а на выходе она должна их успешно классифицировать по малому количеству признаков. Например, присутствует ли на картинке кошечка или нет. Эта типовая задачка неудобна для поиска внутри сети осмысленных признаков во входных данных по целому ряду причин. И первая из них в том, что нет возможности строго наблюдать взаимосвязь между семантическим признаком и состоянием какого-нибудь внутреннего элемента. В статье от Гугла и нескольких других исследованиях использовался хитрый трюк – сначала вычислялись входные данные, которые максимально возбудят выбранный нейрон, а затем исследователь внимательно эти данные рассматривал, пытаясь найти в них смысл. Но мы знаем, что человеческий мозг умеет мастерски находить смысл даже там, где его нет. Мозг долго эволюционировал в этом направлении, и то, что на тесте Роршаха люди видят что-то кроме кляксы чернил на бумаге, заставляет с большой осторожностью относиться к любым методам поиска смысла на картинке содержащей много элементов. В том числе и на моих картинках.

Метод, используемый в этом и ряде других исследований плох ещё и тем, что нормальным режимом работы нейрона вообще может быть не максимальное возбуждение. Например, на средней картинке, где изображена карта активации 31-ого нейрона, видно, что на корректных входных данных до максимального значения он не возбуждается, да и вообще при взгляде на картинку кажется, что смысл, скорее, несут области, где он не активен. Чтобы увидеть что-то настоящее может оказаться полезным изучать поведение сети в малых окрестностях от её нормального рабочего режима.

Кроме того, в Гугловском исследовании исследовались очень большие сети. Сети для обучения без учителя содержали до миллиарда изменяемых параметров, например. Даже если в сети будет нейрон, большими чёрными буквами выписывающий слово «экзистенция» случайно наткнуться на него оказалось бы очень трудно.

Поэтому мы будем экспериментировать с совсем другой задачей. Сначала экспериментатор загадывает картинку. У сети всего два входа, и на них подаются два действительных числа – координаты X и Y. А на трёх выходах R, G и B мы будем ожидать предсказание, какого цвета точка должна находиться на картинке в этих координатах. Все величины отнормированы на отрезок (-1; 1). Среднеквадратичная ошибка по всем точкам картинки в сумме станет критерием успешности обучения рисованию (на некоторых картинках пишется в левом нижнем углу, RMSE).
В статье используется нерекуррентная сеть из 37 нейронов с гипертангенсом в качестве сигмоиды и несколько нестандартным расположением синапсов. Для обучения использовался метод обратного распространения ошибки, с версией Mini-Batch алгоритма, и дополнительным алгоритмом, являющимся дальним родственником алгоритмам ограничения энергии. В общем и целом ничего сверхъестественного. Бывают и более современные алгоритмы, но большинство из них не способны на сети такого скромного размера добиться более точных результатов.
А теперь заполним картинку пикселями, окрашенными так, как предсказывает наша сеть. Получится карта представлений нейронной сети о прекрасном, использованная в начале статьи в качестве картинки для привлечения внимания. Слева исходная картинка летящего павлина, а справа то, как её представила себе нейронная сеть.

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

Часть вторая: Немножко реверс-инжиниринга


Представим, что перед нами и поставили задачу: безо всякого обучения сконструировать из нейронов классификатор, определяющий, где находится входная точка – выше или ниже прямой, проходящей через точку (0,0). Для решения такой задачи достаточно одного нейрона. Веса синапсов соотносятся как коэффициент наклона прямой и имеют разные знаки. Знак потенциала на выходе даст нам ответ.

Теперь существенно усложним задачку. Будем точно так же сравнивать две величины, но теперь входные значения будут поступать в виде двоичного числа. Например, 4-битного. С такой задачей, кстати, справится уже очень не каждый алгоритм обучения. Тем не менее, аналитический ответ тоже очевиден. Обходимся всё тем же одним нейроном. У первой четвёрки синапсов, принимающих первую величину, веса соотносятся как 8:4:2:1, у второй – то же самое, но отличающееся в -k раз. Разнести решение этой задачи в два отдельных нейрона значит усложнить решение задачи, если только входное значение, преобразованное из двоичного кода, не необходимо где-то ещё в другой части сети. И что же получается: с одной стороны, нейрон один, но, с другой стороны, у него обнаруживается два совершенно отдельных ансамбля синапсов представляющих обработку разных свойств входных данных. Отсюда следует первый вывод:
  • За представление свойств в нейронной сети могут отвечать не нейроны, а группы синапсов.
  • В одном нейроне мы часто видим комбинацию нескольких признаков.

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

Этот мысленный эксперимент учит нас новым важным выводам:
  • Ансамбль синапсов может захватывать несколько нейронов.
  • Если в системе есть несколько синапсов, меняющих некоторую границу с разной интенсивностью и в разный момент, ансамбль синапсов, включающий их оба может использоваться для того чтобы управлять новым свойством «промежуток между границами».

Наконец поставим последний четвёртый мысленный эксперимент.
Допустим, нам требуется включать выходной нейрон на двух независимых и неперекрывающихся участках. Решить задачку можно, пользуясь 4 нейронами. Первый нейрон активируется и активирует выходной. Второй нейрон активируется частично и тормозит выходной нейрон. В это время активируется третий, вновь активируя выходной нейрон. Наконец, второй нейрон набирает максимальную активацию и за счёт большего веса своего синапса вновь тормозит выходной нейрон. Тогда 1-ая граница почти полностью зависит от первого нейрона, а четвёртая – от последнего в первом слое. Однако положение второй и третьей границ хоть и можно изменить, не затрагивая других границ, но для этого придётся менять веса нескольких синапсов согласованно. Этот мысленный эксперимент научил нас ещё нескольким принципам.

Несмотря на то, что каждый синапс в сети такого типа влияет на обработку всего сигнала, но только немногие из них влияют на отдельные свойства сильно, обеспечивая их представление и изменение. Воздействие большинства синапсов оказывается существенно менее сильным. Если пытаться повлиять на свойство, меняя такие «слабые» синапсы, то те свойства, в управление которыми они вовлечены сильно, изменятся неприемлемо гораздо раньше чем вы заметите какие либо изменения в выбранном признаке.
  • Некоторые синапсы составляют ансамбли, способные изменять отдельные признаки. Ансамбль работает только в рамках существующего около него окружения других нейронов и синапсов. При этом работа ансамбля почти не зависит от малых изменений окружения.

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

Часть третья: Синаптические ансамбли


Малые размеры сети, заданные нами в первой части статьи, дают нам возможность непосредственно изучить, как изменение веса каждого из синапсов влияет на картинку, порождаемую сетью. Начнём с самого первого синапса, строго говоря, номера 0. Этот синапс в гордом одиночестве отвечает за наклон тушки птицы в левую сторону, и ни за что кроме. Никакой другой синапс не принимает участия в формировании этой опорной линии.



На картинке показано очень большое изменение веса синапса, с -0.8 до +0.3, специально, чтобы вызываемое изменение было более заметным. При таком большом изменении веса синапса начинают меняться уже и другие свойства. В реальности рабочий диапазон изменений веса данного синапса гораздо меньше.



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



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



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



Теперь рассмотрим какое-нибудь более сложное свойство, затрагивающее малую часть картинки. Например, размеры и форму областей под крыльями, где у нашего павлина короткие хвостовые перья. Выпишем все нейроны, которые влияют на эти области напрямую (например, на левую из них), а именно, отвечают за изменение отдельных частей птицы, а не её общей геометрии. Получится, что в ансамбль входят синапсы 21,22, 23, 24, 25, 26, 27.



К примеру, 23-ий и 24-ый синапсы, увеличивают выбранную нами область, противоположным образом влияя на длину крыла. Так что, изменяя их одновременно можно менять область, под крылом мало влияя на длину крыла. В точности как в предложенном нами четвёртом мысленном эксперименте.



Все эти синапсы ведут к 6-ому нейрону, и при взгляде на его карту активации, мягко говоря, не очевидно, что он участвует в контроле этого свойства. Что говорит в пользу эффективности предложенного в данной статье способа визуализации.



Если мы посмотрим, какие синапсы влияют на размер и форму этой области совместно с другими областями то наберётся ещё пара дюжин 37-46 (8-ой нейрон), 70-83(11 и 12-ый нейроны), 90-94(12 и 13-ый нейроны), 129-138 (16-ый нейрон) и ещё несколько, например 178-ой (19-ый нейрон). В общей сложности в ансамбль вовлечено ~46 синапсов из 460 имеющихся в сети. При этом остальные синапсы могут изгибать почти всё изображение, но выбранной области почти не затрагивают, как например 28-ой, даже если за него очень сильно подёргать.



Итак, что мы видим? Ансамбль синапсов, регулирующий выбранное нами свойство. Его влияние на другие свойства сеть при необходимости компенсирует согласованным изменением весов синапсов в ансамбле или задействовав другие ансамбли. Ансамбль синапсов задействует по меньшей мере 7 нейронов, это пятая часть всех нейронов сети и они также используются многими другими ансамблями.

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

Часть четвёртая: Анализ результатов


Элементы сети, кодирующие семантически значимые признаки, в сети могут быть, но это не нейроны, а ансамбли синапсов разного размера.

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

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

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

Также становятся понятным, почему разные работы по теме выделения семантически значимых признаков в структурных элементах сети давали на столько различные результаты.

В заключении хочу совсем мельком сказать о том, с чего начал. О картах активации последних нейронов в сети, так красноречиво выглядящих. Нейронная сеть может приближаться к требующейся от неё функции в виде суммы функций эффективно аппроксимирующих отдельные участки. Но чем больше данных успешно выучивает сеть, тем меньше она может выделить своих структурных элементов на то, чтобы кодировать каждый отдельный признак. Тем больше она вынуждена искать и применять качественные обобщения. Если нужно осуществить простую классификацию имея миллиард настраиваемых параметров каждый из них, скорее всего, будет управлять свойством только на одном маленьком участочке и только вместе с сотнями других таких же. Однако если сеть заставить выучить картинку, в которой под сотню значимых свойств, а нейронов у неё в распоряжении всего под четыре десятка, она или не справится или выделит семантически значимые признаки в отдельные структурные единицы, где их будет легко обнаружить. Выходные нейроны сети связаны с не очень большим количеством нейронов, и для формирования картинки с таким большим количеством значимых элементов, сети пришлось на предпоследних нейронах собирать результаты работы нескольких ансамблей синапсов вместе. Нейронам 29, 31 и 33 повезло, в них собрались геометрические данные, которые легко распознать и мы сразу обратили на них внимание. Нейронам 27, 28 или 32 повезло меньше, в них собралась информация о расположении цветовых пятен на картинке и понять что эта какофония означает сможет только сама нейронная сеть.

Share post

Similar posts

Comments 25

    +1
    Спасибо за статью!

    А можно поподробнее про схему использованной сети? Я про «нестандартное расположение синапсов».
      +1
      Сеть обычная не рекурентная, но на слои строго не разбита, синапс может идти к любому предыдущему нейрону. Накидано 460 синапсов из 630 комбинаторно возможных. Если ещё 170 докидать получится полносвязанная в самом брутальном смысле этого слова.
        0
        Мне кажется рекуррентные сети куда более интересны, да и возможности у них потенциально больше.
        т.е. в этом странность я не вижу. Конечно их редко используют на практике но вроде последние время о них было много публикаций (ИМХО).
          0
          Возможно если использовать разные функции активации можно получить еще более интересные результаты. Например добавить в часть нейронов синус и гаусса. Вот примеры картинок генерируемой сетью всего из 6 нейронов.
          Входными данными являются координаты.

          imageimage
            0
            Класс! Как в мозг мне глядели!

            Тоже хотел поэкспериментировать с таким, и сделать некоторые параметры функции активации, не связанные с синапсами также обучаемыми. Из моих чисто теоретических выкладок, связанных с понятием «удобной представимости» получается, что с некоторыми типами задач такие сети должны справляться сильно лучше при меньших размерах даже если примесный нейронов мало и они докинуты случайным образом.

            Буду реализовывать эту идею где-то третьей-четвёртой в списке того, что хочу попробовать.
              0
              Я не уверен что функции обязательно должны быть обучаемые. Может будет достаточно просто наличие таких в сети. По моей логике они облегчат формирование признаков генерируемых по этим законам. Пара — тройка синусов перед выходным слоем и хватит.
                0
                У меня на счёт удобства формирования признаков те же соображения. В одной из прошлых статей рассуждал на эту тему, правда на сильно вырожденном примере bias-а.

                Обучаемые полезны для многих дел, но самое очевидное — период синуса. При функции активации Sin(SUM Wi) другие нейроны могут легко модифицировать сдвиг фазы, но периодичность могут менять только сложно с использованием ещё одного нейрона перед использующим синус. Если один обучаемый коэффициент уменьшает необходимую слойность сети на 1 это полезный коэффициент, IMHO.
                  0
                  >>но самое очевидное — период синуса.
                  Я не правильно понял выражение " сделать некоторые параметры функции активации… обучаемыми."
                  Я это понял как изменение самого типа функции.
                  А как параметр функции — конечно.
        +1
        Интересно было бы послушать мнение AlexeyR, поскольку соображения пересекаются с его работами.
          +4
          Интересно, получайте :) Все приведенные рассуждения справедливы для той модели, которую описывает автор. Но мозг работает совсем не так. То есть совсем совсем не так. Объяснить как в двух словах не получится слишком различаются архитектуры и парадигмы. Специалисты гугла правы и указанные ими моменты не устранимы в традиционной нейросетевой архитектуре. Понимаю, что без объяснения «а как на самом деле» ценность этого комментария не высока и прошу воспринимать его исключительно как мое частное мнение.
            0
            Ну мнение меня и интересовало. Спаисбо :)
              +3
              Как минимум мозг сильно сложнее. Одни только 4000 нейротрансмиттеров чего стоят. А вот наблюдаются ли в реальном мозге синаптические ансамбли или нет мы узнаем не скоро, потому что снимать потенциалы с синапсов уже научились, но это на порядок более трудозатратно, чем с нейронов. Да спайковая математика совсем иная нежели у формальных нейронов, но явление является следствием более фундаментальных свойств.

              А специалисты гугла не правы и во второй части статьи тоже. Но чтобы объяснить подробно придется накатать ещё одну такого же размера статью. :) На той сети, которая описана в статье их «Лакун» практически нет. Малое изменение данных относительно правильных ведёт к резкому росту ошибки только на границах картинки, где сама учебная выборка очень не гладкая и выходит за рамки возможности сети.
              То что они увидели — слабые обобщения. Я уже описывал в комментариях к статье TonyMas-а, но если и оформлю в виде отдельной статьи то не скоро.
                +3
                Алексей, не пропадайте пожалуйста.
                Ваши статьи очень интересны и многие заждались продолжения.
                Также с радостью прочитаю вашу статью-ответ на эту на тему.
                  +2
                  Попробую найти время и завтра-послезавтра выложить что-нибудь новое.
              0
              Статья замечательная. Спасибо.

              Вопрос следующий. Работу любого классификатора, в том числе и нейронной сети, можно объяснить в терминах разбиения пространства признаков ломанными линиями. В случае плоской картинки, классификатор должен, собственно, выделять области одного цвета. Что он и делает. Изменяя работу классификатора, мы меняем разбиение пространства ломанными, что и наблюдается в приведённых в статье анимациях.

              Почему границы области примерно одного цвета названы синтаксическими признаками? Синтаксический признак, как я его понимаю, это раскрасить оба крыла в один цвет, выделив в в качестве признака — сигнатуру перьев. Тогда, такой признак будет изменять картинку симметрично. А в статье показаны отдельные ансамбли, изменяющие по отдельности правое и левое крылья. То есть — сеть не смогла найти общий признак и понять, что картинка на самом деле симметрична.
                +1
                Ужас, кошмар какой. Не синтаксически, а семантически значимые, конечно же. Десять тысяч человек прочитало статью и вы первый, кто обратил внимание. Семантически значимый, тобишь кажущиеся людям осмысленными, имеющий некоторое знаковое значение для наблюдателя. Тоесть признаки введены наблюдателем по самому постороению.

                На ваш вопрос не такой просто ответ. Дело в том, что сеть в процессе обучения стремится приблизиться к целевой функции, а это делать проще если удалось распутать признаки, однако это сети далеко не всегда удаётся. У меня, например, сеть не смогла понять, что картинка почти симметрична. Но очень часто выявление закономерностей и обобщений во входных данных проваливается с гораздо более страшным грохотом. В одной из предыдущих статей я рисовал картинку описанную во втором мысленном эксперименте этой статьи, когда сеть просят разделить точки над кривой и под кривой, но входные данные подаются в виде своих двоичных представлений. Сеть не справляется с придумыванием одной ломаной и начинает апроксимировать функцию множеством отдельных участков. Получается вот такой кошмар:
                image
                Ну тоже чему-то научилась, конечно.

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

                Тоесть, с чем сеть справилась я показал, с чем сеть не справилась совершенно обосновано показали вы.
                  0
                  Простите за некропостинг, но что не так с картинкой? по моему задача разделения синих и зеленых выполнена максимально разумно.
                  Чисто визуально количество синих точек выше линии примерно равно количеству зеленых точек ниже линии, при этом данная пропорция более-менее соблюдена не только в общей площади, но и по вертикальной оси.
                  Плохо что кривая слишком гладкая за счет большого количества частностей?
                  Так у сети много ресурсов (нейронов и связей), и она максимально ими пользуется для минимизации ошибки.
                  Уменьшим сеть, улучшим абстракцию за счет количества ошибок. Увеличим сеть — она нам по одному нейрону на точку съест, и ни одной ошибки не будет. Как впрочем и смысла в результате.
                  Или я не правильно понял что здесь неверно?
                    0
                    Некропостинг это хорошо, значит коммент не пропал даром. Смысл в данном случае вот в чём, во входных данных есть простая и чёткая закономерность. На вход подаются две координаты, в виде двух двоичных числ. В итоге получается 16 переменноых меняющихся строго [0,1]
                    Если бы сеть сумела сделать успешное обобщение чтобы хорошо замоделить задачу ей хватило бы 4 нейронов. Первый нейрон из двоичного входа складывал бы аналоговое число, по простейшему правило, второй делал бы то же самое для 8 других входов, а потом по одному нейрону на горб (сигмоида активации легко позволяет нарисовать горб одним нейроном). И ошибка была бы явно ниже, чем в данном случае. Вместо этого меть выучила прорву точек.

                    Вы правы, в части того что меньше-нейронов — больше обобщений. Проблема в том, что если вы оставите сети 4 нейрона, которые ей по идее только и нужны она всё равно нихрена не сумеет догадаться и обобщить, по крайней мере если будет руководствоваться Бэк-пропагейшеном. На самом деле если бы сеть хотя бы про два любых соседних входа догадалась, что их влияние отличается друг от друга строго в два раза она уже могла бы резко уменьшить ошибку. И тогда мы бы увидели на картинке некоторую регулярную структуру — вертикальные или горизонтальные полоски повторяющегося орнамента. Вы можете взять случайно созданную начальную сеть и весам каких-нибудь двух входов вручную установить нужное соотношение на синапсах хотя бы для части неронов первого слоя. И вы сразу увидите как улучшится найденный сетью вариант. Но на картинке регулярных полос нет — сеть оказалась беспомощной выявить эту закономерность.

                    Отсюда мой поинт — наращивание сейчас вычислительных мощностей даже постановка целой фермы GPU занятие довольно глупое пока ваш алгоритм не может справиться с на столько элементарной задачей. А когда у вас бует алгоритм, который такие вещи щёлкает то вам, возможно, и фермы GPU не понадобятся.
                      0
                      Вы меня запутали с переходами между аналоговыми и цифровыми сигналами, так что я так и не понял что же должна была понять сеть (а ей сложнее, у нее меньше нейронов чем у меня). Но не суть. Общий смысл я уловил.
                      Конечно же использовать ровно столько нейронов сколько хватит теоретически это не самая удачная идея.
                      В любом случае существует некий «КПД».
                      А вообще примерно по этой причине я очень скептически отношусь к обратному распространению.
                      Нет, я понимаю что это решение имеющее хорошие практические результаты. Но у подобной архитектуры есть фундаментальные недостатки.
                      Вот вы упомянули «ферму GPU».
                      GPU это не Тру. Только ASIC, только хардкор.
                      Давайте представим себе сеть с учителем на ASICах, размером с первые компьютеры, т.е. занимающая несколько этажей.
                      Один вход — от микрофона. Один выход — динамик.
                      Ну ладно, даже на обоих концах сделаем предобработку, допустим Фурье, так что входов и выходов будет чуть побольше.
                      Ну не выйдет таким образом никакого Адама Селена. По крайней мере за время не больше времени существования Вселенной.
                      А вот у сетей без учителя это хоть и фантастика, но гораздо больше шансов.
                      Конечно глупо выходить даже за пределы CPU прежде чем твоя сетка научится сносно играть в Реверси (без учителя, обучаясь на игре сама с собой).
                      Но это верно для сферических сетей в вакууме стремящихся к сферическому ИИ.
                      Но к примеру в статье с которой я перешел на эту статью (вы указывали в комментариях) приводился пример того, что поиск близких по смыслу слов неработоспособен на маленьком корпусе. От слова совсем. А при большом корпусе и сеть нужна большая. В чисто практических задачах часто маленькие модели не заведутся.
                +1
                Я, извините, с критикой. Задорный эксперимент, будет как минимум полезным для дальнейших исследований. Но есть одна принципиальная ошибка.

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

                Что, собственно, и произошло. Классификацию нейронов по назначению автор придумал (!) самостоятельно, рассматривая визуализацию возмущений отдельных нейронов и их вклад в общую визуализацию. Для некоторых нейронов ничего придумать не получилось. Вот если бы вы взяли 1000 разных птиц и всюду был бы найден отдельный нейрон или даже ансамбль, который отвечает за одну и ту же семантическую(!) характеристику, типа «это птица» «это не птица» тогда можно было бы о чем-то говорить.

                Поэтому гугловцы — правы, т.к. их вывод статистически значим.
                  0
                  С одной стороны вы правы, придумать выделенным признакам названия было той самой иллюзией в голове наблюдателя, о которой писали гугловцы. Но дело в том, что распутывание кроме такого вот наблюдаемого смысла имеет ещё и строго математический, поддающийся измерению. Когда сеть успешно распутывает какие-нибудь признаки увеличивается количество особенностей изображения, которые она может запомнить, а синаптические ансамбли, кодирующие отдельные особенности становятся компактнее, включают меньшее количество синапсов и не пытаются разбить одно цветовое поле на несколько. Как результат это приводит также к улучшению качества апроксимации, доступной сети при найденых обобщениях. Это видно если по одной картинке обучить разные сети сильно много раз.

                  Например для вот этой сети, сумевшей распутать мнеьше признаков, как кажется тому самому мнительному наблюдателю внутри нас, порог ошибки в 0,235 оказался непробиваем, как ни играй параметрами обучения, а сеть приведённая в статье, и получившаяся более стимулирующей фантазию наблюдателя легко вытягивает 0.218.

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

                  Ещё немного подробностей есть в моём ответе предыдущему комментатору: habrahabr.ru/post/249031/#comment_8250053
                  0
                  Не могу понять, почему сеть, натренированную на одной единственной картинке можно сравнивать с сетью, обученной на многих картинках.

                  Интуитивно кажется, что раз гугловцы, условно говоря, искали нейрон кошки, то есть многократно повторяющийся семантический признак во входных данных, то для единственной картинки следует искать что-то типа «нейрона часто встречаемых контурных участков».
                    0
                    >> Не могу понять, почему сеть, натренированную на одной единственной картинке можно сравнивать с сетью, обученной на многих картинках.
                    Потому что любое успешное обобщение это всего лишь нелинейное преобразование координат после которого задача классификации выглядит более решаемой. Задача может быть прямой классификацией (много разного на вход, простой выход), может быть классификацией вывернутой наизнанку, очень простые данные на вход, очень сложное ожидание на выходе. Сеть будет работать одинаково — искать такое нелинейное преобразование координат, после которого линейное разделение выглядит более понятным.

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

                      Выше приводился аргумент, что в конечном итоге результат интепретируется человеком: «выход этого нейрона похож на кошку, а это — непонятная смесь, а это — поворот птицы».

                      Не будут ли из-за различий подходов предлагаться человеку принципиально разные «пятна Роршара»? В итоге, идеальный образ нейрона/ групп синапсов в одном случае хорошо согласуется с тем, что у людей в голове, а в другом — хуже.
                        0
                        Это чисто упрощение для меньших размеров статьи. Я же не говорю, что обобщения найденные сетью совпадают со значимыми для человека. Обобщения для сети это всего лишь преобразования, которые позволяют проще строить своё приближение к целевой функции.

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

                  Only users with full accounts can post comments. Log in, please.