0
<< предыдущая заметкаследующая заметка >>
10 декабря 2011
Примерная схема эмулирования функций PHP нейронами мозга

1)strpos — находит номер буквы первого вхождения подстроки в строку
Пример в коде:
$mystring = 'abc';
$findme = 'b';
$pos = strpos($mystring, $findme);
?>
Результат:pos=1

Модель номер 1 функции strpos языка php.

Предположим, каждый нейрон может быть памятью и выражать собой один бит.Тогда чтобы найти в тексте длиной сто символов текст длиной 10 символов нам нужно 110*8=880 нейронов.

Чтобы найти вхождение нам нужно перебирать нейроны текста по очереди сравнивая их с примером,для этого нам пригодиться ещё один нейрон ,аксон которого возбуждается при совпадении когда на двух его дендритах либо нули либо единицы.Также чтобы не ошибиться нам нужна тактовая частота и нейроны которые её задают,пусть это будет круговая цепь замкнутых друг на друга нейронов.Эти нейроны каждый цикл должны перемещать указатель на единицу нейрона который «сравнивает» .Но тут возникает вопрос,сравнивающий нейрон не может выбирать с какого из своих дендритов взять сигнал,то есть нужна ещё система перебора нейронов (памяти).Для того чтобы перебирать нужно что-то вроде «иерархической» цепи ,в которой возможна адресация.И тут открывается преимущество нейронной сети,мы можем сравнивать не спереди строки к заду,а параллельно сразу все буквы,но для этого нам нужно иметь количество примеров ($findme) равное количеству потоков.Расширяя подобным образом нашу функцию,нам следует позаботиться о постройке модели адресации нейронов.В этой модели при поступлении на вход номера указателя должен выводиться сигнал на клетке этого указателя (как оперативная память).Я представляю себе такую модель,есть цепь похожая на дерево,у неё один ствол,10 крупных веток,на каждой ветке ещё по 10 менее крупных,и на каждой ещё 10 листьев (данных).Всего 1000 бит.К каждой из веток прикреплён нейрон закрывающий или открывающий проход для сигнала.(но ведь он не может постоянно закрывать ,то есть он либо подаёт высокочастотный сигнал для открытия этой ветви).

Ещё нам нужен дешифровщик числа указателя выполненный на нейронах.К примеру нам нужно знать сигнал 555-го нейрона,ясно что для этого нужно открыть 5 ветвь,5 ветви ,5-ого листка.Опять же чтобы представить число до тысячи нужно ещё десять нейронов под указатель.Чтобы увеличивать указатель на единицу нужна ещё одна древовидная система нейронов.Чтобы управлять памятью нужна ещё одна система — дешифровщик указателя и она тоже должна быть древовидной.

Итак аксон «сравнивающего» нейрона возбуждается при совпадении двух битов из строк.Чтобы вычислить номер вхождения важно чтобы он возбуждался всё время перебора памяти.Мы пока возьмём простой случай непараллельной обработки а простой линейной.
Тогда нам нужно считать количество идущих подряд совпадений и каждый раз проверять его на равность длине всей поисковой строки,для этого нам в какой-то области памяти нужно было бы выделить переменную и каждый раз увеличивать её счётчик на один при совпадении и сбрасывать его при не совпадении.Если число совпадений совпало с длиной строки,то надо вычесть длину строки из указателя и сохранить результат в переменной памяти.

Построим примерную блок-схему систем ,их связей и вида:

Раскроем операции на нейроны:
1)Обнуление и присвоение нейроннной переменной значения:
И тут вся модель обрывается в тартарары.Нейрон не может копить заряд и сохранять его как конденсатор
в оперативной памяти.Хотя если мы заменим один нейрон памяти двумя зацикленными друг на друга нейронами
то такое кольцо может сохранять заряд.(Кстати,надо сравнить время восстановления нейрона его размеры и
среднюю скорость прохождения заряда).

Тогда нужны механизмы записи и чтения состояний этих двух нейронов.Записать 1 не трудно,доста-
точно направить на дендрит одного из нейронов заряд,дальше уже они сами.Записать 0 проблематичнее
,нужен тормозящий дендрит.Для чтения же почти ничего не нужно.

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

Но мне кажется что необязательно обнулять важно записать новую конфигурацию
2)+1 -операция прибавления еденицы

Чтобы прибавить единицу к двоичному числу нужна целая система.
Возьмём для примера:
100+1=101
1000+1=1001
101+1=110
111+1=1000
Как видим от одной операции может измениться конфигурация всего ряда чисел а значит и заряд на всех нейронных ячейках памяти.

Для того чтобы складывать существует несложный алгоритм изучаемый ещё в школе:
Начинаем от конечной ячейки:
1)Если на ячейке ноль ,то изменяем на логическую единицу
2)Если на ячейке 1,то изменяем на логический ноль и переходим на ячейку повыше и применяем алгоритм заново.

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

И я как раз собирался почитать нейронные сети,надеюсь это будет полезно


Вопросы которые важны для проектирования:
-Может ли нейрон возбуждаться от отсутствия сигнала на дендритах?
-Может ли нейрон возбуждаться от отсутствия сигнала на двух дендритах или их присутствия?

...ладно сегодня докончу устал


Тестирование картинок

P.S
Решил приколоться над РАО ЕЭС =):

http://www.rao-ees.ru/cgi-bin/search.cgi?chto=<img src=&#[...]

<< предыдущая заметка следующая заметка >>
Оставить комментарий
Windows Safari Chrome
 Санкт-Петербург
1
0
dimwap
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
ЖЖошь
Windows Firefox
0
0
sergeperovsky
"Предположим, каждый нейрон может быть памятью и выражать собой один бит."
С какой стати такое предположение?
Windows Firefox
0
0
anonymouse
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Вообщем-то это предположение уже не работает,я его заменил двумя зацикленнными друг на друга нейронами с тормозящим дендритом и с обычным дендритом.
Я решил строить модель от обратного,постепенно меняя её исходя из критики.Поэтом мне очень важна критика модели.
И будущая критика будет скорее всего связана в с аналоговыми силами связи дендритов,и с паралельными вычислениями для этой функции.Потом я планирую создать самую эффективную сеть нейронов для функции strpos,состоящую из минимально необходимого числа нейронов.
И да,можно ли будет считать эту сеть нейронов жимвым организмом,и уже на это модели попытаться исследовать границы и уникальные ощущения.
Windows Opera
0
0
sergeperovsky
Фокус в том, что мозг не является цифровым компьютером, скорее аналоговым. Конечно из аналоговых элементов можно сделать триггер, но мозг устроен по другому. Мышление идет не на уровне нейронов, а на уровне возбуждения и торможения участков мозга.
Описывать часовой механизм, наблюдая за отдельными молекулами - занятие бесперспективное.
Windows Firefox
0
0
anonymouse
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Вот как раз и узнаю как мыслит мозг.У меня предчувствие что он должен мыслить по самому эффективному пути.
Но по крайне мере в часах есть общность молекул внутри шестерни,в мозге же этого нет,логика внутри "шестерни" может быть сложной и разной.У часов минимальный логический элемент - "шестерёнка" ,у мозга - "нейрон"
<< предыдущая заметка следующая заметка >>