Pull to refresh
72
0
Artem Vorozhtsov @greck

ML Engineer

Send message

3. Information theory and ML. Forecast

Reading time31 min
Views514

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
Rating0
Comments0

2. Information Theory + ML. Mutual Information

Reading time11 min
Views733

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
Total votes 2: ↑2 and ↓0+2
Comments0

1. Information theory + ML. Entropy

Reading time10 min
Views975

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
Total votes 3: ↑3 and ↓0+3
Comments0

Machine Learning for price optimization

Level of difficultyMedium
Reading time27 min
Views5.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
Total votes 3: ↑3 and ↓0+3
Comments0

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

Reading time31 min
Views7.2K

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

Читать далее
Total votes 10: ↑10 and ↓0+10
Comments0

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

Reading time10 min
Views6.1K

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

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

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

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

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

Читать далее
Total votes 11: ↑8 and ↓3+5
Comments0

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

Reading time9 min
Views16K

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

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

Читать далее
Total votes 14: ↑14 and ↓0+14
Comments1

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

Level of difficultyMedium
Reading time10 min
Views11K

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

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

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

Читать далее
Total votes 12: ↑12 and ↓0+12
Comments5

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

Reading time8 min
Views3.5K

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

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

Читать далее
Total votes 1: ↑1 and ↓0+1
Comments3

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

Reading time25 min
Views16K

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

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

Читать далее
Total votes 9: ↑8 and ↓1+7
Comments18

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

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

Тема занятия — Основы объектно-ориентированного программирования на Ruby.
Total votes 11: ↑4 and ↓7-3
Comments1

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

Reading time2 min
Views6.3K
Напоминаю, что по субботам, в 15:00 MSK проводятся удалённые занятия по обучению программированию на Ruby для школьников и студентов. Курс рассчитан на начинающих изучать программирование и может рассматриваться как введение в программирование вообще. Сложность изложения и темы в значительной степени определяются аудиторией курса.
Читать дальше →
Total votes 15: ↑10 and ↓5+5
Comments11

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

Reading time1 min
Views4.6K
По субботам, в 15:00 MSK проводятся бесплатные удалённые занятия по обучению программированию на Ruby для школьников и студентов. Курс рассчитан на начинающих изучать программирование и может рассматриваться как введение в программирование вообще. Сложность изложения и темы в значительной степени определяются аудиторией курса. Под катом читайте про наши успехи
Читать дальше →
Total votes 30: ↑25 and ↓5+20
Comments18

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

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

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

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

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

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

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

FF = 45.5%
IE6+IE7+IE8 = 44.8%
Читать дальше →
Total votes 37: ↑21 and ↓16+5
Comments19

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

Reading time12 min
Views2.9K
Предположим, что у вас есть библиотечный метод, который иногда кидает ексепшены.
Этот метод библиотечный в том смысле, что вы не хотите трогать руками тот файл, где он определён, так как этот файл, например, относится к библиотеке, которая регулярно обновляется, и ваши изменения после каждого обновления будут теряться, если вы специально не позаботитесь о их сохранении.
Такие методы принято менять в своем собственном коде — в динамических языках можно прямо в своем коде переписать избранный метод избранного класса.
Читать дальше →
Total votes 26: ↑23 and ↓3+20
Comments7

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

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

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

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

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

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

Reading time3 min
Views1.1K
В продолжение Об информатике вообще, и О знаниях и умениях программиста.

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

Information

Rating
Does not participate
Location
London, England - London, Великобритания
Date of birth
Registered
Activity