Форум программистов, компьютерный форум, киберфорум
ИИ, нейросети, LLM, ML, Data Science, ИИ-агенты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 26.02.2013
Сообщений: 21

Обучение сверточной нейронной сети LeNet-5 методом Левенберга Марквардта

20.01.2016, 13:29. Показов 2593. Ответов 5

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Ранее задавал вопрос о формирований слоя C3 в калссической архитектуре LeNet-5 Сверточная Нейронная Сеть, Слой C3 (от слоя субдискретизации до слоя сверкти) , спасибо VTsaregorodtsev за подробные ответы. В данный момент я собрал каркас LeNet-5, инициализровал сеть случайными весами для тестирования ее работы в режиме forward propagation. Теперь перешел к изучению Алгоритма Левенберга Марквардта.


Как я понял основной метод ЛМ, описывается следующим образом (Если можно, не могли бы Вы объяснить некотрорые моменты):

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

Основной метод Левенберга Марквардта:

1. Устанавливаем M(Мью)-learning rate равным 0.1. Подаем на вход итеративно образы из обучающей выборки (допустим первый образ цифры из 60000 обучающих образов MNIST), получаем на выходном слое некие значения. Считаем MSE (ошибка по среднеквадратичному отклонению, для каждого выхода выходного слоя).
2. Решаем уравнение дельта W=[J^T*J+ MI]-1*J^T*E. (результат этого уравнения будет наращен к уже существующим весам, по формуле W=W+ дельта W в том случае если с ним результат MSE ниже чем перед тем как мы нарастили дельта W, то есть Дельта W это скорректированные веса. Мне не понятно, если J это матрица Якоби содержащая производные первого порядка функций сети при определенном входе X и весе W. Получается что мы проходим по всем выходам сети на каждом слое и берем производную от ее функции при сумме всех значений входов и весов? Не совсем понятно как строит Якобиан, ведь даже в LeNet-5 на слое C1 (28*28)*6=4704 нейрона, а на S2 (14*14)*=196*6=1176 нейрона). В итоге в матрице будет разное значение столбцов и рядовю. Не могли бы Вы скзать что значит нотация J^T (Якобиан в степени T, T это ожидаемые выходы нейронов? Ведь мы будем тоько знать какие ожидаемые выходы будут на выходном слое, на остальных слоях это невозможно)?
3. Пересчитать MSE при условие W=W+ дельта W
4. Если MSE < начального MSE.
1. то принять W=W+ дельта W. Мью=Мью*Бетта (X), X=0.1. Постепенно X увеличивается
Вернутся к шагу 2(подать следующий образ из обучающей выборки и рассчиитать новое MSE).
4. Если MSE > начального MSE.
1. Мью=Мью/Бетта. Вернутся к шагу 3. (Мне кажется что когда мы получили новое Мью, прежде чем возвращаться к шагу 3 надо решить W=[J^T*J+ MI]-1*J^T*E заново при новом Мью, и только тогда уже переходить к шагу 3 чтобы рассчитывать полученное MSE).

Описание основного метода Левенберга Марквардта брал отсюда: http://waset.org/publications/... s-training (певая страница абзац "The standard LM training process can be illustrated in the
following pseudo-codes, "). Не могли бы Вы сказать правильно ли описан основной метод ЛМ или там что то упущено? Потому что в интернете большинство статьей описывают метод ЛМ не для применения к нейронным сетям. Заранее Вам спасибо за ответ! Извините если много вопросов!

Может быть для понимания работы Алгоритма будет легче попробовать понять как работает основной метод ЛМ для MLP, а не начинатья с СНС?

Добавлено через 20 часов 10 минут
Еще раз здравствуйте!

В дополнение хотел спросить, можно ли вобще применять стандартный Алгоритм ЛМ именнок с СНС, потому что в большинстве статьей показано как им обучают многослойные персептрон, а для СНС рекоммендуют стохастический диагональный метод ЛМ, но нигде не написано чем он отличается от стандартного метода ЛМ и что нужно добавить к нему чтобы получился стохастический диагональный метод ЛМ. По-этому хотел спросить возможно ли будет обучить СНС обычным методом ЛМ который применяется для обучения Многослойных персепронов? Нужно ли что нибудь менять в обычном методе ЛМ, при обучение им СНС, так как там используются разделяемые веса (shared weights)? Еще раз Вам спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.01.2016, 13:29
Ответы с готовыми решениями:

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

Обучение нейронной сети, как обучать на множестве?
Только начал погружаться в тему, довольно осознанно усвоил метод обратного распространения ошибок, градиентного спуска и проч., с...

Обучение и применение нейронной сети для прохождения игры
я написал Flappy Bird на HTML5 теперь хочу сделать простенькую нейронную сеть на JS... (движется фон с препятствиями, а я жму кнопку, по...

5
2642 / 1653 / 267
Регистрация: 19.02.2010
Сообщений: 4,377
20.01.2016, 21:58
Лучший ответ Сообщение было отмечено Clipper_701 как решение

Решение

Берите именно стохастическо-диагональный.
Никто сейчас не использует в нейронках (которые сейчас ооооочень огромного размера) методы, требующие явного решения систем уравнений. Ибо даже самоисправляющимися методами решения СЛАУ (типа метода сопряжённых градиентов) - выходит дольше. А несамоисправляющиеся (гаусс, даже с выбором главного элемента) - быстро накопят вычислительные погрешности.

Что читать - аппендикс С в статье http://yann.lecun.com/exdb/publis/pdf/lecun-98.pdf
20 times (20 эпох обучения), упомянутые в первом абзаце этого приложения - потому, что они только 20 эпох на на fig5 и рисовали.
Может, эта статья тоже поможет http://yann.lecun.com/exdb/pub... un-98b.pdf - там изложение по-другому идёт.
1
0 / 0 / 0
Регистрация: 26.02.2013
Сообщений: 21
21.01.2016, 08:08  [ТС]
VTsaregorodtsev, спасибо Вам за подробный ответ и рекомендации!

Добавлено через 1 час 34 минуты
VTsaregorodtsev, Можно еще раз Вас спросить, а в учебных целях LeNet-5 можно обучить стандартным методом ЛМ чтобы понять как он работает? Нужно ли делать какие то изменения в формуле или обучать им нужно так же как и многослойный персептрон? Еще раз спасибо!
0
2642 / 1653 / 267
Регистрация: 19.02.2010
Сообщений: 4,377
24.01.2016, 21:57
Лучший ответ Сообщение было отмечено Clipper_701 как решение

Решение

Цитата Сообщение от Clipper_701 Посмотреть сообщение
чтобы понять как он работает?
Это, наверное, нужно не нейронку обучать - а читать нормальный учебник, с примерами-картинками (показывающими, как ведут себя те или иные методы оптимизации при разном "рельефе" оптимизируемой функции - как во второй моей ссылке выше).

Цитата Сообщение от Clipper_701 Посмотреть сообщение
Нужно ли делать какие то изменения в формуле
Нет.
Но я не уверен, что в указанной Вами статье всё правильно описано или что Вы правильно разобрались. Я, правда, ни ту статью не читал, ни в Ваш пересказ не вдумывался.
За описанием "стандартного ЛМ" - в нормальные, "официально признанные" учебники по методам градиентной оптимизации. Какой брать - даже не подскажу, не разыскивал учебника именно с ЛМ. Помню только, что в Гилле-Мюррее-Райт ЛМ не описан. Так что - покопайтесь среди книг тут http://www.twirpx.com/files/mathematics/mopt/
1
0 / 0 / 0
Регистрация: 26.02.2013
Сообщений: 21
29.02.2016, 17:04  [ТС]
VTsaregorodtsev, Извините, а можно еще задать следующий вопрос. Можно ли в стохастическом-диагональном методе ЛМ для получения диагональной матрицы Гессе использовать аппроксимированный Гессиан (JTJ), так же как и в классическом методе ЛМ, чтобы не считать производные второго порядка? Или придется высчитывать Гессиан вручную? Еще раз спасибо!

Добавлено через 33 минуты
Я понимаю что аппроксимированный Гессиан (JTJ) даст нам полную матрицу Гессе, но ее легко преваратить в диагональную матрицу Гессе, просто обнулив все не диагональные элементы. Но я не уверен можно ли так вобще делать или нет. Я бы с радостью рассчитал диагональную матрицу Гессе вручную используя чатсные производные второго порядка, тем самым получив точную Диагональную матрицу Гессе. Но я пока не знаю точно как это делать, т.к. в интернете основные статьти по обратному распространению ошибки показаны на примерах расчтеа производных первого порядка. Уроков по расчету производных второго поядка для Многослойнных персептронов я не встречал.
0
2642 / 1653 / 267
Регистрация: 19.02.2010
Сообщений: 4,377
29.02.2016, 22:00
Вычислительная сложность СД ЛМ - такая же, как у обычного обратного распространения.
Т.е. n диагональных элементов (n - число весов в сети) для некоторого примера выборки вычисляются за время, сходное со временем, которое затратится на обычную фазу обратного распространения для этого примера выборки.
Если не верите - курите формулы по СД ЛМ.

А дальше вступает в дело обычная математика. СД ЛМ для сходимости оценки использует 300-500 примеров на эпохе обучения. Любой же классический расчёт матрицы n*n, очевидно, будет длительнее, ибо число весов в нейросети n будет много больше этих самых 300-500. Т.е. n*n>>n*~~(300...500)

И, честно говоря, не понимаю, что непонятного в двух указанных мною статьях ЛеКуна.
Возьмите ещё более раннюю статью Беккер и ЛеКуна - там м.б. проще (хотя обозвано не СД ЛМ, а псевдоНьютоном), но формулы те же самые.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.02.2016, 22:00
Помогаю со студенческими работами здесь

Решение системы интегральных уравнений методом Левенберга-Марквардта
Доброго времени суток, уважаемые Гуру форума =) Появилась необходимость решить систему уравнений: \begin{cases} &amp; \text{ }...

Как узнать точность совпадения в сверточной нейронной сети
Приветствую, прошу помочь разобраться. Начал изучать нейронную сеть в матлаб. По примерам научился обучать сверточную нейронную сеть. Но не...

Метод Левенберга - Марквардта
Доброго времени суток. Помогите пожалуйста с реализацией метода Левенберга-Марквардта для нахождения значений некоторой заданной функции.

Алгоритм Левенберга-Марквардта
Доброе время суток! Помогите в реализации алгоритма Левенберга-Марквардта в Матлабе. Есть теоретические выкладки, возникает проблема с...

Применение алгоритма Левенберга-Марквардта
представим, есть матрица, в которой содержится нечто похожее на 2умерную ф-цию гаусса, т.е i - это у, j это х, и значение каждого элемента...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru