机器学习中的一种特殊方法,使用神经网络这种结构来描述计算过程,通过输入海量数据,计算神经网络中的各级参数。一般有如下原则:
1,交替使用线性和非线性单元,即层
2,使用链式法则(误差反向传播)来更新网络中的参数
深度学习对于机器学习的特点:
1,简单的函数通过各级神经网络变换成复杂函数,具有更强表达力
2,多级学习的表征学习方法,可以逐级表示越来越抽象的概念或模式
3,端到端,而普通机器学习的特征抽取和训练可能是分开的
4,包容非最优解,非凸非线性的优化的使用
softmax 函数的作用:
1,把结果归一化,给出概率型的结果表示
2,可微,便于使用误差反向传播方法
激活函数,为什么需要激活函数?
需要引入非线性表达,不然单纯的多层感知机的叠加,本质也是单层的;即全连接层只是对数据做仿射变换(affine transformation),而多个仿射变换的叠加仍然是一个仿射变换。解决问题的一个方法是引入非线性变换。
常用激活函数:relu,sigmoid,tanh
过拟合的处理方法:
1,添加惩罚项,来减小权重,降低模型复杂性
正向传播和反向传播
正向传播基于当前参数计算预测值,反向传播基于预测值和真实值,以及各层的梯度,计算参数修正值。
以上总结自《动手学深度学习》
下面总结《白话深度学习与tensorflow》
机器学习与深度学习比较大的区别,在于传统机器学习通常是需要人来提前做特征提取,把提取的特征向量化后再丢给模型训练,这是前置工作。而深度学习是end-to-end,端到端的学习方式,输入的内容做少量处理或不做处理,就可以丢给模型去训练,通常不需要人来做特征提取的工作,有深度学习的网络模型自动完成。
神经网络分为 输入层,隐含层,输出层
输入层不做任何处理,通常不计入层数,隐含层有一层或多层,输出层输出网络处理的值,可能是一个分类向量值,也可能是一个连续的值,也可能是别的形式。
TensorFlow,深度学习比较流行的库,谷歌发布,轻量级,社区完善,容易上手,有如下优点:
1,多环境,pc的cpu,gpu,安卓环境,支持多个cpu或者gpu并行计算
2,仪表盘和可视化
3, TensorFlow Serving,可以部署成restful接口服务,高性能开源服务系统。
前馈神经网络,最简单最朴素的神经网络,包括bp网络,和rbf网络
牛顿法,求方程的根,即与x轴的交点的横坐标
损失函数特点:恒非负,误差越小函数值越小,收敛快
本质上训练过程,就是通过不断调整各个神经元中的待定系数,使得损失函数向不断降低的方向移动。
正常可以通过凸优化的方式,求出损失函数的极值。但是在生产环境中,神经网络可能包含着非常多的线性和非线性分类器函数组合,那么损失函数极有可能,甚至可以说几乎一定不是凸函数,而tensorflow 会用很多技巧来寻找在整个向量空间拥有极小值点的参数向量,封装到框架里面了。
神经网络,具有丰富的vc维,即强大的空间划分能力。分类能力强大,可以学习到丰富的内容。
但是也不是越深越好,要防止过拟合,而且如果特征没有使得信息熵下降,是无效的。
卷积神经网络:同样是一种前馈神经网络,神经元可以响应一部分覆盖范围内的周围单元,对大规模图形图像处理效率极高,降低了复杂性。
卷积神经网络的特点:
1,至少有一个卷积层,用来提取特征
2,卷积层通过权值共享的方式进行工作,大大减少权值w 的数量,收敛速度较快
卷积的含义:固定函数和滑动函数相乘,移动中用x进行采样,或者说特征提取。
卷积核:用来特征提取和压缩。卷积核输出后,可能会跟着一个激励函数,一般都有,常用relu。
度量的是对于上一层输入的采纳或者关注程度
padding(填充):使用多个像素单位填充输入图像(变量)的边界,通常填充0值,
目的是,1,保持边界信息,使得中间的像素点信息和边界都被同等对待,扫描多遍
2,补齐尺寸
stride就是步幅,卷积扫描的时候每次滑动的单位。一般为1。提高可以提高扫描的速度。
池化层:对于卷积feature map 的处理加了一层池化的处理,分为max pooling,mean pooling。或者其他方式。取最大值或者平均值,功能如下:1,又进行了一次特征提取,减少下一层数据的处理量。2,提高泛化性。3,提高输入的微小变化容忍度。池化层非必须。
经典卷积网络:vgg-16,vgg-19,googleNet
训练的过程,同样是把损失函数loss 描述成各个卷积核中权重 w 的函数,然后通过凸优化找到极值点。和bp网络一样。
卷积核对输入变量进行特征提取的过程,是一个把高维向量映射为低维向量的过程,也是一种有损压缩,通过量化方法取度量对于上一层输入的敏感度。可以对噪声有更好的容错能力,泛化性更好。
工作原理更像是在记忆一个大概的印象,而不是思考或者推理。
softmax,用在输出层的激励函数。使用交叉熵损失函数。
交叉熵的理解:
one-hot,为何使用,避免在一个维度上有大小关系,强加给了关系,其实是没有的。
常用计算方法:
1,并行计算
2,随机梯度下降
3,梯度消失问题,初始化合适的w初值,选择合适的激励函数