别划走这里是AI装作老太婆版但是干货满满文章目录一、开头唠叨两句别怕这东西没你想象的那么邪乎二、先说说人脑是咋回事我是怎么认出我孙子的2.1 认人这事儿其实挺神奇的2.2 电脑认人可就费劲了三、神经网络到底长啥样我拿蒸包子给你比划比划3.1 第一层看原材料输入层3.2 中间那几层揉面、调馅、上锅蒸隐藏层3.3 最后一层出锅输出层四、神经网络咋学会干活的这章咱们细唠太奶重点4.1 第一次肯定不行别指望它天生就会4.2 损失函数就是告诉你“错得有多离谱”4.3 梯度下降就像你摸黑找路4.4 反向传播从最后一锅包子往前找问题五、激活函数没有它神经网络就是个摆设5.1 啥是激活函数就是“要不要通知下一层”5.2 常见的激活函数我拿买菜给你比划六、泛化能力学会的不是背答案而是真本事6.1 啥是泛化就是换道题也会做6.2 怎么让泛化能力变好多折腾它七、过拟合到底是个啥这回咱们说透7.1 过拟合就是“学傻了”7.2 过拟合是怎么发生的7.3 怎么避免过拟合太奶给你支几招八、GPT那种智能是咋来的太奶给你掰扯掰扯8.1 GPT不是凭空蹦出来的8.2 GPT是怎么学会说话的8.3 GPT真的“智能”吗太奶说实话九、太奶的最后唠叨技术这东西别神化它一、开头唠叨两句别怕这东西没你想象的那么邪乎哎我跟你说现在年轻人动不动就说什么“神经网络”“深度学习”我一听就头大。心想这又是哪个专家发明的词儿后来我孙子跟我说“奶奶你别怕这东西其实就是个会算账的机器。”我一听会算账那我可就不困了。我当了三十年的家买个菜都要算半天算账这事儿我熟啊今天我就用我这老太婆的大白话给你把这“神经网络”掰开揉碎了讲明白。保证你听完之后也能跟你家孩子吹两句。二、先说说人脑是咋回事我是怎么认出我孙子的2.1 认人这事儿其实挺神奇的你想想我孙子站在我面前我咋一眼就认出他来了呢我琢磨了一下啊大概是这样我眼睛一看嗯这小子的眼睛跟他爸一个样鼻子像他妈耳朵像我那老头子……这些信息往我脑子里一传脑子里的“老算盘”一拨拉结论就出来了——“这是我大孙子”这过程快得很我还没反应过来呢嘴里就已经喊出他小名了。2.2 电脑认人可就费劲了那电脑想认人咋办呢它又不长眼睛。我孙子跟我说在电脑眼里一张照片就是一堆数字。黑的是0白的是255灰的是中间的数。一张小照片就好几千个数大照片上百万个数都有。电脑看着这一堆数字就跟咱们看天书一样完全不知道谁是谁。这时候就需要个“聪明法子”来帮它。三、神经网络到底长啥样我拿蒸包子给你比划比划3.1 第一层看原材料输入层我跟你说这神经网络啊你就把它想象成一个蒸包子铺。你往铺子里送什么面粉、水、肉馅、白菜、盐、酱油……这些东西就是原材料。在神经网络里这就叫“输入层”。你给什么原材料它就做什么包子。你给猪肉白菜它就做猪肉白菜包你给韭菜鸡蛋它就做素包子。3.2 中间那几层揉面、调馅、上锅蒸隐藏层这个最玄乎叫什么“隐藏层”。其实说白了就是干活的那几道工序。第一道工序揉面。面揉得好不好决定包子皮软不软。第二道工序调馅。盐放多了咸放少了淡得刚刚好。第三道工序包包子。皮薄了露馅皮厚了咬不动。第四道工序上锅蒸。火大了糊火小了不熟。这些工序一层接一层前面干完了交给后面。每道工序都有自己的“小窍门”——比如放多少盐、揉多长时间的面。这些小窍门在神经网络里就叫“参数”。3.3 最后一层出锅输出层包子蒸好了端出来给你看。你要是看见一个白白胖胖、冒着热气的包子你就知道——嗯这包子做得不错。在神经网络里最后一层出的结果就叫“输出层”。比如它告诉你“这是你孙子”或者“这不是你孙子”。四、神经网络咋学会干活的这章咱们细唠太奶重点4.1 第一次肯定不行别指望它天生就会我第一次蒸包子的时候那叫一个惨不忍睹啊。面没发好蒸出来跟石头似的。馅儿咸得齁嗓子。包子皮厚得像城墙咬一口全是面。我孙子看不下去了跟我说“奶奶你放盐放多了。面得发两个小时你才发半小时就蒸了。”这就是有人告诉你错哪儿了。神经网络第一次干活也是瞎蒙。它把一堆数字胡乱算一通出一个结果——大概率是错的。那它怎么知道错了呢这就得靠一个东西叫损失函数。4.2 损失函数就是告诉你“错得有多离谱”什么叫损失函数我给你举个例子。你让你孙子去买菜给了他十块钱让他买一斤西红柿、两根黄瓜。结果他回来买了二斤土豆、三根大葱。你一看火就上来了“我要的是一斤西红柿、两根黄瓜你看看你买的啥”这个**“我要的”和“你买的”之间的差距**就是损失。在神经网络里损失函数就是干这个的——算一算正确答案和它猜的答案之间差了多少。差得少说明它蒙得还行。差得多说明它错得离谱。常见的损失函数有这么几种均方误差就是把你猜错的那些数平方一下再平均。平方啥意思就是让大错误显得更大好让你一眼看出来哪儿错得最狠。交叉熵这个听着吓人其实就是“你猜的分类跟实际分类差多远”。比如你猜这是狗结果它是猫那损失就大。损失函数算出来的那个数字就是神经网络的“考试成绩”。分数越低考得越好。4.3 梯度下降就像你摸黑找路好了现在神经网络知道自己错了那它怎么改呢这就用到第二个东西叫梯度下降。我孙子给我解释的时候打了个比方特别好懂。他说“奶奶你想一想你半夜起来上厕所屋里漆黑一片你看不见路。你咋走到厕所”我想了想说“我伸着手摸着墙往前走呗。”他说“对你摸到墙就往那边挪摸不到就往回退。这个‘摸’的过程就是梯度下降。”梯度下降说白了就是一步一步试哪边能让损失变小就往哪边挪。数学上怎么算的呢就是算一个导数——导数告诉你参数往哪个方向调损失会变小。你别被“导数”这个词吓着。导数就是变化率。比如你开车踩油门车加速快这个“快”就是导数大踩油门车不动导数就是零。神经网络每次算完损失就算一下导数然后顺着导数指的方向把参数调一点点。一遍不行就两遍两遍不行就一万遍。一万遍之后参数就调到位了包子就能蒸好了。这个过程年轻人管它叫**“训练”我管它叫“摸黑找路熟能生巧”**。4.4 反向传播从最后一锅包子往前找问题还有第三个东西叫反向传播。这个听着更玄乎但其实特简单。你想啊我蒸的包子不好吃我咋找问题我先尝尝包子——哦太咸了。那太咸是谁的问题是调馅的环节盐放多了。那调馅的盐放多了是不是跟买菜的也有关系买菜要是买的新鲜肉不用放那么多盐提鲜……你看我得从最后的结果往前一层一层找原因。反向传播就是干这个的从输出层开始把错误一层一层往回传告诉每一层“你也有责任”。每一层拿到这个“责任”之后就知道自己该咋改了。这三个东西——损失函数、梯度下降、反向传播——是神经网络学会干活的“铁三角”。缺一个都不行。五、激活函数没有它神经网络就是个摆设5.1 啥是激活函数就是“要不要通知下一层”你琢磨一下啊我脑子里那个“这是我孙子”的判断不是随便来的。我得先看见他的眼睛、鼻子、嘴巴……这些特征得达到一定分量我才会下结论。要是只看见一只眼睛我不会喊他。看见两只眼睛加一个鼻子我可能会想“有点像”。看见全脸加上那走路的姿势我才能确定。激活函数就是干这个的算出来的结果够了数才传给下一层不够数就憋着。5.2 常见的激活函数我拿买菜给你比划Sigmoid函数这个函数的值在0和1之间。0就是“不传”1就是“传”0.5就是“说不准”。就像你买西瓜拍拍听听。声音清脆的买声音闷的不买介于中间的再看看。ReLU函数这个更简单。算出来的数是正的就原样传下去算出来是负的就变成0。就像你买菜还价。老板说五块你说三块。三块是正的你接着往下聊。老板说一百块你扭头就走——这就是变成0了。Tanh函数这个跟Sigmoid差不多但是值在-1和1之间。就像你评价一道菜从“太难吃了”到“太好吃了”中间还有“还行”“不错”“一般”。没有激活函数的话神经网络就只会做加法跟个计算器似的啥复杂问题也解决不了。有了激活函数它才能学会“要不要反应”才能变得聪明。六、泛化能力学会的不是背答案而是真本事6.1 啥是泛化就是换道题也会做我孙子小时候学数学有一回考试他把练习册上的题都背下来了。结果考试的时候题目换了个说法他就不认识了考了个不及格。这叫啥这叫只会背答案不会真理解。神经网络的“泛化能力”就是给它没见过的题它能不能做对。你拿一万张我孙子的照片训练它它学会了。然后你给它一张新拍的我孙子的照片——它要是还能认出来这叫泛化好。它要是认不出来就叫泛化差。6.2 怎么让泛化能力变好多折腾它我孙子后来数学学好了咋好的他不再背题了而是做各种不同类型的题。这个题型做做那个题型做做变换着花样来。训练神经网络也一样增加数据多样性不光给我孙子的正脸照还给他戴帽子、戴眼镜、侧脸、背光……让它见多识广。数据增强把已有的照片翻转一下、调亮一点、裁剪一部分变出更多花样来。简化模型有时候模型太复杂反而容易学死。就像你用大学生去教小学题他想得太复杂反而把简单问题整复杂了。七、过拟合到底是个啥这回咱们说透7.1 过拟合就是“学傻了”前面我提了一嘴过拟合这回咱们好好唠。有一回我让电脑学我孙子的照片学了整整一天一夜。第二天一测试好嘛——它只认识那一批照片。我换一张新照片它又不认识了。我孙子说这叫“过拟合”我说这叫“学傻了”。就跟背书似的你把一篇文章背得滚瓜烂熟换个说法问同样的问题你就懵了。这不叫学会了这叫死记硬背。7.2 过拟合是怎么发生的过拟合发生的原因说白了就两个第一数据太少。你只给我孙子20张照片电脑只能记住这20张。它以为“这20张就是孙子的全部样子”没学会“不管戴不戴帽子都是孙子”这个道理。第二模型太复杂。就像你用一个能算微积分的机器去算11它非要给你整出一堆没用的东西来。参数太多了它就会去记住那些没用的细节——比如照片角落里的一个噪点、我孙子衣服上的一块污渍。它把噪音当成信号了。7.3 怎么避免过拟合太奶给你支几招招数一早停就是别学太久。训练到一定程度泛化能力会达到顶峰再往后训泛化能力反而下降。就像煮面条煮到刚刚好就行。煮久了就烂了。招数二正则化这个听着高级其实简单。就是给损失函数加个“惩罚项”。什么意思呢就是告诉神经网络“参数别搞太大差不多得了。你参数搞得太大我就扣你分。”就像你管孙子花钱“零花钱就这些你省着点花。你花超了下个月就扣你钱。”招数三Dropout随机丢弃这个更绝。每次训练的时候随机关掉一半的“工序”不让它参与干活。为啥要这么干就是逼着神经网络不能太依赖某一道工序。万一哪道工序被关了别的工序也得顶上。就像你包包子的时候有时候把揉面的关掉让包饺子的去揉面——虽然干得不咋地但总得学着干。这样不管哪道工序出问题整个系统还能运转。招数四数据增强就是把你手里的数据“变花样”。翻转、旋转、裁剪、调亮度……变出一大堆新的数据来。这样电脑就能见到更多“没见过但类似”的情况泛化能力自然就好了。八、GPT那种智能是咋来的太奶给你掰扯掰扯8.1 GPT不是凭空蹦出来的你肯定听说过ChatGPT、GPT-4这些东西。你可能会想这跟我前面说的神经网络是一回事吗是一回事但不是一个级别的。我前面说的那种神经网络就像你家门口的小卖部。一个人看店卖点烟酒糖茶。GPT呢那是沃尔玛级别的。几万亿个参数几千亿个数据上万张显卡训练一次电费都得好几百万。规模不一样但原理是一样的——都是输入一堆数字经过一层一层的计算输出一个结果。8.2 GPT是怎么学会说话的GPT的训练分两步。第一步填空给GPT一句话挖掉一个词让它猜被挖掉的是啥。比如“我爱吃____”GPT猜“苹果”“饺子”“米饭”……猜对了就奖励猜错了就惩罚。就这么猜了几万亿次之后GPT学会了词语之间的关系。它知道“我爱吃”后面大概率跟的是食物名词而不是动词或者形容词。第二步让人类教它光会填空还不够。有时候它猜出来的东西语法对但内容不对。比如你问它“怎么造炸弹”它语法正确地回答了你——这不行这是有害内容。所以OpenAI找了一堆人让这些人跟GPT对话给它打分。它回答得好加分回答得不好扣分。这就是人类反馈强化学习。说白了就是有人教它什么能说、什么不能说。8.3 GPT真的“智能”吗太奶说实话我跟你说句实在话GPT不聪明。它只是记性特别好。它记住了互联网上几乎所有公开的文本——维基百科、新闻、小说、论文、论坛帖子……你问它一个问题它不是“想”出来的而是从它记住的东西里拼出来的。就像你让一个背了整本菜谱的人做菜。他能说出宫保鸡丁的做法但不一定真会炒。GPT也是一样——它能说出很聪明的回答但不一定“理解”自己在说什么。所以别神话它。它是个非常好用的工具但不是神仙。九、太奶的最后唠叨技术这东西别神化它我活这么大岁数见过不少新东西。电视机刚出来的时候有人说是“妖术”。手机刚出来的时候有人说“这玩意儿能传话骗人的吧”。现在呢谁家还没个电视谁手里还没个手机神经网络也一样。它不是神仙不是魔法就是个高级一点的算账机器。它会算但不会想。它能帮你干活但你得教它。你教得好它就帮你省力气你教得不好它就给你添乱。我孙子老跟我说“奶奶你别怕这些新技术把它当个新工具就行了。”我想想也对。当初用智能手机的时候我也不习惯现在不也玩得挺溜所以啊别怕。你今天能听懂神经网络是个啥就已经比昨天进步了。最后送你一句话学技术跟包包子一样多练几次就熟了。第一次肯定不行别怕失败。行了今天就唠到这儿。我得去看看我蒸的包子好了没有。你要是还有啥不明白的就留言问我。我这老太婆虽然打字慢但一定给你回。记住太奶的话技术这东西没啥可怕的。你能学会用手机就能学会理解它。