|
|
|
|
Рейтинг 4.54/13:
|
|
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
|
|
| 20.01.2016, 13:29 | |
|
Ответы с готовыми решениями:
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 как решение
РешениеНо я не уверен, что в указанной Вами статье всё правильно описано или что Вы правильно разобрались. Я, правда, ни ту статью не читал, ни в Ваш пересказ не вдумывался. За описанием "стандартного ЛМ" - в нормальные, "официально признанные" учебники по методам градиентной оптимизации. Какой брать - даже не подскажу, не разыскивал учебника именно с ЛМ. Помню только, что в Гилле-Мюррее-Райт ЛМ не описан. Так что - покопайтесь среди книг тут 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
|
|
| 29.02.2016, 22:00 | |
|
Помогаю со студенческими работами здесь
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, то после закрытия окошка. . .
|