初学深度学习——《深入浅出深度学习:原理剖析与python实践》

人工智能、机器学习与深度学习的关系
要理解三者之间的关系,可以通过同心圆来可视化表示三者的关系。 最外面的圆
环代表人工智能,里面一层表示机器学习,人工神经网络和深度学习处于中心位置,
也可以简单理解为机器学习是人工智能的一个分支,而深度学习则是一种特殊的机器
学习实现方法。它们之间的关系如下图所示:
初学深度学习——《深入浅出深度学习:原理剖析与python实践》_第1张图片
1、人工智能——机器推理
所谓的通用人工智能( General Artificial Intelligence )或强
人工智能,即让机器拥有人类的所有感觉、所有理智,像人类一样思考。
2、机器学习——数据驱动的科学
机器学习,也被称为统计机器学习,是人工智能领域的一个分支,其基本思想是基于数据构建统计模型,并利用模型对数据进行分析和预测的一门学科。
3、深度学习——大脑的仿真
2006年, Geoffe Hinton在Science杂志上发表了论文,首次提出了“深度信念网络”的概念 。 传统的训练方式采用随机初始化的方式来初始化权重参数,与传统的训练方式不同,深度信念网络有一个预训练( pre-training )的过程,这样可以方便神经网络中的权值找到一个接近最优解的初始值,再使用“微调( fine-tuning )”技术来对整个网络进行优化训练。 这两个技术的运用大幅度减少了训练多层神经网络的时间,并且有效地缓解BP算法导致的梯度消失问题,它给多层神经网络相关的学习方法赋予了一个新名词一一深度学习。

深度学习框架
现阶段主流的深度学习框架有:Theano、Caffe、Torch和TensorFlow。
Theano :是遵循BSD协议的一个开源项目,在2008年,由Yoshua Bengio领导的加拿大蒙特利尔理工学院LISA实验室开发。 相比于其他3个框架, Theano的学术气息更浓厚,在学术界和各种数据挖掘竞赛中非常流行,很多先进的算法理论也是首先通过Theano来得到验证。
Caffe:是一个由C++编写的深度学习框架,最开始是由UC Berkeley的贾扬清博士创建的一个开源项目 , 目前由伯克利的视觉与学习中心(Berkeley Vision and Learning Center )维护。
Torch : 诞生时间已经有超过十年之久,但是真正起势得益于2016年Facebook开源了大量Torch 的深度学习模块和扩展。 Torch 的一个特殊之处在于, Torch是一个由Lua语言开发的深度学习框架。 Torch 目前在Facebook和Twitter内部被广泛使用。
Tensorflow : 是Google公司在2015年11月开源的新一代机器学习系统,虽然相比其他开源工具, Tensorflow的发布时间要晚很多,但得益于Google 的强大技术支持和不遗余力的宣传,Tensorflow在很短的时间内就吸引了大量的用户,也是2016年Github上最受欢迎的深度学习项目。

深度学习训练的难点
随着深度学习被广泛应用于生活中的各个领域,伴随着各种突破性进展的同时,深度学习面临的各种困难也成为当前的研究热点,困难主要包括:欠拟合一一梯度消失和过拟合。
1、欠拟合一一梯度消失
梯度消失( vanishing grad ient ),也称为梯度弥撒,仍然是深度神经网络训练过程中所面临的最大挑战之一。 梯度消失是如何产生的呢?梯度消失产生的源头就在于激活函数。
如何防止深度神经网络训练的梯度消失问题,或者说如何提升深度网络的训练效果,是当前深度学习一个非常热点的研究领域,并且取得了很多很好的效果,下面来考察当前几种常用的技巧。
(1)采用更合理的激活函数,如ReLU 、maxout来取代传统的sigmoid 函数系激活函数,这在一定程度上缓解了梯度消失的问题。
(2)Batch Normalization : 是Google在2015年提出的一种改进SGD算法的优化策略。BN由ZCA标准化层和重参数化层构,ZCA标准化层是标准化预激活输出,使得输出的每一个维度都服从标准正态分布的形式,即均值为0 ,方差为1 。重参数化层主要是对标准化后的预激活输出结果执行scale 和shift操作。
2、过拟合
过拟合( overfitting )是机器学习领域常见的难题。 过拟合一般是指在模型选择中,选择的模型参数过多,导致对训练数据的预测很好,但对未知数据的预测很差的现象。 神经网络,尤其是在深度神经网络领域,网络的层数更深,结构也更复杂, 一般能达到数十层甚至上百层,而训练样本往往相对较少,过拟合的问题会更加严重。
正则化是机器学习中常用来解决过拟合的技巧。 较为常见的正则化方法包括:对单模型,比如当验证集的效果变化不明显的时候可以提前终止迭代,或者采用L1正则化和L2正则化等。 对多模型,可以利用boosting来集成提升,但在深度学习中,这种方法是不现实的,因为单个模型的训练已经非常复杂耗时,并且即使训练出多个网络模型,也难以在实际环境中做到快速集成。

你可能感兴趣的:(读书笔记,深度学习)