Как стать автором
Обновить

Комментарии 87

Это восхитительно! Гугл сильно продвинулся…
НЛО прилетело и опубликовало эту надпись здесь
Эта работа чем-то похожа на обычное эволюционное обучение, как [ES у OpenAI](https://openai.com/blog/evolution-strategies/) или [Deep Neuroevolution у Uber](https://eng.uber.com/deep-neuroevolution/). У эволюционного обучения есть несколько плюсов, вроде только прямого прохода (вообще без обратного распространения ошибки), устойчивости к шумам и исследования структуры сети. Кстати, эффективные эволюционные алгоритмы вроде CMA-ES, по сути, спускаются по градиенту, поэтому совмещают достоинства чисто градиентных способов.

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

Это не панацея, конечно. Просто попытка есть слона по частям, от простого к сложному. Сначала научить простейшим рефлексам, вроде ходьбы, потом более сложной мотивации, потом еще сложнее и так далее. Повторить путь, пройденный животными до человека. Но у такого подхода, мотивированного копированием физиологии (не буквально, а принципов), сразу видится минус: можно застрять в ограничениях, наложенной этой же физиологией/инстинктами! Структурой сети, в данном случае. Здесь нет четкой дороги к сильному ИИ, люди просто пробуют разные подходы. Посмотрим, что из этого получится…
Давно хотел написать что-нибудь простенькое с использованием генетических алгоритмов для эволюции нейронных сетей, но представлял, что кроме вычислительных затрат на просчет «жизни» каждой особи из большой популяции умноженных на число поколений, потребуется еще просчитывать продолжительное взаимодействие со сколько-нибудь интересной окружающей средой. Радует, что появляются интересные подходы в этом направлении, упрощающие задачу.
Но все же, где гарантия, что даже имея в наличии большие вычислительные мощности, мы не застрянем на уровне «насекомых», нейронные сети которых быстро и прекрасно справляются с решением многих задач, но весьма не пластичны и вряд ли потянут на звание ИИ.
ИМХО, нужно как-то разобраться и «украсть» у природы базовые принципы, функции, механизмы взаимодействия различных отделов мозга хотя бы на уровне птиц. Затем попытаться реализовать «в цифре» минимально необходимый набор аналогично взаимодействующих модулей (конечно на уровне распространения простых цифровых сигналов, а не физически реалистичных симуляций всяких натрий-калиевых насосов и потенциалов действия). А дальше уже на эту базу «натравливать» генетические алгоритмы в симуляторах реальности. Среди идей, которые стоит «украсть» у природы, я вижу, например, механизм «опережающего возбуждения», известные виды торможения нейронной активности, «центры боли и удовольствия», механизмы «внимания» и возникновения «автоматизмов» и т.д. И все это должно работать как устойчивая, но динамическая система, постоянно взаимодействующая с меняющимся окружением. Интересно, существуют ли работы в таком направлении?
НЛО прилетело и опубликовало эту надпись здесь
Полностью согласен. Только есть проблема. Именно с такого подхода и начинались работы по ИИ еще пятьдесят лет назад ). Понять принципы интеллекта, не копируя в буквальном смысле мозг животных/людей. Но результата как бы нет… Поэтому изучать и брать что-то из биологии это просто параллельная ветвь исследований, а вовсе не то, к чему мы в итоге пришли. Ничто не мешает продолжать пытаться создать ИИ из первых принципов, так сказать.
Поэтому изучать и брать что-то из биологии это просто параллельная ветвь исследований, а вовсе не то, к чему мы в итоге пришли.
Не совсем так. Недавно делал перевод небольшого обзора на тему взаимоотношения нейросетевого ИИ и нейробиологии. Моделирование с помощью ИНС дает весьма серьезные результаты в понимании работы разных систем мозга и даже происхождения чувств, несмотря на их отличие от реальных нейросетей. Влияние взаимное, и эта тенденция, очевидно, будет нарастать.

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


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

Забавно будет когда получив сносный ИИ небиологическими методами человечество спустя какое-то время подтянется в аддитивных нано-технологиях и репликации, после чего народ станет баловаться создавая простенькие «живые» ИИ, как сейчас энтузиасты строят вполне работающие махолёты.
Да ладно вам, те же нейросети из общего с реальными нейронами имеют разве что название. А так это чисто математическая конструкция.
а какая разница?
Но все же, где гарантия, что даже имея в наличии большие вычислительные мощности, мы не застрянем на уровне «насекомых»
Это тоже будет существенным шагом вперед. А там, глядишь, и новые знания получим.
хотя бы на уровне птиц
Ничего себе «хотя бы». А чего не «хотя бы» у человека? Поведение птиц не менее разнообразное, чем у млекопитающих, а структура мозга, где-то слышал, даже более оптимальная (меньше вес при той же вычислительной мощности). Нет, если уж с чего и начинать, то именно с простейших беспозвоночных.
Среди идей, которые стоит «украсть» у природы, я вижу, например, механизм «опережающего возбуждения»
Костыли-то зачем воровать? Это в природе важнейшие ограничения на скорость реакции и скорость обмена импульсами в нейронах. В технике же скорость передачи сигнала на много порядков выше, а приоритете скорее в точности.
Костыли-то зачем воровать?
Я знаком с основами нейрофизиологии довольно поверхностно и давно не отслеживал последних новостей. Есть достоверные данные или общепринятое мнение, что это только лишь «костыли» и в ИИ не потребуется?
Просто в моей (исключительно субъективной, обывательской) картине устройства мозга этот механизм выполняет принципиально важную функцию — позволяет «узнав» ситуацию, в которую субъект попадал ранее, подготовится к ней оптимальным образом (например, грубо говоря, повторить действия, если предыдущий опыт был удачный либо поступить как-то иначе, если прошлый опыт не порадовал).
Сразу скажу что я не биолог, так что выводы будут из простейших соображений.
Насколько я понимаю, механизм опережающего возбуждения похож на предсказание ветвлений в современных процессорах. То есть предварительная подготовка «медленного» блока к заранее предсказанным данным, чтобы ему осталось только уточнить детали. И причина появления такого механизма вполне понятна: «медленный» блок на то и медленный, его надо как-то ускорить. В живой природе от скорости реакции будет зависеть выживаемость, но эта скорость ограничена в первую очередь скоростью биохимии, которая по сравнению с техникой крайне низка. Поэтому и приходится придумывать разнообразные хаки и костыли вроде реконструкции изображения с глаза (на этом основаны обманы зрения). В технике же проблема пока не со скоростью обработки информации, а с точностью и предсказуемостью. То есть и так никто не знает как работает конкретная нейронная сеть. К каким результатам приведет изменение веса конкретного нейрона. А вы предлагаете встраивать еще и механизм предсказания.
Впрочем, именно в силу обучения сети, подобный механизм прекрасно возникнет и сам, если среди требований будет скорость.
Ну, тогда как неспециалист неспециалисту скажу, что большинство попыток провести аналогию работы мозга с чем-то понятным и известным, будь то, компьютеры, процессоры, операционные системы, известные алгоритмы и шаблоны проектирования зачастую больше вводят в заблуждение, чем улучшают понимание. Но даже если рассматривать аналогию с предсказанием ветвлений в процессорах, то можно заметить, что, процессор в случае ошибочного прогноза к моменту «действия» просто откатится к состоянию «до ветвления» и чуть медленнее, но с неизменными результатами пройдет по единственно правильной ветке. Все предопределено, и, действительно, возможная разница только в скорости исполнения набора команд.
В случае же с живым мозгом нет единственно правильной последовательности инструкций которые нужно просто исполнить с той или иной скоростью, нет возможности сбросить состояние, даже нет возможности точно просчитать результат движения не по той ветке. Собственно говоря, «правильной» ветки тоже нет, потому что в природе нет (прости Господи) программиста, который знает как правильно. Вероятно критерием, который в природе можно в некотором роде принять за НЕправильность выбранной ветки — это исчезновение особи вместе с головным процессором без благодарных потомков.)
Окружающая среда не является частью мозга, с ней надо взаимодействовать напрямую (что чревато) или обращаться к предыдущему опыту такого взаимодействия. А как обратится к предыдущему опыту? — Подать на входы нейронов внешние образы текущей ситуации (например горячий чайник), прогнать их через нейросеть отключив моторику(чтоб случайно рукой не хватануть, но отголоски былой боли вспомнить) и потом уже по прогностическому отклику «выбирать ветку».
Не берусь категорично утверждать и поставлю вопрос: получается, что без механизма опережающего возбуждения (в широкой интерпретации) в нейросетях тяжеловато обратится к предыдущему опыту?
Вероятно критерием, который в природе можно в некотором роде принять за НЕправильность выбранной ветки — это исчезновение особи вместе с головным процессором без благодарных потомков.)
И то не всегда, есть стратегии альтруистического поведения. Когда отдельные особи жертвуют своей жизнью ради выживания популяции. И это характерно не только для человека. Если не ошибаюсь, подобное поведение есть даже у некоторых бактериальных колоний.
Согласен, пусть непрямые потомки тут как бы есть, но вот на их благодарность рассчитывать приходится далеко не всегда, по крайней мере у человеков. )
«правильной» веткой можно считать адекватную реакцию на воздействие. Если «предсказание» говорит, что предмет горячий и не ошибается, «правильная» ветка отработает быстрее. Если же «предсказание» ошибется — сигнал пойдет не по настроенному пути и потребует более детального анализа. Для живых организмов это полезно, но для автоматики — зачем?
получается, что без механизма опережающего возбуждения (в широкой интерпретации) в нейросетях тяжеловато обратится к предыдущему опыту?
Отчего же? Вся работа нейросети это обращение к предыдущему опыту, она по-другому не умеет. Про описанный вами механизм «сигнал мышцам + блокировка» я не слышал. Не считая сна, естественно.
А как вы, будучи проектировщиком искусственной нейронной сети, реализовали бы адекватную реакцию на возможно горячий чайник без обращения к предыдущему опыту? И если вдруг все же потребуется обратится к предыдущему опыту, проверить есть ли он вообще, удачный ли он или не очень, то не будет ли это по сути тем самым «опережающим возбуждением»?
А блокировку мышц я упомянул просто для лучшего понимая того, что живой нейросети необязательно тыкать пальцем в горячий чайник, — она может сначала «представить» себе, что будет через это пресловутое «опережающее возбуждение»(читай: обращение к опыту).
«Но все же, где гарантия, что даже имея в наличии большие вычислительные мощности, мы не застрянем на уровне «насекомых»»

«Застряли» насекомые на своей эволюционной ветке не из-за структуры их нейросетей, а по совсем другим причинам:

1 — отсутствие полноценных лёгких,
2 — не замкнутая кровеносная система,
3 — твёрдый внешний скелет.

Как результат — это в целом налагает структурные и метаболические ограничения как на размер тела в целом, так и на размер самого мозга.
То, что насекомые «застряли» — не страшно, у них тоже много чего можно позаимствовать для прогресса, в том числе из структуры нейросети, но раз уж в статье упоминался «сильный ИИ», то насекомые не вариант.
А в чем принципиальная разница нейросети насекомого и высшего позвоночного? Именно принципиальная, то есть не количество нейронов или связей.
Освежив по википедиям старые знания докладываю): Есть мнения, что заметный отрыв в когнитивных способностях человека от меньших братьев обусловлен хорошо развитой новой корой. У млекопитающих этот неокортекс есть, но развит меньше, у птиц нашли какой-то его аналог. А насекомые — это существа с ганглионарной нервной системой. Это, грубо говоря, обученные эволюцией, но «замороженные» нейросети с очень ограниченными способностями к обучению, но способные реализовать весьма сложные программы поведения. Еще механизмы этого обучения похоже отличаются от таковых у высших животных, поэтому сделать шустрый дрон-убийцу на базе нервной системы насекомого самое то, а сильный ИИ нужно растить из чего-то посложнее.
Я помну малой как-то загнал муровья в бесконечный логический цикл ( подробностей уже не помню, лет 7 было ), он сутки в этом цикле исполнял одно и то же, потом издох, видимо из-за окончания топлива.
Не знаю тот ли случай, но если поискать инфу, например, по фразе: «муравьиная спираль смерти» можно довольно эффектные видео найти и какое-то объяснение.
бесконечный логический цикл
Спросили его «А кто создал самого бога?»?
Если предположить, что описанное в статье соответствует биологии, то нейронная сеть муравья состоит из малого числа нейронов и хитрой связи между ними. То есть он преднастроен на строительство муравейников и прочее инстинктивное поведение. А нейронная сеть высших животных содержит большее количество нейронов, так что даже при схожем количестве связей у каждого, получается намного гибче. Но это все равно количественная разница, а не качественная.
Если речь про обсуждаемую работу Google, то кто его знает, во что и в какие сроки все это разовьется. Но нервная система муравья все же сильно отличается от таковой у высших животных, просто потому, что не содержит тех отделов которые эволюционно возникли позже. И если этого не учесть в своих экспериментах, то можно навесить на «движок муравья» число нейронов большее, чему человека, но не получить ожидаемого скачка интеллекта. На слона вон навесили, и нейронов у него больше, чем у человеков, но считается, что мы умнее. )
Эволюцию тоже можно считать этаким «учителем» обучающим мозговые нейросети живых организмов своим специфическим методом — отбором наиболее удачных с точки зрения выживания вида. Но вовсе необязательно копировать ее подход, если только не ставится задача исследования биологической эволюции нейросетей. Эволюция действует методом проб и ошибок, до некоторой степени целенаправленный подход человека может скомпенсировать этот случайный поиск по результатам и времени. Это как селекционный отбор, он эффективнее в достижении целей, нежели ждать, когда вдруг появится порода коров с большими удоями молока естественным образом. ИНСы, действительно, только моделируют свойства естественных нейросетей. Но это не значит, что для достижения практических результатов нужно стремиться сделать их как можно точнее похожими на нейросети мозга, включая способ обучения. Если только не решаются исследовательские задачи, например, связанные с выяснением, как их функционирование приводит к возникновению различных ментальных феноменов. Поэтому предобучение, аналогичное инстинктам в биологических организмах, кот. выработаны эволюцией, можно реализовать в большой сети в общем порядке обучения с учителем. Затем исследовать структуру сети, и по заранее заданным критериям точности, удалить из нее не задействованные участки и участки мало влияющие на результат обучения, с целью повышения ее эффективности и времени реагирования при использовании. Эффект должен быть приближенно таким же, какой добились в статье.

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

И правильный выбор фитнес-функции является критическим важным для подобных алгоритмов, чтоб достичь результата.
Об этом и речь, человек задает критерий отбора, и это эффективнее, чем делает эволюция, даже если речь о селекции. Кроме того мой пример с удойными коровами не совсем удачный) природе они не нужны, поэтому вряд-ли появятся, они нужны человеку, и он задает такой странный, с точки зрения эволюции, критерий отбора. Но и продолжая дело эволюции человек может достичь лучших успехов и быстрее, чем она. Человек результат миллионов лет эволюции, если брать точкой старта примитивных гоминид. Человек за тысячелетия, с тех пор как появилась наука в современно виде, вполне вероятно, сможет создать более совершенный ИИ на новой технологической основе, превосходящий человеческий биологический интеллект. Надеюсь хотя бы вначале они будут в симбиотических отношениях, глобальная эволюция не отбрасывает своих полезных наработок просто так) Звучит несколько противоречиво, но считаю, что человек это не только биологический вид, но и воплощение самой эволюции, кот. его руками и интеллектом будет действовать более эффективно и быстрее, нежели старым методом отбора.
Удаления связей из обученной сети хорошая мысль, но ее намного проще реализовать на таких сетях как в статье, мне кажется можно использовать тот-же механизм. Вначале идет эволюция и сложность сети увеличивается, затем начинается этап регресса когда связи и нейроны удаляются, до тех пор пока могут выполнять свою работу. Повторяя цикл несколько раз может получится примерно такая же структура как в мозге с древними старыми и новыми структурами.

Недавно была такая работа: MorphNet. Там как раз сеть расширялась, потому сужалась и так несколько раз. В итоге получалась более компактная сеть, не уступающая по точности оригинальной. Но вообще, за последние пару лет было предложено много вариантов как делать distillation сетей (т.е. сжатие, выделение знаний). В нейросетях ведь по определению огромная избыточность. И это очень интересная область, потому что похоже, что проще обучать сложные сети, а потом делать из них выжимку, которая будет работать на слабых устройствах. Сейчас вот достигнуто стабильное примерно 10-20-кратное уменьшение без потери точности. И это явно далеко не предел.

Да, в NEAT такой подход («фазовый поиск») применяется: sharpneat.sourceforge.io/phasedsearch.html
Второй способ получения простой и компактной сети — мультикритериальная оптимизация (он, кстати, упомянут в статье). Это когда отбор производится сразу по двум критериям: высокий фитнес и низкая сложность сетки. Вот тут есть видео, где мы подбираем сеть для вычисления XOR'а как раз этим способом. Минимизируем только число связей, а не кол-во нейронов, как в статье.

Все новое — это хорошо и основательно забытое старое. Обзор методов эволюции нейронных сетей — я эту статью написал 9 лет назад, картинок там, к сожалению, нет, зато есть описание и сравнение разных подходов.
Кстати, NEAT был предложен еще в 2002 году и потом еще дорабатывался (в частности, есть его вариация HyperNEAT).

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

К примеру, если младенцу родом всего несколько минут показать язык, то благодаря зеркальным нейронам, он тоже высунет язык.


Брехня. Младенец несколько минут родом нифига не видит и не умеет фокусироваться, так что никакого языка он не покажет.

Эксперимент Мелцоффа, 10-минутный новорожденный повторяет высовывание языка за взрослым: www.youtube.com/watch?v=k2YdkQ1G5QI

А теперь у меня есть два варианта:


  1. Поверить ютубу
  2. Поверить эмпирическому опыту.

Дело не в этом. У низших животных почти все задано инстинктами, причем довольно сложное поведение. У человека же почти все эти функции перешли к неокортексу. Который не содержит никаких инстинктов. Он как чистый лист, обучается целиком в процессе жизни. Это дало офигенные преимущества в адаптации, хоть и потребовало более долгого обучения. Ну и чисто за счет своего размера, позволил обучиться большему числу вещей. Но какие-то низкоуровневые вещи остались и у человека. Вроде этих зеркальных нейронов, или navigation cell (навигационные нейроны, формирующие карту знакомого пространства). Это большой и открытый вопрос, формируют ли эти физические предустановки возможности интеллекта?


Сейчас RL весьма слаб в общей обучаемости. Скажем, есть пример в OpenAI Gym где человечек в симуляторе учится быстро бегать. Там целевая функция скорость бега. Загружаете этот пример, все работает, все обучается. Но если в начальный момент человечек будет не стоять, а лежать на земле, т.е. должен сначала встать, а потом побежать, то этот же пример никогда не обучится! Ни одним из существующих самых современных алгоритмов RL! Да что там, даже изменив какой-нибудь гиперпараметр, уже с большой вероятностью ничего не обучится.


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


Эта статья примерно из той же оперы — может попробовать базовые рефлексы (способность бегать, ну или как на картинке в статье — способность машинки удерживаться на дороге) задать структурой сети, а более сложное обучение продолжить поверх нее? Тем более, что похожий процесс мы видим при обучении у животных. Я конечно забегаю вперед, это только предположения. В реальности все может оказаться совсем не так, и этот подход тоже не сработает. Но хочется верить в лучшее.

Сколько я ни пытался следить за этим, ни разу не видел нейросети построенные по типу нейрогенеза.
Давным-давно у меня была идея что при приходе данных от узла, если данные «новые» то появлялся новый нейрон и обучался постепенно и подстройка постепенно спадает… *отложено*
Тем более, что похожий процесс мы видим при обучении у животных.

А ещё, сколько бы я ни читал, не могу найти нейросети которые работают с картинками как у животных. Всмсл, вроде, зрительная информация нехило так обрабатывается ещё до того как она поступит в зрительную кору. (Освещение, границы объектов и направления, цвета и прч)
А ещё, сколько бы я ни читал, не могу найти нейросети которые работают с картинками как у животных. Всмсл, вроде, зрительная информация нехило так обрабатывается ещё до того как она поступит в зрительную кору.
Автоэнкодеры не рассматривали?
Это немного не то, но интересно… Какбы после всего этого.
Ммм…
Я про то, еслиб вместе с видео потоком в 1080 шла «карта» насколько линии горизонтальны или вертикальны в 480. Какбы вспомогательная информация. Насколько я знаю, подобные вещи есть в нашем моске.
Или как лучше понять что объект освещён, через карту освещения или через картинку 3-мя компонентами цвета? Надеятся что ИНС может сама догадаться до этого, лучше не стоит.
Насколько я знаю, эти упрощённые «карты» горизонтальных и вертикальных линий формируются, но уже в зрительной коре, а не до нее. Рецептивные поля, вот это все. В сверточных нейронных сетях это называют «features» — содержание внутренних и выходных слоев в сверточной сети. Вроде как доказано, что эти карты фич в искусственных сетях совпадают с теми, что формируются в зрительной коре животных.

Про нейрогенез интересно, но разве он имеет аналоги в природе? Нейроны ведь формируются как и все клетки — за счёт градиентов растворов внутри клетки и давления от соседних клеток, а вовсе не от сигнала. А вот аналог того, как в природе формируются аксоны и дендриты, то есть связи между готовыми нейронами в зависимости от частоты сигнала, был разработан ещё на заре компьютерной техники. Это правило Хэбба и его модификации. Но такое обучение нейросетей не показало хороших результатов, градиентные методы оказались намного эффективнее.
Ладно, просто про «карты» линий я имелл ввиду, что в глазе есть большие клетки для определения направления границы светло\темно… Ладно, фиг с ним, я мог что-либо забыть.

Простите, но я уже не помню про нейрогенез. Помню лишь что при рождении он достаточно активный и важен в дальнейшем развитии(иначе патологии). И всё к тому что моск появляется не сразу готовый, а достраивается постепенно и также модифицируется во время работы. Это не отменяет того, что он может учится. Просто при исчерпании запасов начнутся разного рода «трудности».

Я пытался сделать свою ИНС… Да, там было ограниченное пространство которое я задавал, что не позволяло ей разрастаться слишком сильно. Надеялся это поможет ей в само оптимизации… Вообще я туда много фич пытался запихнуть, к примеру — можно было обрывать\понижать связи\веса нейронов по критерию, или делать нейроные группы задавая им номер(-а) «нейромедитора»и как они влияют на них. Все эти, и многие другие, «костыли» казались лучшим подходом, чем чистая «математика».
Этот клеточный автомат который делал… На моём селероне если клеток 50+ так дико всё лагало, что я бросил эту идею :) (Я тогда писал под .NET) Сама ИНС была «обучение с учителем» использовал так чтоб учить их жрат, размножаться и не умирать.
(Копания в железе (FPGA\asm) меня больше увлекало, туда и ушёл потом бросив это всё)
У человека же почти все эти функции перешли к неокортексу. Который не содержит никаких инстинктов. Он как чистый лист, обучается целиком в процессе жизни.
Тут можно такую философию развести) Заранее не известно, что считать базовыми способностями, и использовать их как инстинкты, и каким остальным способностям обучать потом. Эволюция делала эту декомпозицию методом проб и ошибок, и можно конечно позаимствовать результаты ее работы. Но возможно это не самое лучшее решение. Почему? Потому что у эволюции были ограниченные возможности, ее решения основаны на возможностях и ограничениях биологии, и соответствующей энергетике. Помним, что ~2% массы мозга потребляет ~20% всей мощности организма. А есть еще ограничения на скорость распространения информации в нейронных сетях, и производительность. Процессоры и коммуникационные сети тоже имеют подобные проблемы и ограничения, физика та одна кругом) Но мы можем, в отличии от природы, варьировать технологическими решениями, а не завязываться на одну. И соответственно получать преимущества по всем эти показателям производительности вычислений. Поэтому для мощного ИИ на нейросетях можно использовать большую однородную сеть для обучения, и сильно не париться иерархической декомпозицией входных данных, сеть сама ее произведет. Условно говоря в такой сети появятся аналоги специализированных отделов мозга в виде связанных подсетей. Далее необходимо произвести оптимизацию сети, удалив не используемые или малоиспользуемые участки по определенным критериям, чтобы улучшить показатели производительности и энергоэффективности.

Имеется важный вопрос со структурой такой сети. В мозге она иерархическая, и информация подвергается непрерывной интеграции по мере движения в верхние уровни. Фактически это сжатие информации с потерями. Действительно, на самом верхнем уровне абстрактного мышления исходные образы кодируются понятиями, кодируемыми символами или звуками. Этого эффекта можно добиться структурой сети с уменьшающимся числом нейронов в слоях. Такая структура решает сразу две проблемы — сжатия информации и повышения энергоэффективности. У животных это меньше выражено, условно говоря, у них структура сети более прямоугольная, и они оперирую целыми образами, и в целом образным мышлением. У человека оно тоже осталось, и преобладает в в первые годы жизни, но затем, по мере обучения, уступает абстрактной форме мышления. Тут можно пофантазировать. А нельзя организовать искусственную сеть, как у животных, и получить ИИ базирующийся на образном мышлении? Преимущества очевидны. Из-за того, что нет сжатия с потерями, или они не большие, сохраняется полный контекст информации. Возникает меньше неоднозначностей в коммуникациях и понимании. Одно дело сказать яблоко, и каждый человек представит свое яблоко, и чтобы они у все были одинаковыми нужно как можно точнее передать контекст, т.е. доп. информацию для согласования. И другое дело передать образ конкретного яблока, и не нужно затрат на передачу контекста. Но все это потребует затрат на производительность и энергетику таких сетей. Эволюция обошла эту проблему, развив абстрактное мышление, в угоду точности. Но технологии возможно позволят решить эту проблему. Как-то так)

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


Справедливости ради стоит отметить, что эксперимент Мелцоффа (Andrew N. Metlzoff) не является стопроцентным фактом, и в некоторых исследованиях не воспроизводился.


https://en.wikipedia.org/wiki/Intermodal_mapping — см. разделы Criticism и Replication

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


А эксперимент примитивен — показал младенцу язык, он показал его в ответ.


… Или мне обязательно надо делать два независимых ракурса, которые потом склеивать — на лицо исследователя и на младенца, показывающего язык?

Нормально описываю, антивакцинщикам назло :)


Все, к сожалению, гораздо сложнее. Результаты "примитивного" эксперимента можно трактовать очень по-разному.


Может быть, данный конкретный младенец так реагирует на данное конкретное лицо — просто потому, что нейрончики так сцепились? Может быть, во время открывания рта взрослый рефлекторно нажимал на ребенка или тот реагировал не на какой-то другой фактор (хотя бы — запах изо рта)? Может быть, экспериментатор принял шевеление губ ребенка за высовывание языка и, желая успешно отчитаться, поставил плюсик там, где не надо? И куча других вопросов и побочных факторов, множество из которых субъективны.


Поэтому эксперимент нужно ставить на многих младенцах, разных возрастов, рас, полов и т.п. и с которыми работают разные взрослые — мужчины, женщины, старые, молодые. И контакт между ними исключить до только визуального (например, прозрачная ванна с крышкой). Крайне желательно при этом применять "двойной слепой метод" (см. https://ru.wikipedia.org/wiki/%D0%A1%D0%BB%D0%B5%D0%BF%D0%BE%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4) — т.е. оказывается, что два независимых ракурса, как раз-таки, обязательны — одна камера снимает малыша, одна камера снимает взрослого. Потом при расшифровке независимое лицо пишет — на 0:35 секунде ребенок открыл рот, на 0:48 — высунул язык, а другой — делает то же самое с записью взрослого.


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

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

Именно — это и есть трактовка результатов эксперимента :) Обычно, формулировку исходной гипотезы постепенно сужают (где-то на днях видел картинку: теория всего => теория чего-то => теория ничего), и это и есть суть научного поиска.


Правда, при публикации результатов в популярном виде, журналисты обычно краевые условия для краткости и пущей важности опускают и вместо "у новорожденных детей в возрасте от 45 минут до 72 часов наблюдается статистически значимая корелляция между собственными мимическими действиями и мимическими действиями, демонстрируемыми взрослым объектом" получаем "младенцы младше часа от роду уже высовывают язык вслед за папой и мамой" — даже, если таковой младенец в положительных результатах был всего один :)

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

Или известный баг с вытеснением мыслей о неприятных делах.

Это уже более высокоуровневый механизм.

А как же «баги» у котиков? Если кинуть на морду квадратную лепёшку плавленного сыра, то, больше половины (по моим экскрементам), попытается сбросить лепёху, а потом «зависает». Не-не у меня кот так минут 5 стоял пока я её не снял :D (Потом перестал у меня еду просить...)
Если поискать и у меньших братьев тоже «баги» найдутся
Это не баг, это неопределённое поведение: в природе котикам на морду крайне редко падает готовая еда и спокойно лежит.
похоже на undefined behavior
«То есть существует некий брокер»

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

Сергей Мурик — О природе эмоций, или Что чувствует амёба в горячей воде, «Наука и жизнь», №6, 2006
elementy.ru/nauchno-populyarnaya_biblioteka/430317/O_prirode_emotsiy_ili_Chto_chuvstvuet_amyoba_v_goryachey_vode
Может и нет, просто какая-то система активируется и захватывает контроль.
Если голоден, будешь искать еду. Если зачесалась спина, то начнешь чесать.

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

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

Мозг думает всегда сразу о нескольких вещах параллельно, но победитель забирает все.


Еще вопрос — на что это похоже и какую модель можно запрограммировать?

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

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

И вот как все это богатство привести к брокерам и агентам, я понятия не имею ). То есть, вызывает сомнения даже сама правомерность подобных аналогий.
То есть, вызывает сомнения даже сама правомерность подобных аналогий.
Так это эмерджентные феномены, их описание не сводится к нейронной импульсации. Как пример подобного доказательства эта работа из области физики, в кот. доказывается не сводимость описания макроскопических свойств магнитных материалов к их микроскопическому описанию. Для мозга найти неразрешимость и доказать эмерджентность ментальных конструкций не сложнее, эмуляцией той же машины Тьюринга с помощью нейронных сетей. Вопрос в правильном выборе этих конструкций. Каждая наука связанная с исследованием мозга решает их по своему. Главное не запутаться) эмерджентность относится именно к несводимости описания этих конструкций к свойствам нейросетей, но объясняется процессами их функционирования. Говоря по другому — объясняется структурно-функциональной редукцией, никаких дополнительных мистических сущностей для объяснения ментальных феноменов не требуется. Это можно проиллюстрировать на примере игры Жизнь. С использованием глайдеров доказывается ее полнота по Тьюрингу. То есть свойства глайдеров нельзя непосредственно вывести из правил игры, и в этом смысле глайдеры эмерджентные феномены. Но можно объяснить их появление, если задать начальные условия игры и пошагово проследить историю ее ходов. Однако в применении к мозгу мы не можем это выполнить точно, для этого историю нужно отмотать, видимо, до Большого взрыва) Но приближенно можно выделить нейро-динамические процессы (фМРТ, как пример их визуализации), кот. связаны с ментальными феноменами, с их началом и концом. На этом и строится экспериментальная наука о процессах в мозге, и их теоретическое объяснение.
Да, это очень философский вопрос — что человек видит, смотря на картину художника? Если он подойдет с лупой и начнет вглядываться, то увидит только какие-то пятна. Если отойдет на нужное расстояние, то пятна сложатся в картину.

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

После прочтения порядка десятка книг на эту тему мне показалось, что этот внутренний цирк похож на мультагента, в котором есть еще общая шина, позволяющая каждому агенту временно брать контроль над органами чувств и направлять человека.
Скорее паттерны поведения, которые зависят от целевой задачи и окружения, которые управляют механизмом выборки задач, которые влияют на сортировку важности задач. :]
Можно сказать, что паттерны поведения одной системы. Но можно разделить на подсистемы, которые эти паттерны поддерживают.
Я как-то раз пробовал сделать такую архитектуру. Сделал 5 нейросетей для управления в различных задачах. Обучил эволюцией, не через RL.
А потом сделал «брокера», который может и сам управлять, и запускать заданную нейросеть. Причём он ещё мог подавать на вход нейросетям искажённый входной образ. Мог смешивать выходы нескольких «агентов». И поставил ему задачу — быть эффективным на всех 5 этих задачах. И эволюция.

Каждый агент на своей задаче был реально эффективен, на околочеловеческом уровне (задачки простые были). Единая монолитная нейронка решала все задачи вместе очень плохо. А со схемой «брокер-агенты» она их решала… Ну, лучше, но всё равно далеко от реальной эффективности агентов.

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

Это похоже на иерархический RL. Первые успехи в длинных последовательностях действий роботов несколько лет назад были сделаны именно на таком подходе. Там на низком уровне нейросети были обучены простым действиям: сдвинуть руку на такие-то координаты, схватить предмет. А более высокоуровневая нейросеть рулила этими простыми командами. В итоге робот смог собрать игрушки на столе и сложить их в коробку или вроде того. Что для того времени было большим успехом. С длинными маршрутами перемещений по городу тоже была статья, кажется, у BAIR (группа в Berkeley университете, активно занимающаяся ИИ). Там агент на простом первом уровень мог делать небольшие локальные перемещения на сотню метров, а общий длинный маршрут между двумя районами города строил второй уровень.


Ссылок не приведу, так как это было давно и с тех пор эти области сильно усложнились. Но помню как года три назад на arxiv.org и разных конференциях была куча публикаций по иерархическому RL. От него все с воодушевлением ждали результатов. Но постепенно тема заглохла, так и не добившись ничего, что стоило бы внимания. Мне кажется такое иерархическое разбиение задач было слишком искусственным, что ограничивало свободу нейросетей по поиску решения в общем пространстве параметров.


Вот если бы подобные иерархические структуры образовывались бы естественным путем через какой-нибудь self-supervising, то может был бы толк… Это как сравнить вручную созданные дескрипторы вроде SIRF, ORB для поиска паттернов на картинках. И фильтры сверток, которые сверточные сети сами создают при своем обучении. Результат налицо за последние несколько лет, как говорится.

Я верно понял, что процесс обучения это некая разновидность генетического алгоритма? В таком случае, такие сети будут учиться весьма долго. Простота backpropagation как раз и делает его таким эффективным. Ну я пишу это с точки зрения применения сеток в компьютерном зрении.
Похоже, что да. Предобученная сеть готовится через генетический алгоритм. Главная задача, чтобы несмнотря на то, что все веса одинаковые и равны какой-то величине, она могла слегка выполнять нужные действия вне зависимости от величины.

Статья очень интересная. Я как раз изучаю подход обучения бота. Я хотел бы пообщаться с автором на эту тему. Не знаю как написать. Если есть желание, моя почта salos at mail dot ru

Единственное, что ограничивает применение таких нейросетей на практике — высокие вычислительные затраты. Такие нейросети будут реальностью, но лет так через 20-30.

Возможно, я что-то упустил, но описанное в статье — точь-в-точь генетические алгоритмы. «Мы создаём набор вариантов решений на задачу, смотрим, какие справляются лучше, играемся с их настройками».
Кое-какие свежие идеи в направлении, но ничего принципиально нового.
Создается сеть, которая у которой одинаковые веса и результат работы мало зависит от выбора какого-то значения для всех весов. В этом новизна
в мозге нет точного аналога алгоритма обратного распространения ошибки, например
Мы настолько изучили мозг, что можем уверенно так утверждать?
Возможно эту роль обучения в нейросетях мозга играют обратные связи, см. эту статью, как намек.
В таком виде, как используется в искусственных нейронных сетях, точно нет. Биологические нейроны вообще физически не способны пропускать сигнал в обратном направлении. А ведь именно с обратным распространением ошибки и градиентным спуском связаны многие проблемы, не позволяющие пока на базе нейронных сетей сделать сильный ИИ. Это и исчезающие/взрывающиеся градиенты (да, в статических сетях нашли решение через функцию активации ReLu, хоть она и приводит к деактивации до половины нейронов в сети из-за обнуления, но в реккурентных сетях это все ещё большая проблема), и катастрофическое забывание, и ужасная производительность в недифференцируемых задачах. Особенно важных в RL для имитации жизни или памяти. Использовать их можно и нужно, но видимо на каких-то низких уровнях, где градиентный спуск даёт быстрый результат. Но поверх него должен быть какой-то другой механизм. Который есть в биологическом мозге, но нет в современных нейронных сетях. Что это за механизм, понятное дело, пока никто не знает. Его функции в современных нейронках сейчас выполняют разного вида регуляризации (без которых уже немыслима даже любая простая сеть). Но те что есть, кажутся полумерами, так как не решают полностью задачу.

Но некий другой аналог обратного распространения ошибки в мозге, возможно, есть. Почитать об этом можно, например, тут: arxiv.org/abs/1808.06934
нейроны вообще физически не способны пропускать сигнал в обратном направлении
Такую фундаментальную вещь не знал, хотя интересовался мозгом всегда О_о
Это опыты доказывают?

Синапсы ведь однонаправленные… Кроме того, в них просто негде хранить производные, чтобы потом использовать в обратном распространении ошибки. Не говоря уж о разделении на слои. Хотя сигнал от глаз до мышц проходит примерно 10 слоев (время реакции одного нейрона примерно 10 мс, а общее время реакции человека на зрительный стимул 100 мс), из чего можно сделать вывод, что наш мозг минимально равен десятислойной нейронной сети. Но это не совсем слои, скорее сигнал от глаз до мышц проходит через примерно 10 отделов мозга разной степени эволюционной древности. Плюс всякие петли обратной связи. Так что напрямую со слоями в искусственных нейронных сетях это сравнивать нельзя, и классический послойный backpropagation тут неприменим.


Ну и вообще, там все на порядки сложнее. Например, мышечные двигательные нейроны не только тормозят соседние нейроны, отвечающие за мышцы-антогонисты, но и свою собственную частоту регулируют весьма оригинальным способом, см. клетки Реншоу. И вот таких вещей в мозге полно. Мало каким из них есть математические аналоги в искусственном обучении нейросетей. Но что характерно, каждый появлявшийся метод регуляризации, чем-то похожий на те механизмы, которые есть в биологическом мозге (dropout, разные виды нормализации, curiosity, actor-critic и т.д.) сразу давали резкий скачок в качестве работы нейросетей. Отсюда такой оптимизм, в том числе в этой работе, что повторение биологических принципов (не буквально, а только принципов) и дальше будет улучшать работу нейросетей. Мол, эти механизмы отточены эволюцией. Да и как ни крути, эти биологические механизмы дают результат — нашу разумность.

Синапсы ведь однонаправленные…

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

Гм… это похоже на редкое исключение, да? И это точно химические синапсы, а не электрические? Так-то по определению химические синапсы однонаправленные. С одной стороны выпускаются молекулы-нейромедиаторы (доставляемые в везикулах к синаптической щели), а с другой стороны расположены рецепторы, поглощающие эти молекулы. Но в принципе, ничто не мешает иметь рецепторы и с другой стороны и иметь двунаправленную связь. Но я так понимаю, это чрезвычайно редкие исключения, потому что прямой и обратный канал как минимум должны быть разделены на разные не пересекающиеся нейромедиаторы. Что в живых клетках сложно сделать, типов этих молекул ведь не так много. Как вы заметили, это видимо имеет смысл только для каких-то регуляторных целей.


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


Но электрические синапсы — это не те синапсы, на которых в основном работает мозг. Под синапсами обычно понимаются химические синапсы. Именно они, за счёт нейромедиаторов (но ценой временной задержки на 5 миллисекунд) позволяют всякие трюки, вроде аналога ReLu — распространять сигнал по мозгу цифровым способом, без уменьшения амплитуды сигнала (что на электрических синапсах было бы невозможно). Плюс всякого рода регулирование нейромедиаторами деятельности нервных клеток. Без чего обучение, память и прочее тоже были бы невозможны.

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

Хотя тут факт, что они вообще взялись за обучение архитектурвы мозга на уровне отдельных нейронов делает им честь. Растут, так сказать, над собой. :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории