Автор |
Нейросимулятор(Просмотров: 7869) |
Род: Palarm Infra Real Сообщений: 2458 |
Попробовал сделать простейшую однослойную сеть по аналогии с природной реализацией. Сеть состоит из сенсорной матрицы 3х3 и одного слоя нейронов.
Пока что реализовано:
еть настроена на распознавание простейших примитивов типа «прямой отрезок» - 6 видов: 3 горизонтальных и 3 вертикальных. Возможно расширить функциональность сети простым добавлением данных (без перепрограммирования):
Визуальная оболочка не делалась, хотя это не сложно прикрутить для большей наглядности. Но пока был интерес просто попробовать сделать что то реальное и проверить правильность своего понимания: в чем отличие природной реализации нейросети от того, что сейчас называют нейросетями. Дальнейшее предполагаемое развитие:
Среда разработки - MSSQLServer. Просто он был под рукой и не хотелось заморачиваться с визуализацией. Кроме того, данные по весам синапсов и настройкам надо где то хранить, а сама СУБД кроме хранения подразумевает и обработку данных на сервере через T-SQL и триггеры. Я изначально предполагал минимум кода на клиенте, кроме отправки данных (внешних воздействий) и получение отклика – как оно и есть в реальности. Пока что клиентского кода вообще нет, удалось простейшую логику реализовать на одном триггере и свойствах таблиц.
Таблицы Sensor_layer_1 - сенсорная матрица. В ней кодируются данные сенсоров. Поля таблицы:
Neuro_synapse – данные по весам синапсов нейронов и ключи для связи с сенсорной матрицей и нейроном. Эта таблица вместе с таблицей Neuron реализуют функционал нейрона. Сделал 2 таблицы из соображений оптимизации схемы БД, можно было нейрон реализовать в одной, но это не совсем по фэншую было бы (повторяющиеся данные). Поля таблицы:
Neuron – нейрон, вернее та его часть, что реагирует на внешние воздействие. Поля таблицы:
Проверить работу сети можно при помощи скрипта SQLQuery_1. Он подает сигналы на матрицу на ее рецепторы 1, 2, 3 что означает примитив «горизонтальная прямая». Так же обнуляет все остальные рецепторы сенсора. Потом через «Select…» выводит данные по таблицам. В итоге видим, что если подать на эти три входа сигнал в 2 единицы, что соответствует предустановленной чувствительности сенсоров – сработает нейрон с ID_N=1 - на выходе (AKS_neuro) получим 1. Это работа логики И. А вот если поставить порог срабатывания нейрона ID_N=1 не 3, а 1 – то получим логику ИЛИ, так как для срабатывания будет достаточно потенциала от одного синапса, а не трех. То есть порог срабатывания нейрона (Limit_neuro) задается исходя из суммы получаемых на его синапсы весов, что позволяет легко переобувать его с И на ИЛИ просто меняя его порог. А количество синапсов нейрона задается в таблице Neuro_synapse –здесь через связь «многие ко многим» задаются отношения таблиц синапсов и сенсоров к нейронам, то есть их связи. Так как одна запись в таблице сенсоров, синапсов и нейронов формирует соответственно один рецептор, синапс, нейрон – то простым добавлением записей можно легко масштабировать сеть.
PS: В описании много непонятного для тех, кто не работал с СУБД, но объяснение терминологии слишком далеко увело бы от сути. Если будут вопросы, постараюсь перевести с птичьего на человечий. А пока для начала интересно, что думает Nan по этому поводу – насколько правильное попадание в его фэншуй. Syensornaya_matritca___svyazi.png Благодарность от: nan |
Род: nan - админ Сообщений: 11785 |
Народ затруднится с запуском... У меня тоже нет оболочки MSSQLServer и не хочу ее ставить. По тексту вижу sql-запросы :) |
Род: Palarm Infra Real Сообщений: 2458 |
Тогда придется больше картинок и видео с захватом экрана. Вот так выглядят забитые таблицы для распознавания примитива линия (1-2-3 сенсоры).
А вообще появилась наконец возможность более предметно разговаривать. Видимо придется переводить БД на локальную версию кодить логику и прикручивать визуализацию.
Sensor_layer_1 - в записях 1-2-3 (поле ID_R) видим, что на рецепторы (R) поступили сигналы с уровнем 3, что равно порогу срабатывания сенсора (Limit_sensor) и он сработал, выдав True (AKS_sensor). Это срабатывание выполнил триггер, реагирующий на изменение данных в поле (R) - он записал уровень 1(True) в поле выхода сенсора. И он же отправил в таблицу синапсов (Neuro_synapse) этот же уровень с весом 1 (пока не заморачиваемся дроблеными весами) в ее поле (Snp). Там он нашел нужные записи для обновления по кодам ID_N и ID_R - это таблица связей. ID_R - код записи таблицы сенсоров, ID_N - нейронов. И после этого тот же тригер сложив эти три веса и сравнив их с уровнем порога нейрона (Limit_neuro) в его таблице прописал на его выходе (AKS_neuro) уровень 1(True) - вот и вся примитивная логика. Но уже она позволяет играться с чувствительностью сенсоров, порогами нейронов и связями между нейронами и матрицей - и тем самым настраивать сеть на распознавание примитивов.
Реализация переключения режима нейрона (И/ИЛИ) делается очень просто: нужно лишь поставить его порог 1 - тогда сумма весов синапсов всегда будет его открывать - стало быть это ИЛИ. А если порог больше 1 - тогда нужно соответствующее кол-во синапсов с весами не меньше 1.
|
Род: nan - админ Сообщений: 11785 |
Да, в таком виде это никого не затронет, а визуализировать лучше всего средствами серверного формирования html Если ты всерьез захочешь написать демо, я помогу его так реализовать и выложить на сайте. Но, м.б. это пока еще преждевременно потому как будет еще немало очень интересных и важных следствий из схемотехническуого подхода, которые однозначно показывают те или иные принципы реализации, но мы пока застряли в самом начале, не говоря про то, чтобы описывать практически полезные следствия организации механизмов психики. |
Род: Palarm Infra Real Сообщений: 2458 |
Просто все больше прихожу к выводу, что разобраться с работой нейросети не получится иначе как реализовав ее прототип. Вот например как распознавать простейшие примитивы уже почти очевидно, но как потом собрать их до кучи, из отдельных отрезков нужные фигуры, чтобы отрезки "склеились" нужными местами друг с другом? Толщины, размытости, яркости, цвета - про это уже говорил, смутно вроде бы представляю, но вот именно что "вроде бы".
Я представляю пока себе это так: экран-матрица, по нему водишь мышкой, рисуя примитивы а потом и фигуры - рядом другой экран где выводится распознанный примитив/фигура + тех. информация в виде таблиц, графиков, показывающая как это происходит. На это можно навернуть самообучение - проецировать на матрицу примитивы с разной периодичностью и смотреть как нейросимулятор их учится сам распознавать - и что, какой минимум для этого нужен. Тут вообще можно исследования замутить, определяя мин. условия при которых происходит уверенное распознавание: с какой частотой и степенью хаоса, за какое время и с какой точностью можно обучиться.
Да пофигу. Я думал, что можно в принципе к удаленному серваку подрубаться, как мы это делали с нашими магазинами, но это не камильфо - открывать сервак. Можно было бы локальную БД юзать, тот же Access через ADO, но если можно сделать симулято на сайте с интерактивным интерфейсом - будет еще прикольнее. Только насчет БД не понял - ты имеешь в виду перевести ее на MySQL?
Это скрипт БД. Если есть MS SQL - открываешь в ней скрипт, жмешь выполнить - он генерит БД с таблицами и триггером. Я зацепился за БД потому как ассоциация с нейросетью прям таки бросается в глаза, хотя возможно лишь в мои дилетантские. |
Род: nan - админ Сообщений: 11785 |
С сервером нет проблем, у меня - выделенный, очень мощный сервер. Да, mysql, если вообще есть смысл тормозиться запросами к БД вместо использования массивов. В БД можно записывать исходные и конечные конфигурации. Эмулировать стоит, исходя из свойств нейрона и условий формирования связей, но еще важно эти связи предопределить: что подходит к данному нейрону, как он тянется в торону активностей дендритами, что важно, что успевает за время периода обучения или нейрон активируется контекстно и за это время формирует связи как это происходит в третичной коре. В целом создать эмуляцию, представляющую интерес как инструмент-симулятор, адекватный реальным принципам, очень не просто. Именно поэтому я не покушался на столь объемную модель. |
Род: Palarm Infra Real Сообщений: 2458 |
Можно ведь и меньшую по объемам попробовать. Кстати, подумалось, что моя идея задавать логику нейрона через установку порога его срабатывания не только простая, но и близка к реальности. Только тут порог в не совсем моем привычном понимании, как сумма потенциалов на входе. Иначе получится, что скажем пришли на 10 входов по +5V - и тогда порог срабатывания +50V? Имхо бред. А если на каждом входе по 0,5V - это уже по сути нули - опять фигня. Если бы это была цифровая микросхема, тогда понятно, что просто комбинация 0 и 1 - а тут одни 1 да еше и с весами. Это сбивало с толку. А сейчас думаю так: на нейрон одновременно приходят сигналы на несколько его синапсов с уровнем 1 - синаптические пузырьки впрыскивают нейромедиаторы (в объеме зависящем от уровня сигнала), нейрон возбуждается. И при этом запоминается именно этот коктейль со своей концентрацией катализаторов (может фиксируется объем пузырьков или состав их смесей). Получается, что теперь только при поступлении сигналов на нужное кол-во синапсов нейрон сработает, так как только тогда выделится нужное для возбуждения кол-во нейромедиаторов. Так и в моей схеме: надо сделать "И" для пяти синапсов нейрона - ставим порог 5, надо сделать "ИЛИ" при тех же синапсах - ставим 1.
А еще основная мотивация сделать относительно простой симулятор - понять, как собираются примитивы более высокого уровня. Ведь если просто сложить в кучу пару горизонтальных и вертикальных линий - получим кроме прямоугольника еще и варианты разных крестиков. Стало быть, нужно концы с концами соединять. Но в моей схеме я специально сделал не принципиальным нумерацию синапсов, она только для схемы в БД нужна. То есть в моей реализации сети у палки нет понятия конец и начало - есть просто палка. А складывать то их как то надо. И я подозреваю в природной нейросети так же происходит, потому как нейрон в принципе не может определить какой конкретно синапс получил сигнал - у него же нет bat-таблицы синапсов, там просто сумма весов без разницы в каком порядке и каких. Значит эти концы определяются потом, видимо на других слоях. Я думаю, что в многослойном персептроне как раз присутствует нумерация связей, что естественно для программиста - какой же дурак будет вычислять номер записи если уже изначально есть ее код в таблице. А потом начинаются пляски с бубном как из этой кучи получить распознавание. И это резко уводит в сторону от природной реализации и как результат - к затупу дальнейшего развития. Это моя гипотеза такая.
Все равно ведь где то надо хранить схему связей, пороги срабатывания - тут однозначно таблицы просятся, они на это заточены. А бегать циклами по массивам - имхо моветон для БД-шника, мужики не поймут :).
Ты про логи? Оно прикольно, но память ведь иначе работает, не как прямая запись всего подряд. Если только для нужд исследований, историю модификации сети - тогда да. |
Род: nan - админ Сообщений: 11785 |
>>понять, как собираются примитивы более высокого уровня Вот подумай над одним из вариантв: если по ИЛИ собрать выходы разных детекторов линий (разные наклоны, толщины, длины, цвета), то получим один детектор: “Это - линия”. – уже абстракций вне масшатов и т.п. Такой детектор может возникнуть не в случае автогенерации созревшего нейрона, а в случае, если нейрон уже установил связи с неким контекстным параметром необходимости детекции линий и, возбудясь им, начинает устанавливать связи по ИЛИ со всеми случаями активности линий. Это – реальный механизм контекстного формирования детекторов абстракций примитивов. >>где то надо хранить схему связей, пороги срабатывания Статически заданный массив для данной эмуляции. >>бегать циклами по массивам - имхо моветон для БД-шника, мужики не поймут :). Это, может, у вас в анклаве БД-шников такие понятия, а у более безграничных программеров этого прикола нет :) Если массив более эффективен, то он используется. |
Род: Palarm Infra Real Сообщений: 2458 |
Это да, хороший вариант для формирования обобщений примитивов на основании контекста восприятия. Но это никак не поможет отличить более толстую линию от менее толстой, или сложить примитивы наклонных линий в длинную кривую, а не в бесформенного ежика. Интуитивно что то крутится у меня в голове по этому поводу, но не прорвалось еще на уровень озвучки. Думаю, собака порылась как раз в многослойном распознавании. Это думаю принципиально, иначе опять персептрон получится.
В смысле? Сервак понятно дело молотит не переставая. Ты предлагаешь загрузить в оперативку массив? А потом ВЫКЛ - и сеть сдохла до уровня начальных параметров. В моем понимании статические параметры хранятся в файлах, но никак не в динамике.
Однажды мне довелось допиливать за таким умником прогу. Делал ее какой то VB-шник, судя по всем никогда не имевшим дело с БД. Там у него сплошные массивы вместо таблиц, которые получали данные из форм-редакторов и каких то модулей с константами и пробежки циклами вместо селектов. Все работало, пока эта виртуальная БД не раздулась и не стала колом. И даже на Аксе она взлетела соколом, потому как реально данных там всего на тьфу было. Ведь в массиве нет индексов, поиск самый тупой - перебором. |
Род: nan - админ Сообщений: 11785 |
Да нет же :) html выдается сервером на основе скриптов, скажем, на PHP. И вот там может быть записн какой угодно массив или куча массивов. БД так же на сервере находятся в виде файлов, но,учитывая огромную нагроможденность интерфейса, обращение к фалу скрипта всегда быстрее и эффективнее. Я часто разгружаю mysql вставками на файлах и это не моветон, хотя в любом находятся те, кто считает иначе :) |
Род: Palarm Infra Real Сообщений: 2458 |
Кажется я понял. Начальные примитивы вовсе не складываются в каком то строгом порядке и нужными концами, а просто группируются и сравниваются. То есть все линии группируются по общим признакам типа: прямая, наклонная, градус наклона, длина с некоторым допуском расхождения. При восприятии объекта все эти признаки групп активируются и происходит выборка из них наиболее активных.
Например мы видим нечто, что провоцирует активность признаков группы прямая, наклонная - они в свою очередь объединены в группу ломанная. Возникает уверенность, что мы видим что то ломанное. Начинаем уточнять, рассматривая фрагмент объекта - активируются группы наклон 35, 45, 55 градусов - среди них наиболее активна группа 45. Смотрим на объект еще внимательнее - активируются группы длина 9, 10, 11 см - с наиболее активной среди них 10 группой - и вот мы получили параметры для отрисовки прямой в полярных координатах, методом приближения среди выборки многоуровневых группировок объекта.
При этом понятия градус, мм - тоже группировки созданные при сравнении с неким внутренним эталоном, начальным примитивом меры длины и угла. Дискретность групп зависит от этой "внутренней линейки", от нее зависит что считать кучей, 1, 2 или 3 ореха, какая куча больше или меньше и насколько. Мы можем уверенно отличить какой отрезок больше/меньше, но вот с понятием длины уже намного хуже - отличить метровую палку от двухметровой легко, но по факту, после измерения рулеткой окажется, что к примеру метровая это 1,25м а двухметровая 2,33м.
Выходит, действительно можно распознавать объекты не заморачиваясь где у палки начало, конец или координаты опорных точек. На самом деле начало, конец, координата - это тоже группы признаков объекта. Сами по себе эти параметры не нужны для распознавания, это просто наши условности, по которым делается группировка.
PS: если головастики в своих многослойных персептронах действительно шаманят с координатами опорных точек - они страшно далеки от реальности и ясень пень не имеют ни малейшего понятия, что там у них в слоях распознается (и что они имеют в виду под "слоем"?). А тут все более чем очевидно. Можно легко выгрузить логи, показывающие точные шаги активации группировок Благодарность от: nan |
Род: Palarm Infra Real Сообщений: 2458 |
Мой опыт работы с тырнетом ограничивается парой сайтов, один на html, где через "инклуды" вставлял местами динамические фрагменты, другой на php. И вот там обратил внимание, что в шапке php прописываются вызовы других php, где например сидят глобальные функции. Ты видимо так грузишь свои массивы в страницу? Есть такая мысля: если я тебе дам в личку строку подключения к БД на серваке, то ты тогда сможешь параллельно лабать интерфейс а я буду своим серваком заниматься. Тебе пока что надо просто в таблицу сенсоров втыкать данные самым примитивным инсертом - вся обработка будет на серваке. |
Род: nan - админ Сообщений: 11785 |
Да, это можно замутить. Вопрос только в том, что я достаточно плотно пригружен и могу поддержать только конкретно составленное ТЗ. Т.е. если ты распишешь как что должно работать, то ч могу взяться реализовать это в виде страницы на сайте. |
usr Scorcher God Сообщений: 520 |
MS SQL Server - не лучший выбор. У меня его нет на Linux-е. Завтра я посмотрю твою работу. Уверен, что её можно портировать под разные среды. |
Род: Palarm Infra Real Сообщений: 2458 |
Конечно можно, просто он под рукой был на работе. Я ее перекачаю на MySQL, там продолжу, Nan поможет. |
usr Scorcher God Сообщений: 520 |
Зачем ты пронумеровал нейроны 5 и 6 номерами 7 и 8? INSERT [dbo].[Neuron] ([ID_N], [Limit_neuro], [AKS_neuro]) VALUES (7, 3, 0) INSERT [dbo].[Neuron] ([ID_N], [Limit_neuro], [AKS_neuro]) VALUES (8, 3, 0) |
Род: Palarm Infra Real Сообщений: 2458 |
Это поле счетчик. Пару записей удалил, каскадным удалением снеслись связанные с ними, новые сделал. Этот код для связей между таблицами, для юзера никакой смысловой нагрузки не несет. Если нужен номер, тогда отдельное поле надо. |
usr Scorcher God Сообщений: 520 |
Разобрал работу тестового примера: там должен активироваться нейрон №1, у которого будет превышен порог возбуждения от сигналов, поступающих от рецепторов 1, 2, 3. |
Род: Palarm Infra Real Сообщений: 2458 |
1. Это уже делается 2. Сейчас пока просто дублируется 1 от выхода рецептора в поле Snp таблицы синапсов. Но потом думаю в этом поле хранить вес синапса, а срабатывание нейрона делать как раз после умножение сигнала от рецептора на значение в этом поле - и только потом их складывать. Хотя вообще это может и не понадобиться, потому как в самом первом посте я описал свое понимание "веса" синапса: это не величина заряда, которую он получил или пропустил - а: Ws = Up/Ns, где Ws - вес синапса, Up - порог срабатывания нейрона, Ns - число синапсов. На вход синапса теоретически всегда поступает 1, и "внутрь нейрона" он не часть от 1 пропускает, как это делало бы сопротивление, а всю эту 1. Но: если для срабатывания нейрона нужно 5 таких синапсов, то вес их будет 0,2 согласно формуле. Хотя получать и "пропускать" сквозь себя они будут полноценный сигнал без потерь. Ведь они не ток пропускают, чтобы "зарядить" нейрон как конденсатор, а получив раздражающий импульс впрыскивают через синаптические пузырьки нейромедиаторы, которые служат катализаторами для электро-хим. реакции нейрона. Это мое понимание, может и не верное. 3. Это тоже планируется. Обучение предполагаю делать по принципу: задается параметр - кол-во повторений проекции примитива на матрицу за единицу времени. При достижении этого порога прописывается соответствующая связь в таблице синапсов. То есть это имитирует процесс запечатления, экспозиции часто повторяющихся примитивов. Этот параметр по сути имитирует заданную геномом предрасположенность специализации нейрона. То есть смотря по тому, с какой скоростью будут фиксироваться связи зависит куда успеют прицепиться отростки. 4. Соединение через таблицу синапсов нейрона с матрицей собственно и есть процесс обучения. Сейчас она уже как бы заранее обучена. Но в реальности такие связи должны прописаться сами - см. п.3 5. Кода пока как такового нет, но я думаю имеет смысл не только код, но и структурное описание как ТЗ для реализации делать. Тогда можно подключиться и попробовать совместно реализовывать проект. Здесь ведь есть более продвинутые программисты. Вообще идея была сдвинуть с мертвой философской точки, перейти от обсуждения к конкретной реализации. Сначала думаю сделать тренажер-симулятор. Это не только покажет верно или нет понимание, но и поможет остальным тренируясь на нем, играя порогами нейрона, чувствительностью рецепторов и настраивая связи между нейронами и матрицей до автоматизма довести понимание, как происходит самообучение распознавания простейших примитивов. |
usr Scorcher God Сообщений: 520 |
Сделал базовую версию симулятора в HTML/Javascript. https://github.com/usr345/neuro Реализована та же функциональность, что и у тебя в SQL. Но даже javascript больше подходит для программирования, чем язык хранимых процедур SQL Server-a. Сенсорное поле линеаризуется в вектор, который умножается на матрицу синапсов. После чего получаемый вектор проверяется на превышение порога и выводится как выход нейронов. По идее, можно запилить обучение сети: сейчас веса синапсов задаются статически через интерфейс. Также сейчас порог срабатывания нейронов равен порогу сенсоров. Можно их разнести. Ваши комментарии? |
Род: Palarm Infra Real Сообщений: 2458 |
Выложу завтра или послезавтра. А пока думаю надо утрясти некоторые спорные моменты по принципам построения однослойной сети. 4. В дальнейшем нужно будет прикручивать конфигурации нейрона, а именно: меняя веса группы нейронов (имитация нейромедиаторного фона) тем самым перестраивается логика распознавания элементов сети: какие то И становятся ИЛИ и наоборот.
|
usr Scorcher God Сообщений: 520 |
Сделай pull request, я тебя добавлю как collaborator-а.
Сейчас у нас математическая модель без площади. К физике пока рано переходить. Мы еще обучение толком не построили.
Что-то здесь нелогично. Ты уверен, что говоришь про 3 нейрона, а не про 3 синапса? Как я тебя понял, в простейшем случае мы имеем: 1 нейрон, 2 синапса.
Я думаю, из этого ясно, почему на нейроне нельзя реализовать исключающее или.
Это можно прикрутить. Плюс в математических моделях я видел разные функции срабатывания: у нас сейчас ступенчатая, можно другую взять или переключать их интерактивно. Я могу сделать разные виды функций активации нейронов: после суммирования входов от синапсов, передавать значение в функцию. |
Род: Palarm Infra Real Сообщений: 2458 |
Пардон, конечно синапсы Вот нейросимулятор, но он в демо-режиме, можно только тыкать ссылки внизу таблицы связей, чтобы посмотреть варианты распознавания. Демо-режим потому, что сделано на массивах и там проблемно организовать многопользовательский режим. Если открыть кнопку сохранения изменений, возможны конфликты записи данных при одновременной работе нескольких пользователей. Nan практически весь код запилил, я лишь немного поправил. Благодарность от: nan |
Род: Palarm Infra Real Сообщений: 2458 |
Думаю чувствительность рецептора надо убрать, лишнее. А вообще, я буду переделывать под БД, и там видятся всего 2 таблицы вместо 3: Нейроны и Связи. В первой будут рецепторы и эффекторы, потому как уже со второго слоя нейроны предыдущего слоя становятся рецепторами для текущего. В таблице связей коды из таблицы нейронов, показывающие их зависимости - классическая "многие ко многим". Чтобы задать первичные рецепторы надо просто в таблице связей поставить в поле кода родителя 0 - это значит что эти нейроны первичные рецепторы. Благодарность от: nan |
usr Scorcher God Сообщений: 520 |
Удивительно, что независимо друг от друга мы с nan-ом сделали нечто даже внешне похожее. Где он сам кстати? Давайте сейчас распределим задачи. Я бы хотел написать математическую модель того, что сделал nan (или он сам напишет). |
Род: nan - админ Сообщений: 11785 |
Предлагаю тебе, usr, актуальную прикладную мат. задачу для вывода результатов активности. Есть рад нейронов в количестве Nштук. Подсчитаны потенциалы на их сходах P[n], где n- текущий номер нейрона. Активируются те нейроны, у которых P[n]> К, где К – порог срабатывания. НО. Каждый активный нейрон тормозит соседние (до него и после него) с потенциалом = Т, где Т где Т - вес воздействия тормозного синапса = 0.5. Задача: найти формулу для подсчета конечного состояния потенциалов на входах всех нейронов, с учетом тормозного влияния соседей. Это – равновесный процесс. |
Род: Palarm Infra Real Сообщений: 2458 |
Есть биржи помогаторов для студентов типа Автор24. Там даже преподы вузов калымят. Можно туда скидывать сложные задачи, только надо четко растолковать с картинками, чего от них надо. Берут по слухам не дорого. |
usr Scorcher God Сообщений: 520 |
Я не понял топологию сети, есть ли возможность привести рисунок с примером? |
Род: nan - админ Сообщений: 11785 |
Просто линейка нейронов, один за другим. Соседи влияют друг на друга, если они активны. Понятно, что если нейрон_1 подавил активность следующего своим торможением, нейрон_2 то нейрон_2 сам уже перестает влиять на нейрон_1. Т.е. соседние нейроны, активизировавшиеся входными потенциалами, влияют друг на друга, уменьшая эти входные потенциалы пока не придет некое равновесие. Сомневаюсь что просто формулой можно решить задачу. Приемлемо будет дать алгоритм итерации, скажем, 10 проходов, чтобы устаканить значения входных потенциалов на телах всех нейронов в цепочке. |
Род: Palarm Infra Real Сообщений: 2458 |
А как образуются такие связи? У меня было предположение, что изначально все связи тормозные, потом при активации становятся возбуждающими. Или нейтральная связь при отсутствии или недостаточности раздражения становится тормозной. Или это заложено в геноме, какая связь какой будет.
В природной реализации это можно воплотить через 2 типа синаптических пузырьков с активатором и дезактиватором. Активаторы растут при раздражении, дезактиваторы наоборот - раздражение мешает их росту. В итоге получаем гонку на опережение: каких пузырьков больше нарастет и какой в итоге вес, с каким знаком, будет. И все это регулируется частотой раздражения синапса, точнее серии импульсов против долгих пауз. Может и нам надо так же ввести не один, а пару коэфф. с разным знаком и включить их в цикл прогона расчета веса. |
Род: nan - админ Сообщений: 11785 |
У тормозного синапса - свой медиатор, у возбуждающего - свой. Синапс не может изменить свою сущьность.
Взаимное торможение соседей в слое - очень важно. |
Род: Palarm Infra Real Сообщений: 2458 |
А как ты предполагаешь определять, где какой синапс будет? |
Род: nan - админ Сообщений: 11785 |
соседние нейроны в слое соединены через взаимно тормозящие (точнее там вставочные тормозные нейроны) это - обязаловка. Больше тормозного влияния нет в распознавании, - принцип сита. |
Род: Palarm Infra Real Сообщений: 2458 |
Если вставочные нейроны в одном слое с основными - значит они соединены не аксон с дендритом, а дендрит с дендритом? Такое разве возможно? Иначе получится, что вставочный нейрон детектирует нейрон слоя словно буфер, если будет связь аксон-дендрит. И на что реагирует вставочный нейрон - на те же рецепторы, что основные? То есть он отличается только тем, что передает в связанный с ним нейрон тормозной нейромедиатор а не возбуждающий? Сам возбуждается как и все - но тормозит остальные? А что тогда значит взаимное торможение? Обычный нейрон выхолит тоже тормозит тормозной такими же тормозными нейромедиаторами? Вообщем по всему выходит, если представить схему по твоему "взаимному торможению", что нейроны "сцеплены боками" дендритами через тормозные синапсы, которые есть у обоих. Но почему тогда один из них называется тормозным, а другой нет? Чего то у меня бардак в голове... |
Род: nan - админ Сообщений: 11785 |
Нет, рассматривай вставочные нейроны как случачяно оказавшиеся доп. нейроны в слое. И они тоже созревают и генерят. Отличие - в тормозных синапсах, которые устанавливаются при ветвлении нейронов слоя к их аксону. Для наглядности представим вертикальный слой нейронов. Возбудился нейрон слоя (может тоже только что созрел) и начинает укрепляться тормозная связь. А, с другой стороны, дендриты тормозного нейрона ветвятся в направлении активности другого соседа в слоя и с ним устанавливается тоже связь. В идеале между двумя соседними нейронами слоя расположены два вставочных, один из которых повернут аксоном к верхнему нейрону слоя, а другой - к нижнему. И они обеспечивают взаимное торможение. Ну, может где-то будет два повернуты к верху, а где-то ни одного. В общем, нужно исходить из того, что боковое торможение в слое есть реально. |
Род: Palarm Infra Real Сообщений: 2458 |
Тормозные нейроны Т1, Т2, Т3 своим отрицательным воздействием снижают суммарный вес входов у нейронов N1, N2, N3. В итоге активным остается только N2. Хотя N1 и так бы не включился, но так он уже наверняка будет заглушен. Но где тут "взаимное торможение"? Здесь только T(i) тормозят N(i) - а вот наоборот, от N(i) к T(i) никаких тормозов нет. Тоже самое во второй группе связей.
А дендриты тормозных нейронов к чему прицеплены? |
Род: nan - админ Сообщений: 11785 |
Прочитай про латеральное торможение. Сейчас некогда искать конкртыне примеры... |
Род: nan - админ Сообщений: 11785 |
Задачу с реализацией тормозного взаимовлияния в слое решил и уже реализовал. Но если предложите свой вариант, было бы интересно. |
Род: Palarm Infra Real Сообщений: 2458 |
Запилил графическое отображение нейросетки пока по типу шестигранника. Потом думаю добавить еще варианты. Потом объясню, что имею в виду. |
Род: nan - админ Сообщений: 11785 |
Выглядит красиво, но концепция мне пока непонятна: как выглядят сенсоры первого слоя? или они все - первого слоя? Еще вопрос: как задавать веса связей? хотя если использовать только режим самообучения, то они сами будут формироваться. Чисто технические моменты. Ты используешь обновление страницы (а не AJAX), но тогда можно не использовать графику HTML5, а прямо рисовать клиенту как элементы страницы, с подсказками, реакцией на щелчки и т.п. в этом был бы плюс, а минус в том, что при самообучении придется перезагружать страницу и возможно блинкование. Как ты считаешь, возможно ли такое представление в случае матриц рецепторов и эффекторов с таблицей связей, внизу, вместо вертикальных слоев со связями? |
Род: Palarm Infra Real Сообщений: 2458 |
2 главных момента, почему именно такая отрисовка мне кажется оптимальной:
1. рисование вертикальной/горизонтальной линейками очень плохо читабельно, так как связи перепутаны, значений весов практически не видно. В сотовой схеме все связи и все цифры весов видны. При желании можно легко масштабировать схему (я закомментил пока установку параметров, но как можешь посмотреть в коде страницы - можно очень гибко настраивать рисунок. Туда еще можно добавить настройку длины/ширины области рисования и координаты опорной точки) 2. ты сделал перекрывание связей только между 2 рецепторами, хотя на самом деле нейрон охватывает рецепторы не только сбоку, но и сверху/снизу. То есть рисунок ромашкой, где в центре аффектор, а по периметру, рецепторы - так оно и есть в реальности.
Этот рисунок не единственно возможный, я потом попробую добавить еще вариантов. Просто 6-гранник - оптимальная структура для максимально плотной равномерной упаковки элементов. Я думаю, именно такая решетка связей возникла бы в реальности в идеальных условиях, если бы все нейроны были строго одинаковы по свойствам и матрицу сенсоров возбуждали бы равномерным фоном.
Я планировал в будущем вообще убрать таблицы с экрана, оставив только такую сетку. Тогда можно сделать интерфейс активации рецептора щелчком по нему, смену веса ДБ-кликом по цифре и вводом в появившемся поле. Можно и смену связей сделать, например щелкнув один элемент, потом другой и выбрать пункт меню "установить связь". Я вообще поначалу думал сделать просто конструктор, где из меню выбираешь элемент (рецептор/аффектор или даже готовый блок со связями) - кидаешь его драг-дроп на экран, потом рисуешь связь. Но потом подумал: правильнее все же отталкивать от того, чтобы связи рисовать сразу и окончательно как оптимизированную решетку и менять только веса. В самом деле - зачем собственно иметь возможность устанавливать связь между любым рецептором/аффектором? Ведь нейрон в реальности все равно устанавливает связи только с близлежащими а не с любыми рецепторами. И так же не вижу особого смысла программировать создание связи по аналогии с реальностью: когда отросток нейрона тянется к ближайщему активному рецептору. Потому как в реальности думаю на 2/3 получается просто каша бестолковых связей - ведь соединение происходит в динамике, при постоянном мерцании рецепторов. Имхо: лучше (повторюсь) создать изначально идеализированную решетку связей, какой она была бы при идеальных условиях - и потом менять веса. Тем более, что решеток ведь может быть много вариантов. Вообщем, думаю надо определиться с концептом: стоит ли переходить на такую структуру или оставить старую линейчатую.
Я лишь пару недель как более менее въехал в тему графики php, пришлось еще вспоминать свои старые наработки - а ты меня уже Аяксами пугаешь :) Я и с первой то дороги волочу насилу ноги :) Пока этот чертов алгоритм нарисовался - кстати зацени как я его через 2 процедуры на серваке закодил, а поначалу там такой писец был... Мне только вчера торкнуло: надо не из центра, а построчно рисовать, и не один элемент - а пару. Тогда все встало на свои места - и тут же появилась возможность использовать параметры сетки для рисования. Например вместо шестигранника подставить треугольник или квадрат - вообщем решеток может быть много и очень интересных. Думается, каждая из них будет задавать предрасположенность к определенной специализации, например выделять какие то частотные полосы.
Я тебе с самого начала про это толковал :). Но ты тогда меня не понял.
Сейчас да - это все первый слой. Зеленые аффекторы, красные рецепторы. Только надо их чуть бледнее показывать, а активные существенно ярче, чтобы выделялись. Или может не активные оттенками серого, а активные уже красный/зеленый. А второй слой думаю надо рисовать на другой странице. Имхо, отражать сразу все слои на одном листе не целесообразно - слишком много места займет. А вот на другой странице будет очень просто: зеленые кружки станут красными, а с ними уже свяжутся новые зеленые кружки второго слоя - по точно такой же решетке. А можно и по другой - тут кстати тоже поле для размышлений: стоит ли на всех слоях одну решетку использовать? Правда при такой компоновке (слои на отдельных страницах, а внизу решетки сделать например ссылки перехода по страницам типа: >) придется отказаться от нумерации элементов для каждого слоя, теперь номера будут "сквозные", то есть 10 рецептор на первом слое становится эффектором с тем же 10 номером. Иначе будет не понятно, с чем связаны аффекторы второго слоя. То есть мы просто переносим часть элементов (аффекторы) с предыдущего слоя на последующий и меняем им статус (на рецепторы). При это понятно, что решетка второго слоя будет существенно меньше, в данном случае в 6 раз, чем первого. И аффекторы с первого слоя в ней будут отражаться вокруг нового рецептора второго слоя.
Изначально они все нулевые, при самообучении установятся конкретные значения. Потом можно их "подкрутить". То есть тут тоже концептуальный вопрос: стоит ли настраивать сеть перед обучением? Имхо не стоит, кроме как задав ей решетку. Фишка создаваемого нами симулятора (и его реального прототипа - природной нейросети) что тут ничего не задается изначально кроме некоторой предопределенности (решетка связей, параметры нейронов). Никто не может сказать точно, что получится при обучении - но в этом весь прикол. Это не программирование в привычном понимании, а развертывание сети. Про это я говорил в дневнике. Можно в принципе и таблицу связей оставить на экране - но тогда ее надо формировать по числу связей в сетке и с прокруткой, чтобы места много не занимала. Можно и таблицу "сенсорный экран" оставить, для наглядности, если сложно организовать интерфейс активации рецептора кликом по элементу сетки. А вот таблицу результат лучше все же убрать - в ней нет особого смысла, ведь она отражает только активные/неактивные нейроны, которые и так хорошо видны в сетке. PS: если кому надо исходники - могу сюда выложить. Я закоментил форму установки параметров и запуск процедуры на серваке, так как там еще нет проверок ввода и чтобы не дербанить БД понапрасну - ведь данные сразу пишутся в нее, оттуда же и дергаются для отрисовки. |
Род: nan - админ Сообщений: 11785 |
Ты круто все схватываешь, а аякс - очень прост в реализации, у тебя есть примеры. Очень интересно, что у тебя получится в итоге. |
Род: Palarm Infra Real Сообщений: 2458 |
Добавил тормозные связи между аффекторами (красным цветом), ведь вес синапса рассчитывается с их учетом и надо их так же жестко прописать, чтобы потом не париться с поиском что чего тормозит. Данные в той же таблице связей. И тоже при помощи новой процедуры на сервере. Как и планировал изначально - все буду там колошматить, у клиента только графика и интерфейс ввода. Чтобы совсем по умному, надо бы аналогичные связи между рецепторами - они ведь тоже взаимно тормозятся. Но пока не буду, а то схема сильно загромоздится связями. Хотя подумалось, что выводить на экран нужно не весь слой, а его фрагмент - задавать диапазон вывода в настройках отображения. Тогда можно небольшой клочок вывести как образец (сеть ведь строго однородна, в любом месте схема одинакова, только веса разные) - и там уже можно по полной программе все перелинковать, увеличив до нужного размера масштаб отображения. Так же думаю, нет смысла показывать в динамике формирование весов синапсов. Имхо, мерцания цифр мало информативно кроме как показать, что процесс идет. Правильнее обучение проводить без отображения, на максимальной скорости - а потом показывать сетку и графики/таблицы и т. п. - чтобы можно было поковырять логи, как там чего в какой последовательности самообучалось. Вообщем может статься, что в итоге на экране от сети будет небольшой фрагмент и доп. служебная инфа. |
Род: nan - админ Сообщений: 11785 |
Надеюсь, от цикла итерации ты не уйдешь, он оказывается достаточно важен дял обучения 1) в случае прерывания обучения после критерия окончания специализации данного нейрона (в случаен если он бы автоактивен) и 2) балансирования состояния взаимного торможения. Конечно, можно и поступиться тем, что при постепенном визуальном показе будет видно как взаимно влияют нейроны, это - для чисто исследовательский интереса. |
Род: Palarm Infra Real Сообщений: 2458 |
Я предполагаю, что прописывание тормозных связей в таблице сделает проще алгоритм расчета взаимного торможения. Ведь не надо определять, кто кого тормозит - это уже жестко определено. Кстати придется таки действительно от простого php на js + ajax переходить, а то даже считать введенные юзером данные из поля без перегрузки страницы не выходит. Давно руки чесались web заняться, но то лень, то неохота, а теперь повод появился интригующий. |
Род: nan - админ Сообщений: 11785 |
Это - очень просто. Если вдруг тормознешься, пиши в чате, помогу. |
Род: Palarm Infra Real Сообщений: 2458 |
Вроде как получилось сделать взаимное торможение в сетке. Каждый аффектор тормозит связанные с ним аффекторы пропорционально суммарному весу на своих входах и весу тормозной связи. То есть в связке например А1(0,9) и А2(0,3) с весом тормозной связи 0,2 влияние А1 на А2 будет: А1 * 0,2 = 0,9*0,2 = 0,18. А влияние А2 на А1 соответсвенно: А2 * 0,2 = 0,3 * 0,2 = 0,06.
Суть торможения - контрастирование. Это видно на картинке прицепа - при полной фоновой засветке матрицы мы имеем активность только на краях (красные - рецепторы, зеленые - аффекторы). В итоге проецируя на нее пятно мы получаем контур - и это, как мне думается критически важная часть распознавания и оценки примитива - повышение активности аффекторов на границах примитива. По такому же принципу выделяется новизна, значимость на других шагах - так подсказывает интуиция, если не врет.
Плохо только, что приходится пересчитывать в хранимке всю сетку. Пока она небольшая - оно и ладно. Но если сгенерить слой на 1 000 000 элементов - тормоза будут не хилые, при каждом чихе колошматить такой массив, тем более что планируется потом туда проецировать примитивы в динамике. Но вот если сделать микросхему, где соединение сделано по такой же схеме сот, вместо программного расчета весов провести реальные связи в виде проводящих дорожек и транзисторных ключей - тогда получим действительный прототип природной нейросети. Меня вообще удивляет, почему никто не пытался вместо выдумывания сложнейших алгоритмов расчета многослойных персептронов просто взять и эмулировать нейрон в виде транзисторной схемы (как это показал Nan) а потом соединить их в сетку. И ничего не надо рассчитывать - заряды сами распределятся нужным образом как это и происходит в мозге. Хотя слышал, что есть какие то нейристоры - может это оно и есть. Благодарность от: nan |
Род: nan - админ Сообщений: 11785 |
Рассчитывать на большое число элементов не стоит. Это всегда упрется в предел как в пузырьковой сортировке :) Вот и видна сразу разница централизованного контроля и самостоятельности работы элементов. Конечно никакой центрально-процессорный ресурс с этим не справится. Демонстрация контрастирующего эффекта взаимного торможения очень важна, если сделаешь это наглядным, модель получит новое качество. |
Род: Palarm Infra Real Сообщений: 2458 |
Я как обычно дунул вперед паровоза - процедура расчета врет, надо допиливать. Но это частности. Вообще то я предполагал в дальнейшем после прикручивания алгоритма самообучения сделать полигон, посадить туда какую нибудь химеру, прошить ей в мозги сетку - и начать ее всякими пакостями раздражать, чтоб начала адаптироваться. Но сейчас подумал, что это все таки сильное забегание вперед. Имеет смысл сначала тщательно разобраться с конкретными механизмами распознавания, чтобы не осталось вопросов "как это делается". Иначе наблюдаемая рефлексия химеры будет малоинформативна. |
Род: Palarm Infra Real Сообщений: 2458 |
Проблема не только в том, что нужно делать пересчет всей сетки, но и то, что приходится делать несколько прогонов - и все равно результат не точен. Подозреваю, что математически задача решаема очень тяжело если вообще решаема. Или мне просто не хватает математики в мозгах - но тогда выходит я лузерством занимаюсь, пытаясь решить методом приближения школьную задачу про пару поездов идущих навстречу другу другу с известными скоростями. Только поездов много больше чем два и взаимосвязаны они тоже более чем парой. Может есть какая то формула или теория расчета таких задач?
С другой стороны, сейчас сетка даже в относительно грубом приближении работает примерно так, как я себе представлял - эффект контрастирования ярко выражен. Для большей уверенности стоило бы спаять ее реальный прототип из светодиодов, транзисторов и т. п., чтобы убедиться, что сетка действительно будет работать и распределять веса так, как предполагает ее виртуальная модель. Но радиотехник я еще худший чем программист и подозреваю, что там вылезет еще своих граблей, поэтому скорей всего делать этого не буду, иначе совсем зависну на первом слое. А хочется хотя бы грубо пробежаться максимально далеко по теории Nan, чтобы убедиться, что она действительно описывает реальные процессы нервной системы. Теория, сколь бы убедительной не казалась - все равно лишь иллюзия понимания, а работающий прототип - уже что то.
Это да - тут очень наглядно видна потребность в очень мощном компе - или хитрой математике.
Однако радует: идея сотовой структуры действительно оказалась удачной в плане наглядности, все веса и связи видны + взаимохват сенсоров/аффекторов ближе к реальности. И то, что в качестве инструмента была выбрана СУБД - тоже правильно: выборки, группировки, суммирование весов лучше и правильнее делать запросами. Хотя в идеале тут наверное нужен специальный тип СУБД, заточенный под нейросети.
Вообщем, потерзаю еще алгоритм расчета до конца недели, и если не случится прорыва, так и оставлю пока - более менее он правильно считает. |
Род: nan - админ Сообщений: 11785 |
Да, без и тераций не решаема. Я делал 10 прогонов до отрисовки рещультата. Для небольшой сетки - ерунда, а на большую нефиг замахиваться :)
Не рассчитывай на это. Я тебе давал исходники с итерациями, но это, конечно, упрощающие ситуацию исходники, и если ты задумал сделать полностью адекватную модель взаимного бокового торможения, то нужно сильно запастись терпением. И ни один математик не поможет, у меня было немало попыток привлекать математиков, они точно так же сходу не врубаются, нужно создавать собственную модель.
Это же чудесно, что еще нужно?
Ты не сможешь все потянуть сам... Придется на чем-то остановиться пока не заинтересовал других настолько, что тебе дали достаточный грант на такую работу (что - далекая фантазия). |
Род: Palarm Infra Real Сообщений: 2458 |
Следующим шагом я буду пытаться научить сеть самостоятельно распознавать примитивы - хочу проверить предположение, что такие их параметры как длина, толщина определяются как раз при помощи бокового торможения через опорные точки, возникающие при контрастировании. Ты говорил, что это делается в третичных зонах, а мне подумалось - что уже в первичных, по крайней мере какая то базовая часть. Нужно определить: если часть - то какая, если все - то как. Но если алгоритм расчета весов будет врать - то и выводы будут ложные. |
Род: nan - админ Сообщений: 11785 |
Сначала понимание, потом формализация. Вот поэтому математики и тормозят с задачками типа взаимного торможения, у них нет готовой подходящей модели. А у тебя получается, что ты делаешь предположения вне какой-то конкретной модели понимания. Это - очень кропотливый путь - проверка всех возможных побочек. В принципе эволюция как раз этим и занимается. Если бы выяснилось, что распознавание условных выделенных форм возможно уже в первичной коре, то, скорее всего, именно там и возникали бы связи с рецепторами значимости. Длина, толщина - условные, относительные понятия. Но не хочу тебе мешать идти так, как тебя ведет твоя эвристика. |
Род: Palarm Infra Real Сообщений: 2458 |
А для того, чтобы возникло понимание, нужна формализация на базе своих текущих представлений - проверка опытом - коррекция. Ты забываешь, что ни у кого здесь нет такого специфического и долгого практического опыта как у тебя - стало быть и полноценного понимания нет ни у кого, в том числе у меня. Чтобы понять твою теорию нужно пройти такой же n-летний путь поиска, анализа, проверок - или сделать работающий прототип по твоей теории. Пройти так сказать по проложенной лыжне - но именно пройти ногами, а не ушами и глазами. В этом у меня уже не осталось никаких сомнений, что это единственный путь. Вот ты уже не раз говорил, что чисто математически задачу не решить, и я соглашался внутренне, что да, сто пудов это потребует огромных мощностей. Но это не было действительное понимание проблемы. Лишь протрахавшись несколько недель с попыткой составить алгоритм взаимного торможения, пришло действительное понимание в чем проблема, в каком конкретно месте и почему. Нельзя вникнуть в проблему наблюдая за ней со стороны - только погрузившись в нее лично.
В рамках текущей, неполной, не проверенной модели - она еще формируется. И ты тут ничем не поможешь и не ускоришь. Благодарность от: nan |
Род: Palarm Infra Real Сообщений: 2458 |
Удалось сделать одним прогоном, но возникло сомнение: по видео видно, что при максимально длинном отрезке по идее должны активироваться аффекторы по центру (27 и 32) так как по бокам у них погасшие аффекторы, и на них теперь нет тормозного влияния. Но по сути состояние, когда центральные аффекторы взаимно гасят друг друга на пределе порога (как качеля балансирует в среднем положении) - неустойчивое и стоит дополнительно активировать рецептор в их охвате то они уверенно активируются (как потом на видео и показано) и переведут сетку в одно из устойчивых состояний. И может так и надо оставить. А может все таки сделать еще прогон чтобы активировать 27 и 32 потому как они вообще то должны быть активны. Вообщем тут вопрос возникает по поводу соответствия последовательных расчетов весов сетки при прогоне ее реальному поведению, где все элементы одновременно, а не последовательно меняют свои веса. Может реальная сетка как раз и будет вести себя как на видео - центральные аффекторы взаимно затормозят друг друга, хотя по расчетам некоторые из них должны выскочить за порог. Aapis_akrana__04_03_2020_10_48_15_.rar |
Род: nan - админ Сообщений: 11785 |
т.е. у тебя есть формула расчета (точнее алгоритм вычисления) результата взаимного торможения при данном профиле возбуждения? |
Род: Palarm Infra Real Сообщений: 2458 |
Формулы нет. Просто сначала включаю все аффекторы как если бы не было торможения, потом одной пробежкой по каждому вычисляю его вес с учетом воздействия соседних активных (выключенные не учитываются) и выключаю те, что оказались задавленными. Получается почти похоже на правду. Потом по идее надо бы еще пробежаться по включенным и поднять их вес - ведь те что выключились теперь на них не воздействуют. И тут то я и встрял, потому как при тупой пробежке опять включаются те что были задавлены, а хитрую еще не придумал. Чувствуется, тут просто надо просто головой тряхнуть - отвлечься. Тут не математика, а просто грамотный алгоритм. Но в первом приближении работает уже очень похоже на правду. Можешь сам потыкать рецепторы. |
Род: Palarm Infra Real Сообщений: 2458 |
Думаю полный алгоритм должен быть такой (после воздействия на рецептор): |
Род: nan - админ Сообщений: 11785 |
Мне кажется (я так реализовал), что суть алгоритма может быть такой: делаем цикл 10 проходов. В каждом проходе добавляем 10% от воздействющих потенциалов торможения. Результат используем в следующем проходе. Так получает как бы имитация постепенного увеличения взаимовлияния без прыжком значений. |
Род: Palarm Infra Real Сообщений: 2458 |
В постепенном увеличении веса тормозной связи есть смысл если учитывать тормозное влияние только от активного аффектора. Тогда можно одной процедурой прогонять расчет несколько раз - и чем меньше шаг (и соответственно больше кол-во прогонов) тем точнее будет итоговое распределение. Но если начать учитывать тормозное влияние при первом же прогоне от еще не активировавшихся аффекторов, то получится, что тормозная связь реализуется не через вставочные нейроны (условно не показанные на схеме, чтобы ее не загромождать), а как то иначе: не через связку дендрит - аксоны, а например через аксоны - аксоны, что резко усложняет модель нейрона. Вряд ли природа пошла по пути создания дополнительных типов связей. ОК, попробую по схеме постепенного повышения. |
Род: nan - админ Сообщений: 11785 |
Вставочные тормозные нейроны есть всегда, они уже готовы к моменту начала специализации слоя. |
Род: Palarm Infra Real Сообщений: 2458 |
Понятно, что готовы, иначе не было бы торможения. Я про то, что у меня получается схема ПОСТСИНАПТИЧЕСКОГО взаимного торможения. А в твоей схеме выходит ПРЕСИНАПТИЧЕСКАЯ - раз тормозные нейроны начинают давить веса аффекторов с самого начала. Это возможно, если тормозные нейроны получают активирующий сигнал от рецепторов. А в моей, постсинаптической схеме тормозной нейрон активируется сигналом активировавшегося аффектора. То есть изначально, пока ни один аффектор не набрал веса для переключения, тормозные нейроны не участвуют и веса растут как если бы их не было вовсе. Но стоит только хотя бы одному аффектору активироваться - он включит связанные с его выходом тормозные нейроны и они придавят соседние аффекторы с силой прямо пропорциональной весу активировавшегося. Тем самым кто не успел набрать вес - тот опоздал, получит пинка под зад от финиша. А если активировалось сразу несколько, то взаимным торможением они уравняют свои веса - придут в равновесное состояние. Но стоит только кому то из них получить чуть больше веса - его тормозное влияние возрастет и он прихлопнет соседние нейроны, если этого тормозного возрастания окажется достаточным. В итоге получится: соседние погаснут (упадут), а он резко взлетит, потому как пропало их тормозное влияние.
Вот так я понимаю принцип контрастирования. И по этой причине если проецируем отрезок то активируются аффекторы по его концам и центру (но пока что он у меня не активируется из за недоработки алгоритма), так как только там минимум тормозного влияния. НО: в твоей схеме, где тормозное влияние между всеми, активными и не активными аффекторами, получившими сигналы от сенсоров, будет активность только по краям, так как даже придавленные друг другом центральные аффекторы будут продолжать давить друг друга, хотя они и выключены. Потому что их давят тормозные нейроны, получившие сигналы от рецепторов. И выходит, в такой схеме контрастирование более выражено, раз активность только по границам.
Возникает вопрос: как правильнее? Тормозные нейроны активировать параллельно/независимо аффекторам сигналами сенсоров, чтобы они постоянно давили их, или активировать их сигналами включенных аффекторов? |
Род: nan - админ Сообщений: 11785 |
Нет, никакой активации от рецепторов или других слоев. Только - от соседних нейронов. Все. Благодарность от: Айк |
Род: nan - админ Сообщений: 11785 |
Скинул тебе в чат ссылку, но ты, похоже, не заходишь на форум без новых сообщений. Так вот, сделал Демо латерального торможения для контрастирования и там есть исходный код так что ты можешь посмотреть алгоритм. |
Род: Palarm Infra Real Сообщений: 2458 |
>>Если элемент в правой матрице активен (оттенок зеленого), то он оказывает активирующие воздействие на связанный с ним рецептор, но соседние активные рецепторы оказывают тормозящее влияние и могут не позволить возбудить данный рецептор 1. Эффектор оказывает воздействие на рецептор? Или все таки наоборот? 2. Квадратики в левой матрице - рецепторы. Раскрашены с разной степенью интенсивности, что видимо показывает мощность их реагирования. Но если мы исходим из цифровой логики, то рецептор имеет только два состояния Вкл/Выкл - стало быть оттенков там быть не может. Вместо них может быть кол-во активных рецепторов на единицу площади матрицы. Если же исходить из аналоговой логики (предположить такую работу рецептора), то надо определиться с логикой работы эффекторов. Судя по правой матрице с кругляшками это они и есть и реагируют они на самый слабый сигнал рецептора. И тогда выходит, что включившись от слабого сигнала он перестанет реагировать на его дальнейшее повышение - просто так и останется включенным. То есть детектирования уровня сигнала не будет - только уровня минимального сигнала, на который он срабатывает - эффектор же "цифровой", срабатывает на превышение порога. И на правой матрице эффекторов визуально не возможно определить, кто из них какой сигнал получил - все горят одинаково. 3. Боковое торможение в твоей схеме позволяет "потушить" слабые сигналы, тем самым выделив из всех активных только самые активные. И это будет центр размытого пятна, где максимальная мощность эффекторов. А если это будет одинаковая по яркости фигура - то активность останется на границах, где минимум торможения. 4. У тебя связь без перекрытия? Один рецептор связан с одним эффектором. Это не позволит разбивать сложные примитивы на более простые на первом же слое детектирования. 5. У тебя реализован эффект "выстреливания" эффектора, когда тормозящие его боковые эффекторы при увеличении уровня торможения гаснут и он лишенный противодействия резко активируется еще более придавливая их? Это как качели в неустойчивом состоянии, когда стоит чуть толкнуть одну из перекладин - как одна тут же падает вниз а другая вверх.
Это то что сразу бросилось в глаза, исходник завтра посмотрю. |
Род: nan - админ Сообщений: 11785 |
Нет, не так и в тексте это описано. Если левая матрица - сенсоры, то интенсивность цвета показывает силу воздействующего фактора. Если - нейроны, то показывает число активных связей, действующий на эффектор (т.е. тогда это не одна связь квадратика с кружком, а равная числу в квадратике).
Да, поэтому и сделан второй образ с такими локальными активностями и они хоть и контрастируются, но остаются непотушенными. А вот шумы около центральной линии эффективно подавляются торможением. А в целом эмклятор предназначек для иллюстрации контрастирующего воздействия взаимного торможения и показывает при каких условиях это оптимально. Кстати, торможение учитывается от всех соседей данного эффектора. |
Род: Palarm Infra Real Сообщений: 2458 |
>> Если элемент в правой левой матрице активен (оттенок зеленого), то он оказывает активирующие воздействие на связанный с ним рецептор эффектор, но соседние активные рецепторы эффекторы оказывают тормозящее влияние и могут не позволить возбудить данный рецептор эффектор. Ведь так правильно? Иначе у тебя получается, что эффекторы воздействуют на рецепторы - это можно только через обратную связь, и тут это совершенно не нужно.
Это то я понял. Но при этом у тебя эффектор в правой матрице срабатывает на активность рецептора больше 1. То есть будет он с интенсивностью 1 или 9 - эффектор одинаково сработает. Тогда выходит он никак не различает интенсивность рецепторов. Понятно, что оттенок означает либо силу воздействия на рецептор либо число связей из этого участка с эффекторами - то есть в этом случае там не один квадратик а несколько и все они прицеплены к одному эффектору. Но это вовсе не самоочевидно - такое графическое упрощение схемы. Мне сразу подумалось, что с одной стороны изображение разной интенсивности квадратиков очень наглядно показывает как в реальности выглядит например на сетчатке глаза проекция внешнего объекта. И дальнейшая демонстрация контрастирования тоже просто демонстрирует эффект повышения резкости. НО: тогда можно подумать, что от рецепторной матрицы от каждого рецептора к эффектору идет сигнал разной мощности - это первое, что приходит в голову уверен большинству. А на самом деле рецептор это такой же пороговый элемент, который выдает 1 или 0. И даже если это не так (или скорей всего не совсем так, там возможно имеет место частотная модуляция уровня получаемого сигнала) - все равно в дальнейшем это будет преобразовано в двоичную схему взаимодействия. Нейроны то уж точно пороговые элементы.
А вторая мысль, что приходит сразу в голову: а если мы просто повысим порог срабатывания - не то же самое разве будет? Так же отвалятся "слабые" эффекторы. И вот тут как мне думается в описании надо подчеркнуть: оно похоже сработает но только до того момента, пока не останутся только примерно одинаковые по мощности воздействия эффекторы. При дальнейшем повышении порога они все разом погаснут. А вот при боковом торможении картина будет принципиально иной: начнет проявляться эффект "задавливания" тех что по середине и "освобождение" тех что по краям. И финальным аккордом центральные выключившись резко упадут а боковые резко взлетят - как стороны качелей. Такого эффекта невозможно добиться играясь с порогом срабатывания или уровнем внешнего сигнала (которые скорей всего сильно "гуляют" в реальной нейросети) - это более четкое контрастирование и стало быть более точное выделение актуального признака примитива. Потому и закрепилась такая находка эволюционным отбором.
А еще глядя на твой исходник пришло в голову, что я все таки рано радовался, что перенес логику работы матрицы на сервер. У меня все сильно тормозит, а у тебя летает. Потому, что у меня на каждый чих идут запросы-выборки, а у тебя все делается в простых циклах и массивах. У тебя получается, что интерфейс часть логики работы сетки, а я пытался отделить данные от клиента, типа чтобы независимым быть реализации клиента. Получается был не прав. У тебя логика напоминает .Net - когда на клиенте создается типа буфер порции данных с сервака и дальнейшие манипуляции с ними происходят так же на клиенте. Потом коротким запросом обновляется итоговый результат на серваке. Тормозов очевидно на порядок меньше, но не будет интерактивной работы на серваке. То есть например для многослойной работы придется либо загружать на страницу все слои, либо работать с каждым слоем отдельно-поочередно. Для демонстрашки пойдет, для реального прототипа скорее всего нет - или что то надо выдумывать. |
Род: Palarm Infra Real Сообщений: 2458 |
И все таки логика работы торможения у тебя не совсем правильно показана. Если нарисовать прямую на матрице рецепторов (квадратики 22...26), активировать их весом 3, поставить пожестче торможение (например 5) - и начать двигать ползунок. Когда кружки эффекторов 23 и 25 погаснут, то оставшиеся 22, 24, 26 должны вернуть себе начальный вес 3 и дальнейшее увеличение коэфф. торможения уже не будет на них влиять - ведь тормозящие их эффекторы погасли. А у тебя они продолжают терять в весе при увеличении торможения. То есть в реальности при определенном торможении матрица эффекторов переходит в устойчивое состояние и перестает реагировать на дальнейшее увеличение торможения. Хотя можно допустить, что при большем тормозном влиянии одномоментно (а не последовательно) гасятся все попавшие под раздачу пендалей эффекторы (если пинок был достаточен для гашения), но все равно в конце надо вернуть исходный вес оставшимся не погашенными - ведь их уже никто не тормозит. Наверное тут просто надо решить, что нам полезнее будет, какая логика: при увеличении торможения гасить постепенно все эффекторы или дойдя до устойчивого состояния остановиться. В природной реализации скорей всего такой вариант, не потому, что он самый лучший, а потому, что практически не возможно четко-синхронно дирижировать такими "криворукими музыкантами" как нейроны. Но в программной реализации лучше как у тебя сейчас, это дает больше вариаций ответных реакций: можно просто "резкость" повысить, можно опорные точки выявить, можно вообще все погасить. |
Род: nan - админ Сообщений: 11785 |
Да, перобор и недобор фильтруется. Сенсор будет выдавать один и тот же сигнал при любой силе его освещения.
Нет, к эффектору может подходить несколько разных связей, некоторые будут импульсировать изредка, другие чаще, что получится в сумме и ответит эффектор. Но при этом учитывается и то, как реагируют соседи и если они возбуждены, то это огрубляет эффектор и ему уже нужна большая активность на входе.
Не то же самое, а, важно, учитываются соседи, а не просто уровень на входе, вот что контрастирует.
У меня многослоная модель тоже рисуется на сервере, но при обучении запрос идет раз в секунду. А вот если бы я привинтил там ползунок, то совершенно недопустимо было бы посылать запросы на сервер со скоростью его смещения. Тут нужно ловить сообщения от ползунка чисто на клиентском скрипте и рулить уже без обращения на сервер. У тебя все элементы div имеют свои id, к ним можно оперативно обращаться из js а так же перерисовывать холст канвы со стрелками. И это будет происходить очень быстро.
Это же имитатор только эффекта контрастирования. Если бы принять не только одну связь как буд-то это несколько (какое число - столько связей), а было бы веерное перекрытие профилей соседей, то этой бы побочки не было. |
Род: Palarm Infra Real Сообщений: 2458 |
Сделал ползунки - работает и вправду шустро, при том что число элементов довел почти до 500.
Я это и имел в виду, говоря, что надо делать что то вроде буферных таблиц на клиенте (скорей всего массивы, как ты обычно делаешь в таких случаях), а на сервак отправлять уже результат манипуляций с сеткой. Мне по сути придется продублировать алгоритм расчета весов на клиенте или даже вообще перевести их сервака на клиент. Иначе получается, что я гоняю тяжелый многотонный самосвал для перевозки пригоршней песка. И когда я говорил, что у тебя логика работы с нейросетью подразумевает расчеты на клиенте через циклы, а не на серваке через хранимки как сейчас у меня - то получается, что клиент у тебя это уже не просто оболочка для интерфейса а часть модели. А может тут правильное решение будет 3-звенная архитектура: данные на сервере, оболочка на клиенте, расчеты в отдельном модуле. Вот тогда все будет по уставу: и скорость - и не зависимость от реализации.
Может статься, что придется вообще отказаться от таблиц связей, если рисовать просто одинарные прямоугольные сетки как в твоем примере. И тогда не надо ничего грузить - просто по номеру элемента справа, слева, снизу, сверху - вот и все связи. Ведь если представить сенсорный экран в виде пикселов монитора - то там их будет сотни тысяч. Ворочать таким массивом, а тем более запросом будет очень тяжко. Если же определять элемент просто по номеру + - вертикально/горизонтально - то их может быть хоть миллион, скорость реакции будет та же. Сдается мне что моя идея с SQL-запросами приведет к закономерному затупу и придется все переделывать. Сервак будет хранить только снимок последнего состояния матрицы для первой загрузки и который потребуется для передачи результата манипуляций с ней на следующий слой. |
Род: nan - админ Сообщений: 11785 |
Ты не правильном пути, прогресс налицо! База нужна только чтобы запоминать состояние, а текущие операции уже выполнять на основе сохраненного и всех делов. |
watts Full Poster Сообщений: 66 |
Но вот если сделать микросхему, где соединение сделано по такой же схеме сот, вместо программного расчета весов провести реальные связи в виде проводящих дорожек и транзисторных ключей - тогда получим действительный прототип природной нейросети. Меня вообще удивляет, почему никто не пытался вместо выдумывания сложнейших алгоритмов расчета многослойных персептронов просто взять и эмулировать нейрон в виде транзисторной схемы (как это показал Nan) а потом соединить их в сетку. Ага , попытки делать аналоговые схемы есть и они имеют некоторое преимущество в части энергопотребления , но это пока не мейнстрим , я предполагаю что дело в неуниверсальности , цифровые процессоры потенциально гибче в части запуска разных архитектур нейросетей. Собственно что я хотел сказать - физики из Тюмгу уже не первый год пытаются освоить производство мемристоров которые изначально позиционировались как элемент энергонезависимой памяти и как модель синапсов. С первым применением возникли проблемы , кажется касающиеся быстродействия. Со вторым экспериментируют и сейчас ( вернее в 19м году). https://ria.ru/20190911/1558497777.html Можно ли промоделировать латеральное торможение на их схемах ?
|
Род: Palarm Infra Real Сообщений: 2458 |
Если они добавят тормозные связи между эффекторами в топологию микросхем - то почему бы и нет. Без латерального торможения не получится выделять важно-значимые признаки - а это как мне думается основа принятия решения в природной нейросети.
Схема такого нейропроцессора предполагает входное и выходное устройства для обработки сигналов, запоминающую матрицу, блок нейронов и маршрутизатор на основе логической матрицы.
Слой рецепторов + слой эффекторов, матрица весов и матрица связей. Может у них там и тормозные связи есть. Это возможно близко к тому что мы тут пытаемся моделировать. Обнадеживает, когда одна и та же идея приходит в голову разным людям - значит в этом что то есть. |
watts Full Poster Сообщений: 66 |
Я почему-то думал что вы пытаетесь эмулировать просто выделение базового разнообразия признаков.Собственно их дальнейшая конкуренция за перетягивание каната значимости и актуализацию фокуса внимания тоже может иметь характер перекрестного торможения.Но в этой области концепция усложняется конскими темпами и не хочется преждевременно останавливаться на каком-то одном механизме. Я поищу подробности того что делают в Тюмгу и попозже напишу. Предполагаю что они не использовали латеральное торможение в том смысле что использован в симуляторе, так как этот подход достаточно далек от мейнстрима , а их задача все-таки откатка схем с мемристорами. |
Род: Palarm Infra Real Сообщений: 2458 |
Допилил наконец отрисовку латерального торможения. Добавил ползунки для порога, основного и тормозного весов. Теперь можно их крутить и смотреть как происходит контрастирование примитива при изменении порога и весов. Данные пока не сохраняются, при обновлении страницы все сбрасывается. Благодарность от: Айк |
Род: Palarm Infra Real Сообщений: 2458 |
Сейчас это хорошо видно на симуляторе, в чем разница между повышением порога и повышением торможения. Если двигать ползунок порога, то сначала гасятся слабые эффекторы, а потом вообще все. А вот если наращивать торможение, то сетка при определенном значении перейдет в устойчивое состояние, при этом часть эффекторов будет задавлена, а оставшиеся подпрыгнут в весе до максимума. Я так и предполагал. Но заметил и другой эффект: есть точки нестабильности состояния сети, при которых она может резко менять рисунок активных эффекторов. При движении ползунка это фаза когда они начинают мерцать или переключаться. Это напоминает график открывания транзистора, участок где кривая резко прыгает вверх. Может это глюк, а может свойство заторможенной сети. Думается, это торможение еще подкинет неожиданностей. При определенных значениях параметров она выкидывает интересные кувырки. |
Род: nan - админ Сообщений: 11785 |
Смотрел в http://p-mvap.ru/index.php?mn_id=4 не понял интерфейса, точнее не вижу описанного эффекта. Или это - не тот адрес? |
Род: Palarm Infra Real Сообщений: 2458 |
Интересное поведение сетки. На первом примитиве она ведет себя стабильно - увеличиваем торможение, растет контрастирование. Но стоит добавить еще ряд активных рецепторов - и начинается мельтешение. Потом я наоборот убавил ряд от начального - снова стабильное поведение. Стало быть сетка при определенном состоянии очень не стабильна. Это интересный вывод - получается некоторые примитивы уверенно не распознаются?
Тот. Там только не прикрутил сохранение параметров. И еще одна накладка: у меня заложена возможность сохранения основных и тормозных весов для каждой связи. Но тогда не получится интерактивно крутить ползунки - это же опять дербанить БД и кроме того, уравнивать веса к одному значению из поля ползунка. Вообще тут вопрос, как правильнее: общий вес (тормозной и основной) на все элементы или каждому свой? Распознавать в принципе можно по общему значению, но по факту веса устанавливаются в момент созревания разные. |
Род: nan - админ Сообщений: 11785 |
Понятно, спасибо!
Думаю, что тормозной вес должен быть общий.для данного образа. |
Род: Palarm Infra Real Сообщений: 2458 |
Я тоже склоняюсь к тому, что тормозной вес лучше общий. А вот основной уже индивидуальный, но тогда надо чего то придумать с ползунком или вообще его убрать. Хотя в принципе крутить основной вес в динамике смысла нет - состояние сетки мало меняется от этого. Скорей всего уберу его. |
Род: nan - админ Сообщений: 11785 |
Сложные и взаимновлияют сложно. Если правильно выполнена итерация взаимного торможения, то как раз по этому демо и можно предсказывать разные эффекты. |
Род: Palarm Infra Real Сообщений: 2458 |
Надеюсь, что на этот раз алгоритм правильный, потому как на простом примитиве при определенном сочетании порога срабатывания, торможения и веса связей он отрабатывает строго как предполагается. Теперь попробую графики прикрутить, может они покажут еще какие интересности. |
Род: Palarm Infra Real Сообщений: 2458 |
Возникла такая гипотеза: меняя через нейромедиаторы порог возбуждения основного и тормозного нейронов (тормозная связь ведь через специальные вставочные нейроны сделана) в природной нейросети реализуется механизм создания конфигураций сетки. То есть возможность создавать множество эффекторных рисунков при детектировании одного и того же объекта - и выстраивать от них свои специфические рефлекторные цепочки.
Оно понятно было и раньше, что меняя параметры сетки можно добиться такого эффекта. Но вот какие параметры? Менять вес каждого синапса думаю технически более сложно в природной реализации. Кроме того, это дает меньший эффект разброса эффекторных рисунков, чем изменяя комбинацию порог/торможение. А это означает просто менять пороги возбуждения основного и тормозного нейронов. |
Род: Palarm Infra Real Сообщений: 2458 |
Но с другой стороны нейромедиаторы регулируют возбуждение (чувствительность) в синаптической щели, а не порог возбуждения всего нейрона. Стало быть правильнее все же менять пропорционально веса синапсов, а не порог. И изменение тормозного влияния тоже по сути регулирование весов синапсов тормозных нейронов, которые на схеме условно не показаны. |
Род: nan - админ Сообщений: 11785 |
Это и есть древний способ разделния стилей восприятия-поведения, который исчерпывает себя уже во вторичных зонах неокортекса. |
Род: Palarm Infra Real Сообщений: 2458 |
Хочешь сказать что все таки порог менять надо, а не веса синапсов? Или что изначально менялся порог, а потом уже появились более продвинутые механизмы? |
Род: nan - админ Сообщений: 11785 |
Нейромедиаторы специфичны к синапсу (точнее наоборот) и на порог не влияют..А позже разделение распознавательных структур начало осуществляться общим подвозбуждением нужным и торможением ненужных. |
Род: Palarm Infra Real Сообщений: 2458 |
Я понимаю так: если нет тормозных нейронов, то единственный способ организовать смену эфекторного рисунка (модели восприятия) - изменение порога или весов синапсов. Веса меняются нейромедиаторами (они задают чувствительность синапса). А как менять порог? Выше я предположил, что его проще изменить чем веса, но точно ли так? По идее, это константа для нейрона, она может закладываться в геноме. Но возможно порог может чем то регулироваться, и это наследие от древних нервных систем. То есть вопрос стоит на что дальше ориентироваться, что забить как константу, а что оставить как ручку регулятора/переключателя в симуляторе. Сейчас имеем три параметра: веса синапсов, устаканенных при созревании нейрона, тормозное влияние, порог срабатывания. Все они по отдельности в разной степени способны конфигурировать эфекторный рисунок. А их комбинации тем более. Эволюционно проверялись самые причудливые сочетания, и я подозреваю, что есть некоторые области значений этих параметров, при которых сетка наиболее стабильно, в смысле не хаотично, а предсказуемо переключается. Значит ли это, что такой механизм так и остался в первичных слоях? При этом торможение более молодой механизм, значит до него переключение стилей поведения делалось только изменением порога и весов? А самый древний механизм? В каком порядке ты бы расставил их по времени возникновения? |
Род: nan - админ Сообщений: 11785 |
Есть еще один способ. Это когда в рецепторное поле пападают сигналы контекста. Т.е. есть активный контекст - срабатывает образ, нет, типа молчит. Ну и тут тоже латеральное торможение: если один образ в активном контексте сработал, он давит соседние. И вот тут уже вес тормозных сигналом может быть побольше потому как это уже не контрастирование, а жесткая конкуренция. |
Род: Palarm Infra Real Сообщений: 2458 |
А контекст задается сначала гомеостазом, а потом уже внутренними моделями. Стало быть вторичные структуры надо симулировать создав для начала симулятор гомеостаза. То есть модель живого организма имеющего базовые потребности. Нужно же как то модулировать (направлять) переключение моделей поведения. В первичных слоях ручки регуляторов крутит гомеостаз. Но вот какие ручки оставить, какие вывести в константы? Что выбрано в природной реализации ? |
Род: nan - админ Сообщений: 11785 |
Это ты замахнулся на очень сложную систему, там немало нюансов. |
Род: Клон Infra Real Сообщений: 1160 |
Нан , хотел спросить .Как относиться к гомеостату У.Эшби? Гомеостат может действовать двумя способами. Об одном мы уже говорили выше: устройство «свободно» адаптируется к среде. Во втором варианте схема его действий чётко задана. Эшби экспериментировал с двумя видами сетей - симметричной, в которой все устройства адаптируются друг к другу, и асимметричной, в которой внутренние параметры одного устройства фиксированны и все прочие устройства должны приспособиться к нему. |
Род: nan - админ Сообщений: 11785 |
Это никак не относится к реальный природным нейросетям. Благодарность от: Клон |
Род: Palarm Infra Real Сообщений: 2458 |
Добавил график состояний эффекторов. Теперь можно наглядно в динамике наблюдать как скачут веса. Дальше попробую определить область значений параметров, при которых сетка устойчиво работает в некотором диапазоне. Под устойчивостью имею в виду, что двигая ползунки в некотором диапазоне картинка эффекторного рисунка не меняется - значит сетка имеет помехоустойчивость реагирования. Это думаю важно, иначе не получится получить стабильные переключения моделей поведения - нужен участок "плато" реагирования. Как я предположил, а nan вроде как подтвердил, механизм смены стилей поведения в древних системах делался путем смещения параметров сетки (у симулятора это порог и основной и тормозной вес). И судя по всему, этот механизм так и остался в качестве рабочего в наследие от них - для первичных структур.
Но для получения нескольких переключений нужно иметь несколько "плато" - и это предстоит выяснить, сколько их на самом деле и при каких условиях может быть. А если выяснится, что разные рисунки дают разные возможности конфигураций стилей поведения? То есть один детектируемый образ позволяет создать несколько моделей реагирования, а другой нет? Не окажется ли это объяснением, почему одни реакции способны модифицироваться а другие нет? Природа однозначно игралась с параметрами, закрепляя удачные находки. Но очевидно, что такой механизм ограничен в плане масштабирования реакций. |
Род: Palarm Infra Real Сообщений: 2458 |
Похоже я дал не верное определение устойчивого состояния сети, которое можно использовать как вариант реагирования. Нужно только, чтобы при определенном рецепторном рисунке сеть давала в виде отклика один и тот же эффекторный рисунок. Это значит, что она предсказуемо стабильно реагирует на раздражитель. Однако мне попадались ситуации, когда при отжатии/нажатии рецептора рисунка сеть давала по 2 и даже 3 варианта отклика. Возможно она была в состоянии неустойчивого равновесия, когда при итерациях расчета весов практически равно-вероятны были несколько вариантов переключения рисунка. То есть чувствительность была сравнима с погрешностью расчета. В реальной природной сети такое тоже может быть, ведь нейроны имеют некоторый диапазон флуктуации своих параметров, вроде "дрейфа нуля" или "ток утечки" у электронных компонентов. Но скорей всего такие хаотичные реагирования просто не фиксировались ввиду отсутствия необходимого для закрепления числа повторяемости, отчего сетки с такими параметрами выбраковывались.
То есть предварительно такой вывод: пляска графика эффекторного рисунка при изменении параметров показывает, сколько примерно возможных конфигураций реагирования можно создать на один раздражитель только лишь подкрутив "ручки настроек". Если управление регуляторами связать с другой сеткой, детектирующей например состояние гомеостаза - мы получим переключение контекстов реагирования в зависимости от гомеостаза. Комбинируя три параметра можно думается довольно много вариантов создать в период созревания сети - и такой механизм до сих пор используется в первичных зонах. |
Род: Palarm Infra Real Сообщений: 2458 |
Возникла еще одна идея для применения особенности нейросети выдавать несколько ответных эффекторных рисунков на один рецепторный - это можно использовать для создания стабилизатора какого то параметра.
Обычно стабилизация параметра делается по схеме использования 2 датчиков конечных состояний. Один сигналит при выходе за нижний предел, другой - за верхний. А если оба молчат - то параметр в норме. Сигналы с датчиков запускают программы возращения в норму: нижний детектор запускает повышающую параметр программу, верхний понижающую. То есть тут стабилизация подразумевает 2 типа сигнала, что ограничивает ее функциональность. Сетка же позволяет выдавать больше 2 сигналов на один раздражитель - через настройку ее параметров. А это соответственно больше вариантов реагирования. Это как если бы не один концевик, а несколько по концам диапазона поставить, что даст дополнительные варианты реагирования.
В прицепе "№ конфигурации" показывает, сколько переключений сетки происходит - столько возможных реакций возможно при данных весах и тормозном влиянии. Можно по идее график составить в виде 3D кривой (три параметра уравнения кривой) для каждого рецепторного рисунка - как его характеристику в плане реагирования. "№ конфигурации" - это просто номера активных эффекторов собранных как строка - уникальный идентификатор эффекторного рисунка. |
Род: Palarm Infra Real Сообщений: 2458 |
Gashyeniye_bokovyh_affyektorov.rar На видео показано, как происходит гашение боковых эффекторов при активации самого нагруженного (весомого). Добавляя ползунком основного веса на синапсы видно, что суммарный вес центрального и связанных с ним тормозными связями других эффекторов, на которые тоже воздействуют активные рецепторы, сначала пропорционально растут. Но как только самый нагруженный достигает порога срабатывания - он начинает их тормозить, вплоть до того, что задавливает в минус. Я специально поставил коэфф. тормозного влияния 0,6, чтобы после активации центральный заминусовал боковые. Происходит как бы резкий его "отрыв" от остальных - контрастирование возбуждения одиночного эффектора. Самый нагруженный "выстреливает", недогруженные "притапливаются".
|
Род: nan - админ Сообщений: 11785 |
Пока что не очень наглядно и как бы неинтересно поэтому. Все же нужен какой-то более узнаваемый образ для демонстрации. Если показывать подавление помех, то сделать эти помехи вместе с полезным образом. Если контрастирование -то чтобы видно было как увеличивается контрастность и т.п. |
Род: Palarm Infra Real Сообщений: 2458 |
Я сейчас как раз делаю подробное описание симулятора взаимного торможения, потом добавлю видео. По сеткам уже сделал. Макет изменил с целью размещения на экране без прокрутки матрицы и графика, чтобы сразу было видно, как интерактивно меняется график при изменении состояния матрицы. Правда вскрылся еще один косяк связанный с запросом-источником, хотя на работе сетки он не сказывается - она отражает точно те значения, которые я представлял себе при ручной проверке весов. Палево вышло с попыткой программно задать статус рецептора, то есть установить какой нибудь рисунок. Это связано с тем, что эффектор может иметь более одной связи с рецепторами и при текущем источнике данных получается неоднозначность с программным определением рецептора. Это поправлю после того, как сделаю описание схемы. Потому как help по ней мне думается более актуальная задача, потому, что
И я так думаю. Мне сетка совершенно банальна и я уже без всяких итераций могу сразу сказать где какой вес будет и почему. Но другим, которых так не зацепило, видимо многое не понятно а потому не интересно - иначе завалили бы вопросами. |
Род: Palarm Infra Real Сообщений: 2458 |
Впал я так сказать в глубокую задумчивость по поводу адекватности расчета весов методом итераций. Речь о расчете неопределенных ситуаций, когда например три эффектора одинаково нагружены весами от рецепторов и по идее должны равномерно притормозить друг друга. Так и происходит, но лишь в случае, если итоговый вес все еще больше порога. А вот если ниже - тут возникает интересный момент, кто кого придушит первым. Строго математически, если три ковбоя стали в круг и направили друг на друга револьверы - погибнут все, так как шансы у всех равны. Но в реальности кто то обычно оказывается проворнее и выживает. То же самое и с сеткой. По картинке, все три эффектора должны получить вес 0,48 (при параметрах: порог 0,4, веса основной и тормозной 0,2) равномерно придушив друг друга. А на деле №27 выбыл из игры. В данном случае потому, что при расчете идет последовательный опрос эффекторов по возрастанию номеров - вот ему первому и прилетела пули от остальных.
И возникает вопрос: а в реальном прототипе, например на микросхемах, где веса не итерациями а физическими взаимодействиями устанавливаются - там как будет? С одной стороны там ведь все равно будут какие то флуктуации и стало быть кто то так же окажется ловчее и выстрелит первым. А строго по математике, если бы например веса считались по формуле - все равны. Вот и думаю: понятно, что в таких примитивах при таких параметрах кто то будет гаситься - но строго по теории то не должен! То есть в симуляторе примитив прямая разваливается на пунктирную линию - а при расчете по формуле веса просто равномерно понизятся - вплоть до того, что при достаточно сильном тормозном воздействии примитив вообще погаснет, весь целиком! А в симуляторе прямая распадется на отрезки и там уже сколько не крути ручки тормозов - они так и останутся отрезками. Не сходняк однако. Но он интересен тем, что... так и должно быть. То есть строгая формула не годится. И вот думаю - по этому поводу будет сильное бодание с оппонентами. Как так - правильная формула не правильна?! |
Род: Palarm Infra Real Сообщений: 2458 |
Я пока склоняюсь к тому, что расчет через формулу идеальной равновесной нейросети невозможен. Потому, как если включенные рецепторы затормозят эффекторы до уровня ниже порога - они выключатся. Но при этом пропадет их тормозное влияние - они включатся. Опять затормозят - выключатся - включатся - и т.д. Получаем неустойчивое состояние, которое в физическом симуляторе перейдет в автоколебания, так как имеем обратную связь. Но в том же реальном симуляторе чуть разбалансировать например веса или пороги эффекторов - и неопределенность пропадет. В природной нейросети так и происходит - там нет строго установленных параметров нейронов. Поэтом стоит ее толкнуть - и она сваливается в какое то из устойчивых состояний. В данном программном симуляторе неоднозначность устраняется через задание очередности прохода эффекторов при расчете.
Что меня зацепило в этой истории: обычно мы думаем, что обсчитавшись в расчетах мы получили бы верное решение, имей мы точную формулу. Но в случае расчета нейросетей оказывается это еще спорный вопрос - будет ли она точнее определена по формуле. Итерации оказывается дают более близкую к реальной картину. И это не привычно, на первый взгляд даже абсурдно выглядит. |
Род: nan - админ Сообщений: 11785 |
Это - не типичный случай в нейросети. Даже если такое вдруг случиться, то это будет очень частный глюк. Лучше не входить в разные варианты возможностей, а находиться в контексте системной модели нейросети. |
Род: Palarm Infra Real Сообщений: 2458 |
В симуляторе условно принято, что все веса одинаковы - я думал, так будет проще показать эффекты возникающие от торможения, потому что проще показать примеры расчета весов. Но оказалось, это приводит к их неожиданному раскладу и неопределенностям. В реальной нейросети конечно же веса от рецепторов практически всегда разные, смотря по тому, как они зафиксировались при самообучении.
Вот если бы №21, 31, 30 передавали бы вес не 0,2 а 0,15 - тогда эффектор №27 получил бы от них суммарный вес 0,45 а №117, 126 - по 0,5. Взаимное торможение с весом 0,2 тогда распределилось бы так:
на №27 пришло бы 0,05*2=0,1 а на №117, 126 0,05+0,045=0,095. В итоге их суммарные веса бы стали:
№27: 0,45-0,1=0,35 - ниже порога 0,4 №117, 126: 0,5-0,095=0,405 - выше порога 0,4
И тогда уже без всяких флуктуаций №27 закрылся бы, его торможение пропало и веса №117, 126 пересчитались бы как от только взаимного влияния №117, 126 = 0,48.
Теперь понятно, зачем ты в своем примере вводил статусы рецепторов не просто ВКЛ/ВЫКЛ (как у меня) а градацией от 1 до 10 - так ты симулировал реальное проецирование примитива на рецепторное поле в виде уровней сигналов от рецепторов, которое практически никогда не бывает равномерным, что собственно и устраняет не однозначность расчета. Придется и мне их вводить, чтобы объяснять состояние нейросети без привлечения стреляющих друг в друга ковбоев.
Хотя тогда придется все равно объяснять, почему при одинаковых уровнях из тройки эффекторов выключается тот что с наименьшим номером, а при неодинаковых - с наименьшим весом. Это уже результат опроса по возрастанию при расчете сети. Но и в реальной сети тоже один из трех одинаково нагруженных вырубится - но уже из за флуктуаций. Получается, строго говоря есть две причины, почему искусственная нейросеть так распределяет веса: из за особенностей расчета и неравномерности рецепторного поля. А в природной то же самое происходит из за флуктуаций параметров и неравномерности рецепторного поля. Не будет ли это слишком сложным для понимания? Можно конечно тупнем прикинуться и просто показывать только не равновесные примитивы, и на них уже объяснять контрастирование исключительно по причине неравного распределения весов. Но вот кто нибудь нажмет одинаковые веса и ткнет пальцем: а тут тогда почему контрастирование происходит? Метод итераций ведь не позволит избавиться от этого эффекта. А тот же самый эффект на физическом симуляторе вызовет аналогичный вопрос: тут же нет итераций, возбуждение рецепторов равномерное - откуда тогда "контрастирование"? И вот как тут объяснить, что на самом деле имеет место довольно сложный эффект из флуктуаций, особенностей расчета и собственно самого контрастирования? Когда в разных ситуациях работают их разные комбинации - но выглядит все похоже.
Это значит кое что не договаривать, чтобы не сбивать с толку. В смысле не врать, а не усложнять. |
Род: Palarm Infra Real Сообщений: 2458 |
Сделал возможность задавать разные веса для рецепторных связей. Точнее оно и раньше было, но сделал как у Nan - через клик по рецептору: левой кнопкой вес растет до 0,9 - правой опускается до 0. В итоге равновесие вернулось :) На первом рисунке эффекторы при равномерной нагрузке равно напряглись, на втором - задавили центральный, так как на него меньший вес пришел от рецепторов. Итерации, флуктуации - выходит нет этой проблемы, или скорей всего постепенное наращивание весов ее ослабило. Если она и будет вылазить, то при достаточно больших тормозных влияниях. Ссори... |
Род: Palarm Infra Real Сообщений: 2458 |
Добавил описание модели латерального торможения Теперь мне стало намного понятнее, как это работает и для чего это нужно. По ходу дела возникало множество мыслей, некоторые из них изложил в описании, другие все же думаю требуют сначала экспериментальной проверки. Вообще, этот симулятор, хотя и кажется простым и очевидным, лично мне помог намного глубже въехать в тему взаимного торможения. Я бы настоятельно советовал, если у кого есть непонятки по этому поводу, хорошенько поиграться с симулятором, чтобы не осталось вопросов, как и почему распределяются веса. Латеральное торможение настолько удачная и важная находка эволюции, что используется на всех уровнях нейросети, выполняя функции контрастирования, конфигурирования, стабилизирования и наверное еще много чего. Казалось бы такое простое дело - выделить самые слабо-заторможенные эффекторы - но какие интересные эффекты при этом возникают. Благодарность от: Айк |
Род: Palarm Infra Real Сообщений: 2458 |
Добавил коэфф. усиления веса рецепторов через настройки (поле и ползунок) которые раньше использовались для задания общего одинакового веса, что как бы было не правильно. Теперь можно имитировать общее усиление/ослабление сигнала на рецепторы, что тоже приводит к изменениям эффекторного рисунка. В итоге имеем теперь три параметра, которые могут каждый по отдельности и в разных комбинациях менять отклик сети на раздражитель.
|
Род: Palarm Infra Real Сообщений: 2458 |
Подумалось, что вообще то число рецепторов (розовый) должно быть равно числу эффекторов (зеленый) - так получается максимально плотный равномерный охват эффекторами рецепторов. И тогда при этом один эффектор охватывает 7 рецепторов, а не 6, как сейчас в симуляторе, аналогично каждый рецептор связан с 7 эффекторами. Схема 7х7 для шестигранной упаковки получается. При этом так же максимально плотны тормозные связи - на рисунке слева они показаны. А вот основные связи на виде сверху (лев. рисунок) не видны - они под тормозными. И центральная основная вообще не видна - она перпендикулярно вниз направлена. То есть все таки идею отражения всех связей на одной матрице придется забыть - при такой плотной упаковке не получится, разве только в 3D. Но существующая схема, где эффектор в центре шестигранника все таки останется как упрощенная. Там все связи видны, что позволяет быстрее понять из взаимодействие. Придется теперь делать новую решетку, там думается кол-во конфигураций будет больше. |
Род: nan - админ Сообщений: 11785 |
Мне кажется,ты зря придаешь такое внимание числам рецепторов и эффекторов. Это - очень условно для подобных моделей. Хотя можно было бы ввести коээфициент разветвления типа под одним кружком рецептора подразумевается, 1,2,3 ... 20 рецепторов, и тогда учитывать такое число в итогах работы модели. |
Род: Palarm Infra Real Сообщений: 2458 |
Возможно ты прав. В самом деле, можно прописать какие угодно связи в таблице связей эффектор/рецептор, даже такие, которые графически очень сложно отобразить, и получить варианты реакций. Но суть останется прежней. Текущая сетка просто очень наглядно и просто показывает принцип передачи сигнала от рецептора к эффектору. И на ней остановимся. Есть задачи поинтереснее, чем перебирать бесконечные варианты их соединений. Например, можно приступить к самообучению. У меня уже возникли кое какие соображения по этому поводу, сформулирую и выложу. Там походу тоже вылезут интересные моменты. |
Род: Palarm Infra Real Сообщений: 2458 |
1. В самом простейшем случае (мало имеющем общего с реальной ситуацией - но про это пока думаю преждевременно) обучение сети происходит простым проецированием на нее неподвижного примитива. Нужно просто выдержать его какое то время, чтобы закрепились веса или вместо времени использовать параметр "кол-во" обучающих проекций. По сути это тоже самое - но намного быстрее, чтобы не тратить время попусту глядя как секундный счетчик неспешно отсчитывает например 100 сек. Но даже при таком идеализированном самообучении возникает вопрос по поводу настроек сенсорной матрицы - какими их выставлять? Минимальными/максимальными? И модуль гомеостатической значимости, управляющий настройками (его еще нет, но когда будет, надо будет решить) так же пока отключен, иначе он только хаос будет вносить?
2. Объект по идее должен позиционироваться всегда по центру сенсорной матрицы, иначе потом придется как то объединять одинаковые проекции в разных частях экрана. Вообще это в какой то мере должно получиться автоматически уже потому, что какой бы примитив не рисовали, максимальная засветка будет ближе к центру и именно центральные рецепторы быстрее всего созреют. Чтобы позиционировать по центру нужно подключение следящего модуля к еще сырой, не созревшей матрице. Это как бы "магнитная рамка", захватывающая и удерживающая объект по центру через поворот головы, движения глаз, шевеления ушами и т.д. - для разного типа рецепторов. Мы пока просто подразумеваем его, поэтому примитив всегда по центру.
3. Модуль гомеостатической значимости, влияющий на настройки созревающего слоя и задающий контекст реагирования - он вроде как должен быть временно отключен. Иначе о каком переключении может идти речь, если еще нет уверенного распознавания.
4. На вопрос о признаке созревшего слоя ты помню говорил, что у тебя только предположения есть по этому поводу (в смысле, как это конкретно в природной нейросети реализовано). Стало быть тут можно просто выбрать что проще и эффективнее для реализации в симуляторе. Вроде как очевидно просто задать временной интервал (или например общее кол-во проекций на матрицу) после чего самообучение прекращается.
По поводу гомеостатической значимости - мне кажется, ты имеешь в виду не то, что я предполагаю. Я пока просто представляю себе, что какие то рецепторы отдельной нейросети, "наблюдающей" за гомеостазом, воздействую на параметры первичного слоя и меняют тем самым его эффекторные рисунки. Правда дальше не очень понятно, что с этим делать. Но ты кажется имеешь в виду другое: он не просто меняет, а выделяет, заставляет обращать внимание на одни рисунки и игнорировать другие. То есть за счет конкуренции детектированных примитивов (которые он получил от первого начального слоя) на своем рецепторном слое, через взаимное торможение он контрастирует суммарный рисунок из множества распознанных примитивов и выделяет только те из них, которые отвечают текущей гомеостатической значимости. Но тогда выходит, что к первичному слою, который непосредственно с рецепторами связан, никаких доп. модулей не подключено, там никто не воздействует на его настройки. Видимо они просто заданы по умолчанию как константы. А воздействие происходит на втором слое. То есть первый просто детектирует примитивы, а второй уже выделяет гомеостатической значимостью наиболее актуальные из них.
Получается, я правильно заметил, что изменения параметров сети меняет ее эффекторный рисунок. Но не правильно интерпретировал это свойство, приписав такое регулирование уже самому первому слою. Но там взаимное торможение эффекторов просто контрастирует детектируемые примитивы, разбивая их на более простые (линии - на более короткие отрезки, пятна - на контуры). Тут контрастирование статическое, постоянное. А вот на втором слое уже динамическое. |
Род: nan - админ Сообщений: 11785 |
>>модуль гомеостатической значимости, управляющий настройками Наработка коллекции примитивов иерархически усложняющихся распознавателей, включая подключение сенсорики другой модальности (кроме зрительной) – никак не касается развития примитивов распознавания сочетаний рецепторов гомеостатических параметров. И только на позднем этапе возникает контекстная иерархия, при развитии третичных зон, там, где сочетаются не только модальности органов восприятия, но и примитивы значимости, а также концы уже наработанных примитивов моторных реакций. |
Род: Palarm Infra Real Сообщений: 2458 |
Стало быть когда в первичных зонах идет простое создание иерархических распознавателей никакие значимости там никаких регуляторов не крутят. И только когда наконец построится древовидный список распознавателей и начнут на их базе формироваться третичные зоны - тогда от них подключается обратная связь на первичные и начинает воздействовать на параметры слоев, контрастируя из уже уверенно детектируемых примитивов "нужные". Звучит логично уже хотя бы по тому, чтобы среагировать на чью то "зловещую" тень, или "злобный" блеск чьих то глаз в темноте, через резкое контрастирование признаков предполагаемого хищника (есть ли он там) - нужно чтобы в какой то более высокоуровневой зоне свелись в "общую картину" сигналы от наружных сенсорных датчиков, концы рефлекторных заготовок реагирования и какие то управляющие сигналы, чтобы в зависимости от общей рецепторной картины запускать подходящую рефлекторную цепочку. В данном случае управляющие сигналы - это данные гомеостаза. Тут действительно, пока все очень сложно даже представить, как это работает, а не то что смоделировать. Стало быть заморачиваться кто и как крутит регуляторы первичных слоев пока что преждевременно. Потому как сначала нужно построить дерево примитивов, создать модуль модификации условных рефлексов, модуль гомеостатического балланса, свести все это как то в одну кучу - и только потом уже тянуть линии обратной связи на первичные зоны. Звучит так же "просто", как построить первую, вторую, третью ступень ракеты и полететь на луну.
Для начала наверное надо просто сделать простое самообучение слоя статической экспозицией примитивов, их группировку на втором слое. А потом уже думать про модули "захвата примитива" и далее по нарастанию сложности. |
Род: nan - админ Сообщений: 11785 |
Нет. Никакой такой обратной связи. Но есть обратные связи через вторичные зоны через гиппокамп для удержания стимула в памяти. В третичных значимость играет роль контекстов, для отделения восприятия и реакций для базовых стилей поведения и на этой основе все более уточняющие контексты. Ты явно подзабыл систему :) |
Род: Palarm Infra Real Сообщений: 2458 |
Потому, что твоя информация еще не стала мыслительными автоматизмами - для этого нужна ее долгая обкатка в разных контекстах восприятия. Если бы можно было понять новое просто прочитав/послушав - тогда иностранные языки учились бы простым одноразовым чтением словарей. Но в реальности язык приходится много лет набалтывать. |
Род: Palarm Infra Real Сообщений: 2458 |
На этот раз решил пойти от обратного: сначала тщательно расписать "справку" по модели самообучения, а уже потом закодить. По сути переоткрыл для себя банальность, которые все старые кодеры уже охрипли повторять молодым: сначала расчерти блок-схему на бумаге, потом топчи клаву! Но как водится, их никто не слушает до какого то момента, как та обезьяна с пальмой и бананом на ней: кули думать, трясти надо! И вот при пережевывании пришла мысля: в момент самообучения при активации эффектора включается латеральное торможение, притапливающее соседние эффекторы и мешающее им наращивать веса с прежней скоростью - что и приводит к неравномерному распределению весов на одном эффекторе. Другая причина - разная частота активности рецепторов связанных с данным эффектором. Но это уже зависит от конкретного рецепторного рисунка, а вот в случае с торможением сразу приходит на ум, что происходит некое автоматическое уравновешивание/распределение весов. Это то, над чем бьются персептронщики выдумывая сложные формулы расчета весов для уверенного детектирования примитива? Ведь нужно как то добиться, чтобы один и тот же набор эффекторных пикселей мог детектировать несколько примитивов, а не один - для этого надо им как то хитро расставить веса. И всяко у них есть какая то ацкая формула по этому поводу, определеяющая кроме матрицы весов еще и "емкость" самой матрицы - сколько теоретически она способна зашить в себе распознаваний при таких то весах. Но это еще предстоит проверить - какую роль играет латеральное торможение при самообучении. Может и правда - устаканивание весов? Но с другой стороны в симуляторе латерального торможения все веса одинаковы, как если бы матрицу обучили сплошной фоновой засветкой - и она прекрасно отличает вертикальную линию от горизонтальной. Стало быть, торможение при самообучении не очень то и нужно. Оно лишь добавит контрастирования при детектировании после обучения за счет того, что некоторые веса будут изначально притоплены и стало быть эффектор как бы предрасположен к определенному распознаванию. |
Род: nan - админ Сообщений: 11785 |
В отличие от нейросетевиков задачи одним распознавателем обучить различать несколько примитивов нет. Вообще нет никакой аналогии с их проблемами. |
Род: Palarm Infra Real Сообщений: 2458 |
Ты видимо не понял суть интриги или я не понял тебя. Представь рецепторную матрицу скажем 4х4, на которую проецируются цифры от 0 до 9. Цифра 1 включает в себя пиксели от цифры 4 и 7, 8 - от 6 и 0 и т. д. То есть один и тот же рецептор детектирует разные примитивы. А теперь представим что мы обучили распознавать цифру 1, что означает - все эффекторы, которые участвуют в ее распознавании созрели и больше не обучаются. И если мы начнем теперь обучать эту же матрицу цифре 4, то получится, что некоторые уже обученные эффекторы начнут реагировать на нее, потому как попадают в область охвата рецепторов предыдущей цифры 1 ("ножка" обоих цифр). И вот тут встает вопрос: получается это уже не обучение с нуля, а дообучение, частично цифра уже распознана.
А следующий логический вывод - с каждым новым обучением/дообучением все больше пикселов будет "засвечиваться" и в конечном итоге при показе какого то примитива там вообще никто ничему не будет обучаться (наращивать веса) - все уже обучено, засвечено - будет просто реагирование согласно расставленным весам.
И вот встает тогда главный вопрос: а нафига тогда вообще ее чему то обучать таким образом - показывая поочередно примитивы и развешивая веса? В нейросимуляторной модели латерального торможения все веса одинаковы, матрица как бы обучена фононовой засветкой. И она работает - выдает на каждый рецепторный рисунок свой уникальный эффекторный. То есть ее реагирование просто предопределено изначальной расстановкой связей и весов. В моем понимании обученная эффекторная матрица выдает на каждый уникальный рецепторный рисунок свой уникальный эффекторный. Они вовсе не обязательно должны быть визуально похожи - главное чтобы была уникальная пара, чтобы эффекторный рисунок цеплялся только к одному рецепторному. Но получается этого можно добиться без всякого обучения - просто установив связи и веса по умолчанию, например в виде решетки и одинаковыми.
Или таким образом можно добиться лишь ограниченного распознавания группы примитивов, для большего разнообразия нужно уже бодаться с весами? И может тут боковое торможение как раз помогает автоматически решить вопрос уравновешивания весов? А может ты имеешь в виду, что каждый примитив детектирует своя группа нейронов? Тогда правильнее говорить не о решетке связей, а множестве параллельных решеток, подключенных к одним и тем же рецепторам. Реальный слой это как слоеный пирог. Но это приведёт лишь к тому, что при детектировании 7 и 4 будут активироваться эффекторы на разных субслоях одного слоя, что суть масло масляное. Нет никакого преимущества в плане точности распознавания цеплять параллельные слои, ведь все они подцеплены к одним и тем же рецепторам.
А может ли так случиться, что пара созревающих нейронов свяжется между собой как рецептор с эффектором? Чтобы исключить такое надо не просто соединять активные нейроны, а только созревший с несозревшим. Но по моему ты говорил только об активности по обе стороны. |
Род: nan - админ Сообщений: 11785 |
1. Сразу распознаванию цифры природная нейросеть не специализируется. Сначала - разные элементы цифры. 2. Если данному эффектору за время его специализации показывать части от 1 на 90% чаще, чем другие, то возникнет детектор 1, который будет еще срабатывать и от других цифр, похожих на 1 (как результирующее изображение на фотопластинке за время экспозиции). То, что распознавание неверно на этом уровне никак не определяется.
Все эффекторы слоя созревают примерно одинаково и начинают тянуть свои дендриты именно к предыдущему слою туда, где появляется активность. |
Род: Palarm Infra Real Сообщений: 2458 |
В том то и дело. Обучение природной нейросети - это протягивание отростков к ближайшему активному рецептору и фиксация веса связи. А у меня то связи изначально протянуты равномерной решеткой. Остался вопрос с весами - и есть подозрение, что расставив их так же равномерно я собственно и закончу обучение. То есть для равномерно структурированной матрицы оптимальным будет обучение простой фоновой засветкой. И его можно просто заложить изначально. Это можно сравнить с ситуацией, когда ты макаешь малярную кисть и начинаешь стучать ей по забору как попало пока он весь не закрасится, а можно просто сразу взять ведро с краской и выплеснуть на забор - будет тоже самое, только намного быстрее. Если на первый слой начать проецировать разные образы, а он начнет учиться детектировать их фрагменты-примитивы, то после обучения окажется, что эффекторы соединились с рецепторами какой то корявой решеткой с некоторым разбросом весов. Останется только поправить решетку и веса - или просто сразу соединить их решеткой с равными весами связей.
Почему природа не пошла таким путем? Ведь матрица - простой фрактал, его легко закодить в геноме. Пауки плетут паутины, пчелы лепят соты - никто не парится с индивидуальной настройкой ячеек, а в нейросети почему то потребовалось устанавливать специфические связи по каждому элементу. Пока не вижу особых приемуществ в этом. Обучение первичного слоя распознавать простейшие примитивы (отрезки, дуги) лучше делать сразу разлиновав матрицу на сетку и прописав одинаковые связи по умолчанию. А вот на следующем уровне, где будет сборка более сложных примитивов - там уже начнут рулить веса. Скорей всего есть какая то байда с разлиновкой сетки, иначе не стало бы преимуществом случайно-коряво-глючное распределение весов и связей при самообучении. Или есть нюансы при дальнейшем иерархическом детектировании, которые сводят на нет преимущества сетки с фоновой засветкой. |
Род: nan - админ Сообщений: 11785 |
Нужно выбрать: это модель природной реализации или какая-то версия искусственной. Если природной, то нужно бы устроить обучение как именно протягивания связей к наиболее часто активным рецепторам (или протягивание связи к каждому активному рецептору и добавление еще одной при следующей его активности). |
Род: Palarm Infra Real Сообщений: 2458 |
Согласен. Надо сделать модель по природной реализации с протягиванием связей и посмотреть что получится. А потом уже сравнить с матрицей: действительно ли это корявая сетка или что то принципиально другое. Короче, нужен эксперимент на симуляторе. |
Род: Palarm Infra Real Сообщений: 2458 |
Поменял связи вручную на случайные - получил просто другие эффекторные рисунки. Получается, на уровне одного слоя нет особой разницы. Но если задуматься что будет в многослойной системе, то приходит такое соображение:
Возможно, именно так в основном и функционирует нервная система насекомых. Спорным будет вопрос о степени вариабельности таких систем, чтобы объяснить наблюдаемое разнообразие рефлексии насекомых, от простейших поведенческих навыков до сложных взаимоотношений муравьев, пчел и т.п. Для этого нужно построить работающий по такой схеме полноценный прототип нервной системы муравья, который покажет, так ли это. Однако представляя ее как построение однотипных решеток связей с регулировкой слоев через их параметры, можно представить, как передаются по наследству такие сложные модели поведения насекомых вроде пчел. А никак они не передаются. Слои строятся «по одному чертежу», фрактальной структуре решеток связи, закодированной в геноме. Уникальные для каждого вида лишь параметры слоев, которые и определяют особенности рефлексии - вот они и идут довеском к "чертежам" в геноме, как сопроводительная записка. Это можно сравнить со сложными, иерархически структурируемыми функциями с параметрами, изменяя которые можно получать различные области решений. Гипотеза весьма смелая и мало обоснованная, кроме наблюдений за поведением слоя при изменении его параметров.
Думаю, нужно все таки строить модель самообучения с протягиванием связей к активным рецепторам, возможно в дальнейшем, при развитии модели до многослойной, станет наконец понятно, почему индивидуальная расстановка связей и весов выгоднее в плане адаптации чем шаблонная. Конечно, первое что приходит в голову - уникальность построения рефлексии для конкретной особи в конкретных текущих условиях. Модификация реагирования через "подкручивание" параметров видимо действительно как говорил Nan просто быстро исчерпывает себя и не отвечает требованиям сложной поведенческой организации животных. Но почему она возникла, почему эволюция стала строить новую ветку, отдельную от насекомых? Сыграли в этом роль массовые вымирания, когда приходилось начинать все с чистого листа, или это неизбежный этап эволюции? |
Род: nan - админ Сообщений: 11785 |
Насекомые от простейших как бабочка со всего лишь считанными цепочками реагирования в зависимости от обстоятельств, выбивались в более продвинутые с каждым новым совершенно случайным мутнтным приобретением еще какой-то цепочки. И у мух-муравьев этого накручивалось очень, очень много на многие случаи. Автоматизм ЛЮБОЙ сложности можно собрать из таких цепочек, проверяя жизнями огромного числа особей за огромное количество времени. И это происходило пока не возникла еще одна мутация, породившая зачатки новой коры с возможностью формировать дополнительные псевдо-органы чувств, т.е. кроме глаз,. ушей и т.п еще и примитивы их сочетаний. Вот это и был качественный скачек от несекомых к более сложным тварям. |
Род: Palarm Infra Real Сообщений: 2458 |
Ну да, кажется я уже где то приводил соображение, что если возникают длительные закольцовки активностей, то они неизбежно станут "объектом внимания" для каких то более сложных структур распознавания, зачатки которых могли возникнуть через мутацию. Если в голове постоянно что то крутится - кто нибудь начнет это детектировать. |
Род: nan - админ Сообщений: 11785 |
На рассматриваемом нами уровнях нет никаких закольцовок, а просто тупо активность отражает воздействие.
В геноме они не закодированы. Никакой емкости бы не хватило. Как и не закодирован мозг человека. Об этом было: Наследование признаков |
Род: Palarm Infra Real Сообщений: 2458 |
По поводу расчета весов связей (это выдержка из будущего хелпа): • Ur – уровень сигнала получаемого от рецептора. В модели он установлен по умолчанию и равен 1 (?) • Nr – номер шага цикла наращивания
И вот тут вопрос по поводу единицы. Чтобы связать вес синапса с уровнем сигнала рецептора, можно привязаться напрямую к его величине, то есть по шагам наращивать вес синапса, где на каждый шаг идет прибавление Ur/10 (при 10 циклах обучения). Но тогда получается, рецептор - аналоговый датчик выдающий разный уровень сигнала в зависимости от уровня раздражителя. А он вроде как пороговый должен быть - выдавать только 1 или 0. Но тогда если нужна зависимость между уровнем возбуждения рецептора и выращиваемым весом - остается привязаться к частоте сигнала рецептора. Чем более он возбужден, тем больше шаг наращивания веса синапса. Этот вопрос вроде бы поднимали: что там у рецептора - аналоговая или частотная выдача? Я думаю что частотная. Рецептор генерит серию импульсов с большей частотой и/или продолжительностью - что и служит фактором определяющим скорость наращивания веса связанного с ним синапса. |
Род: nan - админ Сообщений: 11785 |
Вид выходного сигнала в элементе модели не имеет никакого значения, он может быть импульсный или постоянным током. Важно только то, активен рецептор или нет. То же самое про пейсмеккер. Если по обе стороны связи элементы активны, то она нарастает, конечно, не мгновенно, а как фотопластинка суммирует воздействия на нее. |
Род: Palarm Infra Real Сообщений: 2458 |
В самом деле, привязываться к уровню сигнала рецептора имеет смысл только в случае, если бы и после обучения сохранялась такая зависимость. То есть вес синаптической связи менялся бы пропорционально уровню сигнала рецептора. Но по факту он фиксируется на каком то значении. Видимо так устаканилось потому, что нет никакого преимущества реагировать на уровень сигнала от рецептора. При обучении это просто ускорит созревание связи, что не очень то и важно. А при детектировании создаст проблемы - один и тот же нейрон будет возбуждаться при разных уровнях активности рецептора, что обессмыслит попытку одним нейроном определять уровень мощности: лампочка горит и при 180, 220, 240 W - и ориентируясь только на ВКЛ/ВЫКЛ невозможно будет понять, какое там напряжение. Поэтому если рецептор даже и генерит импульсы разной частоты и длительности - на логику работы нейрона-эффектора это никак не влияет. Хотя вполне возможно, что в ходе эволюции возникали попытки это как то использовать, но в любом случае это были дополнительные, малозначимые механизмы. Основной - простое пороговое реагирование при активации рецептора: ВКЛ/ВЫКЛ. А насколько критично, чтобы нейроны слоя примерно одинаково созревали? Если созревший нейрон будет просто реагировать, а рядом несозревший созревать, тем самым включая созревший в свою цепочку эффекторного рисунка. |
Род: nan - админ Сообщений: 11785 |
Да. Практически ни по одному органу восприятия невозможно определить абсолютную силу воздействия, ни по яркости зрительного, ни по силе звука слухового, все определяется относительно, уже в ходе взаимного торможения и таким образом удается обеспечить огромный динамический диапазон этих относительных величин, с которым не может сравниться матрица фотика.
Новый слой - новая заплатка эволюции, которая появляется в череде других и поэтому ее функция разворачивается в таком же порядке и примерно в одно и то же время.
|
Род: Palarm Infra Real Сообщений: 2458 |
Сможешь прокоментировать этот блок Начало скрываемого блока |
Род: nan - админ Сообщений: 11785 |
>>необходимо условие: образ должен быть «неподвижен» относительно рецепторов в течение некоторого времени. Просто зафиксируется тот наиболее частый образ, которые вырисуется из всех мельканий. Конечно, более повторяющиеся и неподвижные получат преимущество. Нет никаких критериев, чтобы на этом уровне дать примитиву какое-то предпочтение перед другими. >>для того, чтобы нейроны могли зафиксировать связи с активными рецепторами, что не может произойти мгновенно Предшествующий рост дендритов уже многое предопределяет. А для этого роста важны не мелькания активности, а тот метаболический след, который активность оставляет, так что дендрит будет расти и после недавней активности. >>Дополнительным свойством нейросети, эволюционно возникшем позднее, так как и без него сеть была способна функционировать (иначе на базе чего бы оно возникло, если не на более примитивной нервной системе), является латеральное торможение между активными эффекторами, Вряд ли есть основание считать взаимное торможение поздним приобретением. Тут вопрос спорный. >>связи выстроились равномерно распределенными с одинаковыми весами по схеме шестигранника, как в пчелиных сотах. Я думаю, можно вполне обоснованно предположить, что в природной реализации такое может возникнуть на самых начальных этапах формирования нервной системы. Не стоит делать акцент на шестигранниках. >>Природная нейросеть обучается послойно, формируя постепенно иерархическую структуру распознавания. Есть качественная разница между развитием первичных нейросетей и новой коры. Первичные, наследуемые сети развиваются в последовательности приобретения новой заплатки, а эти заплатки могут быть какими угодно в мутирующей вариабельности. Развитие новой коры идет последовательно, так же отражая новые приобретения (появление нового слоя), но здесь есть определенный порядок расположения эффекторных матриц в слое (перекрытие друг друга профилями активностей и равномерная структура взаимного торможения). Благодарность от: Palarm |
Род: Palarm Infra Real Сообщений: 2458 |
я предполагаю сделать несколько режимов обучения: статический, когда один образ неподвижен, динамический - когда он дергается, мультирежим - когда мелькают несколько. Думаю, надо в итоге еще выводить кол-во показов каждого образа - а потом смотреть что зафиксировалось.
Получается, что первые мелькания задают вектор специализации, а последующие чем ближе к финишу тем больше игнорируются. Это по сути еще один фильтр контрастирования. Если возник повторяющийся образ, он подучит преимущество фиксации не только из за большего накопления веса синапсов и торможения соседей после возбуждения детектирующих его эффекторов, но и благодаря все более предсказуемому росту дендритов до начала этих процессов. Это как бы первичный вектор специализации, который будет усилен как только дендрит свяжется с рецептором и начнется прокачка веса связи.
ОК, уберу, чтобы глаз не замылился этими сотами
Плохо конечно, что я делаю частичные модели нейросети не имея четкой картины в голове как оно все работает. Скорей всего многое потом придется переписывать и переделывать. Твой курс по моим ощущения дал только общие представления. Это как узнать правила, стилистику языка, выучить какие то слова - но до бегло говорить, читать и тем более писать без ошибок еще очень далеко. Собственно обучение только сейчас и началось.
А что ты думаешь по поводу 3 свойств нейросети - это просто философия или действительно что то в этом есть? |
Род: nan - админ Сообщений: 11785 |
Это не столько свойства нейросети, как принципы формирования ее звеньев. |
Род: Palarm Infra Real Сообщений: 2458 |
Думаю испытать в модели самообучения такую решетку. Она проще в реализации и меньше ортогональных искажений, чем в шестигранных решетках. Так же как и ранее все связи с весами показаны, кроме тормозных весов, так как они одинаковы и задаются как свойство слоя. Это в плане наглядности большой плюс. А в плане реализации как интегральной микросхемы дуплексные решетки дают оптимизацию компоновки и экономию материалов - вместо двух слоев один смешанный.
|
Род: nan - админ Сообщений: 11785 |
Выглядит менее сумбурно, чем гексагональная. |
Род: Palarm Infra Real Сообщений: 2458 |
Мысли постепенно выравниваются |
Род: Palarm Infra Real Сообщений: 2458 |
Однажды прочитал в статье, что немцы сделали спец. покрытие для роботов, имитирующее сенсорную чувствительность кожи. В кратком описании говорилось о неких микро-датчиках с встроенным чипом, которые как то обрабатывают сигнал и передают результат на центральный процессор. Испытания прошли успешно и теперь работают над следующей версией с гибкой подложкой, чтобы "кожу" можно было буквально натягивать на каркас робота. Тогда сразу подумалось - если бы сделать компоновку дуплексной на гибкой подложке - то такая "кожа" запросто могла бы детектировать не просто прикосновения, но "запоминать" конкретный сенсорный рисунок. Например, робот мог бы запоминать хозяина через рукопожатие или обнимашку - инициализация "протокола служения" при первом включении. Ведь первичная обработка (разбиение, контрастирование) происходит прямо в сенсорном слое, без всяких центральных процессоров. А если сделать "кожу" многослойной, добавив несколько слоев для группировки примитивов первого слоя - останется только подключить рефлекторные заготовки для реагирования. Это существенно разгрузит центральный процессор и увеличит скорость реакции, не говоря о том, что отпадет надобность в написании сложных самообучаемых алгоритмов распознавания. |
Род: nan - админ Сообщений: 11785 |
При таком подходе вообще не нужен центральный процессор, только как дополнительный математический модуль. Людям бы таой имплант тоже был бы полезен: считать в уме, сохранять картинки и файлы и т.п. |
Род: Palarm Infra Real Сообщений: 2458 |
Я думаю, по тем принципам построения рефлекторных сетей, что я пытаюсь сформулировать, можно создать их из чего угодно, лишь бы соблюдались эти принципы. Например, как работает распознавание патогенов в иммунной системе белыми кровяными клетками? Может быть, они тоже образуют какую то рефлекторную сеть с динамическими, не фиксированными связями с огромной вариабельностью реагирования? Что позволяет эффективно детектировать бесконечные мутации патогенов. Или как образуются устойчивые симбиозы микроорганизмов? Может быть не так уж и случайно. |
Род: Palarm Infra Real Сообщений: 2458 |
Перелинковал сетку на ортогональную 4х4 и погонял в ней примитивы. Прямые вертикальные/горизонтальные линии не разрываются при контрастировании, потому как детектирующие их эффекторы не связаны друг с другом. А вот фигуру типа крест уже корежит при смене уровня торможения. В принципе все ожидаемо оказалось. Из новой схемы можно сделать вывод, что разрывание примитива на части это частный случай, зависящий от схемы основных/тормозных связей. Здесь ортогональные линии просто контрастируются не теряя основные активные эффекторы, только боковые. Связи на сетке пока изначально установлены, но при обучении они удалятся и должны будут "прорасти" - и тут видимо картина эффекторного рисунка тоже изменится.
Убрал цифры весов связей на эффекторе, как показано было раньше на рисунке. Потому, как вес связи передается от рецептора, а это значит, что он передает один и тот же вес связанным с ним эффекторам, поэтому можно просто одну цифру веса показать на рецепторе, вместо загромождения цифр весов на эффекторе от каждой связи. Но в итоге на эффекторе установятся конечно разные веса связей при обучении, так как они будут созревать не одновременно и на один эффектор приходят связи от разных рецепторов. Кроме того, при визуализации роста весов при обучении, думаю будет эффектно в плане наглядности показать через постепенное изменение насыщенности цвета рецепторов как растут веса связей на связанных с ними эффекторах. Внешне будет выглядеть как проявление изображения при фото-съемке: короткая яркая вспышка контура на сетке - и постепенное "проявление его" как на фотобумаге. |
Род: nan - админ Сообщений: 11785 |
Выглядит более убедительно, но увидеть конечный результат мешают другие цветные элементы. Стоит добавить режим просмотре со скрытыми элементами кроме активных эффекторов, тогда четко будет виден эффект. |
Род: Palarm Infra Real Сообщений: 2458 |
Думал об этом. В плане наглядности схемы связей дуплексная компоновка предпочтительнее. Но для демонстрации спец. эффектов детекторных рисунков при изменении свойств сетки лучше показывать 2 матрицы отдельно. Сделаю 2 режима. Первый как сейчас + график справа, второй - две матрицы: слева рецепторная, справа эффекторная. |
Род: nan - админ Сообщений: 11785 |
На всякий случай уточняю, что желателен режим, когда показываются только активные эффекторы и тогда будет ясно видно как из жирной фигуры начинает контрастироваться более островырисованная. |
Род: Palarm Infra Real Сообщений: 2458 |
Можно в принципе сделать ячейки с белым фоном, тогда будет просто пустой экран. Тыкаешь на него - загорается рецептор, а на соседней матрице эффектор, если веса превысили его порог. Кстати, заметил такую особенность ортогональной матрицы 4х4 - она более чувствительна к изменению параметров для некоторых рисунков. Потому что связей меньше и охват менее объемный. Например если двигать ползунок торможения для фоновой засветки при минимальном пороге, эфекторный рисунок начинает переключаться между двумя вариантами. По сути это генератор двух эфекторный состояний при изменении торможения. Это можно будет использовать в схеме стабилизации, когда надо две реакции типа вперед/назад для последовательного приближения к точке баланса. Вообщем все эти эффекты, если они стабильны, а не случайно хаотично из-за итераций расчета, по сути заготовки для построения различных схем реагирования. И как показала эта новая решетка, конфигурации эффекторных рисунков еще могут быть и цикличными, что дает доп. возможности для схем реакций. В гексогональной такое тоже было, но не так ярко выражено. Видимо потому, что там охват был более равномерен по всем осям, а не только ортогональным.
|
Род: nan - админ Сообщений: 11785 |
Ты же элементы делаешь в виде div, так можно для лишних задать стиль display:none; и они исчезнут. |
Род: Palarm Infra Real Сообщений: 2458 |
Сделал режим с двумя матрицами. Не стал пока скрывать не активные элементы, потому как вылезла одна фигня. В новом режиме связи сохранил от дуплексной решетки - в итоге получилось не совсем гут, потому как кол-во ячеек по вертикали для в исходной дуплексной решетки не одинаково для столбцов - там шахматный порядок. Это приводит к "растягиванию" рисунков по горизонтали. В принципе оно как бы и ладно, важно ведь на эффекторной матрице получить не копию рецепторного рисунка, а их уникальную пару. Но такие "деформации" думается будут сбивать с толку.
Получается, для двухматричного режима отображения придется менять линковку элементов. Но это опять собьет с толку, когда при переключении с одного режима на другой будет меняться эффекторный рисунок - там ведь связи, в том числе тормозные будут другими. Хотя если нарисовать квадрат более "толсто" - то расхождение рисунков при разных режимах уже не столь выражено. |
Род: Palarm Infra Real Сообщений: 2458 |
Есть такое подозрение, что если просто взять два параллельных слоя рецептор/эффектор и залинковать их тупо как они смотрят друг на друга и до ближайшего элемента, куда могут дотянуться - то получим максимально плотную из возможных решетку, только уже не дуплексную, а простую парную, где один эффектор линкуется с 9 рецепторами, и рецептор аналогично с 9 эффекторами. Схема 9х9, + тормозных связей 8. И может статься, вся эта свистопляска с генерациями, мерцаниями пропадет. Возможно дуплексная вундервафля вовсе не такая уж чудная, как мне хотелось бы ее видеть. Точнее она просто более глючная из за более слабого охвата связями элементов. Но в то же время более дешевая в исполнении. Nan в своей демонстрашке так примерно и сделал - две отдельных матрицы без всяких линий связей, и два отдельных массива для каждой. Это показалось мне слишком банальным, но по факту выходит так и надо делать, без всяких выкидонов. Попробую это реализовать в симуляторе. А то что есть пойдет как пример поведения матрицы при различных вариантах линковки элементов. Теперь уже два есть: гексогональная и ортогональная. Осталось сделать просто нормальную Благодарность от: nan |
Род: Palarm Infra Real Сообщений: 2458 |
Ожидания стабильности не оправдались. Двойная решетка 9х9 слишком заторможена. Если изменение порога просто выключает постепенно эффекторы, то изменение торможения выдает намного большую свистопляску. А из за большого охвата эффекторами рецепторов (и наоборот) - эффекторный рисунок при минимальном пороге и торможении получается тоже слишком мощный. Вообщем надо видимо какое то раздумье - какая схема оптимальна. Мало связей - вялая реакция, много - слишком бурная. И в обоих случаях искажения и пляски эффекторов. Я ведь исхожу из того, что параметры в природной нейросети "плавают", стало быть если сетка так чувствительна к изменению порога или торможения, то и детектирование будет такое же глючное. Все таки дуплексы показывали лучшие показатели в плане стабильности, особенно гексогональная. |
Род: nan - админ Сообщений: 11785 |
При большом числе боковых участников эффект должен быть более плавным. Это можно смоделировать на https://scorcher.ru/neuronet/lateral_braking.php |
Род: Palarm Infra Real Сообщений: 2458 |
У тебя там связь между рецептор-эффектор как 1:1, то есть нет охвата рецептор/эффектор. Только торможение использует охват ближайших эффекторов. Поэтому и нет такого шалмана как у меня. |
Род: Palarm Infra Real Сообщений: 2458 |
Вот для примера как детектируют три решетки квадрат при изменении уровня торможения. Шестигранник и квадратная 4х4 просто контрастируют контур с небольшими вариациями, а вот последняя решетка 9х9 отжигает по полной, выдавая целую серию рисунков. Разница между решетками - в схеме связей и кол-во охвата. Причем в схеме 9х9 охватываются только ближайшие элементы, хотя я предполагаю, в реальной нейросети это может быть и второй, и третий круг охвата. Там будет уже много больше комбинаций рисунков. Кстати в конце видео я показал, что решетка 9х9 не видит разницы между точкой и крестом из 4 пикселов - это таки серьезный залет. Получается увеличение связей (охвата) вовсе не улучшает качество распознавание, точнее лишь до какого то момента улучшает, а потом наоборот приводит к глюкам.
И ты еще говорил в этой теме, что тормозные связи устанавливаются изначально перед обучением. Но по какой схеме? С каким охватом?
|
Род: nan - админ Сообщений: 11785 |
Вставочные нейроны с тормозными синапсами созревают в слое наравне с остальными, проявляют свою пейсмеккерную активность и образуют связи с другим активными элементыми. Без какого-то особого порядка. Видимо, их концентрация в слове как-то оптимизируется эволюционным отбором. |
Род: Palarm Infra Real Сообщений: 2458 |
Скорей всего просто чрезмерно заторможенный слой становится глючным в детектировании настолько, что особь выпиливается из эволюционной гонки. Тоже самое про слишком "кустистые" рецептор-эффекторные охваты. Может при совместном обучении они тянутся к созревающим эффекторам, воспринимая их как рецепторы, а при созревании слоя - так же перестают ветвиться и наращивать веса. Вопрос только - почему они не тянутся к настоящим рецепторам. Может созревающий нейрон выделяет специфические хим. маркеры, чтобы с одной стороны не дать нормальным нейронам к нему прицепиться, а с другой - приманить к себе тормозные. То же самое с рецепторами - тормозные нейроны не должны к ним цепляться. Однозначно должен быть регулировщик, разруливающий два потока созревания - и это вполне может быть специальный хим. след.
В плане симулятора тут опять таки надо будет определиться: прописывать ли тормозные связи изначально в виде решетки или так же проращивать при самообучении. Дело в том, что в практической реализации например в виде микросхемы я представляю это так:
в ней изначально проведены все дорожки связей, как основные так и тормозные, но с разрывом, который заполнен спец. веществом, которое в "сыром виде" работает как диэлектрик. При подаче напряжения оно "спекается" и становится проводником с определенным сопротивлением, зависящим от величины напряжения. Процесс не мгновенный, что симулирует время прорастания дендритов. А напряжение на каждый "разрыв" симулирует частоту/уровень сигнала от рецептора. В итоге когда все дорожки "спекутся" получим связи с разными весами.
Поэтому нужна конкретика, если речь о фактической реализации: если прорисовывать дорожки - то по какой схеме, если не прорисовывать - то как соединять элементы? Программным блоком, какими то мудреными нано-веществами, которые буквально "тянутся" как отростки? Имхо, практичнее простой разлиновкой и активацией разрыва, чем ветвить непонятно каким образом. Дуплексная схема будет экономичнее и проще, двухслойная чуть сложнее. Осталось только придумать параметры искусственного слоя, по которым его можно оценивать, и обосновать оптимальный для определенных задач тип решетки. Может это будет отступление от природной реализации, а может природная реализация это просто невозможность в виду ограниченных ресурсов построения изначально разлиновать нужную решетку. |
Род: nan - админ Сообщений: 11785 |
То, куда ветвятся аксоны определяется только генетически, вот как задано у предком данной твори,плюс некая мутационная вариабельность для самых поздних эволюционных структур (ранние очень точно воспроизводятся).
А вот дендриты - да, растут в сторону локальной активности. |
Род: Palarm Infra Real Сообщений: 2458 |
Причина слишком активных переключений сетки при изменении уровня торможения - расчет весов через последовательный обход. На первом рисунке эффекторы 136,147,157,148 активны уже на пороге (0,1) переключения (суммарный вес 0,114). И при повышении торможения они должны были выключиться все 4, но выключились только 2, исказив тем самым эффекторный рисунок. Потому, что расчет весов происходит через последовательный опрос элементов матрицы по возрастанию их номеров, в данном случае это эффекторы в порядке: 136,137,138,146,147,148,156,157,158. И при каждом шаге происходит пересчет веса текущего элемента. В итоге 137 как первый в списке вырубается, оставшиеся элементы лишившись его тормозного влияния подрастают в весах, 146,148 уже не выключаются, а последний из группы 157 вырубается потому, что подросшие в весе 146,148 его задавливают, не смотря на то, что он тоже подрос после выключения 137 (двое против одного). То есть правильнее надо не включать/выключать эффекторы на каждом шаге опроса матрицы, а на шаге итераций: выключать их группами а не по одному. В гексогональной решетке этот эффект слабо проявлялся, а здесь, при таком массированном охвате основных/тормозных связей вылез более явно. Это поправлю. Но опять же это интересно как пример, как легко повестись на множество спец. эффектов, возникающих при сложном взаимодействии нейросети. У меня косяк программный, а там тоже самое может быть из за нестабильности параметров нейронов, ложных связей. Тут тебе и переключения рисунков, и даже генерации колебаний - от всего этого можно напридумывать множество вполне рабочих схем, и вполне может быть, в природной реализации они даже имеются, но... идут в никуда. То есть что то прицепилось к мельтешению эффекторного рисунка, возникла рефлекторная цепочка, которая ни с чем не связана, просто генерит вхолостую. И это отражается на энцефалограмме и вводит в ступор исследователей - чтобы это значило? А ничего это не значит, как свисты и хрипы приемника при настройке волны. Не зная принципа передачи радиосигнала можно легко насочинять "правдоподобных" объяснений, связывающих например свисты с настройкой на частоту. Типа раз всегда чистому звучанию предшествует шипения и хрипы - значит они играют какую то важную роль и без них никак не получится попасть на волну. Вот и получается, что не имея теории, где четко показано, что есть главное, что второстепенное, принципиально не возможно понять принцип действия устройства, и тем более смоделировать и развить его. Исследователи которые этого не понимают подобны обезьяне трясущей пальму. Благодарность от: nan, Клон |
Род: Palarm Infra Real Сообщений: 2458 |
Решил более наглядно проследить, что происходит при активации нейрона, вернее как она происходит в «замедленной съемке». Ведь расчет методом итераций по сути и показывает как бы по кадрам этот процесс, с некоторой погрешностью конечно. И выяснилось, что там такие же «скачки напряжения» как и в самой сетке. То есть суммарный вес эффектора растет не линейно, а в виде колебаний. Это означает, что он несколько раз превышает/падает порог, пока окончательно не устанавливается итоговое значение. Как маятник покачался и успокоился. Это потому, что по мере роста веса меняется равновесие решетки, что им вызывает колебания ВКЛ/ВЫКЛ. То есть эффектор не мгновенно получает итоговый вес, а за некоторый промежуток времени, за который он разряжается серией импульсов. Может в этом причина, почему нейроны реагируют не простым ВКЛ/ВЫКЛ, а короткими сериями колебаний? Потому, что они связаны тормозными связями. Или правильнее сказать нейроны, как генераторы колебаний, разряжаются серией импульсов модулированной по амплитуде частотой, которая зависит от схемы тормозных связей между ними.
На видео показано, что при любом значении тормозного воздействия, как только активируется эффектор, его кривая роста суммарного веса при итерациях становится синусоидальной. Эта кривая - модулирующая для "несущей" частоты, с которой разряжается нейрон при активации.
Конечно, если как в реальном генераторе ввести в модель понятие инертности, то эти скачки можно сгладить. А может и не надо. Может лучше оставить эти неоднозначности состояний эффекторов, из за которых собственно и возникают колебания, чтобы была некоторая неопределенность, отличающая жесткий алгоритм от "свободного".
Еще пришла такая мысль: в квантовом компьютере вместо понятия "Бит" используется "Кубит", который означает не 0 и 1, а все бесконечно возможные значения между ними. То есть логика квантового компьютера заточена как раз на работу с областями решений, "неоднозначностями", которых как все больше выясняется, полно в нейросетях. Правда я не очень понял, как квантовый компьютер выдает в итоге решение, но возможно именно на нем можно будет замутить полноценный ИИ в чисто виртуальном исполнении. |
Род: nan - админ Сообщений: 11785 |
Вот у тебя уже накопилось много эмпирического материала при работе с моделями. Было бы очень полезно обобщить его в перечень выводов, которые следуют их модельных экспериментов: чем ограничены веса вставочных тормозных нейроны, почему они не могут быть слишком большими, и т.п. Т.е. попробуй составить список таких выводов и их обоснование конкретным поведением модельных нейросетей. Это было бы очень полезно и круто. |
Род: Palarm Infra Real Сообщений: 2458 |
Я так и собирался делать. Накапливается экспериментальный материал, и когда возникает некоторое понимание, делаю небольшое обобщение с картинками, моделью. Я это думал для модели самообучения сделать, но опять вылезло много интересного в предварительном и конечно это стоит отдельно изложить. И поправить предыдущие страницы. Благодарность от: nan |
Род: Palarm Infra Real Сообщений: 2458 |
Более наглядная схема пульсаций эффектора при наращивании им суммарного веса. При изменении значения порога и уровня торможения меняется расстановка весов в сетке. На примере эффектора №112 видно как его при этом корежит. В матрице эффекторов что справа мы видим только его ВКЛ/ВЫКЛ, а на самом деле практически перед каждым переключением он выдает серию из 1-2-3 импульсов, то есть он "мерцает". Для общей схемы латерального торможения важны лишь его конечные состояния, но возможно при дальнейшем изучении эти мерцания позволят глубже понять, как происходит решение "неопределенных состояний" переключения. А может и нечего не даст - просто флуктуации, которые гасятся инертностью нейрона и ни на что не влияют.
Интересно, что аллегория с настройкой приемника оказалась достаточно близкой к реальности. Нейросеть действительно шипит и свистит при "настройке на волну" - изменении ее параметров до устойчивого состояния. Ведь щелчки пульсаций модулируют собственную частоту разряда нейрона при его активации. Благодарность от: nan |
Род: Palarm Infra Real Сообщений: 2458 |
Оказывается идея "разрывов" в соединениях микросхем, которую я толкал как вариант реализации нейроплат, не новая. Уже давно пытаются сделать оптические соединения |
Род: Palarm Infra Real Сообщений: 2458 |
Посмотрел на твой пример закольцовки в конструкторе - и сразу вопрос: если 4 нейрона образующих закольцовку лежат в разных слоях, то как образовалась обратная связь между 4 и 1? Разве возможно прицепиться снизу вверх к созревшем слою? Думаю что нет. Стало быть должен быть специальный коммутатор, который это делает и который не показан на схеме. И думаю что зря. Иначе возникает ложное представление, что нейроны могут как угодно связываться, хотя на самом деле они вяжутся строго по слоям по мере их созревания. Или это не везде и не всегда? Вообщем, если коммутатор условно не показан, то думаю имеет смысл подумать, как его ввести в схему. Может в виде специального элемента. Но самый интригующий вопрос: а как вообще возникают такие закольцовки? Почему нейроны разных слоев связываются в определенной последовательности? |
Род: nan - админ Сообщений: 11785 |
Конструктор нейросхем предназначен именно для простейших, наследственно мутированных цепей. Имеется в виду, что никакой новой коры еще нет. И связи могут быть вообще какими угодно, .в том числе закольцованными, если это окажется в чем-то полезным. Т.е. та демо-схема - не модель круга А.Иваницкого, от вторичных зон новой коры, к образам ассоциативной, через коммутатор гиппокампа, замыкающего выход образа со входом распознавателей гомеостатической значимости, который определяют контекст примитивам вторичной зоны новой коры и, тем самым, активируют вход примитива. |
Род: Palarm Infra Real Сообщений: 2458 |
Получается, что твоя, что моя модель показывают простейшую организацию нервной системы 1 уровня. В них принципиально невозможно показать ни вторичные, ни тем более третичные зоны новой коры. Для этого нужно вводить специальные модули типа гиппокамп, лобные доли и т.д. И потом еще раскрывать их устройство, которое для меня сейчас совершенно не ясно, в смысле конкретной внутренней схемы соединений. |
Род: nan - админ Сообщений: 11785 |
В первую очередь этот конструктор сделан как игровой способ развить схемотехническое мышление, не рисовать схемы на бумажке,а творить в удобной, даже прикольной среде. Конечно же он не позволяет создать модель столь эволюционно отдаленных дополнений как новая кора со связями с лимбической системой, с рефлексами мозжечка, с системой обработки новых ситуаций в лобной коре. |
Род: Palarm Infra Real Сообщений: 2458 |
Я их скорее воспринимаю как эскиз механизма, где показана его принципиальная схема работы. На его основе нужно спроектировать "рабочий чертеж". Сложность тут в том, что связи и веса должны "протянуться и расставиться сами". То есть инженер-нейротехник создает многослойную матрицу-заготовку и определяет какими внешними воздействиями прошить в ней нужные связи и веса. Так надо делать потому, что иначе не получится встроить модуль в уже готовую нейросистему как апгрейд. Он должен после рецепторной активации "развернуться" и приобрести нужный функционал. Иначе придется всю нейросеть перепроектировать при каждой модернизации. Потому, что в ней заложен принцип послойного созревания и встраивание нового модуля по сути имитирует созревание и специализацию новой группы нейронов на базе существующих слоев.
Интересно, насколько такое предположение окажется близким к реальному и по какой методике будут проектироваться нейроплаты? Ясно, что не методом тыка и не простым разведением дорожек "как надо". Потому, что никто не сможет сказать как конкретно в этой нейросети "надо", чтобы заработало и не конфликтовало с предыдущими модулями - стало быть встраиваемые модули должны как то самонастраиваться. |
Род: nan - админ Сообщений: 11785 |
Точнее было бы сказать, что не просто послойно, а в последовательности эволюционных нововведений, и слои в новой коре - частный случай этого. Но еще до новой коры есть очень немало последовательностей созревания, отслеживающих этапы эволюции мозга данного вида и здесь очень немного надежных данных исследований. Сделать эмулятор таких этапов развития - значит сделать модель мозга. Это - очень круто, неподъемно круто. Но можно сделать имитатор только нескольких или даже одного такого периода развития. Он может немало прояснить практически работающей моделью особенностей и принципов организации ветвления дендритов в сторону активностей рецепторов, установления синапсов и формирование их проводимости. У меня пока нет потенции делать такой эмулятор по очень многим причинам, в частности недостаточно оптимизма по востребованности. |
usr Scorcher God Сообщений: 520 |
nan, почему ты не выложишь симулятор на github? Мы могли бы улучшать код. |
Род: nan - админ Сообщений: 11785 |
Могу тебе дать исходный код, если хочешь. Но не обещаю, что буду обновлять версии на сайте, разве что сделаешь что-то очень полезное. На внешние ресурсы распыляться не буду. |
Род: Palarm Infra Real Сообщений: 2458 |
Я думаю, дальнейшее развитие конструктора такое: |
Род: nan - админ Сообщений: 11785 |
Что-то я не загорелся... :) |
usr Scorcher God Сообщений: 520 |
Давай, я посмотрю, как всё устроено. |
Род: nan - админ Сообщений: 11785 |
|
Род: linuxoid Sr. Poster Сообщений: 106 |
Можно просто добавить возможность вставлять одни схемы внутрь других, чтобы не перерисовывать всё, хотя вариант с объявлением блоков наверняка будет более оптимален по использованию ресурсов. |
Род: Palarm Infra Real Сообщений: 2458 |
Блок это как бы условное обозначение, типа значка микросхемы. Например, ты нарисовал схему с элементом XOR, обозначив его как кружок. А внутри него по идее, должна быть другая схема, вроде этой, где заложена определенная логика работы, по которой на выходах появляются соответствующие уровни. Это просто для меньшего загромождения чертежа элементами. Стало быть вместо кружка в текстом XOR можно было бы вставить из библиотеки базовый элемент XOR с двумя входами и одним выходом. Аналогично можно насочинять множество типовых решений-нейросхем, которые потом применять в виде библиотечного элемента. Благодарность от: nan |
Род: Palarm Infra Real Сообщений: 2458 |
Сделал пример моего понимания принципов построения самоадаптирующихся нейросхем. Принципиальное отличие от привычного рисования блок-схем - построение нового слоя только после созревания предыдущего. То есть строится первый фрагмент "Сытость-Голод" и запускаем симулятор реальности, чтобы он прокачал веса связей. Так как он согласно сценарию будет возбуждать их поочередно, сформируется логика ИЛИ. Аналогично для второго блока "Съедобно-Не Съедобно". Оба блока возникли путем случайных мутаций, в нашем случае - их просто нарисовали, сэкономив тем самым несколько миллионов лет случайных тыков. Потом добавляем блокирующую и новую связующую связь между блоками (которые тоже случайно-эволюционно возникли) и запускаем симулятор, прокачивая связи. Теперь уже рецепторы Голод/Съедобно должны активироваться одновременно, тогда возникнет связь И. Симулятор пока виртуальный, в голове, но думаю, если прокачивать веса у простейших блоков и их связок - так оно и будет в реальности. Чем проще блок, тем больше вероятность его случайного возникновения - это ведь тоже важно учитывать при ответе на вопрос: как такое могло нарисоваться само? И этого же правила надо придерживаться конструируя нейросхемы - прокачивание весов у сложной схемы приведет к множеству вариантов ее адаптации. Так происходит развертывание схемы - ее постепенное усложнение. Это похоже на проращивание семени - положил в подходящий грунт, создал нужные условия - оно начало само расти. Нейроинженер периодически вмешивается, имитируя процесс эволюции и раскручивание ДНК, добавляет связи, меняет внешние условия - задает векторы разворачивания фракталов нейросети.
Проблему графической запутанности связей можно пока решить просто разбивая схему на фрагменты. Но тогда надо обязательно указывать имя элемента с идентификатором, то есть не просто R, а R1, R2 и т. д. Потому что в разбитых на части схемах будут дублироваться элементы с одинаковым номером, что показывает, что на самом деле это один и тот же элемент показанный в разных частях. Их можно соединить дополнительной связью, которой на самом деле нет, это как бы связь разрыва схемы. Может ввести такое понятие и изображать ее в виде пунктирной линии - то есть при создании связи дать возможность выбора: основная или разделительная. Еще простое дополнение при такой разбивке: добавить возможность ввода надписей над фрагментом, чтобы пояснять разделение слоев и фрагментов. Благодарность от: nan |
Род: nan - админ Сообщений: 11785 |
Надо будет внимательно посмотреть, когда освобожусь... |
Род: Palarm Infra Real Сообщений: 2458 |
Вот пример схемы с разбивкой на слои-фрагменты. Получается вполне читабельно даже без ортогональных связей. Осталось только добавить симулятор реальности в виде последовательности активации рецепторов - и получится уже настоящий полигон для испытаний нейросхем. Чтобы уж совсем замкнуть жизненный цикл и по настоящему начать оживлять химер, нужно добавить сценарий активаций слоев (в какой последовательности они подключаются) и для каждого слоя свой сценарий активации рецепторов при самообучении - какими рецепторными рисунками ее засвечивать. Это позволит наглядно-экспериментально определить, при каких условиях какую схему можно прокачать, а какую только зашить в геноме. Но это можно на далекое потом. Хотя я пока что смутно представляю, как через геном можно задать нужное ветвление - там же только белки кодируются.
А пока, на примере этой схемы тут просятся две несложных доработки:
Это позволит разносить схему на части, сделав ее намного читабельнее и симулировать реальность. В данном случае если например на первом шаге сценария написать R1, то на втором уже будет только R4, потому, что насекомое дернуло голову вверх и активировался рецептор R4. То есть сценарий показывает как будут активироваться рецепторы в реальности - если конечно правильно расписать все строки. А если еще добавить возможность создания списка сценариев, тогда в этой схеме можно будет наглядно показать различные варианты ситуаций воздействия. |
Род: nan - админ Сообщений: 11785 |
Добавил возможность вставки из сенса-заготовки схемы в текущий сеанс. Чтобы вставить содержимое какого-то сеанса (заготовки) в текущий сеанс, нужно выбрать из выпадающего списка сеанс заготовки и нажать OK. Будет вставка схемы сразу внизу самого последнего элемента. Надо будет еще сделать выделение нескольких нейронов для совместного перемещения мышью на новое место, чтобы не париться с каждым в отдельности. |
Род: Palarm Infra Real Сообщений: 2458 |
Это хорошо, теперь можно делать вставку типовых схем типа И, ИЛИ, НЕ, ХОR - из них и собирать как из кирпичей новые схемы. Только по идее, надо еще придумать как их можно делать публичными, чтобы любой мог воткнуть их в свою схему. В старых схемах косяк вылазит А сложно сделать перемещение поля с весом так, чтобы общая линия разламывалась бы? Тогда не надо будет ортогональных линий связей. Такое разламывание позволило бы разносить линии связей, уменьшив их загромождение. |
Род: nan - админ Сообщений: 11785 |
Поначалу в выпадающий список загонял вообще все сеансы, но потом ограничил только своими. Если нужно можно скопировать чужую схему себе и использовать ее.
Ничего не понял... |
Род: nan - админ Сообщений: 11785 |
Исправил. |
Род: Palarm Infra Real Сообщений: 2458 |
Чтобы линии связей можно было "разламывать" потянув за поле веса
|
Род: Palarm Infra Real Сообщений: 2458 |
теперь в другом месте
|
Род: nan - админ Сообщений: 11785 |
У меня не воспроизводится. Попробуй обновить кэш.
Понятно, поставлю в очередь, подумаю... но это не просто. |
Род: nan - админ Сообщений: 11785 |
Исправил. |
Род: Palarm Infra Real Сообщений: 2458 |
Я все не могу в толк взять, что ты имеешь в виду, уже не первый раз говоря о том, что распознавание таких свойств примитивов как толщина, угол наклона и т.п. происходит в новой коре. Получается, когда этой коры не было, ничего из этого не распознавалось? Или распознавалось иначе, например как я показывал на примере решеток, где происходит автоматическое разбиение на более простые части при контрастировании, и группировки таких фрагментов на следующих слоях? Например, ты пишешь в своем примере распознавания цифры: Хотя, в принципе, такой распознаватель и мог появиться в ходе эволюции простейших нейросистем, но настолько специфичные распознаватели формируются по другому принципу, в ходе индивидуального развития организма, на уровне новой коры мозга. Имхо, тут правильнее было бы сказать - распознавания образа цифры, которое конечно же только в новой коре происходит, так как требуется подключение индивидуальных моделей восприятия. В то же время в первичных слоях происходит разбиение, дефрагментация и группировка примитива на простейшие составляющие. Это позволяет определить, то объект содержит в себе что то "круглое", "прямоугольное", "наклонное" и т. д. Названия взяты в скобки потому, что на самом деле определяются обезличенные группы без каких то бы то ни было оценок, просто документируется наличие признаков, отличных друг от друга. И чтобы среагировать на них, нужна хоть какая то оценка, хотя бы гомеостатическая значимость или примитивная оценочная. Это даже самому можно наблюдать, когда видим какой то непонятный объект, то сначала детектируем его какой то общий грубый признак, например форму, чувствуем тревожность или любопытство, а потом (при подключении лобных долей) понимаем, что в нем что то "угловатое", "кругловатое" - или сразу находим нужный образ. То есть предварительная оценка делается еще при помощи мыслительных автоматизмов. А то получается, образ объекта без новой коры вообще не возможно воспринять.
|
Род: nan - админ Сообщений: 11785 |
Образ, т.е. распознаваттель сочетаний признаков восприятия, связанный с гомеостатической значимостью (и тем самым обеспечиваемый контекстное распознавание) - термин, характерный только для ассоциативной заны коры. У насекомых распознаватель цифры может сформироваться, но совершенно без контекста, т.е. всегда будет активным при данном сочетании признаков восприятия, независимо от состояния гомеостаза. И такое сочетание, чтобы оно появилось за счет наследственно переданных предопределений - очень специфичное образование, т.е. цифра должна дать какие-то преимущества у многих поколений вида, чтобы отработало случайное вариация мутации и закрепилась в виду его преимущества. |
Род: Palarm Infra Real Сообщений: 2458 |
С этим теперь более менее ясно. Другой вопрос: геном и внешние факторы определяют свойства организма. Цвет глаз, волос и т.п с этим все понятно. Но вот как через геном синхронизируется в каком месте тела какие клетки появляются и правильно связываются. Когда стал искать на эту тему, то пришел к выводу, что нет устоявшегося понимания. Безусловно геном в этом учавствует, но по поводу конкретных механизмов есть много теорий. Я так понял, что основная идея - клетки как то взаимодействуют друг с другом, споры о механизмах такого взаимодействия. Напрашивается теория децентрализованной нервной системы, которая скорей всего идет от древнейших сообществ клеток, предтеч многоклеточных. То есть колонии клеток постепенно синхронизируя свою жизнедеятельность и отрабатывая механизмы такой синхронизации постепенно формировали устойчивые колонии, а впоследствии многоклеточный организм, который вобрал в себя удачные наработки синхронизации - предтечи нервной системы. Она была не только децентрализованной, но и с динамическими связями. То есть клетки выделяют какие то вещества, которые через водную среду попадая к другим клеткам провоцируют их специфическую реакцию, например включают/блокируют гены. Это пара рецептор-эффектор. Такая "динамическая нейросеть" способна детектировать простейшие примитивы, через дефрагментацию и контрастирование. И она вполне может синхронизировать деление клеток. И множество других функций, например формировать иммунный ответ. То есть идеи моих "решеток" под разными вариантами высказывались многократно, только по моему никто еще не пытался рассмотреть их с позиции схемотехники, просто составив их в виде простейших взаимосвязанных структур, добавив туда тормозных связей. И тогда пазл складывается. Такие схемы самые древние и по прежнему очень широко распространены в живых организмах.
|
Род: nan - админ Сообщений: 11785 |
Суть твоего предположения в том, что с самых древних нейросетей в них сразу универсальный единицей оказывается решетка нейронов? т.е. вся нейросеть состоят только из таких решеток? И даже у бабочки все управляется не отдельными нейронами, а только решетками нейронов? |
Род: Palarm Infra Real Сообщений: 2458 |
Бабочка это уже сложный организм, а я про колонии клеток и каких то примитивных многоклеточных, где не было нервной системы в привычном нам понимании специализированных клеток, а все таже колония, просто устоявшаяся настолько, что жить им стало выгодно вместе. Я думаю уже у них была примитивная "нервная система" по схеме когда одна клетка выделяет вещество, а другие специфически на него реагируют. Это дало им фору в эволюционной гонке.
Я думаю даже такая примитивная схема взаимодействия могла вполне себе успешно функционировать и в сильно усложненном виде присутствует сейчас у всех животных. Клетки по прежнему "общаются" и взаимно синхронизируются параллельно или совместно с нервной системой. Изначально была колония клеток, способных влиять друг на друга. Дальнейшее усложнение сообществ в виде многоклеточного потребовало уже конкретной специализации, а не общего реагирования всех клеток.
С позиции эволюции все очень даже логично выглядит. И то что клетки продолжили развивать свою "коммуникабельность" в уже многоклеточном тоже думаю ничего криминального не содержит. Я собственно почему вопрос поставил: вот если я соберу решетку типа 100х100, имитирующую связи всех со всеми, как если бы какие то вещества выделялись клеткой и служили бы катализаторами/деактиваторами для каких то процессов в других клетках, и такая схема выдала бы мне сотни уникальных пар РЭ рисунков, при движении ползунков параметров, что имитировать бы разные химические вещества выделяемые клеткой - что бы это значило? То что такая вроде бы суммбурная нейросеть действительно может быть в реальности и функционирует? |
Род: Palarm Infra Real Сообщений: 2458 |
В чем собственно преимущество колонии с "нервной с системой" и просто кучей клеток? В том, что "нейро-колония" способна к сложным реакциям, принципиально невозможных для отдельных клеток. Чтобы организовать простейшую нейросеть нужны два типа элементов: рецептор и эффектор. И какой то способ активно/тормозных связей между ними. В простейшем случае рецептор/эффектор это одна и та же клетка, а связь - хим. вещества выделяемые в окружающее пространство. Подбор нужных веществ и реакций - дело эволюции.
Имхо, это была главная причина, почему вообще возникли колонии клеток. А усложнение их реагирования запустило эволюцию в сторону все большего усложнения и как результат появления специализации клеток, уже не способных жить вне колонии.
Можно конечно все привычно списать на миллионы лет эволюции и случайные удачные мутации. Но мне такой подход не нравится, потому как похож на уход от ответа: что заставило клетки объединяться, в чем была фора?
Но все эти мысли могут иметь смысл, если решетка 100х100 покажет себя так, как я предполагаю. А если это будет какой то хаос - тады ой. |
Род: nan - админ Сообщений: 11785 |
Кажется очень сумбурным и надуманным. То, что клетки взаимодействует с помощью веществ - бесспорно, причем это многоуровневый процесс, высшим уровнем является гормональная регуляция. Но что за решетки так и не понятно. Это нужно конкретизировать, иначе сказанное не срастается в определенный смысл. |
Род: Palarm Infra Real Сообщений: 2458 |
Клетка выделила вещество, оно воздействует одинаково на другие клетки. Получается связь один рецептор на условно 100 эффекторов. Подвергнувшиеся воздействию клетки в ответ тоже выделили вещества и они так же воздействуют на другие клетки. Вещества могут чего то запускать или блокировать. По сути это схема связей 1 ко многим между клетками, где как таковой связи в жестком соединении нет. Поэтому я и назвал ее динамической решеткой. Гормональные регулирование это уже позднее приобретение для многоклеточных и это централизованное управление, где не клетки между собой, а нервная система через гормоны их регулирует. А в простейшем и думаю более древнем исполнении это была децентрализованная система регуляции между клетками. Как то же им надо было взаимно реагировать. Я предположил, что именно это была главная причина, зачем они вообще объединились - совместная синхронизированная реакция. Объединенные активно-тормозными связями клетки способны более сложно реагировать, в этом их фора. |
Род: nan - админ Сообщений: 11785 |
Ты говоришь так, как будто может быть возможна организация связи все со всеми через зим. вещество, но для этого 1) нужно столько уникальных веществ, сколько клеток, иначе связь будет неспецифической и 2) у всех клеток должны быть рецепторы, настроенные на все эти вещества и так же специфический ответ на каждое из них. Этого в природе нет. |
Род: Palarm Infra Real Сообщений: 2458 |
Под специфическим реагированием я имел в виду, что клетки все одинаково специфически реагируют на хим. вещество, а не каждая своим особым образом.
Для себя я понял, что пока что нет однозначного ответа, как гены задают сценарий построения организма. Скорей всего тут много всяких механизмов, в том числе и возможно какой то механизм взаимовлияния клеток друг на друга. Мне представляется, что такое сложное построение обязательно должно сопровождаться корректировками чуть не каждом этапе, должна быть синхронизация деления клеток и задаваться вектор направления их роста. Как все это "зашито" в геноме - не представляю. Твое уточнение в статье про наследование признаков, что внешняя среда корректирует сценарий лишь частично позволяет углубить понимание, что не только геном тут рулит.
Вообщем наверное не стоит углубляться в эти механизмы, чтобы внести полную ясность, как конкретно удается закодировать рост аксонов в нужном направлении и чтобы при этом они сцепились с нужными нейронами. Есть наследственно закрепленные связи, есть приобретенные. Это факт бесспорный, от него и надо плясать в плане изучения нервной системы. Потому, что погружение в конкретные механизмы, не относящиеся непосредственно к этой теме очень сильно отвлечет и результатом скорей всего будет просто понимание, что определенности в этом вопросе пока что нет. Мне вчера знакомый по этому поводу сказал, что его брат, серьезный ученый-медик в области крови, как то в разговоре по поводу своей научной деятельности сказал, что не смотря на все его ученые степени и многолетний исследовательский опыт для него по прежнему не постижимо, как возникла клетка, почему она начала делиться и т.д. В смысле, что нет полной ясности. |
Род: nan - админ Сообщений: 11785 |
Вполне таки есть.
да, не стоит погружаться в конкретику природной реализации, хотя она многое подсказывает. Благодарность от: Palarm |
Род: Palarm Infra Real Сообщений: 2458 |
Я все более склоняюсь к мысли, что в модели послойного самообучения первый слой не нужно обучать. Потому, что его задача - просто разбить рецепторный рисунок на фрагменты, чтобы потом их можно было сгруппировать на втором слое, начав тем самым определять признаки детектируемого объекта. А для этого оптимальным будет просто сделать его в виде равновесной решетки (с одинаковыми весами связей) - как если бы слой был обучен фоновой засветкой. Я подозреваю, что в природной реализации происходит нечто подобное, например рецепторы при созревании тоже имеют стадию "пейсмейкерной активности", когда они просто хаотично возбуждаются вынуждая созревающие нейроны первого слоя выстраивать к ним связи, которые в конечном итоге все более структурируются и выравниваются. Я уже приводил аллегорию по этому поводу: если начать красить забор шлепая по нему хаотично кистью, то итоговый результат будет сплошной закрашенный забор. И возникает вопрос - а не проще было бы просто выплеснуть ведро краски на забор? Я думаю, примерно так и устаканилось эволюцией.
Но это касается только первого слоя. На втором уже никаких решеток и равновесных связей - там уже происходит группировка тех активностей первого слоя, которая возникает как отражение реальности. А первый слой - это просто "разлиновка на сектора" рецепторного рисунка, которую лучше сделать равномерной. Возможно конечно, что ничего такого нет, может просто потому, что это довольно сложно и глючно, закодировать не предрасположенность, а конкретное ветвление дендритов. Но все равно, при искусственной реализации лучше сделать так - такое вот ИМХО. |
Род: Palarm Infra Real Сообщений: 2458 |
Хочу уточнить свое понимание, как в природной реализации происходит группировка сигналов с первого слоя. Имеется в виду, когда первый слой эффекторов детектирует например вертикально стоящую швабру, выдав какой то эффекторный рисунок, где присутствуют вертикальные отрезки. Каким образом на втором слое может произойти сведение сигналов от этих групп эффекторов на вход нейрона второго слоя по логике ИЛИ? Чтобы увидев другую швабру, он так же активировался, показав тем самым что в ней есть какое то кол-во "вертикальности".
Я представляю себе это так: в момент созревания второго слоя должны быть поочередно показаны в разных местах сенсорной матрицы вертикальные объекты. Чтобы при установке связей с созревающим нейроном второго слоя каждая из них была прокачана до уровня выше порога. Но никто ведь не будет специально расставлять швабры - оно должно получиться как то само. Стало быть, нужно чтобы был механизм привлечения внимания именно к ним, к вертикальным предметам. Он в свою очередь так же не может кем то направляться (мы ведь рассматриваем самообучение без учителя). Остается только один вариант: первая швабра должна быть зафиксирована для экспозиции просто как первый в жизни объект, выделяющийся на общем фоне. Когда попадется вторая, частично активируются уже установленные связи, возбудив обучаемый нейрон, который должен запустить рефлекс привлечения внимания. То есть активация на созревающем втором слое нейрона должна означать "увидел что то знакомое" - и автоматическую фиксацию для "уточнения" - протягивания новой связи к тому же нейрону, что возбудился. И так постепенно должно установиться, что активация в разном месте рецепторного поля групп нейронов должна активировать один и тот же нейрон (или группу) на втором слое - что и будет означать выявление общего признака.
Для искусственной реализации можно поступить проще: показывать специальные настроечные таблицы, чтобы четко зафиксировать варианты группировок примитивов. А может и в природной нейросети что то похожее происходит на стадии внутриутробного развития? Может там тоже каким то образом при созревании второго слоя ему "показывают" какие то простые примитивы путем возбуждения сенсорной матрицы по определенной схеме? (Первый слой тогда должен быть обучен фоновой засветкой). И тогда распознавание вертикальных линий после рождения будет происходить сразу на более высоком уровне.
Вообщем вопрос в том, как обучать второй слой для группировки признаков: через спец. таблицы или с подключением механизма захвата внимания, который еще надо придумать? |
Род: nan - админ Сообщений: 11785 |
У тебя возникает много вопросов. С одной стороны это хорошо, раз есть интерес, их генерирующий. Но ты как бы пытаешься найти систему "с нуля", за одну итерацию. Вряд ли ты сможешь прийти к системе так быстро с нуля, не через десяток лет... Да, слои первичных распознавателей новой коры вообще обходятся без учителя и без привлечения внимания к формирующимся примитивам. Хотя цепочки удержания образов уже тоже начинают формироваться. Все происходит куда проще, без лишних сущностей. Первый специализированный слой, каким бы хаотичным он не получился, уже отвечает коррелировано на поступающие сенсорные сигналы. Это добавляет к первичной сетчатке более укрупненные, дополнительные к глазу сенсоные элементы уже более высокого уровня (как в косп.программах). На основе первого слоя корреляторв действительности, так же ворзникет еще более специлизированные, более укрупненные корреляты, всякий раз, когда есть то,повторяющееся, что может быть зафиксировано. И т.д. Пофиг вертикальные ли это линии или еще какие-то примитивы. Главное то, что эти вторичные сенсоры дополняют возможности распознавания элементов внешней среды. И когдпа в итоге мы сходу распознаем чье-то лицо - это и есть выигрыш в появлении такого вот специфичного сенсора. И у утят возникает возможность тут же зафиксировать основные признаки мамы-утки. Помнишь проследовательность: до глаз были даже не фасеты, а просто несколько светочувствительных точкек. Они давали достаточно важные корреляты действтельности типа затемнение со стороны данной точки. Потом появились дополнения сенсоров в виде фасет, потом сетчатка глаза с фокусировкой - чт позволяло строить управления по вполне четким контурам на сетчатке. Потом пошли дополнения уже на уровне самой нейросети в виде распознавателей примитивов. Все слои первичной новой коры - это просто дополнаяющие и все более специализированные сенсоры к глазу, которые возникли именно для той среды, в которой развивалась особь (вот в чем их преимущество). И в таком смысле - назначении можно рассматривать вообще все в мозге со стороны воспричятия. |
Род: Palarm Infra Real Сообщений: 2458 |
Я предполагаю, что первый слой формируется в виде решетки потому, что создать такую решетку не представляет сложности. Это же простой фрактал: если каждый нейрон будет тянуть пару связей под 90 град - получим ортогональную решетку, если под 60 - гексагональную. Если добавить сюда фоновую засветку как стадию формирования слоя вместо обучения - первый слой можно создать быстро и практически сразу со слоем рецепторов. В этом может быть эволюционное преимущество. Раз ты говоришь, что тут даже хаотичные связи ничего принципиального не рушат (с чем я в принципе согласен), значит у тебя тоже нет принципиальных возражений к такому подходу: сделать первый слой решеткой и засветить ее, выставив равномерные связи? У меня еще довод в пользу такого подхода: технически проще сделать симулятор в виде структурированных связей, как равномерно, а не хаотично разлинованную плату. В принципе, если без разницы как она будет разлинована, этого уже достаточно, чтобы принять схему решетки для первого слоя как базовую
Выделение закономерностей согласен, происходит автоматически уже за счет того, что повторяющиеся активации нейронов способствуют их более быстрой специализации. Но на втором слое как я понимаю должна происходить группировка активностей первого слоя, что означает формирование распознавателей по логике ИЛИ. Это возможно только в случае, если эти активности будут активироваться поочередно так, чтобы связи от них успели прокачать веса до уровня выше порога. Иначе опять будет логика И, что по сути означает просто уменьшение кол-во нейронов, детектирующих объект. Что это дает в плане укрупнения распознавания? Вот группировка фрагментов разбитого на части на первом слое объекта дает, она как раз позволяет выделить в разных объектах какие то "одинаковости". Что потом с ними делать я пока еще не знаю, но мне думается логичным шагом после разбиения примитива разложить по кучкам его фрагменты - это будет действительно последовательный шаг в сторону распознавания.
И тут одно из двух: либо происходит захват вниманием активностей первого слоя, либо опять как и ранее это делается специальной засветкой. В любом случае должен быть какой то конкретный механизм, позволяющий сгруппировать мелькающие примитивы на экране первого слоя по логике ИЛИ, причем не какие попало, а по принципу "похожести": вертикальные с вертикальными, горизонтальные с горизонтальными.
Возможно это происходит так: вертикально стоящая швабра на первом слое разбивается на фрагменты - вертикальные отрезки. На втором слое они все захватываются одним нейроном. Другая швабра, другого размера, так же разбивается на фрагменты и они так же должны захватиться тем же нейроном. Это будет возможно, если как то спровоцировать рост связей от новых активностей первого слоя к нему, например за счет его подвозбуждения. Этого можно добиться, если активировать его через поворот головы, глаз так, чтобы активировались уже прицепленные от первой швабры нейроны первого слоя. То есть зафиксировав первый раз объект, во втором случае нужно проверить проекцией образа на всю область сетчатки - активируется ли на втором слое что то из ранее привязавшегося. Если вторая швабра тоже будет вертикальной, активируются фрагменты на первом слое от первой швабры, они активируют нейрон на втором, его активность поддержится некоторое время закольцовкой - к нему и потянутся новые отростки.
Конечно возникают. Мне же нужно собрать конкретно работающую схему, а не просто рассуждать, как где то что то коррелируется и сопоставляется. Где, что, как, почему именно так - любой, схвативший паяльник после чтения теории построения радио-схем начнет задавать такие вопросы, потому как тут уже нужна строгая конкретика.
Ты хочешь сказать, что максимум, что возможно в первичных зонах - это выделить контрастированием контур, а все прочее, начиная с группировки активностей - происходит уже в новой коре? Но что мешает сделать хотя бы группировку уже на втором слое первичной зоны?
По моему я предложил очень простой способ группировки свойств объекта: при детектировании первого объекта фиксируются его фрагменты как "свойства", и затем при детектировании следующих объектов ищется, есть ли среди них зафиксированные ранее. Если да - фрагменты помещаются в эту группу, если нет ничего - создается новая. Собственно группировка происходит потому, что "вертикальный" объект содержит большей частью вертикальные фрагменты, поэтому складывание всех его свойств в одну кучу вносит не слишком много ошибок группировки.
А какой твой вариант организации группировки активностей без учителя? Я не очень понимаю, что ты имеешь в виду говоря об укрупнении коррелятов. Вот смотрю я на свой симулятор. Первый слой генерит эффекторный рисунок, второй его детектирует и разбивает на фрагменты - получаем тот же рисунок, только еще более разорванный. Потом следующий слой. И так пока не останется в теории один нейрон. И в чем тут прикол? Это по сути то же самое, если к каждому первичному рисунку прицепить свой уникальный нейрон, что значит просто запоминать каждый образ и выстраивать от него свои цепочки. Так это можно сделать на первом же слое. Вот группировка активностей на втором слое - качественно другой уровень распознавания, который дает очевидное преимущество, возможность сравнивать объекты и строить дополнительные уточняющие цепочки реагирования, а не просто реагировать на них по отдельности. Это первый шаг к контекстному реагированию. |
Род: nan - админ Сообщений: 11785 |
>>если каждый нейрон будет тянуть пару связей под 90 град - получим ортогональную решетку, если под 60 - гексагональную. … у тебя тоже нет принципиальных возражений к такому подходу: сделать первый слой решеткой и засветить ее, выставив равномерные связи? Вот только нейроны не тянут связи под каким-то определенным углом, им пофиг углы :) так что если тебя идея решеток очень греет, то нужно найти хоть какие-то эмпирические данные по решетчатому формированию связей.
>>еще довод в пользу такого подхода: технически проще сделать симулятор в виде структурированных связей, Вот это – вообще не довод. То как проще природе – может быть совершенно не так, как проще тебе.
>>на втором слое как я понимаю должна происходить группировка активностей первого слоя, что означает формирование распознавателей по логике ИЛИ. Слои данной зоны мозга однотипны, и число слоев – вариации версии для данного вида. Логика или возникает на другом качестве слоев распознавателей. Т.е. слои зоны могут быть все по И а слои зоны рядом могут быть все по ИЛИ, что дает разное качество распознавателей. Я точно не знаю как это организовано, возможно – это свойство “колонок”, где слои по И (распознаватели примитивов) позже сходятся в слои по ИЛИ (распознаватели одного примитива разных версий). >>Возможно это происходит так: вертикально стоящая швабра на первом слое разбивается на фрагменты - вертикальные отрезки. На втором слое они все захватываются одним нейроном. Другая швабра, другого размера, так же разбивается на фрагменты и они так же должны захватиться тем же нейроном. Мне кажется наиболее правдоподобным то, что ассоциации по ИЛИ возникают уже в третичной зоне (хотя отдельные качества по ИЛИ могут быть и в первичных, вот почему. То, что данный образ относится к варианту одного класса примитивов (швабра, палка, колонная, дерево) – дело уже рефлекторного и даже осознанного обучения. Мы постепенно узнаем, что вот эти виды палок относятся к классу швабр, а эти – измерительные линейки. Т.е. нет необходимости сразу на уровне первичных зон пытаться решать проблему инвариантности образа. |
Род: Palarm Infra Real Сообщений: 2458 |
Так я ориентируюсь в первую очередь на практическое изготовление. Прямые линии проще сделать на станке чем сплайн, построить фрактальную структуру проще чем хаос линий. В природной реализации конечно может быть иначе, но зачем повторять за ней, с учетом что у нее может просто тупо нет возможности чертить прямо. В самом начале идеи своих решеток одним из первых доводов было то, что возможно, такая решетка - это то, что получилось бы у природы при идеальных условиях. Но их нет - и мы имеем сильно покореженное нечто, что очень отдаленно напоминает ячеистую структуру. Кстати, как оказалось, тема решеток - давно заезженная. Если прогуглить ЯСН (ячеистые структуры нейросети) - там жуть-кошмар каких формул и теорий вывалится. Ячейки - первое, что приходит в голову при слове нейросеть, и естественно, не мне первому оно пришло. Вообщем, если ты принципиально не возражаешь против ячеистой схемы, но не согласен, что так оно прямо в природе все разлиновано - то я разлиную ее так просто потому, что так красивее и технически строже будет. И в качестве компромисса примем пока, что так будет только на первом слое, где как ты сам говоришь, совершенно пофигу как там что связано, один хрен будет генерить уникальные пары рисунков. Как связалось, так и слава богу.
Если на втором слое сводить логику к одному нейрону, то уже там придется объединять связи в пучки. Иначе как связать активности в разных частях первого слоя. Вообщем если у тебя нет уверенного ответа, имеет смысл попытаться придумать какой то способ группировки на втором слое, вдруг получится. Или что нибудь неожиданное придет в голову.
Ты забываешь, что нервная система развиваясь эволюционно позволяла нашим предкам решать наши задачи как то иначе, проще, в "урезанном" по сравнению с нынешним варианте. Всякий механизм имеет свои более упрощенные варианты, в том числе распознавание признаков. Например, чтобы произошел переход от прикрепленных организмов к ползающим, должны были появиться детекторы движения, сканеры пространства, регистры сдвига для организации цикла перемещения. Они не могли возникнуть одномоментно все сразу, но возникая поочередно, работали выполняя свою функцию в определенных условиях. И очень может быть, что это так и осталось, а сверху уже прибавился более продвинутый механизм. Я подозреваю, что в наследие от предков досталось множество таких рудиментов, ведь как то же они жили миллионы лет не имея новой коры. Должны быть какие то "промежуточные" варианты решения задач классификации, они реализованы в первичных слоях и служат подготовительными для более сложной классификации.
Можно еще так рассудить: если обнаружится простой способ частично решать какие то задачи классификации в первичных зонах, с большой вероятностью можно сказать, что он как минимум использовался ранее и возможно продолжает использоваться сейчас. Причем может статься, что имеет место "многократный пересчет": задача может решаться по старому, потом несколько раз пересчитываться по все более эволюционно новому. Почему бы и нет, если процесс идет параллельно и может статься предварительные расчеты большей частью крутятся вхолостую. Это опять же аналогия с хрипами и свистами приемника или гудением трансформатора, сопровождающими рабочий процесс но не несущими никакой полезной нагрузки.
Или так: если нервная система развивалась послойным наращиванием функционала, это означает, что в каждой своей промежуточной стадии она полностью самодостаточная для тех условий, в которых был использован этот функционал. Как луковица, где под каждым снимаемым слоем находим еще один, более "древний", и видим все ту же полноценную луковицу, только меньше и проще. Группировка признаков нужна была уже на ранних стадиях эволюции, потому, что на ее базе возникли более сложные ассоциации - значит она делалась иначе, не так как сейчас с использованием новой коры. Чтобы построить дополнительные ветвления не обязательно сразу придавать смысл и значимость выделенному признаку типа "швабра". Достаточно просто отличать его от другого объекта. И тогда выходит, что простейшие группировки признаков очень древние находки, реализованные на нижнем уровне.
|
Род: nan - админ Сообщений: 11785 |
Вот жаль, что ты не вкурил ключевой принцип организации распознавателей, о котором я писал. Он отсеивает все лишние сущности. Суть в том, что любое дополнение к сенсорной системе, позволяющее выделять определенное сочетание признаков восприятия, может быть использовано с пользой видового и индивидуального преимущества, т.е. для адаптивности. И в этом смысле инвариантность образа не имеет никакого практического значения, т.е. можно рефлексировать на любой конкретный вид швабры или другого образа, не обязательно заготавливать полный набор всех воспринимаемых версий швабры. Главное – чтобы в ключевой момент реагирования была та версия, на которой построена реакция. Это потом появляются модели понимания, в которые постепенно включаются все виды воспринимаемой швабры и то, могут быть случаи, когда ты ее не распознаешь и разные иллюзии, требующие, опять-таки, нового процесса адаптивности к новой ситуации. Никакие механизмы более низкого уровня не могут обеспечить полный набор инвариантов образа. Напомню то, что я писал: слои первичных распознавателей новой коры вообще обходятся без учителя и без привлечения внимания к формирующимся примитивам. Хотя цепочки удержания образов уже тоже начинают формироваться. Все происходит куда проще, без лишних сущностей. Первый специализированный слой, каким бы хаотичным он не получился, уже отвечает коррелировано на поступающие сенсорные сигналы. Это добавляет к первичной сетчатке более укрупненные, дополнительные к глазу сенсорные элементы уже более высокого уровня (как в косп.программах). На основе первого слоя корреляторв действительности, так же возникают еще более специализированные, более укрупненные корреляты, всякий раз, когда есть то, повторяющееся, что может быть зафиксировано. И т.д. Пофиг вертикальные ли это линии или еще какие-то примитивы. Главное то, что эти вторичные сенсоры дополняют возможности распознавания элементов внешней среды. И когда в итоге мы сходу распознаем чье-то лицо - это и есть выигрыш в появлении такого вот специфичного сенсора. И у утят возникает возможность тут же зафиксировать основные признаки мамы-утки. Помнишь последовательность: до глаз были даже не фасеты, а просто несколько светочувствительных точек. Они давали достаточно важные корреляты действительности типа затемнение со стороны данной точки. Потом появились дополнения сенсоров в виде фасет, потом сетчатка глаза с фокусировкой - чт позволяло строить управления по вполне четким контурам на сетчатке. Потом пошли дополнения уже на уровне самой нейросети в виде распознавателей примитивов. |
Род: Palarm Infra Real Сообщений: 2458 |
То есть ты хочешь сказать, что в первичной зоне распознавания возникновение новых слоев это просто продолжение ветвления рефлекторной дуги. Рядом с конечным эффектором появляется новый нейрон, который связывается аксоном с ним и дендритами с активными нейронами последнего слоя, образуя новое ветвление. По какой логике связь - без разницы. На конечный эффектор в итоге приходит новый конец рефлекторной дуги. Они могут все поочередно или вместе его активировать, или какие то старые ветвления дезактивируются если будут редко использоваться. Но вся эта паутина, какой бы сложной она не была, это по прежнему нейросеть первичной зоны реагирования. В ней нет никаких группировок в смысле классификации активностей, просто тупая рефлексия по каким то смешанным И/ИЛИ логикам связей, смотря что образовалось.
Я полагал, сначала надо попытаться придумать вариант, как сделать группировку на втором слое, а потом уже думать, как это использовать. Но получается, что использовать это в первичной зоне никак не получится, потому что это имеет смысл только в случае организации контекстного реагирования, например через переключатель ветвлений. Для этого нужно, чтобы слой, где происходит группировка признаков мог подключаться к любому из слоев первого уровня, но это не возможно, потому что на всех слоях кроме последнего созревающего все нейроны созрели и не подлежат модификации. Стало быть это должно делаться через отдельный коммутатор, где сведены выходы от слоев в один пучок, а управляющий сигнал на переключатель должен поступать из другой нейросети. То есть организовать второй уровень распознавания через выделение признаков в самой себе нейросеть первого уровня не может - это делается внешним управлением.
Второй слой не означает новый уровень распознавания, это просто ветвление того же уровня. Слоев в первичной зоне может быть сотни, но они не меняют логики ее работы. |
Род: nan - админ Сообщений: 11785 |
Первичные зоны работают только на свой специфический сенсор: глаза, слух, обоняние, осязание и т.п., формируя всякие дополнительные заготовки сочетаний признаков реальности – как бы дополнительные фасеты – рецепторы. И все. Только со вторичных начинают подключаться другие сенсорные модальности и, главное – значимость от распознавателей гомеостаза (что и обеспечивает потом замыкание образов в циклы Иваницына). Вот отсюда только и возможно сфокусировать внимание на каком-то примитиве восприятия потому, что значимость как раз и обеспечивает выделение контекста.
|
Род: Palarm Infra Real Сообщений: 2458 |
Это я уже понял, что перепутал ветвления с вторичными зонами. Но тут нужно уточнить: каждая цепочка имеет в конце связь с эффектором. Если возникает новое ветвление, оно получается цепляется параллельно к тем же эффекторам. Это как бы простейший способ организации многовариантности реагирования, который быстро исчерпывается, так как приводит к глюкам, когда эффектор с множеством связей начинает реагировать почти на любой раздражитель. Поэтому оптимум ветвлений в такой схеме поддерживается естественным отбором, а сами ветвления возникают случайными мутациями и при удачном попадании передаются по наследству. То есть модификации рефлекторного реагирования в такой схеме после ее формирования практически нет, все ветвления в ней результат эволюции. А из этого следует, что и обучения там никакого нет. Стало быть, если я буду делать модель обучения первичного уровня, то правильнее будет назвать это моделью этапов эволюционного формирования не модифицируемой нейросети. В конце ее созревания хвосты цепочек цепляются к конечным эффекторам и на этом в первичной зоне все заканчивается. Но начинается для вторичной зоны, потому, что первичная для нее это рецепторное поле. Так?
|
Род: nan - админ Сообщений: 11785 |
Если под эффектором ты имеешь в виду моторные нейроны, то все дело обстоит вот как. Моторные зоны (так же первичная и вторичная) сосредоточены между теменной и лобной частями мозга. Самые первые наслественно предрасположенеы связи идут туда. Но не с первичной или вторичной новой коры. Связь новой коры с мотонейронами идет на уровне третичной ассоциативной зоны, где сходятся все сенсорные образы с выходами на моторные программы действий (безусловные рефлексы). Дополнение в виде ветвлений в третичной ассоциативной образует условные рефлексы. А ветвления в третичной лобной коре – автоматизмы (моторные и мыслительные). |
Род: Palarm Infra Real Сообщений: 2458 |
Это означает, что от каждого слоя первичной зоны идет связь на вторичную. Эти слои ведь и есть "заготовки сочетаний". То есть аксоны слоя первичной зоны тянутся к дендритам следующего слоя первичной зоны, а так же к слою вторичной - как бы 2 параллельных выхода получается: один на следующий слой, другой на вторичную зону. На нее же приходят аксоны от нейросети гомеостаза, и вся эта каша начинает взаимодействовать между собой, контрастировать и выделять итоговые активности. Которые дополнительно с активностями от первичной зоны воздействуют на конечные эффекторы. Вот пример соединения первичной зоны со вторичной (гомеостаз тут не подключается) и их общее воздействие на конечные эффекторы. Получается, что моторные нейроны получают воздействие от 2 нейросетей: первичной и вторичной. Видимо изначально подключается первичная и происходит рефлекторное подергивание мышц, как реакция на активность созревающий нейросети. А когда созревает вторичная - она начинает модулировать активность мотонейронов, синхронизируя ее с гомеостатической значимостью. |
Род: nan - админ Сообщений: 11785 |
Не значит. Хотя и могут быть выходы отдельных примитивов во вторичную, а не только самых уже сложно-сложившихся.
Непонятно, откуда это получается. Со вторичной нет выходов сразу на моторные нейроны, они есть с третичной, ассоциавтиной зоны. |
Род: Palarm Infra Real Сообщений: 2458 |
Если в первичной зоне будет такая схема связей, то будет происходить постепенное укрупнение ассоциаций пока в и итоге не останется один нейрон, реагирующий на все. Стало быть схема строго послойных связей не имеет смысла, если не считывать с каждого слоя активности и где то в другом месте их перемешивать/группировать. А если будет такая, смешанная схема связей - то на выходе уже получим комбинации активностей на слоях. Но возможны ли такие соединения, между нейронами разных слоев? Или может это на самом деле один слой, где нейроны связаны с рецепторами и между собой, что в принципе вполне может быть? Тогда схему из трех зон я представляю так Aona_3.rar |
Род: nan - админ Сообщений: 11785 |
Кроме нарисованных двух нейронов в конце среднего блока, могут быть еще один, связанный с первым и последним предыдущим и еще один, связанный со всеми предыдущими.
В принципе возможны, но как именно это происходит в природе, пока не выяснено. |
Род: Palarm Infra Real Сообщений: 2458 |
То есть смысл "перепутанных связей" в первичной зоне - получить максимум вариантов ассоциаций от рецепторного поля, чтобы потом из этой щебенки во вторичной зоне произвести их группировку, затем перемешать в ассоциативной с гомеостатической значимостью и получить итоговую активность для мотонейронов. Получить сложно-связанные соединения в первичной зоне можно 2 способами: 1. перемешивать их сразу по мере формирования слоев, для этого надо просто запустить специализацию нового слоя чуть раньше того, как предыдущий созрел. Тогда нейроны нового слоя потянут на себя аксоны от не созревших с предыдущего. И думаю, так и происходит. Ведь слой не мгновенно прекращает специализацию, всяко есть период угасания активности - вот тут и происходит перемешивание связей слоев. 2. при помощи специального механизма организовать "связанный с первым и последним предыдущим и еще один, связанный со всеми предыдущими". Если ты про него говоришь, стало быть он есть? Это данные исследований?
Еще подумалось: дуплексные решетки позволяют решить задачу "перемешивания слоев", в смысле для физической реализации в виде микросхемы. Если положить слои-дуплексы друг на друга, то через промежуточный слой-проводник можно организовать контакты между слоями, как это делается в резиновой клавиатуре кнопочных телефонов. То есть внутри дуплексного слоя есть связи рецептор-эффектор, к ним нужно добавить связь между слоями - и получим их "перемешивание", которое думаю сгенерит довольно большой набор конфигураций эффекторных рисунков. Можно даже извернуться и сделать связи не только между соседними слоями, но и более глубокими, как это делается в многослойных платах, через вертикальные перемычки. В любом случае, если задача создать максимум вариаций ассоциаций рецепторной активности - технически думаю это вполне реализуемо уже на сегодняшнем уровне. Нужно только разработать конкретные технологии активации/дезактивации разрывов связей в слоях и способы межслойных связей. Решетки в этом случае - это просто техническая адаптация. |
Род: nan - админ Сообщений: 11785 |
Перемешивание - не самоцель. Важно фиксировать те сочетания, которые реально воздействуют и, значит, могут использоваться. И какие это будут сочетания сильно зависит от того, как организована последовательность созреваний слоев и позволяется ли дендритам последующего слоя проникать сквозь предыдущий к еще более раннему. Но по-любому все это несущественно: важно чтобы была возможность опираться в реагировании на какие-то детекторы признаков. Даже если бы у тебя был единственный рецептор - красная точка, ты бы использовал его. А тут гораздо большее разнообразие. |
Род: Palarm Infra Real Сообщений: 2458 |
В этом все и дело. В ходе эволюции преимущество получили те, у кого была возможность образования диффузионных связей между слоями. Потому, что если будут связи только строго последовательно от слоя к слою по логике И, то все они в конечном итоге сойдутся на одном нейроне и в этом не будет никакого смысла. В первичной зоне происходит как в дробилке разбиение общего рецепторного рисунка на фрагменты. Во вторичной по логике ИЛИ происходит их группировка. В ассоциативной подключаются сигналы от нейросети гомеостаза и происходит суммарная реакция на наиболее активные группы и внутреннее состояние организма. Тут уже явное абстрагирование, так как выделяются "свойства" детектируемого объекта и подключается простейшая внутренняя модель. |
Род: Palarm Infra Real Сообщений: 2458 |
Решил собрать в Солиде 3D-модель искусственной кортикальной колонки. Она конечно не работает как симулятор, это просто модель, но визуально лучше видно связи. С другой стороны, в принципе так можно и физический конструктор сделать, например из пластмассы, чтобы можно было из модулей собирать схемы. А если сделать это по аналогии с радио-конструктором, где соединяются между собой кубики с деталями внутри - получился бы реальный физический прототип.
Зеленые шарики - нейроны, красные - рецепторы. Зеленые связи - основные, желтые - тормозные, они действуют между соседними элементами слоя колонки и между соседними колонками. Вверху колонки выходы с последних двух слоев. Тормозные нейроны не стал делать, так как их задача организация тормозной связи, а ее можно и просто так сделать.
Вообще получается, что предыдущие дела с решетками это были попытки создания одной большой однослойной колонки, где отдельные нейроны детектируют активности рецепторов. Но как оказалось, элементарной единицей в системах распознавания в мозге служит кортикальная колонка, а не отдельный нейрон. В то же время думаю, предыдущие выводы по поводу поведения решеток при разбросе параметров справедливы и для колонок - если рассматривать ее отдельный слой. По ссылкам архивы E-Drawings в виде экзешника, чтобы запускались 64-разрядных компах без установки солида. Это стандартный формат для обмена моделями между клиентом/заказчиком, у которых нет лицензий на покупку проги, но показать модель как то надо. |
Род: Palarm Infra Real Сообщений: 2458 |
Как в бинарной системе сетчатки глаза можно определять яркость? Если исходить из того, что светочувствительные элементы пороговые, то есть не передают никакой информации об интенсивности воздействия на них кроме как ВКЛ/ВЫКЛ. Очевидно, что только по распределению на единицу площади активных рецепторов. Но смущало то, что иногда попадались упоминания о специфических детекторах, способных реагировать на разные уровни воздействия. Получалась сложная система, где надо как то равномерно распределять по матрице россыпь детекторов с разной чувствительностью - и как то потом сводить их показания, для чего нужно будет определять топологию датчиков на сетчатке, а не просто их активность.
Но оказалось, что сетчатка глаза все же устроена именно как бинарный датчик. Интенсивность определяется по величине пятна освещенности на ней, которое регулируется зрачком. То есть строго говоря есть понятие "субъективно воспринимаемой яркости", которая определяется по числу задействованных рецепторов. А то что рецепторы могут иметь разную чувствительность - это уже вторично.
Стало быть детектирование колонкой фрагмента сетчатки делается по принципу: RGB-триада рецепторов (цветочувствительные колбочки) + специфические рецепторы реагирующие в черно-белом диапазоне (палочки). Их концентрация в активном состоянии на единицу площади и размер самого активного пятна (или просто кол-во активных палочек на сетчатке) и создает ощущение яркости. Если сравнить с матрицей фотоаппарата, то там яркость передается величиной сигнала ячейки, то есть аналогового рецептора. Благодарность от: nan |
Род: nan - админ Сообщений: 11785 |
Регулировка диафрагмой зрачка не обеспечивает огромный динамический диапазон восприятия яркости. Все сложнее в природе. Есть понижение чувствительности фоторецептора при повышенной яркости и есть, конечно же взаимное торможение. В статье описаны первые два механизма: Но от самого маленького размера до самого широкого зрачка ваш зрачок может увеличить свою площадь всего лишь в 16 раз. Вы можете хорошо видеть поперечные изменения уровня освещенности гораздо больше, чем в миллион раз. Так что здесь должно быть что-то еще происходит. ...Когда вы находитесь в ярком свете, ваши стержни полностью перегружены и не работают. Если вы выключите свет, ваш зрачок сразу же откроется. Ваши фоторецепторы начинают улучшать свою чувствительность, чтобы впитывать любой свет, который они могут в новых тусклых условиях. Колбочки делают это быстро – примерно через пять минут их чувствительность повышается. Примерно через 10 минут в темном месте, ваши стержни наконец-то нагоняют и вступают во владение. Вы начнете видеть намного лучше. |
Род: Palarm Infra Real Сообщений: 2458 |
Модель 3- слойной колонки для сетчатки. Выше ссылки на 3D модель тоже обновил. В схеме пока не показаны тормозные связи, которые есть в 3D модели.
Становится все более очевидным, что в природной реализации колонка используется в качестве "пикселя" фотоматрицы, но так как рецептор яркости не может выдавать коды уровня напряжения, приходится использовать комбинации их активностей, для чего и пришлось создавать колонку. Это делает природную матрицу более дефрагментированной. А в случае получения 256 уровней яркости для каждой составляющей цвета по схеме RGB придётся ещё и сами колонки объединять, что делает природный пиксель уж совсем большим. И тогда возникает два вопроса: почему природа пошла по бинарной схеме и точно ли нужно кодировать по 256 уровней яркости по каждому базовому цвету?
По первому вопросу думаю станет ясно, когда сложится понимание что происходит дальше с данными колонки, как они обрабатываются. Ведь в отличие от ПО типа фотошопа в мозге нет никаких функций преобразований, все происходит на уровне бинарной активности нейронов. Генерация кода цвета для каждого пикселя означает цеплять к нему сотни нейронов, чтобы вышли миллионы вариантов - а потом цеплять ещё больше, чтобы во всем этом разобраться. По второму получается, что если использовать связки колонок и контрастирование - нет нужды глубоко кодировать каждый пиксель-колонку. Рецепторный рисунок получится как результат взаимодействия нейронов колонок. Но остаётся вопрос с размерами такого пикселя - он все таки слишком большой выходит.
Ещё такая мысль пришла в голову: в природной колонке есть особые клетки, которые как стержни прошивают её насквозь и связаны со всеми слоями. Подумалось, что кроме образования специфических межслойных связей у них есть ещё функция служить в буквальном смысле стержнем колонки, задавать вектор роста нейронов. Иначе они будут делиться не в виде колонки, а во все стороны как попало.
Еще остаётся вопрос по тормозным связям: если подвести к тормозным нейронам связи от нейросети гомеостаза, то так можно модулировать их активность. Это тот эффект с движением ползунков регуляторов торможения сетки в модели нейросимулятора как простейший способ связи активности колонки с гомеостазом. Тогда на выход колонки надо ещё тянуть входы от них (см. 3D схему с выходами от слоев). Колонки ведь интересны тем, что имеют связи слоев с разными отделам, что позволяет модулировать активность слоя например гомеостатической значимостью. |
Род: nan - админ Сообщений: 11785 |
Слишком быстрая смена, нет времени понять происходящее. Наверное, нужно рядом с пуском сделать задатчик масштаба скорости показа... |
Род: Palarm Infra Real Сообщений: 2458 |
Сначала думал все 28 вариантов перебрать, но подумалось, что это растянется на очень длинное время, особенно если сделать нормальные паузы по 5-6 сек, поэтому сделал короткие по 2 сек. А вот если сделать ползунок промотки или поле ввода для коэф. скорости - то можно по ходу дела притормаживать/разгонять просмотр. И тогда уже лепить хоть часовые фильмы.
Смысл схемы в том, что она реагирует разным рецепторным рисунком на разные комбинации RGB и рецепторов яркости. В итоге получается по 4 уровня яркости для каждой составляющей RGB. Например:
То же самое для G и B, R+B, R+G, G+B, R+B+G. В итоге: 4х7=28 вариантов. Вроде бы мало по сравнению с 256 вариантами для каждой составляющей RGB. Но если объединить 3 колонки, то получим уже 3 по 24 варианта - по моему тут уже где то около полумиллиона комбинаций выходит. Если добавить к этому управляемое гомеостазом контрастирование - еще на порядок больше. Вроде как нормально в смысле различения вариантов оттенков цветов. Кроме одного: в фото-матрице это делается тремя пикселами яркости, на которые положены фильтры RGB и с которых потом снимается уровень активности (аналоговым или цифровым кодом), а тут их целая куча - в итоге суммарный пиксель RGB выходит слишком большим, что скажется на качестве распознавания. Это пока смущает больше всего, потому, что в бинарной схеме, когда уровни яркости детектируются через кол-во рецепторов иначе не получится.
|
Род: Palarm Infra Real Сообщений: 2458 |
С тормозными нейронами есть еще одна интересная особенность. Их связи должны быть равновесными, чтобы равномерно затормаживать связанные через них нейроны. Но в конструкторе такая схема приведет к "колебаниям" - начнет переключаться, словно генератор. Потому, что это равновесное, неопределенное состояние - типа суперпозиции. Прикол однако в том, что в реальной природной нейросети такие состояния практически исключены потому, что:
В идеализированной модели, где все строго математически рассчитывается такая схема просто зависнет или начнет пульсировать, смотря по тому, какой алгоритм расчета выбран. А в природной просто переключится в одно из состояний, в зависимости от текущей расстановки уровней порога и скорости возбуждения. Более шустрый нейрон задавит менее быстрый.
В итоге получается интересная фигня: такие равновесные схемы думаю будут довольно часто встречаться, потому как при самообучении нейрон тянет отростки во все стороны, и при этом часто скорость роста будет примерно одинакова, особенно в таких схемах типа равномерной решетки. Веса установятся одинаковыми - и в модели это приведет к зависанию. Чтобы этого не происходило, придется симулировать плавающий порог или разную скорость активации - вообщем искусственно вносить флуктуации в строгий расчет. |
Род: Palarm Infra Real Сообщений: 2458 |
Интересная иллюзия. Если смотреть на точку по центру картинки, то после переключения на черно-белый вариант она покажется на короткое время "в цвете".
Сначала подумал, что это из за инертности активации цветовых рецепторов. Но тогда получалось бы, что они довольно сильно инертны, ведь иллюзия длится примерно 1-2 сек. Скорей всего дело в том, что восприятие нами цветного изображения происходит путем сложения активностей рецепторов яркости и цвета. То есть изначально мы воспринимаем цвет и яркость по отдельности, формируются отдельные образы и затем складываются в общий образ восприятия. И вот эти высокоуровневые наложения уже намного медленнее происходят, чем реакция рецепторов. В данном случае происходит задержка в переключении суммарного образа: цветовой образ не активен, но итоговый суммарный еще не успел погаснуть и какое то время 1-2 сек продолжает выдавать старый вариант из двух образов. То есть мы "видим" не рецепторами, а возникающими на основе их активностей образами. Благодарность от: nan |
Род: nan - админ Сообщений: 11785 |
Если не моргнуть и не отводить взгляд, то эффект сохраняется :)
Это - не на уровне работы рецепторов глаза, а на уровне удержания образа. |
Род: Palarm Infra Real Сообщений: 2458 |
Точно. Тут сразу три важных свойства восприятия демонстрируются:
И похоже, что иллюзия "стереокартинок" происходит по тому же принципу удержания образа. Обычно образы с каждого глаза собираются в один. При этом происходит оценка "на что это похоже" и активация подходящего образа. При рассматривании привычным образом через "разглядывание" элементов рисунка, мозг быстро определяет, что это плоское изображение и включает соответствующий контекст. Но если глядеть отрешенно, не фокусируясь, и тем самым не давая подобрать нужный образ, то в случае, если каждый глаз поймает свою смещенную картинку, они могут сложиться и определиться как 3D - и активировать объемный контекст восприятия.
Прикол тут в том, что колонки воспринимая и предварительно оценивая сигналы от глаз, исправно выдают свою активность в вышестоящий структуры. Но пока там не найдется подходящий образ, мы "видим" лишь бессмысленный хаос пятен. И лишь при нахождении "удачного решения" внезапно "прозреваем" и видим 3D. Еще интересный момент: если поймав стерео изображение начать медленно поворачивать лист картинки перед собой - тут же почувствуешь сильное напряжение в мышцах глаз и в какой то момент их заклинит. Ощущение, как будто они выкручиваются по резьбе из глазниц. Видимо потому, что подключенный контекст восприятия управляет не только оценкой поступающих сигналов, но и движениями мышц глаза и вообще всем, что связано с распознаванием зрительных образов. То есть "поймав волну" (положение глаз для восприятия своего смещенного рисунка), система включает стабилизатор их положения, чтобы поступающий от сетчатки сигнал соответствовал активному образу. И лишь когда рассогласование становится чрезмерным, происходит сброс образа и сопутствующих ему стабилизаторов и поиск нового устойчивого состояния восприятия.
Все это наводит на мысль, что мозгу вовсе не надо распознавать на уровне одной колонки (а может даже и их связок) все комбинации уровней RGB по данным рецепторов сетчатки, как это делается в фото-матрице. Достаточно ровно столько, чтобы активировать хоть какой то образ, а затем, продолжая наблюдать и уточнять (если система значимости не удовлетворена), постепенно "дорисовывать" недостающие фрагменты. То есть природа не стала заморачиваться созданием сверхчувствительных датчиков, выдающих миллионы кодов сигнала, а стала развивать структуры анализа того что есть. И вот там она отплясала по полной, научившись по крупицам информации "рисовать" цельные картины восприятия. |
Род: nan - админ Сообщений: 11785 |
Сделал слайдер задатчика ускорения-замедления. Если регулировать во время прохода, то данный цикл пройдет с прежней скоростью, а следующий с новой заданной. Благодарность от: Palarm |
Род: Palarm Infra Real Сообщений: 2458 |
Похоже я все таки натупил. Равнозаторможенная схема бессмысленна, и конструктор это правильно показывает в виде колебаний, как бестолковое мерцание активностей. Если рассуждать о плавающих порогах и разных скоростях активации, то получается, такие схемы срабатывают от случайных флуктуаций и по сути - детектируют хаос. А вот если к паре нейронов, связанных равновесными взаимно тормозными связями подцепить дополнительные рецепторы, тогда схема обретает смысл, позволяя контрастировать активность более нагруженного нейрона. Вообщем взаимно-тормозное влияние имеет смысл устанавливать только между эффекторами с неравномерной нагрузкой, иначе получается бред. |
Род: Palarm Infra Real Сообщений: 2458 |
Судя по тому, что нарыл, картина вырисовывается следующим образом:
В фотоматрице над каждым пикселом установлен фильтр одной из составляющих RGB, что позволяет снимать с него сигнал составляющей соответствующего уровня. И получая тем самым для каждой составляющей диапазон от 0 до 256 значений. В природной реализации нет возможности снимать уровень активности с отдельного рецептора, природа выкрутилась иначе, создав более сложную систему контрастирования активностей колбочек и антагонистического взаимодействия центральной и периферической областей рецепторного пятна. То есть цвет определяется для области, причем довольно обширной, а не отдельного пиксела как в фотоматрице. Но мы однако можем довольно точно определять мелкие "цветовые переливы" объекта, что хорошо объяснялось бы именно цветовой градацией по одному пикселу, а не пятну. Ответ думаю в том, что итоговая цветная "картинка" возникает не в сетчатке, а последующих отделах мозга, где она складывается из отдельных картинок-снимков, получаемых при циркадных движениях глаз. Кроме того, там же сравниваются и близлежащие области соседних рецепторных полей, которые перекрываются.
Как все уляжется, сделаю более обширное обобщение.
Это как оказалось модель искусственной сетчатки, а не колонки. Правда еще не полная. |
Род: nan - админ Сообщений: 11785 |
Конечно, полезно бывает разобраться с природными механизмами, точнее с тем, как природа выворачивается, чтобы достичь того, что искусственно достигается очень просто. Так можно и заглубиться в любую детализацию природной реализации. Но тут нужно быть внимателеьным с тем, ячтобы не увлечься, посчитав такие нелепые ухищрения принципиальной основой. Нет, важно суметь выделить в самом леле принципиальную основу. Если фотоматрица прекрасно справляется с поппиксельной интерпретацией а объектив не имеет нелепейших искажений, присущих глазу, то и пофиг на дергание глаз, пофиг на слепое пятно и т.п. это - не есть принципиально и без этого можно и нужно обходится в системной модели. Но обобщение природных механизмов по-любому будет полезным для того, чтобы ясно увидеть, что - лишь вынужденные ухищренияа что - принципиально. Вот такое резюме - самое главное. |
Род: Palarm Infra Real Сообщений: 2458 |
Это я уже заметил, что в природной реализации многие ухищрения делаются ввиду скудности и корявости элементной базы. Например то, что сетчатка инвертированный орган, где фотонам приходится пронзать 8 слоев чтобы добраться до рецепторов во многом лишь потому, что только так получается наиболее успешно быстро регенерировать чувствительность палочек/колбочек. Они быстро истощаются и потому должны быть максимально близко расположены к пигментному слою и его кровеносной системе. А вот то, что попиксельная детализация производится в центральной ямке, а не по всей сетчатки - уже принципиально. Так же как и не равномерное распределение палочек/колбочек, с максимальной концентрацией колбочек в ямке и практическим их отсутствием на периферии. Так получается уже на уровне сетчатки разлагать сигналы рецепторов на группы: точная детализация, общий уровень цвета, освещённости. Это позволяет детектировать простейшие сигналы типа потемнело, посветлело, что то там мелькнула - и создавать максимально быстрые (короткие) рефлекторные цепочки реагирования. Если просто снимать попиксельно сигнал с матрицы, пришлось бы создавать алгоритмы распознавания с использованием аппаратных мощностей, что сказалось бы на скорости реагирования.
Сигнал с сетчатки напоминает мне телесигнал, где отдельными частотами передаётся звук и построчная развёртка в том смысле, что это комплекс сигналов, поступающих в разные слои колонок, где происходит итоговая сборка. То есть это не один массив с данными пикселей, а несколько параллельных. И это имхо принципиально. Так же как и то, что если в фотоматрице мы имеем строго программную обработку сигналов с матрицы, то здесь должен быть смешанный вариант - программно-схемотехнический. Где часть вычислений происходит за счёт определённой компоновки и свойств элементов устройства. |
Род: nan - админ Сообщений: 11785 |
Воистину. Можно сказать, что глаз - не просто фотоматрица, а сразу несколько разного назначения сенсорных систем. |
Род: Palarm Infra Real Сообщений: 2458 |
Не уверен, что правильно понимаю функциональность электротонической связи нейронов сетчатки. Электрический синапс позволяет максимально быстро активировать небольшие области схожих по функционалу клеток. Это понятно. Но далее сбивает с толку:
Значение электротонического проведения состоит в том, что оно позволяет проводить сигналы, градуированные по силе. Так, для палочек и колбочек величина их гиперполяризации прямо зависит от интенсивности освещенности; сигнал не подчиняется закону «все или ничего», как было бы в случае развития потенциала действия.
Получается такая интересная штука: ганглионарная клетка, передающая активность сетчатки в мозг, связана с несколькими биполярными нейронами и ее активация зависит не только от количества связанных с ней активных биполяров, но и уровня сигнала, поступающего от них на ее электрические синапсы. В итоге она может активироваться несколькими биполярами, а может и одним, если он передаст достаточный по мощности сигнал, если удастся раскочегарить фоторецептор, например торможением соседних. Таким образом достигается повышение чувствительности сетчатки, один из механизмов.
То есть получается это как бы попытка реализации аналоговой передачи уровня сигнала с рецепторов на ганглионарную клетку через биполярные нейроны, хотя и в относительно небольшом диапазоне. Но видимо эта аналоговая реализация существует не в том смысле, как это делается в фотоматрице, когда с цветного пикселя снимается уровень активности, для получения кода цвета по RGB. Здесь это просто возможность активации от переменного кол-во рецепторов. |
Род: nan - админ Сообщений: 11785 |
пока особого смысла не видно, какое-то вырванное из системы наблюдение. |
Род: Palarm Infra Real Сообщений: 2458 |
Вот и мне это показалось странным. В других источниках не упоминается про "градуированную по силе" передачу сигнала. Там лишь указывается на то, что слишком тесная упаковка нейронов сетчатки делает более удобным электрический синапс, который к тому же более быстрый и менее проблемный для регенерации. Там и так пришлось выворачивать сетчатку наизнанку, чтобы обеспечить быстрое восстановление рецепторов.
С другой стороны, электрический синапс означает простое перетекание заряда по связям как ток по проводам. Это получается, что все связи по логике ИЛИ и они по сути получаются просто дублирующие. О каких тогда рецепторных полях говорится, если любой из связанных с биполяром нейронов способен его активировать? Я пока сложно представляю, какие вообще схемы можно построить на электрических синапсах кроме как простое распространение затухающего возбуждения. А в сетчатки все клетки связаны такими синапсами, только ганглиозные работают как привычные нейроны. |
Род: Palarm Infra Real Сообщений: 2458 |
Или все таки схемы связей с электрическим синапсом так же могут быть И/ИЛИ, формируясь аналогично химическим синапсам при созревании нейрона. Но тогда получается, что связь действительно получается "переменной", смотря по тому, какой силы заряды протекают по ним. Ведь суммарный заряд плавает и преодолевает порог при разных кол-во подключённых нейронов. А с учётом того, что обычно такие синапсы двустороннего действия, схема получается ещё интереснее. Наверное поэтому пришлось создавать ON/OFF типы связей клеток, чтобы разделить такое перетекание заряда на две группы, как бы воткнув диоды в схему связей. |
Род: nan - админ Сообщений: 11785 |
Думаю, что углубдясь в особенности реализации ты просто упрешься в ограничение того, что уже познанно отдельными урывками без понятной общей системы взаимодействий и получишь разочарование. |
Род: Palarm Infra Real Сообщений: 2458 |
Я и не рассчитывал, что получу ответы на все вопросы. Мне просто было интересно сравнить физиологию сетчатки и фотоматрицы, чтобы потом начать прикидывать, что и в какой степени из ее функционала можно реализовать компоновкой специфических элементов, а что программно. Чисто программно, или чисто физическими компонентами вряд ли в ближайшем будущем можно сделать прототип по аналогии с природной реализацией, но какие то элементы вполне. К тому же точно повторять за природой ее реализацию тоже не имеет смысла, потому как например многие специфические свойства клеток сетчатки проще будет запрограммировать.
Залил обобщение. Теперь стало немного понятнее, что там происходит. Благодарность от: nan |
Род: nan - админ Сообщений: 11785 |
Проанонсировал в новостях. |
Род: Palarm Infra Real Сообщений: 2458 |
Собирая аксиоматику по фасеточному зрению насекомых нашел вполне адекватный ресурс. Но что удивило - практически все источники, это учебники советского периода 60-70 годов. На сайте это специально подчеркивают. Сначала это удивило, но роясь в интернете нахожу практически только их перепечатки. Получается, что действительно наиболее адекватная инфа без воды и лабуды, именно в старых советских учебниках. И возникает вопрос: неужели за более чем 40 лет так и не прояснился например вопрос кодирования информации? Впечатление такое, словно заморозили исследования, ударившись в разработку распознавателей на основе сверточных сетей, который по сути грубо имитируют первичную обработку на первых слоях с использованием латерального торможения. Но почему не пытаются создать прототип действительного контрастирования, а не псевдо через фильтры и пляски с бубном - так как это происходит в реальной сетчатке? Точнее, такие работы ведутся, но на порядок более вяло. |
Род: nan - админ Сообщений: 11785 |
Идет распад не только российской науки по многим причинам. В областях, где исследования заходят в тупик и не могут ответить на поставленные цели царит не только застой, а настоящая шиза фантазийных предположений. При этом оторванность от аксиоматики, от фактически полученных данных нарастает потому, что исследователи осознают бесполезность дальнейшего углубленного копания для ставящихся целей в предметной области (а цели вполне прагматичны, финансирование не выделяется на непонятные углубления). Современная наука - это Грета Тунберг! Надежда только за теми, кто потянет альтернативный подход, вне закоренелых догм продвигателей данной предметной области. Все мои попытки образумить академических спецов в лучшем случае вызывают минутный интерес, а потом что-то вроде ленивого зевка. Так что не стоит заниматься таким гиблым делом, им уже никак не поможешь, нужно тянуть свою теорию. |
Род: Palarm Infra Real Сообщений: 2458 |
Наука по моему всегда двигалась энтузиастами, не смотря на попытки сделать ее массовой. А то, что становится все труднее найти адекватную инфу - это скорей всего потому, что хорошие ресурсы просто не выдерживают конкуренции с шизо-блогерами. Даже тот, на который я ссылку давал, вынужден постить неразборчивую рекламу и поддерживается парой энтузиастов. Но я все таки надеюсь что это временное явление, просто шизо-волна, когда внезапно открыли шлюзы - вот и хлынула всякая муть. Поставят заглушки, фейк-фильтры и постепенно пена уляжется. |
Род: Palarm Infra Real Сообщений: 2458 |
Добавил обобщение по фасетчатому глазу. Оказалось, что там так же как в сетчатке имеется функциональная неоднородность омматидиев, рамбдомеры которых специализируются на определенной части спектра или направлению поляризации. Стало быть подтверждается первоначальное предположение на примере сетчатки, что такая неоднородность не случайна, а принципиальна - иначе просто не получится создать параллельные потоки данных от глаза для организации комплексного реагирования. Мы сначала шарахаемся в сторону от внезапно выпрыгнувшей из кустов опасности, и только потом, с расстояния начинаем ее более подробно изучать. Если бы реагирование возникало только после окончательного определения объекта - нервная система так и осталась бы на уровне простейших реакций, достаточных по времени выполнения,чтобы тебя не съели.
В сетчатке позвоночных больше всего заинтриговал электротонический способ передачи возбуждения. Как мне думается - это успешная попытка создания аналоговой схемы связей, необходимой для снятия уровня возбуждения с рецептора. Если сравнивать с фотоматрицей, там мы имеем массив рецепторов с определенным уровнем заряда, что необходимо для получения итогового кода цвета. Но если попытаться собрать такую схему на бинарных элементах, как это сделано в статье "Сетчатка" - то получим проблему: как снимать многоуровневый потенциал с рецептора? Я для этой цели сделал 3 рецептора яркости, в итоге получаем 4 уровня для каждого рецептора RGB: рецептор при выключенных яркостях, и рецептор при последовательно включенных 1, 2, 3. Это с одной стороны сильно увеличивает размер пикселя, что соответственно уменьшает разрешающую способность глаза. А с другой - ограничивает диапазон яркостей.
Природа выкрутилась иначе использовав полноценный аналоговый способ связи в сетчатке. В итоге контрастирование в ее слоях работает так, как гексагональная решетка DK6-3 из соответствующей статьи, если крутить ползунок коэфф. усиления веса. В это случае веса связей пропорционально изменяются, меняя тем самым итоговый эффекторный рисунок решетки. Стало быть очередное "понимание", что есть решетки, про которые ты меня подкалывал - это модель децентрализованной нейросети первых слоев сетчатки позвоночных с электротоническим способом связей. Причем гексагональная ближе всех к модели фовеолы - центральному пятну. Там действительно гексагональная плотная упаковка колбочек. В одном дуплексном слое модели решетки сведены горизонтальные нейроны и колбочки. И получается, что черт его знает, может это в правду оказался корявый прототип искусственной фовеолы? :)
По фасетчатом глазу, когда наткнулся на вопросы в сети, почему природа выдумала такой странный глаз, а не снабдила насекомых нашим камерным, сразу пришло в голову, что главная причина - более примитивная нейросеть насекомых. Она тупо не сможет работать с таким уровнем детализации и макрообъектами. А техническая сторона, касаемая повышенной дифракции при таких микроразмерах и сводящей на нет все преимущества камерного глаза - уже вторична. Богомолу не к чему разбираться в видах и подвидах его жертв, он хватает и жрет все что может схавать и удержать, поэтому все что ему нужно знать о жертве - сможет ли он это сделать. А для этого достаточно лишь несколько простейших признаков размеров и способность различать живое от неживого. |
Род: nan - админ Сообщений: 11785 |
Ты ставь ссылки сразу чтобы люди понимали, о чем речь :)
просто обращал внимание, что такого рода симметрия - результат конкретной природной реализации, но ты видишь в этом системный принцип, продолжай его выделять до очевидности, а пока что все достаточно сумбурно. Я вообще, если решусь на какие-то прагматичные действия, то вообще отмету эту часть сенсорики, о чем сегодня написал в дневнике. |
Род: Palarm Infra Real Сообщений: 2458 |
Я уже говорил, что с самого начала думал не в общем и целом - а как конкретно сделать распределенную нейросеть. А это значит уже конкретная топология, а не пространные рассуждения, как где то что то как то связывается. Кроме того, строгая решетка вовсе не означает строгую компоновку. Если рассматривать ее как матрицу-шаблон для создания нового слоя, то изначально там все связи нулевые и по мере обучения прожигаются нужным весом. В конце концов можно представить хоть сто-мерную виртуальную решетку с миллионами связей в одном узле. В любом случае, если ты создаешь новый слой - изначально это пустой массив с заданной размерностью (1-2-3 мерный и т.д.) и надо задать параметры: между какими элементами можно делать связи, а между какими нельзя - в самом простом случае исходя из того, что рецептивное поле это круговой охват каким то радиусом вокруг точки возбуждения. Это особенно касается сенсорной матрицы типа сетчатки, на которую проецируется изображение, так как связи будут формироваться вокруг областей рецепторной активности, а не где попало. Вообщем хоть так посмотреть, хоть эдак - но есть определенные принципы построения нейросети, хоть визуально она и кажется бессмысленным хаосом сплетений проводов. Причем в случае сенсоров типа сетчатки - аналогия с решеткой более чем уместна. А в случае с зонами мозга - это уже больше как виртуальное определение, вроде многомерного массива. |
Род: linuxoid Sr. Poster Сообщений: 106 |
Помнится, где-то в этой теме обсуждалось латеральное торможение (ЛТ). Сейчас не буду всё читать и рыться в аксиоматике, просто изложу мысль. Во-первых, меня интересует сила ЛТ, а именно её свойство: статичность или динамичность в зависимости от приложенного к основному нейрону потенциала. Сила определяется синаптическими весами на аксонах тормозных нейронов, а веса постоянны, так ведь? То есть не зависят от того, какая сила сигнала на нейроне, а просто срабатывают, если нейрон активен, и молчат в противном случае. Имею ввиду, что при пороге срабатывания 1 независимо от того, какой сигнал на нейроне больше 1 (2, 3, 7, 9), тормозной нейрон будет действовать на соседний с одной и той же силой (будет приложен одинаковый потенциал), которая определена синаптическим весом от него. Вес синапса меняется не мгновенно, причём пластичность в первичных зонах нивелируется по завершении специализации слоя. Таким образом, сила ЛТ не зависит от приложенного к нейрону потенциала, а роль играет только то, возбуждён нейрон или нет. Если нет опровергающих фактов, идём дальше. Можно сделать алгоритм псевдопараллельной обработки сигнала. Мат. модель я не представляю, так что сделаем циклом, но здесь у нас появилось обстоятельство -- сила ЛТ не меняется. Это значит, надо просто вычесть значения весов, умноженные на 0 или 1 из сигналов из каждого нейрона, чтобы создать иллюзию параллельности процессов, а затем проверить, изменилось ли состояние: если да, пересчитать с учётом включенных и выключенных нейронов, иначе выйти из цикла. Если нейроны примерно одинаковой силы и гасят друг друга, надо отловить такую ситуацию, обнулить ЛТ для данных нейронов и установить на них сигнал, равный порогу срабатывания, как на транзисторе в случае тока смещения на базе поддерживается напряжение, предельно близкое к напряжению отсечки. Таким образом, получается даже не цикл, а простое ветвление. Примерный псевдокод: если (примерно_равны(1,2)) { сигнал_1 = порог; сигнал_2 = порог; } иначе { сигнал_1 -= активность_2 * ЛТ; сигнал_2 -= активность_1 * ЛТ; активность_1_пред = активность_1; активность_2_пред = активность_2; активность_1 = проверить_активность(1); активность_2 = проверить_активность(2); если (активность_пред_1 == 1 и активность_1 == 0) сигнал_2 += ЛТ; если (активность_пред_2 == 2 и активность_2 == 0) сигнал_1 += ЛТ; }
Для двух нейронов это кажется несложным, но для большего числа пока не представляю. |
Род: Palarm Infra Real Сообщений: 2458 |
В статье про решетки подробно по шагам показан расчет методом итераций, но он тоже не дает точного расчета состояний узлов сети. Нужна параллелизация расчета, как если бы процессор имел число ядер по числу узлов решетки. Либо бесконечный цикл как у Nan в конструкторе. Оба варианта означают серьезные вычислительные мощности, потому мне более целесообразным видится создание нейроплат-шаблонов, с программируемыми связями, как это делается в ПЗУ
Для нейронов с химическими синапсами да, они работают как пороговые элементы, но для электрических синапсов характерна передача уровня возбуждения, то есть величина торможения здесь будет прямо пропорциональна величине возбуждения тормозного нейрона. В сетчатке все нейроны, кроме выходных ганглиозных связаны электрическими синапсами, что как я думаю определяет специфическое контрастирование, не похожее на то, что происходит в нейросети с химическими синапсами. Оно более плавное, не скачкообразное, это как бы вариант нейросети с аналоговыми элементами. Но самое главное - это позволяет обрабатывать взаимодействие элементов с учетом уровня их активности, то есть в случае с сетчаткой получить RGB код пикселя с весами составляющих, без использования дополнительных яркостных рецепторов, как мне пришлось сделать в модели цветового распознавателя. В конструкторе нейросхем используются симуляторы химических синапсов, там не получится создать такую логику, хотя она как мне думается, широко используется в рецепторных органах в том числе и для такого специфического "аналогового" контрастирования. |
Род: nan - админ Сообщений: 11785 |
да, только дисретные элементы, а не эмуляция. |
Род: Palarm Infra Real Сообщений: 2458 |
Вот думаю самая простая нервная система с адаптацией к внешним воздействиям. Адаптация к изменяемым условиям происходит за счет высокой плодовитости и мутаций.
Схема показывает простейшую реализацию коррекции внутреннего состояния (гомеостаза) при внешнем воздействии. Один единственный рецептор "Р" воспринимает внешнее воздействие и запускает эффектор "Э" организма, который оказывает влияние на ее внутреннее состояние. У организма свой собственный цикл существования, включающий колебания внутренних состояний, которые отслеживаются датчиками гомеостаза Г+ и Г-, показывающими соответственно положительное и отрицательное состояние. При отрицательном состоянии запускается действие "Д1" запускающее коррекцию гомеостаза до нормы, при положительном тормозное действие "Б1", гарантировано блокирующее запуск действия "Д2", чтобы не было выхода за норму.
В схеме показана реакция организма на внешнее воздействие, которое может привести как к положительным изменения гомеостаза, так и к отрицательным. В результате реагирует один из датчиков гомеостаза и запускает или блокирует его положительную коррекцию. Это прямая, непосредственная реакция на внешние воздействия. Все связи формируются естественным отбором и передаются по наследству. Организм с единственной реакцией коррекции гомеостаза может существовать лишь короткий срок в узкой экологической нише, для которой оптимальна такая реакция, и сохранять свой вид высокой скоростью размножения.
Тут возникает вопрос по поводу терминологии. В данной схеме нет обратной связи между гомеостатическими рецепторами и эффекторным действием, то есть при выборе действия влияет только связь рецептор-эффектор. Это значит, что особь будет постоянно наступать на одни и те же грабли, при условии, что это не смертельно и достаточно времени для восстановления гомеостаза. Единственный шанс для нее улучшить модель поведения - случайная мутация и естественный отбор. И можно ли при таком раскладе считать такую нервную систему самоадаптирующейся, или все же для этого обязательно наличие влияния гомеостатических рецепторов на выбор эффекторной реакции? |
Род: Palarm Infra Real Сообщений: 2458 |
Более продвинутая схема показывает уже простейшую реализацию выбора эффекторной реакции в зависимости от текущего состояния гомеостаза и как в прежней схеме его последующей коррекции, при выходе из нормы в отрицательные значения. Для реализации такой схемы необходим выбор из минимум 2 возможных эффекторных реакций "Э" на активность рецептора "Р". Для этого вес связи от активного рецептора составляет лишь половину необходимого для активации эффектора. Оставшуюся половину он получит от одного из рецепторов гомеостаза "Г", показывающих текущее состояние организма. В данном простейшем случае это либо "хорошо", либо "плохо". При отрицательном состоянии запускается действие "Д" запускающее коррекцию гомеостаза до нормы, при положительном тормозное действие "Б", гарантировано блокирующее запуск действия "Д", чтобы не было выхода за норму. Такая схема более продвинута по сравнению с Гомеостаз 1 так как позволяет уже на стадии выбора реакции регулировать гомеостаз, не позволяя ему при "плохом" состоянии стать еще хуже. Кроме того, здесь уже есть минимум 2 реакции вместо одной - по числу градации состояний гомеостаза. При этом все связи изначально предопределены и формируются естественным отбором.
Таким образом я пытаюсь обосновать, что для адаптационной схему можно назвать лишь при условии: 1. Система реагирует на внешние воздействия внутренними изменениями. 2. В системе присутствует постоянный внутренний процесс, который выходит из равновесия при внешнем воздействии 3. Система имеет механизм коррекции своего внутреннего процесса - приведение его в равновесное состояние Не будет хотя бы одного из пунктов - систему нельзя назвать адаптационной. То есть самообучаемость (интеллект) - не обязательное свойство адаптационных систем. Оно может быть зашито изначально как в вышеприведенных схемах. |
Род: nan - админ Сообщений: 11785 |
У тебя - самоадаптирующаяся схема, но для узких условий. Такая тварь или может регулироваться в данной среде или выходит из игры жизни. В более общем плане любая причинно-следственная связь или срабатывает, т.е. оказывается адаптированной к среде, или если условия не позволяют, ее компоненты пассивны. - она неадаптирована |
Род: Palarm Infra Real Сообщений: 2458 |
Я это подчеркнул, пытаясь опуститься до самой простейшей схемы, которую можно назвать адаптационной. Потому, что как то привычно считается, что адаптация == интеллект. Строго говоря это не так. |
Род: nan - админ Сообщений: 11785 |
Вообще не так. Интеллект - эффект использования личного опыта в каких-то задачах: интеллект выживания в лесу, интеллект решения мат.головоломок, интеллект исполнения на скрипке и т.п. Но интеллект не развить без личной адаптивности. |
Род: Palarm Infra Real Сообщений: 2458 |
Согласен. И тогда думаю можно сказать так: интеллекта не может быть без личной адаптации, но адаптивность в узких границах может быть без интеллекта. Рассуждая далее о гомеостазе можно сказать, что его график не может быть в виде горизонтальной прямой, должны быть хоть небольшие колебания, которые могли бы отклоняться в какую то сторону. Это значит, что норма гомеостаза подразумевает колебания ниже какой то амплитуды. То есть это всегда колебания. Стало быть вопрос по сабжу из дневника, к чему привязывать нейробота, если никакого гомеостаза у него нет, вообще не стоит. Потому что процесс, который подразумевается регулировать, всегда колебательный, поэтому у бота он тоже должен быть. В простейшем случае это одночастотная синусоида смены состояний, даже если в такой системе нет ни одного рецептора и эффектора. А если есть хотя бы один эфектор, то он однозначно влияет на эти колебания, усиливая/ослабляя их амплитуду.
На вопрос почему именно колебания, а не просто какой то статический уровень, выше/ниже которого считается выходом из нормы. Потому, что колебания означают самостоятельный процесс, с регулярным изменением по времени. Это значит что так же решается вопрос какое внешнее влияние считать плохим/хорошим. То начальное, которое на момент формирования совпало с естественным ростом амлитуды - автоматически считать хорошим, которое совпало со спадом - плохим. Все последующие уже автоматически будут зависеть от первых, потому, что первые уже начали "влиять" на гомеостаз. Это эмулирует реальный процесс: то, что не понизило гомеостаз хорошо, что понизило плохо, так как понижение до критического уровня означает смерть. В программной реализации мы просто от балды даем этому понятие, ведь смертью мы можем назвать что угодно, а под него уже выстраивается модель реагирования. Потому, что в виртуальном мире это просто начальные параметры.
Думаю при таком подходе теоретически нет проблем от чего отталкиваться при создании нейробота. |
Род: Palarm Infra Real Сообщений: 2458 |
Следующий вариант схемы.
В схеме показана связь между рецепторами гомеостаза и эффектором внешних рецепторов опосредовано, через тормозные нейроны "Т". Дело в том, что модель гомеостаза изначально представляет собой замкнутый на себя простейший цикл внутренних реакций организма, не реагирующий на внешние воздействия - как в инкубаторе. Это необходимо для формирования связей системы между датчиками Г, блокираторами Б и реакторами действий Д. Система считывания/реагирования на внешние воздействия так же изначально не взаимодействует с системой гомеостаза, что так же необходимо для формирования связей между рецептором Р и эффекторами Э. В начальный период они существуют и развиваются параллельно и не зависимо друг от друга. Затем, после созревания, происходит их сцепление. Чтобы связать их между собой для выбора реагирования на внешнее воздействие, зависящее от текущего состояния гомеостаза, нужен промежуточный элемент. Это тормозной нейрон, блокирующий один из вариантов реагирования, оставляя другой.
Связь с ним устанавливается в 2 этапа: 1. первой в организме возникает система гомеостаза, в данной схеме представленной в виде поочередной активности датчиков Г+ и Г-. Они показывают равномерную ритмичную пульсацию системы - ее простейший вариант. При появлении тормозного нейрона он связывается с одним из датчиков, который начинает управлять его активностью. 2. второй возникает система считывания/реагирования на внешние воздействия. Тормозной нейрон уже связан своим входом с системой гомеостаза, и теперь он свой выход связывает с системой считывания/реагирования. Возникает тормозная связь между гомеостатической и эффекторной активностью.
Процесс создания связи подразумевает следующие условия: 1. нейрон, устанавливающий связь, должен находиться в особом режиме созревания, которое ограничено по времени. В случае эмуляции нейрона в нейросимуляторе время созревания можно заменить количеством принятых нейроном возбуждающих активностей. 2. связь устанавливается между периодически активирующимся созревшим нейроном, (рецептором), и созревающим нейроном (эффектором). 3. связь ограничена рецептивным полем - областью активных рецепторов, с которыми она устанавливается. Созревающий эффектор не может свободно связываться со всеми активными рецепторами, иначе это в конечном итоге приведет к связи всех со всеми. Поэтому нужно ограничить его некоторой областью. Графически на плоскости это будет окружность, в 3D пространстве сфера с заданными радиусами. Фактически же это массив доступных элементов, который задается либо просто списком, либо функцией определения. В любом случае должна присутствовать какая то система в задании таких массивов, чтобы избегать бессмысленных хаотичных связей. Особенно это касается зрительных сенсорных систем, где важна топология активностей эффекторов относительно рецепторов, иначе просто не получится распознавать зрительные примитивы.
На схеме визуально не показан процесс формирования связей между двумя системами. Подразумевается, что это связи между Т1-Э1, и Т2-Э2, то есть рецептивные поля тормозных нейронов включают в себя по одном эффектору. При вышеописанных правилах формирования связей возникают ситуации:
1. если при состоянии гомеостаза (активен Г-) несколько раз активируется эффектор Э2 - возникнет отрицательная связь между Г- и Э2 через Т2. При этом оставляется возможность активации Э1, так как он не входит в рецептивное поле Т2. 2. если при состоянии гомеостаза (активен Г+) несколько раз активируется эффектор Э1 - возникнет отрицательная связь между Г+ и Э1 через Т1. При этом оставляется возможность активации Э2, так как он не входит в рецептивное поле Т1.
Таким образом подразумевается определение "правильной" реакции для двух возможных состояний гомеостаза исходя из того, что внешнее воздействие, которое детектирует рецептор Р, возбуждает или угнетает гомеостаз. Следовательно, если выполнение эффекторного действия не меняет состояние гомеостаза - оно либо нейтрально к нему, либо усиливает внешнее воздействие и его нужно заблокировать. Причем это касается как положительного, так и отрицательного состояния гомеостаза. Это значит, что правильнее говорить не о плохом-хорошем состоянии, а о слишком плохом-хорошем, то есть о выходе за пределы амплитуды колебаний, требующей коррекции. Поэтому на каждый тип отклонения гомеостаза должно быть свое внутреннее корректирующее действие Д, возвращающее гомеостаз в норму его амплитуды колебаний.
Однако схема по прежнему не является полностью законченной, так как в ней не показано схематически, каким образом действие эффекторов Э1, Э2 влияет на состояние гомеостаза - лишь подразумевается. Можно даже сказать, если судить строго по схеме, что оно вообще никак на него не влияет, а просто внешние воздействия связываются с колебаниями гомеостаза. А это принципиально важно, иначе нельзя строго утверждать, что эффекторное действие возбуждает или угнетает гомеостаз. И самое главное - такие влияния начнут вносить в изначально строго ритмичные колебания дополнительные гармоники, которые в свою очередь будут все более предопределять выбор очередной реакции как правильной-неправильной. То есть наличие обратной связи между эффекторным действием и состоянием гомеостаза приведет схему к настоящей адаптации. |
Род: nan - админ Сообщений: 11785 |
Суть утверждения о том, что гомеостатическая регуляция – просто некие самостоятельные колебания я не понимаю. Датчики гомеостаза фиксируют отклонения и в некоторых случаях возможна их компенсация, например, отклонения в концентрации кислорода в крови могут компенсироваться изменением частоты дыхания. Но колебаний значений при этом нет, т.к. запаздывание изменения концентрации от частоты дыхания меньше, чем скорость реагирования датчик-регулятор частоты дыхания. Т.е. в данном случае нет генерации, как это бывает, например, в водяном термостате, где скорость включения-выключения тока в нагревателе намного больше, чем тепловая инерция нагревателя. Но если сделать задержку в регуляции (повысить плавность управляющего нагревателем напряжения больше, чем постоянная времени нагревателя, то пульсации исчезнут (закон появления колебаний в любой системе)). Мало того в случае, если регуляция возможна только через повеление (утоление жажды), то вообще о пульсациях говорить нечего. Ну и в аспекте адаптивности, там, где нужно использовать отклик датчика гомеостаза по результатам пробного действия, вообще какие-то циклы не при чем. А именно такие случае и интересны в организации адаптивности поведения. |
Род: Palarm Infra Real Сообщений: 2458 |
Я исходил из того, что адаптация означает наличие внутреннего процесса, который нужно синхронизировать с внешним. Внешнее воздействие на процесс может быть тормозным или активирующим. Синхронизация означает, что каким то образом к внутреннему процессу добавляется корректирующий, что не позволяет ему из за внешнего воздействия пойти вразнос или окончательно прекратиться. А это в свою очередь означает что мы говорим о каких то пределах отклонения, превышая которые считается что процесс стал слишком активным или слишком угнетенным. Процесс, имеющий пределы активности/пассивности - это колебательный процесс. А норма - колебания, не выходящее за пределы.
Но ведь управляющее напряжение на что то должно реагировать, чтобы меняться и успеть изменить состояние системы до того, как начнутся отклонения. Это означает, что колебания на самом деле есть, достаточные для быстрого реагирования системы коррекции, но не достаточные, чтобы говорить о выходе из нормы.
Я не говорю, что гомеостаз это внутренние колебания. Это зависимые от внешнего воздействия внутренние колебания. Голод - что то съел - сытость - переварил - опять голод - это разве не колебания состояний? Другое дело - как связать внутренние колебания с внешними изменениями? Поэтому предложил считать, что сначала нужно создать независимые системы внутреннего процесса и внешнего реагирования, а потом их связать. То есть сначала просто запускаем "тактовый генератор", который будет колебать гомеостаз, чтобы можно было потом начать это колебание регулировать. Потом создаем систему реагирования на внешнее воздействие. А потом связываем их вместе. Но связь должна быть двусторонней: гомеостаз должен влиять на выбор реагирования, а реагирование должно влиять на состояние гомеостаза. По схеме выше связь пока что односторонняя, и действие эффектора никак не влияет на состояние гомеостаза. Он все так же колеблется сам по себе и это конечно не правильно, с позиции адаптационной схемы. Тут еще надо думать.
Например так: у каждого внешнего воздействия должно быть свойство, влияющее на гомеостаз. Например касаемо бота: его простейший гомеостаз - цикличные колебания "бодрость-усталость". У объектов-слов, на него воздействующих есть свойство "длина". Вводим понятие, что чем больше длина, тем быстрее наступает усталость у бота. В результате формируется модель поведения из реакций, где короткие слова более привлекательны чем длинные. Из них определяются контексты например по принципу, что как оказалось - в веселых текстах больше коротких слов, а в грустных больше длинных. Понятно, что чем больше выделить простейших начальных свойств внешних объектов и соответствующее их влияние на гомеостаз - тем больше будет вариабельность формируемой модели реагирования. В этом смысле если принять за объекты буквы и назначить им свойства типа высота тона, то вариабельность будет выше. Чем больше палитра свойств объекта, тем точнее будет ответная реакция. |
Род: nan - админ Сообщений: 11785 |
Есть понятие равновесного состояния, там нет колебаний, нео есть обратная связь. Вот как в усилителе низкой чатсоты (частота изменения хомеостатического параметра) с обратной связью - нет колебаний регулировки, если тракт усилителя более высокочастотен, чем максимальная гармоника сигнала. ПОдадим идеальный меандр на вход и на выходе увидим по каждому фронту затухающие колебания с частотой быстродействия тракта. Но в организме таких быстрых изменений параметров, которые бы не мог бы отследить нейросеть и ее эффекторы без затухающих колебаний регулировки, нет.
Если такие изменения ты и называешь колебаниями, то нет возражений. |
Род: Palarm Infra Real Сообщений: 2458 |
Я представляю себе процесс оживления нейро-бота следующим образом:
В результате воздействия объектов начинают влиять на гомеостаз, ускоряя/замедляя его в разной степени, смотря по своим свойствам. Это вносит гармоники в изначально ритмичные колебания гомеостаза, превращая их в сложные и уже зависящие от внешних воздействий. Так как гомеостаз теперь связан с эффекторами, он начинает участвовать в выборе реагирования. Так формируется простейшая адаптивность. Для бота это выглядит так:
В результате должны сформироваться связи, обеспечивающие регулирование дисбаланса колебаний гомеостаза. Потому, что согласно п.4 создана связь между активностью эффекторов и колебаниями гомеостаза - они начинают его разгонять/успокаивать, внося дисбаланс в изначально ритмичные колебания. А возникающие тормозные связи блокируют эти возмущения в разной степени, смотря по свойствам объектов, возбудивших рецепторы, которые активировали эффекторы. То есть система пытается вернуться к прежним равномерным колебаниям. Связь же устанавливается потому, что с одной стороны имеется активный эффектор, а с другой активный тормозной нейрон в стадии обучения. |
Род: Palarm Infra Real Сообщений: 2458 |
Можно в принципе и без начальных колебаний гомеостаза, просто назначив какой то уровень его состояния как норма и диапазон отклонений в обе стороны, выход за который означает дисбаланс. Но тогда встанет вопрос: что будет делать бот, когда он не воспринимает раздражители. Получается, что замрет в состоянии крайней активации эффекторов. Может оно и ладно. |
Род: nan - админ Сообщений: 11785 |
это при накопленных активностях или прямо задавать циркадный ритм?
В случае сенсоров только в виде слов это значит, что некоторое из словосочетаний в определенном контексте имеют уже привязанную к ним значимость и она, конечно, будет влиять на текущий контекст гомеостатической значимости. Но привязывать только состояния устал или бодр - это оставить многие слова без значимости, так что нужно, все же, расшить гомеостатическую значимость на все то, что присуще и человеку (иначе не будет ни понимания, ни эмпатии. Я предполагал скармливать тексты, уже имеющие какую-то из значимостей (т.е. достаточно узко-значимые тексты) и так задать 1) рецепторы гомеостатической значимости и 2) контексты этих значимостей чтобы воспринимаемые потом фразы воспринимались в такой теме.
вот это мне решительно не нравится.. :) не вижу вообще корреляции значимостей с длиной слова. |
Род: Palarm Infra Real Сообщений: 2458 |
Просто колебания ни к чему не привязанные
Для бота слова просто буквы, ничего не значащие. А ты пытаешься свою сформированную значимость навязать ему. |
Род: nan - админ Сообщений: 11785 |
период воспитания (2-4 года у людей) должен же быть. |
Род: Palarm Infra Real Сообщений: 2458 |
Я так далеко пока еще не смотрю. Меня сейчас интересует начало начал. У развивающегося организма формируются органы, обслуживающая их нервная система - и вот какие там распознаватели, на что реагируют, как образуются связи? Животное рождается уже с частично, а местами и с полностью сформированными системами жизнеобеспечения, реагирования. А те, что не сформированы, подготовлены так, чтобы максимально быстро прошиться параметрами. Думаю, только понимание с чего все начинается, как развертывается нервная система, позволит понять как оживлять нейро-ботов. И тогда уже можно какие то этапы пропустить, просто прошив сразу нужным образом распознаватели. |
Род: nan - админ Сообщений: 11785 |
У меня нет с этим проблем. Но по-любому нужно организовать третичную зону дял контекстно-зависимых (условных) рефлексов, а для этого, да, нужно уже вшитая система безусловных, которая и обеспечивает регуляцию гомеостаза. Потому как только на основе безусловных могут возникать условные рефлексы, а на их основе- автоматизмы. И первый уровень условных - воспитание в авторитатрной среде. Чтобы оживить - нужно будет организовывать второй уровень - уже контекстов понимания которые определяют условия автоматизмов. Уровень, связанный с первым единственным каналом внимания - осознания наиболее актуального и поэтому совершенно обособленный, самостоятельный уровень с эффектом гомункулуса. |
Род: Palarm Infra Real Сообщений: 2458 |
То есть вопрос формирования безусловных рефлексов ты не рассматривал, когда в очередной раз задумался об реализации ИИ? Хотя с них все и начинается. Предлагаешь не заморачиваться этим а просто прошить нужные рефлексы и сразу начать с момента рождения, когда начинается импритинг, авторитарное обучение? |
Род: nan - админ Сообщений: 11785 |
Базовые безусловные рефлексы нужно прошить обязательно. При этом начать формирование слоев примитивов словосочетаний. На уровне вторичных зон (говорю по аналогии с мозгом) из них и базовые рефлексы пойдут. На уровне третичных зон (ассоциация всего, что есть с выходом на уже имеющиеся эффекторы базовых рефлексов) - уже пойдут условные рефлексы. |
Род: Palarm Infra Real Сообщений: 2458 |
Получается, ты в принципе не возражаешь, что сначала нужно эмулировать у бота гомеостаз, создать схему безусловных рефлексов для его регуляции, создать схему рецепторов и условных рефлексов - и связать безусловные гомеостатические с условными рецептивными так, чтобы гомеостатические влияли на ветвления условных рецептивных, которые в свою очередь активируют (используют) эти сами безусловные. Я только так и не понял - что ты представляешь под гомеостазом бота? Мне подумалось, что раз изначально у него ничего нет, то можно просто создать простейший процесс ритмичных колебаний, который затем превратится в неритмичный из за влияния эффекторов условных рефлексов. То есть сначала гомеостаз строго стабилен, но как только внешние рецепторы начнут считывать активности, он будет становиться все более сложно закрученным. Поэтому
такой проблемы не будет - ведь колебания гомеостаза будут становиться все более сложными. Начнется процесс взаимного усложнения: рецепторы и эффекторы, формируя условные рефлексы, воздействуют на гомеостаз, который усложняясь от этого, все более сложно воздействует на эффекторы. |
Род: nan - админ Сообщений: 11785 |
Я тоже пока смутно это представляю. В этом - главнfz стратегическая проблема :) Скорее всего нужно будет создать вируальный организм со всеми его особенностями и имитировать удовлетворение потребностей, иначе не получится должного взаимпонимания с людьми. Ну, хотя бы как между человеком и другими животными, тут примерно схожие потребности. |
Род: Palarm Infra Real Сообщений: 2458 |
Тогда уж скорее между одомашненным животным, в случае нейробота ближайший аналог медоносная пчела. Она собирает мед не для того, чтобы кто то его ел, а чтобы выжить самой. Но кто то ловко это использует, предоставляя ей улей, кормовую базу и оберегая от некоторых проблем. Пчела об этом не подозревает, воспринимая регулярный отъем части меда как досадные неприятности, с которыми пытается безуспешно бороться. Видимо именно такая модель взаимоотношений между нейроботом и его оператором должна быть. Вариантов можно придумать бесконечно много.
Гомеостаз бота постоянно занят "перевариванием" информации, поэтому у него изначально присутствует потребность ее периодического сбора и накопления про запас. У него есть периодически меняющиеся фазы сытость/голод. Так же сформирована потребность архивирования, структурирования информации - изготовления из нее быстро усваиваемого "информационного меда". Причем этот навык постоянно развивается, он жизненно необходим боту. Так как в его гомеостазе периодически наступает фаза паралича, когда он не может больше собирать информацию и вынужден проедать запасы. Которые еще и регулярно убывают в силу какого то природного катаклизма, созданного оператором. Но ему еще повезло жить в относительно спокойной вселенной, так как в соседнем параллельном мире создали целые колонии ботов, конкурирующих за ресурсы, ворующих друг у друга "мед", враждующих друг с другом, что вынуждает их создавать особо изощренные стратегии сбора, накопления, борьбы - особый вид бойцовых ботов, способных добыть очень хорошо спрятанную информацию и умеющих скрываться, прятаться, бороться за нее. Периодически "высшие силы" нанимают команды ботов для поиска, отъема у других какой то информации и хорошо за это платят.
То есть мало придумать гомеостаз, придется изобретать целый мир с правилами игры для бота. Чтобы он воспринимал реальность через нужную оператором призму. Может даже появится профессия дизайнера, архитектора виртуальных вселенных, законодателя правил и т. д. - создающих специальные прошивки под конкретные задачи для простых виртуальных существ с ИИ, вроде насекомых. |
Род: nan - админ Сообщений: 11785 |
Прикольно :) Но виртуальный гомеостаз это не целый мир и организм в нем, в всего лишь десяток ключевых параметров, имеющих в словах некий отклик: есть воздух - нет его (и градации какой чистый крпкий воздух), есть-нет воды, еды, секса, сна, и т.п. (в отличие от параметров концетрации со2 в крови, глюкозы, кислотность крови и т.п.). И такой виртуал можно организовать запросто самыми малыми ресурсами. А по ходу жизки управть им: уменьшить доступ воздуха, чтобы задергалось, жрать не давать и т.п. а временами - наоборот. Но все это у меня пока очень недостаточно прорисовывается в общей картине. |
Род: Palarm Infra Real Сообщений: 2458 |
В простейшем случае да, ты можешь просто регулярно раскурочивать виртуальный муравейник и всегда вынуждать его обитателей активно его строить и получать с этого какой то гешефт. Но чем сложнее гомеостаз - тем сложнее адаптационная рефлексия, и поступая так же с виртуальными кошками ты рискуешь однажды оказаться исцарапанным или они вообще начнут на тебя охотиться.
Вообщем однозначно нужен гомеостаз, который нужно проектировать таким образом, чтобы адаптационная рефлексия, при раздражении рецепторов бота в симуляторе реальности или вручную, вырабатывалась в нужном направлении. |
Род: 66andr Newbie Сообщений: 9 |
Здравствуйте. Меня зовут Андрей и я только-что зарегистрировался на вашем сайте. Ещё не во всём успел разобраться. Скажите, где находится ваш нейросимулятор, а также есть ли к нему инструкция?
|
Род: nan - админ Сообщений: 11785 |
Приветствую вас! https://scorcher.ru/neuronet/net.php Демо латерального торможения для контрастирования https://scorcher.ru/neuronet/lateral_braking.php конструктор нефросхем https://scorcher.ru/neuronet_designer/newro_scheme_designer.php
Благодарность от: 66andr |
Род: 66andr Newbie Сообщений: 9 |
Спасибо, за ответ. Попробую разобраться как работают ваши схемы. Я тоже занимаюсь построением схем, которые управляют поведением робота. Но к сожалению, в интернете на эту тему ничего не написано... ...возможно поэтому я разработал собственный метод компьютерного моделирования, который позволяет создавать модели управления поведением робота любой сложности. Впрочем, не только управлять роботом, но и моделировать динамические системы... |
Род: nan - админ Сообщений: 11785 |
Это - очень круто. Мы с активистами пытаемся реализовать такую систему на ГО (в силу его высокой производительности) на основе уже имеющихся моделей. Реализация показывает, насколько конкретика воплощения меняет проблему реализации, казалось бы, хорошо понимаемых моделей. Только реализованная модель оказывается достаточно убедительной. |
Род: 66andr Newbie Сообщений: 9 |
Я посмотрел ваши схемы на нейросимуляторе. Они, конечно, простенькие и на них, наверняка, не построишь схемы управления роботом. Как, впрочем, и на современных пакетах компьютерного моделирования UML, Simulink, Anylogic и других. Они все работают на пересчёте дифференциальных уравнений, а мой метод построен на другом принципе. Кстати, ему не нужны высокопроизводительные машины.
|
Род: nan - админ Сообщений: 11785 |
Я заинтригован, на конкретику можно рассчитывать? |
Род: 66andr Newbie Сообщений: 9 |
У вас стоит ограничение на 30 минут для новичков, поэтому не сразу ответил... И пока не разобрался как вставлять цитаты в текст. Если Вам действительно интересна эта тема, я готов о ней подробно рассказать и предоставить работающие схемы и модели. По образованию я инженер электронщик, а не программист, поэтому все мои схемы состоят из компараторов, триггеров, мультивибраторов и т.д. Впрочем, всё работает! И метод своей работоспособностью подтверждает свою правильность. Я ещё не разобрался как вставлять в текст картинки, чтобы показать какие есть рабочие схемы... |
Род: nan - админ Сообщений: 11785 |
Снял новичковое ограничение. Картинки и файлы можно просто перетаскивать в окно ввода на место курсора. Я тоже электронщик, правда бывший, так что надеюсь, что смогу разобраться в скемах.
|
Род: 66andr Newbie Сообщений: 9 |
6.pdf Для примера здесь показана рядовая схема на иканах, на которых строятся исключительно все рабочие модели динамических систем. Инкан - это универсальный динамический элемент, с помощью которого можно строить любые динамические схемы. Инкан -представляет собой прямоугольник, от которого отходят Верхнее Плечо сверху и Нижнее Плечо снизу. На инканах можно строить: компараторы, схемы задержки, таймеры, усилители, схемы совпадения и др. Но для того, чтобы научиться строить сложные схемы, нужно изучить свойства инкана на простых моделях. У меня на эту тему написана книга: "Самообучение автономного робота с использованием метода компьютерного моделирования высокой детализации КМВД". Сайт, на котором можно скачать её: https://66andr.wixsite.com/inkan. Сайт создан только для скачки книги. По сравнению с отечественными и зарубежными пакетами моделирования КМВД самый простой и эффективный для построения динамических моделей. |
Род: linuxoid Sr. Poster Сообщений: 106 |
Я ознакомился с интересующими меня разделами из книги, т. к. пока не располагаю временем для чтения всей. Признаюсь честно, включил скептицизм на максимум и выискивал лажи :) Однако из тех тем, что я прочитал, всё довольно доказательно описывается, за исключением мелких, незначительных придирок. Пока первое впечатление, что книга способна внести новое понимание в схемотехническое моделирование природной нейросети, что позволит решить множество сопутствующих проблем, например, здесь при создании бота на Го, который, гипотетически, сможет обладать более продвинутыми механизмами, чем искусственные нейронные сети.
Тем не менее, попался момент, который вызывает "протест очевидности" (с. 143 п. 1): боль присутствует всегда. Как в поговорке: если у тебя ничего не болит, — значит, ты уже умер. Слишком категорично или многозначительно, на мой взгляд :) Я сейчас могу сказать, что у меня ничего не болит, учитывая, что боль не была строго определена в этом разделе, чтобы можно было разграничивать, что вот это боль, а вот это уже к боли не относится. Если речь идёт о сильной боли, которая постоянно переводит внимание на себя, то возникает иллюзия, будто она непрерывна, в силу того, что мы не способны заметить, как прерываемся на что-то. У человека только один канал осознанного внимания, поэтому только один образ одновременно может быть подключён к лобным долям. Само внимание управляется ориентировочным рефлексом, который переводит его на наиболее актуальное, где актуальность условно равна произведению новизны на значимость. Если внимательно понаблюдать за собой во время сильной и, казалось бы, непрерывной боли, то можно заметить, что стоит только появиться в голове неожиданной и важной мысли или вдруг во внешнем мире появится новый и значимый стимул, который по силе превзойдёт боль, то в это время боль исчезнет из восприятия, будто её нет. По возвращении фокуса внимания на боль может показаться, что она никуда не девалась. Это происходит потому, что ориентировочный рефлекс очень быстро переключается на наиболее актуальное.
Описанное является огромным пластом знаний, так что если есть желание говорить более обстоятельно конкретно по этой теме, то я могу каждому из своих утверждений привести обоснования из местной аксиоматики системной нейрофизиологии. |
Род: 66andr Newbie Сообщений: 9 |
Здравствуйте, linuxoid. Сразу хочу оговориться, что я не писатель, а инженер-электронщик, поэтому большого опыта написания книг у меня ещё нет. В этой книге я постарался показать как с помощью нового метода КМВД можно строить схемы управления виртуальным роботом ("нервную систему" робота). Впрочем, инкан, как универсальный динамический элемент можно рассматривать как "нейрон". Я давно работаю на тему управления виртуальным роботом. Сейчас застрял на вопросе: "и хочется и колется". Это когда робот двигается в направлении запаха "пищи" и заходит в область холода, из которой его выгоняют неприятные ощущения холода. Так он может туда-сюда ходить до бесконечности... Пытался связаться с нейробиологами беспозвоночных, но пока безрезультатно. Возможно, в моей книге много категоричности, как Вы правильно заметили, но это, скорее, от невозможности "впихнуть" свои мысли в ограниченный объём книги, иначе книга была бы вообще неподъёмная. Что касается тезиса: "...боль присутствует всегда...если у тебя ничего не болит, значит ты уже умер", то был мне нужен инженерный, схемотехнический провокатор к действию. И такой универсальный драйвер, задающий поведение я разработал (для робота, конечно!) У робота "нервные процессы" гораздо примитивнее, чем у человека, и понятие "боль" скорее неуместно для него, но так уж исторически сложилось. Кроме этого, я хотел как-то "оживить" своего робота, а ведь каждый живой организм обладает болью, это ещё одна отличительная особенность живого от неживого! У боли есть одно универсальное свойство: она тормозит текущее действие (высших животных не рассматриваем). Поэтому в моей категоричности есть свой резон: любое понятие должно работать в схеме, иногда эти понятия для робота - очень похожи на человеческие, но я моделирую поведение простого робота и не рассматриваю психологию человека...
|
Род: nan - админ Сообщений: 11785 |
Я обязательно найду время для прочтения этой книги и выскажу свое мнение по ключевым пунктам. Так что на этот период беру таймаут в общении (думаю, не более недели). В свою очередь могу предложить книгу с этого сайта по теме не только искусственных адаптивных систем, а того, как такие системы организованы в природной реализации. |
Род: linuxoid Sr. Poster Сообщений: 106 |
Это можно реализовать с помощью латерального торможения, суть которого -- подавление более слабых соседних нейронов с целью контрастирования. Вот у вас глава посвящена гомеостазу: для его поддержания необходимы рецепторы, которые будут передавать показания важных жизненных параметров, и эффекторы, которые в зависимости от состояния первых будут реагировать так, чтобы восстановить норму. Ещё нужно ввести такое понятие как "сила значимости", что будет сравнительной характеристикой для различных параметров гомеостаза. Это можно реализовать, используя множество датчиков одинаковой силы или добавить для этих первичных рецепторов градацию, как это (вроде бы) сделано в сетчатке. Не принципиально, на мой взгляд. Если рассмотреть первый вариант, то вручную задаём (у животных -- наследственно предопределено) зависимость активности рецепторов от отклонения параметров -- получаем возможность конкуренции. Вот здесь для лучшего контрастирования, чтобы робот не метался, а чётко выбирал один вариант поведения, понадобится латеральное торможение. Его нетрудно организовать схемотехнически: нужно от выхода каждого нейрона поставить к соседним инверторы, проводимость которых в 2-3 раза меньше (также может варьироваться на разных участках нейросети), чем у обычных нейронов, чтобы не вызывали гистерезис чрезмерным разрядом. Есть и вариации, как именно подключать, но мне кажется, вы уже посетили демо-моедль и легко сможете разобраться. Более основательно: 1, 2, 3.
Рассмотрим, как это будет работать на вашем примере. Пусть есть датчики температуры и заряда, а в качестве эффекторов -- печка и переключатель на резервную батарею. В случае холода и голода латеральное торможение будет усиливать разницу так, чтобы выбиралось что-то одно. Настанет момент, когда голод окажется сильнее, и тогда контекст холода будет игнорироваться -- роботу удастся добраться до еды. Правда, это в том случае, если мы предусмотрели, что голод важнее. Этот пример несовершенный, потому что робот так будет доводить себя до сильного голода, но у вас много написано про обучение, так что здесь можно что-то сделать. У высших животных это реализовано с использованием более сложных механизмов: прогнозов, субъективных моделей, ориентировочного рефлекса, творческого решения проблем. Если предложенную мной модель можно запросто сделать на конструкторе нейросхем, то природную схему уже не получится туда втиснуть.
Мы здесь в соответствующей теме как раз этим и занимаемся. Я думаю, будет здорово, если вы присоединитесь и выскажете свои соображения: вместе наверняка удастся сделать больше. Благодарность от: nan, 66andr |
Род: 66andr Newbie Сообщений: 9 |
Спасибо, linuxoid, за такой подробный комментарий. Обязательно рассмотрю все Ваши замечания и предложения. Готов присоединиться к вам и помочь советом... |
Род: Клон Infra Real Сообщений: 1160 |
Мелочь, а всё равно приятно сделать важное замечание :) Не все живые организмы обладают ощущением боли.Даже дети не знают некоторые виды боли. Но если только для того , чтобы придать роботу " человеческий вид" для наглядности. Но здесь для наличия боли как раз нужно рассматривать высших животных и человека. Улитке всё равно подают ей на хвост ток или внезапно чем либо соприкасаются с её кожей .Оборонительное поведение с выбросом серотонина в мозг - последует незамедлительным втягиванием - пропорционально силе сигнала. Простые переключатели между четырьмя классами основных нейронов :сенсорные нейроны, моторные нейроны, премоторные (командные)интернейроны и модуляторные нейроны. Никакой боли , никакого испуга - улитка простой биоробот.
Благодарность от: nan |
Род: nan - админ Сообщений: 11785 |
Книгу прочел. Резюме
Благодарность от: 66andr |
Род: 66andr Newbie Сообщений: 9 |
Спасибо, nan за такой подробный анализ книги. Конструктивная критика ещё никому не мешала. Я, действительно, разрабатываю своего робота с нуля, но в этом и заключается весь интерес. Сделать собственную работу и ответить на собственные вопросы!.. |