Добавил:
Developer Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Кулагин ответы экзамен.docx
Скачиваний:
111
Добавлен:
17.01.2024
Размер:
7.42 Mб
Скачать
  1. Рекурентные нейронные сети. Класс задач, решаемых рекурентными нейронными сетями.

Временные последовательности можно использовать для решения широкого класса задач.

Классификация — присвоение временным последовательностям одной или нескольких категорий. Например, определение по временной активности посетителя веб-сайта, является он ботом или человеком.

Обнаружение событий — определение момента наступления некоторого ожидаемого события в непрерывном потоке данных. В частности, широкое практическое применение получило «обнаружение горячих слов», когда модель распознает в аудиопотоке заранее заданные высказывания.

Обнаружение аномалий — любых необычных событий в непрерывном потоке данных. Странная активность в корпоративной сети, например, может быть признаком действий злоумышленника. Необычные показания датчиков на производственной линии могут служить сигналом к вмешательству. Для определения аномалий обычно используется метод обучения без учителя, ведь часто нам неизвестно, какие события будут представлять интерес, поэтому обучить модель на конкретных примерах невозможно.

Решение задач прогнозирования рассмотрим на примере прогнозирования температуры на ближайшие 24 часа с помощью временной последовательности ежечасных измерений атмосферного давления и влажности.

Оказывается, что плотно связанные и сверточные сети плохо подходят для обработки таких наборов данных, но с ними блестяще справляются модели машинного обучения другого вида — рекуррентные нейронные сети.

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

Рекуррентная нейронная сеть (RNN) использует тот же принцип, хотя и в чрезвычайно упрощенном виде: она обрабатывает последовательность, перебирая ее элементы и сохраняя состояние, полученное при обработке предыдущих элементов. Фактически RNN — это разновидность нейронной сети, имеющей внутренний цикл.

Сеть RNN сбрасывает состояние между обработкой двух разных, независимых последовательностей (таких как два образца из пакета), поэтому одна последовательность все еще интерпретируется как единый блок данных: единственный входной пакет. Однако теперь блок данных обрабатывается не за один шаг; сеть выполняет внутренний цикл, перебирая последовательность элементов.

В итоге, RNN представляет собой цикл for, который повторно использует величины, вычисленные в предыдущей итерации, и не более того.

  1. Рекурентные нейронные сети. Обработка естественных языков.

Подходы к обработке естественного языка на основе машинного обучения начали появляться в конце 1980-х годов. Самые ранние из них опирались на деревья решений — их целью было буквально автоматизировать разработку правил вида «если/то/иначе» по аналогии с предыдущими системами.

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

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

Например, определять:

- тему текста (задача классификации текста);

- наличие в тексте наперед заданных слов (фильтрация содержимого);

- эмоциональную окраску текста (анализ эмоциональной окраски);

- следующее слово в незаконченном предложении (моделирование языка);

- то же самое выражение на немецком языке (перевод);

- формулировку основной идеи в одном абзаце (обобщение, семантический анализ) и т. д.

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

Процессы векторизации текста бывают разных видов и форм, но все протекают по одному шаблону:

сначала текст стандартизируется, чтобы упростить его обработку: например, все символы преобразуются в нижний регистр или из текста удаляются знаки препинания;

затем текст разбивается на единицы (называемые токенами) — символы, слова или группы слов; данный процесс называется токенизацией;

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

  1. Обработка естественных языков. Обучение «последовательность в последовательность».

  2. Генеративное глубокое обучение. Класс задач, решаемых с помощью генерации данных.

  3. Генеративное глубокое обучение. Языковая модель.

  4. Генерация текста. Стратегии выбора.

Для генерации текста важную роль играет алгоритм выбора следующего токена.

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

Намного интереснее подход, который делает порой неожиданный выбор, вводя случайную составляющую в процесс выбора из распределения вероятностей для следующего символа. Этот подход называется стохастическим выбором. Таким образом, если слово имеет вероятность 0,3 стать следующим в предложении, согласно модели мы выберем его в 30 % случаев.

Жадный выбор тоже может использоваться для выбора из распределения вероятностей, когда какой-то символ имеет вероятность 1, а все остальные — вероятность 0.

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

Однако здесь есть одна проблема: эта стратегия не предусматривает возможности управлять величиной случайности в процессе выбора.

Вопрос: зачем может понадобиться увеличивать или уменьшать случайную составляющую?

Рассмотрим крайний случай: случайный выбор, когда следующее слово выбирается из равномерно распределенных вероятностей и каждое слово одинаково вероятно. Эта схема имеет максимальную случайность; иными словами, это распределение вероятностей имеет максимальную энтропию.

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

Интересные решения, получающиеся путем выбора из «реального» распределения вероятностей, находятся между этими двумя крайностями. Так как есть еще множество других промежуточных точек с большей или меньшей энтропией. Меньшая энтропия позволит генерировать последовательности с более предсказуемой структурой (и потому выглядящие более реалистичными), тогда как большая энтропия даст более неожиданный и творческий результат.

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

Для управления величиной случайности в процессе выбора введем параметр, который назовем температурой, характеризующий энтропию распределения вероятностей, используемую для выбора: она будет определять степень необычности или предсказуемости выбора следующего символа. С учетом значения temperature и на основе оригинального распределения вероятностей будет вычисляться новое распределение.

Модель «последовательность в последовательность»

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

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

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