Как стать автором
Обновить
43
0

Software Engineer

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

Как предсказать гипероним слова (и зачем). Моё участие в соревновании по пополнению таксономии

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

Как может машина понимать смысл слов и понятий, и вообще, что значит — понимать? Понимаете ли вы, например, что такое спаржа? Если вы скажете мне, что спаржа — это (1) травянистое растение, (2) съедобный овощ, и (3) сельскохозяйственная культура, то, наверное, я останусь убеждён, что вы действительно знакомы со спаржей. Лингвисты называют такие более общие понятия гиперонимами, и они довольно полезны для ИИ. Например, зная, что я не люблю овощи, робот-официант не стал бы предлагать мне блюда из спаржи. Но чтобы использовать подобные знания, надо сначала откуда-то их добыть.


В этом году компьютерные лингвисты организовали соревнование по поиску гиперонимов для новых слов. Я тоже попробовал в нём поучаствовать. Нормально получилось собрать только довольно примитивный алгоритм, основанный на поиске ближайших соседей по эмбеддингам из word2vec. Однако этот простой алгоритм каким-то образом оказался наилучшим решением для поиска гиперонимов для глаголов. Послушать про него можно в записи моего выступления, а если вы предпочитаете читать, то добро пожаловать под кат.


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

Метод главных компонент: аналитическое решение

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


В этой статье мы залезем под капот одному из линейных способов понижения размерности признакового пространства данных, а именно, подробно ознакомимся с математической стороной метода главных компонент (Principal Components Analysis, PCA).
Читать дальше →
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 0

Алгоритм распознавания номера на изображении с низкой вероятностью ошибки второго рода

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

В индустрии существует целый ряд кейсов, требующих распознавания номера по фотографии
(scene number recognition). Часто требуемым условием для алгоритма распознавания является низкое значение ошибки второго рода, а именно случаи, когда распознается неверный номер. В качестве примера таких задач можно привести:


  1. Распознавание номера на скидочных, банковских картах, рисунок 1.
  2. Распознавание номера автомобиля, рисунок 2.

image

Рисунок 1 – Карта лояльности
Рисунок 2 – Изображение, содержащее регистрационный номер в низком качестве


Среди проблем, связанных с распознаванием номера, можно выделить:


  • Большое разнообразие шрифтов;
  • Отсутствие зависимости между предыдущими и последующими символами номера (в отличие от задачи распознавания текста);
  • Высокий уровень шумов по причине того, что съемка ведется в различных условиях освещенности, с разного оборудования и т.д.

Задача


Разработать алгоритм распознавания номера на изображении (scene number recognition) при обязательном условии: ошибка второго рода должна быть не больше 0.03.

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

Перевод книги Эндрю Ына «Страсть к машинному обучению» Главы 49 и 50

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

предыдущие главы


49. За и против сквозного обучения


Продолжим рассматривать систему распознавания речи:


image

Большинство элементов этого конвейера созданы без применения машинного обучения (разработаны людьми или hand-designed):


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

С одной стороны не обучаемые алгоритмы (hand-engineered components) ограничивают потенциальную производительность речевой системы. С другой их использование имеет определенные преимущества:


  • Функции MFCC устойчивы к некоторым свойствам речи, не влияющим на смысл сказанного, например к тональности голоса. Их применение упрощает задачу для обучаемого алгоритма.
  • Фонемы, если они правильно отражают звуки реальной речи, помогают обучающемуся алгоритму уловить основные звуковые элементы, повышая качество его работы
Читать дальше →
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 0

Использование метода Монте-Карло для создания портфеля

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

В этом посте будет рассмотрено то, как оптимизировать портфель при помощи Python и симуляции Монте Карло. Под оптимизацией портфеля понимается такое соотношение весов, которое будет удовлетворять одному из условий:
Читать дальше →
Всего голосов 10: ↑7 и ↓3 +4
Комментарии 18

Прямая передача файлов между устройствами по WebRTC

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


Новый сервис WebWormHole работает как портал, через который файлы передаются с компьютера на другой. Нажимаете кнопку New Wormhole — и получаете код для входа. Человек с другой стороны вводит такой же код или URL — и между вами устанавливается эфемерный туннель, по которому напрямую передаются файлы. Очень просто и эффективно. Исходный код на Github.
Читать дальше →
Всего голосов 21: ↑20 и ↓1 +19
Комментарии 5

Открытый курс машинного обучения. Тема 9. Анализ временных рядов с помощью Python

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

Доброго дня! Мы продолжаем наш цикл статей открытого курса по машинному обучению и сегодня поговорим о временных рядах.


Посмотрим на то, как с ними работать в Python, какие возможные методы и модели можно использовать для прогнозирования; что такое двойное и тройное экспоненциальное взвешивание; что делать, если стационарность — это не про вас; как построить SARIMA и не умереть; и как прогнозировать xgboost-ом. И всё это будем применять к примеру из суровой реальности.


UPD 01.2022: С февраля 2022 г. ML-курс ODS на русском возрождается под руководством Петра Ермакова couatl. Для русскоязычной аудитории это предпочтительный вариант (c этими статьями на Хабре – в подкрепление), англоговорящим рекомендуется mlcourse.ai в режиме самостоятельного прохождения.


Видеозапись лекции по мотивам этой статьи в рамках второго запуска открытого курса (сентябрь-ноябрь 2017).

Читать дальше →
Всего голосов 55: ↑53 и ↓2 +51
Комментарии 19

Легко ли научить робота проходить тест для программистов?

Время на прочтение 11 мин
Количество просмотров 17K
Из этой статьи читатель узнает о том, как написать робота, проходящего тесты, и немножко «разомнет мозги» в теории вероятностей, разбираясь вместе с автором, почему при кажущейся сложности задачи автоматический подбор решения сходится за очень короткое время. Предупреждение: половина статьи ― «матан».

Введение


Несколько лет назад я сделал тест для программистов, который многим, скорее всего, не понравится. Если вы пишете на языке PHP, ваша любимая СУБД ― MySQL, а в качестве операционной системы вы предпочитаете Linux ― попробуйте его пройти. Заранее предупреждаю, тест своеобразный. Успешно его проходит всего несколько процентов испытуемых. Так что не стоит переживать. Если вы его не пройдете ― ничего страшного. Тест «заточен» под определенные навыки, которые требуются далеко не везде.

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

В тесте 80 вопросов, из которых для каждого испытания случайным образом выбирается 25. У меня был простой (и, как потом выяснилось, абсолютно неверный) расчет. Чтобы тест нельзя было пройти, заучив или подобрав ответы, общая база вопросов изначально должна быть существенно больше, чем количество вопросов в одном испытании. Общее количество комбинаций тестов составляет число порядка 1020. «Раз число такое большое, значит, и подобрать ответы будет очень сложно», ― думал я. Конечно, число сочетаний ― очень грубая оценка. Но задача автоматического подбора интуитивно казалась мне если и решаемой, то такими затратами, на которые ботописатель не пойдет. Думать так было большой ошибкой. Битву с ботами я проиграл. Дальше расскажу, почему.
Осторожно, матан!
Всего голосов 63: ↑57 и ↓6 +51
Комментарии 37

Как мы стали создавать карточки товаров автоматически

Время на прочтение 8 мин
Количество просмотров 8.2K
image

В своей прошлой статье я рассказал, как мы научились автоматически сопоставлять товары по наименованиям.То есть, понимать, например, что
Гарнитура A4Tech Bloody G501 черный
и
A4 G501, черно(красные) {Наушники с микрофоном, 2.2м}

— это одно и то же. Это дало возможность автоматизировать все, что связано с ценами и наличием. В этой статье я расскажу, как мы пошли дальше и автоматизировали работу с характеристиками и изображениями товаров.
Читать дальше →
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 1

Учим нейросети в Google Таблицах

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

Хочу с вами зачелленджить одну интересную штуку: попробовать обучить нейросеть в Google Таблицах. Безо всяких макросов и прочих хаков, на чистых формулах.


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

Подготовка к собеседованиям в IT-гиганты: как я преодолела проклятье алгоритмического собеседования

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

Дисклеймер:


Я не программирую с трёх лет, не знаю наизусть Кнута, не являюсь призёром олимпиад по информатике и чемпионатов по спортивному программированию, не училась в MIT. У меня за плечами образование по информатике и 6 лет опыта в коммерческой разработке. И до недавнего времени я не могла пройти дальше первого технического скрининга в IT-гиганты из FAANG (Facebook, Amazon, Apple, Netflix, Google и подобные), хотя предпринимала несколько попыток. 

Но теперь всё изменилось, я получила несколько офферов и хочу поделиться опытом, как можно к этому прийти. Речь пойдёт о позиции Software Engineer в европейских офисах перечисленных компаний.
Читать дальше →
Всего голосов 201: ↑196 и ↓5 +191
Комментарии 342

Три подводных камня машинного обучения и как их избежать

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

Ученые из бесчисленных областей обращаются к алгоритмическому анализу данных, Патрик Райли из Google призывает к четким стандартам научных исследований и отчетов.



Инженеры TAE Technologies и Google в Калифорнии используют машинное обучение для оптимизации оборудования, производящего высокоэнергетическую плазму. Источник: Liz Kuball.
Читать дальше →
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 0

Про хранение паролей в БД

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


Сегодня посмотрим, как лучше всего хранить пароли в базе данных и как известные платформы решают эту задачу.
Читать дальше →
Всего голосов 26: ↑21 и ↓5 +16
Комментарии 44

Машинный перевод. От Холодной войны до наших дней

Время на прочтение 6 мин
Количество просмотров 4.8K
Машинный перевод в последние годы получил очень широкое распространение. Наверняка, большинство моих читателей хоть раз пользовались сервисами Google.Translate или Яндекс.Перевод. Также вероятно, что многие помнят, что не так уж и давно, лет 5 назад пользоваться автоматическими переводчиками было очень непросто. Непросто в том смысле, что они выдавали перевод очень низкого качества. Под катом краткая и неполная история машинного перевода, из которой будет виден в этой задаче и некоторые его причины и последствия. А для начала картинка, которая показывает важную концепцию относительно машинного перевода:


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

Использование алгоритмов ML для классификации многостраничных документов: опыт ВТБ

Время на прочтение 10 мин
Количество просмотров 7K
В рамках кредитных конвейеров юридических лиц банки запрашивают у компаний оригиналы различных документов. Зачастую сканы этих документов поступают в виде единого многостраничного файла – «потока». Для удобства использования потоки нужно сегментировать на отдельные документы (одностраничные или многостраничные) и классифицировать их. Под катом мы расскажем о применении алгоритмов машинного обучения в классификации уже сегментированных документов.


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

Как мы учились рекомендовать фильмы и почему не стоит полагаться только на оценки

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


Представьте, что вы хотите провести вечер за просмотром фильма, но не знаете, какой выбрать. Пользователи Яндекса часто оказываются в такой же ситуации, поэтому наша команда разрабатывает рекомендации, которые можно встретить в Поиске и Эфире. Казалось бы, что тут сложного: берём оценки пользователей, с их помощью обучаем машину находить фильмы, которым с высокой вероятностью поставят 5 баллов, получаем готовый список фильмов. Но этот подход не работает. Почему? Вот об этом я сегодня и расскажу вам.
Читать дальше →
Всего голосов 38: ↑36 и ↓2 +34
Комментарии 26

Гибкое управление Data Science-продуктами

Время на прочтение 16 мин
Количество просмотров 10K
Асхат Уразбаев был программистом, руководил IT-командами, но заинтересовался Agile и основал компанию ScrumTrek, которая помогает компаниям внедрять гибкие подходы.

Однажды в ScrumTrek за помощью обратилась компания с data science-продуктами. Казалось бы, работа понятна и схема отработана: рассказать, что такое Agile, собрать бэклог, запустить спринт — 3 дня работы. 3, не 3, но через 3 месяца точно что-то начнет получаться, а через 3 года вообще все будет отлично.

Оказалось, не так все просто.


87% data science-проектов никогда не попадают в прод. То есть не просто не укладываются в бюджеты и сроки, а вообще не доходят до использования в продакшене. Почему так происходит и как все-таки можно внедрить гибкие методологии в data science, Асхат Уразбаев рассказал на TeamLead Conf, а мы сделали из этого статью.
Всего голосов 26: ↑25 и ↓1 +24
Комментарии 2

Как я отказался от вычисления квадратного корня

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


Очень часто при цифровой обработке сигналов необходимо вычислить длину вектора, обычно это делается по формуле A=SQRТ(X^2+Y^2). Здесь возвести в квадрат значение не сложно, но операция вычисления квадратного корня не является простой операцией, особенно для микроконтроллеров. Кроме того, алгоритмы вычисления корня выполняются не стабильное время, и для алгоритмов, в которых таких вычислений много, становится сложно прогнозировать время, необходимое для вычислений.

С такой задачей столкнулся и я. О том, как я отказался от процедуры вычисления корня, читайте ниже.
Читать дальше →
Всего голосов 126: ↑119 и ↓7 +112
Комментарии 93

Как мы считаем людей с помощью компьютерного зрения

Время на прочтение 8 мин
Количество просмотров 7.6K
image
Фото из открытых источников

Массовые скопления людей создают проблемы в самых разных областях (ритейл, госслужбы, банки, застройщики). Заказчикам необходимо объединять и мониторить информацию о количестве людей во множестве мест: в офисах обслуживания, административных помещениях, на строительных площадках и т. д.

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

Нас зовут Татьяна Воронова и Эльвира Дяминова, мы занимаемся анализом данных в компании Center 2M. Хотя тема кажется наиболее простой из того, что сейчас рассматривается в задачах компьютерного зрения, даже в этой задаче, когда дело доходит до практики (внедрения), приходится решать много сложных и нетривиальных подзадач. Цель нашей статьи – показать сложности и основные подходы к задачам компьютерного зрения на примере решения одной из базовых задач. Для последующих материалов мы хотим привлечь коллег: девопса, инженера, руководителей проектов по видеоаналитике, чтобы они рассказали про задействованные вычислительные ресурсы, замеры скорости, нюансы общения с заказчиками и проектные истории внедрения. Мы же остановимся на некоторых использовавшихся методах анализа данных.
Читать дальше →
Всего голосов 15: ↑15 и ↓0 +15
Комментарии 4
Часто в комментариях на Хабре приходится встречать высказывания, что российские банки не умеют хранить персональные данные, да и вообще не очень-то расположены защищать клиента, например, при покупках через интернет. На самом деле система безопасности банков продумана лучше, чем может показаться. На примере Газпромбанка разбираемся в деталях защиты данных клиентов.
Подробности — под катом
Всего голосов 33: ↑23 и ↓10 +13
Комментарии 26

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность