Neural Network-神经网络算法本质
创始人
2024-03-28 22:36:44
0

1. Word2vec~single CBOW算法推导BP 

word2vec主要实现方式有:skip-gram和CBOW。

  • CBOW的目的是根据上下文contextual words来预测当前中心词的概率,且上下文所有单词对当前中心词出现的概率影响权重是一样的,如在袋子中取词,取出足够数量的词就可以了,与取出词的先后顺序无关。
  • skip-gram是根据中心词来预测上下文语境词概率的。

其实single CBOW模型与单个skip-gram模型本质上是一样的,可以依据single CBOW理解skip-gram算法。

1.1 Lookup table

因为one-hot向量只有一个元素i为1,其余为0。所以,one-hot vector与权重矩阵w相乘只是得到了W矩阵的第i行,这也叫查表操作lookup table。

1.2 loss function

对于单个样本(即输出向量的单个分量)而言,我们的目的是最大化输出向量的似然概率,即对于真实上下文词one-hot vector为1的第j个分量。

 最大化上下文单词的输出似然概率p(x) = 最小化 -p(x)

 根据多元交叉熵损失函数E = -\sum_{i=1}^{N} y_{i} logp_{i} ​​​​​​,yi为真实标签,pi为真实标签的概率。

拟合损失函数:

1.3 梯度下降和BP

1.3.1 BP Essence 

前馈:forward propagation,本质上是加权求和\sum_{}^{}wx

BP: backward propagation,本质上是loss 对当前w求误差e+更新权重w。

  • 误差e是通过损失函数loss function对神经元输出(输出层输出,或隐层输出)求偏导(这也叫梯度下降,梯度就是导数,最终的梯度=最终的导数=误差e),再对权重元素w_{ij}求导得到的。
  • 损失函数是根据前馈条件概率p(w_{output}|w_{input})(或称为似然概率)和真实向量分量tj得到的,比如,多元交叉熵损失函数-log\sum t_{j} * p_{j}
  • 训练模型的目的是最大化似然概率函数,而最大化似然函数p 等价于 最大化logp 等价于 最小化 -logp 推出 多元交叉熵损失函数

1.3.2 损失函数

xj为输入one-hot向量第j个单元的值,yj为最终输入向量第j个单元的softmax概率值,tj是真实向量第j个元素的值。对于某个真实样本实例,在输出神经元上,只有一个分量tj=1,其余为0,不妨令这个分量为j*。

假设输出词是第j*个词(这里可以说成是第j个单词,因为j这个分量对应的不仅是softmax输出向量的概率,还是词汇表索引值为j的单词,这个单词的one-hot向量在j位置为1,那么softmax输出向量第j单元的概率=one-hot向量j分量为1的概率=第j个词的概率),交叉熵损失函数为:

 

 1.3.3 输出层 -> 隐藏层:更新输出权重矩阵W'

1) 先求E对输出层输出分量uj的偏导数 -> 以便求得误差error。

 

 

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...