深度学习在NLP中的应用--从逻辑回归到神经网络

神经网络跟支持向量机类似,有其相应的术语。如果理解了逻辑回归或maxent网络的原理,那么就已经理解了神经网络的基本神经元的工作原理。

下面是一个神经元的示例。其中输入是三维的,即每个输入包含三个变量,通过基于参数W和b的变换就可以得到输出。

0?wx_fmt=png

在NLP中,maxent分类器一般形式如下:

0?wx_fmt=png

有监督学习中给出了类别集合C中数据d的分布。上式写成向量形式如下:

0?wx_fmt=png

J = sofxmax(λ·x)

这里给出一个二分类的神经元对应的logistic模型推导。

上述向量形式在二分类问题中具有如下形式:

0?wx_fmt=png0?wx_fmt=png

0?wx_fmt=png

0?wx_fmt=png

0?wx_fmt=png

事实上,神经网络相当于同时运行多个逻辑回归模型。这是因为如果我们将一个输入向量送入一系列逻辑回归模型中,则可以得到一个输出向量,这个输出向量又可以送入另外一个逻辑回归模型,进而可以得到一个多层神经网络。但是我们不需要事先给出这些逻辑回归会给出什么预测。

0?wx_fmt=png

对于每个中间隐含层,训练标准会引导它的取值,进而有助于预测下一层的目标,以此类推。

0?wx_fmt=png

0?wx_fmt=png

每一层用矩阵如何表示呢?非矩阵形式如下:

矩阵形式可以表示成

0?wx_fmt=png

0?wx_fmt=png0?wx_fmt=png

• 对于每个有监督的层,可以像maxent模型那样累训练 – 可以借助于梯度计算衍生误差并将其反向传播来提升性能。

有以下两种方式: • Online learning: 随机梯度下降法 (SGD) 或者提升版本,比如 AdaGrad (Duchi, Hazan, & Singer 2010) • Batch learning: 共轭梯度法或 L-BFGS

• 多层网络可能会变得比较复杂,因为内部的隐含层--逻辑单元使得函数是非凸的,这跟隐含 CRFs 类似 [Quattoni et al. 2005, Gunawardana et al. 2005],在多层网络中需要使用衍生误差反向传播来提升模型的性能。

接下来讨论为什么需要非线性变换

在逻辑回归中,非线性变换可以将输入映射为概率。在函数近似中,比如回归或分类问题中,如果没有非线性,则深度神经网络不能比线性变换多出什么额外的功能。如果每次变换都是线性变换,即使有多个层,最终都可以简化为一个线性变换。除非在玻尔兹曼机或图模型中,概率解释不是必须的,非概率情形中,可以利用其它非线性变换,比如tanh。

0?wx_fmt=png

最后来总结下基本术语:

• Neuron: 逻辑回归或类似的函数 • Input layer : 输入向量,包含训练和测试 • Bias unit: 截距,通常是跟特征相关联 • Activation:  响应 • Activation function: 逻辑回归或者类似的 “sigmoid” 非线性变换 • Backpropagation:  多层网络中逐层随机梯度下降后向反馈 • Weight decay: 正则条件或贝叶斯先验知识

有效的深度学习因为无监督预训练方法的出现而出现生机。比如无监督预训练是借助于RBM或去噪自编码来实现。

0?wx_fmt=png

0?wx_fmt=png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值