你早就用过机器学习:别慌,它不是外星科技
你有没有过这种经历?周末瘫在沙发上刷短视频,本来只想刷5分钟放松一下,结果一抬头,两个小时过去了——你刷了12只橘猫踩奶、9个游戏操作集锦、7个美食教程,甚至还有2个教你做手工的科普视频。你忍不住疑惑:这APP怎么比你自己还懂你喜欢什么? 或者,你刚打王者连跪三把,心态崩到想卸载游戏,结果下一把匹配到的队友突然个个carry,对手菜得像人机,你躺赢拿下MVP,忍不住怀疑系统是不是在“演”你? 再或者,你最近想换个动漫头像,打开AI绘图软件输入“银发红瞳机甲少女,背景是樱花飘落的霓虹灯雨夜”,几秒钟出来的图居然和你脑子里想的几乎一模一样,你惊叹:这AI会读心术吗? 别慌,这些都不是外星科技,你早就天天在用它们了——它们背后的魔法,就叫机器学习(Machine Learning,简称ML)。咱们这章的目标很简单:把你之前对这些技术的模糊感受,变成清晰的直觉,让你知道“哦,原来这就是机器学习,我也能玩转它”。
1.1 你早就成了机器学习的“老用户”
先给你看一组数据:据《2023年中国互联网产品算法应用报告》显示,国内TOP100的APP里,有87个都在使用机器学习技术,从你每天用的微信、抖音、王者荣耀,到外卖平台、购物软件、甚至你打卡的校园门禁系统,背后都有机器学习的身影。 你可能会说:“我没主动用过啊?”错,你早就用过无数次了。 比如你刷抖音的时候,你点赞了一个猫片,划走了一个美妆教程,在一个篮球视频下面停留了30秒没划走,这些行为都会被算法当成“信号”收集起来。算法会自己总结:“哦,这个用户喜欢猫,对篮球也有点兴趣,讨厌美妆内容”,下次打开APP,它就会优先给你推猫和篮球的内容,你刷得越久,它越懂你,最后甚至能精准到给你推“橘猫踩奶”“库里过人集锦”这种你刚好感兴趣的内容,这就是机器学习在帮你“过滤”信息,不用你自己在海量内容里找。 再比如你玩的游戏匹配系统,它不会随便给你匹配对手,而是会算你的“隐藏分(MMR)”——你赢得多,隐藏分就高,它就会给你匹配同样隐藏分高的对手,让你有挑战性;你要是连跪三把,它怕你生气退游,就会偷偷给你匹配几个强队友,让你赢一把开心一下,继续玩。这个匹配系统也是机器学习做的,它根据几百万玩家的对局数据,自己总结出了“怎么匹配能让玩家玩得最开心”的规律,不是程序员提前写死的“连跪三把就给强队友”的规则。 还有你最近用的AI画图工具,比如Midjourney、文心一格,它能画出你想要的图,不是因为它会读心术,而是它之前“看”过几亿张图片,自己总结了“银发红瞳机甲少女”应该是什么样的:银发要有点反光,红瞳要有高光,机甲要有机械结构,背景要有霓虹灯和樱花,这些规律都是它从数据里自己学出来的,这就是机器学习的核心能力:从数据里自己找规律,不用人类一行行写死规则。 > 💡 电子版侧边栏提示:你有没有发现,有时候你只是脑子里想了一下“想吃火锅”,打开外卖APP就给你推火锅店?别怕,这不是手机监听你,是机器学习根据你之前的点餐记录、浏览记录,总结出你大概率想吃火锅了,刚好推给你,概率刚好碰上了而已。
1.2 别把机器学习想得太复杂:它就是“教小孩认猫”
要搞懂机器学习,最有效的方法就是和“教小孩认东西”做类比,毕竟你小时候就是这么认识世界的。 假设你现在要教一个3岁的小孩认猫,有两种教法,对应两种完全不同的思路:一种是传统编程的思路,一种是机器学习的思路。
传统编程:给小孩列“猫的规则清单”
传统编程的思路是:人类先把所有规则写清楚,计算机只要按规则执行就行。对应到教小孩认猫,你就是给小孩列一张清单: > 1. 猫有毛,颜色可能是橘色、黑色、白色、灰色 > 2. 猫有胡须,硬的,能扎手 > 3. 猫有尾巴,一般是翘起来的 > 4. 猫的耳朵是尖的 > 5. 猫会喵喵叫 然后你告诉小孩:“你以后看到符合这5条的东西,就是猫,不符合就不是。” 结果你带小孩去猫咖,碰到一只无毛猫,小孩看了看:“没有毛,不是猫!”碰到一只胖橘猫,尾巴被压在身子底下,小孩看了看:“没有尾巴,不是猫!”碰到一只猫正在睡觉,耳朵耷拉着,小孩又喊:“耳朵不尖,不是猫!”你气得半死,说你怎么这么笨,小孩也很委屈:你列的规则里没有这些情况啊! 传统编程就是这么“笨”:它只会按人类写死的规则执行,规则没覆盖到的情况,它就完全不会处理。你写程序识别猫,漏了“无毛猫”“尾巴断了的猫”“耳朵耷拉的猫”的情况,它就认不出来,你只能一条一条补规则,补到天荒地老。
机器学习:带小孩去猫咖待一个月
机器学习的思路完全不一样:你不会给小孩列规则,而是带他去猫咖待一个月,天天看各种猫:有橘猫、无毛猫、折耳猫、胖得像球的猫、瘦得像竹竿的猫、跑的、跳的、睡觉的、打哈欠的、尾巴卷起来的、把尾巴咬断的,还有各种不是猫的东西:狗、兔子、毛绒玩具、老虎玩偶。 你每次给小孩看猫的时候,就说“这是猫”,看不是猫的时候就喊“这不是猫”,不用告诉他为什么。一个月之后,你再带他去动物园,他看到一只从来没见过的狞猫,也会喊:“这是猫!”哪怕这只猫的耳朵上有毛,尾巴特别短,他也能认出来,因为他自己从这一个月看的例子里,总结出了“猫的规律”:哪怕没有毛、没有尾巴、耳朵耷拉,只要鼻子是那种形状,胡须是硬的,动作像猫,就是猫。 机器学习就是这么工作的:你不用给计算机写死规则,你只要给它足够多的“例子”(数据),告诉它哪些是对的,哪些是错的,它自己就能从例子里总结出规律,下次碰到没见过的例子,也能判断对。 > 📖 纸书排版提示:此处可插入对比表格,清晰展示传统编程和机器学习的区别: > | 对比维度 | 传统编程 | 机器学习 | > | --- | --- | --- | > | 核心逻辑 | 人类写规则,计算机执行 | 计算机从数据里自己找规则 | > | 适用场景 | 规则明确的场景,比如计算器、Excel | 规则不明确的场景,比如识别猫、推荐内容 | > | 灵活性 | 差,规则没覆盖到就不会处理 | 高,能处理没见过的例子 | > | 人力成本 | 前期写规则很费时间,后期不用管 | 前期收集数据很费时间,后期不用写规则 |
是不是一下子就懂了?很多人觉得机器学习是高深的数学魔法,其实本质就是这么简单:给计算机足够多的例子,让它自己总结规律,不用人类手写规则。 你可能会问:那机器学习是不是比传统编程厉害?也不是,各有各的适用场景。比如你要写一个计算器,算1+1=2,传统编程一秒就能写好,特别稳定,永远不会有错;但你要写一个识别猫的程序,传统编程要写几千条规则,还容易漏,机器学习只要给够猫的照片,自己就能学会,比传统编程好用100倍。所以机器学习适合那些“规则说不清楚,但是人类一看就知道”的场景,比如识别图片、听懂人话、推荐你喜欢的内容,这些都是传统编程搞不定的,机器学习一搞一个准。
1.3 机器学习的三个“魔法道具”:没它们啥也干不了
如果你要把机器学习当成一个魔法,那它有三个必不可少的魔法道具,缺一个都变不出魔法:数据(Data)、模型(Model)、训练(Training)。咱们还是用“教小孩认猫”的类比来讲,特别好懂。
第一个道具:数据,就是“例子”
你要教小孩认猫,总得给他看猫的照片吧?这些照片就是“数据”。机器学习里的数据就是你要给模型的“例子”,你要教它认猫,就得给它猫的照片、狗的照片,你要教它推荐你喜欢的内容,就得给它你的点赞记录、浏览记录、评论记录,数据越多、越全面,模型学得越好。 比如你要教模型认猫,你只给它3张橘猫的照片,那它下次看到黑猫肯定认不出来;但你要是给它10000张各种品种、各种姿态、各种场景的猫的照片,还有10000张不是猫的照片,它学出来的模型就特别准,哪怕碰到一只从来没见过的暹罗猫,也能认出来。 > 💡 小提示:现在很多大公司都在抢“数据”,比如抖音有海量的用户行为数据,所以它的推荐算法特别准,小公司没有这么多数据,算法就不如抖音准,这就是“数据就是石油”的原因。
第二个道具:模型,就是“脑子”
你要教小孩认猫,小孩得有个脑子才能学吧?这个脑子就是机器学习里的“模型”。模型本质上是一个数学结构,你可以把它理解成一个“空白的脑子”,一开始啥都不知道,你给它喂数据,它慢慢改自己的“脑子结构”,最后就学会了规律。 模型有很多种,比如你要识别图片,就用“神经网络模型”,就像人脑的神经元一样,一层一层的,能把图片里的特征慢慢提取出来;你要处理文字,就用“自然语言处理模型”,能把文字的意思理解透;你要做推荐,就用“推荐模型”,能把用户的行为和内容对应起来。咱们后面几章会详细讲这些模型是怎么工作的,现在你只要知道“模型就是机器学习的脑子”就行。
第三个道具:训练,就是“学习的过程”
你给小孩看了猫的照片,小孩不会自动就认猫了,你得告诉他“这是猫,那不是猫”,他慢慢总结规律,这个过程就是“训练”。 机器学习的训练过程也一样:你把数据喂给模型,同时告诉模型“这些是猫,那些是狗”,模型一开始肯定认错,比如把狗认成猫,这时候你就告诉它“你认错了,这是狗”,它就慢慢改自己的脑子里的规则,下次再碰到狗就不会认错了。这个过程来回重复几千几万次,模型的准确率越来越高,最后就练成了,这就是“训练完成”了。 训练完之后,你就可以拿新的数据给它测试了:比如你给它一张从来没见过的猫的照片,它能认出来是猫,就说明训练成功了。 > 🔬 电子版交互:这里可以插入一个动态流程图,展示“数据→模型→训练→测试”的完整流程,点击每个步骤可以看详细解释。 > ```mermaid > graph LR > A[数据:10000张猫/狗的照片] --> B[模型:空白的识别脑子] > B --> C[训练:告诉模型哪个是猫哪个是狗,反复调整] > C --> D[测试:给没见过的照片,看能不能认对] > D -->|准确率高| E[训练完成,可以用了] > D -->|准确率低| C > ```
给你举个真实的例子:你手机的相册能自动把照片分成“猫”“狗”“风景”“美食”,就是用了这三个道具: 1. 数据:工程师先收集了几百万张标注好的照片,每张照片都标了“这是猫”“这是狗”“这是风景”,这就是训练数据; 2. 模型:用了一个专门识别图片的神经网络模型,一开始啥都不会; 3. 训练:把这幾百万张照片喂给模型,告诉它每张照片是什么,模型反复调整自己的参数,练了几天几夜,准确率到了95%以上,就训练完成了; 4. 使用:你手机里的相册就内置了这个训练好的模型,你拍一张猫的照片,它自动给你归到“猫”的分类里,不用你手动整理。 你看,是不是特别简单?没有复杂的公式,没有高深的术语,就是“给例子→让模型自己学→学完能用”。
1.4 机器学习的三种“学习方式”:总有一种你见过
机器学习不是只有一种学法,根据“老师教不教”的区别,可以分为三种最常用的学习方式,每一种你都在天天用。
第一种:监督学习(Supervised Learning):有老师手把手教
监督学习就是“有老师带”的学习,老师会明确告诉你每个例子是什么,你做对了给奖励,做错了给你指出来。 比如你小时候学认字,老师给你看“苹果”两个字,告诉你“这是苹果,读píng guǒ”,这就是监督学习,老师给了你“标注好的数据”(字+读音),你慢慢就记住了。 对应到机器学习,就是给模型的数据都带了“标签”:你给模型看1000张猫的照片,每张都标“这是猫”,看1000张狗的照片,每张都标“这是狗”,模型学完之后,拿到一张没见过的照片,就能自己判断是猫还是狗。 你天天用的抖音推荐算法,就是监督学习:你点赞了一个猫片,相当于给这个视频打了“喜欢”的标签,算法收集了你所有的点赞、评论、停留时长数据,相当于你给它提供了“你喜欢的猫片”的标注数据,它自己总结出你喜欢猫的规律,下次就给你推更多猫片。 还有你手机的语音输入,你说一句话,它就能转成文字,也是监督学习:工程师给模型喂了几百万小时的语音和对应的文字,告诉它“这段语音对应‘你好’这两个字”,模型学完之后,你说任何话,它都能转成对应的文字。 监督学习是最常用的一种机器学习,所有需要“判断是什么”“预测是什么”的场景,基本都是监督学习,比如识别垃圾邮件、识别照片里的人是男是女、预测明天的天气,都是监督学习。
第二种:无监督学习(Unsupervised Learning):没有老师,自己找规律
无监督学习就是“没有老师带,自己找规律”的学习,老师不会告诉你每个例子是什么,你得自己从一堆数据里找共同点,分分类。 比如你开学的时候,班主任把全班50个同学的名字和期末考试成绩扔给你,让你把成绩差不多的分成5组,你不用老师告诉你怎么分,你自己看成绩,把90分以上的分一组,80-89分的一组,70-79分的一组,60-69分的一组,60分以下的一组,这就是无监督学习,你自己从数据里找规律,分了类。 对应到机器学习,比如你刷短视频的平台,有几百万用户,算法不知道哪些用户喜欢什么,就把所有用户的行为数据(点赞、评论、浏览)扔给无监督学习模型,让它自己分,模型发现有的用户都点赞猫片,有的用户都点赞篮球,有的用户都点赞美食,就把他们分成三类:“喜欢猫的用户”“喜欢篮球的用户”“喜欢美食的用户”,不用你告诉它怎么分,它自己找的规律。 还有你购物的时候,电商平台给你推“猜你喜欢”,也是无监督学习:它把你和其他买过类似东西的用户归成一类,你买了猫粮,它发现和你买过一样猫粮的用户还买了猫砂,就给你推猫砂,不用你告诉它“买猫粮的人可能还需要猫砂”,是它自己从几百万用户的购买记录里找出来的规律。 无监督学习适合那些“没有标注数据,但是需要找规律、分类”的场景,比如用户分群、异常检测(比如发现信用卡盗刷,因为盗刷的行为和你平时的消费行为不一样)、数据降维(比如把几千个用户特征简化成几个,方便分析)。
第三种:强化学习(Reinforcement Learning):做对了给糖,做错了打手
强化学习就是“试错式学习”,没有老师告诉你什么是对的,你自己试,做对了就给奖励,做错了就给惩罚,你慢慢就会找到最优的方法。 比如你小时候
你有没有过这种经历?周末瘫在沙发上刷短视频,本来只想刷5分钟放松一下,结果一抬头,两个小时过去了——你刷了12只橘猫踩奶、9个游戏操作集锦、7个美食教程,甚至还有2个教你做手工的科普视频。你忍不住疑惑:这APP怎么比你自己还懂你喜欢什么? 或者,你刚打王者连跪三把,心态崩到想卸载游戏,结果下一把匹配到的队友突然个个carry,对手菜得像人机,你躺赢拿下MVP,忍不住怀疑系统是不是在“演”你? 再或者,你最近想换个动漫头像,打开AI绘图软件输入“银发红瞳机甲少女,背景是樱花飘落的霓虹灯雨夜”,几秒钟出来的图居然和你脑子里想的几乎一模一样,你惊叹:这AI会读心术吗? 别慌,这些都不是外星科技,你早就天天在用它们了——它们背后的魔法,就叫机器学习(Machine Learning,简称ML)。咱们这章的目标很简单:把你之前对这些技术的模糊感受,变成清晰的直觉,让你知道“哦,原来这就是机器学习,我也能玩转它”。
1.1 你早就成了机器学习的“老用户”
先给你看一组数据:据《2023年中国互联网产品算法应用报告》显示,国内TOP100的APP里,有87个都在使用机器学习技术,从你每天用的微信、抖音、王者荣耀,到外卖平台、购物软件、甚至你打卡的校园门禁系统,背后都有机器学习的身影。 你可能会说:“我没主动用过啊?”错,你早就用过无数次了。 比如你刷抖音的时候,你点赞了一个猫片,划走了一个美妆教程,在一个篮球视频下面停留了30秒没划走,这些行为都会被算法当成“信号”收集起来。算法会自己总结:“哦,这个用户喜欢猫,对篮球也有点兴趣,讨厌美妆内容”,下次打开APP,它就会优先给你推猫和篮球的内容,你刷得越久,它越懂你,最后甚至能精准到给你推“橘猫踩奶”“库里过人集锦”这种你刚好感兴趣的内容,这就是机器学习在帮你“过滤”信息,不用你自己在海量内容里找。 再比如你玩的游戏匹配系统,它不会随便给你匹配对手,而是会算你的“隐藏分(MMR)”——你赢得多,隐藏分就高,它就会给你匹配同样隐藏分高的对手,让你有挑战性;你要是连跪三把,它怕你生气退游,就会偷偷给你匹配几个强队友,让你赢一把开心一下,继续玩。这个匹配系统也是机器学习做的,它根据几百万玩家的对局数据,自己总结出了“怎么匹配能让玩家玩得最开心”的规律,不是程序员提前写死的“连跪三把就给强队友”的规则。 还有你最近用的AI画图工具,比如Midjourney、文心一格,它能画出你想要的图,不是因为它会读心术,而是它之前“看”过几亿张图片,自己总结了“银发红瞳机甲少女”应该是什么样的:银发要有点反光,红瞳要有高光,机甲要有机械结构,背景要有霓虹灯和樱花,这些规律都是它从数据里自己学出来的,这就是机器学习的核心能力:从数据里自己找规律,不用人类一行行写死规则。 > 💡 电子版侧边栏提示:你有没有发现,有时候你只是脑子里想了一下“想吃火锅”,打开外卖APP就给你推火锅店?别怕,这不是手机监听你,是机器学习根据你之前的点餐记录、浏览记录,总结出你大概率想吃火锅了,刚好推给你,概率刚好碰上了而已。
1.2 别把机器学习想得太复杂:它就是“教小孩认猫”
要搞懂机器学习,最有效的方法就是和“教小孩认东西”做类比,毕竟你小时候就是这么认识世界的。 假设你现在要教一个3岁的小孩认猫,有两种教法,对应两种完全不同的思路:一种是传统编程的思路,一种是机器学习的思路。
传统编程:给小孩列“猫的规则清单”
传统编程的思路是:人类先把所有规则写清楚,计算机只要按规则执行就行。对应到教小孩认猫,你就是给小孩列一张清单: > 1. 猫有毛,颜色可能是橘色、黑色、白色、灰色 > 2. 猫有胡须,硬的,能扎手 > 3. 猫有尾巴,一般是翘起来的 > 4. 猫的耳朵是尖的 > 5. 猫会喵喵叫 然后你告诉小孩:“你以后看到符合这5条的东西,就是猫,不符合就不是。” 结果你带小孩去猫咖,碰到一只无毛猫,小孩看了看:“没有毛,不是猫!”碰到一只胖橘猫,尾巴被压在身子底下,小孩看了看:“没有尾巴,不是猫!”碰到一只猫正在睡觉,耳朵耷拉着,小孩又喊:“耳朵不尖,不是猫!”你气得半死,说你怎么这么笨,小孩也很委屈:你列的规则里没有这些情况啊! 传统编程就是这么“笨”:它只会按人类写死的规则执行,规则没覆盖到的情况,它就完全不会处理。你写程序识别猫,漏了“无毛猫”“尾巴断了的猫”“耳朵耷拉的猫”的情况,它就认不出来,你只能一条一条补规则,补到天荒地老。
机器学习:带小孩去猫咖待一个月
机器学习的思路完全不一样:你不会给小孩列规则,而是带他去猫咖待一个月,天天看各种猫:有橘猫、无毛猫、折耳猫、胖得像球的猫、瘦得像竹竿的猫、跑的、跳的、睡觉的、打哈欠的、尾巴卷起来的、把尾巴咬断的,还有各种不是猫的东西:狗、兔子、毛绒玩具、老虎玩偶。 你每次给小孩看猫的时候,就说“这是猫”,看不是猫的时候就喊“这不是猫”,不用告诉他为什么。一个月之后,你再带他去动物园,他看到一只从来没见过的狞猫,也会喊:“这是猫!”哪