Распознавание автомобильных номеров до сих пор является самым продаваемым решением на основе компьютерного зрения. Сотни, если не тысячи продуктов конкурируют на этом рынке уже на протяжении 20-25 лет. Отчасти поэтому сверточные нейронные сети (CNN) не бьют прежние алгоритмические подходы на рынке.
Но опыт последних лет говорит, что алгоритмы CNN позволяют делать надежные и гибкие для применения решения. Есть и еще одно удобство: при таком подходе всегда можно улучшить надежность решения на порядок после реального внедрения за счет переобучения.
Кроме того, такие алгоритмы отлично реализуются на GPU (графических модулях), которые значительно эффективней с точки зрения потребления электроэнергии, чем обычные процессоры. А платформа Jetson TX так просто потребляет очень мало по меркам современных вычислителей. Наглядное “энергетическое превосходство”:
Читать полностью »
Рубрика «нейронные сети» - 25
Нейронные сети в детектировании номеров
2017-05-28 в 22:56, admin, рубрики: jetson tx1, Nvidia, автомобильные номера, Алгоритмы, Блог компании Recognitor, машинное обучение, нейронные сети, обработка изображений, сверточные нейронные сети, метки: jetson tx1, автомобильные номера, свёрточные нейронные сетиЭксперименты с malloc и нейронными сетями
2017-05-26 в 9:02, admin, рубрики: gru, heap, LSTM, malloc, python, Алгоритмы, Блог компании Mail.Ru Group, куча, машинное обучение, нейронные сети, рекуррентная нейронная сеть, системное программирование
Больше года назад, когда я работал антиспамщиком в Mail.Ru Group, на меня накатило, и я написал про эксперименты с malloc. В то время я в свое удовольствие помогал проводить семинары по АКОСу на ФИВТе МФТИ, и шла тема про аллокацию памяти. Тема большая и очень интересная, при этом охватывает как низкий уровень ядра, так и вполне себе алгоритмоемкие структуры. Во всех учебниках написано, что одна из основных проблем динамического распределения памяти — это ее непредсказуемость. Как говорится, знал бы прикуп — жил бы в Сочи. Если бы оракул заранее рассказал весь план по которому будет выделяться и освобождаться память, то можно было составить оптимальную стратегию, минимизирующую фрагментацию кучи, пиковое потребление памяти и т.д. Отсюда пошла возня с ручными аллокаторами. В процессе раздумий я натолкнулся на отсутствие инструментов логирования malloc()
и free()
. Пришлось их написать! Как раз про это была статья (а ещe я изучал macOS). Были запланированы две части, однако жизнь круто повернулась и стало не до malloc()
. Итак, пора восстановить справедливость и реализовать обещанное: ударить глубоким обучением по предсказанию работы с кучей.
Внутри:
- Совершенствуем
libtracemalloc
, перехватчикmalloc()
. - Строим LSTM на Keras — глубокую рекуррентную сеть.
- Обучаем модель на примере работы реального приложения (vcmi/vcmi — а вы думали, причем здесь Heroes III?).
- Удивляемся неожиданно хорошим результатам.
- Фантазируем про практическое применение технологии.
- Исходники.
Интересно? Добро пожаловать под кат.
Механизм подсчета нейронной сети в PL-SQL для распознавания рукописных цифр
2017-05-17 в 8:50, admin, рубрики: machine learning, neural networks, oracle, PL/SQL, python, sql, Блог компании PG Day'17 Russia, машинное обучение, нейронные сети, распознавание текстаДорогие коллеги, спешим порадовать всех, кто неравнодушен к наукоемким задачам. Сегодня мы приготовили для вас перевод любопытной публикации от экспертов по базам данных из CERN, посвященный обучению и эксплуатации нейронных сетей с помощью Python и инструментария на базе Oracle PL/SQL.
В этой статье вы найдете пример построения и развертывания базового механизма подсчета искусственной нейронной сети с использованием PL/SQL. Статья предназначена для учебных целей, в частности для практиков Oracle, которые хотят на конкретном примере познакомиться с нейронными сетями.
Читать полностью »
ИИ от Google научился имитировать и сочетать звуки музыкальных инструментов
2017-05-16 в 12:09, admin, рубрики: DeepMind, Google, ИИ, искусственный интеллект, нейронные сети
Проект Google Magneta, состоящий из небольшой группы исследователей искусственного интеллекта внутри гигантских компьютерных систем, представил музыкантам новый набор инструментов для создания музыки — NSynth.
Magneta — часть подразделения Google Brain, центральной лаборатории искусственного интеллекта в компании. В лаборатории исследователи изучают границы возможностей нейронных сетей и других форм машинного обучения. Нейронные сети, представляющие собой сложные математические системы, изучающие задачи и анализирующие большие объемы данных, в последние годы вышли на передний план в задачах распознавания объектов и лиц на изображениях и переводах с одного языка на другой.
Теперь команда Magneta переворачивает эту идею с ног на голову, используя нейронные сети как способ обучения машин новым видам музыки и других искусств. На первом этапе NSynth работает с большой базой данных звуков. Джесси Энгель (Jesse Engle), один из сотрудников Magneta, и его команда собрали широкий диапазон нот примерно из тысячи разных инструментов, от скрипки до балафона, а затем предоставили свои наработки нейронной сети.
В отличие от традиционного синтезатора, который генерирует звук из осцилляторов и таблиц сэмплов, NSynth использует глубокую нейронную сеть для генерации звуков на уровне отдельных образцов. Инструмент предоставляет музыкантам интуитивный контроль тембра, динамики, а также возможность изучать и исследовать новые звуки, которые трудно или невозможно извлечь из обычного синтезатора.Читать полностью »
Учим нейронную сеть геометрии
2017-05-15 в 11:17, admin, рубрики: fann, neural networks, php, машинное обучение, нейронные сети, урок fann, метки: fannДоброго времени суток, пользователи Хабра и просто гости. Хотел бы поделиться с Вами опытом работы с нейронными сетями.
Как мы делали краткосрочный прогноз осадков. Лекция в Яндексе
2017-05-07 в 12:06, admin, рубрики: Алгоритмы, Блог компании Яндекс, математика, машинное обучение, нейронные сети, осадки, погода, прогнозирование, радарные системы, сверточные нейронные сети, сплайны, яндекс.погодаВ начале зимы Яндекс.Погода научилась показывать, будут ли осадки в ближайшие два часа. Спустя пару месяцев тема метеопрогнозирования стала центральной на одном из мероприятий Data & Science. Среди докладчиков в тот день был Алексей Преображенский — разработчик из команды Яндекс.Погоды. Алексей рассказал о нашем алгоритме наукастинга и сверточной нейросети, лежащей в основе этого алгоритма.
Под катом — расшифровка лекции и слайды.
Сегментация текстовых строк документов на символы с помощью сверточных и рекуррентных нейронных сетей
2017-05-04 в 10:16, admin, рубрики: ocr, Алгоритмы, Блог компании Smart Engines, машинное обучение, нейронные сети, обработка изображений, Программирование, распознавание, распознавание паспорта, рекуррентные сети, свёрточные сети, сегментацияСегментация строки на символы является одним из важнейших этапов в процессе оптического распознавания символов (OCR), в частности, при оптическом распознавании изображений документов. Сегментацией строки называется декомпозиция изображения, содержащего последовательность символов, на фрагменты, содержащие отдельные символы.
Важность сегментации обусловлена тем обстоятельством, что в основе большинства современных систем оптического распознавания текста лежат классификаторы (в том числе — нейросетевые) отдельных символов, а не слов или фрагментов текста. В таких системах ошибки неправильного проставления разрезов между символами как правило являются причиной львиной доли ошибок конечного распознавания.
Поиск границ символов усложняется из-за артефактов печати и оцифровки (сканирования) документа, приводящим к “рассыпанию” и “склеиванию” символов. В случае использования стационарных или мобильных малоразмерных видеокамер спектр артефактов оцифровки существенно пополняется: возможны дефокусировка и смазывание, проективные искажения, деформирование и изгибы документа. При съемке камерой в естественных сценах на изображениях часто возникают паразитные перепады яркости (тени, отражения), а также цветовые искажения и цифровой шум в результате низкой освещенности. На рисунке ниже показаны примеры сложных случаев при сегментации полей паспорта РФ.
В этой статье мы расскажем о методе сегментации символов текстовых строк документов, разработанном нами в Smart Engines, основанный на обучении сверточных и рекуррентных нейронных сетей. Основным рассматриваемым в работе документом является паспорт РФ.
Читать полностью »
Спортивный анализ данных, или как стать специалистом по data science
2017-04-26 в 14:05, admin, рубрики: adam, big data, black box, data mining, data science, ImageNet, inceptionV3, kaggle, mxnet, Q-learning, resnet, xgboost, аугментация данных, блендинг, Блог компании Яндекс, валидация, классификация, конкурсы разработчиков, контест, машинное обучение, нейронные сети, распознавание изображений, Спортивное программирование, стекинг, тренировки, черный ящикМеня зовут Пётр Ромов, я — data scientist в Yandex Data Factory. В этом посте я предложу сравнительно простой и надежный способ начать карьеру аналитика данных.
Многие из вас наверняка знают или хотя бы слышали про Kaggle. Для тех, кто не слышал: Kaggle — это площадка, на которой компании проводят конкурсы по созданию прогнозирующих моделей. Её популярность столь велика, что часто под «кэглами» специалисты понимают сами конкурсы. Победитель каждого соревнования определяется автоматически — по метрике, которую назначил организатор. Среди прочих, Kaggle в разное время опробовали Facebook, Microsoft и нынешний владелец — Google. Яндекс тоже несколько раз отметился. Как правило, Kaggle-сообществу дают решать задачи, довольно близкие к реальным: это, с одной стороны, делает конкурс интересным, а с другой — продвигает компанию как работодателя с солидными задачами. Впрочем, если вам скажут, что компания-организатор конкурса задействовала в своём сервисе алгоритм одного из победителей, — не верьте. Обычно решения из топа слишком сложны и недостаточно производительны, а погони за тысячными долями значения метрики не настолько и нужны на практике. Поэтому организаторов больше интересуют подходы и идейная часть алгоритмов.
Kaggle — не единственная площадка с соревнованиями по анализу данных. Существуют и другие: DrivenData, DataScience.net, CodaLab. Кроме того, конкурсы проводятся в рамках научных конференций, связанных с машинным обучением: SIGKDD, RecSys, CIKM.
Для успешного решения нужно, с одной стороны, изучить теорию, а с другой — начать практиковать использование различных подходов и моделей. Другими словами, участие в «кэглах» вполне способно сделать из вас аналитика данных. Вопрос — как научиться в них участвовать?
Прогнозирование финансовых временных рядов с MLP в Keras
2017-04-20 в 14:57, admin, рубрики: Алгоритмы, математика, машинное обучение, нейронные сети, прогнозирование временных рядов
Всем привет! В этой статье я хочу рассказать про базовый пайплайн в прогнозировании временных рядов с помощью нейронных сетей, в данном случае, наверное, с самыми сложными временными рядами для анализа — финансовыми данными, которые имеют случайную природу, и, казалось бы, непредсказуемые. Или все-таки нет?
Введение в машинное обучение с tensorflow
2017-04-17 в 9:19, admin, рубрики: python, TensorFlow, Алгоритмы, машинное обучение, нейронные сетиЕсли мы в ближайшие пять лет построим машину с интеллектуальными возможностями одного человека, то ее преемник уже будет разумнее всего человечества вместе взятого. Через одно-два поколения они попросту перестанут обращать на нас внимание. Точно так же, как вы не обращаете внимания на муравьев у себя во дворе. Вы не уничтожаете их, но и не приручаете, они практически никак не влияют на вашу повседневную жизнь, но они там есть.
Сет Шостак
Введение.
Серия моих статей является расширенной версией того, что я хотел увидеть когда только решил познакомиться с нейронными сетями. Он рассчитан в первую очередь на программистов, желающих познакомится с tensorflow и нейронными сетями. Уж не знаю к счастью или к сожалению, но эта тема настолько обширна, что даже мало-мальски информативное описание требует большого объёма текста. Поэтому, я решил разделить повествование на 4 части:
- Введение, знакомство с tensorflow и базовыми алгоритмами (эта статья)
- Первые нейронные сети
- Свёрточные нейронные сети
- Рекуррентные нейронные сети
Изложенная ниже первая часть нацелена на то, чтобы объяснить азы работы с tensorflow и попутно рассказать, как машинное обучение работает впринципе, на примере tensorfolw. Во второй части мы наконец начнём проектировать и обучать нейронные сети, в т.ч. многослойные и обратим внимание на некоторые нюансы подготовки обучающих данных и выбора гиперпараметров. Поскольку свёрточные сети сейчас пользуются очень большой популярность, то третья часть выделена для подробного объяснения их работы. Ну, и в заключительной части планируется рассказ о рекуррентных моделях, на мой взгляд, — это самая сложная и интересная тема.
Читать полностью »