Search
Write a publication
Pull to refresh
25
0
Владислав Марчевский @comratvlad

Lead Researcher at SpeechPro

Send message

T2F: проект преобразования текста в рисунок лица при помощи глубинного обучения

Reading time5 min
Views4.8K


Код проекта доступен в репозитории

Введение


Когда я читал описания внешнего вида персонажей в книгах, мне всегда было интересно, как бы они выглядели в жизни. Вполне можно представить себе человека в целом, но описание наиболее заметных деталей – задача сложная, и результаты разнятся от человека к человеку. Много раз у меня не получалось представить себе ничего, кроме весьма размытого лица у персонажа до самого конца произведения. Только когда книгу превращают в фильм, размытое лицо заполняется деталями. К примеру, я никогда не мог представить себе, как именно выглядит лицо Рэйчел из книжки "Девушка в поезде". Но когда вышел фильм, я смог сопоставить лицо Эмили Блант с персонажем Рэйчел. Наверняка у людей, занимающихся подбором актёров, уходит много времени на то, чтобы правильно изобразить персонажей сценария.

Вакуумирование, HAMR и MAMR — три способа увеличить емкость современных HDD до максимума

Reading time3 min
Views15K


Конференция IEEE TMRC 2018 года прошла под флагом инноваций в сфере разработки жестких дисков. В частности, разработчики обсуждали нюансы таких технологий, как термоассистируемая магнитная запись HAMR, ассистируемая микроволновым излучением запись (MAMR) и вакуумирование, то есть откачивание воздуха из корпуса жесткого диска с его последующей герметизацией.

Что касается откачки воздуха, то ранее некоторые производители HDD использовали альтернативу воздуху, заполняя пространство внутри корпуса жесткого диска инертными газами, в частности, гелием. Такие диски стоят дороже обычных, но их емкость обычно больше, чем «средняя температура по больнице». Сейчас появилась компания, которая собирается полностью отказаться от заполнения корпуса жестких дисков газами. Вместо этого их будут откачивать, достигая условий вакуума.
Читать дальше →

Алан Кей: «Компьютеры — это инструменты, музыка которых — идеи»

Reading time7 min
Views9.6K
Самое большое препятствие улучшения образования для детей (с компьютерами или без них) — это совершенно обедневшее воображение большинства взрослых.
— Алан Кей
image

Откопал статью Алана Кея 2009 года. Содержание — бомба и напалм, особенно на фоне большинства сегодняшних ИБД в области образования.

Вопрос: Вы часто говорите, что компьютерная революция еще не произошла. Что вы имеете в виду?

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

Большинство школ определяют компьютерную грамотность как умение использовать Microsoft Office и, возможно, немного заниматься веб-дизайном. Они упускают суть. Это все равно что сказать: «Если вы знаете, за какой конец книги нужно держаться, и вы знаете, как перейти к третьей главе, тогда вы грамотны».

Литература — это прежде всего наличие достаточно важных идей для обсуждения и записи в той или иной форме. Поэтому вы должны задать себе вопрос: «Какая литература лучше всего подходит для записи на компьютере?» Один из ответов — создание динамического моделирования некоторой идеи, которая, по вашему мнению, важна, симуляции, с которой вы можете играть, и на основе которой вы можете учиться.
Читать дальше →

Обзор задач по алгоритмам для собеседований — генерация множеств

Reading time7 min
Views67K

Привет, Хабр!


Этим постом начинается разбор задачек по алгоритмам, которые крупные IT-компании (Mail.Ru Group, Google и т.п.) так любят давать кандидатам на собеседованиях (если плохо пройти собеседование по алгоритмам, то шансы устроиться на работу в компанию мечты, увы, стремятся к нулю). В первую очередь этот пост полезен для тех, кто не имеет опыта олимпиадного программирования или тяжеловесных курсов по типу ШАДа или ЛКШ, в которых тематика алгоритмов разобрана достаточно серьезно, или же для тех, кто хочет освежить свои знания в какой-то определенной области.


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



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

Читать дальше →

В чём мерить будем? Как выбрать правильные ML-метрики под задачи бизнеса

Reading time6 min
Views26K


Сегодня одним из главных препятствий на пути внедрения машинного обучения в бизнес является несовместимость метрик ML и показателей, которыми оперирует топ-менеджмент. Аналитик прогнозирует увеличение прибыли? Но ведь нужно понять, в каких случаях причиной увеличения станет именно машинное обучение, а в каких — прочие факторы. Увы, но довольно часто улучшение метрик ML не приводит к росту прибыли. К тому же иногда сложность данных такова, что даже опытные разработчики могут выбрать некорректные метрики, на которые нельзя ориентироваться.

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

Пишу книгу о первом «нашем» стартапе, покорившем мир: помогайте

Reading time5 min
Views37K
А вы знаете, что Newton, легендарный девайс Apple, работал на российской технологии распознавания рукописного текста? А вы знаете, что и сейчас всю американскую почту сортирует эта же, доработанная и усовершенствованная, технология? А вы знаете, что первая успешная в мире софтверная фирма родом из России была основана еще в Советском Союзе и называлась Параграф? Обо всем этом я и пишу книгу — и вы можете мне помочь (не деньгами).

image

Читать дальше →

Deep Learning: Распознавание сцен и достопримечательностей на изображениях

Reading time11 min
Views8.8K
Время пополнять копилку хороших русскоязычных докладов по Machine Learning! Копилка сама не пополнится!

В этот раз мы познакомимся с увлекательным рассказом Андрея Боярова про распознавание сцен. Андрей — программист-исследователь, занимающийся машинным зрением в компании Mail.Ru Group.

Распознавание сцен — одна из активно применяемых областей машинного зрения. Задача эта посложнее, чем изученное распознавание объектов: сцена — более комплексное и менее формализованное понятие, выделить признаки труднее. Из распознавания сцен вытекает задача распознавания достопримечательностей: нужно выделить известные места на фото, обеспечив низкий уровень ложных срабатываний.

Это 30 минут видео с конференции Smart Data 2017. Видео удобно смотреть дома и в дороге. Для тех же, кто не готов столько сидеть у экрана, или кому удобней воспринимать информацию в текстовом виде, мы прикладываем полную текстовую расшифровку, оформленную в виде хабростатьи.


Перейти к текстовой версии

Решение цветных японских кроссвордов со скоростью света

Reading time17 min
Views77K

Японские кроссворды (также нонограммы) — логические головоломки, в которых зашифровано пиксельное изображение. Разгадывать кроссворд нужно с помощью чисел, расположенных слева от строк и сверху от столбцов.


Размер кроссвордов может доходить до 150x150. Игрок с помощью специальных логических приемов вычисляет цвет каждой клетки. Решение может занять как пару минут на кроссвордах для начинающих, так и десятки часов на сложных головоломках.


Хороший алгоритм может решить задачу намного быстрее. В тексте описано, как с помощью наиболее подходящих алгоритмов (которые вообще приводят к решению), а также их оптимизаций и использования особенностей C++ (которые уменьшают время работы в несколько десятков раз) написать решение, работающее почти мгновенно.


Читать дальше →

Система машинного зрения по трейлеру фильма предсказывает, кто придёт в кинотеатр

Reading time3 min
Views5.5K

Схема гибридной модели рекомендаций Merlin Video для определения аудитории фильмов. Слой логистической регрессии сочетает модель коллективной фильтрации с информацией о частоте и сроке посещения кинотеатра, чтобы вычислить вероятность желания посмотреть этот кинофильм. Модель обучена от начала до конца (end-to-end), а функция потерь обратно распространяется по всем обучаемым компонентам

Выход трейлера — самый важный элемент в подготовке кинопремьеры. Зрелищный трейлер повышает рейтинг зрительских ожиданий, знакомит зрителей с сюжетом, представляет главных героев, передаёт общее настроение картины. В то же время по отзывам на трейлер создатели кинокартины получают возможность понять, какие аспекты фильма нравятся или не нравятся зрителям — эта информация обычно становится основой для дальнейшей маркетинговой кампании. Трейлер напрямую коррелирует со сборами в первые дни показа. Затем уже цифра больших сборов в первые дни привлекает внимание массовой аудитории и СМИ, что во многом обеспечивает общий коммерческий успех картины.
Читать дальше →

Оптическая нейросеть

Reading time3 min
Views22K

Обученная многослойная фазовая маска (классификатор рукописных символов). Справа показана физическая модель оптической нейросети D²NN, напечатанная на 3D-принтере: слои 8×8 см с расстоянием 3 см друг между другом

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

Полностью оптический фреймворк глубокого обучения Diffractive Deep Neural Network (D²NN), который физически сформирован из множества отражающих или прозрачных поверхностей. Эти поверхности работают сообща, выполняя произвольную функцию, усвоенную в результате обучения. В то время как получение результата и прогнозирование в физической сети организовано полностью оптически, обучающая часть с проектированием структуры отражающих поверхностей рассчитывается на компьютере.
Читать дальше →

«Мне сложно понять мотивацию data scientist’а, который не видит красоты в математике» — Кирилл Данилюк, Data Scientist

Reading time11 min
Views12K
Привет, Хабр! Data Science уже давно стала привлекательной областью, и все больше и больше людей хотят сменить свою профессиональную траекторию и начать работать с большими данными. Своей историей перехода в data science, советами для начинающих и продвинутых data scientist’ов поделился Кирилл Данилюк, Data Scientist компании RnD Lab. Кроме этого, поговорили о необходимых качествах data scientist’а, о разметке данных, об отличии ML Engineer от data scientist, текущих проектах, крутых командах и людях, чья работа вдохновляет.



— Как ты пришел в data science? Чем тебя изначально привлекала область работы с данными?

— У меня довольно нетипичный бэкграунд: в дату я пришел из мира яндексового PM’ства (Project Management — прим. автора), когда меня позвали в ZeptoLab, пожалуй, лучшую российскую игровую компанию. Я сделал им прототип аналитической системы, дэшборды, фактически в первый раз начав писать код, который использовал кто-то другой. Код был ужасный, но это была реальная практика. Формально, конечно, я координировал работу двух аутсорсеров, но код они писали именно по этому прототипу. Я тогда еще не знал, что примерно это и есть data science, что я им и занимаюсь, пусть парт-тайм. Так что знакомство случилось довольно органически.

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

Вывод табличных данных в консоль, файл или MS Excel в стиле потоков C++

Reading time9 min
Views51K
В заметке предлагается набор классов C++ (работоспособность проверена в VS2008 и VS 2013; используется только С++03 и STL) для вывода в поток std::ostream данных с табличным форматированием. Распространяется «As Is».

    st << "#" << "Property" << "Value" << "Unit";
    enum {nr = 10};
    for (int i = 0; i < nr; i++) {
        st << i + 1 << "Prop" << i << "Unit";
    }

Результат будет выглядеть так:


Читать дальше

Знакомые лица: алгоритмы создания «типичного» портрета

Reading time4 min
Views9K

Автор: Андрей Сорокин, Senior Developer DataArt

В конце прошлого года мы завершили R&D-проект, посвященный методам машинного зрения в обработке изображений. В результате мы создали ряд усредненных портретов IT-специалистов, работающих с разными технологиями. В этой статье я расскажу об изображениях «типичных» Java и .NET-программистов, подходящих для этого фреймворках и оптимизации процесса.

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

Обнаружение лиц на видео с помощью Movidius Neural Compute Stick

Reading time6 min
Views11K
Не так давно в свет вышло устройство Movidius Neural Compute Stick (NCS), представляющее собой аппаратный ускоритель для нейронных сетей с USB интерфейсом. Меня заинтересовала потенциальная возможность применения устройства в области робототехники, поэтому я приобрел его и задумал запустить какую-нибудь нейросеть. Однако большинство существующих примеров для NCS решают задачу классификации изображений, а мне хотелось попробовать кое-что другое, а именно обнаружение лиц. В этой публикации я хотел бы поделиться опытом, полученным в ходе такого эксперимента.

Весь код можно найти на GitHub.

image

Читать дальше →

Сравнение производительности C и C++ на примере сжатия Хаффмана

Reading time20 min
Views65K

Введение


Когда на IT-форумах задают вопрос «Быстрее ли язык программирования X языка Y», это обычно вызывает потоки эмоций и считается некорректным. Сродни вопросу про религию или предпочтение той или иной политической партии. Действительно, язык — это способ выражения мысли, идеи. В данном случае идеи программной системы. Он не быстр и не медлен. Он может быть более или менее лаконичным, более или менее точным. А скорость определяется не столько языком, сколько конечным кодом, который генерирует компилятор этого языка. Или скоростью интерпретатора в случае интерпретируемого языка.

Но это всё философия. А на практике обычно есть практическая задача разработки ПО. И, действительно, реализовать это ПО можно на десятке разных языков программирования. Поэтому, хоть это и «религиозный вопрос» в случае публичного обсуждения, вопрос этот часто возникает в голове IT-специалиста, стоящего перед конкретной задачей. «Сколько времени мне потребуется для реализации задачи на языке X и какие у полученного ПО будут характеристики, в том числе скоростные, по сравнению с реализацией этой задачи на языке Y». Понятное дело, точного ответа на этот вопрос нет, специалист опирается на свой личный опыт и отвечает как-то типа «с вероятностью 95%, написанная на ассемблере, эта задача будет работать быстрее, чем на php». Но, положа руку на сердце, опыт этот редко базируется на точных цифрах реальных задач, которые сам этот специалист реализовал. Нет, ну кто в здравом уме будет писать сложное ПО сначала на php, а потом его же переписывать на ассемблере, только чтобы измерить характеристики? В основном ограничиваются синтетическими тестами типа сортировки массива, построения и обхода бинарного дерева и тому подобных.
Читать дальше →

Тестирование проектов C/C++ с помощью Python

Reading time11 min
Views13K

Введение


Хорошо известна возможность интеграции Python и C / C++. Как правило, этот прием используется для ускорения программ на Python или с целью подстройки программ на C / C++. Я хотел бы осветить возможность использование python для тестирования кода на C/C++ в IDE без поддержки системы организации тестов в IDE. С моей точки зрения это целесообразно применять в сфере разработки программного обеспечения для микроконтроллеров.

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

При разработке программ для микроконтроллеров, я сталкивался с отсутствием стандартного ввода / вывода (конечно можно переопределить функции ввода вывода и в симуляторе, выводить данные через UART — но часто UART уже задействован, да и симулятор работает не всегда корректно) и большими рисками вывести из строя аппаратное обеспечение ошибочной бизнес логикой. На стадии разработки, я реализовывал отдельные проекты, тестирующие части программы и далее на меня ложилась ответственность за запуск всех тестовых приложений после внесения изменений. Конечно, это все можно автоматизировать. Так можно работать, но я нашел способ лучше.
Читать дальше →

Как я стандартную библиотеку C++11 писал или почему boost такой страшный. Глава 3

Reading time11 min
Views13K
Продолжаем приключения.

Краткое содержание предыдущих частей


Из-за ограничений на возможность использовать компиляторы C++ 11 и от безальтернативности boost'у возникло желание написать свою реализацию стандартной библиотеки C++ 11 поверх поставляемой с компилятором библиотеки C++ 98 / C++ 03.

Были реализованы static_assert, noexcept, countof, а так же, после рассмотрения всех нестандартных дефайнов и особенностей компиляторов, появилась информация о функциональности, которая поддерживается текущим компилятором. На этом описание core.h почти закончено, но оно было бы не полным без nullptr.

Ссылка на GitHub с результатом на сегодня для нетерпеливых и нечитателей:

Коммиты и конструктивная критика приветствуются

Итак, продолжим.
Читать дальше →

С точностью до сотых: топ-10 докладов SmartData 2017

Reading time5 min
Views4.3K


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

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

Вообще говоря, зачастую у соседних позиций в топе рейтинги различаются незначительно. Так что, пожалуй, не стоит придавать много значения «кто идёт за кем» — важнее, что все эти доклады получили высокие оценки. Но с другой стороны, как же это не придавать много внимания числам, когда это так увлекательно!
Читать дальше →

Как мы анализировали отзывы о мобильном приложении с помощью машинного обучения

Reading time7 min
Views5.8K
Недавно мы, команда Data Science Big Data Сбертеха, завершили один интересный пилот в сфере машинного обучения: попробовали с его помощью выявить инциденты в работе мобильного Сбербанк Онлайн, исходя из текстов отзывов пользователей в магазинах приложений. Взяли датасет отзывов из Google Play за период с октября 2014 г. по октябрь 2017 г. (882 864 отзыва), отфильтровали 92 711 отрицательных (1-2 звезды) и начали работу. Какую — расскажем под катом.


Читать дальше →

Как внедрить технологии машинного обучения у себя в бизнесе

Reading time3 min
Views7.8K
Согласно Gartner, машинное обучение на пике популярности. Занимаясь разработками и внедрениями решений в области анализа данных и машинном обучении, наша команда DATA4 накопила опыт по ключевым этапам и подводным камням, которым я и поделюсь в статье.


Читать дальше →

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Works in
Date of birth
Registered
Activity