TensorFlow深度学习

Standing On Shoulders of Giants 站在巨人的肩膀上
TensorFlow深度学习
机器学习是计算机科学中的一个研究领域,其目标是识别并实现一些系统和算法,从而使计算机给予给定输入中的样例进行学习。
深度学习是机器学习的一个分支,旨在使用一系列算法对高度抽象的数据进行建模。其 特点是建立一个多层学习模型,深层级将浅层级的输出作为输入,将数据层层转化,是指越来越抽象。这种分层学习思想模拟人脑接受外界刺激是处理信息和学习的方式。
深度学习架构—— 深度神经网络(Deep Neural Networks ,DNN),“深度”是指节点层的数量,深度神经网络拥有多个层。
机器学习完整的学习过程需要两个 数据集
训练集(知识库,用于训练机器学习算法。在这一阶段,机器学习模型(超参数)可以根据随后获得的性能进行调整。)
测试集(仅用于评价模型对未知数据的预测性能。)

机器学习的 三种范式及相关问题:
监督学习(训练数据有标签):分类、回归、排序
无监督学习(无标签):聚类、关联规则挖掘、分割、维度约减
强化学习(系统与环境交互学习):决策过程、回报系统、推荐系统

人工神经网络是深度学习概念的一个主要的应用工具。

激活函数:(简单)阶跃函数、线性组合、sigmoid函数。(复杂)双曲正切函数、径向基函数、圆锥曲线函数、softmax函数。
不要忘记,神经网络激活函数中的权重是要靠训练得出来的。虽然在神经网络架构的实现过程中,激活函数的选择非常重要,但研究表明,在保证训练正确的前提下,不同激活函数产生的输出质量差距并不太大。
神经网络的学习过程是对权重的迭代优化,因此属于监督学习的范畴。权重的修改基于网络训练集上的表现,且训练集中的样本所属的分类是已知的。学习的目标是最小化损失函数,该函数代表网络输出相对于正确输出的偏移程度。随后通过不与训练集交叉的测试集对象验证网络性能。

反向传播算法:神经网络学习过程中的一种监督学习算法。分两个步骤:
(1)以随机权重初始化网络
(2)对于每个训练样本,重复一下过程:
向前传播:计算网络产生的总误差,即网络输出与正确输出之间的差值。
反向传播:从输出层到输入层,反向遍历所有层。
(3)在反向遍历过程中,根据上一层的误差和对应的权值,逐层计算网络内部各层次误差,从而将总误差从输出层向隐藏层反向传播,直至传播到输入层。
(4)根据各层误差调整各层权重,以最小化误差函数。
权重优化:梯度下降法:保证对权重的每一次更新都是沿着正确的方向进行,该方向也是代价函数趋于最小值的唯一方向。
随机梯度下降法(适用于大的数据集):每处理一个训练样本,权值就能得到一次更新,所以后续计算使用的是被前面步骤优化过的权值。然而,这也使得SGD在收敛到全局最优解的过程中会走一些弯路。
神经网络架构:
1、多层感知器
2、DNN架构
3、卷积神经网络(CNN)
4、受限玻尔兹曼机(RBM)
5、自编码器
6、循环神经网络(RNN)
几种深度学习框架对比:

Theano:可能是当前使用最广的库。该库用Python实现,支持GPU计算,可以达到CPU运算速度的24倍。允许用户自定义、优化和评估复杂的数学表达式。
Caffe:对表达式的支持性、速度和模块化等方面表现十分优秀。该框架拥有独特架构,是的CPU运算能够较为容易的转为GPU运算。Caffe也基于Python,但需要编译很多支持库,所以安装过程较为耗时。
Torch:一个大型机器学习生态系统,提供大量算法和函数,其中包括深度学习框架和音视频等多媒体处理工具,尤其专注于并行计算。该框架提供优秀的C语言接口,拥有很大的用户群。Torch是脚本语言Lua的扩展库,其目标是为机器学习系统的设计和训练提供灵活的环境。是一个独立、完备的框架,高度便携、跨平台,且其脚本在各种平台上运行时无需经过任何修改。
TensorFlow:是一个数学软件,也是一个开源的机器智能软件库,采用数据流图进行数值计算的开源软件库。目标是进行机器学习和深度神经网络方面的研究。方便机器学习从业者完成更多数据密集型计算。

猜你喜欢

转载自blog.csdn.net/hushaoqiqimingxing/article/details/81047604