【Tips of machine learning and deep learning】

在这里插入图片描述

Levers are simple too, but they can move the world1.



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(YX),也就不需要学习了。正因为不知道联合概率分布,所以才需要学习。这样一来,一方面根据期望风险最小学习模型要用到联合分布,另一方面联合分布又是未知的,所以监督学习就成为了一个病态问题(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=1NL(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={PPθ(YX),θ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={fY=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)) fFminN1i=1NL(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) fFminN1i=1NL(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

在这里插入图片描述

“机器学习的下一步"

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

在这里插入图片描述

  • 机器能不能知道【我 不知道】
  • 说出为什么我知道(神马汉斯)
  • 机器的错觉(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

1112

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

以下是感受野的计算公式,来自 卷积神经网络感受野计算指南

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

迁移学习

列举迁移学习的超参数
答:保留多少层、添加多少层、冻结多少层。

伪标签使用方法

来自:[机器学习] 半监督学习—伪标签Pseudo-Label

入门版

  1. 使用标记数据训练有监督模型M

  2. 使用有监督模型M对无标签数据进行预测,得出预测概率P

  3. 通过预测概率P筛选高置信度样本

  4. 使用有标记数据以及伪标签数据训练新模型M’

在这里插入图片描述

进阶版

  1. 使用标记数据训练有监督模型M

  2. 使用有监督模型M对无标签数据进行预测,得出预测概率P

  3. 通过预测概率P筛选高置信度样本

  4. 使用有标记数据以及伪标签数据训练新模型M’

  5. 将M替换为M’,重复以上步骤直至模型效果不出现提升

在这里插入图片描述

创新版

  1. 使用标记数据训练有监督模型M

  2. 使用有监督模型M对无标签数据进行预测,得出预测概率P

  3. 将模型损失函数改为Loss = loss(labeled_data) + alpha*loss(unlabeled_data)

  4. 使用有标记数据以及伪标签数据训练新模型M’

在这里插入图片描述

伪相关性

伪相关性 样本里所有狗的照片里都有雪
Conceptual Counterfactual Explanations

在这里插入图片描述

the First Principle Thinking

第一性原理(the First Principle Thinking)是一个在哲学和科学研究中至关重要的概念,它起源于古希腊哲学家亚里士多德,并在现代科学中得到了广泛应用。以下是关于第一性原理的详细解释:

1、定义:

  • 第一性原理指的是从最基本和不可分割的观点出发,通过逻辑的推理和分析,得到事物的本质和基本规律
  • 广义上,它也可以理解为每个领域或每个系统都存在一个本质上正确,无需证明的最底层的真理,也是演绎法的体现。

2、起源与发展:

  • 第一性原理最初由亚里士多德在哲学著作《形而上学》中提出,强调每个系统中存在一个最基本的命题,它不能被违背或删除。
  • 经历两千多年的发展,第一性原理已经逐渐推广到物理、数学、化学、法学、经济学等诸多学科,并在大多数领域中都有着作用。
  • 在21世纪,由于埃隆·马斯克的推崇,第一性原理被更多人所了解,并在商业和工程领域得到广泛应用。

3、特点与重要性:

  • 第一性原理强调从事物的本质出发,去除偏见和主观因素,做出精确和有效的分析。
  • 它有助于人们深入思考问题,理解事物的本质和规律,从而做出创新性的思考。
  • 在科学研究、工程设计、金融经济分析等领域,第一性原理都发挥着重要的作用,帮助人们解决复杂问题,推动科技进步和社会发展。

4、应用场景:

  • 科学研究:在物理学、化学、生物学等领域,第一性原理被用来理解和解释自然现象
  • 工程设计:在航空航天、汽车制造等领域,第一性原理被用来设计和优化系统
  • 电子和计算机技术:在半导体器件、集成电路等领域,第一性原理被用来设计和分析
  • 环境保护和能源转换:在研究大气污染、水处理、太阳能电池等领域,第一性原理也发挥着重要作用。

5、实际应用方法:

  • 第一性原理思维的内核是抓住主要矛盾解决问题直寻根源,从根源出发重新构建问题的解决办法。

  • 在实际应用中,人们需要首先提出好问题,确定核心问题;然后找到问题最开始的起点,即 “元起点”或“元问题”;最后理解一个事物的底层逻辑,并从这些基本原理出发建立起对系统行为的理解,进行问题的梳理、界定、构思、解决和反馈。

6、实际例子

特斯拉的电池技术创新:埃隆·马斯克运用第一性原理重新审视电池制造过程,通过更高效的材料和简化的生产过程来降低成本、提高性能,实现了电池在能量密度、寿命和成本上的显著突破。

SpaceX的可重复使用火箭技术:马斯克运用第一性原理,提出了可重复使用火箭的概念,并通过技术创新实现了这一目标,大大降低了太空探索的成本。

人工智能算法革新:基于第一性原理的算法设计,能够摆脱对数据的依赖,直接从问题的本质出发,构建出简洁而高效的算法,提高了人工智能算法在解决复杂问题时的灵活性和泛化能力。

3D打印技术革新:3D打印技术直接从数字模型出发,通过逐层堆积的方式实现复杂形状物体的制造,这种创新方式降低了制造成本,提高了制造效率和灵活性。

区块链技术创新:基于第一性原理的区块链技术,通过去中心化的分布式账本机制,实现了无需信任的交易和数据存储,为数据安全、隐私保护等领域提供了新的解决方案。

总之,第一性原理是一个重要的哲学和科学概念,它强调从事物的本质出发,通过逻辑推理和分析来理解和解决问题。在各个领域都有着广泛的应用,并发挥着重要的作用。

7、重要性与局限性

重要性:第一性原理的应用在科学研究和工程设计中具有重要意义,能够准确预测材料和化合物的性质,加快新材料和新药物的研发过程,同时提供理论依据和指导,促进科学的发展和技术的创新。

局限性:从头计算的方法通常需要大量的计算资源和时间,限制了其在大规模系统和实时反应研究中的应用;此外,模型的准确性往往取决于所采用的近似方法和理论模型,可能引入一定的误差。


……未完待续

欧氏距离与余弦距离的关系
最大似然估计和最小二乘估计的区别与联系


  1. Machine learning — Is the emperor wearing clothes? ↩︎

  2. 机器学习周志华–没有免费的午餐定理 ↩︎

  3. 基础回顾 | 10幅图解释机器学习中的基本概念 ↩︎

  4. 干货 | 深度学习模型超参数搜索实用指南 ↩︎

  5. 【思考】正态分布为什么常见? ↩︎

  6. 入门 | 诗人般的机器学习,ML工作原理大揭秘 ↩︎

  7. 怎么理解 P 问题和 NP 问题? ↩︎

  8. ResNet, AlexNet, VGG, Inception: 理解各种各样的CNN架构 ↩︎

  9. RGB-D(深度图像) & 图像深度 ↩︎

  10. “机器学习的下一步" - 李宏毅 ↩︎

  11. 判别式模型和产生式模型 (discriminative model and generative model) ↩︎

  12. 机器学习中的判别模式和生成模式 ↩︎

Here are some tips that could help you in your journey to learn Java: 1. Get Familiar with the Basics: Start with the basics of Java syntax, data types, variables, operators, control structures, loops, and functions. 2. Practice, Practice, Practice: The more you practice, the better you get. Write code to solve simple problems, and gradually increase the complexity of the problems you tackle. 3. Use Online Resources: There are many online resources available for learning Java, including online tutorials, video courses, and forums. Take advantage of these resources to deepen your understanding of the language. 4. Join a Study Group: Joining a study group can be a great way to stay motivated and learn from others. You can also learn from others’ mistakes and share your own experiences. 5. Read Java Documentation: The official Java documentation is a wealth of information, and it’s a great resource for learning the ins and outs of the language. 6. Work on Projects: Choose a project that interests you, and work on it until it’s complete. This will help you put into practice everything you’ve learned and also give you a sense of accomplishment. 7. Debugging: Learn to debug your code effectively. This will help you find and fix bugs quickly and easily, and improve your overall programming skills. 8. Stay Up-to-Date: Java is constantly evolving, and new features and libraries are added regularly. Stay up-to-date with the latest developments in the Java world to improve your skills and keep your knowledge fresh. Remember, learning Java takes time and effort, but with persistence and determination, you can become a proficient Java programmer.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值