NLP系列 6. 神经网络基础

神经网络中的基础概念

前馈神经网络:

前馈神经网络是一种最简单的神经网络,各神经元分层排列。每个神经元只与前一层的神经元相连。接收前一层的输出,并输出给下一层.各层间没有反馈。

输入层:

神经网络的第一层。它接收输入信号(值)并将其传递至下一层,但不对输入值执行任何运算。它没有自己的权重值和偏置值。

隐藏层:

隐藏层的神经元(节点)通过不同方式转换输入数据。一个隐藏层是一个垂直堆栈的神经元集。

输出层:

它是神经网络的最后一层,接收来自最后一个隐藏层的输入。通过它我们可以得到合理范围内的理想数值。

激活函数:

激活函数负责为神经网络引入非线性特征。它把值压缩到一个更小范围。具体范围依据激活函数的种类而定。
与线性函数相比,激活函数能够对输入进行非线性变换,将值映射到某一个区域,可以解决线性不可分的问题,比如感知机无法判断异或的问题。对于深度神经网络,我们在每一层线性变换后叠加一个非线性激活函数,以避免多层网络等效于单层线性函数,从而获得更强大的学习与拟合能力。
常见的激活函数有sigmoid、tanh、relu等。
在这里插入图片描述
激活函数的优缺点分析:

  1. Sigmoid和Tanh激活函数均需要计算指数,复杂度高,而ReLU只需要一个阈值即可得到激活值。
  2. ReLU的非饱和性可以有效地解决梯度消失的问题,提供相对宽的激活边界。
  3. ReLU的单侧抑制提供了网络的稀疏表达能力。
  4. ReLU还有可能导致神经元死亡的问题,改进类型有Leaky ReLU。
    f ( z ) = { z z > 0 a z z ≤ 0 f(z) = \begin{cases} z & z > 0 \\ az & z \leq 0 \end{cases} f(z)={zazz>0z0
    a为一个小于1的正数。
  5. Sigmoid激活函数的导数在z很大或很小时都会趋近于0,造成梯度消失的现象。
  6. Tanh激活函数相当于Sigmoid的平移,所以也会出现梯度消失的问题。Tanh在LSTM中有应用。

感知机

感知机是一种最简单形式的前馈神经网络,是一种二元线性分类器。是SVM和神经网络的基础。
尽管结构简单,感知机能够学习并解决相当复杂的问题。感知机主要的本质缺陷是它不能处理线性不可分问题。(可以通过激活函数解决)
感知机为如下形式:
f ( x ) = s i g n ( w ∗ x + b ) f(x)=sign(w*x+b) f(x)=sign(wx+b)
sign(x)函数大家都学过,在 x &lt; 0 x&lt;0 x<0时为-1,在 x ≤ 0 x \leq 0 x0时为1。
感知机的学习过程就是极小化损失函数函数再更新参数的过程。具体而言,感知机一般通过随机梯度下降法实现极小化损失函数的过程,再通过反向传播更新参数。
具体细节可以参考:
https://zhuanlan.zhihu.com/p/30155870
https://blog.csdn.net/Dream_angel_Z/article/details/48915561#t2

深度学习中的正则化

https://blog.csdn.net/weixin_39845112/article/details/80114918
正则化就是在目标函数后加了一项,改变目标函数最优点的取值,是向原始模型引入额外信息,以便防止过拟合和提高模型泛化性能的一类方法的统称。
例如 J ^ ( w ; X , y ) = J ( w ; X , y ) + α 2 w T w \hat{J}(w;X,y)=J(w;X,y)+\frac{\alpha}{2}w^Tw J^(w;X,y)=J(w;X,y)+2αwTw等式右边的第二项就是正则化的项。
正则化项之前通常还会添加一个系数,比如上述的 α \alpha α

L1正则化

L1正则化是指权值向量w ww中各个元素的绝对值之和,通常表示为 ∣ ∣ w ∣ ∣ 1 ||w||_1 w1
L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择;一定程度上,L1也可以防止过拟合

L2正则化

L2正则化是指权值向量w ww中各个元素的平方和然后再求平方根(可以看到Ridge回归的L2正则化项有平方符号),通常表示为 ∣ ∣ w ∣ ∣ 2 ||w||_2 w2
L2正则化可以防止模型过拟合。

正则化的更多细节可以参考 https://blog.csdn.net/jinping_shi/article/details/52433975

Early Stop

如果在训练集的训练过程中发现在测试集中的误差上升,可以终止神经网络的训练,将停止时的参数作为网络的最终参数。

Dropout层

dropout可以防止过拟合,另外由于丢弃了部分神经元也可以提高训练速度。
具体而言是在将神经网络单元以一定的概率丢弃,所以每个batch中训练的网络都不完全一样。
可以参考 https://blog.csdn.net/stdcoutzyx/article/details/49022443

深度学习模型中的优化

自适应学习率算法

自适应过程是一个不断逼近目标的过程。它所遵循的途径以数学模型表示,称为自适应算法。通常采用基于梯度的算法,其中最小均方误差算法(即LMS算法)尤为常用。
常见的有AdaGrad、RMSProp、Adam等,详见 https://blog.csdn.net/qq_29462849/article/details/80626772

batch norm层

batch norm为批归一化。
批量归一化方法有效规避了这些复杂参数对网络训练产生的影响, 在加速训练收敛的同时也提升了网络的泛化能力。
随着网络训练的进行, 每个隐层的参数变化使得后一层的输入发生变化, 从而每一批训练数据的分布也随之改变, 致使网络在每次迭代中都需要拟合不同的数据分布, 增大训练的复杂度以及过拟合的风险。
而批量归一化方法是针对每一批数据, 在网络的每一层输入之前增加归一化处理(均值为0, 标准差为1) , 将所有批数据强制在统一的数据分布下。
常采用如下公式:
在这里插入图片描述
其中 x ( k ) x^{(k)} x(k)为该层第k个神经元的原始输入数据, E [ x ( k ) ] E[x^{(k)}] E[x(k)]为这一批输入数据在第k个神经元的均值, 根号下的式子为这一批数据在第k个神经元的标准差。
批量归一化可以看作在每一层输入和上一层输出之间加入了一个新的计算层, 对数据的分布进行额外的约束, 从而增强模型的泛化能力。

FastText的原理。

利用FastText模型进行文本分类。
参考: http://www.52nlp.cn/fasttext

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值