Ознакомьтесь с Условиями пребывания на сайте Форнит Игнорирование означет безусловное согласие. СОГЛАСЕН
ВХОД
 
 
Привет! Правила | Свежее | Чат | Подписка
Чтобы оставлять сообщения нужно авторизоваться.

Тема форума: «Бот на ГО»

Сообщений: 604 Просмотров: 39906 | Вся тема для печати

Это тема – только для причастных к пониманию модели  МВАП  и текущим проблемам предметной области «Схемотехника адаптивных нейросетей». Прошу посторонним быть очень корректным и зря не спамить. Здесь будет обсуждаться текущая реализация последовательности развития прототипа индивидуальной системы адаптивности Beast.

Телеграм-канал: https://t.me/thinking_cycles 


Страницы:    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
 
nan
Имеет права полного администратора сайта - админ

Род: Мужской
Сообщений: 12275


E-Mail
личная фото-галерея
Оценок: 39
список всех сообщений
clons
Сообщение № 47236 показать отдельно Январь 24, 2021, 04:53:45 PM
ответ -только после авторизации

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

Но ты, вижу, выводишь только состояние активных?



p.s. Допускаю, что мое утверждение может быть неверно, поэтому прошу показывать, что именно и почему неверно и запрашивать объяснения, если что-то непонятно.
Метка админа:

 
Palarm
Имеет права полного администратора сайта - админ

Род: Мужской
Сообщений: 2771

личная фото-галерея
Оценок: 6
список всех сообщений
clons
Сообщение № 47237 показать отдельно Январь 24, 2021, 07:00:26 PM
ответ -только после авторизации

Я сделал сборку строки HTML в GO, то есть оттуда уже готовый скрипт формирования таблиц выходит. Потом хотел переделать, чтобы из функции GO получать просто строку через разделитель (ведь с ней потом еще дальше работать надо, связи протягивать) а форматировать уже в php через ajax. Но подумалось, что это двойная работа получается, перегонять из одного формата в другой. Тем более, что эти таблицы просто для визуализации. Летает все довольно шустро, двигая ползунки таблицы рассыпаются/собираются.

 

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

 

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

 

автор: nan сообщение № 47236:
Убедился, что если выводить состояние сенсоров не в виде картинки

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


Метка админа:

 
Palarm
Имеет права полного администратора сайта - админ

Род: Мужской
Сообщений: 2771

личная фото-галерея
Оценок: 6
список всех сообщений
clons
Сообщение № 47242 показать отдельно Январь 25, 2021, 04:56:27 PM
ответ -только после авторизации

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

 

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


Метка админа:

 
nan
Имеет права полного администратора сайта - админ

Род: Мужской
Сообщений: 12275


E-Mail
личная фото-галерея
Оценок: 39
список всех сообщений
clons
Сообщение № 47243 показать отдельно Январь 25, 2021, 05:27:00 PM
ответ -только после авторизации

Выяснилось, что у тебя огромные матрицы в 350тыс :) Это - перебор, картинка с матрицей только корней слов и окончаний моментально делается и всего 200х80 элементов. Но зато выяснилась производительность Го, а это - полезная инфа.



p.s. Допускаю, что мое утверждение может быть неверно, поэтому прошу показывать, что именно и почему неверно и запрашивать объяснения, если что-то непонятно.
Метка админа:

 
Palarm
Имеет права полного администратора сайта - админ

Род: Мужской
Сообщений: 2771

личная фото-галерея
Оценок: 6
список всех сообщений
clons
Сообщение № 47244 показать отдельно Январь 25, 2021, 06:03:39 PM
ответ -только после авторизации

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

Но это скорее косяк не ГО, а Ajax. Потому что у меня формируются в одном цикле три варианта отображения: текстовая строка, таблицы и твоя графическая матрица. Если переключать на графическую, начинает тупить, но тот же абзац текста в табличной отображении летает. Потому что ты отображаешь все 7000 сенсоров, а я только активные. Я попробую реализовать свое видение графического интерфейса матрицы, как выше написал. Когда подцепим гомеостаз, будет переливаться как томограмма мозговой активности. 


Метка админа:

 
nan
Имеет права полного администратора сайта - админ

Род: Мужской
Сообщений: 12275


E-Mail
личная фото-галерея
Оценок: 39
список всех сообщений
clons
Сообщение № 47245 показать отдельно Январь 25, 2021, 07:50:35 PM
ответ -только после авторизации

Нужно еще подумать над следующими вещами.

1. Слова из фразы в сенсоре должны иметь какай-то признак последовательности во фразе, иначе они будут восприниматься просто как набор слов, а даже ты из такого набора затруднишься понять, какая фраза была произнесена. Этот признак последовательности - неестественен, но нам пофиг, его просто нужно придумать и  включить в сенсорную матрицу. Возможно, нужно передавать на сервер по одному слову, а там формировать связанность на уровне первой []int8 матрицы. Возможно сделать две матрицы: 1) отражающая распознанные слова, а вторая - последовательность этих слов. Последовательность - просто часть общего слоя распознавателей, но им придается повышенная значимость.

2. Каждое слово, как уже говорилось, нужно распознавать по первой и последней букве, а все остальное - просто набор сходящих букв, и вес распознавания должен быть максимальным при полном таком распознавании и уменьшаться при частичном. Эту работу стоит делать на стороне Го-сервера.



p.s. Допускаю, что мое утверждение может быть неверно, поэтому прошу показывать, что именно и почему неверно и запрашивать объяснения, если что-то непонятно.
Метка админа:

 
Palarm
Имеет права полного администратора сайта - админ

Род: Мужской
Сообщений: 2771

личная фото-галерея
Оценок: 6
список всех сообщений
clons
Сообщение № 47247 показать отдельно Январь 26, 2021, 10:27:04 AM
ответ -только после авторизации

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

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

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

 

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

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


Метка админа:

 
Palarm
Имеет права полного администратора сайта - админ

Род: Мужской
Сообщений: 2771

личная фото-галерея
Оценок: 6
список всех сообщений
clons
Сообщение № 47248 показать отдельно Январь 26, 2021, 10:52:20 AM
ответ -только после авторизации
автор: nan сообщение № 47245:
Каждое слово, как уже говорилось, нужно распознавать по первой и последней букве, а все остальное - просто набор сходящих букв, и вес распознавания должен быть максимальным при полном таком распознавании и уменьшаться при частичном. Эту работу стоит делать на стороне Го-сервера.

У меня так и сделано. При полном совпадении максимальный вес = 1, при частичном как % от числа символов в рецепторе к числу символов в слове. При этом через коэфф. контрастирования можно поднимать веса первого и конечного символа.

автор: nan сообщение № 47245:
Этот признак последовательности - неестественен, но нам пофиг, его просто нужно придумать и  включить в сенсорную матрицу.

Думаю, это рецептор в виде 2 символов разделенных пробелом. Алгоритм сборки двух слов в пару:

1. распознается спец. рецептор

2. ищется совпадение первого символа рецептора с последним символом полученных слов

3. ищется совпадение последнего символа рецептора с первым символом полученных слов

Затем собирается пара найденных слов через рецептор как разделитель. 


Метка админа:

 
Palarm
Имеет права полного администратора сайта - админ

Род: Мужской
Сообщений: 2771

личная фото-галерея
Оценок: 6
список всех сообщений
clons
Сообщение № 47251 показать отдельно Январь 29, 2021, 01:29:41 PM
ответ -только после авторизации

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

Думаю, для шахматки правильнее делать это средствами HTML - просто генерить строку скрипта в GO.


Метка админа:

 
nan
Имеет права полного администратора сайта - админ

Род: Мужской
Сообщений: 12275


E-Mail
личная фото-галерея
Оценок: 39
список всех сообщений
clons
Сообщение № 47252 показать отдельно Январь 29, 2021, 01:51:27 PM
ответ -только после авторизации
автор: Palarm сообщение № 47251:
правильнее делать это средствами HTML - просто генерить строку скрипта в GO

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

Я пытаюсь оптимизировать эти дела...



p.s. Допускаю, что мое утверждение может быть неверно, поэтому прошу показывать, что именно и почему неверно и запрашивать объяснения, если что-то непонятно.
Метка админа:

 
Palarm
Имеет права полного администратора сайта - админ

Род: Мужской
Сообщений: 2771

личная фото-галерея
Оценок: 6
список всех сообщений
clons
Сообщение № 47253 показать отдельно Январь 30, 2021, 04:50:14 PM
ответ -только после авторизации

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

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

 

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


Метка админа:

 
nan
Имеет права полного администратора сайта - админ

Род: Мужской
Сообщений: 12275


E-Mail
личная фото-галерея
Оценок: 39
список всех сообщений
clons
Сообщение № 47254 показать отдельно Январь 31, 2021, 02:38:37 PM
ответ -только после авторизации

А я все еще оптимизирую :) потому как, думаю, как сделать сенсорную часть, так оно и поплывет.

В настоящее время матрица слов уже имеет 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я тебе скинул в личном чате.



p.s. Допускаю, что мое утверждение может быть неверно, поэтому прошу показывать, что именно и почему неверно и запрашивать объяснения, если что-то непонятно.
Метка админа:

 
Palarm
Имеет права полного администратора сайта - админ

Род: Мужской
Сообщений: 2771

личная фото-галерея
Оценок: 6
список всех сообщений
clons
Сообщение № 47255 показать отдельно Январь 31, 2021, 05:10:24 PM
ответ -только после авторизации

Ок, тогда мне для начала надо разобраться почему у меня висит графика.


Метка админа:

 
Palarm
Имеет права полного администратора сайта - админ

Род: Мужской
Сообщений: 2771

личная фото-галерея
Оценок: 6
список всех сообщений
clons
Сообщение № 47256 показать отдельно Февраль 01, 2021, 08:27:33 AM
ответ -только после авторизации
автор: nan сообщение № 47254:
Убедился, что скорострельность у Го очень хорошая, если только ее чем-то не тормозить.

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

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

 

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

 

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


Метка админа:

 
Palarm
Имеет права полного администратора сайта - админ

Род: Мужской
Сообщений: 2771

личная фото-галерея
Оценок: 6
список всех сообщений
clons

У тебя ошибка в алгоритме func SensPost(). При поиске точного совпадения надо прогонять всю матрицу, и только если не нашлось искать неточное. А у тебя если первым найдется не точное, то оно и выводится как результат. При этом первым найдется то, что стоит первым по порядку в файле сенсоров. Немного поправил код, и можешь сравнить:

 

ИСХОДНИК:

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

 

ДО:

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

 

ПОСЛЕ:

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

 

С цифрами тоже залет, они распознаются только от 0 до 9. Можно вывернуться 2 способами:

  1. если вводить число в форме как "1 2 3 " - оно нормально распознается. То есть надо просто сделать простое форматирование полученного текста, разбив число на цифры разделенные пробелом и еще пробел в конце.
  2. сделать отдельную обработку чисел в ГО

Думаю первый вариант проще будет


Метка админа:

 
Страницы:    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Статистика:
Всего Тем: 1925 Всего Сообщений: 47850 Всего Участников: 5200 Последний зарегистрировавшийся: kghkgklg
Страница статистики форума | Список пользователей | Список анлимитов
Последняя из новостей:
Трилогия: Основы фундаментальной теории сознания.
Все новости

Обнаружен организм с крупнейшим геномом
Новокаледонский вид вилочного папоротника Tmesipteris oblanceolata, произрастающий в Новой Каледонии, имеет геном размером 160,45 гигапары, что более чем в 50 раз превышает размер генома человека.
Тематическая статья: Тема осмысления

Рецензия: Рецензия на статью

Топик ТК: Главное преимущество модели Beast
Пользователи на форуме:

Из коллекции изречений:
>>показать еще...