Comments 22
Используем здесь weight decay
Вы используете learning rate decay.
Weight decay — это L2 регуляризация параметров модели.
+3
состязательные сети.
+2
Эммм… звучит короче и читабельней, чем «состязающиеся», но это точно нормально с точки зрения русского языка? Не уверен, но гугл выдает скорее «состязательные мероприятия/состязательные игры» и т.д., не «состязательные спортсмены».
Хотя черт, после того, как автоэнкодер мне предложили перевести как «автокодировщик» — берем!))
Хотя черт, после того, как автоэнкодер мне предложили перевести как «автокодировщик» — берем!))
0
Спасибо за статью!
Немножко напомнило первую половину доклада отсюда — events.yandex.ru/lib/talks/2431
Немножко напомнило первую половину доклада отсюда — events.yandex.ru/lib/talks/2431
+1
Не за что)
Немного послушал, и правда похоже, ха. Не знаете, они зарелизили эту свою сеть с двумя ветками где-нибудь в статье?
Немного послушал, и правда похоже, ха. Не знаете, они зарелизили эту свою сеть с двумя ветками где-нибудь в статье?
0
+1
Восхитительно!
Но зря я на ночь эти гифки посмотрел.
Но зря я на ночь эти гифки посмотрел.
0
А можно же фальшивомонетчика развернуть, предъявлять ему изображения и он будет выдавать рецепт, потом по расстоянию между рецептами (разности чисел) можно будет определить насколько похожи 2 изображения друг на друга? Так как я понял, что в пространстве рецептов похожее располагается рядом. Или это только у них в DCGAN так получились?
0
Так точно на оба вопроса) Интересная мысль.
Ситуация слегка осложняется тем, что мы до сих пор не знаем, какой кусок рецепта что означает (т.е. мы не знаем, как их сравнивать — может, 90% рецепта контролирует какие-то тонкости типа цвета обоев за спиной, которые к похожести не имеют отношения?), а вот можно ли это как-то выяснить? Скажем, развернуть сеть вашим способом, закидывать туда парочки изображений с контролируемыми различиями и смотреть, что в рецепте поменяется, хм…
Ситуация слегка осложняется тем, что мы до сих пор не знаем, какой кусок рецепта что означает (т.е. мы не знаем, как их сравнивать — может, 90% рецепта контролирует какие-то тонкости типа цвета обоев за спиной, которые к похожести не имеют отношения?), а вот можно ли это как-то выяснить? Скажем, развернуть сеть вашим способом, закидывать туда парочки изображений с контролируемыми различиями и смотреть, что в рецепте поменяется, хм…
+1
Хорошая статья, спасибо.
Интересно, насколько мощным должен быть дискриминатор и как изменится тренировка при увеличении его параметров (слоев).
Вообще, сейчас есть модная тенденция делать генеративные модели с помощью RNN:
www.youtube.com/watch?v=Zt-7MI9eKEo
arxiv.org/pdf/1502.04623.pdf
Интересно, насколько мощным должен быть дискриминатор и как изменится тренировка при увеличении его параметров (слоев).
Вообще, сейчас есть модная тенденция делать генеративные модели с помощью RNN:
www.youtube.com/watch?v=Zt-7MI9eKEo
arxiv.org/pdf/1502.04623.pdf
+1
Не за что) Мощность дискриминатора обсуждают в том же посте, откуда заглавная гифка — насколько я понимаю, верхняя граница должна быть меньше, чем у генератора, а вот нижняя должна плавать и влиять на точность подделок.
О, кстати, спасибо, что напомнили про DRAW — давно ее мельком видел, и каким-то образом забыл) Хочу попробовать дальше разобрать еще немного порождающих моделей (NADE, модные вариационные автоэнкодеры), возьмем и эту тоже)
О, кстати, спасибо, что напомнили про DRAW — давно ее мельком видел, и каким-то образом забыл) Хочу попробовать дальше разобрать еще немного порождающих моделей (NADE, модные вариационные автоэнкодеры), возьмем и эту тоже)
0
Ух, дочитал, спасибо за статью! В первое прочтение не осилил, но дополнительная статья (https://habrahabr.ru/post/278425/) очень помогла прочитать во второй раз.
Чуть-чуть субьективного фидбека — плиз, прописывайте более явно что является входом и выходом различных сетей.
Например, вот в этом фрагменте:
мне кажется важным выделить, что во время тренировки discriminator на одной и той же сети прогоняется на паре изображений, результат смешивается, и градиент считается от этого значения на все веса.
Или вот случайный шум, который подается на вход генератора — это вектор? Двумерная картинка?
Если вектор — как он приводится к двумерному массиву, чтобы convolutions начали работать?
Чуть-чуть субьективного фидбека — плиз, прописывайте более явно что является входом и выходом различных сетей.
Например, вот в этом фрагменте:
мне кажется важным выделить, что во время тренировки discriminator на одной и той же сети прогоняется на паре изображений, результат смешивается, и градиент считается от этого значения на все веса.
Или вот случайный шум, который подается на вход генератора — это вектор? Двумерная картинка?
Если вектор — как он приводится к двумерному массиву, чтобы convolutions начали работать?
0
Привет! Спасибо за фидбек.
Наверное, я думал, что сработает метафора — таки для сравнения подделок и оригиналов надо смотреть на оба сразу)
Шум — двумерный, ага, чтобы свертки могли по нему проходиться. Он сразу сэмплится в таком виде. Точнее даже в форме (batch_size, 1, width, height), чтобы совпадал с размерностями feature-mapов в сверточной сети.
У меня это выглядит так:
(отстраненно глядя на свой код)… понятия не имею, нафига тут reshape, когда в numpy можно сразу передать size сэмплеру)
Наверное, я думал, что сработает метафора — таки для сравнения подделок и оригиналов надо смотреть на оба сразу)
Шум — двумерный, ага, чтобы свертки могли по нему проходиться. Он сразу сэмплится в таком виде. Точнее даже в форме (batch_size, 1, width, height), чтобы совпадал с размерностями feature-mapов в сверточной сети.
У меня это выглядит так:
np.float32(np.random.random((n, NOISE_HEIGHT * NOISE_WIDTH * 1)).reshape(n, 1, NOISE_HEIGHT, NOISE_WIDTH))
(отстраненно глядя на свой код)… понятия не имею, нафига тут reshape, когда в numpy можно сразу передать size сэмплеру)
0
Мне кажется шум фальшивомонетчика это своего рода ДНК, по которому фальшивомонетчик может построить нужный образ (организм). Т.о. если как-то скрещивать такие ДНК, то можно получить заранее нужный результат. В вашей статье ощущаются отголоски генетических алгоритмов.
0
Опечатка: Disriminative -> Discriminative
Странно, что за полтора года никто не заметил :)
0
Sign up to leave a comment.
Фальшивомонетчики против банкиров: стравливаем adversarial networks в Theano