[Вернакулярный анализ] Позвольте вам разобраться с концепциями, связанными с Word2vec.
0x00 сводка
В этой статье мы попытаемся использовать простой для понимания метод, максимально не используя математические формулы, а опираясь на общую идею, используя перцептивное и интуитивное мышление, чтобы помочь вам разобраться в концепциях, связанных с Word2vec.
0x01 Введение
1. Причина
Изначально я просто хотел написать Word2vec, но не рассчитывал разбирать пункты знаний один за другим, а сам Word2vec занимает лишь небольшую часть. Так что просто сосредоточьтесь в статье на сортировке связанных понятий, чтобы каждый мог лучше понять Word2vec.
Чтобы обсудить Word2vec, нам необходимо освоить (или предположить, что на данный момент известно) следующие обязательные знания:
- Горячее кодирование/распределенное представление
- score function / loss function
- Самоинформация / энтропия / перекрестная энтропия / дивергенция KL / оценка максимального правдоподобия
- Регрессия Softmax
Мы знаем, что есть 4 ключевые части машинного обучения:
- Цифровое представление входа.
- Цифровое представление вывода.
- Метод сопоставления ввода и вывода.
- Критерии оценки методов картирования.
Таким образом, наш основной процесс кардочесания — от входа к выходу. это
- Горячее кодирование/распределенное представление видно из-за ввода в нейронную сеть.
- Из-за функции обучения/потери нейронной сети ряд понятий, таких как информация/энтропия/кросс-энтропия/дивергенция KL/оценка максимального правдоподобия, отсортированы.
- Из-за выходных данных нейронной сети необходимо разобраться с регрессией Softmax.
Концепции в машинном обучении сложны и неясны, и они связаны с математикой/физикой.Одна и та же концепция часто имеет разные интерпретации. Поэтому среди различных толкований можно найти то, которое вам понятно, а затем углубиться.
2. Кратко опишите Word2vec
Модель Word2vec на самом деле представляет собой упрощенную нейронную сеть. Но обучение этой нейронной сети заключается не в том, чтобы точно предсказать правильное центральное слово/окружающие слова, а в том, чтобы получитьword——>vector
это картографическое отношение. Его конкретное разложение выглядит следующим образом:
-
Построение данных: создание пар слов из исходных данных в форме [входное слово, выходное слово], т. е. [данные x, метка y].
-
Входной слой: все слова в качестве входных данных кодируются горячим способом, а входные данные представляют собой n-мерный вектор (n — количество слов в словаре).
-
Скрытый слой: в середине есть только один скрытый слой (без функции активации, только линейные единицы). Скрытый слой фактически хранит векторы слов всех слов в словаре. Это матрица размера [размер словаря x размер встраивания]. Каждая строка матрицы соответствует словесному вектору определенного слова.
-
Выходной слой: выход также является горячим вектором. Измерение выходного слоя совпадает с измерением входного слоя, и значение каждого измерения добавляется к 1. Используется регрессия Softmax. softmax гарантирует, что выходной вектор является распределением вероятностей. После преобразования в вероятность мы можем использовать оценку максимального правдоподобия (перекрестную энтропию), чтобы найти максимальную вероятность или минимальную перекрестную энтропию.
-
Определите функцию потерь: используется для прогнозирования правильного вывода/оптимизации модели.
Наше значение метки y представляет собой распределение вероятностей.После того, как выходной слой обрабатывается softmax, это также распределение вероятностей, так что перекрестную энтропию можно использовать для измерения разницы между выходом нейронной сети и нашей меткой y, и потери можно определить.
-
Итеративное обучение: используя алгоритм градиентного спуска, каждая итерация сравнивает потери между прогнозом и меткой y, а затем соответствующим образом оптимизирует и, наконец, гарантирует, что похожие слова имеют схожие векторы.
-
Окончательная матрица: удалите выходной слой и используйте только выходную единицу скрытого слоя (то есть вес между входным слоем и скрытым слоем) для формирования таблицы поиска.
После обучения модели мы не будем использовать обученную модель для обработки новых задач, нам действительно нужны параметры, полученные моделью через обучающие данные, такие как матрица весов скрытого слоя.
Давайте проанализируем связанные понятия слой за слоем.
0x01 Концепции, связанные с уровнем данных/входа
Компьютерные системы могут распознавать только числа, поэтому для достижения цели прогнозирования требуется числовое представление наблюдаемого.
1. Горячее кодирование
Горячее кодирование гарантирует, что только 1 бит одного признака в каждом образце находится в состоянии 1, а остальные равны 0. Конкретный пример кодирования выглядит следующим образом. В корпусе каждому из Ханчжоу, Шанхая, Нинбо и Пекина соответствует вектор. Только одно значение в векторе равно 1, а остальные равны 0.
杭州 [0,0,0,0,0,0,0,1,0,……,0,0,0,0,0,0,0]
上海 [0,0,0,0,1,0,0,0,0,……,0,0,0,0,0,0,0]
宁波 [0,0,0,1,0,0,0,0,0,……,0,0,0,0,0,0,0]
北京 [0,0,0,0,0,0,0,0,0,……,1,0,0,0,0,0,0]
Недостатки:
- Размерность вектора будет увеличиваться с увеличением количества и типа слов в предложении; если векторы, соответствующие всем названиям городов мира, объединить в матрицу, матрица будет слишком разреженной и вызовет размерную катастрофу.
- Код города является случайным, а векторы независимы друг от друга, что не может представлять связанную информацию между словами на семантическом уровне.
Итак, люди хотят улучшить горячее кодирование следующим образом:
- Измените каждый элемент вектора с целого на тип с плавающей запятой, чтобы представить весь диапазон действительных чисел;
- Преобразуется в низкоразмерные непрерывные значения, то есть в плотные векторы. Сжать и встроить исходное разреженное огромное измерение в пространство меньшего измерения. И слова с похожими значениями будут отображаться в одинаковых позициях в векторном пространстве.
Проще говоря, нам нужно найти пространственное отображение для встраивания многомерных векторов слов в низкоразмерное пространство. Затем можно продолжить обработку.
2. Распределенное представление
Распределенное представление (Distributed Representation) на самом деле было предложено Хинтоном еще в 1986 году. Основная идея состоит в том, чтобы выразить каждое слово как n-мерный плотный и непрерывный вектор вещественных чисел. Связь между реальными векторами может представлять сходство между словами, например косинус угла или евклидово расстояние векторов.
Существует специальный термин для описания техники распределенного представления векторов слов — встраивание слов. Как видно из названия, горячее кодирование эквивалентно кодированию слов, в то время как распределенное представление предназначено для сжатия и встраивания слов из разреженного большого измерения в векторное пространство меньшей размерности.
Самый большой вклад распределенного представления заключается в том, чтобы сделать родственные или похожие слова ближе на расстоянии.
Еще одно различие между распределенным представлением и One-hot заключается в том, что размерность значительно уменьшена.Для словаря 100W мы можем использовать 100-мерный реальный вектор для представления слова, в то время как для One-hot требуется 100W.
Почему вектор слова, отображаемый в векторное пространство, может представлять, какое слово определено, и сходство между ними?
-
К вопросу о том, почему оно может обозначать слово. Распределение на самом деле состоит в том, чтобы найти функцию отображения, эта функция отображения сжимает и проецирует исходное однократное представление каждого слова в пространство более низкого измерения и соответствует один к одному. Таким образом, распределенные могут представлять определенные слова.
-
О том, почему распределённые тоже можно знать отношения между словами. Необходимо понять гипотезу распределения. Он основан на распределенном предположении, что слова, встречающиеся в одном и том же контексте, должны иметь сходные значения. Все методы обучения встраиванию слов используют математические методы для моделирования связи между словами и контекстом.
Основная идея распределенного представления векторов слов состоит из двух частей:
- Выберите способ описания контекста;
- Выберите модель, чтобы охарактеризовать отношения между целевым словом и его контекстом.
Фактически, будь то скрытый слой нейронной сети или вероятностная тематическая модель множества скрытых переменных, применяется распределенное представление.
0x02 Концепции, связанные с обучением/скрытым уровнем
Основное внимание здесь уделяется кросс-энтропии как функции потерь, что приводит к ряду концепций.
- Дивергенция KL (относительная энтропия) может измерять близость двух распределений.Говорят, что дивергенция KL должна использоваться для измерения стоимости расчета потерь.
- При этом минимизация дивергенции КЛ в некоторых случаях эквивалентна минимизации кросс-энтропии. А операция кросс-энтропии проще, поэтому в качестве стоимости используется кросс-энтропия.
- Минимизация перекрестной энтропии и максимальное правдоподобие дают один и тот же результат, поэтому их можно использовать в качестве функций потерь.
1. score function
Метод линейной классификации содержит два важных компонента: функцию оценки и функцию потерь.
Предположим, что истинная классификация обучающих выборок — это K классов.
Функция оценки линейного классификатора представляет собой следующую линейную функцию: f(xi) = Wxi + b. Где W (матрица [K x D]) и b (вектор [K x 1]) вместе называются параметрами функции оценки.
Выход функции представляет собой вектор K x 1, где i-й элемент представляет собой оценку в i-м классе. Чем выше балл, тем больше вероятность того, что xi находится в этой категории.
ж и бряд яРешилкласс ядроби, поэтому W и bряд яназываетсякласс яклассификатор.
Поскольку xi является D-мерным вектором (каждое измерение является функцией), то мы можем думать о нем как о точке в D-мерном пространстве (выборочном пространстве).
Для каждого классификатора есть прямая линия (граница решения, если быть точным). Таким образом, мы можем видеть, где xi находится на этой линии, и мы можем сделать классификацию.
2. loss function
Также иногда называется функцией стоимости или целью. Он используется для измерения того, насколько хорошо прогнозы модели (W и b) на входном наборе соответствуют истинным меткам.
«Более точный прогноз» эквивалентен «меньшему убытку».
3. Информация о себе
Происходит событие x, которое соответствует распределению P, и минимальная длина информации, необходимой для передачи этой информации, представляет собой самоинформацию, выраженную как
объяснять:
О кодировке. Некоторые биты состояния необходимы для передачи значения состояния случайной переменной. Чем длиннее код, тем больше информации. Итак, есть такое уравнение:p=1/a^n
.
- p представляет вероятность принятия определенного значения.
- а представляет количество единиц хранения, которые могут быть сохранены.Если единица хранения бит, то а равно 2.
- n представляет длину кодирования.
Следовательно, вероятность суммарного значения состояния случайной величины должна быть равна a^n, а вероятность принятия единственного значения равнаp=1/a^n
. Таким образом, длина кодирования равнаI(x)Эта формула выведена.
4. Энтропия
Из распределения P случайным образом выбирается событие, а оптимальная средняя длина информации, необходимой для передачи этой информации (события), есть энтропия Шеннона, выражаемая как
объяснять:
Если событие происходит с вероятностью p(x), его самоинформацией является I(x).
Оптимальная средняя длина сообщения — это взвешенное среднее (или ожидание) каждой возможной энтропии сообщения. Это {длина сообщения}, умноженная на {вероятность появления сообщения}, а затем суммированная.
Пример:
Например: в азартной игре 4 лошади {A, B, C, D}, а вероятность выигрыша равна {1/2, 1/4, 1/8, 1/8}. но
В двоичном компьютере бит 0 или 1 фактически представляет ответ на двоичный вопрос. Другими словами, в компьютере мы кодируем событие, в котором лошадь выигрывает чемпионат, и требуемая средняя длина кода составляет 1,75 бита.
5. Перекрестная энтропия
Два распределения вероятностей p(x) и q(x) относительно набора выборок, где p(x) — неизвестное истинное распределение, а q(x) — приблизительное ложное распределение. Если неистинное распределение q(x) используется для представления средней длины кода из истинного распределения p(x), это называется кросс-энтропией.
объяснять:
- Информация, подлежащая передаче (то есть информация, выбранная из распределения), поступает из какого распределения, и ответом является истинное распределение p.
- Способ передачи информации (то есть, как она кодируется) определяется распределением, и ответом является приблизительное распределение q.
- Перекрестная энтропия заключается в использовании q(x) для моделирования p(x), использовании q(x) для установления системы кодирования и передаче значения x получателю.
На самом деле, всех легко спутать с тем, что в формуле кросс-энтропии какой из p и q помещается в log(). Примерно это можно понять так:
- Поскольку в формуле перекрестной энтропииlog() Используется для вычисления собственной информации, то есть длины кодирования..
- Целью **q(x)** является моделирование и аппроксимация реального распределения p(x) для кодирования и передачи информации. Так что поместите q(x) в log() здесь.
Может быть, будет яснее понять этот образ мышления:
Для передачи случайным образом выбранного события в истинном распределении P оптимальным методом передачи информации распределения Q необходимая средняя информационная длина есть перекрестная энтропия, выражаемая как
Распределение Q является приближенным нереальным распределением, которое используется для кодирования события x, случайно выбранного в P, и результатом кодирования этого события является Q(x). Это событие x выбирается с вероятностью P(x) в P.
Например:
В приведенном выше соревновании по ставкам на лошадей для четырех лошадей {A, B, C, D} вероятность выигрыша, предсказанная распределением Q, составляет {1/4, 1/4, 1/4, 1/4} соответственно. но
Таким образом, использование Q для передачи P требует 2 бита.
6. Дивергенция KL (относительная энтропия)
В теории информации относительная энтропия — это мера количества дополнительных битов, необходимых для кодирования среднего значения выборок из P с использованием кодирования на основе Q. Как правило, P представляет истинное распределение данных, а Q представляет собой теоретическое распределение данных, модельное распределение или приблизительное распределение P. Учитывая распределение вероятностей для набора символов, мы можем разработать кодировку, которая в среднем требует наименьшего количества битов для представления строки этого набора символов.
Дивергенция KL говорит о близости Q и P, то есть о сходстве, а информационная энтропия может быть вычтена из перекрестной энтропии. То есть распределение P передается с помощью наилучшего метода передачи информации распределения Q,СравниватьРаспределение P передается с помощью собственного оптимального метода передачи информации распределения P, а длина информации, затраченной в среднем, представляет собой расхождение KL, которое измеряет разницу между двумя распределениями.
Дивергенция KL выражается как:
Поскольку расхождение KL не является коммутативным, его нельзя понимать как понятие «расстояние». Оно не измеряет расстояние между двумя распределениями в пространстве. Более точное понимание заключается в измерении потери информации одного распределения по сравнению с другим. ).
Когда логарифм по основанию 2,log2, что можно понимать как «сколько битов информации мы теряем».
Уведомление,
- При выражении в форме D_q(P) распределение, которому принадлежит передаваемая информация, заключено в круглые скобки;
- При выражении в форме D_KL(P||Q) первым идет распределение, которому принадлежит передаваемая информация.
В формулу D_Q(P) входят два распределения:
- Из какого распределения исходит передаваемая информация, ответом является истинное распределение P.
- Какое распределение определяет способ передачи информации, ответ - примерное распределение Q
Следуйте предыдущему примеру.
Расхождение KL составляет 2 бита - 7/4 бита = 1/4 бита Объяснение В теории информации потеря информации в результате подгонки p к q составляет 1/4 бита.
Расхождение KL можно использовать для расчета стоимости, и когда машинное обучение оценивает разницу между двумя распределениями, поскольку будет задано распределение P, роль расхождения KL и перекрестной энтропии в настоящее время фактически одинакова, и поскольку учитывается перекрестная энтропия. на один элемент меньше (относительная энтропия = перекрестная энтропия - информационная энтропия), это проще, поэтому лучше выбрать перекрестную энтропию.
7. Кросс-энтропия как функция потерь
Перекрестная энтропия описывает расстояние между фактическим результатом (вероятностью) и ожидаемым результатом (вероятностью).
Чем меньше значение перекрестной энтропии, тем ближе два распределения вероятностей, то есть тем лучше соответствие. Если P(x) является исходным распределением данных, то распределение Q(x), минимизирующее перекрестную энтропию, является ближайшим к P(x) распределением.
Полная формула кросс-энтропии в теории информации:
Как можно видетьПотеря кросс-энтропии фактически получается путем подведения распределений p и q к этой формуле..
Когда p-распределение известно, энтропия реальных данных постоянна, так как Q не влияет на H(P). Таким образом, кросс-энтропия и дивергенция KL эквивалентны. Минимизация кросс-энтропии для Q эквивалентна минимизации дивергенции KL.
Минимизируйте перекрестную энтропиюфактическиМинимизируйте «расстояние» между прогнозируемым распределением и фактическим распределением.. Другими словами, функция кросс-энтропийных потерь «хочет», чтобы все плотности вероятности прогнозируемого распределения соответствовали правильной классификации.
То есть, когда выход представляет собой распределение вероятностей, кросс-энтропийную функцию можно использовать как меру идеала и реальности. Поэтому ее можно использовать как функцию потерь для нейронной сети с активацией Softmax.
8. Оценка максимального правдоподобия
Мысль
Математическая основа для использования функции кросс-энтропии в качестве функции потерь исходит из оценки максимального правдоподобия в статистике.
Оценка максимального правдоподобия — это оценка параметра, точнее, точечная оценка.
Идея оценки максимального правдоподобия:Параметр, который делает наблюдаемые данные (выборку) с наибольшей вероятностью появления, является лучшим параметром.. С точки зрения непрофессионала, это больше всего похоже на метод оценки (наиболее вероятный метод оценки), то есть событие с наибольшей вероятностью произойдет с наибольшей вероятностью.
Оценка максимального правдоподобия часто используется для использования известных результатов выборки для вывода значений параметров, которые, скорее всего, приведут к этому результату.Часто результаты модели определялись и использовались для вывода параметров в модели. Процесс определения значения параметра заключается в том, чтобы найти «Модель максимизации дает реальные возможности данных наблюденийНабор параметров. Поскольку результат известен, если параметр может сделать вероятность результата наибольшей, то этот параметр является оптимальным параметром.
Вот пример: предположим, что старый охотник вышел на охоту с молодым подмастерьем. В настоящее время мы знаем, что один из них убил кролика. Если вас попросят угадать, кто убил кролика, большинство людей прямо догадаются, что его убил старый охотник. Это фактически использует идею максимальной вероятности. Образец — мертвый кролик. Параметр - старый охотник.
получить
В контексте оценки максимального правдоподобия, поскольку параметры распределения совокупности неизвестны, θ используется для обозначения одного или нескольких неизвестных параметров совокупности.
Предположим, что скорость распределения равна P=p(x; θ), x — выборка вхождения, θ — оценочный параметр, p(x; θ) представляет вероятность появления x, когда оценочный параметр равен θ.
Мы хотим вычислить вероятность одновременного наблюдения всех этих данных, то есть совместное распределение вероятностей всех наблюдаемых точек данных. Поскольку мы предполагаем, что выборки независимы друг от друга и подчиняются распределению параметра θ, вероятность получения любой выборки xi может быть выражена как P(xi|θ), поэтому общая вероятность всех данных в текущем наборе выборок равна для наблюдения за каждым образцом в отдельности Произведение вероятностей точек данных (т.е. произведение предельных вероятностей):
P(X) = P(x1|θ)P(x2|θ)P(x3|θ) ... P(xn|θ)
Так как после выборки будет получено наблюдение за генеральной совокупностью, то в конкретном наборе выборки известна соответствующая вероятность.Приведенную выше функцию можно рассматривать как вероятность получения текущего набора выборки при различных значениях параметра θ. есть вероятность правдоподобия, поэтому она называется функцией правдоподобия параметра θ относительно выборочного набора X, обозначаемого как L (θ), то есть:
L(θ) = L(x1,x2,...,xn;θ) = p(x1|θ)...p(xn|θ) 连乘
Ввиду свершившегося факта, что выборочное множество X получено путем выборки, можно считать, что это тот результат, который должен встречаться чаще всего, то есть тот, который имеет наибольшую вероятность среди всех возможных результатов, откуда и пошло название максимального оценка вероятности. На данный момент все, что нам нужно искать, это значение θ, которое максимизирует функцию правдоподобия:
argmax L(θ)
Здесь argmax ƒ(x) — это множество всех независимых переменных x, таких, что функция ƒ(x) принимает максимальное значение, и задача, которую мы хотим изучить, снова оказывается экстремальной.
Для нахождения экстремального значения функции наиболее прямая идея состоит в том, чтобы взять производную, а затем пусть производная равна 0, тогда θ, полученное в результате решения этого уравнения, как раз и есть (конечно, предпосылка состоит в том, что функция L( θ) непрерывно дифференцируема). Но что, если θ — это вектор с несколькими параметрами? Конечно, найти частную производную L(θ) по всем параметрам, то есть градиенту. Итак, есть n неизвестных параметров, есть n уравнений, решением системы уравнений является крайняя точка функции правдоподобия, и, наконец, получается значение n параметров.
использовать
Два вопроса дают нам представление о том, как использовать максимальную вероятность.
-
В: Как мы можем показать, что наша оценка или модель пытается наилучшим образом соответствовать выбранной выборке?
Ответ: Найдите максимальное значение функции правдоподобия.
-
Q: Какой набор параметров является лучшим параметром, который мы ищем?
Ответ: Когда функция правдоподобия наибольшая, соответствующий параметр θ
В сочетании с примером Word2vec коротко и популярно сказать.
- Модель обучается, а затем выходной слой получает распределение вероятностей через Softmax.
- Сгенерируйте функцию правдоподобия L(w). Эта функция правдоподобия обычно строится из приведенного выше распределения вероятностей (значения вероятности). w — конкретное значение скрытой матрицы как параметра функции правдоподобия L.
- Для удобства расчета возьмем логарифмическую функцию правдоподобия, которая равна logL(w).
- Найдите максимум этой функции правдоподобия logL(w). Когда достигается максимальное значение, соответствующий w является оптимальным параметром L.
- Финал W - это скрытая матрица, нам нужна.
9. Минимизация перекрестной энтропии по сравнению с оценкой максимального правдоподобия
Минимизация перекрестной энтропии согласуется с моделью, использующей оценку максимального правдоподобия для оценки параметров, которую можно вывести из следующей математической формулы: .
Модель с параметрами Θ^ максимизирует вероятность близости прогнозируемого значения к реальным данным методом оценки максимального правдоподобия:
В реальной работе непрерывное умножение склонно к переполнению максимального или минимального значения, что приводит к нестабильному расчету.Из-за монотонности логарифмической функции логарифм приведенной выше формулы принимается отрицательным, а отрицательная логарифмическая вероятность ( NLL) минимизируется.Результат такой же, как и исходная формула, так что максимизация логарифмической вероятности эквивалентна минимизации отрицательной логарифмической вероятности.
Выполнить оценку максимального правдоподобия для предсказанных значений модели,
Таким образом, минимизация NLL и минимизация перекрестной энтропии в конечном итоге приводят к одному и тому же эффекту. Это также причина, по которой многие модели используют оценку максимального правдоподобия в качестве функции потерь.
В мире машинного обучения вы, вероятно, можете подумать, что кросс-энтропия и оценка максимального правдоподобия — это одно и то же, и эти два термина должны связать их вместе.
**Для задач классификации с несколькими классами функция правдоподобия предназначена для измерения правдоподобия между текущей полиномиальной моделью распределения и меткой значения выборки при одном наблюдении с прогнозированием в качестве параметра. ** Это функция правдоподобия для одной выборки. Последнее, что нам нужно максимизировать, — это функцию правдоподобия по всему набору выборок (или партии).
Можно сказать, что перекрестная энтропия является прямой мерой различия между двумя распределениями или двумя моделями. Функция правдоподобия должна объяснить степень интерпретации набора выборки моделью распределения с выходом модели в качестве параметра. Таким образом, можно сказать, что они имеют «одинаковую внешность, но разное происхождение», но «то же место назначения».
10. Обучение
Процесс обучения вероятностной модели представляет собой процесс оценивания параметров.
Процесс машинного обучения заключается в том, чтобы надеяться, что распределение, изученное моделью на обучающих данныхP(model)Чем ближе распределение к реальным данным **P(real)**, тем лучше, так как же минимизировать разницу между двумя распределениями? Используйте метод по умолчанию, чтобы минимизировать расхождение KL.
Но у нас нет распределения реальных данных, поэтому мы можем довольствоваться только следующим лучшим вариантом, надеясь, что распределение, полученное моделью, и распределение обучающих данныхP(training)Будьте как можно более идентичными, т. е. рассматривайте обучающие данные как прокси между моделью и реальными данными.
Предполагая, что обучающие данные независимо и одинаково распределены по выборке из совокупности, мы можем уменьшить ошибку обобщения модели, минимизировав эмпирическую ошибку обучающих данных.
просто скажи:
- Конечная цель состоит в том, чтобы надеяться, что распределение изученной модели согласуется с истинным распределением:P(model) = P(real )
- Но реальное распределение неизвестно, мы должны предположить, что обучающие данные отбираются из IID реальных данных:P(training) = P(real )
- Во-вторых, мы хотим, чтобы распределение изученной модели было как минимум таким же, как распределение обучающих данных:P(model) = P(training)
Отсюда очень идеализированный взгляд на то, что еслимодель (слева)способен учитьсятренировочные данные (средний)распределения, то его следует узнать примернореальные данные (справа)РаспределениеP(model) = P(training) = P(real ).
0x03 Концепции, связанные со слоем вывода
Основная концепция выходного слоя — Softmax.
Важным свойством функции Softmax является нормализация выходных данных полносвязного слоя к вероятности каждой соответствующей классификации. После преобразования в вероятность мы можем использовать оценку максимального правдоподобия (перекрестную энтропию), чтобы найти максимальную вероятность или минимальную перекрестную энтропию.
1. Нормализация
Зачем нормализовать? На каждой итерации относительный вес прогнозируемого слова увеличивается посредством нормализации, и в то же время относительный вес других слов уменьшается. Это нетрудно понять, общая сумма предсказанных вероятностей равна 1. Увеличение вероятности одного из слов означает подавление предсказанной вероятности других слов. Можно ли увеличить вероятность только одного из слов? Да, но конвергенция идет медленно.
2. Регрессия Softmax
Softmax — это регрессионная модель.Softmax часто используется в машинном обучении для решения классификации по принципу MECE — каждая классификация независима друг от друга, и все классификации полностью исчерпаны. Например, мужчины и женщины несут ответственность за соблюдение принципов MECE.
Функция Softmax принимает в качестве входных данных N-мерный вектор и преобразует значение каждого измерения в действительное число между (0, 1). Цель нашего обучения — пропустить через Softmax образцы, принадлежащие k-му классу, чем больше вероятность k-го класса, тем лучше. Это позволяет лучше объяснять проблемы классификации с помощью статистических методов.
max vs soft max
Max
Как следует из названия, получение максимального значения max означает, что максимальное значение может быть взято абсолютно. Например, есть два числа, a и b, и a > b. Если вы берете max, то берете a напрямую, и там второй возможности нет.
Но иногда я не хочу, потому что это уморит голодом того, у кого меньше очков. Так что я надеюсь, что предмет с большим количеством очков можно будет получить часто, а предмет с маленьким счетом можно будет получить изредка, поэтому я смогу использовать софт макс.
Soft max
Теперь это все еще a и b, a> b. Если мы возьмем softmax для расчета вероятности взятия a и b, поскольку значение softmax a больше, чем у b, a часто будет взято, а b будет берутся изредка, и вероятность такая же, как и у б. их первоначального размера. Так что это не макс, аSoftМаксимум .
Как и ее название, функция Softmax является «мягкой» максимальной функцией, которая не принимает непосредственно максимальное значение вывода в качестве результата классификации, но также рассматривает вывод других относительно меньших категорий.
Вероятность, полученная Softmax
Каковы соответствующие вероятности a и b (где вероятность является относительной вероятностью)? Давайте посмотрим на определения ниже:
Предположим, у нас есть массив V и мы хотим получить максимальное значение этого массива. Vi представляет i-й элемент в V, тогда значение Softmax этого элемента i равно
То есть это отношение индекса элемента к сумме индексов всех элементов (Показатель степени берется, чтобы сделать разницу больше).
Короче говоря, он вычисляет долю каждого значения в наборе значений.
Если говорить простым языком: Абсолютный максимум — это выбор только тех богов-мужчин, которые вам нравятся, Софт-макс забивает все запасные шины, а также нормализует их.
Например:
Добавление исходного вывода равно 5, 1, -1, после работы функции Softmax оно сопоставляется со значением (0,1): 0,9817, 0,0180, 0,0003, а совокупная сумма этих значений равна 1 (удовлетворяющая природа вероятности ), то мы можем понимать это как вероятность Когда мы, наконец, выбираем выходной узел, мы можем выбрать узел с наибольшей вероятностью (то есть значение, соответствующее наибольшему) в качестве цели нашего прогноза!
Важные свойства Softmax
Подводя итог, классификатор Softmax будет дополнительно преобразовывать вывод вектора оценки с помощью линейной операции:Функция софтмаксПреобразуйте [оценку текущей выборки для каждого класса] в [распределение вероятностей текущей выборки, принадлежащей каждому классу], что является реальным выходом модели. Это также является источником названия классификатора Softmax.
Уведомление:Классификатор Softmax рассматривает свой входной вектор оценки как своего родаНенормализованное логарифмическое распределение вероятностей(ненормализованные логарифмические вероятности). После соответствующего преобразования выходные данные нормируются на вероятность каждого соответствующего класса. После преобразования в вероятность мы можем использовать оценку максимального правдоподобия (перекрестную энтропию), чтобы найти максимальную вероятность или минимальную перекрестную энтропию.
Способ преобразования ненормализованных логарифмических вероятностей обратно в нормализованные вероятности заключается в следующем: сначала возведите в степень каждую логарифмическую вероятность с e в качестве основания, преобразуйте их в обычные вероятности, а затем нормализуйте обычные вероятности всех классов так, чтобы их сумма равнялась 1.
0x04.Word2vec (популярная обучающая версия)
После невзгод я наконец-то пришел к Word2vec.....
Word2vec обучен отображать каждое слово в разреженном пространстве с одним горячим вектором в более короткий вектор слов. Все эти векторы слов составляют векторное пространство, и тогда можно использовать обычные статистические методы для изучения отношений между словами. То есть обработка текстового содержимого может быть упрощена до векторных операций в векторном пространстве, а сходство в векторном пространстве может быть вычислено для представления семантического сходства текста.
Например, если мы представляем слово «Король» четырьмя измерениями «Королевская власть», «Мужественность», «Женственность» и «Возраст», соответствующий вектор слова может быть (0,99, 0,99, 0,05, 0,7). Конечно, на практике мы не можем дать хорошего объяснения каждому измерению вектора слова.
1. Программа обучения
Две схемы обучения word2vec — CBOW и Skip-Gram.
- CBOW состоит в том, чтобы вывести целевое слово из исходного предложения; входными данными для обучения является вектор слов, соответствующий контекстно-зависимому слову определенного характерного слова, а выходными данными является вектор слов этого конкретного слова.
- Skip-Gram, с другой стороны, выводит исходное предложение из целевого слова. То есть вход — это вектор слова определенного слова, а выход — вектор слова контекста, соответствующий конкретному слову.
Говоря простым языком, это
- CBOW : «Окружающие слова накладываются друг на друга, чтобы предсказать текущее слово» (P(wt|Context))
- Skip-Gram : «предсказывать соседние слова отдельно от текущего слова» (P(wothers|wt))
Например: для того же предложения: Ханчжоу — хороший город. Нам нужно построить отношение сопоставления между контекстом и целевым словарем, которое на самом деле является отношением между вводом и меткой. Здесь предполагается, что размер скользящего окна равен 1.
- Отношение отображения, которое может создать CBOW:
- Отношения отображения, которые может создать Skip-Gram: (есть, Ханчжоу), (есть, а), (а, есть), (а, хороший), (хороший, а), (хороший, город)
2. Инфраструктура
Модель word2vec на самом деле представляет собой упрощенную нейронную сеть. Но это обучение заключается не в том, чтобы точно предсказать правильное центральное слово/окружающие слова, а в том, чтобы получить соотношение слово->векторное отображение. Специфическое разложение снова вводится следующим образом:
-
Построение данных: Создайте пары слов из исходных данных.Форма слова выглядит следующим образом [входное слово, выходное слово], то есть [данные x, метка y].
-
Входной слой: однократное кодирование всех слов в качестве входных данных, вход должен быть n-мерным вектором (n — количество слов)
-
Скрытый слой: в середине есть только один скрытый слой (без функции активации, только линейные единицы). Скрытый слой фактически хранит векторы слов всех слов в словаре. Это матрица размера [размер словаря x размер встраивания]. Каждая строка матрицы соответствует словесному вектору определенного слова.
-
Выходной слой: выход также является горячим вектором. Измерение выходного слоя совпадает с измерением входного слоя, и значение каждого измерения добавляется к 1. Используется регрессия Softmax. softmax гарантирует, что выходной вектор является распределением вероятностей. После преобразования в вероятность мы можем использовать оценку максимального правдоподобия (перекрестную энтропию), чтобы найти максимальную вероятность или минимальную перекрестную энтропию.
-
Определите функцию потерь: используется для прогнозирования правильного вывода/оптимизации модели.
Наше значение метки y представляет собой распределение вероятностей, а выходной слой также является распределением вероятностей, поэтому перекрестную энтропию можно использовать для измерения разницы между выходом нейронной сети и нашей меткой y, а также можно определить потери.
-
Итеративное обучение: алгоритм оптимизации градиентного спуска обычно используется для минимизации функции стоимости, каждая итерация сравнивает потери между прогнозом и меткой y, а затем соответствующим образом оптимизирует и, наконец, гарантирует, что похожие слова имеют схожие векторы.
-
Окончательная матрица: удалите выходной слой и используйте только выходную единицу скрытого слоя (то есть вес между входным слоем и скрытым слоем) для формирования таблицы поиска.
После обучения модели мы не будем использовать обученную модель для обработки новых задач, нам действительно нужны параметры, полученные моделью через обучающие данные, такие как матрица весов скрытого слоя.
3. Подробная разбивка
3.1 Данные сборки
Возьмите Быстрая коричневая лиса перепрыгивает через ленивую собаку. Всего в этом предложении 8 слов (здесь The и the count — одно и то же слово).
(x,y) — пара слов. Например, (the, quick) — это пара слов, the — образец данных, а quick — метка образца.
Возьмите по 2 слова слева и справа от отсканированного слова, где 2 называется размером окна, которое можно регулировать. Таким образом, два слова слева и справа удаляются, и всего удаляется 4 слова, соответственно образуя пары слов с отсканированными словами в качестве наших обучающих данных. Когда слова в начале и в конце предложения сканируются, количество пар слов, которые он может принять, становится на несколько меньше.
Наконец, получите обучающие данные:
(the, quick),(the, brown)
(quick,the),(quick,brown),(quick,fox)
(brown,the),(brown,quick),(brown,fox),(brown,jumps)
(fox,quick),(fox,brown),(fox,jumps),(fox,over)
......
Возьмите два данных (лиса, прыжки), (лиса, коричневый) в качестве примера, чтобы увидетьЦель этого слова: прыгает и коричневая может быть понята как лисаконтекст, мы надеемся, что при вводе fox нейронная сеть сможет подсказать нам, какие слова с большей вероятностью появятся вокруг fox. Как это сделать, зависит от того, какие пары слов (лиса, прыжки), (лиса, коричневый) чаще встречаются в обучающем наборе, и нейронная сеть будет выполнять более градиентный спуск для какой пары слов. появится вокруг лисы.
3.2 Входной слой
Преобразуйте слова в числа с горячим кодированием, чтобы их можно было использовать в качестве входных данных для нейронной сети. Например (лиса, прыжки) может быть [(00000001),(00000010)], в зависимости от результата кодирования. Этот входной слой представляет собой n-мерный вектор, где n — количество слов в словаре.
Входными данными для нейронной сети является однократное кодирование пар слов (x, y) в обучающих данных, и модель будет изучать статистику по количеству вхождений каждой пары слов. Как упоминалось выше, когда мы получаем больше пар обучающих выборок, таких как (лиса, прыжки), но мало пар, таких как (лиса, коричневый), поэтому, когда наша модель заканчивает обучение, при вводе слова «лиса» дается «прыжки». более высокая вероятность, чем «коричневый» в выходном результате.
3.3 Скрытые слои
Скрытый слой фактически хранит векторы слов всех слов в словаре. Это матрица размера [размер словаря x размер встраивания]. Каждая строка матрицы соответствует словесному вектору определенного слова.
Сколько нейронов должно быть в скрытом слое? Это зависит от того, сколько измерений вектора слов мы хотим получить и сколько скрытых нейронов содержит вектор слов. Например, в словаре 8 слов, поэтому вход, полученный каждым скрытым нейроном, представляет собой 8-мерный вектор Предположим, у нас есть 3 скрытых нейрона, так что вес скрытого слоя может использовать 8-строчный вектор 3- матрица столбцов для представления.
3.4 Перекрестная энтропия (чтобы изучить принцип, ниже приведен справочный код)
пример ссылки
Возьмите кросс-энтропийную функцию TensorFlow tf.nn.softmax_cross_entropy_with_logits(logits, labels, name=None) в качестве эталона.
- Логиты параметра: это выход последнего слоя нейронной сети (матрица W * X).Если есть пакет, его размер равен [batchsize, num_classes], а для одной выборки его размер равен num_classes.
- Параметры метки: собственно метки, того же размера, что и выше.
Конкретный процесс выполнения примерно разделен на два шага:
- Сначала сделайте softmax на выходе последнего слоя сети. Этот шаг обычно заключается в том, чтобы найти вероятность того, что выход принадлежит определенному классу. Для одной выборки выход представляет собой вектор размера num_classes ([Y1, Y2 , Y3...] Среди них Y1, Y2, Y3... представляют вероятность принадлежности к классу).
- Выходной вектор softmax [Y1, Y2, Y3...] и фактическая метка образца делают перекрестную энтропию.
Дополнительные примечания по логитам:
Когда дело доходит до логитов, мы должны сначала понять, что такоеOdds? На английском языке первоначальное значение Odds означаетвероятность, возможность.
другими словами,Коэффициенты события АравныйКоличество повторений события AиКоличество вхождений других (не А) событий Соотношение;
В отличие,вероятность события АравныйКоличество повторений события Aиколичество всех событийСоотношение.
Легко сделать вывод, что диапазоны значений вероятностей P(A) и Odds(A) различны. Первый заблокирован между [0,1], а второй — [0, положительная бесконечность]
Об этом давно сказано, при чем тут логит?
Обратите внимание на разложение слова Логит, ибо оно (оно) Лог (возьмем логарифм), где "оно" - Оддс. Ниже мы можем дать определение Logit:
Эта формула на самом деле называетсяЛогит-преобразование.
В отличие от вероятности, очень важной функции логита,То есть у него нет верхнего и нижнего предела, что облегчает моделирование. Облегчает подгонку регрессии!
Обычно основанием логарифма логита является натуральный объект e, здесь мы выражаем Odds символом θ, тогда имеем:
Очевидно, зная θ, мы также можем легко вывести значение вероятности e:
Итак, сначала мы используем логит-преобразование, позволяющее нам легко подобрать данные (т. е. логистическую регрессию), а затем преобразуем обратно к уже знакомым нам вероятностям. Именно такой цикл облегчает анализ данных. В какой-то степени этот вид превращения очень похож на химический.катализатор.
применение
После обработки softmax она становится «нормализованной» вероятностью (устанавливается как p1), а вновь сгенерированная вероятность p1 вместе с распределением вероятностей, представленным метками (устанавливается как p2), используется в качестве параметра для вычисления перекрестной энтропии.
Эта информация о разнице используется в качестве основы для настройки параметров нашей сети.В идеале два распределения должны быть как можно более близкими. Если есть разница (что также можно понимать как сигнал ошибки), мы корректируем параметры, чтобы сделать их меньше, что и делает функция потерь (ошибок).
Наконец, путем непрерывной настройки параметров логит фиксируется на оптимальном значении (так называемый оптимальный означает, что перекрестная энтропия минимизируется, а параметры сети в это время также оптимальны).
3.5 Обучение
Мы используеммаксимальная вероятностьДля построения целевой функции (функции потерь) после построения целевой функции необходим метод оптимизации для нахождения параметров. Стохастический градиентный спуск (SGD) — это стандартный метод по умолчанию для минимизации функции потерь f(W,b) (т. е. максимизации функции правдоподобия), который можно использовать для нахождения весов и смещений для глубокого обучения.
Цель градиентного спуска, грубо говоря: это уменьшение расстояния между реальным значением и прогнозируемым значением, а функция потерь используется для измерения расстояния между реальным значением и прогнозируемым значением, поэтому цель градиентного спуска состоит в том, чтобы уменьшить значение функции потерь. Как уменьшить значение функции потерь? Все, что нам нужно сделать, это продолжать изменять значение скрытого слоя, чтобы сделать функцию потерь все меньше и меньше.
SGD просто минимизирует функцию потерь, вычитая оценочное значение градиента f (W k, b k ) при обновлении k-й итерации.
3.6 Выходной слой
На основе этих обучающих данных нейронная сеть будет выводить распределение вероятностей, представляющее вероятность того, что каждое слово в нашем словаре является выходным словом. Количество нейронов в выходном слое равно количеству слов в корпусе. Можно считать, что каждый нейрон соответствует выходному весу слова, и вектор слов умножается на выходной вес, чтобы получить число, которое представляет вероятность того, что слово, соответствующее выходному нейрону, появится вокруг входного слова. нейронов слоя подвергается операции softmax, и мы нормализуем выходные данные выходного слоя в распределение вероятностей.
Проще говоря, softmax заключается в сопоставлении исходного вывода, такого как 3, 1, -3, со значением (0, 1) через функцию функции softmax, а совокупная сумма этих значений равна 1 (удовлетворяющая природа вероятности), то мы можем понимать это как вероятность.
Здесь следует отметить одну вещь: мы говорим, что выход — это вероятность того, что слово появится рядом с входным словом, это «вокруг» включает переднюю часть слова и заднюю часть слова.
Например, мы тренируемся с Water Margin:
Мы вводим слово «Song Gongming», затем в выходной вероятности окончательной модели вероятность связанных слов, таких как «брат» и «своевременный дождь», будет намного выше, чем вероятность несвязанных слов, таких как «этот парень» и « уи". Потому что «Брат», «Своевременный дождь» с большей вероятностью появится в окне «Song Gongming» в тексте.
3.7 Окончательный результат
В конце концов, нам нужна обученная весовая матрица W, а не значения вероятности этих выходных слоев. Вектор, полученный путем умножения каждого слова входного слоя на матрицу W, представляет собой вложение слов, которое мы хотим.
Эта матрица (вложение всех слов в слова) также называется таблицей поиска, то есть одно горячее из любого слова, умноженное на эту матрицу, получит свой собственный вектор слов. С помощью таблицы поиска вы можете напрямую просмотреть таблицу, чтобы получить вектор слова без процесса обучения.
Например, предположим, что исходные данные:
The brown fox jumps.
Результат горячего кодирования:
The [1,0,0,0]
brown [0,1,0,0]
fox [0,0,1,0]
jumps [0,0,0,1]
Окончательная матрица параметров скрытого слоя:
В этой матрице хранятся все векторы слов, а ниже приведен фактический вектор слов, соответствующий каждому слову.
The [1, 2, 3]
brown [4, 5, 6]
fox [7, 8, 9]
jumps [10,11,12]
При применении, если введено слово fox
Его окончательный вектор слов:
Процесс расчета таков:
3.8 Использование
После получения вектора плотных слов вы можете выполнять соответствующие вычисления.
Например, значение косинуса прилежащего угла используется для представления расстояния между значениями слов Диапазон расстояний составляет от 0 до 1. Чем больше значение косинуса, тем ближе значения двух слов.
0x05 Word2vec (фактическая производственная версия)
В качестве входных данных нейронно-вероятностной языковой модели word2vec на самом деле является побочным продуктом нейронно-вероятностной модели, которая является промежуточным результатом для изучения языковой модели через нейронную сеть.
В частности, «определенная языковая модель» относится к «CBOW» и «Skip-gram». Процесс обучения использует два приближения для уменьшения сложности — Hierarchical Softmax или Negative Sampling. Две модели, умноженные на два метода, всего четыре реализации.
1. Базовая структура
Согласно принципу, базовая структура сети должна состоять из четырех слоев:входной слой, слой отображения, скрытый слой и выходной слой.
Но на практике, независимо от модели, основная структура сети заключается в том, чтобы опустить скрытый слой. Зачем удалять этот слой? Говорят, что автор word2vec считает, что слишком много матричных операций от скрытого слоя к выходному слою.
Итак, в итоге есть три слоя, которыевходной слой, слой отображения и выходной слой.
2. CBOW
CBOW — это языковая модель, которая оценивает текущее слово в известном контексте.
2.1 Функция правдоподобия
Взяв в качестве примера софтмакс Хаффмана, вычисление вероятности вектора контекста для центрального слова представляет собой серию задач бинарной классификации, поскольку от корневого узла до конечного узла, соответствующего центральному слову, необходимо несколько раз решать левый узел или правый узел к листовому узлу. Каждый листовой узел представляет слово в корпусе, поэтому каждое слово может быть уникально закодировано с помощью 01, а его последовательность кодирования соответствует последовательности событий. Если w представляет любое слово в корпусе C, то мы можем вычислить условную вероятность w:
Тогда для центрального слова w полная вероятность от корневого узла до центрального узла слова является произведением этих вероятностей узлов.
Наконец, достигается его цель обучения, то есть максимизация логарифмической функции правдоподобия следующим образом:
2.2 Базовая структура
входной слойявляется вектором слов контекстных слов.
В режиме hs и негативном режиме обработка от входного слоя к слою отображения одинакова, но обработка от слоя отображения к выходному слою непоследовательна. Конкретные операции от входного слоя до слоя отображения:Суммируйте каждый вектор слова в контекстном окне, а затем усредните его, чтобы получить вектор той же размерности, что и вектор слова, при условии, что он называется вектором контекста, этот вектор является вектором слоя отображения.
выходной слойВыведите наиболее вероятное w.
Поскольку размер словаря в корпусе фиксированный |C|, описанный выше процесс фактически можно рассматривать как проблему множественной классификации. Учитывая функцию, выберите одну из категорий |C|.
3. Skip-gram
Skip-gram просто меняет причинно-следственную связь CBOW, то есть текущее слово известно, а контекст предсказывается.
Два отличия от CBOW:
- Входной слой больше не состоит из нескольких слов, а представляет собой вектор слов.
- Проекционный слой на самом деле ничего не делает, и напрямую передает слово вектор входного слоя в выходной слой
Согласно идее Hierarchical Softmax, u представляет слово в контексте w. Каждый u может быть закодирован как путь 01, запишите их вместе, чтобы получить целевую функцию.
Таким образом, функция вероятности языковой модели может быть записана как:
Обратите внимание, что это модель мешка слов, поэтому каждый u неупорядочен или независим друг от друга.
Наконец, достигается его цель обучения, то есть максимизация логарифмической функции правдоподобия следующим образом:
0xEE Личная информация
★★★★★★Думая о жизни и технологиях★★★★★★
Публичный аккаунт WeChat:мысли Росси
Если вы хотите получать своевременные новости о статьях, написанных отдельными лицами, или хотите видеть технические материалы, рекомендованные отдельными лицами, обратите внимание.
ссылка 0xFF
Алгоритм word2vector, с которым должно быть знакомо машинное обучение (1)
Подробный анализ нейронной сети Word2vec - анализ TrainModelThread
Обучение модели word2vec экономит загрузку и простое использование
Он закончил! Официальные перевод CS231N Официальный перевод Уполномоченный сбор статей опубликован
Машинное обучение — расчет Softmax
Перекрестная энтропия и оценка максимального правдоподобия
Понимать взаимосвязь между перекрестной энтропией и оценкой максимального правдоподобия
Оценка максимального правдоподобия и перекрестная энтропия
Оценка максимального правдоподобия, перекрестная энтропия и глубокие нейронные сети
Как понять асимметрию дивергенции КЛ?
(Поворот) Понимание дивергенции KL
Идеальное объяснение перекрестной энтропии
cs231n notes ufldl tutorial cs231n перевод
GitHub.com/таким образом HV89/где…
Woohoo. счет Байеса IE.com/blog/2017/5…
ха? Вы все еще думаете, что функция правдоподобия и перекрестная энтропия означают одно и то же?
Light on Math Machine Learning: Intuitive Guide to Understanding Word2vec
Принцип настолько прост, что классификация Softmax
Чжиху: Почему для расчета стоимости можно использовать кросс-энтропию?
Зачем использовать перекрестную энтропию в качестве функции потерь
Почему кросс-энтропию можно использовать для расчета стоимости?
Примечания к исследованию DeepLearning — оценка максимального правдоподобия
Реализация и применение четырех алгоритмов Cross Entropy в TensorFlow
Подробный исходный код Word2vec
Вывод принципа word2vec и анализ кода
Анализ реализации алгоритма машинного обучения - анализ исходного кода word2vec