Русский
Русский
English
Статистика
Реклама

Поведение

Что такое алгоритм???? Часть 101 Эволюция поведения

25.04.2021 20:19:15 | Автор: admin

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


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


Почему для понимания алгоритма необходим разговор о поведении???


Где в формализации алгоритма есть место эмоциям????


И все эти вопросы в ограниченной объемом статье. Задача не проста, и тем интереснее начать...


Title


Задача


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


Базовое утверждение, необходимое в дальнейших рассуждениях, звучит так:


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

Следующие утверждение частично содержатся в первом базовом утверждении и поясняют его детали:


  • Алгоритм поведения это повторимый способ воздействия биологической особью на состояние окружающей среды

  • Запуск алгоритма поведения определяется детектируемым особью сочетанием признаков, свидетельствующим о некотором состоянии среды

  • Воздействие производится особью исполнением упорядоченной совокупности действий из доступного особи множества действий.


И для заключительного утверждения потребуется немного переформулировать результат первой статьи серии "Что такое алгоритм...":


Действие, доступное биологической особи это элементарный алгоритм поведения.

Утверждения не очень сложны. Но зачем они? И какие преимущества можно получить, нарекая поведение Алгоритмом?


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


Можно попытаться кратко описать достоинства предлагаемого подхода. В первую очередь он даёт возможность анализа формирования и изменения поведения биологического организма и его уникального вида человека. Что уже не мало. Но есть вторая и, вероятно, более важная особенность такого взгляда на поведение. Этот взгляд позволяет обнаружить примеры синтеза алгоритма без участия программиста. Выявленные таким образом примеры синтеза демонстрируют и заново открывают нам один из основных универсальных способов создания сложного алгоритма.


Этот способ Эволюция.


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


Базовое поведение


Любой организм из соображений сохранения существования своего вида вынужден исполнять "базовые стратегии", собранные в следующем списке:


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

Первые две стратегии критичны для текущего существования особи и они безусловны и безальтернативны. Для стратегии "размножения" не так очевидна необходимость исполнения, и если бы организмы жили вечно, то эта стратегия была бы вовсе не обязательной. Но в нашем мире "ничто не вечно". И потому, как уже было разобрано в одной из предыдущих статей (и ранее Ч.Дарвином), вполне закономерно, что те организмы, которые не обеспечивали исполнения стратегии "Размножения" жили, возможно, очень счастливо, но в итоге погибли, и их вид вымер. А существовать остались другие виды те, которые эту "базовую стратегию" исправно продолжают соблюдать. Здесь можно отметить, что стратегия "Размножения" является устойчивой в эволюционной перспективе, то есть при длительной смене поколений организмов.


Но остановимся с биологией. Зачем это необходимо разбирать в контексте изучения алгоритма?


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


Эволюционный способ


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


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


Итак, базовый алгоритм стратегия "Поддержание своей жизнеспособности".
На этой основе у большинства подвижных организмов формируется "пищевое поисковое поведение", сейчас не будем заострять внимание на внутренние шаги этого формирования.
В "пищевом поисковом поведении" человек пробовал многие предметы внешней среды на съедобность. И те, кто пробовал ядовитое погибли и не оставили своего опыта, те же, кто попробовал новый съедобный продукт выжили и показали своим детям этот съедобный продукт. Тем самым нарастили "пищевое поисковое поведение" алгоритмом выбора нового съедобного продукта. Для рассматриваемого нами случая этим алгоритмом стало поведение: "Съесть зерна злакового растения".


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


торт


Соберем шаги эволюционного развития и формирования сложного алгоритма (рецепта) изготовления торта на основе базовой стратегии "Поддержание своей жизнеспособности" в следующей таблице. В каждой строке новый шаг, который инициализируется ситуацией обнаружения и присоединения нового маленького алгоритма.


Ситуация Добавляемый алгоритм Полученный сложный алгоритм
- Базовая стратегия "Поддержание своей жизнеспособности"
??? Мобильность организма "Пищевое поисковое поведение"
Голодный человек пожевал зерна Съедобность злаковых Поиск и употребление злаковых в пищу
Одно зерно случайно очистилось, например, при переносе, и обнаружено, что так есть удобнее Очистка злакового зерна Поиск и употребление в пищу очищенных зерен злаковых
При ручной чистке большого количества зерен стираются пальцы. Необходима и проста замена использования пальцев в шелушении зерна на использование нескольких камней Способ очистки злакового зерна камнями Поиск и употребление в пищу зерен злаковых, очищенных камнями
Случайно зерна перетерлись камнями, и получились не целые зерна, а измельченные Способ измельчения зерна камнями в муку Поиск и употребление в пищу зерен злаковых, измельченных камнями
При поедании муки ощущение сухости стимулирует добавление воды. Возможен второй вариант при случайном намокании перетертого зерна Способ изготовления теста Поиск и употребление в пищу зерен злаковых, измельченных камнями и затем намоченных
Игра и лепка намокшим тестом Способ изготовления лепешек Поиск и употребление в пищу зерен злаковых, измельченных камнями и затем намоченных и слепленных лепешкой
Случайное высыхание слепленной ранее лепешки, а сухая лепешка долго хранится Способ изготовления "сухих" лепешек Поиск и употребление в пищу зерен злаковых, измельченных камнями и затем намоченных и слепленных в лепешку, которая высушена
Ускорение медленного высыхания лепешки помещением в теплое место рядом с огнем Способ изготовления печеных лепешек Поиск и употребление в пищу зерен злаковых, измельченных камнями и затем намоченных и слепленных в лепешку, которая выпечена рядом с огнем
Добавление сладости, чтобы повысить вкусовые качества Способ изготовления сладких печеных лепешек Поиск и употребление в пищу зерен злаковых, измельченных камнями и затем намоченных сладкой водой и слепленных в лепешку, которая выпечена рядом с огнем
Добавление яиц, чтобы обеспечить клейкость и целостность лепешки при малом количестве муки Способ изготовления сладких печеных лепешек из жидкой муки Поиск и употребление в пищу зерен злаковых, измельченных камнями и затем намоченных сладкой водой с добавлением яиц и слепленных в лепешку, которая выпечена рядом с огнем
Взбивание яиц до пенного состояния, чтобы обеспечить воздушность лепешки Способ изготовления сладких воздушных печеных лепешек из жидкой муки Поиск и употребление в пищу зерен злаковых, измельченных камнями и затем намоченных сладкой водой с добавлением взбитых яиц и слепленных в лепешку, которая выпечена рядом с огнем

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


Исходное поведение человека, желающего есть, изменилось. Оно эволюционировало. То есть маленькими добавлениями становилось сложнее чем раньше. Эти маленькие порции ключевая особенность, позволяющая усложняться уже сложному алгоритму. Конечно, можно было дать первобытному человеку колосья, камни, сахар, воду, яйца и огонь, но при этом быстрое появление рецепта бисквитного теста было бы очень маловероятным. Даже имея множество попыток объединения этих ингредиентов, можно было провести за смешиванием много лет и не достичь конечного результата. А первобытному человеку, конечно, было чем заняться вместо этого не очень полезного занятия, например, пытаться выжить более реальным способом чем выпечка торта.


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


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

  • Эффективнее усложнять алгоритм добавлением к нему маленького дополнительного алгоритма.

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


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


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


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


Эмоции


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


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


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


мультфильм головоломка


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


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


Давайте выпишем список важных нам эмоций и ощущений с указанием их иерархии развития с началом в базовых стратегиях.


  1. Базовая стратегия "Поддержание своей целостности"


    1.1. Противостояние повреждениям:


    • Механорецепторы давления, растяжения (ощущения структурного повреждения)
    • Тепловые и холодовые терморецепторы (ощущение теплового ожога),
    • Хеморецепторы (ощущение химического ожога)
    • Боль (защитный алгоритм поведения, вынуждающий реагировать на предвестников повреждения, устраняя их)
    • Эмоция Страх (защитный алгоритм поведения, вынуждающий менять текущее поведение для избегания запуска предвестников повреждения) страх
    • Эмоция Злость (алгоритм поведения на основе выполнения атаки, обеспечивающей защиту от нападения организма-агрессора, стремящегося вызвать повреждения) злость
    • Коммуникация с сородичами, предупреждающая об опасности: торибоны феромоны страха и тревоги, звуковое сигнальное взаимодействие (алгоритмы коллективного поведения для избегания повреждения)

  2. Базовая стратегия "Поддержание своей жизнеспособности"


    2.1. Поддержание контакта с веществами, необходимыми в жизненных процессах


    • Наличие атмосферы пригодного газового состава: кислорода, углекислого газа (ощущение духота, алгоритмы дыхания)
    • Наличие в правильном соотношении воды и солей: жажда, осморецепторы (ощущения и алгоритмы поведения, возвращающие водно-солевой баланс в оптимальный диапазон)
    • Наличие еды: белки, углеводы, минералы (голод, вкусовые рецепторы, алгоритмы поиска и приготовления еды)
    • Эмоция Злость (алгоритм поведения на основе выполнения атаки для обезвреживания и поедания сопротивляющегося организма-жертвы) злость
    • Коммуникация с сородичами, информирующая о необходимых веществах: одмихнионы метки пути, указывающие дорогу к дому или к найденной добыче, знаковое взаимодействие (алгоритмы коллективного поведения для обеспечения сородичей необходимыми веществами)

    2.2. Поддержание параметров, необходимых для протекания жизненных процессов


    • Контроль температуры тела, например, для обеспечения работы ферментов (ощущения и алгоритмы поведения, возвращающие параметры температуры в оптимальный диапазон)
    • Контроль давления, например, для обеспечения кровоснабжения (ощущения и алгоритмы, обеспечивающие циркуляцию крови и контролирующие просвет кровеносных сосудов)
    • Эмоция Страх (защитный алгоритм поведения, вынуждающий корректировать и развивать поведение для избегания опасных параметров и локаций среды) страх
    • Эмоция "Радость" (стимулирующий алгоритм поведения, сопровождающий процессы развития поискового поведения для запоминания полезных параметров и локаций среды с возможностью возвращения к ним) радость
    • Коммуникация с сородичами для копирования и аккумуляции обнаруженных отдельно каждой особью алгоритмов поведения (выживания), приводящих к полезным параметрам и локациям среды и помогающих избегать опасных параметров и локаций среды

    2.3. Устранение контакта с веществами, мешающими жизненным процессам


    • Избегание внешних вредных и ненужных веществ: хеморецепторы и вкусовые рецепторы (алгоритмы избегания химических отравлений и поедания бесполезных веществ)
    • Избавление от накопленных ненужных веществ жизнедеятельности: (алгоритмы ощущения усталости (молочная кислота в мышцах), алгоритмы обеспечивающие позывы и исполнение выделений)
    • Эмоция "Брезгливость" (алгоритмы поведения, помогающие избегать контакта с вредными и ненужными веществами) брезгливость
    • Коммуникация с сородичами, информирующая о вредных и ненужных веществах

  3. Базовая стратегия "Исполнение процессов своего размножения"


    3.1. Половое размножение (один из способов эволюционного развития биологических генетических алгоритмов)


    • Выделение и обнаружение партнеров на основе феромонов (эпагонов половых аттрактантов)
    • Алгоритмы поискового поведения, обеспечивающие обнаружение партнера для взаимодействия и полового размножения
    • Эмоция "Влюбленность" (так умело обойденная в рассматриваемом детском мультфильме рейтинга 6+). Отчего бы здесь вместо персонажа-эмоции не появиться спутнику всех статей этой серии яблоку (на этот раз в образе "запретного плода"): влюбленность
    • Эмоция "Радость" (стимулирующий алгоритм поведения, сопровождающий процессы развития поискового поведения для запоминания полезных с точки зрения размножения состояний и локаций среды с возможностью возвращения к ним) радость
    • Коммуникация и взаимодействие с сородичами, обеспечивающие информацией для благоприятного выбора партнера

    3.2. Забота о потомстве (один из способов эволюционного развития алгоритмов поведения)


    • Алгоритмы заботы о потомстве (своих копиях), необходимые в случае возрастания сложности организма и при необходимости некоторого времени для развития появившейся копии в способное к самостоятельному выживанию взрослое состояние. При указанных условиях копия, полученная генетическими методами, нуждается во внешнем поддержании жизнеспособности
    • Эмоция "Грусть": слезы, плачущий крик, писк выпрашивания еды (стимулирующая сигнализация детской особью при взаимодействии со взрослой особью необходимости включить режим заботы для обеспечения чужой стратегии "Поддержание жизнеспособности" и "Поддержание целостности") грусть
    • Алгоритмы заботы о потомстве (своих копиях), необходимые в случае возрастания сложности организма и при наличии не наследуемых генетически алгоритмов его выживания. При этих условиях копия, сформированная генетическими методами, нуждается в развитии до взрослого состояния путем обучения, то есть копирования от взрослой особи используемых ею алгоритмов поведения (выживания)
    • Эмоция "Радость" (алгоритм взаимодействия взрослой особи с потомством, включающий режим обучения и замещающий агрессивную реакцию на свою усталость и нелепые, вредные действия детской особи) радость
    • Эмоция "Радость" (стимулирующая сигнализация детской особью при взаимодействии со взрослой особью необходимости включить режим обучения и выключить взрослую агрессию) радость
    • Коммуникация с сородичами, обеспечивающая алгоритмы совместной заботы и обучения молодых особей.


Да, опять сложный и длинный список. Его можно представить в виде не очень съедобного разрезанного на куски торта (досталось бы мне тут от Карлсона). Целый торт всё поведение человека, описываемое всем списком. Кусочки торта отделяемые по наследованию от базовых стратегий пункты этого списка. При анализе выделенных "кусочков торта" видно, что эмоции, предлагаемые психологией для описания поведения человека, не являются очень удачным разбиением поведения на части. Так, например, эмоции "Злость", "Радость", "Страх" оказываются на разных "кусочках", разграничиваемых опорными базовыми стратегиями. Иногда ситуация сложнее: "кусочек" один и эмоция одна, но она характеризует два различающихся алгоритма поведения. Так, например, различны алгоритмы радости родителя и алгоритмы радости ребенка. Это не так страшно для психологии, но очень неудобно для работы с алгоритмами поведения и отслеживания их эволюции. Поэтому в наших последующих размышлениях мы будем указывать не эмоцию, а полный путь к разбираемому алгоритму от опорной базовой стратегии.


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


Выводы


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


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


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


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


В завершение осталось пояснить игру с номером в названии текущей статьи. Это число не сто один, а $101_2$. То есть 5. И части номер 4 еще не было, ввиду проведенного в предыдущей статье голосования по выбору темы для статьи последующей. В голосовании выиграла тема "Алгоритмы и человеческие эмоции" с "сокрушительным" перевесом в 1 голос. Теперь долг перед проголосовавшим читателем исполнен, и уже ничто не удерживает от написания статьи 4. В ней будет рассмотрен путь эволюции от алгоритмов поведения к алгоритмам математики.


Спасибо Вам за внимание.


Отзывы


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


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


Ссылки


Подробнее..

Что такое алгоритм?? Part three and a quarter. Язык

10.06.2021 08:18:29 | Автор: admin

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


.

Title


Задача


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


Это Слово. Это Смысл. Это сложности перевода. Наконец, это разбор появления коммуникации.


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


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


А еще я очень рад обсуждению, состоявшемуся после предыдущей статьи. И тема психологии, которая была затронута в комментариях, еще не совсем раскрытая в самих статьях, была там очень уместна. А потому предложение, сформулированное ранее, по-прежнему в силе. В комментариях можно и размещать критику, и формулировать ответы на вопросы, задаваемые в статье, и вместе с тем очень полезно задавать новые вопросы. Что опять стало странным? Где было непонятно? Будут приветствоваться совершенно любые вопросы по теме статьи.


Потому что любое обсуждение этой темы полезно. И позволяет ускорить движение к цели.


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


И давайте обсуждать вместе. Ведь это "жжж" рядом с заголовком "Что такое алгоритм ?!" неспроста.


А зачем тебе жужжать, если ты не пчела? По-моему, так

А зачем на свете пчелы? Для того, чтобы делать мёд.

Жжж


И, конечно, "алгоритмический" мёд не очень интересен сказочному медвежонку, но, возможно, он станет полезен кому-то другому.


Слово


Пора уже начать. И в этот раз совсем нет причин изменять привычному для этой серии статей формату. Мы опять будем "терзать" общепринятые термины из Википедии. На нашем пути термин "Слово":


Слово одна из основных структурных единиц языка, которая служит для именования предметов, их качеств и характеристик, их взаимодействий, а также именования мнимых и отвлечённых понятий, создаваемых человеческим воображением.

Как ни странно, но представленное определение весьма "крепкое", хоть пока и не формальное. А для выполнения его формализации необходима лишь малость. Нужно:


  • формализовать алгоритм именования предметов, взаимодействий и их качеств (характеристик);
  • понять и определить, что есть "мнимое и отвлеченное понятие", и затем формализовать алгоритм создания этой абстракции в человеческом воображении.

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


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


мультфильм головоломка


Коммуникация


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


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


Ибо именно уникальность и коллективная идентифицируемость это первооснова любого "Слова"? Если бы сигнал "Опасность" и сигнал "Вкусная еда" были бы одинаковы, то алгоритмы избегания стадом хищника работали бы совсем неудовлетворительно, и в результате исчезло бы и стадо, а вместе со стадом и выполняемые им алгоритмы.


Что мы здесь нащупали? Правильно. Это же основа для эволюционного развития. Алгоритм выработки уникального сигнала это алгоритмическая база для эволюции и путь к алгоритму "идентификации предметов". Полный путь формирования этого алгоритма предлагаю вынести в комментарии, а один из примеров подробного разбора необходимых эволюционных шагов уже описан в старенькой статье "Как в языке сформировать существительное?". Думаю, что после уже выпущенных статей серии "Что такое алгоритм?!" эту старую статью будет читать чуть проще.


Итак, есть мостик от алгоритмов коллективного выживания к алгоритмам "именования предметов". Почему здесь использовано слово "алгоритмам" во множественном числе? Это связано с разной природой "именуемых" явлений. И совсем немного этому посвящена пара статей "Математика" и "Физика". Там намеренно отдельно в каждой статье рассмотрены особенности "переноса" в пространство модели для "стада коров" и для "падения яблока".


Ведь по сути своей процесс "именования предметов" полностью тождественен "математической" замене живой коровы на камешек. И от этого процесса именования очень сильно отличается процесс "именования взаимодействий", являющийся иначе названной трансляцией "физического алгоритма". Да, о разнице этих процессов-алгоритмов свидетельствует само существование двух отдельных наук Физика и Математика. А еще подтверждение этому факту раздельное существование в естественном языке Существительных и Глаголов. И, да, конечно, в естественном языке есть еще прилагательные, наречия и другие части речи. И, конечно, алгоритмы их создания, то есть "именования", различны. Но общая суть такого создания уже ясна. А рассмотрение деталей конкретных реализаций оставим для отдельных и более обстоятельных статей вне этой серии.


Именование трансляцией


Абстракция


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


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


И тут необходимо сказать, что на самом деле перенос и трансляция необходимы не только при появлении "чисто абстрактного" понятия. И в ранее рассмотренном алгоритме "именования" тоже скрыто используется эта пара. И она там тоже нужна потому, что формализуемый алгоритм создания "Слова" строится на особом процессе. Важность этого процесса отмечалась не единожды. И в виде принципа "Абстрагирования" в технологии ООП. И в психологии, например, почти век назад швейцарским психологом и философом Ж.Пиаже, который описал этот важный процесс, как "перенос" человеком действий, выполняющихся на объектах (среды), в психологические "операции", выполняющиеся уже на "символах" (термины в этом предложении взяты из работы Ж.Пиаже). Всё это подводит нас к необходимости закрепить за "Словом" еще одну функцию. Напомню, что первой функцией была уникальность и коллективная идентифицируемость. Вторая функция это абстрагирование. И это абстрагирование наследуется "Словом" от уже упомянутого ранее алгоритма выделения "признаков", который исполняется с использованием трансляции событий среды в структуры памяти организма.


Итак, на основе рассмотренного ранее мы с Вами уже можем еще неформально, но в формальных терминах (отмеченных курсивом) теоретической части этой работы, сформулировать своё определение "Слова":


Слово это объект в пространстве языковой алгоритмической системы, который:
  • формируется с использованием модельной трансляции (например, человеком) комплементарным сопоставлением с объектом или алгоритмом из прикладной области;
  • создается как продукт работы алгоритмов в языковом пространстве, необходимый для алгоритмов, исполняемых только внутри языкового пространства, и не переносимый в прикладную область.

Ведь очень похоже на определение из Вики? Неясными остаются только несколько терминов, которые ещё не были упомянуты в предыдущих статьях. Но все эти термины уже есть в теоретической части. И самый интересный из них "Алгоритмическая система". В определении "Слова" мимоходом констатируется, что "Язык" это один из видов "Алгоритмической системы". К сожалению, в текущей статье этот комплексный термин не уместить, а потому пока оставим его для статей последующих.


Копирование поведения


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


Смысл


Здесь можно немного поумничать и для поощрения дальнейшей непростой работы при чтении остатка текущей статьи легко ответить на вопрос "Что есть смысл жизни?" простой фразой: "Смысл любого слова кроется в алгоритмах, в которых это слово используется". Конечно, этот ответ, не подкрепленный объяснениями, совсем как красная ткань в корриде. И потому уместно использовать это и напасть на этот ответ в комментариях. Но объяснения к этой фразе уже есть. Они основаны на предлагаемом в этой серии статей значении для слова "Алгоритм", которое еще не настолько общепринято, чтобы его можно было использовать совсем без примеров.


Question of life


$\begin{gathered}42 \\ = \\ (-80538738812075974)^3 + \\ 80435758145817515^3 + \\ 12602123297335631^3\end{gathered}$



И если в текущий момент статьи сделать паузу и обратить внимание на предыдущее предложение, а еще сразу на все статьи серии. То можно отметить, что цель всего этого собрания слов в статьях только одна объяснить особый смысл слова "Алгоритм". А способ это осуществить используется такой же, как и для всех иных слов, с которыми сталкивается человек. Начиная с первого слова "мама" и заканчивая "большим адронным коллайдером" (да, конечно, тут 3 слова, но ведь смысл один?). И этот способ связывания слова со смыслом спрятан достаточно глубоко в устройстве человеческого мышления, а вернее в приемах используемых в процессе синтеза алгоритмов его поведения.


И сложность поиска этого смысла в математических трудах объясняется на самом деле очень просто. Эта сложность в том, что пути к смыслу "Слова" есть два. И Математика ранее шла только по одному из них и потому находила только часть "смысла", а второй дороги не замечала.


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


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


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


Главный смысл "Слова" содержится в полезных алгоритмах, которые используют это слово! Да, смысл совсем не внутри фонем, букв, слогов "слова" и не в способах именовать объекты окружающего пространства. Этот смысл "снаружи"! Он в использовании. Он в алгоритмах!!!


Тут будет уместно сбавить градус повествования и в качестве интересного факта подчеркнуть, что для слов, представляющих собой "мнимые и отвлеченные понятия" особенно из математики (например, для "мнимой единицы"), баланс между "классифицирующим" смыслом и смыслом "использования" нарушен изначально. Алгоритмы идентифицирующие "мнимую единицу" (классифицирующий смысл) намеренно делаются очень простыми и сводятся к распознаванию одной буквы $i$, которая почти ничего не значит, но только "существует" в математическом выражении. А вот "использующий смысл" очень насыщенный. Это и алгоритмы решения кубического уравнения, и комплексные числа, и далее согласно Википедии использование: в обработке сигналов, теории управления, электромагнетизме, теории колебаний, теории упругости, картографии и гидродинамике и даже в квантовой механике.


Для "гуманитарных" слов порой отсутствует "использующий смысл". И слово становится просто интересным алгоритмом, необходимым только для развлечения того кто его слышит. Вспомним для примера "Антиподов" упомянутых Алисой в предыдущей статье. До появления использования этого слова в статье "Физика" оно было просто развлечением и игрой Льюиса Кэрролла (или даже скорее переводчика его сказки на русский язык). Это было ироничное издевательство над алгоритмом "именования" с копированием того, как в своих играх этот алгоритм изучают дети. Но ситуация поменялась с появлением текущей статьи. В ней появилось новое использование слова "Антипод" в качестве лингвистического примера. И у этого "Слова" появился новый смысл! Ведь это совсем неожиданный для математика процесс?


Алиса и Аня


При обращении к примеру сказочной Алисы Льюиса Кэрролла был вскользь упомянут один сложный процесс, который целиком основан на смысле "Слова" и потому долгое время остаётся не до конца подвластен Математике. И этот процесс не может происходить только на основе "классифицирующего смысла". И он нуждается в "смысле использования". Вы уже догадались? Да, этот процесс работа переводчика, нацеленная на перенос смысла "Слова" из одного языка в язык другой.


Перевод


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


Думаю сейчас опять стоит обратиться к Википедии. И разобрать следующий существующий на её страницах термин слово "Перевод":


Перевод деятельность по интерпретации смысла текста на одном языке (исходном языке) и созданию нового эквивалентного ему текста на другом языке (переводящем языке).

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


О, опять целый рой вопросов. Как бы уложиться с ответами в последнем разделе приемлемого объема. Хорошо, что у нас уже есть опора для формирования ответов. И здесь нам очень поможет разбиение на "классифицирующий смысл" и "смысл использования".


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


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


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


Кузинатра


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


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


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


Выводы


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


Мы познакомились с термином "Слово" и нашли в нём два смысла, один из которых будет весьма полезным в доработке существующих систем перевода текстов на естественных языках.


Было обозначено два эволюционных пути от стратегий выживания организмов к алгоритмам работы со "Словами".


Намечен эволюционный переход от естественных языков к языкам программирования.


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


Да, тут необходимо отметить, что все обозначенные в этой статье формализации очень "неформальны". И в них намеренно только обозначены опорные и ключевые моменты. А потому, конечно, пропущено много деталей, и их необходимо заполнить. И только частично это заполнение будет проводиться в оставшемся небольшом количестве статей этой серии. И только самые важные пояснения появятся на Хабре в автономных статьях. А до полного их объяснения в разрабатываемой теоретической книге пройдет еще очень много времени потому, что эта работа совсем не является сейчас самой приоритетной. И потому "атаку на пробелы" и их заполнение целесообразно разместить здесь (на Хабре). Удобной платформой для этого будет площадка комментариев и к этой, и к предыдущим статьям. И это заполнение будет идти только по Вашим запросам. Ибо пробелы, которые очень хорошо видны Вам, мне не видны совершенно. Отчасти поэтому в статьях появляются "висящие" термины. И в написании каждой новой статьи самым сложным становится процесс вспоминания: какие факты уже были рассказаны, а какие еще остались такими "пробелами". Ведь полный путь от "рождения" алгоритма к способам работы нашего мозга всё же достаточно сложен. И держать его целиком в памяти, к сожалению, никогда не будет мне посильно.


Спасибо Вам за внимание.


Отзывы


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


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


Ссылки


Подробнее..

Перевод Стаи рыб следуют алгоритмам композиционного обучения

11.06.2021 16:11:37 | Автор: admin

Группа животных это больше, чем сумма всех членов группы. Поведение одинокого муравья трудно назвать осмысленным, но их колония способна построить прочную и хорошо вентилируемую муравьиную кучу. Одинокий журавль может легко заблудиться в небе, но стая журавлей безошибочно выбирает правильный путь миграции. Во многих сложных когнитивных процессах мы регулярно наблюдаем отличия в поведении группы от поведения её отдельных членов. Как это возможно? Даже автор статьи, кандидат наук, не может понять, как примитивные рыбы золотые нотемигонусы, абсолютно безнадёжные, безмозглые существа, собираясь в стаи, способны эффективно уклоняться от хищников. Автор прочитал десятки статей и учебников, проводил эксперименты, анализировал данные и консультировался с теоретиками, пытаясь понять, почему, когда речь идёт о рыбах, 1 плюс 1 получается не 2, а 3.

К старту курса о машинном и глубоком обучении мы перевели материал о том, как групповое поведение связано с композиционным (ансамблевым) обучением, где вы найдёте как кратко изложенную теорию со ссылками, так и вопросы, которые сегодня стоят перед наукой о коллективном поведении.


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

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

Машина

Сначала рассмотрим, как обстоят дела в области машинного обучения, ведь вам, вероятно, ближе алгоритмы, чем животные! Для формирования прогноза в методах композиционного обучения используется набор моделей, а не одна модель. Идея заключается в том, что ошибки в прогнозах отдельных моделей нивелируются, что приводит к более точным прогнозам в целом.

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

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

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

Теория

Повышенную точность модели случайного леса можно назвать коллективным интеллектом. Этот термин вошёл в обиход в 1906 году после того, как на ярмарке скота в Плимуте, штат Массачусетс, провели конкурс на угадывание веса быка. Угадать вес пытались почти 800 фермеров. Позже статистик сэр Фрэнсис Гальтон проанализировал все оценки и пришёл к выводу, что, несмотря на то что отдельные оценки сильно отличались друг от друга, среднее значение оценок было более точным, чем любая отдельно взятая оценка. Гальтон изложил свою теорию в знаменитом труде Vox Populi.

Для того чтобы коллективный интеллект работал, необходимо соблюдение двух основных требований. Первое требование люди должны получать разную информацию. Если у всех будет одинаковая входная информация, решение группы не будет более точным, чем решение отдельного человека. Решение группы может быть даже менее точным, чем решения отдельных людей, так как некоторые члены группы под воздействием эффекта эхо-камеры могут выдавать неверные прогнозы[1].

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

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

Рыбы

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

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

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

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

К сожалению, точных ответов на эти вопросы пока нет. Исследователи коллективного поведения пытаются понять, как простые локальные взаимодействия приводят к сложным формам поведения на уровне группы. Существует два класса алгоритмов машинного обучения, которые, как мне кажется, могут объяснить, почему стаи рыб совершают "осмысленные" действия.

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

Второй класс алгоритмов базируется на предположении о том, что стаи рыб действуют как крупная нейронная сеть. (От биологических нейронов до искусственных нейронных сетей и стай рыб... мы прошли полный круг!) Уходя от хищников, многие виды рыб проявляют стартл-рефлекс сверхбыстрый рефлекторный рывок в сторону от тревожного раздражителя[2].

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

Каскад стартл-рефлексов. Из научной работы Розенталя и других учёных 2015 года: https://www.pnas.org/content/pnas/early/2015/03/24/1420068112.full.pdf?with-ds=yesКаскад стартл-рефлексов. Из научной работы Розенталя и других учёных 2015 года: https://www.pnas.org/content/pnas/early/2015/03/24/1420068112.full.pdf?with-ds=yes

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

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

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

Решения принимает нейронная сеть из нейронных сетейРешения принимает нейронная сеть из нейронных сетей

Заключение

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

Хотите узнать больше? Советуем почитать, как бабуины принимают демократические решения о передвижении, как у диких птиц из поколения в поколение сохраняется инновационное поведение [значение понятия можно прочитать здесь, этой ссылки в оригинальной статье нет], как слизистые грибы помогли заново создать карту токийского метро, оптимизировав распределение ресурсов. Чтобы узнать о последних исследованиях в области коллективного поведения, также рекомендуем ознакомиться с интернет-ресурсом Отдела коллективного поведения Института поведения животных им. Макса Планка.

Сноски

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

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

Эта статья прекрасное напоминание о том, что многие решения в науке и технике позаимствованы у природы, либо просто существуют в ней уже очень давно. Если вы хотите экспериментировать с моделями машинного и глубокого обучения, повторяя и совершенствуя находки природы, находить новое в комбинациях разнообразных подходов к искусственному интеллекту, то вы можете обратить внимание на наш курс "Machine Learning и Deep Learning", партнёром которого является компания NVIDIA лидер в области вычислений для ИИ.

Узнайте, как прокачаться и в других специальностях или освоить их с нуля:

Другие профессии и курсы
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru