Перейти к содержимому
Compvision.ru
mrgloom

deep learning

Recommended Posts

http://cs.nyu.edu/~fergus/tutorials/deep_learning_cvpr12/

курс лекций

быстро просмотрел, но так и не понял как так получается, что слои которые имеют большую абстракцию(более глубокие слои) при визуализации имеют больший размер?

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

и по идее если PCA несколько раз применить над данными, то размерность данных уменьшиться.

Image_20-02-2013%20%5B10-32-57%5D.png

Image_20-02-2013%20%5B10-36-22%5D.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Берем карту коэффициентов, и собираем из образов предыдущего слоя картинку как в методе главных компонент.

Затем то же самое повторяем с предыдущими слоями.

В результате, каждая картинка будет иметь размер входного слоя.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

да, впринципе логично.

кстати автоэнкодер нелинейный?

т.к. PCA то линейный и его последовательное применение ничего не даст(всмысле применять PCA на каждом слое).

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если сеть многослойная, то в ней должна присутствовать нелинейность.

Без нелинейной функции, любое количество слоев сводится к одному простым перемножением матриц весов.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А никто не знает хорошего описания на русском языке по Deep Learning? А то на английском вагон статей, а в рунете такое ощущение что никто не пользуется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот немного материала по-русски:

http://machinelearning.ru/wiki/images/f/f3/Deep_Learning.pdf

Здесь большой форум по машинному обучению (английский правда):

http://metaoptimize.com/qa/

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

я думаю по русски ничего и не найдешь.

по английски может материала и много, но всё равно много чего непонятного.

довольно много самих разновидностей нейросетей(RBF,Convolution neural network,Stacked Autoencoders,Deep belief nets,Denoising Autoencoders)+ еще много вариантов препроцессинга между слоями.

я бы не отказался от внятного туториала хотя бы на английском.

есть курс от Хинтона

https://www.coursera.org/course/neuralnets

+ еще у него на сайте лекций.

но объем всего этого как мне кажется довольно большой и широкий.

тут еще 2 ссылки на лекции

http://www.compvision.ru/forum/index.php?showtopic=1087

тут есть тудбокс для матлаба

https://github.com/rasmusbergpalm/DeepLearnToolbox

так что как мне кажется лучше отталкиваться от конкретной темы, например взять stacked autoencoders, как я понял последовательно обучается цепочка автоэнкодеров, т.е. по идее можно остановиться на любом кол-ве шагов, а на выходе мы должны получить сокращение размерности входных данных и типа репрезантивные новые фичи меньшей размерности, которые мы потом сможем применить например для классификации.

но метод вроде как тормозной+там опять же есть не очевидный препроцессинг whitening и pooling.

п.с. лучше перенести обсуждение в ветку про Deep Learning, вроде было уже несколько тем+ про sparse autoencoder.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

> Берем карту коэффициентов, и собираем из образов предыдущего слоя картинку как в методе главных компонент.

> Затем то же самое повторяем с предыдущими слоями.

> В результате, каждая картинка будет иметь размер входного слоя.

С опозданием на месяц кину ещё один вариант решения.

Берём любой образ, на котором нужный нам "глубокий" нейрон стал победителем среди своих соседей (выдал наибольший сигнал). И начинаем решать обратную задачу - так менять входной образ, чтобы ещё больше максимизировать выходной сигнал данного глубокого нейрона с одновременным уменьшением сигналов его соседей. Т.е. задача обучения с учителем, эталонные коды (1 и -1 или 1 и 0 для нейронов) очевидны. Метод решения - обычный бэкпроп, только обучающий не веса сети, а значения входных сигналов.

Т.е. если один глубокий нейрон реагирует на мужика, другой - на бабу, а на входе сети - картинка из камасутры, то "обучение" картинки может убрать с картинки ненужное (бабу или мужика), т.к. мы убираем то, на что реагировал другой нейрон (чья реакция нам не интересна)

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

кстати тут есть про применение нескольких слоёв kernel PCA перед SVM на манер deep learning.

так что это не лишено смысла.

http://www.cs.toronto.edu/~amnih/cifar/talks/erhan_talk.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

C++ реализация Хинтоновской сети (C++ 11 implementation of Geoff Hinton's Deep Learning): https://github.com/jdeng/rbm-mnist

Лекция по применению DBM (Recent Applications of Deep Boltzmann Machines by Ruslan Salakhutdinov): http://techtalks.tv/talks/recent-applications-of-deep-boltzmann-machines/58082/

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×