必威体育Betway必威体育官网
当前位置:首页 > IT技术

深度神经网络(DNN)学习小结

时间:2019-08-25 19:43:14来源:IT技术作者:seo实验室小编阅读:55次「手机版」
 

dnn

之前写过线性回归逻辑回归,但是也有的情况这两种都不能很好的拟合,像这种:

这里写图片描述

假设我们有非常多的特征,例如大于 100 个变量,我们希望用这 100 个特征来构建一个非线性的多项式模型,结果将是数量非常惊人的特征组合,即便只采用两两特征的组合,我们也会有接近 5000 个组合而成的特征,计算起来就非常麻烦了。

这时候就要用到神经网络了,神经网络最重要的功能就是分类了。

神经网络(NN)基本结构

这里写图片描述

神经网络第一层为input层,最后一层为output层,而在input和output中间的层则被称为hidden层.

DNN模型

这里写图片描述

x1,x2,x3" role="presentation" style="position: relative;">x1,x2,x3是输入的数据a1(2),a2(2),a3(2)" role="presentation" style="position: relative;">a1(2),a2(2),a3(2)表示第2层的数据,从x1到第二层" role="presentation" style="position: relative;">x1,需要一个激活函数,这个函数可以是逻辑回归的Sigmoid函数,也可以是其他的函数。一般有以下三种常用的函数:

这里写图片描述

我们假设这个激活函数为z(x)" role="presentation" style="position: relative;">z(x),我们给它加上一些权重参数w1,w2,w3,w0" role="presentation" style="position: relative;">w1,w2,w3,w0,以及一个x0并且x0=1" role="presentation" style="position: relative;">x0x0=1,如下图:

这里写图片描述

则我们可以知道:

a1(2)=z(w0x0+w1x1+w2x2+w3x3)" role="presentation">a1(2)=z(w0x0+w1x1+w2x2+w3x3)

然后a1(2)" role="presentation" style="position: relative;">a1(2)作为下一层的输入代入激活函数,同样也取一个a0(2)=1" role="presentation" style="position: relative;">a0(2)=1,即:

这里写图片描述

则:

hθ(x)=z(θ0a0(2)+θ1a1(2)+θ2a2(2)+θ3a3(2))" role="presentation">hθ(x)=z(θ0a0(2)+θ1a1(2)+θ2a2(2)+θ3a3(2))

注意:每层的激活函数可以不同,但是那样会很麻烦

损失函数(交叉熵)

交叉熵可以用来衡量两个概率分布之间的距离,是分类问题中使用比较光的一种损失函数。对于两个概率分布 p 和 q,表示交叉熵如下:

这里写图片描述

DNN反向传播

反向传播算法是训练神经网络的核心算法,它可以根据定义好的损失函数优化神经网络的参数值,是神经网络模型的损失函数达到一个较小的值。梯度下降算法是最常用的神经网络优化方法。数学公式有点难打,我就不写推导过程了,这里贴一个链接:推导过程

正则化

神经网络容易发生过拟合现象,而正则化可以防止过拟合,提高泛化能力,常见的正则化方法有以下4种:

1.L2 正则化(权重衰减)

L2正则化就是在代价函数后面再加上一个正则化项:

C=J(θ)+λ2n∑ww2" role="presentation">C=J(θ)+λ2nww2

J(θ)" role="presentation" style="position: relative;">J(θ)代表原始的代价函数,后面那一项就是L2正则化项,它是这样来的:所有参数w的平方的和,除以训练集的样本大小n" role="presentation" style="position: relative;">nλ" role="presentation" style="position: relative;">λ就是正则项系数,权衡正则项与J(θ)" role="presentation" style="position: relative;">J(θ)项的比重。另外还有一个系数12" role="presentation" style="position: relative;">12,主要是为了后面求导的结果方便。

求偏导:

∂C∂w=∂J(θ)∂w+λnw" role="presentation">Cw=J(θ)w+λnw

w" role="presentation" style="position: relative;">w的更新为:

w′=(1−αλn)w−α∂J(θ)∂w" role="presentation">w=(1αλn)wαJ(θ)w

其中α" role="presentation" style="position: relative;">α为学习率,显然可以看出L2正则化使得w" role="presentation" style="position: relative;">w减小,而更小的权值w" role="presentation" style="position: relative;">w,从某种意义上说,表示网络的复杂度更低,对数据的拟合刚刚好。

2.L1正则化

在原始的代价函数后面加上一个L1正则化项,即:

C=J(θ)+λ2n∑w|w|" role="presentation">C=J(θ)+λ2nw|w|

3.Dropout

所谓的Dropout指的是在对训练集中的一批数据进行训练时,随机的从全连接DNN网络中去掉一部分隐藏层的神经元。并用去掉隐藏层的神经元的网络来拟合我们的一批训练数据。然后用这个去掉隐藏层的神经元的网络来进行一轮迭代、更新。当然,dropout并不意味着这些神经元永远的消失了。在下一批数据迭代前,我们会把DNN模型恢复成最初的全连接模型,然后再用随机的方法去掉部分隐藏层的神经元,接着去迭代更新。

如:(之前)

这里写图片描述

(之后):

这里写图片描述

4.数据集扩增(data augmentation)

对于我们传统的机器学习分类回归方法,增强数据集还是很难的。你无中生有出一组特征输入,却很难知道对应的特征输出是什么。但是对于DNN擅长的领域,比如图像识别语音识别等则是有办法的。以图像识别领域为例,对于原始的数据集中的图像,我们可以将原始图像稍微的平移或者旋转一点点,则得到了一个新的图像。而更多的训练数据,意味着可以用更深的网络,训练出更好的模型。

相关阅读

深入浅出数据分析----- 学习笔记

数据分析固定流程 客户帮你确定问题,客户试分析结果的服务对象,可能是上司、执行官、本人。客户将根据你的分析作决策,需

微擎学习笔记2

微擎学习笔记2 參考:https://www.kancloud.cn/donknap/we7/134629 微擎路由: 入口脚本程序获取到到URL中相关的GET参数,解析后进行

区分抑郁和自杀行为,机器学习是怎么做到的?

机器看起来是冰冷的,但也是可以是有温度的。人工智能可以通过情感模型,对一些人类只能感性判断的其他人的情绪和行为,进行精准地判断

集成电路版图学习笔记1----版图基本知识

集成电路设计流程: Created with Raphaël 2.1.2设 计 方 案定 义 结 构 功能设计与仿真电路设计与仿真版图设计与仿真后

Java学习之一:断点调试

我们在学习Java语言时由于一些语法错误或者个人书写错误导致程序不能正常运行,或者是程序正常运行但得到的运行结果不是理想的结果

分享到:

栏目导航

推荐阅读

热门阅读