Обзор практического машинного обучения с помощью Scikit-Learn, Keras и Tensorflow Орельена Жерона

Резюме

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

Анализ настроений

Проблема анализа настроений IMDb на самом деле является Привет, мир машинного обучения, поскольку до сих пор в моем обучении я уже сталкивался с ней трижды. По сути, то, что нам нужно сделать в этой задаче, — это классифицировать набор обзоров фильмов IMDb по тому, являются ли они положительными или отрицательными, используя возможности НЛП. Для этого мы должны предварительно обработать все наши данные, поскольку в настоящее время они основаны на тексте и содержат больше шума, чем мы могли бы надеяться. Итак, сначала нам нужно убрать весь шум, такой как разрывы, знаки препинания и заглавные буквы. Затем мы можем фактически кодировать наши значения, кодируя их на основе созданных нами пакетов (где каждому уникальному слову предоставляется уникальное значение). Затем отсюда мы можем создать нашу нейронную сеть (Жерон решил использовать здесь GRU), обучить ее и эффективно классифицировать наши обзоры фильмов по их правильным категориям.

Сети кодера-декодера

Сети Encoder-Decoder работают именно так, как они звучат. В книге Жерон рассказывает о модели языкового перевода ML, которая переводит предложения с одного языка на другой. В этом примере в стиле Google Translate язык ввода кодируется в высокоуровневое векторное пространство, которое затем в конечном итоге будет переведено в новый язык через декодер. По сути, это использует высокое векторное пространство в качестве воображаемого языка, который затем может быть переведен непосредственно на предполагаемый язык кодировщиком.

Трансформеры

Преобразователи — это современное состояние обработки естественного языка, но, в отличие от всего остального, что мы рассматривали до сих пор, они не содержат повторяющихся или сверточных слоев. Разработанные в 2017 году в Google, Трансформеры (согласен, было бы круче, если бы они были автоботами) — это тип архитектуры NMT, который фокусируется на внимании. Это означает, что пока наш преобразователь работает, он обнаруживает и запоминает другие важные значения, включенные в предложение, например, если бы я написал Саманта выгуливала свою собаку, важными словами были бы Саманта, гуляла и ее собака. Таким образом, если бы мы вложили это в модель трансформатора, такую ​​​​как BERT или GPT-3, она использовала бы эти важные слова, давая рекомендации по переводу. Я не собираюсь вдаваться в архитектуру Трансформеров, поскольку мне, честно говоря, нужно работать над своим пониманием, но я нашел еще один ресурс, который помог мне узнать больше об этом, — Что такое Трансформер от IBM.

Мои мысли

Для меня это была действительно замечательная глава, так как меня всегда интересовало, как компьютеры взаимодействуют с языком. До этого момента я действительно видел только модели прогнозирования, но одна из вещей, которые мне действительно понравились в этой главе, — это изучение темы кодировщика/декодера, в которой много говорилось о том, как на самом деле работает языковой перевод. Я всегда нахожу более интересным способ узнать о том, что «машины берут на себя все», например, как в этом случае машина использует свой собственный воображаемый язык для перевода. Я просто слышу об этом из разговоров и средств массовой информации, так что здорово узнать немного больше о технологиях и математике, лежащих в основе всех этих криков о восстании машин. Кроме того, я всегда слышал о трансформерах, будь то в подкастах, твитах или просто на работе, поэтому было здорово узнать о теме, которая, как я знаю, находится на переднем крае машинного обучения в настоящий момент. Тем более мне это показалось интересным, потому что на моей работе мы используем трансформаторы, чтобы помочь нам с некоторыми продуктами, над которыми я работаю. И хотя я всегда слышал интересные вещи о BERT, GPT и тому подобном, для меня было круто узнать об этом больше, поскольку это будет то, что я смогу применить в своей повседневной жизни, даже если это просто то, как я понимаю то, что мои коллеги делаем.

Спасибо за чтение!

Если у вас есть какие-либо вопросы или отзывы, пожалуйста, свяжитесь со мной в твиттере @wtothdev или оставьте комментарий!

Кроме того, я хотел бы выразить огромную благодарность Орельен Жерон за написание такой прекрасной книги. Вы можете приобрести указанную книгу здесь (не партнерская).

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