Как стать автором
Обновить
28
0.3

Making good things happen

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

Скрытые цепи Маркова, алгоритм Витерби

Время на прочтение5 мин
Количество просмотров59K
Нам нужно реализовать детектор лжи, который по подрагиванию рук человека, определяет, говорит он правду или нет. Допустим, когда человек лжет, руки трясутся чуть больше. Сигнал может быть таким:

Исходный сигнал

Интересный метод, описан в статье «A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition» L.R. Rabiner, которая вводит модель скрытой цепи Маркова и описывает три ценных алгоритма: The Forward-Backward Procedure, Viterbi Algorithm и Baum-Welch reestimation. Несмотря на то, что эти алгоритмы представляют интерес только в совокупности, для большего понимания описывать их лучше по отдельности.
Читать дальше →
Всего голосов 74: ↑73 и ↓1+72
Комментарии25

Индексный метод генерации конечных дискретных распределений

Время на прочтение2 мин
Количество просмотров4.4K
Иногда очень интересно провести имитацию броска кости. Для этого существует эффективный алгоритм, который позволяет сгенерировать значение выпавшее на верхней грани, используя псевдослучайное число alpha из равномерного распределения на [0,1]. А именно: image, где image — взятие целой части у аргумента.

Но предположим, что у нас «нечестная» кость и грани выпадают неравномерно. Пусть наша кость имеет K граней, и p_i вероятность выпадения грани image. При этом выполняется естественное ограничение image. Постараюсь ответить на вопрос: как смоделировать псевдослучайную последовательность с таким распределением?
Читать дальше →
Всего голосов 12: ↑9 и ↓3+6
Комментарии5

Создаем изометрические уровни игры с помощью Stable Diffusion

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

Всем привет. Сегодня я покажу вам, как можно создавать 2.5D уровни в изометрии с помощью быстрого прототипирования техникой grayboxing, и генеративного искусственного интеллекта, а именно Stable Diffusion. Практически весь процесс, описываемый в статье, довольно легко автоматизируется.

Если интересно, добро пожаловать под кат.

Читать далее
Всего голосов 67: ↑75.5 и ↓-8.5+84
Комментарии24

Существует ли частотная область в реальности?

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

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

Однако насколько материально частотное пространство? Дискретное преобразование Фурье (DFT) имеет ключевое значение в сферах связи и анализа сигналов, но не раскрывает ли оно более глубокие, скрытые аспекты реальности? Рассмотрим, к примеру, квадратные волны. Действительно ли они существуют, если преобразование Фурье разлагает их на ряд нечетных гармоник синусоид, которые, в свою очередь, эффективно предсказывают поведение электронных схем в реальном мире?

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

Читать далее
Всего голосов 23: ↑25 и ↓-2+27
Комментарии32

6 нейросетей для создания презентаций: тестируем и проверяем

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

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

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

Главный вопрос к этим сервисам - смогут ли они в текущей форме полностью заменить человека в создании качественного презентационного контента? Или они пока что больше напоминают ассистента, которому нужен присмотр и доработка результатов ручным трудом?

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

Читать далее
Всего голосов 14: ↑13 и ↓1+12
Комментарии2

Как обнаружить галлюцинации в LLM?

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

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

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

Читать далее
Всего голосов 10: ↑9 и ↓1+8
Комментарии6

Анализ новостей с помощью сегментации и кластеризации временных рядов

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

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

Шаг 1. Сбор данных

В качестве источника данных я взяла информационно-новостной ресурс Лента.ру, так как с него легко парсить данные, новости разнообразны и пополняются в большом объеме ежедневно. Для теста я спарсила новости за последний год (март 2023 – март 2024) с помощью питоновских BeautifulSoup и requests.

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

Читать далее
Всего голосов 24: ↑22 и ↓2+20
Комментарии9

Автоматизированная торговля акциями с использованием глубокого обучения с подкреплением

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

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

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

Читать далее
Всего голосов 23: ↑20 и ↓3+17
Комментарии12

Pandas: от хаоса к красоте кода

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

Работа с pandas.DataFrame может превратиться в неловкую кучу старого (не очень) доброго спагетти-кода. Я и мои коллеги часто используем эту библиотеку, и хотя мы стараемся придерживаться хороших практик программирования, иногда мы все равно мешаем друг другу, создавая запутанный код.

Я собрала несколько советов и подводных камней, которых следует избегать, чтобы сделать код на pandas чистым. Надеюсь, вам они тоже будут полезны. Также я буду ссылаться на классическую книгу Роберта Мартина «Чистый код: создание, анализ и рефакторинг».

Погнали!
Всего голосов 7: ↑7 и ↓0+7
Комментарии15

Актуально ли сегодня ООП?

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

Почти каждый день возникают дискуссии с критикой или восхвалением объектно-ориентированного программирования. «Java устарела!», «Java потрясающая!». В этой статье я проведу прагматичное исследование ООП на 2024 год.

Термин объектно-ориентированное программирование придумал Алан Кэй. Кэй был членом команды PARC, которая изобрела графический интерфейс пользователя, сделавший таким полезным современный Интернет, персональные компьютеры, планшеты и смартфоны. Ещё она изобрела некоторые из объектно-ориентированных языков, на которых мы сегодня реализуем эти GUI.

Если отсечь все эмоции, связанные с ООП, то что останется? По-прежнему ли ООП является эффективным инструментом разработки ПО, или оно превратилось в устаревшее увлечение? Профессионалам важно знать ответ на этот вопрос!
Читать дальше →
Всего голосов 105: ↑85 и ↓20+65
Комментарии179

Много-агентное планирование траекторий в децентрализованном режиме: эвристический поиск и обучение с подкреплением

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

Привет! Меня зовут Константин Яковлев, я научный работник и вот уже более 15 лет я занимаюсь методами планирования траектории. Когда речь идет о том, чтобы построить траекторию для одного агента, то задачу зачастую сводят к поиску пути на графе, а для этого в свою очередь обычно используют алгоритм A* или какие‑то из его многочисленных модификаций. Если же агентов много, они перемещаются в рабочем пространстве одновременно, то задача (внезапно) становится несколько более сложной и применить напрямую A* не получится. Вернее получится, но лишь для небольшого числа агентов (проклятье размерности, куда деваться). Тем не менее для централизованного случая, т. е. для случая, когда есть один (мощный) вычислитель, с которым связаны все агенты и который всё про всех знает, решить задачу много‑агентного планирования можно достаточно эффективно. Можно даже находить оптимальные решения для умеренного количества агентов за относительное приемлемое время (например, порядка 1 секунды на современном десктопном PC для 30–50 агентов).

Если же говорить о децентрализованном случае, т. е. о том случае, когда агентам необходимо действовать индивидуально (например, нет устойчивой связи с центральным контроллером), опираясь лишь на собственные (локальные) наблюдения и опыт, то с хорошими решениями задачи становится гораздо сложнее. Когда я говорю «хорошие решения», я имею в виду прежде всего такие алгоритмы, которые бы давали стройные теоретические гарантии в общем случае. Хотя бы гарантии того, что каждый агент дойдёт (за конечное время) до своей цели. Тем не менее, задача интересная и специалисты из индустрии и академии её пытаются решать.

В этом посте я расскажу о наших свежих наработках в этой области, а именно о гибридном методе, которые сочетает в себе принципы классического эвристического поиска (A*) и обучения с подкреплением (PPO). Метод получился неплохим, превосходящим многие современные аналоги по результатам экспериментов, а соответствующая статья была принята на The 38th AAAI Conference on Artificial Intelligence (пока доступен только препринт). Это одна из топовых академических конференций по искусственному интеллекту, которая в этом (2024) году проходила в Канаде (спойлер: я сам визу получить не успел, но моим коллегам и со‑авторам, кто имел ранее выданные Канадские визы, удалось принять личное участие и достойно представить нашу науку на мировом уровне).

Итак, поехали!
Всего голосов 27: ↑27 и ↓0+27
Комментарии10

Алгоритм генерации столбцов (Column Generation)

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

Генерация столбцов - подход к решению задач смешанного линейного программирования (MIP) с большим кол-вом переменных или столбцов.

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

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии4

FinRL: Библиотека глубокого обучения с подкреплением для автоматизированной торговли акциями

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

Глубокое обучение с подкреплением (Deep Reinforcement Learning - DRL) является эффективным подходом в количественных финансах. Однако обучение торгового агента DRL, который бы решал, где торговать, по какой цене и в каком количестве, сопряжено с ошибками, а так же со сложной разработкой и отладкой.

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

Читать далее
Всего голосов 23: ↑22 и ↓1+21
Комментарии19

Как машинлернеры мерили экспрессию генов от воздействия лекарств

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

Привет! Меня зовут Дима и я веду канал про соревновательный МЛ. Недавно мы выиграли приз в довольно престижном соревновании и я сделал обзор всех лучших решений

Хочу вам рассказать о Open Problems, где не удалось взять золото, но все равно все очень довольны, ведь мы взяли 13 место и специальные приз жюри, который позволил нам выступить на NeuralIPS.

Начнем с краткого описания соревнования:

Компания-организатор занимается тем, что пытается оптимизировать проведение дорогостоящих экспериментов с препаратами на живых, но отделенных от самих созданий клетках 🧪 (in vitro) 🧪. У клеток много разных типов и препарат лечащий одну клетку мог спокойно убить все клетки другого типа в том же организме. Взяли много таких экспериментов, в том числе контрольные. Можно увидеть на картинке подробности того, как проводился тест

Читать далее
Всего голосов 9: ↑7 и ↓2+5
Комментарии3

Как совмещать основную работу и проекты на стороне

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

У многих из нас остается достаточно свободного времени в сутках. А почему бы не монетизировать это время, думает начинающий IT левак? Если работать по три часа в день в будние, брать по 2 тысячи за час, то получится 120 тысяч дополнительного дохода в месяц. Звучит отлично!

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

Читать далее
Всего голосов 111: ↑109 и ↓2+107
Комментарии48

Как калькуляторы вычисляют синус?

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

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

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

Читать далее
Всего голосов 99: ↑97 и ↓2+95
Комментарии52

Многокритериальная оптимизация для ранжирования и отбора торговых систем

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

Отбор торговых систем: как выбрать лучшие из произвольного количества имеющихся

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

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

Читать далее
Всего голосов 9: ↑8 и ↓1+7
Комментарии2

Использование теории игр для повышения прозрачности моделей машинного обучения

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

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

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии5

Алгоритм Monte Carlo Tree Search простыми словами

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

Можно ли научить ИИ играть в настольную игру и выигрывать в ней, если мы сами не знаем как это сделать? Да! И один из способов — использовать алгоритм Monte Carlo Tree Search (MCTS). Он актуален даже сейчас, в эпоху развития нейронных сетей.

У многих людей, в том числе и у меня, поначалу были сложности с пониманием алгоритма, как и с верой в то, что он может хорошо играть. В этой статье хочу рассказать об MCTS максимально просто и помочь разобраться в нем новичкам. В первой главе расскажу об основах, с которыми многие могут быть уже знакомы. Однако считаю, что они действительно важны для понимания. Подробности под катом!
Читать дальше →
Всего голосов 40: ↑40 и ↓0+40
Комментарии2

Нейронные сети и dataset IRIS

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

Исследовательская работа по dataset IRIS и библиотеке для машинного обучения и построения нейронных сетей tensorflow.

Читать далее
Всего голосов 10: ↑8 и ↓2+6
Комментарии9
1
23 ...

Информация

В рейтинге
1 874-й
Откуда
Stockholms Län, Швеция
Зарегистрирован
Активность