|
|
|
|
Рейтинг 4.55/11:
|
|
0 / 0 / 0
Регистрация: 25.10.2016
Сообщений: 14
|
||||||||||||||||||||||||||
Простая задача, но сеть уходит в континуум25.10.2016, 09:06. Показов 2635. Ответов 34
Метки нет (Все метки)
Здравствуйте.
Сеть: 10 входов, изначально связи нейронов N<->N, 1 нейрон на выходном слое, F сигмоид. Вроде самую примитивную задачу поставил: научиться считать количество "1" и "0" в примере. Но не получается и всё, при обучении сеть после 5-7 итераций схватывает контузий. Вывод выглядит так:
Порог количества итераций обучения = 500, затем параметры сети сбрасываются, заново заполняются веса случайными числами. Но результат всё тот же, десяток итераций и привет. Заполнял малыми, очень малыми весами, нулями - результат тот же. Количество скрытых слоёв не оказывает влияния на итоги решений. Только сеть быстрее сваливается в сингулярность. Возможно, что ошибка в структуре сети, только я не вижу её. Либо какая-нибудь ламерская ошибка, либо всё к чёрту неверно. Прошу помочь знатоков, разглядеть где тут собака.
"10010110111" - обучающая выборка, считаются первые 10 элементов, [11] - ожидаемый ответ сети sAwaited = sInput[Y][11];//ожидаемое значение выхода
0
|
||||||||||||||||||||||||||
| 25.10.2016, 09:06 | |
|
Ответы с готовыми решениями:
34
Континуум Простая нейронная сеть Простая нейронная сеть прямого распространения |
|
0 / 0 / 0
Регистрация: 25.10.2016
Сообщений: 14
|
|
| 09.11.2016, 13:07 [ТС] | |
|
MNIST слишком сложно для "курса новичка". Была необходимость вспомнить и доучить то, что не было усвоено несколько лет назад. А взамен распознавания образов есть своя задача. Пусть и не такое количество обучающих примеров, как доступные в мнисте.
0
|
|
|
3141 / 1742 / 274
Регистрация: 19.02.2010
Сообщений: 4,547
|
||
| 09.11.2016, 21:50 | ||
|
Полторы сотни скрытых нейронов - и точность на тестовой выборке становится ниже 3% ошибок. Больше нейронов - лучше точность. Ещё лучше точность становится при неМНКшной целевой функции или постановке нелинейностей и на выходной слой нейронов. Хотя, конечно, порог в 1.6% ошибки не взять никаким ростом размера персептрона - но небольшой хитростью (иными нейронами на выходном слое, приведёнными в списке "стандартных" формальных нейронов в двухтомнике PDP 1986г) таки и его можно преодолеть. Но ненамного - до 1.4% ошибок можно будет дотянуть, но это уже уровень, с которого только стартуют свёрточные нейросетки. Т.е. в качестве курса новичка - отличная задача, демонстрирующая чувствительность точности решения и обобщения к тем или иным изменениям в самой простой многослойной нейросети и/или её обучающем окружении. Просто новичок напишет такооооой тормозной код, который будет работать на пару порядков медленнее чемпионского. Соответственно, результат каждого изменения в нейросети/алгоритмах будет виден не через минуту или несколько минут обучения - а через гораздо бОльшее время. И вот ожидание-то и способно убить весь исследовательский интерес.
0
|
||
|
0 / 0 / 0
Регистрация: 25.10.2016
Сообщений: 14
|
||||
| 10.11.2016, 11:34 [ТС] | ||||
|
Не очень владею терминами, мягко говоря.
И вот это тоже ново:
Сейчас сделал изменение коэффициентов импульса, шага в режиме обучения. Интересно, что во время обучения после доведения СКв ошибки до 0.01 изменение шага обучения в большую сторону сразу даёт довольно заметное увеличение СКв, а уменьшение шага, собственно, уменьшение СКв на следующих итерациях (эпохах). В первом случае СКв через несколько десятков эпох возвращается в своё прежнее значение. Играюсь вот так пока.
0
|
||||
|
3141 / 1742 / 274
Регистрация: 19.02.2010
Сообщений: 4,547
|
||||
| 12.11.2016, 22:27 | ||||
|
При обучении задаче классификации (задаче распознавания) - учит сеть не собственно самому распознаванию, а запоминанию значений эталонных выходных кодов (которые берутся человеком с потолка). Т.к. в случае "сверхуверенного" ответа сети (грубо говоря, когда имеем выходной сигнал=2 на нужном выходе и выходные сигналы=-2 на остальных выходах) не оставит сеть в покое - а начнёт требовать именно предписанных значений эталонов. Как должно быть видно из объяснения выше - чтобы заменить большой штраф при большом зашкаливании (у бывшего линейного нейрона) на совсем копеечный штраф от недотягивания до асимптоты, с соответствующим малым последующим вкладом в изменение весов сети. Весь тот мой пост был про МНИСТ, а не про ХОР. Да-да, в том числе названные мной минута или несколько минут обучения - это именно для МНИСТ, каким бы фантастичным это не показалось кому-то.
1
|
||||
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
| 13.11.2016, 00:40 | |
|
Хотел пошаманить со сверхточными чисто из интереса… причем пару идей что можно в разы проще все делать.
Но уже столько либ готовых +тесты их скорости на мнисте и детальное описание на сайте лекуна на английском куча статей его... Получается это будет: Велик на CPU с кодом и алгоритмом новичка и выбором архитектуры сетки отбалды “Вуду кодинг” который будет давать ошибку больше готовых либ и работать медленней их… и применение всему этому аж нигде =). Вот такое и отбивает. Или это рациональность? А вкурить суть как сделать архитектуру это долго и в книге написано по сути это все отбалды…либо нужен оч. Высокий уровень чтобы осознано задать устройство сетки. Помню в универе распознавал этих букв десятки страниц и даже и не знал про сетки =)). Добавлено через 41 минуту Сверточными сетками..ворд исправил криво =)
0
|
|
|
3141 / 1742 / 274
Регистрация: 19.02.2010
Сообщений: 4,547
|
|
| 13.11.2016, 21:54 | |
|
А никто и не спорит - просто внезапно возник разговор про использование МНИСТ в качестве современного реального учебного примера вместо ХОР. Да, можно взять готовую либу (начиная с персептронных FANN и AForge и заканчивая либами для свёрточных сеток, которые позволят сделать и персептрон тоже). Но сама задача - вполне подходит как пример, на котором можно тестить разные виды-структуры-размеры нейросетей и не нейросетевые алгоритмы тоже (всякие классификаторы из статистики - типа линейных дискриминантов, k-nn). Тем более, что если расчёты тормозят - есть возможность взять половину, четверть или 1/10 всей базы, но таки спокойно играться с этими реальными данными.
Ну и нельзя не отметить просто ОБЯЗАТЕЛЬНОЙ (для освоения методологии построения адекватных моделей) возможности исследовать зависимость поведения решения от размера выборки данных - т.е. учиться находить и видеть признаки репрезентативности обучающей выборки. ХОР с его 4мя примерами такого не позволяет сделать.
0
|
|
|
0 / 0 / 0
Регистрация: 25.10.2016
Сообщений: 14
|
|
| 01.12.2016, 08:39 [ТС] | |
|
Доброго дня.
Подскажите, пожалуйста, большие значения весов (скажем, около -40;+40) - это нормально и допустимо? 4 скрытых слоя, 50 элементов в каждом. На выходном слое веса чуть меньше (-20;+20). Ср. квадрат. ошибка 0.0003. Выборка из 3000+ примеров.
0
|
|
|
3141 / 1742 / 274
Регистрация: 19.02.2010
Сообщений: 4,547
|
||
| 01.12.2016, 19:48 | ||
|
Для MLP с сигмоидной функцией активации - недопустимо как при инициализации, так и после обучения этой нейросети. Ибо прокатывает только потому, что функции exp(), tanh() (это иной вариант сигмоидной функции) принимают и возвращают значения типа double. А были бы у этих функций аргументы (вернее, возвращаемые результаты) одинарной точности - exp бы переполнилась при аргументах за пределами интервала +-87 (по памяти число пишу, но почти не ошибся). А организовать выход за эти границы - легко, при 50-то нейронах предыдущего слоя и больших весах от них. Ну и просто посмотрите (в Екселе график постройте, например), при каких значениях аргумента сигмоида выходит на асимптоты. И подумайте, нужны ли для этого избыточные по модулю веса.
1
|
||
|
0 / 0 / 0
Регистрация: 25.10.2016
Сообщений: 14
|
|
| 05.12.2016, 10:25 [ТС] | |
|
У меня в пределах (-40;+40), процент ошибки приемлемый. Но покопаю код ещё, может быть ошибка есть какая (вероятность сего 0.999).
Спасибо за ответ. Кстати, обучение пошло веселее после предобработки входных данных. По Вашему выступлению на конференции в Ростове (2005 г.), нашёл в сети. Спасибо, просто и понятно.
0
|
|
|
3141 / 1742 / 274
Регистрация: 19.02.2010
Сообщений: 4,547
|
||
| 05.12.2016, 23:37 | ||
|
http://neuropro.ru/mypapers/neurcompmag05_4.pdf Не по теме: Просто журнал в те годы очень сильно (где-то на год) тормозил с выкладкой в сеть содержания своих номеров, и авторам не присылал никаких извещений (самому приходилось ждать - когда же сайт журнала обновится, а от редакции никакой обратной связи не было). Вот я поначалу и выложил ростовский вариант, т.к. организаторы быстро прислали материалы конференции (а с журналом в тот момент оставалась непонятка - выйдет статья или нет). Потом у себя на сайт заменил на более подробную статью, но таки по сети успели растащить конференционные тезисы.
1
|
||
|
0 / 0 / 0
Регистрация: 25.10.2016
Сообщений: 14
|
|
| 12.01.2017, 07:20 [ТС] | |
|
Доброго.
Пришёл к выводу, что большие веса (F сигмоид), вероятно, свидетельствуют о недостаточном количестве элементов в слое. После увеличения размерности сети веса исчезли. Не знаю на сколько моё замечание верно. Но уже интереснее, попробовал сделать по несколько сотен нейронов в разных (не во всех) слоях.
0
|
|
|
3141 / 1742 / 274
Регистрация: 19.02.2010
Сообщений: 4,547
|
|
| 15.01.2017, 21:39 | |
|
IR001, не только. Ещё и от настроек алгоритма обучения зависит.
Ибо если требуете абсолютно точного соответствия выходов сети и эталонных значений - то сетка будет напрягаться до тех пор, пока не загонит в насыщение нелинейности тех нейронов, которые можно загнать. Ибо при насыщении (на асимптотах) - производные становятся нулевые, а до моментов насыщения - ненулевые и позволяют сети обучаться. Т.е. ранний останов обучения или обучение с некоторой "допустимой" погрешностью - это направления, куда можно/нужно посмотреть. Ну или просто поменяйте (если у Вас задача классификации) эталонные коды с 0/1 или -1/1 (т.е. с уровней насыщения нелинейных функций, если на выходных нейронах у Вас нелинейность стоИт) на иные величины, не дотягивающие до уровней асимптот нелинейности. И посмотрите, как это повлияет (а это повлияет) на веса в обученной нейронке.
1
|
|
|
0 / 0 / 0
Регистрация: 25.10.2016
Сообщений: 14
|
||
| 16.01.2017, 15:29 [ТС] | ||
Не могу разобраться вот в чём. Допустим, три скрытых слоя. Какая разница в структуре скрытых слоёв: 100-20-300, или 100-50-20, или 50-100-40? У меня в итоге получается примерно та же картина на выходе, всё те же решения. По скорости обучения: как Вы ранее верно заметили, у новичков код "тааакой медленный", что разницы не особо заметил. Единственно, что экстремумы весов связей в более коротком слое оказывались чуть-чуть больше. Наверняка опять что-то наворотил не по науке. Но подскажите, пожалуйста, какой результат стоит ожидать, то есть в чём ожидается разница?
0
|
||
|
27 / 26 / 6
Регистрация: 02.02.2014
Сообщений: 96
|
|
| 18.01.2017, 15:53 | |
|
"Чего стоит ожидать", не имея представления об используемых наборе данных и алгоритмах, не скажет никто.
P.S. разве что если по-прежнему все веса инициализируются в 0 (или другую константу) - однозначно результаты для скрытых слоев вида 10000-10000-10000-10000 и 1-1-1-1 будут совпадать, причем для 1-...-1 еще и обучение быстрее пойдет, но больше шансов получить inf-ы и nan-ы в весах/выхлопе.
1
|
|
|
3141 / 1742 / 274
Регистрация: 19.02.2010
Сообщений: 4,547
|
||
| 18.01.2017, 22:03 | ||
|
С абстрактной же точки зрения, если все настройки (размеры и т.д.) более-менее правильно подобраны под задачу - то их варьирование отражается на точности обучения и/или обобщения нейросетки. Просто в некоторых задачах нужно варьировать число нейронов на единицы - и влияние будет видно (в задачах, где хватает нейросетки в несколько или в несколько десятков нейронов), а в каких-то задачах нужно с шагом в полсотни-сотню нейронов ходить, чтобы выстроить график зависимости точности от размера сети и найти минимум или асимптоту на этом графике. Аналогично и с другими настройками тех или иных алгоритмов - в зависимости от задачи их может понадобиться варьировать по-разному, чтобы видеть эффект. Что будет не с точки зрения точности решения, а с "точки зрения" каких-то характеристик "внутренних свойств" сети (характеристик распределения весов синапсов, полученных после обучения) - предсказать ещё сложнее. Вернее, предсказать-то попробовать можно, но количественно выразить это предсказание... С точки зрения (и тоже - абстрактной) же математики - воспринимайте нейросеть как нелинейный проектор одного многомерного пространства в пространство иной размерности. Возможно, как многошаговый проектор (если в персептроне есть один и более скрытых слоёв). Соответственно, разница в числе нейронов в слоях у разных сетей - это в итоге разные размерности тех или иных "промежуточных" пространств. И разные свойства проекторов (отображений).
1
|
||
| 18.01.2017, 22:03 | |
|
Дешевая простая домашная беспроводная сеть Простая нейронная сеть для обхода препятствий (C# + Unity3d) Нет подключения роутера, простая сеть в Cisco Packet Tracer
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|