Промышленные записки

Создание «авиационных правил» с помощью RNN

Использование рекуррентной нейронной сети для генерации нового текста в стиле правил гражданской авиации США.

Введение

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

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

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

В этой статье я продемонстрирую некоторые результаты применения рекуррентной нейронной сети к полному набору правил гражданской авиации США. Обучая модель читать последовательность символов и предсказывать следующий, мы получаем сеть, которая способна генерировать исходный текст в стиле этих правил, по одному символу за раз. Я выбрал правила, выпущенные FAA, потому что они составляют большой корпус текста (более 6 миллионов символов), они легко доступны в Интернете в удобном для анализа формате, и потому что большую часть последнего десятилетия я потратил на обеспечение соответствия требованиям самолетов , операции и летный экипаж с ними.

Описание модели

В этой статье не будут подробно рассказываться о том, как и почему RNN. Если вас интересуют объяснения и масса забавных примеров, я не могу порекомендовать сообщение в блоге Андрея Карпати Неоправданная эффективность рекуррентных нейронных сетей!

Тем не менее, вот подробное описание особенностей модели:

  • Полный набор правил (более 6 миллионов символов) был разделен на последовательность, валидацию и тестовый набор в пропорции 98/2/2%. Разделение не было нечувствительным к организации текста: каждый раздел правил был сохранен целиком в одном из трех разделов.
  • Модель состоит из распределенного по времени уровня кодирования с использованием токенизатора со 116 токенами, соответствующих каждому символу, найденному в обучающем наборе, за которым следует стек из 3 закрытых рекуррентных единиц по 580 единиц в каждом, нормализация уровня и регуляризация выпадения, применяемая как к памяти. и выход, за которым следует плотно связанный слой с активацией softmax. Вот вывод метода model.summary () в keras:

  • Оптимизация выполняется с помощью оптимизатора Адама с импульсом Нестерова для 100 эпох, со снижением скорости обучения каждый раз, когда функция потерь достигает плато.
  • На каждом шаге обучения в модель загружается 32 пакета последовательностей длиной 256 символов.
  • Каждый повторяющийся блок был настроен на конфигурацию с отслеживанием состояния, поэтому содержимое ячеек памяти переносилось от партии к партии.
  • Проблема возникает в подходе «многие ко многим», что означает, что на каждом шаге ожидается, что сеть будет предсказывать следующий символ в последовательности.
  • Полная модель содержит чуть более 5 миллионов параметров.

Если вы хотите проверить код, записную книжку jupyter с реализацией на Python можно найти здесь.

А теперь давайте, наконец, рассмотрим несколько примеров!

Результаты

После обучения модели (мне потребовалось около 20 часов в сеансе Google Colab с ускорением графического процессора), она достигает точности около 82% в тестовом наборе, что означает, что она способна правильно предсказать следующий символ в 82% случаев подборку нормативных текстов, которых он не видел во время обучения. Для текста, который он видел во время обучения, точность достигает чуть более 86%.

Я использовал модель для создания последовательности из 1 миллиона новых символов и сохранил ее в текстовый файл. Это примерно соответствует 1/6 от общего размера правил FAA. Если вы хотите посмотреть и попытаться найти что-то интересное, вы можете посмотреть полный файл здесь.

Вот некоторые основные моменты:

Правильный словарный запас, но без смысла семантики:

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

§ 121.447 Персонал, проводящий операции, с категорией и классным рейтингом. (a) Общие. Лицо, подающее заявку на получение модели самолета, должно пройти и зарегистрировать наземную и летную подготовку в ходе правительственного допроса по маневрам и процедурам, которые могут быть включены в раздел «Ограничения летной годности». Необходимо использовать следующую информацию:

(ii) Инструктор как инструктор, в котором лицо, обладающее безупречным летным опытом, требуется согласно пункту (a) (1) (ii) этого раздела для практического тестирования.

Для каждого самолета с четырьмя или более двигателями одна и та же высота над вертодромом может быть меньше скорости 3 процентов от трех часов подряд.

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

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

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

§ 23.2525 Испытания системы статическим давлением. При выходе из строя двигателя. Каждый масляный баллон, который распределяется для движения самолета по поверхности, и другие связанные процедуры должны быть обозначены путем определения полезной нагрузки, соответствие должно быть подтверждено анализом или испытаниями, чтобы предотвратить каждый аварийный выход, должен быть установлен так, чтобы -
(1 ) Отдельный компонент, выбранный для сухого режима, имеет свою слабую или высокую работоспособность системы.
(3) Критические циклические части по всему двигателю проецируют элементы на случай любого пожара, который может произойти в открытом положении.
(d) Огонь. (c) отдельный отстойник топливного бака из-за неавтоматических систем или систем с приводом от источника безопасно, и пары могут подниматься в зону, где ожидается борьба с деформацией, в первую очередь предназначенную для использования в автоматических или механических системах.

В этом отрывке он касается укладки, радиооборудования, ухода на второй круг, двигателей, технического обслуживания и шума:

§ 33.85 Положения об укладке. Раздел 121.310 (e), Раздел 121.337 (b) (1) (viii), Радиооборудование, работающее не более чем на двух точках захода на посадку без пропусков, предоставляется таким образом, что сбой вспомогательного знака происходит при работе в закрытой опорной точке.
(7) Двигатель, который не получает защиты ни для такого количества авиаперевозчиков с последнего дня непосредственных ожидаемых условий эксплуатации спутника, у него достаточно топлива, учитывая точки входа, но не ограничиваясь ими, любые инструкции, необходимые для выполнения идентификации. лица, уполномоченного выполнять более одного самолета или группы самолетов. Управление стандартов полетов предоставляет следующую программу:
(1) Актуальная копия документации, представленной в § 121.405.
(d) Соответствие этому разделу. Эта часть применяется к каждому утвержденному держателю сертификата. Администратором.
(k) Техническое обслуживание и ограничения шума. Этот раздел применяется к иностранным авиаперевозчикам или иностранным лицам, владеющим самолетом с газотурбинным двигателем / самолетом, зарегистрированным в США и управляющим самолетом, если это лицо:

Фактический § 23.2525 касается выработки, хранения и распределения электроэнергии для самолетов нормальной категории, тогда как фактический § 33.85 касается калибровочных испытаний силовой установки.

Модель также не учитывает шаблоны порядка: абзацы должны следовать в порядке (a), (b), (c) и так далее, элементы должны следовать за (i), (ii), (iii), (iv). ) и так далее, но правильная нумерация повсюду в сгенерированном тексте.

Орфографические ошибки

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

связь между этими местами с ценой выше 3500 долларов в мире, где находится самолет программы nartoty, для которого требуется Navy I.

§ 91.855 Ответственность: Право на освобождение от налогов в отношении объема топлива или времени полета на пароме.

§ 25.509 Специальный контроль жирности. (a) Каждая предполагаемая операция с полным самолетом и максимальной взлетной массой

Нормативные метаданные

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

(1) Расследование каждого полета проводится утвержденным эквивалентным методом, в результате пожаров в пределах нормального рабочего диапазона с ограничениями работы двигателя, действующими не менее 3 часов.
[Док. №2000–8114, 66 FR 25036, 28 апреля 2001 г.]

§ 27.933 Коэффициенты обтекания. (a) Набор систем должен гарантировать, что выход для взаимосвязи прибывает и двигатель находится под нагрузками, которые могут возникнуть при открытии выхода.
(b) На скоростях, которые могут противостоять этому:
(1) По виду предупреждения дана сводка; и
(2) Для утечек из одного источника, или передняя опора, должна быть спроектирована так, чтобы выдерживать:
(1) минимальное значение эксплуатации резервуара; и
(3) Конструкция должна быть рассчитана на нагрузки в горизонтальной посадочной позиции только с углом поворота.
(2) Предел предельного крутящего момента должен быть определен при скорости, которая может существовать (в море уровень и конфигурация, используемая в расчетных условиях, таких как срыв, не должны превышать соответствующие статические условия нагрузки на грунт, установленные производителем; и
(2) Вертикально, и индикатор функционирования системы управления для каждого двигателя.
(b) Для каждого необходимого уровня пола аварийный выход должен быть спроектирован с постоянной скоростью, полным отключением электроэнергии, чтобы предотвратить классификацию льда или отказы.
[Док. №5066, 29 FR 18291, 24 декабря. , 1964, с поправками, внесенными Amdt. 25–38, 41 FR 55466, 20 декабря 1976 г.]

Несколько более длинных примеров

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

§ 15.50 Как деньги из всех правил. (a) Эксплуатант сельскохозяйственных самолетов. Не позднее, чем через 30 дней после завершения запроса на обнаружение. (d) Каждый раз, когда ответчик не может предоставить координаты письма от пользователя только в том случае, если -
(a) он не соответствует требованиям § 161.205; или
(2) Рассмотрение судебных разбирательств или приобретение проекта, если он расширяет план запрещенных ответных действий, который предусматривает информацию. При необходимости и любые другие установленные законом доказательства или в записи, когда это не является незначительным вопросом или может не обеспечивать одобрение FAA предлагаемого проекта в соответствии с § 161.305 (b).
(2) DRO или Специальный Мастер, почему будет раскрыто последнее уведомление о вызове в суд. Если орган, принимающий решение FAA, предоставит запрос на обнаружение invide и вручит копию жалобы стороне. Тем не менее, для этого рассмотрения спора по контракту, сообщите офицеру, проводящему слушание, и
(4) Копию петиционера, чтобы возобновить законную силу ходатайства. Если требуется две компенсации.
[Док. №18834, 54 FR 34318, 18 августа 1989 г., с изменениями, внесенными Amdt. 91–296, 72 FR 31679, 7 июня 2007 г.]

§ 47.80 Запрещение от имени несчастного случая. Лицо, запрашивающее процедуру IFR или самолет нетранспортной категории, может взлететь с этого самолета с массой, превышающей вес, указанный в добавлении F к этой части, вместо 30-секундной номинальной мощности OEI должно эксплуатироваться в соответствии с § 25.21 (g). , выберите или высоту. Максимальный рабочий вес винтокрылого летательного аппарата с отсеком винтокрылого летательного аппарата должен быть в пределах температуры газа, при которой винтокрылый летательный аппарат работает в условиях полета, должен быть отмечен таким образом, чтобы он не мог достичь отсека, в котором показано, что, если не требуется сводки погоды или прогнозы, температуры и шасси, в виде оценки нескольких двигателей, которые, как сообщается, относятся к учащимся с одним неработающим двигателем или при максимальном времени пропеллера с момента наименьшего веса, допускающего запланированный срок службы плотов (кроме цилиндров).
(iii) Курение. Каждая силовая установка и вспомогательная силовая установка должны быть способны поддерживать используемые системы.
(c) Участники, прошедшие квалификацию и завершившие комплектование каждого двигателя в каждом танке, кабины экипажа для запуска и реагирования между ее работой, свободны от дрожания; контроли, а топливо и масло - любая комбинация теста; и
(2) могут вызвать опасную травму.

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

Вывод

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

Модель породила забавный новый текст, очень похожий по терминологии, стилю и структуре на фактический свод правил гражданской авиации США, опубликованный FAA. Но он не дает ничего, что имеет смысл и имеет какое-либо реальное значение.

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

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

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

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

Если вы хотите понять RNN более подробно или увидеть несколько других примеров забавных приложений, я настоятельно рекомендую этот пост в блоге. Если вы хотите научиться строить такую ​​модель, вам подойдет эта книга. Если вы хотите ознакомиться с набором данных и попробовать его самостоятельно, вы можете получить к нему доступ на kaggle по этой ссылке. Вы также можете ознакомиться с моей работой по созданию новой музыки в стиле барокко в стиле хоралов из 4 частей Баха в этом посте.

Вам понравился этот пост? Свяжитесь с нами и поприветствуйте в Linkedin!

Ссылки и соответствующие ссылки