Pull to refresh

Comments 11

Тот случай когда вроде и интересно, но непонятно абсолютно все.
Caffe — хорошая штука. Плюсую за обзор. Но введение не помешало бы. Так сходу непонятно о чем речь, если не работал с этим раньше.

Пара рецептов улучшить качество:
— используйте солвер adagrad
— используйте слои нормализации (local response normalization)
и, самое действенное для картинок
— можно использовать трансформацию и дополнение данных: вращать, менять масштаб, зашумлять и т.п.

Также, если скачать и установить библиотечку CuDNN от Nvidia, можно скорость сверток увеличить 1.5-3 раза.
Статья хорошая, но исключительно с инженерной точки зрения.
Взят готовый фреймворк, показано как его использовать.

Это хорошо

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

б) для человека, который и не хочет разбираться и/или ему не нужно разбираться в том, как все устроено внутри,
но который просто хочет, использовав фреймворк, быстро решить задачу.(обычный технарь)

Я не принадлежу ни к первой ни ко второй категории. Я хочу разобраться в том, как все устроено «under-the-hood».
Если автор статьи разбирается в этом вопросе, буду очень благодарен за разъяснения/ссылки/книги с детальным описанием
сверточных сетей. Что называется «на пальцах».

Конкретно у меня возникли трудности в том, как реализован алгоритм обратного распостранения ошибки для convolutional слоя в CNN.

Что я перепробовал:

1) Реверс-инжиниринг неоднозначных формул
Я перерыл довольно много открытых источников, включая стендфортский туториал.
В том же стендфортском туториале есть формулы касательно алгоритма обратного распостранения ошибки для convolutional слоев.
Но при этом не указана архитектура сети. Не указаны связи между слоями. Без указания этих связей формулы противоречивы и
неоднозначны. Из-за этого приходится реверс-инжинирить эти формулы, чтобы
понять какие конкретно связи существуют в их конкретной сети. К тому же, это всего-лишь частный случай.

2) реверс-инжиниринг готовых реализаций
Еще я натыкался на несколько реализаций сверточных сетей, где реализован сам алгоритм обратного распостранения через сверточный слой.
Но там приходится реверс инжинирить код и по нему понимать как работает бэкпропагэйшн через сверточный слой. Код не всегда простой
и я не уверен, что я на 100% правильно этот код реверс-инжинирю( в математике важна точность, поэтому мне хочется быть уверенным на 100%)

3)Еще не попробовал. Но есть идея
Забить конкретную сверточную сеть в maple. И посчитать символьные производные по каждому конкретному весу.
Исходя из этих значений этих символьных производных понять, почему все именно так.
Но этот 3й пункт — reinventing the wheel(изобретение велосипеда).

Все 3 метода являются в той или иной мере непрямыми и это получение знаний не напрямую а-ля
«это работает так потому-то и потому-то» и поэтому требуют очень много времени, усилий. И нервов :)

Поэтому хотелось бы найти что-нибудь с детальным описанием архитектуры сети «до конкретной связи между нейронами»
и самыми детальными формулами относящимися к этой конкретной архитектуре.

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

Но при этом не указана архитектура сети
Зачем знать архитектуру сети? Все 3 операции (свёртка, pooling и нелинейное преобразование функцией активации) дифференцируемы, в том самом Стэнфордском туториале даже говорится, как их градиенты посчитать, а уж в каком порядке Вы накидаете этих операций — сугубо Ваше дело.

Можете ещё на черновик книги Y. Bengio, I. Goodfellow, A. Courville посмотреть.
Могу посоветовать http://cs231n.stanford.edu/syllabus.html.
Слайды и записи лекций (notes) хороши.

На данный момент этот курс продолжается, поэтому время от времени появляются новые материалы.
theano — не библиотека, theano — компилятор для GPU.
для библиотеки на основе theano, см., скажем, pylearn2.
UFO just landed and posted this here
UFO just landed and posted this here
Sign up to leave a comment.

Articles