001深度学习基础知识
- 目标检测
- 关键点定位
- 活体检测
- 相似性度量
- 人脸属性回归
深度学习基础知识
发展历程
人工神经网概念—>感知器模型—>多层感知器模型—>反向传播算法—>卷积神经网络—>深度学习—>AlexNet
感知器
第一个具有完整算法描述的神经网络学习算法(称为感知器学习算法:PLA)
任何线性分类或线性回归问题都可以用感知器来解决
- 分类:预测结果为离散值
- 回归:预测结果为连续值
人工神经网络可以看成多个单层感知器的组合。
多层感知机(MLP,Multilayer Perception)即为人工神经网络(ANN,Artificial Neural Network)。
深度学习:多隐层的多层感知器
组合:神经元—>感知器—>神经网络—>深度学习
多层感知器—>神经网络
多隐层的多层感知器—>深度学习
人工神经网络
人工神经网络是机器学习的一种方法,机器学习是解决人工智能领域各种问题的一种常见技术,代表技术是深度学习
人工神经网络是网络的概念,神经元有层次关系,包含输入层、输出层、隐藏层
定义好输入层的内容和相应的运算方式,我们就可以得到隐藏层的结点值;同理,定义好隐藏层的内容和相应的运算方式,我们就可以得到输出层的结点值
前向运算
在拿到深度学习网络结构之后,会利用这个网络结构来完成所设定好的一些任务,如分类任务,如果当前网络结构输出结果是一个类别的概率分布信息,那么给定输入,经过网络运算得到最终输出的过程即是前向运算的过程。
前向运算能够告诉我们怎么样去使用当前的网络结构,在使用当前网络运算进行逻辑运算、逻辑推理的时候,前提是网络结构已知,即网络的构造已知(卷积层,或池化层),网络结构内部的参数已知,这样才能进行运算,获取这些参数的过程就是反向传播的过程,通过反向传播,学到具体参数的值,学习的过程也是有监督的学习过程。根据给定样本和样本标签(人工标注),有监督地学习网络结构内部的参数。
有标签:有监督
无标签:无监督
有的有标签,有的没有标签:半监督
前向运算:利用网络结构计算输出值的过程为前向传播(函数映射,参数利用反向传播计算)
反向传播
Backpropagation,BP算法
反向传播是神经网络(参数模型)训练方法,,训练时需要有标签的数据,网络通常先人为定义好(网络结构已知),再确定好数据。反向传播能计算参数值,通过计算输出层结果与真实值之间的偏差来进行逐层(梯度下降)调节参数。
神经网络=网络结构(层)+参数
神经网络参数训练是一个不断迭代的过程。
训练过程:注意网络结构已知,然后完成不断循环迭代的过程。首先初始化神经网络中针对网络结构对应的参数值,初始化之后就有了网络结构和网络参数,利用当前网络进行前向运算,对给定的数据x和相应标签y,把数据x进行前向运算会得到输出结果y‘,y’和真实标签y会存在差别,这个差别定义为loss,F(y,y’)的形式,在计算loss之后,利用loss进行反向传播,对神经网络参数进行调节,调节的过程时梯度下降,通过对参数进行优化,使得y‘和y的loss达到最小,这样就得到了最优解,即最优的参数组合,这个参数就是神经网络要用到的参数。
反向传播过程参数的优化:参数更新即为参数优化(迭代)的问题,利用导数和学习率完成梯度下降的过程。
优化函数(loss最小)min||WX—Y||^2:对应的W为需要优化的参数,X为样本数据,Y是X对应的样本标签,利用这样的样本完成参数优化的过程称为有监督学习(训练)的过程。利用映射函数F(WX)得到输出值y。利用求导得到闭形式,这里对w进行求导,因为要求解的优化函数是关于w的优化函数,w为参数项,X,Y为已知项,令导数为0,可以求接出关于w=f(X,Y)的表达式,求解出W。
也可以采用梯度下降的方法,求解参数W的过程为参数优化的过程,神经网络将WX的运算变为更加复杂的运算。
(导数,方向导数,偏导的概念)
梯度
梯度:函数在某点处无数个变化方向中变化最快的那个方向
一元求导数,多元求偏导数,高维是向量
梯度下降算法
沿着导数下降的算法,进行参数更新,要选择合适的步长/学习率,否则易引起值震荡。
值震荡:始终找不到最优解
调整学习率,保证学习过程是单调过程,易找到最优解。初始时a大,如0.01,收敛快,寻找最优解快,迭代时逐步调整a的值,逐渐减小
局部最优解
导数为0的点,极大值或极小值,梯度下降陷入局部最优的问题(非凸函数)
最小值:梯度下降
最大值:梯度上升
常见的深度学习模型
- 卷积神经网(CNN)
- 循环神经网(RNN)
- 自动编码机
- ……