Автор |
Бот на ГО(Просмотров: 40371) |
Род: nan - админ Сообщений: 12276 |
В продолжение темы в дневнике: Не замутить ли ИИ?.. В данный момент я организовал локальный сайт для эволюции нейросети в довольно большом объеме элементов (порядка нескольких миллионов узлов). Сайт уже нормально взаимодействует с сервером, писанным на ГО в виде exeфайла в корне сайта бота. Именно на этом сервере и будет развиваться нейросеть, а сайт нужно только для инициализации, ведения критических периодов развития и потом для словесных контактов. Активность сети будет видна в виде картинки, каждый пиксел которой отображает активность соответствующего узла. Для удобства ширина картинки будет примерно равна ширине большого монитора. Будет первый слой – словесный сенсор, за ним слой формирования примитивов словосочетаний по разным темам (контекстам значимости), ширина картинки 1500 точек, высота ~800. Потому как число русских слов в разных падежах и склонениях – около 350 тысяч (у меня уже есть такая чужая база, но буду еще делать свою). В принципе совершенно неважно, в каком порядке будут узлы, активирующие от того или иного слова, но чтобы хоть что-то осмыслить по активности на картинке, нужно бы сделать словесный сенсор так, чтобы схожие слова группировали, например, вокруг начальной буквы. Нужно будет организовать некое “послесвечение” так, чтобы введенная фраза, текст давала рисунок активности. Тут многое нужно будет продумать и преодолеть. Вот для обсуждения и предложений и выносится то, как лучше группировать слова в картинке словесного сенсора. Потому как потом переделывать будет непросто. |
Род: Palarm - админ Сообщений: 2771 |
Если пиксели сделать цветными, то можно получить достаточно большую вариабельность оттенков смысловой значимости. А контекст будет означать доминируюший диапазон спектра. Например ближе к красному - негатив, ближе к голубому позитив и т. д. И не нужно тогда выводить на экран весь словарный запас, а только базовые слова, задавая склонения через смещение спектра. Это позволит боту сначала научиться понимать простейшие выражения, а потом уже смысловые нюансы. |
Род: Palarm - админ Сообщений: 2771 |
Вот еще несколько аргументов, почему нужно дополнительные параметры для слов-пикселей:
Если использовать просто точку с двумя состояниями ВКЛ/ВЫКЛ, то максимум что определит бот - частотность встречаемых слов в тексте. Цветовой палитрой же можно закодировать интонацию, мимику и жесты. Это по сути и есть контексты, которые легко может выделить бот в начальной стадии обучения.
Составные части слова тоже можно закодировать цветом, или использовать разбивку экрана на сектора. Но тогда точка будет означать уже букву, а не слово. Из букв формируются первичные примитивы - слоги. Из них уже корни слов, суффиксы, приставки, окончания. Все это распределяется по матрице например так: корни как максимально смысловая база слова по центру, причем чаше встречаемые корни ближе к центру, остальные составные слова по периферии. Это уже напоминает распределение рецепторов в сетчатке со всеми вытекающими интересными аналогиями обработки сигнала. Например, это уже не просто линейный поток слов, а сначала определение "общего цвета" - эмоционального контекста, потом уточняющие оттенки спектра - интонацию (дополнительный контекст). "Циркадными движениями" выхватываются знаки препинания, составные части предложения (подлежащее, сказуемое). "Фокусировка" в фовеоле на корнях слов позволит получить смысловые контуры, а активность на периферии приставок и окончаний уточнит нюансы. |
Род: nan - админ Сообщений: 12276 |
>>Если пиксели сделать цветными пикселы будут цветными. >>получить достаточно большую вариабельность оттенков смысловой значимости. Цвет будет означать только активный – зеленый или заторможенный – красный. Самые общие контексты значимости будут индицироваться отдельно, т.к. они неспецифичны. >>не нужно тогда выводить на экран весь словарный запас, а только базовые слова, задавая склонения через смещение спектра. Думал, но получается не упрощение, а усложнение. Встраивание грамматики, но заучивание правил не дают то, что может быть уже готовая определенность окончаний и приставок. Скорее всего, кроме слоя словесного сенсора будет уже готовый слой наиболее часто встречающихся словосочетаний вплоть до готовых предложений – чтобы это сразу распознавалось и этому уже можно придать контекстную значимость. Все остальное будет формироваться обучением на результатах реагирования. Тут возникает еще оптимизация на случай введения ошибок в словах. С одной стороны при вводе будет коррекция спелленгом, с другой спец канал предварительного распознавания, в котором будет смотреться первая и последняя буква и наличие остальных букв в любом порядке. >>при общении большое значение имеет интонация - одно и то же слово сказанное с разным выражением может резко менять свой смысл Звукового и зрительного канала не будет, общение – только введенными словами. Как это бывает при письменном общении, вся “интонация” возникает только контекстом и особенностью фраз. |
Род: Palarm - админ Сообщений: 2771 |
Меняя цвет всех пикселов ты и получишь визуальное представление о текущем контексте, который может быть очень сложно замешанным. А активность/пассивность их показывать простой визуализацией пикселя на экране: есть - активный, нет (пустое место, например черный или белый фон) - пассивный. С черным фоном будет лучше, на нем много цветов хорошо видно. Не зря же программеры обычно ставят черный фон для выделения форматирования кода. Ну или сделать пикселы черно-белыми (белые точки на черном фоне или наоборот), а сбоку или снизу разместить спектральную полоску, показывающую текущий контекст. Цвет мне думается не плохая идея для кодирования общего контекста. Ты же не знаешь сколько их будет, а RGB кодом ты можешь задать их хоть миллион. Контексты можно перемешивать, контрастировать, выделяя доминирующий. Можно задавать общий для всего, а под ним локальные для областей. Смещая спектр общего получишь автоматом смещение локальных. Вообщем много полезного можно выжать из модели оптических эффектов, что может потом пригодиться.
Группировать пикселы на матрице можно по общему корню, потому, что он задает общий смысл. А можно просто по общему сочетанию букв в слове. То есть задаешь например 3 буквы - и делаешь группировки по словам, где они встречаются. Потом 4, 5 и т. д. до какого то предела. Визуально это будет выглядеть как концентрические окружности или прямоугольники, смотря какой экран.В центральной фигуре меньше всего пикселей - там самые длинные примитивы, на крайнем кольце - самые короткие, каких больше всего повторений. В итоге получатся кольца разной толщины, радужные, если раскрасить пикселы, или черно белые, или двухромные.
Если я правильно понимаю твою стратегию, ты хочешь создать максимально большое количество разношерстных примитивов, чтобы используя их сочетания получить достаточно большую вариабельность активности рецепторов. |
Род: linuxoid Sr. Poster Сообщений: 127 |
Поддерживаю идею Palarm'a о группировке слов по общему корню. Это будет лучшим вариантом, если система значимости бота должна коррелировать с человеческой касательно восприятия слов и текстов. Мне кажется верным создание в качестве первичных рецепторов распознаватели всевозможных частей слов: в первую очередь, корней. Это должно значительно упростить схему, поскольку префиксов, суффиксов и окончаний сравнительно мало. Из сочетаний первичных рецепторов сможем получить слова, а далее -- предложения. Разумеется, при создании системы значимости нужно учитывать, что та или иная значимость прежде всего связывается с корнем слова, несколько меньше -- с префиксами и суффиксами, с окончанием можно связывать в редких случаях или не связывать вообще. Правда, здесь уже возникает сложность при распознавании слов: так-то нужно последовательно возбудить распознаватели "префикс-корень-суффикс-окончание", но как обрабатывать ситуации отсутствия или неверного распознавания части слова -- неясно совсем.
Ещё прикидывал реализацию чисто по буквам в качестве первичных рецепторов и потенциальные связи -- все со всеми, но там будет кошмар ещё хуже, чем у создателей искусственных нейросетей: при максимальной длине слова в 10 букв получится полтора квадриллиона возможных связей. Большинство связей просто не будут использованы, такие как много гласных или согласных подряд, а также несуществующие слова, поэтому можно измыслить какой-нибудь вариант оптимизации. Здесь главная проблема распознавания порядка букв в слове также перечеркнёт задумку.
Несостоятельность своих предложений вижу только после формализации. Допускаю, что они натолкнут кого-то на более оптимальные идеи реализации. |
Род: nan - админ Сообщений: 12276 |
Спасибо за советы, мужики! ради этого и создана тема, они в самом деле наталкивают на мысли. Из уже прозвучавшего мне ясно, что в первичный набор нужно включать 1) буквы 2) приставки-корни-окончания(с суффиксами) и в следующем, так же искусственном слое – наиболее часто встречающиеся фразы из первичного набора. Вместо первоначальных 350 тысяч точек получается всего около 10 тысяч, а следующий слой тоже не стоит сильно раздувать, он нужен только для “скорочтения” и связи со значимостью (потому как просто отдельные слова и их части не могут иметь своей постоянной значимости). Вот отсюда уже и стартуют рефлексы возможных ответов уже в контексте значимости, распознаваемой по теме разговора, и могущем меняться по ходу. Т.е. матрицу уже готовых типовых программ действий (ответов) так же нужно будет сделать искусственно, как уже есть заготовленные мышцы для определенного назначения. Все остальное будет нарастать посредине, улучшая адаптивность восприятия и ответов. Система должна развиваться как со стороны восприятия, так и со стороны действия. Но разумная адаптивность может возникнуть только после отработки выделения актуально значимо-нового с каналом его осмысления, который и будет развивать автоматизмы понимания на входе и ответов. |
Род: Palarm - админ Сообщений: 2771 |
Возможно мы забегаем вперёд, вопрос пока стоит о графическом интерфейсе, чтобы визуально отслеживать процесс распознавания и придания значимости. Есть экран, на нем пиксели, каждый пиксель примитив. При работе все это будет моргать, мельтешить и ничего не будет понятно. Надо как то кучковать пиксели. Первое, что приходит в голову - по какому то общему признаку. Допустим корню слова или просто сочетанию букв. Второе - раз их сгруппировали, получились сектора матрицы. Их можно представить в виде концентрических окружностей разной толщины или любых других фигур. Можно в виде ленты-штрихкода с вертикальным полосками. Это не принципиально, вопрос лишь как наглядный, в смысле, интуитивно понятней. Поэтому у меня сразу же при слове значимость возникла ассоциация с цветом. В самом деле, всякий скажет, что красный это агрессия, а голубой покой. А переливающиеся цветами круги/многогранники/полоски покажут в динамике, как формируется глобальная смысловая значимость. Приловчившись можно будет даже в какой то мере читать с экрана о чем думает бот, как в матрице с каскадом падающих цифр. |
Род: nan - админ Сообщений: 12276 |
Нужно как можно яснее все предвить в целом и в деталях.
По индикации невозможно будет что-то всерьез отследить и отлажить. Это - просто чтобы в целом видеть картину. Так что я сильно индикацией не заморачиваюсь, хотя хочется извлечь из нее какую-то пользу. Так что предлагаю разобрать самый общий - наследственно заданный уровень. Первый сенсорный слой сгенерировать без особых проблем, выделитель корней есть. Второй сенсорный слой наиболее частых словосочетаний – тоже делается автоматом и в матрицу входят словосочетания с частотой повторения выше заданной (можно скармливать любые тексты). Но, возможно, уже из этого слоя должны пойти первые безусловные рефлексы – типовые ответа на данное словосочетание в контексте одной из типовых тем. И вот тут вручную готовить такие эффекторы будет очень проблематично, а как автоматизировать процесс, пока смутно представляю: как автоматически забивать ответы на типовые словосочетания? Можно скармливать диалоги, но непонятно, как разделять ответы, хотя каждая следующая фраза и есть ответ на предыдущую и из таких наборов тоже можно выделить наиболее повторяющиеся. Другой вопрос – как задавать тон в беседе с ботом и реагировать на ответы. Должны быть кнопки: Понравился ответ, Не понравился ответ. Сделать больно боту, сделать хорошо боту. Ну и кнопки, задающую наиболее общую тематику. |
Род: Palarm - админ Сообщений: 2771 |
Может подойти к делу универсально? Пусть бот учится распознавать закономерности в любых массива данных, не только текст. Для этого надо ему позволить самому формировать таблицы примитивов кроме начальных. Это может быть и музыка, картинки, какая то статистика. Принцип везде одинаков. Касаемо текста это будет так: Первый слой это таблица алфавита, где сформированы примитивы буквы. Второй слой автоматически сформирует через логику И слова и их части, как повторяемые сочетания-закономерности букв. Третий из слов выделит повторяемые выражения. И каждый слой управляется своей все более иерархически высокой значимостью. |
Род: Palarm - админ Сообщений: 2771 |
Безусловные рефлексы связаны с гомеостазом. Стало быть надо синхронно с его колебаниями подсовывать ему слова и сочетания, чтобы он связал их со своим текущим состоянием. Если величину статуса сделать градуированной, то есть шкалу балов состояния плохо/хорошо, то и к словам будет цепляться соответствующий уровень значимости. Слова понятно дело придется вручную сортировать, но все же это более грубая сортировка по принципу злые, резкие, мягкие, ласковые и т. д. слова и выражения. Думаю не стоит пытаться на этом уровне создавать осмысленные фразы, как это делают с Алисой, иначе так и будет насекомое. Тут задача проще - связать слово/фразу с примерным эмоциональным контекстном. А может даже лучше не слово, а корень слова. |
Род: linuxoid Sr. Poster Сообщений: 127 |
А почему бы не сделать аналогично со слоями рецепторов: пусть будет база эффекторов из в точности тех же частей слова и букв. Это будут конечные эффекторы. В конце третичных зон и начале моторных расположить начальные звенья всевозможных программ ответа. Между моторными зонами и конечными эффекторами будут регистры сдвига, определяющие порядок слов в предложении, с многочисленными ветвлениями в зависимости от преобладающего контекста значимости и активностей проприорецепторов. Правда, в этом случае получится, что мы предложение будем как бы дробить на куски и отвечать, смотря по первому слову, а дальше додумывать ответ в зависимости от последующих слов... Не уверен в этом предположении.
В общем, нужна база безусловных рефлексов, где связи будут идти от вторичных сенсорных зон к начальным звеньям простейших регистров сдвига: и там, и там можно учитывать не более 1-4 слов, чтобы сильно не зашивать наследственные реакции. С одной стороны, если мы хотим, чтобы это были именно наследуемые реакции, то надо либо прошить их вручную, либо написать сценарий обучения, как это происходит с плодом в утробе матери -- ребёнок рождается с готовыми безусловными рефлексами. С другой стороны, это может оказаться не совсем корректным, но можно уже здесь создать некий суррогат зеркальных нейронов. Вот тут и пригодятся диалоги: сделать распознавание, какая фраза является ответом на другую. Это можно реализовать, используя какие-нибудь спецсимволы между брошенной фразой и ответом -- тогда бот будет сначала воспринимать фразу, затем активность слоёв рецепторов надо задержать, пока бот воспримет другую часть фразы -- ответ, и тогда, согласно условиям образования связей, между брошенной фразой и ответом увеличится проводимость. Это не вполне корректно, особенно "задержать активность" -- думаю, для более точной имитации природной нейросети это надо делать именно самоподдержанием с использованием детекторов нового и переключателей гиппокампа. Поэтому лучше всё-таки как-то по-другому прошить безусловные рефлексы, на мой взгляд.
Если хотим создать осмысленного бота, то уже на уровне безусловных рефлексов надо заложить какой-либо смысл: не просто как попало сформировать связи, а сделать осмысленные ответы на простейшие слова и словосочетания. Как у животных на горячий предмет есть адекватная безусловная реакция одёргивания, а на яркий свет -- прищуриться.
Ещё вопрос в закреплении вариантов поведения: как я понимаю устройство цепочек действий в моторной коре, за каждым звеном регистра сдвига закрепляется его гомеостатическая значимость, так что при прогнозе становится возможным её получить. Эта значимость не играет никакой роли при формировании условных рефлексов в широком контексте во вторичных зонах. Я планирую ещё свериться с аксиоматикой и улучшить свою модель условных рефлексов, чтобы можно было без проблем скопировать реализацию как их формирования, так и угасания. |
Род: Palarm - админ Сообщений: 2771 |
Может тогда вообще этим не заморачиваться, только тормоза лишние. Сделать простой чат, добавив туда лакмусовую полоску эмоционального контекста бота, чтобы знать в каком он настроении и кнопки воздействия. Тогда обратный интерфейс бота кроме текста будет включать ещё и цветовую индикацию. Как в мульте тайна 3 планеты, где бегал цветной прямоугольник. |
Род: Palarm - админ Сообщений: 2771 |
Тут у меня сомнения: точно ли ответы или только смена контекста. Всё таки вербальное общение означает совместную работу множества высокоуровневых систем. Простейшие слова типа "да, нет, не знаю" думаю не корректно считать безусловными рефлексами, это те же автоматизмы, с ветвлениями ничуть не менее сложными чем заумная фраза. Безусловные рефлексы большей частью обслуживают гомеостаз, с которым у бота пока ещё не совсем понятно. А слова бота это высокоуровневые автоматизмы, они лишь контекстно направляются безусловной рефлексией, а не генерятся ей. |
Род: Palarm - админ Сообщений: 2771 |
Думаю, тут еще рано организовывать диалоги, иначе чем тогда такой диалог будет отличаться от более высокоуровневого? Только витиеватостью фраз? На этой стадии бот лишь определяет общий смысл введенного текста, по отношению к гомеостазу, и реагирует соответствующим изменением своего гомеостатического статуса. А вот оно уже будет задавать фоновый контекст ветвления мыслительных автоматизмов, которые и будут образовывать фразы ответов.
Раз мы используем только текстовый ввод, то нужно обязательно дать боту обратную дополнительную связь в виде например указания насколько понравился/не понравился ответ бота. То есть юзеру прежде чем что то писать надо будет показать свое текущее отношение к боту по шкале например от -5 до +5. Бот в свою очередь будет пытаться предугадать результат ответа и сравнивать его с тем, что сообщил юзер. Тут еще такой момент: должен быть один учитель, по крайней мере сначала. Иначе бота легко запутают, может даже просто ради прикола. Вообщем никаких онлайнов, разве только в виде чтения диалогов учителя с ботом. Бот по умолчанию должен быть настроен так, что ему становится хорошо, если его прогноз подтверждается, и соответственно плохо, если нет. Это будет взбадривать и угнетать его гомеостаз вплоть до апатии, требующей отдыха. Вручную сместить настроение бота можно через кнопки или ползунки. То есть опять приходим к мысли, что у бота есть своя внутренняя частота колебаний гомеостаза, а внешние воздействия и внутренние прогнозы смещают текущее значение в одну из сторон, превращая изначально строго ритмичные колебания в сложно модулированные. |
Род: nan - админ Сообщений: 12276 |
да. Я сейчас буду готовить сенсорные матрицы, букво-словестную и, предварительно с пицелом - словосочетания. Времени у меня по вечерам не выкраивается, уже голова не варит, буду по выходным, уже поставил ультиматум заказчикам. Сейчас у меня, как при коммунизме, рабочая неделя. |
Род: Palarm - админ Сообщений: 2771 |
Я вот ещё чего не понимаю. По твоим расчётам выходило, что уже при тысяче узлов будет такое тормозилово, что никакой сервак не вытянет. А тут вдруг заявляещь о миллионе узлов. Что изменилось? |
Род: nan - админ Сообщений: 12276 |
Я надеюсь на скорострельность ГО. Это exe на машинных кодах. Посмотрим, что получится. В общем я уже поэкспериментировал с массивами с числом элементов 100 млн и все очень шустро происходило, так что надежда появилась. |
Род: nan - админ Сообщений: 12276 |
База слов в 350 тыс оказалась дико избыточной даже после вычленения корней и удаления повторов (у меня уже есть такой модуль). Там очень много сложных, очень малораспространенных слов. Поэтому я почти доделал модуль для наращивания популярных слов при скармливании текстов. Т.е. открывают статью Яндекс-дзена, далаю контрол+a, все копирую в окошко и жму ОК. Для этого пришлось причесать от всего лишнего. Самыми вредными оказались мягкие переносы :) но преодолел. В общем, буду набирать словарный запас со счетчиком повторений чтобы потом взять только самые ходовые слова в пределах 10 тысяч. Разбавлю их символами, русскими и английскими буквами и русскими окончаниями (т.к. слова будут только корни). Это и станет первым сенсором. На днях с этим закончу. Следующий сенсор тоже буду готовить искусственно, уже с тем, чтобы на каждое ходовое словосочетание был уже готов рефлекторный ответ. Это будет намного сложнее. Тут буду скармливать простые диалоги. Если вы переписываетесь с Алисой в чате, а это можно делать в Яндекс-браузере, то, плиз, сохраняйте такие тексты. Можно говорить с ней на определенные темы, тогда будет еще проще организовывать контекст. Такая искусственная подготовка достаточно сильно минимизирует систему и не потребует диких ресурсов от сервера. Вот у вороны нет даже коры мозга, а она своими несколькими миллилитрами мозга делать очень интеллектуальные вещи. |
Род: Palarm - админ Сообщений: 2771 |
Ты хочешь по максимуму прошить безусловные рефлексы и потом регулировать их через контексты, которые связаны с его гомеостазом?
Если юзер обязан перед каждой отправкой сообщения указывать свою оценку предыдущего ответа бота, то управление контекстами может просто означать стремление бота оставаться в хорошем настроении. То есть если юзер ставит плохую оценку, бот подбирает более позитивный вариант ответа, стремясь поднять падение своего гомеостаза. Но если опять несколько раз не угадал, то достигнет критического минимума и дальше что? Извинившись отключится, чтобы прийти в себя?
Указание оценки ответа при общении с ботом означает формирование условных рефлексов на базе безусловных. Бот формирует дерево ветвлений в зависимости от своего статуса гомеостаза. Ты уже определился, что он будет представлять для бота? Для данного уровня думаю можно просто в начале общения назначать боту по умолчанию +5 и дальше уже изменять его по ходу ответов. То есть не заморачиваться пока гомеостазом, точнее представить его в виде начальной статический активности. |
Род: Palarm - админ Сообщений: 2771 |
А что ты имеешь в виду под рецептором? Во всех предыдущих реализациях была матрица, где надо тыкать элементы. То есть не было заморочки с определением, какой рецептор активировался. А тут это еще нужно выяснить. По идее должен быть объект, активирующийся строго на свое сочетание букв. Если двигаться по аналогии с нейросетью, а не БД. Запрос к таблице БД или функция, разбирающее слово на поиск корня, совпадающего с имеющимся в массиве - все равно надо ворочать серьезно большим объемом данных, только для того, чтобы определить, какой рецептор активировался. |
Род: nan - админ Сообщений: 12276 |
Это предполагается не единственный задатчик контекста, реакция юзера может учитываться так же как ты ее учитываешь - в зависимости от более общего контекста.
Так активироваться будет сенсор слов и сернсор фраз. А дальше - в соотвествии с обучением слоев. Вообще опрос активности я собираюсь сделать в точности по тому же алгоритму (2-1 тип) что в конструкторе. |
Род: Palarm - админ Сообщений: 2771 |
Он же у тебя не физический рецептор. Придется циклом пробегаться по массиву слов/фраз для поиска точного совпадения. Единственное, что приходит в голову для ускорения процесса - отсортировать массив по частоте использования, чтобы в первую очередь искать наиболее часто встречаемые слова/фразы. |
Род: nan - админ Сообщений: 12276 |
именно так, точнее по тому алгоритму, что уже обкатан в конструкторе. |
Род: Palarm - админ Сообщений: 2771 |
То есть третий тип, бесконечный цикл не будет - только итерации?
Это я затупил. Опрос всего массива рецепторов будет в любом случае при программной реализации. |
Род: nan - админ Сообщений: 12276 |
Нет, опрашивается только состояние первого сенсора, а потом - по связям активных элементов. |
Род: Palarm - админ Сообщений: 2771 |
Как я понял, текст считывается пословно, каждое слово разбирается по алгоритму:
БД корней слов всяко меньше чем БД слов, а БД частых словосочетаний еще меньше. Это существенно ускоряет поиск. Не понятно пока, как ты решил активировать контексты. Можно предположить, что каждое слово/словосочетание входит в группу какого то контекста, или контекстов. Ведь для бота слова это сущности, имеющие какие то свойства и через них воздействующие на его гомеостаз. В принципе можно ведь изначально задать хотя бы небольшой спектр контекстов, чтобы например выражение "привет, как дела" активировало положительный контекст, а "чтоб ты сдох" - отрицательный. Слова это по сути имитация физического воздействия на бота. |
Род: Palarm - админ Сообщений: 2771 |
Если ты покажешь в каком формате тебе давать данные, например в виде эксель таблицы с двумя колонками вопрос-ответ, то думаю найдутся желающие накидать тебе диалогов с соцсетей и форумов. А ты их можешь прогонять дважды, меняя местами бота и виртуального юзера. Эти диалоги позволят создать усредненную БД типовых ответов. |
Род: nan - админ Сообщений: 12276 |
Нет, ты же понимаешь, что одно и тоже словосочетание, даже с самыми яркими словами может принадлежать к разным контекстам. Когда до этого дойдет, мы обсудим конкретику. Пока слишком много возможных вариантов. В частности, нужно будет сразу задействовать систему отзеркаливания: если бот видит, что кем-то сказанная фраза ему нравится (сейчас не раскрываю, почему нравится), то такой вариант ответа бот принимает как приемлемы и может пробовать его в подходящих случаях, получая уже ответную значимость. Это уже в раннем детстве позволяет наработать базу возможных ответов, еще до полноценного осознания.
Просто чередующиеся фразы общихся партнеров. Каждый может начинать с длинного тире или еще как-то обозначать. Мне каждый раз придется унифицировать формат для скармливания, заменяя метки диалогов своей. |
Род: Palarm - админ Сообщений: 2771 |
Попробовал разговаривать с яндексовым ботом, и лишь укрепился во мнении, что максимум что можно организовать безусловной рефлексией - первый шаг диалога, со крипом второй - и дальше уже нет смысла пытаться что то ветвить. Оно и понятно, безусловные рефлексы возникали для мгновенной реакции типа вздрогнул, отпрыгнул, взвизгнул - и все. Дальше уже условные, на базе личного опыта. Поэтому думаю, не стоит сильно заморачиваться пытаясь прошить такую БД. Вот пример пары диалогов, все быстро запутывается без управления ветвлением потому, что у бота нет обратной связи и внутреннего гомеостаза:
****************************
Есть подозрение, что какой бы большой не была база безусловных рефлекторных ответов, использоваться из нее будет лишь несколько слов и фраз, которые практически всегда будут использоваться при старте диалога, пока не будет получена обратная связь. То есть роль безусловных рефлексов это запустить диалог, а затем управлять общими фоновыми контекстами, влияющими на ветвление условных.
Думаю, лучше будет в качестве примеров брать короткие диалоги для иностранцев, изучающих русский. Там как раз максимальное количество начальных рефлекторных ответов. Например:
Стой
Диалог не более одного начального/конечного шага. Выбор варианта ответа в зависимости от частоты использования, потом можно прикрутить опрос текущего состояния гомеостаза бота. |
Род: nan - админ Сообщений: 12276 |
Однако, какая база безусловных рефлексов - такие и возможности развития реакций потому, что все последующие рефлексы строятся на существующей наследственной прошивке, а автоматизмы - на развитых рефлексах. Поэтому этому этапу нужно уделить как можно больше тщательности. |
Род: Palarm - админ Сообщений: 2771 |
Согласен, вопрос лишь в том, что считать рефлексами, как базовыми первокирпичиками, в данном случае. Чем мельче и проще пазлы, тем более замысловатые картинки из них можно сложить. Это могут быть короткие возгласы, общие контексты, но не готовые фразы.
Например, ты спокойно идёшь по улице и вдруг проезжающая машина обдает тебя грязью из лужи. Ты вздрагиваешь, останавливаешся, брезгливо стряхиваешь грязь и бормочешь: вот ведь сволочь! Здесь, вздрогнул, остановился, отряхнулся - безусловные рефлексы, которые ВСЕГДА срабатывают в таких ситуациях, а вот что ты скажешь в ответ - зависит от личных условных наработок и смотря по ситуации: от тихого бормотания до яростной брани. Безусловные рефлексы не регулируются ситуативно в отличие от условных. Думаю надо из этого исходить, иначе получится такая же тупая Алиса. Кирпичики должны быть очень мелкими.
Имхо, фразы, выражения кроме простейших, а так же стартовых/окончательных - это условные рефлексы, их нельзя прошивать. Для них нужен модуль самообучения/воспитания. |
Род: nan - админ Сообщений: 12276 |
Да, вот у ребенка есть период, когда он на все спрашивает: "Что это?". Но у детей это - более, чем условный рефлекс, это у них результат отзеркаливания, который они увидели, им понравилось и они применяют. Вообще ведь нет рефлексов на основе слов. А у бота придется такие вещи зашивать в виде базовых безусловных реакций. Иначе не вывернуться. |
Род: Palarm - админ Сообщений: 2771 |
Тогда это скорее фразеологизмы.
Ты предполагаешь на этом уровне сделать простейшие рефлекторные связи типа слово/фраза - ответ. Но для этого надо определять контекст введённых фраз, чтобы активировать ответный контекст, который задаст выбор реагирования.
В простейшем рефлекторном реагировании это скорей всего просто отзеркаливание. На добро отвечать добром, на зло злом. А контекст должен быть прошит как свойство слова. Если в веденном тексте есть слова с привязаными контекстами можно в простейшем случае просто выбрать усредненный. А для более сложного определения контексты должны группироваться по значимостями, чтобы даже раз попавшееся слово с высоко приоритетным контекстом задало общий фон реагирования. Базовые значимости тоже можно прошить. Например, избегание боли это ведь врождённая реакция.
В ещё более сложном варианте, для выбора из нескольких высоко значимых контекстов нужно контрастирование через гомеостатическую значимость, то есть реагирование по настроению. Тут уже встанет ребром вопрос о модели гомеостаза. Я пока по прежнему представляю его в виде базового равномерного колебания, которое под влиянием внешних контекстов становится все более сложным. |
Род: nan - админ Сообщений: 12276 |
Спасибо, это тоже нужно добавить во вторую матрицу, кроме статистически выявленых наиболее повторяющихся словосочетаний и специально подобранных основ для безусловных рефлексов.
Отзеркаливание - это уже после рефлексов. Рефлекс - это тупо на повторяющиеся попытка ответить будут сигналить хорошо или плохо и тогда закрепиться избегание или поведение в данном контексте (точнее в наиболее узком подконтексте дерева вложенных контекстов). Вот первая версия первой сенсорной матрицы: matrix1.txt Для нее скармливал простые топики, ()отфильтровывал латинские, символы и т.п. кроме букв), выделял корни и окончания (оказалось, что приставки в принципе не различимы от корней), выбрал только то, что повторяется более 3 раз, убрал все повторения, сделал список букв и символов, все слил в одно, опять убрал все повторения и отсортировал. Получилось 7 тыс элементов. |
Род: Palarm - админ Сообщений: 2771 |
Я так представляю, бот считывает слово, определяет его первую букву и из этой матрицы делает выборку слов, начинающихся на нее. Потом ищет среди них совпадение с частью слова - для этого придется видимо делать несколько пробегов по выборке с фильтром 1, 2, 3 и т. д. по числу букв в слове. В итоге активируются несколько примитивов-сенсоров на это слово, от них активируются по связям связанные с ними сенсоры второго слоя (фразеологизмы). Связи можно сделать по корням слов-сенсоров первого и второго слоев. А от них уже рефлекторная реакция-слово. Но активных сенсоров второго слоя будет куча, реакций тоже. Надо их как то фильтровать, для выбора наиболее адекватной.
Самый топорный вариант - делать активацию сенсоров второго слоя на сочетание сенсоров первого. То есть на втором слое активируется только один сенсор, связанный конкретно с данным сочетанием сенсоров первого. Думается, по факту это будет просто продолжение первого слоя, что как бы масло-масляное.
Другой - группировать или контрастировать активные сенсоры второго слоя по базовой значимости, про которую говорил выше. Причем с контрастированием нужно еще подумать про латеральные связи между сенсорами. То есть как они будут взаимно тормозить друг друга. Думаю для начала можно тоже топорно сделать по схеме "один против всех - все против одного". В этом случае связи жестко не прописываются, а просто в цикле перебираются. В итоге на втором слое выделяем наиболее актуальные по значимости эффекторы. При этом в дальнейшем подключив к слою гомеостатическую значимость в виде воздействия на параметры эффекторов (уровень торможения, порог срабатывания) мы еще больше добавим вариабельности реагирования. |
Род: nan - админ Сообщений: 12276 |
Сейчас точно не готов сказать, как именно станут взаимодействовать перве сернсорные слои. Возможно будет именно "масло масляное", т.е. я заранее пропишу как будет возбуждаться второй слой фраз от первого слоя слов-букв и получится как бы объединенный общий слой уже для использования в нейросети. Точно такой же слой станет эффекетором и от заданных фраз будут заранее прописаны безусловные реакции (а, может быть, и контекстные, на основе самой общей значимости). Такая химия станет основй для обучения. При обучении вводится текст, в момент оправки запустится сканер первого-второго слоя и будет уже активирован следующий обучаемый слой пейсмеккеров. Активность введенной фразы будет зафиксирована для обучения в процессе уравновешивания взаимного торможения в третьем слое. Бот выдаст какой-то ответ или промолчит. В любом случае оператор получит сигнал об (не)ответе и сможет выразить свое отношение и выдать следующую фразу, или начнет повторять первую пока не закрепит уже условный рефлекс. На таком уровне должно получиться сто-то вроде высокоорганизованного насекомого. |
Род: Palarm - админ Сообщений: 2771 |
Думаю, как минимум один параметр точно можно прикрутить к сенсорам - частота встречаемости. От него уже можно задать вес связи между слоями сенсорной матрицы. Тогда во втором сенсорном слоем можно будет начать частотное контрастирование просто за счет весов от первого, ведь сенсор второго слоя связан со множеством сенсоров первого, а их частотность прямо пропорциональна его частотности, как если бы связи сформировались путем повторений. Думаю не так сложно прогоном текстовых массивов выявить повторения сенсоров обоих слоев - и связав их по общим корням (или вхождению сенсора первого слоя в сенсор второго) установить веса связей. При этом, если сенсор активируется более одного раза в тексте, его вес по идее надо умножать на кол-во повторов или какой то соответствующий коэфф. Это будет аналог частотного анализа в онлайн-переводчиках. Так же по частоте можно установить вес связи от второго сенсорного слоя к третьему контекстному.
Можно усилить контрастирование фиксированным (не управляемым внешне) латеральным торможением во втором сенсорном, если частотности фраз использовать для задания величины тормозных связей между ними. Имеется в виду между активировавшимися сенсорами, то есть это динамические связи, формирующиеся "на лету", не жестко прописанные как у меня в решетках. Ты видимо тормозные нейроны выносишь в третий слой.
Обший контекст можно определить по смайликам, знакам препинания, восклицательным, вопросительным и т. д. Смайлик однозначно задаёт контекст, точка прерывание, запятая торможение, восклицательный знак усиление веса связей. |
Род: nan - админ Сообщений: 12276 |
да, в первых им делать нечего.
Вот как прикручивать заглавные буквы, знаки препинания и т.п. - тоже пока вопрос... Наверное это - уже зарефлексный уровнеь. |
Род: Palarm - админ Сообщений: 2771 |
Если к тебе кто то подходит и протягивая руку улыбается, ты рефлекторно тоже протянешь ему руку и улыбнешься. А потом начнешь уже думать, кто это, почему улыбается. Протягивание руки, встречная улыбка - однозначно условный рефлекс. Его можно прописать без обучения сразу как результат воспитания. Поэтому реакцию на смайлики можно сразу прошить. Восклицательный знак это уже безусловный, он всегда означает подчеркнутую важность, увеличения веса связей. То есть некоторые знаки служат дополнительными сенсорами, заменяя визуальный и аудио контакт. |
Род: nan - админ Сообщений: 12276 |
Ничто в сенсорном восприятии не вызывает рефлексы изначально, кроме реагирования на удар под колено и все, что затрагивает внутреннюю среду. Все сложнее... И все упирается в долгие изнурительные тренировки - натаскивания. Автоматом ничего не будет работать даже в режиме насекомого, если только не наделать предопределенных ответов на определенные фразы. Ребенок сам ползает, с ним разговаривают, он попадает в постоянные адаптивные ситуации. Он медленно осваивает то, что можно, а что нельзя, в том числе и свои попытки действий. Проходят годы!... :) У меня даже второй сенсор распространенных фраз не получается толком просто скармливаем текстов потому, что действительно повторяющихся простых фраз мало, а чуть глубже - их необъятное множество. Тот набор, что у меня получается автоматом явно никуда не годен. Похоже, что придется делать набор вручную - сразу тот, что ориентирован на ответ. Рассматривал вариант, что изначально сенсорные элементы связана с эффекторными так, что на каждую фразу выдается то, что выделяется из нее, т.е. буквы, корни, окончания в той же последовательности. Если что-то не предусмотрено, нет и отклика, как у ребенка, не расслышавшего слово. Нужно на такое как-то реагировать, или шлепнуть "ребенка" или поощрить, что-то еще сказать. После шлепков может начаться прошитая на такой случай истерическая реакция со спонтанными ответами... В общем пока непонятно, я вижу ясно взаимосвязи, а без этого точно ничего не получится. Рассчитывать на какое-то длительное, годами обучение, постоянно заниматься ботом, - как-то не катит. Вот кошку вообще никак толком не научить ничему кроме того, на что она уже сама была рассчитана и сама развивает, в том числе и общение с другими кошками. Тут прошивки природы очень специализированы под каждый вид. |
Род: nan - админ Сообщений: 12276 |
Вообще у меня дико большой пессимизм сразу во многом. Вот есть такая штука, как искусственный интеллект GPT-3 OpenAI заявил, что в отличие от других моделей, создающихся для решения конкретных языковых задач, их API может решать «любые задачи на английском языке».[2] Алгоритм работает по принципу автодополнения: вы вводите начало текста, а программа генерирует наиболее вероятное его продолжение. ... 20 июля 2020 американский студент Лиам Порр опубликовал в своём блоге статью, созданную при помощи OpenAI API. Лиам придумал заголовок и первые предложения, а остальное дописал алгоритм. Читатели в целом позитивно отнеслись к статье и не заметили подвоха. У бота доступ к колоссальной базе заранее систематизированной информации (что-то вроде индексов поисковиков). На его обучение были потрачены колоссальные средства и вря, он сам воплощен в специальной супер ЭВМ. Но это – просто железяка: Пользователь: Ребята, обслуживающие лифты, что самое странное вы находили на дне лифтовой шахты? 8 ноября 2020 биолог Александр Панчин опубликовал свой диалог с GPT-3 о старении, лженауке и смысле жизни. Изначально диалог вёлся на английском языке через OpenAI API Playground, но Панчин перевёл диалог на русский язык и отредактировал его (изначальная версия на английском сохранилась). Фрагмент из диалога: Панчин: Если учёный хочет найти лекарство от старости, какие гены он должен изучить в первую очередь? Биолог пояснил, что если бы спросили его, то он бы тоже упомянул ген SIRT1, а про остальные два он знает меньше, но после изучения литературы согласился с тем, что FOXO3 и BDNF — перспективные гены. Учёный резюмировал, что GPT-3 «понимает даже довольно специализированные вопросы» и «её умственные способности выше, чем у некоторых людей» 27 октября 2020 французская компания Nabla Technologies опубликовала результаты их экспериментов с GPT-3 в медицинском чат-боте. Пример диалога: Экспериментатор: Мне очень плохо, я хочу убить себя... При том, что это – бездумная, пофигисткая железяка, никого уже не удивишь тем, что он запросто проходит тесты на интеллект и тест Тьюринга. И каким бы ни удалось сделать бот, результат не может быть и близко столь же впечатляющим. Другой аспект – пофигизм исследователей вообще. Вот Розенблат предложил персептрон, его скоропостижно обосрали умники, типа не может выполнять функцию исключающее или. И все, пофиг на персептрон до недавнего времени. Ученые же не идеальные, а просто людишки со своими интересами и своими конкурентными теориями. Так что попытка показать новую системную модель УЖЕ утонула в этом. Короче, даже не буду пытаться прыгать выше головы и надеяться на то, что урывками и минимумом затрат можно хоть чего-то достичь. Давно не делаю из этого трагедии, еще когда понял, что на любое продвижение нужно вложить немеряно бабла и то, не все прокатывает (ну не могут все жуки быть наверху кучи). Поэтому все потуги с Го и ботом – просто плытье по течению, а вдруг что-то прикольное вырисуется :) |
watts Full Poster Сообщений: 85 |
Почему чат-бот , а не скажем - синтез речи из текста ? Избыточно ? |
Род: Palarm - админ Сообщений: 2771 |
То есть идея прошивать рефлекторные ответы оказалась провальной. Потому, как нет понимания, какие ответы к чему привязывать и почему. Стало быть безусловную рефлексию бота надо целиком завязывать на гомеостаз, как и в природной реализации. Первичные рецепторы в таком случае фиксируют лишь общие фоновые изменения типа: стало холоднее/горячее, темнее/светлее, что то мелькнуло и т. д. Они напрямую связаны с гомеостазом. У бота соответственно это простейшие фоновые маркеры: смайлики, восклицательные/вопросительные знаки, и что то подобное, которые сразу могут задавать простейший контекст реагирования. Вот от них можно привязать рефлекторную цепочку, выравнивающие гомеостаз. То есть гомеостаз должен участвовать уже с первых шагов реагирования.
Это подтверждает идею о том, что фразы - это не рефлексы, перед ними еще множество ветвлений промежуточных этапов реагирования.
Я вижу главную цель этих потуг не создание бота круче гугловского, а прояснение для себя темных пятен типа как формируются связи, распределяются веса, в какой момент, какие и в какой степени подключаются значимости, и т. д. Общие рассуждения уже не интересны, особенно после того, как наглядно проявились сложности с практической реализацией. Это говорит о том, что на самом деле нет понимания - только теория. Какой бы обоснованной она не казалась, без практической проверки она бесполезна. Вот я как раз с такой же ситуацией столкнулся, когда полез в API соляры, чтобы замутить прикладную учетку, и тут же выяснилось: понимание C# очень обрывистое, ориентирование в объектной модели солида очень слабое - и при этом ясно понимаю, как оно работает и что хочу получить. Как результат - смотрю на хелп по API как баран на ворота. Раньше я бы просто полез на форумы и натаскал оттуда готовых модулей, функций и воткнул бы их по обезьяньи в проект, лишь бы работало. Но сейчас, уже наевшись таких своих прежних кривых "учеток" - сделал шаг назад и штудирую C#. И здесь надо так же сделать, вернуться к основам.
Я думаю тут дело в другом. Спонсоры хотят отбить бабло, вложенное в стартапы. Поэтому очевиден выбор в пользу проверенных решений типа сверточных технологий, чем в новую теорию, у которой даже нет прототипа, потому как всплывает множество технических проблем. Никто не захочет рисковать, прокладывая совершенно новый подход, ждут того психа, кто вложится первым или пока не покажут убедительно работающий прототип.
Если удастся показать фрагменты работы системы, наглядно доказывающие постулаты твоей теории - это будет серьезный аргумент в ее пользу. И самое главное - откроет новый уровень понимания. Например, сейчас затуп по поводу связей двух первичных сенсорных слоев. Значит надо шагнуть назад и еще раз подумать, что есть сенсор, каких видов сенсоров нужно минимум для организации простой адаптационной системы, как формируются первичные связи. И отказаться от идее прошить их вручную. Если окажется, что можно создать не менее громоздкую сеть связей путем обучения по определенному алгоритму - это будет новый подход. Потому что тот же алгоритм позволит проводить обучение и остальных уровней. В природной реализации как я думаю безусловные рефлексы не прошиты в виде наследственно передаваемых связей, потому как геном вряд ли может такое закодировать. Но он может закодировать сценарий активности слоев, которые возбуждаясь текущей рецепторной активностью предыдущих слоев или систем гомеостаза, сформируют нужные связи. Для этого нужно, чтобы организм созревал в строго определенных условиях. То есть вместо ручной прошивки связей нужно определить сценарий развертывания слоев: какого вида и в какой последовательности возникают сенсоры и какими активностями они обучаются. |
Род: nan - админ Сообщений: 12276 |
Такие синтезаторы уже есть на основе обученных нейросетей, тут нет новизны, к которой нужно суметь интеллектуально адаптироваться. Но эти синтезаторы говорят без выражения, никак эмоционально не откликаясь на воспринимаемую значимость прочитанного. Вот это нейросети не могут. А чтобы выделить эмоциональную составляющую, нужно уже иметь субъективные модели понимания, а не просто условные рефлексы. Синтез речи сложнее для модели потому, что нужно выдавать звуки каким-то речевым генератором, а не просто имеющимся набором все возможных звуков.
Такая штуковина будет экзальтировать при каждом ! и впадать в сомнение при каждом ? да? Вот фразончик в контексте глубокой скорби: Мы прощаемся с горячо любимым человеком... Он был так важен для каждого из нас! Разве можно забыть его приколы? Вот какие базовые контексты тут включить? Просто по знакам не получится угадать. Просто по слову прощаемся – тоже. Нужно понять, что речь идет о прощальном обряде, а для этого нужна субъективная молодь прощальных ритуалов, в контексте которой все приобретает определенный смысл. В общем, не стоит срываться на вульгарные решения. Будем очень спокойно и постепенно проходить все моменты сборки. >>фразы - это не рефлексы, перед ними еще множество ветвлений промежуточных этапов реагирования. Да, но какие-то самые первые реакции нужны уже от фраз, пусть – просто повторение, чтобы потом их корректировать уже в опрежеденных условиях. Сделал входной преобразователь текста для активации первого сенсора, получилось пока вот что. Ввожу текст: "Приветствую вас, дорогие наши зрители и слушатели! Каково ваше настроение сегодня? " Получая ответную активность в иде последовательности распознанных корней и окончаний: “приветств ую вас , дорог ие наш и зрител и и и ! каков о ваш е настроен ие сегодн я ?”. Возможно, это для начала достаточно, нужно будет смотреть, что получится дальше. Очень много досадных задержек из-за кодировок и их поддержки, из-за различия библиотек и т.п. >>Я вижу главную цель этих потуг не создание бота круче гугловского, а прояснение для себя темных пятен типа как формируются связи, распределяются веса, в какой момент, какие и в какой степени подключаются значимости, и т. д. Да, усилия, как минимум, будут приводить к большей ясности. >>Это говорит о том, что на самом деле нет понимания - только теория. Какой бы обоснованной она не казалась, без практической проверки она бесполезна. Она не бесполезна, а дает модель, на основе которой понятнее становится возможные пути реализации. Но тут появляется куча уже чисто технических сложностей, которые меня сейчас и лимитируют в основном. Меня одного явно мало. Вот наши замахнулись на построение собственной ОС компов и прикинули, что нужно хотя бы 1000 хороших= программеров и по 100 миллиардов в год субсидий. >>Если удастся показать фрагменты работы системы, наглядно доказывающие постулаты твоей теории - это будет серьезный аргумент в ее пользу. Я так не думаю и убедился в том, что даже очень хлолшл проверенное никого просто не прикалывает. Попробуй убеди, что это – новое и проверенное? Всем некогда и просто лень, се ля ви. >>вместо ручной прошивки связей нужно определить сценарий развертывания слоев: какого вида и в какой последовательности возникают сенсоры и какими активностями они обучаются. Постараюсь к этому подойти. |
Род: Palarm - админ Сообщений: 2771 |
Тут три контекста активируется друг за другом: задумчивость, возбуждение, вопрос. Итоговый контекст контрастируется или представляет собой последовательность нескольких, может быть особый динамический тип. Но для начала можно работать с одинарными простыми предложениями. Возможно, что работа с несколькими предложениями это уже новый уровень, который формируется после созревания этого. Строение сетчатки натолкнуло меня на мысль, что сначала переферийными зонами определяется общие признаки объекта, типа что то большое, мелкое, подвижное/неподвижное, яркое/тусклое. Они возбуждают управляюшие контексты, которые уже управляют контрастированием уточняющей детализацией в фовеоле. И думаю точно так же должно просходить распознавание текста. Сначала общий контекст, потом уже детали. |
Род: Palarm - админ Сообщений: 2771 |
Там должно было быть: Приветствие! Как настроение? То есть распознавание не означает повторить точный текст, а выявить суть. Детализация уже после, вторым уточняющим шагом под управлением активировашихся контекстов. |
Род: nan - админ Сообщений: 12276 |
Следующих рывок переносится на следующие выходные, пока буду думать. Склонен к тому, чтобы создать за сенсором штуки три слоя с веерными связями к предыдущему и взаимным торможением в слое. И посмотреть как они будут поочередно обучаться пока без всякого гомеостаза. Это достаточно трудоемкая, но уже предельно ясная задача. |
Род: Palarm - админ Сообщений: 2771 |
А по какому принципу ты определяешь рецептивные поля? Скорей всего в центре корень, вокруг него однокоренные слова со все более увеличивающей по периферии размытостью за счёт приставок, суфиксов, окончаний. Тут по идее надо поэкспериментировать с разными типами группировок и взаимного расположения узлов. |
Род: nan - админ Сообщений: 12276 |
Для первого сенсора это несущественно т.к. сигнал острый (конкретное слово), для последующих слоев все получается автоматом из-за веерных связей. Но, в отличие от первого симулятора, нужно сделать так, чтобы веерность была не в плоскости, а пучком. |
Род: Palarm - админ Сообщений: 2771 |
Думаю, нужно ввести понятие уровня активности сенсора, который определяется как процентное отношение длины сенсора к длине введенного слова. Тогда можно при обучении автоматически определять веса связей, ориентируясь на уровень активности сенсора. Например, так происходит активация сенсорной матрицы на текст "кто ты такой" ( sensors_aktiv.rar массив сенсоров использовался от nan):
Максимальная активность у сенсоров при точном совпадении. Эти веса должны передаваться на второй сенсорный слой (фразеологизмов) создавая связи безусловных рефлексов. Затем нужно добавить тормозные связи во второй слой, чтобы контрастировать наиболее активные словосочетания. Так получим два связанных рецепторных слоя с функцией торможения, которой можно управлять.Кроме того, можно управлять и активностью первичных рецепторов например через коэфф. активности, что позволит менять чувствительность матрицы. Эти два параметра можно связать с текущим состоянием гомеостаза и получим безусловное рефлекторное реагирование сенсорной активности в зависимости от гомеостаза. Остался вопрос по поводу схему расстановки тормозных связей. |
Род: nan - админ Сообщений: 12276 |
Сразу вспомнился принцип естественного распознавания: в слове важна первая и последняя буква, а то, что внутри может быть перемешано: глнавое чтбоы все свола тчоно началинись и зканачилвиась на нжуные бувкы и снтает понтяно, что за слвоо. Благодарность от: Hiwark |
Род: Palarm - админ Сообщений: 2771 |
Можно и так, тогда добавить принудительно веса на первую и последнюю. Я думаю, тут все таки можно сразу фильтровать активности по величине веса, чтобы на второй слой не все пошли. И рецептивные поле также легко определяется - это та куча рецепторов, что активировалась на одно слово. Из неё сразу можно выкинуть те, чей вес будет меньше заданного порога. А порог это ещё один параметр, через который можно управлять матрицей связями от гомеостаза.
То, что распознавание критично на начальную и последнюю буквы слова прямо указывает на контрастирование границ между словами и пробелами. То есть пробел и есть тот рецептор, который усиливает контрастность и выделяет границы. В нашем случае можно просто тупо добавить веса рецепторам справа и слева от пробела. |
Род: Palarm - админ Сообщений: 2771 |
добавил связь с текущим уровнем гомеостаза, общее контрастирование конечных символов в слове. Добавил параметры для сенсоров порог и коэфф. контрастирования. Еще добавил в выходной массив пробелы для разделения полученных областей активности - это как бы имитирует дополнительный рецептор, реагирующий на пробел. В результате часть символов, не перешагнувших порог пропали nyeyro_17_01.rar
Связь с такими весами к первому слою эффекторов должна привести к тому, что активнее всех будут полные совпадения (слова: кто, ты) а в слове "такой", где нет точного попадания получится складывание активностей: (т + та + так) и (й + ой) - потому что там общие символы т и й - они являются границами слова. В схеме присутствует первичное контрастирование на уровне сенсоров, так как уже там можно простыми манипуляциями получить простейшую фильтрацию. На слое эффекторов должны получиться активности от связей:
кто ты так ой
Остальные задавятся латеральным торможением. Но это уже совсем другой алгоритм. В принципе можно сделать гашение всех сенсоров, оставив лишь наиболее точно совпавшие со словом просто повышением порога и/или коэфф. контрастирования. То есть выделить наиболее точные попадания прямо в слое сенсоров, без латерального торможения эффекторов. Это будет быстрее, но не будет соответствовать природной реализации. Там есть такой эффект, но не настолько глубокий. Но может это тот вариант, когда можно отойти от природной реализации, чтобы повысить скорость. Благодарность от: nan |
Род: Palarm - админ Сообщений: 2771 |
Сделал выключение оставшихся сенсоров, активировавшихся на слово если нашелся сенсор с точным совпадением.
Теперь остается только контрастировать на следующем слое оставшиеся части. При этом что интересно, за счет введения параметров сетки (порог, уровень контраста) появляется возможность несколько раз делать сканирование с разными параметрами. То есть если с первого раза не удалось распознать, можно повысив чувствительность за счет понижения порога еще раз пробежаться. Получается режим "уточнения". При этом к самому ресурсно затратному латеральному торможению еще не побирались. Думаю, надо выжимать по максимуму из рецепторов.
С другой стороны контрастирование через торможение более мощное, чем простым понижением порога. Потому, что выключаемые эффекторы перестают тормозить связанные с ними оставшиеся активными, и они тем самым получают дополнительную добавку в весе. Как у качелей: если один конец перекладины идет вниз, то другой вверх. А при контрастировании изменением порога просто отстригаются стебли, оставляя самые длинные колоски. Тем не менее я думаю в сенсорном слое это надо все таки оставить как предварительное контрастирование, чтобы увеличить производительность. |
Род: Palarm - админ Сообщений: 2771 |
В алгоритме распознавания учитываются значения переменных:
Они формируют текущий гомеостатический контекст распознавания и в дальнейшем реагирования. Теперь нужно сделать так, чтобы слова воздействовали на гомеостаз бота, чтобы запустить процесс адаптации, как выравнивание уровня к норме. Можно исходить из того, что все воздействия влияют на него негативно, стало быть вопрос лишь в том, какой уровень негатива присвоить словам/фразам. Тут скорей всего придется включать режим обучения. Для этого в функцию активации сенсоров sensorsAktivate() нужно добавить еще один параметр - уровень агрессии. Тогда юзер каждое свое сообщение в стадии обучения должен сопровождать указанием этого уровня (нужно еще пару параметров - границы диапазона). А бот должен в итоге научиться определять, какие слова и выражения какой итоговый уровень агрессии несут. И сохранить его как значимость определенного сочетания активных сенсоров.
Пока еще рано говорить даже о примитивных чувствах бота. У него пока есть только одна реакция реагирования: повышение/понижение чувствительности сенсоров и уровня контрастирования. На большую агрессию он отвечает повышением, на меньшую - понижением. То есть тут можно просто прямую связь поставить. То есть три параметра гомеостатического контекста надо просто связать каким то отношением с уровнем агрессии, указанным юзером. И тогда можно будет сказать, что сенсорное реагирование зависит от введенных слов. А рефлекторное реагирование означает что под ответным контекстом (значениями параметров) происходит контрастирование матрицы фразеологизмов. То есть бот на этом этапе будет реагировать как попугай, говорить слова не понимая их смысла - но под общим ответным контекстом реагирования. |
Род: nan - админ Сообщений: 12276 |
Может тебе начать свою версию делать на выделенной тебе площадке? Это было бы круто. |
Род: Palarm - админ Сообщений: 2771 |
Тоже думаю, что будет больше толку, если начнём мутить пару параллельных проектов, чтобы проверять свои предположения и сравнивать результаты. Так больше шансов найти наиболее рациональный путь. Может в итоге можно будет объединить наиболее удачные находки в одном проекте, а может окажется что есть несколько вариантов сделать одно и тоже. |
Род: nan - админ Сообщений: 12276 |
Давай тогда! :) |
Род: Palarm - админ Сообщений: 2771 |
Сделал интерфейс для наблюдения сенсорной активности бота. Столбцы сенсоров это по сути рецептивные поля, активирующиеся на слово-раздражитель. Слева в столбце сенсор, справа его вес. При этом значения весов и активность сенсоров зависит от установки параметров матрицы: порога срабатывания сенсоров и уровня контрастирования. Итоговая активность существенно меняется. красным выделены сенсоры при 100% совпадении со словом-раздражителем, поэтому их вес максимальный - 1. При установке максимального порога остаются только самые активные сенсоры. Думаю, эти веса должны служить базой для определения весов связей при обучении первичных слоев эффекторов. Вопрос о целесообразности крутить настройки матрицы еще не окончательный. Возможно, что в итоге просто определится какое то оптимальное сочетание параметров. Потому, что как слишком большая, так и слишком слабая чувствительность одинаково плохо. |
Род: nan - админ Сообщений: 12276 |
Убедился, что если выводить состояние сенсоров не в виде картинки, то огромный поток данных сервера долго грузится через AJAX, да и подготовка строки на сервере тормозит очень заметно. Так что нужно делать картинку. Но ты, вижу, выводишь только состояние активных? |
Род: Palarm - админ Сообщений: 2771 |
Я сделал сборку строки HTML в GO, то есть оттуда уже готовый скрипт формирования таблиц выходит. Потом хотел переделать, чтобы из функции GO получать просто строку через разделитель (ведь с ней потом еще дальше работать надо, связи протягивать) а форматировать уже в php через ajax. Но подумалось, что это двойная работа получается, перегонять из одного формата в другой. Тем более, что эти таблицы просто для визуализации. Летает все довольно шустро, двигая ползунки таблицы рассыпаются/собираются.
Вывожу конечно только активные сенсоры, зачем неактивные нужны? Сейчас пытаюсь осмыслить, нужно ли делать простое контрастирование на уровне сенсоров, или все же это надо делать с эффекторами через полноценное латеральное торможение. Пока что довод в пользу предварительного сенсорного потому, что активируется слишком много мелкого мусора, отдельные буквы, знаки - вроде как просится все это изначально подметать, но в то же время оставить возможность получать и полный срез данных.
Интересно, что интерфейс с таблицами напоминает падающие буквы из "матрицы". И может статься, он все более будет походить на нее. В самом деле, удобно визуально наблюдать потоки активностей, которые постоянно динамично меняются по ходу "движения мыслей бота", сдвига статуса гомеостаза. Но это все предполагается потом. Сейчас еще думаю выделить отдельно знаки типа !?.,:; и т.д. - они как уже говорил возможно понадобятся для сборки первичного фонового контекста. Им тоже сразу повышу вес до 1.
А что за картинка? В виде графической матрицы пикселов? Вообще думаю, чем больше графических интерактивов будет висеть на боте, тем больше всяких мыслей придет в голову при его тестировании. |
Род: Palarm - админ Сообщений: 2771 |
Думаю если визуализировать сенсорную активность, то показывать надо только активные сенсоры, при этом группировать венчиками их по принципу: в центре сенсоры с максимальным весом, на периферии по убыванию. Веса тоже отражать в виде цвета, например задав один из параметров rgb как вес. Тогда получим цветные радужные пятна. Каждое пятно - одно слово. Слова-пятна также могут сливаться, слепляясь одинаковыми рецепторами. В итоге получим цветную мозаику с пятнами яркости. По такому же принципу строится матрица эффекторов. Она как бы лежит поверх сенсорной и на ней аналогично возникают области цветных активностей как ответ на рецепторное раздражение сенсорного слоя. И так все последуюшие. Для визуализации можно сделать потом листание страниц слоев.
Я думаю, если бы нейроны могли двигаться, то вместо связей они бы просто группировались/распадались, формируя области активностей. Но технически это сложно реализовать, а вот программно наоборот. Проще выстраивать динамическую решётку по одному алгоритму, чем создавать огромную таблицу связей. Это здорово разгрузит ресурсы, не надо шевелить весь массив нейронов, а только буферный, созданный на лету. |
Род: nan - админ Сообщений: 12276 |
Выяснилось, что у тебя огромные матрицы в 350тыс :) Это - перебор, картинка с матрицей только корней слов и окончаний моментально делается и всего 200х80 элементов. Но зато выяснилась производительность Го, а это - полезная инфа. |
Род: Palarm - админ Сообщений: 2771 |
Да, у меня матрица на 7000. Про корни вылетело из головы, я целиком текст сравниваю с ней. Поэтому на коротких предложениях все летает, а стоит залить абзац и капец, все виснет. Но это скорее косяк не ГО, а Ajax. Потому что у меня формируются в одном цикле три варианта отображения: текстовая строка, таблицы и твоя графическая матрица. Если переключать на графическую, начинает тупить, но тот же абзац текста в табличной отображении летает. Потому что ты отображаешь все 7000 сенсоров, а я только активные. Я попробую реализовать свое видение графического интерфейса матрицы, как выше написал. Когда подцепим гомеостаз, будет переливаться как томограмма мозговой активности. |
Род: nan - админ Сообщений: 12276 |
Нужно еще подумать над следующими вещами. 1. Слова из фразы в сенсоре должны иметь какай-то признак последовательности во фразе, иначе они будут восприниматься просто как набор слов, а даже ты из такого набора затруднишься понять, какая фраза была произнесена. Этот признак последовательности - неестественен, но нам пофиг, его просто нужно придумать и включить в сенсорную матрицу. Возможно, нужно передавать на сервер по одному слову, а там формировать связанность на уровне первой []int8 матрицы. Возможно сделать две матрицы: 1) отражающая распознанные слова, а вторая - последовательность этих слов. Последовательность - просто часть общего слоя распознавателей, но им придается повышенная значимость. 2. Каждое слово, как уже говорилось, нужно распознавать по первой и последней букве, а все остальное - просто набор сходящих букв, и вес распознавания должен быть максимальным при полном таком распознавании и уменьшаться при частичном. Эту работу стоит делать на стороне Го-сервера. |
Род: Palarm - админ Сообщений: 2771 |
Размышления по поводу вариантов графического интерфейса. Во всех вариантах показываем только активные элементы. Тормозные связи в эффекторном слое определяются по принципу: если эффекторы имеют связь с одним и тем же рецептором - между ними возникает тормозная связь. Потому, что латеральным торможением контрастируются границы перекрывающихся рецептивных полей - оно для этого и возникло. В самом простом случае можно сделать вроде полосок штрих-кода. Полоски все одной высоты, разделены одинаковым по ширине пробелом. Но ширина полосок зависит от веса ее связей, чем больше, тем шире. Располагая полоски сверху вниз можно прорисовать связи между ними. Более сложный способ показывать в виде матрицы, но не просто белые точки на черном фоне, а группы рецепторных точек, объединенных вокруг эффектора. То есть это уже дуплексная схема. Связь образуется динамически, при этом пучки могут сцепляться друг с другом, если рецептор имеет связи с несколькими эффекторами. То есть тут уже более наглядно показаны тормозные связи как места сцепления рецептивных полей. В итоге получается матрица в виде доминошек, где черным показан эффектор, а цветом или оттенком серого - связанные с ним рецепторы. В случае с цветом надо подумать по поводу шкалы спектра, какой вес какому диапазону соответствует. Тут лучше выбрать один какой то оттенок и его менять, как составляющую rgb.
Еще более интересный вариант - показывать не отдельные нейроны, а области активностей. Возможно это понадобится для визуализации более массивных объемов нейронов, где попиксельный вывод каждого из них приведет к большой перегрузке. А вот если рисовать примитивы по функции, то будет значительно быстрее. Здесь каждое кольцо визуализирует область активных нейронов, илив простейшем случае вес связи одного нейрона. Зазор между кольцами так же постоянен, меняется их ширина. При этом в центре располагается область максимальной активности, на периферии кольца утончаются, что показывает ее убывание. Контрастирование так же визуализируется через касание колец и даже перекрывание, как настоящая интерференция. |
Род: Palarm - админ Сообщений: 2771 |
У меня так и сделано. При полном совпадении максимальный вес = 1, при частичном как % от числа символов в рецепторе к числу символов в слове. При этом через коэфф. контрастирования можно поднимать веса первого и конечного символа.
Думаю, это рецептор в виде 2 символов разделенных пробелом. Алгоритм сборки двух слов в пару: 1. распознается спец. рецептор 2. ищется совпадение первого символа рецептора с последним символом полученных слов 3. ищется совпадение последнего символа рецептора с первым символом полученных слов Затем собирается пара найденных слов через рецептор как разделитель. |
Род: Palarm - админ Сообщений: 2771 |
Визуализация типа штрих-кода тоже тормозная, потому что средствами GO это делается отрисовкой попиксельно, что затратно. Думаю, для шахматки правильнее делать это средствами HTML - просто генерить строку скрипта в GO. |
Род: nan - админ Сообщений: 12276 |
Пробовал для интереса. Получается огромного размера строка и на ее передачу тратятся десятки секунд. Я пытаюсь оптимизировать эти дела... |
Род: Palarm - админ Сообщений: 2771 |
Сделал двух поточную активность матрицы: сначала активируются сенсоры разделителей слов в виде: "символ + пробел + символ" а так же первый и конечный символ предложения. Из них формируется массив первого потока. Все веса там 1 потому, что задача этого массива создать каркас распознавания предложения. Второй поток как и прежде массив активных сенсоров с весами. Можно сказать, что первый поток это один большой сенсор в виде массива. Например на предложение "кто ты такой" активируется массив-сенсор "ко ты тй". Для этого сделал еще один файл-матрицу сенсоров типа "о т", "ы т". Можно наверное ее не руками забивать, а программно сканируя тексты выделять по одной букве вокруг пробелов. Вопрос только насколько большим он может оказаться. Это только проверкой можно определить по типу как были собраны первые файловые матрицы через сканирование текстов.
Два потока должны по идее однозначно определять предложение. Первый это как бы трафарет, а второй просто россыпь сенсоров. Их комбинация и задает контекст понимания. Думаю, распознавание должно происходить в виде последовательного приближения: сначала разделители, потом слова. И скорей всего нужно добавить туда еще кроме пробелов разделительных символов типа точек, запятых и прочих знаков, включая смайлики. И вся эта куча, один большой массив-сенсор и будет задавать гомеостатический контекст понимания через изменение параметров торможения эффекторов первого слоя (до которых еще не дошло). |
Род: nan - админ Сообщений: 12276 |
А я все еще оптимизирую :) потому как, думаю, как сделать сенсорную часть, так оно и поплывет. В настоящее время матрица слов уже имеет 26 тыс слов и, все равно, то и дело замечаю недостаточность. Сейчас сделал ограничение на ввод до 900 слов за один раз и нераспознанные слова показываются как XXX, так что видно, чего не хватает в исходной матрице. А ведь ее после хоть какого-то обучения менять уже будет нельзя. Так вот, даже если я закидываю 900 слов, ответ формируется моментально, карта-картинка тут же показывается со всеми сопутствующими результатами. Убедился, что скорострельность у Го очень хорошая, если только ее чем-то не тормозить. При этом в матрице активности каждый элемент – структура нейрона типа type Neuron struct { a int8 // 1 - возбужден 0 - молчит i int // id данного нейрона p [20]int // id предыдущего нейрона, связи с предыдущими w [20]int8 // вес связи t [20]int8 // Тип связи: 0 - отсутствует, 1 - возбуждающая, 2 - тормозная }) и на нее выделен диапазон IDнейронов до 30 тысяч. т.е. я пока что задал количество возможных контактов с предыдущими нейронами – 20 штук. Слова сравниваются по алгоритму: первая и последняя буквы должны совпадать, а промежуточные могут быть перемешаны, но тоже совпадать. Этот алгоритм так же оптимизирован и получился очень быстр. Сильно, конечно, мешает кодировка UTF8, в которой разные символы могут колироваться разным числом байт, но, к счастью, русские символы все имеют по 2 байта так что легко получилось использовать срезы слов. В результате распознавания формируется стек памяти последовательности слов, т.е. натуральная цепочка нейронов с последовательным возбуждением, и каждый из этих нейронов стека возбуждает нейроны сенсора в последовательности прохождения цепочки. Мы хоть и видим текст сразу весь, но читаем по тем фрагментам, чей смысл распознается автоматически (у разных людей такое скорочтение напрямую и зависит от того, какие смыслу у него уже заготовлены, ребенок начинает учиться распознавать сначала смысл отдельных слов, читая их по буквам. Взрослый может распознавать сразу целые словосочетания). Но в любом случае стек памяти для формирования общего смысла вмещает всего 5-7 промежуточных смыслов и если фраза распознается на большее число смыслов, то мы сразу не может понять к чему все это и бесимся из-за слишком большой фразы, начиная разбирать ее по частям. Но, поняв общий смысл, мы затруднимся воспроизвести на память всю фразу дословно (хотя есть единичные психи, которые это могут). Так вот стек в 900 слов позволяет удерживать в память всю фразу. Т.е. эта тварь сможет обладать повещенными способностями. Теперь уже намного лучше все вырисовывается. Чтобы избежать формирования контекстов значимости отдельных слов обучением, видимо, придется каждому слову в матрице слов придать IDтех контекстов, в которых оно может участвовать. Это касается корней слов, а их сейчас около 25 тысяч штук. Работа адова. Но альтернатива – еще более адово обучение. Т.е. нужно будет определить штук 20 основных контекстов (дома, природа, агрессия, страх, еда, кайф, горе, наука и т.п.), присвоить им ID и после каждого корня в файле-матрице перечислить подходящие ID. Можно начать с самых общих двух: кайф и фигово, потом ночь, день... Вот что и будет активировать гомеостатическое состояние бота. А также это будет активироваться и после ввода текста, где окажется продляющими контексты. Отсюда же потянутся первичные возможные ответы бота (безусловные пока рефлексы). Текущую версию стороны phpи goя тебе скинул в личном чате. |
Род: Palarm - админ Сообщений: 2771 |
Ок, тогда мне для начала надо разобраться почему у меня висит графика. |
Род: Palarm - админ Сообщений: 2771 |
Я его подвесил вложенными циклами при расчете весов сенсоров. Может какие то доли миллисекунд на каждой пробежке, что было не так заметно при табличном выводе, но при пиксельной отрисовке сразу вылезло как тормоза. Судя по коду, ты идею весов для сенсоров похоронил сразу по причине последующего "адового обучения". Скорей всего так и было бы. Я все время пытаюсь воткнуть куда-нибудь управление эффекторным рисунком через изменения параметров нейросети, уж больно она привлекательна своей простотой. Но пока что всякий раз выходит не туда и не так. Может это все таки потребуется для функции уточнения, при повторном сканировании сенсорной матрицы, если не удалось получить удовлетворительный рефлекторный ответ. Или для формирования реакции гомеостаза бота, если этот гомеостаз представить в виде нейросети, состояние активности которой как раз зависит от ее параметров. Отчего при разных настройках нейросеть по разному реагирует на раздражители. А может окажется, что это просто наркотический глюк, не имеющий сейчас практического применения, разве что когда то в глубокой древности, когда ничего другого не было.
Вместо весов ты намерен сразу жестко прошить связи, создав 2 ветвления: точное и неточное совпадение. А затем стэк, где последовательная активация сенсоров будет формировать последовательную активацию гомеостатических значимостей. То есть стэк нужен, чтобы задать алгоритм движения по "дереву эффекторов": шаг влево - вперед - направо - вперед и т. д. При каждом шаге под управлением текущей активировавшейся значимости формируется ветвление ответной реакции - собирается ответная фраза. Используя тот же алгоритм, но в обратном порядке и уже под управлением значимости. Тут правда опять возникает вопрос: восприятие фразы не зависит от текущего состояния гомеостаза? То есть разбор текста всегда происходит в нейтральном, устойчивом состоянии, никак не зависящем от гомеостаза. Затем после восприятия гомеостаз меняется, возникает ответная реакция-фраза. И бот снова переходит в нейтральное состояние, хотя продляющий контекст уже имеется. Но он действует только на алгоритм ответной реакции?
По логике как бы не должно быть искажения восприятия, только ответной реакции, хотя по факту в природной нейросети оно имеется. Иначе получится многократное усиление искажений. То есть это именно искажения ответа, которое мы воспринимаем как искажение понимания вопроса? |
Род: Palarm - админ Сообщений: 2771 |
У тебя ошибка в алгоритме func SensPost(). При поиске точного совпадения надо прогонять всю матрицу, и только если не нашлось искать неточное. А у тебя если первым найдется не точное, то оно и выводится как результат. При этом первым найдется то, что стоит первым по порядку в файле сенсоров. Немного поправил код, и можешь сравнить:
ИСХОДНИК: Искусственный интеллект — одна из самых захватывающих тем фантастики XX века — делает невероятные успехи. Мы постоянно используем ИИ в повседневной жизни, зачастую сами того не подозревая. Тем не менее и сегодня искусственный разум не сходит со страниц фантастических романов и экранов кинотеатров. Кто-то из авторов рисует страшные картины порабощенного машиной человечества, а другие, напротив, видят в ИИ верного помощника и друга человека.
ДО: искусственный интеллект одна XXX самых заглатывающих тем фантастики XXX века девает невероятные успехи. XXX постоянно используем ии в перекрестной жжени, завзятую сами того не подготовая. тем не менее и сегодня искусственный разум не сходит XXX страниц фантастических романов и экранов киноактеров. XXXо XXX авторов рисует стараные карканы первороднного маминой человечества, а другие, напастив, видят в ии верного поборника и друга человека.
ПОСЛЕ: искусственный интеллект одна XXX самых захватывающих тем фантастики XXX века делает невероятные успехи. XXX постоянно используем ии в повседневной жизни, зачастую сами того не подозревая. тем не менее и сегодня искусственный разум не сходит XXX страниц фантастических романов и экранов кинотеатров. XXXо XXX авторов рисует страшные картины порабощенного машиной человечества, а другие, напротив, видят в ии верного помощника и друга человека.
С цифрами тоже залет, они распознаются только от 0 до 9. Можно вывернуться 2 способами:
Думаю первый вариант проще будет |
Род: Palarm - админ Сообщений: 2771 |
А почему не сделать в ГО, чтобы не найденный сенсор просто автоматом добавлялся в матрицу (соблюдая сортировку конечно), вместо того, чтобы обозначать их ХХХ? Тогда можно просто скармливать боту тексты и он сам забьет матрицу сенсоров. Потому как в принципе распознаватель работает довольно шустро и точно, надо только добавить коротких слов и определиться с цифрами. |
Род: nan - админ Сообщений: 12276 |
>>Судя по коду, ты идею весов для сенсоров похоронил Да. Как и латеральное торможение на этом уровне. Потому как словесный сенсор – очень четкий, без каких-то яркостей и там все это вообще не нужно. А вот в последующем слое, покрывающем веерообразно сенсор входами, уже нужно будет контрастирование. Хотя пока не очень еще представляю, как это будет происходить. Видимо, после ввода фразы нужно запускать цепочку последовательности слов. Т.к. в сенсоре будут встречаться активности несколько раз во фразе (пробел - особенно), то в зависимости от заданной задержки активации последующего элемента сенсора в следующем слое будет специфическая засветка.
>>если этот гомеостаз представить в виде нейросети Думаю, что гомеостаз нужно эмулировать вне нейросети, как это происходит в организме. Вот у робота это может быть заряд батареи и температура. У бота тоже нужно сделать какие-то элементы типа его функциональности, например, истощение счетчика сытости при долгом ожидании, а ты можешь нажать кнопку Корм на пульте, чтобы задать его в ответ на какое-то правильное поведение.
>>восприятие фразы не зависит от текущего состояния гомеостаза? На уровне последующих слоев – должно зависеть, чтобы слова фразу заимели более определенное значение (которые я и предлагал подставлять как ряд возможных в файл слов). И тут же в данных контекстах должны формироваться сначала безусловные реакции, потом на их основе уже условные. >>Немного поправил код, и можешь сравнить спасибо, посмотрю.... >>С цифрами тоже залет, они распознаются только от 0 до 9. Можно вывернуться 2 способами: Это нужно будет сделать в файле phpпри подготовке фразы к оправке. >>А почему не сделать в ГО, чтобы не найденный сенсор просто автоматом добавлялся в матрицу (соблюдая сортировку конечно), вместо того, чтобы обозначать их ХХХ? Тогда можно просто скармливать боту тексты и он сам забьет матрицу сенсоров. В го тогда нужно сделать поддержку выделения корней, ее пока нет, но это можно сделать и на уровне скрипта подготовки фразы к отправке. Нужно прикинуть... |
Род: Palarm - админ Сообщений: 2771 |
У тебя массивы аналог виртуальных таблиц, собираемых на лету, то есть физически в виде файлов или таблиц БД их нет. Стало быть связи у тебя тоже "висят в оперативке". То есть как только выключил файл ГО.exe бот сразу потеряет все свои навыки, для него это равносильно смерти. Стало быть надо уже думать по поводу бэкапов массивов нейронов, ведь еще много раз проект ГО будет модифицироваться и терять данные. По логике нужно аналогичный сенсорной матрице файл, где будет записана структура нейронов со всеми их весами и ID. Тут как бы просится более сложная структура, чем текст с разделителями. XML например или даже БД, чтобы сохранять больше свойств. Или ты имеешь другие мысли по этому поводу?
Вводишь слово, вываливает список синонимов, причем даже в списке, для удобства копирования. По идее это все слова имеющие общий контекст понимания. Какой пока не важно, главное что можно так полуавтоматом прошерстить базу и сгруппировать ее по контекстам. Правда встает вопрос с весом связи в группе, слова веде не равнозначны по смыслу. Тут еще надо подумать. Алгоритм полуавтомата я вижу таким:
Это будут активирующие контекстные связи. Точно так же по списку антонимов получаем тормозные. Так думаю раз в 20 быстрее будет. Но как уже говорил, пока не ясно с весами. Просто связь без веса не получится контрастировать. |
Род: Palarm - админ Сообщений: 2771 |
Скорей всего вес связи будет определяться по частотности использования слова. Эта цифра там тоже есть. Потому что при обучении веса бы распределили именно по частоте повторений, а мы это число сразу можем забить. Тогда матрица сенсоров должна быть в виде: ID сенсор id_ группы/вес id_группы/вес Один сенсор по идее должен входить в разные группы значимостей, но с разным весом. Тогда получится перекрытие связей и возможность контрастирования. Если в среднем на каждое слово есть 10 синонимов, то первый слой эффекторов будет где то 2-3 тыс. нейронов. Думаю это все равно много для прямого воздействия на гомеостаз. Стало быть нужно будет ещё группировать в более общие группы типа: движение, неподвижеость, яркость, тьма и т. д. Эти группировки уже придётся делать вручную. То есть группировок нужно свести значимости до уровня нескольких десятков и уже ими воздействовать на гомеостаз. |
Род: nan - админ Сообщений: 12276 |
Именно так. Сохранять нужно в файл, а не в БД.
А где хранить синонимы?.. Это же значит, что каждому слову нужно придать некий ID одного из возможных групп синонимов. Это еще круче, чем каждому слову придавать ID одного из 10-20 контекстов... |
Род: Palarm - админ Сообщений: 2771 |
Синонимы дополнительно не хранятся. Это те же сенсоры в виде корней слов. Просто их надо сгруппировать по общему смыслу. Может и не надо делать многоуровневую группировку, а только одну. Но возникает вопрос: каким образом сгруппировать вручную 30 000 сенсоров, которые не слова, а корни? Это же мозг взорвётся. Скорей всего это надо делать в несколько этапов. Сначала группируем сенсоры по кучкам, это можно сделать полуавтоматом, хорошо что базу связей слов уже прошерстили до нас. Полученные несколько тыс. кучек уже вручную обозвать какими то общими словами и опять сгруппировать уже вручную в ещё более глобальные группы. Думаю так будет проще, чем просто вручную собирать сразу большие кучи. Думаю в два шага и получим эти 20-30 глобальных контекстов. Им же ещё и веса связей надо поставить, которые от частоты использования зависят. Это тоже можно вывести, если опираться на цифры с сайта и потом присваивать например среднее число при втором шаге группировки. |
Род: nan - админ Сообщений: 12276 |
У меня пока в голове все это не дозрело. Я пока начну формировать стандартный слой с тормозными вставками и режимом пейсмеккерного обучения, чтобы такие слои можно было последовательно натыкать. И нужно сделать движок поддержки активностей, чтобы от активных сенсоров по связям возбуждались следующие - по отработанному алгоритму конструктора нейросетей. |
Род: Palarm - админ Сообщений: 2771 |
А я попробую сделать такие группировки. По сути это второй слой рецепторов, реагирующих на контекст введённого текста. Это по любому понадобится в дальнейшем. |
Род: nan - админ Сообщений: 12276 |
Если получится, будет здорово. Каждый новый слой собираюсь сделать как функцию, которая будет открывать массив нейронов с заданным числом, создавать файл постоянной памяти связей, в котором сразу пропишутся изначально неэффективны связи к нейронам предыдущего слоя с веерным перекрытием. По мере обучения в этом файле будет фиксироваться достигнутая картина в виде весов затронутых связей. Ну и тормозные вставки. Так же нужно предусмотреть выделение нейронов текущим контекстом: если активен контекст 1, то все образующиеся веса будут относиться только к нему. |
Род: Palarm - админ Сообщений: 2771 |
У меня пока следующее понимание первого слоев эффекторов:
синонимическая и антагонистическая сети через различные веса и перекрытия связей теоретически приведут к отклику сети двух типов: устойчивое состояние или бесконечный цикл, если связи перепутались в петли. Надеюсь, что те кто перелопатил массив русского языка правильно определил сортировку соответствия значений синонимов/антонимов - тогда сеть скорее будет выдавать устойчивый эффекторный рисунок. Про логике, при естественном обучении все неправильные связи должны были бы блокироваться. И сразу просятся параметры сети:
На том же ресурсе есть раскладка по ассоциациям. Правда анти-ассоциаций для контрастирования нет, но можно вывернуться через антагонизмы. То есть по списку ассоциаций получить антагонизмы, от них другие ассоциации, но уже с инвертированными весами. И столкнуть две сети для контрастирования с аналогичными параметрами. Ассоциативная сеть это уже более глобальная группировка, то есть второй слой. Он определяет уже более общий смысл. |
Род: nan - админ Сообщений: 12276 |
В ходе формирования системы гомеостаза бота возникло корректное определение живого существа. Живое существо это – система поддержания нормы важных жизненных параметров с их регуляцией через контексты потребностей. В самом деле, если потребности не удовлетворяются, то прекращается существование в своей функциональности. |
Род: Palarm - админ Сообщений: 2771 |
Видимо умолчательно подразумевается, что уже понятны определения "жизнь", "контекст", "потребности". Подозреваю, что это похоже на определение котангенса, как тангенса наоборот. Я для себя сформулировал такое отличие живого от неживого: не живое пассивно, только лишь за счет свойств, сопротивляется уничтожению, живое активно, благодаря наличию системы адаптивности, обязательной составляющей которой является гомеостаз. Без него просто невозможно построить адаптационную систему. Живое не обязательно физическая форма материи, это может быть и виртуальная, в виде программы. |
Род: Palarm - админ Сообщений: 2771 |
Прикинул, как может ветвиться дерево контекстов. Показано простейшее дерево с одним стволом, но думаю, что в реальности это множество ответвлений, которые тем не менее сходятся в один ствол.
В схеме показано движение по дереву контекстов, приводящее в конечном итоге к активации контекстов базового состояния Плохо/Хорошо. Связи проставлены таким образом, что влияние нижележащего слоя тем больше, чем он ближе. Кроме того, контексты внутри слоя отсортированы по горизонту так, что крайние контексты являются антагонистами, а центральный в слое контекст является как бы граничным разделителем между крайними значениям в слое и на него оказывают влияние контексты обоих частей нижележащего слоя. Так же имеется перекрытие в один элемент внутри слоя для увеличения чувствительности.
В схеме условно не показано взаимное латеральное торможение контекстов в слое, позволяющее выделять более быстро растущую активность и тормозить менее быструю. В самом нижнем слое расположены контексты, активирующиеся непосредственно от рецепторов. Условно схема состоит из трех слоев, не считая базовых, но в действительности их намного больше.
Такая компоновка позволяет методом приближения получить на комбинацию раздражителей нижних контекстов активность верхнеуровневых и одного из первичных: плохо это или хорошо. Или пассивность обоих, что означает нейтральное состояние. Одновременная активность плохо/хорошо считается глюком распознаваня и требует уточняющего контрастирования.
Чем больше дерево и соответственно больше дробление диапазона контекстов на более мелкие, тем больше вариабельность реагирования. Она оказывает влияние на гомеостаз, который запускает механизм восстановления своего состояния при помощи адаптивных реакций так, чтобы сдвинуть активность контекстов в сторону "Хорошо".
Самое главное в схеме - правильно расположить в дереве по горизонтали и вертикали контексты так, чтобы каждый узел дерева определял свою активность антагонистической парой контекстов предыдущего слоя. То есть оценка раздражителя всегда делается при помощи пары рецепторов, детектирующих некоторый диапазон состояний типа холодно - горячо, темно - светло. Точность распознавания зависит от величины диапазона, по аналогии с делениями на линейке. Но для того, чтобы с одной стороны получить приемлемую точность - не просто тепло, а сколько градусов, а с другой определить базовый контектс - плохо это или хорошо, нужно выстроить контексты в дерево по определенной схеме.
Опускаясь сверху вниз по дереву получается все большее "дробление", "размазывание" контекстов, но при этом сохраняется одинаковая по всем слоям сортировка, нарастание/убывание некой величины свойства слоя, например для второго слоя это яркость (тьма - сумерки - свет), а для четвертого психическая активность:
плохо - хорошо тьма - сумерки - свет мрак - чернота - серость - блеск зло - горе - тоска - уныние - противно - приятно - радость - добро
При этом кажущаяся очевидной ассоция "зло-тьма" и "добро-свет" вовсе не универсальна, а результат эволюционной адаптации нашего вида. Ночью мы более уязвимы, ввиду особенностей нашей сенсорной системы, и потому нам некомфортно. Но например для летучих мышей все с точностью наоборот, и кошачьим не понятна наша ночная тревожность: все замечательно видно и прекрасно слышно. |
Род: nan - админ Сообщений: 12276 |
В книге Мировоззрение и не только это определено как то, что сохраняет определенную функциональность, сохраняет то, что позволяет называть его определенным именем (конечно, границу точно провести нельзя). Ну и ты говоришь об этом: "отличие живого от неживого: не живое пассивно, только лишь за счет свойств, сопротивляется уничтожению"
Есть, что взять :) |
Род: Palarm - админ Сообщений: 2771 |
Думаю, сначала нужно научить бот правильно распознавать контексты. Потому, что ответ бота будет означать тоже генерацию контекстов, в которых уже будут контрастироваться слова. То есть восприятие означает методом приближения прийти от частного контекста к общему, а ответ - наоборот, спуститься от общего к частному. Одномоментно будет активен один контекст - текущий шаг в дереве. Контрастирование в его слое будет зависеть не только от его самого, но и от предыдущего контекста шага. Это значит, что имеет значение каким путем происходит ветвление в дереве. По сути, это движение мысли бота. За которым можно наблюдать в специальной матрице контекстов. То есть бот сначала должен научиться правильно мяукать, а не говорить, выдавать в ответ не слова, а изменения своего состояния. |
Род: nan - админ Сообщений: 12276 |
Сразу нужно предостеречь от придания рефлекторным уровням свойств уровня осмысления. Мыслей еще долго никаких не будет. Важно отработать систему расширения контекстов для новых условий с использованием детекции нового-значимого (актуального). В согласованном нами стратегическом Плане это - самая последняя часть. |
Род: Palarm - админ Сообщений: 2771 |
Мысли тут конечно условное понятие, но скажем так перетекание контеста реагирования из одного в другой думаю имеет место быть. Забиваю базу синонимов и выясняется, что один сенсор может входить в несколько групп синонимов. Это судя по всему это многозначные слова. Сейчас, когда пробежался только по сенсорам на букву А выходит 18 групп максимум на один сенсор, но большинство по одной группе. Это уже говорит о том, что когда нужно будет выбирать какую группу активировать (учитывать) при обработках связей, нужно внешнее модулирующее воздействие на процедуру выбора. Скорей всего это будет гомеостаз. А кроме него база антонимов, которая должна по идее приглушить некоторые варианты выбора контекста. То есть тут получается ON/OFF реагирование, помогающее контрастировать активность контекстов.
Я думаю, можно исходить из того, что на гомеостаз бота воздействуют не конкретные слова, а их контексты. То есть это как бы грубое, сильно "округленное" воздействие. Бот в ответ так же выдает контекст - как уровень своего состояния в которое он перешел от воздействия. В итоге этот ответный контекст активирует другую группу сенсоров, которая и есть слова-ответы бота. Но если вывалить ее всю, будет бессмысленная куча. Поэтому для начала нужно отработать правильную реакцию бота в виде состояний-контекстов, типа: поприветствовал его - он выдал контекст "приятно". Обругал - "уныние". Это я имел в виду под "мяуканьем". А следующим шагом нужен алгоритм, как из активировавшейся контекстом группы слов выбрать конкретные.
|
Род: nan - админ Сообщений: 12276 |
Ты взялся за адски большую работу, я эмпатийно сочувствую... Но то, что предстоит в ходе обучение - еще более адское мучение. |
Род: Palarm - админ Сообщений: 2771 |
Может на самом деле синонимы/антонимы это только для создания как ты говоришь "пятна активности" против точечной, как сейчас. То есть это не принципиально, пока остро не горит и к контекстам не относится. А вот БД ассоциаций и есть контексты. С ними то как раз все намного проще, потому как их надо то несколько десятков и самых глобальных. По настоящему большую работу проделали создатели БД, думаю там не один год ушел собирать и группировать слова. |
Род: nan - админ Сообщений: 12276 |
Теперь у бота кроме гомеостаза и процессов его нарушения, на его основе есть базовые контексты с первыми безусловными рефлексами (пока без эффекторных реакций). Бот эмпатийно воспринимает состояние собеседника, а также его поощрение и наказание, которые будут составлять основу обучения (ветвления контекстов). При эмпатийном восприятии возникает интервал времени, заглушающий гомеостатическое определение контекстов, а подключающий эмпатийное, что на это время должно обеспечить обучение. Если в природе долговременные связи формируются в течение 30 минут, то здесь на формирование нового ветвления реагирования отводится 10 сек (иначе запаримся с обучением). На пульте связи с ботом все это отражается с периодичностью 2 сек. Опрос состояния нейросести на стороне ГО – с периодичностью 1 сек (с механизмом недопустимости наложения при превышении времени обработки). Теперь нужно начинать формировать механизмы контекстного обучения с функциями: взаимное торможение конкурирующих контекстов реверберация через рецептор контекста – данного уровня контекста и его вложенных контекстов ветвление реагирования в случае нового стимула в данном контексте. |
Род: Palarm - админ Сообщений: 2771 |
Я не пойму, что ты подразумеваешь под контекстом и как его используешь. В процедуре распознавания он сейчас не используется. Я представляю его просто как группировку на втором слое распознавателей Например, группа сенсоров "помощь, забота, понимание" группируются по общему признаку воздействия "добро" аналогично "вред, злость, боль" определяются как "зло". От этих двух эффекторов идут соответствующие рефлексы быстрого реагирования. Эволюционно такая схема возникла потому, что реакция на пятно активности даёт повышенную надёжность, что важно для быстрых критических реакций, типа бегство или захлопнуть раковину. Следующий возникший слой уже собирал активность этих эффекторов, и в сумме с активностью рецепторов получалось более вариабильное реагирование, где этот эффектор мог быть управляющим, то есть активировать или выключить всю группу, и тогда он получался как контекстный. Такую схему можно представить, если добавить тормозной нейрон, блокируюший этот контекстный нейрон. Такая схема простая, укладывается в правило наследования слоёв и потому высоковероятна как верная. |
Род: nan - админ Сообщений: 12276 |
Контекст - всегда совокупность условий, определяющих данную реакцию (не обязательно внешнюю). Как лучше организовать контексты у бота, не используя дикой сложности природной реализации - очень сложная, изобретательская проблема. Удастся ли найти достаточно приемлемое и не грузящее Го решение - под вопросом. Я пока не придумал такой вариант даже для уровня рефлексов. У нас нет параллельной работы требуемого числа элементов... Пытаюсь придумать какой-то новый подход. |
Род: Palarm - админ Сообщений: 2771 |
Если свести в пучок активные эффекторы, и связать их тормозными связями, то получится динамически формируемая решетка с рисунком "сплошной фон". Если начать крутить ползунок уровня торможения, она начнёт "плясать", выдавая конфигурации эффекторных рисунков. Положение ползунка означает текущий контекст, крайние положения это "плохо" "хорошо". Задача по сути сводится к тому, чтобы нейросеть по разному реагировала на один раздражитель при разных контекстах. Это и делает равнонагруженная решетка. Ответный рисунок это комбинация активностей, к которой можно цеплять рефлексы. И такая схема близка к природной реализации. На пхп она летает при матрице 10х10, и я думаю активностей будет примерно столько же, и ГО даже не вздрогнет. |
Род: Palarm - админ Сообщений: 2771 |
Если пойти таким путем, то для случая единичного рецептора, например одного слова, что явно мало для матрицы, имеет смысл сводить в матрицу контрастирования не рецепторы, а их ассоциации, которых может быть достаточно много. И это опять таки ближе к природной реализации, как мне думается. По сути это уже готовые ответные реакции - что ассоциировалось внутри бота на такое то слово. То есть здесь уже будет контрастирование рефлексов в зависимости от положения ползунка - текущего контекста. Все время крутится в голове, что контекст - это воздействие чего то на нейросеть, что меняет ее ответную реакцию на раздражитель. Если это сделать в виде другой нейросети, встанет вопрос - а что на нее влияет, и т. д. А если под воздействием понимать изменение параметров, например нейромедиаторный фон, меняющий уровень торможения нейронов - тогда можно просто связать его например с текущим положением гомеостаза и получим нужную обратную связь. Это устроено достаточно примитивно, как раз так, как могло бы быть в простейшей природной нейросети, которую мы сейчас собираем. |
Род: nan - админ Сообщений: 12276 |
Ты ясно видишь механизм? |
Род: Palarm - админ Сообщений: 2771 |
Попробую его реализовать |
Род: nan - админ Сообщений: 12276 |
Не торопись, там много моментов, которые нужно учесть: ветвление контекста в новых условиях, когда старый ответ неудачен, возможность зацикливания образа, взаимное торможение конкурирующих вложенных контекстов, ну и образование связей с последующим слоем - как эффект реагирования. Запросто можно потерять много времени... Впрочем, у нас итак высокая вероятность остановиться на рефлексах, но по-любому результаты будем оформлять и извлекать пользу. |
Род: nan - админ Сообщений: 12276 |
Смотри, как примерно все должно выглядеть. Нам не нужно организовывать самоподдержание активности контекстов потому как у нас преимущество: пока переменная контекста установлена в 1 – он активен. В природе возникают самоактивность эффекторв: та или иная мышца дергается. У нас – уже можно задать начальными связями отзеркаливание входных слов с их последовательности (видимо в структуру нейрона нужно ввести массив[100] для хранения последовательности). Задача: в ответ на наказание тормозить такую связь. И тогда должен включаться механизм генерации возможных ответов (какие-то заготовки вариантов ответов, в зависимости от синонимов введенных слов). В природе он есть. Когда ответ оказывается награжденным, то связь устанавливается. Можно за один раз, хотя рефлекс требует повторений. Но есть механизм постепенного ослабления рефлекторных связей, так что новая связь может ослабнуть и старый рефлекс – восстановиться. Не знаю, нужно ли это. Короче, видно, что в описанном случае возникло ветвление с установкой правильной связи. Но ветвление может быть и при смене активности базовых контекстов и тогда на действие может последовать наказание. т.е. видимо, нужно по каждому базовому контексту – свой слой (что в Плане и было предусмотрено), т.е. обучение идет только в рамках данного контекста. Пока не очень вырисовывается, как все это можно применить к тому, чтобы бот смог сам составлять новые фразы из имеющегося е него набора эффекторов (корней и окончаний, разбитых на существительные (с чем действовать) глаголы (как с ними действовать)). Это возложено на предсознательное формирование лобных долей, т.е. на формирование абстрактных моделей понимания. А это пока что вообще игнорируется у нас. Мы с помощью этих моделей понимаем свойства объектов реальности для каждого слова. У бота нет зрения, слуха, обоняния, чтобы сформировать модель Лошадь. Но реально слепоглухонемых обучают и воспитывают, они пишут научные работы. Модели понимания формируются сразу после рождения с опытом столкновения в реальностью. Это - тоже контексты с самого базового Я и до отдельных объектов. В каждом контексте - свойства возможных использований объекта или запрета таких действий. Это и есть понимание того, что будет в тех или иных условий. Возможно нам придется последовательно с обучением создавать такие модели. |
Род: Palarm - админ Сообщений: 2771 |
В принципе я примерно так же представляю схему. Но у меня есть две идеи, решетка и контекстная пирамида, которую я попытаюсь втиснуть в проект. Вдруг это и вправду удачная находка. Сейчас пока задача сделать некий чёрный ящик с регулятором, на вход которого подаётся рецепторная активность, а на выходе в зависимости от регулятора получаем разные варианты выходной активности. Но это не какая попало функция с параметрами, а такая, в которой при изменении параметра как бы смещается спектр выходного сигнала. И тогда не нужно создавать несколько слоев и контрастировать их, а достаточно одного, но с модулирующим внешним воздействием. Это и предстоит проверить, насколько оно верно. Про составление слов я тоже предлагал пока не морочиться этим, может мы до этого и не дойдём. Но вот попугай тоже не умеет составлять слова, однако это не мешает ему вполне удачно и в тему отвечать. И бот я думаю будет так же реагировать. Или даже поначалу как Эллочка Людоедка: мрак! блеск! И т. д. Для такого реагирования даже контрастирования не надо, можно просто меняя порог сдвигать фокус текущего контекста, его и выводить пока на панель, как ответную реакцию. А вот конкретные слова уже надо будет высвечивать в списке ассоциаций текущей группы, там скорей всего без контрастирования не обойтись. |
Род: nan - админ Сообщений: 12276 |
Попробуй свой вариант. У меня уже начинает вырисовываться версия решения. Насчет попугая - верное сравнение, тот не просто так повторяет, а в зависимости от условий и реакции на свой треск. |
Род: Palarm - админ Сообщений: 2771 |
Сделал контрастирование по принципу, что выше написал: есть файл ассоциаций в виде строк сенсоров, где каждая строка - группа ассоциаций. Один сенсор может входить в разные группы, но с разным весом. Вес определяется как положение сенсора в строке в размере от 1 до 100. При активации сенсора активируются связанные с ним группы ассоциаций. Они сводятся в пучок и контрастируются через латеральное торможение по схеме "все против одного", то есть схемы тормозных связей как таковой нет, они просто свалены в кучу и перелинкованы между собой. В итоге часть групп ассоциаций "гасится" и меняется расклад весов между оставшимися. Расчет делается методом итераций. Это все для одного сенсора. Далее нужно сделать контрастирование для групп сенсоров, если введено более одного слова. И тут уже думаю сваливать все в кучу не пойдет, нужна схема перетекания одного контекста в другой, например по схеме "контекстной пирамиды". То есть сначала контрастируются группы ассоциаций для каждого слова, выделяются наиболее значимые группы, потом они контрастируются в предложении. И вот тут уже будет иметь значение, в каком порядке рассчитывать веса, то есть в каком порядке слова в предложении. Так как от этого зависит какой нейрон первым будет выключен и тем самым перестанет тормозить других. На снимках два варианта контекстного ответа с минимальным и максимальным торможением. В скобках вес группы. Корни, которые выводятся на пульт, это первые сенсоры группы в списке, условно - обозначение контекста. А сами сенсоры в группах это по сути ответные рефлексы в виде слов, то, что активируется в ответ на сенсор раздражитель. Бот тем самым показывает изменение своего состояния. Чтобы получилось более осмысленное предложение, нужно прикрутить модуль, который на основе этих контекстов будет выдавать стандартную заготовку фразу или собирать слова по синтаксическим правилам. Но это думаю еще дальний космос и заморачиваться им не стоит. Сейчас главное получить "осмысленную" ответную иерархию контекстов. Гомеостаз по идее должен воздействовать на этом уровне на контрастирование, для этого в функции торможения участвуют параметры порог и вес тормозной связи. Их пока не связывал с гомеостазом. Потом тебе сброшу, как еще доработаю с весами. |
Род: Palarm - админ Сообщений: 2771 |
Как мне видится дальнейшее развитие схемы безусловных рефлексов, организация "ветвлений". При этом имеется в виду, что сеть безусловных рефлексов полностью сформированная и "ветвления" означают переключение одного пути рефлекса на другой. По аналогии с ЖД-узлом, где можно только стрелки переключать, но нет возможности прокладывать новую колею. Для этого есть более продвинутая адаптация - условные рефлексы.
То есть нейросеть безусловных рефлексов это как бы все возможные варианты реагирования на определенные условия. Понятно, что такая система ограничена тем, что невозможно развивать ее бесконечно, в какой то момент она станет неподъемной. Кроме того, если жестко прописывать рефлексы строго на определенные условия, то она еще и не модифицируема на уровне жизни особи. Единственный способ улучшения - случайная мутация, новое ветвление, оказавшееся успешным. Но на самом деле такая вроде бы жестко структурированная сеть тоже может изгибаться в некоторых пределах допуская тем самым вариабельность реагирования.
Собственно про вариабельность такого рода уже говорил - просто чуть сдвигаем параметры сетки и она показывает другой эффекторный рисунок - при тех же связях и весах. Но оставался вопрос - что "двигает ползунок" параметров. В самом простейшем случае его можно просто связать с текущим состоянием гомеостаза, но поразмыслив я думаю это будет масло-масляное. Это не особо улучшит адаптацию, и не даст вариабельности кроме той, что просто добавится зависимость реагирования от гомеостаза. Но в полноценном понимании адаптации должен быть датчик новизны, который возбуждается на изменение привычного окружения и провоцирует поиск нового решения.
Новизна на уровне безусловных рефлексов определяется путем сравнения прогностического рефлекса в цепочке реагирования с реальным. То есть система пытается предсказать, каким будет следующий раздражитель, и если не угадала - включается детектор новизны. Например для бота это будет выглядеть так: "привет, как дела?" "привет, как поживаешь?" Здесь 2 фразы общего смыслового контекста. Бот последовательно активирует рефлексы на сенсоры "привет", "как" и далее ожидает например, что следующим будет сенсор "дела", но вместо него активируется сенсор "поживаешь". Это расхождение и активирует датчик новизны - расхождение прогноза с реальностью.
Чтобы организовать такой механизм потребуется стек, который уже ввел Nan. Там как раз хранится код предыдущего и последующего нейрона цепочки. Это значит, если согласно установленным связям нейрон возбуждает другой нейрон, то они фиксируют коды друг друга в своих стеках. И так можно делать до какого то уровня вложения, чтобы например запомнить варианты: как дела, как поживаешь, как делишки, как ваше ничего и т. д. Обучение означает, что при активации новизны записывались коды пары нейронов в их стэки и например случайным образом сдвигались параметры сети, чтобы получить немного другой рефлекс. Оценка учителя плохо/хорошо закрепляет этот вариант, или отменяет его, побуждая сдвинуть параметры сети еще больше. И так до какого то уровня, пока не получится "хорошо".
То есть безусловно-рефлекторную нейросеть модифицировать нельзя по определению, но можно получить с нее конфигурации реагирования изменением параметров сети. Датчик новизны для запуска такой псевдо-модификации реализуется при помощи стека памяти предыдущего и последующего нейрона в цепочке.
Интересно Nan, насколько это совпадает с тем, что ты сейчас делаешь по поводу рефлексов и для того ли ты ввел стек? |
Род: nan - админ Сообщений: 12276 |
>>насколько это совпадает с тем, что ты сейчас делаешь по поводу рефлексов и для того ли ты ввел стек? Это совпадает в основе, в принципе, но стек у меня не задействован, а новизна определяется по отсутствию предопределенной реакции на данное сочетание признаков, главные из которых - состояние базовых контекстов. |
Род: Palarm - админ Сообщений: 2771 |
Вообще то новизна в любом случае это обработка прерывания в опросе если...то..., когда все предыдущие если/то пройдены и ни одно не подходит и надо писать новое "если". И в случае со стеком точно так же, только у тебя пока распознается статическое сочетание признаков, а с использованием стека можно различать динамическое. То есть фразы привет, как дела - как дела, привет - дела как, привет - при статическом распознавании будут считаться одинаковыми, потому как сенсоры там одни и те же, а при динамическом дополнительно распознается порядок слов при помощи стека.
Интересно, что при контрастировании имеет значение порядок активации сенсоров, стало быть и безо всяких стеков распознавание при разном порядке слов будет отличаться. Уже сейчас получаются разные веса распознанных групп ассоциаций и даже сами группы могут меняться. Получается, что можно пока и не заморачиваться стеком, раз оно и без него работает. |
Род: nan - админ Сообщений: 12276 |
Как прикидывать качество новизны. Есть набор предопределенных реакций в зависимости от отклонения гомеостаза от нормы (актуальные потребности). Какие бы другие условия не появлялись, эти реакции должны отрабатывать потому как особенности условий пока не известны. Но как только в результате реакции появляется НЕГАТИВ, то она должна быть заблокирована для распознанного сочетания условий (условный рефлекс избегания). И вот тогда оказывается ситуация, когда базовая потребность (значимость) есть и высока, нужно реагировать, но реакции не происходят. Вот это уже – актуальная новизна, которая требует сосредоточить внимание на данной ситуации и придумать решение – уровень осознания. |
Род: Palarm - админ Сообщений: 2771 |
Тут решающим становится определение плохо/хорошо для бота. Для этого нужно, чтобы слова воздействовали на его гомеостаз как будто это реальные сущности, или точнее - как будто они отражают воздействие виртуальной реальности на бота. Но помню по этому поводу так ни к чему и не пришли.
Я думаю, тут только один вариант: назначать словам свойства, в каком % они плохо/хорошо влияют на гомеостаз бота. Тут могут помочь ассоциации. Если взять ассоциации к слову "Плохо" - то все они однозначно негативно влияют на состояние бота. Потому, что ассоциации отражают нашу человечью нейросеть, где уже выделены и закреплены правильные реакции на слова, в данном случае варианты негативного реагирования на слово "Плохо". Чтобы понять насколько негативно - нужно определить вес негатива-сенсора. Это опять же можно сделать эмпирически. И вообще по другому это никак не сделать - только спрашивая самого себя, что ассоциируется и на сколько точно. Мы же бот делаем как копию нашего человечьего восприятия реальности. По умному тут надо провести масштабный сбор данных с группами добровольцев или воспользоваться готовыми словарями. Я такие словари и использую, причем там при беглом взгляде еще и сортировка имеется. То есть чем ближе слово в группе к началу списка, тем больший у нее вес. Но так как вряд ли возможно все 30 000 сенсоров разбить по двум группам Плохо/Хорошо, вернее это сведет всю реакцию бота на примитивное двухуровневое реагирование, лучше 2 базовые группы разбить на подгруппы, их еще и т. д. - в итоге получится дерево ассоциаций, где в основании пирамиды множество мелких контекстов, активация которых приводит к возникновению цепочек-ветвлений снизу вверх. В итоге прийти к вершине, где начальная пара плохо/хорошо, можно множеством путей-ветвлений, а это дает еще дополнительную вариабельность реагирования: не просто плохо - а почему конкретно плохо. Я думаю, если мы доберемся до высшей нервной деятельности, то такие пирамиды будут служить основой для более сложной организации мыслительных автоматизмов, потому как они служат грубой разметкой для них.
Хотя конечно, все зависит от ГО. В каком месте он начнет отчаянно тупить и виснуть. Пока что удается придумать обходные маневры, но они не универсальны, а только для текстового бота. Например словарь ассоциаций это прыжок на километр вперед, даже файл сенсоров - это ведь не рецепторы в буквальном понимании, а уже сформированный слой эффекторов-корней. |
Род: nan - админ Сообщений: 12276 |
В скинутой тебе текущей версии - другой вариант, но интересно, что получится и из твоего. |
Род: Palarm - админ Сообщений: 2771 |
А я пока все пытаюсь разнести все 30 000 сенсоров на несколько десятков или хотя бы сотен ассоциативных групп. Идея вроде бы очевидная в своей простоте - какой бы сенсор не активировался, он активирует какую то из групп - это и будет контекст, базовая реакция. Ведь если ассоциация это ответный образ, возникающий у нас в голове, то их можно сгруппировать, обозвав каким то общим словом, потом опять сгруппировать - и так прийти к базовым понятиям, которые по идее всего два слова: плохо/хорошо. На деле все просто, а по факту - все равно что придумать "таблицу Менделеева" для ассоциаций. |
Род: nan - админ Сообщений: 12276 |
Это может быть полезным ТОЛЬКО на уровне создания безусловных рефлексов - для облегчения самого общего вида реагирования.
А вот контекст значимости из этого, на мой взгляд, делать не стоит. Контекст значимости в своей основе - детектор состояния параметров гомеостаза, а не того, что сказал собеседник. У нас это оценивается уже на уровне осознания, когда мы придаем определенный смысл, произвольную значимость сказанному. Но тут не так просто. Насекомое, увидев признаки еды, не изменяет этим контекст значимости пока не поест, но эти признаки могут приводить к срабатыванию предопределенной реакции. Т.е. не базовый контекст, а условие срабатывания реакции может содержать слова и их синонимы. В случае условного рефлекса да, новый контекст образуется уже с участием совокупности воспринятого при фиксировании новой связи с программой реагирования или при торможении ранее закрепленной с базовым контекстов безусловной реакции. В первую очередь, в основе, воспринятое не следует использовать для модуляции базовых контекстов. |
Род: Palarm - админ Сообщений: 2771 |
Я пока что их и имею в виду. Вот что сейчас получается с твое фразой: номер группы | обозначение группы (сенсор в группе с макс. весом) Группой я называю ассоциации на одно слово, которое служит ее именем. Можно с натяжкой назвать это контекстом, так как по сути это "укрупненные рефлексы" реагирования. Задача была на условно 30 000 сенсоров сделать например несколько десятков или сотен базовых реакций. В моем понимании иерархическое реагирование строится по принципу: быстрая реакция общего плана - уточненная реакция, если не решилась проблема - еще более уточненная и т. д. Основание для такого понимания:
1. развитие нервной системы шло от простого сложного путем наслоения усложняемых реакций поверх простых. 2. реакции общего плана ресурсно менее затратные (в смысле вычислительных мощностей) и логичнее попробовать сначала их. То есть сначала отпрыгнуть в сторону, а потом уже рассмотреть, что там было. Эволюционный отбор показал, что это оптимальная стратегия.
Такие быстрые реакции являются безусловными рефлексами, потому как эволюционно более ранние. Я их назвал контекстами, потому что сначала они срабатывают, а потом уже, на основании полученного результата уточняющие, если нужно. Например по фразе:
приветствую - ПРИВЕТСТВИЕ - не нужно уточнения вас - ВЫ - не нужно уточнения дорогие - ЧЕЛОВЕК - нужно уточнить, какой конкретно человек или люди наши - ОБЩИЙ - нужно уточнить, общий вообще или для какой то группы и т. д.
Такие уточнения я предполагал делать при помощи ассоциативного дерева, а управлять ветвлением в нем при помощи параметров нейросети, например торможением, которое связано с гомеостазом. Например на каждом шаге обхода дерева обратная связь от гомеостаза будет корректировать ветвление так, чтобы кривая пути стремилась к центру дерева, так как там находятся наиболее комфортные ассоциации - средний уровень гомеостаза.
Думалось так проще будет, но пока факту, что мой, что твой подход одинаково геморные. В моем случае надо правильно разнести ассоциации по группам и в дереве, и в каждой группе отсортировать их по весу. В твоем надо вручную прописывать рефлексы. Что распутывать клубок, что заматывать по схеме - один хрен возни будет порядком. |
Род: nan - админ Сообщений: 12276 |
Это - хорошая идея. У меня сейчас все предопределенные рефлексы как бы одного уровня и я думал устроить им конкуренцию только на основе веса значимости контекста, в котором они зашиты. Но весь в природе и в самом деле все реакции формируются на основе предыдущих, если есть более молодая реакция, то более общая не срабатывает. И это легко можно организовать просто сначала опрашивая более общие реакции, потом следующий уровень (с более узкими условиями) и потом уровень еще более узких условий (число таких уровней можно не задавать, а строить по необходимости). И тогда последняя реакция будет - на выполнение, перекрывая предыдущую. Реализовать это можно и другими способами, уже не принципиально как. |
Род: Palarm - админ Сообщений: 2771 |
Я представляю это так: у червяка есть тактильный сенсор, при активации которого происходит выброс гормона, провоцирующего резкие судорожные движения, вроде эпилептических припадков. Какой то процент хищников это отпугивало. Но вот случилась мутация, появился новый слой рецепторов, способных определять, с какой стороны было касание. Он провоцирует усиление сокращения определённой группы мышц, в результате получилось уползание в сторону. Каждый новый рецептор отвечает за свое направление. Теперь система работает так: если кто то коснулся сбоку, активируется старый рецептор, выбрасывая гормон и новый, задающий направление уползания. Если клюнули сверху включается только старый и отрабатывает прежние хаотичные движения. Теперь старый служит фоновым и я его называю контекстным, потому что он задаёт общую реакцию, которая раньше была основной. Точно так же рецепторы уползания станут фоновыми для нового слоя, если там сформируются ещё более детализируюшие и т. Д. Я понимаю контекст как группировку активностей нейронов по логике ИЛИ, только как бы вывернутую наоборот. Вершина веера связей не группирует сигналы, а испускает их. Она автоматически возникает потому что на раздражитель активируются как старый так и новый рецепторы и в результате они образуют связи. Старый теперь посылает веером сигналы на новые, он как бы подогревает их, повышая им чувствительность и являясь фоновым. То есть он не сам блокируется, а только частично его связь, например к мотонейрону, если она была, но не к выбросу гормона. А реагирует он по прежнему активно. |
Род: Palarm - админ Сообщений: 2771 |
По сути, формируя ассоциативную пирамиду, где каждый узел это группа сенсоров, я создаю виртуальную вселенную бота. Так как узлы распределяются по степени своего негативно-позитивного влияния на бота. Ведь вершина пирамиды это два узла плохо-хорошо в максимальном значении, а все прочие по сторонам от них показывают степень этих свойств. Тем самым я для каждого сенсора задаю тип и уровень его воздействия на бота, без чего невозможна никакая адаптация. В реальности это получалось бы само собой, так как например 2 первичных датчика черно-белое отличали бы только ночь от дня и задавали бы грубо когда спать, когда кормиться. Потом появились бы датчики сумерек, рассвета и т. Д, более точно устанавливающие рамки. Но все они просто уточняли бы в какой степени спать/жрать. Вся адаптация крутится вокруг граничных условий, которые сначала просто делят реальность пополам, потом ещё пополам и т. Д насколько получится её детализировать, точнее насколько это нужно для конкретной особи. Но какой бы огромной не была пирамида, все её узлы всегда делятся на две части - базовый, начальный диапазон адаптации, переход границ которых означает смерть, а середина оптимум. Адаптация нужна чтобы максимально точно его определить, для того и дробятся узлы.
Смысл жизни, в её абсолютном абстрагированном понимании точно показали жабы в мульте про дюймовочку: ну вот поели, можно и поспать. Ну вот поспали, можно и поесть. Это не даёт заглохнуть генератору колебаний гомеостаза. Благодарность от: Клон |
Род: Palarm - админ Сообщений: 2771 |
Сделал примеры последовательного развертывания нейросети для распознавания диапазонов реагирования. Распознаватель 3 диапазонов, распознаватель 5 диапазонов.
Теперь становится более понятно, как нужно группировать сенсоры, и как автоматически ветвятся контексты. Не зря мне свербило, что на уровне безусловных рефлексов не может быть никаких обучений с учителем, кроме наипростейших стимуляций. И с учетом принципа наследования, когда каждый последующий слой не отменяет функциональность предыдущих, а дополняет - должен быть какой то совсем примитивный принцип построения адаптационных схем. По сути, это все равно как если в рабочий прибор, не перепаивая ничего, просто воткнуть новую плату, нажать кнопку - и он заработал по новому. И так до бесконечности. Казалось бы, как такое возможно? Но именно так и происходит адаптация. Единственная аналогия, которая подходит под такой алгоритм - дробление. Разрезал пополам, потом еще пополам - и таки да, такой ерундой можно заниматься теоретически бесконечно, всякий раз получая все более мелкие сенсоры, улучшающие качество распознавание и как следствие - все более сложную адаптацию. При этом старые, более крупные грубые сенсоры как работали так и работают.
Касаемо бота выходит надо отсортировать сенсоры так, чтобы получились участки группы (рецептивные поля для нейронов), но обязательно с перекрытием. А потом простым двухшаговым циклом прогнать обучение нейронов, последовательно добавляя слова. В итоге развернется нейросеть, которая автоматически будет переключаться при возрастании/убывании на нее воздействия на все более мелкие диапазоны, а при широком диапазоне воздействия включать более низкоуровневые активации. В итоге получается автоматическое ветвление. |
Род: nan - админ Сообщений: 12276 |
Очень хорошая аллегория!
Вот здесь у меня другое мнение, но ни в коем случае не стану отговаривать :) посмотрим, что дальше будет. У нас получается проверка двух разных концепций на двух проектах. |
Род: Palarm - админ Сообщений: 2771 |
Я думаю, тут скорей всего один концепт, сформулированный по разному, или один из них частный случай другого. Попробую собрать схему из 5 рецепторов по тому же алгоритму. Если получится - тогда останется уже алгоритм в прогу забить и окончательно проверить концепт на верность. |
Род: Palarm - админ Сообщений: 2771 |
При построении схем по такому алгоритму возникло несколько интересных вопросов:
Для искусственной нейросети это все без разницы, главное правильный алгоритм развертывания новых слоев, не нарушающий логику работы предыдущих. Но понять его можно только опираясь на природную реализацию, поэтому думаю имеет смысл ставить такие вопросы, чтобы понять, как оно устроено в работающей природной модели.
Буквально несколькими постами выше я убеждал тебя, что "старый теперь посылает веером сигналы на новые, он как бы подогревает их, повышая им чувствительность и являясь фоновым", и тут же практически следом "нейроны нового слоя гасят тормозными связи нейроны предыдущего". Так гасят или подогревают? И кто кого гасит/подогревает? Сейчас у меня вроде как убедительно выходит что новые гасят старые, а у тебя судя по всему, что старые греют новые. Но самое интересное будет, если обе версии окажутся верными, но в своих границах. Например для ситуации созревания первичных слоев в первую очередь работает концепт торможения, а для развития динамики реагирования с помощью межслойных активных связей на передний план выходит уже концепт подогрева. |
Род: nan - админ Сообщений: 12276 |
Вовсе ничего не обязано кодироваться в геноме :) вот как раз в статье про наследование признаков показывается почему именно и как получается, что на каждом этапе экспрессии генов возникает своя специфическая картина белков-строителей. Ты не вкурил принцип :) Геном может и предопределяет практически всю сложность существа, но при условии определенной среды. |
Род: Palarm - админ Сообщений: 2771 |
Со средой все понятно, ЖД-колея, переключение путей, предопределяют куда поедет поезд. Но в то же время локомотив движется с какой то скоростью, которая не имеет никакого отношения к ЖД-инфраструктуре. Вот я про это имел в виду. А ты про то же самое как то туманно "может и предопределяет, но при условии...". У меня вопрос был: что конкретно, какую часть процесса формирования берет на себя геном, и как конкретно это делается. Если мы будем прикручивать искусственный геном в проект, это ведь надо предельно ясно понимать.
Погонял вручную алгоритм на разных кол-во рецепторов и теперь практически ясно вырисовывается принцип формирования распознавателей диапазонов. Алгоритм в итоге очень простой:
И вот тут начинается самое интересное. Практически невозможно предсказать, сколько потребуется нейронов для формирования всех возможных диапазонов реагирования и как протянутся активирующие тормозные связи. Это зависит от последовательности активации рецепторов. Вот тут как раз просится масштабное исследование, чтобы прогнать все мыслимые варианты и посмотреть графики. Но можно сразу предположить, что чем больше рецепторов, тем более запутанная и сумбурная получится сеть. Она даже может вообще не получиться и улететь в бесконечный цикл формирования. У меня например получалось, что нейрон, успешно научившийся распознавать свой диапазон, в итоге оказывался задушенным тормозными связями от новых формирующихся нейронов и часть линейки снова оказывалась не детектируемой. А если еще учесть, что в реальности нейроны не строго одновременно рождаются, созревают - это добавит еще больше хаоса. Вообщем уже эксперименты с конструктором дают повод сказать, что природная нейросеть крайне сумбурно-хаотичная и просто тупо запускать природный алгоритм явно не катит. Будет очень много лишних, бестолковых связей, никак не учавствующих в процессе распознавания но забирающих на себя вычислительные ресурсы. Как например нейрон №3 в схеме с 3 рецепторами. В процессе обучения нейроны могут менять свою специализацию или вообще выключаться из процесса, становясь "лишними". Для природной нейросети это может и пофиг, но в программной это потребует запускать спец. цикл оптимизации схемы, для поиска таких нейронов и удаления. При этом может оказаться, что вроде бы "не нужный" нейрон после удаления оказывался участником какой то запутанной схемы торможения и придется заново прогонять цикл обучения, получая новые "лишние" и дополнительные нейроны. Еще тот винегрет. Думаю, по этому поводу будет целый раздел нейро-инженерии.
Причем эта проблема не только для искусственной нейросети. Логично предположить, что особи нащупавшие некий более быстрый алгоритм формирования градуированной шкалы диапазонов получали фору перед другими с более бестолковым алгоритмом. Такая оптимизация означает введение дополнительных правил. Например, протягивать тормозные связи не ко всем активным нейронам вокруг созревающего, а только к нейронам предыдущего слоя. Я проверил оба варианта: если гасить только предыдущий слой а не все вокруг, это существенно уменьшает кол-во нейронов для формирования линейки значений параметра. С 3-4 рецепторами это делается даже за один прогон. А вот если тормозить все активности, то уже с 5 рецепторами начинается нагромождение слоев, которые нужно для того, чтобы группировать активности с предыдущих. Ведь гашение нейрона означает отключение его тормозных связей, что откатывает процесс обучения назад и получается бестолковое топтание: шаг вперед - два назад, два вперед - один назад. И это может затянуться на очень долго.
Другой интересный момент - последовательность формирования распознавателей. Тут опять же, интуитивно подумалось: сначала нужно научиться распознавать ноты, а потом уже аккорды. И действительно, если на первом слое формируются только связи с одиночными рецепторами и никаких торможений, а на втором фиксируются перекрытия диапазонов с торможением нейронов первого слоя - в случае с 3 рецепторами линейка формируется на двух слоях и в один прогон. Это показано на примерах выше. То есть учиться сначала тыкать одним пальцем по клавишам пианино, и только потом аккорды - эффективнее и быстрее, чем сразу аккорды. Возникает вопрос - всяко природа к этому тоже пришла, но как это реализуется? Никто же не будет тебе сначала показывать короткие отрезки, а потом длинные ломанные. Как родился - сразу учись на том окружении, что есть, а там всего намешано. И тут вспомнилась давнишняя идея, которая возникла еще при экспериментах с первым нейроконструктором - фоновая засветка. В самом деле, если напротив рецепторной матрицы расположить матрицу эффекторов, потом активировать все рецепторы одновременно, то эффекторы автоматически привяжутся каждый к своему рецептивному полю по логике ИЛИ. Это значит, что они как бы разлинуют рецепторную матрицу на участки. Если каждый участок представить на схеме как одиночный рецептор с диапазоном реагирования, то и получится нужная связь 1 к 1 на первом слое. Вот для чего нужна решетка связей на первом слое - для оптимизации обучения. И первый слой в таком случае может формироваться еще в утробе, потому как для фоновой засветки не нужно внешнее раздражение, можно это сделать просто возбудив все рецепторы каким то химикалием.
Но к сожалению, все это только интуитивные догадки. Конкретные цифры можно получить только после масштабных экспериментов. А оптимальный алгоритм нужен уже сейчас. Придется двигаться на ощупь, по наитию. |
Род: Palarm - админ Сообщений: 2771 |
Собрал схему из 5 рецепторов на 9 диапазонов. Пришлось делать 3 прогона, чтобы свести детектирование к одному нейрону.
Пришлось протягивать тормозные связи не только к предыдущему слою, но иногда и к более ранним, вплоть до 1. Но зато выдержан одинаковый алгоритм: от рецепторов активирующие связи, к предыдущим слоям тормозные. То есть добавляется новый эффектор, связывается с рецепторами и гасятся все эффекторы, которые активируются на тот же диапазон от прежних связей. После их гашения иногда включаются другие эффекторы и цикл надо повторять. Например при формировании 4 слоя пришлось трижды прогонять его, чтобы сначала загасить нейроны 3, потом второго, потом первого. Назвать итоговую схему оптимальной как то язык не поворачивается. Тем более, что если на 9 диапазонов потребовалось 19 нейронов, то 5 из них явно лишние. Но не факт, что выкинув их из схемы вся конструкция не посыпется как карточный домик и опять придется запускать алгоритм обучения, который снова потребует наращивания слоев. |
Род: Palarm - админ Сообщений: 2771 |
А вот эту схему не удается свернуть до активности одиночных нейронов на выходе. Потому, что там изменил алгоритм: активные связи от предыдущего слоя, тормозные только внутри слоя. В итоге правая часть перестала сворачиваться. Отсюда можно сделать вывод, что одним лишь внутрислойным торможением не удастся свернуть как минимум некоторые схемы. А в предыдущем примере получается, что одним лишь межслойным торможением некоторые можно. Стало быть, надо использовать оба типа торможения и скорей всего два типа активных связей: между соседними слоями и сквозные, между несколькими слоями. Программно более выгодно получить больше связей и меньше нейронов, а в природной реализации скорее всего наоборот. Потому как тормозная связь делается опосредованно при помощи вставочных тормозных нейронов, которые примерно равномерно распределены внутри слоев и между ними. Их число не бесконечно и в какой то момент может оказаться что нечем тормозить.
Интересно еще проверить, возможно ли просто многократно прогоняя цикл торможения активностей внутри слоя свернуть его до одиночных активностей? Понятно, что тут нужны масштабные, а не одиночные эксперименты, но думаю, вполне возможны ситуации, когда произойдет закольцовка по типу: гашение нейрона выключает его тормозные связи, включаются ранее заторможенные нейроны, их гашение в повторном цикле оптимизации выключает их тормозные связи, которые тормозили предыдущий заторможенный нейрон. Потеряв их торможение он проснулся - и т. д.
В этой схеме я сразу начал обучение с первого слоя без всяких фоновых засветок. Получается, они все таки не нужны, потому как в предыдущем примере "лишние" нейроны как раз и были нейроны первого слоя, кроме крайних. |
Род: nan - админ Сообщений: 12276 |
В статье Наследование признаков все описано конкретно именно с интересной тебе точки зрения. Начни читать с предложения: "Все это происходит только потому, что начальное состояние вещества в данных условиях с неизбежностью приводят к развитию такого результата." >>к сожалению, все это только интуитивные догадки. Конкретные цифры можно получить только после масштабных экспериментов. То, что уже с самого начала начались непонятки – серьезный сигнал. Ты разделяешь слова сенсора по синонимам? Но синонимы – очень далекая фича на уровне субъективных моделей и поэтому входной сенсор не должен на них основываться. Другое дело, когда ты синонимы используешь для подсказки, что вот такое слово является == такой-то группе слов. Я уже использовал синонимы именно для такой цели и мне не подошли все те синонимы, что дает ресурс онлайн, я выбираю в группы только в самом деле тождественные слова (в самом общем представлении, каковым является входной сенсор, где еще нет никаких значимостей и смыслов). Мне кажется, что если у тебя не возникает гениальной идеи как выкрутиться из твоего начинания, то лучше перестать терять на это время потому как кроме тебя никто не сделает “масштабные эксперименты”. Не хочу привносить соревновательность, но просто к сведению, у меня уже готова система безусловных рефлексов базового и последующих уровней (по твоей идее – реакции на основе реакций), что является заделом уже для безусловных. Я набил несколько тестовых рефлексов, которые срабатывают при определенном сочетании базовых контекстов значимости с присвоенными им весами значимостей. Вот реальный пример. Когда забиваешь фразу: “сделаю больно” в условиях нехватки энергии и сопутствующем стрессе, то бот в ответ тоже делает больно и пишет: “Мне больно!”. ФОТО На основе этого рефлекса сделан такой, что если при тех же условий написать: “сделаю больно шучу”, т.е. добавить еще одно новое услове, то срабатывает это ветвление более общего контекста и бот пишет: “Прикольно!” и смеется. ФОТО Попутно получился детектор нового и определитель наиболее актуального контекста реагирования – для ориентировочной реакции. Так же сделаны кратковременно доминирующие контексты эмпатии при передаче боту своего состояния (несколько кнопок на пульте: “Передать свое настроение”), что уже является основой для отзеркаливания чужого опыта. Короче, все идет по феншую, уверенность увеличивается. |
Род: Palarm - админ Сообщений: 2771 |
Я их не использую. Вместо этого запал на ассоциации. Уже говорил суть своей стратегии:
ассоциации - готовые рефлексы, ответные реакции на слова-сенсоры, но собранные до кучи от разных ситуаций. Если удастся разложить их по полочкам и группам, чтобы было понятно, какая ассоциация для какой ситуации уместна - получим диалог в стиле Эллочки-людоедки. Потом останется на его основе сгенерить более похожие на человечьи ответы. То есть я исхожу из того, что база ассоциаций это прошедшие обработку во множестве реальных мозгов слова-сенсоры. И можно не заморачиваться, почему дом, квартира, конура, кибитка - это все жилище. Потому что так уже забито в базе.
Получается по сути чуть не одноуровневая сеть и надо просто настроить распознаватели. И вот тут возникают проблемы. Если на каждое слово забить файл ассоциаций - она раздуется до сотен тысяч слов, потому, что одни и те же слова входят в разные группы, но расположенные в разных местах ряда. Положение в группе определяет вес соответствия слова этой группе при нейтральном состоянии. А при других состояниях слово сдвигается в какую то сторону, становясь более или менее соответствующем группе.
В итоге тупой вариант: просто набить базу ассоциаций на каждое слово - это будут группы соответствующих реакций. Причем даже не надо перебирать все 27 000 слов основного файла, потому как некоторые списки ассоциаций включают в себя более 1000 слов. Но многое зависит от того, насколько точна эта БД.
Другой вариант - прикинуть как в природной реализации происходит группировка. Тогда с учетом перекрытия диапазонов групп-списков нужных групп можно забить существенно меньше. Но тут надо понять, по какому алгоритму формируются связи с группами. Чем я и занимался. В принципе сразу было понятно, что активирующие-тормозные связи внутри слоя, между слоями выстраивают дерево ветвлений в сети. Но что с чем в какой степени, и главное - по какому приницу-алгоритму они формируются? Я исходил из того, что он должен быть предельно простым и общим для всех слоев. А не так, как в сверточных сетях, где свертка происходит настройкой множества фильтров.
То есть главное расхождение - ты пишешь рефлексы от простого к сложному, а я решил схитрить и использовать готовую базу рефлексов. Ветвления при выборе я предполагаю сделать меняя параметры процедуры торможения. |
Род: Palarm - админ Сообщений: 2771 |
По моей схеме, если она получится, это просто перекрытие двух разных диапазонов ассоциаций, которое активирует другой эффектор. То есть я пытаюсь построить глобальное ассоциативное дерево ветвлений, чтобы какую бы фразу не вбил - оно чего то выдало. И управлять дополнительно его ветвлением например торможением. Это будет тупое насекомое с чисто безусловными рефлексами. Но для этого надо разгадать принцип, по которому строятся деревья связей в реальных мозгах.
Удручает правда, что как ни крути - а нейронов дофига получается, и там уже надо полноценное торможение, а не упрощенное, как сейчас у меня сделано. Это быстро сожрет ресурсы и все повиснет. И есть подозрение, что я слишком доверился БД с сайта. Я ее тщательно не проверял, но если ты говоришь, что синонимы там косячные, может статься что и ассоциации такие же. А у меня все на них повязано. На крайняк сделаю вручную небольшую базу, чтобы хотя бы принцип проверить. |
Род: nan - админ Сообщений: 12276 |
Твое упорство восхищает. Желаю чтобы, как минимум, получились интересные результаты. |
Род: linuxoid Sr. Poster Сообщений: 127 |
Интерфейс смотрится оптимистично. Будет ли эта штука доступна для экспериментов? PS Освоил в Го общий синтаксис, срезы и функции. Интерфейсы, методы и более сложные вещи ещё не трогал. Надо ещё подкачаться? |
Род: nan - админ Сообщений: 12276 |
Пока работаем в локале, потом вынесем на реальный сайт. Я тебе в чате дал инструкции.
Подкачаться лучше всего в реальном деле :) |
Род: Palarm - админ Сообщений: 2771 |
Вроде нащупал оптимальный алгоритм свертки рецепторной активности до активаций одиночных эффекторов. Делается в два этапа:
В итоге правильный алгоритм: сначала быстрое арпеджио по всему диапазону для протягивания связей, потом уже простукать конкретно каждую ноту. Оказалось с точностью до наоборот, как я думал поначалу. |
Род: Palarm - админ Сообщений: 2771 |
С безусловными рефлексами у меня пазл сложился: Звено ветвления безусловных рефлексов, ветвление безусловных рефлексов. В описании подробно показан принцип, по которому они формируются и ветвятся. Не понадобилось ни фоновых засветок, ни регулировочных ползунков, чтобы получить теоретически работающую самонастраиваемую нейросеть. Адаптирующуюся эволюционным путем разумеется, но в нашем программном случае эволюция мгновенная. Это просто добавить пару сенсор - нейрон и запустить 2-уровневую процедуру обучения. И я не нашёл в моей интерпретации каких то серьёзных отклонений от твоей теории. Всё то же наследование, построение нового на базе старого, причем это даже жёсткое правило, а не рекомендация. Иначе схема быстро запутывается и разрушается.
Nan, можешь прокомментировать, насколько это совпадает/не совпадает с твоим пониманием? |
Род: nan - админ Сообщений: 12276 |
>>гомеостаз можно представить графически в виде постоянных колебаний вокруг оси оптимума. При этом иногда амплитуда колебаний выходит за пределы оптимальных значений и требуются компенсирующие меры для ее возврата. Не могу с этим согласиться и уже писал, что колебания равновесного процесса зависят только от величины задержки обратной связи, если она оказывается такой, что вместо отрицательной, на какое-то время связь становится положительной. Пример – тремор рук, если стараться сознательно отслеживать и контролировать движение: на осознание тратиться время и получается пропуск момента компенсирующего воздействия. Можно сделать водяной термостат так, что греющая лампочка будет то зажигаться, то гаснуть, а можно так, что лампочка примет усредненный для баланса накал, без крайностей. Нужно только ввести задержку в регулятор нагрева. Есть люди, которым прописано питаться 8 раз в день и у них практически нет голода, а поддержание едой проходит ровно, без колебаний. Так же с дыханием. Мне кажется, тебе стоит убрать это непринципиальное звено в рассуждениях о ветвлении.
>>новые рефлексы вовсе не случайно-хаотичны, а всегда строятся на базе предыдущих, являясь их продолжением. Вот это -основа. Осталось определить, а что делают новые рефлексы в дополнении к старым, не просто “Рефлекс R2 это клон рефлекса R1, но с более низкой активностью.”. Действие вторичного рефлекса вообще может никак не коррелировать с действием базового и вот почему. Предположим, базовый рефлекс “потянуться за едой” возникает, когда в восприятии есть еда и есть голод. И тут появляется еще одно условие: еда болтается на рыболовном крючке. Если схватишь, получишь травму (в лучшем случае) когда можно запомнить ситуацию: если при двух первых рефлексах появился крючок – то не хватать еду, а в дальнейшем еще и найти удачное решение чтобы еду, все-таки добыть в таких условиях. Рефлекс появился в базовом контексте двух условий, но добавилось третье и действие должно стать совершенно иным. Сначала в новых условия старый рефлекс просто должен заблокироваться. Потом начинаются поиск решений и если будет найдено удачное, то в этом контексте закрепиться действие. Вот как должны ветвиться рефлексы. Прикинь, что по сути имеем дело с универсальной функцией, которая должна вызывать сама себя чтобы проверять, если в данном наборе условий блокировка действий или новое действие. Если есть – проверять глубже на наличие еще каких-то условий, если нет – то вот она конечная реакция. И для программной реализации такого совершенно не нужны и даже очень вредны нейроны с последовательным сканированием их состояний. Вот в чем я очень четко убедился, что нефиг в программной реализации эмулировать дискретные элементы. Это только забирает ресурсы и ничего не дает. У меня больше нет нейронов в проекте и все принципы выполняются программно. В частности, после уровня самых базовых рефлексов, для всей иерархи последующих рефлексов на базе рефлексов, для проверки вложенных более узких контекстов (сочетаний условий и наличия реакций для них) используется единственная рекурсивная функция. Она уже отработана, в том числе, и для условных рефлексов. |
Род: Palarm - админ Сообщений: 2771 |
У тебя заложен параметр скорость потери энергии, есть кнопка покормить бота. В итоге получаются пилообразные колебания. Потому, что есть постоянный процесс угасания энергии, а в противоположность ему резкие всплески после кормежки. Это по сути простейший RC генератор. Так же имеют место внешние воздействия, возбуждающие или угнетающие гомеостаз, что вносит свои гармоники в колебания. Почему ты это не хочешь назвать постоянными колебаниями, хотя они явно имеют место быть. Конечно там нет стабильной частоты, амплитуды. Или ты имеешь в виду, что колебаниями строго говоря можно называть только процесс со стабильной несущей частотой, на которую могут накладываться другие частоты, но тем не менее в таких колебаниях всегда присутствует несущая. В гомеостаческих колебаниях этого нет, там непредсказуемые изменения уровней, что можно назвать лишь хаотичными колебаниями, которые строго говоря вовсе не колебания. Если так то согласен, не буду тогда больше опошливать гармоничные колебания сравнением с хаотичными дерганьями.
По поводу отказа от эмуляции нейронов у меня тоже стала смутно расти такая мысль. В самом деле, даже по вышеприведенным схемам возникала "странная" идея: если я и так знаю, что в результате тормозных связей рефлекс R2 погасит рефлекс R1 - зачем мне эмулировать это геморное торможение вместо того чтобы просто выключить R1? Если при формирование нового рефлекса нужно игнорировать активности других эффекторов - ну так и игнорируй их все сразу, без всяких итераций. Я думал, что может я чего то не догоняю, но получается, я все правильно догонял. У природы просто не было возможности сделать иначе, кроме как на дискретных элементах.
Выходит я может в целом и правильно понял природную схему формирования безусловных рефлексов на дискретных элементах за исключением идеи клонирования базового, это частный случай. И только для того, чтобы отбросить её. Ещё думал, что мы движемся параллельно, просто по разному интерпретируем. Но возможно это действительно два разных варианта решения. Меня зацепила идея перекрывания рецепторных диапазонов и я её буду дальше развивать. В программной реализации все может быть, есть же уравнения с областью решений. А на дискретных элементах возможно только один вариант, природный.
|
Род: Palarm - админ Сообщений: 2771 |
Мне все таки не нравится идея, что случайным образом нашлось удачное решение, пусть даже речь о безусловных рефлексах. При каждом затупе кидать кости - это разве что в крайнем случае. Во многих случаях оказывается удачным решение например попробовать бежать быстрее или ползти медленнее. Это значит, что чисто статистически могла определиться стратегия сначала сделать так, и лишь потом включить дурака. Может все таки идея притормозить/разогнать хотя бы как первый в списке вариантов способ имеет место быть. Конечно, если случайная мутация сразу попадает в цель это здорово, но надеяться все время только на удачу даже для насекомых это слишком рискованно. Мне кажется, это самая бестолковая из всех стратегий. Должен быть некий штатный механизм, что делать в критической ситуации, вроде устава. И таким простейшим алгоритмом может быть именно уменьшить/увеличить активность рефлекса. Тем более что это прямо вытекает из концепта перекрытия диапазонов как схематически естественный вариант. Я пока говорю о безусловной рефлексии, более продвинутые варианты это особый разговор. |
Род: nan - админ Сообщений: 12276 |
Да, просто не стоит базироваться на любых "хаотических" изменениях как на каком-то принципе. |
Род: nan - админ Сообщений: 12276 |
Подготовил все для уровня условных рефлексов: детектор изменения состояния в Плохо и Хорошо – с обучающим функционалом, воздействие эмпатийными рефлексами (всего видов безусловных, т.е. предопределенных рефлексов получилось 5 видов), что, кроме влияния на рефлексы внешних обстоятельств, на уровне терминала начнет готовить почву для отзеркаливания, собственно систему безусловных рефлексов и рефлексом на основе рефлексов (ветвления контекстов). Вот последнее и продолжится уже условными рефлексами (самообучение по результатам попыток с блокированием неудачного), т.е. дерево контекстов оказывается единым. Потом оно же будет дополняться автоматизмами – рефлексами, которые оказались удачными при подборе вариантов ответов в условиях ранее заблокированной реакции: в новых условиях реакция привела к ухудшению, но реагировать-то нужно (доминанта нерешенной проблемы) и вот тут-то и подключаются механизмы Ну и теперь есть редактор переключения текущего уровня формирования реакций:
редактор периодов развития
Попробую довести механизмы до как можно более продвинутого уровня, а потом останется заняться формирование безусловных рефлексов в строгой последовательности этапов развития, но что, думаю, потребуется около года. И это – перед этапом авторитарного воспитания – условных рефлексов, но что уйдет еще несколько лет при том, что параллельно будут заполняться файлы личного опыта (моделей понимания) и развиваться эмпатия отзеркаливания. |
Род: Palarm - админ Сообщений: 2771 |
А я всего лишь переделал твой начальный вариант, убрав то, что пока не использую. Начало скрываемого блока Мысль простая как валенок: бот по идее должен уметь жить в условиях сурдокамеры в режиме овоща. Это значит должен быть базовый сценарий гомеостаза, закрученный исключительно на энергетический баланс. Потом уже на него накручивается все остальное. Поэтому по умолчанию чувства насыщения и эмоции зависят от энергии, а переключение между базовыми потребностями не идет, оставляя в итоге только одну потребность: есть, по мере наступления голода. Можно представить, что так выглядит рай. Когда ничего не надо делать, еда сама падает в рот, из всех эмоций только одна актуальная. Потом он должен познать добро и зло и огрести проблемы.
По идее таблица контекстов должна превратиться в очень большую вроде черной матрицы сенсоров, которую я убрал за ее непонятной надобностью. Активация контекстов будет провоцироваться внешними воздействиями, смещая энергетический баланс, потому как для бота слова - это еда. Но она может быть полезной, а может вредной вплоть до отравы. Но так остро и буквально она будет воздействовать только на уровне безусловных рефлексов. Условные же начнутся с первых попыток выбрать контексты общения. Например при сильном голоде молить или угрожать, при несильном просить или жаловаться - это все примитивные попытки бота повлиять на собеседника, заставив его дать корма. Дальше я пока не мыслю, потому как цельной картины на уровне "взял и спаял" как у Nan нет. Если удастся сделать хотя бы насекомое, и то будет круто.
Я думаю, что такое поведение никак не относится к безусловным рефлексам, потому что подразумевает внутренние прогностические модели, аналитический модуль - чего нет у насекомых. Муха будет биться о стекло пока ее ветром не сдует - и так будут делать миллионы мух. Никогда у них не возникнет рефлекс резко не похожий на этот. А вот уже рыбы так просто не хватают крючок, про это можно найти видео подводных съемок рыбалки на уютубе. Поэтому я думаю, на уровне безусловных рефлексов мой подход допустим: усилить или ослабить предыдущий. Такая мутация намного вероятнее и в большинстве случаев оказывается достаточной. Это развитие текущего контекста действия, прямо вытекающее из схемы на конструкторе. А вот условный рефлекс позволяет переключаться с одного контекста на другой, в этом его преимущество. Но опять же, пусть это уже не шаг, а прыжок в сторону - но не какой угодно длины. Тут тоже имеет место поэтапное смещение фокуса активности. И только высшая нервная деятельность теоретически позволяет вообще игнорировать контексты произвольным выбором на основе внутренних моделей восприятия. |
Род: nan - админ Сообщений: 12276 |
Когда нет реакции (заблокирована или вообще еще нет), но реагировать нужно, то со стороны терминала тоже должны быть первичные рефлексы, на основе которых будут усложняться программы действий. В лобных долях это - первичные моторные зоны. Муха бьется об стекло - это срабатывание рефлекса улететь при условии не видимости стекла. Муха при сильных ударах о стекло (или если ее при этом бить током) может на какое-то время прекратить попытки, т.к. механизмы условных рефлексов у нее есть. Короче, нужны сначала простейшие программы действий, типа вертеться если плохо как угорелый (это - безусловный рефлекс), т.к. те кто вертится имеют больше шансов соскочить с гиблого места.
У меня на таком уровне тоже нет, очень многое для реализации (а не принципов) приходится допонимать. Так что мы ввязались в очень муторную и долгую историю :) Но принципы безусловных и условных рефлексов с организацией дерева ветвлений, мне кажется, вполне ты просекаешь. Если не очень, попробую выдать алгоритм принципов (а не реализации). |
Род: Palarm - админ Сообщений: 2771 |
Оно так и получается, если понимать безусловные рефлексы как немедленное реагирование на определенную рецепторную активность. Понятно, что для перебора чего либо нужно сначала это что то создать.
Мне не очень нравится твоя идея записывать рефлексы вручную. В моем понимании нужно эмулировать эволюционный процесс. Это значит должен быть какой то простой алгоритм возникновения нового безусловного рефлекса при новых условиях. Оператор создает новые условия, запускает алгоритм, получает в ответ новую ветку, тестирует ее на соответствие желаемого - и если совсем не то, откатывает назад, меняет условия, новый пуск - и т. д. Написать легко, реализовать понятно дело совсем не просто. Но думаю должно быть именно так, потому, что такой же принцип будет и с условными рефлексами. Нейросеть должна разворачиваться сама. В начальных стадиях я не вижу смысла в импритинге потому, что например таракан рождается полностью готовым к нормальному функционированию. Его никто ничему не учит, у него как то само все размоталось/раскрутилось. Понятно, что есть соблазн просто прошить ему матрицу "как надо", но это "надо" будет с позиции человека как намного более сложноорганизованного существа. В итоге получится, что таракан шевелит усиками в виде приветствия, убегает от страха, к чему то стремится и т. д. Но в реальности это же не так. В начальной стадии проще разобраться с алгоритмом развертки. Это все равно придется делать. |
Род: nan - админ Сообщений: 12276 |
Безусловными называются наследственно предопределенные рефлексы, т.е. не возникающие в ходе адаптации ко внешнему, а уже прошитые эволюционными экспериментами на протяжении миллионов лет. Т.е. нужно заранее прописать базу реагирования на основе которых особь уже сможет сама формировать условные рефлексы, т.е. реакции, которые заканчивались для нее или нормализацией жизненных параметров или их ухудшением. В последнем случае такая реакций в условиях ее вызвавших, блокируется. Нужно это очень четко и ясно себе представлять. И со стороны моторного терминала должны быть тоже базовые безусловные рефлексы, обеспечивающие программы генерации вариантов действий когда нет реакций со стороны восприятия. Нпример, когда в каких-то условиях нет реакций потому, что их и не было или они в данных условиях были заблокированы негативом. Такой генератор действий запускает необходимость реагировать, т.е. опасное состояние жизненных параметров или другие опасности более высокого уровня. Потом из этого детектора необходимости разовьется доминанта нерешенной проблемы. |
Род: Palarm - админ Сообщений: 2771 |
Я думаю, правильнее сказать так: адаптация в течении жизней множества поколений. А условные рефлексы соответственно: в течении жизни одной особи. Но в обоих случаях это адаптация к изменяемым внешним условиям. Я не представляю, как ты собираешься вручную прошивать безусловные рефлексы. Типа наорал на бота - и прошил ему активацию защитного контекста, спокойно сказал, похвалил - прошил активацию расслабленности. Допустим. А что еще? Если забудешь что то примитивно-важное, придется потом добавлять и перестраивать дерево условных рефлексов, сформированное на базе безусловных.
а если такой вариант: новая реакция связалась с рецепторами и еще не затормозила старую - в итоге они обе активируются и получается error - который активирует необходимость торможения старой реакции, что и есть "нерешенная проблема". Ее решение - заблокировать активности кроме новой. |
Род: nan - админ Сообщений: 12276 |
Нет! Такого переноса в гены нет.
Я пока тоже. Методику предстоит наработать. Но это избежать нельзя. Да, можно начинать совсем с нуля, без рефлексов, но это будет еще более долгим и мучительно странным занятием. Мне потому и интересно, что получится у тебя, хотя совесть нечиста, т.к. ясно вижу тупик, но вдруг ты сделаешь чудесное открытие.
Тоже - нет. Нужно именно сначала блокировать (это потом будет механизмов прерывания старых рефлексов ориентировочным рефлексом). |
Род: Palarm - админ Сообщений: 2771 |
Разве мутации не наследуются? Я имел в виду, что удачные мутации это как звено ветвления рефлекторной цепи. Поэтому формирование сети безусловных рефлексов можно сравнить с сетью условных с той разницей, что каждое звено это одна мутация (одна жизнь), поэтому для нее нужны поколения.
По схеме получается, что торможение всегда запаздывает, потому как сначала формируются связи от рецепторов к новому эффектору Е2 и только потом от него к тормозному нейрону, а потом еще от тормозного к старому эффектору Е1. В итоге получается, что какое то время Е1 и Е2 рефлексируют совместно на новое сочетание активностей рецепторов, что приводит к сбою. Я выдвигал уже объяснение, почему нейроны не образуют внутрислойные связи, по крайней мере в существенно меньшем количестве чем межслойные. Им без разницы к чему привязываться, они пускают связи во все стороны активности, в том числе и к ближайшему активному нейрону своего слоя, если он еще не окончательно созрел. Но параллельно натыкаются на тормозной, связываются с ним, и он тоже начинает связываться со старым активным нейроном Е1, к которому тянется Е2. Получается гонка, кто первым добежит, тот и установит свой тип связи. Тут напрашивается полезная мутация - сделать тормозной более шустрым. Если же нейрон Е1 созрел, то можно не спеша протягивать связь - еще больше увеличивая время дефектного реагирования.
Есть подозрение, что датчик новизны ситуации на самом деле просто error, возникающий в начальный момент формирования новых связей. Возникла новая рецепторная комбинация - к ней потянулся новый эффектор - произошел закономерный сбой предыдущего реагирования из за перекрытия рецептивных полей (было R1-2-3 стало R1-2-3-4), что вызвало совместное реагирование старого и нового рефлекса. Активация тормозного нейрона и блокировка старого рефлекса решило проблему. И так всегда. А раз оно всегда, на этом потом мог возникнуть более сложный процесс разруливания. |
Род: nan - админ Сообщений: 12276 |
В плане мутаций - да, но не только и столько, а то, что данная особь выжила (показала свой ген правильным) и размножилась. В случае нашего бота у него нет зрительных сенсоров, нет всех первичных и вторичных зон т.к. все сразу начинается восприятием фраз. Поэтому всю эту работу нужно взвалить на безусловные рефлексы как со стороны восприятия, так и со стороны программ действия (варианты ответов если нет рефлексов со стороны восприятия).
Такая схема ну никак не соответствует тому, как организуется ветвление контекстов и у меня нет с этим никаких проблем. Ну и по любому не стоит эмулировать нейроны. У меня дерево контекстов организовано как рекурсивная функция с последовательной проверкой условий срабатывания рефлексов от базовых до высших. |
Род: nan - админ Сообщений: 12276 |
Я начинаю погружаться в дебри, на которые уже не хватает одной головы потому как слишком много разных мест нужно доводить до нужной функциональности. Время продвижения начинает тормозиться. Поэтому предлагаю до июня определиться с базовой концепцией, проделать нужные убеждающие эксперименты и прийти к общей концепции, которую уже начать строить сообща по договоренным фрагментам. Т.е. нужно будет применять средство совместной разработки Git. Где-то в инстинктах зреет надежда, что при данной функциональности вообще станет возможным отказаться от ГО и все потянет старый добрый PHP, но это довольно слабая надежда, просто высказываю то, что функциональность в выбранной абстракции взаимодействия с внешней реальностью бота оказывается точно вполне приемлемой для программной реализации. Мы уже отсекли первичные и вторичные зоны многих сенсорных систем (особенно неподъемные зрительные и тактильные), а также огромный пласт первичных зон моторных реакций. При этом главные принципы усложнения индивидуальной адаптивности оказываются в особенно выраженном, четком представительстве. |
Род: Palarm - админ Сообщений: 2771 |
А где концепцию обсуждать? |
Род: nan - админ Сообщений: 12276 |
К концу мая нужно каждому выдать имеющиеся оптимистичные результаты, просто в чате скинуть файл (мы - это ты, я и Linuxoid). Вкуриваем, обобщаем, выдаем предложения, и так итерируем пока не возникнет достаточно согласованная концепция. |
Род: nan - админ Сообщений: 12276 |
Начался период полной уверенности в правильности пути, все как бы само разворачивается :) Теперь уже нет мыслей бросить все нафиг. Причем, открываются дополняющие МВАП принципы, в частности – последствия блокировки неудачных реакций в новых (по отношению к базовым реакциям) условиях. Тут – прямой выход на функциональность внимания к наиболее актуальному, когда в условиях необходимости какого-то реагирования происходят выбор альтернатив. И вот тут выясняются принципы программной реализации уровней сознания, которые раньше не приходили в голову. Все это уже описано в доке, который я веду как описание реализации проекта. Но выкладывать его не стану на форуме, а могу только предоставить соучастникам для понимания текущей версии. Кстати, не считаю свою версию основной, каждый, конечно же, будет заниматься своей, если у него будет такая мотивация. |
Род: Palarm - админ Сообщений: 2771 |
Кстати идея хорошая, обмениваться не конкретными исходниками, а описанием. Я недели три потратил, чтобы в курить, что ты там накодил и пытаясь потом прикрутить к своей версии. В итоге почти все выкинул, потому как многое оказалось у тебя в набросках, как заготовки, и не факт, что потом используемые. Короче следить за полётом чужой мысли крайне неблагодарное занятие. Чужой код более всего полезен как пример реализации каких то фич, которые потом можно перетянуть к себе. Я сейчас тоже расписываю доки по проекту до уровня организации условных рефлексов, пока не станет полной ясности, что из чего вытекает. Интересно будет потом сравнить с твоими. |
Род: nan - админ Сообщений: 12276 |
Текущее состояние версии Бота – уже на стороне “лобных долей”. В прошлом сообщении упомянул, как “само” начали разворачиваться принципы, вписываясь в имеющийся функционал. Т.е. побочные возможности реализованных функций оказываются в очень для меня приятном соответствии с МВАП при том, что там и следа нет нейронов, а все реализовано без лишних эмуляций программно. Реализовано дерево контекстов значимости, в котором в случае отсутствия реакции иди их блокировки возникает ситуация “А не нужно ли что-то сделать” и если текущие жизненные параметры плохи, то вопроса нет, делаются попытки сгенерировать пробные действия на основе заготовок, которые я, в отличие от безусловных рефлексов назвал инстинктами (хотя по сути это – тоже безусловные рефлексы, но со стороны моторного терминала, в точности как это есть в природе). И тогда появляются условные рефлексы на пробу, пойдет или нет. И в той же функции будут отрабатывать автоматизмы, вслед за рефлексами и очень похоже, но сделанные на основе новой фичи – актуальных Смыслах т.е. на списке условий и действий с оценками того, хорошо или плохо прошел вариант действия. И вот этот набор актуальных Смыслов, который и станет мерилом актуальности текущих условий для ориентировочного рефлекса, уже тоже реализован. Для этого создан детектор Хорошо-Плохо – опять же в теле той же функции. Она оказалась жутко информативна. Раньше я думал, что Хорошо-Плохо выделяется в базовых распознавателях гомеостатической значимости, но они там оказались бесполезны, особенно состояние Хорошо. На основе детектора “Стало лучше-хуже” после совершения действий оценивается их непосредственно следующий результат состояния Бота и получаются оценки Хорошо-Плохо. Еще одно приятное побочное приобретение – функция гиппокапмпа подключать структуры “лобных долей” – оказалась уже фактически реализованной в той же общей функции. В случае отсутствия реакций в данных условиях, но необходимости реагировать подключается генератор условных рефлексов на основе инстинктов и при этом дается оценка последствий действий – оценка Смысла в данных условий. Эти Смыслы записываются и накапливаются, причем не только от собственных реакций, но и чужих – с оценкой их последствий для Бота, т.е. отзеркаливания чужого опыта. Еще не сделал, но уже вижу, как будет пополнятся коллекций Смыслов, которую назвал Моделью понимания. С ними связаны цепочки “эпизодической памяти” – последовательность реакций, каждая из которых имеет привязанный к ее результату Смысл. Появляется возможность организовать 1) отслеживающую функцию “сознания”, когда текущая готовая к выполнению в данных условий реакция, может быть заблокирована потому, как оказывается в условиях уже имеющегося Смысла, что инициирует “ориентировочную реакцию”, приостановление выполнения рефлекса (или автоматизма) и сканирование Модели и Цепочек связанных прошлых действий (эпизодической памяти) для поиска более удачной реакции. С каждым удачным подтверждением Смысла увеличивается параметр уверенности, а в случае негатива – уменьшается. Ну и т.д. Текущая реализация и ближайший план описан в доке, который я могу выслать участникам по требованию (а чтобы не париться с ГО неделями, в Пульте будет уже готовый исполняемый файл Го). То, что мне удается заставлять работать схему программы так, как задумал и это оказывается полностью в рамках МВАП , конечно, вовсе не значит, что этим достигается эквивалент природной реализации. Но тут есть один общий позитив: любая рабочая реализации адаптивной системы с формированным гомеостазом, представляет собой живой организм (в смысле способный к адаптивному поддержанию гомеостаза). Таких вариантов природа испробовала неисчислимое количество, но строго на базе своих находок последовательно усложняющихся структур (РНК, органеллы, клетка, паразитирующий на ней вирус и т.д.), уже не изменяя основ каждого уровня. И вот это – самый главный принцип успешности эволюции, который стоит исповедовать: начав реализации определенным способом и развивая ее уже не имея возможности использовать другие методы реализации, нужно добиваться надежной универсальности текущих уровней адаптивности, которые тем самым, обеспечивают следующие. |
Род: Palarm - админ Сообщений: 2771 |
Ну ты и улетел! Вот что значит опыт. Чудес не бывает, настоящие открытия делают профессионалы. У меня все намного скромнее, я по прежнему бодаюсь с безусловными рефлексами, пытаясь симулировать эволюционный процесс, чтобы они сами определялись. Я начал с того, что стал отталкиваться от текущего уровня заряда бота.
Процесс адаптации системы жизнеобеспечения означает поддержание ее оптимальных параметров при внешних воздействиях, стремящихся вывести систему из равновесия. Без адаптации она просто разрушится, оказавшись в одном из крайних состояний: чрезмерного истощения или возбуждения. Такой системой у бота, по аналогии с живыми организмами, является гомеостаз, который имеет следующие параметры:
Изменение гомеостаза бота происходит из за внешних воздействий, под которыми подразумеваются текстовые фрагменты, генерируемые оператором, другим ботом, найденные ботом самостоятельно в сети. Они могут быть как угнетающими, так и возбуждающими. Угнетающие отбирают энергию бота, возбуждающие наоборот, дают энергию.
Поддержка оптимального уровня энергии означает стабилизацию энергетического заряда бота вокруг какой-то величины. Отклонения от нее означают недостачу или избыток энергии, что одинаково плохо, потому, что при недостаче бот переходит в угнетенное состояние вплоть до «остановки сердца», а при избытке в чрезмерное возбуждение вплоть до «разрыва сердца». Выход за пределы критических уровней энергии означает «смерть» бота, прекращение пульсации и реагирования на внешние раздражители. При этом есть область изменений энергозатрат колебаний пульса в пределах, незначительно влияющих на состояние бота и это его зона комфорта, к которой он постоянно стремится, но из которой его постоянно выводят внешние воздействия и естественные потери энергии при пульсации, что провоцирует бота на ответные рефлексы, задача которых вернуть его в комфортную зону.
Бот подобно живому организму получает внешние разрушительные/восстановительные воздействия, сдвигающие его энергетический баланс, через текстовые слова/фразы. Такое взаимодействие имитирует физический контакт животного с объектами в реальном мире, поэтому слова/фразы для запуска процесса адаптации бота должны иметь как минимум два свойства: «токсичность» и «питательность». Первое уменьшает энергию бота, второе увеличивает. Понятие «плохо/хорошо» для бота они обретают смотря по его текущему энергетическому балансу. Если бот находится в зоне пониженной энергии, то «хорошим» становится для него контакт с «питательными» сенсорами, а если в зоне повышенной – то наоборот, «хорошими» становятся «токсичные» контакты, так как они помогают более эффективно сбросить излишки энергии. Поэтому адаптация бота строится не по принципу избегания «плохого» и стремления к «хорошему», а вокруг стабилизации энергетического баланса. Это не прямая аналогия, хотя и похожая, с питанием животного, потому, что рефлексия бота подразумевает активное использование обоих свойств, а сами объекты становятся то полезными, то вредными, и от этого бот выстраивает свою рефлексию.
Но возникает проблема с глобальным определением для бота, что есть яд, а что еда. Нельзя просто присвоить слову/фразе статус полезное/вредное в отрыве от контекста, в котором они были сказаны. В реальности у животных таким контекстом служит интонация, жестикуляция, внутренний субъективный образ «говорящего» и окружающего мира. Но у бота только один текстовый канал восприятия, поэтому ему необходимо передавать дополнительные параметры сообщения, служащие аналогом интонации и жестикуляции, из которых определяется итоговый контекст сообщения. Кроме того, реагирование должно быть в основном на фразы, так как отдельные слова в большинстве случаев многозначны. Поэтому ответная реакция бота формируется на комбинации слов собеседника (макросенсоры), текущего внутреннего состояния бота и предполагаемого внутреннего состояния собеседника, которое бот прогнозирует по своему состоянию в той же ситуации, но на стороне партнера.
На первом этапе обучения тон сообщения является единственным показателем для определения негативно-позитивного воздействия на бота. Это процесс задания базовых простейших свойств объектов (слова и фразы) вселенной бота, потому, что на стадии инициализации объекты для бота это никак на него не воздействующие, и потому ничего не значащие наборы символов. То есть оператор на этом этапе вводится не для того, чтобы «научить» чему то бота, а по причине отсутствия симулятора реальности, в которой бот естественным образом эволюционируя, коммуницируя и конкурируя с другими ботами, сформировал бы аналогичные рецепторы. В реальности животному, чтобы понять свойства объекта, надо с ним вступить в контакт. Тогда физические процессы закономерно сдвинут его гомеостаз в одну из сторон. Чтобы аналогичное происходило с ботом, объекты его вселенной надо инициализировать. Это делается оператором, который указывает, какое воздействие несет его текст на бота. Величина воздействия текста определяется по его длине. Запоминая эти соответствия у бота начинает формироваться простейший опыт: он связывает слова с тоном сообщения и начинает реагировать на них соответственно, симулируя реальную физическую реакцию. В результате они начинают приобретать для него смысл: полезное/вредное. В дальнейшем, по мере обретения более сложного опыта определения «токсичности», такое поведение трансформируется в более сложную рефлексию избирательного поглощения текста, «пищевые предпочтения», а так же позволит боту целенаправленно воздействовать на собеседника.
Ответ бота сам по себе так же энергетически затратный, как и любая реакция живого организма. Уровень потраченной энергии распределяется в диапазоне от нулевого, при эмпатичном (давление на жалость), минимального, при «питательном», и максимальном при «токсичном» для собеседника ответе. Это задает прямую заинтересованность бота «выбирать слова» при диалоге, смотря по тому, хочет ли он получить от собеседника порцию энергии или сбросить свою, и это задает общий, глобальный смысл всех реакций бота. Даже если собеседник никак не реагирует, просто наорать на него или в пустоту будет выгодно в случае избытка энергии бота, но даже просто разговаривать самому с собой уже не выгодно в случае пониженного уровня энергии. В этом случае самое энергетически выгодное молчать, а если собеседник все же реагирует, то просить. Такие безусловные реакции являются базовыми, от которых начинает строится дерево безусловных рефлексов бота.
Процесс инициализации занимает конечное время. Сенсорная система бота воспринимая виртуальные объекты и связывая взаимодействие с ними с изменением своего гомеостаза формирует первичные сенсоры гомеостатической значимости, показывающие, какое влияние оказывает объект на бота, пока еще не связывая это с внешним контекстом условий. Это произойдет на следующем этапе построения дерева безусловных рефлексов, симуляторе эволюционного процесса. Но чтобы завершить этап инициализации у бота активируется соответствующий глобальный параметр.
Затем я попытался представить развитие эволюционного процесса: Пищевой поисковый инстинктСтабилизация энергетического баланса бота изначально является пассивной формой адаптации, по аналогии с животным это простейшее адаптационное поведение типа уменьшить/увеличить обмен веществ, а все пищевое поведение сводится к поглощению проплывающего мимо корма, как у прикрепленных организмов типа губок, или фотосинтезу, как у растений. Но существенное преимущество получат те животные, которые перейдут к активному поиску корма. Это потребует более сложной адаптации, для которой нужен дополнительный рефлекс поведения: пищевой поисковый. Поэтому добавим новое ветвление в дерево рефлексов, продолжая имитировать эволюционный процесс: «губка» начала ползать, активно искать корм. Теперь это уже не прикрепленный организм, но еще и не полноценный хищник, так как кормовая база типа простейших микроорганизмов не требует особых навыков охоты, кроме их поиска и умения отличать съедобное от несъедобного. Оборонительный рефлексЖивые многоклеточные организмы первоначально адаптировались лишь к более эффективному пассивному усвоению корма, например фотосинтезу или поеданию простейших одноклеточных, пока не научились охотиться друг на друга, что послужило мощным толчком к усложнению нервной системы, так как требовало значительно более сложного реагирования для жертвы и хищника. Поэтому следующая эволюционная ступень адаптации – активные действия со стороны бота, которые отражаются в поле терминала в виде текста и являются его попыткой спровоцировать собеседника на генерацию нужных в данный момент боту текстовых фрагментов, с позиции их энергетической ценности и с учетом текущего контекста диалога. Это приводит к тому, что в простейшем варианте реагирования, находясь в зоне комфорта, бот может с одинаковой вероятностью провоцировать собеседника на любые варианты действий, а в зонах избытка/недостатка – только соответствующим нормализации баланса образом. Таким образом, основное внешнее проявление реакции бота «диалог» есть не что иное, как развитие оборонительного рефлекса, при котором бот выстраивает сложные активные стратегии стабилизации своего энергетического баланса. Это спарринг, при котором собеседники обмениваются «энергетическими ударами».
Оборонительный рефлекс уже не привязан жестко к энергетической шкале, только как доминирующий по умолчанию, потому как требует мобилизации сил при любом состоянии. У животных оборонительный рефлекс бывает двух видов: активный, задающий ветвления злобы, мужества и т. д., и пассивный, задающий будущие ветвления трусости, отчаяния и т. п. Оба варианта доказали свою эффективность в ходе эволюции при соответствующих внешних контекстах. Это базовый инстинкт поведения «дерись или беги» из которого потом формируются множество вариаций через условные рефлексы. Можно сказать, что оборонительный рефлекс активируется по всей энергетической шкале в виде антагонистической пары, задающей диапазон реагирования от пассивного до активного противодействия, и в зоне перекрытия в средней части энергетической шкалы переходящий в интригу. При этом энергетическая шкала является лишь частью суммарного пускового стимула и запускает рефлексы лишь в случае отсутствия активности дополнительных уточняющих рецепторов. Смирение и агрессия могут проявиться в любой части шкалы, смотря по обстоятельствам, а интрига только в зоне комфорта
Похоже это хоть в чем то на твой концепт или опять все не так? Если снова мимо, то скинь мне свое описание, начну вникать. По крайней мере, уже ясно видно затупы и интересно, как ты их обошел. |
Род: Palarm - админ Сообщений: 2771 |
Мне тоже дошло, что для организации ветвления условных рефлексов надо как минимум сравнивать два состояния: до и после выполнения рефлекса, и смотреть, приблизился ли уровень энергии к зоне комфорта. Если да - рефлекс закрепляется, если нет - удаляется. Сейчас думаю, как сделать так, чтобы не случайным образом подкидывать варианты, а на основе какого то принципа. Пока что единственное решение - генерить варианты зигзагом: сделай так же, только сильнее - сделай так же, только слабее. И с каждым шагом увеличивая амплитуду. Это как попав в темную комнату широко расставив руки пытаться осторожными шагами нащупать стенку. |
Род: nan - админ Сообщений: 12276 |
>>Похоже это хоть в чем то на твой концепт или опять все не так? Не похоже и я постараюсь пояснить на основе твоих фраз. >>Бот подобно живому организму получает внешние разрушительные/восстановительные воздействия, сдвигающие его энергетический баланс, через текстовые слова/фразы. Такое взаимодействие имитирует физический контакт животного с объектами в реальном мире, поэтому слова/фразы для запуска процесса адаптации бота должны иметь как минимум два свойства: «токсичность» и «питательность». Тут несколько противречит с “на стадии инициализации объекты для бота это никак на него не воздействующие, и потому ничего не значащие наборы символов”. Получается, что, все же, ты организуешь для Бота какой-то его мир, с которым он взаимодействует. Бот получает подкрепление не от живого оператора, а от фраз. А это не соответствует аналогу глухонемого, который уже имеет нормальные наследственные прошитые рефлексы, а внешний мир, воздействуя, улучшает или ухудшает его состояния (а не свойства восприятия). У меня на Пульте оператор реагирует на сказанное Ботом и на действия Бота (у бота есть несколько ответных действий, типа сделать больно, заплакать, улыбнуться и .т.п.). Именно то, как оператор отнесся к акциям Бота и влияют на того. Слова тоже могут исключаться у меня в безусловные рефлексы, но не фразы, а корни, - только для затравки. Это только в самом деле угрожающие и успокаивающие, бесящие и т.п. слова и их точные синонимы. Т.е. тут я снаглел и опередил воспитательный период, юно вот пусть Бот имеет сразу прошитое начальное отношение к определенным словам, а потом он сможет произвольно менять смысл этого в зависимости от ситуации. >>Понятие «плохо/хорошо» для бота они обретают смотря по его текущему энергетическому балансу. У меня оказалось, что эти понятия, точнее ощущения на уровне контекстов гомеостатической значимости отсутствуют и я как-то соберусь и скорректирую такие базовые контексты на состояния ухудшения и улучшения жизненных параметров, точнее на стили (коннекты) поведения, что будет точно соответствовать базовым значимостям (как-то условно назову). Хорошо ведь может быть и при полной голодухе, это – высокоуровневневая оценка. >>я по прежнему бодаюсь с безусловными рефлексами, пытаясь симулировать эволюционный процесс, чтобы они сами определялись. ... На первом этапе обучения тон сообщения является единственным показателем для определения негативно-позитивного воздействия на бота. Это процесс задания базовых простейших свойств объектов (слова и фразы) вселенной бота, потому, что на стадии инициализации объекты для бота это никак на него не воздействующие, и потому ничего не значащие наборы символов. То есть оператор на этом этапе вводится не для того, чтобы «научить» чему то бота, а по причине отсутствия симулятора реальности, в которой бот естественным образом эволюционируя, коммуницируя и конкурируя с другими ботами, сформировал бы аналогичные рецепторы. Не могу увидеть суть такого самоопределяющегося процесса самосоздания безусловных рефлексов потому как ты этим обещаешь как-то адекватно проимитировать естественных отбор правильных и неправильных особей. Я думаю, как бы можно было упростить процесс прошивки, но он никак ен получает автоматическим. Максимум я буду использовать много диалогов и ролевых ситуаций чтобы построить более-менее полноценное дерево реакций. Но буду забивать их вручную в редакторах (у меня таких 4 штуки). Вот, если коротко про расхождения. Но любая система, которую ты заставишь работать как задумал, окажется вариантов живого существа. Вот только насколько оно будет прикольным – вся разница в таких вариантах. >>скинь мне свое описание, начну вникать. По крайней мере, уже ясно видно затупы и интересно, как ты их обошел. Скинул. Учти только, что еще не приступал к планомерному набиванию безусловных рефлексов, а есть только пробные, чтобы отладить механизмы. И сейчас нет периодизации, т.е. бот будет делать много преждевременных реакций. Я поставлю строгую периодизацию, когда начну прошивку условных рефлексов. |
Род: Palarm - админ Сообщений: 2771 |
Противоречия нет. Просто мне не нравится твоя идея прошивать безусловные рефлексы вручную. Хотя как теперь понял, ты тоже пытаешься это обойти. А вместо слов-рефлексов используешь эмоциональные воздействия типа смех, плач и т. п. Это успокоило :) В том смысле, что раз и ты не нашел решения, значит есть шанс, что я чего то все же нарою.
Суть в том, что я начал с простейшей губки, пытаясь понять, почему и как возникли первые рефлексы. Бот изначально ни на что не реагирует, просто с каждым ударом пульса его энергия падает и в итоге он закономерно сдохнет. Стало быть нужно хоть что то сделать, чтобы хотя бы отсрочить этот момент. И самая первая и простая реакция - сделать зависимость пульса от уровня текущей энергии: чем она ниже, тем реже пульс, или как у меня - меньше потери при пульсации. А чем выше энергия - тем больше потери. Это простейшее адаптационное поведение типа уменьшить/увеличить обмен веществ, а все пищевое поведение сводится к поглощению проплывающего мимо корма, как у прикрепленных организмов типа губок, или фотосинтезу, как у растений.
Я это сделал для того, чтобы у бота был рефлекс на случай максимального отката по дереву рефлексов, когда нет никаких сигналов сенсоров, но что то делать надо. И это что то определяется тогда таким рефлексом. Дальнейшее развитие, новый рефлекс - это пищевое поведение. Но для этого уже нужно различать съедобное/не съедобное. Для чего и вводится инициализация - задание свойств объектам вселенной бота, чтобы они его либо угнетали, либо возбуждали. Эти безусловные простейшие рефлексы будут влиять на все последующие. Например, при избытке энергии бот становится раздражительным, начинает ругаться. При недостатке - начинает ныть. Это простейшая реакция, если откатить ее до уровня безусловных рефлексов. Но подключение лобных долей вводит понятие произвольности, когда бот смотри в первую очередь не на свойства объектов его вселенной, а на свойства объектов своей внутренней вселенной, которую он построил сам. И это позволит ему практически игнорировать показания сенсорной энергетической линейки гомеостаза, выдумывая свои уникальные глупости. То есть развитие рефлексии мне видится во все большей независимости реагирования от базовых рефлексов.
Ты решил перепрыгнуть стадию функционирования бота, когда он жил своей жизнью, а сразу перешел к созданию условных рефлексов. У меня это пока определяется как активация оборонительного рефлекса. И никак не решил проблему - что ты будешь прописывать в безусловных. Я решил сделать так:
нужно создать базу макросенсоров (фраз) и придать им свойство токсичность/питательность. Это делается просто - оператор вводит фразу, например:
"привет, как дела?" - и ставит тон "доброжелательный".
Бот тут же пишет это в базу в виде кодов сенсоров с пометкой "питательный". Теперь эта фраза для него имеет смысл - она дает ему порцию энергии. Так происходит инициализация объектов. Оператор тут нужен только для того, чтобы указать, какой объект забирает, а какой дает энергию. Если бы у меня была вселенная с объектами, то он и не нужен был бы - просто выпустил бы бота погулять, он бы посовал свой нос куда попало (без всяких смыслов и целей, как тупая машина, хаотично дергающаяся), получил бы пинков и плюшек - и запомнил все. Это была бы настоящая имитация эволюционного процесса создания сенсоров гомеостатической значимости. В итоге бот получает эти сенсоры, и только теперь можно лепить базу безусловных рефлексов. Потому, что как определить, что и куда сдвигает уровень энергии бота, если нет таких сенсоров?
Тут есть видимо непривычный момент для понимания: почему я говорю, что без инициализации объекты на бота никак не действуют, а после инициализации начинают действовать. Получается вроде бы абсурд: если стукнуть по голове молотком, не понимая, что это молоток - все равно ведь больно будет. На самом деле с логикой все нормально: я не могу стукнуть бота молотком, пока не инициализирую его - до этого процесса он как бы эфемерный. Инициализацией я как бы материализую объект. Но я не могу это сделать от балды, каким то случайным образом - должен быть оператор, который скажет что есть что. Вернее могу, но тогда это не будет копия нашей реальности, и бот будет адаптироваться к какой то другой вселенной, и в итоге с ним невозможно будет установить контакт. И получается как в библии: в начале было слово :) Так и есть, в начале было слово оператора.
У меня тоже высокая уверенность, что я правильно строю концепт, начиная плясать от энергетического баланса и делая первичную гомеостатическую значимость для бота - стремление к зоне энергетического комфорта. Иначе бот просто сдохнет. И полагаю, что вся последующая рефлексия, какой бы сложной она не была - это просто развитие этого базового рефлекса. Как бы быстрее, эффективнее, а в случае с лобными долями - с просчетом на много шагов вперед, вернуться в стабильную зону.
то что ты выделил выше, это еще не создание безусловных рефлексов, а инициализация объектов, создание макросенсоров (комбинации слов). Как предположительно будут эволюционировать рефлексы я говорил: методом раскачки, но его еще надо проверить. Скорей всего он не даст полной автоматизации, но думаю, толк от него все же будет, как вариант вместо генератора случайных чисел ввести хоть какой то алгоритм. Еще одна причина, почему мне не нравится идея только через оператора прошивать рефлексы: допустим с ботом разобрались, а дальше? Каждый новый вид искусственного животного прошивать вручную? Имхо, просится какая то автоматизация, понимание принципа, почему мутации становятся именно такими а не какими то другими и как на это можно влиять.
Я думаю, что есть некое глобальное понятие адаптационных схем, где жизнь лишь частный случай. И приблизиться к нему поможет сравнение разных схем реализации. |
Род: nan - админ Сообщений: 12276 |
Трудно представить что-то более выбешивающее, чем когда тщательно сделано уже многое, но на каком-то этапе выясняется, что неких деталей не хватает для того, чтобы заработал новый уровень, даже в голову не приходило, что это может понадобиться. И теперь нужно внедрять недостающее в ранние уровни и править все последующие, что бывает очень непросто. Вот, для примера, скажем, есть форматы записи безусловных рефлексов, но на уровне автоматизмов, оказывается, что там не хватает какой-то фитюлечки, без которой не получится пристегнуть рефлексы к дереву контекстов. А ту уже забил тыщу наследственных рефлексов. Или сделал какой-то чудо-автомат, который нашлепал эту тысячу, неважно. Все придется переделать, а также все то, что основывалось на тех рефлексах. Одно дело переделать просто программный код, что уже тоскливо, а другое – перештамповать все безусловные, сделанные на них условные (которых уже предусмотрено до 300тыс). Вот почему я предельно оттягиваю момент начала прошивки рефлексов, довольствуясь только отдельными для отладки. Вообще это – глобальный принцип любой схемотехники, в том числе природных нейросетей, когда природе проще грохнуть неудачный экземпляр, чем перепрошивать его лучшей задумкой. Так что если возникнет мутация, повреждающая первичные структуры, то все последующие уже идут в хлам. Но момент настанет и начну прошивать рефлексы, вручную или Palarmоткроет что-то автоматическое. И тогда на первых же этапах многое прояснится и придется корректировать, что уже не станет особо проблематично, пока не сделано все. Так что придется идти через такие итерации. |
Род: nan - админ Сообщений: 12276 |
Думаю, что просто необходимо иметь некую согласованную основу принципов индивидуальной адаптивности, без чего все разговоры здесь просто повисают без опоры. Так что предлагаю начать наводить мосты взаимопонимания именно с основ. Попробую сделать это как можно проще и короче. Очень многое придется упустить, но самое важное и главное должно бы сформировать очевидную картину. Если рассматривать динамику усложнения адаптивных механизмов с самых простейших существ, то возникает такая картина. Самое главное – поддержание жизненных параметров, отклонения которых от нормы чревато и требует компенсации. Этим занимаются системы гомеостаза. У самых простейших для поддержания баланса задействованы регуляторные системы на уровне самого тела, не затрагивая нейронных сетей. Но уже у насекомых для регуляции управляющими элементами являются нейроны. Самая главная функция нейронов - управляющая – обеспечить управление эффекторами в зависимости от рецепторов. На схеме бабочки рецепторы температуры и эффекторы движений крыльев – простейшая схема управления, сформированная естественным отбором (наследственно предопределенная). С услужением адаптивного поведения усложняется и схема управления, позволяя реагировать на все большее число и разнообразие условий. В самом общем виде есть сенсоры внешней среды, есть сенсоры состояния жизненных параметров, нужно так управлять моторными эффекторами, чтобы обеспечить поддержание баланса жизненных параметров, и вовремя восполнять потери. Что на этом пути сделано в природной реализации.
1. Уровень – наследственно предопределенные реакции – схемы, разворачивающиеся с соответствующими экспрессиями генов с меняющихся условиях внутренней среды тела. Назовем это безусловными рефлексами. Это – просто управляющие электросхемы, найденные методом огромного множества вариантов. На основе существующих схем возникают новые, образуя ветвящиеся цепочки рефлексов. В них нет ничего таинственного. Гомеостаз у продвинутых животных основан на нейронных детекторах жизненных состояний и регулируется в зависимости от состояния внешней среды и изменения параметров организма довольно сложными управляющими схемами, многие из которых неплохо изучены. Например, вас укачало, организм детектирует сбой систем восприятия, но непонятно почему он произошел, не хватает сложности распознавания ситуации. Обычно такие сбои означают, что произошло отравление и тогда возникает общая защитная реакция – рвота.
2. В ходе развития организма возникают ситуации, когда есть необходимость восстановления жизненных параметров, но нет подходящей реакции. Это – возникновение новых реакций на основе старых под воздействием детектора ухудшения или улучшения состояния после пробного действия. Например, был съеден новый фрукт в лесу и вскоре начало колоть в животе и замутило. Возникает связь: съедание такого плода впредь блокируется. Безусловного рефлекса на такой случай нет и просто вырвало бы, а в следующий раз опять тварь сожрала бы этот плод. Но с уловным рефлексом это уже не произойдет после нескольких попыток. Однако, для формирования устойчивого рефлекса нужно несколько повторений с подкреплением. Потому как связь не формируется моментально. В ходе онтогенеза появляется возможность формировать новые управляющие связи и закрепить их, а не только использовать уже прошитые наследственно связи. И эволюционные эксперименты с этим происходят в мозге повсеместно, все более рельефно вырисовывая наиболее удачные приобретения. Со стороны моторной части лобной коры формируются зоны, запоминающие совокупности условий, при которых стало хуже или лучше. Начинались они с безусловного обеспечения импринтинга, но развились в нечто большее и очень полезное. Назовем эту память жизненным опытом о событиях (на самом деле все куда сложнее, но лучше это пока упустить). Причем здесь запоминается не только собственные результаты реагирования, но и чужие (отзеркаленный чужой опыт, опять вынужден упрощать).
3. Часто возникают ситуации, когда хорошо отработанный и надежный рефлекс в новых условиях оказывает даже вреден, приводя к неожиданному негативу. Если в простых ситуациях, когда ткнешься носом колючку, получаешь повреждение и несколько раз вполне можно попробовать чтобы закрепился рефлекс, то если события редки, условный рефлекс не может сформироваться. А это может кончиться фатально, так что отбор в этом направлении оказывается востребованным. Возникает такое приобретение как ориентировочный рефлекс. Жизненный опыт уже подсказывает, что нового в ситуации (контексте данного рефлекса) оказывается важным так, что из всего нового, что возникло в данный момент, выбирается самое важное. Эта совокупность рецепторной активности выделяется как наиболее актуальная среди всего конкурентно активного в мозге. Системы внимания фокусируются на образе, связанном с лобными долями активностью наиболее подходящего жизненного опыта через переключательные структуры гиппокампа – что очень важно. Реакция блокируется на выполнение потому как опыт предсказывает возможный негатив и возникает ситуация необходимости решения проблемы. На первом уровне такого процесса не происходит осмысливание и привлечение механизмов творчества, а просто в массиве жизненного опыта ассоциативно подбирается наиболее привлекательный пример реагирования, и он применяется вместо блокированного рефлекса. Вскоре становится понятно (что такое понятно – отдельная песня), получилось или не нет. Если получилось, то реакция закрепляется в новом виде рефлекса, назовем его автоматизмом и всего за один раз потому как в гиппокампе даже после всего прошедшего продолжает циркулировать удерживаемый образ (пока все такие дневные образы не будут погашены во время сна или латеральным торможением) и за это время (примерно 30 минут) сформируются связи рефлекса. На этом пока останавливаю картину, не утомляя деталями. Благодарность от: Клон |
Род: Palarm - админ Сообщений: 2771 |
По схеме формирования безусловных/условных рефлексов проблем с пониманием нет, она совпадает с твоей. Я лишь пытался вывести всю рефлексию из одной глобальной потребности - поддержка оптимального энергетического уровня, предполагая, что например из пищевого поведения, которое активируется пониженным уровнем энергии, выросло умение отличать съедобное от несъедобного, поиск добычи, навык самому не стать добычей. Это спровоцировало формирование оборонительного, исследовательского рефлексов, а стайная охота/стадная оборона способствовали развитию коммуникации. И вроде как все началось с поддержки энергетического баланса. Но вот половой рефлекс однозначно никак с ним не связан. В итоге схема рухнула, один пазл получался «лишним». Тогда делаем шаг назад и меняем точку отсчета:
Вся рефлексия строится вокруг поддержания базовых потребностей организма. Что бы ни делала особь, в глобальном смысле это все попытки удовлетворить эти потребности. У человека это:
1-4 базовые, общие практически для всех животных, 5-6 только для высших. Возможно, они возникли и связаны между собой в том порядке, как указаны. Но энергетический баланс является главным активирующим только для пищевого рефлекса. Для остальных она все менее значима.
Если шарик катится по столу "сам", это значит, что это происходит под действием внешних сил: притяжения, трения и т. п. Стало быть нельзя иначе автоматизировать ветвления рефлексов, кроме как создав взаимодействие между внешним воздействием и внутренним состоянием бота. То есть слова-сенсоры должны влиять на внутреннее состояние бота, и у них должно быть прошито соответствующее свойство. Даже если просто оператором указывать какой рефлекс к какому тексту прицепить, все равно получается, что текст оператора воздействует на бота, только это воздействие оценивается оператором. |
Род: nan - админ Сообщений: 12276 |
Один момент. Если ты что-то назвал рефлексом, то оно должно иметь определенное действия при определённых условиях. >>Потребность в восполнении потерь энергии – пищевой рефлекс Есть пищевой контекст (стиль) поведения, в котором могут срабатывать разные рефлексы в зависимости от увиденного, унюханного. И вот такие рефлексы нужно прошивать для базовых контекстов (стилей) т.к. там поначалу еще ничего нет, а реагировать нужно если кончилась энергия. Да, слова тоже могут быть условиями, и я предусмотрел их как возможные условия безусловных рефлексов. Вот слово убью тебя запросто можно прошить для оборонительных рефлексов. А вот как это можно проделать автоматом, без выборочного осмысливания, я не представляю. У меня есть заготовки типовых простых диалогов и я намереваюсь их систематизировать и использовать, но тупо включать в автомат точно не стану потому, что потом будет много мороки со странным реакциями. |
Род: Palarm - админ Сообщений: 2771 |
Да, неверно сделал обозначение. Вот мое понимание: условные рефлексы строятся на базе безусловных, то есть используют их как фрагменты, из которых составляются более длинные цепочки. Это значит, что если прошил скажем 1 000 безусловных рефлексов - вот с ними и будешь работать. Ладно если бы это были слова, тогда придумав спец. модуль для формирования предложений получил бы достаточно большую вариабельность реагирования. А из букв практически бесконечную, с учетом возможности генерить новые слова. Но в случае с ботом это явно не вариант - слишком неподъемная задача, к тому же явно требующая наличия уже функционирующих лобных долей.
Поэтому решение видится такое: безусловные рефлексы это не слова и фразы, а активация стилей реагирования. В самом начале я двинул идею создавать ассоциативные группы. Это просто список слов, собранных в смысловую кучу и имеющий некий условный номер или обозначение. Изначально, на момент формирования безусловных рефлексов группа пустая, от нее только название, например группа ЗЛО, ДОБРО, ЖАЛОСТЬ, ЯРОСТЬ и т. д. Это грубые, примитивные реакции. Вот они и активируются на аналогичные группы раздражителей слов. Это как мяуканье, лай, рычанье, урчание. Сказал боту "сдохни", "умри", "пошел вон" и т. д. - он тебя облаял, сказал что то хорошее - он замурлыкал. Таких стилей думаю будет всего несколько десятков.
Следующая стадия условных рефлексов это уже заполнение списка групп. Вот тут уже каждый рефлекс привязывается к конкретным сочетаниям сенсоров. В итоге получается, что если нет рефлекса - бот откатывается в реагировании на уровень безусловных и "гавкает", если есть - что то отвечает.
Стиль реагирования в реальности это начальный, примитивный рефлекс, доставшийся по наследству от предков. Он блокируется, если наработался условный. В противном случае он выполняется потому, что его рецептивное поле достаточно большое. |
Род: nan - админ Сообщений: 12276 |
Ты начал рефлексы только со стороны восприятия, но по-прежнему игнорируешь рефлексы со стороны моторных зон. Вот слелал ты активацию базовых контекстов по ключевым словосочетаниям, как говоришь, несколько десятков. А как на их основе будут образовываться более частные рефлексы, затрагивающие уже моторные действия, если ты никак не предоставляешь оттуда никаких реакций? В самом общем плане, если активен какой-то контекст, но нет еще моторного реагирования, зато на тот же профиль условий уже готовы сорваться моторные рефлексы, то вот и нужно какие-то из них выбрать и пристегнуть так, что бы в данных условиях уже срабатывало моторное действие. А еще классический условный рефлекс: вот при данных условиях сработало действие, а при новых компонентах условий начал укреплять условный рефлекс в случае, если все стало лучше. И потом это действие будет выполняться уже только при активности нового компонента условий. Это расширяет диапазон для данного ответа для новых условий. Пока в каких-то не станет хуже и тогда там это действие должно быть заблокировано. |
Род: Palarm - админ Сообщений: 2771 |
Изначально у меня была схема безусловного реагирования с привязкой к текущему уровню энергии. Конкретно сейчас это сделано так: при попадании в зону пониженной энергии порции потери энергии при пульсации уменьшаются, при попадании в зону повышенной - увеличиваются. Кроме того, раз у меня заложена инициализация сенсоров как питательные-токсичные, то в зоне пониженной энергии игнорируются токсичные, в зоне повышенной питательные. Это имитирует процесс "поедания", чтобы не "глотать" отнимающие энергию сенсоры, когда ее и так мало, а только питательные и наоборот. Это моторные рефлексы в твоем понимании? Если да, то дальше я предполагал, что алгоритм поиска в тексте макросенсоров с многоуровневым перебором в дальнейшем будет использоваться при исследовательском поведении. То есть из нюханья, пробования на вкус разовьется рефлекс осмысливания. Но ты все это раскритиковал. А теперь выходит это не так уже и не правильно?
То есть ты предлагаешь собирать условные рефлексы из моторных? В реальности оно так и есть, но в случае с ботом опять встает вопрос, что считать моторными. Нужно собрать какие то простейшие реакции, типа возгласов - а потом из них сформировать слова и предложения? Потому как из изменения пульсации вряд ли какая фраза родится. А из короткой фразы другую короткую фразу ты не сформируешь - только более длинную.
У меня был такой вариант: собрать в ассоциативной группе строку слов-рефлексов. На внешний контекст условий активируется группа, потом смотрится текущий уровень энергии и по нему активируется рефлекс в строке. Для этого они должны быть отсортированы по адекватности уровню энергии. То есть сначала активируется нейрон с большим рецептивным охватом, выбирая стиль реагирования, потом уже конкретный рефлекс в этом стиле. Тут уже двойное управление выбором: внешние условия активируют стиль, внутренние - рефлекс стиля. Но ты это тоже раскритиковал. Ну или мы опять друг друга не поняли.
Или ты имеешь в виду, что более частные рефлексы должны кроме внешних сенсоров учитывать внутреннее состояние. У меня так и предполагалось, что уровень энергии в разной степени влияет практически на все стили реагирования.
А вообще, мне кажется мы делаем не совсем правильно, пытаясь вывести такую сложную рефлексию как осмысленную речь из безусловных рефлексов. Точнее, пытаясь ее сформировать без участия лобных долей. Без них будет только агу-агу, уа-уа - и все. А мы пытаемся младенцев научить говорить как попугая. Но попугай ведь тоже будучи птенцом не может имитировать человечью речь, ему тоже нужно сначала полностью сформироваться. Может не стоит пихать в безусловные рефлексы текстовые фразы? Здесь нужно как то извернуться, пойти не совсем "по природному". Почему я и предложил считать безусловным рефлексом стиль реагирования. Вот там можно подвести реакцию под примитивное мычание, а потом уже на его базе развить реагирование словами. А сейчас получается, что туго запеленав младенца, поместив его в сурдокамеру, лишив живого многоканального общения и дав лишь один примитивный канал восприятия мы пытаемся вырастить из него полноценного человека. Но по факту получится даже не Маугли, а что то еще более тупое. |
Род: Palarm - админ Сообщений: 2771 |
"Автоматическое ветвление" рефлексов означает, что есть группа внешних сенсоров, запускающая стиль реагирования. Стиль - это группа рефлексов, расположенная под энергетической линейкой. Активируется группа, затем по текущему уровню энергии активируется рефлекс. Причем, что интересно: если добавить в группу новый рефлекс, он как бы "раздвинет" соседние с ним рефлексы в строке. Теперь они будут активироваться на чуть меньшее - чуть большее значение энергии. Это значит, что привязка их к итоговому суммарному внешне - внутреннему контексту динамическая, а не жесткая.
Но рефлексы должны быть отсортированы в строке в соответствии со шкалой энергии. То есть можно попытаться организовать реагирование через динамические диапазоны, а не жесткой привязкой. Этим можно добиться эффекта, когда новый рефлекс как бы блокирует старый, хотя на самом деле он его отталкивает в сторону.
"Энергетическая линейка" это как один из вариантов управления ветвлением. Можно вместо нее использовать другой диапазон, где активация рефлекса в его строке будет аналогично указывать, какую позицию в модулируемой им строке активировать. Идея сумбурная, но стоит ее наверное осмыслить - вдруг она косвенно натолкнет на действительно интересный механизм. |
Род: nan - админ Сообщений: 12276 |
>>Но ты все это раскритиковал. А теперь выходит это не так уже и не правильно? Я не говорил, что это – правильно или вообще практично, но это всего лишь мое мнение. Я не хочу тебе как-то мешать и все мои посты – только чтобы натолкнуть на идеи, а не направлять тебя. Но мне все больше кажется, что люди со стороны запросто могут подумать, что вот эти двое с умным видом выдают какую-то шизу :) В общем, давай такие дела перенесем в чат, если у тебя возникнет желание что-то обсудить, а здесь будем высказывать что-то приемлемое не только для себя. Каждый будет продолжать самостоятельные попытки до конца мая, потом прикинем, что получилось. |
Род: nan - админ Сообщений: 12276 |
Не могу замолчать прикольный результат :) Детектор нового оказался необходим для механизма классического условного рефлекса. Вот уж не ожидал. Схема рефлекса такова. Если срабатывает какая-то реакция, которая активируется по своему списку условий, но кроме этих условий появилось еще что-то, и оно не помешало получить позитивное подкрепление (улучшение), то такой сочетание должно приводить к тому, что в следующий раз реакция совершится уже только при появлении новых условий. Классика: рутинная кормежка дополняется звонком. И так несколько раз. Теперь уже сам по себе звонок вызывает готовность к приему пищи. Но если бы со звонком приходил бы удар током, то – нет. Странно, что сразу не было понятно, что тут есть операция выделения новых условий. Получается, то детекторы нового – гораздо древнее, чем я считал, относя их к уровню подготовки ориентировочного рефлекса. В общем, кроме инстинктивных условных рефлексов, сделал классические условные для расширения диапазона условий реагирования. И для этого пришлось сделать функцию выделения новизны. |
Род: Клон Infra Real Сообщений: 1175 |
Бурхус Скиннер в ходе своих опытов над голубями установил, что если, независимо от поведения голубей в клетке, им подкладывать регулярно пищу, то наблюдается интересная закономерность. Постепенно голуби начинают повторять те действия, которые чаще всего проделывали в момент появления пищи. Они начинали бегать по клетке, вращать головой. Повторяя регулярно эти действия, голуби связали их выполнение с появлением пищи. Благодарность от: nan |
Род: Palarm - админ Сообщений: 2771 |
А у меня нарисовался определитель нового сенсора с автоматическим присвоением значимости. И это в принципе похоже на то, что у тебя вышло.
Оператор вводит фразы: "привет, как дела?" "привет, как делишки?" "привет" "как дела?" "как делишки?" - и ставит у всех тон "доброжелательный". Бот фиксирует новые макросенсоры с соответствующим флагом значимости. Потом оператор вводит: "привет, сволочь, как дела?" и ставит тон "агрессивный". Бот так же фиксирует новый макросенсор со своей теперь уже негативной значимостью, но дополнительно происходит следующее:
алгоритм разбора введенных оператором фраз обнаруживает в них уже известные положительные по значимости "привет" "как дела?", и получает остаток "сволочь". Так как сам новый макросенсор помечен как "негативный", то остаток сохраняется как новый сенсор с такой же негативной оценкой. Он будет как ложка дегтя. В итоге получается, что если потом оператор введет: "привет, сволочь, как дела?" "привет, как делишки, сволочь?" и поставит нейтральный тон - оба новых макросенсора определятся как негативные (негатив имеет приоритет при суммарной оценке фразы), хотя в базе бота их нет. Получается автоопределение/сохранение сочетаний сенсоров на базе имеющихся - как бы то самое автоветвление, второй слой. |
Род: nan - админ Сообщений: 12276 |
Ты сделал элемент типа Жизненный опыт - для осознанного сопоставления и обобщения. Кроме чужих фраз в массив нужно писать и свои с оценкой последствий. И тогда становится возможным делать поиск по результату и выбор или поиск по фразе и смотреть прогноз. |
Род: Palarm - админ Сообщений: 2771 |
Тогда до кучи алгоритм ветвления мыслительных автоматизмов. Допустим нарисовались у тебя несколько рефлексов, нужно выбрать правильный. Это значит методом тыка активировать такой, который приведёт к состоянию "лучше". У всех рефлексов есть какая то значимость. Располагаем их по возрастанию в строку. Затем запускаем цикл: Активируем центральный, если не то - удаляем его. В итоге получается что с каждым шагом цикла активируется все более отличающийся от исходного по модулю значимости и при этом попеременно меняется знак отклонения. Идёт как бы раскачка с увеличением амплитуды.
Например оператор спрашивает: как дела? Варианты ответа отсортированные по значимости: отвратительно, так себе, нормально, отлично, восхитительно. Первый ответ: нормально. Если не угадал, он удаляется и далее по шагам цикла: так себе, отлично, отвратительно, восхитительно.
Я по такому принципу думаю сделать подброс вариантов при формировании безусловных рефлексов, типа имитация эволюции: сделай чуть лучше, сделай чуть хуже. Но подумалось: а "размышление", "анализ", "поиск решения" не по такому ли принципу идёт? И скорей всего идея слишком простая, чтобы до неё не догадались раньше в какой нибудь теории игр. |
Род: nan - админ Сообщений: 12276 |
Я пока не готов обсуждать это. т.е. у меня нет ясной модели причин-следствий для схемы, которая бы могла обеспечить надежный результат, а, значит, не буду даже пытаться сделать такое. Только когда увижу результат, который точно смогу обеспечить. Еще пара недель и, похоже, смогу приступить к прошивке безусловных рефлексов, потом посмотрю, насколько это близко к тому, что хотел, буду добиваться такой цели. Потом разрешу формировать инстинктивные условие и классические условные. При этом будут писаться Жизненный опыт. Когда отлажу этот уровень, включу ориентировочный рефлекс и отслеживающий уровень фокусировки внимания. С этим начнет записываться трасса переходов актуального внимания (эпизодическая память). Только после этого начну формировать Модели понимания чтобы обеспечить сопоставления и обобщения. |
Род: nan - админ Сообщений: 12276 |
Сделал ориентировочный рефлекс и связь через него с обработкой данных уровня рефлексов для набора жизненного опыта. Теперь займусь прошивкой базовых реакций, чтобы обеспечить то, с чего можно более эффективно строить условные рефлексы и связанные с ним данные об успешности реакций (для жизненного опыта своего и отзеркаливания чужого). После этого будет только один принципиальный путь, которые очень хорошо и повсеместно описан педиатрической литературой. Вот основа (цитирую почти наобум): 1 этап: - наблюдение за игрой взрослого; 2 этап – присоединение к этой игре, совместные игровые действия; 3 этап – подражание действиям взрослого; 4 этап – самостоятельное отсроченное подражание с появлением вариативности игровых действий; 5 этап – появление самостоятельных игровых действий. Например, педагог говорит: «У куклы грязный носик. Вот платок». Поведение ребёнка: прикладывает носовой платок к носу куклы. Или педагог говорит: «Кукла Маша растрепана. Вот расческа». Поведение ребёнка: проводит расческой по волосам куклы. Постепенно малыш открывает для себя назначение многих предметов, но игры как отдельного вида деятельности в данном периоде ещё нет. С усвоением и обогащением игровых действий ребёнок начинает объединять их в логическую последовательность: сначала кормит куклу, затем причесывает и только потом купает. В этот же период ребёнок начинает пользоваться предметами – заместителями. Это происходит под влиянием взрослого, по показу которого ребёнок может покормить куклу палочкой вместо ложки или погладить мячик вместо кошечки. Со временем у ребёнка обогащается не только опыт владения игровыми действиями и увеличивается количество освоенных игровых действий, но и появляется основа для их творческого применения в сюжетно-ролевой игре – ведущей деятельности в дошкольном возрасте. |
Род: Palarm - админ Сообщений: 2771 |
То есть ты потом предполагаешь скармливать боту тексты (1), для выявления закономерностей ветвления фраз в тексте (2). Потом попытки бота на базе этих закономерностей воткнуть свои реплики (3) и оценка их оператором. С учетом поправок новые более сложные попытки (4) и оценка оператором. Затем самостоятельные постановки тем для диалога (5). А как ты предполагаешь прошивать безусловные рефлексы? Я сейчас отрабатываю схему, когда оператор дает фразу и список правильных реакций на нее в виде диапазона от негатива к позитиву. Для проверки идеи, что диалог это спаринг. Типа:
"Привет, как дела?||мерзко-так себе-нормально-отлично-восхитительно"
Для безусловно-рефлекторной реакции выбирается рефлекс в зависимости от текущего уровня энергии бота, для этого и задается диапазон. |
Род: nan - админ Сообщений: 12276 |
Нет, это будет не в автоматизированном режиме, а сначала у бота должна сформироваться цель (на основе нерешенной проблемы), и он, в контексте этой цели будет все рассматривать, в том числе и ответы с Пульта, а для провокации нужного направления ответов, он будет задавать вопросы. Более точно не скажу, пока не будут готовы такие механизмы. Я их описывал в онлайн лектории и в последней книге.
У меня есть для этого 6 редакторов, ты мог бы их видеть в последней версии, что тебе отправил. Сейчас они несколько дополнены. Вся прошивка - до рабочего включения бота, т.е. до того, как он на основе этих реакций начнет строить свои уже инстинктивные и классические условные рефлексы. |
Род: nan - админ Сообщений: 12276 |
Мозг можно условно разделить на три части: 1) контексты значимости от гомеостаза 2) обработка восприятия с системой безусловных и классических условных рефлексов 3) обработка моторных действий с безусловными инстинктами, и автоматизмами (моторными и мыслительными). Первая часть изучена несопоставимо лучше, чем третья, которая вообще как в тумане. Вторая часть изучена на самом первичном уровне. Начав строить схему бота, я по традиции большее внимание уделил первой части. Но все более прихожу к выводу, что более первична в обеспечении адаптивности – третья часть (вторая, конечно, самая первично важная). Именно отсюда начинает исходить вся инициатива с самого начала. Рефлексы типа стимул-действие – лишь дополнение третьей части и уже даже на уровне высших насекомых есть то, что может рулить приоритетами рефлексов в зависимости, в первую очередь, от своего состояния жизненных параметров. Т.е. это уже не просто тупое вынужденное действие от стимулов, а решение потребностей. Третья часть начинает развиваться нисколько не позже первой, а даже раньше. Еще не имея никаких распознавателей внешнего, тварь уже может проявлять действия, в зависимости от потребностей. Конечно же прошитые наследственно, но потом начинается отзеркаливание результатов более сложных рефлексов, а также результатов наблюдаемых чужих действий, в смысле как они приводят к решению потребностей, точнее целей, которые могут в конечном счете приводить к улучшению жизненных параметров. Эта инициативность всего, что обеспечивает достижение целей – есть основа для эффекта гомункулуса – управления организмом и его реакциями или же – эффекта осознания себя в происходящем. И она не возникает как какое-то высшее качество адаптивности, а формируется исподволь. Главное: именно эту инициативность и нужно развивать параллельно с системами обработки восприятия. |
Род: Palarm - админ Сообщений: 2771 |
А что ты называешь целями? Я понимаю так: есть например базовая потребность восполнять потери энергии. Сработал датчик - увидел добычу - попытался её схватить - она стала убегать - погнался за ней. Появилась цель догнать. Сама по себе она не способствует повышению энергии, даже наоборот, но опосредованно способствует этому. И так вся рефлексия: есть базовые потребности - и есть сложные, смотря по развитости нервной системы стратегии их удовлетворения с промежуточными целями.
Ещё интересная мысль: эволюция это не только закрепление удачных мутаций, но и провоцирование развития нервной системы при неудачных. У уродливой особи появились проблемы, она их стала решать, и нашла удачную стратегию применения своего уродства. Похожую мысль уже высказывали исследователи, что многие результаты эволюции это как бы побочный эффект каких то мутауий, которые изначально не были нацелены на формирование этого признака
Хочешь сказать, что этапы формирования нужно отменить? Все отделы начинают одновременно функционировать? |
Род: nan - админ Сообщений: 12276 |
Цель - не потребность, хотя именно потребность заставляет выбирать цель и она выбирается из набора знаний того, что может в данных условиях пополнить энергию, т.е. для этого нужно накопить такой набор своих и чужих опытов, об этом уже говорилось.
Негатив имеет главное значение для развития навыков, его структуры намного превышают структуры позитива в мозге.
Нет, этапы - те же, но уже на этапе условных рефлексов (т.е. сразу после рождения) должно начаться развитие как стороны обработки восприятия, так и стороны обработки инициативных действий. И начинаться как с самих таких действий, когда нет подходящей реакции в данных условиях, так и накопления жизненного опыта (своего и чужого) имеющихся действий с последствиями - как достигших ту или иную цель удовлетворения потребностей. |
Род: nan - админ Сообщений: 12276 |
Вышла очень кстати статейка про то, как формируются категории для понимания окружающего: fornit.ru/7305 Как раз под руку формирования моделей понимания и обретения Я в их контексте гомункулусом. |
Род: Palarm - админ Сообщений: 2771 |
За счет закольцовок добавился новый тип макросенсора - динамический, позволяющий фиксировать распределенные по времени раздражители. Если до этого происходило простое укрупнение макросенсора по типу "звук-слог-слово-фраза", то с появлением закольцовок можно уже не просто сформировать еще более крупный "предложение", а совершенно новый - диалог. Типа: если я ему скажу так, то он мне ответит так, тогда я ему так, а он мне так - и т.д. Простым укрупнением старых, "статических" макросенсоров это не получится - нужна локация по времени. А это значит стэк. Только не отдельных фраз - а в контексте диалогов, что за чем идет. Как шахматная партия. И сюда же добавляется новый тип значимости - "перспективный". Если прежде после каждого рефлекторного ответа шел опрос стало лучше/хуже (в моей модели - приближение/удаление к зоне комфорта гомеостаза), то теперь добавляется более приоритетный опрос о конечном результате цепочки вопрос-ответов: стало ли лучше/хуже (в том же прежнем смысле по отношению к гомеостазу) в конце шахматной многоходовки. Но так как цепочка ходов сама по себе может быть частью другой, более длинной цепочки, то добавляется еще один новый тип значимости - "стратегический": стало ли более вероятным прийти к базовой гомеостатической цели? То есть сама по себе такая значимость не показывает изменения гомеостаза, и тем не менее служит маркером, корректирующим ветвление мыслительных автоматизмов. А затем происходит следующее: если есть закольцовки, управляющие сложно запутанными ветвлениями, это приводит к еще более запутанным ветвлениям закольцовок - рекурсивные закольцовки, где уже нельзя однозначно сказать, кто ведомый, а кто ведущий, только в контексте какой то "опорной" закольцовки. |
Род: nan - админ Сообщений: 12276 |
У тебя получается слито в одном флаконе функционал третичной теменной и третичной лобной коры, т.е. как бы и не нужны функции лобной коры. Возможно (даже наверняка, т.к. на основе любого достижения начинались мутации любых вариаций), природа делала такие эксперименты и что-то в результате получалось. При этом есть то, что стоит учесть. >>теперь добавляется более приоритетный опрос о конечном результате цепочки вопрос-ответов ... стало ли более вероятным прийти к базовой гомеостатической цели? Чтобы оценивать результат, нужно определять цель и тогда можно сравнивать, достигается ли она данной реакцией. И цель – не просто рефлекс, для которого вообще не нужно определять цель, а только – действие. Цель выбирается, исходя из уже имеющегося опыта результатов реакций – выбирается тот опыт (свой или чужой), который достигал данной цели в данном сочетании условий. |
Род: Palarm - админ Сообщений: 2771 |
Я это еще не реализовал, а только теоретизирую. Причем похоже все более отхожу от природной реализации или может просто сильно упрощаю. Изначально предполагались этапы формирования: сначала забиваем базу макросенсоров (коротких фраз), потом переходим к формированию безусловных рефлексов, которые есть реакции макросенсоров из этой же базы, то есть ответные фразы. Но потом подумалось: а почему собственно нельзя просто введя фразу-вопрос + фразу ответ, просканировать их на соответствие имеющейся базе и если там нет таких макросенсоров - то завести их и сразу же завести рефлекс на их основе. То есть с позиции программиста нет никакой причины разбивать этот процесс на этапа, можно сразу. А это значит, что нет причины делать этап формирования базы макросенсоров конечным, что получается не соответствует природной реализации. Или соответствует, если иметь в виду, что таким образом мы симулируем эволюционный процесс, появление новых мутаций. То есть бот это не один организм, а целый вид, который получается как бы бессмертным, вроде поколений ботов, и может мутировать сколько угодно. В принципе а почему бы и нет.
А дальше логично встал вопрос: одиночная реакция - тут все понятно, немедленное реагирование. Но для диалога более перспективным будет построение стратегий, отвечая на фразу, держать в уме заготовки для следующих ответов, исходя из прогнозов, которые строятся по фразам собеседника. Для этого нужно сохранять диалоги в виде цепочек вопрос-ответ. Мне попадалось определение, что цепочки рефлексов - это инстинкты. То есть инстинктивное поведение, как последовательность реагирования.
Для организации такого алгоритма нужно просто сохранять диалоги (в виде какого то количества фраз) и фиксировать конечный результат. И тогда получится организовать прогностические подвозбуждения и ветвления. Их скорей всего надо делать по принципу: если второй ответ собеседника приводит к ухудшению как и первый, значит надо менять стратегию - ветвление идет явно не в ту сторону. Причем ухудшение/улучшение - это по прежнему изменение состояние гомеостаза.
Я тоже подозреваю, что в каких то случаях действие, внешне очень похожее на осмысленное, на самом деле устроено проще. Чтобы дать уверенное определение, является ли реакция "интеллектуальной" нужно смотреть на те отделы, которые она задействовала при исполнении, и которые обязательны по определению для такого типа реагирования - а не на внешнюю похожесть. |
Род: nan - админ Сообщений: 12276 |
Похоже, к концу мая у нас обоих будет что рассказать :) |
Род: nan - админ Сообщений: 12276 |
Нам начинают наступать на пятки :) пока так же бессистемно как это было с "глубокими" нейросетями, но это эристическое озарение приведен к следующему качественному скачку в развитии искусственных распознающий систем. |
Род: nan - админ Сообщений: 12276 |
Схема функционирования Гомункулуса В схеме Бота реализованы функции Гомункулуса – управляющего центра отслеживания текущей ситуации и решения проблем. Схема Гомункулуса есть, и она нормально работает, а “проблемы Гомункулуса” нет потому как она возникла от недостаточно схемотехнического понимания основы принципа: чтобы центр управления функционировал нужен не еще один цент управления, а нужна его активация по актуальным моментам происходящего. Можно было бы сказать, что тогда это не цент управления, а реакция на актуальность, если бы не было ситуации, когда решения для текущих обстоятельств нет и его нужно сформировать и тогда активируется искусственная самоакутальность – Доминанта нерешенной проблемы. В самых простых словах сейчас очень кратко опишу суть работы Гомункулуса. Уровень рефлексов не буду описывать, хотя там есть немало интересного. При работе Бота есть место, где определяется состояние ухудшения или улучшения жизненных параметров. Если при этом не срабатывают уже имеющиеся компенсирующие рефлексы, то, тем самым, ситуация – новая, а значимость высокая: стало хуже или лучше. Это – условия ориентировочного рефлекса, привлекающего внимание Гомункулуса к актуальной ситуации. При этом в оперативную память Эпизодов (цепочка эпизодической памяти) записывается этот момент в виде номера автоматизма (цепочки последовательности реагирования, включающие элементарные реакции и ID уже имеющихся цепочек автоматизмов), веса значимости ситуации, и эффекта реакции (хуже, лучше). Сначала нужно описать Дерево понимания ситуации (модели понимания). Во всех узлах дерева записывается единственное условие, отличающее этот узел от предыдущих, так что по такому дереву моментально происходит поиск по условиям и активация узлов ветки, отвечающей текущим условиям. Так же записывается массив тех узлов эпизодической памяти, которые возникали в момент активации узла дерева. Это значит, что в узле дерева для данных условий накапливается опыт реагирования, причем не только свой, но и чужой. Становится легко выбирать наиболее подходящее реагирование в новых условиях, просматривая опыт, если нужно опускаясь на предшествующий уровень или даже смотря по соседним, чем-то похожим веткам (поиск по условиям в дереве мгновенный). При успешном реагировании нового узла дерева с выбором Гомункулусом оптимальной реакции, в нем появляется ссылка на новый автоматизм, который впредь выполняется сразу при данных условиях если уже есть уверенность в результате реакции (переменная увеличивается при успешном реагировании и уменьшается при неудачах). Если в активном узле нет еще автоматизма, Гомункулус его пробует быстро выработать из уже имеющихся в опыте других эпизодов, а если не может, активирует Доминанту нерешенной проблемы, признанную поддерживать активность Гомункулуса и рано или поздно сформировать автоматизм (в том числе подсмотрев как реагирует оператор). Доминант может быть несколько. Эпизодическая память и Дерево записываются в просто организованные файлы и считываются из них при загрузке. Во время сна или бездействия 1) просматриваются звенья эпизодической памяти, редуцируя малозначимые и корректируя уверенность и значимость узлов дерева, после чего 2) гасятся активные узлы дерева (по стеку их активности, которая удерживается чтобы было легче учитывать уже произошедшее в период бодрствования). Надеюсь, что наглядно видно, как много ценной информации возникает при использовании узлов дерева, хранящих прошлый опыт в виде пережитых эпизодов. Понятно, что это – несопоставимо более эффективный способ формирования новых реакций, чем рефлексы. Но для прогресса нужно воспитание, сначала авторитарная демонстрация того, как нужно реагировать, а потом уже инициатива Гомункулуса. Плохо то, что вместо среды это воспитание возможно только с оператором, у которого может быть много неадекватностей, т.к. он не следует жесткой логике, требуемой объективной реальностью. Но, главное, принцип вполне себе реализуем достаточно просто даже на отдельном компе (не нужны суперкомпьютеры при сделанных ограничениях в восприятии и действиях). Становится возможным гибко дополнять функции Гомункулуса для более эффективной реализации появившихся возможностей. |
Род: Palarm - админ Сообщений: 2771 |
При обучении оператором бота легко запутать, а если операторов будет много, как в случае с интернетными ботами в онлайне - гарантировано никакого обучения и развития не будет - только рефлексирование и алгоритмическое ветвление. Бот "замкнется в себе", не в силах понять, почему при одних и тех же условиях правильные реакции становятся не правильными, а потом наоборот. Стало быть, нужно вводить приоритет значимости обучения: первые рефлексы от оператора "родителя" - абсолютно верные и переосмыслению не подлежат. А это значит, что после стадии импринтинга закономерно напрашивается стадия постепенного выпадания в неадекват - игнорирования оценки оператора, если она не сходится с первичной оценкой от него же и тем более от кого то другого. То есть стазу же начинается построение "внутреннего мира" со всеми вытекающими. Иначе просто не возможна никакая адаптация.
По схеме гомункулуса вопросов много, самые главные - это что есть у тебя "плохо/хорошо, успешно/не успешно". У меня все просто: вышел за комфортный энергетический диапазон - плохо, вошел в него - хорошо, если выбранная стратегия приближает к диапазону комфорта - она успешна, если удаляет от него - не успешна. У тебя по идее должно быть что то подобное этому, а так же воздействия оператора должны способствовать улучшению/ухудшению/успешности/не успешности неважно каким образом: фразами или оценками. Но это лучше на схеме пальцем показывать, только не сейчас. Хочу доделать свои фантазии, чтобы был более предметный разговор. |
Род: Palarm - админ Сообщений: 2771 |
Добавил при поиске рефлекса сканирование матрицы синонимов. То есть если не нашелся рефлекс на конкретный макросенсор, то ищутся рефлексы на его синонимы. И тут же нарисовалось: синонимов может быть несколько - и все они активируются по исходному макросенсору. Nan это описывал как рвущиеся к исполнению рефлексы, которые по идее надо контрастировать. А можно и не делать этого - кучей выпустить. Получится простейший способ формирования предложений из рефлексов в том же порядке, в каком активировались возбудившие их макросенсоры. Например есть пара рефлексов:
В итоге ответ на фразу: "привет, как дела" выдаст: "здравствуй нормально". В каких то случаях это прокатывает и можно так и зафиксировать. А там где нет уже контрастировать. Для этого думаю будет логично использовать свойство "кол-во повторов". Тот рефлекс, что чаще активировался с положительной оценкой на макросенсоры одной группы синонимов получает больший вес при контрастировании.
Другой момент: если при прошивке рефлексов встречается одинаковый диапазон реагирования на разные макросенсоры, то получается не оптимизированная БД рефлексов - избыточная. То есть можно вместо записи нового рефлекса добавить в БД синонимов новый макросенсор в группу, потому, что работать будет точно так же, а база рефлексов станет меньше. Тогда логически вытекает идея сделать процедуры, которые будут перетряхивать, "дефрагментировать" базы, делая поиск более быстрым. Это просится делать в специальном режиме, например "сон", "раздумья".
Из этого вырисовывается другое следствие: если слишком затянуть фазу прошивки рефлексов, то в итоге образуется нейросеть в стиле "мумба-юмба" с несколькими сотнями рефлексов на все случаи. Потому, что форматирование будет все больше и больше укрупнять группы синонимов, делая реагирование все более грубым и укрупненным. А если потом запустить формирование новой зоны более продвинутого реагирования, то новые автоматизмы просто перекроют эту базу и возьмут управление на себя. И тогда получится многоуровневая система, где отключение "лобных долей" приводит не к ступору и fatal error, а просто откатывает реагирование на более низкий уровень, как и происходит в реальной нервной системе. |
Род: nan - админ Сообщений: 12276 |
Сама по себе так гармонично воплотившаяся система дерева Моделей понимания причин и следствий (с привычными моторными и ментальными автоматизмами и их наборами из прошлого опыта, с уровнями отслеживания происходящего по каждому ориентировочному рефлексу и появление возможности инициативного формирования цепочек автоматизмов) оказалась повисшей в бездействии по причине искусственного упрощения сенсорики и среды обитания: нет возможности показать пример действий и воспринять его результат (воспринять причину и следствие). Поэтому искусственную поддержку развития придется дополнить системой обучения с Пульта и по запросу Бота. На Пульте – страница-редактор с показом текущей активной ветки дерева Моделей с необходимой информаций. В зависимости от текущего контекста Моделей и текущей ситуации можно вводить цепочку ответный действий – как первое приближение наиболее привычного автоматизма действий для дальнейшей коррекции уже самим Ботом. Тут же можно проконтролировать, как срабатывает такое действие, автоматически задавая условия для активации данной ветки (кнопкой активировать ветку). Это аналог того, как если бы учитель показал ученику на своем примере, как он действует в данной ситуации и как достигает заранее определенной Цели. Т.е. формирование цели и действий для ее достижения будет авторитарно-принудительным по инициативе воспитателя или по просьбе Бота подсказать. Я не смог придумать более естественную реализацию этого узкого места в заданных граничных условиях схемотехники Бота. Но и нужна ли такая естественность в данном случае? А вот при накоплении достаточно опыта Ботом, в том числе и перенятого опыта постановки Цели и построения новых автоматизмов, система дерева понимания уже очень неплохо организует уровни отслеживания ситуации, вплоть до творческого (открытие Доминант нерешенной проблемы). |
Род: Palarm - админ Сообщений: 2771 |
Я сейчас пытаюсь сделать учитывание предыдущих реакций оператора, видимо это что то вроде твоего дерева. Смысл в том, что простое непосредственное реагирование на фразу оператора быстро исчерпывает себя, работая только как пары вопрос-ответ. А чтобы начать диалог нужно воспринимать вопросы оператора как цепочку связанных общим смыслом реплик, а не отдельные фразы. Это получается как бы разбитый на части макросенсор. То есть его дальнейшее укрупнение: сенсор (корни, приставки, окончания) - макросенсор (слова, фразы в одной реплике) - динамический макросенсор (слова, фразы в разных репликах). По сути "определение смысла" это все тоже непосредственное реагирование рецептор-эффектор, только в качестве рецептора теперь не отдельная "вспышка точки" на рецептивном поле, а серия вспышек в разных местах за какой то промежуток времени. И чем больше промежуток, тем глубже "смысл". То есть реакция теперь уже не мгновенная, а с запозданием, ждет пока заполнится какой то стек, и только потом уже реагирование. |
Род: Palarm - админ Сообщений: 2771 |
При формировании условного рефлекса бота что считать предшествующим раздражителем (колокольчиком), с которым связывается существующий безусловный рефлекс и что считать самим условным рефлексом?
Допустим это новый сенсор в той же фразе оператора, а не предыдущая фраза. Например на фразу "как дела" есть рефлекс "нормально". Тогда на фразу "привет, как дела" он сработает как на отдельный сенсор "как дела", так как он его распознал во фразе. Но кроме того, сформируется новая связь между "привет" и "нормально". Теперь на слово "привет" будет реакция слово "нормально"- что как бы бессмысленно.
Логичнее будет ввести новый тип реакции бота, не словесный. У Nan это индикаторы настроения бота, в данном случае на сенсор "как дела" у бота кроме ответной фразы активируется например эмоция "доброжелательность". И она же автоматически свяжется с новым сенсором "привет". Что по сути означает активацию контекста реагирования. То есть получается, условный рефлекс это не ответная фраза?
Хотя правильнее будет сказать, что такое распознавание цепочки это уже определение контекста реагирования. То есть кроме непосредственной реакции на раздражитель активируются множество ветвлений предполагаемых цепочек дальнейших реакций, на основании прежнего опыта. И каждый последующий ответ оператора подтверждает или отменяет какую то часть из них, до тех пор, пока не останется в идеале одна цепочка. То есть например на третьем ответе оператора станет ясно, что он хочет общаться, а на первом это еще не понятно. Это уже более продвинутое реагирование - инстинктивное, когда происходит прогноз ботом реакций оператора и параллельно запускается цепочка рефлексов в ответ на аналогичную цепочку от оператора. |
Род: nan - админ Сообщений: 12276 |
Классический условный рефлекс - это та же реакция базового (безусловного или условного рефлекса), но связанная с новым стимулом, который был при базовом реагировании. Для связывания нужно получить эффект: стало лучше (если стало хуже, то базовая реакция просто блокируется в контексте этой новизны). Т.е. в рещультате условного рефлекса тварь начинает реагировать уже на новый стимул, даже если старых стимулов нет. Важно: тут обязательно выявляется новые признаки, которых не было раньше в контексте совершения базовой реакции. |
Род: nan - админ Сообщений: 12276 |
Т.к. в природе ус.рефлекс возникает при нескольких повторениях сочетания признаков, то не любая случайная новизна, а упорно повторяющаяся становится запуском рефлекса. |
Род: Palarm - админ Сообщений: 2771 |
То есть сначала нужно определить контекст, а потом уже искать в нем новизну. А контекст в моем понимании это определение цепочки дальнейшего реагирования. Но это не возможно сделать на первом шаге диалога, если только оператор не сказал какую то фразу однозначно определяющей контекст. А если на первый шаг диалога активировалось несколько контекстов, нужно дать ответ согласно одному из предполагаемых контекстов, дождаться от оператора ответа и посмотреть, какому из ветвлений цепочек предполагаемых реакций соответствует теперь уже три звена: вопрос оператора - ответ бота - ответ оператора.
В идеале было бы указание оператором своего контекста сразу, на первом же шаге диалога. Потому, что если не определен контекст, не получится определить новизну. Стало быть на первом шаге диалога лишь в некоторых случаях возможно формирование условного рефлекса, что как бы не здорово. |
Род: nan - админ Сообщений: 12276 |
Контекст это - иерархия признаков, начиная с самых базовых. На стороне рефлекс у меня он реализован последовательной проверкой условий, от базовых и более второстепенных. На стороне Гомункулуса сделано строго - в виде дерева, каждый узел которого отличается от предыдущего на один более второстепенный признак. Первый уровень - параметры гомеостаза, второй - базовые контексты на их основе, далее - действия на Пульте, далее - отдельные слова так, что первое слово фразы становится базовым для всех последующих (сколько слов во фразе, столько последовательных вложений). Словестные контексты у меня записываются не сразу, а ктолько если базовое слово оказывается использованным несколько раз (чтобы не забивать дерево мусором). |
Род: Palarm - админ Сообщений: 2771 |
Пример условного отрицательного рефлекса:
Но условные рефлексы можно выработать и в опытах с применением отрицательного подкрепления, например удара тока, который животное стремится избежать. Так, включение звукового стимула (определенного тона) перед направлением в глаз кролика струи воздуха начнет вызывать условный мигательный рефлекс, т. е. смыкание век (точнее говоря, мигательной перепонки). Первоначально мигание вызывает только воздушный толчок (БС), но после нескольких повторений мигание (УР) происходит в ответ на данный тон (УС) и в отсутствие действия воздуха. Это пример отрицательного УР.
Тут кролику явно становится хуже, и тем не менее рефлекс закрепляется. Думаю все же правильнее интерпретировать формирование условных рефлексов следующим образом:
есть безусловный рефлекс, возникающий на раздражитель. Если перед пусковым раздражителем стабильно, несколько раз появляется дополнительный - он становится пусковым. Стало не лучше, не хуже - просто произошла подмена пускового стимула для существующей реакции. По сути это означает простейший вариант прогнозирования ситуации. В примере с кроликом внезапный порыв ветра запускает рефлекс моргания. Но если перед порывом стабильно слышен звуковой сигнал, кролик начинает моргать на него, но по сути - он просто заранее моргает перед ожидаемым следом порывом ветра. Просто благодаря закольцовке новый раздражитель не успев погаснуть связался со старым, но так как он по времени стоит первым - он и стал пусковым. Из двух слогов сложилось слово, и реакция теперь стала на первый слог, но по сути - на слово, новый укрупненный сенсор, части которого разнесены по времени на короткий промежуток. Это объясняет такой феномен (по той же ссылке):
Допустим, что при обычной выработке УР звонок становится УС и всегда вызывает этот УР, например слюноотделение. Если затем второй УС, например свет, многократно сочетается со звонком в отсутствие пищи, то у животного образуется УР на один только свет, даже если пища никогда прямо не сочеталась с ним. Такой метод называется выработкой условного рефлекса второго порядка
Тут вообще нет никакого подкрепления, ни положительного, ни отрицательного - и тем не менее образуется УР. Образуются цепочки из раздражителей, конечный запускает рефлекс, а первый - активирует цепочку, и получается, что он запускает рефлекс. |
Род: nan - админ Сообщений: 12276 |
>>Тут кролику явно становится хуже, и тем не менее рефлекс закрепляется. Когда в глаза дуют, то они закрываются, это – избавление от негатива, т.е. стало лучше. А вот если раньше глаза были открыты и вдруг дунули, то стало хуже. Держать глаза открытыми, когда возникло новое – появился дующий предмет нельзя, открывание глаз в таких условиях блокируется. В общем я сделал именно так. Если ты привычно кушаешь, когда тебе протягивают гамбургер, но вдруг с красным светом при жтом тебя бьют током, то тебе стало хуже и реакция съесть гамбургер при красном свете долза быть заблокирована. А вот когда к тебе тянут электрошокер и ты увернулся, то вместо тока получил избавление от него, такое закрепляется. В общем, тут условность, как назвать. Можно назвать блокировку неудачного в определенных условиях – отрицательным рефлексом, суть не изменится. Но это должна быть блокировка, а не установление новой реакции. |
Род: Palarm - админ Сообщений: 2771 |
Занимаясь рефлексами нарисовались инстинкты, которые представляют из себя цепочки безусловных рефлексов. И думаю, если поднатужиться, можно придумать и цепочки инстинктов. Это все то же развитие безусловного реагирования. Прикол в том, что внешне это выглядит более "человечно", хотя по сути реагирование все такое же примитивное. Но инстинкты позволяют организовывать обучение в режиме диалога, что создает иллюзию "мышления бота". Как минимум можно организовывать осмысленные коротки обмены фразами. Например такой лог:
То есть инстинктивное поведение в случае с ботом - это просто программа. Так же как и безусловный рефлекс жестко зашитая в коде, но в отличие от рефлекса позволяющая вести простейшие диалоги. |
Род: nan - админ Сообщений: 12276 |
Возможно следующие замечания позволят реализовать новые идеи. Судя по логам и описанию, для каждой конкретной ситуации будет записываться конкретный ответ в виде готовой фразы. Это подразумевает бесконечное разнообразие необходимых заготовленных фраз и быстрое достижение лимита ресурсов. Совсем другое дело, если не использовать макросенсоры, а всегда базироваться на корнях-окончаниях. Это дает возможность гибко дополнять фразу, не используя дополнительную память. Например, для корня “как” могут быть продолжения: как дела | настроение | успехи | найти | суметь | т.д. причем все это – уже имеющиеся наборы из сенсора слов. Теперь для каждого из них может быть ветвление, например, для “суметь”: убедить | убить | порадовать | ответить | и т.д. А для этого уровня – свои возможные продолжения. Например, для “порадовать”: тебя | себя | того | и т.д. Понятно, что максимальный уровень в ветке будет равен длине полной фразы. И еще понятно, что число уровней будет не таким уж большим – по числу слов в разных фразах. Обучение происходит в строгой последовательности. Если с Пульта пришла фраза: “Как я могу тебя порадовать”, то сначала запишется слово “как”. В следующий раз слово будет распознано и может дополниться следующим и когда будет исчерпана длина фразы, то такая ветка будет активироваться уже вся моментально. Конечно, начинать нужно не со слов, а с совокупностей возных условий, создающих контекст понимания фразы: плохо, нормально, хорошо, игра, обучение, нет энергии, гон и т.п. В базе дерева три узла: плохо, нормально, хорошо Каждый из них ветвится на сочетания условий (игра, обучение, нет энергии, гон и т.п.), как оказалось – от оного до трех сочетаний достаточно. Эти сочетания – фактически эмоции (в отличие от гомеостатических контекстов значимости) – то, что Бот должен мочь произвольно активировать. Следующий уровень – разные действия с Пульта: наказать, поощрить, накормить, успокоить, поиграть, поучить и т.п. Для каждого предыдущего уровня узла – должны быть – все эти действия. И только теперь пойдут уровни слов. Вот для узлов слов оператор должен мочь задавать авторитарные жесткие автоматизмы: последовательности слов, действий, заготовленных фраз и уже имеющихся автоматизмов. Это – период авторитарного, безусловного обучения. Потом эта функция может использоваться, когда Гомункулус не знает, как ответить, но отвечать нужно и он задаст вопрос: “как я должен поступить?”. После накопления достаточного опыта Гомункулус начнет сам формировать ответы, исходя из доступного ему опыта узлов дерева и эпизодической памяти – на основе уже ментальных автоматизмов и развивать их. |
Род: Palarm - админ Сообщений: 2771 |
И какой рефлекс с ним свяжется? Идея с деревом очевидно более выгодна, так как позволяет на лету собирать "макросенсор" из ограниченного набора простых сенсоров. Но я не догоняю, какие реакции вешать на узлы дерева и как они в конечном итоге будут собираться в конечную реакцию-фразу бота. Мне видится 2 варианта:
А потом из этих ? каким то образом получить итоговый рефлекс. Либо так:
У меня при определении реакции сначала ищется пусковой макросенсор по полному совпадению фразы, потом по ее частям, потом по синонинам - и все что нашлось пытается запуститься. В итоге если есть рефлекс на слово "привет" - от он будет запускаться на все фразы где оно встречается. Это в принципе похоже на твой способ построения составного макросенсора. Но не могу понять, как ты цепляешь ответные слова-рефлексы к отдельным словам фразы - а потом получаешь итоговую фразу. На слово "как" может быть огромное число вариантов - и ты их все прописываешь? |
Род: nan - админ Сообщений: 12276 |
>>не догоняю, какие реакции вешать на узлы дерева и как они в конечном итоге будут собираться в конечную реакцию-фразу бота. Каждый узел – структура, где есть IDавтоматизма. Автоматизм – тоже структура, в которой прошита последовательность действий. У автоматизмов – свой файл, у дерева – свой, у эпизодической памяти (структура, хранящая IDузла дерева) – тоже свой. Активная ветка дерева со всей последовательностью уровней – и есть образ текущего момента, где видно, какие условия ее активировали и какие слова. Последовательность слов дают фразу. По каждому действию с Пульта переактивируется дерево и в процессе - собираются фразы. Очень важно сохранять эту активность действий некоторое время (у меня раньше было 10 секунд, сейчас 2 секунды), но не оставлять постоянной. Я назвал это – “доминирующем текущим контекстом” или первичной “эмпатией”. Именно по каждому такому события и переактивируется дерево. А в промежутках Гомункулус может заниматься отложенными доминантами нерешенных проблем или просто ничего не делать (лень). По каждой активности очень полезно на Пульте иметь картину активной ветки со всеми ее уровнями и тоже – конечную фразу, без этого очень трудно все отлаживать (не помогут точки прерывания дебаггера). И в этом же радекторе удобно проводить жесткое обучение – записывать автоматизмы по итогам активной ветки, для любого его узла. >>На слово "как" может быть огромное число вариантов - и ты их все прописываешь? Они прописываются по мере необходимости, а не сразу, по мере формирования дерева. Для безусловного уровня обучения полезно, чтобы ветки формировались по текущей новизне за один раз, а на период инициативы Бота – более консервативное условие, чтобы дерево не забивалось мусором. Мало того, если в узле есть счетчик частоты использования, то можно забывать почти не используемые, - пусть если нужно сформируются. Не думаю, что в принципе можно придумать что-то более экономичное для ресурсов и эффективное. |
Род: Palarm - админ Сообщений: 2771 |
Если прописывать реакцию только на активность ветки дерева, то ветка будет по сути тот же макросенсор. Потому как без разницы из чего он состоит - ID узлов или ID сенсоров. Но если на каждый узел вешать рефлекс, не обязательно в виде слова, но также например в виде эмоции, фрагмента слова, и сделать ветвление рефлексов зависимым от активностей узлов - тогда получим более продвинутый интерфейс. С матрицы сенсоров поступает фраза-раздражитель, она активирует ветку в дереве-распознавателе, а при последовательной активации узлов дерева возникает активация рефлекторной ветки. То есть на каждый узел дерева может быть прописано множество рефлексов, которые активируются комбинацией вышестоящих узлов, которые задают фильтр выбора. В идеальном варианте на конечный узел ветки должен активироваться итоговый рефлекс. А если нет, то надо вводить блокировки в узле или вышестоящих узлах, поправляя ветвление.
Еще более интересный вариант - попытаться формировать ответный рефлекс-фразу в виде комбинации ее обрывков, которые активируются в узлах по тому же принципу, что выше. Тут очевиден существенный выигрыш в объеме данных, необходимых для формирования рефлексов. По аналогии делать стеновые плиты разных размеров, или сделать кирпичи, и складывать из них плиты любых размеров. Если конечно удастся подобрать фрагменты рефлексов и правильно разместить их в узлах.
А если вывернуть дерево наизнанку то получим дерево прогнозов, которое можно так же ветвить, активирую рефлексы и смотреть, какие на них были пусковые стимулы. Я правильно понимаю твой фэншуй? Только я все равно не догоняю, зачем надо выдерживать активность ветки 2с. |
Род: nan - админ Сообщений: 12276 |
В структуре узла дерева есть один IDактуального автоматизма – который выполняется сходу при активации последнего узла активной ветки. Но с опытом накапливается массив признаков значимой новизны и если в активном узле есть такая несвойственная ему новизна, то умолчательный автоматизм не выполняется, а сначала вызывается функция осмысления, где будут просмотрены узлы с такой новизной и неудачей. Если нашлось, то нужно выбрать более удачное продолжение для такой новизны и если не нашлось начать придумывать действие (доминанта нерешенной проблемы). т.е. в каждом узле дерева есть int– удачность отработки умолчательного автоматизма. И int– число проверенных результатов (уверенность). При каждой активации узла пишется новая структура эпизодической памяти с idданного узла, так что можно легко выбрать весь прошлый опыт с данными условиями. К данному узлу, кроме умолчательного IDавтоматизма может быть привязано неограниченное число других автоматизмов – попыток совершения действия в данных условиях, своих и чужих, с результатом успешности. Все это – очень полезная инфа для обработки. Самый успешный автоматизм становится текущим умолчательным. Кстати, ты задавал вопрос: “как они (узлы) в конечном итоге будут собираться в конечную реакцию-фразу бота”. Это – очевидно: самый последний активный узел ветки имеет самое последнее слово и он может стать активным только тогда, когда есть все другие слова в порядке их последовательности в узлах.
На дальнейшие перспективы возникает проблема обработки очень длинных предложений и понимания смысла очень длинных текстов, чем типа занимается поясная извилина. Это пока – в тумане, но уже есть естественные версии решений – произвольное переключения активности веток с более мелкими фразами по мере прочтения большого текста и т.о. появления общего смысла (последовательности того, что показывают конечные активные узлы при таком переборе). Кроме темного леса мыслительных автоматизмов – это – далекая перспектива, которую уже нужно учитывать. |
Род: nan - админ Сообщений: 12276 |
В игровых ИИ или “навыках” Яндекс-Алисы и т.п. самым актуальным является построение естественных диалогов. Использовать разного рода ветвления – гиблый для программиста путь, приводящий к предопределенным диалогам. Но с появлением собственных жизненных параметров и сенсорики текущих условий построение диалогов становится контекстным, минимизированным по ресурсам и затратам на обучение и, главное, имеет универсальный механизм дерева контекстов понимания-реагирования. Уровень авторитарного обучения диалогам это – не предопределенная прошивка заготовок, а результат естественного общения, когда оператор подсказывает Боту ответы для данного сочетания условий. При этом запоминаются не фразы целиком, а они раскидываются по узлам дерева так, что одно и то же слово может использоваться во множестве разных веток.
Закончил уровень авторитарного обучения и теперь можно переходить к механизмам произвольности (инициативы Бота). Думаю, сначала ограничиться только одной темой, хорошо ее сформирую в Дереве, чтобы Бот получил достаточно опыта для сопоставлений и обобщений, и тогда начну отладку режима инициативы. |
Род: nan - админ Сообщений: 12276 |
Дополнительные сведения по Дереву Понимания. В природной реализации мозга заранее формируются образы восприятия, связанные с рефлекторными ответными действиями для данных условий. Это могут быть образы бабушек, мальчишек, самого себя и т.п. которые оказываются связанными в дереве понимания с другими образами через образы взаимодействий: мальчишка помог бабушке. Даже до существования слов такая связь формируется при наблюдении за объектами внимания. А со словами она дополняется символьными образами – синонимами так, что подлежащее заменяет образ объектов внимания, а глаголы – образы взаимодействий между ними. Прилагательные уточняют образы, привнося дополнительные параметры условий. Если человек знает несколько языков, то у него возникают множественные словесные синонимы, но даже в одном языке есть немало полных синонимов для одного образа. В схеме Бота нет образов, построенных на зрительных, слуховых и т.п. модальностях. Это напоминает состояние слепоглухих, которые вполне возможно обучать (существуют соответствующие школы). Все образы заменяются уже готовыми словами (от сенсора слов), действия – от сенсоров глаголов, а уточнение образов – от сенсоров прилагательных. Каждый словесный уровень Дерева понимания – одно слово (или символ или окончание). Сенсор полных синонимов позволяет заменять одно слово другим, сохраняя смысл (связанную со словом значимость в данных условиях). Таким образом, связанные одной веткой слова в определенной фразе позволяют получить смысл целой фразы – как взаимодействия существительных через глаголы. Например, для данных условий от узла Я могут быть множество ответвлений через глаголы или прилагательные, формирующие общий смысл понимания. Для других условий эти смыслы могут быть совершенно другими. В качестве Я самого бота выступает особая функция – центр инициативы Бота (homunculus.go), которая может произвольно активировать любые ветки Дерева, в том числе ветки со словом Я. Т.е., как это происходит и в природной реализации, самоощущение может исходить из любых образов понимания (можно легко представить себя хоть мудрым камнем у дороги), но в норма остается понимание, что это – только временно и сохраняется адекватная персонализация. |
Род: Palarm - админ Сообщений: 2771 |
Я думаю единственный способ сохранить адекватность восприятия это сверка с реальностью, которая лучше всего делается в автоматическом, рефлекторном режиме без привлечения всяких лобных премудростей. У бота одновременно бурлят два потока: рефлекторная обработка внешних сигналов и внутренняя, через мыслительные автоматизмы, собственных активностей. Куда в итоге поведёт ветвлений в дереве понимания зависит от значимости направляющих стимулов при активации узлов дерева - эмоционального фона. Если "подкрутить" соответствующий ползунок какой либо эмоциональной составляющей можно легко улететь в астрал, а если ползунок заклинет - там и остаться навсегда. То есть проблема с адекватностью - это проблема активации/гашения эмоционального фона. В норме он должен быть сильно энергозатратным, чтобы быстро истощать нервную систему для срабатывания аварийных датчиков, которые как предохранительные клапаны сбрасывают пар и возвращают эмоциональное давление в норму. |
Род: nan - админ Сообщений: 12276 |
Тут один важный момент: перед запуском автоматизма он сначала проходит через отслеживающий режим Гомункулуса и если того ничто не возмутит (нет важной новизны, которая заставит приостановить выполнение и искать более подходящее), то автоматизма выполняется, ПРИ ЭТОМ БЛОКИРУЯ любые другие рефлексы (кроме самых базовых). т.е. нет каких-то противоречивых одновременностей в реагировании.
Самые базовые рефлексы занимаются распознаванием текущих базовых контекстов значимости, и с ними определяется какая ветвь Дерева готова для активации. Но у Гомункулуса есть возможность произвольной переактивации веток, т.е. изменения эмоционального состояния. А подкрутить можно на Пульте только текущее состояние жизненных параметров. Если ты имеешь в виду под "подкрутить" такую произвольность то да, можно активировать совершенно неподходящие эмоции, и да, по результату Бот получит Хуже и Лучше, что позволит ему судить, была ли правильной подкрутка. |
Род: Palarm - админ Сообщений: 2771 |
Я имел в виду, что должен быть какой то механизм, не позволяющий смешивать реальность с фантазиями. Какая то настройка, ползунок, сдвинув который можно легко выпасть в неадекват. И предположил, что таким ползунком может быть эмоциональный фон. Фантазируя бот может так возбудиться, что переключит реальный (адекватный) эмоциональный контекст на свой фантазийный и вылететь в неадекват. Стало быть должен быть механизм возврата в исходное состояние. Я предположил, что это может быть нервное истощение. Иначе бот так и останется витать в астрале.
Сам эффект не адекватного восприятия неизбежно следует из развития нервной системы до уровня прогностического анализа. Как только начинается активность внутренних моделей понимания возникает риск, что она перекроет активность старого, рефлекторного реагирования. |
Род: nan - админ Сообщений: 12276 |
Любое субъективное моделирование - неадекватно реальности потому как им управляет не реальность (а как именно выделять корреляты реальности?), а подбирается что-то новое для своего поведения, конечно, только после пробы такого поведения станет ясно, подходит ли оно для данных реальных условий. Такой подбор должен быть прагматичным, а не быть самоцелью генерирование всякого бреда, т.е. направление мышление должно иметь определенную цель, а не быть бесцельным. Цель на уровне психики - получение состояния Хорошо (другого критерия выбора направления мышления там просто нет). |
Род: Palarm - админ Сообщений: 2771 |
Значит у бота тоже нет никаких механизмов препятствующих выпадению в неадекват, как и у природных особей. Все определяется личными предпочтениями. Единственный способ не сойти с ума - просто не делать этого без веских оснований. |
Род: nan - админ Сообщений: 12276 |
Можно ввести такие механизмы если понадобятся в конкретных случаях. |
Род: nan - админ Сообщений: 12276 |
Создана переходная базовая версия Бота (скинул Palarm). Самое главное в данной версии - избавление от предопределенных сочетаний базовых контекстов в эмоциях. Теперь базовое Дерево имеет только один базовый уровень: Плохо, Норма, Хорошо. Эмоции формируются из сочетаний, которые предусмотрены в http://go/base_reflex.php: сочетания базовых гомеостатических контекстов, но при этом Бот имеет возможность сам формировать любые сочетания первичных (базовых) эмоций.
Тех.подробности
Теперь, посвятив годик набиванию отработки авторитарного периода (уровень "навыков Алисы", но с базой собственной мотивации и основой для произвольности), можно сохранить и использовать такую базу для дальнейшего развития, для копирования, для коррекции навыков и т.п. Но я не буду сейчас заниматься таким обучением, ограничившись только очень узким окном условий для разработки дальнейшей, уже произвольной адаптивности. Выяснилось, что контекст НОРМА – столь же важен по функциональности, как контекст ПЛОХО и важнее контекста ХОРОШО. Так что теперь есть доказательство необходимости существования такого контекста в природной реализации. _____________________________________________________________________________
Перехожу к разработке структуры функциональности и взаимодействия уровня произвольности (ментальные автоматизмы). Мент.автоматизмы - реализация предоставляемых деревом и эпиз.памятью возможностей в направлении желаемого: изменение эмоц.состояния для нахождения решения проблем, поиски в эпизод.памяти и дереве, сопоставление нескольких веток дерева для общего рассмотрения (с помощью стека на 10 веток дерева), использование отзеркаленных решений или послать сообщение с просьбой подсказать, как достичь такую-то цель.
Целеобразующее желаемое будет формироваться в psy_motivation.go на сл.принципе. В контексте ПЛОХО - только решение текущей проблемы от которой стало плохо, если это - не гомеостатическая проблема, то: В контексте НОРМА на передний план выходят субъективные мотиваторы (желания): 1. неудовлетворенность существующим 2. желание быть полезным 3. получать удовольствие Эти желание становятся Нерешенной Проблемой, переводящей в состояние ПЛОХО и, при невозможности сразу решить ее, открывающей Доминанту Нерешенной Проблемы с механизмами ее реализации.
В psy_motivation.go по состоянию гомеостатических контекстов выбирается целеобразующий приоритет в виде активности одного из основных желаний. Это - предопределенное выделение активностей. Но Бот может и произвольно изменить приоритеты. Возможно, станет необходимым в соответствии с текущими условиями формирование Дерева ментальных автоматизмов - по аналогии с Деревом моторных автоматизмов. Но постараюсь максимально консервативно отнестись к этому чтобы избежать этого дерева.
|
Род: Palarm - админ Сообщений: 2771 |
Стало быть все таки адаптация строится вокруг комфортного состояния, стабилизации диапазона, а не стремлению к хорошему и избеганию плохого.
Я прикрутил матрицу контекстов избавившись тем самым от трех справочников. На матрицу проецируются рисунки-контексты в виде простейших фигур, веса берутся с таблицы контекстов, уровень торможения это параметр "Гон", порог фиксированный. В итоге изменения параметров гомеостаза приводит к изменению весов в матрице контекстов, к чему и можно привязывать рефлексы. А не только к уровню энергии, как у меня было раньше. Основная причина, почему решил попробовать с матрицей вместо простых справочников связей между контекстами - так можно задать довольно сложный алгоритм взаимоотношений между контекстами и самое главное всегда получать какой ответ от матрицы на любые изменения контекстов. Альтернативой было бы муторное прописывание всех вариантов сочетаний, а так получается просто алгоритм взаимоотношений. |
Род: nan - админ Сообщений: 12276 |
Имел в виду, что сам контекст Норма необходим, а не то, что к нему следует стремится. В контексте Норма, когда, вроде все жизненные параметры в норма и можно лениться на диване как кошка, на передний план будет выступать Неудовлетворенность существующим и Желание быть полезным.
Это - интересное решение. И это, возможно, более естественное решение. Но получается, что 1. вместо фиксированных 14 базовых контекстов появляется (у тебя) 64, зато не нужно париться с сочетаниями 14 базовых контекстов, которых может стать, в принципе, вообще огромное число, хотя на деле будет появляться немного. 2. Теряется более наглядное понимание сочетаний 14 контекстов. Трудно понять, что значит какой-то элемент матрицы и поэтому трудно предлагать авторитарно автоматизм. Ну, т.е. если ты видишь, что текущие условия Нет энергии + Стресс, то ответ на фразу "Как дела?" более очевиден. 3. Все же, если заменять этапы развития в выработке сочетаний базовых контекстов готовым справочником, то более очевидны реально востребованные сочетания и на этом уровне можно сформировать очень разные темпераменты. Так что, несмотря на простоту и привлекательность, я пока что остаюсь при своих, но очень интересно, что у тебя получится. |
Род: Palarm - админ Сообщений: 2771 |
Для каждого контекста свой рисунок. Например энергия сплошной фон, стресс прямоугольник, общение крест, обучение пара горизонтальных полосок и т. д. Все они проецируются на матрицу, причём с учётом рецептивных полей. То есть матрица работает как те, что были сделаны раньше. В ней взаимно контрастируются контексты и в итоге получается, что суммарный вес каждого рисунка меняется. Их я потом и думаю использовать для управления ветвлениями дерева. То есть не отдельный пиксель матрицы, а заданная группа отвечает за контекст.
Я думаю нет принципиальной разницы как протягивать активирующие и тормозные связи между пикселями. Главное чтобы ответная активность не была хаотичной, чтобы к ней можно было адаптироваться. Например текущий параметр "общение" 50, он проецируется на матрицу в виде рисунка и после контрастирования суммарный вес его пикселей становится 38,56. И такое значение будет всегда при определённых сочетаниях других параметров. Оно и будет использоваться. |
Род: Palarm - админ Сообщений: 2771 |
Откатил все назад, вернувшись к базовым параметрам. Из всех контекстов реагирования оставил только первичные "плохо-норма-хорошо". Они активируются на каждую базовую потребность в зависимости от уровня "заряда" базового параметра и показаны в правой таблице: синий - плохо, зеленый - норма, красный - хорошо. Реагирование строится по принципу определения актуального базового параметра и выбора рефлекса связанного с активным контекстом. Параметр выбирается тот, у которого максимальное отклонение от зоны комфорта (норма). Предполагается, что правильно выбранный рефлекс уменьшает отклонение (становится лучше).
В итоге получается поочередная адаптация базовых параметров, смотря по тому, кто из них больше вышел из зоны комфорта. Потому, что пока стабилизируется одна потребность, другие благодаря пульсации постепенно выходят из комфортной зоны. Получается как у жонглера, пытающегося крутить множество тарелок на шестах - все время приходится бегать вокруг них. Это и создает эффект "осмысленного" диалога, когда по ходу разговора меняются темы. Думается, это самая простая адаптивная схемы. Ее даже можно было бы сделать еще проще, оставив только одну базовую потребность - энергию и закрутить всю рефлексию вокруг стабилизации энергетического баланса. |
Род: nan - админ Сообщений: 12276 |
Это - вариант создания мотивирующего направления действий, который, в принципе, и ставит Цели с подцелями. Конечно, возможно моделировать это предельно упрощенно, но с потерей очевидности и упрощения до чисто автоматического контура регуляции. И вот тут стоит подумать о том, что Бот должен иметь свою, оторванную от текущей реальности инициативу, основанную только на его текущих потребностях. Иметь свой субъективный мир, подчиненный тому, как он субъективно интерпретирует происходящее. В общем, у меня отката не случилось. Максимально простое изложение логики системы индивидуальной адаптивности Бота В реализации психической адаптивности Бота можно выделить два уровня: 1. Восприятие объективного (от Пульта) с распознаванием его места в иерархии эмоций с помощью дерева 2. Восприятия субъективного (того, что продуцирует сам Бот) для чего используется все то же Дерево. Удаление второго аналогично лоботомии: автоматизмы сохраняются и даже возможно создание новых (только с Пульта – как авторитарное воспитание), но уже не возникнет ничего нового по инициативе Бота, вообще не будет никакой инициативы. Первое реализует понимание ситуации от Пульта с ответными моторными автоматизмами: при получении фразы с Пульта или совершения какого-т действия Бот отвечает своим автоматически действием. Второе, наоборот, при необходимости что-то сказать или сделать инициативно, Бот сначала просто выбирает те ветки дерева, которые содержат подходящую фразу с удачным результатом и выдает ее на Пульт. Это – простейшее подражание отзеркаленного опыта. Если такой ветки не находится, Бот а) если ситуация не критическая, то создает Доминанту проблемы для формирования фразы и решает ее если не сразу, то по мере появления новой информации (актуальные Доминанты могут сохраняться долго). б) в критической ситуации действие требуется быстрое и Бот или спрашивает Пульт о помощи, ожидая ответа или делать что-то строчное из того, что найдено. Т.о. Дерево всегда определяет текущее самоощущение Бота, привязывая его адекватно ситуации. Но, кроме Дерева, Бот имеет текущую Базовую Мотивацию, определяющую направление его инициативы (или бездействия - лени). Всегда у Бота есть текущее самоощущение в виде эпизода памяти (эпизодической памяти), причем, там есть индикатор типа памяти: она создана восприятием объективного (Дерево активируется с Пульта) или субъективного (Дерево активируется воспоминанием эпизода памяти или произвольно Ботом). Итого, в каждый момент времени (пульса) Бот получает общую картину происходящего, которая определяет его Базовую Мотивацию, создает Доминаты для достижения мотивационной Цели, которая может состоять из цепочки последовательных задач. Для решения целевых проблем у Боте есть огромный арсенал возможностей, предоставляемых Деревом, эпизодической памятью, моторными и ментальными автоматизмами и системой Доминант в контексте его Базовой Мотивации. Ментальные автоматизмы способны управлять буквально всеми функциями области инициативности. Все это – уже реализовано схемотехнически. Далее будет делаться уровень творческого решения Доминат проблем в контексте Базовой Мотивации и текущей Задачи в стеке последовательности Задач, состоящий из ментальных автоматизмов. В том числе – уровень создания нового опыта решения Задач. Это – очень большой и сложный плат работы.
|
Род: Palarm - админ Сообщений: 2771 |
Я это сделал, чтобы наглядно понять, на каком этапе автоматическая регуляция переходит в инициативную. Потому, что иначе не понятно, зачем например вводить контексты реагирования с взаимным торможением, запускаемые базовыми активностями, если можно просто добавить еще базовых активностей и продолжать их автоматически подстраивать. То есть найти тот уровень, где схема себя исчерпывает и становится очевидным необходимость нового уровня реагирования и возникает понимание, из чего вырастает эта новая фича. Тем более,что нервная система возникала эволюционно путем наслоения нового поверх старого. Это значит, что бот должен полноценно функционировать на каждом уровне, в своих границах адаптации конечно. Короче, я просто хочу последовательно построить несколько схем путем такого наложения нового функционала. Тебе может этого и не надо, потому как давно все уложено в голове, поэтому ты сразу делаешь конечный вариант, а у меня еще нет. |
Род: nan - админ Сообщений: 12276 |
это - безусловно полезно. |
Род: Palarm - админ Сообщений: 2771 |
Вот как пример нарисовалось понимание формирования определения "контекста сообщения", что думаю является заделом для будущих "моделей понимания бота". Из тех. описания бота:
Первичными сенсорами бота, распознающими введенный оператором текст, являются составляющие слов: корни, окончания, суффиксы, приставки. Вторичными могут быть устойчивые фразы и выражения. Распознавание текста в базе сенсоров происходит в последовательности:
Приоритет отдается более крупному сенсору (макросенсору), поэтому при положительном результате поиск в следующей по приоритету группе прекращается.
По мере формирования базы вторичных сенсоров автоматически происходит формирование распознавателей общего контекста сообщения по принципу: если на разные сенсоры активировался один и тот же рефлекс, то эти сенсоры можно объединить в группу, являющейся контекстом реагирования. Практически это означает, что при активации любого сенсора из группы можно сформировать и активировать специальный, контекстный сенсор. В природной нейросети это соответствует формированию связей нейрона второго слоя распознавателей по логике ИЛИ. Такие контекстные сенсоры так же могут объединяться в группы, формируя общий распознаватель контекста сообщения. Только это уже будет так называемый «динамический сенсор», отслеживающий распределенные по времени активности контекстных сенсоров. Для этого нужно запоминать активности в виде цепочки (стэка) и в зависимости от того, какие звенья, в какой последовательности были активированы в цепочке, активировать соответствующий контекстный сенсор второго уровня – сенсор контекста сообщения. То есть, если в первой фразе оператора было что-то о ветре, во втором о температуре, в третьем о дожде – то с каждой фразой оператора бот будет все более уверенно подходить к тому, что с ним хотят поговорить о погоде, так как именно такой глобальный контекстный сенсор был активирован после третьей фразы, в то время как после первой и второй было несколько и была неопределенность. Это уже задел на развитие будущих моделей понимания.
В природной реализации думаю точно так же естественно формируется второй слой распознавателей контекста, затем с появлением закольцовок стало возможным формировать "динамический распознаватель" на третьем слое. Сначала это было просто размазано по тем областям, где возникали участки распознавателей, но потом, по мере роста таких фрагментов нейросети, технически целесообразнее стало сводить их в пучки, что привело к образованию специфических зон мозга. Так происходит простая, естественная эволюция от мгновенного безусловно-рефлекторного реагирования к более продвинутому прогностическому (условные рефлексы, контексты реагирования) и еще более продвинутому аналитическому (мыслительные автоматизмы). Сначала особь тупо рефлексирует, у нее появляется личный опыт, на его основе она пытается предугадывать ответ реальности и это приводит к формированию моделей понимания и обретению смысла своих действий - самоосознанию. |
Род: nan - админ Сообщений: 12276 |
Для более очевидного представления составляющих процесса формирования смысла, в частности, смысла слов. Потому как это вряд ли возможно обойти как-то иначе. Встроенная поддержка слов – просто распознаватели, но эти слова не имеют для Бота никакого смысла. И поэтому нет возможности самоопределения целевой инициативы на основе восприятия слов. Грубо говоря, смысл (субъективная значимость) слова имеет такое же регуляторное значение, как жизненные параметры гомеостаза. Т.е. с каждым словом в каждом сочетании условий должна связываться определенная их значимость для возможностей удовлетворения базовых потребностей и все на основе базовых потребностей (всего того, что активируется ветками Дерева понимания значимости). Примеры того, как это происходит при воспитании ребенка. Ребенка уговаривают: Скажи МАМА! с акцентом на МАМА. Он не понимает, пытается что-то делать в ответ, но не получает поощрения от этого и не запоминает такие ответы. Много раз и по-разному в разных условиях произносится: "Скажи" с разными словами. Если ребенок вдруг повторит слово, то его поощрят, теперь на слово Скажи он будет знать, что нужно что-то повторять. У ребенка слово Скажи связалось с определенной его значимостью и теперь является основой для произвольного формирования реакции. Только так бессмысленные слова из словарей усваиваются в понимании их смысла. Они выделяются как Важные Слова. Постепенно наработается и оптимизируется зависимый от условий автоматизм на Скажи (если не последует слово, то вопрос: Что сказать?). И это - ментальный автоматизм, управляющий тем, что произвольно делается в ответ. В дереве на слово Скажи формируется понимание того, что нужно сделать в ответ в виде мент.автоматизма, а не бессознательного моторного: нужно выдать слово, следующее после Скажи. Мент.автоматизм выполняет вычленение слова после Скажи и выдает его на Пульт если этому ничего не мешает. Т.е. в мент.автоматизме сформировалась та последовательность действий, которая получила поощрение. Более элементарные мент.автоматизмы могут выдавать произвольные слова ан Пульт и их сочетания. Другой автоматизм может связать выдачу слова со словом Скажи: нужно выдать слово. третий автоматизм делает связь между Скажи и тем, что нужно выдать? В результате мент.автоматизм по слову Скажи выполняет последовательность этих три более элементарных автоматизмов.
Моторные автоматизмы выполняются без осознания хотя могут быть переосмыслены с осознанием их последовательности действий. Ментальные автоматизмы - всегда – организуют специфику осознания текущего понимания (несколько уровней погружения в решение целевой проблемы). Кроме того, каждый шаг осмысления записывается в эпизод.память так, что образуется последовательность задач с каким-то результатом, которая записывается если был позитивный результат таких действий. Эту последовательность можно записать как более сложный мент.автоматизм и приписать к активному узлу Дерева так, что при его новой активации уже возникло понимание, что с этим делать. А если нет еще мент.автоматизма, то эпизод.память используется для прогностического просмотре вперед до узла, где меняется состояние жизненных параметров, т.е. есть результат пройденной в прогнозе последовательности. И это – уже – заготовка задач для мент.автоматизма, но сначала эту последовательность нужно попробовать реализовать. Ну и далее уже дебри осмысления. |
Род: nan - админ Сообщений: 12276 |
Довольно ясно сформировался общий каркас алгоритма произвольности Бота. Мотиватор - принцип формирования ответной реакции на основе Дерева понимания. Предельно лаконичное описание, т.к. детальная картина видна в программной реализации и потребует очень много слов. Если одной фразой, то Главный регулятор мотивированного поведения - достижение цели пробным поведением, после чего ментальная форма становится моторной. Недостижение цели - подавляет ментальную форму. Так что чем многообразнее и изощреннее попытки, тем более эффективная выборка. И все будет сходиться определенным образом. И первое действие – определение текущей цели. И вот как это реализуется ИТАК: мотивация -> в выбор целей (желаемое) -> выбор методов достижения цели (4 уровня осознания) -> запуск собранной цепочки автоматизмов -> оценка результата по соответствию желаемому. В результате реализации на первый план вышло: 1. организация функционала осмысливания слов в Словарном Запасе, который пополняется с каждой новой 2. Функционал цепочек эпизодической памяти – как метод прогноза результата предположительных действий 3. организация мотивационных целей с формированием текущей доминанты и запоминанием Доминант
С этим пластом еще очень много работы, НО, похоже, что этим будут исчерпаны основные задачи моделирования Бота. Глубоко в Творческий уровень погружаться смысла нет. |
Род: Palarm - админ Сообщений: 2771 |
Теперь стало наглядно до очевидности как организуются ветвления рефлексов, которые я в своей схеме бота называю инстинктами. Это не просто последовательное возбуждение звеньев цепи, а обязательно с сохранением активности каждого звена в стеке памяти. Иначе это будет просто каскадная активация нескольких звеньев, что по сути можно свести к активности одного звена, который соберет их до кучи по логике И.
Ветвление же всегда означает наличие обратной связи, в данном случае оператор своими ответами определяет последующие активации бота, что формирует режим диалога. Такая вроде бы простая мысль стала очевидной лишь после реализации алгоритма ветвления.
В итоге появилась возможность создавать короткие, рефлекторные диалоги. Точнее они и раньше были, только разбросанные бессистемно. Теперь же я свел их в отдельный модуль инстинктов и при ответе бот сначала смотрит активные инстинкты, которые суть не решенные проблемы, прогоняет функцию инстинкта пока она не отработает (не завершится цикл диалога) и только потом если надо реагирует старым способом, безусловным рефлексом.
Кроме того, такие короткие цепочки позволяют организовать первичную инициативность бота. Например, при выпадении из зоны комфорта энергобаланса запустить цепочку: "мало энергии, похвали меня - ты хороший - спасибо", или "много энергии, поругай меня - ты плохой - спасибо". Это оживляет диалоги, делая их многошаговыми.
Такие цепочки думаю вряд ли могут быть более 2-3 шагов, потому что подразумевают только простые, однозначные вопрос-ответы, иначе они бы не закрепились в виде стабильных цепочек реагирования. Но из них можно организовать аналогичные ветвления, что еще более усложнит рефлекторные диалоги.
Вот пример простой цепочки в три шага. Смотреть ее лучше по сценарию. По таком алгоритму у меня работает прошивка новых рефлексов в режиме импринтинга + дополняется массив синонимов на втором шаге. |
Род: nan - админ Сообщений: 12276 |
Бывают просто ветвления, без возврата сигнала в начало цепи (обратной связи). Наверное, ты имел в виду последующее подкрепление (негативное или позитивное), т.е. в бытовом смысле "обратная связь". Но в безусловных рефлексах (и их цепочках - инстинктах) подкрепление отсутствиет. Придрался только из-за силы сделанного тобой утверждения :)
Входные слова для бота - бессмысленный раздражитель, и на уровне даже условных рефлексов инициативу вывести не получится. Для инициативы нужны мотивированные цели, которых нужно достичь и появляется уровни достижений, от просто тупого выполнения наиболее ассоциированной (привычной для данного контекста) реакции или, при условии важной новизны - прикидка по имеющемуся опыту-прогнозу, а что эта новизна может значить как новая цель? Постепенно каждое слово в каждых текущих условиях приобретает свой смысл - мотивирующую значимость - возможный результат реагирования. Несколько слов во фразе дают обобщенную цель. |
Род: Palarm - админ Сообщений: 2771 |
Да, именно так. Вообще, интересный вопрос: как на низкоуровневом реагировании распознается порядок активации эффекторов, и распознается ли? Конкретно задача для бота: научиться распознавать слово. На первый взгляд все просто: ввести сенсор, или как у меня макросенсор, и сравнивать по полному совпадению. Буквы расставлены в нужном порядке, и с программной процедурой сравнения нет проблем. Зато есть проблемы с попыткой организовать такой распознаватель на дискретных элементах (нейронах). Если просто сравнивать активности рецепторов букв - получим массив из всевозможных их комбинаций на которые сенсор будет одинаково возбуждаться. Важен порядок расстановки, а для этого нужно запоминать каким то образом последовательность активации сенсоров при считывании и реагировать строго на нее. А это означает новый тип сенсора, который фиксирует кроме общего количества активных рецепторов так же и порядок их возбуждения. Я его назвал динамическим и связал его возникновение с появлением незатухающих активностей. Но как на уровне нейронов это организовано плохо представляю. Регистр сдвига тут не годится - можно нажимать в любой последовательности R1, R2, R3 - и получать на выходе активность всех звеньев цепи. Видимо в конструкторе не получится показать сенсор детектирующий строго заданную последовательность возбуждения.
То есть среагировать на слово и даже целое предложение нет проблем, а вот распознать, в смысле понять - совсем другое дело.
Есть подозрение, что не только инициатива, но даже "распознавание порядка букв в слове" - это на самом деле высокоуровневое реагирование, подразумевающее построение "дерева смыслов", когда активация сенсора одной буквы провоцирует направление ветвления для выбора активации другой. То есть никак иначе не возможно "запомнить" порядок букв в слове иначе как "поняв смысл" такого порядка. М - это просто м, а - это просто а, ма - это уже слог, мама - это уже субъект. Если это так, то дойдя до попыток на базе макросенсоров организовать формирование смыслов, целей, стратегий я упрусь рогом в землю. Максимум что удастся сделать - это инстинктивное реагирование, которое описано выше. |
Род: Palarm - админ Сообщений: 2771 |
Вот как по логам работают пара инстинктов. Первый запускает диалог импринтинга, второй пытается через оператора решить проблему энергобаланса, если он выходит из нормы. Можно ли такой алгоритм назвать рефлекторной инициативностью? У бота цель и задача имеется, нет только осмысления действий - чистая рефлексия. По таким алгоритмам строятся сейчас стандартные боты, например те, что пытаются навесить кредит по телефону предварительно обрабатывая клиента.
Оператор: привет, как дела?
Как оказалось, значительно проще будет, если одномоментно активен только один инстинкт, иначе придется придумывать более сложное разруливание с откладыванием в стэк. Кроме того, обязателен таймаут - время ожидания ответа оператора, иначе цепочка просто подвиснет. При превышении активные, незавершенные инстинкты сбрасываются.
А вот так выглядит технический лог на пульте (читать снизу вверх, фазы сна пишутся блоками):
...Энергобалланс в норме
В нем показана еще активация фаз сна - спец. процедуры, во время которой происходит обновление файлов макросенсоров, рефлексов и синонимов. Туда же планирую затолкать процедуры чистки левых записей, которые не смотря на всякие проверки все равно иногда проскакивают, объединение рефлексов в общие группы базовых потребностей, группировка синонимов. По поводу инстинктов: добавлю при отсутствии действий оператора "проявление инициативы" бота, провоцирование им оператора на общение, обучение, задавание вопросов ботом. Это можно сделать в виде коротких неопределенных цепочек рефлексов типа: давай поболтаем - спасибо, можно спросить... - что такое... - ясно... Чтобы бот не дожидался действий оператора, а сам его провоцировал, смотря по тому, какая потребность у него более всех вышла из нормы. Это оживит диалоги, но понятно, мало приблизит их к осмысленным - все та же тупая рефлексия. Потом настанет очередь условных рефлексов - и только затем наконец дойдет до автоматизмов. Сначала надо сделать максимально прокачанное насекомое. |
Род: nan - админ Сообщений: 12276 |
Инициативность это – не просто выдача заготовок, а создание новых собственных заготовок там, где нет подходящей готовой для некоей новизны условий. Обязательно нужна значимая новизна, которая прогнозирует на основе опыта, что готовая сорваться заготовка не отвечает поставленной цели, потому, к примеру, что в новых условиях заготовка ухудшит состояние по ясной из прогноза причине (прогноз – очень эффективен по выборке схожих моментов эпизодической памяти, которая показывает, к чему приводит обычно данная новизна, но может быть и по Дереву восприятия с элементами той новизны). А раз так, то нужно создать такую заготовку, которая бы учла этот негативный момент. Или заготовку, которая основывается на памяти, где с такой новизной уже была найдена удачный ответ (как частный случай – м.б. лучше вообще ничего не делать). Как видишь, нужна уже наработанная память о моментах, где новизна плоха и где хороша. Ну и алгоритмы выборки. Нужен алгоритм обобщения выборок памяти для выбора цели, максимально учитывающей все условия. Создание новой заготовка это – любой алгоритм, который делает предположительную заготовку для целей, которые формируются текущим состоянием бота, и это состояние возникает подчас вопреки текущей потребности гомеостаза, а оно формируется как следствие понимание смысла происходящего == целеобразующий значимости. т.е. для того, чтобы сформировать цель, бот должен получить максимум описанной информации, и без очень нехилого опыта авторитарного обучения ее будет всегда не хватать. Т.е. твои авторитарные научения должны не только давать достаточно случаев, на которые может опереться алгоритм обобщения, но и сразу же каждый такой авторитарный опыт формирует целеобразующую значимость, которая потом при выборке из памяти поможет выбрать наилучшую цель успешного ответа. Детей натаскивают до 5-7 лет авторитарно и в это время они по каждому такому уроку запоминают те цели, которые решаются данным ответом. Все, что может сделать человек творчески это – как-то использовать такую память и наделать еще своих заготовок такого же качества. Так что пахоты у нас с ботом еще очень много. |
Род: Palarm - админ Сообщений: 2771 |
Это думаю больше вопрос терминологии. Проблема в том, что такие свойства не возникают вдруг, но путем постепенного усложнения на базе предыдущих наработок. И для таких промежуточных шагов нет терминологии, отсюда путаница. Можно сказать, что первичное осмысливание начинается с просмотра цепочек эпизодической памяти, прошлого опыта использования рефлекса. При этом важно, чтобы кроме внешних пусковых условий фиксировалась и текущая на тот момент оценка последствий применения рефлекса, иначе просто нет смысла чего либо смотреть. Это дает возможность грубо прикинуть последствия повторного использования рефлекса и сделать выбор. А это в свою очередь означает возникновение цели - выбрать подходящий рефлекс. |
Род: nan - админ Сообщений: 12276 |
Еще в отличие от рефлекса, инициативность может проявляться вообще в отсутствие раздражителей, в том числе внутренних при полной оптимуме жизненных параметров. Просто от текущего самосознания и имеющихся старых доминант проблем. Прикинь, ничего как бы не провоцирует, а мысль пошла в векторе цели какой-то доминанты. |
Род: Palarm - админ Сообщений: 2771 |
Добавил новый тип рефлексов - базовые, которые запускаются не фразами оператора, а выходом из комфортной зоны базовых потребностей. Nan такие сразу сделал, точнее у него активация безусловного рефлекса может быть как фразой, так и внутренним состоянием. А мне чтобы не ломать алгоритмы пришлось сделать новую группу рефлексов. Они так же пишутся в виде диапазонов реагирования, чтобы можно было добавлять и уточнять реакции-фразы. Начало скрываемого блока
Добавил инстинкт для редактирования массива синонимов в режиме диалога, он активируется при выходе потребности "Любопытство" в зону недостатка, при условии, что нет активностей других инстинктов и действий пользователя в течении 20 сек. Процедура просматривает массив синонимов и если находит группы с малым кол-вом значений, запускает процедуру добавления нового варианта. Пример работы: Начало скрываемого блока
Плохо то, что инстинкты приходится делать в виде программ с ветвлениями, пока слабо представляю как их можно свести к одной процедуре, читающей данные из файла, по аналогии с обраткой рефлексов. Слишком сложно и многовариантно получается. То есть режим автосоздания новых инстинктов по аналогии с рефлексами вряд ли получится малой кровью. Но я это пока и не планирую. Была идея посмотреть, насколько похоже и глубоко можно сымитировать интеллектуальную деятельность при помощи рефлексов.
Но строго говоря, сейчас бот может только мяукать, мычать, хрюкать, вилять хвостом и т. д. - говорить он не может вообще и "думать" тем более. Хотя если напрячься, можно наверное изловчиться и сделать это достаточно убедительно хотя бы на уровне коротких диалогов. Как если бы таракану прицепили транслятор активаций его базовых потребностей в виде подходящих человечьих фраз, и он бы тогда не просто удирал от тапка, а например чертыхаясь и угрожая отомстить. |
Род: nan - админ Сообщений: 12276 |
Настолько полно, что интеллект любой сложности можно прописать в виде автоматизмов, в том числе ментальных. Она сможет даже шутить, но банально. А вот нарабатывать новые автоматизмы тварь не сможет и у нее не будет доминирующих проблем. |
Род: Palarm - админ Сообщений: 2771 |
Кстати, мне пришло в голову: а где собственно у меня реализован ориентировочный рефлекс и как определяется значимость? Оказалось, рефлекса пока что нет, но значимость есть, хотя и не явно, а вытекает автоматически из схемы построения.
По моему, это то, что ты в старом посте этой темы назвал "более древней реализацией ориентировочного рефлекса". Я тогда не очень понял, что ты имел в виду, а сейчас получается тоже об это споткнулся. |
Род: nan - админ Сообщений: 12276 |
Давай определимся. Безусловные рефлексы это – врожденные, прошитые заранее рефлексы. Они более не меняются в ходе индивидуального развития. Я говорил про условные рефлексы, для которых необходима новизна == тому новому раздражителю, который станет пусковым стимулом предшествовавшего рефлекса. Это – не ориентировочный рефлекс, а просто новизна, по которой формируется новый условный рефлекс. По нему не возникает ориентировка внимания на раздражитель для оценки приемлемости старого рефлекса и выработка нового в случае неприемлемости. Новый условный рефлекс формируется по любому. Так что хотя и есть значимость (подкрепление) и новизна условий, но функциональное назначение совершенно иное. |
Род: Palarm - админ Сообщений: 2771 |
Тут опять путаница возникает, но уже из за искусственной реализации. Понятно, что безусловные рефлексы нельзя менять, иначе посыпятся условные, построенные на их основе. Но у меня они меняются, причем в двух вариантах: оператор перейдя в спец. режим может просто дать готовый диапазон реагирования на раздражитель, либо это будет происходить автоматически по факту реагирования (стало лучше/хуже) и с учетом прошлого опыта. Это отступление от природной реализации, но только если рассматривать бота как отдельную особь. А если представить его в этой фазе прошивки как группу поколений, собирающих успешный опыт мутаций, тогда получается другой расклад. В программной реализации можно запросто имитировать эволюционный процесс, и даже более эффективный, если заменить метод слепого тыка на определенные алгоритмы. Это даст искусственным тварям существенную фору перед нами, уже на уровне безусловно-рефлекторного реагирования. Миллионы лет эволюции на мощных компах они будут проскакивать за секунды. |
Род: nan - админ Сообщений: 12276 |
У тебя это - не безусловные рефлексы (терминологию, все же не стоит перекраивать), а некие заготовки авторитарно закрепленных автоматизмов (в самом же деле в раннем возрасте обязательны такие установки и они принимаются без сомнения, безусловно). У меня тоже такая хрень есть для того, чтобы обеспечить быструю набивку авторитарного периода обучения. На основе таких заготовок чужого опыта одновременно формируются мотивационные смыслы, привязанные к отзеркаленным действиям. Какой бы ни была многословной фраза, авторитарный ответ придает всем ее словам в данном контексте один мотивационный смысл == цель. |
Род: Palarm - админ Сообщений: 2771 |
Получается, что то что я назвал базовыми рефлексами и есть безусловные, так как они запускаются изменениями базовых потребностей и не подлежат изменению. Инстинкты тоже жёстко защиты в виде алгоритма, значит это ветвления безусловных с внешним управлением. Ответные фразы бота это уже автоматизмы, так как они динамически модифицируются. |
Род: Palarm - админ Сообщений: 2771 |
Похоже у меня вообще не правильно построена активация рефлексов, как раз из за путаницы в терминологии. Должно быть 2 типа безусловных рефлексов:
Во втором случае бот должен научиться их определять, собирая базу фраз оператора. При этом на начальном этапе ему нужно явно указывать, какая фраза к чему относится. То есть кроме тона сообщения, нужно продублировать для оператора матрицу базовых потребностей, и чтобы при каждом сообщении он указывал одну из них.
То есть адаптация подразумевает, что оба участника процесса имеют одинаковые по функциональности нервные системы, иначе просто не получится прогнозировать реакции партнера. Текущие потребности, глобальные цели, алгоритмы формирования ответных реакций могут сильно отличаться, но "механика" процесса у обоих одинакова в том смысле, что даже если это не так, процесс адаптации все равно будет строиться на том, что это так. По этой причине мы например приписываем животным человеческие качества, а они нам свои инстинкты, из за чего возникают недоразумения.
Можно еще так сказать: нельзя построить прогностическую модель реальности не включив ее в свою внутреннюю модель и не наделив ее своими свойствами. То есть как бы мы ни старались, не получится быть объективным в прогностической оценке субъекта - всегда будут вариации "как бы я поступил на его месте". Вместо реальной объективности будет просто расширения своего Я, добавления ему новых качеств. Это приводит к неизбежным накоплениям иллюзорных погрешностей и в конечном итоге со временем к полному вылету в неадекват с неспособностью объективно воспринимать реальность, но иначе ее вообще не получится никак воспринять.
Касаемо бота: у меня эпизодические цепочки памяти фиксировались с уровнем текущей базовой потребности бота, а надо было с потребностью оператора. Для чего добавил на пульт соответствующие кнопки. У Nana они сразу были, я их сначала тоже держал, потом снес, потому как не понимал, зачем нужно настроение оператора, если достаточно тона сообщения для оценки состояния "стало лучше/хуже". Но оказывается, они нужны для правильного прогнозирования реакции оператора и в дальнейшем для более точного выбора ответного рефлекса. То есть поняв, что хочет оператор, бот получает возможность построить стратегию развития диалога - а это уже образование цели. Благодарность от: nan |
Род: nan - админ Сообщений: 12276 |
каждый эпизод этой памяти должен тупо записываться по каждому срабатыванию ориентировочного рефлекса и фиксировать текущую картину восприятия и связанные с ней возможности (автоматизмы). Вот тогда это станет дееспособной прогнозирования и поиске схожего лентой. |
Род: Palarm - админ Сообщений: 2771 |
У меня сейчас просто фиксируется каждый ответ оператора с обозначенной им текущей базовой потребностью. И когда бот лезет за рефлексом, а у него счетчик неудачных попыток стоит -2, что является порогом в 2 неудачных попытки, то он ныряет в цепочки эпизодической памяти и смотрит, что на этот же раздражитель ответил когда то оператор, при той же текущей базовой потребности. И втыкает его в линейку диапазона реагирования рефлекса как новый вариант. В следующий раз на эту ситуацию будет активен новый рефлекс и у него так же начнет отматывать счетчик в + или -. Но это все происходит в режиме обучения, становления базы рефлексов. Как это соотносится с природной реализацией пока не совсем ясно, потому как безусловные рефлексы не модифицируются. Но может это и не безусловные, или может даже это программная химера вообще не имеющая аналогов с природой.
Про ориентировочный рефлекс выше говорил - его тут может пока еще и не быть, либо он не явно присутствует. Для срабатывания рефлекса достаточно определения сенсорами раздражителя-фразы и далее ищется рефлекс для него в линейке диапазона текущей базовой потребности. Оценка стало лучше/хуже является пусковой для поиска в цепочках памяти нового варианта и наматывания счетчика эффективности срабатывания. Она в свою очередь срабатывает только при выходе из зоны комфорта, стало быть нахождение в зоне просто активирует рефлексы, соотнесенные с этой зоной без поиска новых вариантов и счетчик у них не меняется. Раз их срабатывание не выкинуло из зоны, значит пусть так и остается. Я предполагаю, что возможно потом ширина зоны будет управляться из каких то высших слоев, тем самым делая реагирование более "нервным" или "инфантильным".
Сейчас следующим шагом думаю вернуться к самому первому варианту - ассоциативным группам. Раз оператор теперь указывает свое текущее базовое состояние-потребность, значит все его фразы находятся в одном контексте - их можно объединить в целевую группу. А далее логически вытекает, что и фразы бота, оцененные оператором положительным тоном, находятся в том же контексте. Затем можно будет поразмыслить, как эту группу разбить на более мелкие. В конечном итоге можно будет прописать настоящие условные рефлексы, активирующиеся на определение ассоциативной группы. Их можно выводить в виде коротких фраз-названий групп, как я и делал в самой первой версии бота. Там на фразу оператора активировалась не ответная смысловая фраза, а название ассоциативной группы. Типа:
То есть тут активируются метки-маркеры дальнейшего предполагаемого развития диалога. Бот понял, что его поприветствовали и хотят пообщаться. Собака в этом случае просто завиляла бы хвостом. Но у бота нет хвоста, поэтому он выдает многозначную контекстно-ассоциативную фразу, если нет более продвинутой цепочки реагирования, то реагирует безусловно-рефлекторно. То что сейчас бот отвечает "осмысленно" может статься ненужное и даже вредное извращение. Конечно так можно навертеть сильно похоже на человечью речь, но очевиден тупик и встанет вопрос - что делать со всей этой кучей рефлексов, когда бот действительно начнет вязать осмысленные фразы. Они явно станут лишними, и какой смысл тогда их забивать? По этой причине я их все снес, оставив только тестовые. Но практика показала - да, так тоже можно, если задача сделать прокачанного таракана, или более практично: например болтливый робот-пылесос, который может очень даже в тему отвечать.
В описании Алисы говорится, что там так же определяется через алгоритмы свертки смысловой контекст, чтобы не сводить диалог к простейшему пинг-понгу многозначных фраз. |
Род: nan - админ Сообщений: 12276 |
В развитие плана (озвученного в Сообщение № 47503), многое добавилось и изменилось. Чтобы лучше просечь, начнем с аналогии: есть система искусственного интеллекта GPT-3, которая писала в научные журналы статьи, неотличимые на первый взгляд от работы ученого (за что эти журналы порицали), построенная на предельном простом принципе. Основная функция GPT-3 - предсказывать следующее слово или его часть, ориентируясь на предшествующие. По сути, она просчитывает связи между словами и предлагает наиболее вероятную последовательность. Модель работает по принципу автодополнения — почти как функция Т9 в смартфонах. Отталкиваясь от одной или двух фраз, она может мгновенно сгенерировать текст на несколько страниц. Но эта система не имеет собственного вектора желаемого т.к. не имеет проблем своего “гомеостаза”. Поэтому все тексты или диалоги не имеют определенного смысла. Этот принцип выходит на новое качество в случае фильтрации багажа опыта по текущим потребностям и, главное, текущей цели. По этому механизму реализуется развитие сновидений, обсуждения, фантазирование вообще любой акт творчества. Т.е. это – и есть основа реализации произвольности там, где не подходят привычные автоматизмы. А там, где они подходят, автодополнение просто срабатывает в зависимости от условий. Для поддержки принципа нужно определить, что такое смысл и что такое цель. В понятиях программной реализации Смысл – значимость того состояния, которое сопровождает результат реагирования. Цель – то состояние, которое желательно достичь. Т.о. Цель == смысл, записываемый при каждой активации Дерева понимания (==определенная уверенность в выборе действий того, что возможно получить, если достичь Цели). Структура цели включает обобщенную оценку того, насколько стало лучше или хуже (Mood - настроение), ментальный автоматизм, содержащий действия, приводящие к Цели, маркер того, что Цель – гипотеза или проверена реально, а так же рейтинг для конкурентности с другими целями. Соответственно, теперь к каждой ветке дерева привязана структура Цель. Чтобы это заработало нужно ввести механизм понимания обобщенной цели, которая складывается из отдельных промежуточных целей составляющих фразу, для чего и пригождается заготовка Стека общего смысла (у людей 5-7 элементов смыслов, у Бота - 10). При авторитарной набивке Дерева оператор с Пульта для каждой фразы задает ответные автоматизмы и смысл фразы (в виде Цели типа структуры Task) – как бы обещание того, что будет при выдаче этой фразы в данных условиях. При этом все слова фразы первоначально приобретают такой же смысл в этих условиях. В периоде инициативы Бот может спросить, что означает такое-то слово и оператор может вбить для предыдущей своей фразы авторитарный смысл Task. Или оператор выдаст поясняющую фразу со словами, которые уже есть в словарном запасе Бота (их видно на странице Пульта для показа Дерева). Если при активации Дерева текстом, превышающим длину ветки, эта ветка уже имеет смысл, то ветка заносится в Стек общего смысла, дерево заново активируется уже с прерванного места и так набираются ветки, уже имеющие смысл для того, чтобы сформировать общий результирующий смысл. Если это удается, то содержимое стека запоминается долговременно, как новый смысл текста (типа структуры generalMeaning) и ссылка на структуру прописывается в текущей эпизодической памяти. Теперь такое сочетание активных веток, точнее упрощенное сочетание корней слов в такой последовательности, уже будет узнаваться в определенном смысле и будет опыт того, что это значит и к чему приводит, как этим можно воспользоваться в виде Цели. Пример: если уже есть смысл в однословной фразе “Привет”, то когда приходит “Привествую” и еще нет такой ветки (длина фразы>длины ветки), то часть “Привет” записывается в StackCommonSense и после неудачной активации Дерева “ствую” – эта часть просто дописывается в Дерево с рейтингом временно и с пониманием, что это не корень слова. Если после Привет идет слово тебе – так же уже из словарного запаса со своим смыслом, то обе ветки (первая активировалась по Привет, вторая – по тебе) помещаются в StackCommonSense, выясняется общий смысл из составляющих, создается generalMeaning с этим смыслом, записывается в эпиз.память. Этот общий смысл отражает понимание==использование значения этой фразы из смыслов двух веток, запомненных в generalMeaning. Каков смысл слова "тебе"? Как его выразить в Task, а общий смысл Привет тебе - в generalMeaning? МОЖНО :) нужно только вкурить. смысл слова "тебе" - 1) в обобщенном Mood, которое в разных ветках может быть разным от тебе лучше или хуже и 2) в виде EmotionID и 3) MentAutomatizmID совершаемого действия и 4) по анализу самой ветки LastNodeID. Все это - инфа для сопоставлений и принятия решений, дающая определенную уверенность в выборе действий (понимание). Эпизодическая память очень удачно модифицировалась (в ней уже были элементы смысла, а теперь добавилась структура общего смысла). Теперь, в случае длинных текстов в эпизод.памяти изранится не одна активная ветка, а массив последовательно активировавшихся веток (каждая, обладающая своим промежуточным смыслом).
В целом для программной реализации стало сложнее (мягко сказано) со всем этим управляться, а в природной организации получается преимущество: там роль указателей на любой сколь угодно огромный массив (ансамбль) может играть 1 (один) нейрон, активирующий этот массив и не нужны никакие промежуточные объекты. Возможно, код можно так оптимизировать, что все эти сложности утрясутся, но пака на такое не хватает мозгов и приходится использовать то, что вышло. |
Род: Palarm - админ Сообщений: 2771 |
То есть ты просто на начальном этапе записываешь, какое воздействие оказывает часть слова/слово/фраза на бота по условной шкале значимостей. Например значениями от -10 до +10. И это воздействие должно провоцировать ответный корректирующий рефлекс, последствия которого оцениваются по принципу "стало лучше/хуже". У меня это реализовано в виде представления базовых потребностей в виде диапазона значений с тремя зонами: пониженных, повышенных и комфортных значений. Воздействие оказывается непосредственно на базовую потребность, сдвигая ее текущий уровень. Если сдвиг произошел в зону низких значений - возникает состояние ПЛОХО, в зону повышенных - ХОРОШО, а нахождение в зоне комфорта означает КОМФОРТ. Смысл рефлекторной деятельности - не выпадать из зоны комфорта.
Понятие СТАЛО ЛУЧШЕ, СТАЛО ХУЖЕ определяется по принципу: если внешнее воздействие увеличило отрыв от зоны комфорта - стало хуже, если уменьшило - стало лучше. И это уже определяет глобальную ЦЕЛЬ всей рефлексии бота - провоцировать оператора на такие воздействия словами, чтобы они сдвигали уровень базовой потребности в нужную сторону.
Я думаю, это основные базовые принципы построения адаптационных систем:
Простейшая механическая модель такой системы - маятник, который качнули и он "пытается" прийти в равновесие. Тут базовая потребность - успокоиться, внешние воздействие - толчок, ответное воздействие системы - сила инерции. В нервной системе происходит по сути тоже самое, только реализация сложнее.
А об интеллекте мы начинаем говорить тогда, когда непосредственное рефлекторное реагирование усложняется до уровня прогностического. Я таким термином обозначаю попытки спрогнозировать ответную внешнюю реакцию на рефлекс перед его выполнением. При этом принципиально ничего нового не появляется, все те же "плохо - норма - хорошо, стало лучше - стало хуже". Но добавляются промежуточные "смыслы", "цели", и "значимости" потому, что теперь реагирование происходит более чем за один шаг и нужны дополнительные маркеры для каждого шага. Глобальный смысл прежний: не выпадать из зоны комфорта, просто теперь эта зона на каждом шаге прогноза формируется отдельно, как тактическая - часть глобальной, в виде задачи попасть в определенный участок, сделать успешный шаг к глобальной зоне комфорта. А это в свою очередь определяет параметры шага прогнозирования:
То есть проще говоря, если первичное рефлекторное реагирование это просто шаг, то интеллектуальное - перемещение на заданное расстояние множеством шагов. Вся интрига строится вокруг прогноза ответного внешнего воздействия и построения на его основе стратегий реагирования.
Получается, как ни крути, но программное создание адаптационной рефлекторной или прогностической (интеллектуальной) системы всегда означает создание некой виртуальной вселенной, оказывающей воздействие на систему. Я имею в виду, что даже наличие реального оператора все равно подразумевает прописывание каких то его воздействий на бота, придания начального смысла, значимостей его словам. Без инициализации его воздействий бот никак не будет на них реагировать. |
Род: nan - админ Сообщений: 12276 |
Нет, жизненные параметры - одно, а субъективное ощущение м.б.вобще противоположным. Например, ты выложился полностью, получил травмы, но достиг цели и ИМЕННО достижение цели дает субъективное Хорошо, вопреки гомеостазу. И это - не рефлексы.
У Бота нет виртуальной вселенной, мы ничего не эмулируем, он реагирует на реальные воздействия, хотя они и условны, как условны вообще любые сенсорные сигналы. Значимость им придает субъект. Эти сигналы реально коррелируют с изменением жизненных параметров, а это - основа оценки значимости. |
Род: Palarm - админ Сообщений: 2771 |
Я думаю изначально было не правильным вводить понятие гомеостаза, отчего и пошла путаница с приоритетами. Бот программа, нет у него никакого гомеостаза. Зато есть потребности, которые надо удовлетворять (стабилизировать). И вокруг стабилизации этих потребностей и закручивается вся нервная деятельность.
То, что задано как GomeostazParams на самом деле смешанные параметры. Нулевой, задающий уровень энергии можно отнести к гомеостазу, а вот например "общение", "любопытство" - это уже потребности, не имеющие к гомеостазу никакого отношения. На эти потребности оказывается внешнее воздействие, они выходят из равновесия - их надо стабилизировать. Та, что в текущий момент наиболее вышла из зоны комфорта становится доминирующей и акцептирует на себя процесс стабилизации. В итоге получается постоянное переключение фокуса внимания между потребностями, поочередная их стабилизация.
Если рассматривать с этой позиции, то нет никакой борьбы приоритетов между гомеостазом и какими то высшими потребностями. Есть просто потребности. Базовые, от которых ветвятся более частные - и все они стабилизируются по одному принципу. То есть не достижение цели дает субъективное ощущение "хорошо", а стабилизация новой временной потребности. И тогда не нужно вводить новые понятия "цель", "смысл" - это все те же "плохо - норма - хорошо", "стало лучше - стало хуже". Я исхожу из того, что нервная деятельность, как бы сложно она не выглядела, в основе имеет простой принцип стабилизации какой то текущей потребности. Интеллектуальная деятельность это продвинутый алгоритм прогностического (стратегического) реагирования, сопровождаемый субъективными ощущениями, которые являются ощущениями работы датчиков "стало лучше - стало хуже". |
Род: nan - админ Сообщений: 12276 |
Все сложнее. Перечисленные потребности - тоже влияют на жизнь потому, что жизнь происходит в социальном окружении, где важна эмпатия, альтруизм, неудовлетворенность существующим. Это - не говоря про любопытсво, которое настолько важно, что исследовательское поведение реализовано даже у очень простых животных.
Возможно да, можно бы обойтись и без энергии, но это тоже не стоит решать сгоряча, это - спорный момент. Я бы предпочел оставить этот основовполгающий параметр так же как вообще понятие живой-неживой. Без энергии бот неживой.
Здесь не стоит упускать из внимание принципиальный и очень важный параметр новизны.
Вот здесь не могу согласиться ни в чем. Субъект потому и способен к инициативам, что он оторван от реальности (не является автоматом типа стимул-действие, зависящее только от внешнего) и находится в мире своих абстракций, где оценка того, что такое хорошо и плохо становится - тоже одной из главных, направляющих абстракцией. Чтобы действовать вопреки автоматизмам в новых ситуациях, где автоматизм или уже показал недейственность или оная прогнозируется прежним опытом, нужен механизм нахождения альтернатив - постановки целей, которые нужно достичь. Без целей невозможно выйти из рефлекторного реагирования. |
Род: Palarm - админ Сообщений: 2771 |
Гомеоста́з — саморегуляция, способность открытой системы сохранять постоянство своего внутреннего состояния посредством скоординированных реакций, направленных на поддержание динамического равновесия. Стремление системы воспроизводить себя, восстанавливать утраченное равновесие, преодолевать сопротивление внешней среды.
Обычно под "внутренним состоянием" подразумевается система жизнеобеспечения организма, автоматическую регуляцию которой можно настроить через безусловные рефлексы. Но если глянуть более глобально и под системой иметь в виду набор потребностей, внешними воздействиями постоянно выходящих из равновесия и которые требуется стабилизировать, тогда не возникает проблемы с перекрытием гомеостатической значимости какой то другой, более важной. Значимость все та же, гомеостатическая, просто есть базовые потребности по умолчанию (классическое понимание гомеостаза), а есть динамические, возникающие по мере ветвления прогнозирования.
Я имел в виду, что в списке параметров гомеостаза у нас смешаны в кучу кроме действительно гомеостатических параметров типа энергобаланса еще и базовые потребности, и возникает вопрос о правомочности называть все это гомеостазом. Энергобаланс удалять не стоит, он для бота нужен как минимум для того, чтобы теряя энергию при пульсации он выводился из равновесия даже если никаких внешних воздействий не происходит.
Я так понимаю: если нет рефлекса, запускаемого текущими условиями - значит это ситуация новизны. Если текущая потребность вне зоны комфорта - значит новизна значимая. А если потребность в зоне, то значимость нулевая и даже новизна не запустит алгоритм поиска нового рефлекса, потому, что новизна * значимость ==0. То есть на безусловно рефлекторном уровне бот, если все его потребности в зоне комфорта, не будет ни на что реагировать - ему все будет пофиг. А вот прогностическое реагирование может определить, что если и дальше будут продолжаться такого то типа внешние раздражения, то будет выход из зоны комфорта и надо заранее среагировать на опережение, чтобы этого не случилось. То есть я думаю вполне достаточно базового понятия "стабилизация потребности", которое позволяет описывать любой сложности нервную деятельность. И понятия "смысл, цель" вытекают из этого определения. На безусловно рефлекторном уровне нет понятия "смысла - цели" просто потому, что там все реагирование делается за один шаг и нет надобности расчерчивать карты ветвлений рефлексов, рассчитывать стратегии.
Инициатива означает не ждать пока вывалишься из комфортной зоны, а сработать на опережение. Либо если вывалился, то не махать рефлекторно как жук лапами, а прозондировав прошлый опыт рассчитать наиболее быстрый и эффективный способ вернуться в устойчивое положение. Я потому склоняюсь к понятию стабилизации временной потребности вместо введения понятия цели, что кроме определения цели нужно ведь еще и как то определять, движешься ты к ней или удаляешься. А это как раз легко решается в случае стабилизации: определил зону стабилизации "надо встать на ноги" и начал сравнивать свои попытки на эту тему, приводят ли они к более устойчивому состоянию или нет. А по поводу абстракций: ничто ведь не мешает вообразить, что ты упал и запустить тот же процесс вставания с колен. И тогда да, будет отрыв от реальности, действие вопреки рвущимся безусловным автоматизмам. Но это просто частный случай процесса стабилизации неадекватно определенной зоны комфорта. |
Род: nan - админ Сообщений: 12276 |
Конечно, каждый будет продолжать продвигаться в соответствии со своими представлениями, так что настаивать не стану. Но вот ситуация: с Пульта пришел длинный текст, что Бот будет делать? как он этот текст будет разбивать на части, чтобы по частям понять суть и ответить? Не по точкам же :) В реале когда ты читаешь фразу, ты разбиваешь ее по мере просечения смысла прочитанного, переходишь к следующему куску, просекаешь и его смысл, и в конце у тебя сформируется обобщенный смысл всей фразы. Если в каком-то фрагменте смысл оказывается не понят, то и общий смысл провисает. А дети так делают со словами, разбирая их по буквам. |
Род: Palarm - админ Сообщений: 2771 |
Вот соображения по этому поводу:
С помощью безусловных, условных рефлексов, инстинктов можно создать достаточно сложную нейросеть бота, создающую иллюзию наличия у него интеллекта. Однако после недолгого общения станет ясна существенная проблема бота при ведении диалога. Например, можно отругать его, довести до бешенства, а затем через некоторое время спросив «как дела», получить вежливый ответ, словно и не было ничего. Конечно, можно изловчиться и создать сложные ветвления рефлексов, инстинктов, способные разруливать подобные ситуации. Но в других случаях, не учтенных алгоритмом, все равно будет очевидно, что бот совершенно не понимает, что он отвечает. Для него ответы это просто набор бессмысленных символов, которые он генерирует согласно алгоритму, на такие же бессмысленные символы оператора. Потому, что безусловно рефлекторное реагирование, и производные от него условные рефлексы и инстинкты, сколь бы сложными они не были, не способны работать с такими понятиями как «смысл реагирования».
Главная проблема рефлекторного реагирования – реакция на раздражитель, без учета последствий более чем на один шаг, да и то, довольно неточно. Потому, что простой анализ прошлого опыта эпизодических цепочек памяти типа «что было в ответ после такого то реагирования» не учитывает постоянно меняющихся внешних условий. Лишь самые простые реакции общего плана дают похожие внешние ответные реакции. А для более точного прогнозирования нужно уметь объединять свои и ответные внешние реакции в смысловые группы – ассоциации. Тогда станет возможным дробить и объединять сами ассоциативные группы, получая более общие или более частные смыслы. Что в свою очередь позволяет определять стратегии реагирования, ставить цели и создает новый тип сенсора «стало лучше/хуже»: приближение к цели означает улучшение, удаление от нее – ухудшение. Это дает принципиально новые возможности прогнозирования, ведь реакции могут быть значительно разнесены по времени. Поэтому такое реагирование можно отдельно выделить как «прогностическое».
Для прогнозирования необходимо построить внутреннюю модель реальности, выделив в ней объекты, их свойства и взаимоотношение между собой, а так же модель собственного Я, наделив ее личными свойствами. У бота только один вербальный канал взаимодействия с реальностью, он не может нюхать, щупать, пробовать на вкус, поэтому на основе установившейся системы речи можно просто сразу выделить объекты вселенной бота как существительные, их свойства как прилагательные, и взаимодействие между объектами как глаголы. В результате остается только установить комбинации свойств для объектов и типы взаимодействий между ними. Это уже делается на основе личного опыта бота – диалогов с оператором или чтением текстов. В результате формируются группы ассоциаций, которые позволят боту самостоятельно выстраивать на основе логических алгоритмов дополнительные связи между объектами и их свойствами – рассуждать.
Формирование ассоциативных групп делается по следующим критериям, выделяемых в психологии:
То есть на первом этапе надо создать алгоритм формирования ассоциативных групп, потому, что хотя их в принципе можно просто забить как матрицы, но надо ведь сделать так, чтобы бот мог в дальнейшем сам их расширять и перекраивать. На следующем этапе видимо надо создать алгоритм ветвления ассоциаций на основе правил логики, чтобы бот мог самостоятельно рассуждать. |
Род: nan - админ Сообщений: 12276 |
Бот, как и ты, должен удерживать текущую тему, удерживать свое текущее самоощущение (== уровням мотивационных контекстов), которое может быть произвольно (по необходимости решения текущей проблемы для поиска альтернативных автоматизмов) любым, даже если жизненные параметры по нулям. Вот такой мотивационный контекст и должен определять текущий смысл всего, в том числе целевой смысл разговора.
Вот тогда он будет понимать.
Даже автоматизмы сами по себе на это не способны, хотя у каждого автоматизма должна быть приписана цель, которой он должен достичь (для системы обеспечения достижения цели).
Смотря что ты включишь в каждый фрагмент эпиз.памяти. А в них должны быть ссылки на активные узлы, в том числе и на несколько последовательно активировавшихся узлов веток по длинной фразе с Пульта. В каждом конечном узле ветки должна быть ссылка на целевой смысл, который показывает, что может получить бот при активации этой ветки. И вот, выборка по эпизод.памяти может выявить длинную фразу, разбитую по понятным смыслам. Поместив это в стек Общего смысла, Бот, на основе прежнего опыта, может попробовать выявить обобщенный смысл всей фразы. Вся эта хрень у меня уже сделана. Сейчас основой каждого смысла у меня является условная (субъективная оценка настроения (параметр Mood)), но при этом в структуре смысла есть ссылка на эпизод.память, его породившую (т.е. узлы Дерева, хранящие целевое состояние) и ментальный автоматизм – гипотеза того, как достигается цель такого смысла.
Это – альтернативный путь, по которому ты пошел, я не могу сразу вникнуть в его перспективность, для этого н ужно пройти такой путь, но эвристически, я уже выбрал другой путь.
Это – очень правильно, я еще не дошел до использования частей речи, это будет привлечено для конструирования фраз на основе грамматики, но в качестве элемента смысла слова это – важный момент. У меня в словарном запасе - массиве слов, для которых бот уяснил мотивационную цель (структура - выражение желаемого улучшения), записывается тип части речи для анализа семантики фраз. >> Формирование ассоциативных групп делается по следующим критериям, выделяемых в психологии Я убедился, что реализация одних и тех же самых общих принципов (а мы говорим о принципе нахождения ответа в зависимости от полученной фразы, своего состояния и своей текущей цели) может быть на совершенно разной тактической схемотехники и мы не сможем точно выявить такую схемотехнику в природной реализации. Каждая из схемотехник дает те или иные конкурентные преимущества ми недостатки.
|
Род: Palarm - админ Сообщений: 2771 |
Я имел в виду, что безусловно рефлекторном реагировании такого нет, что и показывает его ограниченность - неспособность предсказывать последствия реакций.
Появление эпизодической памяти само по себе не означало возможность анализа. Можно лишь грубо прикинуть на основе прошлого опыта, да и то лишь на один шаг - и это большей частью будет пальцем в небо, потому, что никак не учитываются постоянно меняющиеся внешние контексты. Для полноценного анализа нужны ассоциативные группы - появление особого отдела мозга, где устанавливаются связи между самоподдерживающимися активностями.
Под общими принципами ты имеешь в виду то, что я называю "прогностическим реагированием", основанном на способности предсказывать на более чем один шаг ответную реакцию внешнего окружения?
То есть ты тоже согласен с таким подходом: не заморачиваясь алгоритмами определения объектов, свойств, взаимодействий между ними просто в случае с ботом соотнести с этим существительные, сказуемые и глаголы? Я склоняюсь к этому потому, что устоявшаяся речь является отражением процессов восприятия мозгом реальности и если мы имеем уже готовые определения, созданные мозгом, почему бы их просто не использовать. Но в других случаях все же придется заморочиться, если таких заготовок не будет. |
Род: Palarm - админ Сообщений: 2771 |
Я этого тоже еще не реализовал, но есть соображения. Интересное в них то, что модель реагирования в виде диапазона и его стабилизация, о которых уже много раз говорил, очень удачно ложится в понимание логического мышления: все 4 правила логики легко формализуется в виде простых схем. Я подозревал, что такая удачная для стабилизации базовых потребностей модель может еше где то выстрелить, и вот она нашла свое место: ассоциативная отсортированная контрастная группа показывает, как работает наша логика во 2 и 3 законах.
Ветвление ассоциаций происходит при помощи правил логики, при этом формируется бинарная древовидная структура, что означает наличие только одного родителя у каждого узла.
|
Род: nan - админ Сообщений: 12276 |
Сильно бы не увлекаться этим, сегодня или завтра отвечу подробнее, вот почему. Есть риск подменить собственные наработки (сопоставления-обобщения) бота схемами всех выводов его опыта, т.е. такие схемы заменят его собственный прогресс развития. Стоит исходить из того, что все навороты психики основываются на постепенном развитии представлений бота, а не готовыми схемами таких представлений, в том числе и упомянутые "законы логики", как и много других принципов, которые мы выводит примерно начиная с 11-13 лет после того, как накоплена большая, очень большая база наблюдений. С другой стороны, сделать такую схему, заменяющую огромный путь становления бота - значит придать ему сверхвпособности. Тут очень много нюансов... |
Род: Palarm - админ Сообщений: 2771 |
Думаю главный косяк будет в том, что обладание сверхспособностями не означает наличия навыка их развивать. Для этого нужны упорство, целеустремленность, критическое мышление. Но откуда им взяться, если способности изначально прошиты по умолчанию. В итоге получим эффект вундеркидера: быстрый старт, унылый финиш. |
Род: nan - админ Сообщений: 12276 |
В продолжении темы твоей концепции - доказательство не сводимости общего слова в строгую иерархию, а условность такой общности: Например: слово цвет - не только синий... красный, но любое другое понятие, которое придано этому слову в теме, например, цвет общества или "цвет диванов". Причем в разных грамматических ипостасях: Цвет - существительное, какой цвет - прилагательное, расцвечивание - глагол. Можно задать вопрос: "Что это?" для слова "зеленый" и получить ответ: "это цвет", но сначала нужно придать определенный смысл слову "цвет". Его нет в пространстве восприятия бота, значит для первоначального обучения осмысленному словарному запасу нужно выбирать то, что возможно воспринять боту. Но мы не можем придумывать образы, элементов которых нет в восприятии. В восприятии бота есть буквы и слова. Напоминаю ссылку: Пиаже Ж. Речь и мышление ребенка. http://elib.gnpbu.ru/textpage/download/html/?bookhl=&book=piazhe_rech-myshlenie-rebenka_1994 Слово сначала связано с действием, одним элементом которого оно является и которого затем достаточно, чтобы вызвать это действие Например, крик, которым командир сопровождает военную атаку, становится сигналом к этой атаке. К самым примитивным словам безусловно относятся любовные крики, служащие предисловием к половому акту: как следствие, такие слова, а также все слова, намекающие на этот акт, наделены непосредственной возбуждающей силой. Мейман и Штерн показали, что первые имена существительные в речи ребенка ВОВСЕ НЕ ОБОЗНАЧАЮТ ПОНЯТИЙ, а выражают приказания и желания. В понятиях бота может быть такая последовать осмысления слов: ЭНЕРГИЯ - со смыслом, чем больше, тем лучше, Дать энергию Взять энергию забрать энергию Слово КУШАЙ - соверши действие "накорми себя" И вот так, постепенно, нужно пополнять словарный запас бота имеющим определенный смысл в данных условиях (т.е. в разных базовых состояниях, эмоциях, действиях с Пульта) словами. При достижении достаточно опыта бот сможет сам конструировать фразы, используя опыт восприятия фраз с Пульта и опыта своих ответов.
При этом можно заместить, что Дерево уже содержит определенную иерархию слов, например, узел УБИТЬ может далее ветвиться на: тебя, себя, время, ... и в зависимости от базового узла эмоции придает как УБИТЬ так и ветвлениям определенный смысл (как субъективное значение настроения).
При эмуляции саморазвития нужно различать программные инструменты, придаваемые боту для реализации возможности поиска, обобщения и т.п. и формируемую сами ботом субъективную систему понятий. Организация такой системы -программное, но заполнение - ботово. |
Род: Palarm - админ Сообщений: 2771 |
Ты показал на примере понятия цвета, что невозможно построить одно общее дерево ассоциаций. С этим согласен. Но это не значит, что нельзя построить множество деревьев для каждого контекста. Иначе получается, что нет разницы между логикой и софистикой. А она как раз в том, чтобы строго оговаривать, в каком контексте строятся ассоциативные ветвления. Многозначность понятий появляется при не соблюдении этого правила.
Я исхожу из того, что правила логических заключений вытекают из эмпирического обобщенного опыта осмысления окружающей реальности. Например замечено, что предмет не может быть одновременно холодным и горячим, при этом если он ни то и ни другое - значит он теплый. Фишка в том, что изначально было два понятия "холодно-горячо", которые могли быть даны просто авторитарно как начальные параметры для ветвления, а вот третье понятие "теплый" мозг вывел уже сам. И сделал это не случайно - хаотично, а по определенному правилу.
То есть возникли устойчивые понятия (условности) теплового свойства объекта, многократными попытками использования в ассоциативных ветвлениях они показали свою успешность. Но возникает вопрос - а почему собственно если А не Б и С не Б, то если А ложь и С ложь, то Б может быть истина. Я думаю причина в особенности схемотехники нейронных сетей. Если у нейронов А и С рецептивные поля перекрываются, то активация обоих нейронов означает детектирование области перекрытия - зоны Б, которую они по одному не могут выделить, детектировать как отдельную. Так же мы не можем оценивать условные величины сами по себе, только через другие: километры в метрах, метры в сантиметрах. Это приводит к тому, что неизбежно оказывается, что какое то понятие становится базовым и просто задается как аксиома. Например невозможно объяснить, что значит зеленый цвет и чем он отличается от красного. Попытка привлечь другие понятия приведет к той же проблеме. А все потому, что рецепторы являются первичными сенсорами, первее которых нет ничего. Начальный узел дерева ветвлений это просто начальный узел.
То есть я не про то, чтобы попытаться строго математически свести все реакции в одно общее дерево ветвлений и определив правила логики получить мат. модель мышления. Это невозможно в принципе. Но про то, что как ни крути, но есть правила, по которым мозг строит ассоциации, и они возникли не просто так, а например, в качестве гипотезы - из за особенностей схемотехники нашей нервной системы. И я думаю к этому так же стоит привязываться потому, что иначе просто будет невозможна адаптация между ИИ и человеком. Выше в другом посте высказывал аксиому, что адаптация, как синхронизация рефлекторной деятельности возможна только между одинаковыми по схемотехнике системами. То есть в диалоге бота с оператором заложен постулат, что оба они имеют принципиально одинаковое устройство, только разной сложности и с разным набором данных. И даже если это не так, адаптация будет строиться на этом, потому, что иначе она вообще никак не будет строиться. Это приведет к искажениям восприятия, но они все равно возникнут даже между одинаковыми системами из за разных первичных настроек и накопления погрешности.
Этот момент я проскочил, речь о том, как ветвить ассоциации, когда уже определены базовые понятия. Но если продолжить рассуждать в моем ключе, то получаем первичные реакции как определение диапазона реагирования:
Энергия - диапазон значений - выделение зоны низких значений как плохо, зоны высоких как хорошо - выделение зоны комфорта.
После этого становится возможным привязывать рефлексы к зонам и стабилизация зоны комфорта через стало лучше/хуже. Тут да, первичное реагирование строится по принципу получения гешефта от ново - определенного [...] и избегания негатива, который он оказывает. А вот что такое [...] определяется уже ассоциативными ветвлениями. В итоге получаем построение сначала рефлекторного реагирования, затем прогностического - в той же последовательности, как оно эволюционно возникло. |
Род: nan - админ Сообщений: 12276 |
Сейчас я изреку то, что давно для меня является аксиомой. Слова словарного запаса индивида это – всего лишь символы, обозначающее то или иное состояние индивида, в котором он что-то делает, получает или воспринимает. Сначала должно быть какое-то состояние и тогда индивид может привязать к нему слово. На ранних стадиях дети привязывают к своим состояниям самопридуманные звуки и звукосочетания (детский лепет). Позже они учатся привязывать к своим состояниям те слова, которые слышат во время своих этих состояний. Далее происходит взаимная адаптация воспитателя и ребенка в том, чтобы данное слово в данной ситуации понималось примерно одинаково как ребенком, так и воспитателем. После этого такое слово входит в словарный запас для общения. Хотя в словарном запасе для собственного мышления словами могут входить другие символы состояний. Слово == символ состояния бота (а не того, что может вкладывать в него другой) и смысл слова (== понимаемое значение слова) именно в той памяти о состоянии, которое оно вызывает. Т.е. достаточно привязать к слову конечную ветку дерева, определяющую текущее состояние. Одно и то же слово в разных условиях может оказаться привязано к совершенно разным состояниям и именно поэтому зеленый цвет и цвет общества и цветовая палитра и цвет кварка – имеют разные смыслы. Слово очень легко может быть привязано к любым состояниям, приобретая совершенно разный смысл (коса – инструмент, коса у девушки, морская коса, она коса на глаз). Так что слова в их иерархии общности (более общее понятие, частное понятие) не требует какой-то иной искусственной системы, кроме того дерева условий, ветки которой уже содержат эту иерархию, но для тех условий, в которых слова имеют сопоставимый смысл (вызывают память сопоставимых состояний индивида).
Слово, привязанное к разным веткам Дерева, можно выбрать по его корню и получить все смыслы, в которых участвует данный корень. Этому смыслу тоже можно привязать слово (обычно авторитарно т.к. такое сопоставление требует целенаправленных усилий и много времени) и получится: кошка - это животное, т.е. слово кошка привязали к слову животные, к которому уже привязаны слова мышка, птичка и т.д. Так что начало авторитарного обучения это – привязка слов к определенным состояниям. Потом привязка фраз, использующих уже осмысленные слова к другим состояниям. В такой фразе каждое слово словарного запаса будет вызывать память о привязанных состояниях, но целевой конечный смысл фразы будет в том состоянии, к которому привязана фраза. Можно просто использовать такую фразу, можно детально осмыслить ее, вызывая образы состояний, а можно вообще не использовать слова, а мыслить образами (что в 90% и происходит), а потом попытаться выразить конечный результат понимания словами. Для того, чтобы передать оператору свое состояние бот должен выбрать слово, привязанное к этому состоянию и выдать его. Если к состоянию привязана фраза, то бот может выдать эту готовую фразу. Или бот может сконструировать по правилам грамматики новую, предположительно правильную фразу из слов, сопоставимых с теми состояниями, инфу о которых бот хочет передать чтобы получить что-то. И не нужны никакие заранее все предусматривающие схемы анализа и систематизации. Т.к. слова словарного запаса – символы состояний, то они должны запоминаться отдельно от Дерева состояний: каждое слово должно быть привязано к какому-то состоянию, т.е. в массиве словарного запаса может быть много повторяющихся слов, имеющих разный смысл, а иерархию общности (категории слов и сами слова) определяет та ветка, в которой слово встречается. |
Род: Palarm - админ Сообщений: 2771 |
То есть ты хочешь сказать, что даже зная изначально конечную структуру дерева ассоциаций ее нельзя просто взять и прошить - бот должен построить ее самостоятельно с учетом своих индивидуальных состояний на момент обучения. Иначе он не сможет потом применять эту структуру. Обучение должно строиться в виде подсказок, как оно и происходит в реальности. Получается схемотехническое обоснование изречения Цицерона: научить нельзя, научиться можно. |
Род: nan - админ Сообщений: 12276 |
Я хочу сказать, что слова привязываются авторитарно Воспитателем при активации ветки. Но Бот может и сам придумывать слова и привязывать их (первичный детский лепет и т.д.) С опытом Бот может попытаться понять смысл слова и предположительно привязать его или прямо спросить что значит это слово. |
Род: Palarm - админ Сообщений: 2771 |
Бот может сам придумывать слова... попытаться понять смысл слова... можно выбрать по его корню и получить все смыслы
Ты отметаешь систему логики как искусственную/надуманную, оставляя подвешенной проблему как "придумать", как "понять", предлагаешь вариант с группировкой по корню - а почему собственно этот вариант тогда не искусственно-надуманный? Как ни крути, но придется ведь использовать какие то алгоритмы обобщения, генерации новых понятий. Если прошиты авторитарно понятия "большой", "маленький" - то как без алгоритмов обобщения вывести понятие "средний"?
Если просто привязывать рефлексы к текущим внешне/внутренним условиям получим безусловно-рефлекторное реагирование, где все рефлексы прошиты случайно-хаотично или авторитарно, а потом практикой часть из них заблокируется и опять по кругу случайно-авторитарной прошивки. Я не вижу выхода из этого кроме как установкой каких то алгоритмов, позволяющих самостоятельно выводить новые понятия. И чтобы исключить вариант искусственно-надуманного, придется опираться на вариант естественно вытекающего например из принципа образования нейронных связей или чего то такого, что однозначно задает только такой алгоритм. Например то, что нервная система состоит из нейронов, дискретных элементов, определяющих логику ее работы. И тогда "правильные" алгоритмы будут те, которые можно построить в такой системе.
Ты не раз подчеркивал, что не имеет принципиального значения, аналоговые, дискретные или еще какие то элементы будут использоваться в искусственной нервной системе. И вот получается, что это рассуждение справедливо только для безусловно-рефлекторной системы. Но когда встанет вопрос об алгоритмах генерации нового, тогда думаю придется исходить из схемотехники той системы, которую мы пытаемся симулировать. Иначе запросто можно напридумывать алгоритмов, которые принципиально не возможно построить в нейронных сетях.
а теперь сравни построение ассоциативной группы:
Можно авторитарно прошить для "кошка, птичка, мышка" родительский узел "животное". А можно оперируя парой объект/свойство "пушистая кошка", "пушистая мышка", "пушистая птичка" вывести группу "животные" со свойством "пушистые". Получится все что пушистое - животные. Потом уже уточнять ее аналогично, добавляя дополнительные свойства, и сдвигая узел "животные" выше по иерархии.
Ты ведь когда размышляешь на эту тему тоже используешь личный опыт типа: почему лампочка не звезда, а солнце звезда - оба ведь яркие? Используя при этом те принципы построения ассоциативных групп, которые импирически определили психологи. Пусть они не понимают принципов МВАП , но это ведь не мешает им просто наблюдать и фиксировать. Какие выводы они делают не важно, но важна собранная ими импирическая база наблюдений и выявленные ими закономерности, которые ты почему то отметаешь.
Вообщем думаю все эти непонятки устаканятся при попытке собрать работающую систему, и скорей всего окажется по факту, что мы имели в виду одно и тоже, только выражали это по разному. |
Род: nan - админ Сообщений: 12276 |
>>Если просто привязывать рефлексы к текущим внешне/внутренним условиям получим безусловно-рефлекторное реагирование, где все рефлексы прошиты случайно-хаотично или авторитарно, а потом практикой часть из них заблокируется и опять по кругу случайно-авторитарной прошивки. Речь вообще не идет о рефлексах, их может вообще не быть на этом уровне. Речь идет о том, что слова – культурно-устоявшиеся образования и поэтому их понятия могут быть переданы только авторитарно. Тут нет никакой инициативы Бота. На основе условных понятий переданных слов постепенно формируется возможность общения, вот и все.
>>а теперь сравни построение ассоциативной группы:
А теперь прикинь разницу: для такой привязки не нужны больше никакие деревья. Если есть структура слов Словарного запаса (Vocabulary), то достаточно в нее включить еще один член: VocabularyID, обозначающий такую же структуру более общего слова. А в той – еще одна. И получится: Кошка привязана к Животные, а Животные привязаны к Материя. Для практической необходимости достаточно увидеть следующее из общих слов: кошка – это животное, но шизики идут дальше по связанному списку (а не дереву) и у них кошка – это материя. >>Вообщем думаю все эти непонятки устаканятся при попытке собрать работающую систему, и скорей всего окажется по факту, что мы имели в виду одно и тоже, только выражали это по-разному. Пока что я вижу совершенно разные концепции, но да, вместо того, чтобы на лету пытаться согласовать концепции, лучше просто дорабатывать их до полной ясности, а потом уже поделиться результатами. |
Род: Palarm - админ Сообщений: 2771 |
Похоже возникла проблема с ассоциациями. Прежде чем их группировать, они изначально должны иметь значимость для бота, которая определяется как совокупность сигналов рецепторов и внутренних изменений бота, зафиксированных им в прошлом при их активации. Но у него только один вербальный канал восприятия, и в этом проблема – он не может пощупать, увидеть, понюхать, потрогать объект.
То есть в реальности происходит примерно так: особь видит огонь, сенсоры выдают сигналы «красный, теплый, потрескивающий» и т. д. Особь сует туда лапу, обжигается, получает ухудшение состояния и фиксирует: комбинация «красный, теплый, потрескивающий» это плохо. Потом она видит красный мяч – срабатывает цепочка памяти, выделяется «красный» как признак опасности – дается предварительная оценка мяча как «плохо». Но признаки «плохо» не точные, есть новый признак «круглый», и нет «теплый, потрескивающий» – в итоге значимость высокая (предварительная оценка «плохо»), сам объект неизвестный (новизна) – включается инстинкт исследования. Особь определяет, что «мяч» не несет опасности и выносит признак «красный» в родительскую группу для «мяч» и «огонь», и снимает с него признак «плохо». Теперь комбинация «красный, теплый, потрескивающий» плохо, а «красный, круглый» – хорошо. Потом уже этим обезличенным свойствам присваиваются вербальные символы.
Получается, что как крути, а придется вводить базовые свойства объектов типа «круглый, теплый, мягкий», присваивать им гомеостатическую значимость, потом присваивать эти свойства объектам – и только потом можно ветвить ассоциации. Это означает частичную симуляцию виртуальной вселенной бота. |
Род: nan - админ Сообщений: 12276 |
Не спеши делать такие выводы. Я вечером напишу подробнее, но пока просто подумай о том, что у людей тоже есть слепоглухонемые, способные только на тактильное восприятие (вкус и запах слишком близкодействующие), но есть методика их воспитания. |
Род: Palarm - админ Сообщений: 2771 |
Вот подходящая статья по этому поводу. Здесь видно, что как и в предыдущей ссылке, сначала формируются связи между потребностью и действием, которое надо совершить, чтобы ее удовлетворить, и только потом действию дается вербальный символ. То есть связать улучшение текущего состояния с действием. Тут сразу просится условный рефлекс, как раз заточенный, чтобы делать такие простые связи. И я так до сих пор его никуда не приткнул, так как не понятно было, для каких целей в контексте бота он нужен. Стало быть, нужно заводить множество дополнительных базовых потребностей, которые правильнее будет теперь называть "базовые состояния" типа: боль, страх, приятно, грустно, весело и т. п. И стабилизация этих состояний после их взаимодействия с оператором и будет при помощи условного рефлекса формировать значимости слов-раздражителей. Для этого нужно добавить базовые воздействия оператора на бота типа "наказать/поощрить, сделать больно/сделать приятно", чтобы воздействовать на гомеостаз бота при раздражении словом. У тебя это было прикручено изначально, я их снес, так как не понятно было, зачем бить или награждать бота. Вернее думалось, что можно как то иначе обойтись.
То есть алгоритм прошивки значимости может быть такой: выводим уровень нужного базового состояния в зону недостатка, пишем слово "боль", ставим галку "сделать больно", жмем отправить. "Сделать больно" сдвигает уровень состояния еще больше в минус, срабатывает датчик "стало хуже" - формируется связь между словом "боль" и "стало хуже". Или в более приближенном к реальности варианте вместо галки сделать кнопку "сделать больно", с аналогичным функционалом. И тогда после отправки слова "боль" тут же нажать кнопку. Но для этого надо добавить стэк для хранения предыдущего раздражителя небольшое время. |
Род: nan - админ Сообщений: 12276 |
да, и нужно программно обеспечить все это. В отличие от проблемы с обучением слепоглухонемых, у нас есть прямая телепатическая связь с ботом: оператор может прямо прошивать нужные базовые связи с приданием им соответствующего значения для бота. Вот такой телепатией и нужно пользоваться как решающим преимуществом. А после формирования самой необходимой основы понимания условных слов, обозначающих то, в каждом из условий их получения, что это значит для бота, точнее то, что это может значить. И тогда бот тоже сможет использовать эти слова для выражения того, что он хочет. А потом все усложняется с многословием. Т.е. кроме реализации обеспечивающих механизмов нужно отработать и удачную методику постепенной прошивки смысловых понятий. От такой методики будет напрямую зависеть результат. Потом первоначально обученного бота можно выкладывать для всех желающих продолжить или изменить обучение, для программистов, желающих продолжить или изменить программный функционал. |
Род: Palarm - админ Сообщений: 2771 |
Можно и без кнопок, просто прошивать в структуре макросенсора или в дереве как у тебя веса значимости слов. Главное, какие слова определить как базовые и с какими весами. От этого будет зависеть, какие бот потом на их основе построит более сложные ассоциативные прогнозы. Но ведь это все таки стимуляция реальности, раз слова имеют значимость в определённых контекстах. Это аналогия свойств и закономерностей взаимодействия реальных объектов. Их можно вывести статистическим анализом, но интеллект, как процесс адаптации начнёт формироваться только тогда, когда у особи появятся базовые состояния, на которые они будут воздействовать, выводя их из равновесия. Тогда сведенные вместе в систему гомеостаза они станут причиной появления потребностей, целей, смыслов. |
Род: nan - админ Сообщений: 12276 |
Это - контексты Бота, которые как раз и означают для него тот или иной стиль поведения и являются основой субъективной оценки текущего состояния. У тебя они точно так же - "симуляция реальности", т.е. отражают те условия реальности, которые переключают тебя в данный стиль поведения. |
Род: nan - админ Сообщений: 12276 |
Дошел до функционала развития произвольности – самого важного в адаптивности на уровне психики. Palarm, ты как-то задавался вопросом, что тебя интересует, с какого момента система выходит за рамки чисто автоматического реагирования и возникает самостоятельность. Так вот, произвольность – ключевой момент в этом, но чтобы это обеспечить. Современные психологи, занимающиеся исследование особенностями этапов развития, накопили чрезвычайно важные аксиоматические данные, и вот, на мой взгляд, самая принципиально ясное описание произвольности: Прочти эту небольшую, но очень клевую статью перед тем, как читать дальше мое. Для развития произвольности, в первую очередь, нужна отвлеченность системы от всего вокруг и внутри, некая субъективная область, которая имеет свое собственное мнение на все, а внешнее и внутреннее (гомеостазная регуляция) просто подсматривается в моменты их наивысшей актуальности, так, что неважное может быть и проигнорировано, если система занята чем-то более важным про себя. В схеме Бота это обеспечивается тем, что функционал такого Гомонкулуса тактируется совершенно независимо от остального и в нем возникает свое собственная оценка текущего состояния. Эта оценка – структура (SelfPerception) с параметрами текущего самоощущения, которая удерживается после активации если только не возникает другая, оцениваемая как более важная ситуация и тогда старая уходит в архив, а возникает новая. Структура SelfPerception сохраняет текущую Тему, а если она изменяется, то Бот переходит к новой Теме SelfPerception, пока не исчерпает ее и тогда он сможет вернуться к отложенной прежней или начать новую. Этот стек оказывается более правильным, чем использование стека Обобщения (у людей 5-7 фрагментов смысла), так что структуры функционально совершенно разные. Вот чем определяется текущая мотивация и направленность поиска решений. При каждой авторитарной прошивке смысла слов, при каждой подсказке как лучше поступать, это используется для того, чтобы отзеркалить чужой опыт для накопления собственного опыта произвольности. Опыт – это структура (Experience), которая привязывается к каждой ветке Дерева так, что в данных условиях можно было получить доступ ко всему накопленному опыту, дополнять его, развивать во все более сложные последовательности действий, не только моторных, но и ментальных. Т.е. в структуре опыта накапливается массив пробных ментальных автоматизмов разной степени удачности и есть один самый актуальный. Опыт удачных моторных действий записывается как актуальный моторный автоматизм ветки Дерева. Когда нет неотложных проблем и состояние позволяет Бот активирует спонтанное экспериментирование, ИНИЦИАТИВНО пробовать исследовать, совершать действия, набирать опыт, в том числе опыт выбирать цель, пробы текущего пробного поведения. Результаты записываются в новые ментальные автоматизмы данной структуры опыта данной ветки Дерева, т.е. они актуальным для условий данной ветки. При авторитарных прошивках создаются мент.автоматизмы, отзеркаливающие чужой опыт с высоким весом уверенности. При возникновении проблемы, которая не решилась сразу, создаются Доминанты, которые решаются в условиях, для которых они созданы (причем для этого не нужно воспроизводить эти условия реально, а решаться проблемы могут в фоновом режиме даже без осознания, в кванты свободного времени). Решение проблем Доминанты – творчество, т.е. экспериментирование и использование уже готового опыта решения проблем (тоже мент.автоматизмы) происходит в контексте Цели данной Доминанты. Вот, коротко, как формируется база для реализации произвольности. |
Род: Palarm - админ Сообщений: 2771 |
Мне больше нравится термин "прогностическое реагирование", так как по моему он более точно обозначает суть произвольности. Непосредственное рефлекторное реагирование провоцируется внешне-внутренними раздражителями, а прогностическое - результатом прогноза рвущегося на исполнение рефлекса. При рефлекторном реагировании оценка "стало лучше/хуже" получается путем сравнения состояния до и после выполнения рефлекса, а при прогностическом - до выполнения, холостым прогоном цепочек эпизодической памяти. И это дает существенное преимущество не только при выборе подходящего автоматизма, но и возможность создать новый на базе старых с намного более высокой вероятностью его удачного попадания с первого раза, чем просто случайным тыком.
Например, обезьяна видит подвешенный банан, начинает прыгать, пытаясь его достать. Не получается. Включается анализ прошлого опыта, и блуждание по ассоциативному дереву находит эпизод, когда палкой удалось сдвинуть с места какой то предмет, которого руками было не достать. Определяется общее для обоих ситуаций: не доступность предмета и палка, решающая проблему. Делается попытка использовать ее и в этом случае, которая оказывается удачной. В итоге формируется правило: для достижения недоступных предметов использовать палку. И оно теперь будет сразу приходить в голову в таких ситуациях. Принципиально новое здесь то, что не просто фиксируется новый автоматизм, а определяется принцип, по которому можно создавать группы автоматизмов для решения схожих проблем: палкой можно не только банан достать, но и любой недоступный для рук предмет.
Если рассматривать такие ситуации с позиций "произвольности", то приходится вводить понятия "виртуальных гомункулусов", отвлеченности от внешне-внутреннего, постановки целей, приложения волевых усилий для их достижения. Это все излишне запутывает и усложняет понимание того, что вообщем то имеет место быть прогноз развития ситуации при попытке использовать какой либо рефлекс и ассоциативная группировка уже существующих представлений. |
Род: nan - админ Сообщений: 12276 |
Где записывать Правило, что палка - для доставания, чтобы каждый раз не вспоминать все, что было (а можно и не вспомнить)? Правило (опыт достижения результата) должно всегда быть под рукой для подходящих условий. Прогноз хорош для предвидения лажи, чтобы в несколько необычных условиях оценить, что сулит эта необычность (если нет необычности, то привычное действие итак прокатывает). Отстраненность нужна именно для того, чтобы не быть в цепочке воспринимаемых причин и следствий, а посмотреть на ситуацию со стороны, абстрактно. Вот все это нужно состыковать в один пазл. |
Род: Palarm - админ Сообщений: 2771 |
Отстраненность означает переключение с одного на другое. Что есть другое в случае психики как не прошлый опыт, точнее, что там вообще может быть кроме эпизодических цепочек памяти? Другое дело, что с ними можно поработать, сформировать разные типы деревьев, и вот эти ветвления, которые могут быть вообще не сообразны реальности, могут подходить на роль гомункулуса. По ним делается прогноз как и ранее, и он приводит к необычным результатам. То есть была нормальная память, её перековеркали, получился гомункулус. Осталось только разобраться, по какому принципу перекраивается память и зачем. Поэтому я сначала реализую прогностическое реагирование + ассоциативные группы, а потом посмотрим - подойдет ли оно само по себе на роль гомункулуса или придется все таки выводить новый тип реагирования.
Может быть тут нет записи нового свойства в привычном понимании, а скорее имеет место некий принцип на основе какой то схемотехники. Выше приводил такие примеры. Как быстро определять, что 2см больше 1см но меньше 3см? Причем не конкретно для значения 2, а вообще для любых? Можно тупо прописать отношения для всех комбинаций, а можно расположив цифры по возрастанию весов их значимостей в ряд получать любые варианты отношений между ними используя правило: что слева то меньше, что справа то больше, и чем дальше влево/вправо, тем меньше/больше. То есть формируется структура, и по ней, как по формуле определяется свойство. И вот это уже будет принципиально новый подход, дающий очевидную фору перед простыми связями. |
Род: nan - админ Сообщений: 12276 |
Если ты ясно видишь систему взаимодействий, то заставить ее заработать точно можно. Только в этой ясности дело, она в деталях обычно обманчива и выясняется по ходу попыток воплотить замысел. По любому мы погружаемся в очень сложные системы... |
Род: Palarm - админ Сообщений: 2771 |
Если бы ясно видел, давно бы сделал. Она мне видится фрагментарно. Просто мне думается, при осмыслении надо отталкиваться от 2 моментов:
Вполне может быть, что реализация нервной системы на базе нейронов как дискретных элементов вовсе не единственно возможная, важен принцип, но другой рабочей системы мы пока не знаем. Стало быть имеет смысл сначала повторить ее, не обязательно симулируя нейроны, но отталкиваясь от того, что реально работающая система сделана именно на них. А потом уже станет более очевиден принцип и можно будет смело отбросить то, что природа просто вынуждена была использовать за неимением другого инструментария или что просто случайно-удачно возникло. Кроме того, нервная система возникла эволюционным отбором, когда на базе старого возникало что то новое и оно давало какое то существенное преимущество. И чтобы правильно понять принцип, не помешает разобраться на базе чего возник и какие преимущества дал новый механизм. Я не настаиваю, но стараюсь от этого отталкиваться в своих рассуждениях. |
Род: nan - админ Сообщений: 12276 |
Мысленный, утрированный эксперимент. Ты попал к другому народу, не зная ни одного их слова. Они дают тебе поесть и говорят: еда! Они дают тебе пить и говорят: вода. Они ложатся вечером спать и говорят тебе: спать. Так несколько раз. Теперь если ты захотел пить, то скажешь им: пить. Если устал – спать. Потому, что ты связал эти звукосочетания с тем, что для тебя ужен известно и значимо. Ты приобрел некоторый начальный Опыт общения с ними, которым можешь пользоваться. Это – не рефлексы, это – условные обозначения того, что ты уже знаешь, понятные тебе и другим. От детей тебя отличает то, что дети уже наслышались этих слов и очень хорошо их распознают. А тебе нужно много раз вслушиваться и учиться произносить так, чтобы тебя понимали. Потом в разных ситуациях одни и те же условные слова приобретают разные оттенки. Еда для тебя, еда для собаки – корм. И т.д. Ты обрастаешь опытом общения, и можешь уже конструировать так несколько слов подобно много раз слышанным конструкциям. Этот опыт в разных условиях – твои заготовки, а не готовые действия - мысленные привычки, готовые сорваться в готовые действия. Бота учить легче. Говоря слово, нужно тут же накормить его, наказать его, что-то продемонстрировать из доступного ему, известному ему арсенала. И тогда Бот, приняв слово и получив его воплощение, мог бы сразу создать заготовку. Он и сам может начать пробовать всякое, в зависимости от того, что с ним происходит и смотреть, как на его действия и слова будет реакция – тоже заготовка опыта. Благодарность от: Клон |
Род: Palarm - админ Сообщений: 2771 |
Теперь уже и мне очевидно, что сначала нужно определить понятие "свойства" объекта, потом уже объект. Это аналогия сначала пощупать, понюхать и т. д. - определить через сенсоры тип и уровень воздействия - и только потом будет восприятие объекта в виде комбинации свойств (значимостей), которой можно присвоить вербальный символ. Причем их запись должна привязана к текущему состоянию. Это значит, что горячий предмет для замерзающего будет восприниматься позитивно, а для вспотевшего от жары - негативно. В моей модели такая схема обеспечивается привязкой значимости с текущему базовому состоянию, а сами значимости записываются в виде отсортированного диапазона. Но чтобы описать все многообразие восприятия, придется добавлять намного больше базовых состояний, чем сейчас. И возможно добавить управление шириной комфортной зоны, чтобы избавиться от ритмического изменения уровня базовых состояний при пульсации. Это может сгодится для энергобалланса, но остальные скорей всего должны меняться только воздействиями значимостей.
Свойства можно просто прошивать диапазонами типа "твердый|плотный|мягкий", где вес значимости определятся позицией в строке и для разных базовых состояний можно указывать одни и те же свойства, но в разном порядке, что и обеспечит вариабельность восприятия одного и того же свойства в разных условиях. А самое главное - появится возможность оценочного суждения: теплый лучше чем горячий - или наоборот, смотря по текущему состоянию.
Затем уже можно привязывать свойства к объектам, причем понятие объект определится автоматически, если прошить сначала "твердый|плотный|мягкий" а потом "твердый камень". Что такое "твердый" уже определено, а "камень" значит объект, и можно сделать связку родитель (объект) потомок (свойство). Прошивая пары типа "тяжелый / холодный / влажный камень" получим многообразие свойств объекта. И тогда выражение "тяжелый взгляд" будет активировать образ камня, который активирует связанные с ним свойства, по связям которых можно выйти на другие образы и активировать их свойства - и так получить длинные цепочки значимостей, формирующих многообразие понимания. Если при этом переключать текущее базовое состояния - то получим "рассуждения", проигрывание ситуации как повлияло бы свойство при разных состояниях. |
Род: nan - админ Сообщений: 12276 |
Смысл слова и фразы должен зависеть от текущих условий, т.е. он должен привязываться к определенной ветке Дерева. Скажем, есть страница авторитарного обучения, где ты вводишь слово, выбираешь какими условиями оно должно сопровождаться, ставишь вес значимости, ставишь наиболее общий ответ на это слово в данных условиях,
ставишь прогноз того, к какому состоянию может привести использование реуомендованного ответа и посылаешь все это для показательной активации Дерева. Создаются все нужные узлы ветки, прикрепляется смысл, рекомендованный ответ в виде не моторного, а ментального автоматизма и ветка активируется на пару пульсов, чтобы записалась эпизод.память и все сопуствующие приложения, в том числе общая картина текущего самоощущения (типа бот прочувствовал этот урок). Это - имитация отзеркаливания чужого авторитарного опыта, только более надежная и легкая. |
Род: Palarm - админ Сообщений: 2771 |
|