您当前的位置:首页 > 电脑百科 > 程序开发 > 算法

都在提的人工智能,其中的算法是什么?其实高中的知识就有

时间:2019-07-01 11:39:32  来源:  作者:

我们高中数学为什么不重视算法?高中学的数列,三角函数,求导,圆锥曲线相关问题的解法和算法有什么关系?

都在提的人工智能,其中的算法是什么?其实高中的知识就有

 

invalid s

开宗明义:算法不是什么高级知识,它是初中甚至小学就可以掌握的东西。只不过,应试教育通过持续十年的努力,把你理解算法的能力剥夺了而已。

说白了,算法就是“利用自然/数学规律达到我们预定目的”的思路。

要学会这个思路,其实不难。

比如,我们知道,电流通过电阻会发热;那么,当我们需要煮饭时,是不是可以通过选取一个合适的电阻,利用它的热量呢?

然后,细化问题:当我们要利用220v电压,得到2000瓦的煮饭功率时,该如何选择电阻呢?电阻本身会不会被烧坏?我们怎么避免它被烧坏?

继续细化:2000瓦的发热功率,要避免温度无限堆积,我们需要选择一个合适的散热效率;牛顿散热公式很好找,然后我们知道温度差越大散热越快,因此温度不可能无限提升。

继续:假设烧饭用的电热丝最佳温度是500~800度,我们怎么凑得这个值呢?

还能再进一步:我们是不是可以放个温度计在锅的支撑点/接触面上,当锅被烧干时自动断电呢?

继续拆分这个目标:双金属片、热电偶、磁体的居里点等等,都可以代替温度计,从而使得温度探测装置结构更简单、实现更便宜同时又更耐用。

你看,电炉、电饭煲等等“算法”,已经呼之欲出了。

再如,我们知道气体受热膨胀;燃料燃烧产生大量热;我们知道杠杆、轮轴原理……

那么,能不能组合这些东西,得到……内燃机呢?

细化:我们需要一个气缸,让燃料在里面燃烧;然后需要一个大小合适的活塞,利用燃烧后的高温高压气体推它;我们需要曲柄、连杆,把活塞的往复运动变成旋转……

困难:等等,这样只能推一下!

解决:加一个飞轮,利用它的惯性储能;然后借助飞轮储存的动能,控制气缸上面气阀的开闭;再借助齿数比以及凸轮,使得气缸上面的气阀在合适的地方动作——从而形成“进气、压缩、做功、排气”四个冲程。

困难:怎么在合适的时机添加合适的燃料?怎么使其燃烧?

解决:喷油嘴、雾化器、火花塞(柴油机还可压燃)……同样使用凸轮控制,使其恰到好处的动作……

你看,四冲程内燃机“算法”就设计出来了。

继续,收音机,电视机……继电器,逻辑门,加法器……只要你稍有了解便会发现,它们统统是这个思路。

什么思路呢?

1、提出一个大而笼统的问题

2、把大而笼统的问题清晰化,然后拆分成一堆较小、较清晰、较容易解决的问题

3、解决每一个小问题

4、组合一大堆小问题的解决方案,组合得到大问题的解决方案

换句话说,解决实际问题并不是一问一答,套个合适公式就能完事的——凡这样想的,才是不折不扣的反智。

恰恰相反,实际问题总是含糊的,有时候连个大方向都不会有。

领导/老板绝不会对你说,为了解决人民群众的做饭需要,请你算一算220v电作用于100欧的电阻,产生的热功率是多少。

对不起,他们往往是外行,压根不可能把问题问到这个程度;而且问到这个程度哪够!你找个收音机用的糯米粒一样的100欧电阻试试,看看它能不能扛一秒。那么,适合做饭需要的电阻应该长什么样子,你能把这个需求清晰的提出来吗

都在提的人工智能,其中的算法是什么?其实高中的知识就有

 

哪怕他们是内行,让你发明扫地机,也绝不会让你算电阻发热量——有提这种问题的功夫,他们自己就算出来了。

他们需要的,是你综合利用自己掌握的知识,替他们考虑好需要注意需要解决的一切一切,并且解决它

因此,你得综合自己的知识,自己学着提出问题。

任务:做个利用电做饭的锅,尽可能自动、智能

你晕不晕?但这才是实践问题。这才是实际生活中、工厂里,老板/领导真正会提的问题。

要解决这类问题,你得反过来,自己给自己提问题。

第一个问题,用电做饭是什么原理;第二个问题,我得考虑哪些方面,才能让用户可以安全使用;第三个问题,我得如何设计操作界面,才能让用户觉得它易用甚至智能;第四个问题,我怎么实现它们;第五个问题,如何证明我的方案可行、还有没有更好的方案;第六个问题,如何压缩成本……

通过问自己问题,帮自己把目标清晰化、帮自己寻找解决问题的步骤、帮自己设计解决问题的方案、帮自己证明解决方案的可行性/经济性、帮自己寻找简化方案/更优方案……你看,有无穷无尽的事情要做。

计算机算法也是类似的东西。它要求我们灵活运用我们掌握的知识,凑出我们需要的结果来。

比如说,识别图像边缘,这得怎么做?

首先,问自己一个问题:什么是图像边缘(请尽量用数学语言回答,做不到就得多锻炼)

然后,继续问:我这个回答可靠吗?会不会像“柏拉图的人”一样,被人用“拔毛鸡”蒙混过关?如果遇到这种情况,怎么办?还是只能忍受?

最后,如何用计算机语言实现我的想法?

你看,学会问问题,学会把模糊的目标清晰化、数学化,算法的问题就解决了一半。

另一半是,寻找一条路,解决这种在未经训练者看来压根就无法回答的问题——这一半的难度,往往比“提出问题”又大了无数倍。

为了解决这类问题,你必须创造性的使用你掌握的知识。

热电偶受热产生电压?那么搭配上电压表它就是温度计。

石英受压产生电压?那么把它做成薄膜、当它随着声波颤动时,其上的电压必然反映了声波波形——不够完美?那是因为共振、分割震动等等问题造成的,我可以如此如此的建模从而使其可计算;然后如此如此的修改方案,以便影响其中的某个参数,从而得到完美的波形。

信号电压太过微弱?有很多很多种物理过程,可以把微弱的输入按比例放大。比如油门线上施加的微小的力和发动机输出的强劲功率之间的关系。

我需要寻找数学/物理原理类似的过程。这玩意儿往往并不是天然存在的,但我可以利用现象A和现象B,然后如此组合它——看,三极管出现了!

类似的,我们需要让杂乱无章的一堆数字有序,怎么办?

很简单,我们都见过水和油的分层现象。它们为何会分层?遵循怎样的物理规律?我如何提取其中的核心部分、尽量简化我的实现?

冒泡算法呼之欲出。

先学会提问题,再学会创造性的解决问题;最后,把创造性的解决方案拆分、实现——这就是算法。

很明显,提问题和解决问题并没有明显的界限。你必须融会贯通它。这需要持久、刻苦的训练——哪怕是香农,他也没可能一步到位的搞出哈夫曼编码算法。

必须在这两个方面足够训练有素,你才可能理解香农的伟大。

绝大部分比较难的算法已经被人解决了。我们可以学习他们的解决思路,然后解决实践中遇到的那些更为简单但并不能直接套公式的问题。

如果你曾经尝试过去想“为什么欧几里得会弄出几何学”“为什么某某定理可以这样证”“为什么他们就能想到这样去证”,那么提问题和解决问题的一般思路就学到手了——如果你这样学,那么初高中学到的每一个知识点,都在教你如何解决问题、如何设计算法(所有“按步骤处理即可解决问题”的步骤的设计,都是广义的算法)。

都在提的人工智能,其中的算法是什么?其实高中的知识就有

 

换句话说,你需要锻炼自己主动的提出问题、寻找解决问题的途径能力,而不是被动的记忆“套公式解决能套公式解决的问题的方法”。

但是,国内的应试教育以做题为目的。

学了轮轴?看,这道题要用到轮轴,我们要这样套公式;那道题是另一种题型,套公式得那样套——总结:关于轮轴的题型一共X种,它们的解法分别是#*&¥%#*……

久而久之,你们就只会背公式套公式了——你说手电筒?那玩意儿那么复杂书上没说我怎么可能知道!

绝大多数人,最终都学的不仅不会问问题,更不会解决问题。他们只是会套公式而已。

当手电筒都能难住你时,哈夫曼?差着十万八千里呢。这不是拿世界级难题难小学生吗。

手电筒真的不是个比喻。

很多人的确没有能力理解这种最浅最直接的知识:代码是如何控制硬件的?

你看,“老鼠夹子抓老鼠不是老鼠夹子有智能,而是我们自己想办法组合了杠杆、弹簧等东西,使得它可以在小动物碰触时动作”这个幼儿园小朋友都能懂的原理他们懂吗?懂了还会契而不舍的不断追问“计算机究竟是怎么认识0和1”吗?

这种程度的换位思考/反向思考都办不到,还能指望他们“自发寻找日常问题的解决方案”吗?还可能指望他们解决别的“日常动脑”的人也需要思考片刻的“难”题吗?

但是,哪怕只是当一个稍微不那么尸位素餐的、中小企业的底层领工者/技术员,完全不会动脑子,可能吗?

总结起来就一句话:算法很简单,中小学甚至大字不识的人都能学会;它只是要求你自己动脑子、创造性的使用你学到的知识而已。

创造性几乎是人类这个物种与生俱来的,没人知道该如何教会别人;但压抑它、剥夺它,却并不难。



Tags:算法   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
前言Kafka 中有很多延时操作,比如对于耗时的网络请求(比如 Produce 是等待 ISR 副本复制成功)会被封装成 DelayOperation 进行延迟处理操作,防止阻塞 Kafka请求处理线程。Kafka...【详细内容】
2021-12-27  Tags: 算法  点击:(1)  评论:(0)  加入收藏
分稀疏重建和稠密重建两类:稀疏重建:使用RGB相机SLAMOrb-slam,Orb-slam2,orb-slam3:工程地址在: http://webdiis.unizar.es/~raulmur/orbslam/ DSO(Direct Sparse Odometry)因为...【详细内容】
2021-12-23  Tags: 算法  点击:(7)  评论:(0)  加入收藏
一、什么是冒泡排序1.1、文字描述冒泡排序是一种简单的排序算法。它重复地走访要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地...【详细内容】
2021-12-15  Tags: 算法  点击:(16)  评论:(0)  加入收藏
前面文章在谈论分布式唯一ID生成的时候,有提到雪花算法,这一次,我们详细点讲解,只讲它。SnowFlake算法据国家大气研究中心的查尔斯·奈特称,一般的雪花大约由10^19个水分子...【详细内容】
2021-11-17  Tags: 算法  点击:(24)  评论:(0)  加入收藏
基于算法的业务或者说AI的应用在这几年发展得很快。但是,在实际应用的场景中,我们经常会遇到一些非常奇怪的偏差现象。例如,Facebook将黑人标记为灵长类动物、城市图像识别系统...【详细内容】
2021-11-08  Tags: 算法  点击:(32)  评论:(0)  加入收藏
随着注册制的加速推进,新股越来越多,截止到今天A股上市公司的总数高达4500余家,A股一直就是重融资,轻投资的市场,而上市公司发行可转债这种再融资的(圈钱方式)是最能让普通投资者接...【详细内容】
2021-11-05  Tags: 算法  点击:(98)  评论:(0)  加入收藏
导读:在大数据时代,对复杂数据结构中的各数据项进行有效的排序和查找的能力非常重要,因为很多现代算法都需要用到它。在为数据恰当选择排序和查找策略时,需要根据数据的规模和类型进行判断。尽管不同策略最终得到的结果完...【详细内容】
2021-11-04  Tags: 算法  点击:(40)  评论:(0)  加入收藏
这是我在网上找的资源的一个总结,会先给出一个我看了觉得还行的关于算法的讲解,再配上实现的代码: Original author: Bill_Hoo Original Address: http://blog.sina.com.cn/s/bl...【详细内容】
2021-11-04  Tags: 算法  点击:(36)  评论:(0)  加入收藏
每个人都有过这样的经历:打开手机准备回消息或打电话,一看到微信图标右上方的小红点,于是忍不住先打开微信;看完微信,不知不觉又被另一个App牵引,直到关闭手机屏幕才发现自己早已...【详细内容】
2021-11-03  Tags: 算法  点击:(30)  评论:(0)  加入收藏
文丨互联网怪盗团在互联网行业,尤其是在投资人心目中,往往存在一种“算法迷信”或曰“技术迷信”:某公司的广告变现做得好,一定是因为有算法;某公司的云计算业务开展的好,也是因为...【详细内容】
2021-11-03  Tags: 算法  点击:(25)  评论:(0)  加入收藏
▌简易百科推荐
前言Kafka 中有很多延时操作,比如对于耗时的网络请求(比如 Produce 是等待 ISR 副本复制成功)会被封装成 DelayOperation 进行延迟处理操作,防止阻塞 Kafka请求处理线程。Kafka...【详细内容】
2021-12-27  Java技术那些事    Tags:时间轮   点击:(1)  评论:(0)  加入收藏
博雯 发自 凹非寺量子位 报道 | 公众号 QbitAI在炼丹过程中,为了减少训练所需资源,MLer有时会将大型复杂的大模型“蒸馏”为较小的模型,同时还要保证与压缩前相当的结果。这就...【详细内容】
2021-12-24  量子位    Tags:蒸馏法   点击:(11)  评论:(0)  加入收藏
分稀疏重建和稠密重建两类:稀疏重建:使用RGB相机SLAMOrb-slam,Orb-slam2,orb-slam3:工程地址在: http://webdiis.unizar.es/~raulmur/orbslam/ DSO(Direct Sparse Odometry)因为...【详细内容】
2021-12-23  老师明明可以靠颜值    Tags:算法   点击:(7)  评论:(0)  加入收藏
1. 基本概念希尔排序又叫递减增量排序算法,它是在直接插入排序算法的基础上进行改进而来的,综合来说它的效率肯定是要高于直接插入排序算法的;希尔排序是一种不稳定的排序算法...【详细内容】
2021-12-22  青石野草    Tags:希尔排序   点击:(6)  评论:(0)  加入收藏
ROP是一种技巧,我们对execve函数进行拼凑来进行system /bin/sh。栈迁移的特征是溢出0x10个字符,在本次getshell中,还碰到了如何利用printf函数来进行canary的泄露。ROP+栈迁移...【详细内容】
2021-12-15  星云博创    Tags:栈迁移   点击:(22)  评论:(0)  加入收藏
一、什么是冒泡排序1.1、文字描述冒泡排序是一种简单的排序算法。它重复地走访要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地...【详细内容】
2021-12-15    晓掌柜丶韶华  Tags:排序算法   点击:(16)  评论:(0)  加入收藏
在了解golang的map之前,我们需要了解哈希这个概念。哈希表,又称散列表(Hash table),是根据键(key)而直接访问在内存储存位置的数据结构。也就是说,它通过计算出一个键值的函数,将...【详细内容】
2021-12-07  一棵梧桐木    Tags:哈希表   点击:(14)  评论:(0)  加入收藏
前面文章在谈论分布式唯一ID生成的时候,有提到雪花算法,这一次,我们详细点讲解,只讲它。SnowFlake算法据国家大气研究中心的查尔斯·奈特称,一般的雪花大约由10^19个水分子...【详细内容】
2021-11-17  小心程序猿QAQ    Tags:雪花算法   点击:(24)  评论:(0)  加入收藏
导读:在大数据时代,对复杂数据结构中的各数据项进行有效的排序和查找的能力非常重要,因为很多现代算法都需要用到它。在为数据恰当选择排序和查找策略时,需要根据数据的规模和类型进行判断。尽管不同策略最终得到的结果完...【详细内容】
2021-11-04  华章科技    Tags:排序算法   点击:(40)  评论:(0)  加入收藏
这是我在网上找的资源的一个总结,会先给出一个我看了觉得还行的关于算法的讲解,再配上实现的代码: Original author: Bill_Hoo Original Address: http://blog.sina.com.cn/s/bl...【详细内容】
2021-11-04  有AI野心的电工和码农    Tags: KMP算法   点击:(36)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条