模型描述和算法

导读

我们在描述算法的时候,往往也会提到“算法模型”这个概念。模型是什么?算法和模型之间有什么联系?

算法的定义

如果你在大学学过了数据结构,这句话你应该耳熟能详:

通俗地讲,算法是解决问题的一种方法或一个过程。更严格地讲,算法是由若干条指令组成的有穷序列,且满足下述4条性质

  • 输入:0个或者多个外部提供的量作为算法输入项

  • 输出:算法应当产生至少一个量作为输出项

  • 确定性:组成算法的每条指令是清晰的、没有歧义的

  • 有限性:算法中每条指令的执行次数是有限的,执行每条指令的时间也是有限的

——摘自《计算机算法设计与分析》(第五版),王晓东著

那,模型又是什么?

原型的概念

在说明模型之前必须说说原型是什么。原型,简单的说,就是最原始的模型。动漫里经常有作者以身边的谁为原型创作的,打个比方的话,应该就是40原老师笔下的猫娘了。(吐槽:胖次专业户画猫娘有什么不对嘛

40原老师笔下的猫娘

当然原型不限于这个。还有其他的比如:

实际生产中经理最关心的实际上也是一种原型,即生产、管理的实际对象。

或者是研究员在解决实际问题的时候,对于新假设的提出有启发作用的也叫原型。

模型的概念

当我们拿到一个问题之后,如果分析出了原型,我们就能够进行一定程度的总结,然后忽略部分细节加强部分计算,最终就能够将一个实际问题的解法提取成一套数学方程式

一个很简单的例子:你想带你家的几只猫娘出去玩,可是考虑到在玩上需要多花钱,于是你选择在路费上尽可能节省。这个问题大家应该熟悉得不能再熟悉了吧,就是线性规划。把一个实际的问题整理成多条直线的相交问题,这就是建模。

我们知道,现在普遍使用的算法例如深度搜索、哈密顿回路等等经典算法都是经过很长时间的发现、假说、论证、优化的不停循环才产生出来,而这个论证的过程就是将算法抽象为一系列的数学模型,然后计算时间复杂度、空间复杂度,最终在比较中筛选更为优秀的。
也就是说:

模型是一类问题的解题步骤,亦即一类问题的算法。

——摘自慕码人2483693模型与算法之间是什么关系一问的回答

建模的必要性

那么,为什么建模呢?

年幼的目光

一个实际问题往往涉及很多很多个方面。举个例子:你们家的小猫娘突然有一天看着像浑身没劲,往往有无数个原因,被你冷落了、陪你玩累了、有点生病了、发情期到了等等。

但是,这么多因素谁知道是什么情况啊,万一没病给整出病了,那不得心疼得要命。所以,你拿出了猫娘观察记录小本本,查询了你们家的猫娘从小以来点点滴滴的反应,高兴了、伤心了、痛苦了、冷漠了等等应有尽有。然后针对这些表现,你一项项对比,并得出一个相关系数。找出所有项目中相关系数最大的一项,然后发现你的猫娘就只是玩累了而已。给她铺条毯子好好睡吧。

这就是建模的好处,能够从所有的选项中找出相关变量并剔除无关变量,甚至能够分析相关变量到底如何影响最终结果

算法和模型

算法和模型往往都是分不开的。算法是一类问题的抽象解答,而模型则是一系列算法的数学表达。

如果问题不是一类问题,就单单类似这只猫接下来要做什么这样的问题,算法也就失去了存在的必要;同样的,算法如果也不是一系列算法,就单单类似这只狗吃骨头的流程这样的算法,模型也没有存在的必要。就像是数据结构中的抽象实体类ADT一样,它的存在就是为了描述一系列相似问题的解法的。

所以,你能够理解为什么会有推荐算法模型了么?因为一系列的APP都将会根据用户的使用情况收集偏好并提高用户体验,这些APP囊括了生活中的方方面面,包括美食服饰手办模玩家具还有电子产品甚至性癖比方说pixiv)等等。因为类似,这就抽象出来了。

机器学习中模型的描述

正如一开始所说的,算法需要有0个以上的输入1个以上的输出,机器学习中的算法也是一样的,有着0个以上的数据集输入,输出至少一个结果。数据集中包括了大量的具有相似数据结构的信息,可以是事实,也可以是虚拟信息;而输出则是根据结果的预测、分类等等。就如下图所示:

机器学习模型描述

这个机器学习的算法并不是一成不变的,同样也是在不断的实践和训练中逐渐发现最贴近事实、最能概括所有内容的数学模型和算法。

是不是能理解了?

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ordinary_brony

代码滞销,救救码农

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值