Как стать автором
Обновить
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 мин
Количество просмотров340K

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


Посмотрим на то, как с ними работать в 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.3K
image

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

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

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

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

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


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

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

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

Дисклеймер:


Я не программирую с трёх лет, не знаю наизусть Кнута, не являюсь призёром олимпиад по информатике и чемпионатов по спортивному программированию, не училась в 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 мин
Количество просмотров86K


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

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

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


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

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

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


Читать дальше →
Всего голосов 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.7K
image
Фото из открытых источников

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

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

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

Информация

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