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

Lead Researcher at SpeechPro

Send message

Что требуется сделать в языке Java для полноценной поддержки машинного обучения

Reading time9 min
Views16K
Здравствуйте, коллеги!

Из последних известий по нашим планируемым новинкам из области ML/DL:

Нишант Шакла, "Машинное обучение с Tensorflow" — книга в верстке, ожидается в магазинах в январе

Делип Рао, Брайан Макмахан, "Обработка естественного языка на PyTorch" — контракт подписан, планируем приступать к переводу в январе.

В данном контексте мы хотели в очередной раз вернуться к болезненной теме — слабой проработке темы ML/DL в языке Java. Из-за явной незрелости этих решений и алгоритмов на языке Java мы когда-то приняли решение отказаться от книги Гибсона и Паттерсона по DL4J, и публикуемая сегодня статья Хамфри Шейла (Humphrey Sheil) подсказывает, что мы, вероятно, были правы. Предлагаем познакомиться с мыслями автора о том, каким образом язык Java мог бы наконец составить конкуренцию Python в машинном обучении
Читать дальше →

Вариационные автокодировщики: теория и рабочий код

Reading time11 min
Views19K


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

Когда-нибудь задавались вопросом, как работает модель вариационного автокодировщика (VAE)? Хотите знать, как VAE генерирует новые примеры, подобные набору данных, на котором он обучался? Прочитав эту статью, вы получите теоретическое представление о внутренней работе VAE, а также сможете реализовать его самостоятельно. Затем я покажу рабочий код VAE, обученный на наборе рукописных цифр, и мы немного повеселимся, генерируя новые цифры!
Читать дальше →

Программный модуль оцифровки поврежденных документов

Reading time6 min
Views5.3K

Оптическое распознавание символов (OCR) — это процесс получения печатных текстов в оцифрованном формате. Если вы прочитали классический роман на цифровом устройстве или попросили врача поднять старые медицинские записи через компьютерную систему больницы, вы, вероятно, воспользовались OCR.


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


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


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


image


Для обучения использовалось 144 картинки. Размер может быть разным, но желательно должен быть в пределах разумного. Картинки должны иметь формат PNG. После считывании изображения используется бинаризация – процесс преобразования цветного изображения в черно-белое, то есть каждый пиксель нормализуется в диапазон от 0 до 255, где 0 – это черный, 255 – белый.


Чтобы обучить сверточную сеть, нужно больше изображений, чем имеется. Было принято решение разделить изображения на части. Так как обучающая выборка состоит из картинок разного размера, каждое изображение было сжато до 448х448 пикселей. В результате получилось 144 изображения в разрешении 448х448 пикселей. После чего все они были нарезаны на неперекрывающиеся окна размером 112x112 пикселей.

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

От Alibaba до «Пятерочки»: кто и как использует систему распознавания лиц в бизнесе

Reading time5 min
Views19K
Платить за бургер без карты, не ждать регистрации в отеле, не стоять в очереди на кассу —все это возможно с помощью технологий распознавания лиц. В последние годы подобные решения активно тестируют многие крупные российские и зарубежные ритейлеры. Мы отобрали пять самых интересных примеров.



Узнать больше о том, как использовать распознавание лиц, нейросети и машинное обучение в бизнесе, можно на интенсивном курсе AI School.
Читать дальше →

6 способов слияния списка списков

Reading time4 min
Views126K
Зашел тут у нас в офисе разговор как наиболее «красиво» и быстро склеить список списков в Питоне. Действительно как?

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

ВАРИАНТ1
Все знают, что элементы списка можно перебирать в цикле и, то что можно добавлять элементы в конец. Это приводит нас к первому варианту решения:
def listmerge1(lstlst):
    all=[]
    for lst in lstlst:
        for el in lst:
            all.append(el)
    return all

Мало того, что функция растянулось аж на 6 строк, так вдобавок она еще и не эффективная.
Попробуем её улучшить в обоих смыслах: скорости и красоты («pythonic way»).
Читать дальше →

Генерация произвольных реалистичных лиц с помощью ИИ

Reading time10 min
Views53K
Контролируемый синтез и редактирование изображений с использованием новой модели TL-GAN


Пример контролируемого синтеза в моей модели TL-GAN (transparent latent-space GAN, генеративно-состязательная сеть с прозрачным скрытым пространством)

Весь код и онлайн-демо доступны на странице проекта.
Читать дальше →

Самые востребованные навыки в сфере data science

Reading time8 min
Views15K
В плане знаний от специалистов по data science ждут многого: машинное обучение, программирование, статистика, математика, визуализация данных, коммуникация и глубокое обучение. Каждая из этих областей охватывает десятки языков, фреймворков, технологий, доступных для изучения. Так как же специалистам по работе с данными лучше распорядиться своим бюджетом времени на обучение, чтобы быть в цене у работодателей?

Я тщательно изучил сайты с вакансиями, чтобы выяснить, какие же навыки сейчас пользуются наибольшей популярностью у работодателей. Я рассматривал как более широкие дисциплины, связанные с работой с данными, так и конкретные языки и инструменты, в рамках отдельного исследования. За материалами я обратился к сайтам LinkedIn, Indeed, SimplyHired, Monster и AngelList, по состоянию на 10 октября 2018 года. На графике ниже показано, сколько вакансий по data science представлено на каждом из этих ресурсов.


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

N-е число Фибоначчи за O(log N)

Reading time4 min
Views79K
Читая статью об устройстве на работу в ABBYY, встретил в ней упоминание задачи:
быстро – за O( log N ) арифметических операций над числами – найти N-е число Фибоначчи
Я задумался над ней и понял, что сходу в голову приходят только решения, работающие за время O(N). Однако позже решение было найдено.
Читать дальше →

5 способов вычисления чисел Фибоначчи: реализация и сравнение

Reading time5 min
Views334K

Введение


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

Код предназначен для Python 3, хотя должен идти и на Python 2.

Для начала – напомню определение:

Fn= Fn-1+ Fn-2

и F1= F2=1.
Читать дальше →

Быстрый ресайз джипегов на видеокарте

Reading time9 min
Views9.2K
В приложениях по работе с изображениями довольно часто встречается задача ресайза джипегов (картинок, сжатых по алгоритму JPEG). В этом случае сразу сделать ресайз нельзя и нужно сначала декодировать исходные данные. Ничего сложного и нового в этом нет, но если это нужно делать много миллионов раз в сутки, то особую важность приобретает оптимизация производительности такого решения, которое должно быть очень быстрым.


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

Детектор границ Канни

Reading time6 min
Views96K
Доброго времени суток!

Последнее время, на Хабре часто стал упоминаться алгоритм выделения границ Канни (который, к моему удивлению, переводится дословно: хитрый). Итак, я созрел поделиться с общественностью своим опытом реализации этого детектора.
Читать дальше →

Равномерно распределяем точки по сфере в pytorch и tensorflow

Reading time8 min
Views9.8K

Этот текст написан для тех, кто интересуется глубоким обучением, кто хочет использовать разные методы библиотек pytorch и tensorflow для минимизации функции многих переменных, кому интересно научиться превращать последовательно выполняющуюся программу в выполняемые с помощью numpy векторизованные матричные вычисления. А ещё можно научиться делать мультфильм из данных, визуализированных с помощью PovRay и vapory.


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

Как Яндекс применил компьютерное зрение для повышения качества видеотрансляций. Технология DeepHD

Reading time7 min
Views72K
Когда люди ищут в интернете картинку или видео, они часто прибавляют к запросу фразу «в хорошем качестве». Под качеством обычно имеется в виду разрешение — пользователи хотят, чтобы изображение было большим и при этом хорошо выглядело на экране современного компьютера, смартфона или телевизора. Но что делать, если источника в хорошем качестве просто не существует?

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



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

AI, практический курс. Глубокое обучение для генерации музыки

Reading time13 min
Views12K


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

Просто и качественно определяем язык сообщений

Reading time6 min
Views7.5K

У нас в компании YouScan в день обрабатывается около 100 млн. сообщений, на которых применяется много правил и разных смарт-функций. Для корректной их работы нужно правильно определить язык, потому что не все функции можно сделать агностическими относительно языка. В данной статье мы коротко расскажем про наше исследование данной задачи и покажем оценку качества на датасете из соц. сетей.

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

Просто о сложном: что нужно знать о биоинформатике

Reading time9 min
Views53K
Если спросить случайного прохожего, что такое биология, он наверняка ответит что-то вроде «наука о живой природе». Про информатику скажет, что она имеет дело с компьютерами и информацией.  Если мы не побоимся быть навязчивыми и зададим ему третий вопрос – что такое биоинформатика? – тут-то он наверняка и растеряется. Логично: про эту область знаний даже в ЕРАМ знает далеко не каждый – хотя в нашей компании и биоинформатики есть. Давайте разбираться, для чего эта наука нужна человечеству вообще и ЕРАМ в частности: в конце концов, вдруг нас на улице об этом спросят.


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

Создаём простую нейросеть

Reading time9 min
Views208K


Перевод Making a Simple Neural Network

Что мы будем делать? Мы попробуем создать простую и совсем маленькую нейронную сеть, которую мы объясним и научим что-нибудь различать. При этом не будем вдаваться в историю и математические дебри (такую информацию найти очень легко) — вместо этого постараемся объяснить задачу (не факт, что удастся) вам и самим себе рисунками и кодом.
Начнем.

Языковой барьер и NLP. Почему чат-боты нас не понимают?

Reading time7 min
Views8.9K
Люди давно хотели научить машину понимать человека. Однако только сейчас мы немного приблизились к сюжетам фантастических фильмов: можем попросить Алису убавить громкость, Google Assistant — заказать такси или Siri — завести будильник. Технологии языкового процессинга востребованы в разработках, связанных с построением искусственного интеллекта: в поисковых системах, для извлечения фактов, оценки тональности текста, машинного перевода и диалога.


О двух последних направлениях мы и поговорим: они имеют богатую историю и оказали значительное влияние на языковой процессинг. Кроме того, разберемся с основными возможностями обработки естественного языка при создании чат-бота вместе со спикером нашего курса AI Weekend компьютерным лингвистом Анной Власовой.
Читать дальше →

Google объявляет конкурс атак на алгоритмы машинного зрения

Reading time3 min
Views13K
Распознавание изображений с помощью нейросетей становится лучше, но до сих пор исследователи не побороли некоторые его фундаментальные недостатки. Там, где человек четко и ясно видит, например, велосипед, даже передовой натренированный ИИ может увидеть птицу.

Часто причина в так называемых «вредных данных» (или «соревновательных элементах», или «вредоносных экземплярах» или еще куче вариантов, поскольку «adversary examples» так и не получили общепринятого перевода). Это данные, которые обманывают классификатор нейросети, подсовывая ему признаки других классов — информацию не важную и не видную для для человеческого восприятия, но необходимую для машинного зрения.

Исследователи из Google опубликовали в 2015 году работу, где проиллюстрировали проблему таким примером:


На изображение панды наложили «вредный» градиент. Человек на полученной картинке, естественно, продолжает видеть панду, а нейросеть распознает ее как гиббона, поскольку в те участки изображения, по которым нейросеть научилась определять панд, специально намешали признаки другого класса.

В сферах, где машинное зрение должно быть предельно точным, а ошибка, взлом и действия злоумышленников могут иметь тяжелые последствия, вредные данные — серьезная помеха развитию. Прогресс в борьбе идет медленно, и компания GoogleAI (подразделение Google занимающееся исследованием ИИ) решила привлечь силы сообщества и устроить соревнование.
Читать дальше →

Определение цвета автомобилей с использованием нейронных сетей и TensorFlow

Reading time9 min
Views13K


Здравствуйте, меня зовут Роман Лапин, я студент 2 курса магистратуры факультета Высшей Школы Общей и Прикладной Физики ННГУ. В этом году мне удалось пройти отбор и поучаствовать в работе Летней Школы Intel в Нижнем Новгороде. Передо мной была поставлена задача определения цвета автомобиля при помощи библиотеки Tensorflow, над которой я работал вместе со своим ментором и инженером команды ICV Алексеем Сидневым.
И вот что у меня получилось.
Читать дальше →

Information

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