Обложка канала

tldr_arxiv. Страница 5

Короткий и четкий разбор свежих и нашумевших статей по deep learning

  • tldr_arxiv

    Extracting a biologically relevant latent space from cancer transcriptomes with variational autoencoders
    https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5728678/
    😎 В чем понт
    Новости по нейронкам от коллег-биоинформатиков, спасибо Даше Романовской @dariaromanovskaia.
    Ежегодно от рака умирает 8 млн человек. Часто причина в плохой диагностике - врачи неправильно определяют особенности опухоли и назначают неподходящее лечение. С помощью вариационного автоэнкодера авторы научились сжимать информацию о РНК клетки и интерпретировать результат. По полученным признакам можно классифицировать, к какому типу относится рак, и какой ткани принадлежит опухоль.

    🔎 Подробности
    ☘️ Немного биологии или зачем это надо
    Традиционно, врачи лечат всех онкологических пациентов по одинаковой схеме, вне зависимости от индивидуальных особенностей, что приводит к огромному числу ошибок. Поэтому хорошо иметь признаковое описание конкретного пациента, понимать, какие молекулы есть в его организме и сколько их. Информация о том, какие белки(основной тип молекул) потенциально могут вырабатываться в клетке содержится в ДНК (генах). А вот то, какие белки реально вырабатываются в каждый момент времени (или экспрессируются), а значит, вид рака пациента, можно понять по последовательности РНК. РНК - молекула, передающая информацию от ДНК к белку. С помощью процедуры, которая называется РНК-секвенированием можно определять, какие именно молекулы РНК сейчас есть в клетках, то есть какие гены “работают”, экспрессируются и насколько эффективно - уровень экспрессии. Если научиться извлекать из данных об уровне экспрессии генов важные характеристики пациента и его рака, то это заметно улучшит диагностику и позволит индивидуально подойти к лечению.

    🗒 Данные+алгоритм или причем тут VAE
    Авторы взяли данные о более чем 10,000 различных опухолях в 33 типах рака. Данные об экспрессии самых вариабельных 5000 генов были сжаты в пространство признаков размерности 100, а затем с помощью декодера восстановлены обратно в 5000. Вариационный автоэнкодер позволяет не просто сжимать данные в какое-то скрытое представление, а сжимать их сначала в 2 параметра для каждого признака - дисперсию и матожидание, из них генерить скрытое представление, а потом уже засовывать в декодер. Матожидание и дисперсию штрафуем за отклонение от нуля и единицы. Такой трюк позволяет гарантировать одинаковый масштаб всех признаков и их независимость, что хорошо. Валидировали эмбеддинги следующим образом - брали образцы для разных типов рака и смотрели межгрупповое и внутригрупповое кластерные расстояния - межгрупповое было больше, раки разделялись. Веса декодера использовались для определения вклада каждого гена в полученное скрытое представление.

    ✏️ Что в итоге
    Сделали классные эмбеддинги. По выделенным эмбеддингам возможно определить типы тканей, в которых образуются опухоли и непосредственно типы рака. Полученный набор признаков не является избыточным и алгоритм чувствителен к различным вариациям в данных (например, различим пол пациентов). Выделили важные признаки для классификации типов рака, например стадию развития клеток, на которых находились образцы.
  • tldr_arxiv

    Talk the Walk: Navigating New York City through Grounded Dialogue
    @tldr_arxiv
    🕐 Когда - 13 июля 2018 год
    👓 В чем понт
    Алгоритм, позволяющий коммуницировать двум агентам - туристу, который видит мир вокруг себя и должен добраться до финальной точки, но где она, турист не знает, и гида, который не видит мир вокруг туриста и по описанию должен рассказать туристу, что сделать дальше, чтобы дойти до цели. С рядом предположений алгоритм бьет качество решения этой задачи людьми.
    Ссылка на обзор - http://telegra.ph/Talk-the-Walk-Navigating-New-York-City-through-Grounded-Dialogue-07-20
  • tldr_arxiv

  • Реклама

  • tldr_arxiv

    Insights on representational similarity in neural networks with canonical correlation
    https://arxiv.org/abs/1806.05759
    Когда - 21 июня 2018
    🕶 В чем понт
    Алгоритм исследования поведения нейронных сетей на основе метода, считающего сходство между слоями(CCA - Canonical correlation analysis), очищенного от шума. Исследовали этим методом поведение сетей, нашли особенности генерализующих сетей, сетей с одинаковой топологией, но разным learning rate, реккурентных сетей.
    🔍 Подробности
    🖇 CCA
    CCA - математический метод, который позволяет находить лучшую линейную комбинацию, связывающую два массива, и таким образом считать сходство между ними (в нашем случае массивы это активации двух слоёв сети). В результате мы получаем коэффициенты корреляции между векторами разложения массива (CCA - векторами) для наших слоев. Чем больше эти коэффициенты, тем ближе слои , расстояние - единица минус среднее между коэффициентами корреляции.
    🔦 Отделение шума от сигнала
    Возможно, некоторые CCA векторы активации шумовые и нам не нужны. Посмотрим, как меняются эти вектора, когда лосс сети выходит на константу - некоторые вектора тоже принимают постоянные значения, а некоторые хаотично меняются - их логично считать за шум и не учитывать корреляцию между ними в расстоянии.
    🖋 Выводы, к которым пришли
    С помощью метода выше сравнивали слои в нейронках и сделали выводы:
    1. Сети, которые генерализуют сходятся к более похожим репрезентациям, чем те, которые запоминают
    2. Широкие сети сходятся к более похожим решениям, в отличие от узких
    3. Сети с одинаковой топологией и разными learning rate сходятся к маленькому набору разных решений
    4. Между временными шагами в RNN репрезентации значительно меняются
    5. Таким методом можно и дальше смотреть, что происходит внутри нейронок, осознанно, а не алхимически улучшая их обучение
  • tldr_arxiv

    Improving Language Understanding by Generative Pre-Training
    https://blog.openai.com/language-unsupervised/
    🕐Когда - препринт
    👓 В чем понт
    Пайплайн от OpenAI, включающий в себя тренировку на неразмеченных данных, а потом тюнинг под конкретную задачу, который значительно улучшает качество на 9 из 12 рассмотренных NLP задач, например на 9 процентов в задаче понимания текста (датасет подбора подходящего окончания под часть текста Stories Cloze Test) и на 6 процентов в задаче ответа на вопросы (датасет RACE - вопросы с экзаменов)

    🔎 Подробности
    🔗Предобучение без учителя.
    Перед тем как учить конкретную задачу NLP, тренируется модель, основанная на нашумевшей архитектуре Transformer, в которой входные токены, слитые с номерами своих позиций в предложении, обрабатываются с помощью аттеншна - учатся веса, с которыми нужно усреднять эти вектора. В процессе обучения мы предсказываем вероятность каждого токена(например слова) при условии предыдущих. На выходе получаем языковую модель - представление текста в информативном векторном пространстве.

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

    🖋 Что в итоге
    Простой и эффективный стек для улучшения качества на своей задаче с помощью неразмеченных данных, подтверждает курс в NLP на обьединение разных задач, использование неразмеченных данных и attention.
  • tldr_arxiv

    Program Synthesis Through Reinforcement Learning Guided Tree Search
    https://arxiv.org/pdf/1806.02932.pdf
    🕐 Когда - 8 июня 2018
    👓 В чем понт
    Модель на основе обучения с подкреплением и поиска по дереву, умеющая писать программный код и обгоняющая остальные SOTA подходы до 400%

    🔎 Подробности
    С точки зрения RL задачу можно поставить так: у нас есть агент - алгоритм-программист. Действия - это строки программного кода, который он может писать, состояния - память до и после написания кода. Реворд обратно пропорционален сумме действий, которые пришлось совершить агенту (хотим писать короткий код) и расстоянию между желаемым и наблюдаемым состоянием памяти. После того, как мы набираем некий пороговый реворд, программа считается решенной. В результате обучения мы получаем политику - то, с какой вероятностью из текущего состояния памяти нужно писать каждую возможную строку кода. Оптимизируемся мы алгоритмом Q-learning - предсказываем будущий реворд из определенного состояния и действия. Однако процесс решения долгий и, чтобы его ускорить, увеличив количество решенных программ за фиксированное число попыток, применяется поиск по дереву. Сначала мы с учетом политики случайно выбираем следующие состояния, считаем для них реворд, обучаемся на этом, делаем так 100 раз. Затем мы считаем Q-функцию для всех состояний, в которые мы случайно не попали, а потом жадно (сэмплируем из политики не вероятностно, а наиболее оптимально) выбираем следующия состояния, обучаемся на них, делаем так еще 100 раз. Это позволяет не упереться в локальный минимум и быстрее обучиться. Именно поиск по дереву - одна из главных фишек статьи, дающая прирост во всех экспериментах на 70%-100%.

    🖋 Что в итоге
    Шаг навстречу автоматизации программирования, модель заметно лучшего качества, решает до 400% больше программ, чем ее предшественники(например, MCMC - стохастический поиск, основанный на эвристике), не делает дополнительных предположений о языке программирования, отправлена на NIPS 2018.
  • tldr_arxiv

    KG2: Learning to Reason Science Exam Questions with Contextual Knowledge Graph Embeddings
    https://arxiv.org/abs/1805.12393
    🕐Когда - 31 марта 2018
    👓 В чем понт
    Недавно (2018 год) в мире NLP появилась интересная задачка - AI2 Reasoning Challenge (ARC), смысл которой - научиться отвечать на сложные вопросы из экзаменов, требующие логики. Уметь давать ответы, исходя не просто из контекста, а из сложной логики, важно, чтобы, например, делать действительно умных голосовых помощников, способных не просто поддержать разговор, но и найти решение непростых проблем. В статье авторы предлагают новый метод решения этой задачки на эмбеддингах графов и бьют SOTA.
    🔎 Подробности
    📗О задаче
    Датасет к задаче представляет собой вопросы и четыре текстовых ответа, из которых только один правильный. Задача разделена на две части. Первая - простая, которая решается классическими методами, анализирующими совстречаемость слов, состоит из вопросов вроде "Какое свойство воздуха измеряет барометр?" (A) скорость (B) давление (C) влажность (D) температура. Для второй, более сложной, уже не хватит знания о том, какие слова встречаются рядом с какими, например в вопросе "Какое свойство минерала можно определить, просто взглянув на него?" (A) блеск (B) вес (C) масса (D) твердость, все варианты ответа находятся в контексте вопроса.
    🔧Алгоритм
    Сначала из текущего вопроса и 4 ответов образуются 4 гипотезы - если вопрос начинается на wh-слова (which, what …), то вместо wh-слова ставится ответ. Если такого слова нет, ответ ставится в конец предложения. После этого с помощью ElasticSearch к каждой из текущих гипотез находится 20 наиболее похожих предложений - это будут наши подтверждения гипотез. Представим гипотезу и ее подтверждения в виде графов. Разобьем гипотезу на три части - объект, субъект и предикат. Например, для предложения "Seed of oak comes from fruit", субъектом будет "seed of oak", обьектом "from fruit", а предикатом - "comes" (пример графов смотри на картинке к посту). Мы должны выбрать тот вариант ответа, гипотеза которого будет наиболее близка к своим подтверждениям (наиболее близка к истине), то есть найти такую метрику расстояния для графов гипотез и подтверждения, что расстояние между истинной гипотезой и ее подтверждениями была минимальной. Для этого получим эмбеддинг каждой вершины в графе, который будет учитывать соседей - засунем в нейронку для каждой вершины признаки ее текста, эмбеддинги соседей и род связи с соседями(субьект, обьект). Модель учится итеративно, эмбеддинги всех вершин последовательно уточняются. Потом найдем вершины в графе гипотез и их подтверждений, вектора которых ближе всего и будет считать функцию от них метрикой расстояния. В результате применения модели авторы обошли предыдущие SOTA на 17.5%
    💫 Что дальше
    Модель авторов хороша, но прежнему далека от того, чтобы пройти экзамен - правильные ответы меньше, чем на половину вопросов. Авторы провели анализ случайных вопросов и узнали, почему их скор все еще далек от совершенства. В 51% случаев это оказалось проблемой нехватки информации - по выделенным 20 утверждениям даже люди не смогли ответить на вопрос - нужно выделять информацию лучше и расширять базу знаний, в 12% при построении графа информации происходя ошибки - нужно улучшать алгоритм выделения триплетов, в 21% случаев очень сложная причинность и только в 15% случаев текущая модель авторов теоретически может придти к успеху.
    🗒 Что на картинке
    Пример графов для гипотезы и ее подтверждений
  • tldr_arxiv

    Synthetically Trained Neural Networks for Learning Human-Readable Plans from Real-World Demonstrations
    https://arxiv.org/pdf/1805.07054.pdf
    🕐 Когда - 18 мая 2018
    🍓 В чем понт
    Когда мы хотим что-то от робота, хорошо уметь обьяснять, что именно. Но писать инструкцию к действиям экспертно - сложно и неудобно. Поэтому в своей статье авторы научили архитектуру из нейросетей составлять и выполнять инструкцию, которую может читать и править человек, автоматически, используя одну (!) демонстрацию желаемого результата. Кубики разных цветов ставили друг на друга разными способами, снимали на камеру, показывали архитектуре и она с помощью робота приводили кубики в итоговое положение демонстрации с точностью, близкой к 100 процентам.
    📒 Подробности
    Модель состоит из пяти частей
    🎲 Детекция кубиков
    В этой задаче мы рассматриваем 7 кубиков - у каждого кубика есть 7 невидимых и 1 видимая вершина, мы пытаемся детектировать 7 видимых вершин, пропуская изображение через претренированную на Imagenet VGG, для каждый вершины учим матрицу с вероятностью встретить ее в каждой части изображения.
    🔗 Определение связи между кубиками
    Этой сетке на вход для каждой пары кубиков мы кормим координаты вершин этих 2 кубиков и на выходе определяем, первый кубик находится слева, сверху от второго или нигде из вышеперечисленного. Если у нас есть такая информация для каждой пары кубиков, мы понимаем как они все в целом расположены.
    🖌 Написание инструкции
    В этой части у нас есть 2 сущности - кубик, который мы хотим переместить в конкретный шаг, и кубик, на который мы хотим переместить первый кубик. Мы составляем тензор, в котором пишем вероятности переместить каждый обьект на каждый, и берем argmax - такой тензор легко читается и правится человеком.
    🛠 Выполнение инструкции
    На первый взгляд не очень интуитивно, зачем под этот пункт нужна нейросетка - если есть инструкция, почему бы просто не дать ее роботу и сказать выполнить? Но робот может совершать ошибки в манипуляции предметами и среда вокруг может меняться. Поэтому на каждом временном шаге мы кормим сетке инструкцию и текущее состояние среды (снимок камеры).
    🗝 Что в итоге
    Пока пример, на котором решают эту задачу очень простой и не имеет прикладного значения, но можно представить, как это поможет при доработке в реальной жизни! Разработчикам станет гораздо проще учить роботов, кроме того, каждый сможет расширять функциональность робота под себя - делать тосты с правильной корочкой, по-особенному гладить свои любимые рубашки, или показывать роботу в безопасных условиях то, что нужно повторить в экстремальной ситуации - например отключать проводку в горящем здании.
    🗒 Что на рисунке
    На первой картинке сверху - архитектура модели. На второй картинке снизу - пример того, как выглядит снимок камеры в нашей задаче и детекция кубика.
  • tldr_arxiv

    The Unreasonable Effectiveness of Deep Features as a Perceptual Metric
    https://arxiv.org/pdf/1801.03924.pdf
    🕐 Когда - 10 апреля 2018 года
    🍓 В чем понт
    Во многих задачах компьютерного зрения возникает необходимость говорить, какая из двух деформированных картинок больше похожа на исходную. Например, когда мы синтезируем картинки, чтобы правильно выучиться, во время тренировки хочется понимать, молодцы мы или нет. А именно уметь считать, насколько нарисованная сетью картинка похожа на оригинал. Причем не просто абстрактно похожа, а похожа по мнению людей. Сейчас часто используются незамысловатые математические метрики -например SSIM, функция от среднего и дисперсии пикселей картинок, которые часто не коррелируют с представлениями людей о похожести картинок. Авторы говорят, что представления, которые формируются в сверхточных сетях, обученных на совершенно разных задачах передают мнение людей заметно лучше, чем простые эвристики. Вдумчивое использование глубоких метрик сходства сможет поднять качество в синтезе изображений, воссстановлении деформированного изображения, сжатия изображений.
    🔎 Подробности
    📘 Датасет
    Для того, чтобы сравнивать полезность разных архитектур для подсчета метрики был собран датасет из полумиллиона картинок с оценками сходства между ними. В датасете если оригинальные картинки и их деформации - часть деформаций производилась классическими способами - добавление гауссовского шума, блюр, часть дефектов получалась обработкой нейронной сетью. Ведь в реальных задачах, например в сжатии изображений алгоритму нужно будет справляться со сравнением не выдуманных нами дефектов(блюра), а с изображениями, полученными сеткой.
    🔗 Модели
    Для расчета метрики схожести авторы брали сети VGG, Alexnet и SqueezeNet (легкая сетка для классификации), а также генеративные модели и еще несколько видов моделей. После обучения сети на каждой конкретной задаче сходство между картинками мерили следующим образом - брали нормализованные активации слоев в сети для двух картинок, считали для каждой пары L2- расстояние между ними, усредняли.
    🔧 Эксперименты
    В экспериментах исследовались, насколько разные метрики совпадают с мнением людей. Выяснили, что метрики, полученные даже с помощью простых моделей компьютерного зрения лучше математических метрик. Причем это свойство обеспечивается закономерностями в данных, а не архитектурой - случайно инициализированные сети не выдают адекватных метрик. Оказалось, что простые метрики по сравнению с нейросетевыми и оценкой людей считают размытие картинки несущественным искажением.
    ✏️ Что результате
    Сделано исследование, рассматривающее полезность функций глубоких сверточных сетей, как метрик сходства изображений. Эта идея не нова - до этого, например, в задаче синтеза изображений уже использовались активации VGG на Imagenet, но активации сетей, обученных на другие задачи не исследовались и не сопоставлялись друг с другом. Плюс, авторы используют большой датасет, состоящий из оценок похожести картинок людьми, чтобы откалибровать активации сверточных сетей и сделать нашу метрику еще лучше. Даже функции, возникающие в простых сверточных сетях, оптимальнее классических метрик. Авторы связывают такое открытие с тем, что во время решения задачек по компьютерному зрению сеть не имеет шансов не выучить функции сходства картинок, так как от нее требуют выделять главное и отсекать неважное.
    🍒 Рисунок из статьи
    На рисунке изображена оригинальная картинка и две ее деформации. Галочками отмечено, какую деформацию считают ближе к оригинальной люди и разные алгоритмы.
  • tldr_arxiv

    🎤 Как возникают языки и почему именно так?
    Emergence of linguistic communication from referential games with symbolic and pixel input
    🕐 Когда - 24 февраля 2018 года
    👓 В чем понт
    Почему современные языки такие странные и о чем думали наши предки? Кому вообще могло придти в голову называть белый порошок и страдание одним набором символов ‘мука’? Что оптимально, а что нет в создании языка? Эти вопросы мы часто задаем себе. И теперь у нас есть уникальная возможность получить на них ответы, запустив эксперимент в пробирке, используя машинное обучение. Например, давайте придумаем говорящего и слушающего агента, дадим им среду, заставим коммуницировать между собой и посмотрим, какой язык они придумают. Постановка задачи выглядит так - есть первый агент (говорящий), ему показывают какой-то объект (например картинку), он может из определенного набора символов выбрать такую комбинацию, чтобы второй агент(слушающий), получив эту комбинацию на вход, понял, к какому именно изображению подходит описание. В статье авторы исследуют то, какими особенностями обладают языки, которые придумывают алгоритмы, чтобы общаться по разным задачам - например, обьяснить понятие, состоящее из бинарных признаков или картинку.
    ✏️ К чему пришли?
    Когда мы заставляем агентов объяснять друг другу различные понятия, у них получается создать язык с проблемами и преимуществами, с которыми сталкиваемся и мы при создании языка - композиционная структура, омонемия, специфика, связанная с важностью распознавания понятий, похожая структура модели для говорящего и слушающего. У агентов получается добиться хорошего понимания друг друга даже на картинках
    🔎 Подробности статьи можно посмотреть по ссылке http://telegra.ph/Pochemu-yazyki-imenno-takie-vyyasnim-s-pomoshchyu-mashinnogo-obucheniya-05-09
  • tldr_arxiv

    🍾👶 Olive Oil is Made of Olives, Baby Oil is Made for Babies: Interpreting Noun Compounds using Paraphrases in a Neural Model
    https://arxiv.org/pdf/1803.08073.pdf
    🕐 Когда - 21 марта 2018 год
    👓 В чем понт
    Часто в голосовых помощниках возникает потребность понимать взаимоотношения слов внутри словосочетаний. Например, когда вы спрашиваете у голосового помощника: 'Алиса, есть ли у меня собрание утром сегодня?’, вы хотите, чтобы помощник посмотрел список собраний утром. А когда вы задаете вопрос: 'Алиса, когда у меня сегодня собрание маркетологов?'- нужно, чтобы помощник проанализировал список участников встреч. То есть стоит понимать, в каких отношениях находятся между собой слова в сочетаниях ' собрание (когда?) утром' и 'собрание (кого?) маркетологов’. В статье авторы классифицируют связи между существительными в словосочетаниях, в том числе и на словах, которые модель никогда не видела, и превосходят другие методы в этой задаче.
    🔎 Подробности
    🎲 Модель
    Для того, чтобы предсказывать, к какому классу принадлежит связь в словосочетании, нужно получить его признаковое описание. Авторы берут четыре эмбеддинга и склеивают их между собой. Первые два эмбеддинга дистрибутивные(рассчитанные на основе совместноговстречания слов) - это GloVe вектора двух слов в словосочетании. Они нужны, чтобы извлечь информацию о смысле отдельных слов. Третий эмбеддинг мы получаем, склеив эти два слова в один токен и построив для него тот же эмбеддинг GloVe, но который уже учитывает совместный контекст слов. Четвертый эмбеддинг - это path-эмбеддинг, взятый из статьи одного из авторов с сетью с интригующим названием HYPENet (https://arxiv.org/pdf/1608.05014.pdf). Дело в том, что часто наши существительные разделяют еще какие-то слова, назовем все эти слова путем. Превратив все возможные пути между нашими существительными из словосочетаний в вектора, и усреднив все вектора для путей с учетом частоты каждого возможного варианта пути, можно получить очень полезную информацию о двух наших существительных. Такие вектора для путей мы получаем запихивая в LSTM эмбеддинги, выученные на основе признаков всех слов, входящих в путь (частей речи, направления связи, лемм и типа зависимости между ними) .
    После того, как мы получили один такой большой эмбеддинг из четырех частей, мы подаем его в модель и обучаем многоклассовой классификации на нашей обучающей выборке. Для того, чтобы понимать, какие из эмбеддингов вносят наибольший вклад и лучше работают, в качестве финального эмбеддинга пробовались еще несколько вариантов - только четвертый path-embedding, а также комбинация из первых двух дистрибутивных и четвертого path-embedding.
    🔧 Эксперименты
    Эксперименты проводились на датасете Tratz dataset. Датасет разбивался на train и test четырьмя разными способами - 1) случайно, 2) так, чтобы первое слово в словосочетании было уникальным для train и test, 3) второе слово было уникально, 4) а также, чтобы уникальными были оба слова. Дело в том, что если тестироваться только на случайно разбитой выборке, модель может просто запомнить все словосочетания в train и перенести их на test. В качестве baseline были взяты несколько моделей без path-эмбеддингов. Модели, которые используют path-эмбеддинги, выигрывают у baseline, которые его не содержат.
    ✏️ Что в итоге
    Сделана модель, с помощью которой можно понимать взаимосвязи между существительными и улучшать разные виды помощников и диалоговых систем. Также поставлен эксперимент, в результате которого можно сказать, что path-эмбеддинги улучшают результаты модели.
  • tldr_arxiv

    Differentiable plasticity: training plastic neural networks with backpropagation
    https://arxiv.org/pdf/1804.02464.pdf
    За наводку спасибо @VictorPo
    🕐 Когда - 2 апреля 2018 года

    🥂 В чем понт
    В своей статье авторы к традиционным весам в нейронной сети предлагают добавлять еще и так называемую 'пластичность’ - величину, которая зависит от входа и выхода в нейрон. Такая идея почерпнута из знания о том, как устроен мозг человека - если долго и одновременно активировать одни и те же нейроны, то связь между ними усилится. Авторы говорят, что такой метод может заметно улучшить гибкость сетей и приводят несколько экспериментов, в которых пластичная сеть бьет обычную

    🔎 Подробности
    📎 О пластичности
    Чтобы сочетать в своем алгоритме все лучшее, в качестве новых весов в нейронной сети авторы взяли сумму обычных и пластичных весов, причем для упрощения коэффициенты в сумме весов фиксируется для всей сети. Пластичные веса отличаются от фиксированных тем, что они зависят от входов и выходов в нейроны. Если говорить конкретнее, пластичный вес на шаге t представляет из себя произведение активаций входа и выхода из нейрона, домноженного на коэффициент k, просуммированного с пластичным весом на шаге на t-1, домноженным на коэффициент 1-k. Коэффициент k для простоты фиксирован для всей сети и обучается как дополнительный параметр. Таким образом, если оба нейрона дают высокую активацию одновременно, пластичный вес между ними растет, в противном случае - деградирует.

    🔧 Эксперименты
    👓 Pattern memorization
    Сначала авторы рассмотрели задачу запоминания паттернов. Сети показывают набор из перемешанных бинарных паттернов - векторов, каждый элемент которых соответствует либо красному, либо синему цвету, вместе с векторами, просто заполненными нулями. Затем один из паттернов деформируют- заполняют наполовину нулями, и просят сеть его восстановить. Пластичная реккурентная нейросеть на 200 эпохе с 51 нейроном дала результат, который смогла выдать LSTM на 600 000 эпохе с 2050 нейронами.

    🍢 One-shot pattern classification
    В этой задаче авторы взяли Omniglot dataset, состоящий из символов, относящихся к разным классам. В каждом эпизоде из всех классов случайно выбирают несколько классов и обучаются на части примеров из них. На тесте применяют алгоритм к примерам из выбранных классов. Работу пластичного алгоритма сравнили с другими методами- наш метод дает сравнимые результаты с некоторыми алгоритмами, в которых значительно больше параметров, и обгоняет алгоритмы со схожим числом параметров.

    💈 RL - лабиринт
    Чтобы посмотреть, как метод работает в задачах обучения с подкреплением, авторы протестировали свой алгоритм на задаче лабиринта - есть фиксированная конструкция лабиринта, которая не меняется на протяжение задачи. От эпизода к эпизоду выбирается случайная стена, по достижение которой агенту дается награда. Задача алгоритма - научиться находить такую награду. Сеть с пластичными весами находит эту награду лучше.

    ✏️ Что в итоге?
    Статья с интересной идеей о том, как увеличить выразительность модели с добавлением пластичности в веса. Авторы несколько раз говорят, что пошли по самому простому варианту - при выборе механизма пластичности, в определении для всей сети одинаковых коэффициентов пластичности, в постановке задачи и самих задачах. Соответственно в качестве идей для развития - докрутить все вышеперечисленные вещи, которые не докрутили авторы.
  • tldr_arxiv

    Машинный перевод - очень крутая и актуальная область, которая активно развивается и публикуется. Краткий обзор по базовым и интересным штукам из этой темы, подготовленный для студентов курса Data mining in action направления ‘Тренды’, можно найти по ссылке http://telegra.ph/Mashinnyj-perevod-04-18
  • tldr_arxiv

    Continuous adaptation via meta-learning in non stationary and competitive enviroment
    https://arxiv.org/abs/1710.03641
    🕐 Когда - 23 февраля 2018 года

    В чем суть
    В классике обучения с подкреплением мы учим агента добиваться наибольшей награды в фиксированной среде. Однако в реальной жизни среда часто меняется - у роботов ломаются детали, дверь, которую они пытаются открыть, заклинивает. Поэтому важно учить агентов быстро приспосабливаться в меняющейся среде даже при нехватке данных. Этим занимается continuous meta-learning и в частности авторы в своей статье, превосходя другие методы. Авторы говорят, что исследования в этой области сильно приближают нас к общему ИИ.

    Подробности
    🔎 О модели
    Наша главная задача - понять, что делать агенту в каждый момент времени, или выучить политику - функцию от текущего состояния, которая выдает то, насколько оптимально совершать каждое действие. Среда меняется несколько раз - скажем, что каждое изменение среды соответствует отдельной задаче. Из всего множества задач насэмплируем пары последовательных задач - до и после изменения в среде. Сначала параметры политики инициализируем случайно. Затем возьмем первую пару задач 'до' и ‘после’, а случайно инициализированную политику назовем оптимальной для задачи ‘до’. С помощью этой политики ‘до’ , из среды ‘после’ насэмплируем набор траекторий - последовательность действий и состояний, которые на наш взгляд ведут нас к максимальному успеху (награде). Затем посчитаем лосс на этих траекториях и вычтем из параметров политики ‘до' градиент этого лосса - получим параметры для политики ‘после’. Интуитивно это значит, что мы посмотрели, кто из параметров в большей степени виноват в неидеальной награде и подправили параметры с учетом этого. Затем с помощью этой подправленной политики ‘после' насэмплиуем эти траектории еще раз - они будут еще более оптимальными. По этим оптимальным траекториям посчитаем мета-лосс - оптимальность принятой политики на состоянии ‘после’ при условии состояния ‘до’. Вычтя градиент мета-лосса из политики ‘до’ получим финальную политику этой стадии обучения. Дальше насэмплируем еще одну пару ‘до’- ‘после’, только теперь на самом первом этапе при использовании политики ‘до' вместо случайной политики подставим финальную политику. Будем повторять для всех сред ‘до’- ‘после', пока финальная политика практически не перестанет меняться.

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

    🔧 Эксперименты
    Авторы хотели проверить то, насколько хорошо агенты адаптируются к меняющейся среде. Для этого агентам предлагалась тренироваться играть в robosumo с противниками из одного множества, а применять опыт на других агентах, которых они никогда не видели. Авторы сравнивали свой алгоритм с вариантом rl без адаптации и с другими способами адаптации adaptation via tracking и RL2. Способ адаптации, предложенный авторами в статье, показал лучшие результаты.

    Что в итоге
    Сделан метод, который позволяет агенту непрерывно адаптироваться в меняющихся условиях, и делает это лучше других методов. Эта задачка очень крутая и важная, потому что в реальном мире среда и задачи постоянно меняются, и важно уметь одновременно использовать накопленный опыт и быстро приспосабливаться.
  • tldr_arxiv

    Generative Multi-Agent Behavioral Cloning
    https://arxiv.org/pdf/1803.07612.pdf
    🕐 Когда - 2 апреля 2018

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

    Подробности
    ✏️ Суть алгоритма
    Агенты - это игроки в баскетбол (их 5 штук), состояния - их координаты, а действия - перемещение по полю. В обучающей выборке есть 10 тыс примеров. Цель авторов - в каждый момент времени, для каждого состояния понимать, что делать дальше - выучить политику (вероятность действия при условии текущего состояния и истории). Авторы разрабатывают алгоритм из класса behavioral cloning - считают политику так, чтобы изначальные состояния отображались в вероятностные распределения для действий (это еще называется стохастической политикой), просто мимикрируя под данные. Причем так, чтобы эти вероятностные распределения были мультимодальными (игроки могли вести себя неединственным образом).

    🎲 RNN-VAE-VRNN
    Для того, чтобы из состояний генерить вероятностные распределения для действий, авторы используют VRNNs - рекурентные сети со встроенным вариационным автоэнкодером. Рекурентные нейронные сети(RNN) - сети, берущие текущее состояние x_t (в нашем случае это просто координаты игроков на поле) и вектор скрытых переменных h_t-1 для прошлых состояний, предсказывая вероятность этого состояния, и передающих дальше вектор скрытых переменных h_t для текущего состояния. Каждую такую сеть мы учим для каждого игрока отдельно. Вариационный автоэнкодер (VAE) умеет генерить вероятностное распределение, используя стохастические латентные переменные z_t. VRNN получается смесью этих двух алгоритмов - встраивая стохастические переменные z_t в скрытые переменные h_t рекурентной сети - теперь в нашей системе есть случайность, агент не будет вести себя одинаково.

    🔎 Детали алгоритма
    Авторы берут состояния (координаты каждого игрока на поле) и пытаются выучить политику, а конкретнее, предсказать вероятность каждых координат x_t с помощью VRNN при условии предыдущих координат x_t-1 и скрытого состояния h_t-1, встраивая в нее стохастическую переменную z_t, чтобы отойти от предопределенности стратегии агентов во всех партиях(обеспечить мультимодальность распределения). Все эти расчеты происходят отдельно для каждого игрока. Далее нам нужно как-то связать игроков. Добавим еще одну переменную (макро-цель) - стохастическую g_t, общую для всех игроков. Теперь для каждого из k агентов h_t будет зависеть не только от z_t, но и от g_t. Учим g_t мы с помощью RNN, подавая ей на вход скрытое состояние h_g_t (не путать с h_t), и предыдущее состояние x_t-1(координаты игроков). В этом всем трудно запутаться, поэтому схему с VRNN для каждого игрока и надстройкой с макро-целями можно найти после поста:)

    🤓 Как мерили качество.
    Авторы сравнивали свой подход с бейзлайном (VRNN без макро-целей). Мерили то, каким траекториям профессиональные судьи отдают предпочтение - сгенерированными нашим методом или бейзлайном. Судьи отдают предпочтение нашему методу.

    Что в итоге
    Авторы научили агентов круто играть вместе в баскетбол с помощью макро-целей, которые позволяют агентам кооперироваться. В качестве будущей работы предлагается распространять идею макро-целей на новые задачки - диалог между двумя агентами или генерацию музыки (макро-цель тут превратится в рефрен, главную тему) и изучать макро-цели дальше.
  • Реклама

  • tldr_arxiv

    On the importance of single directions for generalization
    https://openreview.net/pdf?id=r1iuQjxCZ
    Когда - 16 февраля 2018

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

    Подробности
    ✏️Факт 1
    Для сетей, которые запоминают,конкретные ячейки(например, нейроны) важнее, чем для генерализующих
    🔎Пруф
    Первую сеть, которая на наш взгляд неплохо генерализует, обучаем на обычном датасете. Потом искажаем наш датасет, случайно перемешивая метки классов и пытаемся обучить на нем вторую сеть. В таком датасете заметно меньше логики, поэтому второй сети придется его запоминать. Важность конкретных ячеек для обеих сетей мы сравниваем, фиксируя активации для части ячеек в этих сетях и наблюдая за ухудшением качества. В запоминающей сети качество ухудшилось сильнее.

    ✏️Факт 2
    Чтобы понимать, какую модель выбрать и когда останавливаться, необязательно использовать отложенный датасет(который круто было бы использовать для тренировки)
    🔎Пруф
    Авторы строят график зависимости AUC от эпохи обучения, фиксируя ячейки в сети. Приходят к выводу, что эта кривая начинает менять характер своего поведения, когда начинается переобучение(начинает расти лосс на отложенной выборке).

    ✏️Факт 3
    Dropout не панацея и не обеспечивает гарантированной генерализации
    🔎Пруф
    При использовании dropout, сеть, обученная на датасете с перемешанными лейблами(негенерализующая) запоминает примеры многими методами, вместо того, чтобы обобщиться, что можно наблюдать при фиксации большого числа ячеек, чем при выкидывании в dropout.

    ✏️Факт 4
    А batchnorm похоже панацея при генерализации :)
    🔎Пруф
    Авторы обучают сети с batchnorm(нормализуют входные сигналы для нелинейностей в каждом скрытом слое) и без него, и смотрят, насколько качество предсказаний ухудшается с фиксацией части ячеек. Оказывается, что сети с batchnorm заметно более устойчивы к такому воздействию, а значит лучше генерализуют(см факт1)

    ✏️Факт 5
    Batchnorm способствует преобладанию ячеек с информацией сразу о многих классах
    🔎Пруф
    Авторы исследуют так называемый class selectivity - прогоняют через сеть данные из разных классов и смотрят, насколько средние активации ячеек рознятся между классами. Выясняется, что при применении batchnorm они рознятся заметно меньше, что означает, что в такой сети информация о всех классах распределена по сети более равномерно, а значит вся система в целом стабильней.

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

    S-NET:from answer extraction to answer generation for machine reading comprehension
    https://arxiv.org/abs/1706.04815
    за наводку спасибо @leonshting
    Когда - 2 января 2018

    В чем понт
    В статье решают задачу понимания языка - учатся отвечать на вопросы к текстам, причем ответ может содержать слова, которых нет в вопросе и текстах. Модель бьет SOTA по этой задаче на датасете MS-MARCO.

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

    Выделение кусков
    Эта часть нужна для того, чтобы достать наши фичи - начало и конец информации о вопросе в тексте.
    Для текстов и вопросов независимо строятся эмбеддинги с помощью двунаправленной реккурентной сети (GRU). Затем слова во всех текстах с помощью attention и реккурентных сетей преобразуются в эмбеддинги, с учетом конкретного вопроса.
    Теперь нам нужно выделить начало и конец куска текстов, несущего информацию о вопросе. Для этого мы сливаем все тексты в один и предсказываем начало и конец такого куска. Делаем мы это с помощью Pointer Network. Главная мысль этой нашумевшей в свое время архитектуры в том, что мы определяем начало и конец интересного куска как позицию с максимальной вероятностью, полученной после обработки софтмаксом attention от преобразования эмбедддингов текстов с учетом вопросов.

    Генерация ответа
    Далее мы делаем seq2seq модель с attention, в декодере, который позволяет декодеру видеть все состояния энкодера. Модель берет на вход вопрос и тексты и генерит ответ.
    Получившиеся начало и конец куска мы используем как фичи в энкодере. Качества ответа мерится с помощью BLEW score и ROUGE-L score и бьет SOTA.

    Что в итоге
    Побили SOTA в крайне полезной для науки и индустрии задаче c помощью рекурентных сетей и неоднократного использования attention - подтверждает, что attention тренд на века:)
  • tldr_arxiv

    Adversarial Examples that Fool both Human and Computer Vision
    https://arxiv.org/pdf/1802.08195.pdf
    За обзор спасибо @googloed1
    Когда – 22 февраля 2018

    В чём понт
    Метод создания состязательных (adversarial) примеров для людей – небольшие изменения картинки, из-за которых кошку назовёшь собакой. Оптические иллюзии известны уже давно, но они никогда ещё не делались градиентным спуском. Конечно, если пристально вглядываться в картинку, то можно понять что же это. Но “на первый взгляд” обмануться достаточно легко, поэтому при проверке на людях картинку показывают всего на 0.07 секунды. Чуть больше чем в половине случаев атака на восприятие происходила успешно.

    Подробности
    Состязательные (adversarial) примеры
    Первых состязательные примеры строились с полным знанием архитектуры и параметров сети. Удавалось получить изменения цвета пикселей на величины меньше чем 1/255, то есть такие незаметные, что их даже в jpg нельзя записать. Поэтому состязательные примеры часто ассоциируются с незаметностью человеческому глазу и олицетворением различия восприятия человека и свёрточных сетей. Так обучив состязательные примеры на ансамбле свёрточных сетей, можно обманывать почти все существующие методы компьютерного зрения, даже решающие деревья, но оставаться незаметным человеку.

    Зрение людей и свёрточные сети
    Многие отмечают сходство первых слоёв сетчатки и свёрточных сетей, а во время быстрого реагирования в зрительной коре сигнал успевает пройти только в одну сторону, так же как и feed-forward свёрточная сеть. Поэтому то, почему человек не обманывается вслед за машинным зрением кажется странным. Ответ авторов: не хватает размытия по краям от центра взгляда. В качестве первого слоя во всех моделях ансамбля выступает обрезание высоких частот Фурье-преобразования картинки. Способы которыми можно обмануть такой ансамбль с размытием работают и на людях.

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

    Что в итоге
    Классические состязательные примеры используют тот факт, что свёрточная сеть воспринимает все детали сразу. И много мелких изменений на картинке остаются не заметными для человеческого взгляда. Но добавление слоя размывания делает состязательные примеры и для людей.