Подтвердить что ты не робот

Что такое проекционный слой в контексте нейронных сетей?

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

После прочтения статьи Томаса Миколова Я натолкнулся на то, что он определяет как проекционный слой. Несмотря на то, что этот термин широко используется, когда он относится к word2vec, я не смог найти точное определение того, что он на самом деле находится в контексте нейронной сети.

Архитектура нейронной сети Word2Vec

Мой вопрос в контексте нейронной сети, что такое проекционный слой? Является ли это имя для скрытого слоя, ссылки на предыдущие узлы которого имеют одинаковые веса? У его блоков действительно есть какая-либо функция активации?

 Другой ресурс, который также относится более широко к проблеме, можно найти в этот учебник, который также относится к проекционному уровню вокруг страницы 67.

4b9b3361

Ответ 1

Проекционный слой отображает индексы дискретных слов контекста n-gram в непрерывное векторное пространство.

Как объяснено в этом thesis

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

введите описание изображения здесь

этот рисунок показывает тривиальную топологию, как результат проекционного слоя может быть эффективно собран путем копирования столбцов из матрицы весов проекционного слоя.

Теперь Скрытый слой:

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

Изменить: объяснение того, что происходит на диаграмме

Каждый нейрон в проекционном слое представлен числом весов, равным размеру словаря. Проецирующий слой отличается от скрытого и выходного уровней, не используя нелинейную функцию активации. Его цель - просто обеспечить эффективное средство проецирования данного контекста n-грамма на уменьшенное непрерывное векторное пространство для последующей обработки скрытыми и выходными уровнями, обученными для классификации таких векторов. Учитывая единообразный характер входных векторных элементов, выход для конкретного слова с индексом я является просто i-м столбцом обучаемой матрицы весов проекционного слоя (где каждая строка матрицы представляет весовые коэффициенты одного нейрона).

Ответ 2

continuous bag of words используется для предсказания одного слова с учетом его предыдущих и будущих записей: таким образом, это контекстуальный результат.

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

RE: what is the projection layer: из статьи, которую вы указали

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

Таким образом, проекционный слой представляет собой единый набор shared weights и не отображается функция активации.

Обратите внимание, что весовая матрица между входным и проекционным уровнями разделяется для всех позиций слова так же, как в NNLM

Таким образом, hidden layer на самом деле представлен этим единственным набором общих весов - как вы правильно подразумевали, что идентично для всех входных узлов.