Рубрика «машинное обучение» - 112

Как программист датасаентистам кернелы писал - 1

Мало кто верит, что современный data science-стек может быть построен не на Python, но такие прецеденты есть :). Стек Одноклассников формировался долгие годы, в первую очередь программистами, перешедшими в data science, но всё ещё остались близкими к проду, поэтому в его основе лежат открытые технологии JVM-стека: Hadoop, Spark, Kafka, Cassandra и т.д. Это помогает нам сокращать время и затраты на ввод моделей в эксплуатацию, но иногда создаёт и сложности. Например, при подготовке базовых решений для участников SNA Hackathon 2019 пришлось сжать волю в кулак и погрузиться в мир динамической типизации. Подробности (и лёгкий троллинг) под катом :)
Читать полностью »

Как определить, сколько людей нужно нанять на новый fulfillment, чем именно его заполнить и куда положить конкретный товар? Чем больше становится бизнес, тем выше неопределенность и тем дороже стоит ошибка. Победить хаос и выбрать оптимальное решение — одна из задач команды data science. А поскольку в основе анализа данных — математика, с нее и начнём.

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

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

И да, это пример поста, где сложность растет экспоненциально (сорян уж)…
Читать полностью »

Джефф Хокинс наконец готов объяснить свои исследования мозга - 1

Джефф Хокинс — ветеран Силиконовой долины, посвятивший последнее десятилетие изучению загадок человеческого мозга, организовал встречу с компанией DeepMind — одной из ведущих ИИ-лабораторий в мире.

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

Сезон чемпионатов 2019 открыт! Стартует SNA Hackathon аля ML Boot Camp 8 - 1

Привет!

Многие из читателей уже знают, что мы стараемся постоянно проводить различные IT-чемпионаты по самым разным тематикам. Только в прошлом году провели более 10 разных крупных соревнований (Russian AI Cup, ML Boot Camp, Технокубок и другие). В них приняло участие не менее 25 000 человек, а с 2011 года — более 150 000.

Если вы только сейчас узнали об этом, то поздравляем: именно с этой минуты вы стали частью большого сообщества людей, участвующих в наших соревнованиях и обменивающихся опытом друг с другом. Уже сейчас вы можете присоединиться к Telegram-группам сообществ по искусственному интеллекту, спортивному программированию, высоконагруженным проектам и администрированию, машинному обучению и анализу данных. Это поможет вам быстрее втянуться в серьёзную тусовку!

Сезон чемпионатов 2019 открыт! Стартует SNA Hackathon аля ML Boot Camp 8 - 2

Итак, перейдём к делу. Сегодня, 7 февраля, мы рады открыть новый сезон чемпионатов 2019 года. И начнём с уже восьмого соревнования по машинному обучению и анализу данных, проводимого на специализированной платформе ML Boot Camp (наш аналог Kaggle) — SNA Hackathon, или ML Boot Camp 8 (как вам удобнее).
Читать полностью »

image

Обнаружение атак является важной задачей в информационной безопасности на протяжении десятилетий. Первые известные примеры реализации IDS относятся к началу 1980-х годов.

Спустя несколько десятилетий сформировалась целая индустрия средств для обнаружения атак. На данный момент существуют различные виды продуктов, такие как IDS, IPS, WAF, брандмауэры, большинство из которых предлагает обнаружение атак на основе правил. Идея использовать техники выявления аномалий для обнаружения атак на основе статистики на производстве не кажется такой реалистичной, как в прошлом. Или всё-таки?..Читать полностью »

Пишем XGBoost с нуля — часть 1: деревья решений - 1

Привет!

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

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

Пишем XGBoost с нуля — часть 1: деревья решений - 2
Читать полностью »

Зачем нужна низкоуровневая оптимизация на Эльбрусе или как ускорить распознающую систему в полтора раза - 1

Встретив 2019 год и немного отдохнув от разработки новых фич для Smart IDReader, мы вспомнили, что давно ничего не писали об отечественных процессорах. Поэтому мы решили срочно исправиться и показать еще одну распознающую систему на Эльбрусе.

В качестве распознающей системы была рассмотрена система распознавания объектов живописи “в неконтролируемых условиях методом с обучением по одному примеру” [1]. Эта система строит описание изображения на основе особых точек и их дескрипторов, по которому выполняет поиск в индексированной базе картин. Мы проанализировали производительность данной системы и выделили наиболее времязатратную низкоуровневую часть алгоритма, который затем оптимизировали с помощью инструментов платформы Эльбрус.

Читать полностью »

Привет!

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

Речь пойдет о создании тривиальной нейронной сети на Keras, с помощью которой будем предсказывать среднее арифметическое двух чисел.

Казалось бы, что может быть проще. И действительно, ничего сложного, но есть нюансы.

Кому тема интересна, добро пожаловать под кат, здесь не будет долгих занудных описаний, просто короткий код и комментарии к нему.
Читать полностью »

Наверное, вы слышали про технологию Яндекса DeepHD, с помощью которой они как-то раз улучшили качество советских мультфильмов. Увы, в публичном доступе ее еще нет, а у нас, рядовых программистов, вряд ли найдутся силы написать свое решение. Но лично мне, как обладателю Retina-дислея (2880х1800), недавно очень захотелось посмотреть «Рика и Морти». Какого же было мое разочарование, когда я увидел, как мыльно на этом экране выглядит 1080р, в котором существуют оригиналы этого мультсериала! (это прекрасное качество и обычно его вполне достаточно, но поверьте, ретина так устроена, что анимация с ее четкими линиями в 1080р выглядит мыльновато, словно 480р на FHD-мониторе)

Я твердо решил, что хочу увидеть этот мультсериал в 4К, хотя и совершенно не умею писать нейросети. Однако решение было найдено! Любопытно, что нам даже не придется писать код, понадобится лишь ~100 ГБ места на диске и немного терпения. А результат — четкое изображение в 4К, которые выглядит достойнее, чем любая интерполяция.

image
Читать полностью »

В прошлых статьях уже писали о том, как у нас устроены технологии распознавания текста:

Примерно так же до 2018 года было устроено распознавание японских и китайских символов: в первую очередь с использованием растровых и признаковых классификаторов. Но с распознаванием иероглифов есть свои трудности:

1). Огромное количество классов, которое нужно различать.
2). Более сложное устройство символа в целом.

image

Сказать однозначно, сколько символов насчитывает китайская письменность, так же сложно, как точно посчитать, сколько слов в русском языке. Но наиболее часто в китайской письменности используются ~10 000 символов. Ими мы и ограничили число классов, используемых при распознавании.

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

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

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


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js