Pull to refresh
1
0
Марк Грекалюк @b1de0

data engineer

Send message

Отжиг и вымораживание: две свежие идеи, как ускорить обучение глубоких сетей

Reading time4 min
Views15K


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


Читать дальше →
Total votes 29: ↑29 and ↓0+29
Comments21

Граф Скоринг де ля Фер или исследование на тему кредитного скоринга, в рамках расширения кругозора. Ч.1

Reading time6 min
Views7.9K

AntipovSN and MihhaCF


UPD Часть вторая здесь
UPD Часть третья здесь


Часть первая, в которой Граф еще не стал Атосом, не встретил Миледи и все у него хорошо


Вступление от авторов:


Добрый день! Сегодня мы начинаем цикл статей, посвященных скорингу и использованию в оном теории графов (Т.Г.). Надеюсь, нам хватит запала, сил и терпения, т.к. тема достаточно объемная и, на наш взгляд, интересная.


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


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


А теперь к делу.


Цель данной статьи: не более, чем за 30 минут, ввести читателя в проблематику исследования, определить уровень рассмотрения проблемы, описать основную концепцию исследования и познакомить с базовыми терминами.


Термины и определения:


  • Скоринг – система бальной оценки объекта, основанная на численных статистических методах.
  • Граф – способ моделирования связей объектов. Представьте, что Вы с друзьями играете в покер и хотите смоделировать, кто кому сейчас должен. Например, «Д’Артаньян должен Атосу 10 луидоров»


Полный граф может выглядеть следующим образом:

Арамис всегда был хитрож… себе на уме, ему должен даже Атос. Портос, пока не встретил госпожу Кокнар, перевязь не мог себе нормальную купить и умудрился задолжать нищеброду Д’артаньяну, хотя, честно говоря, они всю дорогу что-то мутили вместе…

Читать дальше →
Total votes 14: ↑12 and ↓2+10
Comments15

Автоматическая визуализации python-кода с использованием блок-схем

Reading time17 min
Views94K
Речь пойдет о технологии, которая дает возможность реализации инструментов разработчика, подобных показанному на картинке ниже.

image

Общий вид среды с альтернативными представлениями кода

Здесь окно среды разработки разбито на две части. Слева — привычный текстовый редактор, а справа — автоматически генерируемая диаграмма, по возможности приближенная к традиционным блок-схемам алгоритмов. Генерация и перерисовка диаграммы производится по ходу набивки текста. Среда разработки определяет паузу в действиях разработчика и обновляет диаграмму, если код остается корректным. В результате появляется возможность работы не только с текстом программы, но и с его графическим представлением.
осторожно, далее много картинок
Total votes 75: ↑73 and ↓2+71
Comments70

Python и быстрые HTTP-клиенты

Reading time7 min
Views59K
В наши дни, если вы пишете некое Python-приложение, то вам, скорее всего, придётся оснащать его функционалом HTTP-клиента, который способен общаться с HTTP-серверами. Повсеместное распространение REST API сделало HTTP-инструменты уважаемыми жителями бесчисленного множества программных проектов. Именно поэтому любому программисту необходимо владеть паттернами, направленными на организацию оптимальной работы с HTTP-соединениями.



Существует множество HTTP-клиентов для Python. Самым распространённым среди них, и, к тому же, таким, с которым легко работать, можно назвать requests. Сегодня этот клиент является стандартом де-факто.
Читать дальше →
Total votes 46: ↑45 and ↓1+44
Comments3

Kaggle: Allstate Claims Severity

Reading time10 min
Views16K

Хотелось бы описать решение к недавнему соревнованию по машинному обучению Allstate Claims Severity. (Мой результат 40 из 3055). Так как это это соревнование типа «ансамблевое рубилово», как правило, обсуждение решений вызывает нездоровые священные войны между теми, кто пробовал участвовать и теми кто нет, так что для начала я сделаю небольшое лирическое отступление.
Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments18

Крадущийся тигр, затаившийся SQLAlchemy. Основы

Reading time8 min
Views122K


Доброго дня.


Сегодня хочу рассказать про ORM SQLAlchemy. Поговорим о том, что это, про его возможности и гибкость, а также рассмотрим случаи, которые не всегда понятно описаны.


Данная ORM имеет порог вхождения выше среднего, поэтому я попытаюсь объяснить всё простым языком и с примерами. Статья будет полезна тем, кто уже работает с sqlalchemy и хочет прокачать свои навыки или только знакомится с этой библиотекой.

Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments10

ООП, «святая троица» и SOLID: некоторый минимум знаний о них

Reading time43 min
Views115K

Необходимое вступление


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


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


Столь малые гарантии поднимают вопросы о причинах, по которым статья пишется. Я считаю, что этим вещам должны учить везде, где учат программированию, вплоть до уроков информатики в школах с углублённым её изучением. Тем не менее, для меня стала пугающе нормальной ситуация, когда я узнаю, что собеседник мой коллега, причём работающий уже не первый год, но про инкапсуляцию «что-то там слышал». Необходимость собрать всё это в одном месте и давать ссылку при возникновении вопросов зрела давно. А тут ещё и мой «pet-project» дал мне изрядно пищи для размышлений.


Тут мне могут возразить, что учить эти вещи в школе рановато, и вообще на ООП свет клином не сошёлся. Во-первых, это смотря как учить. Во-вторых, 70% материала этой статьи применимо не только к ООП. Что я буду отмечать отдельно.



Читать дальше →
Total votes 88: ↑82 and ↓6+76
Comments79

Мы пришли с миром от всего человечества

Reading time38 min
Views22K
image

20 июля 1969 в 20:17:39 по времени UTC, которое в то время называлось Гринвичским, лунный модуль Eagle корабля Apollo-11 совершил мягкую посадку на поверхность Луны. По возвращении на Землю 24 июля 1969 экипаж (командир Нил Армстронг, пилот лунного модуля Баз Олдрин и пилот командного/сервисного модуля Майкл Коллинз) был отправлен в двухнедельный карантин. Прямо на палубе авианосца астронавты подверглись полной, биологической изоляции на случай, если они привезли с собой внеземные микроорганизмы. Герои первой лунной экспедиции содержались в специальном боксе Лунной Приемной Лаборатории в Хьюстоне, пока не стало ясно, что их здоровье в полном порядке. Выйдя из-за стекла (см. фото ниже), 12 августа 1969 экипаж Аполлона-11 дал первую пресс-конференцию. Луноборцы спекулируют на ней, утверждая, что астронавты были скованы, нервничали, путались и т.д.
Total votes 43: ↑36 and ↓7+29
Comments60

Data Version Control (DVC): версионирование данных и воспроизводимость экспериментов

Reading time8 min
Views32K
Эта статья — своеобразный мастер-класс «DVC для автоматизации ML экспериментов и версионирования данных», который прошел 18 июня на митапе ML REPA (Machine Learning REPA:
Reproducibility, Experiments and Pipelines Automation) на площадке нашего банка.

Тут я расскажу об особенностях внутренней работы DVC и способах применения его в проектах.

Примеры кода, используемые в статье доступны здесь. Код тестировался на MacOS и Linux (Ubuntu).

Читать дальше →
Total votes 37: ↑35 and ↓2+33
Comments1

Rekko Challenge 2019: как это было

Reading time18 min
Views2.6K


Не так давно на платформе Boosters прошел контест рекомендательных систем от онлайн-кинотеатра Okko — Rekko Challenge 2019. Для меня это был первый опыт участия в соревновании с лидербордом (ранее пробовал силы только в хакатоне). Задача интересная и знакома мне из практики, призовой фонд есть, а значит, был смысл участвовать. В итоге я занял 14 место, за что организаторы выдали памятную футболку. Приятно. Спасибо.

В этой статье я кратко погружу вас в задачу, расскажу о выдвинутых мной гипотезах, а также о том, как затащить соревнование по рекомендательным системам и попасть в топ-15 без опыта стекинга, что будет особенно полезно тем, кто только собирается участвовать в контестах.
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments2

Face Anti-Spoofing или технологично узнаём обманщика из тысячи по лицу

Reading time18 min
Views27K

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



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

Читать дальше →
Total votes 67: ↑66 and ↓1+65
Comments18

Оптимальная линейная фильтрация: от метода градиентного спуска до адаптивных фильтров

Reading time10 min
Views21K

Развивая тему конспектов по магистерской специальности "Communication and Signal Processing" (TU Ilmenau), продолжить хотелось бы одной из основных тем курса "Adaptive and Array Signal Processing". А именно основами адаптивной фильтрации.


Для кого в первую очередь была написана эта статья:

1) для студенческой братии родной специальности;
2) для преподавателей, которые готовят практические семинары, но ещё не определились с инструментарием — ниже будут примеры на python и Matlab/Octave;
3) для всех, кто интересуется темой фильтрации.


Что можно найти под катом:

1) сведения из теории, которые я постарался оформить максимально сжато, но, как мне кажется, информативно;
2) примеры применения фильтров: в частности, в рамках эквалайзера для антенной решетки;
3) ссылки на базисную литературу и открытые библиотеки (на python), которые могут быть полезны для исследований.


В общем, добро пожаловать и давайте разбирать всё по пунктам.


Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments2

Python на Хабре

Reading time7 min
Views452K
Некоторое время назад, в силу определенных причин, мне пришла в голову мысль о том, чтобы начать изучать какой-нибудь новый язык программирования. В качестве альтернатив для этого начинания я определил два языка: Java и Python. После продолжительного метания между ними и сопутствующих нытья и долбежки головой о стену (у меня с новыми языками всегда так — сомнения, раздумья, проблема выбора и т.д.), я все-таки остановился на Python. Окей, выбор сделан. Что дальше? А дальше я стал искать материал для изучения…
Читать дальше →
Total votes 182: ↑162 and ↓20+142
Comments65

Знакомство с Neural ODE

Reading time20 min
Views38K

Neural Ordinary Differential Equations


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

Есть также и другой тип последовательных данных, это дискретные данные, например, данные NLP задач. Состояния в таких данных меняется дискретно: от одного символа или слова к другому.

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

На последней NIPS-конференции была представлена одна очень интересная статья, которая может помочь решить эту проблему. Авторы предлагают подход, который они назвали Нейронные Обыкновенные Дифференциальные Уравнения (Neural ODE).

Здесь я постарался воспроизвести и кратко изложить результаты этой статьи, чтобы сделать знакомство с ее идеей чуть более простым. Мне кажется, что эта новая архитектура вполне может найти место в стандартном инструментарии дата-сайентиста наряду со сверточными и рекуррентными сетями.


Читать дальше →
Total votes 79: ↑76 and ↓3+73
Comments7

Что на самом деле случилось с исчезнувшим малайзийским Боингом (часть 1/3)

Reading time11 min
Views183K
1. Исчезновение
2. Прибрежный бродяга
3. Золотая жила
4. Заговоры
5. Возможный сценарий
6. Капитан
7. Истина



1. Исчезновение


Тихой лунной ночью 8 марта 2014 года Боинг 777-200ER, эксплуатируемый Malaysia Airlines, вылетел из Куала-Лумпура в 0:42 и повернул в сторону Пекина, поднявшись на предназначенный ему эшелон 350, то есть на высоту 10 650 метров. Обозначение авиакомпании Malaysia Airlines — MH. Номер рейса — 370. Самолетом управлял Фарик Хамид, второй пилот, ему было 27 лет. Это был его последний тренировочный рейс, после которого его ждало завершение сертификации. Действиями Фарика руководил командир воздушного судна, человек по имени Захари Ахмад Шах, который в 53 года был одним из самых старших капитанов в Malaysia Airlines. По малайзийским обычаям, его звали просто Захари. Он был женат и имел троих взрослых детей. Жил в закрытом коттеджном посёлке. Имел два дома. В первом доме у него был установлен авиасимулятор, Microsoft Flight Simulator. Он регулярно летал на нем и часто писал на онлайн-форумах о своем хобби. Фарик относился к Захари с почтением, но тот не злоупотреблял своей властью.

В салоне самолёта находились 10 бортпроводников, все малайзийцы. Им предстояло позаботиться о 227 пассажирах, включая пятерых детей. Большинство пассажиров были китайцами; из числа остальных 38 были малайзийцами, а прочие (в порядке убывания) были гражданами Индонезии, Австралии, Индии, Франции, США, Ирана, Украины, Канады, Новой Зеландии, Нидерландов, России и Тайваня.
Читать дальше →
Total votes 102: ↑90 and ↓12+78
Comments117

Рекомендации в Okko: как заработать сотни миллионов, перемножив пару матриц

Reading time20 min
Views34K

Rekko — персональные рекомендации в онлайн-кинотеатре Okko


Знакома ли вам ситуация, когда на выбор фильма вы тратите гигантское количество времени, сопоставимое со временем самого просмотра? Для пользователей онлайн-кинотеатров это частая проблема, а для самих кинотеатров — упущенная прибыль.


К счастью, у нас есть Rekko — система персональных рекомендаций, которая уже год успешно помогает пользователям Okko выбирать фильмы и сериалы из более чем десяти тысяч единиц контента. В статье я расскажу вам как она устроена с алгоритмической и технической точек зрения, как мы подходим к её разработке и как оцениваем результаты. Ну и про сами результаты годового A/B теста тоже расскажу.

Рекомендую вам прочитать эту статью
Total votes 70: ↑61 and ↓9+52
Comments31

Анализ производительности WSGI-серверов: Часть вторая

Reading time6 min
Views27K
Данная статья является переводом статьи Кевина Голдберга «A Performance Analysis of Python WSGI Servers: Part 2» dzone.com/articles/a-performance-analysis-of-python-wsgi-servers-part с небольшими дополнениями от переводчика.

image

Введение


В первой части этой серии Вы познакомились с WSGI и с шестью наиболее популярными по мнению автора WSGI-серверами. В этой части Вам будет показан результат анализа производительности этих серверов. С этой целью была создана специальная тестовая песочница.
Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments6

Делаем сервис по распознаванию изображений с помощью TensorFlow Serving

Reading time12 min
Views34K

image

Всегда наступает то самое время, когда обученную модель нужно выпускать в production. Для этого часто приходится писать велосипеды в виде оберток библиотек машинного обучения. Но если Ваша модель реализована на Tensorflow, то у меня для Вас хорошая новость — велосипед писать не придется, т.к. можно использовать Tensorflow Serving.


В данной статье мы рассмотрим как использовать Tensorflow Serving для быстрого создания производительного сервиса по распознаванию изображений.

Читать дальше →
Total votes 38: ↑38 and ↓0+38
Comments3

Как мы подняли производительность Tensorflow Serving на 70%

Reading time11 min
Views8.4K
Tensorflow стал стандартной платформой для машинного обучения (ML), популярной как в индустрии, так и в научных исследованиях. Создано множество свободных библиотек, инструментов и фреймворков для обучения и обслуживания моделей ML. Проект Tensorflow Serving помогает обслуживать модели ML в распределённой среде продакшна.

Наш сервис Mux использует Tensorflow Serving в нескольких частях инфраструктуры, мы уже обсуждали использование Tensorflow Serving в кодировании видео по заголовкам. Сегодня сосредоточимся на методах, которые улучшают задержку за счёт оптимизации как на сервере прогнозирования, так и на клиенте. Прогнозы модели обычно являются «онлайновыми» операциями (на критическом пути запроса приложения), поэтому основные цели оптимизации — обрабатывать большие объёмы запросов с максимально низкой задержкой.
Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments0

Нейронные сети предпочитают текстуры и как с этим бороться

Reading time7 min
Views32K


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


В первой статье Approximating CNNs with bag-of-local features models works surprisingly well on ImageNet авторы берут модель, похожую на bag-of-words, и в качестве "слов" используют фрагменты из изображения. Эти фрагменты могут быть вплоть до 9х9 пикселей. И при этом, на такой модели, где полностью отсутствует какая-либо информация о пространственном расположении этих фрагментов, авторы получают точность от 70 до 86% (для примера, точность обычной ResNet-50 составляет ~93%).


Во второй статье ImageNet-trained CNNs are biased towards texture авторы приходят к выводу, что виной всему сам набор данных ImageNet и то, как изображения воспринимают люди и нейронные сети, и предлагают использовать новый датасет – Stylized-ImageNet.


Более подробно о том, что на картинках видят люди, а что нейронные сети

Читать дальше →
Total votes 100: ↑100 and ↓0+100
Comments68

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity