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

Machine Learning Explained

Логотип телеграм канала @machine_learning_explained — Machine Learning Explained M
Логотип телеграм канала @machine_learning_explained — Machine Learning Explained
Адрес канала: @machine_learning_explained
Категории: Без категории
Язык: Русский
Количество подписчиков: 826
Описание канала:

Если вы так же, как и я, не успеваете следить за всем происходящим в ML
machine-learning-explained@yandex.ru

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

3.67

3 отзыва

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

5 звезд

1

4 звезд

1

3 звезд

0

2 звезд

1

1 звезд

0


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

2019-11-15 12:07:26 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
Что такое регрессия на основе гауссовских процессов: длинное объяснение и короткое.
4.9K views09:07
Открыть/Комментировать
2019-11-08 11:55:07 ​​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
5.1K viewsedited  08:55
Открыть/Комментировать
2019-10-27 14:38:58 Если байес нужен всем

Для тех, кто только начинает свой путь в байесовских методах, есть отличный курс на русском и материалы к нему.

Для тех, кто уже продолжает, есть записи с летней школы Deep Bayes (на английском).

И наконец, для тех, у кого нет так много времени, а пощупать хочется, небольшой курс от той же вышки на курсере.
4.3K views11:38
Открыть/Комментировать
2019-10-11 10:13:40 Заметка о том, что работает и не работает из практик Agile в data science.

Часть 1

Часть 2

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

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

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

Согласны? Узнали?
Пользуетесь практиками agile в data science командах?
3.2K viewsedited  07:13
Открыть/Комментировать
2019-10-06 12:29:00 Недавно также вышла статья, в авторах которой числятся Yarin Gal и Geoffrey Hinton. В ней рассказано о технике, которая позволяет существенно уменьшать размер сети, не сильно теряя в производительности.
Часто на практике используются способы уменьшения размера сети, которые отбрасывают веса, например, учитывая их размер. Они основаны на надежде на то, что размер весов подсети коррелирует с её производительностью. Авторы же предлагают, изначально, натренировать сеть так, чтобы она не теряла в производительности при конкретном способе последующего отбора весов.

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

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

Learning Sparse Networks Using Targeted Dropout
https://arxiv.org/pdf/1905.13678.pdf
2.2K views09:29
Открыть/Комментировать
2019-10-06 12:27:00 ​​Есть такой исследователь из Оксфорда - 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 не является показателем уверенности модели в результате. Байесовская интерпретация дропаута позволяет такую оценку получить, не жертвуя ни сложностью сети, ни точностью на тестовой выборке.
1.9K views09:27
Открыть/Комментировать
2019-09-15 12:17:25 ​​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
2.0K views09:17
Открыть/Комментировать
2019-09-09 09:25:34 ​​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
1.9K views06:25
Открыть/Комментировать
2019-09-03 10:06:15 ​​Numpy-ml

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

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

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

Иногда там все очень просто и понятно, иногда чуть посложнее.
Например, активация ReLU выглядит примерно так:
1.7K views07:06
Открыть/Комментировать
2019-08-30 16:02:30 ​​PyTorch vs TensorFlow 2.0

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

PyTorch же создает граф для каждого входного значения. Это позволяет в PyTorch использовать циклы, условия и другие способы изменения порядка выполнения (control flow) в зависимости от входного значения.

Отличием это было, потому что вот-вот появится TensorFlow 2.0 и уже вышел pre-release, в котором появился eager execution, то есть интерактивный режим.
Он выполняет вычисления сразу, что позволяет упростить отладку и использовать порядок выполнения Python вместо графа вычислений. И никаких больше session.run().

Однако, в документации всё же советуют отлаживать код в eager execution, а запускать в продакшн уже в graph execution, потому что это "обеспечит лучшую распределенную производительность".
1.8K views13:02
Открыть/Комментировать