Gentleminds
104 subscribers
1 photo
1 video
2 files
176 links
Админы канала стараются постить интересные новости и статьи про дипленинг и не только, а так же кратко их описывать.
Наши сайты:
gentleminds.io
pozus.io
加入频道
Новый пост на distill.pub о визуализации и попытках понять, чему же все-таки научилась нейронная сеть https://distill.pub/2017/feature-visualization/
Автодифференцированием в современных фреймворках уже никого не удивишь. Но чтобы оно работало, надо пользоваться "родными" для фреймворка функциями, а иногда так хочется написать слой прямо на питоне или нампи...

Гугл в лице Alex Wiltschko выпустил библиотеку, которая поддерживает автодифференцирование питоновских и нампи операторов, причем генерирует читаемый код!

https://research.googleblog.com/2017/11/tangent-source-to-source-debuggable.html
Как сделать максимально хипстерский DL-фреймворк:
1) Написать на расте
2) Назвать героем из доты
3) Запустить в браузере

https://juggernaut.rs/demo/
http://blog.aylien.com/juggernaut-neural-networks-in-a-web-browser/
Погрузимся в грязный мир обучения с подкреплением. Статья из университета Макгила (McGill University). Ребята придумали OptionGAN - это помесь GAN и inverse RL. Идея вкратце такова: допустим есть state, action, reward от эксперта - так давайте же научим делать предсказания reward таким, чтобы дискриминатор не смог отличить от экспетного. https://arxiv.org/abs/1709.06683
Шок! Сенсация! (на самом деле нет)
Многие опубликованные результаты по "улучшению" GAN-ов ненадежны.

Ребята из Google Brain протестировали 7 популярных вариантов GAN-ов и им не удалось найти алгоритм, который однозначно "лучше" остальных. Все они очень сильно зависят от выбора гиперпараметров. При достаточном вычислительном бюджете разницы между ними почти нет.

https://arxiv.org/pdf/1711.10337.pdf
В тф добавили мини-фреймворк для обучения ганов. Там и разные лоссы, и всякие фишечки, вроде Virtual Batch Normalization, и визуализации, и примеры. И его даже планируют развивать.
https://research.googleblog.com/2017/12/tfgan-lightweight-library-for.html

https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/gan
https://github.com/tensorflow/models/tree/master/research/gan
Доклад Ali Rahimi (Google) на NIPS (https://www.youtube.com/watch?v=ORHFOnaEzPc), в котором он сравнивает машинное обучение с алхимией (все что-то делают и даже получают какие-то результаты, но не всегда понимают, почему), вызвал бурную реакцию сообщества.

Первым ответил Лекун (https://www.facebook.com/yann.lecun/posts/10154938130592143 (1.9к лойсов, между прочим)). Он говорит, что из-за таких же настроений в 80-е сообщество игнорировало нейронные сети, несмотря на их эффективность, и вообще, использовать только полностью теоретически обоснованные методы непродуктивно.

Тут описание событий и точек зрения:
https://syncedreview.com/2017/12/12/lecun-vs-rahimi-has-machine-learning-become-alchemy/

А тут еще одно мнение о состоянии исследований в этом нашем диплернинге.
http://www.inference.vc/my-thoughts-on-alchemy/

И дополнения самого Али: http://www.argmin.net/2017/12/11/alchemy-addendum/

Очень интересное обсуждение состояния индустрии и исследований.
А это заметки участника NIPS о представленных докладах (43 страницы!)
https://cs.brown.edu/~dabel/blog/posts/misc/nips_2017.pdf
Рубрика #лайфхак

В статье про Cyclical Learning Rates (раздел 3.3) есть интересный метод выбора learning rate: надо запустить обучение с линейно увеличивающимся lr и построить график зависимости validation accuracy от lr. Момент, когда accuracy начинает расти - минимальный lr, когда accuracy начинает колбасить - максимальный.
https://arxiv.org/pdf/1506.01186.pdf

Также они ссылаются на старую статью Бенжио, в которой много советов, один из которых - если что-то из гиперпараметров и тюнить, то learning rate: Practical Recommendations for Gradient-Based Training of Deep Architectures https://arxiv.org/pdf/1206.5533.pdf
И второй #лайфхак
(когда сделал монструозную архитектуру, которая незначительно увеличила качество, но снизил производительность в 5 раз и надо что-то придумывать)

Можно, например, встроить batchnorm в веса конволюционного слоя.

https://arxiv.org/pdf/1701.06659.pdf (Раздел 4. Inference Time)
https://thecuriousaicompany.com/mean-teacher/

Semi-supervised image classification в картинках.
Очень нравится, как в последнее время лаборатории представляют работы. Просто выложить статью на arxiv уже недостаточно, т.к. их выходит по 100 штук в день, поэтому компании пишут понятным языком красивые статьи с картинками в свои блоги.

Одна из таких статей из Беркли AI:
http://bair.berkeley.edu/blog/2017/12/20/reverse-curriculum/

О решении проблемы с reward function, которая постоянно возникает в reinforcement learning. Хочется описать задание простой функцией, вроде "получи reward, когда достиг конечной цели". Но оказывается, что такая функция даёт очень разреженный полезный сигнал, потому что при использовании random exploration доходить до цели мы будем очень редко. Поэтому приходится заниматься reward shaping, т.е настраивать reward function так, чтобы агент получал награду за какие-то промежуточные полезные состояния.

В статье предлагают решение, которое укладывается в подход к обучению агента под названием curriculum learning. Идея в том, чтобы вместо настройки reward function более правильно выбирать "ситуации", на которых обучается агент. Самый простой пример такого подхода - постепенное усложнение задачи.

Авторы предлагают строить "ситуации" наизнанку. Т.е начинать с состояний, когда цель почти достигнута и постепенно от неё удаляться, и описывают алгоритм, который позволяет находить "ситуации" нужной сложности.

И всё это с гифками с глазастым роботом. Прекрасно.
Вы наверняка уже слышали про уязвимости Meltdown и Spectre, которые, по некоторым оценкам, являются самыми крупными проблемами ИТ индустрии за все время и повлияют на нее самым существенным образом. В этих статьях https://geektimes.ru/post/297029/ https://geektimes.ru/post/297031/ на доступном языке рассказывается про них, и становится понятно почему при попытке их исправить будет неизбежна существенная просадка производительности. Встретил на просторах фэйсбука такое высказывание, что мы все это время жили хорошо по производительности взаймы у безопасности.
Mikel Bober-Irizar протестировал производительность ML библиотек после PTI патча

https://medium.com/implodinggradients/meltdown-c24a9d5e254e

TL;DR: производительность в среднем падает на 5-10%, но для некоторых задач (факторизации матриц) достигает 40%