|
0 / 0 / 0
Регистрация: 08.03.2019
Сообщений: 46
|
|
Обучение нейронной сети методом обратного распространения ошибки28.07.2019, 15:41. Показов 10503. Ответов 5
Метки нет (Все метки)
пишу нейронную сеть типа многослойный персептрон, для решения задачи аппроксимации функции. Знаю что есть много ресурсов с готовым продуктом, но хочется сделать именно свое. Пишу на C++. суть проги такова в режиме обучения она считывает x и y с текстовых файлов, затем корректирует веса и сохраняет их в другие текстовые файлы. при работе НС должна повторить эту функцию y=f(x); Обучал методом BP (back propagation) . Однако при обучении все веса в слое одинаковы!! Какой-то дикий гон, но исходя из матетматики так и получается, вопрос что делать? Я самоучка и поэтому мог что-то не так понять или упустить.Так же прикрепляю документы со значениями весов w1 - между входным слоем и скрытым, w2 - между скрытым слоем и , выходным, w3 - веса нейрона смещения сдвигающего нейроны скрытого слоя. Прощу вашей помощи.
0
|
|
| 28.07.2019, 15:41 | |
|
Ответы с готовыми решениями:
5
Нейронные сети. Алгоритм обратного распространения Нейронные сети,Метод обратного распространения ошибки Алгоритм обратного распространения ошибки. Нейронные сети |
|
2630 / 1642 / 266
Регистрация: 19.02.2010
Сообщений: 4,361
|
|
| 28.07.2019, 22:47 | |
Сообщение было отмечено kaiten11 как решение
Решение
Вместо pow(2.71,..) есть готовая функция exp().
Выходному нейрону тоже желательно добавить смещение. Скорость обучения завышена на 2-3 порядка. Дельты (нейронам предыдущего слоя) надо посчитать до того, как изменили веса текущего слоя. И для скрытого слоя дельты - не скалярное значение! Их число будет равным числу нейронов (т.е. на каждый нейрон скрытого слоя придёт своя дельта). Ну и данные могут быть не подходящими для нейросети. Есть такое умное слово - предварительная нормировка (нормализация, масштабирование) данных. А то если входы сети большие по амплитуде - то сигмоидная нелинейность может выходить на асимптоты, а там её производная=0, т.е. веса нейрона с зашкалившей сигмоидой обучаться потом не будут.Добавлено через 1 минуту Также зашкаливание сигмоид может происходить при больших начальных весах в сети.
1
|
|
|
0 / 0 / 0
Регистрация: 08.03.2019
Сообщений: 46
|
|
| 29.07.2019, 00:47 [ТС] | |
|
А вот про дельты можете подробнее? Необходиме расчитать дельты для всех весов а только потом их корректировать от конца к началу?
Дельта не скалярное, для скрытого слоя она является взвешенной суммой дельт нейронов выходного слоя, ведь так?
0
|
|
|
2630 / 1642 / 266
Регистрация: 19.02.2010
Сообщений: 4,361
|
||
| 29.07.2019, 01:21 | ||
|
Дельты и веса можно считать-корректировать послойно.
Для некоторого слоя нейронов (неважно, скрытый или выходной): 1) на выходы нелинейностей нейронов приходят производные (дельты). 2) пропускаем эти дельты через нелинейности назад - домножаем их на производные нелинейностей. 3) считаем дельты для предыдущего слоя. На каждый предыдущий нейрон придёт взвешенная (веса будут те, по которым этот предыдущий нейрон рассылал свои выходы дальше) сумма получившихся в п.2 дельт. 4) вот теперь можно корректировать веса слоя - их изменившиеся значения на вычисление взвешенных сумм в п.3 не повлияют. Т.е. у Вас п.3 и п.4 были переставлены местами (плюс п.3 был неверно сделан).
0
|
||
|
0 / 0 / 0
Регистрация: 08.03.2019
Сообщений: 46
|
|
| 29.07.2019, 03:26 [ТС] | |
|
выходной нейрон один, и в итерационном цикле это я учел при вычислении взвешенной дельты, перенес вычисление дельт перед вычислением весов связей, обучаться стала дольше, однако при этом обучения не происходит , диапазон изменения выходного сигнала сети от 0,506035 до 0,506075. И никак не поменять ее, диапазон изменения выборки от 0.1 до 0.7. фаил 111 это переделанный листинг .
0
|
|
|
0 / 0 / 0
Регистрация: 08.03.2019
Сообщений: 46
|
||||||
| 29.07.2019, 03:38 [ТС] | ||||||
|
проверил код
delta= дельта для связей между 2-3 слоем, она умножается на w[i] = соответствующий вес между 2-3 слоем;
0
|
||||||
| 29.07.2019, 03:38 | |
|
Помогаю со студенческими работами здесь
6
Метод обратного распространения ошибки Метод обратного распространения ошибки Нейронные сети обратного распространения Обучение нейронной сети - алгоритм обратного распространения ошибки(learning_tree) Обучение нейронной сети методом обратного распространения ошибки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|