深度学习概览
笔记内容侵权联系删
深度学习
深度学习一般指深度神经网络,深度指神经网络的层数(多层)。
传统机器学习与深度学习
深度学习,是一种基于无监督特征学习和特征层次结构学习的模型,在计算机视觉,语音识别,自然语言处理等领域有着突出的优势。
传统机器学习
对计算机硬件需求较小:计算量级别有限一般不需配用GPU显卡做并行运算
适合小数据量训练,再增加数据量难以提升性能
需要将问题逐层分解
人工进行特征选择
特征可解释性强
深度学习
对硬件有一定要求:大量数据需进行大量的矩阵运算,需配用GPU做并行运算
高维的权重参数,海量的训练数据下可以获得高性能
“端到端”的学习
利用算法自动提取特征
特征可解释性弱
神经网络
神经网络旨在模拟人脑的行为,由相互连接的节点(也称为人工神经元)组成,这些节点组织成层次结构。每个神经元接收一组输入,执行一系列计算,并产生一个输出,该输出传递给下一层。随着数据在网络中传递,节点之间的连接会根据数据中的模式而加强或减弱,这使得网络可以从数据中学习,并根据其学到的知识进行预测或决策。
训练法则
深度学习中常用的损失函数
在训练深度学习网络的时候,我们首先要将目标分类的“错误”参数化,这就是损失函数(误差函数反映了感知器目标输出和实际输出之间的误差。
回归任务最常用的损失函数为二次代价函数
分类任务最常用的损失函数是交叉熵代价函数
一般二次代价函数更多用于回归问题,而交叉熵误差更多用于分类问题
全局梯度下降算法(BGD)
对于训练样例集中的每一个样例记为<x,t>,X是输入值向量,t为目标输出,o为实际学习率,C为损失函数。
【这个版本的梯度下降算法,实际上并不常用,它的主要问题是
收敛过程非常慢,因为每次更新权值都需要计算所有的训练样例。】
随机梯度下降算法(SGD)
针对原始梯度下降算法的弊端,一个常见的变体称为增量梯度下降(Incremental Gradient Descent),亦即随机降(SGD:Stochastic Gradient Descent)。
小批量梯度下降(MBGD)
针对上两种梯度下降算法的弊端,提出了一个实际工作中最常用的梯度下降算法,即pMini-BatchSGD。它的思想是每次使用一小批固定尺寸(BS:BatchSize)的样例来计算w,,然后更新权值
反向传播算法
误差反向传播算法(Error Back Propagation)是神经网络的重要算法。它使用链式求导法则将输出层的误差反向传回给网络,使神经网络的权重有了较简单的梯度计算实现方法。
其步骤为:
将损失函数值反向传播给每个计算单元;
每个计算单元根据获得的误差更新权重。
梯度消失和梯度爆炸问题
梯度消失:当网络层数越多时,进行反向传播求导值越小,导致梯度消失梯度爆炸:当网络层数越多时,进行反向传播求导值越大,导致梯度爆炸