Bayesian Noise
61 subscribers
57 photos
234 links
Канал @nesterione. Посты про ИТ, машинное обучение, рациональность, иногда просто заметки и наблюдения.

з.ы. картинка не картинка...
Download Telegram
Крутая статья про новые результаты с GAN https://blog.openai.com/glow/

Это генеративно состязательная сеть, которая учится генерировать объекты принадлежащие к определённому классу (например разные лица, машины, планеты).

Где-то год назад я рассказывал на публичной лекции (Курилка Гутенберга в Гомеле) про GAN, и утром перед выступлением я увидел про генератор котиков https://ajolicoeur.wordpress.com/cats/ .

И вот теперь OpenAI ещё один большой шаг. Сравните детализацию котиков и то, что они сейчас показывают. Круто же, правда?

По первой ссылке доступна статья и исходный код. И обязательно зацените online-демку генератора лиц)

#gan #nn #ai
Разгребая свои заметки с 2016 года нашёл популярную статью про различные архитектуры нейронных сетей. Сейчас 2018 и в списке нет большого числа новых идей, но статься всё равно представляет хороший краткий обзор архитектур. Под каждым описанием сети приводится ссылка на оригинальную публикацию.

оригинал

http://www.asimovinstitute.org/neural-network-zoo/

переводы на хабре

https://habr.com/company/wunderfund/blog/313696/
https://habr.com/company/wunderfund/blog/313906/

#nn #ml
Вот так google тихо, без громких анонсов включил TPUv2 для google colaboratory https://colab.research.google.com/ . Напомню, что в google colab вам бесплатно (т.е. даром на 12 часов непрерывной работы) предоставляется окружение с GPU (Сейчас это Tesla K80) и теперь с TPU. И это даёт возможность вам начать заниматься нейронными сетями не имея мощного железа.

Гугл пока не заявлял об этом, есть упоминание в обновлённой документации https://colab.research.google.com/github/tensorflow/tpu/blob/master/tools/colab/shakespeare_with_tpu_and_keras.ipynb

и на форуме fast.ai http://forums.fast.ai/t/google-colab-quitely-turn-on-tpu-v2-for-free-to-everyone/23329/2

Пока сравнить нормально проверить не получилось, т.к. для того, чтобы запустить модель на TPU нужно провести дополнительные манипуляции (см. https://www.dropbox.com/s/jg7j07unw94wbom/TensorFlow%20Keras%20Colab%20TPUs.pdf?dl=1 ). Без настроек модель запустится на CPU.

#ml #nn #google #colab #tool
Интересная подборка от dev.by https://dev.by/news/25-open-source-repozitoriev-mashinnogo-obucheniya

Собрали они конечно всего в одну кучу, но среди этого списка нашлись незнакомые мне забавные проекты.

Я выделил проекты, которые хочу проверить (и может про некоторые расскажу отдельно). Да, они не кажутся полезными, но уж точно достаточно интересны, чтобы упомянуть где-нибудь на публичной лекции о достижениях AI.

style2paints
https://github.com/lllyasviel/style2paints - алгоритм раскрашивает скетчи, выглядит очень прикольно. Авторы обновляют сайт, но на github все исходники, можно попробовать запустить. Проверил, модели они тоже предоставляют, и есть набор скетчей для обучения. По описанию на github, кажется это целый редактор на основе нейронных сетей. Проект очень заинтересовал меня, интересно попробовать.

Image-to-image translation in PyTorch
Тоже выглядит интересно, помню статью про это, но готовой модели я не видел.

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

Deep photo style transfer
Очень достойные результаты, изображения выглядят реалистичными. Как на деле окажется нужно пробовать.

Deep image prior
В детстве приходилось играть с фотошопом, чтобы исправить дефекты на старых фотографиях, теперь можно проще.

Open Pose
Круто, что теперь это можно без кинекта, используя обычную камеру. Я хотел что-то такое на диплом 4 года назад, вот тогда такое сделать нельзя было с достойным качеством.

Deep Exemplar-Based Colorization
Проекты с разукрашиванием были уже несколько лет, у меня на стере в ВК можно найти ссылку, а это что-то новое и говорят качество существенно лучшее. Кстати яндекс разукрашивал старые фильмы используя нейронную сеть, видели результат?

#nn #ai #art #news #tool #fun
Ранее google анонсировала свою новую архитектуру сети для обработки естественных языков (Bidirectional Encoder Representations from Transformers https://t.me/tj4me/83). Теперь доступна opensourse реализация сети на tensorflow и есть предобученные модели для английского:

https://github.com/google-research/bert

Пост в официальном блоге https://ai.googleblog.com/2018/11/open-sourcing-bert-state-of-art-pre.html

Напомню что BERT интересен возможностью дообучения (fine tuning), это значит, что хорошо обученная на неразмеченных данных модель может быть дообучена небольшим количеством размеченных данных (как правило от нескольких тысяч примеров) для решения конкретной задачи.

Пока сам не проверил, модель довольно прожорливая и запустить на своём ноутбуке не представляется возможным, авторы рекомендуют использовать облачный TPU с 64 GB RAM, но уменьшенная версия сети должны запуститься на 12-16 GB

Попробовать BART можно в google colab https://colab.research.google.com/github/tensorflow/tpu/blob/master/tools/colab/bert_finetuning_with_cloud_tpus.ipynb

публикация доступна здесь https://arxiv.org/abs/1810.04805

#google #nlp #nlu #nn
Алгоритмам машинного обучения нужно очень много данных, чтобы достичь непревзойдённых результатов. Например, чтобы хорошо классифицировать объекты на изображении нужны десятки тысяч объектов для каждого класса. Где же найти так много данных для обучения? Ответ вы скорее всего знаете и он transfer learning, но всё же, чем больше примеров есть, тем лучшее. Популярный способ расширить набор данных - аугментация. Это такой способ исказить изображения, тем самым расширяя вариативность ваших данных.


Популярные сейчас библиотеки:
https://github.com/aleju/imgaug - наверное самый известный проект для аугментации изображений
https://github.com/albu/albumentations - совсем недавно была разработана, работает быстрее и умеет делать совсем нетривиальные искажения, обязательно попробуйте


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

Ещё один интересный подход, использовать GAN для генерации правдоподобных изображений https://towardsdatascience.com/generative-adversarial-networks-for-data-augmentation-experiment-design-2873d586eb59

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

#cv #nn #data #augmentation
Неоднократно говорил про google colaboratory (colab.research.google.com). С ним вы можете создавать jupyter notebook прямо в вашем google drive и запускать на GPU в облаке гугла совершенно бесплатно* (одна активная сессия не более 12 часов)

Недавно там появилась возможность использовать TPUv2. И вот очередные функции. Всегда стоит вопрос как загрузить данные и как сохранить результат. Раньше было несколько возможностей, асейчас вы можете примонтировать google drive прямо в контейнер с colab, для этого добавляем строки в notebook

from google.colab import drive
drive.mount('/content/gdrive')


и всё содержимое вашего диска будет доступно в /content/gdrive есть возможность также сохранять туда результаты.

Ещё одно улучшение - это предупреждение о перерасходе RAM. До этого если ваш notebook превышал лимит, он просто останавливался. Теперь вы получите предупреждение. Зачем это нужно? Если вы запускаете с одного аккаунта несколько ноутбуков, то память делится между ними, теперь у вас есть возможность остановить неиспользуемые до того, как всё остановится.

#colab #google #nn
Для большого числа задач важно определять расстояние до объектов на видео. Самое банальное это, конечно, автономные автомобили, но этим применение не ограничивается. Как вы знаете на беспилотные автомобили устанавливают лидары, стоят они достаточно дорого.

Статья в блоге google как раз о новом подходе к решению этой задачи, где используется всего одна камера (не стерео видео, как это было раньше). Как вы можете догадаться, для этого использовали нейронные сети.

По ссылке вы найдёте простое без технических деталей описание проблемы и решения https://ai.googleblog.com/2018/11/a-structured-approach-to-unsupervised.html.

Работа основана на этой статье https://arxiv.org/pdf/1811.06152.pdf и вот здесь можно подчеркнуть технические детали http://openaccess.thecvf.com/content_cvpr_2018/papers/Mahjourian_Unsupervised_Learning_of_CVPR_2018_paper.pdf

Авторы не ограничились статьёй, код реализованный на tensorflow доступен здесь https://github.com/tensorflow/models/tree/master/research/struct2depth

#nn #cv
Уже некоторое время по интернету ходят новости о BigGAN - усовершенствованной архитектуре GAN позволяющей генерировать синтетические объекты заданного класса. И прелесть в том, что вы можете сами сгенерировать чего-нибудь в браузере

https://colab.research.google.com/github/tensorflow/hub/blob/master/examples/colab/biggan_generation_with_tf_hub.ipynb

Мне хотелось немного разобраться в устройстве и что же там нового в сравнении с обычным GAN.

Оригинальная статья доступна здесь https://arxiv.org/pdf/1809.11096.pdf в приложении показана архитектура. Также полезно прочесть обзоры на статью https://openreview.net/forum?id=B1xsqj09Fm

Статья содержит множество трюков: увеличен размер batch в 8 раз и размер изображений в 2 раза. Шум подаваемый на вход был разделён на несколько частей и передавался на многие слои генератора. Также в статье предложено множество регуляризаций для улучшения стабильности обучения GAN.

Но есть и недостаток, для обучения использовалось 128-256 TPUs.

#nn #google #gan
Google magenta занимается различными идеями применения машинного обучения в творчестве. Сегодня обнаружил у них набор интерактивных демок, которые можно запустить прямо в браузере, от генерации изображений до создания музыки (если музыку сгенерировала сеть, то кому принадлежат права на эту музыку?)

Заходите и творите вместе с машиной https://magenta.tensorflow.org/demos

В дополнение подробная статья, как на keras сделать свою модель для переноса стиля на изображения, всё очень просто и подробно написано здесь https://medium.com/tensorflow/neural-style-transfer-creating-art-with-deep-learning-using-tf-keras-and-eager-execution-7d541ac31398 отличная возможность попробовать eager execution.

#art #ml #nn
Удивительно, что может сделать компания с большим количеством ресурсов и данных уже сейчас. Представьте, всё это сможет сделать каждый на своём ноутбуке, через несколько лет.

Демонстрация работы GAN от nvidia, генерация людей и перенос признаков на фотографии.

https://www.youtube.com/watch?v=kSLJriaOumA&feature=youtu.be&t=30

ссылка на статью https://arxiv.org/pdf/1812.04948.pdf

#nn #future
Про стилизацию изображений с помощью нейронных сетей вы слышали неоднократно. Вот новая работа в этом направлении https://github.com/luanfujun/deep-painterly-harmonization

Идея простая, если мы можем стилизовать одно фото использую стиль другого, то почему бы не добавить какой-либо объект и стилизовать его под это фото. С некоторыми фото получается очень даже неплохо.

Врепозитории код на matlab (можно использовать octave). Статья доступна здесь https://arxiv.org/abs/1804.03189

#nn #art
Как и ожидалось, нейронные сети находят всё большее применение в медицине. Работа про классификацию аритмии по ЭКГ https://stanfordmlgroup.github.io/projects/ecg2/

Ключевые особенности:

- классифицируется 10 разных видов аритмии
- сеть принимает "сырые" данные, нет никаких предобработок вроде Фурье
- было собрано 53,877 примеров взрослых пациентов, как обычно, это очень важный шаг
- средняя точность человека заявлена как 72.8% - алгоритм 80.07%

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

Статья на nature (увы не доступна свободно)
https://www.nature.com/articles/s41591-018-0268-3

#nn #health #datascience #ds
Представлена работа по трансляции активности мозга в речь. Подобные работы ведутся давно, например с визуализацией образов по мозговой активности. Как обычно, используются нейронные сети, исходный код в открытом доступе, но вот только поиграть дома с такой нейронкой не получится, нужды устройства для электроэнцефалографии (EEG), электрокортикографии (ECoG) и магнитоэнцефалографии (MEG).

Пока рано говорить о результатах, но если это работает, то сколько интересных экспериментов можно поставить с таким инструментом.

https://m.habr.com/ru/post/438508/

https://www.nature.com/articles/s41598-018-37359-z

http://naplab.ee.columbia.edu/naplib.html

#brain #nn #future
Немного киберпанка

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

#gan #nvidia #nn #future
Полезная тула для визуализации нейронных сетей https://github.com/lutzroeder/netron С помощью её вы можете открыть сохранённую нейронную сеть (поддерживаются все основные форматы) и визуализировать в виде красивого графа. Я попробовал, результат выглядит не плохо, и дополнительно к изображению, можно посмотреть параметры каждого слоя и прочитать информацию, что это за слой (естественно для своих слоёв такое не получите)

#tool #nn
Теперь немного про нейронные сети. Обычно сложно интерпретировать как и почему нейронная сеть решила именно так. Я не сторонник полностью интерпретируемого машинного обучения в ущерб их эффективности, но иногда заглянуть в чёрный ящик полезно для разработки.

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

В статье проводится обзор на примере задачи автодополнения поисковых запросов (или текста, когда вы набираете что-то на клавиатуре). В статье приходят к выводу, что GRU более ёмкая для запоминания long-term зависимостей, в сравнении с LSTM и Nested LSTM. Что лучше на практике, зависит от задачи, но понимание таких особенностей сетей очень помогает. Было очень бы интересно посмотреть, как запоминают современные модели и сравнить GRU с ELMO, BERT.

https://distill.pub/2019/memorization-in-rnns/

Интересный подход к визуализации "запоминания" в рекуррентных сетях. Как обычно, на distill очень красивые и интерактивные визуализации, хотя бы для этого стоит перейти по ссылке:)

#rnn #nn #sequences #paper
Сегодня хочу поделиться несколькими ссылками на обучающие статьи, первая из них о нейронных сетях на PyTorch, очень хороший туториал для того, чтобы начать, достаточно подробно и небольшими шагами объясняются всё более сложные идеи фреймворка https://pytorch.org/tutorials/beginner/nn_tutorial.html

Вторая о TensorFlow 2.0, он вот-вот выйдет, интересного там много и важные новшества отображены в виде серии твитов https://twitter.com/fchollet/status/1105139360226140160 ( есть документ, где можно сразу и запустить https://colab.research.google.com/drive/17u-pRZJnKN0gO5XZmq8n5A2bKGrfKEUg)

Дальше про математику, не сложная серия статей про важные концепции, которые нужны Data Science https://towardsdatascience.com/statistics-is-the-grammar-of-data-science-part-1-c306cd02e4db объяснение поверхностное, но не плохое в качестве отправной точки. Последняя статья из серии о важной теореме Байеса, о которой рекомендую почитать серию статей https://arbital.com/p/bayes_rule_guide/ подробно, на примерах с картинками, всё как мы любим

#nn #math #pytorch #tf #stats #tuturial
Andrej Karpathy недавно опубликовал у себя подборку советов, как тренировать нейронные сети. Со стороны может показаться что тренировка сетей сводится к подбору параметров, берём некоторую модель и начинаем случайным образом выбирать параметры и учить модели и сравнивать результаты, но всё куда сложнее и если работать таким образом, то вероятно у вас ничего хорошего не получится.

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

https://karpathy.github.io/2019/04/25/recipe/

#nn #guide #tutorial