Помощь новичкам

Вам напомнить, кто начал ссылки приводить на Лазарус?

:slight_smile:

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

А почему висло я кажется понял, ибо нефиг статичные массивы использовать)).

там я еще просто, не успел на динамичные переписать, это старая версия. Но работающая. (т.е. база работающая)

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

А как всё же насчёт того чтоб на это ответить?)))

На это уже М.Жванецкий ответил, прочем давно.

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

2 лайка

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

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

Подождите немного пока я перепишу вашу программу в ООП стиль. А пока всё же объясните немного подробнее, времени позарез.

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

ок. :slight_smile: будет очень любопытно, только пожалуйста переменные с русского не переименовуйте на инглиш. Тогда уже от вашей программы, пойду писать.

нейрону задается стремление (т.е. результат который нужно получить). из рекорд (скана изменений выходов нейронов вокруг) в блоке обучения идет перебор комбинаций вариантов - сложение, вычитание, умножение, условия, лог.операциии, логарифмы, корни, степеня…и т.д., … выходов изменившихся нейронов, и ищется самое близкая комбинация (оно потом корректируется коэффициентом чтоб было равным стремлению) или равное стремлению (это в блоке обучения еще не дописано в той версии, но зато там и багов нет вроде, там только сложение есть). Эта комбинация (например выход нейрона 1 + выход нейрона 2) записывается в “ген”. Т.е. так формируется то, что я назвал в программе геном. У каждого гена, вычисляется результат и если ген 1 или результаты одинаковы - то передается на выход. Если гены начинают противоречить друг другу, то над ними появляется 2й управляющий ген и собирается в гене статистика правильных и неправильных его решений… (потом сделаю авто-оптимизацию и удаление полностью дефектных генов, частично дефектные пойдут на дописывание программы управляющего гена уровня выше)

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

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

Пока это сделать надо - стабильную работу 1го нейрона.

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

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

1 из последних вопросов, наверное. Что должны делать кнопки “ОТПРАВИТЬ” и “О Т В Е Т”?

“ответ” в той версии еще не задействована

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

Константы из самого названия означают, что они константы, не важно типизированные они или нет.

ну это в стиле турбопаскаля. наплодить всяких архитектурных ляпов и потом их отключать неуклюжими ключами компиляции.

Я подозреваю, что присвоение констант ему нужно было из-за кроссплатформенности. Там же бывает область data, куда можно что-то сунуть.

@WEYDER ну вроде что то есть.

Если что то будет не понятно - не стесняйтесь задавать вопросы.

Сейчас выполняется сложение над входными нейронами, потому что я так и не понял как должно работать обучение. Но я сделал кое-какой каркас для обучения.

Ещё я там сделал test1 и test2 которые показывают как работает модуль NData и тестируют его на работоспособность.

Насчёт перевода имён классов и методов на русский - попробуйте так, если будет совсем не удобно я переведу. Но делал я всё равно изначально всё с англ названиями потому что мне так удобнее. Вообще ИМХО - ничего страшного если названия на ломаном англ. В крайнем случае в IDE паскаля есть функция “переименовать”, которой можно исправлять названия.

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

1 лайк

Спасибо огромное :slight_smile: буду разбираться :slight_smile: .

Круто конечно, после моей проги, что в космичиский корабль за пульт пересел. Очень многое пока еще недопонимаю. И самое главное не могу никак понять - на каком принципе прописан слой нейронов, их порядковый номер в слое и как реализована запись связей, выход, как мне добавить еще 2 массива в нейрон с памятью изменений (рекорд) и гены?

не совсем понимаю, что означает Invoke(input[0], input[1]); ?

Ну, для начала добавьте их как поля. Рядом с этим:

    public curr_value:real;
    public act:NeuronAct;

Ну, вызывается метод Invoke, тот что принимает 2 параметра. И в эти парамтры передаются первые 2 элемента массива input, который означает входные параметры, полученные нейроном от других нейронов.