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

Смысл

Мозг, смысл и конец света

09.04.2021 16:11:40 | Автор: admin

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

Есть два интересных и важных термина искусственный интеллект (ИИ) и сильный искусственный интеллект (СИИ). В английской традиции Artificial intelligence (AI) и Artificial general intelligence (AGI). Первый подразумевает любую деятельность компьютера, имитирующую человеческий интеллект, второй только такую, которая претендует на что-то универсально общее, похожее на то, как мыслит человек.

Точного определения СИИ нет. Лучшее, что есть это знаменитый Тест Тьюринга.

Человек взаимодействует с одним компьютером и одним человеком. На основании ответов на вопросы он должен определить, с кем он разговаривает: с человеком или компьютерной программой. Задача компьютерной программы ввести человека в заблуждение, заставив сделать неверный выбор.

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

Отметим очень тонкий и при этом очень важный момент. Простой ИИ может во много раз превзойти человека в какой-то области. Например, сильнее играть в шахматы, обыгрывать в Го или Starcraft. Но от этого он не становится сильным.

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

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

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

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

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

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

Поясню на примере. Прочитав шутку, вы смеетесь. Объявление: меняю бензопилу на протез. Но если вас спросить, что в шутке смешного, вы озадачитесь и скорее всего дадите объяснение, которое будет неверным. Если бы ваше объяснение было верным, то вы, зная секрет юмора, могли бы легко придумывать смешные шутки и стать знаменитым юмористом. Ваш мозг всегда знает, смешно или не смешно, но вы практически никогда не можете объяснить, почему. Более того, ваш мозг тонко чувствует разницу между просто смешным и юмором, а вы?

Так вот, мы будем говорить о смысле в том понимании, какое стоит за этим словом, когда мы используем его в речи, не пытаясь дать ему четкого определения. Дело в том, что наивное определение, которое дается, пока явление еще не понято, будет обязательно построено на неких видимых признаках и в итоге опишет нам совсем другое. Платона попросили дать определение человека. Он сказал: двуногое без перьев. Диоген принес ощипанного петуха и сказал: вот человек.

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

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

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

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

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

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

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

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

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

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

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

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

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

Конечно, если подходить серьезнее, то имея учителя, который скажет, какое явление к какому понятию относится, мы сможем не только рассчитать центр класса и назвать его прототипом, но и вычислить характер распределения. Это может сильно помочь на практике. Средний вес килограммовой гири один килограмм. Средний вес курицы 3 килограмма. Нечто весом кило сто, исходя из распределений, скорее будет курицей, чем гирей. Хотите знать подробнее, смотрите методы классификации и кластеризации, расстояние Махаланобиса.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • имя понятия. Слово языка или внутреннее кодирование имени понятия.

  • правила трактовки. Правила преобразования, индивидуальные для каждого контекста.

  • память. Накопленный ранее опыт, один и тот же для всех контекстов.

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

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

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

Шифровальная машина Энигма

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

В 1938 году немцы усложнили конструкцию Энигмы, в результате чего расшифровка ее сообщений стала в десять раз сложнее. За пять недель до вторжения Германии в Польшу в 1939 году Реевский и его коллеги передали свои результаты французской и британской разведке. Это позволило англичанам построить в Блетчли-парк батарею из бомб, которая успешно взламывала немецкие коды на протяжении всей войны.

Определенную роль в этом сыграл тот самый Алан Тьюринг, что придумал приведенный в начале тест.

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

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

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

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

Замечу, что разбираясь с контекстным подходом, удобно представлять себе Энигму и ее коды. Если понять правильные сопоставления, многое становится простым и понятным.

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

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

Все, что было сказано, было странно, но не безумно. А где же обещанное безумие? Начнем.

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

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

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

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

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

Алексей Редозубов

Подробнее..

Что такое алгоритм?? 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$, которая почти ничего не значит, но только "существует" в математическом выражении. А вот "использующий смысл" очень насыщенный. Это и алгоритмы решения кубического уравнения, и комплексные числа, и далее согласно Википедии использование: в обработке сигналов, теории управления, электромагнетизме, теории колебаний, теории упругости, картографии и гидродинамике и даже в квантовой механике.


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


Алиса и Аня


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


Перевод


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


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


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

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


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


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


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


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


Кузинатра


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


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


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


Выводы


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


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


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


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


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


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


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


Отзывы


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


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


Ссылки


Подробнее..

Смысл текста или представление знаний в системе, основанной на действиях

28.04.2021 10:12:44 | Автор: admin

1. Введение

Еще в работах академиков Анохина П.К. и Судакова К.В [1] отмечалась центральная роль понятия действия в работе мозга человека. Они предложили понятие акцептора результатов действия, как структуры объединяющей информацию о поведенческих актах, выполняемых субъектом. В предыдущей статье [2] я предположил и постарался показать как структуры, представляющие действие, делают возможным представление и обработку знаний в целом, а не только для реализации поведенческих активностей. В статье [3] попытался показать, как в процессе эволюции сознание могло возникнуть в качестве следующего механизма усложнения поведения вслед за рефлексами и эмоциями. Важность описания и представления действия отмечалась и другими авторами, в том числе и здесь на Хабре, например, Александром Болдачевым ( @boldachev) в статье "Семантика и деятельность".

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

Для начала уточним терминологию.

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

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

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

Все понятия в системе представляются в виде Структур действия. Поэтому использование по тексту терминов понятие, действие и структура действия взаимозаменяемо и подразумевает указанную выше структуру, если отдельно не указано иное.

2. Базовые действия системы

Для определенности, будем рассматривать далее некую абстрактную информационную систему, предназначенную для обработки символьной (текстовой) информации.

Для начала определим два Действия чтения символов(read) и вывода символов на печать(print). Также необходимы понятия для представления символов (цифры, буквы, знаки пунктуации и пр.). Будем обозначать Действия подобно математическим функциям именем и заключенными в скобки параметрами, или аргументами f(x1(), x2()). Аргументы и результат тоже Действия. Для упрощения чтения, когда параметры действия не важны, будем писать просто A, например, вместо A(x1(), x2()).

Создание Структур действия будет выполняться служебным действием new(activity, param_num), где activity Активность, составляющая действие, а param_num число параметров, необходимых для Активности, например:

WHAT_IS = new (Activity_mapping, 1)

Если параметры не заданы, то подразумевается пустая активность и действие при выполнении не выдает никакого результата. На Рис.1 схематично показана Структура действия и базовые Действия.

Рис. 1 Структура действия и базовые действияРис. 1 Структура действия и базовые действия

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

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

2.1. Последовательности символов

Указанные ранее понятия позволяют системе работать с одиночными символами. Работа с последовательностями символов может быть организована в системе, например, следующим образом. Представим, что в системе имеются действия сохранения (store) в памяти и чтения из памяти (load) с параметрами: 1) индексом элемента в последовательности и 2) ссылкой на понятие.

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

ABC = new()
store(ABC,0,A)
store(ABC,1,B)
store(ABC,2,C)

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

2.2. Активность сопоставления

Определим, например, два понятия: буква LETTER, и цифра DIGIT.

Тогда мы можем сконструировать Действие WHAT_IS с одним параметром, активность которого будет заключаться в возвращении LETTER, если в качестве параметра указаны понятия А..Я, и DIGIT, если в качестве параметра указаны понятия 0..9.

WHAT_IS = new(Activity_mapping,1)
WHAT_IS(A) => LETTER, WHAT_IS(1) => DIGIT

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

Рис. 2 Активность сопоставления и действие на ее основеРис. 2 Активность сопоставления и действие на ее основе

Активность Activity_mapping будет осуществлять сопоставление входного параметра с имеющейся внутренней таблицей и возвращать соответствующий входным данным результат. Данные в эту таблицу будем заносить специальным действием Learn(arg, action, result). Таким образом мы cможем сообщить системе, что при запуске Действия action с аргументом arg в результате надо выдавать ссылку на result.

2.3. Активность сравнения - свойства и их описание

Так как, во многих случаях, действие возвращает ссылку на результирующее понятие, можно представить Активность (Activity_compare), которая будет сравнивать реальный результат указанного действия с каким-либо понятием, сравнивая их на совпадение. Положительный результат сравнения будем обозначать понятием Да(YES), а отрицательный понятием Нет(NO).

YES = new(), NO = new()

На базе этой Активности (Activity_compare) можно реализовать любое свойство. Для этого введем в системе понятие свойства (PROPERTY). Для реализации сравнения нам необходимо иметь информацию о действии, его аргументах и ожидаемом результате. Реализуем это с использованием действий PROP_ACT, PROP_ARG и PROP_RESULT соответственно. Их аргументом будет понятие свойства.

PROPERTY = new()
PROP_ARG = new(Activity_mapping,1)
PROP_ACT = new(Activity_mapping,1)
PROP_RESULT = new(Activity_mapping,1)

Вот как, например, будет выражено утверждение о том, что понятие something есть буква:

some_prop = new(Activity_compare,1)
Learn(some_prop, WHAT_IS, PROPERTY)
Learn(some_prop, PROP_ARG, something)
Learn(some_prop, PROP_ACT, WHAT_IS)
Learn(some_prop, PROP_RES, LETTER)

Схематично это представлено на Рис. 3.

Рис. 3 Свойство и его возможное влияние на действиеРис. 3 Свойство и его возможное влияние на действие

То есть свойство some_prop сообщает, что при запуске действия WHAT_IS с аргументом something результат будет LETTER. Предположим, что мы считаем достоверным свойство some_prop. Тогда мы вносим изменение в таблицу активности понятия WHAT_IS чтобы при запуске WHAT_IS с аргументом something в качестве результата возвращалось LETTER. Несложно реализовать и более изощренное поведение, чтобы Активность, стоящая за Действием (в данном случае, Activity_Mapping) анализировала утверждения о релевантных свойствах (в которых присутствует заданное действие) на предмет дополнительных параметров, например, достоверности или вероятности и выдавала результат учитывая только достоверные или вероятные утверждения.

Свойства и их влияние на результаты других Действий позволяет определить понятие смысла. Смысл какого-либо описания (в нашем случае, some_prop) содержится во влиянии на результат того или другого Действия (в нашем случае WHAT_IS).

2.4. Объекты как наборы свойств, действия как вид объектов

То, что мы в обычной речи называем объектами, понятиями, является по сути описанием некоторого набора свойств, часто встречающихся совместно и поэтому для удобства определяемых через одно понятие. Для представления в системе объектов введем понятие OBJECT. Объекты могут обладать как общими свойствами (например, название), так и специфическими для определенных видов объектов. Для доступа к общим свойствам объекта предусмотрим действие OBJ_PROPS, которое будет выводить в качестве результата список свойств, то есть объектов подобных some_prop из предыдущего раздела.

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

Кто делает субъект действия (ACT_ACTOR)
Что делает само действие (ACT_ACTION)
С чем, что делает объекты действия (ACT_OBJECT)
Модальность состояние действия (нужно сделать, делается, сделано и т.д.) (ACT_MOD)
и другие возможные свойства (когда, зачем, как, почему, достоверность, вероятность и т.д.)

Иными словами, объект-действие это некоторое высказывание о действии (подобно тому как свойство можно рассматривать как высказывание о результате какого-то действия).

Таким образом, понятие, стоящее за фразой Светит солнце, может быть представлено в системе через объект-действие some_action (предполагаем, что понятия SUN, SHINE, INPROCESS определены ранее):

some_action = new()
Learn(some_action, WHAT_IS, OBJECT_ACTION)
Learn(some_action, ACTOR, SUN)
Learn(some_action, ACTION, SHINE)
Learn(some_action, ACT_MOD, INPROCESS)

3. Смысл текста и знания

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

Смысл проявляется во влиянии на результаты действий. Модификация знаний об объектах и их свойствах приводит к изменению результатов при выполнении действий.

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

4. Запросы к знаниям

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

Вот, например, пример структуры для вопроса Кто светит?:

some_question = new()
Learn(some_question, WHAT_IS, OBJECT_ACTION)
Learn(some_question, ACTOR, Q_ARG)
Learn(some_question, ACTION, SHINE)
Learn(some_question, ACT_MOD, INPROCESS)

Поиск ответа выполняется действием, например, так:

FIND_ANSWER = new(Activity_search_answer,1) FIND_ANSWER(some_question) => SUN

5. Заключение

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

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

Литература

[1] Александров Ю.И., Брушлинский А.В., Судаков К.В., Умрюхин Е.А. Системные аспекты психической деятельности / М.: Эдиториал УРСС, 1999. 137 с. 17 п.л. ISBN: 5-8360-0021-2

[2] Гурьев А.П., Динамическая семантическая сеть, основанная на действиях. 2019.
http://www.real-ai.ru/action-based-dynamic-semantic-network/

[3] Гурьев А.П., От эффектора к действию. Эволюция нейронных структур. 2020.
http://www.real-ai.ru/evolution-from-effector-to-action/

Подробнее..

Категории

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

  • Имя: Макс
    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