Pull to refresh

Отдам библиотеку в хорошие руки

GPGPU *
Давным давно, в 2008 году, когда я работал над своей диссертацией меня заинтересовала тема применения сверточных нейронных сетей для задач распознавания изображений. На тот момент они еще не были так популярны как сейчас и попытка найти готовые библиотеки ни к чему не привела — нашлась только реализация на Lush (языке созданном автором сверточных сетей, Яном ЛеКуном). Тогда я подумал, что можно было бы их реализовать на Матлабе используя Neural Network Toolbox. Но столкнулся с невозможностью реализации разделяемых весов в рамках этого тулбокса. И тогда было принято решение написать собственную реализацию.
Читать дальше →
Total votes 63: ↑60 and ↓3 +57
Views 25K
Comments 6

Стилизация изображений с помощью нейронных сетей: никакой мистики, просто матан

VK corporate blog Algorithms *Image processing *Mathematics *Machine learning *

Приветствую тебя, Хабр! Наверняка вы заметили, что тема стилизации фотографий под различные художественные стили активно обсуждается в этих ваших интернетах. Читая все эти популярные статьи, вы можете подумать, что под капотом этих приложений творится магия, и нейронная сеть действительно фантазирует и перерисовывает изображение с нуля. Так уж получилось, что наша команда столкнулась с подобной задачей: в рамках внутрикорпоративного хакатона мы сделали стилизацию видео, т.к. приложение для фоточек уже было. В этом посте мы с вами разберемся, как это сеть "перерисовывает" изображения, и разберем статьи, благодаря которым это стало возможно. Рекомендую ознакомиться с прошлым постом перед прочтением этого материала и вообще с основами сверточных нейронных сетей. Вас ждет немного формул, немного кода (примеры я буду приводить на Theano и Lasagne), а также много картинок. Этот пост построен в хронологическом порядке появления статей и, соответственно, самих идей. Иногда я буду его разбавлять нашим недавним опытом. Вот вам мальчик из ада для привлечения внимания.


Читать дальше →
Total votes 145: ↑141 and ↓4 +137
Views 88K
Comments 38

Обзор топологий глубоких сверточных нейронных сетей

VK corporate blog Algorithms *Image processing *Mathematics *Machine learning *
Это будет длиннопост. Я давно хотел написать этот обзор, но sim0nsays меня опередил, и я решил выждать момент, например как появятся результаты ImageNet’а. Вот момент настал, но имаджнет не преподнес никаких сюрпризов, кроме того, что на первом месте по классификации находятся китайские эфэсбэшники. Их модель в лучших традициях кэгла является ансамблем нескольких моделей (Inception, ResNet, Inception ResNet) и обгоняет победителей прошлого всего на полпроцента (кстати, публикации еще нет, и есть мизерный шанс, что там реально что-то новое). Кстати, как видите из результатов имаджнета, что-то пошло не так с добавлением слоев, о чем свидетельствует рост в ширину архитектуры итоговой модели. Может, из нейросетей уже выжали все что можно? Или NVidia слишком задрала цены на GPU и тем самым тормозит развитие ИИ? Зима близко? В общем, на эти вопросы я тут не отвечу. Зато под катом вас ждет много картинок, слоев и танцев с бубном. Подразумевается, что вы уже знакомы с алгоритмом обратного распространения ошибки и понимаете, как работают основные строительные блоки сверточных нейронных сетей: свертки и пулинг.

Читать дальше →
Total votes 108: ↑108 and ↓0 +108
Views 102K
Comments 57

Отжиг и вымораживание: две свежие идеи, как ускорить обучение глубоких сетей

Algorithms *Image processing *Machine learning *
Translation


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


Читать дальше →
Total votes 29: ↑29 and ↓0 +29
Views 14K
Comments 21

Применение сверточных нейронных сетей для задач NLP

Open Data Science corporate blog Python *Data Mining *Machine learning *Natural Language Processing *
Когда мы слышим о сверточных нейронных сетях (CNN), мы обычно думаем о компьютерном зрении. CNN лежали в основе прорывов в классификации изображений — знаменитый AlexNet, победитель соревнования ImageNet в 2012 году, с которого начался бум интереса к этой теме. С тех пор сверточные сети достигли большого успеха в распознавании изображений, в силу того факта, что они устроены наподобие зрительной коры головного мозга — то есть умеют концентрироваться на небольшой области и выделять в ней важные особенности. Но, как оказалось, CNN хороши не только для этого, но и для задач обработки естественного языка (Natural Language Processing, NLP). Более того, в недавно вышедшей статье [1] от коллектива авторов из Intel и Carnegie-Mellon University, утверждается, что они подходят для этого даже лучше RNN, которые безраздельно властвовали областью на протяжении последних лет.

Сверточные нейронные сети


Для начала немного теории. Что такое свертка? Мы не будем на этом останавливаться подробно, так как про это написана уже тонна материалов, но все-таки кратко пробежаться стоит. Есть красивая визуализация от Стэнфорда, которая позволяет ухватить суть:

image
Источник
Читать дальше →
Total votes 71: ↑69 and ↓2 +67
Views 53K
Comments 29

Битва титанов наших дней: спор В. Вапника и Л. Джейкела о будущем SVM и нейронных сетей

Центр речевых технологий (ЦРТ) corporate blog Machine learning *Research and forecasts in IT *

Воспоминания о том, как спорили Нильс Бор с Альбертом Эйнштейном, а Джордж Вестингауз и Никола Тесла с Томасом Эдисоном, давно превратились в легенды. Эти научные дискуссии не забыты до сих, потому что, с одной стороны, разрешить их смогло только время. С другой стороны, их исход определил развитие технологий на десятилетия вперед. Существуют ли подобные дискуссии в наши дни? Существуют. И они столь же горячи и интересны, как и сто лет назад.


Пожалуй, самым интересным спором современности является спор Владимира Вапника (изобретателя метода опорных векторов или SVM — support vector machine), с Ларри Джейкелом, его боссом в компании “Bell Labs” и сторонником сверточных нейронных сетей.

Читать дальше →
Total votes 12: ↑10 and ↓2 +8
Views 3.5K
Comments 0

Распознавание эмоций с помощью сверточной нейронной сети

Voximplant corporate blog Programming *Machine learning *Artificial Intelligence Sound
Translation

Распознавание эмоций всегда было захватывающей задачей для ученых. В последнее время я работаю над экспериментальным SER-проектом (Speech Emotion Recognition), чтобы понять потенциал этой технологии – для этого я отобрал наиболее популярные репозитории на Github и сделал их основой моего проекта.

Прежде чем мы начнем разбираться в проекте, неплохо будет вспомнить, какие узкие места есть у SER.
Читать дальше →
Total votes 30: ↑30 and ↓0 +30
Views 20K
Comments 6

Джедайская техника уменьшения сверточных сетей — pruning

High performance *Python *Programming *Machine learning *Artificial Intelligence

image


Перед тобой снова задача детектирования объектов. Приоритет — скорость работы при приемлемой точности. Берешь архитектуру YOLOv3 и дообучаешь. Точность(mAp75) больше 0.95. Но скорость прогона всё еще низкая. Черт.


Сегодня обойдём стороной квантизацию. А под катом рассмотрим Model Pruning — обрезание избыточных частей сети для ускорения Inference без потери точности. Наглядно — откуда, сколько и как можно вырезать. Разберем, как сделать это вручную и где можно автоматизировать. В конце — репозиторий на keras.

Читать дальше →
Total votes 24: ↑24 and ↓0 +24
Views 7.7K
Comments 9

Машинное обучение. Нейронные сети (часть 3) — Convolutional Network под микроскопом. Изучение АПИ Tensorflow.js

Machine learning *TensorFlow *

В предыдущих статьях, использовался только один из видов слоев нейронной сети – полносвязанные (dense, fully-connected), когда каждый нейрон исходного слоя имеет связь со всеми нейронами из предыдущих слоев.

Чтобы обработать, например, черно-белое изображение размером 24x24, мы должны были бы превратить матричное представление изображения в вектор, который содержит 24x24 элементов. Как можно вдуматься, с таким преобразованием мы теряем важный атрибут – взаимное расположение пикселей в вертикальном и горизонтальном направлении осей, а также, наверное, в большинстве случаев пиксел, находящийся в верхнем левом углу изображения вряд ли имеет какое-то логически объяснимое влияние друг на друга в большинстве случаев.

Для исключения этих недостатков – для обработки  изображений используют сверточные слои (convolutional layer, CNN).

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

Например, рассмотрим классическую задачу – распознавание изображения цифр. Каждая цифра имеет свой набор характерных для них фигур (окружности, линии). В тоже самое время каждую окружность или линию можно составить из более мелких ребер (рисунок 1)

Читать далее
Total votes 8: ↑8 and ↓0 +8
Views 9K
Comments 0

Поиск изображений с помощью AffNet

Image processing *
Перед нами стояла задача сравнения изображений (image matching) для поиска изображения максимально подобного данному изображению из коллекции. В этой статье я расскажу как мы использовали для этой задачи подход на основе нейронных сетей под названием AffNet. Кому интересно, прошу под кат.
Читать дальше →
Total votes 5: ↑5 and ↓0 +5
Views 2.5K
Comments 3

Обзор статьи — AdderNet: Действительно ли нам нужно умножение в глубоком обучении? (Классификация изображений)

OTUS corporate blog Big Data *Machine learning *Artificial Intelligence
Translation

Вашему вниманию представлен обзор статьи AdderNet: действительно ли нам нужно умножение в глубоком обучении?,

Ключевые моменты статьи:

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

По сравнению с умножением сложение намного дешевле и снижает затраты на вычисления.

Это статья CVPR 2020 года с более чем 20 упоминаниями в других источниках. (Sik-Ho Tsang @ Medium)

Читать далее
Total votes 10: ↑8 and ↓2 +6
Views 1.7K
Comments 0

SIRR, не соизволите ли удалить отражение?

Яндекс corporate blog Algorithms *Image processing *Machine learning *Research and forecasts in IT *
Привет! Меня зовут Артём, я учусь на совместной кафедре анализа данных Яндекса и Физтеха. Хочу поделиться с ML-сообществом Хабра темой, тесно связанной с моей научной работой: «Удаление отражений с помощью свёрточной сети, обученной на синтетическом датасете». А чтобы вы могли попробовать всё описанное далее самостоятельно, прилагаю PyTorch-код на GitHub и в Yandex DataSphere.


Источник: SIRR Using Deep Encoder-Decoder Network
Читать дальше →
Total votes 20: ↑20 and ↓0 +20
Views 4K
Comments 11

Как я использовал нейросеть для категоризации трехмерных тел

МойОфис corporate blog Python *Artificial Intelligence

Значимость темы машинного обучения (machine learning) сегодня очевидна. Это огромный домен знаний в Computer Science, которому в России, в частности, посвящают конференции уровня недавней AI Journey. Существует множество способов применения ML в различных областях, среди самых исследованных: распознавание изображений/видео/голоса, процессинг текста. Однако есть и более любопытные задачи, с которыми справляется ML. Например, обучение с подкреплением, что позволяет ИИ играть в игры типа Го, идентификация людей по фотографии, распознавание жестов, движений и поз человека.

Одной из не совсем обычных областей применения машинного обучения можно назвать работу с трехмерными телами. Такая технология активно исследуется за рубежом, а вариантов использования у нее может быть масса. Простой пример: дрон сканирует помещение, в котором находится множество тел. С помощью ML дрон может классифицировать объекты окружения, найти ошибки в пространственном размещении этих тел или же построить 3D-интерьер комнаты со ссылками на онлайн-магазин, где эти предметы можно купить.

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

Читать далее
Total votes 57: ↑56 and ↓1 +55
Views 5.5K
Comments 3

Traffic sign recognition using CNN

Machine learning *
Sandbox

During the last years, one of the modern directions of technology development is computer vision. The main task of this direction is the classification of objects from a photo or video camera. In usual problems, it is solved using case-based machine learning methods. This work presents the application of computer vision for traffic sign recognition using machine learning algorithm. A road sign is a flat artificial object with a fixed appearance. There are two applied problems in which road sign recognition algorithms are used. The first task is to control an autonomous vehicle. Self-driving cars are cars that can drive on roads without a driver. A key component of an unmanned vehicle control system is object recognition. Objects of interest are primarily pedestrians, other vehicles, traffic lights and road signs.

Traffic signs are a fundamental portion of our day to day lives. They contain critical information that ensures the safety of all the people around us. A road sign is a flat artificial object with a fixed appearance. There are two applied problems in which road sign recognition algorithms are used. The first task is to control an autonomous vehicle. Self-driving cars are cars that can drive on roads without a driver. A key component of an unmanned vehicle control system is object recognition. Objects of interest are primarily pedestrians, other vehicles, traffic lights and road signs. The second task that uses traffic sign recognition is automatic mapping based on data from DVRs installed on cars. The task is relevant, because currently, compiling and maintaining detailed roadmaps requires either significant financial costs or a large amount of human time.

Read more
Rating 0
Views 677
Comments 0