Обновить
215.1

Алгоритмы *

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

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

Знакомство с трансформерами. Часть 3

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

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

Читать далее

Легковесная криптография: близится финал, осталось 10 кандидатов. Шифры АНБ вне конкурса

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

Легковесная криптография — искусство компромисса. Как в анекдоте, где из трёх вариантов нужно выбрать любые два

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

Закат эпохи алгоритма MD5?

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

Почему алгоритм хеширования MD5 постепенно выходит из использования? Разберёмся в его работе и поймём, что же нужно солить.

Читать про MD5

Как работают коды Spotify — часть 2

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

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

Спец-интервью для Хабра: Грант Сандерсон

Время на прочтение15 мин
Количество просмотров10K
В прошлом месяце я писал новость о том, что Грант Сандерсон, создатель одного из самых популярных YouTube каналов о высшей математике, 3blue1brown согласился ответить на вопросы Хабровчан.

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

Поехали!
Читать дальше →

Рождение Albumentations

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

В этом посте я расскажу историю появления Open Source библиотеки Albumentations как я ее запомнил. Я не буду углубляться в технические детали. Основная задача текста - логирование, то есть надо написать историю, которую мне будет интересно прочитать через 20 лет.

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

Читать далее

Протокол безопасности транспортного уровня (TLS), версия 1.2 (RFC 5246) (Часть 3.1)

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

В статье приводится продолжение перевода на русский язык стандарта IETF - RFC 5246, описывающего работу протокола безопасности транспортного уровня TLS версии 1.2. Данная часть перевода охватывает первую половину описания работы протокола рукопожатия TLS 1.2.

Читать далее

Как работают коды Spotify?

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

Коды Spotify подобны QR-кодам. Их можно генерировать для того, чтобы делиться песнями, исполнителями, плейлистами и пользователями. Я решил разобраться в принципе их действия, в результате чего проделал извилистый путь по истории штрихкодов, патентам, сниффингу пакетов, коррекции ошибок и кодам Грея.
Читать дальше →

Криптография и генерация больших однозначно простых чисел — критерий Поклингтона

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

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

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

Читать далее

Как нейронные сети заменяют рендеринг

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

​Нейронные сети уже везде. И фильтры в фотошопе, и подделка лиц в видео. Но многое пока ещё невозможно. Магические слова "сделай мне видео по моей любимой книжке" пока не работают. Хоть потихоньку мы и движемся к этому. В этой статье я попробую рассказать что сейчас делается в этом направлении и где проходит современный технический прогресс.

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

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

Читать далее

Градиентный бустинг с CATBOOST

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

CatBoost – библиотека, которая была разработана Яндексом в 2017 году, представляет разновидность семейства алгоритмов Boosting и является усовершенствованной реализацией Gradient Boosting Decision Trees (GBDT). CatBoost имеет поддержку категориальных переменных и обеспечивает высокую точность. Стоит сказать, что CatBoost решает проблему смещения градиента (Gradient Bias) и смещения предсказания (Prediction Shift), это позволяет уменьшить вероятность переобучения и повысить точность алгоритма.

Загружаем набор данных...

Знакомство с трансформерами. Часть 2

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

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

Читать далее

Как мы искали оранжевый спасательный плот c помощью черно-белой камеры

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

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

Читать далее

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

Детерминированный факторный анализ

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

Детерминированный факторный анализ - это метод исследования влияния факторов на результативный показатель.

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

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

Читать далее

Как создавать в играх бесконечные миры при помощи процедурной генерации

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

Привет, Хабр! Обратите внимание, Распродажа «Чёрная Пятница» от издательства «Питер» скоро закончится.

Поговорим о том, как в известных играх, например, Minecraft и Terraria, из ничего генерируются бесконечные и разнообразные миры. Пост снабжен подробными примерами кода.  

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

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

Читать далее

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

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

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

Читать далее

Фальсифицируем выборы в Государственную Думу 2021 года, а потом отменяем фальсификации с помощью машинного обучения

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

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

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

Читать далее

Собеседования в Яндекс: взгляд бэкендера

Время на прочтение12 мин
Количество просмотров54K
Меня зовут Максим Бабенко, и, может быть, вы знаете меня как преподавателя ШАДа (или как автора рассказа про технологию YT на Хабре).

Мне кажется, почти каждый читатель Хабра либо знаком с теми, кто побывал на собеседовании в Яндекс, либо сам его проходил. Несмотря на это, процесс интервью не всегда очевиден для людей извне, по-прежнему вызывает множество вопросов и окружён мифами. Некоторые из них близки к правде, другие — наоборот.

В Яндексе я работаю уже больше 12 лет и повидал все наши изменения процесса собеседования. Сегодня я расскажу о наших интервью, попробую разобрать самые популярные мифы и объяснить, чем они обусловлены.
Читать дальше →

Что такое алгоритм… Часть 10π «Философия»

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

А давайте закончим с постановкой вопросов. Поломаем наш странный квест, формируемый лабиринтом уже вышедших статей этой серии. Теперь время статьи с ответом. Да, это немного вызов себе. Но это необходимо. Пора оставить вопросительные знаки и сомнения. Здесь место только точкам, а используемые многоточия лишь способ остаться в рамках запланированного объема.


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


Да, Философский камень найден!


И им оказался Алгоритм.


Title


Далее много перегруженных предложений и несколько рисованных иллюстраций.

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

Генерация текстуры с предписанными параметрами

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

Генерация текстуры с предписанными параметрами

Описание проблемы

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

Все случайные величины z поля имеют одно и то же распределение.

Ковариация между F(x0,y0) и F(x1,y1) зависит только от вектора, соединяющего точки ( x0,y0) и (x1,y1) . (стационарность)

Важность выполнения указанного свойства случайного поля вытекает из следующей гипотезы.

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

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

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

Читать далее

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