优化算法笔记(二)优化算法的分类

优化算法笔记(二)优化算法的分类,第1张

(以下描述,均不是学术用语,仅供大家快乐的阅读)

在分类之前,我们先列举一下常见的优化算法(不然我们拿什么分类呢?)。

1遗传算法Genetic algorithm

2粒子群优化算法Particle Swarm Optimization

3差分进化算法Differential Evolution

4人工蜂群算法Artificial Bee Colony

5蚁群算法Ant Colony Optimization

6人工鱼群算法Artificial Fish Swarm Algorithm

7杜鹃搜索算法Cuckoo Search

8萤火虫算法Firefly Algorithm

9灰狼算法Grey Wolf Optimizer

10鲸鱼算法Whale Optimization Algorithm

11群搜索算法Group search optimizer

12混合蛙跳算法Shuffled Frog Leaping Algorithm

13烟花算法fireworks algorithm

14菌群优化算法Bacterial Foraging Optimization

以上优化算法是我所接触过的算法,没接触过的算法不能随便下结论,知之为知之,不知为不知。其实到目前为止优化算法可能已经有几百种了,我们不可能也不需要全面的了解所有的算法,而且优化算法之间也有较大的共性,深入研究几个之后再看其他优化算法上手速度会灰常的快。

优化算法从提出到现在不过50-60年(遗传算法1975年提出),虽种类繁多但大多较为相似,不过这也很正常,比较香蕉和人的基因相似度也有50%-60%。当然算法之间的相似度要比香蕉和人的相似度更大,毕竟人家都是优化算法,有着相同的目标,只是实现方式不同。就像条条大路通罗马,我们可以走去,可以坐汽车去,可以坐火车去,也可以坐飞机去,不管使用何种方式,我们都在去往罗马的路上,也不会说坐飞机去要比走去更好,交通工具只是一个工具,最终的方案还是要看我们的选择。

上面列举了一些常见的算法,即使你一个都没见过也没关系,后面会对它们进行详细的介绍,但是对后面的分类可能会有些许影响,不过问题不大,就先当总结看了。

再对优化算法分类之前,先介绍一下算法的模型,在笔记(一)中绘制了优化算法的流程,不过那是个较为简单的模型,此处的模型会更加复杂。上面说了优化算法有较大的相似性,这些相似性主要体现在算法的运行流程中。

优化算法的求解过程可以看做是一个群体的生存过程。

 有一群原始人,他们要在野外中寻找食物,一个原始人是这个群体中的最小单元,他们的最终目标是寻找这个环境中最容易获取食物的位置,即最易存活下来的位置。每个原始人都去独自寻找食物,他们每个人每天获取食物的策略只有采集果实、制作陷阱或者守株待兔,即在一天之中他们不会改变他们的位置。在下一天他们会根据自己的策略变更自己的位置。到了某一天他们又聚在了一起,选择了他们到过的最容易获取食物的位置定居。

一群原始人=优化算法中的种群、群体;

一个原始人=优化算法中的个体;

一个原始人的位置=优化算法中个体的位置、基因等属性;

原始人变更位置=优化算法中总群的更新操作;

该位置获取食物的难易程度=优化算法中的适应度函数;

一天=优化算法中的一个迭代;

这群原始人最终的定居位置=优化算法所得的解。

优化算法的流程图如下:

对优化算法分类得有个标准,按照不同的标准分类也会得到不一样的结果。首先说一下我所使用的分类标准(动态更新,有了新的感悟再加):

按由来分类比较好理解,就是该算法受何种现象启发而发明,本质是对现象分类。

可以看出算法根据由来可以大致分为有人类的理论创造而来,向生物学习而来,受物理现象启发。其中向生物学习而来的算法最多,其他类别由于举例有偏差,不是很准确,而且物理现象也经过人类总结,有些与人类现象相交叉,但仍将其独立出来。

类别分好了,那么为什么要这么分类呢?

 当然是因为要凑字数啦,啊呸,当然是为了更好的理解学习这些算法的原理及特点。

向动物生存学习而来的算法一定是一种行之有效的方法,能够保证算法的效率和准确性,因为,如果使用该策略的动物无法存活到我们可以对其进行研究,我们也无法得知其生存策略。(而这也是一种幸存者偏差,我们只能看到行之有效的策略,但并不是我们没看到的策略都是垃圾,毕竟也发生过小行星撞地球这种小概率毁灭性事件。讲个冷笑话开cou心zhi一shu下:一只小恐龙对他的小伙伴说,好开心,我最喜欢的那颗星星越来越亮了(完)。)但是由于生物的局限性,人们所创造出的算法也会有局限性:我们所熟知的生物都生存在三维空间,在这些环境中,影响生物生存的条件比较有限,反应到算法中就是这些算法在解决较低维度的问题时效果很好,当遇到超高维(维度>500)问题时,结果可能不容乐观,没做过实验,我也不敢乱说。

按更新过程分类相对复杂一点,主要是根据优化算法流程中更新位置操作的方式来进行分类。更新位置的操作按我的理解可大致分为两类:1跟随最优解;2不跟随最优解。

还是上面原始人的例子,每天他有一次去往其他位置狩猎的机会,他们采用何种方式来决定今天自己应该去哪里呢?

如果他们的策略是“跟随最优解”,那么他们选取位置的方式就是按一定的策略向群体已知的最佳狩猎位置(历史最佳)或者是当前群体中的最佳狩猎位置(今天最佳)靠近,至于是直线跑过去还是蛇皮走位绕过去,这个要看他们群体的策略。当然,他们的目的不是在最佳狩猎位置集合,他们的目的是在过去的途中看是否能发现更加好的狩猎位置,去往已经到过的狩猎地点再次狩猎是没有意义的,因为每个位置获取食物的难易程度是固定的。有了目标,大家都会朝着目标前进,总有一日,大家会在谋个位置附近相聚,相聚虽好但不利于后续的觅食容易陷入局部最优。

什么是局部最优呢?假设在当前环境中有一“桃花源”,拥有上帝视角的我们知道这个地方就是最适合原始人们生存的,但是此地入口隐蔽“山有小口,仿佛若有光”、“初极狭,才通人。”,是一个难以发现的地方。如果没有任何一个原始人到达了这里,大家向着已知的最优位置靠近时,也难以发现这个“桃源之地”,而当大家越聚越拢之后,“桃源”被发现的可能性越来越低。虽然原始人们得到了他们的解,但这并不是我们所求的“桃源”,他们聚集之后失去了寻求“桃源”的可能,这群原始人便陷入了局部最优。

 如果他们的策略是“不跟随最优解”,那么他们的策略是什么呢?我也不知道,这个应该他们自己决定。毕竟“是什么”比“不是什么”的范围要小的多。总之不跟随最优解时,算法会有自己特定的步骤来更新个体的位置,有可能是随机在自己附近找,也有可能是随机向别人学习。不跟随最优解时,原始人们应该不会快速聚集到某一处,这样一来他们的选择更具多样性。

按照更新过程对上面的算法分类结果如下

可以看出上面不跟随最优解的算法只有遗传算法和差分进化算法,他们的更新策略是与进化和基因的重组有关。因此这些不跟随最优解的算法,他们大多依据进化理论更新位置(基因)我把他们叫做进化算法,而那些跟随群体最优解的算法,他们则大多依赖群体的配合协作,我把这些算法叫做群智能算法。

目前我只总结了这两种,分类方法,如果你有更加优秀的分类方法,我们可以交流一下:

目录

上一篇 优化算法笔记(一)优化算法的介绍

下一篇 优化算法笔记(三)粒子群算法(1)

先说大数据时代舆情数量庞大,来源众多,网站信源也很多。舆情情感分析单纯依靠人工数据难以量化,工程量大,借助舆情分析平台是不错的选择。

西盈舆情分析系统可以实现以下功能:

1、可以做到对舆情信息的分类研判(包括舆情的热点、负面、地域等)、及时预警、科学的分析(时间节点分析、图表分析、报告分析等)以及辅助建立预警机制,提供科学的决策依据。企业购买舆情监测系统已经是常态了,很多舆情危机的出现都会读直接影响企业的形象、经济利益、产品的推广等等。

2、内置数据模型知识库(数据分析方法库),由若干成熟的模型(数据算法)(维稳、治安、环保、交通运输、医疗、教育、卫生等)的代码和技术文档构成,并能够进行模型的拼接,引入和相互无缝引用。

3、实时显示分析引擎领域、属性、项目、日志、入库和统计图表信息,异常情况系统发出警示。实时显示目前系统运行详细日志,包括任务运行时间、文本处理时间、入库情况、知识库匹配情况、引擎数据库状态等。

人工智能产品的定义较为广泛,智能硬件、机器人、芯片、语音助手等都可以叫做人工智能产品。本文讨论的人工智能产品主要是指在互联网产品中运用人工智能技术。

互联网产品主要着手与解决用户的痛点,对于C端产品来说,痛点就是指的个人想解决而无法解决的问题,如个人想要美化自己的照片,但是他不会复杂的PS软件,于是美图秀秀就可以解决这个痛点。从KANO模型中,就是满足用户的基本需求与期望需求。

人工智能产品(在互联网产品中运用人工智能技术)则是要满足用户的兴奋需求。如将情感分析运用到电商的产品评论中,用户则可以通过可视化的数据展示来大致对产品有个全面、直观的了解,而不再需要自己一页一页的翻看评论内容。

互联网产品主要关注点在于用户需求、流程设计、交互设计、商业模式等。着眼于用户需求,设计满足用户需求的产品,通过合理的流程设计、交互设计达到产品目标,进而实现商业目标。典型的思路是发现用户需求——>设计满足用户需求的产品——>迭代完善、产品运营——>商业变现。

人工智能产品关注点在于模型的构建,它不再是对于布局、交互的推敲,而是通过选择合适的数据,构建合适的模型,最终呈现出来的是好的效果。什么是好的效果呢?这就需要引入评测指标。互联网的评测指标有我们熟知的留存率、转化率、日活跃等,那么人工智能的产品主要是通过一些统计指标来描述,以情感分析为例,把情感分析看成一个分类问题,则可以使用P、R、A、F值来描述。

1)查准率(Precision):P值,衡量某类分类中识别正确的比例,如情感分析中,有10条被分类为“正向”,其中8条是分类正确的(由人工审核),那么P=8/10=80%

2)查全率(Recall):R值,又叫查全率,又叫召回度,指的是某类被被正确分类的比例,同样以情感分析为例,100条数据中有10条是正向的,机器分类后,这10条中有7条被分类为正向,则R=7/10=70%

3)F值,因为P值和R值通常是两个相互矛盾的指标,即一个越高另一个越低,F则是两者综合考虑的指标,不考虑调节P、R权重的情况下,F=2PR/(P+R)

4)精确度(Accuracy):这个最好理解,就是被准确分类的比例,也就是正确率。如100条数据,90条是被正确分类的,则A=90/100=90%。

以上指标越高,说明模型效果越好。

我们从上面内容可以知道,人工智能产品设计关注:数据——>模型——>效果评估。

现在我们以情感分析为例子说明产品设计的过程。

1)数据:

数据的选择对最终模型的结果有直接影响,情感分析,根据不同的目的,选择的数据也不同。如将情感分析运用于**票房预测,则一些更新及时、内容丰富的数据源,如微博,是比较好的选择。如果是应用于商品的评价,如电子产品,很多评测内容是无法在短短几句话内描述清楚的,这时候微博不是个好的选择,选择论坛上更新较慢、但是详细的内容就比较适合。

如果能在产品的早期就有引入人工智能的打算,则可以在产品中事先做好数据采集。

2)模型:

在选择模型中,产品需要了解不同的模型的优缺点,进而选择更加合适的模型。在情感分析中,NB、SVM、N-gram都是常用的模型,其中SVM效果最好(这是已有的结论),如果是其他的智能产品,可能需要算法团队进行实验,给出测试数据,进而选择合适的模型。

3)效果评估:

效果评估在上文中已经描述得比较清楚,具体指标不再赘述。

4)产品呈现:

最后这一步,是将结果展示给用户。在情感分析中,我们可以选择雷达图、词云、情感趋势图来展示结果。取决于产品属性,如电商产品评论挖掘,可以使用词云;

如舆论分析,可以使用情感趋势图。

人工智能产品的设计要关注:数据、模型、评判、呈现。

计算情感分析得分函数是预处理文本数据。

1、预处理文本数据,如去除停用词、标点符号等,进行分词和词性标注,将文本转化为计算机可处理的形式。

2、构建情感词典或使用现有的情感词典,将文本中的词语与情感词典进行匹配,计算文本中包含正面、负面和中性情感词汇的数量和权重。

3、根据算法模型,计算文本的情感极性得分,通常使用的是情感极性得分的加权平均值或者概率值。

在近期举办的ISO/IECJTC1/SC35德国柏林会议上,由中国科学院软件研究所、中国电子技术标准化研究院、小i机器人三家中国科研机构和企业共同提出的“信息技术—情感计算用户界面—框架”提案获得正式立项。这是用户界面分委会首个关于情感计算的标准,也是中国在用户界面领域第一个立项的国际标准。

本次立项的标准是情感计算用户界面系列标准的第一个框架标准,该标准共有五部分内容,涉及基本术语、情感交互过程、情感交互框架等方面的规范性描述。后续将对情感的分类和表达、情感计算用户界面的功能接口、情感表达与呈现和情感数据集等四个部分内容制定更详细的标准。

欢迎分享,转载请注明来源:浪漫分享网

原文地址:https://hunlipic.com/qinggan/7516331.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-09-06
下一篇2023-09-06

发表评论

登录后才能评论

评论列表(0条)

    保存