Обновить
195.07

Алгоритмы *

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

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

Игра в танграм и её алгоритмический потенциал

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

Некоторое время назад я задумывался о том, возможно ли мышление без языка, только на уровне визуальных образов. В отличие от естественного языка, пиктографическая или геометрическая знаковая система в гораздо меньшей степени подвержена полисемии и ошибкам, связанным с неверной интерпретацией последовательности или контекста. Может ли быть, что визуальный язык окажется для некоторых машин/роботов более понятным, чем лингвистический? Размышляя об этом, я нашёл на Хабре статью уважаемого @FirstJohn в блоге компании FirstVDS «Семь дощечек мастерства на службе ML» от февраля 2023 года, рассказывающую об алгоритмическом применении танграма. Ниже я подробнее расскажу об этой игре, а также о том, как её сегодня пытаются применять в распознавании образов и при решении других задач, связанных с комбинаторикой. 

Читать далее

Volatile, Lock-free, Immutable, Atomic в Java. Как понять и начать использовать

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

Привет, меня зовут Денис Агапитов, я руководитель группы Platform Core компании Bercut.

Сегодня хочу поговорить об одном из lock-free алгоритмов в Java. Разберём как с ним связано ключевое слово volatile и паттерн immutable.

Читать далее

Как вспомнить чудное мгновение, или возможности стандартных журналов SAP NetWeaver (Анне К* в стиле ERP)

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

В данной статье посмотрим некоторые часто встречающиеся приёмы, а также посмотрим наличие к ним стандартной документации (справка тут Auding and Logging). В данной статье будут рассмотрены прежде всего стандартные инструменты.

о логах в SAP NetWeaver

ML-алгоритмы против хакеров: как поведенческая аналитика меняет правила игры в кибербезопасности

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

Здравствуйте, друзья! Меня зовут Алексей Потапов, и я представляю экспертный центр безопасности Positive Technologies. Ранее мы уже знакомили вас с ключевыми элементами нашего подхода к обнаружению атак на примере технологий в SIEM: механизме построения цепочек запускаемых процессов на основе нормализованных событий, автоматическом вайтлистинге и машинном обучении для выявления нестандартного поведения пользователей и процессов в инфраструктуре. Тему ML было бы невозможно раскрыть в одном посте, поэтому предлагаю углубиться в более технические детали.

Мы уже рассказывали про модуль Behavioral Anomaly Detection (BAD). Он работает как система second opinion — собирает данные о событиях и пользователях, присваивает им определенный уровень оценки риска (risk score) и выдает альтернативное мнение, основываясь на своих алгоритмах. Фишка BAD в том, что он снижает когнитивную нагрузку аналитика системы SIEM, позволяя эффективнее принимать решение по инциденту информационной безопасности.

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

Подробности

Разделяй и запускай: делим тестовый стенд между департаментами

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

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

В настоящей статье делюсь опытом разработки и внедрения в процессы компании оптимизационного решения на базе математического программирования. Материал расширил исследовательскими элементами и локальным мини benchmark'ом.

Читать далее

Учимся летать: симуляция эволюции на Rust. 4/5

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



Это предпоследняя часть серии статей по разработке симуляции эволюции с помощью нейронной сети и генетического алгоритма.






В сегодняшнем выпуске:


Сексуальные многоугольники





Сертифицированные ISO диаграммы ASCII


------------
| \...%....|
|   \......|
|    @>....|
|      \...|
|        \.|
------------

Клевые числа




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

Состязательные атаки на промышленный ИИ и способы защиты от них

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

Привет, Хабр! Меня зовут Александр Коваленко, я младший научный сотрудник группы «ИИ в промышленности» в AIRI. В область наших интересов входит применение систем искусственного интеллекта в процессах различных предприятий. И, как и многие аспекты промышленной деятельности, промышленный ИИ может быть атакован злоумышленниками.  

Эта статья будет посвящена влиянию состязательных атак на системы диагностики неисправностей. Искусственный интеллект в нашем случае представлен классификаторами на основе нейронных сетей, а в качестве данных выступают сигналы с датчиков, образующих многомерные временные ряды. Я постараюсь объяснить, зачем вообще все это нужно, приведу обзор известных на сегодня методов состязательных атак и способов защиты от них, а также кратко расскажу про наши успехи, представленные в недавно опубликованной с коллегами из ИСП РАН статье Adversarial Attacks and Defenses in Fault Detection and Diagnosis: A Comprehensive Benchmark on the Tennessee Eastman Process.  

Приятного чтения!

Читать далее

Апдейтить или нет: нужно ли брать новую ML-модель?

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

Бывала у вас такая ситуация. Выходит новая нейронная сеть и все руководство начинает требовать внедрить её? Половина коллег восторженно рассказывает о новом слое который позволил повысить точность сети? YoloV(N+1)? LLAMA100?

Читать далее

Как американская коррупция превратила физика-ядерщика в быдло-кодера

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

Это история из цикла «как войти в IT», написанная старпером, ветераном броуновского движения, который помнит динозавров. Поэтому его опыт вхождения в ИТ никому не пригодится, но представляет интерес с точки зрения истории.  

Также поделюсь своим мыслями об интерфейсе инженерного ПО. Участвуя в разработках различного ПО, предназначенного для ускорения разработки сложных систем, периодически приходится выслушивать жалобы от новых пользователей на «кривой и устаревший» интерфейс ПО. Однако инженеры, погруженные в проблемы проектирования реальных железок, вообще не задают нам таких вопросов, либо потому, что уже искривили свои руки о кривой интерфейс, либо им это вообще неважно. Более того, есть два примера, когда реальные высокопрофессиональные инженеры в своей области предъявляли претензии обратного свойства, и первая версия кривая версия GUI была удобнее, а вот улучшения делали какие-то полупокеры. 

К написанию данного текста меня подтолкнула беседа с одним из крутых разрабов из «жирной» конторы, с которым мы пересеклись на яхте в Средиземном море. Узнав, что я тоже из Бауманки, и у меня свой бизнес, он заинтересовался и выспрашивал. Как я смог начать бизнес на софте, почему не пошел в большую контору, типа Yandex, Сбер и прочие. У него тоже знакомство с софтом началось как создание собственной разработки по анализу результатов металлургических испытаний в лаборатории, но закончилось работой прогером по найму. Попивая вино на яхте где-то между Турцией и Грецией в 2023 году, он предположил, что, возможно, если бы он продолжал писать софт для металлургических исследований, то, наверное, сейчас мог плавать на своей яхте, а не арендованной, и не около Турции, а на Карибах (но это не точно). А поскольку фарш невозможно провернуть назад, я решил описать свою историю успеха, так как она забавна и поучительна.

Читать далее

Об ускорении некоторых тестов на нормальность из библиотеки SciPy

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

Приветствую уважаемых читателей, случайно или нет наткнувшихся на эту статью. Адресована она всем тем, кто исследует распределение разнообразных эмпирических данных.
В моей публикации вас ждут: небольшой ликбез по теории вероятностей, развивающий её интуитивное и практическое понимание; детективная история о том, как решение дифференциального уравнения привело нас к двум важнейшим статистическим характеристикам выборочных последовательностей; ревизионизм в области проверки распределений на соответствие гауссовскому и объяснение пресловутого p-value с нуля за 5 минуты.

Читать далее

Как анализируют криптографические стандарты и зачем постквантовые алгоритмы без квантового компьютера?

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

Об этом и о других перспективных направлениях криптографии эксперты компании «Криптонит» рассказали на прошедшей в июне конференции CTCrypt 2024.

Читать далее

Он победил LLM RAG: реализуем BM25+ с самых азов

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

Привет, меня зовут Борис. Я автор телеграм канала Борис опять. Периодически мне на глаза попадается что-то интересное и я глубоко в этом закапываюсь. В данном случае это алгоритм поиска BM25+, который победил продвинутые методы векторного поиска на LLM.

Разберемся, что это за зверь и почему он так хорошо работает. В этой статье мы реализуем его на Python с нуля. Начнем с самого простого поиска, перейдем к TF-IDF, а затем выведем из него BM25+.

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

Код доступен в Google Collab.

Читать далее

Черепаха в лабиринте: Медлительное путешествие к свободе

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

Задача

Дан связный прямоугольный лабиринт n\times m клеток, одна из которых обозначена как выход. В произвольной клетке появляется черепаха, и она может перемещаться в четырех направлениях (вверх, вправо, вниз, влево).

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

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

Расположение стенок лабиринта и клетки "выход" известны заранее, а вот начальное расположение черепахи неизвестно.

Помогите черепахе выбраться из лабиринта. Напишите конечную последовательность команд (up, right, down, left), которая гарантирует ей выход независимо от ее начального местонахождения.

Читать далее

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

SARIMAX vs Экспоненциальное сглаживание: Когда простота побеждает

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

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

Читать далее

Как я решила задачу нахождения t-критерия Стьюдента как функции от доверительного интервала и числа степеней свободы

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

статья представляет подробное описание реализации функции Стьюдента (Student's t-distribution) в языке программирования Scala с использованием алгоритма ACM395 и ACM209. Функция Стьюдента является важным инструментом в статистике для вычисления критических значений t-статистики и вероятностей в t-распределении.

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

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

Читать далее

Учимся летать: симуляция эволюции на Rust. 3/5

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



Это третья часть серии статей по разработке симуляции эволюции с помощью нейронной сети и генетического алгоритма.






В предыдущей статье мы реализовали простую FFNN (feedforward neural network — нейронная сеть прямого распространения), которая может передавать числа через рандомизированные слои — это первый шаг на пути создания мозга.


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


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

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

Гибкая обработка арифметических вырожений с AST на Scala

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

Обработка арифметических выражений с AST в Scala

В данной статье мы глубоко исследуем применение абстрактного синтаксического дерева (AST) для организации и обработки арифметических выражений в языке программирования Scala. AST является мощным инструментом, который позволяет структурировать и анализировать синтаксическую структуру выражений, играя важную роль в компиляторах, интерпретаторах и других инструментах обработки кода.

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

Читать далее

Глубокое обучение для деформируемой регистрации медицинских изображений

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

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

Читать далее

Кот Шредингера Х ни жив, ни мертв

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

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

Читать далее

Специалисты по информатике изобрели новый эффективный способ подсчёта уникальных элементов

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

Представьте, что вас отправили в девственный тропический лес, чтобы провести перепись диких животных. Каждый раз, когда вы видите животное, вы делаете снимок. Ваша цифровая камера будет фиксировать общее количество снимков, но вас интересует только количество уникальных животных — всех тех, которых вы ещё не посчитали. Как лучше всего получить это число? «Очевидное решение — запомнить всех животных, которых вы уже видели, и сравнивать каждое новое животное с этим списком», — говорит Лэнс Фортноу, специалист по информатике из Иллинойского технологического института. Но есть и более умные способы, добавил он, потому что если у вас тысячи записей, то очевидный подход далеко не так прост.

Всё становится ещё хуже. Что, если вы — Facebook, и вам нужно подсчитать количество отдельных пользователей, которые заходят на сайт каждый день, даже если некоторые из них заходят с нескольких устройств и в разное время? Теперь мы сравниваем каждый новый вход со списком, который может исчисляться миллиардами.

Читать далее

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