>Но к сожалению в языке C++ пока нет такой методики создания объектов
И я очень надеюсь что она и не появится. Ибо чревато всякими неожиданными эффектами
Как я понимаю, еще используют хитрую инициализацию
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).
Я абсолютно не спец в Deep Learning, поэтому могу не совсем верно использовать термины
Отсюда 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.
Ну я это понял как обучить смогли, но получили оверфит из-за слишком сложной модели при малом числе данных.
Если переобученную сеть нельзя считать за обученную сеть, то тогда я неправ.
Пример с этой сеткой я привел для того, чтобы показать, что проблема затухающих градиентов для сверхглубоких сетей может и не стоять, при правильно подобранной архитектуре.
Ну, а чем еще их учат то? Backprop (т.е. получение градиента) и разные варианты SGD. С затуханием борются с использованием незатухающих ф-ий (ReLU) и штук типа Batch Normalization, если я не ошибаюсь, конечно.
Тот же ResNet (в том числе и его версию из 1000 слоев), вполне обучили.
Под «честным», я имею ввиду обучение на всех размеченных данных без предобучения
Виноват, не понял что в вашем сообщении акцент на разметке.
Если честно, то мне казалось, что предобучение в основном использовалось чтобы ускорить обучение (и сейчас так уже делают редко).
А есть ли какие-нить бенчмарки которые бы сравнивали качество предобученных моделей + тюннинг и моделей обученных «честно»?
>Про питон — половина просто зашоренность автора
Кстати да. Более того, пример с отступами и вложенными if/else я бы использовал в качестве аргумента «за» отступы вместо {}
>это можно использовать как краткий справочник по особенностям языков программирования
Не стоит.
За все языки не скажу, но по части C/C++/Python/Haskell большая часть пунктов как минимум спорна.
Эм, я конечно извиняюсь, но вы точно «в теме»?
Residual networks это не библиотека, это вполне себе подход к организации архитектуры сети https://arxiv.org/pdf/1512.03385v1.pdf.
Batch Normalization/Layer Normalization это тоже не библиотеки.
>Да как бы на самом деле ничего революционного и грандиозного за последние годы в нейронных сетях — не было
Ну а как же ResNet, Batch normalization и прочие веселые штуки?
Я так понимаю, что при использовании семейства ReLU вместо сигмоид, хитрой инициализации и residual связей, проблема затухания градиентов не особо стоит
>К тому же часто проблема использования памяти — это не проблема языка, а проблема конкретного кода и алгоритмов.
Ну строго говоря нет. Язык может быть построен на принципах, которые трудно или невозможно реализовать без оверхеда (или грязных трюков).
Гипотетический язык с «честной» динамической типизацией будет априори проигрывать гипотетическому языку со статической типизацией (по производительности и потреблению памяти), к примеру.
Из того что я слышал про диаграммы Вороного (сам я не пытался разобраться), они могут в некоторых случаях требовать довольно много памяти, и построение такой диаграммы на 1 000 000 — 10 000 000 точек может занимать по полминуты. Для меня это довольно много.
Если я ошибаюсь, то буду рад об этом узнать =)
И я очень надеюсь что она и не появится. Ибо чревато всякими неожиданными эффектами
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).
Отсюда 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.
Ну я это понял как обучить смогли, но получили оверфит из-за слишком сложной модели при малом числе данных.
Если переобученную сеть нельзя считать за обученную сеть, то тогда я неправ.
Пример с этой сеткой я привел для того, чтобы показать, что проблема затухающих градиентов для сверхглубоких сетей может и не стоять, при правильно подобранной архитектуре.
Тот же ResNet (в том числе и его версию из 1000 слоев), вполне обучили.
Под «честным», я имею ввиду обучение на всех размеченных данных без предобучения
Если честно, то мне казалось, что предобучение в основном использовалось чтобы ускорить обучение (и сейчас так уже делают редко).
А есть ли какие-нить бенчмарки которые бы сравнивали качество предобученных моделей + тюннинг и моделей обученных «честно»?
Кстати да. Более того, пример с отступами и вложенными if/else я бы использовал в качестве аргумента «за» отступы вместо {}
Не стоит.
За все языки не скажу, но по части C/C++/Python/Haskell большая часть пунктов как минимум спорна.
Residual networks это не библиотека, это вполне себе подход к организации архитектуры сети https://arxiv.org/pdf/1512.03385v1.pdf.
Batch Normalization/Layer Normalization это тоже не библиотеки.
Ну а как же ResNet, Batch normalization и прочие веселые штуки?
Ну строго говоря нет. Язык может быть построен на принципах, которые трудно или невозможно реализовать без оверхеда (или грязных трюков).
Гипотетический язык с «честной» динамической типизацией будет априори проигрывать гипотетическому языку со статической типизацией (по производительности и потреблению памяти), к примеру.
Если я ошибаюсь, то буду рад об этом узнать =)