Оглавление:
- Введение в библиотеку Torch's Tensor
- Графики вычислений и автоматическая дифференциация
- Глубокие строительные блоки: аффинные карты, нелинейности и цели
- Оптимизация и обучение
- Создание сетевых компонентов в Pytorch
- Пример: Text Classifier Bag-Beards Back-Beards Text
- Слово встраивание: кодирование лексической семантики
- Пример: моделирование языка N-грамма
- Упражнения: непрерывные сумки для изучения слов встраивания
- Моделирование последовательности и сетки памяти с длинным коротким термином
- Пример: LSTM для тегов части речи
- Упражнение: увеличение тегачика LSTM с помощью функций на уровне символов
- Advanced: динамические наборы инструментов, динамическое программирование и Bilstm-CRF
- Пример: BI-LSTM условное случайное поле для распознавания названного суда
- Упражнения: новая функция потери для дискриминационного помечения
Что это за учебник?
Я пишу этот урок, потому что, хотя есть много других учебных пособий, у них, кажется, есть одна из трех проблем:
- У них есть много контента в области компьютерного зрения и конва, что не имеет значения для большинства НЛП (хотя конвретики применяются в прохладных способах к проблемам НЛП).
- Pytorch является совершенно новым, и так много глубокого обучения для учебных пособий NLP находится в более старых рамках, и обычно не в динамических рамках, таких как Pytorch, которые имеют совершенно другой вкус.
- Примеры не выходят за рамки моделей языка RNN и не показывают удивительные вещи, которые вы можете сделать, пытаясь сделать прогноз лингузитной структуры. Я думаю, что это проблема, потому что динамические графики Pytorch делают прогнозирование структуры одной из ее самых сильных сторон.
В частности, я пишу этот учебник для класса обработки естественного языка в Georgia Tech, чтобы облегчить задачу, который я написал для класса по глубокому переходу. Набор проблем использует некоторые передовые методы. Намерение этого урока состоит в том, чтобы охватить основы, чтобы студенты могли сосредоточиться на более сложных аспектах заданного задания. Цель состоит в том, чтобы начать с оснований и перейти к прогнозированию лингвистической структуры, который, как я чувствую, почти полностью отсутствует в других уроках Pytorch. Общие основы глубокого обучения имеют короткие экспозиции. Темы больше NLP-специфических получили более глубокие дискуссии, хотя я упоминал о других источниках, когда почувствовал, что полное описание будет переосмысление колеса и займет слишком много места.
Набор задач расстановки зависимости
Как упомянуто выше, вот набор проблем, который проходит через реализацию высокопроизводительного анализатора зависимости в Pytorch. Я хотел добавить здесь ссылку, так как это может быть полезно, при условии, что вы игнорируете вещи, которые были характерны для класса. Несколько заметок:
- Существует много кода, поэтому начало набора задач было в основном, чтобы узнать людей с тем, как мой код представлял соответствующие данные, и интерфейсы, которые вы должны использовать. Остальная часть набора проблем фактически реализует компоненты для анализатора. Поскольку мы раньше не делали глубокого обучения в классе, я пытался предоставить огромное количество комментариев и подсказков при его написании.
- Существует модульный тест для каждого результата, который вы можете запустить с Nosetests.
- Поскольку мы используем эту проблему, установленную в классе, пожалуйста, не публикуйте решения.
- В том же репо есть некоторые примечания, которые включают раздел о анализе зависимости смены смены, если вы ищете письменный источник для дополнения задачи.
- Ссылка выше может не работать, если она будет снята в начале нового семестра.
Ссылки:
- Я многое узнал о прогнозировании глубокого структуры на EMNLP 2016 из этого урока по Dynet, данным Крисом Дайером и Грэмом Нойубигом из CMU и Yoav Goldberg из университета Bar Ilan. Dynet - отличный пакет, особенно если вы хотите использовать C ++ и избегать динамического набора печати. Последнее упражнение Bilstm CRF и упражнения на уровне персонажа-это то, что я узнал из этого урока.
- Великой книгой о прогнозировании структуры является прогноз лингвистической структуры Ноа Смита. Он не использует глубокое обучение, но это нормально.
- Лучшая книга о глубоком обучении, о которой я знаю, - это глубокое обучение, которое является некоторыми основными участниками этой области и очень всеобъемлющей, хотя нет фокуса НЛП. Это бесплатно онлайн, но стоит иметь на полке.
Упражнения:
В учебном пособии есть несколько упражнений, которые предназначены для реализации популярной модели (CBOW), либо дополнить одну из моих моделей. Особенности на уровне персонажа, особенно нетривиальные, но очень полезны (я не могу цитировать точные числа, но я уже запускал эксперимент, и обычно функции уровня символов повышают точность на 2-3%). Поскольку они не простые упражнения, я скоро реализую их сам и добавлю в репо.
Предложения:
Пожалуйста, откройте проблему GitHub, если вы найдете какие -либо ошибки или думаете, что есть конкретная модель, которая была бы полезна для добавления.