Size: a a a

2018 March 05
tldr_arxiv
Deep contextualized word representations
https://arxiv.org/pdf/1802.05365.pdf
за наводку спасибо @annapotapenko
Когда
15 февраля 2018 года

В чем понт
Для того, чтобы решать задачи nlp, надо уметь получать  хорошие векторные представления слов, которые будут моделировать семантику, синтаксис и омонимию (например слово  ‘лук’ может нести 2 смысла, для которых надо использовать разные вектора). При этом здорово использовать и нагенерированный человечеством массив информации, и уметь быстро приспосабливаться под локальные особенности задачи и текста. Что и сделали авторы, побив  state of the art в 6 задачах nlp на 6-20% (например, анализ тональности, выделение частей речи)

Подробности
Для каждого токена (слова или некоторого количества символов) хочется получить несколько векторов, чтобы потом для каждой задачи скомбинировать их оптимальным образом, то есть просто выучить веса, с которыми их нужно складывать (что позволит учесть локальные особенности текста и задачи, омонимию)
Такие вектора для каждого токена получаются обучением LSTM прямого и обратного распространения. Forward LSTM учится предсказывать вероятность токена при условии предыдущих токенов и скрытых состояний сети,  backward -  при условии следующих, суммарный лосс получается сложением лоссов forward и backward. Для каждого токена используется такие сети forward и backward LSTM каждая с L слоями, соответственно нулевое состояние - это Glove вектор, который пока не учитывает контекст, последнее состояние используется для предсказания следующего токена. На выходе для каждого токена получим набор векторов, состояний всех слоев forward и backward LSTM, которые осталось только сложить с нужными весами. Веса мы уже учим на конкретной задаче и данных (например, для слова три среди векторов будет часть векторов, близких к слову два  и мой, вектора, отражающие глагол это или числительное, вектора, из которых можно понять эмоциональную окраску текста)
источник
2018 March 08
tldr_arxiv
End-to-end Neural Coreference Resolution
https://arxiv.org/pdf/1707.07045.pdf
За разбор спасибо @leonshting
Эта статья берется как SOTA baseline для coreference resolution в статье из предыдущего поста https://arxiv.org/pdf/1802.05365.pdf
Когда
15 декабря 2017 года

В чем понт
Модель, решающая end-to-end (без синтаксических парсеров, теггеров по частям речи и прочих костылей) задачу coreference resolution - для каждого понятия найти все понятия, которые отсылают к той же сущности. Когда вы задаёте Сири вопрос 'Кто такой Хинтон?', а потом 'Сколько ему лет?', вы хотите, чтобы Сири понимала, что 'ему' и 'Хинтон' это одна и та же сущность, и не лезла искать ваш запрос в гугл. Модель бьет state of the art по данной задаче.

Подробности
Обучающая выборка для этой задачи будет состоять из кластеров отрезков для каждой сущности. Например, для предложения 'Мама мыла раму. Ее сын Коля, в это время страдал фигней', выделим сущность и назовем ее ID0. Ей будут соответсвовать слова 'мама' и 'ее'. Вторая сущность(ID1) будет включать в себя 'сын' и ‘Коля’.
Работу модели можно разбить на два этапа. На первом этапе берутся все возможные отрезки текста, скорятся по тому, насколько отрезок может быть упоминанием любой из сущностей (mention score), то есть насколько этот отрезок в принципе представляет для нас интерес. Выходом для этого этапа будут вероятности для отрезков разной длины быть сущностями. Например, для отрезков длиной 1 - 'Мама -0.9, мыла - 0.0001, раму - 0.001' и тд. Для отрезков длины 2 -  ‘Мама мыла’ - 0.5, ‘мыла раму’ - 0.05 и тд. Эти вероятности считаются с помощью контекстного кодирования слов BiLSTM. Для каждого слова в предложении BiLSTM отдает свое внутреннее состояние. Рассмотрим все возможные отрезки текста, для каждого возьмем вектора (внутренние состояния) от LSTM и сумму этих векторов. Поскольку отрезки, а значит и список векторов слов,  разной длины, нужно это упаковать в пространство фиксированной размерности. Делается это так: берем вектора начала отрезка, конца отрезка и взвешенную сумму всех векторов - attention. Веса attention’а - функция векторов. Итого имеем представление отрезка фиксированной размерности. Скармливаем это представление в слой с нелинейностью - получаем mention score.
На втором этапе по mention score выбираются наилучшие отрезки-кандидаты. Для каждого кандидата смотрим, какие из других кандидатов могут быть референсом к данному - пытаемся определить кластер. Скор для этой части - сумма трех скоров - mention-score первого отрезка, mention-score второго отрезка, а также скора кореференса между отрезками - функции от векторов, конечномерных представлений отрезков, поэлементного произведения векторов и дополнительных фичей.
источник
2018 March 11
tldr_arxiv
Natural TTS synthesis by conditioning wavenet on mel spectrogram predictions
https://arxiv.org/pdf/1712.05884.pdf
За наводку спасибо @googloed1
Когда - 16 февраля 2018

В чем понт
Авторы побили очередной рекорд для TTS(text to speech) с MOS(mean opinion score -среднее оценки асессоров от 1 до 5) 4.53 против профессиональных спикеров с 4.58. Модель смотрит на запятые, капс, по ходу исправляет ошибки, читает слова, ориентируясь на семантику (например, desert, по-русски покидать и пустыня, произносится по разному, хотя пишется одинаково). По ссылке можно послушать демонстрацию вышесказанного  и  примеры озвучки одного и того же текста диктором и алгоритмом (лично я угадала принадлежность 2 из 4 примеров) https://google.github.io/tacotron/publications/tacotron2/index.html

Подробности
Историческая справка - в основе статьи лежит модель Wavenet (гугловский прародитель почти всего современного движа на тему TTS). Wavenet умеет авторегрессивно генерить звуки - человеческую речь, музыку. В качестве обучающей выборки мы используем аудиосигнал в виде осциллограммы(изображение частот звуковой волны во времени), и для предсказания каждого момента времени берем, например, четыре предыдущих момента, проходимся по ним разреженной свёрткой (прикладываем ее к 1-му и 2-му предыдущему, а затем к 3-му и 4-му предыдущему), пропускаем это еще через несколько сверток и на выходе получаем одно число - собственно частоту сигнала для нашего конкретного момента времени. Чтобы генерить сигнал не просто так, а по тексту, при предсказании дополнительно учитываем выученное нами же представление символов в виде лингвистических признаков озвучки этого текста .
Вернемся к статье. Одним из трюков в этой статье является использование вместо лингвистических фичей mel-спектрограмм(Фурье трансформаций с дополнительными преобразованиями сигнала)  - они лучше подхватывают особенности человеческого голоса. Обучение сети можно разделить на два этапа - из символов учимся предсказывать признаковое описание для будущего звука в виде mel-спектрограмм, а затем из спектрограмм итеративно генеририть звук.
Первый этап  состоит из энкодера и декодера. Энкодером получаем эмбеддинг для символов в тексте, обрабатываем свертками, нелинейностью и LSTM. К полученному результату применяем attention. Декодер  - это авторегрессивная рекурентная сетка, которая умеет из полученного представления генерить спектрограммы. Параллельно с предсказанием спектрограммы, мы схлопываем  выход декодера и контекст attention в скаляр и пропуская через сигмоиду получаем вероятность того, что стоит прекратить генерацию спектрограмм. Это делается, чтобы генерировать спектрограммы произвольной длительности (делаем модель более гибкой).
На втором этапе мы с помощью модифицированного  Wavenet, который принимает на вход спектрограммы вместо лингвистических фичей, генерим последовательно каждый звук через признаковое описание в виде спектрограммы и звука предыдущих моментов.
источник
2018 March 13
tldr_arxiv
An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling
https://arxiv.org/pdf/1803.01271.pdf
за наводку спасибо @annapotapenko, за редактуру @googloed1
Когда - 4 марта 2018

В чем понт
Самое актуальное и полное сравнение сверточных и реккурентных архитектур для моделирования последовательностей. Авторы берут свой достаточно простой вариант сверточной сети и сравнивают ее на разных классических задачках для сопоставления рекуррентых сетей между собой (на домашнем поле, как они выражаются в статье) со стандартными рекуррентными архитектурами GRU, LSTM и ‘vanilla RNN’. На всех задачах их свертки побили реккурентные сетки. Примеры задач - PennTreebank, Copy memory, The adding problem. Опровергает распространенный тезис о том, что рекуррентные сети - самое естественное, что можно придумать для моделирования последовательностей (текста, например)

Подробности
Какие именно сверточные сети
Для того, чтобы повторять функции рекуррентных сетей, нам нужно 2 основных свойства -  уметь выплевывать output такого же размера, как input и не смотреть в будущее (при моделировании текста каждое слово обрабатывать с использованием информации только о предыдущих). С первой задачей справляется полносверточная сетка с паддингом нулями, чтобы последующие слои имели ту же длину, что и предыдущие. Вторую задачу мы решаем казуальными разреженными свертками, прикладывая свертки только к предыдущим элементам в последовательности (ровно теми свертками, которые используются в Wavenet и описаны в предыдущем посте).

Преимущества сверточных сетей
1.Можно параллелить(то есть существенно ускорить обучение!!) 2. Можно просто и гибко контролировать размер модели в памяти, например, делать свертки более разреженными 3.Градиенты не затухают, информация с дальних концов последовательности не теряется (так как обратное распространение ошибки идет не сонаправленно с последовательностью(то есть по всей длине), а с глубиной сети(которая логарифм длины)) 4.Для тренировки нужно меньше памяти (для рекуррентных сетей надо помнить все предыдущие состояния ячеек, что критично, особенно при обучении на длинных последовательностях)

Недостатки сверточных сетей
1.Нужно больше памяти во время применения(так как в рекуррентных сетях нужно помнить только текущий вход и скрытое состояние)

Что в итоге
При простой архитектуре и минимальном тюнинге сверточных сетей, они бьют классические рекуррентные. Но авторы подчеркивают, что сейчас появилось много продвинутых докруток на рекуррентные сети, которые бьют их сверточную архитектуру. Однако не стоит забывать, то что докрутки - это годы работы ведущих групп, а сверточная архитектура авторов собрана на коленке. Авторы говорят, что если вложиться в этом направлении, можно добиться результатов еще круче, чем те, которые есть на продвинутых рекуррентных сетях.
источник
2018 March 19
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 категорий: оригинальные картинки для контроля, состязательные (из кошки сделать собаку), с шумом (состязательное изменение накладывается с отражением) и неправильные (что-то ещё, например самолёт в кошку). Картинки с шумом нужны, что бы учесть вариант снижения читаемости картинки из-за ухудшения. Поэтому внеся точно такое же изменение но отраженное, ухудшение читаемости примерно такое же, но все эффекты проявляются в не нужных местах.

Что в итоге
Классические состязательные примеры используют тот факт, что свёрточная сеть воспринимает все детали сразу. И много мелких изменений на картинке остаются не заметными для человеческого взгляда. Но добавление слоя размывания делает состязательные примеры и для людей.
источник
tldr_arxiv
источник
2018 March 27
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 тренд на века:)
источник
2018 March 31
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 и демонстрирует, что останавливать обучение и выбирать гиперпараметры можно и без отложенной выборки.
источник
2018 April 08
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
источник
2018 April 14
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. Способ адаптации, предложенный авторами в статье, показал лучшие результаты.

Что в итоге
Сделан метод, который позволяет агенту непрерывно адаптироваться в меняющихся условиях, и делает это лучше других методов. Эта задачка очень крутая и важная, потому что в реальном мире среда и задачи постоянно меняются, и важно уметь одновременно использовать накопленный опыт и быстро приспосабливаться.
источник
2018 April 18
tldr_arxiv
Машинный перевод - очень крутая и актуальная область, которая активно развивается и публикуется. Краткий обзор по базовым и интересным штукам из этой темы, подготовленный для студентов курса Data mining in action направления ‘Тренды’,  можно найти по ссылке http://telegra.ph/Mashinnyj-perevod-04-18
источник
2018 April 22
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 - лабиринт
Чтобы посмотреть, как метод работает в задачах обучения с подкреплением, авторы протестировали свой алгоритм на задаче лабиринта - есть фиксированная конструкция лабиринта, которая не меняется на протяжение задачи. От эпизода к эпизоду выбирается случайная стена, по достижение которой агенту дается награда. Задача алгоритма - научиться находить такую награду. Сеть с пластичными весами находит эту награду лучше.

✏️ Что в итоге?
Статья с интересной идеей о том, как увеличить выразительность модели с добавлением пластичности в веса. Авторы несколько раз говорят, что пошли по самому простому варианту - при выборе механизма пластичности, в определении для всей сети одинаковых коэффициентов пластичности, в постановке задачи и самих задачах. Соответственно в качестве идей для развития - докрутить все вышеперечисленные вещи, которые не докрутили авторы.
источник
2018 May 02
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-эмбеддинги улучшают результаты модели.
источник
2018 May 10
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
источник
2018 May 20
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
источник
2018 May 28
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
источник
2018 June 04
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% случаев текущая модель авторов теоретически может придти к успеху.
🗒  Что на картинке
Пример графов для гипотезы и ее подтверждений
источник