Обновить
0
@YuriyYurievichread⁠-⁠only

Пользователь

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

Введение в математическую оптимизацию на примере компании Recruit. Часть 1

Время на прочтение8 мин
Охват и читатели11K
Что такое «математическая оптимизация» — четыре области применения, шаги по её применению к реальным проблемам, чем она отличается от машинного обучения и как её использовать иначе

Прим. переводчика: Ранее на хабре не было переводов статей с японского языка. Мы решили исправить это досадное упущение и начать переводить их ещё и с этого языка. Данный материал будет пробой пера.
Эта серия статей о том, что такое математическая оптимизация и как она может быть применена в бизнесе через представление примеров применения в компании Recruit. В первой статье представлен обзор математической оптимизации, четыре примера применения в Recruit, процедура применения к реальным случаям, отличия от машинного обучения и как использовать её иначе.

Другие части доступны здесь:


❖ автор Рёсуке Судо
Читать дальше →

Бутстреп и А/Б тестирование

Время на прочтение10 мин
Охват и читатели107K

Привет, Хабр! В этой статье разберёмся, как с помощью бутстрепа оценивать стандартное отклонение, строить доверительные интервалы и проверять гипотезы. Узнаем, когда бутстреп незаменим, и в чём его недостатки. 

Читать далее

Алгебра текста без формул

Время на прочтение65 мин
Охват и читатели4.1K

Статья является рефератом Книги [1], основанной на представленных ранее публикациях [2], [3], [4] и [5].

Читать далее

Большая история аргументов функций в Python

Время на прочтение11 мин
Охват и читатели97K
Ну, на самом деле, история аргументов в Python не такая уж и большая.

Я всегда удивлялся тому, что для работы с аргументами Python-функций достаточно лишь разобраться с *args и **kwargs. И удивлялся я не зря. Как оказалось, аргументы — это далеко не так просто. В этом материале я хочу дать общий обзор всего того, что связано с аргументами функций в Python. Надеюсь, что в итоге у меня, и правда, получится показать общую картину работы с аргументами, и что эта статья не станет очередной публикацией, в которой читателю не удастся найти ничего нового. А теперь — к делу.



Большинству читателей этой статьи, полагаю, понятна сущность аргументов функций. Для начинающих поясню, что это — объекты, отправляемые функции инициатором её вызова. При передаче аргументов функции выполняется множество действий, зависящих от того, объекты какого типа отправляют функции (изменяемые или неизменяемые объекты). Инициатор вызова функции — это сущность, которая вызывает функцию и передаёт ей аргументы. Говоря о вызове функций, стоит поразмыслить над некоторыми вещами, которые мы сейчас обсудим.
Читать дальше →

Три подхода к ускорению обучения XGBoost-моделей

Время на прочтение9 мин
Охват и читатели23K

Фреймворк XGBoost (Extreme Gradient Boosting, экстремальный градиентный бустинг) — это эффективная опенсорсная реализация алгоритма градиентного бустинга. Этот фреймворк отличается высокой скоростью работы, а модели, построенные на его основе, обладают хорошей производительностью. Поэтому он пользуется популярностью при решении задач классификации и регрессии с использованием табличных наборов данных. Но процесс обучения XGBoost-моделей может занять много времени.

Читать далее

Парадоксальный рост популярности Python в научных вычислениях

Время на прочтение9 мин
Охват и читатели10K

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

Читать далее

Для чего нужно интервью по проектированию системы машинного обучения и как его провести

Время на прочтение5 мин
Охват и читатели3.7K

Предлагаем детальный гайд по подготовке к интервью по проектированию системы ML

Что означает дизайн системы ML?

Такие навыки как машинное обучение, презентации, кодирование, статистика, вероятность, тематические исследования и прочие необходимы для успешного проведения интервью по машинному обучению. И одном из главных интервью по ML является интервью по проектированию системы.

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

Важно в таком интервью – структурированный мыслительный процесс. Однако он требует подготовки. Заранее подготовленный гайд может очень пригодиться при ограниченном времени интервью. Гарантируем, что вы сконцентрируетесь на важном, не будете долго обсуждать одно или упускать важные темы.

Итак, гайд выглядит так:

Читать далее

Data-Science-процессы: Jupyter Notebook для продакшена

Время на прочтение9 мин
Охват и читатели9.2K

Jovian Blues by ShootingStarLogBook

Рефакторинг написанного в Notebook кода для запуска в продакшене — трудная и ресурсоемкая задача. Команда VK Cloud Solutions перевела материал о том, как с помощью MLOps-инструментов и приемов сократить время от исследования до запуска решения. Описанное в статье — результат структурированного опыта дата-сайентистов и ML-разработчиков из сотен компаний.
Читать дальше →

Как избежать «подводных камней» машинного обучения: руководство для академических исследователей

Время на прочтение47 мин
Охват и читатели25K

Этот лонг-рид является сильно переработанным и расширенным переводом статьи How to avoid machine learning pitfalls: a guide for academic researchers (Lones, 2021).

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

Читать далее

Python и теория множеств

Время на прочтение11 мин
Охват и читатели176K

Python и теория множеств


В Python есть очень полезный тип данных для работы с множествами – это set. Об этом типе данных, примерах использования, и небольшой выдержке из теории множеств пойдёт речь далее.


Читать дальше →

Python: коллекции, часть 1/4: классификация, общие подходы и методы, конвертация

Время на прочтение7 мин
Охват и читатели449K
Коллекция в Python — программный объект (переменная-контейнер), хранящая набор значений одного или различных типов, позволяющий обращаться к этим значениям, а также применять специальные функции и методы, зависящие от типа коллекции.

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

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

Для кого: для изучающих Python и уже имеющих начальное представление о коллекциях и работе с ними, желающих систематизировать и углубить свои знания, сложить их в целостную картину.

Будем рассматривать стандартные встроенные коллекционные типы данных в Python: список (list), кортеж (tuple), строку (string), множества (set, frozenset), словарь (dict). Коллекции из модуля collections рассматриваться не будут, хотя многое из статьи должно быть применимым и при работе с ними.

ОГЛАВЛЕНИЕ:


  1. Классификация коллекций;
  2. Общие подходы к работе с коллекциями;
  3. Общие методы для части коллекций;
  4. Конвертирование коллекций.
Читать дальше →

Почему я изменил своё мнение о слабой разметке для ML

Время на прочтение9 мин
Охват и читатели5.5K

Когда чуть больше года назад я впервые услышал о слабой разметке, то поначалу отнёсся к ней скептически. Суть слабой разметки (weak labelling) заключается в том, что можно заменить аннотированные вручную данные на данные, созданные по эвристическим правилам, написанным специалистами в соответствующей области. Мне это показалось совершенно нелогичным. Если можно создать очень хорошую систему на основе правил, то почему бы просто не использовать эту систему? А если правила недостаточно хороши, то разве не будет плохой и модель, обученная на шумных данных? Это казалось мне возвратом в мир конструирования признаков, которому должно было прийти на смену глубокое обучение.

Однако за последний год моё отношение полностью переменилось. Я поработал над множеством NLP-проектов, в которых было задействовано извлечение данных, и намного сильнее углубился в изучение литературы про обучение со слабым контролем. Также я пообщался с руководителями команд ML в таких компаниях, как Apple, где услышал истории о том, как целые системы заменяли за считанные недели — благодаря сочетанию слабого контроля и машинного обучения им удавалось создать обширные наборы данных для языков, ресурсов по которым было мало и которые раньше попросту не обслуживались!

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

Букварь материалиста

Время на прочтение10 мин
Охват и читатели20K

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

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

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

Мир вокруг нас порой

Зачем вам нужно использовать активное обучение при обучении нейронных сетей

Время на прочтение6 мин
Охват и читатели9.8K

Часто разметка данных оказывается самой серьёзной преградой для машинного обучения — сбор больших объёмов данных, их обработка и разметка для создания достаточно производительной модели могут занимать недели или даже месяцы. Активное обучение позволяет обучать модели машинного обучения на гораздо меньшем количестве размеченных данных. Лучшие компании в сфере ИИ, например, Tesla, уже используют активное обучение. Мы считаем, что и вам тоже оно необходимо.

В этом посте мы расскажем, что такое активное обучение, рассмотрим инструменты для его практического применения и продемонстрируем, как мы сами упрощаем внедрение активного обучения в процесс NLP.
Читать дальше →

Глобальная блокировка интерпретатора (GIL) и её воздействие на многопоточность в Python

Время на прочтение34 мин
Охват и читатели94K

Прим. Wunder Fund: в статье рассказано, зачем появилась и существует глобальная блокировка интерпретатора в Питоне, как она работает, и как она влияет на скорость работы Питона, а также о том, куда в будущем, вероятно, будет двигаться Питон. У нас в фонде почти всё, что не написано на плюсах — написано на Питоне, мы пристально следим за тем, куда движется язык, и если вы тоже — вы знаете, что делать )

Как вы, наверное, знаете, глобальная блокировка интерпретатора (GIL, Global Interpreter Lock) — это механизм, обеспечивающий, при использовании интерпретатора CPython, безопасную работу с потоками. Но из-за GIL в конкретный момент времени выполнять байт-код Python может лишь один поток операционной системы. В результате нельзя ускорить Python-код, интенсивно использующий ресурсы процессора, распределив вычислительную нагрузку по нескольким потокам. Негативное влияние GIL на производительность Python-программ, правда, на этом не заканчивается. Так, GIL создаёт дополнительную нагрузку на систему. Это замедляет многопоточные программы и, что выглядит достаточно неожиданно, может даже оказать влияние на потоки, производительность которых ограничена подсистемой ввода/вывода.

Здесь я опираюсь на особенности CPython 3.9. По мере развития CPython некоторые детали реализации GIL, определённо, изменятся. Материал опубликован 22 сентября 2021 года, после публикации в него внесено несколько дополнений.

Читать далее

Теории вероятностей: готовимся к собеседованию и разрешаем «парадоксы»

Время на прочтение17 мин
Охват и читатели131K

Каждый год я участвую примерно в сотне собеседований в образовательных проектах JetBrains: собеседую абитуриентов в Computer Science Center и корпоративную магистратуру ИТМО (кстати, набор на программу идёт прямо сейчас). Все собеседования устроены по одному шаблону: мы просим на месте порешать задачи и задаём базовые вопросы по дисциплинам, которые студенты изучали в университетах. Большинство вопросов, которые мы задаём, довольно простые — нужно дать определение некоторого понятия, сформулировать свойство или теорему. К сожалению, у значительной доли студентов все эти определения выветриваются сразу после экзаменов в университетах. Казалось бы, что тут удивительного? В современном мире любое определение можно за пару секунд нагуглить, если это нужно. Но невозможность восстановить базовое определение свидетельствует о непонимании сути предмета.

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

Подборка бесплатных курсов для тех, кто делает первые шаги в Data Science

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели99K

Курсы упорядочены по степени необходимости, начиная с базовых знаний, без которых будет тяжело даваться дальнейшее изучение (линейная алгебра, статистика, базовое знание python и т.д.), переходя к более сложным. Старался избавиться от избыточности, оставляя только самые ценные, на мой взгляд, курсы. Эти бесплатные курсы легко заменят вам платные.

Читать далее

Полезные материалы для разработчика

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

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

Выпускнику и преподавателю Computer Science Center, Равилю Галееву, пришла идея собрать такие инструменты и технологии в один курс и познакомить студентов с ними. За пример такого курса были взяты The Missing Semester of Your CS Education от MITSoftware Carpentry и cs50.

В этом посте мы собрали видеолекции курса «Практический минимум» и материалы к занятиям. Благодарим Равиля за подборку! 

Читать далее

Игры от Илона Маска для детей 8-14 лет (играем всем Хабром в комментах)

Время на прочтение4 мин
Охват и читатели16K
image

Илон Маск сделал школу Ad Astra «для своих», а недавно команда этой школы стартовала онлайн-школу за $7500 (занятия онлайн раз в неделю). Там я нашел несколько игр, которые показались мне очень интересными.

image

А давайте всем Хабром поиграем? Пишите свои ответы в опросах и комментах.

Подписывайтесь на канал @MetaLearning, где я делюсь своими самыми полезными находками про образование и роль ИТ/игр в образовании (а так же мыслями на эту тему Антона Макаренко, Сеймура Пейперта, Пола Грэма, Джозефа Ликлайдера, Алана Кея)

Игра 1: A4A


image

Вам предложены 101 произведение современного и авангардного искусства. Если бы вам пришлось собрать коллекцию, какие 15 произведений искусства вы бы выбрали?

Пожалуйста, ответьте на следующие вопросы:

1. Представьте список произведений искусства, которые вы бы включили в вашу коллекцию. В вашей коллекции должна быть по меньшей мере одна работа, принадлежащая к одной из следующих категорий: ОПЫТ, одна СКУЛЬПТУРА, ФЛАГ, один объект ЦИФРОВОГО ИСКУССТВА и один объект БОЛЬШОГО ФОРМАТА.

image

2. Объясните, почему были выбраны именно эти 15 произведений искусства.

3. Спроектируйте галерею или покажите, как вы будете выставлять это искусство для посетителей. Вы можете использовать цифровые инструменты (Minecraft, SketchUp, TinkerCad, Fusion 360 и т.д.) или создать модель и сфотографировать ее.

image

Смотрите все 101 произведения искусств тут.

Читать дальше →

Руководство для начинающих: создаем DevOps-пайплайн

Время на прочтение9 мин
Охват и читатели31K
Если вы новичок в DevOps, взгляните на эту инструкцию по созданию вашего первого конвейера из пяти этапов.

image


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

Мое путешествие по DevOps


Раньше я работал в облачной команде Citi Group, разрабатывая веб-приложение Infrastructure-as-a-Service (IaaS) для управления облачной инфраструктурой Citi, но меня всегда интересовало, как сделать процесс развития более эффективным и привнести позитивные культурные изменения в команду разработчиков. Ответ я нашел в книге, рекомендованной Грегом Лавендером (Greg Lavender), техническим директором Citi по облачной архитектуре и инфраструктуре. Книга называлась «Проект Феникс» (The Phoenix Project), и в ней объясняются принципы DevOps, при этом она читается как роман.

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

Amazon: 23 000 в день
Google: 5 500 в день
Netflix: 500 в день
Facebook: Раз в день
Twitter: 3 раза в неделю
Типичная компания: Раз в 9 месяцев

Как вообще возможны частоты Amazon, Google и Netflix? Все потому, что эти компании придумали, как сделать почти идеальный DevOps-конвейер.
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность

Специализация

ML разработчик