Write program like it’s an octopus
Feb. 14th, 2015 12:17 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
В Тви попался скриншот на вопрос в Quora “Почему осьминоги такие умные?”. Там есть прекрасный ответ.
Сначала там в ответе всякие фактики про осьминогов (курсивом – от меня добавочки):
- осьминоги вообще странные – два сердца, голубая кровь на основе меди (не железа)
- зрение у них тоже странное – у них невывернутая сетчатка плюс хрусталик который ходит туда-сюда как линза в объективе, а не сжимается, как у позвоночных
- основное количество нейронов у них в щупальцах, при этом “главный” мозг (сам осьминог) точно не знает их положения и что щупальца делают, а само щупальце точно не знает какие присоски включены, а какие – нет
- нейроны образуют иерархию, причём верхние уровни иерархии отправляют нижним команды общего плана, а нижние уровни (щупальца) уже сами заботятся о деталях
- вероятно, осьминоги не в состоянии поэтому воссоздавать в мозгу точную картину на основе осязания – но при этом могут использовать инструменты
- осьминоги могут распознавать геометрические фигуры и вообще отлично дрессируются.
То-есть у осьминогов нервная система “размазана” по телу, но при этом образует довольно чёткую иерархию. Это значит, что не обладая “надкоркой” их нервная система в целом всё же образует некоторое подобие неокортекса.
Неокортекс (“надкорка”) у высших позвоночных – иерархия шести сильно связанных горизонтально структур нейронов (“слоёв”). У человека неокортекс – внешняя верхняя часть головного мозга, плоская структура толщиной в районе 2 мм. Именно неокортекс отвечает за сознание и интеллект.
Это, собственно, и есть извилины – которые появились как результат необходимости увеличить к-во нейронов, сохраняя 6 слоёв и объём. Увеличилась площадь неокортекса и он стал укладываться гофрами.
Так вот, осьминог своей иерархией нейронных сетей может делать примерно то, что мы делаем неокортексом – нейронные сети щупалец и глаз поставляют довольно примитивному главному мозгу уже существенно переработанные объёмы информации, а не просто нервные импульсы.
Что и позволяет сравнительно простому и совсем маленькому мозгу осьминога решать довольно сложные задачи. Просто потому что большая часть задачи решается нейронной сетью “на месте”. У человека так устроен только глаз, осьминог так устроен целиком.
Ну и @kangax из этого ответа делает отличный вывод: “Создавайте программу так, как будто это осьминог”. Это прекрасная идея, очень рафинированно выраженная на хорошем примере. Она мне особенно нравится, потому что мы так и делаем.
Гораздо проще строить распределённые системы как набор “умных” примерно в равной степени узлов, обменивающихся компактными хорошо обработанными данными, чем как суперсервер плюс куча тупых терминалов.
---
Кстати, у Питера Уоттса в Ложной слепоте сделан следующий эволюционный шаг и мозга нет вообще – он это описывает как “нейронный тайм-шер”. Там у него есть такие создания, в которых не загруженные на текущий момент двигательными функциями нейроны занимаются восприятием реальности вокруг и приспособлением.
---
Гитхаб всё знал – главное, чтоб было устроено как осьминог, но няшное, как котик.
no subject
Date: 2015-02-13 09:25 pm (UTC)пост уровня Medium.
no subject
Date: 2015-02-14 02:43 am (UTC)Спасибо )
no subject
Date: 2015-02-14 02:11 am (UTC)Родственное в тему - храните/передавайте поменьше конфигурации, делайте минимальные/компактные APIs, делайте *локальные* robustness механизмы (error detection, error recovery, retries), etc.
no subject
Date: 2015-02-14 02:41 am (UTC)У меня кста появилось любопытное соображение, как избежать появление машинного разума при конструировании искусственного интеллекта.
Думаю, в распределённой иерархии сравнительно независимых небольших специализированных нейронных сетей возникновение собственной единой воли (разума) невозможно, при том что такая сеть может быть сколь угодно «умной». («Умной» в том смысле, что может эффективно приспосабливаться.)
Я эту мысль обязательно додумаю.