深度学习(Deep Learning)是利用多层神经网络结构,从大数据中学习现实世界中各类事物能直接用于计算机计算的表示形式(如图像中的事物、音频中的声音等),被认为是智能机器可能的“大脑结构”
Learning:让计算机自动调整函数参数以拟合想要的函数的过程
Deep:多个函数进行嵌套,构成一个多层神经网络,利用非监督贪心逐层训练算法调整有效地自动调整函数参数
简单地说深度学习就是:使用多层神经网络来进行机器学习
深度学习的基本步骤图解
人工神经元模型:把一个神经元看做一个计算单元,对输入进行线性组合,然后通过该一个非线性的激活函数作为输出。有如下函数:
梯度下降法是解决无约束优化问题的基本方法。首先选择一组参数,然后一次次地对这组参数进行微小的调整,不断使得新的参数的损失函数更小。梯度下降算法
梯度下降算法最大的不足是无法保证最终得到全局最优的结果。另外,步长的确定也是一个问题,一种方法是让步长随着时间t的推移而变小。
卷积神经网络(CNN)由输入层、卷积层、激活函数、池化层、全连接层组成,即INPUT-CONV-RELU-POOL-FC
卷积神经网络通过使用接受域的局部联结,对网络的结构有一些约束限制
训练
向前传播阶段:先用随机数初始化网络所有权值然后训练
向后传播阶段:误差反向传播
输入图像是32*32*3,3是它的深度(即R、G、B),卷积层是一个5*5*3的filter(感受野),这里注意:感受野的深度必须和输入图像的深度相同。通过一个filter与输入图像的卷积可以得到一个28*28*1的特征图,上图是用了两个filter得到了两个特征图;
有关卷基层的运行过程
对于多通道图像做1*1卷积,其实就是将输入图像的每个通道乘以系数后加在一起,即相当于将原图中本来各个独立的通道“联通”在了一起;
对输入的特征图进行压缩,一方面使特征图变小,简化网络计算复杂度;一方面进行特征压缩,提取主要特征,如下:
池化操作一般有两种,一种是Avg Pooling,一种是max Pooling,如下:
同样地采用一个2*2的filter,max pooling是在每一个区域中寻找最大值,这里的stride=2,最终在原特征图中提取主要特征得到右图。
(Avy pooling现在不怎么用了(其实就是平均池化层),方法是对每一个2*2的区域元素求和,再除以4,得到主要特征),而一般的filter取2*2,最大取3*3,stride取2,压缩为原来的1/4.
注意:这里的pooling操作是特征图缩小,有可能影响网络的准确度,因此可以通过增加特征图的深度来弥补(这里的深度变为原来的2倍)。
为了引入非线性,增加模型的表达能力
全连接层:连接所有的特征,将输出值送给分类器(如softmax分类器)。
CNN网络中前几层的卷积层参数量占比小,计算量占比大;而后面的全连接层正好相反,大部分CNN网络都具有这个特点。因此我们在进行计算加速优化时,重点放在卷积层;进行参数优化、权值裁剪时,重点放在全连接层。
1、语音识别
2、图像和视频
● 手写字体识别
● 人脸识别
● 图像识别
3、自然语言处理
4、搜索广告与CTR预估