周志华深度森林deepforest原理解析,详细解释每一个细节,

深度森林目标

目标:解决深度学习是否可以用不可微模块实现的问题

笔记:

1、什么是可微分模块?

在深度学习中,尤其是基于神经网络的模型中,“可微分”是一个非常重要的概念。它指的是模型的输出相对于其参数的导数是存在的且可以计算的。这个特性使得我们能够利用梯度下降等优化算法来训练模型,即通过不断调整参数,使得模型的输出与真实值之间的误差最小化。

神经网络之所以成功,很大程度上归功于其可微分的特性。 神经网络中的每个神经元都执行一个简单的数学运算,这些运算都是可微分的。通过将这些可微分的运算层层叠加,就构成了一个复杂的神经网络。

2、什么是非可微分模块?

与可微分模块相反,非可微分模块是指其输出相对于输入或参数的导数不存在或难以计算的模块。这些模块通常涉及到一些离散的操作、搜索过程或符号运算,这些操作在数学上是不可微的。

常见的非可微分操作包括:

  • 离散化操作: 例如,将连续值转换为离散值(如量化、硬编码等)。
  • 搜索和优化问题: 许多问题需要通过搜索或优化算法来求解,这些算法通常涉及到非连续的跳跃。
  • 符号运算: 符号运算涉及到对符号进行操作,而不是对数值进行操作,这些操作通常是不可微的。

离散化操作举例:

  • 将人的年龄离散化为"儿童"、"青少年"、"成年"、"老年"等类别。
  • 将颜色特征"红色"、"绿色"、"蓝色"分别编码为[1, 0, 0]、[0, 1, 0]、[0, 0, 1]。
  • 将连续的空间数据(如高程、温度)转换为离散的栅格数据,比如将地形高程数据转换为等高线图。
  • 在时间序列分析中,将连续的时间序列数据分割成固定长度的时间窗口

搜索和优化问题举例:

  • 旅行商问题: 在搜索最优路径的过程中,算法可能会突然从一条路径跳跃到另一条完全不同的路径,以寻找更好的解。
  • 蛋白质折叠问题: 蛋白质的折叠是一个非常复杂的过程,涉及到大量的原子之间的相互作用。搜索算法需要在巨大的搜索空间中寻找能量最低的构象,这可能涉及到大量的非连续跳跃。
  • 遗传算法: 遗传算法通过模拟生物进化过程来求解优化问题。在遗传算法中,种群中的个体通过交叉和变异产生新的个体,这可以看作是一种非连续的跳跃。

符号运算:

符号运算是指对数学表达式中的符号进行操作,而不是对具体的数值进行计算。这些符号可以代表变量、常数、函数等。在符号运算中,我们关注的是表达式的结构和变换,而不是求得一个具体的数值结果。符号代表的是一个概念,而不是一个具体的数值。对于符号的操作,我们很难定义一个连续的、可导的函数。

gcForest

深度神经网络中的表征学习主要通过逐层处理原始数据中的特征来实现。

笔记:

Representation learning (表征学习):

  • 什么是表征? 表征可以理解为对数据的另一种描述方式,或者说是对数据更高层次的抽象。比如,对于一张图片,原始数据是像素值,而表征可以是“这是一只猫”这样的抽象概念。
  • 为什么需要表征学习? 在传统的机器学习算法中,我们通常需要手动提取特征。而表征学习的优势在于,神经网络可以自动从数据中学习到有效的特征,从而提高模型的性能。

Deep neural networks (深度神经网络):

  • 深度神经网络是一种包含多个隐藏层的神经网络。这些隐藏层可以学习到越来越抽象的特征。

Layer-by-layer processing (逐层处理):

  • 深度神经网络中的信息是逐层传递的。每一层的神经元都会对上一层的输出进行处理,提取出更高级的特征。

Raw features (原始特征):

  • 原始特征就是输入数据中最基本、最原始的特征。比如,对于一张图片,原始特征就是每个像素点的数值。

深度神经网络通过逐层堆叠多个隐藏层,来对原始数据进行逐层处理。每一层都会学习到比上一层更抽象、更复杂的特征。最终,通过这些层层递进的特征提取,神经网络可以学习到对任务有用的高层语义特征,从而实现对数据的准确分类或预测。

举个例子:

假设我们要训练一个神经网络来识别猫的图片。

  • 输入层: 输入的是一张图片的像素值,也就是原始特征。
  • 第一层隐藏层: 这层神经元可能学习到一些简单的边缘特征,比如垂直线、水平线等。
  • 第二层隐藏层: 基于第一层的特征,这层神经元可能学习到更复杂的形状,比如圆形、三角形等。
  • 第三层隐藏层: 这一层的神经元可能学习到猫的耳朵、眼睛、鼻子等局部特征。
  • 输出层: 最终,输出层会根据这些高层特征判断这张图片是否为猫。

接下来讲gcForest的级联森林结构,先补充几个概念。

信息增益

信息增益(Information Gain)用于衡量一个特征对于分类任务的重要性。简单来说,它告诉我们使用某个特征来划分数据集能够带来多少信息增益,也就是能够让数据集变得多“纯”。

举个例子:

你有一堆水果,你需要根据颜色、形状等特征来将它们分类。信息增益就像一个工具,可以帮你找出哪个特征最能有效地将水果分到正确的类别中

信息增益越大,说明使用这个特征进行划分后,数据集的纯度提高得越多,这个特征也就越重要

在决策树算法中,我们通常选择信息增益最大的特征作为节点的划分属性。这样可以保证每次划分都能最大程度地减少数据集的不确定性,从而构建出更准确的决策树。

决策树

决策树通过一系列规则对数据进行分类或回归。其结构就像一棵树,从根节点开始,通过分支节点不断向下延伸,最终到达叶子节点。每个节点代表一个属性测试,每个分支代表一个测试结果,而叶子节点则对应于最终的分类结果或数值。

决策树的工作原理:

  • 特征选择: 从所有特征中选择一个最能区分样本的特征作为节点的划分属性。
  • 决策树生成: 根据选定的特征,将数据集分成若干子集,每个子集对应一个分支。
  • 递归划分: 对每个子集重复上述过程,直到满足停止条件(如节点中的样本都属于同一类,或达到预设的树深)。

举个例子:

假设我们想要根据天气情况来决定是否打球。

我们收集了一些历史数据,包括天气(晴天、阴天、雨天)、温度(高、低)、湿度(高、低)以及是否打球(是、否)。

构建决策树

  • 选择根节点: 我们选择“天气”作为根节点,因为它似乎对是否打球的影响最大。
  • 划分数据集: 根据“天气”的不同取值,将数据集分成三个子集:晴天、阴天和雨天。
  • 计算信息增益或其他指标: 对于每个子集,我们计算其信息增益(或其他指标),选择信息增益最大的特征作为下一个节点的划分属性。
  • 重复步骤2和3: 对于每个子集,继续选择最优特征进行划分,直到满足停止条件(例如,所有样本都属于同一类,或者达到预设的树深)。

最终得到的决策树可能如下:

解释决策树:

  • 根节点(天气): 如果天气是晴天,则继续判断湿度。
  • 分支节点(湿度): 如果湿度高,则不打球;如果湿度低,则打球。
  • 叶子节点(打球): 叶子节点表示最终的决策结果。

随机森林:由决策树构成的强大集成学习算法

什么是随机森林:

随机森林(Random Forest)是一种集成学习方法,它通过构建多棵决策树,并对这些树的预测结果进行投票表决(分类)或取平均值(回归)来实现最终的预测。

随机指的是在构建每棵决策树的过程中,会引入随机性,以减少过拟合的风险并提高模型的泛化能力。

核心思想就是多棵决策树投票表决

随机森林的工作原理:

  • Bootstrap抽样: 对于每棵决策树,从原始数据集中有放回地随机抽取一部分样本(Bootstrap),作为这棵树的训练集。这样,每棵树的训练集都不同,且有些样本可能在多棵树中重复出现,而有些则可能从未被选中。
  • 特征随机选择: 在构建每棵决策树的过程中,在每个节点上,不是考虑所有的特征,而是随机选择一部分特征,然后从这些特征中选择最佳分裂特征。
  • 决策树生长: 每棵决策
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值