Comments 46
Хочется добавить лишь один нюанс, когда заходит речь о научных публикациях, мне всегда вспоминаются Гарри Марковиц, обладатель Нобелевской премии за экономическую теорию портфелей, на столько простую и очевидную, но никем ранее не озвученную из чисто шкурных соображений…
… так же и с нейро сетями вообще и глубокими в частности, имейте ввиду что задачка классификации картиночек, сложна и прикольна, но классификация состояний рынков куда проще и в хозяйстве полезней, ибо получить какой-либо прок от классификации картиночек в одиночку тяжело, один в поле не воин, чего не скажешь про биржевые баталии :-) so получив какой-либо значимый результат, вольный исследователь имеет веские причины о нём принципиально промолчать.
Вспоминая ту новость про выигрыш команды в конкурсе по написанию бота для DOOM, который должен был уметь ориентироваться на новых картах, успешно сражаться и собирать вещи: авторы сказали, что использовали несколько нейронных сетей.
Ну а вопрос, собственно, именно про целесообразность такого подхода: как уже известно, сети с большим количеством слоёв (на примере многослойного перцептрона) часто ошибаются, а с малым количеством могут банально не «понять» способ решения задачи. А если подобрать некое оптимальное значение количества слоёв, а затем использовать множество нейронных сетей с малым количеством выходов, но которые были бы специализированы на чём-то одном, а затем уже отдельные выводы шли как входные данные некоей новой обобщающей НС.
В принципе, идея на поверхности лежит, есть ли исследования реализаций?
Упомянутый конкурс ImageNet и набор данных для него состоит из 14 миллионов размеченных объектов в 21 тысяче категорий.
А когда ImageNet успел настолько подрасти? Вроде бы он как был ~1.2M картинок из 1000 классов, так и сейчас продолжает оставаться таких же размеров.
А сам ImageNet — иерархическая база знаний, а-ля wordnet для картинок. Отсюда и название.
Спасибо за замечание. Как-то никогда не задумывался, что этот датасет настолько огромен.
Кстати, а есть работы, где тренируются на полном датасете? В статьях вроде бы все пользуются этим самым 1000-классовым сабсетом, да и большинство статей у меня с этим датасетом воспроизводился.
К тому же уже столько работ на ilsvrc2012, что что-то новое на большем количестве данных будет не совсем честно сравнивать с существующими работами.
Тут было бы интересно посмотреть не в плане сравнения с уже имеющимися методами, а в целом понять: можно ли получить существенный буст качества методом "грубой силы". Типа потренировать тот-же ResNet-1001 на полном датасете, а потом приляпать его к Faster-RCNN и посмотреть, можно ли получить таким методом state of the art.
… и вот уже новое поколение пускается во все тяжкие, начиная почему-то с разу с больших задач, хотя куда логичней изучать свойства и подходы на элементарных примерах, когда и эксперимент-то не всегда нужен, всё тупо математически выводится
Если вы хотите построить очень совершенного чат-бота, вам где-то надо найти обучающую выборку. И возможно, вам придется вложить много денег в ее разметку.
Мне казалось, что как раз глубокие сети(точнее методы их обучения) и не требуют большого количества размеченных данных.
Если честно, то мне казалось, что предобучение в основном использовалось чтобы ускорить обучение (и сейчас так уже делают редко).
А есть ли какие-нить бенчмарки которые бы сравнивали качество предобученных моделей + тюннинг и моделей обученных «честно»?
То, о чем вы спрашиваете, живет под именем semi-supervised learning, и работает в общем-то довольно таки неплохо — на том же mnist-е имея 100 размеченных картинок и все остальное неразмеченное, можно получить около 1% ошибки [1]. Для сравнения — лучшие результаты с 50000 размеченных картинок это 0.5-0.3%. Для больших сетей не используется — слишком уж накладно по вычислениям.
[1] https://arxiv.org/abs/1606.03498, таблица 1.
в основном люди берут сеть, обученную на imagenet-е и тюнят ее для своих задач
Так это и есть предобученная сеть.
Тот же ResNet (в том числе и его версию из 1000 слоев), вполне обучили.
Под «честным», я имею ввиду обучение на всех размеченных данных без предобучения
Насколько я понимаю, ReLU помогает против паралича сети. От затухания градиента не помогает. Методы увеличивающие learning rate тоже не про это (это про Batch Normalization)
Про ResNet знаю очень мало.
Мне кажется, что будущее как раз за обучением с минимумом размеченных данных, т.е. без учителя.
Про ResNet знаю очень мало.
Там вся идея в том, чтобы как можно дальше по сети пропихивать "остатки" полезного синала, тем самым увеличивая общую глубину сети, получая более сложные иерархические фичи.
http://www.jmlr.org/proceedings/papers/v28/sutskever13.pdf
Статью я сам пока не осилил, но
>More recently, Martens (2010)… is capable of training DNNs from certain random initializations without the use of pre-training, and can achieve lower errors for the various auto-encoding tasks considered by Hinton & Salakhutdinov (2006).
- Our labeled datasets were thousands of times too small.
- Our computers were millions of times too slow.
- We initialized the weights in a stupid way.
- We used the wrong type of non-linearity.
Batch Normalization (как и Layer Normalization, Weight Normalization и множество других) не имеет отношения к learning rates. ReLU помогает тем, что у него, в отличие от насыщающихся нелинейностей вроде сигмоиды или гиперболического тангенса, градиент существенно отличен от нуля в гораздо большей части пространства.
ResNet'ы как раз борются с затухающими градиентами, идея там внутри такая же, как и в LSTM (Шмитдхубер даже назвал ResNet'ы частным случаем LSTM)
в том числе и его версию из 1000 слоев
А разве обучили? Насколько я помню из оригинальной статьи, авторы её попробовали тренировать, а потом сказали, что в ImageNet картинок мало, поэтому сетка недотренировалась.
Отсюда https://arxiv.org/pdf/1512.03385v1.pdf
>Our method shows no optimization difficulty
В пункте про обучение 1к сетки
>The testing result of this 1202-layer network is worse than that of our 110-layer network, although both have similar training error. We argue that this is because of overfitting.
Ну я это понял как обучить смогли, но получили оверфит из-за слишком сложной модели при малом числе данных.
Если переобученную сеть нельзя считать за обученную сеть, то тогда я неправ.
Пример с этой сеткой я привел для того, чтобы показать, что проблема затухающих градиентов для сверхглубоких сетей может и не стоять, при правильно подобранной архитектуре.
Ну да, что-то такое, "фокус не удался", но в целом идея тащит, в достаточно больших сетях куда втыкаешь Residual connections — дает буст :-)
Хм, про RBM'ы последние пару-тройку лет что-то вообще не слышно в вижене (последнее что я слышал — это как на RBM'ах делали инвариантные к повороту фичи). В основном сейчас исопльзуют предтренированные на ImageNet сети, а потом уже да, файнтюнят, но там тоже датасеты не вот чтобы очень маленькие для тюнинга.
AlexNet это обычная CNN из 8 уровней. Сделана учеником Хинтона. Алгоритм обучения, к сожалению, не совсем ясен. Вот кто делал CNN тот знает, что на 8 уровнях back prop работает плохо.
Деконструкция мифа о глубоком обучении. Лекция в Яндексе