Tips of machine learning and deep learning
Levers are simple too, but they can move the world1.
文章目录
- Occam’s razor
- No Free Lunch Theorem
- Ugly duckling theorem
- Feature combinations
- 符号主义
- 深度学习模型超参数搜索
- 正态分布为什么常见?
- Bias and Variance
- linear and non-linear model
- 损失函数、期望风险、经验风险、结构风险
- 统计学习三要素
- P、NP
- 矩阵求导、几种重要的矩阵及常用的矩阵求导公式
- 单变量特征选择
- 为什么Dropout有效?
- RGB-D(深度图像) & 图像深度
- L0、L1、L2 regularization
- 图像分类任务中的 tricks 总结
- “机器学习的下一步"
- Discriminative model vs Generative model
- 自监督
- AI进入落地期
- 优化器
- 感受野
- 迁移学习
- 可视化
Occam’s razor
奥卡姆剃刀定律(Occam’s Razor, Ockham’s Razor)又称“奥康的剃刀”,它是由14世纪英格兰的逻辑学家、圣方济各会修士奥卡姆的威廉(William of Occam,约1285年至1349年)提出。这个原理称为“如无必要,勿增实体”,即“简单有效原理”。正如他在《箴言书注》2卷15题说“切勿浪费较多东西去做,用较少的东西,同样可以做好的事情。”
No Free Lunch Theorem
没有免费的午餐定理(No Free Lunch Theorem),这个定理说明,若学习算法 L a La La 在某些问题上比学习算法 L b Lb Lb 要好,
那么必然存在另一些问题, 在这些问题中 L b Lb Lb 比 L a La La 表现更好 2。
Ugly duckling theorem
这个看起来完全违背常识的定理实际上说的是:世界上不存在分类的客观标准,一切分类的标准都是主观的。渡边慧举了一个鲸鱼的例子说明这个定理: 按照生物学的分类方法,鲸鱼属于哺乳类的偶蹄目,和牛是一类;但是在产业界,捕鲸与捕鱼都要行船出海,鲸和鱼同属于水产业,而不属于包括牛的畜牧业。分类 结果取决于选择什么特征作为分类标准,而特征的选择又依存于人的目的。
The theorem is named after Hans Christian Andersen’s story “The Ugly Duckling”, because it shows that a duckling is just as similar to a swan as two duckling are to each other. It was proposed by Satosi Watanabe in 1969 [^2].
这个定理是以汉斯·克里斯蒂安·安徒生的故事《丑小鸭》命名的,因为它表明,丑小鸭与天鹅的相似程度不亚于两只小鸭之间的相似程度。它是由渡边Satosi在1969年提出的。
Feature combinations
3
(1)为什么集体相关的特征单独来看时无关紧要,这也是(2)线性方法可能会失败的原因。
符号主义

何为神经符号主义(neural symbolic)? 我们知道人工智能的经历过古典时期的以符号为依托的专家系统阶段(用符号表达的各种规则,比如 if apple is red, then eat), 中期的统计机器学习, 和近期连接主义深度学习, 深度学习和基于符号的专业系统分别是最新和最古的两个流派, 然而这最老和最新的东西却不是对立的关系, 它们的统一就是神经符号主义-结合了符号表达的专家知识的神经网络系统。
为什么要结合? 传统的专家系统就不用说了, 那些老家伙其实无法处理真实世界的任何问题, 它能模拟的知识和符号仅仅是非常局限于人类语言和数学整理出来的一小部分知识,遇到一个真实世界的问题, 比如任意一个视觉识别问题, 如人脸, 都存在大量无法言说的规则, 用if else无论如何都写不出一个人脸识别程序。 因此从数据中直接学习特征或规则很快替代了专家系统。 其中的集大成者是深度学习。而深度学习虽然给AI打了一剂强心药, 使得人脸识别这样的算法几乎进入了每个人的生活, 但是在自动驾驶等领域, 这个方法论是雷声大雨点小, 尽管一家家创业公司如雨后春笋, 产业化的步伐却步履蹒跚, 其背后的原因在于神经网络虽然善于单点突破某个问题(只要数据喂饱),但是它不理解这个世界,而整个自动驾驶是由无数的子问题构成的, 比如如何在大雾里辨识方向, 如何区分公交车上的巨幅广告上的人和真人,这些子问题的数量是不可枚举的, 单一使用深度学习,很快的就会陷入到不停的补漏也补不完的境地。而相比下, 老司机可以解决任意新问题,因为老司机解决问题用到的是从它几十年的生活常识, 不需要训练。 人类的常识(知识)是一个不可分割的整体,描述了人类经历的整个世界, 这些知识可以被迅速的泛化到不同的新问题里, 是一个用有限应对无限的过程。
谈谈神经符号主义
深度学习模型超参数搜索
1)Hyper-parameters
4
2)Adjustment period
3)Four methods
- Babysitting,又名试错(Trial & Error)
- 网格搜索(Grid Search)
- 随机搜索(Random Search)
- 贝叶斯优化(Bayesian Optimization)
4) Merit and Demerit
正态分布为什么常见?
统计学里面,正态分布(normal distribution)最常见。男女身高、寿命、血压、考试成绩、测量误差等等,都属于正态分布5。
正态分布为什么常见?真正原因是中心极限定理(central limit theorem)。
根据中心极限定理,如果一个事物受到多种因素的影响,不管每个因素本身是什么分布,它们加总后,结果的平均值就是正态分布。
统计学家发现,如果各种因素对结果的影响不是相加,而是相乘(相互有影响),那么最终结果不是正态分布,而是对数正态分布(log normal distribution),即 x 的对数值 log(x) 满足正态分布。
Bias and Variance
linear and non-linear model
形象化一点,非线性可以叫成「瑜伽网络」或「多层数学运算」6(yoga networks” or “many-layers-of-mathematical-operations”)
损失函数、期望风险、经验风险、结构风险
损失函数( Loss Function) 度量模型一次预测的好坏
L ( Y , f ( X ) ) L(Y,f(X)) L(Y,f(X))
风险函数(Risk Function) 度量平均意义下模型预测的好坏——也叫期望损失(Expected Loss) 或者期望风险,表示损失函数的期望
R e x p ( f ) = E P [ L ( Y , f ( X ) ) ] = ∫ x × y L ( y , f ( x ) ) P ( x , y ) d x d y R_{exp}(f) = E_P[L(Y,f(X))] = \int_{x×y}L(y,f(x))P(x,y)dxdy Rexp(f)=EP[L(Y,f(X))]=∫x×yL(y,f(x))P(x,y)dxdy
学习的目标就是选择期望风险最小的模型,由于联合概率分布 P ( X , Y ) P(X,Y) P(X,Y) 未知, R e x p ( f ) R_{exp}(f) Rexp(f) 不能直接计算,实际上,如果知道联合分布 P ( X , Y ) P(X,Y) P(X,Y),可以从联合分布直接求出条件分布概率 P ( Y ∣ X ) P(Y|X) P(Y∣X),也就不需要学习了。正因为不知道联合概率分布,所以才需要学习。这样一来,一方面根据期望风险最小学习模型要用到联合分布,另一方面联合分布又是未知的,所以监督学习就成为了一个病态问题(ill-formed problem)
模型 f ( X ) f(X) f(X) 关于训练集的平均损失称为经验风险(empirical risk) 或者 经验损失(empirical loss)
R e m p ( f ) = 1 N ∑ i = 1 N L ( y i , f ( x i ) ) R_{emp}(f) = \frac{1}{N}\sum_{i=1}^{N}L(y_i,f(x_i)) Remp(f)=N1i=1∑NL(yi,f(xi))
根据大数定律,当 N N N 趋于无穷时,经验风险 R e m p ( f ) R_{emp}(f) Remp(f) 趋于期望风险 R e x p ( f ) R_{exp}(f) Rexp(f),所以一个很自然的想法是用经验风险评估期望风险,但由于现实中训练样本数目有限,甚至很小,所以用经验风险评估期望风险常常不理想,要对经验风险进行一定的矫正。这救关系到监督学习的两个基本策略
- 经验风险最小化
- 结构风险最小化
统计学习三要素
当然们提及机器学习时,往往是指统计机器学习
方法 = 模型+策略+算法
-
模型: 所要学习的条件概率分布(概率模型)或决策函数(非概率模型)
- 概率模型 F = { P ∣ P θ ( Y ∣ X ) , θ ∈ R n } F = \left \{ P|P_\theta (Y|X), \theta \in \mathbb{R}^n\right \} F={P∣Pθ(Y∣X),θ∈Rn}, F F F 是假设空间
- 非概率模型 F = { f ∣ Y = f θ ( X ) , θ ∈ R n } F = \left \{ f|Y=f_\theta (X), \theta \in \mathbb{R}^n\right \} F={f∣Y=fθ(X),θ∈Rn}
-
策略: 按照什么样的准则学习或者选择最优的模型,统计学的目标是从假设空间中选择最优的模型!经验风险最小化策略认为经验风险最小的模型就是最优的模型,结构风险最小化策略认为结构风险最小的模型就是最优的模型,这样,监督学习问题就变成了经验风险或者结构风险函数的最优化问题,这时经验或结构风险函数是最优化的目标函数!
- 经验风险最小化策略
min f ∈ F 1 N ∑ i = 1 N L ( y i , f ( x i ) ) \min_{f\in F}\frac{1}{N}\sum_{i=1}^{N}L(y_i,f(x_i)) f∈FminN1i=1∑NL(yi,f(xi)) - 结构风险最小化策略
min f ∈ F 1 N ∑ i = 1 N L ( y i , f ( x i ) ) + λ J ( f ) \min_{f\in F}\frac{1}{N}\sum_{i=1}^{N}L(y_i,f(x_i)) + \lambda J(f) f∈FminN1i=1∑NL(yi,f(xi))+λJ(f)
- 经验风险最小化策略
-
算法:学习模型的具体计算方法
P、NP
- P:算起来很快的问题7
- NP:算起来不一定快,但对于任何答案我们都可以快速的验证这个答案对不对
- NP-hard:比所有的NP问题都难的问题
- NP-complete:满足两点:
- 是NP hard的问题
- 是NP问题
矩阵求导、几种重要的矩阵及常用的矩阵求导公式
矩阵求导、几种重要的矩阵及常用的矩阵求导公式
单变量特征选择
单变量的特征选择是通过基于单变量的统计测试来选择最好的特征。(比如两个属性,纹理和颜色,我单独计算纹理这个特征和 y 的相关性,然后决定是否对纹理这个特征进行选择)
为什么Dropout有效?
Dropout背后理念和集成模型很相似。在Drpout层,不同的神经元组合被关闭,这代表了一种不同的结构,所有这些不同的结构使用一个的子数据集并行地带权重训练,而权重总和为1。
如果Dropout层有 n 个神经元,那么会形成2^n个不同的子结构。在预测时,相当于集成这些模型并取均值。这种结构化的模型正则化技术有利于避免过拟合。
Dropout有效的另外一个视点是:由于神经元是随机选择的,所以可以减少神经元之间的相互依赖,从而确保提取出相互独立的重要特征8。
RGB-D(深度图像) & 图像深度
图像深度:是指存储每个像素所用的位数,也用于量度图像的色彩分辨率。
比如灰度图 8 位,像素的深度为8位,每个像素可以是 2 8 = 256 2^8 = 256 28=256 种灰度中的一种
RGB 为 4+4+2 = 10 位,共 2 10 = 1024 2^{10}=1024 210=1024 种颜色,就是说像素的深度为10位,每个像素可以是1024种颜色中的一种
下面可以看到两个不同的深度图,以及从中衍生的原始模型。第一个深度图显示与照相机的距离成比例的亮度。较近的表面较暗; 其他表面较轻。第二深度图示出了与标称焦平面的距离相关的亮度。靠近焦平面的表面较暗; 远离焦平面的表面更轻((更接近并且远离视点)9。

L0、L1、L2 regularization
机器学习中常常提到的正则化到底是什么意思?
- 0范数,向量中非零元素的个数。
- 1范数,为绝对值之和。
- 2范数,就是通常意义上的模。
如何去防止过拟合,我们首先想到的就是控制 N N N 的数量吧,即让 N N N 最小化吧,而让 N N N 最小化,其实就是让 W W W 向量中项的个数最小化吧?
其中, W = ( w 0 , w 1 , w 2 , w 3 , . . . w N ) W=(w_{0} ,w_{1} ,w_{2} ,w_{3} ,...w_{N} ) W=(w0,w1,w2,w3,...wN)

-
1范数和0范数可以实现稀疏,1因具有比L0更好的优化求解特性而被广泛应用。
-
L2 范数是指向量各元素的平方和然后求平方根。我们让 L2 范数的正则项 ∣ ∣ W ∣ ∣ 2 ||W||^2 ∣∣W∣∣2 最小,可以使得 W 的每个元素都很小,都接近于0,但与L1范数不同,它不会让它等于0,而是接近于0,这里是有很大的区别的哦;所以大家比起1范数,更钟爱2范数。
-
L1 相当于先验拉普拉斯分布,获得稀疏解
L2 相当于先验高斯分布,获得非0稠密解 -
对于线性回归模型,使用 L1 正则化的模型建叫做 Lasso回归,使用 L2 正则化的模型叫做 Ridg 回归(岭回归)
-
如果事先假定只有非常少数的特征是重要的,可以用 L1
-
L2 防止过拟合的解释 (来自机器学习中正则化项L1和L2的直观理解(★★★★★))
因为一般认为参数值小的模型比较简单,能适应不同的数据集,也在一定程度上避免了过拟合现象。可以设想一下对于一个线性回归方程,若参数很大,那么只要数据偏移一点点,就会对结果造成很大的影响;但如果参数足够小,数据偏移得多一点也不会对结果造成什么影响,专业一点的说法是『抗扰动能力强』。
图像分类任务中的 tricks 总结
图像分类中的各种技巧对于目标检测、图像分割等任务也有很好的作用,因此值得好好总结。本文在精读论文的基础上,总结了图像分类任务的各种tricks如下10:
-
Warmup
Warm up是在ResNet论文中提到的一种学习率预热的方法。学习率预热就是在刚开始训练的时候先使用一个较小的学习率,训练一些epoches或iterations,等模型稳定时再修改为预先设置的学习率进行训练。后来的改进版本 gradual warm up -
Linear scaling learning rate
batch size为256时选择的学习率是0.1,当我们把batch size变为一个较大的数b时,学习率应该变为 0.1 × b/256(使用相同的epoch时,大batch size训练的模型与小batch size训练的模型相比,验证准确率会减小。) -
Label-smoothing
参考 inception-v3 -
Random image cropping and patching
RICAP在caifar10上达到了2.19%的错误率。

-
Knowledge Distillation
参考【Distilling】《Distilling the Knowledge in a Neural Network》 -
Cutout
Cutout是一种新的正则化方法。原理是在训练时随机把图片的一部分减掉,这样能提高模型的鲁棒性

-
Random erasing
Random erasing[6]其实和cutout非常类似,也是一种模拟物体遮挡情况的数据增强方法。区别在于,cutout是把图片中随机抽中的矩形区域的像素值置为0,相当于裁剪掉,random erasing是用随机数或者数据集中像素的平均值替换原来的像素值。而且,cutout每次裁剪掉的区域大小是固定的,Random erasing替换掉的区域大小是随机的。 -
Cosine learning rate decay


-
Mixup training
每次取出2张图片,然后将它们线性组合,得到新的图片,以此来作为新的训练样本(标签不在是 one-hot)

“机器学习的下一步"
“机器学习的下一步" - 李宏毅11

- 机器能不能知道【我 不知道】
- 说出为什么我知道(神马汉斯)
- 机器的错觉(adversarial attack)
- life-long learning(终身学习,多任务都 work,突破免费的午餐)
- reinforcement learning 虽然能达到人类的水平,可是要花很久,能否提速
- network compression
- Few-shot / zero-shot learning
- meta-learning / learn to learn(NASA,auto-ML)

Discriminative model vs Generative model
12’13
| Name | 判别式模型(discriminative model) | 生成式模型(generative model) |
|---|---|---|
| 特点 | 寻找不同类别之间的最优分类面,反映的是异类数据之间的差异 | 对后验概率建模,从统计的角度表示数据的分布情况,能够反映同类数据本身的相似度 |
| 区别(假定输入x, 类别标签y) | 估计的是条件概率分布(conditional distribution) :P(y|x) | 估计的是联合概率分布(joint probability distribution: P(x, y), |
| 联系 | 由产生式模型可以得到判别式模型(贝叶斯公式),但由判别式模型得不到产生式模型。 | |
| 优点 | 1)分类边界更灵活,比使用纯概率方法或产生式模型更高级; 2)能清晰的分辨出多类或某一类与其他类之间的差异特征; 3)在聚类、viewpoint changes, partial occlusion and scale variations中的效果较好; 4)适用于较多类别的识别; 5)判别模型的性能比产生式模型要简单,比较容易学习。 | 1)实际上带的信息要比判别模型丰富; 2)研究单类问题比判别模型灵活性强; 3)模型可以通过增量学习得到; 4)能用于数据不完整(missing data)情况。 |
| 缺点 | 1)不能反映训练数据本身的特性。能力有限,可以告诉你的是1还是2,但没有办法把整个场景描述出来; 2)Lack elegance of generative: Priors, 结构, 不确定性; 3)Alternative notions of penalty functions, regularization, 核函数; 4)黑盒操作: 变量间的关系不清楚,不可视。 | 1) Tend to produce a significant number of false positives. This is particularly true for object classes which share a high visual similarity such as horses and cows; 2) 学习和计算过程比较复杂。 |
| 性能 | 较好(性能比生成模型稍好些,因为利用了训练数据的类别标识信息,缺点是不能反映训练数据本身的特性) | 较差 |
| 主要应用 | Image and document classification Biosequence analysis Time series prediction | NLP(natural language processing) Medical Diagnosis |
| 常见模型 | 1)Linear regression 2)Logisticregression 3)SVM 4)Traditional Neural Networks 5)Nearest neighbor 6)CART 7)Boosting 8)CRF | 1)Gaussians Discriminant Analysis 2)Naive Bayes 3)Bayesian networks 4)Mixtures of Gaussians 5)Mixtures of experts 6)HMMs 7)Sigmoidal belief networks 8)Markov random fields 9)LDA |
为什么判别模型比生成模型要简单
两类方法的分类条件的密度举例,有一个单一的输入变量x(左图),连同相应的后验概率(右图)。注意到左侧的分类条件密度p(x|C1)的模式,在左图中以蓝色线条表示,对后验概率没有影响。右图中垂直的绿线展示了x中的决策边界,它给出了最小的误判率。
机器学习中的判别式模型和生成式模型

自监督
自监督学习在计算机视觉中的应用
我们把用于预训练的任务称为“pretext task”,把用于fine-tune的任务称为“downstream task”
在计算机视觉中使用自我监督学习最需要回答的问题是:“你应该使用什么pretext task?”(自监督作为预训练,然后结合监督训练下游任务)
Colorization

Placing image patches in the right place

Placing frames in the right order

Classify corrupted images



AI进入落地期
李开复:AI进入落地期,单凭科学家颠覆行业的机会几乎不存在,这个领域除外



优化器
如果你坚持在不理解技术原理的情况下去使用它,那么你很可能失败。
在我的经验中,Adam 对超参数的容忍度更高,不太好的学习率也能获得一般的效果。对于卷积网络来说,一般经过仔细调整的 SGD 几乎总会略优于 Adam,但最佳学习率的可能区域要窄得多
观点 | 如何优雅地从四个方面加深对深度学习的理解

这个点云的大小(即相关分布的方差)与 learning_rate / batch_size 因子成正比。Pratik Chaudhari 和 Stefano Soatto 在论文《Stochastic gradient descent performs variational inference, converges to limit cycles for deep networks》中证明了这一点。这个公式非常直观:较低的 batch size 意味着梯度非常混乱(因为要在数据集一个非常小的子集上计算),高学习率意味着步骤混乱。

直观上看,全局最小值似乎不是一个点而是一个连接管(connected manifold)。这意味着如果找到了全局最小值,你就能够穿过一条平坦的路径,在这条道路上,所有的点都是最小值。海德堡大学的一个研究团队在论文《Essentially No Barriers in Neural Network Energy Landscape》中证明了这一点。他们提出了一个更常规的说法,即任何两个全局最小值都可以通过一条平坦的路径连接。

感受野
实质上网络的感受野是呈根号增长的,见 Understanding the effective receptive field in deep convolutional neural networks
以下是感受野的计算公式,来自 卷积神经网络感受野计算指南
迁移学习
列举迁移学习的超参数
答:保留多少层、添加多少层、冻结多少层。
可视化
说明在图像分类任务中可视化CNN特征的两种方法。
答:
- 输入遮挡:遮挡输入图像的一部分,看看哪部分对分类的影响最大。例如,针对某个训练好的图像分类模型,将下列图像作为输入。如果我们看到第三幅图像被分类为狗狗的概率为98%,而第二幅图像的准确率仅为65%,则说明眼睛对于对分类的影响更大。
- 激活最大化:创建一个人造的输入图像,以最大化目标响应(梯度上升)。
CNN可视化技术总结(三)–类可视化
一、特征图可视化。特征图可视化有两类方法,一类是直接将某一层的feature map映射到0-255的范围,变成图像 。另一类是使用一个反卷积网络(反卷积、反池化)将feature map变成图像,从而达到可视化feature map的目的。
二、卷积核可视化。
三、类激活可视化。这个主要用于确定图像哪些区域对识别某个类起主要作用。如常见的热力图(Heat Map),在识别猫时,热力图可直观看出图像中每个区域对识别猫的作用大小。这个目前主要用的方法有CAM系列(CAM、Grad-CAM、Grad-CAM++)。
四、一些技术工具。通过一些研究人员开源出来的工具可视化CNN模型某一层。
来自 CNN可视化技术总结(一)-特征图可视化
可视化
https://github.com/julrog/nn_vis
https://github.com/Zetane/viewer

……未完待续
欧氏距离与余弦距离的关系
最大似然估计和最小二乘估计的区别与联系
Machine learning — Is the emperor wearing clothes? ↩︎
机器学习周志华–没有免费的午餐定理 ↩︎
基础回顾 | 10幅图解释机器学习中的基本概念 ↩︎
干货 | 深度学习模型超参数搜索实用指南 ↩︎
【思考】正态分布为什么常见? ↩︎
入门 | 诗人般的机器学习,ML工作原理大揭秘 ↩︎
怎么理解 P 问题和 NP 问题? ↩︎
ResNet, AlexNet, VGG, Inception: 理解各种各样的CNN架构 ↩︎
RGB-D(深度图像) & 图像深度 ↩︎
图像分类任务中的tricks总结 ↩︎
“机器学习的下一步" - 李宏毅 ↩︎
判别式模型和产生式模型 (discriminative model and generative model) ↩︎
机器学习中的判别模式和生成模式 ↩︎
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!



