Домен arhivach.hk временно не функционирует! Используйте адрес ARHIVACH.SITE.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Распознаватель капчи вакабы

 Аноним 15/02/15 Вск 21:22:12 #1 №437727 
14240245323650.png
Сап, /пр. Я тут случайно капчу вакабы.
Код: https://github.com/sorrge/wakabaYes

Распознает стандартную капчу вакабы с довольно сильными искажениями. Работает только если большинство букв не пересекаются на картинке.

Делал примерно неделю, для изучения тонкостей работы сверточных нейронных сетей. Получилось в принципе неплохо, на уныле точность близка к 100%. Пришел к выводу, что изначально выбрал не очень удачную стратегию с отдельными этапами сегментации и распознавания. Чтобы значительно повысить точность на более сложных примерах, где буквы сливаются, нужно как-то одновременно сегментировать и распознавать. Текущий метод для этого не годится. Тем не менее я добился цели, которую изначально ставил.

Отвечу на вопросы, да и просто можно обсудить нейронные сети, распознавание и близкие темы.
Аноним 15/02/15 Вск 21:27:44 #2 №437732 
>>437727
теперь пэйпер напиши
Аноним 15/02/15 Вск 21:39:55 #3 №437736 
>>437732
Там писать не о чем, я применил давно известные технологии. Только в целях обучения интересно. Такой тип НС (LeNet-5) использовался для распознавания рукописных цифр с 90-х годов.

Но если в 90-х для тренировки сети нужен был суперкомпьютер, то сейчас это занимает у меня полчаса на ноуте, лол.
Аноним 15/02/15 Вск 21:54:19 #4 №437745 
>>437727
Что мне почитать, чтобы стать таким же крутым?
t. ньюфаг, учу Си
Аноним 15/02/15 Вск 22:00:13 #5 №437751 
Теперь напиши вайп-машину и примени распознаватель в ней.
Аноним 15/02/15 Вск 22:01:45 #6 №437752 
>>437736
Ну какие технологии, мы все тут тёмные ты напиши в 20 предложениях что сделал, чтобы все охуели какой ты крутой.
Аноним 15/02/15 Вск 22:11:29 #7 №437761 
>>437745
Рекомендую очень хороший курс машинного обучения на курсере: https://www.coursera.org/course/ml
Понадобятся базовые знания матана и линейной алгебры. Там объясняются основные алгоритмы, идеи, даются рекомендации по практическому применению. 10/10.

Для выработки практических навыков можно попробовать поучаствовать в соревнованиях на http://www.kaggle.com/ . Чтобы что-то выиграть там надо быть очень, очень крутым, но для тренировки он тоже хорош. Заодно и видишь, куда тебе стремиться, лал.

Ну а конкретно за глубоким обучением - на http://deeplearning.net/ . Это продвинутый уровень уже. Этот проект сделан на модифицированном туториале оттуда.
Аноним 15/02/15 Вск 22:24:53 #8 №437770 
14240282936660.gif
>>437752
Схема такая.

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

Каждая отдельная буква центрируется и подается на вход сверточной НС (https://ru.wikipedia.org/wiki/%D0%A1%D0%B2%D1%91%D1%80%D1%82%D0%BE%D1%87%D0%BD%D0%B0%D1%8F_%D0%BD%D0%B5%D0%B9%D1%80%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D0%B5%D1%82%D1%8C ). Сеть натренирована на ~260000 примеров отдельных букв, сгенерированных скриптом вакабы. На выходе получается вектор вероятностей букв для входного изображения.

Дальше работает алгоритм, который идет по грамматике капчи вакабы и выбирает наиболее вероятный путь при данных вероятностях отдельных символов. Это не очень просто, т.к. может быть несколько путей генерации одного и того же слова. Приходится запоминать несколько наиболее вероятных путей. Сложно так на словах объяснить алгоритм, легче посмотреть в коде. Ну и на выходе выбирается самый вероятный путь.

Это все повторяется несколько раз с использованием разных параметров разбиения склеившихся букв и выбирается самый вероятный результат.
Аноним 15/02/15 Вск 22:32:59 #9 №437775 
>>437770
ну я так и подумал, молодец чо.
Аноним 16/02/15 Пнд 08:36:52 #10 №437878 
Просто бампану. На фоне тредов школьников и быдлосьудентов будем смотреться как марципанчик в куче говна.
Аноним 16/02/15 Пнд 09:45:56 #11 №437884 
>>437727
На самом деле всё проще. Нужно делать как Яндекс - создать сервис, где люди будут сами определять каптчу.

Скажем сделай страницу со скачкой желанного контента и переноси туда каптчу, получай ответ и вводи в реальное поле.
Аноним 16/02/15 Пнд 10:25:13 #12 №437893 
>>437878
Утешай, утешай себя няша, что никто не догадался залезть на твой гитхаб и увидеть кучи пиздец-говна.

> inb0 зато работаит!!11
Аноним 16/02/15 Пнд 11:26:17 #13 №437897 
>>437893
Странный язык Питон, чтобы не делал на нем получается кусок говна из кусков говна(
Аноним 16/02/15 Пнд 14:19:39 #14 №437931 
>>437884
Таких сервисов есть несколько, где людям деньги платят за вбивание капчи. Мне кажется, дела у них плохи - экономически невыгодно. Вбивание капчи не приносит достаточно профита, чтобы оплатить человеку услугу ее распознавания.
Аноним 16/02/15 Пнд 17:18:37 #15 №437993 
Для хуяндекс капчи хотя бы 50% реально получить? Даже на циферки не представляю как нарезать.
Аноним 16/02/15 Пнд 17:41:27 #16 №437996 
>>437993
Вот у этого чувака 1% вроде: http://geektimes.ru/post/64535/
Правда, там сплошной discover imageshack, и непонятно, точно такая же это капча или что-то поменялось уже.

У него простой подход, так что можно попытаться улучшить с использованием "новых" технологий, которые я применил для вакабы. Удастся ли дожать до 50% можно узнать только проделав всю работу.
Аноним 16/02/15 Пнд 19:23:43 #17 №438029 
>>437727
На полгода опоздал, никакой макабы уже и в помине нет.
Аноним 16/02/15 Пнд 20:41:10 #18 №438062 
>>437727
ДОПУСТИМ Я ПЕРЕПИШУ ТВОЙ КОД ЧТО ОН БУДЕТ РАБОТАТЬ В 500 РАЗ БЫСТРЕЕ
КАК МНЕ ПОВЫСИТЬ РАЗРЕШАЮЩУЮ СПОСОБНОСТЬ И СПОСОБНОСТЬ К РАСПОЗНОВАНИЮ?
Аноним 16/02/15 Пнд 21:28:39 #19 №438092 
14241113197060.png
>>438029
>макабы
>вакабы

>>438062
Да, сделать гораздо быстрее его можно. Но сейчас распознавание занимает 0.05с, это быстрее, чем капча генерируется и передается, так что я не стал морочиться.

>КАК МНЕ ПОВЫСИТЬ РАЗРЕШАЮЩУЮ СПОСОБНОСТЬ И СПОСОБНОСТЬ К РАСПОЗНОВАНИЮ?
Ну разрешение повысить элементарно, надо просто сеть побольше сделать. Естественно, пропорционально возрастет и количество весов и время/сложность тренировки.

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

Если рассматривать более сложные капчи, как яндексовскую, то там LeNet5, боюсь, может уже не справиться. Нужно будет пробовать более хардкорные штуки с пре-тренировкой из асенала глубокого обучения. Опять же рекомендую на эту тему посмотреть туториал с http://deeplearning.net/ , там расписаны многие алгоритмы.

Если тебя интересует прям совсем передний край науки, посмотри http://arxiv.org/abs/1502.01852 и то, на что они ссылаются. Эти сети распознают картинки лучше людей.

Пикча: активации на двух сверточных слоях на нескольких примерах.
Аноним 17/02/15 Втр 03:29:45 #20 №438302 
>>438092
>Да, сделать гораздо быстрее его можно. Но сейчас распознавание занимает 0.05с, это быстрее, чем капча генерируется и передается, так что я не стал морочиться.
НО КРОМЕ ЕТОЙ КАПЧИ ЕСТЬ МНОГО РАЗНЫХ ПОСЛОЖНЕЕ
НЕ ДУМАЮ ЧТО ХВАТИТ РАЗРЕШАЮЩЕЙ СПОСОБНОСТИ 1ГО СЛОЯ ДЛЯ ИХ РАСПОЗНАНИЯ
Аноним 17/02/15 Втр 03:30:46 #21 №438303 
>>438092
>Нужно сделать сегментацию тоже на НС. Т.е. одна НС тренируется, чтобы определять границы между символами, а вторая распознает сами символы. Потенциально это может быть точнее, но работы много.
А НАСЧЕТ СЕГМЕНТАЦИИ У МЕНЯ ЕСТЬ ХОРОШИЕ ИДЕИ
Аноним 17/02/15 Втр 03:55:49 #22 №438308 
А хуле толку? На хабре уже кто-то статью писал о том же, там всё пошагово. Ты вот тоже прошёл туториал, молодец. Но хуле с этого толку? Кому это нужно?
Аноним 17/02/15 Втр 04:59:43 #23 №438310 
>>438308
МНЕ НУЖНА
А НА ХАБРЕ ГОТОВУЮ ПРОГРАММУ ДАВАЛИ?
Аноним 17/02/15 Втр 05:03:43 #24 №438312 
>>437727
The classifier is pre-trained; I do not provide the code and the data to train it.
ПОЛНОСТЬЮ БУДЕШ ПУБЛИКОВАТЬ?
Аноним 17/02/15 Втр 12:00:20 #25 №438356 
>>438312
Только заинтересованным лицам и только за оговоренную сумму, или приём на работу в государственную структуру
Аноним 17/02/15 Втр 13:08:32 #26 №438388 
>>438302
Разрешение входной картинки не так уж принципиально на самом деле. Примерно 25x25 должно быть достаточно. Цифры капчи яндекса, например, если уменьшить их до такого размера, вполне читаемы. Может, какой-то супер метод и может дополнительную информацию извлечь из большего разрешения, но мне пока до этого далеко.

>>438303
Расскажи, можем обсудить это, если интересно.

>>438312
Код тренировщика публиковать не собираюсь. Там все слишком сумбурно и не реюзабельно. Если ты хочешь натренировать другой классификатор, лучше пиши сам - это очень полезно для обучения. Там много тонкостей. Я этим как раз занялся, чтобы лучше понять, как это все работает.

Могу помочь, если что-то будет непонятно.
Аноним 17/02/15 Втр 13:10:41 #27 №438391 
>>438308
Лично мне было бы интересно. На Хабре дремучий примитив, преданья старины глубокой.
Аноним 17/02/15 Втр 16:08:33 #28 №438501 
>>437878
Кодачую
Аноним 17/02/15 Втр 16:31:39 #29 №438509 
>>438501
Это что стёб такой?
Прогресс конечно очевиден по сравнению с 1999 года, но всё-таки
Аноним 17/02/15 Втр 17:06:55 #30 №438520 
>>438388
>Расскажи, можем обсудить это, если интересно.
НЕ БУДУ Я С ТОБОЙ НИЧЕ ОБСУЖДАТЬ РАЗ ТЫ ПОЛНОСТЬЮ НЕ ХОЧЕШ ОПУБЛИКОВАТЬ
Аноним 17/02/15 Втр 17:08:19 #31 №438522 
>>437727
У ТЕБЯ ТАМ ВСЮДУ КЛАСТЕРИЗАЦИЯ ЧТОЛЬ КРОМЕ ПОСЛЕДНИХ СЛОЕВ КОТОРЫЕ ОБУЧАЮТСЯ?
Аноним 17/02/15 Втр 17:10:57 #32 №438523 
>>437727
Круто, реально круто, чувак
Аноним 17/02/15 Втр 17:25:53 #33 №438529 
14241831533320.jpg
>>438523
Аноним 17/02/15 Втр 17:26:47 #34 №438530 
ОП, а ты работаешь джава-богом, стало быть?
Аноним 17/02/15 Втр 18:41:07 #35 №438563 
>>438530
Мы на дельфях ком-порт программируем, с шифрованием работаем, код Цезаря юзаем.
Нейроные сети это для души)
Аноним 17/02/15 Втр 18:53:03 #36 №438568 
>>438563
>дельфях
Чуть не сблеванул.
Аноним 17/02/15 Втр 19:57:07 #37 №438584 
>>438530
Пишу на многих языках. На работе сейчас по большей части R и матлаб. Биоинформатик я.
На джаве это ради кроссплатформенности.

>>438520
Мне это подходит.
Аноним 17/02/15 Втр 20:27:26 #38 №438595 
>>438584
У ТЕБЯ ТАМ ВСЮДУ КЛАСТЕРИЗАЦИЯ ЧТОЛЬ КРОМЕ ПОСЛЕДНИХ СЛОЕВ КОТОРЫЕ ОБУЧАЮТСЯ?
НЕ БУДЕШ ОБСУЖДАТЬ ТЕБЯ ЗАБАНЯТ ЗА ПИАР СВОЕЙ ЗАДНИЦЫ
sageАноним 17/02/15 Втр 21:17:51 #39 №438610 
>2015
>перцептрон
Аноним 18/02/15 Срд 00:36:22 #40 №438678 
>>438509
Никакой не стеб.
Хоть что-то интереснее поиска максимального элемента в массиве и физбаза
Аноним 18/02/15 Срд 01:40:29 #41 №438697 
Полон тред бомбанувших питушков, у кого не хватает силы воли, чтоб углубиться в какую-то такую область. ОПу сладкую лису.
Аноним 18/02/15 Срд 01:40:49 #42 №438698 
14242128495680.jpg
Аноним 18/02/15 Срд 02:20:30 #43 №438711 
>>438697
Углубился в область ануса твоей мамаши.
sageЕБА ТРИПКОД ЗАБАНИЛИ! 18/02/15 Срд 11:03:21 #44 №438782 
http://code.google.com/p/cuda-convnet/
Аноним 19/02/15 Чтв 21:51:27 #45 №439534 
14243718878920.png
Вот еще нашел образовательный сайт, где можно запусткать демки алгоритмов глубокого обучения прямо в браузере: http://cs.stanford.edu/people/karpathy/convnetjs/
Аноним 19/02/15 Чтв 21:52:58 #46 №439536 
>>437727
А ГОВОРЯТ ЧТО БОТЫ КАРТИНКИ РАСПОЗНАВАТЬ НЕ МОГУТ.
Аноним 19/02/15 Чтв 23:19:54 #47 №439559 
оп, а на PHP умеешь ?
Аноним 19/02/15 Чтв 23:32:54 #48 №439562 
>>437727
>HashMap<CharSequence,
не делай так больше
Аноним 19/02/15 Чтв 23:49:38 #49 №439564 
>>439559
Умею немного, даже когда-то браузерку простую делал.

>>439562
Там такого нет, тебе показалось. В любом случае не вижу проблемы.
Аноним 20/02/15 Птн 00:05:08 #50 №439571 
Вот ещё одна интересная история успеха
http://habrahabr.ru/post/126373
Аноним 20/02/15 Птн 00:18:00 #51 №439573 
>>439564
Ну епт, CharSequence и Character перепутал .

>В любом случае не вижу проблемы.
Подумай ещё раз в чем может быть проблема, особенно если такая конструкция появляется в каком-нибудь публичном API.
Аноним 20/02/15 Птн 00:21:37 #52 №439574 
>>439573
Про CharSequence прочитал, что сравнение у него не определено. Не знал, спасибо.

С Character такой проблемы нет.
Аноним 20/02/15 Птн 00:32:33 #53 №439580 
Не понимаю пользы этого говна, если честно.
Все что могут подобные поделки - научить некую сущность написанную на чистом говнокоде распознавать однотипные картинки.

То есть ты им подсовываешь картинки с заранее известным результатом и модерируешь через обратную связь весовые коэфициенты.

В чем польза? Твоя прога сможет распознать баннер тематической доски двача? Нет? Тогда нахуй не надо. Это все говнокодерство и поделки уровня Алексея Бабушкина.
Аноним 20/02/15 Птн 00:42:42 #54 №439584 
>>439580
что тебе нужно, там вполне нормальный/читаемый код, кстати, лучше чем у 70% быдло-джава энтерпрайз погроммистов. Разве что именования иногда говнистые и не джавовский naming convention

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

Теперь осталось освоить OpenCV, для быстрого прототипирования перейти на Scientific Python (numpy scipy, scikit-learn, ipython notebook), немного поиграться на kaggle и можно начинать работать не быдло-макакой, а белым человеком.
Аноним 20/02/15 Птн 01:07:15 #55 №439591 
>>439584
Во что на кэггле посоветуешь поиграть?
sageАноним 20/02/15 Птн 05:54:26 #56 №439627 
>>439584
НИХУЙЯ ОН НЕ ДЕЛАЛ, ВЗЯЛ ГОТОВЫЙ ПРОДУКТ И РЕЗУЛЬТАТ ЕГО РАБОТЫ ПЕРЕПИСАЛ НА ДЖАВЕ
Аноним 20/02/15 Птн 13:46:49 #57 №439738 
>>438308
а про "грамматику" и пути где на хабре сказано? Как-то не понял эту часть распознавания.
Аноним 20/02/15 Птн 14:06:43 #58 №439749 
>>437727
Зачем ява? Есть же божественные Theano, Torch, которые и градиенты сами за тебя возьмут, и всё-всё-всё.
Аноним 20/02/15 Птн 14:09:12 #59 №439750 
>>439627
Ты не прав. Там готовый продукт написан на высокоуровневом фреймворке. Попробуй так же ПРОСТО ПЕРЕПИСАТЬ, охуеешь.
Аноним 20/02/15 Птн 16:55:11 #60 №439826 
>>439738
Попробую объяснить это немного подробнее.

Слово для капчи в вакабе генерируется с помощью грамматики. На каждом разветвлении при раскрытии нетерминала выбирается случайная ветка, с равной вероятностью. Таким образом мы имеем априорное распределение вероятностей на множестве всех слов, причем подавляющее большинство последовательностей букв имеют нулевую вероятность, т.к. не допускаются грамматикой. Это можно использовать для коррекции побуквенного распознавания. Простой пример: пусть классификатор назначил такие вероятности для первых двух букв: q=0.9, o=0.1 для первой и v=0.99, u=0.01 для второй. Наивный побуквенный алгоритм выбрал бы самые вероятные буквы, получив qv. Но это недопустимая последовательность по грамматике. Алгоритм, который это учитывает, выберет ov, вероятность которого выше.

Чтобы абсолютно точно расчитать апостериорную вероятность, нужно перебрать все возможные цепочки, допустимые в грамматике, и оценить вероятность каждой. Но их огромное количество, поэтому я обрезаю перебор, когда вероятности становятся слишком маленькими. Т.к. путей для генерации одной и той же цепочки может быть несколько, приходится запоминать вероятности уже пройденных цепочек, и обновлять их при повторном их прохождении. Для этого у меня строится дерево возможных цепочек с их вероятностями. Оно тоже обрезается, чтобы не сильно разросталось.

Надеюсь, стало понятнее.

>>439749
Классификатор натренирован именно на теано. Но тянуть его в конечный продукт не имеет смысла: у него сотни мегабайт зависимостей, в т.ч. gcc, питон, многочисленные пакеты для него. Это никто не будет устанавливать, кроме энтузиастов машинного обучения. В то же время в рантайме нужно всего лишь пару простейших операций определить.
Аноним 20/02/15 Птн 17:54:00 #61 №439884 
>>439826
УЗКОСПЕЦИАЛИЗИРОВАННОЕ ГАВНИЩЕ КОРОЧЕ
Аноним 20/02/15 Птн 17:56:19 #62 №439886 
>>439826
ДАВАЙ ПУБЛИКУЙ СКРИПТЫ ТЕАНО ИЛИ ЧЕ ТАМ ЕСТЬ
ПРИМЕРЫ ДЛЯ ОБУЧЕНИЯ САМ ГЕНЕРИРОВАЛ ИЛИ СКАЧИВАЛ И ВРУЧНУЮ РАСПОЗНОВАЛ?


sageАноним 20/02/15 Птн 17:57:56 #63 №439889 
>>439886
как дила
девки дают
Аноним 20/02/15 Птн 21:41:28 #64 №440083 
Оп, где биоинфоматиком работаешь? Какие задачи выполняешь? Как к ней пришел? Какая ЗП?
Аноним 22/02/15 Вск 15:36:40 #65 №440850 
>>440083
В одной норвежской конторе. Занимаюсь анализом данных. Шел к этому очень долго. Суть можно описать как "постепенное углубление специализации".
ЗП для Норвегии так себе, элитные кодеры гребут в разы больше. Мне хватает.
Аноним 22/02/15 Вск 20:11:41 #66 №440925 
Оп, я так понимаю, выбор именно сверточной сети для того, чтобы распознавать буквы независимо от их поворота и т.п.? Для этой задачи разве не лучше подойдет растущий нейронный газ http://www.sciencedirect.com/science/article/pii/S0925231213009259 или карты Кохонена?
Аноним 22/02/15 Вск 20:49:52 #67 №440940 
>>440925
Я не очень понял, как карты Кохонена могут помочь с распознаванием независимо от трансформаций. Не видел статей на эту тему. Можешь пояснить?

Про растущий нейронный газ я почти ничего не знаю.

А сверточные сети давно себя зарекомендовали на этом поприще. К тому же в данном случае мне было интересно попробовать новомодное глубокое обучение в деле, поэтому такой выбор.
Аноним 23/02/15 Пнд 17:37:37 #68 №441308 
14247022579280.gif
Что скажете об этой капче? Все совсем плохо?
sageАноним 23/02/15 Пнд 17:38:26 #69 №441309 
>>441308
скример
Аноним 23/02/15 Пнд 18:03:04 #70 №441326 
>>441308
Сегментировать по цветам, потом в НС.
Аноним 23/02/15 Пнд 18:56:23 #71 №441361 
>>438092
> http://arxiv.org/abs/1502.01852

ох ебать.

поясните что из себя представляет этот набор ImageNet? Есть изображение которое нужно распознать, так? Для его распознавания сеть дрессируют на неком материале - это тоже картинки. К тренировочным картинкам добавлены какие-то смысловые тэги? Которые потом вероятностно назначаются при рассмотрении главной картинки? На каком этапе происходит увязка содержимого изображения с текстовым стрингом?

мимо-нейробиолох
Аноним 23/02/15 Пнд 20:42:57 #72 №441407 
>>441361
Есть такая старая база слов, называется WordNet. В ней слова организованы в иерархию, например животное -> птица -> петух. В ImageNet каждому существительному из этой базы сопоставлены картинки:
http://www.image-net.org/search?q=animal
http://www.image-net.org/search?q=bird
http://www.image-net.org/search?q=rooster

Задача НС - угадать слово, сопоставленное с картинкой. Маленьким детям такую задачу тоже ставят часто. В работе, о которой идет речь, выбрана 1000 категорий. НС принимает на вход картинку, на выходе - вероятность каждой из 1000 категорий для этой картинки.
Аноним 24/02/15 Втр 12:57:32 #73 №441613 
>>437727
Еще бы кто-то объяснил как в сверточных сетях делать настройку весов. И вообще, что лучше использовать массивы или списки для хранения нейронов. А вообще было бы неплохо блок-схему, чтобы окончательно всем стало все понятно.
Аноним 24/02/15 Втр 13:16:40 #74 №441617 
>>437727
А вообще лучше даже словами описать. Типа
1. Есть двумерный массив - входная бинарная картинка.
2.Берем кусок картинки 4x4(например) умножаем на набор весов(тоже 4x4(кстати как их инициализировать лучше всего?)) и суммируем, прогоняем через функцию активации, получаем пиксел новой картинки. Так со смещением в 1 пиксел прогоняем по всему массиву. Получаем двумерный массив прогнанный через первый набор весов(4x4). Таких наборов весов у нас 5, например, поэтому и выходных массивов будет 5(самое интересное как их потом настраивать?).
Вот как бы в таком духе получить описание или картинкой, что с чем суммировать и в какую ячейку заносить результат.
Аноним 24/02/15 Втр 14:46:09 #75 №441649 
>>437770
Про саму сеть напиши. Я пытался 5 лет назад обмазаться, сегментацию и предобработку написал, а вот сеть не осилил.
Аноним 24/02/15 Втр 21:35:18 #76 №441821 
>>441617
Ну ты почти все и расписал. Тренируется сеть по тому же принципу, что и обычная многослойная НС. Сеть вычисляет функцию y = f(W, x), где х - вход, у - выход, W - веса. Далее у тебя есть функция ошибки C(y, y'), которая возвращает одно число - подходящую тебе меру расстояния между истинным ответом и предсказанным. У меня используется negative log likelihood: C = -y' log(softmax(y)), где у' - индикатор истинной буквы. Вычисляешь градиент для весов для тренировочного примера (x, y'): grad = dC(f(W, x), y') / dW. Обновляешь веса, например, простейшим градиентным спуском: W += k grad, где k - скорость обучения.

Градиенты можешь руками посчитать для своей архитектуры, либо найти формулы в книгах, либо воспользоваться символьным вычислением, как сделал я с помощью Theano. Формулы очень громоздкие, расписывать их тут нет смысла.
Аноним 24/02/15 Втр 21:41:31 #77 №441826 
>>441649
Это сверточная сеть с двумя слоями свертки 3х3, первый с 5 признаками, второй с 10. Потом идет один скрытый слой с 250 нейронами и выходной слой с 26 выходами, по одному на букву. Это одна из разновидностей архитектуры LeNet-5, я выше давал ссылки. В отличие от него я не использую субсэмплинг, с ним хуже получалось.
Аноним 25/02/15 Срд 13:07:12 #78 №442110 
>>441821
Да, но в простой многослойной было 1вес - 1 связь, а в сверточной получается 1вес - много связей. Как тут быть?
Аноним 25/02/15 Срд 13:16:45 #79 №442122 
>>442110
Или я туплю и веса для каждого смещения разные?
Аноним 25/02/15 Срд 14:20:02 #80 №442154 
>>438584
>R и matlab
Хм, а зачем для твоих задач нужен matlab, если есть R? Какие-то специфичные биологические расчеты?
Аноним 25/02/15 Срд 14:43:39 #81 №442166 
>>442122
Одинаковые. Я тебе выше расписал полный алгоритм. Попробуй на маленьком примере, допустим картинка 3х1 и свертка 2х1 вручную посчитать, может понятнее станет.

>>442154
В матлабе многие вещи сделаны удобнее и работают быстрее. Возможно, еще дело привычки. Графики, например, я в матлабе люблю делать.
Аноним 25/02/15 Срд 14:48:51 #82 №442169 
>>442166
Эмм. ggplot2. Я вообще переехал на ipython notebook + расширение на баз rpy2 для доступа к нужным пакетам из R прямо оттуда.

Хотя у меня задачи другие, NLP всякое и использование языка общего назначения гораздо удобнее.
Аноним 25/02/15 Срд 15:59:59 #83 №442208 
Возможно ли нейросеть научить распознавать слово из искажённой транскрипции? Если да, то какая НС для этого применима и что по этой теме почитать желательно на русском, инглиш хуже усваивается?
ЕБА ТРИПКОД ЗАБАНИЛИ! 25/02/15 Срд 17:42:30 #84 №442289 
ЧЕ ВЫ ЕГО СПРАШИВАЕТЕ? НЕ ЗНАЕТ ОН НИЧЕГО ВАЩЕ
ОН ВЗЯЛ ГОТОВУЮ РЕАЛИЗАЦИЮ И В НЕЙ ВСЕ ОБУЧИЛ ПО ЕДИНСТВЕННОМУ ГАЙДУ ИЗ НИТЕРНЕТА
Аноним 25/02/15 Срд 21:29:36 #85 №442415 
>>442208
Не у тебя спрашивают, вот ты и бесишься.
Аноним 25/02/15 Срд 21:30:09 #86 №442416 
Промах.
>>442415
>>442289
Аноним 25/02/15 Срд 22:48:08 #87 №442459 
>>442169
В R вообще миллион пакетов для визуализации. Но все это разнообразие бестолковое по большому счету, не будешь же каждый из них изучать. И какой выбрать - тоже непонятно. ггплот2 этот монстрообразный. Изучать тонкости его дизайна чтобы понять, как какой-нибудь лейбл налепить куда надо, мне совершенно не интересно. По-моему это эталонный пример жутко over-engineered технологии-однодневки.
А Матлаб - это на века, лол. Как код на нем работал 15 лет назад, так и будет работать еще через 15 лет. А главное, я уже знаю, как там все что нужно сделать.

А чем вообще занимаются люди в области NLP, расскажи. Распознавание речи? Автоматический перевод? Перевод как мне кажется застрал на месте уже много лет.

>>442208
А что такое искаженная транскрипция? Пример приведи, чтобы понятнее было. Это из области распознавания речи?
Аноним 27/02/15 Птн 20:47:03 #88 №443570 
>>442166
Т.е. если я подаю на вход (1,1) а на выходе мне надо получить (1,0), то вес будет 0.5 и на выходе мы никогда не получим (1,1) а будет всегда (0.5,0.5) ?
Аноним 27/02/15 Птн 23:17:31 #89 №443618 
>>443570
Я ничего не понял из того, что ты сказал.
Пусть у тебя картинка 3х1: [x0, x1, x2] и свертка 2х1. Свертка будет иметь три параметра: веса свертки [w0, w1] и смещение b. Применив эту свертку к картинке, ты получишь картинку 2х1: [x0w0+x1w1+b, x1w0+x2w1+b]. Это и есть твоя функция f, о которой я говорил выше. Дальше применяешь к ней остальные шаги.
Аноним 27/02/15 Птн 23:29:00 #90 №443625 
>>443618
Ну я взял вообще самый простой пример, совсем без свертки, т.к. вес всего 1. [x0,x1], w0, [x0w0, x1w0]. Т.е. свертка дает вот такое усреднение [0.5,0.5] ?
Аноним 27/02/15 Птн 23:33:16 #91 №443628 
>>443625
Если у тебя свертка 1х1, то будет [x0w0+b, x1w0+b]. Не усреднение, а перемасштабирование скорее. Поэтому такое не имеет смысла.
Аноним 27/02/15 Птн 23:38:30 #92 №443630 
>>443570
>на выходе мы никогда не получим (1,1)
опечатался, на выходе мы никогда не получим (1,0) , конечно же.
>>443628
Понятно, я просто смотрю, что вес 2 раза перенастраивается и получается, что-то среднее, зависящее от ошибок для веса со свертки. В чем и отличие от полносвязной сети.
Аноним 27/02/15 Птн 23:39:22 #93 №443631 
>>443630
>>443630
>что вес 2 раза перенастраивается
за итерацию.
Аноним 27/02/15 Птн 23:56:26 #94 №443637 
>>443630
Не правильно написал
что-то среднее, для данного веса зависящее от ошибок со свернутой картинки.
Аноним 28/02/15 Суб 00:02:21 #95 №443644 
>>443628
А вообще да, если свертка происходит, то мы можем подобрать веса чтобы получить любой сигнал на выходе. Так что мой пример не совсем корректен.
Аноним 28/02/15 Суб 00:06:26 #96 №443647 
>>443630
Ну да. Все, что делает свертка 1х1 - это умножает всю картинку на число и прибавляет другое число. После настройки эти числа станут такими, что ошибка в среднем будет наименьшей. В том случае будет усреднение.

Полезность сверток в том, что они применяют один и тот же фильтр к разным частям картинки. За счет этого получается устойчивость к преобразованиям. Для полносвязной сети, например, цифра 1 посреди картинки и та же цифра, смещенная на один пиксель вбок - два совершенно разных изображения. Чтобы понять, что это одно и то же, сеть нужно долго тренировать, и она должна быть достаточно большой. Для сверточной сети взаимосвязь этих изображений более очевидна.
Аноним 28/02/15 Суб 00:11:27 #97 №443651 
>>443647
Т.е. чтобы сеть начала обобщать ей нужно меньше перекрестных связей, получается.
Аноним 28/02/15 Суб 00:13:29 #98 №443652 
>>443651
Да, суть именно в этом. Это работает только на картинках, но работает очень хорошо.
Аноним 28/02/15 Суб 00:23:41 #99 №443656 
>>443652
Разве? А если как-то описать машине признаки и связи между ними(формализовать), не начнет ли она находить схожести и не начнет ли она также обобщать? Знаю, точно что эти же сети применяли для распознавания речи. В сети есть статья.
Аноним 28/02/15 Суб 02:20:31 #100 №443688 
>>443656
Ок, наверное можно и в других задачах применять. Просто самые известные достижения у этого метода в распознавании изображений.
Нужно чтобы входные данные были структурированы. В картинках используется 2д пространство, в речи, наверное, по времени свертку делают.
Аноним 01/03/15 Вск 18:02:46 #101 №444348 
Оп, расскажи о задачах на работе, интересно. Что на собеседованиях спрашивали? Сколько лет к этому шел?
Аноним 01/03/15 Вск 20:52:59 #102 №444449 
>>444348
В подробности вдаваться не буду, извини. Работаю с данными, полученными секвенированием нового поколения. Разрабатываю методы работы, алгоритмы, применяю их.
Собеседование происходило в виде презентации с рассказом о моей предыдущей работе. Ну и плюс стандартные вопросы: почему выбрал это место, какими темами я хочу заниматься.
Шел к этому, пожалуй, лет восемь целенаправленно. На уровне хобби машинным обучением занимался очень давно, года с 2002 примерно.
Аноним 02/03/15 Пнд 10:42:09 #103 №444656 
Оп, я тоже увлекаюсь машинным обучением, но на уровне хобби. Вот у меня задача есть, распознавание математических формул (С изображений разумеется). Ну пусть для начала не рукописных а печатных. И если как распознать определённый символ на изображении я знаю, то как разделить изображение на структурные единицы и распознать структуру - не знаю. Ведь нам важно не только узнать что в выражении есть синус или знак интеграла, а ещё и положение его в выражении, может он в числителе дроби, может в знаменателе, может в скобках. Не натолкнёшь на мысль как мне структуру выражения по-простому распарсить?

Тоже проходил на корсерке курс, а потом кучу других на edX и корсерке, а потом ещё в универе 3 семестра.
Аноним 02/03/15 Пнд 12:04:29 #104 №444669 
>>444449
А вообще, по машинному обучению в первый раз устраивался в пахомии? Вузик в РФ оканчивал?
Откуда вкатился?
Аноним 02/03/15 Пнд 20:27:20 #105 №444910 
14253172406640.jpg
>>444656
Сложно. Я бы сначала сделал распознавание линейной записи, без дробей, степеней, индексов. Просто символы одной строкой. Тут все более-менее понятно. У формул тоже есть грамматика, примерно как в капче вакабы, которую можно использовать для уточнения распознавания. Скажем, "С" и "(" можно лучше отличить таким образом. Также это поможет выбрать более вероятный парсинг формул вроде "sinx", которые могут быть произведением s, i, n и х, но более вероятно, что это sin(x).

Когда это будет хорошо работать, можно перейти к дробям. Дроби я бы распознавал специализированным алгоритмом, как горизонтальную линию с текстом вверху и внизу. После этого вырезаешь прямоугольники сверху и снизу в отдельные картинки и рекурсивно запускаешь распознавание на них.

Степени/индексы можно отличать по вертикальному смещению, опять-таки выделять их в отдельные картинки и распознавать.
Аноним 02/03/15 Пнд 20:36:38 #106 №444916 
>>444669
Да, как ни странно повезло получить некоторый опыт работы в Россиюшке по машинному обучению. И это было не в Яндексе, лол. Специалиста получил в Москве, потом ПхД в Европе уже по биоинформатике.

До специализации по машинному обучению был просто кодером средней руки. Поработал в геймдеве, пофрилансил. Ничего особенного.
Аноним 02/03/15 Пнд 21:11:22 #107 №444926 
>>444916
А поясни нужно ли знать функан или там какую-нибудь хардкорную математику чтоб быть как ты? Ну про теорвер матстат и методы оптимизации я понимаю что их нужно знать хорошо
Аноним 03/03/15 Втр 11:15:19 #108 №445046 
>>444916
Как в Европку на ПхД вкатился?
Аноним 03/03/15 Втр 12:54:21 #109 №445085 
>>444926
Я хардкорной математики не знаю. Могу сформулировать и доказать простую теорему, но не более. Функан вроде бы ни разу в жизни не применял. Основы матана нужны часто, а также базовые дифуры (и то больше численные методы, а не аналитическое решение).

>>445046
Нашел объявление, подался, поговорил с научником. К тому времени у меня был какой-то опыт уже в смежной области (машинное обучение). Прочитал пару их статей перед собеседованием, попытался вникнуть, задал пару вопросов по ним. Этим и отличился от большинства других кандидатов, лол.
Аноним 03/03/15 Втр 14:26:38 #110 №445107 
>>445085
>Функан вроде бы ни разу в жизни не применял
А как же ядра, метрики, все такое?

А какие требования на ПхД были? Допустим, у меня диплом мага по теорверу и матстату, то есть никаких курсов по машинному обучению я в универе не слушал, все по теме изучал самостоятельно, таких берут?
Алсо, как серьезно они рассматривают средний балл?

И вообще, пили кулстори. Как долго получал степень? Как это все происходило? Сейчас исследованиями не занимаешься? Какие подводные камни? Какие советы дашь?
Аноним 03/03/15 Втр 21:15:55 #111 №445271 
>>445107
>А как же ядра, метрики, все такое?
Очень поверхностно знаком. Сейчас пролистал статью по функану в вики - все какие-то абстрактные штуки. В жизни этим не пользуются.

Про ПхД нельзя так в общем сказать, все от людей же зависит. Кто-то упрется рогом в средний балл, кому-то подай статьи, другим - рекомендации от видных ученых, третьим - диплом известного вуза. Средний балл всегда спрашивают, конечно. В моем случае это не было решающим критерием. Если у тебя там одни тройки, проблемы будут 100%. Иначе - как повезет. Сходи еще в научный тред на эмиграче, там много инфы про это дело. То, что ты самостоятельно изучал - это ок. Лучше, если есть какие-то проекты свои, чтобы показать, или статьи для сиви.

Получил за три года. Тут так - тебе деньги дают на три года, не защитился за это время - крутись как хочешь. Не найдешь работу - еще и ВНЖ лишишься, это вообще жопа. Поэтому нужно ориентироваться на жесткий срок с самого начала.
Происходит это примерно как обычная работа, делаешь свой проект/проекты, пишешь статьи. Нужно иметь свои идеи, свое видение проекта, для некоторых людей это сложно. Подводных камней много. Целая гора. Самые большие риски на мой взгляд: не пойдет исследование/будет плохо получаться, поссоришься с научником, не сможешь опубликоваться, не осилишь написание диссера. Это довольно рискованное вложение времени, вполне можешь прокопаться три года или больше и уйти ни с чем в результате. Однако по моим наблюдениям (около 15 случаев всего) в Рассее шанс успешно защититься гораздо меньше. Из моих европейских знакомых почти все защитились.
Исследованиями сейчас занимаюсь. Биоинформатиков теперь много стало, конкуренция сильная, но и область сама постоянно расширяется. Надеюсь, на мой век хватит.
Аноним 03/03/15 Втр 21:30:03 #112 №445275 
>>445271
>В жизни этим не пользуются
>Я хардкорной математики не знаю. Могу сформулировать и доказать простую теорему, но не более

Детектирую быдло-математика-нинужниста.

http://nbspace.ru/math/
Аноним 07/03/15 Суб 15:14:02 #113 №446816 
14257304423300.png
Отлаживал недавно код НС на XOR в качестве тестовой задачи. И НС с двумя скрытыми нейронами не всегда сходилась к идеальному решению. Думал баг где-то, проверял долго.
Оказалось, что такая НС далеко не всегда сходится к решению, несмотря на то, что неоптимальных локальных минимумов там нет. Происходит это из-за очень пологих областей в оптимизируемой функции. Если неправильно задать диапазон весов при инициализации, то попадание в такую область почти гарантировано, и сеть никогда не будет сходиться.
Вот целый трактат на эту тему: http://www.cs.stir.ac.uk/research/publications/techreps/pdf/TR148.pdf
Аноним 11/03/15 Срд 00:07:02 #114 №448493 
бамп
Аноним 11/03/15 Срд 10:40:34 #115 №448583 
14260596343100.gif
В чем суть говнософта типа Theano, в котором простейшие примеры компилятся часами (ибо пистонопараша)? Расскажите, что там есть такого, чего нет или нельзя реализовать в пикрелейтед, древнем как говно мамонта, штутгартском нейросетевом симуляторе? Дохуя любых видов активации, методов обучения, для "нейронов" можно задавать вообще что угодно и т.д.
Аноним 11/03/15 Срд 11:08:50 #116 №448595 
>>448583
> штутгартском
прочитал как штульманском
Аноним 11/03/15 Срд 17:10:46 #117 №448758 
>>448583
1. Он на питоне.
А там кроме нейросетей есть библиотечки для статметодов, sci-kit, удобное дерьмо для подготовки данных и итд итп

2. Он не для нейросетей. Это просто либа для простого ускорения вычилений, используя GPU.
Аноним 11/03/15 Срд 18:41:16 #118 №448814 
>>448583
Для начала попробуй сделать на своем симуляторе сверточную НС. Если получилось, попробуй ее натренировать. О результатах доложи.
Аноним 12/03/15 Чтв 14:18:36 #119 №449127 
>>448814
>попробуй сделать на своем симуляторе сверточную НС
Посоветуй, что почитать по ним годного. Я бы попробовал запилить, но почти нихуя за них не знаю.
Аноним 12/03/15 Чтв 15:14:52 #120 №449150 
>>449127
на http://deeplearning.net/ всё есть
Аноним 12/03/15 Чтв 19:46:50 #121 №449290 
Шел 2015 год. В рунете до сих пор нет нормального описания работы со сверточной нейронной сетью, на подобии как описано тут.
http://www.aiportal.ru/articles/neural-networks/back-propagation.html
Аноним 13/03/15 Птн 02:06:16 #122 №449395 
>>449290
> В рунете

Если честно, мне даже в голову не приходит, зачем, к примеру, нужно брать и переводить тот же туториал на deeplearning.
Аноним 13/03/15 Птн 02:15:24 #123 №449397 
>>449290
Ничего не поделаешь, в России нет передовых исследований на эту тему. Поэтому нет и публикаций, туториалов и прочего.
Аноним 13/03/15 Птн 02:27:18 #124 №449401 
>>449397

Дофига русскоговорящих в зарубежных исследовательских группах. Но непонятно, на кой черт переписывать хороший годный туториал. Там же всё есть. Это никому не нужно.
Аноним 13/03/15 Птн 02:42:54 #125 №449403 
>>449401
Для популяризации и просвещения.
Аноним 13/03/15 Птн 02:57:07 #126 №449405 
>>449403

Не понимать. Можно же просто дать ссылку на хороший, расширяемый и поддерживаемый в акутальном состоянии туториал.
Аноним 13/03/15 Птн 03:04:39 #127 №449407 
http://synthesis.ipi.ac.ru/sigmod/seminar/s20150129
Вот еще хороший новый относительно материал, но незнающим диких математических операторов и как и где искать для своего любимого языка их решение с помощью численных методов, путь в такие нейросети закрыт.
Аноним 13/03/15 Птн 03:05:41 #128 №449408 
Вот чет нашел интересное.
https://www.youtube.com/watch?v=eSPgqo4XzrI&feature=youtu.be
Аноним 13/03/15 Птн 03:24:35 #129 №449413 
>>449407

Ты не поверишь, на на том же deeplearning.net есть туториал с RBM и Deep Belief сетями.

Где ты нашёл там дикие математические операторы, кстати говоря?
Аноним 13/03/15 Птн 03:35:17 #130 №449415 
>>449408
>>449407

Презенташка кстати хороша.
Но я откровенно не понимаю агрессивное нежелание использовать англоязычные источники.
Аноним 13/03/15 Птн 08:55:41 #131 №449445 
>>439826
Стало яснее, нужно теперь совместить понимание и твой код. Бюро, а не подскажешь, где ещё есть инфа на эту тему?
Аноним 13/03/15 Птн 10:08:08 #132 №449467 
Оп, ты спрашивал про NLP?
В машинном переводе используют deep learning.
Еще ты можешь зайти на тот же kaggle и посмотреть конкурс по sentiment analysis. В NLP вообще полно задач: извлечение фактов, мнений, семантика, снятие неоднозначности многозначных слов и тд и тп.

Для задач высокого уровня нужно еще подготовить текст: морфология, части речи, etc.

магистр nlp из вшэ
Аноним 13/03/15 Птн 14:16:47 #133 №449532 
Мне кажется что, если перевести общение, например, в зк на английский, то куча быдла отсеется. Студенты с лабами не смогут создавать триды. Вопросы какой язык учить отпадут.
Нужно обдумать какую-нибудь капчу грамматическую.
Аноним 13/03/15 Птн 15:16:12 #134 №449544 
>>449532
Анус свой обдумай, небыдло.
Аноним 13/03/15 Птн 15:25:03 #135 №449547 
>>449544
> небыдло
> сосач
Аноним 13/03/15 Птн 23:29:49 #136 №449818 
>>437727
И еще вопрос. Для настройки использовался только метод обратного распространения ошибки или в начале использовали метод ограниченной машины Больцмана?
Аноним 14/03/15 Суб 00:07:45 #137 №449825 
А мы вот в шараге писали что-то типа простенького поисковика по текстам. Ну там TF-IDF, LSA.

Подскажите тему для курсача, что бы структурно пораспознавать и написать реализацию более-менее рабочую. Ну всмысле что-то типа химических формул (http://habrahabr.ru/post/172651/), таблиц или мат.формул (Почитал публикации по мат. формулам и оказалось что там слишком хардкорно, за пару месяцев не успею). Вот с таблицами можно заморочиться, ну типа распознать структуру, тексты в ячейках, но мне кажется простовато, хотя я на данный момент знаю только как сделать двухцветное изображение из фотки и как линии найти, лол.
Аноним 14/03/15 Суб 00:08:33 #138 №449827 
>>449825
https://github.com/olologin/LSA
Вот кстати LSA, с парсером выборки из википедии.
Аноним 14/03/15 Суб 01:10:18 #139 №449838 
>>449467
Спасибо.

>>449818
Я использовал градиентный спуск, т.е. обратное распространение ошибки. Не все методы работают одинаково хорошо, но различия там уже в последних долях процентов точности.

>>449825
По-моему для курсача распознавание таблицы будет очень даже хорошо. Это совсем непросто, и есть серьезный шанс что ты и это за пару месяцев не успеешь, но это хотя бы реалистичный проект.
Аноним 14/03/15 Суб 13:45:21 #140 №449946 
>>449827
прикольно, сейчас эксперементирую с skikit, делаю tfidf на лемматизированных документах(mystem), следом будет lsa на tfidf матрицу.

nlp студент
Аноним 14/03/15 Суб 14:41:42 #141 №449974 
>>437727
1. Не вижу в проекте файл с весами.
2. Сколько и какие слои делал?
3. Как подбирал начальные значения весов?
4.Функция активации гиперболический тангенс?
Аноним 14/03/15 Суб 18:59:41 #142 №450059 
>>449974
1. bin/classifier.b
2. 1) 5 сверток 3х3;
2) 10 сверток 3х3;
3) полносвязный слой с 250 нейронами;
4) выходной слой с 10 нейронами.
3. По заветам LeCun'а из "Efficient BackProp".
4. Да.
Аноним 15/03/15 Вск 13:41:12 #143 №450356 
>>450059
Чет не хочет у меня обучаться нормально. Постоянно прыгает и меняет ответ(бывает с правильного на неправильный и т.д.). На 50к вариантах 10 цифр пытаюсь научить.
Аноним 15/03/15 Вск 14:09:49 #144 №450366 
>>450356
Я не понял, что у тебя не так. Что прыгает, какой ответ меняет? Это нормально, что во время тренировки ответы меняются. Нужно смотреть на общую ошибку на отдельной выборке.

Общие рекомендации:
Начни с простого. Попробуй для начала перцептрон, без скрытых слоев. Когда он заработает, добавь один скрытый слой с небольшим количеством нейронов. Отладь код на простых задачах: перцептрон, например, должен уметь решать OR, сеть со скрытым слоем - XOR.

Обучающая выборка может быть слишком сложной, с сильным шумом и искажениями.
Аноним 15/03/15 Вск 14:22:29 #145 №450371 
>>450366
Это я уже делал и все получалось. Лучше скажи сколько нужно приблизительно итераций, чтобы обучить 10 цифрам разных шрифтов(20 штук) с небольшими искажениями. Иногда у меня цифры немного вылетают за границы при генерации, это допустимо при обучении?
Аноним 15/03/15 Вск 14:37:03 #146 №450379 
>>450371
Зависит от того, какие у тебя итерации. Я делал стохастический градиентный спуск с минибатчами по 20 примеров. За одну эпоху (проход по тренировочному множеству, около 150000 примеров) сеть давала очень хорошее решение, с ошибкой меньше 0.1%. Это если правильно выбрана скорость обучения. Окончательно сходилась сеть примерно за десять эпох. Получается 75000 итераций (обновлений весов).

>цифры немного вылетают за границы при генерации, это допустимо при обучении?
Если цифра хорошо видна и отличима от других, должно быть ок.

>Это я уже делал и все получалось.
Что именно получалось? Например, какую ошибку дает твой перцептрон, обученный на тех же данных? А сеть с одним скрытым слоем? Какое количество скрытых нейронов оптимально? Какую ошибку дает сверточная сеть? Ты уверен, что возможно распознать лучше?
Когда получишь ответы на все вопросы, будет понятнее, куда двигаться дальше.
Аноним 15/03/15 Вск 14:44:00 #147 №450384 
>>450379
>скорость обучения
Не совсем понятно как ее подобрать. Я для слоя брал 1/корень квадратный(количество весов входящие в нейрон в слое). Можно еще скорость корректировать по мере обучения.
Аноним 15/03/15 Вск 14:58:43 #148 №450391 
>>450384
Вручную перебирай и смотри график сходимости ошибки. Установить какое-то число заранее, не проверив другие - не годится.

Можешь использовать автоматический метод, например adaDelta, но это уже продвинутый уровень.
Аноним 15/03/15 Вск 15:13:37 #149 №450395 
>>450391
Ясно, спасибо, буду разбираться.
Аноним 17/03/15 Втр 06:56:39 #150 №451233 
Давайте подумаем как круто сегментировать текст. Допустим нам нужны Bounding Box'ы вокруг каждого символа, что можно придумать? Ну тривиальный случай когда все символы на бинарном изображении разрывны, просто закрашиваем Connected Components и метим каждую компоненту. А что в случае если разные символы плавают и соединены? Чёт гуглю и вообще ничего найти не могу по этой теме. Вот думаю может какой-нибудь генетический алгоритм сделать, с делением и обьединением Bounding Box'ов пока не достигнем максимальной суммы вероятностей каким-нибудь классификатором который выдаёт некую вероятность (логистическую регрессию например) того что в Bounding Box'е какой-то определённый символ.

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

Ну и ваши идеи погенерируйте.
Аноним 17/03/15 Втр 07:21:40 #151 №451234 
>>451233
ТЕБЕ НЕ СКАЖУ
Аноним 17/03/15 Втр 08:24:08 #152 №451240 
>>451234
ДА У НАС ТУТ БУДУЩИЙ ЦУКЕРБЕРГ И ЭЙЛЕР НЕ ЖЕЛАЮЩИЙ ДЕЛИТЬСЯ СВОИМИ МИЛЛИОННЫМИ ИДЕЯМИ.
Аноним 17/03/15 Втр 08:48:22 #153 №451245 
>>451240
НУ А ХУЙЛИ ТЫ ИСХОДНИКИ ВСЕ НЕ ОПУБЛИКОВАЛ?
Аноним 17/03/15 Втр 12:33:22 #154 №451293 
>>451233
Нет, идея фигня.
Создатель идеи
Аноним 17/03/15 Втр 13:47:05 #155 №451326 
>>451233
Andrew Ng в своем курсе предлагал делать отдельный классификатор, который определяет границы между символами. Не знаю, насколько это удачная идея. Можно попробовать.
Аноним 21/03/15 Суб 01:20:49 #156 №453105 
>>450395
В общем поковырялся я с весами. Настраивается очень херово при включении искажений, хотя как видно из примеров, должно хорошо обучаться даже на рукописных символах. Такое впечатление что сеть не сверточная, а обычная полносвязная с 2-мя слоями, т.к. совсем не обобщает. Ведь не должны же сеть смущать небольшие искажения и сдвиги? Без искажений добился вероятности 0.004, с искажениями 0.15. Хотя эти искажения почти не заметны. В чем подвох - хз. Может как-то хитро надо подстраивать скорость обучения?
Аноним 21/03/15 Суб 02:01:48 #157 №453123 
>>453105
Любые искажения сильно затрудняют распознавание. Вообще без искажений задача тривиальна. Если у тебя 10 цифр, т.е. всего 10 возможных входных примеров, то там по одному пикселю обычно можно отличить каждую.

>Может как-то хитро надо подстраивать скорость обучения?
У меня работало на константной. Я подбирал ее вручную. Обычно это в диапазоне 0.05 - 0.0001, хотя все зависит от деталей реализации.

Если хочешь подробной диагностики, то предоставь дополнительные данные, как то: кривые ошибки на тренировочном и тестовом множествах в зависимости от номера итерации. Лучше если ты к тому же сделаешь эти графики для полносвязной сети. Также приведи несколько примеров входных картинок, на которых натренированная сеть ошибается. По этим данным я попробую погадать, что не так.
Аноним 22/03/15 Вск 22:09:15 #158 №453826 
>>453123
Спасибо, вроде разобрался. Скорость уменьшил и пошло более менее. Поиграюсь с скоростью, может получше еще настрою.
Аноним 23/03/15 Пнд 11:42:42 #159 №453998 
>>453105
>Ведь не должны же сеть смущать небольшие искажения и сдвиги?
Ты синтетические данные используешь?
Аноним 23/03/15 Пнд 14:20:28 #160 №454065 
>>437761
Блядь прошёл этот курс, сделал все задания, получил 100%. Вроде по ходу дела всё понимал.
Так и не понял что делать когда закончил. Какие-то блядь обрывочные знания всего есть, а куда с этим идти, какие проекты пробовать делать не понял.
Нейронные сети вообще хуёво объяснили, как закодить примерно понятно, а как продумать всю архитектуру нет.
В итоге я просто покатился себе дальше. Делал курс осенью 2013, сейчас вообще нихуя не могу вспомнить. Хотя наверное освежить можно быстро (кроме нейронных сетей и ёбаных SVM).
Не рекомендую так проходить курсы.
Аноним 23/03/15 Пнд 15:26:04 #161 №454092 
>>453998
Генерирую исходя из готовых шрифтов.
Аноним 23/03/15 Пнд 16:12:11 #162 №454111 
>>454065
Он рассказывает и про типичные случаи использования, приводит примеры. Сейчас эти технологии используются повсеместно. Распознавание, датамайнинг, рекомендательные системы очень распространены.
Аноним 23/03/15 Пнд 16:46:35 #163 №454119 
>>454092
Если хочешь устойчивость к небольшим искажениям, берёшь каждый пример в трейнинг сете и делаешь из него десяток других, применяя небольшие искажения.
Аноним 23/03/15 Пнд 16:47:19 #164 №454120 
>>454065
http://www.metacademy.org/roadmaps/cjrd/level-up-your-ml
Аноним 23/03/15 Пнд 23:35:22 #165 №454318 
>>453105
Добился с искажениями вероятности где-то 0.02, дальше чет не хочет(хотелось бы как и без искажений - 0.004). Шаг сделал самый маленький - 0.0001. Щас пробую с 0.00001 может чет обучится, хотя я уже стал сомневаться. Очень странно, что иногда путает очевидную 6 с 0 и еще некоторые цифры.
Аноним 24/03/15 Втр 12:32:04 #166 №454478 
>>454318
Точность с искажениями всегда будет меньше. Попробуй натренировать с более сильными искажениями, а потом протестировать со слабыми. Может получиться точнее.
Аноним 28/03/15 Суб 02:54:17 #167 №456115 
>>454478
Там из-за искажений цифры иногда неплохо так вылезали за границы картинки, потому вся сеть сильно перестраивалась и постоянно не могла нормально настроиться.
Аноним 28/03/15 Суб 14:27:44 #168 №456209 
>>456115
Тогда не удивительно, что трудно натренировать. Зато такая сеть будет более устойчива к ошибкам сегментации.
На вакабе я тренировал на идеально отцентрированных символах, которые на 100% помещались во входную картинку. В результате при малейших ошибках сегментации точность сильно падает. Приходится перебирать разные возможные варианты сегментации.
Аноним 29/03/15 Вск 12:45:24 #169 №456558 
А что скажете за такой софт, как МОЧА https://github.com/pluskid/Mocha.jl документация - http://mochajl.readthedocs.org/en/latest/ Может в сверточные сети, аутоенкодеры. Пробовал кто?
Аноним 29/03/15 Вск 13:59:17 #170 №456572 
>>456558
Посмотрел вебсайт. Пока что непонятно, что из этого выйдет, время покажет. Хорошо бы сравнить производительность с теано, например.
Аноним 29/03/15 Вск 18:16:42 #171 №456652 
А что стало с твоей распределенной доской? Чому больше не пилится?
Аноним 29/03/15 Вск 18:20:02 #172 №456655 
>>456652
Забросил пока что, увы. Однажды снова придет вдохновение, и я ее допилю. Там почти все работает внутри, но нужно сделать интерфейс. Это довольно трудоемкая задача.
Аноним 29/03/15 Вск 19:04:51 #173 №456665 
>>456652
>>456655
А в каком смысле она «распредёлнная»?
любопытный мимокрокодил
Аноним 29/03/15 Вск 19:27:13 #174 №456672 
>>456665
В двух словах: работает по принципу bitmessage.
Аноним 30/03/15 Пнд 04:14:53 #175 №456798 DELETED
И да, почему не яндекс-капчу то?
Аноним 30/03/15 Пнд 11:52:58 #176 №456906 DELETED
>>456798
Она гораздо сложнее. Ее делали профессионалы и она довольно устойчива к распознаванию.
Аноним 30/03/15 Пнд 12:03:54 #177 №456915 DELETED
>>456906
То есть исходя из этого ты и пробовать не стал? Мне кажется что в любом случае кто-то должен был запилить хотя бы даже маловероятностные распознаватели? Почему в сети 1.5 упоминания про нее вообще?
Аноним 30/03/15 Пнд 12:16:45 #178 №456922 DELETED
>>456915
Но зачем? У людей, которые могут это сделать, нет столько свободного времени.
Маловероятностный распознаватель приведен выше в треде (статья с Хабра). Делать что-то значительно лучше - это на месяц работы без гарантии результата.
Аноним 16/04/15 Чтв 19:11:30 #179 №464676 
>>456115
Поэкспериментировал я с искажениями и что-то лучше 3.5 процента не удалось настроить, на глаз генерируемые капчи легко распознаются. Не понимаю в чем причина.
Аноним 16/04/15 Чтв 21:58:17 #180 №464741 
>>464676
О, как раз собирался на днях бампнуть свой тред.

Если на глаз легко распознается, то НС должна сработать. 3.5% - довольно большая ошибка на одной букве (речь ведь об этом?).
Причин может быть очень много, как ты уже и сам видел. Может, сеть нужна большего размера, или инициализация не в том диапазоне. Я там повыше писал, какую я отладочную информацию использую - выложи эти графики сюда, посмотрим.
Аноним 16/04/15 Чтв 22:04:12 #181 №464744 
>>464741
Ок, тогда завтра уже выложу, т.к. сеть будет до завтра обучаться. Обучение будет на 100 эпох стартовый коэф обучения сделаю 0.001 и на каждой эпохе буду уменьшать в 0.9 раза. Обучение - 10000 циклов, проверка обучения - 1000 циклов.
Аноним 16/04/15 Чтв 22:07:46 #182 №464746 
>>464741
обучать с самого начала или взять то что я пытался обучить и пробнуть продолжить обучать, надеясь на чудо?
Аноним 16/04/15 Чтв 22:19:37 #183 №464747 
>>464746
Для диагностики лучше сначала начать. Там будет видно, имеет ли смысл продолжать.
Нужно определить такие вещи:
1) overfitting vs. underfitting. Это можно понять по графику ошибки на тренировочном и тестовом множествах.
2) сошлелся ли градиентный спуск, или нужно продолжать обучение. Просто видно из графика.
3) достаточно ли тренировочных данных. Можно понять, варьируя размер тренировочного множества.
Аноним 16/04/15 Чтв 22:38:28 #184 №464751 
14292131088180.gif
>>437727
ДАВАЙ НА КИКСТАРТЕРЕ СОЗДАВАЙ, ПРОДАВАЙ СВОИ ИСХОДНИКИ НА КИКСТАРТЕРЕ, РАЗ БЕСПЛАТНА НЕ ХОЧЕШ ДАВАТЬ

Аноним 19/04/15 Вск 11:56:58 #185 №465474 
14294338188810.png
>>464747

Вот че получается, но это еще не конец обучения. Там модно до 3.5 доучить.
Аноним 19/04/15 Вск 17:02:16 #186 №465545 
14294521363100.jpg
>http://arxiv.org/abs/1502.01852
>we propose a Parametric Rectified Linear Unit (PReLU) that generalizes the traditional rectified unit.
>Training A/B on four K20 GPUs, or training C on eight K40 GPUs, takes about 3-4 weeks.
Не, вы это серьезно?! Алгоритм сходится месяц на кластере из 4 или 8 теслав?
Аноним 19/04/15 Вск 17:21:49 #187 №465554 
>>465545
Но сходится же!
Аноним 19/04/15 Вск 23:40:40 #188 №465691 
14294760408060.png
>>465474
Теперь расскажи, что это такое. Какие единицы по осям, мне непонятно.
Предполагаю, что это ошибка в зависимости от эпохи обучения.

График очень хаотичный. Нужно уменьшить скорость обучения. Ты для вычисления одного шага по градиенту все тренировочное множество используешь?
Если самая первая точка (200) это ошибка до обучения, на случайных весах, то обучение не очень эффективно.

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

>>465545
А ты как думал? Там тренировочное множество огромное вроде бы, ну и глубокие сети всегда были адски медленными. Бесплатно ничего не бывает.
Я тебе больше скажу, если десяток таких сетей натренировать и потом усреднять их показания, почти наверное ошибка будет еще меньше. Возможно, даже гораздо меньше.
Аноним 20/04/15 Пнд 00:14:56 #189 №465695 
>>465691
>Ты для вычисления одного шага по градиенту все тренировочное множество используешь?
Ну, я как бы не уверен что равномерно берется множество, т.к. случайно(рандом), ну а из 1000 - думаю более менее берутся все(0-102 раза, 1-96 раз, например). Я так понял это неправильно?
Аноним 20/04/15 Пнд 09:32:14 #190 №465761 
>>465695
Случайная выборка это нормально. Я спрашивал про количество примеров, которое ты используешь для вычисления одного обновления весов.
Если ты используешь для этого все или почти все примеры, это называется batch training. Это не самый эффективный способ.
Я для одного обновления беру 20 примеров. Такая тренировка называется mini batch. Преимущество - гораздо большая скорость сходимости, к тому же это позволяет не застревать в мелких локальных минимумах (хотя, судя по твоему графику, у тебя проблема не в этом).
Аноним 20/04/15 Пнд 13:13:48 #191 №465834 
>>465761
Странно, всегда считал, что обновления весов надо делать сразу после 1 примера.
Аноним 20/04/15 Пнд 13:23:23 #192 №465837 
>>465834
Это называется стохастический градиентный спуск. Батчи лучше работают.
Аноним 20/04/15 Пнд 15:18:55 #193 №465869 
>>465837
Значит похоже я еще и веса неправильно настраивал, т.к. обновлял сразу по проходу, а надо видимо уже после пересчета всех дельт во всех слоях обновлять веса.
Аноним 20/04/15 Пнд 15:59:21 #194 №465879 
>>465869
Кстати, Andrew Ng это всё рассказывает в своем курсе.(https://www.coursera.org/learn/machine-learning)

Помимо начальных лекций про batch GD там ближе к концу рассмотрены еще несколько вариаций спуска
Аноним 25/04/15 Суб 14:04:36 #195 №468648 
А вот поясните за MNIST, например. Там вообще как-то можно сортировать выдачу? Допустим, мне надо по сотне разных изображений единичек, двоек и т.д., это можно как-то отфильтровать? В R делаю вот так:
to.read = file("c:/mnist/t10k-images.idx3-ubyte", "rb")
readBin(to.read, integer(), n=4, endian="big")
m = matrix(readBin(to.read,integer(), size=1, n=28*28, endian="big"),28,28)
image(m)
При этом выбирается рандомная цифра. integer() можно задать конкретно, тогда выбирается определенная цифра, ес-но. Но нигде не нашел в каком они там вообще порядке. Как быть-то?
Аноним 25/04/15 Суб 14:19:58 #196 №468651 
Не погромист, данную поебень можно использовать что бы написать вайпалку для сосача?
Аноним 25/04/15 Суб 14:55:24 #197 №468667 
>>468651
Только если яндекс капчу объебешь. Что вряд ли, ее не дурачки делали.
Аноним 25/04/15 Суб 15:02:35 #198 №468669 
>>468667
По распознаванию она будет одна из простейших как по мне.
Аноним 25/04/15 Суб 15:04:43 #199 №468671 
>>468669
Ну-ну.
Аноним 25/04/15 Суб 15:14:31 #200 №468675 
>>468669
Даже я, человек, не всегда правильно набираю ее. У яндекса 1 и 7 очень похожи.
Аноним 25/04/15 Суб 15:19:10 #201 №468676 
14299643502590.gif
>>468675
>Даже я, человек, не всегда правильно набираю ее
Ну если ты даун только. Не набрать настолько простейшую капчу это надо постараться еще. Видел бы ты что на некоторых сайтах творилось раньше(да и сейчас еще где то осталось)
Аноним 25/04/15 Суб 15:28:05 #202 №468679 
>>468676
Оче сложная капча для распознавания. Там на первом же шаге заполнение охуительных рваных контуров будет фейл.
Аноним 25/04/15 Суб 15:39:32 #203 №468682 
>>468669>>468676
На самом деле для машинного распознавания капча пиздецки сложная.
1) вместо цифр - только контуры.
2) контуры рваные.
3) цифры деформированные и наляпаны одна на одну.
4) левые полосочки, искажающие контуры.
Итого, даже главные компоненты для одинаковых цифр будут совсем разные. Глубокие же сети глубоко соснут из-за отсутствия устойчивых характеристик одинаковых цифр на таких разных изображениях.
Аноним 25/04/15 Суб 15:43:33 #204 №468685 
14299658137070.png
>>468676
Ну вот на пике 7 и 1
Аноним 29/04/15 Срд 15:44:09 #205 №470714 
>>465879
И еще вопрос, если ответ от сети правильный, то в стохастическом градиентном спуске все равно надо суммировать дельты или нет?
Аноним 29/04/15 Срд 16:13:42 #206 №470733 
>>470714
Обязательно нужно суммировать. Иначе она никогда не сойдется, наверное.
Аноним 04/05/15 Пнд 00:23:08 #207 №472974 
>>470733
а как же так?
http://habrahabr.ru/post/144881/
>Если сеть выдает правильный ответ — радуемся и ничего не делаем.
Аноним 05/05/15 Втр 11:59:53 #208 №473793 
>>472974
Бамп вопросу.
Аноним 05/05/15 Втр 12:55:04 #209 №473811 
>>473793
Там приведен известный алгоритм обучения перцептрона. Он работает только если а) сеть является перцептроном, т.е. не содержит скрытых слоев; б) тренировочное множество линейно сепарабельно. В твоей задаче не соблюдаются оба условия.
Ng и об этом тоже рассказывал в своем курсе.
Аноним 05/05/15 Втр 16:05:28 #210 №473935 
14308311288620.jpg
Хабраподмывальню и вики надо в последний момент читать. Metacademy, ufldl wiki, cs229 - ваш выбор, обучатели диванные.
Аноним 06/05/15 Срд 03:00:09 #211 №474263 
>>473811
Как ни странно, но сеть у меня обучалась именно так, а наоборот не хотела почему-то. Нельзя же сеть настраивать если сеть дает правильный ответ или я неправильно понял алгоритм, что ли.
Аноним 06/05/15 Срд 12:53:54 #212 №474355 
>>474263
>а наоборот не хотела почему-то
Значит, у тебя ошибка в реализации.
Аноним 07/05/15 Чтв 16:21:34 #213 №474981 
>>474355
ну фиг его знает, сеть точно со скрытыми слоями, т.е. уже якобы не должна обучаться.
Аноним 08/05/15 Птн 22:16:48 #214 №475664 
14311126083690.jpg
14311126083691.jpg
>>437727
ОП, у меня как раз вопрос. Никогда с распознаванием не имел дела.
ТЗ у меня в следующем: есть фигура и нужно, чтобы пользователь не отрывая руки нарисовал похожее что-то. После проведения мышью я имею массив точек. Я думал его распознавать через определение где какая прямая и относительность длинны к другим отрезкам. Но я не могу понять как мне определить новую грань фигуры правильно, чтобы неровности в ведении мышью не были помехой. Подскажи что делать, может уже готовые алгоритмы есть... В общем хоть что-то
Аноним 09/05/15 Суб 01:23:15 #215 №475701 
>>475664
Почему нельзя каждой точке квадрата сопоставить точку рисунка и посчитать отклонение?
Аноним 09/05/15 Суб 01:35:54 #216 №475702 
>>475664
Ты описал ТЗ для пользователя. Программа что должна делать? Распознать одну из нескольких возможных фигур? Или любой многоугольник?

Если многоугольники, то нужно распознавать прежде всего сегменты. На коленке прямые линии распознаются с помощью Hough transform. Сразу учти, что его утомительно настраивать, но если проявишь должное упорство, как-то распознаваться будет, кроме очень коротких отрезков. Вроде бы готовая реализация была в OpenCV, посмотри.

Если распознать нужно одну из нескольких заранее известных фигур, то я бы просто понизил разрешение и прошелся скользящим окном по картинке, сравнивая с шаблонами. Придется еще перебирать масштабы. В реализации это проще всего, но может быть слишком долго, смотри сам по своему ТЗ.
Аноним 09/05/15 Суб 12:04:41 #217 №475794 
>>475701
потому что масштаб неизвестен

>>475702
из заранее заготовленных фигур
в ТЗ по поводу производительности ничего не сказано, так что пофиг.
Попробую поработать с понижением разрешения. Спасибо
Аноним 16/05/15 Суб 01:11:28 #218 №479051 
14317278882180.jpg
>>437727

релейт

сервис: https://www.imageidentify.com/

алгоритм: http://blog.stephenwolfram.com/2015/05/wolfram-language-artificial-intelligence-the-image-identification-project/
Аноним 16/05/15 Суб 02:30:25 #219 №479063 
>>479051
Погонял немного - пока так себе, до ИИ (как он в блоге выражается) довольно сильно недотягивает. Широко известные вещи угадывает, чуть в сторону - выдает instrumentation или еще пару общих классов, либо вообще мимо кассы.

Посмотрим, будут ли развивать. Мне интересно, до какого уровня эту технологию можно довести. Вряд ли тут возможно понимание картинки на человеческом уровне.
Аноним 16/05/15 Суб 09:41:35 #220 №479089 
>>468682
1) Обрабатываешь фильтром. Можно попоробовать фотошоские, пока. Мне лень такой хуней щас страдать.
Контуры заливаются.
2) Смотришь какие цифры сколько занимают по площади. Смазываешь по среднему и сравниваешь контрастность с эталоном.
...
3) Профит. Яндекс пидоры в попу ебуться.
Аноним 16/05/15 Суб 09:43:22 #221 №479090 
>>479089
Ах, да. Анонизмус (c). Не для продажи.
Аноним 16/05/15 Суб 10:07:40 #222 №479095 
14317600600530.jpg
Например единичка дает на этом полотне от балды взял 242. А девяточка дает 230. Азаза, оттенков серого. Чем больше полотно по сравнению с цифрами тем выше вероятность ошибки.
Аноним 16/05/15 Суб 10:13:28 #223 №479100 
>>479095
Не такие цифры муйня. Надо пожирнее брать как у яндекса.
Аноним 16/05/15 Суб 10:20:44 #224 №479103 
14317608443820.jpg
1 - 219
2 - 198
3 - 199
4 - 197
5 - 198
6 - 189
7 - 209
8 - 181
9 - 188
0 - 189

Как то слабо распознается.
sageАноним 16/05/15 Суб 11:00:21 #225 №479119 
Не тут надо думать. У Яндекса буквы действительно одна на другую залезают и немного искажены (что может быть похуй в зависимости от способа распознавания). А сверху на них черные и белые полоски накладывают и поэтому кажется что рваный контур. Но это белые полоски.
sageАноним 16/05/15 Суб 11:05:17 #226 №479120 
14317635173850.gif
Аноним 16/05/15 Суб 14:07:22 #227 №479199 
>>437727
Если не 100% то там все 0%. Я заметил один момент: на некоторых сайтах когда хотя бы одна цифра набирается не правильно ее будут специально ставить в капчу. Благо сделать это не так сложно (сравнить строки и выдать хотя бы одну неправильно распознанную цифру).
sageАноним 16/05/15 Суб 14:13:12 #228 №479202 
Ну и замкнуть контур в Яндекс капче, думаю не так сложно. Сложнее потом все это обработать. И контрастность скорее всего не подходит.

Аноним 22/05/15 Птн 12:00:14 #229 №482742 
>>437727
ЕТОТ ПИДОР ПОДЕЛИЛСЯ ИСХОДНИКАМИ ИЛИ ПРОДОЛЖАЕТ ЖОПОЙ ТОРГОВАТЬ?
Аноним 23/05/15 Суб 03:19:47 #230 №483174 
>>479120
Вот нахуя ты это сделал?
Аноним 25/05/15 Пнд 15:32:08 #231 №484507 
Заебался искать тред.
Вопрос к ОПУ.
Как относишься к HTM и NuPIC-у ?
Аноним 26/05/15 Втр 17:18:04 #232 №485178 
>>484507
Лет пять назад следил за развитием, даже экспериментировал немного с их СДК. Потом стало ясно, что дальше игрушечных задач они его вывести не могут. Идеи там интересные про интеграцию по времени, разреженные представления. Но для простого распознавния НС и другие стандартные методы гораздо мощнее.
Сейчас они неплохо развернулись с оупенсорсом. Посмотрел гитхаб, а там куча людей участвует, коммиты кипят. Не знаю, что они делают - увидим еще лет через пять. Я настроен скорее скептически.

Если тут кто-то в теме, распишите вкратце последние новости и направление развития. Я был бы очень благодарен.
Аноним 26/05/15 Втр 17:59:29 #233 №485186 
>>437727
> да и просто можно обсудить нейронные сети
Посоветуй литературу.
Аноним 26/05/15 Втр 18:11:37 #234 №485195 
>>485186
Если тебе прям литература нужна, то классикой считается Neural Networks and Learning Machines Хайкина. Это тысячестраничный учебник, покрывающий все основы на очень глубоком уровне. Про новомодное глубокое обучение там ничего нет.

Экспресс-курс я уже советовал здесь: >>437761
Аноним 26/05/15 Втр 23:31:31 #235 №485453 
>>437727
Посоны, взял очень рандомную генерацию цифр со всякими искажениями 2 ляма обучающих циклов уже дал, т.е. 20 циклов по 100к обучал 20 дней, ошибка 0.27 где-то, это нормально?
Аноним 27/05/15 Срд 12:29:06 #236 №485737 
>>485453
Трудно сказать, не зная деталей. Я уже пытался диагностировать проблемы с обучением у другого анона, без особого успеха. Здесь вкратце написано, с чего начать: >>453123

Но вообще сильно рекомендую начать с какого-нибудь курса, туториала или примера. Вслепую применять эти алгоритмы бесполезно. Нужно четко представлять, как и почему это работает.
Аноним 28/05/15 Чтв 06:50:06 #237 №486363 
Тред не читал

По рукам бы надавал ОПу за то, что названия методов начинает с заглавных букв!

Мимоджавист
Аноним 28/05/15 Чтв 07:44:59 #238 №486368 
>>486363
Поссал тебе на лицо.

мимо-диезер
Аноним 28/05/15 Чтв 10:36:34 #239 №486422 
>>486363
От шарпа привычка осталась. Я и на питоне так пишу, лал.
Аноним 28/05/15 Чтв 11:20:10 #240 №486440 
>>486422
ИСХОДНИКИ ДАВАЙ, ШЛЮХА ТЫ НАЕМАНАЯ
Аноним 05/06/15 Птн 17:56:44 #241 №491828 
Релевантное соревнование в kaggle: https://www.kaggle.com/c/denoising-dirty-documents
Аноним 19/06/15 Птн 13:24:26 #242 №499546 
https://www.youtube.com/watch?v=qv6UVOQ0F44

Сеть играет в марио
Аноним 19/06/15 Птн 14:54:47 #243 №499594 
>>499546
>Эволюционный алгоритм
Дерьмо собачье.
И играет он как говно.
Не говоря уже о том, что окружение СТАТИЧЕСКОЕ. Враги всегда совершают одни и те-же действия.
Все "обучение" сводится к поиску оптимального пути.

Алсо, этот хрен ничего не понимает в эволюции.
Аноним 19/06/15 Птн 15:19:22 #244 №499609 
>>499594
Этот чувак тебя травил в детстве?
Аноним 19/06/15 Птн 15:34:58 #245 №499631 
>>499609
>Этот чувак тебя травил в детстве?
Мамку твою травил.
Тебе бы все на личности перевести.

Аноним 19/06/15 Птн 15:37:56 #246 №499632 
>>499631
То, как ты окрысился, это не переход на личности?
Аноним 19/06/15 Птн 15:40:20 #247 №499638 
>>499609
>чувак
чувак - кастрированый баран
чухан - кастрированый боров
Аноним 19/06/15 Птн 15:42:37 #248 №499639 
>>499638
Пеши исчо.
Аноним 19/06/15 Птн 15:49:01 #249 №499641 
>>499632
>То, как ты окрысился
Что это значит вообще?

>это не переход на личности?
Нет.
Я ничего не знаю о личности афтора, и не высказывал никаких мыслей по этому поводу.
Только касательно примитивности и убогости демонстрируемого ИИ. Для которого никакие нейросети ненужны. А он еще и "эволюционный" подход к нему прикрутил. Зачем козе баян? Что-то тут явно лишнее.

>Алсо, этот хрен ничего не понимает в эволюции.
Ну да, я глубоко сомневаюсь в уровне знаний автора относительно эволюции. В свете его высказывания о том, что именно таким, как он изобразил, образом развилась жизнь на земле. Эволюционные алгоритмы имеют очень мало общего с эволюцией живых организмов. И странно, что автор начал заниматься эволюционной нейросетью не разобравшись, хоть примерно, с тем, что это за эволюция такая в природе.
Аноним 19/06/15 Птн 15:50:44 #250 №499642 
>>499638
чувак - Человек, Уважающий Высокую Американскую Культуру (у стиляг так расшифровывалось)
Аноним 19/06/15 Птн 15:55:38 #251 №499646 
>>499639
Вообще, еще в РИ чуваками называли грязных неопрятных тупых бомжеватых сельских парней.
Странно кстати, что современные источники на это не ссылаются.
Придумывают самые невообразимые происхождения для слова. Когда ему овер 300лет в русской речи.
Аноним 19/06/15 Птн 16:02:30 #252 №499652 
>>499642
>>499646
Думаю, что над стилягами кто-то хорошо пошутил.
Алсо
>Высокую Американскую Культуру
Случайно не придумаешь такое.
Я как-то вопрос этих стиляг особо не изучал, но вот чисто по этому одному факту видно, как их искусственно создавали, да еще с юморком, с издевкой.
Аноним 19/06/15 Птн 16:04:44 #253 №499653 
Это от цыганского слова "чаво" - парень.
Аноним 19/06/15 Птн 16:10:44 #254 №499658 
>>499641
Мне показалось, что в твоей поспешной и весьма нелестной оценке его работы проявилась какая-то личная неприязнь.

>Для которого никакие нейросети ненужны.
>А он еще и "эволюционный" подход к нему прикрутил. Зачем козе баян? Что-то тут явно лишнее.
Невероятные откровения. А с каких позиций ты это утверждаешь? Ты уже занимался этой задачей, ознакомился с историей вопроса? Пока что это пустословие.

>В свете его высказывания о том, что именно таким, как он изобразил, образом развилась жизнь на земле.
Ну это глупость, ок. Можно списать на популистскую направленность ролика, для широких масс.

>Эволюционные алгоритмы имеют очень мало общего с эволюцией живых организмов.
Общего довольно много. Все-таки придуманы эти алгоритмы были именно как модель эволюции. В данном случае нас не интересует эволюция в природе, а лишь способ решить задачу.
Аноним 19/06/15 Птн 16:14:01 #255 №499660 
>>499646
А у тебя про триста лет есть какие-нибудь свидетельства? У меня вот только это: https://books.google.com/ngrams/graph?content=%D1%87%D1%83%D0%B2%D0%B0%D0%BA%2C%D1%87%D1%83%D1%85%D0%B0%D0%BD&year_start=1800&year_end=2000&corpus=12&smoothing=3&share=&direct_url=t1%3B%2C%D1%87%D1%83%D0%B2%D0%B0%D0%BA%3B%2Cc0
Аноним 19/06/15 Птн 16:36:32 #256 №499683 
>>499658
>Мне показалось, что в твоей поспешной и весьма нелестной оценке его работы проявилась какая-то личная неприязнь.
Показалось.
Мне вот кажется что у тебя какое то очень личное отношение к "его" работе. Тебе она оче нравится? Да, забавно, уровня курсовой работы.

>А с каких позиций ты это утверждаешь?
С позиций анонимного комментатора.

>Ты уже занимался этой задачей, ознакомился с историей вопроса?
Вы с какой целью интересуетесь?
Вам важно разобраться в вопросе, или вы хотите меня оскорбить?

>Пока что это пустословие.
Не понимаю что ты этим хочешь сказать.
Нет, это не пустословие. Это мое личное мнение.
Мне не жаль если оно задевает чьи-то чувства, и твои в частности. Я делюсь им бесплатно и безусловно.

>Ну это глупость, ок. Можно списать на популистскую направленность ролика, для широких масс.
Ох. Да нельзя я думаю. Я думаю это типичный ролик уровня статей на хабре, от хипстеров для хипстеров. Заниматься компутер саенс теперь модно, ты забыл?

>Общего довольно много.
Ну, не особо. Используется примитивная модель передачи генов, на этом как правило все.

>Все-таки придуманы эти алгоритмы были именно как модель эволюции.
Как примитивная модель эволюции как ее понимали те кто эти алгоритмы придумывал и тогда когда они это делали.

>способ решить задачу
Через задницу.
Нейросеть там лишняя чуть более чем полностью, как и эволюционный подход.
Сколько оно обучалось? 24 часа?
За то-же время можно было сделать поиск по графу, если не за меньшее.
Аноним 19/06/15 Птн 16:43:09 #257 №499688 
>>499660
Лень искать, в книге видел.
А если слово было в широком употреблении на 1850 год. То и на 1750 скорее всего было.
Алсо, книгопечатание возникло где-то в конце 16 века. Так что...
Аноним 19/06/15 Птн 17:01:19 #258 №499713 
>>499683
Да, мне она нравится.
Пустословие - это когда тебе сказать нечего, но ты все равно говоришь.
>За то-же время можно было сделать поиск по графу, если не за меньшее.
О, вот уже более конкретное утверждение. Только по-прежнему необоснованное. Ты хотя бы приблизительно подсчитал, какого размера будет граф? Как ты вообще это себе представляешь, делать один шаг, записывать состояние, потом восстанавливать одно из записанных, как в А*? Это будет чудовищно долго работать, т.к. игра рассчитана на прохождение вперед. Да и состояния большие, у тебя память исчерпается на десятой секунде игрового времени. Но ты, конечно, об этом всем даже не задумывался.

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

>Это мое личное мнение.
Ты просто ляпнул чушь, наивно полагая себя умнее всех. Причем сделал это в агрессивной манере, свойственной невеждам.
Аноним 19/06/15 Птн 17:41:52 #259 №499777 
>>499713
>Пустословие - это когда тебе сказать нечего, но ты все равно говоришь.
Мне всегда есть что сказать.
А вот зачем ты мне что-то пишешь - непонятно.

>Да, мне она нравится.
Хорошо для тебя.

>О, вот уже более конкретное утверждение. Только по-прежнему необоснованное. Ты хотя бы приблизительно подсчитал
>Ты
>у тебя
>но ты
Еще раз, ты хочешь разобраться в вопросе, или твоя цель перейти на личности покривляться и оскорбить меня?
Выглядит как последнее.
Я не обязан никому ничего доказывать. И тем более тратить свое время на бесплатное обучение тех кто категорически не желает учится.

>Это будет чудовищно долго работать, т.к. игра рассчитана на прохождение вперед.
24 часов хватит.

>Его решение линейно зависит от длины уровня
Морозная история.

>Ты просто ляпнул чушь, наивно полагая себя умнее всех. Причем сделал это в агрессивной манере, свойственной невеждам.
Ох анончик, разберись со своими комплексами и проблемами вначале, а потом уже по интернету определяй кто что думает на другом конце интернета.
sageАноним 19/06/15 Птн 18:59:56 #260 №499867 
>>437727
ЕТОТ ПИДОР ПОДЕЛИЛСЯ ИСХОДНИКАМИ ИЛИ ПРОДОЛЖАЕТ ЖОПОЙ ТОРГОВАТЬ?
Аноним 19/06/15 Птн 22:36:37 #261 №500030 
>>499594
Интересно было бы посмотреть как разные виды нейросетей будут справляться с этой задачей.
Аноним 19/06/15 Птн 22:55:09 #262 №500033 
>>500030
Почитал я про генетический алгоритм и мне показалось, что это какой-то рандомный подбор весов. Или я неправ?
Аноним 20/06/15 Суб 00:06:52 #263 №500084 
>>500030
>Интересно было бы посмотреть как разные виды нейросетей будут справляться с этой задачей.
Лучше.
Вообще. В вдогонку всему остальному. Для тех кто в танке.
1) Медленнее генетических алгоритмов уже нет. Потому, их нигде не применяют, разве что в курсовых работах/игрушках и прочей околонаучной деятельности. Ну кто его знает, может где-то и используют серьезно конечтно, но очень очень редко.

2) Генетические алгоритмы и нейросети это оче оче разные вещи. Они несовместимы, ваще. Если кто-то говорит о генетической нейросети - он или дурак/первокурсник или вот вот получит нобелевку.
Конечно можно их как-то использовать вместе, например натренировать кучу нейросетей, а потом скрещивать их гены.

>>500033
>Почитал я про генетический алгоритм и мне показалось, что это какой-то рандомный подбор весов. Или я неправ?
Мне кажется, что гений решил тренировать сеть генетикой. Да, генерировать миллион рандомных наборов весов, а потом выбирать самые успешные и скрещивать их друг с другом.
Ад.
Просто Ад.
Аноним 20/06/15 Суб 01:50:58 #264 №500110 
ГА и НС прекрасно сочетаются. Применяется это там, где нет обучающей выборки, как альтернатива обучению с подкреплением. Обучение с подкреплением имеет много проблем на нетривиальных задачах, а НС с ГА, реализующая direct policy search, как-то обычно работает.
Алгоритм, используемый в той работе про марио, называется NEAT. Он был специально разработан для наиболее эффективной нейроэволюции. Материалы по нему приведены в ссылках в описании видео.
Аноним 20/06/15 Суб 19:04:48 #265 №500332 
>>500110
какое самое подробное описание ГА в сети есть на русском?
Аноним 20/06/15 Суб 19:27:02 #266 №500340 
>>500332
Пролистал это: http://mathmod.aspu.ru/images/File/ebooks/GAfinal.pdf
Вроде неплохо, хотя там только самая классика, и местами излишне детально.
Аноним 20/06/15 Суб 20:15:29 #267 №500393 
>>500340
Кароч, вроде понятно стало, что этот алгоритм не просто рандомный выбор чисел(решения), а еще и такой, чтоб почти не повторялись предыдущие числа в других итерациях. Не совсем тогда понятно преимущество от простого инкремента.
Аноним 21/06/15 Вск 01:37:00 #268 №500596 
14348398202530.png
14348398202721.jpg
14348398202812.jpg
14348398202893.jpg
Нейронная сеть в режиме восстановления изображения создает картины в постмодернистском стиле: http://googleresearch.blogspot.no/2015/06/inceptionism-going-deeper-into-neural.html
По-моему шикарно.
Аноним 21/06/15 Вск 01:39:50 #269 №500597 
>>500596
Больше похоже на то, что видишь по кислотой. Механизм, скорее всего, тот же самый
Аноним 21/06/15 Вск 01:41:02 #270 №500598 
>>500596
Четвёртый пик - лучшее, что я видел в этом году.

ТЕКНОЛОДЖИС

А точно не допиленное кривыми руками хендмейдонаебалово? А то есть тут один спейс телескоп с красявыми картиночками...
Аноним 21/06/15 Вск 01:52:34 #271 №500608 
>>500598
Меня тоже пробрало. На уменьшенной картинке ничего особенного, а как присмотришься... ИИСУСЕ!

В гугле давно занимаются распознаванием на глубоких нейронных сетях, и в статье объясняется, как были сгенерированы картинки. Звучит это правдоподобно.
Аноним 21/06/15 Вск 10:48:50 #272 №500700 
>>499546
Кто-то объяснит как он сделал входные данные в сеть и "нажатие кнопок"? Это все можно сделать тока допилив тот эмулятор или есть возможность подключаться к нему независимо от языка программирования?
Аноним 21/06/15 Вск 13:36:39 #273 №500725 
>>500700
Он использует этот эмулятор: http://tasvideos.org/BizHawk.html
Эмулятор поддерживает скриптинг на луа. Весь его код написан на луа, вот исходник: http://pastebin.com/ZZmSNaHX
Аноним 02/07/15 Чтв 15:08:48 #274 №507910 
14358389281900.png
Интересный пост с СО, в ответах приводятся неплохие примеры применений НС: http://stackoverflow.com/questions/1559843/what-are-good-examples-of-solutions-to-neural-network-problems?rq=1
Первый ответ - от чела, занимающегося нейроэволюцией, про систему обнаружения препятствий на роботе.
Аноним 05/07/15 Вск 00:47:52 #275 №509204 
>>507910
Кто-то может вкратце описать как настраивать эту сеть? Я так понял там появляются нейроны(соответственно и связи) по генетическим законам. И еще нашел исходник в сети реализующий эту сеть с помощью связанных списков. Не проще ли этот алгоритм реализовать с помощью обычных массивов?
Аноним 05/07/15 Вск 13:40:38 #276 №509348 
>>509204
Реализовывать можно как угодно. Если тебе проще массивами, делай так.
Настройка описана в многочисленных статьях про NEAT и содержит много деталей и шагов, вкратце описать я не возьмусь. На совсем абстрактном уровне:
ГА инициализируется набором случайных НС без скрытых нейронов, т.е. выходы напрямую соединяются со входами. При мутации сети у нее может измениться какой-нибудь вес, а также может добавиться новое соединение между нейронами, либо добавиться новый нейрон. При этом каждой структурной мутации присваивается номер, и при скрещивании сети проверяются на совместимость с помощью этих номеров. Это позволяет эффективно скрещивать сети, учитывая их совместимость.
Также вся популяция автоматически разделяется на несколько видов, которые не скрещиваются и не соревнуются между собой. Это позволяет не сходиться к локальному минимуму раньше времени.
Аноним 20/07/15 Пнд 03:36:56 #277 №517483 
>>437727
Бампаю
Аноним 27/07/15 Пнд 16:07:48 #278 №521558 
>>517483
Как скрещивать сети в ГА? Вообще как скрещивать и мутировать реал тип данных. там же еще мантисса.
Аноним 29/07/15 Срд 00:27:36 #279 №522458 
>>440850
Название конторы на М начинается, состоит из двух слов и офис разработки в одном миллионнике? Или я ошибаюсь?

мимоаутист
Аноним 30/07/15 Чтв 12:55:45 #280 №523269 
Опушку вопрос.
Какие движки нс умеют в обучение на видеокартах?
Аноним 31/07/15 Птн 01:00:44 #281 №523628 
>>523269
ОП похоже забил на тред.
Аноним 31/07/15 Птн 06:42:51 #282 №523664 
>>523628
ЕМУ ДОСТАТОЧНО ЧТО РЕКЛАММА ЕГО ЖОПЫ НАХОДИТСЯ НА НУЛЕВОЙ А НА ТЕБЯ ЕМУ ГЛУБОКО НАСРАТЬ
ПОСКОКУ ТЫ ДЕБИЛ
А МНЕ ОН НЕ ДАЕТ ИСХОДНИКИ ПОТОМУЧТО ОН ЧМОШНИК
Аноним 31/07/15 Птн 19:03:17 #283 №523889 
>>523664
черкани мне в лс
Аноним 21/08/15 Птн 19:29:25 #284 №533653 
>>523269
Теано, например.
Аноним 21/08/15 Птн 19:31:07 #285 №533654 
>>522458
Ошибаешься.
Аноним 21/08/15 Птн 19:33:00 #286 №533655 
>>523628
Нет, я отвечаю на все вопросы. Просто обсуждение вяло идет. Попозже вброшу пару интересных ссылок по теме.
Аноним 25/08/15 Втр 20:35:58 #287 №534969 
14405241580290.png
Недавно наткнулся на такую вещь: Neural Turing Machines. Разработано в 2014 людьми из гугла, все из той же группы что занимается глубоким обучением. Статью можно прочесть здесь: http://arxiv.org/abs/1410.5401

Суть: на основе НС с особой архитектурой построено некое подобие машины Тьюринга. Имеется память относительно небольшого объема, считывающие и записывающие головки, а также программа. Все это вместе представляет из себя рекуррентную НС, и ее можно обучать на примерах с помощью backpropagation.
Таким образом, эта НС может обучаться алгоритмам, выполняющимся пошагово. В статье описывается обучение копированию, многократному копированию, и сортировке объектов. Т.к. система учится не просто интерполировать тренировочные примеры, но самому алгоритму, то она обладает недостижимой ранее способностью к обобщению. Например, ее тренировали копировать строки до 20 символов длиной, а после этого она умеет копировать гораздо более длинные строки. То же самое с сортировкой. Обычные рекуррентные архитектуры никогда не могли так обобщать.

Потенциально эта технология может позволить создавать системы, обучающиеся гораздо более сложным концепциям, чем это возможно сейчас. Нынешние архитектуры делают, грубо говоря, интеллектуальную интерполяцию между тренировочными примерами. Новая архитектура может делать нетривиальную пошаговую многоступенчатую обработку данных, создавать и использовать БД, находить алгоритмические закономерности в тренировочном множестве. Это очень круто.
Аноним 26/08/15 Срд 00:05:44 #288 №535056 
>>534969
бля какое же я днище, веб макакинг воревер блять
Аноним 29/08/15 Суб 16:23:09 #289 №536401 
14408545892630.jpg
С помощью сверточной сети фотография преобразуется в стиле знаменитых художников: http://arxiv.org/pdf/1508.06576v1.pdf
Аноним 29/08/15 Суб 23:21:57 #290 №536610 
>>523269>>536401
Охуенно, пость еще. Может нам создать единый machine learning тхред?
Аноним 30/08/15 Вск 15:11:44 #291 №536826 
14409367047070.jpg
>>534969
>Neural Turing Machines.
>реализации:
>пистон https://github.com/shawntan/neural-turing-machines
>го https://github.com/fumin/ntm ГО, Карл!
Хотелось бы на R хотя бы. Ну чтобы была возможность стыковать, гибридизировать с чем-то еще. Так нет, сделают непригодное для использования нечто на пестони или вообще на каких-то индусских поделиях, я ебал. инбифо сам возьми да сделай!!111
Аноним 30/08/15 Вск 20:06:01 #292 №536990 
>>536826
Чувак, это счастье, когда есть пейпер и код к нему в паблике. Хоть какой. Обычно кода нет, а в пейпере недостает 80% инфы, которая, в лучшем случае, общеизвестна.

Что касается языка, то Theano написан на питоне, максимум тебе Lua встретится с Torch. Theano, такая штука типа CAS, что ты описываешь нейросеть в терминах операций с векторами и матрицами, а он сам тебе символьно рассчитывает градиент твоей нейросети. Потом он тебе эту нейросеть еще и в GPU компильнет.
Остальные языки, включая Go - приведут к ручному вычислению символьного градиента на бумажке, что есть полный отстой и никакого пространства для экспериментов. Если тебе нужен R, делай биндинги или аналог Theano под R (миллиард человеко-часов).
Аноним 30/08/15 Вск 22:11:59 #293 №537037 
>>536990
Код не от авторов, увы. Они зажали, и в статье тоже инфы недостает. На гитхабе энтузиасты воссоздали, и они довольно долго мучились с воспроизведением результатов, насколько мне известно. Сейчас вроде работает, хотя я сам еще не проверял.
>>536826
И таки да, теано это одна из стандартных систем для наколенных экспериментов с НС сейчас. Ты разберись сначала, потом критикуй.
Аноним 30/08/15 Вск 22:27:41 #294 №537041 
>>536826
>сделают непригодное для использования нечто на пестони
>подразумевает, что R используется кем-то, кроме обезумевших школьников.
Аноним 30/08/15 Вск 23:11:15 #295 №537058 
>>537041
R используют дядьки в банках, считая свои простенькие регрессии и получающие за час больше, чем ты зарабатываешь за месяц.
Аноним 30/08/15 Вск 23:47:46 #296 №537090 
>>537058
Им платят не за регрессию, а за то, что они знают что с чем регрессировать.
Аноним 30/08/15 Вск 23:53:18 #297 №537092 
>>537090
Whatever. R для таких задач довольно удобен. Но не чтобы на нем писать символьный дифференциатор для нейросетей.
Самое интересное, что казалось бы, Хаскель тут бы хорошо подошел, однако хуй там - питон и lua.
Аноним 31/08/15 Пнд 07:43:53 #298 №537194 
Image Super-Resolution for anime-style-art using Deep Convolutional Neural Networks.

Demo-Application can be found at http://waifu2x.udp.jp/ .

https://github.com/nagadomi/waifu2x

Вот это я понимаю application, не то, что песиков рисовать.
Аноним 31/08/15 Пнд 11:26:01 #299 №537265 
14410095611710.png
14410095611741.png
14410095611832.png
>>537194
Офигеть, и ведь хорошо работает. Картинки: оригинал, ресайз с помощью ресемплинга (лучшая интерполяция, которую я нашел), результат этой программы.
Аноним 31/08/15 Пнд 12:34:15 #300 №537303 
14410136555280.png
>>537265
Аноним 31/08/15 Пнд 12:49:21 #301 №537314 
14410145615110.png
>>537265
Неплохо.
Аноним 31/08/15 Пнд 13:02:00 #302 №537321 
14410153201950.png
>>537265
Но лучшие всё-таки кубическая и Ланцош.
Аноним 31/08/15 Пнд 13:08:17 #303 №537324 
>>537321
На твоем пике - мыло.
Аноним 31/08/15 Пнд 13:12:56 #304 №537326 
>>537324
Намного меньше мыла, чем на твоей лучшей интерполяции.
Аноним 31/08/15 Пнд 13:13:40 #305 №537327 
>>537321
Артефакт на артефакте, чем лучше-то?
Аноним 31/08/15 Пнд 13:18:00 #306 №537334 
>>537326
На твоем пике вокруг любого контрастного перехода довольно заметный звон интерполяционного фильтра.
Аноним 31/08/15 Пнд 15:07:34 #307 №537378 
>>537037
>теано это одна из стандартных систем для наколенных экспериментов с НС сейчас.
Хуйня это из-под коня. Костыль на костыле костылем погоняет. Причем, основной код все равно на крестах или куде, пистон только в качестве враппера. Самый пиздец в том, что приходится ставить кучи ненужного говна, которое к тому же работает никак. Например, я так и не запустил код примеров с сайта. Здесь где-то спрашивал, никто нихуя не знает почему не работает (весь софт был установлен правильно, тесты проходят и компилятся нормально). И все это только из-за того что вместо враппера пистон. В том же R полно пакетов, в которых R не более чем враппер для кода на крестах, и все прекрасно работает, не считая того что сам R без всяких костылей - 64мб и сам язык изначально сделан для нужд датасайнс. А не простой ЯП общего назначения, которым обрабатывать данные можно только через хуеву тучу костылей.
Аноним 31/08/15 Пнд 15:48:02 #308 №537408 
>>537378
Мне надо было - я разобрался. Для ленивого ковыряния не подходит, это да. Я уже тут давал ссылку на казуальную систему: http://cs.stanford.edu/people/karpathy/convnetjs/
Кликай, и у тебя все будет тренироваться сразу же прямо в браузере. Ничего не надо ни устанавливать, ни писать. Можно менять топологию сетей и т.д.
Аноним 31/08/15 Пнд 16:50:10 #309 №537435 
>>537378
Ты просто тупой, смирись с этим. А в R нет ни одного пакета подобного уровня. Просто ты тупой и не понимаешь, чем Theano, который ГЕНЕРИТ КОД на С++, то есть по сути компилятором является", отличается от "враппера".
Аноним 31/08/15 Пнд 16:56:51 #310 №537441 
>>537435
>тупой
>тупой
Ясно. Какого там пакета нет? Из всего что есть в этих ваших теанах в R нет только сверточных сетей. Только, умный ты наш. Из остальных глубоких сетей есть даже перепиленный из матлабовской версии код Хинтона и Салахутдинова из той самой оригинальной работы 2006 года по глубоким сетям. Перцептронов всяких и подавно навалом.
Аноним 31/08/15 Пнд 17:25:43 #311 №537466 
>>537441
Нихуя тебе не ясно. У тебя проблемы с локусом контроля. Начнем с того, что Theano вообще никакого отношения к нейросетям не имеет, это просто компилятор символьных математических выражений, умеющий вычислять само выражение и производную. Ничего подобного на R нет. Там есть пакеты с хардкоженными формулами из пейперов, то есть на порядок более низкоуровневый стафф.
То, что ты этого не понял, и уверен, что theano - это какой-то там враппер к С++-функциям типа caffe, это исключительно проблемы твоей непрошибаемой тупизны и обвинение всего остального мира в своей тупости.
Аноним 31/08/15 Пнд 17:42:46 #312 №537480 
>>537466
Theano vs Sympy - что соснёт?
Аноним 31/08/15 Пнд 17:47:24 #313 №537482 
>>537480
Совершенно разные системы с непересекающимися наборами фичей. Для НС симпи непригоден.
Аноним 31/08/15 Пнд 17:50:21 #314 №537483 
>>537482
>Theano вообще никакого отношения к нейросетям не имеет
>вычислять само выражение и производную
Вот в этом контексте. Без нейросетей.
Аноним 31/08/15 Пнд 18:15:18 #315 №537496 
14410341186910.jpg
14410341186921.png
>>537194
Ффцелом ахуена.
Аноним 31/08/15 Пнд 20:08:56 #316 №537557 
>>537483
Это зашитый функционал, и производную ты не можешь увидеть в символьном виде в теано. Зато это компилируется в С или в ядро для куды, и работает очень быстро, ради чего это все и делалось. В симпи этого нет.
Симпи предназначен для манипуляции самими выражениями, и по этой части у него очень большие возможности. В теано ничего подобного нет, там только градиенты можно вычислять, и то далеко не для всех функций.
Аноним 31/08/15 Пнд 21:17:06 #317 №537605 
>>537557
Вона как. Спасибо.
Наверное и считаются эти производные соседними значениями функций.
Аноним 31/08/15 Пнд 21:53:06 #318 №537622 
>>537605
Если ты про numerical gradient, то нет. В многомерных задачах он считается очень долго и сосет.

Вот как они считаются
http://cs231n.github.io/optimization-2/

Если вкратце пересказать, то "знаменитый" метод backpropagation является старой доброй штукой из матана dx/dy=dx/dq * dq/dx, в которой многослойная функция y=f(g(h(x)) послойно разворачивается от выхода входу.

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

То есть. В simpy ты записываешь аналитический вид твоей функции, говоришь его продифференцировать, он хрустит булками, и получает вид ее производный, трехэтажный, сложный и с кучей частных случаев. К примеру, представь аналитическую производную функции max( max(2, x), max(3, y) ). В ответе у тебя будет куча интервалов - x < 2, x > 2, y < 3, y > 3 и т. п. Сложно и в принципе нам и не нужно, нам бы просто градиент вычислить, без переписывания из simpy в язык программирования этого градиента руками.

В Theano ты записываешь аналитический вид твоей функции, он представляет ее в виде графа. Далее, когда ты просишь его вычислить функцию и градиент в точке x0, он делает forward pass по графу и выдает f(x0), далее делает backward pass по графу и выдает f'(x0), вычисляя производные в каждом узле методом chain rule. Получается очень эффективно, потому что при backward pass используются значения, полученные при forward pass. На самом деле этот граф оптимизируется, упрощается и компилируется в C++ или CUDA.

При этом применимо это для любой целевой функции, которая задается в виде математической формулы. Т.е. на базе Theano ты и SVM для CUDA можешь в три строчки сделать, и любой свой метод. Конкурент у него один - Torch для LuaJIT. Наверное, это возможно написать на R, да хоть на node.js, но написали почему-то на питоне и луа.
Аноним 31/08/15 Пнд 22:44:30 #319 №537644 
>>438092
http://arxiv.org/abs/1502.03167
Аноним 31/08/15 Пнд 23:10:48 #320 №537653 
>>537644
Да, отлично. Сейчас идет волна улучшений в глубоком обучении. Взгляды и веяния меняются прямо на глазах. Например, раньше использовали предобучение с помощью автоэнкодеров, а в этой статье это уже не упоминается.
Надеюсь, в скором времени устоится некий набор правил, которые дают наилучший результат.
Аноним 31/08/15 Пнд 23:21:27 #321 №537655 
>>537653
Я дал выше ссылку на http://cs231n.github.io/, там в принципе все современные методы описаны. Еще пишется книжка по deep learning, в deep learning read list есть ее черновик.
От предобучения избавились с помощью ReLU, dropout и некоторых других техник, которые там описаны.
Аноним 31/08/15 Пнд 23:28:15 #322 №537656 
>>537655
В этой же статье >>537644 уже и дропаута нет - они говорят, что их метод выполняет его функции.
Книжку ту видел, кажется.
Аноним 31/08/15 Пнд 23:32:43 #323 №537658 
>>537655
Еще хочу добавить: все это несколько сложнее, чем кажется, когда читаешь эту литературу. Например, я при тренировке НС из оппоста пытался использовать дропаут и регуляризацию, но у меня так ничего и не вышло. Без них работает лучше. А везде пишут, что это полезные вещи. т.е. я явно что-то делал не так, но что именно - непонятно.
Аноним 31/08/15 Пнд 23:48:41 #324 №537662 
>>537655
Я не гонюсь за передовыми статьями, лучше подождать полгода и посмотреть комментарии сообщества. А то в каждой блин статье экстраординарные результаты, которые потом почему-то не видно Вот в учебниках пишут уже действительно проверенные вещи, которые неплохо идут на практике, причем перечисляют типичные ошибки, которые без этого знания дебажишь по несколько дней.

>>537658
Лучше на training set или validation set? Если на training, то так и должно быть, потому что регуляризация уменьшает overfit.
Если на validation, то, скорее всего, формулы кривые. Типа, в dropout забыл делить на p, градиент криво посчитал и т. п. (https://twitter.com/karpathy/status/626429221414563841)
Если по поводу я dropout не уверен (руки не дошли), то регуляризация обязательна для избежания overfit'a.

Кстати, тем временем https://github.com/kaishengtai/neuralart
Аноним 31/08/15 Пнд 23:56:09 #325 №537665 
Кстати, смотря я этот neuralart и, по-моему, torch выглядит приятнее theano.
Аноним 01/09/15 Втр 01:15:00 #326 №537698 
>>537662
Градиенты у меня в теано же считаются, разве что там набажили, но это вряд ли. Я экзотики не использую.
>регуляризация обязательна для избежания overfit'a
Ну это, очевидно, неверно. Ты XOR тренировал когда-нибудь? Какой там может быть оверфит на одном нейроне? Оверфит далеко не всегда проявляется. У меня он был совем небольшой, и ошибки на тренировочном и валидационном множестве были почти одинаковые. Без регуляризации.

Вот о таких вещах я и говорю. В книжке написано, мол, "регуляризация обязательна для избежания overfit'a". А на самом деле там масса нюансов. Например, не сказано, что сеть должна быть достаточно большой для оверфита. От скорости обучения это тоже зависит. И т.д. Нужно все самому на своем опыте переоткрывать.
Аноним 01/09/15 Втр 01:41:24 #327 №537704 
>>537698
Блин, ты вообще не о том пишешь. Не надо вручную подбирать гиперпараметры.

По уму у тебя должен быть реализован параметр лямбда, должен быть реализован параметр p. Далее твой алгоритм должен быть протестен на toy set с известным перформансом. Можно посмотреть на вид полученных фильтров - достаточно ли они ортогонально выглядят.

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

Обратная ситуация, это через жопу: сделал алгоритм, не отладил, потом подумал, а не заебенить ли регуляризацию, заебенил, проверил с лямбдой 0.01 и 0.1 и увидел, что перформанс стал хуже, забил на это. И так с каждой новой задачей. Вместо того, чтобы машина сама этим занималась.
Аноним 01/09/15 Втр 11:46:07 #328 №537802 
>>537704
Ты прямо какой-то сферический теоретик. Там гиперпараметров десятки: количество слоев, их формы, например. Если это все перебирать, ты помрешь раньше, чем оно найдет идеальную конфигурацию. Тут нужно своим умом понимать, как надо делать. А это только с опытом приходит.

Ты тут описываешь какую-то волшебную коробочку с кнопкой "сделать хорошо". Такого и близко нет. Попробуй сам что-нибудь нетривиальное сделать, поймешь.
Аноним 01/09/15 Втр 20:06:02 #329 №538025 
>>537802
>Ты прямо какой-то сферический теоретик.
>Попробуй сам что-нибудь нетривиальное сделать, поймешь.
Ба-бах.
http://www.jmlr.org/papers/volume13/bergstra12a/bergstra12a.pdf
Аноним 02/09/15 Срд 01:06:33 #330 №538194 
14411451938210.jpg
14411451938291.jpg
14411451938402.jpg
На кагле началось новое соревнование по картинкам: https://www.kaggle.com/c/noaa-right-whale-recognition
Нужно сделать систему распознавания китов. Т.е. отличать одного кита от другого.

Кто-нибудь хочет поучаствовать?
Аноним 03/09/15 Чтв 19:40:27 #331 №539098 
14412984274910.jpg
Контора Teradeep заоупенсорсила свою сеть, которая может в реальном времени распознавать объекты на видео (на основе ImageNet): https://github.com/teradeep/demo-apps
Видео демонстрация работы: https://www.youtube.com/watch?v=_wXHR-lad-Q
17 ФПС на макбуке про.
Аноним 04/09/15 Птн 00:19:46 #332 №539280 
14413151860460.png
Вот такую фигню как хорошо можно распознать? Обучил до 10-ух ошибок из 100, норм?
Аноним 04/09/15 Птн 00:38:10 #333 №539296 
>>539098
круто. еще бы оно их обводить по контуру научилось.
Аноним 04/09/15 Птн 04:17:26 #334 №539354 
>>539280
Сам попробуй пораспознавать, проверь какая у тебя ошибка. Этот уровень и будет примерным пределом.
Аноним 04/09/15 Птн 20:39:47 #335 №539795 
>>539098
Почему в луа пишут нейросети и работают с ними? Что за мода такая? Дайте, кто может пошаговое описание глубокого обучения. Имеется ввиду грубую настройку Restricted Boltzmann machine. По типу считаешь матрицу по такой формуле и т.д. П.С. Смещение в моей сверточной нейросети отсутствует.
Аноним 04/09/15 Птн 21:10:10 #336 №539825 
>>539795
Почему нет?
Про РБМ тут: http://deeplearning.net/tutorial/rbm.html
Аноним 05/09/15 Суб 01:11:48 #337 №540000 
>>539795
LuaJIT обгоняет по производительности D. А так есть 2 тулзы такого рода, theano на питоне и torch7 на lua. И вот кто-то ИТТ бугуртит на питон, а кто-то на lua.
Если вместо rbm взять автоэнкодер, то вот тут неплохой туториал http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial
RBM я так и не понял, как работает, кстати.
Аноним 05/09/15 Суб 09:28:17 #338 №540097 
14414344979520.jpg
14414344979671.png
14414344979692.png
>>536401
Руки дошли потестировать.
Аноним 05/09/15 Суб 09:42:56 #339 №540100 
14414353769070.jpg
14414353769081.jpg
14414353769162.png
Аноним 05/09/15 Суб 10:07:16 #340 №540106 
14414368366590.jpg
14414368366701.jpg
14414368366762.png
Аноним 05/09/15 Суб 11:08:07 #341 №540123 
>>540097 это офигенно
>>540100 превью норм но в полном размере так себе
>>540106 ничотак
Аноним 08/09/15 Втр 23:27:50 #342 №540500 
>>540100
Тут походу дом с небом напутала сеть.
Аноним 11/09/15 Птн 21:29:03 #343 №541856 
http://habrahabr.ru/post/159909/

Здесь кто-то смотрел код?

Там веса инициализируются случайно? Или в начале при сэмплированию по Гибсу их нулями сделать?
Аноним 14/09/15 Пнд 05:27:14 #344 №542808 
http://gitxiv.com/ какая классная штука. Пейперы только с готовым кодом.
Аноним 14/09/15 Пнд 13:32:54 #345 №542902 
>>542808
Вот это полезно.
Аноним 15/09/15 Втр 16:04:06 #346 №543393 
14423222461100.gif
RIP Яндекс-капча, кстати. Как видите, ломать ее не было никакого смысла.
Аноним 15/09/15 Втр 21:56:43 #347 №543576 
>>543393
Охуеть, по этой линии ведь можно убрать деформацию изображений. Разбить на отдельные символы бы потом не сильно тяжело, потому что цифры примерно равны по ширине, ну и там разные еще полезные мелкие хинты есть. Если бы они всегда такую капчу генерировали, то проблем бы не было.

мимопроходил
Аноним 18/09/15 Птн 23:58:00 #348 №545464 
Это же две одинаковых функции
fun=(exp(x)-exp(-x))/(exp(x)+exp(-x));
fun=(2/(1+exp(-2*x)))-1;

первая - гиперболический тангенс, вторая - сигма, но с примесями и с ними у меня все нормально настраивается. Не могу понять, почему не настраивается с чистой сигмой типа
fun=1/(1+exp(-x)); Т.е. не получается у меня настроить, то что не симметрично точке (0;0)
Аноним 19/09/15 Суб 02:33:27 #349 №545516 
>>545464
Ботай Efficient backprop LeCun'а, он расписал про это.
Аноним 19/09/15 Суб 04:54:28 #350 №545543 
>>545464
Распределение начальных значений у нейронов какое? Если они уходят в насыщение, обучение будет неэффективным.
comments powered by Disqus

Отзывы и предложения