Обработка естественного языка с TensorFlow
Покупка
Тематика:
Прикладное программное обеспечение
Издательство:
ДМК Пресс
Автор:
Ганегедара Тушан
Перевод:
Яценков Валерий Станиславович
Год издания: 2020
Кол-во страниц: 382
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Дополнительное образование взрослых
ISBN: 978-5-97060-756-5
Артикул: 767472.02.99
Доступ онлайн
В корзину
TensorFlow - библиотека на языке Python для реализации систем глубокого обучения, позволяющих решать в том числе уникальные задачи по обработке естественного языка. Автор книги излагает общие принципы работы NLP и построения нейронных сетей, описывает стратегии обработки больших объемов данных, а затем переходит к практическим темам. Вы узнаете, как использовать технологию World2vec и ее расширения для создания представлений, превращающих последовательности слов в числовые векторы, рассмотрите примеры решения задач по классификации предложений и генерации текста, научитесь применять продвинутые рекуррентные
модели и сможете самостоятельно создать систему нейронного машинного перевода. Издание предназначено для разработчиков, которые, используя лингвистические данные, применяют и совершенствуют методы машинной обработки естественного языка.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 02.03.02: Фундаментальная информатика и информационные технологии
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов.
Для полноценной работы с документом, пожалуйста, перейдите в
ридер.
Тушан Ганегедара Обработка естественного языка с TensorFlow
Natural Language Processing with TensorFlow Teach language to machines using Python's deep learning library Thushan Ganegedara B I R M I N G H A M – M U M B A I
Обработка естественного языка с TensorFlow Научите компьютер разговаривать, используя библиотеки глубокого обучения на языке Python Тушан Ганегедара Москва, 2020
УДК 004.032.2 ББК 32.972.1 Г19 Ганегедара Т. Г19 Обработка естественного языка с TensorFlow / пер. с анг. В. С. Яценкова. – М.: ДМК Пресс, 2020. – 382 с.: ил. ISBN 978-5-97060-756-5 TensorFlow – библиотека на языке Python для реализации систем глубокого обучения, позволяющих решать в том числе уникальные задачи по обработке естественного языка. Автор книги излагает общие принципы работы NLP и построения нейронных сетей, описывает стратегии обработки больших объемов данных, а затем переходит к практическим темам. Вы узнаете, как использовать технологию World2vec и ее расширения для создания представлений, превращающих последовательности слов в числовые векторы, рассмотрите примеры решения задач по классификации предложений и генерации текста, научитесь применять продвинутые рекуррентные модели и сможете самостоятельно создать систему нейронного машинного перевода. Издание предназначено для разработчиков, которые, используя лингвистические данные, применяют и совершенствуют методы машинной обработки естественного языка. УДК 004.032.2 ББК 32.972.1 Original English language edition published by Packt Publishing Ltd., UK. Copyright © 2018 Packt Publishing. Russianlanguage edition copyright © 2020 by DMK Press. All rights reserved. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. ISBN 9781788478311 (анг.) Copyright © 2018 Packt Publishing ISBN 9785970607565 (рус.) © Оформление, издание, перевод, ДМК Пресс, 2020
Содержание Об авторе ................................................................................................................13 О рецензентах ......................................................................................................14 Предисловие .........................................................................................................15 Глава 1. Введение в обработку естественного языка ...........................21 Что такое обработка естественного языка? .............................................................21 Задачи обработки естественного языка ...................................................................22 Традиционный подход к обработке естественного языка .....................................24 Подробности традиционного подхода .................................................................24 Недостатки традиционного подхода ...................................................................29 Революция глубокого обучения в обработке естественного языка .......................30 История глубокого обучения ................................................................................30 Современное состояние глубокого обучения и NLP ...........................................32 Устройство простой глубокой модели – полносвязной нейронной сети ..........33 Что вы найдете дальше в этой книге? ......................................................................34 Знакомство с рабочими инструментами .................................................................38 Обзор основных инструментов ............................................................................38 Установка Python и scikitlearn .............................................................................39 Установка Jupyter Notebook ...................................................................................39 Установка TensorFlow ............................................................................................40 Заключение ................................................................................................................41 Глава 2. Знакомство с TensorFlow .................................................................42 Что такое TensorFlow? ...............................................................................................42 Начало работы с TensorFlow .................................................................................43 Подробно о клиенте TensorFlow ...........................................................................45 Архитектура TensorFlow – что происходит при запуске клиента? .....................46 Кафе Le TensorFlow – пояснение устройства TensorFlow на примере ...............49 Входные данные, переменные, выходные данные и операции .............................49 Определение входных данных в TensorFlow .......................................................50 Объявление переменных в TensorFlow ................................................................55 Объявление выходных данных TensorFlow .........................................................57 Объявление операций TensorFlow ........................................................................57 Повторное использование переменных с областью видимости ............................66 Реализация нашей первой нейронной сети ............................................................68 Подготовка данных ...............................................................................................68 Определение графа TensorFlow ............................................................................69 Запуск нейронной сети .........................................................................................71 Заключение ................................................................................................................72
Содержание Глава 3. Word2vec и вектор слова в пространстве смыслов .............74 Что такое представление и значение слова? ...........................................................75 Классические подходы к представлению слов ........................................................76 Внешняя лексическая база знаний WordNet для изучения представлений слов .........................................................................................................................76 Прямое унитарное кодирование ..........................................................................79 Метод TFIDF..........................................................................................................80 Матрица совместной встречаемости ...................................................................81 Word2vec – нейросетевой подход к изучению представления слова .....................82 Упражнение: королева = король – он + она? ........................................................83 Разработка функции потери для изучения представлений слов .......................87 Алгоритм skipgram ...................................................................................................87 От необработанного текста до структурированных данных ..............................88 Изучение представлений слов с помощью нейронной сети ..............................88 Реализация алгоритма skipgram с TensorFlow ...................................................98 Алгоритм CBOW .......................................................................................................100 Реализация алгоритма CBOW с TensorFlow .......................................................100 Заключение ..............................................................................................................102 Глава 4. Углубленное изучение Word2vec ...............................................103 Исходный алгоритм skipgram ................................................................................103 Реализация исходного алгоритма skipgram .....................................................104 Сравнение исходного и улучшенного алгоритмов skipgram ..........................106 Сравнение skipgram и CBOW .................................................................................107 Сравнение продуктивности ................................................................................108 Кто же победитель, skipgram или CBOW? .........................................................111 Расширения алгоритмов представления слов .......................................................113 Использование униграммного распределения для отрицательной выборки ................................................................................................................113 Реализация отрицательной выборки на основе униграмм ..............................113 Подвыборка – вероятностное игнорирование общих слов ..............................115 Реализация подвыборки .....................................................................................116 Сравнение CBOW и его расширений ..................................................................116 Более современные алгоритмы, расширяющие skipgram и CBOW ....................117 Ограничение алгоритма skipgram ....................................................................117 Структурированный алгоритм skipgram ..........................................................118 Функция потерь ...................................................................................................119 Модель непрерывного окна ................................................................................120 GloVe – представление на основе глобальных векторов ......................................121 Знакомство с GloVe ..............................................................................................121 Реализация алгоритма GloVe ..............................................................................122 Классификация документов с помощью Word2vec ...............................................123 Исходный набор данных .....................................................................................124 Классификация документов при помощи представлений слов ......................125 Реализация – изучение представлений слов .....................................................125 Реализация – от представлений слов к представлениям документов .............126
Содержание 7 Кластеризация документов и визуализация представлений ...........................126 Проверка некоторых выбросов ...........................................................................126 Кластеризация/классификация документов с Kсредним ...............................129 Заключение ..............................................................................................................130 Глава 5. Классификация предложений с помощью сверточных нейронных сетей ......................................................................132 Знакомство со сверточными нейронными сетями ...............................................132 Основы CNN .........................................................................................................133 Возможности сверточных нейросетей ...............................................................135 Устройство сверточных нейросетей .......................................................................136 Операция свертки ................................................................................................136 Операция субдискретизации ..............................................................................139 Полностью связанные слои .................................................................................141 Собираем CNN из компонентов .........................................................................142 Упражнение – классификация изображений из набора MNIST ...........................143 Источник данных .................................................................................................143 Реализация CNN ..................................................................................................143 Анализ прогнозов, сделанных CNN ....................................................................146 Классификация предложений с помощью сверточной нейросети ......................147 Структура нейросети ...........................................................................................147 Растянутая субдискретизация ............................................................................150 Реализация классификации предложений ........................................................151 Заключение ..............................................................................................................154 Глава 6. Рекуррентные нейронные сети ..................................................155 Знакомство с рекуррентными нейронными сетями .............................................156 Проблема с нейросетью прямого распространения .........................................156 Моделирование с помощью рекуррентных нейронных сетей .........................157 Устройство рекуррентной нейронной сети в деталях ......................................159 Обратное распространение во времени ................................................................160 Как работает обратное распространение ..........................................................160 Почему нельзя использовать простое обратное распространение .................161 Обратное распространение во времени и обучение RNN ................................162 Усеченное обратное распространение во времени ...........................................163 Ограничения BPTT – исчезающие и взрывающиеся градиенты .....................163 Применение рекуррентных нейросетей ................................................................165 Одинкодному ....................................................................................................166 Одинкомногим .................................................................................................166 Многиекодному ................................................................................................167 Многиекомногим ..............................................................................................168 Генерация текста с помощью рекуррентной нейросети .......................................168 Определение гиперпараметров ..........................................................................169 Распространение входов во времени для усеченного BPTT .............................169 Определение набора данных для валидации ....................................................170 Определение весов и смещений .........................................................................170
Содержание Определение переменных состояния ................................................................171 Вычисление скрытых состояний и выходов с развернутыми входами ...........171 Расчет потерь .......................................................................................................172 Сброс состояния в начале нового сегмента текста ...........................................172 Расчет результата проверки................................................................................172 Расчет градиентов и оптимизация .....................................................................173 Вывод сгенерированного фрагмента текста ......................................................173 Оценка качества текста ...........................................................................................174 Перплексия – измерение качества созданного текста ..........................................175 Рекуррентные нейронные сети с контекстными признаками .............................176 Особенности устройства RNNCF .......................................................................177 Реализация RNNCF .............................................................................................178 Текст, созданный с помощью RNNCF ...............................................................183 Заключение ..............................................................................................................186 Глава 7. Сети с долгой краткосрочной памятью ...................................188 Устройство и принцип работы LSTM .....................................................................189 Что такое LSTM? ...................................................................................................189 LSTM в деталях .....................................................................................................190 Чем LSTM отличаются от стандартных RNN ......................................................199 Как LSTM решает проблему исчезающего градиента ...........................................200 Улучшение LSTM ..................................................................................................202 Жадная выборка ..................................................................................................202 Лучевой поиск ......................................................................................................203 Использование векторных представлений слов ...............................................204 Двунаправленные LSTM (BiLSTM) ......................................................................205 Другие варианты LSTM ...........................................................................................207 Замочная скважина .............................................................................................207 Управляемые рекуррентные ячейки (GRU) .......................................................208 Заключение ..............................................................................................................210 Глава 8. Применение LSTM для генерации текста ..............................211 Наши данные ...........................................................................................................211 О наборе данных ..................................................................................................212 Предварительная обработка данных .................................................................214 Реализация LSTM .....................................................................................................214 Объявление гиперпараметров ............................................................................214 Объявление параметров .....................................................................................215 Объявление ячейки LSTM и ее операций ..........................................................217 Входные данные и метки ....................................................................................217 Последовательные вычисления для обработки последовательных данных ..................................................................................................................218 Выбор оптимизатора ...........................................................................................219 Снижение скорости обучения .............................................................................219 Получение прогнозов ..........................................................................................220 Вычисление перплексии .....................................................................................220
Содержание 9 Сброс состояний ..................................................................................................221 Жадная выборка против унимодальности ........................................................221 Генерация нового текста .....................................................................................221 Пример сгенерированного текста ......................................................................222 Сравнение качества текстов на выходе разных модификаций LSTM .................223 Обычная LSTMсеть .............................................................................................223 Пример генерации текста при помощи GRU .....................................................225 LSTM с замочными скважинами ........................................................................228 Обучение нейросети и проверка перплексии ...................................................230 Модификация LSTM – лучевой поиск ....................................................................232 Реализация лучевого поиска ..............................................................................232 Пример текста, созданного лучевым поиском ..................................................234 Генерация текста на уровне слов вместо nграмм ................................................235 Проклятие размерности ......................................................................................235 Word2vec спешит на помощь ..............................................................................236 Генерация текста с помощью Word2vec .............................................................236 Текст, созданный с помощью LSTM–Word2vec и лучевого поиска ..................237 Анализ уровня перплексии .................................................................................239 Использование TensorFlow RNN API ..................................................................240 Заключение ..............................................................................................................243 Глава 9. Применение LSTM – генерация подписей к рисункам .....245 Знакомство с данными ............................................................................................246 Набор данных ILSVRC ImageNet .........................................................................246 Набор данных MSCOCO .....................................................................................246 Устройство модели для генерации подписей к изображениям ...........................249 Извлечение признаков изображения .....................................................................250 Реализация – загрузка весов и вывод с помощью VGG16 ...................................252 Создание и обновление переменных .................................................................252 Предварительная обработка входов ...................................................................253 Распространение данных через VGG16 ............................................................254 Извлечение векторизованных представлений изображений ..........................255 Прогнозирование вероятностей классов с помощью VGG16 ..........................255 Изучение представлений слов ................................................................................256 Подготовка подписей для подачи в LSTM ..............................................................258 Формирование данных для LSTM ...........................................................................259 Определение параметров и процедуры обучения LSTM ......................................260 Количественная оценка результатов......................................................................262 BLEU ......................................................................................................................263 ROUGE ...................................................................................................................264 METEOR ................................................................................................................264 CIDEr .....................................................................................................................266 Изменение оценки BLEU4 для нашей модели .................................................267 Подписи, созданные для тестовых изображений ..................................................267 Использование TensorFlow RNN API с предварительно обученными векторами слов GloVe ..............................................................................................271 Загрузка векторов слов GloVe .............................................................................271
Содержание Очистка данных ...................................................................................................272 Использование предварительно изученных представлений с RNN API .........274 Заключение ..............................................................................................................279 Глава 10. Преобразование последовательностей и машинный перевод ......................................................................................281 Машинный перевод .................................................................................................281 Краткая историческая экскурсия по машинному переводу .................................282 Перевод на основе правил ..................................................................................282 Статистический машинный перевод (SMT) ......................................................284 Нейронный машинный перевод ........................................................................286 Общие принципы нейронного машинного перевода ..........................................288 Устройство NMT ...................................................................................................288 Архитектура NMT ................................................................................................289 Подготовка данных для системы NMT ...................................................................292 Этап обучения ......................................................................................................292 Переворачивание исходного предложения .......................................................293 Этап тестирования ..............................................................................................294 Обучение NMT .........................................................................................................294 Вывод перевода из NMT ..........................................................................................295 Метрика BLEU – оценка систем машинного перевода .........................................295 Модифицированная точность ............................................................................296 Штраф за краткость .............................................................................................297 Окончательная оценка BLEU ..............................................................................297 Собственная система NMT с нуля – переводчик с немецкого на английский ....297 Знакомство с данными ........................................................................................298 Предварительная обработка данных .................................................................298 Изучение представлений слов ............................................................................299 Кодер и декодер ...................................................................................................300 Сквозные вычисления .........................................................................................302 Примеры результатов перевода .........................................................................304 Обучение NMT одновременно с изучением представлений слов........................306 Максимизация совпадений между словарем набора данных и предварительно подготовленными представлениями .................................306 Объявление слоя представлений как переменной TensorFlow ........................308 Совершенствование NMT ........................................................................................310 Помощь наставника ............................................................................................310 Глубокие LSTM .....................................................................................................312 Механизм внимания ...............................................................................................312 Узкое место: вектор контекста ...........................................................................313 Механизм внимания в деталях ...........................................................................314 Результаты работы NMT со вниманием .............................................................319 Визуализация внимания к исходным и целевым предложениям ...................321 Применение моделей Seq2Seq в чатботах ............................................................322 Обучение чатбота ...............................................................................................322 Оценка чатботов – тест Тьюринга .....................................................................324 Заключение ..............................................................................................................324
Содержание 11 Глава 11. Современные тенденции и будущее обработки естественного языка ........................................................................................326 Современные тенденции в NLP ..............................................................................327 Представления слов .............................................................................................327 Нейронный машинный перевод ........................................................................332 Применение NLP в смежных прикладных областях .............................................334 Сочетание NLP с компьютерным зрением ........................................................334 Обучение с подкреплением ................................................................................336 Генеративные состязательные сети и NLP .........................................................338 На пути к искусственному общему интеллекту ....................................................340 Обучил одну модель – обучил их все ..................................................................340 Совместная многозадачная модель – развитие нейронной сети для множества задач NLP ....................................................................................342 NLP для социальных сетей ......................................................................................344 Обнаружение слухов в соцсетях .........................................................................344 Обнаружение эмоций в социальных сетях ........................................................345 Анализ политического наполнения в твитах ....................................................345 Новые задачи и вызовы ..........................................................................................347 Обнаружение сарказма .......................................................................................347 Смысловое основание языка ..............................................................................347 Скимминг текста с помощью LSTM....................................................................348 Новые модели машинного обучения .....................................................................348 Фазированные LSTM ...........................................................................................349 Расширенные рекуррентные нейронные сети (DRNN) ....................................350 Заключение ..............................................................................................................351 Литература ...............................................................................................................351 Приложение. Математические основы и углубленное изучение TensorFlow ........................................................................................354 Основные структуры данных ..................................................................................354 Cкаляр ...................................................................................................................354 Векторы ................................................................................................................354 Матрицы ...............................................................................................................355 Индексы матрицы ...............................................................................................355 Специальные типы матриц ....................................................................................356 Тождественная матрица ......................................................................................356 Диагональная матрица .......................................................................................356 Тензоры ................................................................................................................357 Тензорные и матричные операции ........................................................................357 Транспонирование ..............................................................................................357 Умножение ...........................................................................................................358 Поэлементное умножение ..................................................................................358 Обратная матрица ...............................................................................................359 Нахождение обратной матрицы – сингулярное разложение (SVD) .................360 Нормы ...................................................................................................................360 Определитель .......................................................................................................361
Содержание Вероятность ..............................................................................................................361 Случайные величины ..........................................................................................362 Дискретные случайные величины .....................................................................362 Непрерывные случайные величины ..................................................................362 Функция вероятности масса/плотность .............................................................362 Условная вероятность ..........................................................................................364 Совместная вероятность .....................................................................................364 Предельная вероятность .....................................................................................365 Правило Байеса ....................................................................................................365 Введение в Keras ......................................................................................................365 Введение в библиотеку TensorFlow seq2seq ...........................................................367 Определение вложений для кодера и декодера ................................................367 Объявление кодера ..............................................................................................368 Объявление декодера ..........................................................................................369 Визуализация представлений слов с помощью TensorBoard ...............................370 Первые шаги с TensorBoard .................................................................................370 Сохранение представлений слов и визуализация в TensorBoard .....................371 Заключение ..............................................................................................................374 Предметный указатель ...................................................................................376
Об авторе Тушан Ганегедара написал эту книгу на третьем году обучения в аспирантуре университета Сиднея, Австралия, а перед этим получил степень бакалавра с отличием в университете Моратува, ШриЛанка. Он специализируется на машинном обучении и особенно увлечен глубокими нейросетями. Тушан любит рисковать и часто запускает алгоритмы на непроверенных данных. Он также работает в качестве главного аналитика данных в австралийском стартапе AssessThreat и регулярно пишет технические статьи и учебные пособия по машинному обучению. Кроме того, он стремится к здоровому образу жизни и ежедневно занимается плаванием. Я хочу поблагодарить моих родителей, моих братьев и сестер и мою жену за веру в меня и за поддержку, которую они оказали, а также всех моих учи- телей и моего научного руководителя за наставления, которые они дали мне.
О рецензентах Мотаз Саад окончил аспирантуру по информатике в Университете Лотарингии. Он любит данные и все, что с ними связано. Он более 10 лет занимается обработкой естественных языков, компьютерной лингвистикой, наукой о данных и машинным обучением. В настоящее время работает доцентом на факультете информационных технологий IUG (Islamic University of Gaza). Доктор Джозеф О’Коннор – специалист по данным, искренне увлеченный глубоким обучением. Его компания Deep Learn Analytics, британская консалтинговая компания, специализирующаяся на данных, оказывает предприятиям услуги по разработке приложений и инфраструктуры машинного обучения от концепции до развертывания. Ему была присуждена степень доктора философии в университете Лондона за работу по анализу данных эксперимента по физике высоких энергий MINOS. С того времени он разработал продукты машинного обучения для ряда компаний частного сектора, специализирующихся на NLP и прогнозировании временных рядов. Вы можете найти его на http://deeplearnanalytics.com/.
Предисловие В наш век цифровой информации, в котором мы живем, объем данных растет в геометрической прогрессии. Пока вы читаете эти слова, мировые запасы данных продолжают расти с ошеломляющей скоростью. Большая часть этих данных относится к языковым данным – текстовым или устным, – таким как электронные письма, сообщения в социальных сетях, телефонные звонки и статьи в интернете. Машинная обработка естественного языка (natural language processing, NLP) эффективно использует эти данные, чтобы помочь людям в их бизнесе или в повседневных задачах. Технология NLP уже произвела революцию в повседневном использовании данных, помогает бизнесу, облегчает жизнь людей и продолжит делать это в будущем. Одним из наиболее распространенных примеров применения NLP являются виртуальные помощники (virtual assistants, VA), такие как Siri от Apple, Google Assistant и Amazon Alexa. Всякий раз, когда вы просите своего виртуального помощника найти «отели в Швейцарии по низким ценам», запускается серия сложных задач обработки естественного языка. Вопервых, ваш помощник должен понять смысл запроса (например, определить, что надо искать низкие цены на отели, а не ближайшие площадки для выгула собак). Еще одно решение, которое должен принять помощник, – это определить критерий «низкой цены». Затем помощник должен ранжировать города в Швейцарии, возможно, исходя из вашей прошлой истории путешествий. Помощник может просканировать сайты агрегаторов отелей, чтобы извлечь оттуда цены на отели в Швейцарии и «прочитать» отзывы посетителей для каждого отеля. Как видите, ответ на запрос, который вы получаете через несколько секунд, является результатом разносторонней работы системы NLP. Итак, что делает системы NLP настолько универсальными и точными в решении наших повседневных задач? В основе успеха лежат алгоритмы глубокого обучения. Это, по сути, сложные нейронные сети, которые могут проецировать необработанные данные в желаемый результат, не требуя какойлибо сложной ручной настройки алгоритма. Это означает, что турист напишет отзыв об отеле на естественном человеческом языке, а компьютер безошибочно ответит на вопрос «Насколько положителен отзыв клиента об этом отеле?». Кроме того, глубокое обучение уже достигло и даже превысило уровень человеческих возможностей в различных задачах NLP, таких как распознавание речи и машинный перевод. Прочитав эту книгу, вы узнаете, как решать многие интересные задачи NLP, используя глубокое обучение. Итак, если вы хотите быть влиятельным человеком, который меняет мир, изучение NLP имеет решающее значение. Прикладные задачи варьируются от изучения семантики слов до генерации новых историй и выполнения машинного перевода с обучением «на ходу». Все главы содержат упражнения, практические примеры и пошаговые инструкции по внедрению рассматриваемых решений. Для всех упражнений в этой книге мы будем использовать Python с TensorFlow – популярной библиотекой распределенных вычислений, которая делает реализацию глубоких нейронных сетей очень простой и удобной.
Предисловие Для кого эта книга Эта книга предназначена для начинающих исследователей и разработчиков, которые стремятся сделать мир лучше, используя лингвистические данные. Книга предоставит вам прочную практическую основу для решения задач NLP. В этой книге мы рассмотрим различные аспекты NLP, уделяя больше внимания практической реализации, чем теоретическим основам. Обладание практическими навыками решения различных задач NLP поможет вам совершить более плавный переход к изучению более сложных теоретических аспектов этих методов. Кроме того, хорошее понимание практической части NLP поможет при выполнении более точной настройки ваших алгоритмов, чтобы получить максимальную отдачу от конкретного проекта. какие темы охватывает эта книга Глава 1 знакомит вас с NLP. В этой главе вы узнаете причины, по которым востребована обработка естественного языка. Далее перечислены некоторые общие проблемы и определены две основные эпохи NLP – период использования традиционных методов и современные приемы глубокого обучения. Сначала мы в общих чертах рассмотрим, как задача моделирования языка решается с по мощью традиционных алгоритмов. Затем обсудим современную эпоху, когда задачи машинной обработки языка решаются с помощью моделей глубокого обучения, и рассмотрим основные семейства алгоритмов глубокого обучения. Потом вы познакомитесь с принципом работы одного из основных современных алгоритмов – полносвязной нейронной сети. Главу завершает «дорожная карта», в которой дается краткое введение в последующие главы. Глава 2 знакомит вас с библиотекой Python TensorFlow – основной платформой, на которой реализованы все решения, рассмотренные в этой книге. Вы начнете с написания кода для реализации простых вычислений в TensorFlow, а затем узнаете, как выполняется этот код, начиная с запуска программы и заканчивая получением результатов. Таким образом, вы на простом примере познакомитесь с основными компонентами TensorFlow. Вы еще больше укрепите понимание TensorFlow благодаря красочной аналогии с процессом выполнения заказов в ресторане. Далее мы обсудим технические детали TensorFlow, такие как структуры данных и операции с нейронными сетями, встроенные в TensorFlow. Наконец, вы создадите полносвязную нейронную сеть для распознавания рукописных цифр. Это пример реализации комплексного решения с помощью TensorFlow. Глава 3 начинается с обсуждения того, как решать задачи NLP с помощью TensorFlow. В этой главе вы узнаете, как нейронные сети применяются для изучения векторов слов, известных также как представления слов. Векторы слов являют собой числовые представления слов с учетом смыслового окружения. Сначала мы обсудим несколько традиционных подходов к достижению этой цели, которые включают использование большой базы знаний, созданной человеком, известной как WordNet. Затем мы рассмотрим современный подход на основе нейронных сетей, известный как Word2vec и основанный на изучении векторов слов без вмешательства человека. Сначала вы исследуете механику Word2vec, проработав практиче
Какие темы охватывает эта книга 17 ский пример, а затем познакомитесь с двумя усовершенствованными методами – словосочетаниями с пропуском (SkipGram) и непрерывным мультимножеством слов (continuous bagofwords, CBOW). Главу завершает обсуждение концептуальных особенностей алгоритмов, а также способы их реализации в TensorFlow. Глава 4 раскрывает более сложные темы, связанные с векторами слов. Сначала мы сравним подходы SkipGram и CBOW, чтобы узнать, существует ли победитель. Далее мы обсудим несколько улучшений, которые можно использовать для повышения качества работы алгоритмов Word2vec. Затем вы познакомитесь с более современным и мощным подходом к изучению векторизации смыслов – алгоритмом глобальных векторов GloVe. Наконец, вы познакомитесь с векторами слов в действии в задаче классификации документов. В этом упражнении вы увидите, что векторный подход достаточно точен и может правильно классифицировать тему документа. Глава 5 посвящена обсуждению сверточных нейронных сетей (convolutional neural network, CNN) – семейства нейронных сетей, которые превосходны при обработке пространственных данных, таких как изображения или предложения. Мы начнем с изучения общих принципов работы CNN, обсудив, как они обрабатывают данные и какие операции выполняют. Далее мы детально разберем каждую операцию, связанную с вычислениями, чтобы понять внутреннюю математику CNN. Наконец, вы выполните два упражнения. Вопервых, вы будете классифицировать изображения рукописных цифр с помощью CNN. Вы убедитесь, что CNN способны быстро достичь очень высокой точности при решении задач такого типа. Далее вы узнаете, как можно использовать CNN для классификации предложений. В завершающем главу примере нейросеть предсказывает, относится ли предложение к объекту, человеку, местоположению и т. д. Глава 6 рассказывает о рекуррентных нейронных сетях (recurrent neural network, RNN) – мощном семействе нейронных сетей, которые могут обрабатывать последовательности данных. Сначала вы изучите внутреннюю математику и правила функционирования RNN в процессе обучения. Затем вы познакомитесь с различными вариантами RNN и их применением (например, структуры один-к-одному и один-ко-многим). Наконец, вы выполните упражнение, в котором RNN решает задачу генерации текста. В этом примере RNN обучается на наборе сказок и пытается сочинить новую сказку. Вы увидите, что RNN плохо работают с долговременной памятью. Наконец, мы обсудим более продвинутый вариант RNN под названием RNNCF, обладающий более надежной долгосрочной памятью. Глава 7 рассказывает про более мощные рекуррентные нейросети, которые способны запоминать данные в течение более длительного периода времени, поскольку стандартные RNN плохо поддерживают долговременную память. В этой главе рассказано про сети с долгой краткосрочной памятью (long shortterm memory, LSTM). Известно, что LSTM превосходят другие последовательные модели во многих задачах временных рядов. Сначала вы исследуете базовую математику и новые правила LSTM на ярком примере, который иллюстрирует, почему каждое вычисление имеет значение. Затем вы узнаете, как LSTM могут сохранять память еще дольше. Далее мы обсудим, как можно улучшить прогнозные возможности LSTM. Наконец, мы рассмотрим несколько вариантов LSTM, имеющих более сложную структуру, включая управляемые рекуррентные блоки (Gated Recurrent Unit, GRU).
Предисловие Глава 8 подробно рассказывает о том, как LSTMсети работают в задаче генерации текста. Вы качественно и количественно оцените, насколько хорош текст, сгенерированный LSTM, а также проведете сравнение различных модификаций LSTM. Наконец, вы узнаете, как добавить в модель механизм векторного представления слов, чтобы улучшить качество сгенерированного текста. Глава 9 от работы с текстами переносит вас к мультимодальным данным, то есть комбинации изображения и текста. В этой главе вы узнаете, как автоматически генерировать текстовое описание для заданного изображения. Решение включает в себя объединение сверточной модели прямого распространения (CNN) со слоем представления слов и последовательной модели (LSTM) таким образом, чтобы сформировать полный цикл машинного обучения. Глава 10 рассказывает о реализации модели нейронного машинного перевода (neural machine translation, NMT). В машинном переводе мы переводим предложение/фразу с исходного языка на целевой язык. Сначала вы познакомитесь с краткой историей и основами машинного перевода. Затем детально изучите архитектуру современных моделей нейронного машинного перевода, включая процедуры обучения и вывода. Далее вы узнаете, как реализовать систему NMT с нуля. Наконец, вы познакомитесь со способами улучшения стандартных систем NMT. Глава 11 завершает книгу и посвящена текущим тенденциям и будущему NLP. Мы обсудим последние открытия, связанные с системами и задачами, о которых рассказано в предыдущих главах. В этой главе будет рассказано о самых интересных нововведениях, а также будет дано углубленное представление о внедрении некоторых технологий. Приложение познакомит читателя с различными математическими структурами данных и операциями. Мы также обсудим несколько важных понятий в теории вероятности. Затем вы познакомитесь с Keras – библиотекой высокого уровня, которая использует TensorFlow. Keras упрощает реализацию нейронных сетей, скрывая некоторые детали в TensorFlow, что может сначала показаться запутанным. Вы познакомитесь с примером реализации сверточной сети с помощью Keras. Далее мы рассмотрим использование библиотеки seq2seq в TensorFlow для реализации системы машинного перевода с гораздо меньшим количеством кода, чем в упражнении из главы 11. Наконец, вы познакомитесь с руководством по использованию TensorBoard для визуализации смысловых связей слов. TensorBoard – это удобный инструмент визуализации, который поставляется с TensorFlow. Его можно использовать для визуализации и мониторинга различных переменных в вашем клиенте TensorFlow. как получить максимальную отДачу от этой книги Чтобы извлечь максимальную пользу из этой книги, читатель должен: иметь твердую волю и желание изучить современные методы NLP; ознакомиться с базовым синтаксисом языка Python и структурами данных, такими как списки и словари; знать основы математики, например умножение матриц/векторов.
Доступ онлайн
В корзину