Machine Learning Explained
829 subscribers
1 photo
30 links
Если вы так же, как и я, не успеваете следить за всем происходящим в ML

machine-learning-explained@yandex.ru
Download Telegram
​​Numpy-ml

"Когда-нибудь мечтали, чтобы у вас была не эффективно написанная, но понятная библиотека ML алгоритмов, реализованная только с использованием numpy? Нет?"

Хватит мечтать, все уже сделали за вас. Остается только смотреть и изучать, для самых увлеченных - делать pull request'ы.
https://github.com/ddbourgin/numpy-ml

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

Иногда там все очень просто и понятно, иногда чуть посложнее.
Например, активация ReLU выглядит примерно так:
​​All you need is everywhere

Если вы ещё сомневаетесь, что трансформеры повсюду, то вот еще одно тому доказательство.

Одиннадцать дней назад закончилось соревнование Predicting Molecular Properties на Kaggle.

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

Задача важна в области создания новых молекул для выполнения различных задач на клеточном уровне, в том числе для создания лекарств.

Так вот первые три места заняли архитектуры, основанные на архитектуре трансформер. Первое место использует трансформер на основе графового представления молекулы, второе использует трансформер на основе Attention is All You Need, третье место взяли за основу BERT, то есть фактически тот же Attention is All You Need.

Много магии добавилось на этапе выбора представления молекулы. Кроме того, все три команды использовали предсказания, агрегированные из 13-14 моделей (ensemble).

Еще есть интересная статья о том, как иногда проходит сам процесс принятия решений в командной работе на Kaggle. Автор - российский data scientist Андрей Лукьяненко, его команда заняла восьмое место и выиграла золотую медаль

1 место - https://www.kaggle.com/c/champs-scalar-coupling/discussion/106575
2 место - https://www.kaggle.com/c/champs-scalar-coupling/discussion/106468
3 место - https://www.kaggle.com/c/champs-scalar-coupling/discussion/106572
​​CvxNets - выпуклая декомпозиция 3D

Буквально три дня назад вышла статья от Google Research и Google Hardware о представлении трехмерных объектов в виде набора выпуклых оболочек. Это представление обучается через нейронную сеть и дифференцируемо.

Если упростить до двумерного примера, то модель, имея выпуклый объект, может представить его в виде набора полуплоскостей (на картинке понятнее).

При этом возникает два представления объекта: в виде полигональной сетки (polygon mesh) и в виде индикаторной функции, которая отображает точку в 0, 1 (принадлежит объекту или нет).

Такое представление можно напрямую использовать в физических задачах типа симуляции столкновений. Оно также дает лучшее разбиение объекта на части, чем текущие методы и сравнимо в задаче реконструкции 3D изображение с state-of-the-art, которым является Occupancy Networks.

Разбиение на части также получается из модели напрямую. То есть модель одновременно описывает и поверхность, и 3D структуру, и разбиение на части. Кроме того, скрытое представление, обученное сетью, имеет семантическую нагрузку. Близкие вектора описывают объекты со схожей геометрией, например, похожие конструкции самолетов или шкафчик и колонку в форме параллелепипеда.

В статье очень много интересных картинок.
https://arxiv.org/pdf/1909.05736.pdf
​​Есть такой исследователь из Оксфорда - Yarin Gal.
Он занимается Bayesian Deep Learning и с 2016 года является главным организатором Bayesian Deep Learning Workshop на NeurIPS.
Сквозной темой своих исследований он сам называет "понимание эмпирически разработанных техник машинного обучения".

Только с начала этого года появилось десять статей с его участием arxiv. Тем не менее самой цитируемой остается статья "Dropout as a Bayesian Approximation: Representing Model Uncertainty in Deep Learning".

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

Как пишут авторы, выходное значения слоя softmax ошибочно интерпретируется как вероятность, но ею не является. Большое значение на выходе softmax не является показателем уверенности модели в результате. Байесовская интерпретация дропаута позволяет такую оценку получить, не жертвуя ни сложностью сети, ни точностью на тестовой выборке.
Недавно также вышла статья, в авторах которой числятся Yarin Gal и Geoffrey Hinton. В ней рассказано о технике, которая позволяет существенно уменьшать размер сети, не сильно теряя в производительности.
Часто на практике используются способы уменьшения размера сети, которые отбрасывают веса, например, учитывая их размер. Они основаны на надежде на то, что размер весов подсети коррелирует с её производительностью. Авторы же предлагают, изначально, натренировать сеть так, чтобы она не теряла в производительности при конкретном способе последующего отбора весов.

Для этого нужно сначала выбрать критерий, на основе которого сеть будет уменьшаться (размер весов, например), и использовать targeted dropout во время обучения. Targeted - то есть такой, который будет в большей степени воздействовать на малые веса, подталкивая сеть уменьшать веса неважных подсетей.

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

Learning Sparse Networks Using Targeted Dropout
https://arxiv.org/pdf/1905.13678.pdf
Заметка о том, что работает и не работает из практик Agile в data science.

Часть 1

Часть 2

TL;DR
Работает:
- планирование и приоритезация
- разбиение на задачи с ограничением по времени
- ретроспективы и демо.

Что не работает и как быть:
- временные оценки - их можно заменить ограниченными по времени экспериментальными задачами
- быстро меняющиеся требования - собственно использование планирования и приоритезации с фиксацией задач хотя бы на время спринта должно показать бизнесу, что работа без переключения контекста эффективнее
- ожидание результата в виде кода в конце спринта - здесь поможет фиксация ожидаемого результата (вместо кода это могут быть результаты экспериментов, определение следующих шагов)
- слишком рьяное следование требованием бизнеса - выделять, например, 2-3 недели в квартал на инновации вместо работы над текущими задачами.

Там ещё есть интересный пример про то, как proof-of-concept занял 2 человеко-месяца, а внедрение в продакшн 117, то есть где-то в 60 раз больше. Такое тоже может быть и нужно это учитывать.

Согласны? Узнали?
Пользуетесь практиками agile в data science командах?
​​5 книг

Классическая классика ML
Pattern Recognition and Machine Learning, Bishop
The Elements of Statistical Learning

Классика нейронок
Neural Networks and Learning Machines, Haykin

Нейросети
Deep Learning - здесь больше теории
Hands-On Machine Learning with Scikit-Learn and TensorFlow - здесь больше практики с примерами на Tensorflow
Best paper award ICML 2019

Такую награду получило две статьи.
Про первую статью уже было тут.
Вторая статья называется Rates of Convergence for Sparse Variational Gaussian Process Regression.
Как и предполагает название, описывает она достижения в области сходимости регреcсии на основе гауссовских процессов.

Гауссовские процессы часто используют для задания априорных распределения в байесовских моделях. Их плюс в том, что известно аналитическое решение для апостериорного и маргинального распределения для регрессионной модели. Их минус - в вычислительной сложности O(N³) и O(N²) по памяти, где N - количество экземпляров в данных.

Известны алгоритмы, сводящие этот вывод к O(NM² + M³) по времени и O(NM + M²) по памяти, где M - это число "индуцирующих" переменных (inducing variables). В этом случае, настоящяя вычислительная сложность зависит от того, как увеличивается M при увеличении N с сохранением точности приближения.

В статье показано, что с большой вероятностью расстояние Кульбака-Лейблера (KL divergence) между аппроксимирующим и реальным распределением можно сделать сколь угодно малым при том, что M будет расти медленнее, чем N. В частности, если есть нормально распределенные данные размерности D и в качестве ядра ковариции используется squared exponential, то M может расти как логарифм от N по основанию D.

Заметки обо всём ICML:
https://david-abel.github.io/notes/icml_2019.pdf
Что такое регрессия на основе гауссовских процессов: длинное объяснение и короткое.