Статья дополнена и обновлена 23.07.2024
Декодирование Витерби с TensorFlow
Алгоритм был предложен Эндрю Витерби в 1967 году для декодирования сигналов с кодировкой, используемой в системах связи.
Алгоритм Витерби предназначен для поиска наиболее вероятной последовательности скрытых состояний в моделях с наблюдаемыми переменными, таких как скрытые марковские модели. Основное применение заключается в декодировании, где нужно определить скрытую последовательность состояний, вызвавших наблюдаемую последовательность событий.
Библиотека nalgebra в Rust
Линейная алгебра сейчас применяется практические везде. В связс с этим сегодня рассмотрим одну из библиотек для Rust — nalgebra.
Основная цель nalgebra — предоставить инструмент для работы с линейной алгеброй.
Обнаружение объектов на изображении с помощью моделей YOLOv5 и YOLOv8
Обнаружение объектов является достаточно популярной задачей компьютерного зрения, которая включает в себя идентификацию и обнаружение объектов на изображениях или видео. Данная задача является частью многих приложений, например, таких как беспилотные автомобили, робототехника, видеонаблюдение и т. д. За прошедшие годы разработано множество алгоритмов и методов для поиска объектов на изображениях и их положениях. Наилучшее качество выполнения таких задач достигается при использовании сверточных нейронных сетей.
Одной из самых популярных архитектур нейронных сетей для таких задач, является YOLO (you only look once), созданная в 2015 году. С тех пор появилось довольно много версий данных алгоритмов. Последние выпуски сети предназначены для таких задач как распознавание, обнаружение и сегментация изображений.
Основные алгоритмы многоруких бандитов в рекомендательных системах
Рекомендательные системы становятся все более сложными и точными, а методы их реализации разнообразнее. Один из хороших подходов в этой области — это алгоритмы, основанные на проблеме многоруких бандитов. Эти алгоритмы позволяют анализировать предпочтения юзеров и адаптироваться к изменяющимся условиям.
Проблема многоруких бандитов представляет собой рамки принятия решений в условиях неопределенности. Основная задача состоит в том, чтобы выбрать руку или действие, которое предоставит наибольшую награду, при минимальных потерях в процессе исследования разных вариантов.
Учим нейронную сеть генерировать текст
На волне популярности различных нейросетевых моделей, позволяющих генерировать связный текст, отвечающих на вопросы и позволяющих вести беседы, хотелось бы рассмотреть вопрос о том, а что вообще происходит внутри таких сетей.
Например, мы хотим научить нейронную сеть отличать кошек от собак или может яблоко от апельсина. Тогда мы просто говорим ей, что есть что, и на основе представленных данных, такая нейронная сеть особенным образом находит закономерности и строит самое обычное уравнение, которое в зависимости от подаваемого ей набора данных, пытается классифицировать изображение. Если мы хотим научить сеть предсказывать какие-то значения (погода, курс валют, отток клиентов банка), то мы понимаем, что ей надо предоставить выборку прошлых лет на основе которой она сможет найти закономерности, также сформировать уравнение и спрогнозировать результат.
Масштабирование глубокого обучения с помощью Horovod и Kubernetes
Horovod — это фреймворк для распределенного глубокого обучения, изначально разработанный в Uber. Он позволяет масштабировать обучение моделей на сотни и тысячи GPU, сокращая время тренировки с недель до часов. Horovod поддерживает такие фреймворки, как TensorFlow, Keras, PyTorch и Apache MXNet, и легко интегрируется с существующими кодовыми базами, требуя минимум изменений.
В статье как раз и пойдет речь о том, как масштабировать модельки с помощью Horovod и Kubernetes.
Расширяем возможности Keras с помощью кастомных слоев
Keras предоставляет мощные инструменты для создания сложных нейронных сетей. Однако иногда стандартного набора слоев недостаточно для решения некоторых задач. В таких случаях на помощь приходят кастомные слои.
Кастомные слои позволяют адаптировать архитектуру модели под особенности данных, улучшая тем самым производительность и точность моделек.
Кратко про библиотеку Rumale для машинного обучения на Ruby
Библиотека Rumale создана для того, чтобы сделать машинное обучение доступным и удобным для разрабов на Ruby. Она имеет большой выбор алгоритмов и инструментов, аналогичных тем, что можно найти в Scikit-learn для Python.
Краткий формат статьи выбран из-за сходств с Sckit learn.
Создание масштабируемых RL систем с Ape-X
Ape-X представляет собой подход к обучению с подкреплением, разработанный для использования в масштабируемых распределенных системах.
Основная идея Ape-X заключается в разделении ролей на акторов, которые взаимодействуют с окружением и собирают данные, и учеников, которые используют эти данные для обучения модели. Такое разделение позволяет ускорить процесс обучения и предотвратить заучивание субоптимальных политик.
Динамическое программирование на Python
Динамическое программирование полезно при решении оптимизационных задач и задач на вычисление, где присутствует большое количество повторяющихся подзадач.
По сравнению с другими алгоритмическими подходами, динамическое программирование позволяет ускорить процесс вычисления за счет сохранения результатов выполнения подзадач.
Нужна ли нам Lakehouse архитектура?
Впервые я услышал термин «Lakehouse» в 2019 году, когда пролистывал документ Dremio. Будучи по своей натуре консервативным человеком, я предположил, что это просто очередной маркетинговый термин. Но пять лет спустя, кажется, уже все говорят о Lakehouse; все крупные облачные хранилища данных теперь поддерживают чтение форматов Hudi, Iceberge или Delta Lake непосредственно в хранилище объектов, и даже BigQuery имеет специальный механизм запросов для этой задачи. На этом инновации не заканчиваются: Apache XTable (ранее OneTable) предоставляет абстракции и инструменты для трансляции метаданных формата таблиц Lakehouse. Недавно компания Confluent объявила о выпуске TableFlow, которая передает данные из Apache Kafka непосредственно в озеро данных, хранилище или аналитический движок в виде таблиц Apache Iceberg. Это заставило меня пересмотреть свои прежние предположения: так был ли Lakehouse просто маркетинговым термином?
Кратко про Seq2Seq-модели
Seq2Seq модели — это архитектуры ML, предназначенные для задач, связанных с последовательными данными, типо машинного перевода, суммирования текста, создания описаний к пикчам и прочие задачи, где требуется преобразование одной последовательности в другую.
В этой статье в общих деталях рассмотрим то, как реализуются Seq2Seq модели.
Как VWE помогает снизить дисперсию и повысить точность данных
В этой статье поговорим о методе Variance weighted estimator (VWE), который помогает снизить дисперсию
Когда мы работаем с данными, одна из основных целей — получить как можно более точные оценки. Высокая дисперсия, или разброс данных, может частенько искажает результаты анализа. Например, в случая A/B тестов, если дисперсия слишком велика, то даже при наличии реальных различий между группами, статистическая значимость может быть под вопросом, и имеются некоторые риски упустить важные инсайты.
Алгоритм Backpropagation на Python
Алгоритм backpropagation, или обратное распространение ошибки, является некой базой для тренировки многослойных перцептронов и других типов искусственных нейронных сетей. Этот алгоритм впервые был предложен Полем Вербосом в 1974 году, а позже популяризирован Дэвидом Румельхартом, Джеффри Хинтоном и Рональдом Уильямсом в 1986 году.
В этой статье реализуем алгоритм на Питоне.
Основные алгоритмы многоруких бандитов в рекомендательных системах
Рекомендательные системы становятся все более сложными и точными, а методы их реализации разнообразнее. Один из хороших подходов в этой области — это алгоритмы, основанные на проблеме многоруких бандитов. Эти алгоритмы позволяют анализировать предпочтения юзеров и адаптироваться к изменяющимся условиям.
Проблема многоруких бандитов представляет собой рамки принятия решений в условиях неопределенности. Основная задача состоит в том, чтобы выбрать руку или действие, которое предоставит наибольшую награду, при минимальных потерях в процессе исследования разных вариантов.