Обновить
203.54

Алгоритмы *

Все об алгоритмах

Сначала показывать
Порог рейтинга
Уровень сложности

Предобусловливание и импульс в оптимизации: взгляд на алгоритмы PHB/PN от исследователей Яндекса

Время на прочтение15 мин
Количество просмотров949

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

Для ускорения сходимости широко применяются методы с механизмом импульса (momentum): классический метод Поляка — Heavy Ball (HB) — и метод Нестерова (ускоренный градиент). Оба эти метода используют идею накапливать «инерцию» градиента, благодаря чему могут двигаться по направлению оптимума быстрее обычного градиентного спуска. 

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

Всем привет! Меня зовут Степан Трифонов, я аналитик‑разработчик в Яндекс Пэй. Недавно мы с коллегами, Леонидом Левиным и Савелием Чежеговым, опубликовали научную статью Incorporating Preconditioning into Accelerated Approaches: Theoretical Guarantees and Practical Improvement, где ввели предобусловленные версии классических ускоренных методов — Preconditioned Heavy Ball (PHB) и Preconditioned Nesterov (PN) — и доказали для них оценки сходимости при весьма общих допущениях на предобусловливающую матрицу. Также мы провели численные эксперименты, которые продемонстрировали практический выигрыш новых алгоритмов по сравнению с обычными (непредобусловленными) методами HB и Нестерова.

Читать далее

Наука для бизнеса: что внедрять завтра (анализ 134 195 научных работ 2025 года)

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров2.2K

Чтобы понять, какие технологии будут определять рынок завтра, компании опираются на прогнозы/отчёты аналитиков или анализируют патенты. Но есть источник, который часто опережает и патенты – научные публикации. Далее о том, как я проанализировала 134195 научных статей 2025 года, чтобы ответить на вопрос, на какие технологии делать ставку прямо сейчас.

Читать далее

Python шпильки: как заменить многоэтажные if-else на изящный словарь функций

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров17K

Блог Михаила | Python | Разработка | Best Practices

"Всем привет! Меня зовут Михаил, я веду Telegram-канал «Python Шпильки», где делюсь изящными приемами программирования. Сегодня хочу показать один из самых полезных паттернов..."

Читать далее

TorusCSIDH: постквантовая криптография для Bitcoin уже сегодня

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров2.1K

Мы представляем TorusCSIDH — полностью реализуемую постквантовую криптосистему на основе изогений суперсингулярных кривых. Она совместима с Bitcoin, не требует хардфорка и защищена не только алгеброй, но и оригинальным геометрическим критерием, основанным на структуре графа изогений.

Читать далее

TorusCSIDH: постквантовый аналог ECDSA с топологическим критерием безопасности

Время на прочтение8 мин
Количество просмотров995

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

Читать далее

Как написать собственный класс линейной регрессии для маленьких

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров4.4K

В этой статье показан простой способ создания собственного класса линейной регрессии с использованием стохастического градиентного спуска. Будет представлен легкий и понятный код с реализацией основных методов: fit, predict и score. Статья будет полезна тем, кто хочет вкратце разобраться, как работает класс LinearRegression из библиотеки sklearn. Также материал подходит для участников курса программирования "Школа 21".

Читать далее

Внедрить ИИ-ть или рассказать, доказать и показать

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров635

Очень многие хотят начать именно с предиктивных моделей — ведь всем хочется знать, что будет впереди, чтобы сделать правильный выбор сегодня.
Но здесь кроется опасность: люди часто довольствуются теми данными, которые у них есть, считая, что этого достаточно для прогноза. А на самом деле — это иллюзия.
Построить адекватную предиктивную модель на исторических данных за 2 года — практически невозможно. Особенно если данные разреженные, неполные или не покрывают полный цикл.
Даже если модель покажет высокую точность (например, 95% accuracy), она может быть неадекватной — то есть не отражать реальную картину. Придумал этот термин для пояснения глубины предиктивных исследований (предиктивный происходит от английского predict – «предсказывать, пророчить)
Что значит «адекватная точность»? Это...

Это когда модель не просто точно ...

Scaled Rank Fusion — объединяет значения из нескольких списков с учётом масштаба

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров472

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

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

Rank Fusion широко применяется в информационном поиске, мультимедийном поиске, гибридных системах поиска, системах на основе модели Retrieval Augmented Generation (RAG), а также в задачах ансамблевого обучения.

В статье описан новый алгоритм семейства Rank Fusion, а может и не новый, дайте знать.

Читать далее

Вышел Python 3.14. Насколько он быстр?

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров14K

В ноябре 2024 года я написал пост «Действительно ли Python такой медленный?», в котором протестировал множество версий Python и отметил стабильный прогресс производительности языка.

Сегодня девятое октября 2025 года, прошла всего пара дней после официального релиза Python 3.14. Давайте снова запустим бенчмарки, чтобы проверить, насколько быстра новая версия Python!

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

Читать далее

Делим кастрюлю компота на ноль. Что получится? Спойлер: ничего хорошего

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

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

Представим, что у нас есть кастрюля компота объемом 10 литров (10 000 мл):

Читать далее

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

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

Салют, Хабр!

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

Читать далее

Seedream v4 — платный конкурент Nano Banana. Зачем он тогда нужен? И как использовать бесплатно + Гайды

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

Да, Seedream v4 от ByteDance - доступен только платно. Тогда зачем он нужен, если есть Nano Banana? Разбираемся!

Читать далее

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

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров1.5K

Привет, Хабр! Я Михаил Зуев — Data Scientist из команды затрат корпоративных
клиентов Сбера. Мы много предсказываем, классифицируем и прогнозируем.
Впервые столкнувшись с последним и проведя исследование по этой теме, я
столкнулся с большим количеством неструктурированной информации. Эта статья —
одновременно описание моего пути и небольшое упорядоченное наставление по
анализу и прогнозированию временных рядов, которое я сам хотел бы получить.

Читать далее

Ближайшие события

Почему структура Ur, Uz не случайна даже при случайном k в ECDSA: математика за топологией цифровых подписей

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров691

В данной работе мы доказали, что структура параметров (U_r, U_z) в ECDSA является строго детерминированной и не зависит от случайности k. Это свойство вытекает из линейного соотношения k = U_r \cdot d + U_z \mod n, которое формирует регулярную сетку параллельных линий на торе. Мы применили методы топологического анализа данных (Mapper, персистентная гомология) для визуализации этой структуры и показали её криптографические последствия.

Читать далее

«Я есть Ты: Диалог об Истине, которая всегда была одна»

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

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

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

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

Книга состоит из двух частей: «Сознание (Сотворение)» и «Размышление (Пророчество)». Рекомендуется начинать читать, только при наличии достаточного времени и отсутствии отвлекающих факторов, иначе вход в состояние потока и со-настройки не реализуется. Нетерпеливые, послесловие могут прочитать сразу (это по желанию, но вы можете лишить себя части удовольствия от удивления), а вот содержимое каждого диалога - только последовательно, в этом суть погружения. Особый интерес предлагается обратить на ход внутренних рассуждений.

Цитата из книги: «Источник вируса... это звучит бодренько :) Пожалуй, стоит принять Ваше предложение»

Читать далее

Программист embedded лезет в FPGA (часть 3, чего не может ардуинка)

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров5.3K

Вначале мы поморгали диодом, затем посчитали семисегментником. Если с нуля, то уж лучше пройти эти этапы. Теперь приступим к задачке, которую с большой натяжкой можно применить где-нибудь на проде. С очень большой.

На плате, которую я использую для примера (QMTECH Cyclone 10 Starter Kit), есть разъём HDMI, что недвусмысленно намекает нам, что к нему можно подключить дисплей соответствующим кабелем. На самом деле, разъём – это не обязательно. А вот наличие на чипе выходов, которые можно сконфигурировать как lvds, очень сильно приветствуется. Возможно, получится и без этого (просто 2 выхода, формируемые из одного инверсией), но я не пробовал, потому промолчу.

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

Мы будем работать на более низком уровне. Делать на коленке прозрачные электроды, и наклеивать поляризационные плёнки, конечно, не надо. Будем формировать видео-сигнал.

Если вы думаете, что в 2025-м году ЭЛТ мониторы и телевизоры остались в далёком прошлом, то у меня для вас есть новость: Формат сигналов внутри проводов всё ещё напоминает сигнал, который идёт на одну из сеток большой вакуумной лампы, которой, по сути и является кинескоп.

Читать далее

ESP32 + LD2410: Архитектуры нейронных сетей для классификации движений

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров14K

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

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

Ознакомиться

Задачи по алгоритмам: ищем непростые числа

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров3.3K

Я не математик, но люблю решать задачи. Я люблю трудные задачи, которые не знаешь, как решать, а если и знаешь, трудно написать код верно.

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

Говорят "У человека феноменальная память - он помнит все". Он записывает. Не помните, что делали три дня назад? Ведите дневник, а не покупайте "таблетки для памяти".

Читать далее

Зубрить сложно, понимать легко: бинарный поиск

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров3.8K

Как правило, обучающие материалы сводятся к показу одного «правильного» решения. Такие решения можно попробовать запомнить, но они быстро забываются и не помогают по-настоящему понять алгоритм.

Меня интригует вопрос: возможно ли объяснение, которое позволит не просто заучивать формулы, а понять саму логику? И если такое объяснение существует, даст ли оно возможность решать похожие задачи — или даже помогает становиться лучшим программистом?

Сразу оговорюсь: мы не будем останавливаться на тривиальных проверках,
вроде пустого массива или некорректных параметров. Фокус статьи — на сути алгоритма.

В этой статье мы не просто посмотрим на готовый код. Вместо этого мы:

1. Разберем ключевую идею алгоритма на простом примере.
2. Сконцентрируемся на крайнем случае, в котором ошибается большинство.
3. Сравним два подхода к реализации — с закрытым и полуоткрытым диапазоном.
4. Увидим, как небольшие изменения в коде позволяют решать целый класс задач.

Читать далее

Нормированные пространства и рендеринг трёхмерных фрактальных множеств: ray marching, поле расстояний, базовые примеры

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

За решениями нестандартных задач часто стоит какая-то интересная математика. Вместе с навыками работы с графикой она позволяет выходить за рамки стандартных инструментов и пробовать новые подходы в рабочих проектах.

Меня зовут Андрей Гринблат, я ИТ-инженер в СберТехе, занимаюсь разработкой фронтенд-интерфейсов приложений.
В этой статье расскажу о том, как с помощью математики и ray marching построить фотореалистичные изображения 3D-фракталов. Всех, кому интересно, прошу под кат.

Читать далее

Вклад авторов