闲聊聊算法

Posted 超人汪小建(seaboat)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了闲聊聊算法相关的知识,希望对你有一定的参考价值。

算法

算法应该是一组清晰定义的指令集合,用于解决某类问题或执行某种运算任务。通常我们进行的建模就是寻找设计合适的算法来解决问题,最常使用的是用数学进行建模。数学模型是最核心且最广泛应用的模型,可以说现代科学与社会方方面面都与数学模型密切相关。所谓数学模型就是用数学的语言来描述现实世界,它通过逻辑和符号来表征物理特性,从而能实现非物理的形式来模拟现实世界,很好地帮助我们研究现实并解决现实的各种问题。需要注意的是数学模型通常并不能百分之百模拟现实,甚至很多时候模拟出来的效果还是错误的。

生活中的算法

可以说现在我们是生活在算法的时代中,算法让这个社会以智能的形式运行着,极大地提升了整个社会的效率和体验。不管是手机、电脑 等硬件设备,还是运行在硬件上千千万万的软件都充满着算法。当你人脸解锁手机或用指纹登录电脑时,甚至手机电脑能运行都离不开算法。更进一步当你拿起手机刷抖音时就已经被算法所控制了,它会猜测你感兴趣的视频不断推向你,让你乐在其中。此外算法也被应用在飞机、汽车、家电、玩具中,算法使工厂、交通、物流效率更高。

计算机运行算法

设计好算法模型后需要大量的计算,人工计算显然无能为力,于是科学家开发了计算机这种东西专门用来计算。一个现代计算机有几十亿个很微小的开关,开关的开合状态对应着0和1两个值,通常计算机能在一秒内操控这些开关几十亿次,依次来进行非常高速的二进制计算。

而计算机能完成逻辑运算还得感谢克劳德香农,他将布尔的逻辑运算带入计算机。香农是一名贝尔实验室的工程师。比起有名的科学家,香农的名气不算大,估计只有计算机专业的人有了解过他,而且大家知道他估计也是因为信息论。其实香农的伟大成就还包括他将逻辑融入到计算机内,从而成功将逻辑层和物理层进行分离。他将二进制运算与电子器件相结合,实现了逻辑功能,奠定了如今计算机的运算机制。他设计出了相加电路来构造复杂的算术运算,这些电路也成为现代计算机的组件。可以说所有的算法都可以分解为且、或、非三种逻辑,所以不管多复杂的算法都能在计算机中运行。

算法是严格的

算法必须是严格且明确的,不然它就不是一个严谨的算法,工程师必须真正了解某个东西才能明确地通过算法将其明确地表达出来。物理学科中大量的公式也属于算法,通过公式能快速计算得到结果。设计算法也并非是一件简单的事,通常我们使用计算机编程语言来描述算法,然而编程过程中又会遇到各种各样的错误,还得不断调试不断修正。

人工的算法

人工设计算法是最早期的算法,它重点研究的是针对不同的问题进行人工设计算法,算法的每一步都需要人工制定。人工去编写算法的整个过程,算法逻辑都是清晰的,当数据输入到算法后会产生一个输出。这种方式要求我们要写清楚执行逻辑,或者指定好执行规则,实际上就是输入+算法=输出。这种方式能使算法的细节更加白盒化。

学习获得的算法

现如今人们研究的算法更多是一种学习算法,就是研发一种学习框架能根据输入和输出来自动学习到算法,这种算法统称为机器学习。机器学习将人工算法的顺序颠倒了,它通过输入和输出来得到算法,是一种以数据换算法的思想。输入+输出=算法,这种方式更加自动化,细节更加黑盒化。这种方式就像是给机器赋予了学习能力,让它自己去学习。实际上机器学习是一把锋利的剑,它可以用数据来模拟复杂规律。

不同的编程思维

普通的编程需要的是一种准确性的百分之百的思维,而机器学习却是一种统计的思维,它关注的是一批数据中表现良好的数据占比。所以我们不能要求它永远都准确,如果抖音推荐给你的视频有95%都是你想看的,那么并不是说它还存在缺陷,而应该说他预测水平很高。

机器学习产生知识

现在很多公司都拥有大量的数据,然而如果不能将大数据变成知识,数据则没有任何价值。从数据中获得知识却是不容易的事,传统的方式让业务专家拼命想很久才得到了上千条规则,而机器学习却能轻易学习到数亿条规则来获取知识。可以说有了大数据和机器学习两把利剑就能杀死现实问题的复杂性,不管多复杂多么非线性的问题都能被轻易解决。

以上是关于闲聊聊算法的主要内容,如果未能解决你的问题,请参考以下文章

闲聊聊算法

小白学习MySQL - 闲聊聊

图像压缩基于matlab香农熵和差分进化算法多级图像阈值图像压缩含Matlab源码 2035期

图像压缩基于matlab香农熵和差分进化算法多级图像阈值图像压缩含Matlab源码 2035期

图像压缩基于matlab香农熵和差分进化算法多级图像阈值图像压缩含Matlab源码 2035期

一分钟算法——图的深度优先搜索