- CV领域主要有八项任务
(1)图像分类:为图片中出现的物体目标分类出其所属类别的标签;
(2)目标检测:将图片感兴趣的目标提取出来
(3)图像语义分割:将图像物体的轮廓勾勒出来
(4)场景文字识别:识别图像中文字信息。如道路名、绿灯秒数等
(5)图像生成
(6)人体关键点检测
(7)视频分类
(8)度量学习
- 图像的频率:灰度值变化剧烈程度的指标,是灰度在平面空间上的梯度
- 低频信息: 是轮廓, 就是灰度颜色缓慢地变化, 代表着那是连续渐变的一块区域.
(1)对于一幅图像,是边缘以内的内容为低频,而边缘内的内容就是图像的大部分信息,即图像的大致概貌和轮廓,是图像的近似信息。
- 高频信息: 是噪声和细节,就是频率变化快. 相邻区域之间灰度相差很大就是变化快,即高频显示图像边缘。
(1)图像中,一个影像与背景的边缘部位,通常会有明显的差别.因此,图像边缘的灰度值变化快,就对应着频率高。
(2)图像的细节处也是属于灰度值急剧变化的区域,正是因为灰度值的急剧变化,才会出现细节。
(3)噪声(即噪点)也是这样,在一个像素所在的位置,之所以是噪点,就是因为它与正常的点颜色(灰度值)不一样,即灰度快速变化。
- 特征简介:特征是描述模式的最佳方式,特征的各个维度能够从不同的角度描述模式,在理想情况下,维度之间是互补完备的。
(1)低层特征: 分辨率更高,包含更多位置、细节信息,但是由于经过的卷积更少,其语义性更低,噪声更多
(2)中层视觉特征:中层视觉主要关注的是图像中的几何结构以及特定对象和目标,应用领域包括目标分割和跟踪
[1] 比低层视觉特征更能表示图像的外观信息,而且不需要定义像高层视觉特征那样的语义基础。
[2] 找到能代表某类场景的中层特征的图像块,对图形分类,识别,检索等方面有很大帮助。
(3)高层特征: 具有更强的语义信息,但是分辨率很低,对细节的感知能力较差
- 边缘
(1)边缘是组成两个图像区域之间边界(或边缘)的像素。一般被定义为图像中拥有大的梯度的点组成的子集。
(2)局部地看边缘是一维结构。
- 角
(1)角是图像中点似的特征,局部有两维结构。
(2)在图像梯度中寻找高度曲率
- 区域
(1)区域描写一个图像中的一个区域性的结构,区域也可能仅由一个像素组成。
(2)区域检测可以被想象为把一张图像缩小,然后在缩小的图像上进行角检测,因此许多区域检测也可以用来监测角。
- 脊
(1)脊可以被看作是代表对称轴的一维曲线
(2)局部针对于每个脊像素有一个脊宽度,从灰梯度图像中提取脊要比提取边缘、角和区域困难。
(3)空中摄影使用脊检测来分辨道路,医学图像用来分辨血管。
- 图像特征可以分为四类:直观性特征、灰度统计特征、变换系数特征与代数特征
[1] 直观性特征:主要指几何特征,几何特征比较稳定,受姿态变化与光照条件等因素的影响小,但不易抽取,而且测量精度不高,与图像处理技术密切相关
[2] 变换系数特征:指先对图像进行Fourier变换、小波变换等,得到的系数后作为特征进行识别
[3] 代数特征:是基于统计学习方法抽取的特征,具有较高的识别精度,代数特征抽取方法又可以分为两类:线性投影特征抽取方法,非线性特征抽取方法
- 特征提取描述
(1)主要思想:将原始样本投影到一个低维特征空间,得到最能反应样本本质或进行样本区分的低维样本特征。
(2)最重要的特性:“可重复性”,同一场景的不同图像所提取的特征应该是相同的。
(3)图象处理中的一个初级运算,是对图像进行的第一个运算处理,检查每个像素来确定是否代表一个特征。
(4)特征提取的作用:
[1] 减少数据维度
[2] 提取或整理出有效的特征供后续使用
(5)数据降维的技术: 特征提取与特征选择
[1] 特征选择:能够保持数据的原始特征,最终得到的降维数据是原数据集的一个子集;
[2] 特征提取:通过数据转换或数据映射得到一个新的特征空间,无法直观看出新数据集与原始数据集之间的关联。
- 特征提取主要方法(特征描述/特征向量):传统图像特征提取 和 深度学习
(1)传统的特征提取:基于图像本身的特征进行提取;
(2)深度学习:基于样本自动训练出区分图像的特征分类器;
- 传统的图像特征提取步骤:预处理、特征提取、特征处理并利用机器学习等方法对特征进行分类等操作;
(1)预处理:目的主要是排除干扰因素,突出特征信息;
主要的方法有:
图片标准化:调整图片尺寸
图片归一化:变换为一个标准形式(0-1)的图像
(2)特征提取:利用特殊的特征提取子对图像进行特征提取,主要有:Harris、SIFT、SURF、LBF、HOG、DPM等
(3)特征处理:主要目的是为了排除信息量小的特征,减少计算量等:常见的特征处理方法是降维;
常见的降维方法有:主成分分析,奇异值分解, 线性判别分析;
- 常用的图像特征有颜色特征、纹理特征、形状特征、空间关系特征
- 颜色特征是一种全局特征,描述了图像所对应的景物的表面性质。一般颜色特征是基于像素点的特征。
(1)由于颜色对图像的方向、大小等变化不敏感,所以颜色特征不能很好地捕捉图像中对象的局部特征
- 颜色特征的表达方法
(1)颜色直方图
优点: 不受图像旋转和平移变化的影响
简单描述一幅图像中颜色的全局分布
进一步借助归一化还可不受图像尺度变化的影响
缺点: 没有表达出颜色空间分布的信息
无法区分局部颜色信息
(2) 颜色集: 对颜色直方图的一种近似
[1] 将图像从 RGB颜色空间转化成视觉均衡的颜色空间(如 HSV 空间)
[2] 将颜色空间量化成若干个柄
[3] 用色彩自动分割技术将图像分为若干区域
[4] 每个区域用量化颜色空间的某个颜色分量来索引,从而将图像表达为一个二进制的颜色索引集
[5] 在图像匹配中,比较不同图像颜色集之间的距离和色彩区域的空间关系
(3) 颜色矩 : 颜色分布信息主要集中在低阶矩中, 所以一阶矩(均值)、二阶矩(方差)和三阶矩(斜度)足以表达图像的颜色分布。
(4) 颜色聚合向量
[1] 将直方图每一个柄的像素分成两部分
[2] 聚合像素:该柄内的某些像素所占据的连续区域的面积大于给定的阈值,则该区域内的像素作为聚合像素,否则作为非聚合像素。
(5) 颜色相关图
- 纹理特征是一种全局特征,描述了图像所对应景物的表面性质。
(1)纹理只是一种物体表面的特性,并不能完全反映出物体的本质属性,所以仅仅利用纹理特征是无法获得高层次图像内容的。
(2)纹理特征不是基于像素点的特征,需要在包含多个像素点的区域中进行统计计算。在模式匹配中,这种区域性的特征具有较大的优越性,不会由于局部的偏差而无法匹配成功。
(3)优点:
[1] 作为一种统计特征,纹理特征常具有旋转不变性
[2] 对于噪声有较强的抵抗能力。
(4)缺点:
[1] 当图像的分辨率变化的时候,所计算出来的纹理可能会有较大偏差。
[2] 受到光照、反射情况的影响,从2-D图像中反映出来的纹理不一定是3-D物体表面真实的纹理。
- 纹理特征描述方法
(1)统计方法:
[1] 灰度共生矩阵, 灰度共生矩阵的四个关键特征:能量、惯量、熵和相关性。
[2] 通过对自相关函数(即图像的能量谱函数)的计算,提取纹理的粗细度及方向性等特征参数
(2)几何法: 是建立在纹理基元(基本的纹理元素)理论基础上的一种纹理特征分析方法。纹理基元理论认为,复杂的纹理可以由若干简单的纹理基元以一定的有规律的形式重复排列构成。
[1] 典型的方法:Voronio 棋盘格特征法和结构法。
(3)模型法: 以图像的构造模型为基础,采用模型的参数作为纹理特征。
[1] 典型的方法:随机场模型法,如马尔可夫随机场模型法和 Gibbs 随机场模型法
(4)信号处理法: 提取与匹配主要有, 灰度共生矩阵、Tamura 纹理特征、自回归纹理模型、小波变换
- 形状特征有两类表示方法:轮廓特征 和 区域特征
[1] 轮廓特征主要针对物体的外边界
[2] 区域特征则关系到整个形状区域
- 几种典型的形状特征描述方法: 边界特征法,傅里叶形状描述符法,几何参数法,形状不变矩法,小波描述符
- 空间关系:指图像中分割出来的多个目标之间的相互的空间位置或相对方向关系,这些关系也可分为连接/邻接关系、交叠/重叠关系和包含/包容关系等。
(1)优点:可加强对图像内容的描述区分能力
(2)缺点:对图像或目标的旋转、反转、尺度变化等比较敏感
- 通常空间位置信息可以分为两类:相对空间位置信息和绝对空间位置信息。
[1] 前一种强调目标之间的相对情况,如上下左右关系等
[2] 后一种强调目标之间的距离大小以及方位。
[3] 由绝对空间位置可推出相对空间位置,但表达相对空间位置信息常比较简单。
- 图像空间关系特征的提取方法:
(1)首先对图像进行自动分割,划分出图像中所包含的对象或颜色区域,然后根据这些区域提取图像特征,并建立索引;
(2)首先将图像均匀地划分为若干规则子块,然后对每个图像子块提取特征,并建立索引。
- 适用的任务:模式识别(面部/口语识别),异常识别(信用卡交易),预测(股票价格)
- 常见的任务:回归分析, 分类分析, 聚类分析
(1)回归常用算法:线性回归、逻辑回归、多项式回归、逐步回归、岭回归、套索回归、ElasticNet回归
(2)分类常用算法:K近邻、决策树、朴素贝叶斯、逻辑回归、支持向量机、随机森林
(3)聚类常用算法:分为基于划分,密度,层次,网络,模型等的聚类
- 常见的目标变量的类型:数值型,标称型
(1)标称型:一般在有限的数据中取,而且只存在"是"和"否"两种不同的结果(一般用于分类)
(2)数值型:可以在无限的数据中取,而且数值比较具体化,例4.02(一般用于回归分析)
- 算法选择(考虑数据)
(1)特征值是离散型变量还是连续型变量
(2)特征值中是否存在缺失的值,何种原因造成
(3)数据中是否存在异常值
(4)某个特征发生的频率如何(是否罕见)
- 回归分析,是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关系。这种技术通常用于预测分析,时间序列模型以及发现变量之间的因果关系。
(1)回归分析是建模和分析数据的重要工具
(2)估计了两个或多个变量之间的关系
(3)优点
[1] 表明自变量和因变量之间的显著关系;
[2] 表明多个自变量对一个因变量的影响强度。
(4)常用算法:线性回归、逻辑回归、多项式回归、逐步回归、岭回归等
- 分类分析,是监督学习,是为了确定一个点的类别,具体类别是已知的
(1)常用算法:K近邻、决策树、逻辑回归、支持向量机、随机森林等
(2)分类网络参考文章
[1] 各种分类网络介绍
[2] 分类网络, FLOPS,参数个数和感受野信息
- 聚类分析, 无监督学习,是将一系列点分成若干类,事先是没有类别的.
(1)按照某个特定标准(如距离)把一个数据集分割成不同的类或簇,使得相同簇内的数据对象的相似性尽可能大,不同簇中的数据对象的差异性也尽可能地大。
(2) 常用算法:分为基于划分,密度,层次,网络,模型等的聚类
- 梯度下降算法:
(1) α \alpha α 代表学习率: 太小训练很慢,太大会在最优点震荡,达不到最优点。
(2)越接近最低点,导数越来越小,学习率会自动采取更小步幅。
(3)单变量梯度下降图解
[1] J ( θ ) = θ 2 J(\theta) = \theta^2 J(θ)=θ2, J ′ J^{'} J′ ( θ ) (\theta) (θ) = 2 * θ \theta θ, α \alpha α = 0.4
[2] θ \theta θ(0) = 1
[3] θ \theta θ(1) = θ \theta θ(0) - α \alpha α * J ′ J^{'} J′( θ \theta θ(0)) = 1 - 0.4 * 2 = 0.2
同理双变量: θ \theta θ(1) = θ \theta θ(0) - α \alpha α * ∂ J ( θ ( 0 ) , θ ( 1 ) ) ∂ θ ( 0 ) \frac{ \partial J(\theta(0),\theta(1))}{\partial \theta(0)} ∂θ(0)∂J(θ(0),θ(1))
[4] θ \theta θ(2) = θ \theta θ(1) - α \alpha α * J ′ J^{'} J′( θ \theta θ(1)) = 0.2 - 0.4 * 0.4 = 0.04
[5] θ \theta θ(3) = 0.008; θ \theta θ(4) = 0.0016;
- 多元线性回归
(1) 多元线性回归方程: y y y = β \beta β0 + β \beta β1x1 + ⋯ + β \cdots + \beta ⋯+βpxp + ε \varepsilon ε = X β + ε X\beta + \varepsilon Xβ+ε
[1] ε \varepsilon ε代表随机误差,分为:可解释的误差 和 不可解释的误差
(2) 理论回归方程: E ( y ) E(y) E(y) = β \beta β0 + β \beta β1x1 + ⋯ + β \cdots + \beta ⋯+βpxp
(3) 对自变量 x x x1 求偏导,就会有 d E ( y ) d x ∣ x 1 \left.\frac{{\rm d}E(y)}{{\rm d}x} \right| _{x1} dxdE(y)∣∣∣x1 = β \beta β1
(4) 求解: f ( x ) f(x) f(x) = w w w0 + w w w1x1 + ⋯ + w \cdots + w ⋯+wpxp = X W XW XW, 数据集标签 y y y.
(5) 参考
[1] 机器学习多元线性回归python代码详解
[2] 经典:线性回归分析详解10
- 特征缩放
(1)不同特征的取值在相近的范围内,梯度下降速度更快,可以更快收敛。
(2)特征缩放可以让代价函数的等值线形状接近圆形。等值线形状是如果是细长的椭圆形,梯度下降的过程会很缓慢。
(3)通常将特征的取值约束到【-1,1】
- 线性回归的优缺点
(1) 优点: 直接, 快速, 可解释性好
(2) 缺点:
[1] 需要严格的假设
[2] 需处理异常值,对输入数据差异, 异常值很敏感.
[3] 存在共线性,自相关,异方差等问题
1.参考文章
(1)神经网络类型介绍
1 感知器
(1)单层神经网络,所有网络最基本的,没有隐藏层,包含两层:输入层,输出层
(2) 应用: 分类,编码数据库(多层感知器),监控访问数据(多层感知器)
- 前馈网络(Feed Forward)
(1)所有节点都是完全连接的,包含三层:输入层,隐藏层,输出层
(2)Logistic(sigmoid)函数的输出值在0到1之间,用来判断答案是是或否,不能用于连续的值。
(3)在每个连接过程中,来自前一层的信号被乘以一个权重,增加一个偏置,然后通过一个激活函数
(4)应用: 数据压缩,模式识别,计算机视觉,声纳目标识别,语音识别,手写字符识别
- 深度残差网络(Deep Residual Network)
(1)可以防止结果退化。使用残差网络,其输入的一些部分会传递到下一层
(2)网络可以相当深(它可能包含大约300层),使用跳过连接实现信号跨层传播
(3)应用: 图像分类, 目标检测, 语义分割, 语音识别, 语言识别
- 循环神经网络(Recurrent Neural Network)
(1)是前馈神经网络的一种改进形式, 包含环和自重复
(2)隐藏层中的每个神经元接收具有特定时间延迟的输入。需要在当前的迭代中访问之前的信息。例如,当我们试图预测一个句子中的下一个单词时,我们首先需要知道之前使用的单词。
(3)可以处理输入并跨时共享任意长度和权重。模型中的计算会考虑到历史信息。问题是计算速度慢。
(4)不能考虑当前状态的任何未来输入, 也无法记住很久以前的信息。考虑时间延迟,但如果有大量的相关数据,RNN很容易失败.
(5)应用: 机器翻译, 机器人控制, 时间序列预测, 语音识别, 语音合成, 时间序列异常检测, 节奏学习, 音乐创作
- 神经网络类别:CNN,RNN,DNN
- 神经元(Neuron): 神经元形成神经网络的基本结构, 在神经网络的情况下,神经元接收输入,处理它并产生输出,而这个输出被发送到其他神经元用于进一步处理,或者作为最终输出进行输出
- 偏差(Bias): 被应用于输入的线性分量被称为偏差。它被加到权重与输入相乘的结果中。
[1] 基本上添加偏差的目的是来改变权重与输入相乘所得结果的范围的。添加偏差后,结果将看起来像 a* W1 偏差。这是输入变换的最终线性分量
- 权重(Weights): 当输入进入神经元时,它会乘以一个分配给它的关联权重。
[1] 随机初始化权重,并在模型训练过程中更新这些权重。
[2] 训练后,认为重要的则对其输入赋予较高的权重。
- stride:filter在原图上扫描时,需要跳跃的格数,默认跳一格;通过跳格,减少filter与原图做扫描时的重复计算,提升效率;
(1) stride太小,重复计算较多,计算量大,训练效率降低;
(2) stride太大,会造成信息遗漏,无法有效提炼数据背后的特征;
(3) 图像跳跃长度
[1] Stride = 每像素占用的字节数 * Width;
[2]如果 Stride 不是 4 的倍数, 那么 Stride = Stride + (4 - Stride%4);
- pading 填充:对输入图像进行填充,是输入图片经过卷积处理后分辨率不会发生改变
(1)解决边缘像素只被计算过一次,不会丢失图像角落信息
(2)卷积后的矩阵不会越变越小
- 上采样(放大图片):在做图像识别过程中,需要对图像进行像素级别的分类,因此在卷积提取特征后需要通过上采样将feature map 还原到原图中。
- 下采样(缩小图像):使图像符合显示区域的大小;生成对应图像的缩略图。
- 感受野:卷积神经网络特征所能看到输入图像的区域(卷积处理,33 kernel 生成一个点), 即特征输出受感受野区域内的像素点的影响。
(1) 特性
[1] 在达到相同感受野的情况下,多层小卷积核的性能一定比大卷积核更好。
[2] 放置anchor层的特征感受野应该跟anchor大小相匹配
[3] 特征的有效感受野(实际起作用的感受野)实际上是远小于理论感受野的,越靠近感受野中心的值被使用次数越多,靠近边缘的值使用次数越少, 经过多层堆叠,总体感受野就会呈现高斯分布.
[4] 任意两个层之间都有位置—感受野对应关系,目标检测中需知道feature map层每个位置的特征向量对应输入图像哪个区域,以便我们在这个区域中设置anchor,检测该区域内的目标
[5] 一般做法是前面几层下采样频率高一点,中间层下采样频率降低,并使用不下采样的方法提高深度。
[6] 某一层feature map(特性图)中某个位置的特征向量,是由前面某一层固定区域的输入计算出来的([55]–>[33]–>[1], 通过kernel[33]卷积两次),那这个区域就是这个位置的感受野
- 相对感受野:指这一个下采样层相对于上一个下采样层的感受野,把两个下采样之间看成一个子网络的话,这个子网络必须得有一定的感受野才能将空间信息编码到下面的网络去.
[1] 分辨率很重要,在使用下采样之前要保证在这一层上有足够的感受野,这个感受野是相对感受野
[2]一般说来,靠近输入层的层空间信息冗余度最高,所以越靠近输入层相对感受野应该越小。同时在靠近输入层的层,这里可以合成一个大卷积核来降低计算量。
- anchor (anchor box):在训练之前,在训练集上利用k-means等方法聚类出来的一组矩形框,代表数据集中目标主要分布的长宽尺度。
(1) 在推理时生成的特征图上由这些anchor滑动提取n个候选矩形框再做进一步的分类和回归
(2) 在深度学习,物体检测问题通常都被建模成对一些候选区域进行分类和回归的问题。
- 目标检测检测器
(1)在单阶段检测器中,候选区域是通过滑窗方式产生的 anchor;
(2)在两阶段检测器中,候选区域是 RPN (专门用来提取候选框)生成的 proposal (候选框),但是 RPN 本身仍然是对滑窗方式产生的 anchor 进行分类和回归
- NMS(非极大值抑制)
(1) 由于anchor经常重叠,为了解决重复建议的问题,使用NMS算法。
(2) NMS 获取"按照分数排序的建议列表"并对已排序的列表进行迭代,丢弃那些 IoU 值大于某个预定义阈值的建议,并提出一个具有更高分数的建议。抑制的过程是一个迭代-遍历-消除的过程
- 过拟合(高偏差(bias)): 训练集上精度高,测试集上精度低
(1) 太过于刻画细节,泛化能力差;过拟合会出现高方差问题(预测的稳定性差,波动大)
(2) 产生原因:
[1] 模型的复杂度太高。比如:网络太深
[2] 过多的变量(特征)
[3] 训练数据非常少。
(4) 解决方法:
[1] 尽量减少特征的数量(特征选择)
[2] 早停法
[3] 数据集扩增
[4] dropout: 在训练开始时,我们随机地“删除”0.2–0.5的隐层单元,经过多次迭代, 直至训练结束。
[5] 正则化,包括L1、L2
[6] 清洗数据。
- 欠拟合:在训练数据和测试集表现都差。
(1) 模型没有很好地捕捉到数据特征;欠拟合会出现高偏差问题(偏离正确结果更远)
(2) 产生欠拟合的原因:模型不够复杂而无法捕捉数据基本关系,导致模型错误的表示数据。
(3) 解决办法:
[1] 添加其他特征项
[2] 添加多项式特征: 例如将线性模型通过添加二次项或者三次项使模型泛化能力更强
[3] 减少正则化参数: 正则化的目的是用来防止过拟合的,但是现在模型出现了欠拟合,则需要减少正则化参数。
- L1范数:是各参数绝对值之和, 倾向于将参数调整为 0,即将参数稀疏。
[1] L1 是假定参数符合拉普拉斯分布
- L2范数:是参数的平方和后开方, 平方操作使绝对值高的参数受到的约束越大,但是并不会使大多数参数调整为 0,而是只是减小它们。
[1] L2 是假定参数符合高斯分布
[2] 避免过拟合的原理: 让L2范数的规则项 ∣ ∣ W ∣ ∣ 2 ||W||_2 ∣∣W∣∣2 尽可能小,可以使得W每个元素都很小,接近于零,但是与L1不同的是,不会等于0
- L1范数 和 L2范数区别
(1) L1 是倾向于产生稀疏解,而 L2 倾向于减小参数,都能简化模型,但是一般来说 L2 模型的抗过拟合的能力更好一点。
- 稀疏化的好处:
[1] 特征选择: 实现特征的自动选择,去除无用特征。稀疏化可以去掉这些无用特征,将特征对应的权重置为零。
[2] 可解释性: 例如判断某种病的患病率时,最初有1000个特征,建模后参数经过稀疏化,最终只有5个特征的参数是非零的,那么就可以说影响患病率的主要就是这5个特征。
- BN(Batch Normalization): 对每一批数据进行归一化, 将输入值或卷积网络的张量进行类似标准化的操作,将其放缩到合适的范围,加快训练速度。
(1) DNN 训练的技巧, 在神经网络中间层进行归一化处理,主要还是让数据分布变为一致,使训练效果更好的方法
(2) BN是改变方差大小和均值位置,使得新的分布更切合数据的真实分布,保证模型的非线性表达能力
(3) 优点
[1] 可以防止梯度爆炸或弥散
[2] 可以提高训练时模型对于不同超参(学习率、初始化)的鲁棒性
[3] 可以让大部分的激活函数能够远离其饱和区域
[4] 可以加快模型的收敛速度,加快训练速度
[5] 在一定程度缓解了深层网络中“梯度弥散(特征分布较散)”的问题
[6] 提高模型训练精度
[7] 可以省去dropout,L1, L2等正则化处理方法
- 标准的归一化步骤:减均值除方差
(1)解决问题: 如果数据在梯度很小的区域,学习率就会很慢, 减均值除方差后,数据移到梯度较大的区域,这可以看做是一种对抗梯度消失的有效手段。
(2)减均值除方差得到的分布是正态分布
- ICS内部协变量偏移(Interval Covariate Shift):训练期间网络参数变化导致的数据分布的变化
(1)BN 可解决内部协变量偏移
(2)ICS导致的现象:每个神经元的输入数据不再是“独立同分布”。
[1] 上层参数需要不断适应新的输入数据分布,降低学习速度。
[2] 下层输入的变化可能趋向于变大或者变小,导致上层落入饱和区,使得学习过早停止。
[3] 每层的更新都会影响到其它层,因此每层的参数更新策略需要尽可能的谨慎。
- 模型蒸馏:使用小模型模拟大模型的泛性
- 激活函数选择
(1) 首先尝试ReLU,速度快,但要注意训练的状态.
(2) 如果ReLU效果欠佳,尝试Leaky ReLU或Maxout等变种。
(3) 尝试tanh正切函数(以零点为中心,零点处梯度为1)
(4) sigmoid/tanh在RNN(LSTM、注意力机制等)结构中有所应用,作为门控或者概率值.
(5) 在浅层神经网络中,如不超过4层的,可选择使用多种激励函数,没有太大的影响。
- Sigmoid: 定义为:f(x)=1/(1+( e − x e^{-x} e−x) )
(1)用于隐层神经元输出,取值范围为(0,1),它可以将一个实数映射到(0,1)的区间,可以用来做二分类,特征相差比较复杂或是相差不是特别大时效果比较好
(2)优点
[1] 平滑梯度,易于求导,防止输出值“跳跃”。
[2] 输出值介于0和1之间,对每个神经元的输出进行标准化。
[3] 清晰的预测 -对于X大于2或低于-2的X,趋向于将Y值(预测)带到曲线的边缘,非常接近1或0。这可以实现清晰的预测。
(3)缺点
[1] 梯度消失:对于非常高或非常低的X值,预测几乎没有变化,从而导致梯度消失问题。这可能导致网络拒绝进一步学习,或者太慢而无法获得准确的预测。
[2] 输出中心不是零。
[3] 计算代价大
- Sigmoid函数 和 Softmax函数 区别
(1)最后一层全连接层的神经元个数
[1] Sigmoid为 1,对 1 个类别的建模
[2] Softmax为 2,对 2 个类别的建模
- ReLU
(1) 线性整流函数,最近的网络更喜欢使用 ReLu 激活函数来处理隐藏层
(2)优点
[1] 计算效率高-允许网络快速收敛
[2] 非线性-尽管ReLU看起来像线性函数,但它具有导数函数并允许反向传播
[3] 仿生物学原理:通常情况下,大脑中在同一时间大概只有1%-4%的神经元处于活跃状态。使用线性修正以及正则化(regularization)可以对机器神经网络中神经元的活跃度(即输出为正值)进行调试;
[4] 更加有效率的梯度下降以及反向传播:避免了梯度爆炸和梯度消失问题
[5] 简化计算过程:没有了其他复杂激活函数中诸如指数函数的影响;同时活跃度的分散性使得神经网络整体计算成本下降。
(3)缺点
[1] 静止ReLU问题 —当输入接近零或为负时,函数的梯度变为零,网络无法执行反向传播,也无法学习。
- 剪枝: 搜索算法的一个重要分支, 剪枝是提高搜索算法时空效率.
- 可行性剪枝(即:不可行,就返回)
(1) 当前状态和题意不符,并且由于题目可以推出,往后的所有情况和题意都不符,那么就可以进行剪枝,直接把这种情况及后续的所有情况判负,直接返回。
- 排除等效冗余(即:都可以,选一个)
(1) 当几个枝桠具有完全相同的效果的时候,只选择其中一个走就可以了。
- 最优性剪枝(即:有比较,选最优)
(1) 用搜索方法解决最优化问题的时候的一种常用剪枝。
(2) 当搜到一半的时候,比已经搜到的最优解要差了,那么这个方案肯定是不行的,即刻停止搜索,进行回溯。
- 顺序剪枝(即:有顺序,按题意)
(1) 普遍来讲,搜索的顺序是不固定的,对一个问题来讲,算法可以进入搜索树的任意的一个子节点。
(2) 顺序剪枝的一个应用: 从最小的节点开搜很可能马上就出解.
- 记忆化(即:搜重了,直接跳)
(1) 记忆化搜索其实是搜索的另外一个分支。
(2) 记忆化的原理:就是记录搜索的每一个状态,当重复搜索到相同的状态的时候直接返回。
- 网络剪枝
(1) 分为两个分支: unstructured pruning(非结构化剪枝),structured pruning(结构化剪枝)