Комментарии 73
Огромное спасибо за статью, для себя подчерпнул довольно много нового.
Познавательно.
За список литературы — отдельное спасибо.
За список литературы — отдельное спасибо.
Пытался я освоить нейросети, но как-то не пошло. Видимо из-за, как мне показалось, их медлительности…
Длинная статья, но интересная :) Много чего нового узнал. Спасибо :)
«Большинство людей под «обычными» или «классическими» нейросетями понимает полносвязные нейронные сеть прямого распространения с обратным распространением ошибки»
Большинство людей не поймут о чем это предложение =)
Большинство людей не поймут о чем это предложение =)
А не подскажете, где можно почитать про распознавание изображений с помощью радиально-базисных сетей?
А то везде, где ищу пишут, примерно как у вас «также успешно используются радиальные базисные функции». Заменяя слово «успешно» на «возможно», «можно» и т.п.
А то везде, где ищу пишут, примерно как у вас «также успешно используются радиальные базисные функции». Заменяя слово «успешно» на «возможно», «можно» и т.п.
1) ISBN 5-03-002115-9; Саймон Хайкин «Нейронные сети: полный курс»
2) ISBN 5-279-02567-4, 83-7207-187-X; Станислав Осовский «Нейронные сети для обработки информации»
2) ISBN 5-279-02567-4, 83-7207-187-X; Станислав Осовский «Нейронные сети для обработки информации»
На русском языке по использованию RBF в распознавании изображений я ничего не видел. Да и вообще мало чего есть современного в этой области на русском. В качестве примера могу предложить статью Y. LeCun, L. Bottou, Y. Bengio and P. Haffner: Gradient-Based Learning Applied to Document Recognition, Proceedings of the IEEE, 86(11):2278-2324, November 1998.
Радиальные базисные сети редко используются самостоятельно в задачах распознавания изображений. Их обычно ставят на выходе. Смысл их можно приблизительно пояснить следующим сравнением: если функции активации такие как линейная, логистическая, тангенциальная и другие делят гиперпространство гиперплоскостью (читать как делят плоскость на две области прямой), то радиальные базисные функции активации делят гиперпространство на «внутри сферы» и «вне сферы», что в задачах классификации часто бывает полезно.
Радиальные базисные сети редко используются самостоятельно в задачах распознавания изображений. Их обычно ставят на выходе. Смысл их можно приблизительно пояснить следующим сравнением: если функции активации такие как линейная, логистическая, тангенциальная и другие делят гиперпространство гиперплоскостью (читать как делят плоскость на две области прямой), то радиальные базисные функции активации делят гиперпространство на «внутри сферы» и «вне сферы», что в задачах классификации часто бывает полезно.
ох понадобится мне это через два месяца для сессии.
Статья супер! Спасибо. Наконец-то что-то новое для себя почерпнул.
Фундаментально. С каждой такой статьей эта тема мне становится все более интересна. Придется как-нибудь углубиться.
а теперь понимаем что нейросети понимают каптчу лучше человека и отказываемся от каптчи
каптча еще актуальна, ввиду сложности создания подобных решений и отсутствия плаг-н-плай модулей. спамерам еще прийдется попотеть для реализации подобного
Впечатляет. Очень хорошая статья, спасибо :)
ps. добавьте абзацы перед заголовками (названиями разделов), так, пожалуй, будет лучше )
ps. добавьте абзацы перед заголовками (названиями разделов), так, пожалуй, будет лучше )
НЛО прилетело и опубликовало эту надпись здесь
Очень познавательно… Ещё, мне кошек стало жалко…
Как приятно видеть на хабре такие статьи. Сам минувшими весной-летом очень увлёкся convolutional networks. Клюнул именно на заявленную «мозгоподобность» сетей, что в общем-то местами похоже на правду. А если верить Jew Hawkins «On intelligence», где довольно убедительно говорится, что области кортекса мозга не имеют ярко выраженной специализации и одинаково обрабатывают всю входящую информацию (будь то зрительные, звуковые, сенсорные или даже логические образы) — то свёрточная сеть представлялась мне универсальным распознователем или хотя бы классификатором (хотя я замахнулся сразу на задачи кластеризации). Однако эксперимент, подтверждённый затем логическими выкладками, показал, что механизм выделения локальных признаков, кроме изображений, ограниченно полезен лишь в обработке звуков, и совершенно бесполезен в наиболее интересной мне задаче кластеризации текстов. Это вызвало у меня довольно сильное разочарование в свёрточных сетях (хотя они по большому счёту не виноваты =) просто мозгоподобность тут не при чём) и заставило вернуться к извращениям над картами Кохонена.
И всё же большое вам спасибо за просвещение, если я правильно помню, то до вас на русском языке видел лишь одну махонькую заметку о свёрточных сетях =) Пишите ещё, пожалуйста.
И всё же большое вам спасибо за просвещение, если я правильно помню, то до вас на русском языке видел лишь одну махонькую заметку о свёрточных сетях =) Пишите ещё, пожалуйста.
может для кластеризации текстов надо использовать НС с обучением без учителя? (Хотя Вы и сами об этом знаете :D )
Ну вот вижу, что да, просто хотелось найти какой-нибудь новый метод, взамен карт Кохонена.
Ну вот вижу, что да, просто хотелось найти какой-нибудь новый метод, взамен карт Кохонена.
кстати, стукните в личку, есть у меня знакомый, занимался кластеризацией текста. Может, Вам будет о чём поговорить
Для вас важно именно кластеризовать? Потому что если вам в дальнейшем все равно нужно его распознавать, то можно использовать space displacement convolutional network. По сути это то же, о чем я написал, только окошко размером 32х32 гоняется по всему изображению и у нас для каждого его участка получается вектор, который сообщает, какова вероятность, что на этом месте есть буква, и какая эта буква. Эти вероятности уже можно использовать для дальнейшего анализа.
Да, я видимо не совсем ясно выразился =) Текст не требует распознования, это обычный электронный документ — его надо только «отсортировать» по тематике (document clustering, задача data mining в общем-то, но у нас немного особый подход). Работающий пример — WEBSOM. Но мы делаем штуку, которая работает в реальном времени (а не пакетно), осуществляет нечёткую кластеризацию и не боится выбросов.
Я тоже недавно столкнулся со свёрточными сетями и хотел изучить их поближе. Теперь есть от чего оттолкнуться. :)
Кстати, по поводу выбора архитектуры сети. Известно, что SVM с ядром определённой конфигурации (RBF в том числе) будет эквивалетен двуслойной нейросети. При этом количество нейронов на скрытых слоях определяется автоматически (в оптимальном ключе).
Кстати, по поводу выбора архитектуры сети. Известно, что SVM с ядром определённой конфигурации (RBF в том числе) будет эквивалетен двуслойной нейросети. При этом количество нейронов на скрытых слоях определяется автоматически (в оптимальном ключе).
Да, на счет SVM вы правы, но это все же shallow-архитектура (поверхностная). Линейная комбинация нелинейных ядер, как в SVM, не даст возможности обучения глубоким иерархиям.
Что понимается под глубокими иерархиями?
Имеются ввиду сложные многомерные функции. С одной стороны SVM, являющийся по сути механизмом взвешенного сравнения с шаблоном, а с другой стороны «глубокие архитектуры», одним из частных случаев которых являются нейронные сети. Почитать об этом можно, например, здесь Hinton, G. E., Osindero, S. and Teh, Y. (2006) A fast learning algorithm for deep belief nets. Neural Computation, 18, pp 1527-1554.
В т.н. глубоких архитектурах низкоуровневые признаки объединяются в высокоуровневые абстрактные представления. Для SVM при определенном усложнении задачи наступает проклятье размерности — их становится просто не выгодно использовать.
В т.н. глубоких архитектурах низкоуровневые признаки объединяются в высокоуровневые абстрактные представления. Для SVM при определенном усложнении задачи наступает проклятье размерности — их становится просто не выгодно использовать.
Хорошая статься, но было бы неплохо написать про такие бяки нейросетей, как «несходимость» и «насыщение» и методы их решения с примерами. Я бы было вообще доволен.
скажите, а с библиотекой FANN (http://leenissen.dk/fann/) вам не приходилось иметь дело?
3ая лаба из универа по предмету «Цифровая обработка сигналов».
эх запахло универом и лабами :)
Спасибо за статью. Вспомнил лабы в универе (больше практиковаться в нейросетях не приходилось). Приятно видеть что в альма-матер еще остались грамотные специалисты.
Спасибо.
Очень интересно было читать, правда понимал через раз, но это проблема уже моего образования.
Было бы интересно почитать основы НС с примерами.
Очень интересно было читать, правда понимал через раз, но это проблема уже моего образования.
Было бы интересно почитать основы НС с примерами.
А у нас как раз сейчас подходит к концу срок сдачи лабораторной по перцептронам и распознаванию изображений цифр, кому-нибудь будет интересно увидеть реализацию на java? Однослойная сеть конечно куда проще описанного, но для начинающих более понятна, думаю.
Сам впервые столкнулся с нейронными сетями, поэтому подобные статьи очень полезны, спасибо автору.
Сам впервые столкнулся с нейронными сетями, поэтому подобные статьи очень полезны, спасибо автору.
Спасибо, автор
intelligenceAgent: А вы не рассматривали технологию HTM (http://en.wikipedia.org/wiki/Hierarchical_temporal_memory), которую с натяжкой можно назвать «не стандартной» нейронной сетью, для задач распознавания изображений. Интересно ваше мнение.
Спасибо за наводку. Прочитал по диагонали диссертацию тов. Dileep. (У нас бы такую совет не пропустил =)) Очень интересная штука этот HTM, в диссертации выдвигаются правильные идеи, которые мне лично уже давно не дают покоя — например, учет временных свойств изображений объектов для лучшего распознавания. Интересна комбинация цепей маркова, иерархичности, сетей доверия. Сама работа написана грамотно.
Однако, тут пока еще рано о чем-то судить. В диссертации очень мало внимания уделяется экспериментальной проверке идей. По большому счету там 150 стр. теории и 5 страниц результатов экспериментов, хотя по нормальному должно быть хотя бы 80%-20%. Более того автор приводит некую свою довольно примитивную базу бинарных изображений, показывает, что качество распознавания на тестовом множестве составило 57% (что не очень хорошо). И сравнивает результат с nearest-neighbour классификатором, т.е. одним из простейших.
Тут можно сказать, что софт реализующий распознавание более сложных объектов реализован и лежит на сайте, но как раз о нем никаких статей и сравнений качества распознавания применяемых там алгоритмов я не нашел.
Возможно я чего-то не знаю. Если у вас есть ссылки на другие статьи по использованию HTM в задачах распознавания, буду рад их получить.
Однако, тут пока еще рано о чем-то судить. В диссертации очень мало внимания уделяется экспериментальной проверке идей. По большому счету там 150 стр. теории и 5 страниц результатов экспериментов, хотя по нормальному должно быть хотя бы 80%-20%. Более того автор приводит некую свою довольно примитивную базу бинарных изображений, показывает, что качество распознавания на тестовом множестве составило 57% (что не очень хорошо). И сравнивает результат с nearest-neighbour классификатором, т.е. одним из простейших.
Тут можно сказать, что софт реализующий распознавание более сложных объектов реализован и лежит на сайте, но как раз о нем никаких статей и сравнений качества распознавания применяемых там алгоритмов я не нашел.
Возможно я чего-то не знаю. Если у вас есть ссылки на другие статьи по использованию HTM в задачах распознавания, буду рад их получить.
Вообще меня вдохновили теория интелекта, изложенная в книге Джефа Хокинга «Об интелекте» — en.wikipedia.org/wiki/On_Intelligence. Я не специалист в этой области, но такая элегантная теория не может быть ложной по сути :) Да, действительно, трудно найти что-либо в сети… Мне показалась эта статья интересной www98.griffith.edu.au/dspace/handle/10072/23558 — сравнивается HTM и SVM для тойже задачи распознавания рукописных символов.
Идеи интересны. Однако меня удивило утверждение, будто ученые, работающие в области AI игнорируют исследования в области нейронаук. По моему, в последнее время, эти две области очень тесно переплетаются.
Кроме того, не будем забывать, что Хокинг бизнесмен. Это очень заметно, когда начинаешь искать литературу: очень много инрервью, рекламы, разговоров. Но очень мало научных статей и ссылок в оных на его работы.
На самом деле интересных идей довольно много, но, к сожалению, мало научно-популярных книг, объясняющих эти идеи, таких как On Intelligence.
Кроме того, не будем забывать, что Хокинг бизнесмен. Это очень заметно, когда начинаешь искать литературу: очень много инрервью, рекламы, разговоров. Но очень мало научных статей и ссылок в оных на его работы.
На самом деле интересных идей довольно много, но, к сожалению, мало научно-популярных книг, объясняющих эти идеи, таких как On Intelligence.
В 3-ем пункте стоило бы упомянуть, что теоретически, первые слои простой сети тоже могут в процессе обучения выродиться в такую же свёрточную прослойку за счёт обнуления большинства коэффициентов. т.е. что такая свёрточная архитектура — фактически подмножество обычной ПНС.
кста, картинки только у меня больше не показываются, ругаясь на лимиит показов и неиспользование превьюшки?
Картинки не грузятся
Это из за проблем с макхостом. Обещают восстановить в ближайшие дни.
А вообще конечно не буду больше imagehost использовать, у них и до этого проблемы были.
А вообще конечно не буду больше imagehost использовать, у них и до этого проблемы были.
Присоединяюсь к просьбе исправить картинки с imagepost.ru/.
Спасибо!
Спасибо!
Вопрос по реализации. Как у вас считается ошибка для ядра — например, при обратном распространенни с C-layer на Input?
У меня в голове не укладывается) Для полносвязных уровней понятно — один нейрон, одна связь с любым предыдущим нейроном. Для сверточных слоев — неясно. Если ядро — 25 связей и они «расшарены» между всеми нейронами, то как ошибка нейрона влияет на веса? Средняя ошибка для всей feaure_map вычисляется?
У меня в голове не укладывается) Для полносвязных уровней понятно — один нейрон, одна связь с любым предыдущим нейроном. Для сверточных слоев — неясно. Если ядро — 25 связей и они «расшарены» между всеми нейронами, то как ошибка нейрона влияет на веса? Средняя ошибка для всей feaure_map вычисляется?
Считается усреднением. Т.е. если подходить к вопросу классически как в полносвязной сети, то для каждого разделяемого веса у вас будет получаться множество ошибок. Вычисляем среднее и получаем ошибку для данного разделяемого веса в ядре. Смысл введенного ограничения на веса — способности к обобщению, усреднение градиентов именно к этому и ведет. Веса становятся инвариантны к локальным особенностям изображения и лучше реагируют на независимые фичи.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Применение нейросетей в распознавании изображений