经典机器学习算法

开通VIP,畅享免费电子书等14项超值服

首页

好书

留言交流

下载APP

联系客服

2023.02.27湖南

LightGBM是轻量级(Light)的梯度提升机器(GBM),是GBDT模型的另一个进化版本。它延续了XGBoost的那一套集成学习的方式,相对于xgboost,具有训练速度快和内存占用率低的特点。

1.1XGBoost不足之处

XGBoost的核心思想:xgboost是属于boosting家族,是GBDT算法的一个工程实现,在模型的训练过程中是聚焦残差,在目标函数中使用了二阶泰勒展开并加入了正则,在决策树的生成过程中采用了精确贪心的思路,寻找最佳分裂点的时候,使用了预排序算法,对所有特征都按照特征的数值进行预排序,然后遍历所有特征上的所有分裂点位,计算按照这些候选分裂点分裂后的全部样本的目标函数增益,找到最大的那个增益对应的特征和候选分裂点位,从而进行分裂。这样一层一层的完成建树过程,xgboost训练的时候,是通过加法的方式进行训练,也就是每一次通过聚焦残差训练一棵树出来,最后的预测结果是所有树的加和表示。

(1)分裂点的数量

(2)样本的数量

(3)特征数量

LightGBM正是从这三个角度出发,对XGBoost算法进行优化。分别对应了lgb的三大算法思想。

(1)为了解决分裂点数量过多的问题,LightGBM采用直方图算法。

(2)为了解决样本数量过多的问题,Lightgbm采用单边梯度抽样算法。

(3)为了解决特征数量过多的问题,Lightgbm采用互斥特征捆绑算法

1.2直方图算法

直方图算法说白了就是对特征进行分桶。先把连续的浮点特征值离散化成k个整数,同时构造一个宽度为k的直方图,并根据特征所在的bin对其进行梯度累加和个数统计,在遍历数据的时候,根据离散化后的值作为索引在直方图中累积统计量,当遍历一次数据后,直方图累积了需要的统计量,然后根据直方图的离散值,遍历寻找最优的分割点。然后根据直方图的离散值,遍历寻找最优的分割点。

bins的数量是远小于样本不同取值的数量的,所以分桶之后要遍历的分裂点的个数会少了很多,减少了计算量。用图形表示如下:

这个过程其实就是直方图统计,将大规模的数据放在了直方图中。也就是分箱的过程。

特征离散化具有很多优点,如存储方便、运算更快、鲁棒性强、模型更加稳定等。对于直方图算法来说有以下两个优点:

(1)占用更少的内存。

XGboost需要用32位的浮点数去存储特征值,并用32位的整型去存储索引,而Lightgbm的直方图算法一般用8位的整型保存特征离散化后的值,内存消耗可以降低为原来的1/8。

(2)计算代价更小

1.3直方图作差加速

LightGBM另一个优化是Histogram(直方图)做差加速。一个叶子的直方图可以由它的父亲节点的直方图与它兄弟的直方图做差得到,在速度上可以提升一倍。在实际构建树的过程中,LightGBM还可以先计算直方图小的叶子节点,然后利用直方图做差来获得直方图大的叶子节点,这样就可以用非常微小的代价得到它兄弟叶子的直方图。

举例如下:

XGBoost在进行预排序时只考虑非零值进行加速,而LightGBM也采用类似策略:只用非零特征构建直方图。

直方图算法优点:起到正则化的效果,有效地防止模型的过拟合(bin数量决定了正则化的程度,bin越少惩罚越严重,欠拟合风险越高)。直方图算法可以起到的作用就是可以减小分割点的数量,加快计算。

与XGboost的分桶算法对比:

xgboost的分桶是基于hi的分布去找候选分割点,这样带来的一个问题就是每一层划分完了之后,下一次依然需要构建这样的直方图,毕竟样本被划分到了不同的节点中,二阶导分布也就变了。所以xgboost在每一层都得动态构建直方图,因为它这个直方图算法不是针对某个特定的feature的,而是所有feature共享一个直方图(每个样本权重的二阶导)。而lightgbm对每个特征都有一个直方图,这样构建一次就OK,并且分裂的时候还能通过直方图作差进行加速。故xgboost的直方图算法是不如lightgbm的直方图算法快的。

1.4单边梯度抽样算法(GOSS)

单边梯度抽样算法(Gradient-basedOne-SideSampling)是从减少样本的角度出发,排除大部分权重小的样本,仅用剩下的样本计算信息增益,它是一种在减少数据和保证精度上平衡的算法。

AdaBoost中,样本权重是数据重要性的指标。然而在GBDT中没有原始样本权重,不能应用权重采样。幸运的是,我们观察到GBDT中每个数据都有不同的梯度值,对采样十分有用。即梯度小的样本,训练误差也比较小,说明数据已经被模型学习得很好了,直接想法就是丢掉这部分梯度小的数据。然而这样做会改变数据的分布,将会影响训练模型的精确度,为了避免此问题,提出了GOSS算法。

GOSS算法的亮点在于:根据样本的权重信息对样本进行抽样,减少了大量梯度小的样本,但是还能不会过多的改变数据集的分布

通过采样的方式,选出了两个梯度大的6号和7号,然后又从剩下的样本里面随机选了2个梯度小的4号和2号,如果直接把另外四个给删掉的话,这时候会改变数据的分布,但应该怎么做呢?也就是乘以一个常数(1-a)/b,如下图所示:

梯度小的样本乘上相应的权重之后,我们在基于采样样本的估计直方图中可以发现Ni的总个数依然是8个,虽然6个梯度小的样本中去掉了4个,留下了两个。但是这2个样本在梯度上和个数上都进行了3倍的放大,所以可以防止采样对原数数据分布造成太大的影响,这也就是论文里面说的将更多的注意力放在训练不足的样本上的原因。

PS:小雨姑娘机器学习笔记中的那个例子挺有意思:GOSS的感觉就好像一个公寓里本来住了10个人,感觉太挤了,赶走了6个人,但是剩下的人要分摊他们6个人的房租。

1.5互斥特征捆绑算法(EFB)

使用EFB算法后的特征维度为:

接下来通过例子说明:

特征捆绑过程类似one-hot的逆过程。图片上通过特征捆绑把4个特征捆绑成一个特征。减少了维度。那么算法是怎么判定哪些特征应该绑在一起(buildbundled)?

EFB算法利用特征和特征间的关系构造一个加权无向图,构建图的过程中采用贪心策略,主要有以下几个步骤:

(1)将特征看成图中的各个顶点,如果两个特征之间存在同时不为0的样本,用一条边将这两个特征连接起来,特征同时不为0的样本的个数为边的权重。

(3)设置一个超参数阈值,对每一个特征,遍历已有的特征簇,如果发现该特征加入到特征簇中的矛盾数不超过某一个阈值,则将该特征加入到该簇中。如果该特征不能加入任何一个已有的特征簇,则新建一个簇,将该特征加入到新建的簇中。

通过上述过程,Lightgbm挑出了一些特征绑在一起,那么怎么把特征绑为一个(mergefeature)呢?

特征合并算法,其关键在于原始特征能从合并的特征中分离出来。通过在特征值中加入一个偏置常量来解决。

比如,我们在bundle中绑定了两个特征A和B,A特征的原始取值为区间[0,10),B特征的原始取值为区间[0,20),我们可以在B特征的取值上加一个偏置常量10,将其取值范围变为[10,30),绑定后的特征取值范围为[0,30),这样就可以放心的融合特征A和B了。

通过EFB,减少了特征的数量,提高了训练速度,同时,对于类别型特征,如果进行one-hot编码,那么EFB算法会将其重新捆绑成为一个特征,所以在特征工程中没必要进行one-hot。

回顾GDBT的树生长算法:按层生长的决策树生长策略,如下图所示:

遍历一次数据可以同时分裂同一层的叶子,容易进行多线程优化,也好控制模型复杂度,不容易过拟合。缺点在于:不加区别的对待同一层的叶子,但是很多叶子的分裂增益较低,没有必要进行搜索和分裂,导致了一些无用的计算开销。

而Lightgbm采用带有深度限制的按叶子生长(leaf-wise)算法。如下图所示:

该策略每次从当前所有叶子中,找到分裂增益最大的一个叶子,然后分裂,如此循环。Level-wise相比,优点在于:在分裂次数相同的情况下,Leaf-wise可以降低更多的误差,得到更好的精度。缺点在于:可能会长出比较深的决策树,产生过拟合。因此LightGBM会在Leaf-wise之上增加了一个最大深度的限制,在保证高效率的同时防止过拟合。

1.7LightGBM的工程优化

1.7.1直接支持类别特征

对于类别型特征机器学习算法一般是通过one-hot来处理的,但对于决策树算法来说不推荐使用one-hot,因为当类别种类较多时,会使得:

(1)产生样本切分不平衡的问题,切分增益会非常小。使用one-hot编码,意味着在每一个决策节点上只能使用onevsrest(例如是不是狗,是不是猫等)的切分方式。例如,动物类别切分后,会产生是否狗,是否猫等一系列特征,这一系列特征上只有少量样本为111,大量样本为000,这时候切分样本会产生不平衡,这意味着切分增益也会很小。较小的那个切分样本集,它占总样本的比例太小,无论增益多大,乘以该比例之后几乎可以忽略;较大的那个拆分样本集,它几乎就是原始的样本集,增益几乎为零。比较直观的理解就是不平衡的切分和不切分没有区别。

(2)会影响决策树的学习。因为就算可以对这个类别特征进行切分,独热编码也会把数据切分到很多零散的小空间上,如下图左边所示。而决策树学习时利用的是统计信息,在这些数据量小的空间上,统计信息不准确,学习效果会变差。但如果使用下图右边的切分方法,数据会被切分到两个比较大的空间,进一步的学习也会更好。下图右边叶子节点的含义是X=A或者X=C放到左孩子,其余放到右孩子。

从上面可以看到,(sum(y)/count(y))为类别的均值。当然,这个方法很容易过拟合,所以LightGBM里面还增加了很多对于这个方法的约束和正则化。实验结果证明,这个方法可以使训练速度加速8倍。

1.7.2特征并行

特征并行的主要思想是不同机器在不同的特征集合上分别寻找最优的分割点,然后在机器间同步最优的分割点。XGBoost使用的就是这种特征并行方法。这种特征并行方法有个很大的缺点:就是对数据进行垂直划分,每台机器所含数据不同,然后使用不同机器找到不同特征的最优分裂点,划分结果需要通过通信告知每台机器,增加了额外的复杂度。

LightGBM则不进行数据垂直划分,而是在每台机器上保存全部训练数据,在得到最佳划分方案后可在本地执行划分而减少了不必要的通信。具体过程如下图所示。

1.7.3数据并行

传统的数据并行策略主要为水平划分数据,让不同的机器先在本地构造直方图,然后进行全局的合并,最后在合并的直方图上面寻找最优分割点。这种数据划分有一个很大的缺点:通讯开销过大。如果使用点对点通信。

LightGBM在数据并行中使用分散规约(Reducescatter)把直方图合并的任务分摊到不同的机器,降低通信和计算,并利用直方图做差,进一步减少了一半的通信量。具体过程如下图所示。

1.7.4投票并行

基于投票的数据并行则进一步优化数据并行中的通信代价,使通信代价变成常数级别。在数据量很大的时候,使用投票并行的方式只合并部分特征的直方图从而达到降低通信量的目的,可以得到非常好的加速效果。具体过程如下图所示。

大致步骤为两步:

本地找出TopK特征,并基于投票筛选出可能是最优分割点的特征;

合并时只合并每个机器选出来的特征。

1.7.5Cache命中率优化

XGBoost对cache优化不友好,如下图所示。在预排序后,特征对梯度的访问是一种随机访问,并且不同的特征访问的顺序不一样,无法对cache进行优化。同时,在每一层长树的时候,需要随机访问一个行索引到叶子索引的数组,并且不同特征访问的顺序也不一样,也会造成较大的cachemiss。为了解决缓存命中率低的问题,XGBoost提出了缓存访问算法进行改进。

而LightGBM所使用直方图算法对Cache天生友好:

首先,所有的特征都采用相同的方式获得梯度(区别于XGBoost的不同特征通过不同的索引获得梯度),只需要对梯度进行排序并可实现连续访问,大大提高了缓存命中率;

其次,因为不需要存储行索引到叶子索引的数组,降低了存储消耗,而且也不存在CacheMiss的问题。

1.8LightGBM的优缺点

(2)LightGBM在训练过程中采用单边梯度算法过滤掉梯度小的样本,减少了大量的计算;

(3)LightGBM采用了基于Leaf-wise算法的增长策略构建树,减少了很多不必要的计算量;

(4)LightGBM采用优化后的特征并行、数据并行方法加速计算,当数据量非常大的时候还可以采用投票并行的策略;

(5)LightGBM对缓存也进行了优化,增加了缓存命中率;

内存更小

(1)LightGBM采用了直方图算法将存储特征值转变为存储bin值,且不需要特征值到样本的索引,降低了内存消耗;

(2)LightGBM在训练过程中采用互斥特征捆绑算法减少了特征数量,降低了内存消耗。

缺点

(1)可能会长出比较深的决策树,产生过拟合。因此LightGBM在Leaf-wise之上增加了一个最大深度限制,在保证高效率的同时防止过拟合;

(2)Boosting族是迭代算法,每一次迭代都根据上一次迭代的预测结果对样本进行权重调整,所以随着迭代不断进行,误差会越来越小,模型的偏差(bias)会不断降低,所以会对噪点较为敏感;

(3)在寻找最优解时,依据的是最优切分变量,没有将最优解是全部特征的综合这一理念考虑进去;

2.1分类器

样例:

fromlightgbmimportLGBMClassifierfromsklearn.datasetsimportload_irisfromlightgbmimportplot_importanceimportmatplotlib.pyplotaspltfromsklearn.model_selectionimporttrain_test_splitfromsklearn.metricsimportaccuracy_score#加载样本数据集iris=load_iris()X,y=iris.data,iris.targetX_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=12343)model=LGBMClassifier(max_depth=3,learning_rate=0.1,n_estimators=200,#使用多少个弱分类器objective='multiclass',num_class=3,booster='gbtree',min_child_weight=2,subsample=0.8,colsample_bytree=0.8,reg_alpha=0,reg_lambda=1,seed=0#随机数种子)model.fit(X_train,y_train,eval_set=[(X_train,y_train),(X_test,y_test)],verbose=100,early_stopping_rounds=50)#对测试集进行预测y_pred=model.predict(X_test)model.predict_proba#计算准确率accuracy=accuracy_score(y_test,y_pred)print('accuracy:%3.f%%'%(accuracy*100))#显示重要特征plot_importance(model)plt.show()2.2回归器

fromlightgbmimportLGBMRegressorfromlightgbmimportplot_importanceimportmatplotlib.pyplotaspltfromsklearn.model_selectionimporttrain_test_splitfromsklearn.datasetsimportload_bostonfromsklearn.metricsimportmean_squared_error#导入数据集boston=load_boston()X,y=boston.data,boston.targetX_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=0)model=LGBMRegressor(boosting_type='gbdt',num_leaves=31,max_depth=-1,learning_rate=0.1,n_estimators=100,objective='regression',#默认是二分类min_split_gain=0.0,min_child_samples=20,subsample=1.0,subsample_freq=0,colsample_bytree=1.0,reg_alpha=0.0,reg_lambda=0.0,random_state=None,silent=True)model.fit(X_train,y_train,eval_set=[(X_train,y_train),(X_test,y_test)],verbose=100,early_stopping_rounds=50)#对测试集进行预测y_pred=model.predict(X_test)mse=mean_squared_error(y_test,y_pred)print('mse',mse)#显示重要特征plot_importance(model)plt.show()2.3参数及其默认

boosting_type='gbdt'

提升树的类型,常用的梯度提升方法包括gbdt、dart、goss、rf。可以尝试运行不同类型的渐变增强提升方法。

(1)、gbdt:这是传统的梯度提升决策树,也是基于XGBoost和pGBRT等优秀库背后的算法。gbdt精度高、效率高、稳定性好,目前已得到广泛的应用。但是,它的主要缺点是,在每个树节点中找到最佳分割点非常耗时,而且会消耗内存。下边其它的提升方法试图解决这个问题。

(2)、dart:即DropoutsmeetMultipleAdditiveRegressionTrees,dart利用dropout技巧(源自深度神经网络)解决过拟合的RegressionTrees,改进模型正则化。gbdt存在过度专门化(over-specialization)的问题,这意味着在以后的迭代中添加的树往往只会影响对少数实例的预测,而对其余实例的贡献则可以忽略不计。添加dropout会使树在以后的迭代中更加难以专门化那些少数的示例,从而提高性能。

它的原理是随机丢弃生成的决策树,然后再从剩下的决策树集中迭代优化提升树。它的特点是训练慢:因为随机dropout不使用用于保存预测结果的buffer,所以训练会更慢。随机导致不稳定:因为随机,早停可能不够稳定。dart与gbdt的不同点:计算下一棵树要拟合的梯度的时,仅仅随机从已经生成的树中选取一部分。注意dart添加一棵树时需要先归一化。

标准的gbdt是可靠的,但在大型数据集上速度不够快。因此goss提出了一种基于梯度的采样方法来避免搜索整个搜索空间。其实,对于每个数据实例,当梯度很小时,这意味着不用担心数据是经过良好训练的,而当梯度很大时,应该重新训练。数据实例有大的和小的渐变。因此,goss以一个大的梯度保存所有数据,并对一个小梯度的数据进行随机抽样(这就是为什么它被称为单边抽样)。这使得搜索空间更小,goss的收敛速度更快。

(4)、rf:随机森林。切记,如果将增强设置为rf,那么lightgbm算法表现为随机森林而不是增强树。根据文档可知,要使用rf,必须使用bagging_fraction和feature_fraction小于1。

objective='binary'

目标,'regression'、'binary'

metric='binary_logloss'

模型度量标准,'rmse'、'auc'、'binary_logloss'

learning_rate=0.1

学习率

n_estimators=10

拟合的树的棵树,可以理解为训练的轮数。

弱学习器的个数,其中gbdt原理是利用通过梯度不断拟合新的弱学习器,直到达到设定的弱学习器的数量。

max_depth=-1

最大树的深度。每个弱学习器也就是决策树的最大深度。

其中,-1表示不限制。

num_leavel=32

树的最大叶子数,控制模型复杂性的最重要参数之一。对比在xgboost中,一般为2^(max_depth)因LightGBM使用的是leaf-wise的算法,因此在调节树的复杂程度时,使用的是num_leaves而不是max_depth。它们之间大致换算关系:num_leaves=2^(max_depth)。即它的值的设置应该小于2^(max_depth),否则会进行警告,可能会导致过拟合。

bagging_freq=15

控制过拟合。

bagging_fraction=0.8

子样例,来控制过拟合。

可以指定每个树构建迭代使用的行数百分比。这意味着将随机选择一些行来匹配每个学习者(树)。这不仅提高了泛化能力,也提高了训练速度。

feature_fraction=0.8

子特征处理列采样,来控制过拟合。

它将在每次迭代(树)上随机选择特征子集。例如,如果将其设置为0.8,它将在训练每棵树之前选择60%的特性。它常用来加速训练和处理过拟合。

THE END
1.解析人工智能三大算法机器学习深度学习与强化学习的核心之旅解析人工智能三大算法:机器学习、深度学习与强化学习的核心之旅 人工智能三大算法是现代计算机科学领域中的重要组成部分,它们分别是机器学习、深度学习和强化学习。每种算法都有其独特的特点和应用场景,共同推动了人工智能技术的发展。 机器学习:数据驱动的革命 机器学https://www.fmovhaqkz.com/shou-ji/530948.html
2.增强学习原理与代码实例讲解增强学习详解摘要: 本文章全面介绍了增强学习的基本概念、原理及算法,并通过具体的代码实例深入讲解了如何应用增强学习解决实际问题。文章结构清晰,理论与实践相结合,适合对增强学习感兴趣的读者阅读和学习。 增强学习(Reinforcement Learning,简称RL)是机器学习的一个分支,旨在通过奖励机制使智能体学习如何在环境中采取行动,从而实现特https://blog.csdn.net/universsky2015/article/details/143087363
3.强化学习详解:理论基础与核心算法解析本文详细介绍了强化学习的基础知识和基本算法,包括动态规划、蒙特卡洛方法和时序差分学习,解析了其核心概念、算法步骤及实现细节。 关注作者,复旦AI博士,分享AI领域全维度知识与研究。拥有10+年AI领域研究经验、复旦机器人智能实验室成员,国家级大学生赛事评审专家,发表多篇SCI核心期刊学术论文,上亿营收AI产品研发负责人。https://www.jianshu.com/p/09c44358b4a6
4.一文带你了解算法背后的基本原理推荐收藏三、算法背后的基本原理是怎样的? 1.监督学习的基本原理 监督学习的基础是三类模型:线性模型、决策树模型、神经网络模型。掌握这三类模型就掌握了监督学习的主干,利用监督学习来解决的问题,占所有机器学习或者人工智能任务的绝大多数。这些监督学习模型又可以细分为主要处理两类问题:分类问题和回归问题。 分类问题的核https://baijiahao.baidu.com/s?id=1703903777603543299&wfr=spider&for=pc
5.深度强化学习在自动驾驶系统中的优化与应用深度强化学习的基本原理和算法 深度强化学习结合了深度学习和强化学习的方法,用于解决复杂的强化学习任务。 深度Q网络(Deep Q-Network, DQN):DQN是一种基于深度学习的强化学习算法,通过使用神经网络来近似Q值函数。它使用经验回放和固定目标网络来提高训练的稳定性。 https://www.dongchedi.com/article/7240011407876571648
6.SLAM:从传统算法到深度学习北斗产业资讯平台SLAM:从传统算法到深度学习 SLAM(Simultaneous Localization and Mapping)是一种集成定位和建图的技术,已经在自主导航、虚拟现实、增强现实等领域发挥着重要的作用。本文将详细介绍SLAM的发展历程、基本原理和应用领域。 1. SLAM的起源与发展 SLAM的概念最早出现在20世纪80年代。传统的SLAM算法主要基于激光雷达、相机和惯https://www.qxwz.com/zixun/127374539
7.科学课教学案例分析范文算法的基本思想是指按照确定的步骤,一步一步去解决某个问题的程序化思想。在数学中,完成每一件工作。例如,计算一个函数值,求解一个方程,证明一个结果,等等,我们都需要有一个清晰的思路,一系列的步骤,一步一步地去完成,这就是算法的思想,即程序化的思想。 https://www.gwyoo.com/haowen/211046.html
8.大数据:分类算法深度解析大数据分类算法深度解析 在大数据时代,处理海量数据并从中提取有用信息变得至关重要。分类算法是机器学习领域的核心,它们在大数据分析、模式识别和决策支持等方面发挥着关键作用。本文将深度解析大数据分类算法,包括其基本原理、常见算法、应用场景以及未来发展方向。 http://www.360doc.com/content/24/0112/20/78411425_1110858832.shtml
9.白话机器学习算法理论+实战之Xgboost算法这个系列已经基本包含了上面这些算法的原理和基本使用。但是,如果仅仅是会用这些算法可是不够的, 我们也得跟着时代的步伐前进,近几年,有很多大佬又在上面的某些算法上加以改进,发明了更加厉害的算法,而这些算法才是当今时代解决问题的主流,所以我们学习的一个方式就是掌握传统,而又得紧跟时代。 https://cloud.tencent.com/developer/article/1632864
10.恭喜您!您孩子参加的机器人等级考试的证书或将对升学有作用了!常见电器、交通工具、运行原理和科技知识,各种齿轮、杠杆、机械机构、机械臂、支点、摩擦力、太阳能、气动力等各种原理和知识机器人的运行原理和编程控制、基本算法和逻辑等 关于我们: 2015年3月,嘉祥乐高机器人冠亚店成立。 乐高机器人教育进入嘉祥,受到社会各界的好评,被济宁市教育局授予济宁市创客教育联盟企业。乐高https://www.meipian.cn/299ssjnc
11.基于深度学习的变电设备缺陷检测因此,本文提出将去雾算法和深度学习算法相结合的方式来进行缺陷监测,使用暗通道去雾算法改善图片质量,然后使用YOLOV4对设备缺陷进行检测。 1 基于暗通道去雾算法的图像优化 1.1 暗通道去雾算法基本原理 1.1.1 暗通道先验理论 基于暗通道先验的去雾算法实际上是一种统计意义上的算法,何恺明博士总结了大量的室外无雾图像,https://www.fx361.com/page/2022/0118/12234063.shtml
12.焦李成院士:下一代深度学习的思考与若干问题1986年,DE Rumelhart, GE Hinton, JL McClellandt把深度学习中的反向传播误差的算法用于学习表征,从而对深度学习的算法进行了再次的改进。1980年,Kunihiko Fukushima提出了卷积神经网络,将神经原理用于工程的开创性质研究中,因此获得了2021鲍尔奖。Lecun在对Kunihiko Fukushima工作的评价当中说:福岛邦彦教授1980年的卷积https://ipiu.xidian.edu.cn/info/1097/2576.htm
13.下一代人工智能方法重大研究计划项目指南发布政策资讯(一)深度学习的基本原理 深入挖掘深度学习模型对超参数的依赖关系,理解深度学习背后的工作原理,建立深度学习方法的逼近理论、泛化误差分析理论和优化算法的收敛性理论。 (二)可解释、可通用的下一代人工智能方法 通过规则与学习结合的方式,建立高精度、可解释、可通用且不依赖大量标注数据的人工智能新方法。开发下一代https://mall.ggdzhj.com/kjcs/policy/detail?id=e2a381ec9c794749a7ce4fae14fed41d
14.关于发布可解释可通用的下一代人工智能方法重大研究计划2022(一)深度学习的基本原理 深入挖掘深度学习模型对超参数的依赖关系,理解深度学习背后的工作原理,建立深度学习方法的逼近理论、泛化误差分析理论和优化算法的收敛性理论。 (二)可解释、可通用的下一代人工智能方法 通过规则与学习结合的方式,建立高精度、可解释、可通用且不依赖大量标注数据的人工智能新方法。开发下一代https://www.ncsti.gov.cn/kcfw/xmsb/202205/t20220518_79110.html
15.BoostKit大数据业界趋势鲲鹏大数据组件增强特性和典型配置在匹配鲲鹏多核能力方面,鲲鹏BoostKit通过设计并行优化方案,消除通信瓶颈,提高计算并行度,实现RF(Random Forest,随机森林)、GBDT(Gradient Boosting Decision Tree,梯度提升决策树)算法等机器学习算法性能最高提升2.5倍。 算法共性原理创新 分布式优化求解 线性代数运算 https://developer.huawei.com/consumer/cn/blog/topic/03898238728230088
16.深度增强学习PPO(ProximalPolicyOptimization)算法本文主要走读其中的PPO(Proximal Policy Optimization)算法的源码实现。PPO是2017年由OpenAI提出的一种DRL算法,它不仅有很好的performance(尤其是对于连续控制问题),同时相较于之前的TRPO方法更加易于实现。之前写过一篇杂文《深度增强学习(DRL)漫谈 - 信赖域(Trust Region)系方法》对其历史、原理及相关方法做了简单介绍,http://www.fpga7.com/ziyuan.asp?id=41