Как стать автором
Обновить
84
0
Семён Лукашевский @uchitel

R&D (R>D)

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

LLM как оптимизатор для задачи линейной регрессии

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

В сентябре 2023 года инженеры из гугла выпустили статью "Large Language Models as Optimizers" об использовании LLM в качестве оптимизаторов.

Ниже мы рассмотрим, как языковая модель Mistral-7B-Instruct на основании текстовых инструкций справится с задачей линейной регрессии.

Читать далее
Всего голосов 17: ↑16 и ↓1+15
Комментарии6

Как отслеживать здоровье команды и не допускать выгорания — Team Experience Metrics

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

Внутреннее состояние команды также важно как и работа, которую они выполняют.

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

Читать далее
Всего голосов 8: ↑4 и ↓40
Комментарии7

Регрессия гауссовского процесса с самого начала

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

К старту курса о машинном и глубоком обучении мы перевели статью о регрессии гауссовского процесса (далее GPR) — удивительно мощном классе алгоритмов машинного обучения, который, в отличие от многих современных моделей машинного обучения, в составлении прогнозов опирается на небольшое количество параметров. Поскольку GPR является (почти) непараметрической, она, даже при небольшом количестве данных, может эффективно применяться в решении широкого спектра задач обучения с учителем. С помощью передовых фреймворков автоматического дифференцирования, таких как PyTorch и TensorFlow, изучить и применить GPR для решения множества сложных задач в области обучения с учителем, стало проще, чем когда-либо. В статье вы найдёте не только математические выкладки, но и ссылки на соответствующие учебники.

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

Планирование продаж и управление ценой в онлайн-режиме. Часть 1

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

Планирование — это сложный процесс, в котором мы сначала создаем образ наилучшего будущего, а затем выполняем поиск наиболее эффективного и удобного для нас пути к его достижению. Однако тенденция такова, что зачастую планы создаются для успокоения. При этом случайности отводится очень важная, но скорее негативная роль — оправдывать то, что оправдывать не следует. Сколько раз вам доводилось слышать, что невозможно учесть все возможные случайные факторы? Или что-то вроде: "Человек предполагает, а Бог располагает"? Было бы неразумно верить, что любые проблемы, которые может вызывать случайность, возможно решить с помощью прикладной математики. При этом нам все равно необходимо максимально четко понимать роль и влияние случайность в наших планах, чтобы не оправдывать ей потом все наши неудачи.

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

Вычисление целочисленного квадратного корня

Время на прочтение2 мин
Количество просмотров13K
Возникла нужда проверить, является ли целое число квадратом, и если да, то вычислить корень. Причем хочется сделать это в целочисленной арифметике. Понятно, что можно реализовать метод Ньютона в целых числах, но он требует деления на каждом шаге. А нельзя ли по другому? Найти квадратный корень по модулю степени двойки, и проверить, а не будет ли он обычным квадратным корнем.
Читать дальше →
Всего голосов 29: ↑24 и ↓5+19
Комментарии13

Ядро планеты Python. Интерактивный учебник

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

Добрый день! Меня зовут Михаил Емельянов, недавно я опубликовал на «Хабре» небольшую статью с примерным путеводителем начинающего Python-разработчика. Пользуясь этим материалом как своего рода оглавлением книги, я написал первые четыре главы мини-учебника «Ядро планеты Python», где постарался коротко, но достаточно ёмко раскрыть специфику, удобство, красоту и силу этого прекрасного языка.


Оригинал учебника лежит на GitHub, вы вольны сколько угодно дополнять и переделывать его. Самое главное — учебник написан на Jupiter Notebook, а это значит, что вы можете интерактивно редактировать код, мгновенно добавляя новые сущности или проясняя непонятные моменты.


Core of the planet Python

Читать дальше →
Всего голосов 66: ↑66 и ↓0+66
Комментарии25

Прибытие тензорного поезда. Как достижения мультилинейной алгебры помогают преодолеть проклятие размерности

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

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

Понятие «проклятие размерности» появилось в середине прошлого века в пионерской работе Ричарда Беллмана, посвященной методам решения сложных задач путём разбиения их на более простые подзадачи. Сегодня оно понимается в более общем смысле, а именно как экспоненциальный — O(nd) — рост количества необходимых данных и, как следствие, количества памяти, необходимой для их хранения, с ростом размерности пространства d. Когда задачу можно свести к работе с многомерными массивами в общем случае комплексных чисел, удобно говорить о d-мерных тензорах и использовать достижения мультилинейной алгебры. Хорошая новость заключается в том, что там существует такая процедура, как тензорное разложение, которое в ряде случаев может помочь преодолеть проклятие размерности.

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

PINN (Physics-informed neural networks) и с чем их едят

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

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

Менее известный, но более радостный, факт: Есть нейронные сети, которые делают это быстрее (пусть и с меньшей точностью).

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

Прогулка по мостам Кёнигсберга с ORtools

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

На выходных впервые удалось выбраться в Калининград. Я уделил немало внимания исследованию уровня жизни и благополучия области, в основном, ориентируясь на стоимость покупки/аренды жилья, цены в ресторанах и заработок таксистов. Данные достаточно доступные и позволяют сформировать общее представление о положении дел в городе/области.

Помимо экономической составляющей, конечно, старался погрузиться в культурный/исторический аспект жизни города. За короткий промежуток времени достаточно сложно проникнуться всеми особенностями, однако в Калининграде я бы выделил верное следование ограничениям скорости! Благодаря этому, возникает ощущение безопасности, замедления времени и спокойствия.

История города богатая, и в этом мешке событий я нашел кое-что интересное для себя. Речь пойдет о задаче семи пешеходных мостов Кёнигсберга. В свое время Эйлер в процессе размышлений над решением этой задачи положил начало теории графов. В статье рассмотрим задачу с позиции задачи линейного программирования и подтвердим результаты трехсотлетней давности с помощью Python и OR-Tools.

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

Sarsa: алгоритм, основные принципы и применение

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

В области искусственного интеллекта и машинного обучения, SARSA (State-Action-Reward-State-Action) является одним из фундаментальных алгоритмов обучения с подкреплением. Он широко применяется в реализации различных задач, включая игровые приставки, роботов и системы автопилотирования. В данной статье мы рассмотрим определение SARSA и обсудим его значимость в области искусственного интеллекта и машинного обучения.

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

Заметки Датасатаниста: что делать, если перед вами оказалась NP-полная задача

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


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

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

Под катом неформальный гайд — как понять, что перед вам может быть NP задача и что делать, если это именно она и оказалась. Сегодня мы атакуем этот вопрос с практической стороны.
Читать дальше →
Всего голосов 33: ↑33 и ↓0+33
Комментарии8

Что такое логическое программирование и зачем оно нам нужно

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

У того, кто в детстве не писал на Прологе — нет сердца, а у того, кто пишет на нём сегодня — нет мозгов. (оригинал)

Если вас всегда терзали мучительные сомнения — что за фигня это Логическое Программирование (ЛП) и вообще зачем оно нужно? То это статья для вас.


Можно по-разному разделить языки программирования на группы (часто их называют парадигмами программирования), например, вот так:


  • структурное: программа разбивается на блоки — подпрограммы (изолированные друг от друга), а основными элементами управления являются последовательность команд, ветвление и цикл.
  • объектно-ориентированное: задача моделируется в виде объектов, которые отправляют друг другу сообщения. Объекты обладают свойствами и методами. Абстракция. Инкапсуляция. Полиморфизм. Ну в общем, все в курсе.
  • функциональное: базовым элементом является функция и сама задача моделируется в виде функции, а, точнее, чаще всего в виде их композиции, если f(.) и g(.) — это функции, то f(g(.)) — это их композиция.
  • логическое: вот тут, как правило, начинается феерия — если про первые три написаны сотни статей, книг, обзоров, презентаций и учебников, то здесь мы в лучшем случае видим что-то про Prolog и разработки времён Pink Floyd и Procol Harum (ну хоть с музыкой им тогда повезло) и на этом история заканчивается.

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


Важнейший тезис этой статьи:


Логическое программирование != Prolog.

И вообще последний вам скорее всего не нужен. А вот первое вполне может быть.


Структура статьи:


  • Что такое Пролог и почему он вам скорее всего не нужен
  • Зачем оно надо, или краткое введение в Answer Set Programming
  • Решаем задачи на ASP
  • Комбинаторная оптимизация
  • Вероятностное ЛП: ProbLog
  • ЛП на классической логике FO(.) и IDP
  • Sketched Answer Set Programming
  • Экспериментальный анализ
  • Тестирование и корректность программ
  • Заключение
Читать дальше →
Всего голосов 30: ↑29 и ↓1+28
Комментарии22

Математическое моделирование в ORtools: задача планирования расписаний

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

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

Статья выполнена в рамках проекта “Make optimization simple”, который погружает в область бизнес задач с точки зрения математического моделирования и оптимизации. Посредством готовых библиотек демонстрируются примеры решения такого рода задач.

В этой статье разберем одну из таких постановок. На примере задачи планирования сменного графика сотрудников сети стоматологических клиник пройдем этапы: от формулирования бизнес ограничений до получения готового решения. Для моделирования и поиска решения будем использовать инструменты Python и библиотеку OR-Tools.

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

Контекст, награда, много рук. Многорукие бандиты как метод принятия решений

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

Всем привет! В предыдущих двух статьях мы подробно рассмотрели технические и методологические аспекты A/B-тестирования в Ozon. А сейчас время перейти к не менее интересным темам. Так как наша команда занимается не только A/B-тестами, но и в целом развитием методов принятия решений с помощью causal inference, стоит уделить внимание многоруким бандитам. 

В этой статье мы рассмотрим методологию и границы применимости классических многоруких и контекстуальных бандитов, а также реализуем контекстного бандита, в основе которого будут сэмплирование Томпсона и нейронная сеть. Ну и, конечно, мы постараемся ответить на главный вопрос: могут ли многорукие бандиты заменить A/B-тесты? 

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

Как же мощно я провел A/B-тест, или почему не стоит сравнивать наблюдаемый аплифт с MDE

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

Всем привет! Меня зовут Рома Смирнов. Я работаю продуктовым аналитиком в Lamoda Tech. Не так давно я столкнулся с необычным взглядом на то, как следует интерпретировать результаты A/B-эксперимента. Он заключается в том, что наблюдаемый аплифт — разницу средних, полученную на основе выборок, — необходимо сравнивать не только с критическим z- или t-значением, но еще и с MDE, минимальным эффектом, который мы ожидаем зафиксировать. Утверждается, что тест следует принимать только в том случае, если наблюдаемый аплифт лежит правее значения MDE.

Кажется, что на занятиях по статистике такому обычно не учат. Я обратился к традиционному источнику информации — Всемирной паутине (web, internet) — и нашел на эту тему хорошую статью болгарского гигачада A/B-тестирования Георгия Георгиева. В ней он приводит несколько аргументов, демонстрирующих несостоятельность описанного выше подхода.

В своей статье я буду использовать аргументы Георгия Георгиева, разбавленные моими мыслями и примерами на эту тему.

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

Фортран: пишем параллельные программы

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

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

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

Описательная статистика перформанс-распределений

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

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

Андрей Акиньшин @DreamWalker поговорил об этом в докладе на нашей конференции Heisenbug. И теперь, пока мы готовим следующий Heisenbug (где тоже будут доклады о производительности), решили опубликовать текстовую версию его выступления (а для тех, кому удобнее другие форматы, прикрепляем видеозапись и слайды). Предупреждаем: много букв, цифр, графиков и формул!

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

Неожиданная эффективность условных вероятностей

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

В последнее время я решил заняться задачами по теории вероятностей, потому что мне кажется, получение знаний в этой сфере принесёт большую пользу. Я нашёл ключ, часто использующийся для решения многих из них: накладываем условие на промежуточное состояние, а затем отдельно вычисляем значение этого промежуточного состояния. Это превращает очень сложные задачи в такие, где решение практически очевидно. [Однако в таком случае мы иногда обмениваем эффективность на простоту.]

Такой подход был полезен для решения задачи о днях рождения в очереди, и в статье я приведу ещё три примера, в которых это проявляется. Если задача покажется вам неинтересной, перейдите к следующей, они все разные.
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии9

Стохастический язык программирования на основе алгоритмов Маркова

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

MarkovJunior — это вероятностный язык программирования, в котором программы являются сочетаниями правил перезаписи, а инференс выполняется при помощи распространения ограничений. MarkovJunior назван в честь математика Андрея Андреевича Маркова, придумавшего и исследовавшего то, что сейчас называется алгоритмами Маркова.
Читать дальше →
Всего голосов 139: ↑139 и ↓0+139
Комментарии24

Одна панель, чтобы объединить все визуализации. Panel for Python

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

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

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

Информация

В рейтинге
Не участвует
Откуда
Хакасия, Россия
Дата рождения
Зарегистрирован
Активность