Как стать автором
Обновить
21
0
Игорь Бендруп @IBendrup

Разработчик

Отправить сообщение

Щи, или Распознавание 330 млн лиц на скорости 400 фото / сек

Время на прочтение11 мин
Количество просмотров43K

Распознаванием лиц в 2018 году никого не удивишь – каждый студент, может, даже школьник, его делал. Но всё становится немного сложнее, когда у вас не датасет на 1 млн пользователей, а:


  • 330 миллионов пользовательских аккаунтов;
  • ежедневно заливается 20 млн пользовательских фотографий;
  • максимальное время на обработку одного фото не должно превышать 0.2 сек;
  • ограниченные объемы оборудования для решения задачи.


В этой статье мы поделимся опытом разработки и запуска системы распознавания лиц на пользовательских фотографиях в социальной сети Одноклассники и расскажем про все ”от А до Я”:


  • математический аппарат;
  • техническую реализацию;
  • результаты запуска;
  • и акцию StarFace, которую мы использовали для PR-а нашего решения.

Распознавание лиц Одноклассников в деталях
Всего голосов 65: ↑63 и ↓2+61
Комментарии25

Для чего нужен Apache Ignite / GridGain, на примере .NET & C#

Время на прочтение5 мин
Количество просмотров41K

В последнее время имена GridGain и Apache Ignite нередко мелькают в интернетах. Однако, судя по комментариям (например, здесь), мало кто понимает, что же это за продукт и с чем его едят.


В этой статье я попытаюсь доступным языком объяснить, и на примерах кода показать, что умеет Apache Ignite.


Apache Ignite Logo


Читать дальше →
Всего голосов 23: ↑20 и ↓3+17
Комментарии44

Ассоциативные правила, или пиво с подгузниками

Время на прочтение19 мин
Количество просмотров75K


Введение в теорию


Обучение на ассоциативных правилах (далее Associations rules learning — ARL) представляет из себя, с одной стороны, простой, с другой — довольно часто применимый в реальной жизни метод поиска взаимосвязей (ассоциаций) в датасетах, или, если точнее, айтемсетах (itemsests). Впервые подробно об этом заговорил Piatesky-Shapiro G [1] в работе “Discovery, Analysis, and Presentation of Strong Rules.” (1991) Более подробно тему развивали Agrawal R, Imielinski T, Swami A в работах “Mining Association Rules between Sets of Items in Large Databases” (1993) [2] и “Fast Algorithms for Mining Association Rules.” (1994) [3].
Читать дальше →
Всего голосов 59: ↑59 и ↓0+59
Комментарии25

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

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

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


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

image
Источник
Читать дальше →
Всего голосов 71: ↑69 и ↓2+67
Комментарии29

Yargy-парсер и библиотека Natasha. Извлечения структурированной информации из текстов на русском языке

Время на прочтение12 мин
Количество просмотров85K
В 2020 году библиотека Natasha значительно обновилась, на Хабре опубликована статья про актуальную версию. Чтобы использовать инструменты, описанные в этом тексте, установите старую версию библиотеки pip install natasha<1 yargy<0.13.

Раздел про Yargy-парсер актуален и сейчас.


Есть стандартная задача извлечения именованных сущностей из текста (NER). На входе текст, на выходе структурированные, нормализованные объекты, например, с именами, адресами, датами:



Задача старая и хорошо изученная, для английского языка существует масса коммерческих и открытых решений: Spacy, Stanford NER, OpenNLP, NLTK, MITIE, Google Natural Language API, ParallelDots, Aylien, Rosette, TextRazor. Для русского тоже есть хорошие решения, но они в основном закрытые: DaData, Pullenti, Abbyy Infoextractor, Dictum, Eureka, Promt, RCO, AOT, Ahunter. Из открытого мне известен только Томита-парсер и свежий Deepmipt NER.

Я занимаюсь анализом данных, задача обработки текстов одна из самых частых. На практике оказывается, что, например, извлечь имена из русского текста совсем непросто. Есть готовое решение в Томита-парсере, но там неудобная интеграция с Python. Недавно появилось решение от ребят из iPavlov, но там имена не приводятся к нормальной форме. Для извлечения, например, адресов («ул. 8 Марта, д.4», «Ленинский проезд, 15») открытых решений мне не известно, есть pypostal, но он чтобы парсить адреса, а не искать их в тексте. C нестандартными задачами типа извлечения ссылок на нормативные акты («ст. 11 ГК РФ», «п. 1 ст. 6 Закона № 122-ФЗ») вообще непонятно, что делать.

Год назад Дима Веселов начал проект Natasha. С тех пор код был значительно доработан. Natasha была использована в нескольких крупных проектах. Сейчас мы готовы рассказать о ней пользователям Хабра.
Natasha — это аналог Томита-парсера для Python (Yargy-парсер) плюс набор готовых правил для извлечения имён, адресов, дат, сумм денег и других сущностей.
В статье показано, как использовать готовые правила из Natasha и, самое главное, как добавлять свои с помощью Yargy-парсера.
Читать дальше →
Всего голосов 87: ↑86 и ↓1+85
Комментарии33

OpenStreetMap, как получить координаты адреса, часть простая

Время на прочтение4 мин
Количество просмотров39K


Последнее время наблюдаю тенденцию, что всё больше и больше людей сталкиваются с проблемами в отсутствии геоданных. Вернее даже не так, в их закрытости. Если ещё вчера всех устраивали возможности картографических сервисов по расстановке маркеров, то теперь пользователь хочет большего: подсветить улицу, показать дома на ней, посчитать протяжённости рек и т.д. И тут их ожидает сюрприз, казалось бы на карте они всё это видят, но сделать ни чего не могут — это просто картинки. Развитие, что Google.Maps, что Яндекс.Карт остановилось на показе картинок, геокодинге, да навигации.

Читать дальше →
Всего голосов 34: ↑34 и ↓0+34
Комментарии24

20 лучших книг для продакт- и проджект-менеджеров

Время на прочтение5 мин
Количество просмотров57K
Мы в редакции «Нетологии» вместе с преподавателями курса «Руководитель digital-продукта» сделали подборку лучших книг для продакт-менеджеров. Возможно, какие-то книги покажутся вам знакомыми… что ж, это не баян, а классика :) А классику знать обязательно.

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

Пять книг Кати Текуновой — руководителя сервиса «Рамблер/платформа» в Rambler&Co


Читать дальше →
Всего голосов 16: ↑14 и ↓2+12
Комментарии4

Функционал F#, который потихоньку появляется и в C#

Время на прочтение7 мин
Количество просмотров15K

Почему-то мы зачастую не используем этот функционал. Может быть еще не успели к нему привыкнуть. А иногда используем, при этом не имея представления, что это функционал из F#.
Читать дальше →
Всего голосов 33: ↑26 и ↓7+19
Комментарии42

44 урока управления технарями

Время на прочтение7 мин
Количество просмотров45K
Предлагаю читателям Хабра мой перевод статьи «44 урока управления технарями» Славы Ахмечета, сооснователя RethinkDB. В оригинальной статье используется термин «инженеры», но в контексте статьи я буду использовать также термин «технари» – более емкое, как мне кажется, с точки зрения русского языка слово, охватывающее профессии в сфере ИТ, частью которой я тоже являюсь.

Немного об оригинальном тексте. Статья была написана в 2014 году в личном блоге автора, в октябре 2016 компания RethinkDB не смогла выйти в прибыль и закрылась, о чем на Хабре писали тут и тут, а Слава поразмышлял об этом здесь.

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

Источник
Читать дальше →
Всего голосов 62: ↑49 и ↓13+36
Комментарии90

Две картины с заказчиком

Время на прочтение4 мин
Количество просмотров3.7K
Стук в дверь. Все неожиданно вздрагивают, но при осознании случившегося, торопливо вскакивают со своих мест, приводя в порядок внешний облик. После затянувшегося молчаливого переглядывания прозвучал еще один стук, уже настойчивее. Громко вздохнув и набравшись смелости, кто-то из собравшихся у двери открыл её.

-«Здравствуйте, чего не открываете?»
-«Так мы вроде бы никого не ждали сегодня..»
-«Как же не ждали? День сегодня какой? Договаривались же…»

Недавний храбрец перевел взгляд на настенный календарь с корпоративным логотипом и на его лице появилось смятение. От осознания тяжелого продолжения вечера затрещала голова. Заказчик неторопливо стряхнул промокший плащ и повесил на вешалку.

-«Пройдемте в переговорку. Чай? Кофе?»

Читать дальше →
Всего голосов 11: ↑6 и ↓5+1
Комментарии11

Топливо для ИИ: подборка открытых датасетов для машинного обучения

Время на прочтение6 мин
Количество просмотров81K


Связанные проекты сообщества Open Data (проект Linked Open Data Cloud). Многие датасеты на этой диаграмме могут включать в себя данные, защищенные авторским правом, и они не упоминаются в данной статье


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


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


Мы разобрались в этом вопросе и собрали данные по датасетам, удовлетворяющим критериям открытости, востребованности, скорости работы и близости к реальным задачам.

Читать дальше →
Всего голосов 65: ↑65 и ↓0+65
Комментарии10

Достижения в глубоком обучении за последний год

Время на прочтение13 мин
Количество просмотров88K

Привет, Хабр. В своей статье я расскажу вам, что интересного произошло в мире машинного обучения за последний год (в основном в Deep Learning). А произошло очень многое, поэтому я остановился на самых, на мой взгляд, зрелищных и/или значимых достижениях. Технические аспекты улучшения архитектур сетей в статье не приводятся. Расширяем кругозор!

Всего голосов 105: ↑101 и ↓4+97
Комментарии29

Нейронные сети в борьбе с раком

Время на прочтение7 мин
Количество просмотров15K

image


В прошлом году мы с Артуром Кадуриным решили присоединиться к новой волне обучения нейронных сетей — к глубокому обучению. Сразу стало ясно, что машинное обучение во многих сферах практически не используется, а мы в свою очередь понимаем как его можно применить. Оставалось найти интересную область и сильных экспертов в ней. Так мы и познакомились с командой из Insilico Medicine (резидент БМТ-кластера фонда «Сколково») и разработчиками из МФТИ и решили вместе поработать над задачей поиска лекарств против рака.


Ниже вы прочитаете обзор статьи The cornucopia of meaningful leads: Applying deep adversarial autoencoders for new molecule development in oncology, которую мы с коллегами из Insilico Medicine и МФТИ подготовили для американского журнала Oncotarget, с упором на реализацию предложенной модели во фреймворке tensorflow. Исходная задача была следующей. Есть данные вида: вещество, концентрация, показатель роста раковых клеток. Нужно сгенерировать новые вещества, которые останавливали бы рост опухоли при определенной концентрации. Датасет доступен на сайте NCI Wiki.

Читать дальше →
Всего голосов 54: ↑52 и ↓2+50
Комментарии12

36 материалов о нейросетях: книги, статьи и последние исследования

Время на прочтение8 мин
Количество просмотров116K
Что делать, если хочется побольше узнать про нейронные сети, методы распознавания образов, компьютерное зрение и глубокое обучение? Один из очевидных вариантов — подыскать для себя какие-либо курсы и начать активно изучать теорию и решать практические задачи. Однако на это придется выделить значительную часть личного времени. Есть другой способ — обратиться к «пассивному» источнику знаний: выбрать для себя литературу и погрузиться в тему, уделяя этому всего полчаса-час в день.

Поэтому, желая облегчить жизнь себе и читателям, мы сделали краткую подборку из книг, статей и текстов по направлению нейросетей и глубокого обучения, рекомендуемых к прочтению резидентами GitHub, Quora, Reddit и других платформ. В неё вошли материалы как для тех, кто только начинает знакомство с нейротехнологиями, так и для коллег, желающих расширить свои знания в этой области или просто подобрать «легкое чтение» на вечер.

Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии9

Автоэнкодеры в Keras, Часть 1: Введение

Время на прочтение11 мин
Количество просмотров94K

Содержание



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

Автоэнкодеры


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



Кому интересно, добро пожаловать под кат
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии11

Законы и проекты, которые изменят лицо российского IT. Часть I

Время на прочтение8 мин
Количество просмотров26K
Делаю эту публикацию, так как после предыдущих вопросов возникло много: у разных людей и по разным поводам. Этот пост призван в первую очередь:

  1. Помочь начинающим коллегам, которые только начинают путь в it-юриспруденции (название весьма условное);
  2. Рассказать тем, кто работает в IT, что и когда их ждёт;
  3. Оставить онлайн-заметку о том, что же думаю по этому поводу я здесь-и-сейчас, в 2017 гг. или даже раньше;
  4. Познакомить апологетов «жёсткого государственного регулирования» с иным взглядом на право, которое есть связующее звено между управленцами и управляемыми;
  5. Рассказать подписчикам (коих не много) и постоянным читателям (их уже несколько сотен) о том, как же я вижу положительные возможности в законотворчестве it-сектора.


Читать дальше →
Всего голосов 53: ↑48 и ↓5+43
Комментарии159

40+ приложений технологии машинного обучения для бизнеса

Время на прочтение6 мин
Количество просмотров8.7K
Перевод поста Филиппа Ходжетта, выступавшего недавно на конференции Hollywood Professional Association Tech Retreat. Надеюсь, собранный в одном месте список актуальных сервисов, готовых к интеграции в ваши проекты, и примеров работающего бизнеса на основе машинного обучения будет полезен разработчикам. Предлагаю делиться вашими собственными результатами успешного внедрения проектов, связанных с глубинным обучением.
Пытаясь определить для себя, как мы могли бы использовать машинное обучение в нашем софтовом бизнесе, я составил этот список. Я был слегка шокирован разнообразием способов использования М.О. По сообщению TechCrunch, уже вложено более 10 миллиардов долларов в 1500 стартапов, связанных с М.О. и искусственным интеллектом. В 2017 году прогнозируется увеличение этой суммы в четыре раза! Захотелось поделиться с вами этим списком...
Читать дальше →
Всего голосов 6: ↑5 и ↓1+4
Комментарии2

CRISP-DM: проверенная методология для Data Scientist-ов

Время на прочтение16 мин
Количество просмотров72K
Постановка задач машинного обучения математически очень проста. Любая задача  классификации, регрессии или кластеризации – это по сути обычная оптимизационная задача с ограничениями. Несмотря на это, существующее многообразие алгоритмов и методов их решения делает профессию аналитика данных одной из наиболее творческих IT-профессий. Чтобы решение задачи не превратилось в бесконечный поиск «золотого» решения, а было прогнозируемым процессом, необходимо придерживаться довольно четкой последовательности действий. Эту последовательность действий описывают такие методологии, как CRISP-DM.

Методология анализа данных CRISP-DM упоминается во многих постах на Хабре, но я не смог найти ее подробных русскоязычных описаний и решил своей статьей восполнить этот пробел. В основе моего материала – оригинальное описание и адаптированное описание от IBM. Обзорную лекцию о преимуществах использования CRISP-DM можно посмотреть, например, здесь.


* Crisp (англ.) — хрустящий картофель, чипсы
Читать дальше →
Всего голосов 53: ↑52 и ↓1+51
Комментарии16

Алгоритмические задачи в биоинформатике. Лекция в Яндексе

Время на прочтение19 мин
Количество просмотров16K
Мы уже несколько раз упоминали серию мероприятий Data & Science, где специалисты по анализу данных и учёные рассказывают друг другу о своих задачах и ищут способы для взаимодействия. Одна из встреч была посвящена биоинформатике. Это отличный пример отрасли, где есть масса ещё не решённых задач для разработчиков.



Под катом вы найдёте расшифровку лекции Игната Колесниченко — выпускника мехмата МГУ и Школы анализа данных. Сейчас Игнат работает ведущим разработчиком службы технологий распределённых вычислений Яндекса.

Читать дальше →
Всего голосов 53: ↑48 и ↓5+43
Комментарии0

Статический анализ кода C++

Время на прочтение5 мин
Количество просмотров33K
Для меня красота C++ заключается, в первую очередь, во вседозволенности и ужасающей мощи языка. Мы можем работать с памятью так же плотно, как и в C, и в то же время имеем такие средства абстракции, как шаблоны и STL, где параметризовать можно что угодно и чем угодно.
Плата за это соответствующая — не всегда вразумительные ошибки компилятора (попробуйте забыть поставить точку с запятой после определения класса), очень большой срок подготовки и обучения программистов, но самое главное — некоторые баги становятся заметными только во время исполнения программы.
Мы хотим больше полезных ворнингов до запуска наших программ. Одно из средств получения желаемого — статический анализ кода. Статический — значит, не запуская программу. Интересны не только вероятные ошибки, случаи undefined behaviour, утечки памяти, но и вещи вроде недоступности/неиспользуемости кода, рекомендации по повышению интуитивности стиля программирования.
Читать дальше →
Всего голосов 40: ↑38 и ↓2+36
Комментарии43

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность