课代表立正的官方Podcast
深度访谈,有用干货,亲身验证的「真本事」
Superlinear Academy创始人,Maven Top AI Instructor
前Statsig布道师(OpenAI收购),腾讯副总监,Meta,Amazon;康奈尔经济学博士
社区:Superlinear.Academy
课程:ai-builders.com
个人:lizheng.ai
往后一点
不会站到的
不会可以
就不动
停停停
大家好
我是孙运征
感谢大家对我的
感谢大家对我频道的支持
然后我今天能达到100万的订阅用户
我显得非常高兴
今天我们有幸请来了吴京成来给大家
我们今天一块来做这些视频
大家好
我们今天有幸请来的吴京成同学
来给我们讲算法
算法这个话题虽然听上去很高深
但是其实跟我们的生活是息息相关的
吴京成同学也在德大上了一门课
然后现在已经有1万多个人去买这门课了
所以说今天来免费
今天来免费给大家介绍一下这门课都讲什么的
好
大家好
我是吴京成
很高兴来到孙运征的频道
然后也希望大家多多支持孙运征的YouTube频道
为了点赞评论加关注一键三连
谢谢
那金诚同学你做一下自我介绍吧
好好好
我叫吴京成
然后今天很有意思
今天拿了这么一个小玩偶是孙运征家的
然后我是北京大学毕业的
然后我是在北京大学学的是数学系
然后方向是计算数学
后来我到了美国密歇根大学
读的是应用数学的博士
然后我的研究方向是跟库存管理有关
然后跟优化算法
然后跟运筹学有关
后来我就到了亚马逊的库存管理部门
然后也是它的供应链管理部门
在那做算法方面的优化研究
我听了这么多
我觉得脑子都晕了
但是听起来大家网上盛传
北大数学系都是一些很神奇的人
你觉得怎么样
是对的吗
我觉得北大数学系有很多很厉害
很神奇的人
然后我其实不算
我其实不算
得到助理奖师
我觉得我是一个比较稍微
有点斜杠倾点的那种感觉
我自己是做算法方面的研究
但是我自己是一个特别喜欢演戏
然后在表演舞台的这么一个人
所以我经常会参加一些
铁
铁口秀西雅图铁口秀
没有
我们不是铁口秀
西雅图非著名铁口秀
不是铁口秀
西雅图非著名戏剧演员
非著名戏剧演员
好的
所以你觉得许善凡对你演话剧有帮助吗
一点帮助都没有
如果你想当一个好的话剧演员
不要去学算法
没有
那好
那许善凡会对我的什么有帮助呢
算法实际上有意思的一件事是
它的一个帮助你的思维逻辑
当然它又跟数学不是
不是简单的数学有关
真的
那所以什么是算法
算法
如果你一定要看它的定义的话
算法就是为了解决一定的问题
遵照一定的步骤
执行一些命令
最后得到一个答案
这么一个过程
这个叫算法
就是把人变成机器人的过程吗
如果你一定要这么做
可以说是
但上我们每个人都有作为人性的一面
和解决问题的时候那种追求效率高效的那一面
如果说你想特别高效的解决一些问题
那学一些算法实际上是好的
如果我想高校再找女朋友
就有一个这样的算法帮助
可以
我觉得是可以的
你这世间有这么多时间管理大师是吧
我觉得算法比较厉害
对
我给算法大师试试看
那我们知道了
就是算法是帮我提高我做事情的效率是吧
然后有一套怎么说呢
规定的方法
或者说提炼出来的方法
对这个又是一个非常有意思的事情
当然我们说经常我们要做事情
想做事情做的效率高
但是我们是遇到的问题很不一样
对吧
你有时候要去看这个事情
就说找女朋友
有时候你在工作当中要安排工作
当然每件事都不一样
所以你采取的方法也不一样
你用的算法肯定不一样
这个时候就需要我们对一些经典的问题有些了解
让你遇到类似问题的时候
你说
我就遇到过这个问题
我学过这个问题
这个问题当中
用这个模型用这个算法比较合适
那这个时候你就能把你以前学到的知识
用到无论是你生活当中
或者是工作当中去
其实我提女朋友这件事情是因为
我之前有一个学弟他在学校教书
他就用这个来引出算法的
他是说算法可以告诉你在什么时候
有子偶是最佳的时机
因为你会不断explore
但是你要去开始explore
然后在这个过程中的话
是用一个optimal trade off
对
有这么一个理论
就是说
范莱茵是代表大师的老婆
是我通过算法找到的
没有
这有一个
一个不用secretary的一个问题
就是说你如果说
你会interview 100个secretary
我忘了具体是多少
第37个还是第几个
我具体忘了第几个
就是说如果你要找女朋友
然后你知道你这一辈子可能会遇到10个人
然后可能从
你可能先去认识三到四个
然后你看一下哪个人最好
你不一定要去选他们
之后你一旦发现了一个比你之前
遇到跟你最合适的一个人
更合适的一个人
那你就抓住机会
然后你就不用再浪费时间了
这就是你最好的选择
否则你有可能一辈子都找不到对象了
找不到好的对象了
换一个话题吧
换一个话题
好的
那好的
就是算法在我们生活中无处不在
那可是我觉得就是大家不用算法也可以活得很好
那肯定算法用来听起来
就是算法是用来解决一些更复杂的问题的
对吧
对
我觉得应用算法实际上它有两个特别典型的目的
一个是
你说对
我觉得有两个主要的解决方向
一个是自动化一些事情
就是很多东西需要
是我们经常要去labor
我们就是手工做一些事情
比如说我要看一眼以前看
比如说你以前FBI干一些事情
可能它有很多人的照片
然后你要看这个照片拿过来看看是谁
然后这个照片拿过来看看是谁
这可能都是人工做
那现在我们就有可能
就可以有一些机器学习的算法
然后能帮你直接去识别出这个人脸是谁
那这个就把这个过程就完全自动化了
然后在算法还经常干的一件事情是优化
就比如说再举个例子
就比如说我们开车
现在有很多帮助我们开车的一些算法
然后一方面它提供了自动化的一个过程
它帮助我们开车
另外一部分它还优化
它试图开的更安全
虽然我们现在可能在经常新闻当中
可能看到有些开车的这些算法
并不一定显得那么安全
但是如果真的和人开车出事物的比例比较一下的话
可能还是算法更安全
这个实际上是一个优化的过程
所以我觉得算法在我们生活当中
很多时候起到这两个方面的作用
你要说我们不用算法是不是可以生活下去呢
我觉得没问题
我觉得没有问题
只不过我自己的看法是从工业革命之后
我们的整个社会就越来越多的追求效率
而你看机器上是追求效率的
然后我们现在这个时代
算法也是极其追求效率的
如果你的工作或者你要做的事情
你对效率有要求的话
那算法很有可能能是你的好朋友
但是如果你对这些没有要求
比如说我是一个艺术家
我就喜欢做一些天马行空的东西
无论是音乐
无论是绘画
这个是需要你的想象力
你可能不需要说
我要在多少时间之内做出多少幅画
效率不是我想做的事情
我也不想自动化这个过程
那你就不需要算法
这个时候你完全没有算法可以活得很好
好的
所以我这样说一下的话
或者说这样
我觉得有一个例子就是
有一些这些所谓的life hacker
他们就把自己的人生做得特别精准
然后很多东西吃了卡路里
然后锻炼的时候产出的消耗的卡路里
什么的都算得特别清楚
他甚至对自己的精力值什么都有估计
然后他就基于这些东西
把自己的人生变得非常optimized
他就利用时间的效率非常高
未必值得鼓励
但是我觉得这种人就是
其实算法大师
可以这么说
每个人有自己的人生选择
然后他每个人有自己的方法论
对吧
他可能说我学了很多跟算法有关的东西
所以我就愿意把这方面的东西
量化的一些东西用到生活当中去
然后当然不是每个人都这样
其实你也可以学了之后你不用
但是这是你自己的
相当于是你自己最终的一个选择
好的
那这是我们人生
就是人生感觉对我来说不是那么复杂
但是可能管理公司
或者说是管理机器
或者说是利用很大的算力去完成一些任务
或者说操作很多机器去完成很多任务
那这个时候可能算法就很重要了
对吧
我记得就是我之前去亚马逊的仓库
参观过
就是一进去
好多好多仓库里边
然后就几十万种商品放在一层
那这个时候怎么样子把这个商品存进去
或者取出来
感觉就是很需要算法才能解决
对
这实际上是很有意思的一个问题
就是说如果你想一下仓库
仓库上有点像supermarket
有点像超级市场
然后里面有很多货物
然后工作人员
你要order
你要买什么东西的话
工作人员要到这个仓库里面去把这个东西拿出来
你可能再一想
这个仓库可能它就是一个跟supermarket
一样的一个东西
但是如果你真正到亚马逊的仓库里面去看的话
就完全不是这样
亚马逊的仓库里面货品的摆放都是非常随机的
random
对
我去了以后也很实情
这唱字的话为什么会更有效率呢
对
就是首先你要取货物的时候
就是如果你是一个工人
你然后我order了一个卫生纸
然后你进去找卫生纸
当然找东西实际上并不麻烦
那个所有这些卫生纸在这个仓库的什么位置上都是已经注册或者定义好了的
你让在自己的手机上面或者一个电脑上面一看
他就告诉你最近的卫生纸在这个地方
你作为一个取货的一个工人的话
你就可以走最近的路径去那个地方就可以了
这个地方
这个这件取这个东西呢
还挺容易的
但是你放东西的时候
如果卫生纸全都放在仓库的一个指定的位置的话
你叫你走很远
所有东西都放在那
但是每次要有新的要有卫生纸要拿的时候
你都要走一个很远的地方去那
但是如果我我作为customer
我买了一卷卫生纸和一个牙刷
然后呢
这两个东西又恰恰放在了不一样的地方
那就要先到A地点
再到B地点再回来
但是如果这些东西在整个仓库里面是随机摆放的话
就算比较均匀的随机摆放的话
你就会发现你可以很容易找到两个非常近的地方
然后就把这个取出来了
实际上这样的话就可以提高效率
对
而这这就是对效率的一个追求
而背后这个算法呢
他有一套一套理论啊
一套算法来支持这件事情
对
所以说背后的其实大家已经算好了
这样子摆放是最有效率的
而且其实我用了同样的资源是吧
我同样的空间
然后同样的东西
可是我可以让我这个事情做的更快
那这个就是挺神奇的一个地方
对
这个效率这件事是算法特别追求的一个目标
就是首先要把事情做成
其次就是说我们要追求效率
再把事情做成的情况下效率尽量的高
嗯
就我想起来以前韩信点兵
这是不是也是一个算法
韩信点兵多多益善是吧
韩信将兵多多益善
那韩信点兵是什么
好像就是说他用了一个很快的方法
然后下面的人报数
然后就知道了这练兵场上多少个人
哦
那我那我听起来应该应该是一个很有意思的一个算法
哎呀不可
我这人们这是不够
不够不够
哈哈哈哈
但大概有一个意思
我觉得应该是
你来解释解释
其实也就记得这个
哈哈哈哈
都不记得了
哈哈哈哈
大概就是一个算法
就算你
那我这还有两个问题吧
嗯
第一个就是大家讲到算法的时候
其实好像很多定义的样子
比如说你刚刚说
我们生产论语是一种算法
嗯
然后大家在刷题的时候
也会要学算法数据结构
嗯
然后国内现在很多这个
工程师叫算法工程师
专门叫算法工程师
这个都是一个意思吗
还是其实大家是指的这个算法的不同部分
嗯
可能有一
还有很多相同的部分
就是算法实际上是一种解决问题的一种
类似于思维逻辑
然后你要是说在网上刷题
也有做一些算法题
实际上它背后有一些
呃
有几个一定数量的一些思维逻辑
然后比如说动态规划呀
或者二分法呀
这类东西
如果你把这些思维逻辑理解的话
嗯
解决这些问题
实际上就是说
特别特别问题特别处理
但是我的这个
general的背后的逻辑是一样的
嗯
然后你要说算法工程师
算法工程师必须得懂这些逻辑
他才能真正遇到一个问题的时候
设计出一个好的方法解决它
并且解决的更快
当然作为工程师呢
你还肯定要把这个东西要真正写成代码
写成产品
让它真正在计算机上的运行
而不是只是停留在
就像是你做饭
我给你一个recipe
你知道怎么做
但是你从来没做过
那你也不是一个厨师
嗯
所以算法是一个逻辑
然后你通过代码把这个逻辑变成一个
程序
嗯
那第二个就是
算法就是为什么让你这么
就是你为什么对算法这么interested
是不是它因为它设计很精巧
给你一种秩序上的快感
对
有
绝对是有的
就首先
实际上有两点
我们说到算法的时候
我会经常说
有一部分是数学模型的部分
就是你要解决一个实际问题
你首先得理解这个问题
你要用一种量化的方法
用一种逻辑的方法把它刻画出来
这个是模型的部分
一旦你刻画出来之后
你会发现
我要解决其中的某一个特别的一个问题
那这个时候你可能就要用
用算法来做
但是算法有很多种
你可能能最开始先设计
我用一个特别蠢的算法
比如说
那个暴力解法
那个
我要猜你的密码是什么
当然猜密码也没有什么更好的别的方法去猜
就是说
嗯
那
我们举一个什么例子变化
韩信点兵的例子
哦
点还是
对
韩信点兵算不懂
就是说
韩信点兵
我们可以韩信一个人过去一个一个一个一个一个人的点
这样的效率很低
然后呢
但是他他新想出一个好方法
说我告诉你们两个将军
你们各自把自己队伍点完了
然后这两个将军也说
哎
这哥就给这两个旅长
你们把我这个东西点完了
然后效率就最高
我要搜一下韩信点兵
哈哈
好
暂停五分钟啊
A few moments later
好
好了
我们用五分钟的时间看了一下韩信点兵是什么
但好像跟我们要讲的东西没有太大的关系
哈哈哈
可以把它剪掉了
整个整个韩信点兵的都剪掉了
我们再找一个什么其他的例子吧
啊
愚蠢的愚蠢的算法到高级的算法
嗯
的例子
我们就还说刚才就还说刚才那件事吧
叫还是韩信点兵这件事
如果有两种做法去做
韩信有一个傻的韩信
有一个傻的韩信呢
然后韩信就会一个一个一个人
那一共如果有一万个人
他就要点一万次
但是呢
那然后并且花的时间就可能是一万秒
对吧
就很长时间了
但是如果他把这个任务分派给两个人去做
这个这个军长
你就点这边的
那个军长你去点那边的
然后这两个军长又可以同时的去
再把这个任务分配给底下两个师长
哎
这个师长
你就点你们是有多少人
这个事让你点你们是只有几个人
这些东这些信息全部分散化
然后最后再到每个班
每个班长就数自己班有几个人十个人数完了以后
告诉自己的上级
这样的话就可以并行去聚散这件事
那整个花的时间就少了
这就是一个
典型的一个蠢的方法和一个稍微聪明一点方法
那其实我在学计算机的过程中
一直对这个动态规划这个东西
就是你学了以后
可是我觉得我没有一个很直观的理解
要不来这个做个例子
给我们讲讲动态规划的思想是什么吧
那那那先点定了
不是先点定的例子
我说就是在这个
在这这次正好来给我们讲讲动态规划是干什么的吧
我不知道你原来玩没玩过一个游戏
叫做大航海十台四
是一个特别好玩的游戏
如果你没玩过的话
我极度推荐你去玩一玩
然后其中有一个桥段
其中有个桥段是你作为主人公
你会走到一个酒馆
然后酒馆里面有一个人
然后这个这个人会给你玩一个抓硬币的游戏
这桌子上面有一堆硬币
然后呢
你每次可以抓一个硬币两个硬币或者三个硬币
你不能不抓
你必须抓一二三当中的一个
然后呢
你的对手也是同样的规则
你先抓
谁抓到了最后那个硬币
谁就输了比赛
请问这时候你该怎么抓
你如果说你遇到这个问题的
那你说我抓一个
抓两个
抓三个
你不会知道有什么Consequence
你不知道将来会发生什么
但是如果告诉你
现在桌上只有一个硬币了
然后要你抓
我死了
你就死了
如果这两个硬币的话
抓一个
你抓一个
三个硬币
抓两个四个硬币
好
五个硬币呢
抓一个
对
对吗
四个硬币的时候你抓三个
然后呢
等到上一个的时候死的话
就抓一个的时候死
你如果五个硬币的时候
你抓一个
你抓
对啊
五个硬币的时候我又死了
不不不
因为我抓一二三
对手剩下的就是四三二
对
他都能解法
对
完了
这段得重说
不用重说
所以你发现
抓到五个硬币的时候
我就死了
你又死了
你抓一个硬币的时候
剩一个硬币的时候你会死
剩五个硬币的时候你会死
六个的时候你又活了
七个时候又活了
八个时候又活了
九个时候
你又死了
对
因为九个硬币
你无论抓几个的时候
对方都可以把剩下的一些硬币
抓完剩到五个
但是你知道五个
你一定会死
所以这个
这你会发现了
你之后剩
你剩
现在剩N个硬币的时候
你是活还是死
取决于N-1
N-2
N-3的情形的时候
会发生什么事情
那解决这类的问题
你只要从小向大的来解决
先看N等于1的时候怎么解决
N-2上怎么解决
这样的话往上推
到N等于1
一万的时候
你也能把这个问题解决了
这是动态规划吗
这是动态规划
它和地归有什么区别
地归
地归是一种关系
比如说N的时候的情况
基于N-1的情况
基于N-2的情况
这是一种地归关系
动态规划是解决问题的一个方法
地归定义的只是关系
定义的不是解决问题的方法
OK
嗯
那动态规划里面是不是一定会包含地归关系
会
动态规划是基于地归关系
它首先有地归关系存在
然后呢
从小到大构筑一个结
这个是动态规划的一个
从算法上面的一个问题
但是为什么叫动态规划
因为动态规划最初解决的问题
大部分的时候都有不同时间的概念
就比如说你现在做一件什么事情
你现在做一件事情会影响
将来会把你的状态在下一个时间的时候发生改变
然后你下个时间段再做一个事情
又会把你带到下一个时间的另外一个状态
而这个时候
你如果想最终达到某一个状态的时候
你需要倒着来推
这个是就有不同的时间段的这个问题叫做动态规划问题
当然你用这个模型
并不一定要解决那些有不同时间段的那些问题
因为时间只不过是一个变量
对
OK
所以说
对吧
刚才我觉得就是一个很好的例子
就是我之前我可能要想
我看到了一堆硬币
我就在想我拿一个
拿两个
拿三个
但是如果从最小的到推的话
这个问题其实就有解了
对吧
我就知道我在拿到14硬币的时候
我到底应该拿几个
对
你有多个硬币的时候
你多硬币的解
实际上基于少硬币的解
这个是你跟他说的低规关系
有这个低规关系之后
你知道你要从后往前解决这个问题
这是动态规划的算法解法
所以怎么样是用动态规划去追女朋友
那就是先想清楚你最后要什么
从倒着来看
然后看看这个遇到的这个女孩合不合适
然后你想知道
到什么程度上我求婚
他会同意
需要满足哪些条件
那我先实现哪个后实现哪个
从后向前推
这就是动态规划
这真的没说出来
估计不管用
能用吗
不管用
不是成功了吗
那还要帮忙
对不是
什么法法
叹息法
暴力法
什么
不是
要看
什么
没有
我找我老婆没有用到算法
大家记得了
算法家是找老婆也不是用算法家
所以我们这些课其实是没什么用的
好的
其实可以了
可以了
我们最后
这视频最后
就是我们刚刚讲了
那我们稍微总结一下
就是我们视频刚刚讲了
就是算法在我们生活中有什么用
但是它更重要的是用来解决什么样的问题的
它可以提高我们的效率
是吧
它可以帮助我们优化
然后它可以把一些东西自动换
停下来
让我们去使用更大的力量
比如说算力
那它也有一些很精巧的数学构思在
比如说这个动态被换了
就是你如果从前往前的话
就刚才那个例子确实很难解
但是从前往后的话
它就有一个解法
从前往前
从前往前就有解法
如果对
如果从前往后没有解
从前往前就有解法了
对
所以说就是这个时候
就是学会了算法
有的时候真的可以让你的生活变得更简单
或者说这就是一个很好的hack
就是在别人
不知道怎么解决这个问题的时候
你是有一个很好的解答
你是有一个最好的解答
下回别人要再问你
怎么用算法的方法找女朋友
找老婆
你也可以装逼的跟人说一说
但是估计没有用
我觉得应该是没什么用
那好
这个金晨同学在得到的课程叫什么名字
叫做
叫做什么
算法同时16奖
对
我在得到的课程叫做算法同时16奖
欢迎大家关注
里面都讲了些什么东西
在这个课程里面
我们会讲一些算法是什么
算法关注的东西是什么
怎么理解算法
有那些我们常见的一些算法当中用到的一些思维
到最后的时候也会讲一下机器学习算法
有什么特别有意思的地方
好的
那大家有如果感兴趣的话
欢迎去subscribe金晨同学的课
只要70人民币是吧
两杯奶茶钱就可以去学到这么多高级的算法知识
感谢大家关注
希望大家更多的关注孙义征的YouTube频道
有本事在你的课里边说