Получи случайную криптовалюту за регистрацию!

Матчасть

Логотип телеграм канала @matchast — Матчасть М
Логотип телеграм канала @matchast — Матчасть
Адрес канала: @matchast
Категории: Технологии
Язык: Русский
Страна: Россия
Количество подписчиков: 985
Описание канала:

Высшая математика в бизнесе и жизни
vk.com/mat.chast
botcamp.timepad.ru
www.youtube.com/channel/UCoO8ApMu4QM4KQ8oGRCgOHQ
Чат: t.me/matchast_chat

Рейтинги и Отзывы

3.67

3 отзыва

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

5 звезд

1

4 звезд

0

3 звезд

2

2 звезд

0

1 звезд

0


Последние сообщения 4

2021-04-25 19:14:53 Недавно просили в комментах рассказать про reinforcement learning (обучение с подкреплением). Расскажу вкратце, а вы уж решайте, интересно ли это вам. В общем, RL - это когда модели обучаются методом проб и ошибок.

Делается это не от хорошей жизни. Гораздо проще и удобнее мир supervised learning (обучение с учителем), когда для обучения модели есть готовые пары (x, y), модель предсказывает y', и мы настраиваем её так, чтобы минимизировать различие между y и y'. Но такое возможно не всегда. Бывает, что правильные y получить сложно или дорого – например, надо рекомендовать пользователю контент, но мы не знаем, какие рекомендации являются верными, и можем ориентироваться только на лайки и дизлайки. А ещё бывает, что различие между y и y' невозможно выразить в виде дифференцируемой функции, а значит, сложно оптимизировать – например, если y и y' это тексты, а различие мы меряем как расстояние Левенштейна или BLEU. Для таких ситуаций и придумали RL.

В RL формализм такой: идёт «игра» в несколько шагов, на каждом шаге дано состояние S, модель выбирает действие A и получает за это награду R, и затем мы переходим к следующему шагу. Задача модели – выбирать действия так, чтобы максимизировать сумму наград за всю игру. Например, состояние S может описывать шахматную доску с расстановкой фигур, действие A может быть любым разрешённым шахматным ходом, а награда R на последнем шаге равна +1 в случае победы и -1 в случае поражения, и равна 0 на всех предыдущих шагах. Задача модели – много-много раз сыграть в шахматы и научиться выбирать действия, приводящие к победе.

Один подход к решению таких задач – научить модель по парам (S, A) предсказывать сумму будущих выигрышей. Тогда, оказавшись в состоянии S, можно выбрать действие A, для которого такая предсказанная сумма будет максимальна. Другой подход предлагает по состоянию S сразу предсказывать распределение над всеми возможными A, и выбирать действие из этого распределения. Оба подхода, как видите, сводят RL к SL.

На практике RL применяется мало где, кроме рекомендательных/рекламных систем и некоторых сложных задач генерации текста. Есть большие надежды, что методы RL помогут круто управлять беспилотниками, но, насколько я знаю, пока это не совсем так. А большая часть академических статей обкатывает методы RL на играх, как настольных, так и компьютерных. На Курсере есть курс Practical RL (coursera.org/learn/practical-rl), но, к сожалению, его название является оксюмороном. За весь курс рассматривается только одна прикладная задача (машинный перевод), а во всех остальных заданиях учат играть в игрушки. Впрочем, содержание и подача курса хороши, так что для общего развития я его рекомендовать могу.

Стоит ли вам изучать RL? Для решения прикладных задач – скорее всего, нет. Для удовольствия, тренировки мозгов, и развития собственной интуиции в области оптимальных решений, баланса exploration/exploitation, планирования и, прости господи, общего ИИ – да, вполне.
382 viewsedited  16:14
Открыть/Комментировать
2021-04-11 11:16:59 Бизнес часто требует от data scientist'ов интерпретации предсказательных моделей в каких-то очень простых терминах. Например, "если клиенту позвонили из банка на мобильный и разговор длился больше 16 минут, то в результате клиент откроет депозит с вероятностью 64%". Сегодня я покажу, как такие правила можно извлечь из данных.

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

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

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

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

Пример моего кода для извлечения сегментов можно посмотреть здесь:
https://gist.github.com/avidale/2aa018e6264a3e3887132d522b783561. Тут я тренируюсь на данных маркетинговой кампании одного португальского банка, но вы можете воспроизвести мой подход на чём угодно.

А тем временем, мы продолжаем игру: вы задаёте вопросы в комментариях, я еженедельно отвечаю на какой-то один из них длиннопостом. Собственно, этот пост был результатом одного из таких вопросов (спасибо @akogay).
507 viewsedited  08:16
Открыть/Комментировать
2021-04-10 22:14:55 Ещё один вебинар на подходе, на этот раз - ликбез по NLP!
Регистрация: https://botcamp.timepad.ru/event/1612905

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

Вебинар пройдёт в zoom в четверг 15 апреля с 19 до 21 по Мск.
Стоимость - 500р, но есть несколько бесплатных билетов.
1.1K views19:14
Открыть/Комментировать
2021-04-07 10:13:41 Хочу порекомендовать вам блог Lilian Weng. Он в целом про машинку, и довольно много тем посвящено NLP и RL. Там в основном обзоры исследований, но есть, например, и попытки воспроизвести некоторые из них. Например, пост от 2 января - про контролируемую генерацию текста языковыми моделями. Обсуждаются базовые подходы к генерации текстов (варианты жадного сэмплирования, beam search, их преимущества и недостатки), способы подбора правильных промптов для языковых моделей, и методы их файн-тюнинга, позволяющего контролировать стиль.

Я и сам собирался написать обзор по контролируемой генерации, но у меня вряд ли получится лучше. Поэтому держите и наслаждайтесь)
https://lilianweng.github.io/lil-log/2021/01/02/controllable-neural-text-generation.html
500 views07:13
Открыть/Комментировать
2021-04-04 21:15:10 Наверное, вы знаете про DataFest (fest.ai) - большую конференцию по анализу данных. В следующий раз они будут в конце мая, очень рекомендую. А в конце апреля будет проходить менее масштабная, но тоже интересная встреча - Parsing Conf. Это маленькая конференция по сбору данных, на которой можно и послушать, и выступить, и даже обкатать свой доклад перед DataFest'ом.

Темы готовящихся докладов примерно такие:
- "Сбор и аугментация датасетов изображений на примере цифрового агро и фуднета"
- "Собираем датасет с медицинскими масками"
- "Почему важно уметь парсить"
- "Автоматические регистрации на веб-порталах"
- "Библиотека ferret" (доклад от автора)
- "Парсинг через Tor: Как скачать 1.5 млн патентов за 2 недели, а не за 40 лет"

Кроме этого, можно и нужно предлагать собственные доклады (объявить тему надо до 9 апреля). Подробности - в чатике https://t.me/parsing_conf/47.
482 views18:15
Открыть/Комментировать
2021-04-03 14:12:29 Посмотрел видео недавнего доклада Tinkoff про распознавание и синтез речи:

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

Чтобы синтезировать речь из текста, сначала нужно привести текст в читабельный вид: записать буквами числа, сокращения, и прочие специальные обозначения (т.е. нормализовать текст), расставить ударения и точки над ё, по возможности проставить паузы и метки для интонации. Дальше текст превращают в последовательность спектрограмм, т.е. гистограмм, показывающих зависимость высоты звука от частоты на коротком временном интервале. Делают это обычно seq2seq моделями, в качестве основы часто берут архитектуру tacotron, и которые обучаются довольно долго. Последний шаг - применение модели-вокодера, которая из спектрограммы генерирует непосредственно звук. Вокодер тоже может быть авторегрессионным (например, свёрточной сетью), может быть основан на нормализующих потоках, может быть GANом. Оценивают всё это обычно side-by-side краудсорсинговыми оценками.

Распознавание речи решает обратную задачу, получая из неё текст. Первая сложность - выравнивание: из большого количества коротких аудиосэмплов нужно получить относительно короткую последовательность букв, и нужно определить, какие сэмплы относятся к какой букве (а какие - ни к какой). Это решается beam search декодированием: на каждом временном шаге мы поддерживаем несколько гипотез о том, какой может быть последовательность букв к данному моменту, и в конце выбираем последовательность, набравшую максимальное суммарное правдоподобие. Во время декодирования к акустической модели (которая классифицирует каждый сэмпл по-отдельности) добавляют языковую модель (которая отвечает за правдоподобие получившейся последовательности букв с точки зрения языка). Если распознавать речь хочется в реальном времени, акустическая модель (рекуррентная нейронка) запускается на скользящем окне из нескольких семплов, продвигающемся вперёд по мере поступления данных. Чтобы избегать пауз в ответе голосового помощника, нужна ещё хорошая модель для детекции окончания речи. В целом, есть очевидный трейдофф между скоростью распознавания и качеством. Зато качество мерять просто: это доля правильно распознанных слов, которая у Tinkoff сейчас достигает 97% на аудиокнигах и 85-90% на телефонных разговорах.

Этот краткий пересказ упускает кучу важных деталей и интересных подробностей, так что, если есть время, лучше смотрите видео целиком. Хороших выходных!
474 views11:12
Открыть/Комментировать
2021-04-03 02:44:58 Многоруких бандитов пост

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

Альтернатива такая: одновременно и проводить эксперименты, и эксплуатировать предварительные результаты этих экспериментов. Математически эта постановка задачи называется "multi-armed bandit" в честь американских игровых автоматов. Дано: несколько ручек автомата, каждая из которых приносит случайный выигрыш, и для каждой распределение возможных выигрышей может быть своё. Есть фиксированное число попыток, за которые надо заработать максимум денег. Вместо ручек могут быть рекламные объявления, предлагаемые юзеру музыкальным сервисом исполнители, торговые стратегии на бирже, странички в поисковой выдаче, you name it.

Универсального решения (для любого числа ручек и любого распределения выигрышей) эта задача не имеет. Но есть эвристические решения, которые работают неплохо. Например: для каждой из ручек построить 95% доверительный интервал для матожидания её выигрыша, и каждый раз дёргать ту ручку, у которой верхняя граница интервала самая высокая. Напомним, верхнюю границу можно вычислить примерно как mean + 2 * std / sqrt(n), где mean - это средний выигрыш из этой ручки, std - стандартное отклонение выигрышей из неё, n - число попыток с этой ручкой. Чтобы считать стандартные отклонения, каждую ручку сначала надо дёрнуть хотя бы дважды.

Если нам повезло, и мы сразу выбрали самую лучшую ручку, то всё хорошо, и надо продолжать в том же духе. Если же нам попалась плохая ручка, то по мере того, как мы её будем дёргать, выборка выигрышей из этой ручки будет расти, и доверительный интервал для среднего выигрыша - сужаться. А значит, верхняя граница интервала поползёт вниз, и довольно быстро мы выберем другую ручку. У новой ручки либо интервал более широкий (т.е. распределение выигрышей плохо изучено), либо середина интервала расположена достаточно высоко (т.е. средний выигрыш большой). А на интервалы с низким средним выигрышем, которые изучены уже неплохо, ресурсы зря расходоваться не будут. Профит!

Кроме этой стратегии, основанной на доверительных интервалах, есть много других подходов к многоруким бандитам (например, байесовские). Но все эти подходы так или иначе ищут баланс между exploration (исследованием новых опций) и exploitation (извлечением выгоды из уже известных опций).

И, кажется, это очень похоже на то, чем все мы, человеки, занимаемся по жизни.
397 viewsedited  23:44
Открыть/Комментировать
2021-04-01 15:13:42 Вчерашний вебинар по матстату вроде вышел неплохо.
О чём сделать следующий? Классический ML? Более сложные темы из матстата? Эконометрика? Что-нибудь из NLP?
Предлагайте новые темы в комментах!
395 views12:13
Открыть/Комментировать
2021-03-28 18:40:54 Мой пост про расчёт размера выборки так хорошо пошёл, что я решил провести вебинар по матстату. Попробуем за вечер разобрать азы: доверительные интервалы, тест на сравнение средних, расчёт размера выборки. Подойдёт вспоминающим матстат или смелым новичкам.
Вебинар будет в среду 31 марта с 19 до 21 по Мск.
Стоимость участия 250р, но есть несколько бесплатных билетов.
Регистрация: https://botcamp.timepad.ru/event/1596689
568 views15:40
Открыть/Комментировать
2021-03-27 12:44:02 Если решить это уравнение, получим n = 20 000. То есть, чтобы достоверно отличить конверсию 0.6% от 0.5%, нужно закупить 20 тысяч кликов. Поиграться с числами вы можете тут: daviddale.ru/sample-size.

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

Этот рассказ родился из вопроса, который мне задал один подписчик в комментариях в полвторого ночи. Задавайте и вы свои вопросы, и будет вам отвечено
520 viewsedited  09:44
Открыть/Комментировать