有一种神秘的生物,他们习惯身上穿着格子脸上顶个黑镜框,身后的电脑包是他们的武器装备,常常出没在地铁末班车上,黑眼圈和无尽的黑夜一起沉沦,沉沦……没错,他们是程序猿,一种类人型智慧生物(手动滑稽)。
作为他们中的一员,摆脱了白天敲代码时揪着脑袋上的毛死活没有灵感的抓狂,我摸着洗漱过后所剩无几的头发,陷入了沉思:究竟是谁发明了计算机算法?让成千上万的码农陷入脱发危机,进而引发身体机能下行以及求偶难题。
所有的大火都起源于最初的小火花,算法的发展也是如此,它基于先辈的智慧。算法作为一个复杂的体系,背后可不仅仅是计算机科学这么简单,它是数学、逻辑学和哲学的集合。尽管第一台电子计算机诞生于1946年,距今一百年不到,但是关于算法的思想雏形存在于不同学科当中,流传已久。
算法滥觞——数学,没有0和1拿什么来编码
数学的概念是从抽象思维中发展而来的,西方数学理念起源于古希腊,但是就像是生铁一般,只有加入零星的碳,才能完成向钢铁的转变。而阿拉伯数学理念的传入,就像是生铁中创造性加入的碳粉,激起了一场革命。
虽然阿拉伯数字是印度人发明的,经阿拉伯商人传入欧洲,但毫无疑问的是,阿拉伯数学家们是命运和地理安排下最恰当的中介,融入了自己对数字的理解。
算法一词的英文“algorithm”起源于阿尔·花拉子米的名字,这个阿拉伯数学家率先提出了“未知数”的概念,没错,从小学起一直折磨我们的x、n、a和b等等代都是花拉子米提出来的。
正是有人提出了未知数这一抽象概念,我们才有可能从特定的浅层的数据当中总结出普遍的本质的规律,并且这一规律能够在一定条件的前提下,绝对适用。而这其实就是算法中的逻辑,想要代码运行,只能好好建立可行规则,烧香拜佛可没有用。
而进一步搭好算法骨架的人物却是18世纪的托马斯·贝叶斯,这个人和梵高一样,活着的时候籍籍无名,但两三百年后,当大家开始发展算法理念的时候,翻出这位仁兄的学术论文一看——嚯,太牛了!
贝叶斯的研究领域是概率论,他率先将归纳推理运用于概率论基础理论,创造了贝叶斯统计理论。贝叶斯理论对于算法的发展来说,最大的价值在于它提出了一种偶然性,可以用来估计一个可能的因果关系。
以算法作为基础构建的网络世界是充满不可预见性和偶然性的,而贝叶斯理论就像是在黑夜中能够稍微给予人们安慰的亮光,让我们在不确定中能够把握一定的概率并且计算出具体的结果。而贝叶斯公式至今依然是在样本量不大,因素含糊的情况下帮助我们作出最优决策的助手。
在贝叶斯1761年去世时留下的论文《关于如何在机会论的框架下解决问题》里面,有一个有趣的公式。想象有两个相同的罐子(如下图),每个罐子里都有40颗石子,1号罐子装了30颗白的,10颗黑的;2号罐子里20颗白的,20颗黑的。
请问假设随机情况下,拿起一个罐子取出一颗石子且石子为白石子,那么这个石子来自1号罐子的概率是多少?
直观而言,人们认为白石子来自1号罐子的可能性更大,这里可以预先揭晓答案:没错你的直觉是对的。但是具体概率是多少呢?在计算上,有两种方法都能达到目的,设A为1号罐子,B为白色石子,可得:
(1)已知被选中的石子为白,用获得白石子的概率乘以选择1号罐子的概率,即(1)为ρ(B).ρ(A/已知B)
(2)已知白石子来自1号罐子,用选择1号罐子的概率乘以获得白石子的概率,即(2)为ρ(A).ρ(B/已知A)
我们由题目可以知道ρ(B/已知A)是75%,∵1号罐子有3/4的白石子,而ρ(A)是50%,∵罐子选择是五五开。
ρ(B)的计算比较复杂,∵A和B的假设并不相容,∴取假设A中获取B的概率和非假设A中获取B的概率相加。∴ρ(B)=50%×75%+50%×50%=62.5%
∵(1)=(2)
∴ρ(A/已知B)=
也就是说当看见石子的颜色之前,1号罐子中取出随机颜色的石子的概率为50%,一旦我们知道了石子是白色的,这个概率会上升为60%。
人类大脑的运作方式也符合贝叶斯统计学理念,通过身边已有的资料,我们可以简单估计一件事发生的概率,这种粗糙的估计被我们称为直觉。那么贝叶斯网络可以简单理解为一种精确的直觉,算法根据已有的条件可以得出一个“先验概率”,并且通过后续计算修正这个直觉,获得一个尽可能精准的判断。
这种能力相当于让算法模拟人类大脑思考的方式,它的重要性不言而喻。
别和算法谈感情,
逻辑就是它的真理
在电影《她》(Her)里,男主人公西奥多情感丰富细腻,离婚后选择对人工智能萨曼莎付诸感情,本来以为情投意合可以跨越人机差别,结果意外发现自己只是她六百多个情人中的一个,结果摊牌后即被甩,好惨一男的。我们想要赋予人工智能感情,但在算法上,这是个和逻辑相悖的命题。
世界三大逻辑体系分别是希腊体系,印度体系和中国体系。它们都是三段论,没错,我们熟悉的三段论,古希腊和中国体系有异曲同工之妙,由因及果,而古印度体系比较奇葩,由果溯因。
算法采用的是希腊逻辑体系。
然而尽管逻辑学十分美妙,但是纯粹不加验证的三段论有缺陷的。比如说这个推论:
●所有男人都是旅行者。
●有些旅行者极富有魅力。
●因此,有些男人极富有魅力。
这个推理第一直觉听上去非常合理不是吗,但并非如此,我们无法确定是否所有男人都是旅行者,要知道世界上还有我们这一类和电脑锁了的码农。
第二个就容易判断多了:
●我的睡衣可以放进抽屉里。
●我可以穿进我的衣服里。
●因此,我可以进入到抽屉里。
三段论处处都是陷阱,跳开了一个坑,还有千千万万个坑,如果没有人力介入,第一个例子和第二个例子在算法上几乎都是可以被认为是一样的,都符合逻辑但违背常理。机器在逻辑上绝对的理性对于数据抓取和整合来说,相当于提高效率的火箭推动器,可借用阿尔贝·加缪的话:“想合乎逻辑总是容易的,但是想从头到尾一直都合乎逻辑几乎是不可能的。”
Bug的引起很多时候要归结于码农写程序的时候逻辑框架出了问题,前言和后文神仙打架,计算机直接罢工不运行了。所以码农们都要“抓虫子”(bug),哪怕你是大佬,也要抓虫子,没有“抓过虫”的程序猿不是好社畜。
当逻辑上通顺后,就要帮助机器理解信息,这个时候就要请出另一位大佬——香农,他的信息学通过二进制帮助算法理解信息。为了将逻辑数学化,乔治·布尔发明了二进制编码,可是将二进制变成机器语言,赋予0和1灵魂的人却是香农。
比特(bit)相当于不确定性减半的信息量,让信息流通效率提高。想象一下,在一座拥有4000本藏书量的图书馆里,如果其中有500本书的封面为蓝色。那么“你寻找的那本书封面为蓝色”这个信息相当于:
逻辑是算法的灵魂,没有逻辑的算法就像是一盘散沙,无法发挥真正的作用。计算机之所以能够拥有人脑无法媲美的效率,正是因为严谨的逻辑能够帮助算法迅速过滤非必要的纷杂信息,将范围缩小到所需的信息量,处理进程。如果算法就像人脑一样天马行空,那么它就丧失了自身最大的优势。
人与技术共舞,
谁是领舞人,哲学给答案
算法的发展不是一个完成时,而是一个进行时。当投资者把目光投射到人工智能领域,当人类更加期待创造出智能生命时,我们应该放弃造物者的傲慢,此时我们更需要做的可能是思考——思考我们和技术的关系。
当AlphaGo占领了人类智商制高点——围棋的时候,人类不由得打了个冷颤,套用起点一句话,人工智能竟然恐怖如斯。
实际上,机器基于大数据分析不断延展的算法能力并不像我们想象中的那么强大。哲学上,世间充满了不确定性,在2017年3月的《哲学杂志》中诺姆·乔姆斯基提出,科学的核心并不是在统计的基础上建立一个粗略近似的现象。而算法看似精确,然而对于未来趋势走向,它能做的只能是估计,即使这种估算基于过去历史大数据,但是依旧无法预见未来。
这个世界上除了“如果……那么……”,还有第三种不确定性,超脱了人类的想象和过往的经验,这就是“黑天鹅”像三星Galaxy炸弹系列、棱镜门以及其他“黑天鹅”拍打翅膀呈现出的事件,都是在我们经验以外的。但是,我们能够很快内化新的状况,形成处理机制,这是人类天赋使然,然而对于人造的算法来说,它应对黑天鹅的能力显然不如人类。
先别急着骄傲,我们被大数据牵着鼻子走也是事实。你能想象吗,美国有很大一部分人相信地球是平的!而强化他们认知偏差的正是算法推送,算法察觉到你对相关方面信息的兴趣,像加农炮一样把同质信息传达给用户,不断加深这个印象。算法考虑了人类的这些认知偏见,继而对每个人的偏见进行了解码,并通过强化这种偏见来做出反应,算法不过是朝着它认为的风向继续吹气。
为什么我一个码农会思考地如此深沉?那是因为我爱这土……不,那是因为这本书——《极简算法史,从数学到机器的故事》。作为纯正理工男,历史从来不在我的射程范围,但是这本书通俗易懂,外国人写的东西就是语言简单,没有什么为难我胖虎的词句。
从前大学里没有注意过专业的发展史,现在边摸头发边看,感觉自己的悲愤减少了,对这些开拓者的敬佩增加了。
《极简算法史,从数学到机器的故事》由吕克·德·布拉班迪尔所著,重点探讨了计算机的描绘了一场人类探索数学、算法与逻辑思维,并最终走向人工智能的梦想之旅,展现了哲学家、逻辑学家与数学家独特的思维方式,探讨了算法与人工智能对科学和社会的巨大影响。
吕克·德·布拉班迪尔本身就是一个集数学家、逻辑学家以及哲学家于一体的跨领域达人,可以说,以他的能力,驾驭这本书轻而易举,而值得我安利这本书的一点,是他在书中体现出的一种克制,不刻意炫技的克制。
这本书对入门级读者很友好,章节设置上可以勾起阅读兴趣,而且通读下来会发现封面Q版人物与书中涉及的人物一一对应,跟着书籍找人物也成了看书的一大乐趣。
? 超越 ChatGPT!90% 的人都不知道的 DeepSeek 隐藏用法大揭秘
图片文字环绕shape-outside 是一个允许设置形状的 CSS 属性。它还有助于定义文本流动的区域:.any-shape { width: 300px; float: left; shape-outside: circle(50%);}shape-outside 属性定义了一个可以是非矩形的形状,相邻的内联内容应围绕该形状进行包装。 默认情况下,内联内容包围其边距框; shap
不知道你们是哪个年代的啊 是70 80还是90?偶今年23 算是后80吧 。钱。。。 对它 我不知道你们怎么想的 但是 我就可以说 它对我而言除了情感,没有比它更重要的啦! 光看看现在的房价 我想哭的心都有啦 你们也知道偶就不用说啦
好难啊,学什么都好难啊,想学好一样啊更难。现在的社会更是逼的你必须有你的价值,你才能在这个‘适者生存’的环境中生存下去。还得必须付出努力。否则你就会被淘汰,被逼的连基本的生活都保障不了,就更别说好日子了。
一个小孩子,从出生到结束要经历很多的事情,一个人的一生弯弯曲曲,到最后,我们需要做的可能是找自己。 哥们儿,终于休完学几年后,又重新毕业了,听说他自己要去干销售,我知道从心里自己不喜欢干销售的人员,无论怎么样,钱多钱少,从心眼里我是非常反感这个职业,所以最后,我选择了技术这条路,试图将他带上这条道,但是我知道人不可倚老卖老,自己只是一个小小的角色,因此还是将
最近因为房子装修及工作和生活中遇到的一些事情,发了一些对生活的感慨。
持续的复盘学习!
如果你打算从事IT行业或刚进入这个行业,也许本文下面的小内幕会吓到你,因为这些事平常都不会公开讨论的。如果你是IT资深人士,或许你已经遇到其中的大部分了。 这些内幕大多数是针对网络管理员、IT经理和桌面支持专业人士。虽然这些小内幕并不针对开发人员和程序员(这两类人员也有对应的小内幕。),但有些或许也适用于他们。 公司因此视你为其“佣人” 虽然IT业的薪酬比其他很多行业要好,但有公司因此视
考完计算机四级网络工程师 不知道能不能过 就匆匆忙忙 报了软考的网工 唉 想象为了什么 为了什么 不知道 为了有份好工作 为了能有比较多的钱 让我女友花吧 还有买房子 唉
写个博文不容易啊
def transmit_to_space(message): "This is the enclosing function" def data_transmitter(): "The nested function" print(message) data_transmitter() # pri
域。不过,小编也经常看到后台留言,表...
满腔热血投身社会,加入IT吃苦受累,摸爬滚打终日疲惫,市场信息必须到位,一日三餐时间不对,屁大点事反复开会,逢年过节值班应对,一时一刻不敢离位,各种报表让人崩溃,陪同客户回回喝醉,客户总嫌价格太贵,临管执法还要索贿,无暇顾家愧对长辈,回到家里内疚惧内,工资不高还要交税,囊中羞涩,见人惭愧,青春身体已经耗废,人生年华如此狼狈, 哎,IT人真累! ---------------------------
很少写博客,没想到之前因为没注意可能写的太具体的内容,导致被封了号。后面一定要注意了。不要误导或者影响大家的判断。之前只是想让大家觉得我是真实的做过。而不是来瞎说。长点心吧,吃一堑长一智吧。最近项目还算顺利,网络设备等待到货。整体网络没有之前的SDN架构,回归最普通网络架构。没有什么新鲜的东东。我开始准备利用空闲时间学点什么,想从自动化运维学学,找了个培训机构正好双十一优惠,是时候需要对自己投资了
一位做电视企划与采访的年轻人,常常需要加班,日夜颠倒。 因与家人同住,所以他妈妈常会担心,常念他:要记得吃饭,别太晚睡,开车要小心等等,这样的唠叨每天反复好几次,他已见怪不怪,习以为常。只是有时他也会觉得不耐烦,一见到母亲就想逃,免得听她啰嗦半天。有一次年轻人赴花莲采访证严法师,听到证严法师说一句话,他觉得很有道理。她说:「如果一个父母常常担心他的孩子,他的孩子会没有福气;因为福气都
编程不是... 编程不是操作键盘快速敲打。编程不是牢记键盘的快捷键并使用退化了的鼠标工作。如果首要考虑,编程并不是要学习每种编程语言。不能通过电脑的品牌、价格、性能和操作系统来决定一个程序员是否优秀,也不能通过他们对代码编辑器和IDEs--VS-Code、Atom、Intell…
01:人类全身上下,最强韧有力的肌肉,竟是舌头。 02:张开眼睛打喷嚏是不可能的。 03:憋气自杀也是不可能成功的。 04:每一次你舔一张邮票 的背胶,你就吸收了十分之一卡路里。 05:右撇子平均比左撇子多活九年。 06:鳄鱼无法伸出它们的舌头。 07:北极熊都是左撇子。 08:某些狮子可以一天之内交配50次以上。果真是万兽之王呀... 09:鸵鸟的眼睛比脑袋大;而海星至今还没演化出脑。 10:跳
最近工作压力很大,同时本着对阅读者负责的态度,原来是一天一篇的速度,必然是支持不下去了,所以以后会提高文字的
命令行程序trtexec在 samples 目录中包含了一个命令行包装工具 trtexec。trtexec 是一个可以快速使用 TensorRT 的工具,无需自行开发应用。该工具有三个主要用途:网络基准测试:可以用随机或用户提供的输入数据进行网络的性能测试。生成序列化引擎:许可从模型生成序列化的推理 ...
精析NDK UI API(节点增删和属性设置)〇、前言一、UI 节点的增删1、挂载节点2、OH_ArkUI_NodeContent_AddNode3、移除节点二、节点属性的设置1、ArkUI_NodeAttributeType2、ArkUI_AttributeItem〇、前言在上一篇,重点是案例的完 ...
plot图画多条折线图,如何把所有的折线都包含在图中呢(坐标轴范围如何设置) plot(himpact,axes=F)axis(1,at=c(0:23),labels=c(1:24));axis(2,at=c(0:100),labels=c(0:100));lines(spline(x=c(0:23),y=himpact[,2]),col="blue");