你好,我是吴晶辰,欢迎来到《算法通识课》。
算法对你来说,可能是购物网站上推荐的“猜你喜欢”,是汽车导航规划的“最佳路线”,是餐厅里的自动点菜服务。在人机互动时代,你享受着算法带来的种种便利。
作为一个普通消费者,你不需要懂算法,不需要知道算法是怎么工作的,享受算法的便利就好了。但如果换一个身份,你是生产者呢?
人类提高效率的历史,是一部工具进化史。原始人用棍棒,农业时代用铁器,
工业时代用蒸汽机。每一次工具的进化,最先解锁工具秘密的人,都会率先实现巨大提升。
而我们已经身处智能时代。无论你从事什么工作,不管是跟计算机直接相关的研发,还是表面看是跟人打交道的销售、咨询、教育、服务和管理,人机互动已经无处不在。而算法,就是智能机器的最大秘密。
你可能会说,我又不是程序员,我不会写代码啊。你别担心,“懂算法”,并不是说你要知道关于算法的细节,你得会Java,会Python才行,不是这样。 我们要掌握的,是算法思维,是算法的逻辑和工作原理。
说一个最简单的例子。我们小时候算加法题,1加2,加3,一直加到10等于多少?最直接的方法,就是从头做9次加法。聪明一点的办法呢,是把1和10相加,2和9相加,一直到5和6相加。一共5对,每对的和都是11,合起来就是55。
不知道你还记不记得,这个方法有个学名,叫等差数列求和公式。用这个方法,不管等差数列里的元素有多少,求和的速度都比一个一个做加法更快。
其实,等差数列求和公式,就是一个算法。能在处理这个问题时想到这种解决
方法,就是一种算法思维。当然,这个
例子太简单了,算法科学家在实际中使用的算法和解决的问题,都复杂得多。有和没有算法思维,差别在哪呢?我举个例子。
假如你开了一家网店,是个网上超市,做得很红火,有一个挺大的仓库。那请想象一下,你会怎么摆放仓库里的货物呢?
你是不是会把它设计成一个真实超市的样子?酸奶、牛奶放在一起,锅碗瓢盆放在一起,杂志和书放在一起。这么摆放最容易管理,发货的时候也很容易找到需要打包的东西。
听着很有道理吧?但如果是有算法思维的人,他不会这么摆放。他会怎么摆呢?他摆放的位置可能让你觉得很混乱,书旁边可能是婴儿的纸尿裤,再旁边又可能是个足球。
这是为什么?因为在有算法思维的人看来,商品在仓库里面的摆放,是一个效率问题。既是时间效率问题,又是空间效率问题。
什么意思呢?你看,如果像超市一样,先分区,不同的区域码放不同的商品。那取货就会变得很花时间。
比如一个客户买了一瓶汽水和一本书,那取货的员工就得去两个区域,才能完成取货,很花时间。但如果汽水和足球
都是在仓库里随机分布的,那走很短距离就能找到两件商品的概率就高得多,取货的速度就快得多。这说的是时间效率问题。
空间效率也类似。如果先分区,比如说生活用品一个区,书籍杂志一个区。但因为电商客户的需求很不稳定,没准最近要开学了,各种教材的需求量增高,那书籍杂志需要的存储空间就变大了,超过了给它划分的空间份额。
这时候,到底是借用生活用品的分区,还是不借用呢?借用的话,就得不断重新分割仓库的区域,麻烦。不借用的话,仓库空间就不能得到最大化的利用。但是如果随机摆放商品,这两个问题就都能解决。
实际上,这种仓库管理模式,就是如今全球最大的网上零售商之一亚马逊在用的模式。
你看,重要的并不是某个特定的算法,而是算法背后的思考方式。有了这套思考方式,你才能重新定义业务问题,找到新的解决方案。而能不能写成具体的算法,只是怎么解决业务问题的方案而已。
算法工程师,就是用这套思考方式来解决问题的。而这门《算法通识课》,讲的就是这套思考方式。能不能有效运用算法思维,是未来高手和普通人的重要差别。
那为什么我可以来讲这套思考方式呢?我和你介绍一下我自己。
我就是一位算法科学家,也可以说是一位算法工程师,因为我研发的算法会应用到实际生产中去。我是美国密歇根大学应用数学方向的博士,现在在亚马逊公司西雅图总部的供应链管理部门工作。到2021年,我在亚马逊工作7年了。
我来做这门课,也有一部分原因来自我在工作中观察到的一个现象,可能你也注意到过。
在公司里,产品经理和算法工程师经常“不对付”。
产品经理觉得算法工程师“不懂业务、不说人话”,算法工程师觉得产品经理“不懂技术、需求变来变去”。我觉得这不是一个谁对谁错的问题,就是思考方式不一样的问题。
你可能也经常要和算法科学家或者工程师打交道,有了这套思考方式,你们合作起来不会再有“鸡同鸭讲”的感觉,算法工程师会把你当成自己人。
那这套思考方式,我会怎么讲给你呢?我把它分成了四个模块。第一模块,认识算法。你会对“如何评判算法”有个整体上的认识。
第二模块是怎么设计一个算法。我不能迅速地让你成为算法工程师,但在这方面的认知,你可以和资深的算法工程师同步。
第三模块是不同的算法策略。算法策略是算法工程师解决问题时的思想,我希望我对这些算法思想的理解,能让你在观察生活时有一个新的视角。
第四模块是算法前沿。我会给你介绍如今最炙手可热的机器学习类算法,看看机器是怎么获得人类还不知道的新知识的。
这四个模块集合起来,就是这门《算法通识》课,就是这套完整的算法思维了。
人机互动时代,机器不是用来怕的,而是用来爱的。加入这个课程,懂点算法,做这个时代的赢家。
我是吴晶辰,我们课程里见。
课程目录:
《吴晶辰·算法通识16讲》
了解它,才能驾驭它
发刊词:人机互动时代,懂点算法才能赢
模块一 认识算法
01 本质:到底什么才是算法?
02 复杂度:怎样判断算法的效率高不高?
03 启发:什么样的算法是巧妙的算法?
04 反思:计算机能不能避免人的错误?
模块二 设计算法
05 算法蓝图:怎样设计一个算法?
06 建立模型:如何把现实映射进计算机?
07 算法选择:选择算法最重要的考量是什么?
模块三 算法策略
08 迭代:怎样一步步接近答案?
09 分治:怎样拆解问题,逐个击破?
10 动态规划:怎样从小问题出发,逐级解决大问题?
11 分支定界:怎样决定谁是“被淘汰者”?
12 启发式:放弃最优解之后,怎么办?
13 蒙特卡罗:丢失确定性之后,怎么办?
模块四 算法前沿
14 机器学习:机器到底在学什么?
15 学习策略:机器学习如何获得知识?
模块五 结语
16 算法思维:怎么和算法工程师打交道?《吴晶辰·算法通识16讲》
————下载必看————
2、如无特殊说明,解压密码为:yudouyudou
3、部分压缩为part1、part2类型的,需要全部下载到电脑才能解压
4、解压工具推荐:电脑端推荐使用Bandizip(最新版),苹果电脑端用RAR解压王。
5、关于下载速度:下载速度慢的,请开通百度网盘超级VIP会员下载。
6、关于付费:所有付费行为均为支持本站日常运作。
7、版权归作者或出版社方所有,本站不对涉及的版权问题负法律责任。若版权方认为本站侵权,请联系客服或发送邮件处理。
资源失效请添加客服微信 “ s45246130 ”,发送资源名称,我们会及时重新补发
评论(0)