Как стать автором
Обновить
72
0
Artem Vorozhtsov @greck

ML Engineer

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

3. Information theory and ML. Forecast

Время на прочтение31 мин
Количество просмотров522

In this third part, we will discuss Machine Learning, specifically the prediction task in the context of information theory.

The concept of Mutual Information (MI) is related to the prediction task. In fact, the prediction task can be viewed as the problem of extracting information about the signal from the factors. Some part of the information about the signal is contained in the factors. If you write a function that calculates a value close to the signal based on the factors, then this will demonstrate that you have been able to extract MI between the signal and the factors.

Read more
Рейтинг0
Комментарии0

2. Information Theory + ML. Mutual Information

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

In Part 1, we became familiar with the concept of entropy.

In this part, we will delve into the concept of Mutual Information, which opens doors to error-resistant coding, compression algorithms, and offers a fresh perspective on regression and Machine Learning tasks.

It is an essential component that will pave the way, in the next section, for tackling Machine Learning problems as tasks of extracting mutual information between features and the predicted variable.

Here, there will be three interesting and crucial visualizations.

The first one will visualize entropy for two random variables and their mutual information.
The second one will shed light on the very concept of dependency between two random variables, emphasizing that zero correlation does not imply independence.
The third one will demonstrate that the bandwidth of an information channel has a straightforward geometric interpretation through the convexity measure of the entropy function.

In the meantime, we will prove a simplified version of the Shannon-Hartley theorem regarding the maximum bandwidth of a noisy channel. Let's dive in!

Read more
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

1. Information theory + ML. Entropy

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

I've long wanted to create educational materials on the topic of Information Theory + Machine Learning. I found some old drafts and decided to polish them up here, on Habr.

Information Theory and Machine Learning seem to me like an interesting pair of fields, the deep connection between which is often unknown to ML engineers, and whose synergy has not yet been fully revealed.

Let's start with basic concepts like Entropy, Information in a message, Mutual Information, and channel capacity. Next, there will be materials on the similarity between tasks of maximizing Mutual Information and minimizing Loss in regression problems. Then there will be a section on Information Geometry: Fisher metric, geodesics, gradient methods, and their connection to Gaussian processes (moving along the gradient using SGD is moving along the geodesic with noise).

It's also necessary to touch upon AIC, Information Bottleneck, and discuss how information flows in neural networks – Mutual Information between layers (Information Theory of Deep Learning, Naftali Tishby), and much more. It's not certain that I'll be able to cover everything listed, but I'll try to get started.

Read more
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Machine Learning for price optimization

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

This is a translated and adopted article I wrote for the Aha'22 (30 May 2022) conference. It describes an approach to a marketplace prices optimisation. Here I've outlined some important definitions and tried to define the scopes and roles of ML, algorithms, and humans in optimal pricing. Although the article covers rather basic things, still, you can find out some new formulas and ideas, because these basics are somewhat "well-known only in a very closed clubs", and besides, the real gem found here is the detailed recipe for ML engineers how to build optimal pricing systems.

Read more
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

3. Теория информации и ML. Прогноз

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

Понятие Mutual Information (MI) связано с задачей прогноза. Собственно, задачу прогноза можно рассматривать как задачу извлечения информации о сигнале из факторов. Какая-то часть информации о сигнале содержится в факторах. И если вы напишите функцию, которая по факторам вычисляет число близкое к сигналу, то это и будет демонстрацией того, что вы смогли извлечь MI между сигналом и факторами.

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

2. Теория информации + ML. Mutual Information

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

В этой части я рассказываю про Взаимную Информацию – концепцию, которая открывает двери в помехоустойчивое кодирование, алгоритмы сжатия, а также даёт новый взгляд на задачи регрессии и Machine Learning.

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

Здесь будет три важных картинки.

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

Между делом мы докажем упрощённый вариант теоремы Шаннона-Хартли о максимальной пропускной способности канала с шумом. Погнали!

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

1. Теория информации + ML. Энтропия

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

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

Начнём с базовых понятий Энтропии, Информации в сообщении, Mutual Information, пропускной способности канала. Далее будут материалы про схожесть задач максимизации Mutual Information и минимизации Loss-а в регрессионных задачах. Затем будет часть про метрику Фишера, геодезические и градиентные методы, и их связь с гауссовскими процессами.

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

Суффиксное дерево на python

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

Суффиксное дерево (Suffix Tree, ST) – это структура данных, которая позволяет "проиндексировать" строку за линейное время от её длины, чтобы потом быстро находить подстроки (за время О(длина искомой подстроки)).

Тема построения Suffix Tree и его применения хорошо раскрыта в Интернет (википедия, статья на хабр про алгоритм Вейнера, язык Си, и статья на хабр про алгоритм Укконена). Но всегда есть соблазн поучаствовать в соревновании "написать проще и яснее", хотя шансов мало. Тем не менее, рискну.

Несмотря на сложность, алгоритм построения ST умещается в 35 строк на python (см. ниже метод _build_tree). Их буквально можно выучить и воспроизводить по памяти как некое произведение искусства, как воплощенный в набор символов труд человеческой мысли, причём не одного человека, и первые из них точно гении. :) Есть соблазн, всматриваясь в код, прикоснуться к великому и чему-то научиться.

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

Как спорить про результаты A/B тестирования

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

Спорить плохо, но раз уж всё равно все спорят, то почему бы не делать это конструктивно и продуктивно :)

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

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

ML для оптимизации цен на основе эластичности по цене

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

Кривая эластичности спроса по цене – это то, как продажи зависят от цены.Чем меньше цена, тем больше продаж и наоборот.

В этой статье рассказывается про ML методы получения кривых спроса сразу для сотен тысяч товаров (нейросети, pyTorch), а также как, имея кривые спроса, решать бизнес задачу про баланс оборота и прибыли – в этом нам поможет метод множителей Лагранжа. Что первично – ограничение на прибыль или множитель Лагранжа? Как инженерам объяснить, что такое kvi-товары и товары-герои? Это и многое другое

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

Обучение программированию на Ruby — занятия продолжаются. Основы ООП

Время на прочтение1 мин
Количество просмотров1.4K
В 12:00 MSK в воскресенье 20 февраля 2011 пройдет очередное занятие по обучению программированию на Ruby для школьников и студентов. Курс рассчитан на начинающих изучать программирование и может рассматриваться как введение в программирование вообще. Сложность изложения и темы в значительной степени определяются аудиторией курса.

Тема занятия — Основы объектно-ориентированного программирования на Ruby.
Всего голосов 11: ↑4 и ↓7-3
Комментарии1

Online — обучение программированию на Ruby без хабраэффекта

Время на прочтение2 мин
Количество просмотров6.3K
Напоминаю, что по субботам, в 15:00 MSK проводятся удалённые занятия по обучению программированию на Ruby для школьников и студентов. Курс рассчитан на начинающих изучать программирование и может рассматриваться как введение в программирование вообще. Сложность изложения и темы в значительной степени определяются аудиторией курса.
Читать дальше →
Всего голосов 15: ↑10 и ↓5+5
Комментарии11

Обучение программированию на Ruby — занятия продолжаются

Время на прочтение1 мин
Количество просмотров4.6K
По субботам, в 15:00 MSK проводятся бесплатные удалённые занятия по обучению программированию на Ruby для школьников и студентов. Курс рассчитан на начинающих изучать программирование и может рассматриваться как введение в программирование вообще. Сложность изложения и темы в значительной степени определяются аудиторией курса. Под катом читайте про наши успехи
Читать дальше →
Всего голосов 30: ↑25 и ↓5+20
Комментарии18

Дистанционное обучение программированию на Ruby

Время на прочтение1 мин
Количество просмотров4.7K
По субботам, в 15:00 MSK проводятся бесплатные удалённые занятия по обучению программированию на Ruby для школьников и студентов. Курс рассчитан на начинающих изучать программирование и может рассматриваться как введение в программирование вообще.

Данный курс родился как дополнение к курсу по выбору «Метапрограммирование на Ruby» на Физтехе и посвящен более простым и базовым вещам. Сложность изложения и темы в значительной степени будут определяться аудиторией курса.
Читать дальше →
Всего голосов 49: ↑44 и ↓5+39
Комментарии28

Услуга «Ваш персональный компьютер»

Время на прочтение4 мин
Количество просмотров1K
Он выглядит как маленькая флешка. В принципе, он мог бы быть совсем маленьким, но тогда он терялся бы в карманах, и его неудобно было бы держать в руках.
В каждом интернет кафе стоят терминалы с удобными клавиатурами и широкими мониторами. Клавиатура справа имеет небольшой порт, куда подключается мой персональный компьютер (достаточно просто положить флешку рядом). Аналогичные терминалы стоят в гостиницах, в аэропортах, самолетах, экскурсионных автобусах, да и просто в различных кафе аналогично аппаратам оплаты Kiwi.
Читать дальше →
Всего голосов 96: ↑61 и ↓35+26
Комментарии72

W3Schools статистика браузеров в январе 2009 года: FF > IE

Время на прочтение1 мин
Количество просмотров978
Недавно наступил исторический момент — статистика на www.w3schools.com/browsers/browsers_stats.asp гласит, что в январе 2009 года были следующие доли браузеров посетителей Интернет:

FF = 45.5%
IE6+IE7+IE8 = 44.8%
Читать дальше →
Всего голосов 37: ↑21 и ↓16+5
Комментарии19

4. Metaprogramming patterns. 19 кю. Спасение утопающих дело рук самих утопающих

Время на прочтение12 мин
Количество просмотров2.9K
Предположим, что у вас есть библиотечный метод, который иногда кидает ексепшены.
Этот метод библиотечный в том смысле, что вы не хотите трогать руками тот файл, где он определён, так как этот файл, например, относится к библиотеке, которая регулярно обновляется, и ваши изменения после каждого обновления будут теряться, если вы специально не позаботитесь о их сохранении.
Такие методы принято менять в своем собственном коде — в динамических языках можно прямо в своем коде переписать избранный метод избранного класса.
Читать дальше →
Всего голосов 26: ↑23 и ↓3+20
Комментарии7

3. Metaprogramming patterns — 20 кю. Замыкания

Время на прочтение7 мин
Количество просмотров5.7K
В предыдущем посте мы затронули важнейшую концепцию — замыкание (closure).
Суть этой концепции в том, что в любой блок как бы заключается «весь окружающий мир» так, как он виден в контексте, где блок создается. Правильнее сказать, что в блок заключается не весь окружающий мир (пространство имён), а фиксируется точка зрения на окружающий мир (пространство имён).
Читать дальше →
Всего голосов 32: ↑27 и ↓5+22
Комментарии8

О программировании

Время на прочтение3 мин
Количество просмотров821
В продолжение Об информатике вообще, О знаниях и умениях программиста, и О личных качествах программиста

Профессия программиста в наше время не редкость. Могут быть различные мнения об интересности, полезности (для здоровья и развития личности) и актуальности этой профессии. Я здесь представлю положительное мнение.
Читать дальше →
Всего голосов 10: ↑8 и ↓2+6
Комментарии4

О личных качествах программиста

Время на прочтение3 мин
Количество просмотров1.1K
В продолжение Об информатике вообще, и О знаниях и умениях программиста.

Кроме знаний, программист должен обладать целым набором личных качеств. Что это за качества? Терпение? Усидчивость? Или что то другое? У меня сформировался следующий список:
Читать дальше →
Всего голосов 13: ↑11 и ↓2+9
Комментарии13
1

Информация

В рейтинге
Не участвует
Откуда
London, England - London, Великобритания
Дата рождения
Зарегистрирован
Активность