Как стать автором
Обновить
136
0
Вадим Марковцев @markhor

Head of Analytics

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

Рубрика «Читаем статьи за вас». Май 2020. Часть 2

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


Привет, Хабр! Продолжаем публиковать рецензии на научные статьи от членов сообщества Open Data Science из канала #article_essense. Хотите получать их раньше всех — вступайте в сообщество!


Статьи на сегодня:


  1. ECA-Net: Efficient Channel Attention for Deep Convolutional Neural Networks (China, 2020)
  2. TAPAS: Weakly Supervised Table Parsing via Pre-training (Google, 2020)
  3. DeepFaceLab: A simple, flexible and extensible faceswapping framework (2020)
  4. End-to-End Object Detection with Transformers (Facebook AI, 2020)
  5. Language Models are Few-Shot Learners (OpenAI, 2020)
  6. TabNet: Attentive Interpretable Tabular Learning (Google Cloud AI, 2020)
Читать дальше →
Всего голосов 35: ↑34 и ↓1+33
Комментарии0

Шпаргалка по SIMD-инструкциям, теперь и для .NET Core

Время на прочтение2 мин
Количество просмотров6.6K
Ни для кого не секрет, что в дотнет завезли интринсики. Я писал об этом и до того, как они появились и после. Плюс ещё посты на Хабре, например этот. И всё, казалось бы, замечательно, если бы не одно «но»: называются эти интринсики по-дотнетовски, а совсем не так как в ассемблере или C++.

Из-за этого трудно воспользоваться уже готовым векторизованным кодом, просто портировав его с плюсов. Так же тяжело будет и с адаптацией найденных на stackoverflow ответов и примеров )) Ведь для каждого вызова надо найти новое дотнетное название. А сделать это не так легко — если в MSDN искать называние плюсового интринсика, то найдутся только плюсовые статьи, и, может быть, где-то в самом конце то, что нам нужно.

Когда мне приходилось писать SIMD-код на плюсах, я пользовался очень хорошим ресурсом — officedaytime, где кратко и наглядно представлены все основные инструкции для x86-платформы. Я решил, что неплохо было бы заполучить такую шпаргалку и для дотнета.



Итак, не буду лить много воды, вот эта страница, адаптированная под netcore.
Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии6

Рубрика «Читаем статьи за вас». Апрель 2020. Часть 2

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


Привет, Хабр! Продолжаем публиковать рецензии на научные статьи от членов сообщества Open Data Science из канала #article_essense. Хотите получать их раньше всех — вступайте в сообщество!


Статьи на сегодня:


  1. Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization (Georgia Institute of Technology, Atlanta, USA, 2016)
  2. X3D: Expanding Architectures for Efficient Video Recognition (Facebook AI Research, 2020)
  3. Adaptive Attention Span in Transformers (Facebook AI Research, 2019)
  4. ResNeSt: Split-Attention Networks (Amazon, 2020)
  5. Weight Standardization (Johns Hopkins University, 2019)
  6. Supervised Contrastive Learning (Google Research, MIT, 2020)
  7. Improved Training Speed, Accuracy, and Data Utilization Through Loss Function Optimization (USA, 2019)
  8. TTNet: Real-time temporal and spatial video analysis of table tennis (OSAI, 2020)
  9. Learning in the Frequency Domain (Alibaba, Arizona, 2020)
Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии0

Как Linux'овский sort сортирует строки

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

Введение


Всё началось с короткого скрипта, который должен был объединить информацию об адресах e-mail сотрудников, полученных из списка пользователей почтовой рассылки, с должностями сотрудников, полученными из базы отдела кадров. Оба списка были экспортированы в текстовые файлы в кодировке Юникод UTF-8 и сохранены с юниксовскими концами строк.


Содержимое mail.txt


Иванов Андрей;ia@example.com

Содержимое buhg.txt


Иванова Алла;маляр
Ёлкина Элла;крановщица
Иванов Андрей;слесарь
Абаканов Михаил;маляр

Для объединения файлы были отсортированы юниксовской командой sort и поданы на вход юниксовской программе join, которая неожиданно завершилась с ошибкой:


$> sort buhg.txt > buhg.srt
$> sort mail.txt > mail.srt
$> join buhg.srt mail.srt > result
join: buhg.srt:4: is not sorted: Иванов Андрей;слесарь

Просмотр результата сортировки глазами показал, что в целом сортировка правильная, но в случае совпадений мужских и женских фамилий, женские идут перед мужскими:


$> sort buhg.txt
Абаканов Михаил;маляр
Ёлкина Элла;крановщица
Иванова Алла;маляр
Иванов Андрей;слесарь

Выглядит как глюк сортировки в Юникоде или как проявление феминизма в алгоритме сортировки. Первое, конечно, правдоподобнее.

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

Сравниваем работу open source Python — библиотек для распознавания именованных сущностей

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

Введение


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

Для решения это задачи я опробовал десятки решений в области обработки естественного языка, в том числе решения с открытым кодом и хотел бы поделиться опытом работы с open source Python — библиотеками для распознавания именованных сущностей.

Распознавание именованных сущностей


Несколько слов о самой проблеме. Named Entity Recognition (NER) — это направление технологии обработки человеческого языка, программная реализация которой позволяет находить в речи и тексте опредмеченные категории слов и словосочетаний. Сначала это были географические наименования, имена людей, организаций, адреса, однако в настоящее время это понятие сильной расширилось и с помощью NER мы ищем в тексте относительные и абсолютные даты, числа, номера и т.д.
Выявление именованных сущностей — это «ворота» в человеческий язык, оно позволяет выявлять и обрабатывать намерения человека, устанавливать связи слов в его речи и реальным миром.

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

Управляя коллективом, нарушьте все правила

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

В искусстве управления много противоречивых рецептов, и лучшие в мире менеджеры придерживаются своих собственных правил. Правы ли они и почему процесс найма в лидирующих на рынке компаниях устроен так, а не иначе? Нужно ли всеми силами пытаться преодолеть свои недостатки? Почему самоуправляемые команды часто не работают? На кого нужно тратить больше времени менеджеру — на лучших или худших сотрудников? Что за странные вопросы на собеседованиях Google? Прав ли начальник, когда указывает, как мне делать мою работу? Как вообще оценить, насколько я хорош как менеджер?

Если ответы на эти вопросы вас интересуют, то вам стоит почитать книгу Маркуса Бакингема и Курта Коффмана «Сначала нарушьте все правила: Что лучшие в мире менеджеры делают по-другому». Эта книга могла бы стать для меня настольной, но перечитывать нет времени, поэтому я сделал выжимку, которой и хочу с вами поделиться.
Читать дальше →
Всего голосов 84: ↑81 и ↓3+78
Комментарии20

Как стать хорошим менеджером? 4 способа восполнить пробел в навыках управления

Время на прочтение5 мин
Количество просмотров21K
Перевод статьи подготовлен специально для студентов курса «Team Lead 2.0».




Как стать хорошим менеджером и восполнить пробелы в навыках управления бизнесом?
На сегодняшний день многие недооценивают необходимость грамотного менеджмента в бизнесе. Менеджмент – это сложно. Не только для менеджера, но и для бизнеса.

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

Это самое большое изменение, которое происходит с человеком по мере его продвижения по карьерной лестнице. И слишком часто получается так, что хороший работник становится управленцем без необходимых навыков, желания и понимания.
Читать дальше →
Всего голосов 31: ↑25 и ↓6+19
Комментарии9

Алгоритм нечеткого поиска TextRadar. Основные подходы (ч. 1)

Время на прочтение5 мин
Количество просмотров8.4K
В отличие от нечеткого сравнения строк, когда обе сравниваемые строки равнозначны, в задаче нечеткого поиска выделяются строка поиска и строка данных, а определить необходимо не степень похожести двух строк, а степень присутствия строки поиска в строке данных.

Постановка задачи


Даны строка данных и строка поиска как произвольные наборы символов, состоящие из слов – групп символов, разделенных пробелами.

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

Для оценки качества результата поиска вычислить коэффициент релевантности, значение которого должно лежать в диапазоне от 0 до 1, где 0 должен соответствовать полному отсутствию символов строки поиска в строке данных, а 1 – наличию строки поиска в строке данных в неискаженном виде.

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

Описание алгоритма


Поиск осуществляется в несколько этапов.

Построение матрицы совпадений


Матрица совпадений (M) представляет собой двумерную матрицу, количество столбцов которой соответствует длине строки данных, а количество строк – длине строки поиска. Элементы матрицы совпадений принимают значения 0 или 1 в зависимости от того, совпадают или нет соответствующие символы строк за исключением пробелов (разделителей слов).
Матрица совпадений для строки данных «ABCD EF» и строки поиска «ABC» имеет вид:

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

Терминология Google Аналитики и Яндекс.Метрики: как не запутаться во всех этих данных

Время на прочтение10 мин
Количество просмотров23K
Терминология Google Аналитики и Яндекс.Метрики: как не запутаться во всех этих данных

Визиты, сеансы, входы, просмотры, посетители — это верхушка терминологического ада систем аналитики. Из-за массы похожих по своей сути метрик даже профи время от времени заглядывают в справку, чтобы уточнить те или иные термины. А что говорить о тех, кто только погружается в аналитику…


Мы собрали термины Google Аналитики и Яндекс.Метрики, с которыми чаще всего возникают проблемы. Рассказываем, что они означают и где смотреть значения метрик.


Если вы думаете, что знаете об этих терминах всё, — проверьте. Без сюрпризов не обойдется.

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

Как выстроить процессы и перестать издеваться над командой

Время на прочтение10 мин
Количество просмотров55K
Всем привет! Сегодня хотел поговорить о процессах разработки. По мере роста компании не только развивается сам бизнес, но и копятся проблемы внутри, в частности в процессе разработки. Часто их пытаются решить внедрением каких-то практик и новомодных методологий. Увы, это насильное перестраивание процесса по книжкам и тренингам нередко это приводит к ещё большим проблемам — издевательству над людьми.

Недавно я выступал на конференции Saint TeamLead Conf 2019, в докладе я рассказал о том, как смог найти ряд проблем в рабочем процессе и потом постепенно поборол их. Здесь я постараюсь описать наиболее ценные практики, которые мне помогли не только наладить рабочий процесс, но и перестать издеваться над разработчиками. У сотрудников изменилось отношение к компании в целом и рабочему процессу.
Всего голосов 48: ↑46 и ↓2+44
Комментарии34

Обзор методов отбора признаков

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


Правильный отбор признаков для анализа данных позволяет:

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

Оценка важности признаков необходима для интерпретации результатов модели.

Мы рассмотрим существующие методы отбора признаков для задач обучения с учителем и без. Каждый метод проиллюстрирован open source-реализацией на Python, чтобы вы могли быстро протестировать предложенные алгоритмы. Однако это не полная подборка: за последние 20 лет было создано множество алгоритмов, и здесь вы найдёте самые основные из них. Для более глубокого исследования ознакомьтесь с этим обзором.
Читать дальше →
Всего голосов 35: ↑34 и ↓1+33
Комментарии4

TCP против UDP или будущее сетевых протоколов

Время на прочтение27 мин
Количество просмотров170K
Перед каждым сервисом, генерирующим хотя бы 1 Мбит/сек трафика в интернете возникает вопрос: «Как? по TCP или по UDP?» В прикладных областях, в том числе и платформах доставки уже сложились предпочтения и традиции принятия подобных решений.

По идее, если бы, к примеру, однажды один ленивый разработчик не попробовал развернуть свой ML на Python (потому что только его и знал), мир скорее всего никогда не проникся бы такой любовью к презренному «супер-джава-кодерами» языку. А сегодня слабости этого языка в прошлом контексте применения безоговорочно обеспечивают ему первенство в развертывании и запуске многочисленных майнерских А/Б.

Сравнивать можно многое: ARM с Intel, iOS и Android, а Mortal Kombat с Injustice. И нарваться на космический холивар, поэтому вернемся к теме доставки огромных объемов разноформатного контента.

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


Осторожно, под катом 99 иллюстраций и схем и все важные.
Всего голосов 162: ↑159 и ↓3+156
Комментарии75

Каково быть мейнтейнером свободного ПО

Время на прочтение3 мин
Количество просмотров34K
2013 год. Я узнаю об альфе нового проекта под названием GNOME Calendar. Интересно.

Я люблю календари.

«Круто, буду следить за ним», — сказал я по молодости. В ветке ui-rework шла бурная разработка. Каждый день несколько новых коммитов. Скачать, собрать, протестировать. И вдруг коммитов не стало на целый день. И на следующий день тоже. Неделю, месяц, год… Я разочарован. Не хочется, чтобы такой замечательный проект погиб. Вы же понимаете…

Я люблю календари.
Читать дальше →
Всего голосов 132: ↑129 и ↓3+126
Комментарии259

Учебный курс по React, часть 26: архитектура приложений, паттерн Container/Component

Время на прочтение12 мин
Количество просмотров29K
В этой части перевода учебного курса по React мы поговорим об архитектуре React-приложений. В частности, обсудим популярный паттерн Container/Component.

image

Часть 1: обзор курса, причины популярности React, ReactDOM и JSX
Часть 2: функциональные компоненты
Часть 3: файлы компонентов, структура проектов
Часть 4: родительские и дочерние компоненты
Часть 5: начало работы над TODO-приложением, основы стилизации
Часть 6: о некоторых особенностях курса, JSX и JavaScript
Часть 7: встроенные стили
Часть 8: продолжение работы над TODO-приложением, знакомство со свойствами компонентов
Часть 9: свойства компонентов
Часть 10: практикум по работе со свойствами компонентов и стилизации
Часть 11: динамическое формирование разметки и метод массивов map
Часть 12: практикум, третий этап работы над TODO-приложением
Часть 13: компоненты, основанные на классах
Часть 14: практикум по компонентам, основанным на классах, состояние компонентов
Часть 15: практикумы по работе с состоянием компонентов
Часть 16: четвёртый этап работы над TODO-приложением, обработка событий
Часть 17: пятый этап работы над TODO-приложением, модификация состояния компонентов
Часть 18: шестой этап работы над TODO-приложением
Часть 19: методы жизненного цикла компонентов
Часть 20: первое занятие по условному рендерингу
Часть 21: второе занятие и практикум по условному рендерингу
Часть 22: седьмой этап работы над TODO-приложением, загрузка данных из внешних источников
Часть 23: первое занятие по работе с формами
Часть 24: второе занятие по работе с формами
Часть 25: практикум по работе с формами
Часть 26: архитектура приложений, паттерн Container/Component
Часть 27: курсовой проект
Читать дальше →
Всего голосов 30: ↑25 и ↓5+20
Комментарии0

Как расставить приоритеты в разработке. Опыт внедрения GIST + ICE в Яндекс.Маркете

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

Рассмотрим одно из подразделений Яндекс.Маркета. Оно довольно крупное — 85 человек. Внутри подразделения есть несколько команд. Команды либо занимаются функциональными частями Маркета, либо решают какую-то большую пользовательскую задачу. Вот одна из них: изменить сам сервис Яндекс.Маркет и интернет-торговлю в регионах так, чтобы местным пользователям стало удобнее решать свои проблемы.


С чего командам начать? Как объяснить всем вокруг, почему мы делаем одно, а не другое? Как донести до каждого инженера, зачем он занимается своей текущей задачей? Как вкладывать силы в то, что действительно улучшит мир вокруг, и не тратить время на то, что не нужно? Как сделать работу команд прозрачной друг для друга?


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


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

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

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

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



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

Всего голосов 206: ↑204 и ↓2+202
Комментарии169

Сборник демографических рассказов в одной карте

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

fig0


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


Kashnitsky, I., & Schöley, J. (2018). Regional population structures at a glance. The Lancet, 392(10143), 209–210. https://doi.org/10.1016/S0140-6736(18)31194-2

Собственно, вот карта в высоком разрешении (кликабельно).


fig1


Карту можно воспроизвести точь-в-точь за несколько минут, код на гитхабе.


Данные создают цвета

Читать дальше →
Всего голосов 75: ↑74 и ↓1+73
Комментарии40

Как лучше разбираться в людях

Время на прочтение31 мин
Количество просмотров102K
Рассказывать айтишникам про психологию то еще дело, некоторые читатели скажут: «Bullshit!», и вообще не поверят, потому что психологию, даже прикладную, нельзя назвать точной наукой. Тем не менее, задача этой статьи — показать и доказать вам, что некоторые модели действительно работают. В основе доклад Сергея Котырева из UMI на РИТ++ 2017, от его лица дальше и пойдет повествование.



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

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

Мне кажется, о поведении и предсказании поведения спиральных галактик мы знаем больше, чем о том, как поведет себя человек, например, моя жена, сотрудник, или особенно сотрудница моего отдела маркетинга, не говоря уже о пиарщицах. О том, что ближайшая к нам Галактика летит, и через сколько-то миллиардов лет столкнется с нашей, мы уже знаем точно.
Всего голосов 127: ↑113 и ↓14+99
Комментарии63

Нестандартная кластеризация 5: Growing Neural Gas

Время на прочтение13 мин
Количество просмотров18K
Часть первая — Affinity Propagation
Часть вторая — DBSCAN
Часть третья — кластеризация временных рядов
Часть четвёртая — Self-Organizing Maps (SOM)
Часть пятая — Growing Neural Gas (GNG)

Доброго времени суток, Хабр! Сегодня я бы хотел рассказать об одном интересном, но крайне малоизвестном алгоритме для выделения кластеров нетипичной формы — расширяющемся нейронном газе (Growing Neural Gas, GNG). Особенно мало информации об этом инструменте анализа данных в рунете: статья в википедии, рассказ на Хабре о сильно изменённой версии GNG и пара статей с одним лишь перечислением шагов алгоритма — вот, пожалуй, и всё. Весьма странно, ведь мало какие анализаторы способны работать с меняющимися во времени распределениями и нормально воспринимают кластеры экзотической формы — а это как раз сильные стороны GNG. Под катом я попробую объяснить этот алгоритм сначала человеческим языком на простом примере, а затем более строго, в подробностях. Прошу под кат, если заинтриговал.

(На картинке: нейронный газ осторожно трогает кактус)
Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии5

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

Время на прочтение10 мин
Количество просмотров88K
Ксения Каланова, выпускница нашего курса по копирайтингу и маркетолог в MERA, написала колонку для блога Нетологии о том, как заставить текст звучать «по-английски», даже когда до уровня Advanced еще далеко.

Вся моя жизнь связана с английским языком: школьные олимпиады, подготовка к вступительным экзаменам в вуз, пять лет на переводческом факультете, лето в США и путешествия по миру. В студенческие годы я работала письменным переводчиком, а сразу после выпуска — устным.

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

Если бы не опыт работы переводчиком, меня такие просьбы поставили бы в ступор. Ведь мой текст увидят иностранцы — клиенты компании, руководители!



В этой статье я поделюсь секретами, как заставить текст звучать «по-английски», если вы не носитель языка. Для этого расскажу о 5 основных ошибках, которые мешают написать нормальный англоязычный текст.
Читать дальше →
Всего голосов 115: ↑107 и ↓8+99
Комментарии63

Информация

В рейтинге
Не участвует
Откуда
Madrid, Madrid, Испания
Дата рождения
Зарегистрирован
Активность