第1章 认识深度学习 / Chapter 1: Introduction to Deep Learning
你有没有过这样的经历?早上醒来问智能音箱“今天要不要带伞”,它马上就能告诉你下午有雨;用平板刷脸解锁,只要对准摄像头一秒就打开了;甚至有些游戏里,你对着摄像头做鬼脸,游戏里的小人也会跟着做一样的表情?这些看起来很“聪明”的功能,背后都有一个共同的核心技术——<concept id="deep_learning">深度学习(Deep Learning,简称DL)</concept>。在本章里,我们就一起揭开深度学习的神秘面纱,看看它到底是什么,为什么能让机器变得这么“聪明”,甚至还能自己动手训练一个会认猫狗的AI模型哦!
---
1.1 从人工智能到深度学习:三层概念的层级关系
1.1.1 什么是人工智能?
<concept id="ai">人工智能(Artificial Intelligence,简称AI)</concept>是一个很宽泛的科学领域,它的终极目标是让机器像人类一样思考、学习、识别和决策。你平时见到的自动驾驶汽车、能下围棋的AlphaGo、能写作文的AI助手,都属于人工智能的范畴。
人工智能并不是最近才出现的新鲜事,早在1956年,科学家们就在一次学术会议上正式提出了“人工智能”这个概念。不过早期的AI mostly是靠人类编写明确的规则来工作的:比如你要让机器识别猫,就需要告诉它“有尖耳朵、长胡须、会喵喵叫的是猫”,但这种方法非常笨拙——遇到无毛猫、折耳猫这种不符合规则的猫,机器就会认错,更别说还要为猫、狗、兔子、仓鼠等所有动物各写几百条规则,几乎是不可能完成的任务。
1.1.2 机器学习:让机器自己学规则
<concept id="ml">机器学习(Machine Learning,简称ML)</concept>是人工智能的一个分支,它彻底改变了传统AI的开发逻辑:不再由人类编写规则,而是让机器从大量的数据中自动学习规律。
比如你要做猫狗识别,不用告诉机器猫和狗有什么区别,你只需要给它看1万张猫的照片、1万张狗的照片,机器自己就能总结出猫和狗的区别——甚至能发现你都没注意到的细节:比如猫的瞳孔是竖着的,狗的瞳孔是圆的;猫走路没有声音,狗走路会“哒哒”响。这种“从数据中找规律”的能力,就是机器学习的核心。
1.1.3 深度学习:基于神经网络的高级机器学习
<concept id="dl">深度学习(Deep Learning,简称DL)</concept>是机器学习的一个子领域,它的核心是使用<term id="neural_network">神经网络(Neural Network,简称NN)</term>来学习数据中的规律。所谓的“深度”,就是指神经网络的层数很多——早期的神经网络只有1-2层,现在的深度学习模型通常有几十层甚至几百层,每一层都能提取数据的不同特征,让模型能处理更复杂的任务。
我们可以用下面的层级图来理解三者的关系: ```mermaid graph TD A[人工智能<br>Artificial Intelligence] --> B[机器学习<br>Machine Learning] B --> C[深度学习<br>Deep Learning] ``` > 📖 纸书排版说明:上图可居中放置,标注为「图1-1 人工智能、机器学习、深度学习层级关系示意图」 > 📱 电子版交互:点击图中每个节点可查看对应概念的详细介绍
1.1.4 传统规则式程序 vs 深度学习模型
为了让你更直观地理解深度学习的优势,我们可以对比一下传统程序和深度学习模型做猫狗识别的区别:
| 对比维度 | 传统规则式程序 | 深度学习模型 | |---------|--------------|-------------| | 核心逻辑 | 人类编写明确的规则,机器按规则执行 | 机器从数据中自动学习规律 | | 适用场景 | 规则明确的简单任务,比如计算器、排序 | 规则模糊的复杂任务,比如图像识别、语音识别 | | 灵活性 | 遇到规则外的情况就会出错 | 能处理没见过的、稍微变化的情况 | | 开发难度 | 规则多的时候开发难度极高 | 只要有足够的数据,开发难度相对低 | | 例子 | 写一个判断数字是否为偶数的程序 | 训练一个能识别手写数字的模型 |
比如你要让传统程序识别猫,需要写几百条规则:“有尖耳朵、长胡须、尾巴长、走路没声音、瞳孔是竖的……是猫”,但如果遇到一只没有胡须的无毛猫,或者一只尾巴断了的猫,程序就会认错。而深度学习模型只要看过足够多的猫的照片,哪怕是从没见过的无毛猫,它也能识别出来——因为它学到的是“猫的本质特征”,而不是死板的规则。
---
1.2 神经网络的工作原理:模仿人脑的计算模型
1.2.1 神经网络的基本结构:模仿人脑的神经元
<term id="neuron">神经元(Neuron)</term>是神经网络的基本计算单元,它的设计灵感来自人脑的神经细胞:人脑中有大约860亿个神经元,每个神经元都和其他神经元连接,通过电信号传递信息,最终让我们能看、能听、能思考。
人工智能领域的科学家模仿神经元的结构,设计了人工神经元:它接收来自其他神经元的输入信号,对信号做加权计算,然后决定要不要把结果传递给下一个神经元。很多人工神经元连接起来,就形成了神经网络。
一个最简单的神经网络叫<term id="mlp">多层感知机(Multi-Layer Perceptron,MLP)</term>,它由三类层组成: 1. 输入层(Input Layer):负责接收原始数据,比如一张图片的像素、一句话的文字 2. 隐藏层(Hidden Layer):负责提取数据的特征,层数越多,能提取的特征越复杂 3. 输出层(Output Layer):负责输出最终的结果,比如识别结果是猫还是狗,概率是多少
我们可以用下面的图来理解多层神经网络的结构: ```mermaid graph LR A[输入层<br>784个像素] --> B[隐藏层1<br>128个神经元] B --> C[隐藏层2<br>64个神经元] C --> D[输出层<br>10个神经元<br>对应0-9的概率] ``` > 📖 纸书排版说明:上图可居中放置,标注为「图1-2 多层神经网络结构示意图(以手写数字识别任务为例)」 > 📱 电子版交互:点击每个层可查看对应层的作用说明
比如我们要做手写数字识别,输入的一张28x28像素的灰度图片,总共有$28 \times 28 = 784$个像素,每个像素的灰度值(0是黑色,255是白色)就是一个输入信号,输入层就有784个神经元,对应784个像素。隐藏层的神经元负责提取特征:第一个隐藏层可能提取线条、边缘这种简单特征,第二个隐藏层提取圆圈、拐角这种复杂特征,最后输出层的10个神经元分别对应数字0到9,每个神经元输出的数值就是模型认为这张图片是对应数字的概率。
1.2.2 前向传播:从输入到输出的计算过程
<term id="forward_prop">前向传播(Forward Propagation)</term>就是数据从输入层经过隐藏层,最终传到输出层得到结果的过程。它的计算逻辑非常简单,每个神经元都会做三步计算: 1. 把上一个神经元传过来的信号乘以对应的<term id="weight">权重(Weight,简称w)</term>,权重代表这个信号的重要程度 2. 把所有加权后的信号加起来,再加上一个<term id="bias">偏置(Bias,简称b)</term>,偏置是神经元的个人偏好,帮助模型更灵活地拟合数据 3. 把加总后的结果输入<term id="activation">激活函数(Activation Function)</term>,激活函数决定要不要把这个结果传递给下一个神经元
用数学公式来表示,就是: $$z = w \cdot x + b$$ $$a = \sigma(z)$$ 其中$x$是输入信号,$w$是权重,$b$是偏置,$z$是加权加总后的结果,$\sigma$是激活函数,$a$是神经元的输出结果。
最常用的激活函数是<term id="relu">ReLU(Rectified Linear Unit)</term>,它的公式非常简单: $$\sigma(z) = max(0, z)$$ 也就是说,如果输入$z$大于0,就输出$z$本身;如果小于0,就输出0。你可以把ReLU理解成“只传有意义的信号”:如果加权后的结果是正数,说明这个信号有用,就传给下一层;如果是负数,说明这个信号没用,就直接忽略。
整个前向传播的过程就像你们班传小纸条答题:第一排的小朋友拿到题目(输入数据),每个人算一部分,然后把结果传给第二排,第二排的小朋友再算一部分,传给第三排,最后一排的小朋友算出最终答案(输出结果),整个过程从前排传到后排,就是前向传播。
1.2.3 反向传播:从错误中学习的过程
前向传播得到的答案一开始肯定是不对的,比如你把一张“3”的手写图片给模型,它可能识别成“8”。这时候我们需要告诉模型“你答错了,正确答案是3”,然后让模型调整自己的参数,下次再遇到“3”的时候就能识别对了。这个“从错误中学习”的过程,就是<term id="backprop">反向传播(Backpropagation)</term>。
反向传播的核心逻辑是“算账、追责、调整”: 1. 算账:用<term id="loss">损失函数(Loss Function)</term>计算模型答案和正确答案的差距,这个差距就是“错误分数”,分数越高说明错得越离谱。比如模型认为图片是“8”的概率是0.8,是“3”的概率是0.1,那损失就会很高。 2. 追责:把错误分数从输出层往输入层反向传递,计算每个权重对错误分数的“贡献”——比如某个神经元把“3”的横线特征当成了“8”的特征,那这个神经元的权重就要负主要责任。 3. 调整:根据每个权重的“责任大小”,调整权重的数值:责任大的权重就多调一点,责任小的就少调一点,让模型下次再遇到同样的输入时,输出更接近正确答案。
用你们班答题的例子来理解:最后一排的小朋友答错了,老师告诉他正确答案,然后他告诉前一排的每个小朋友,“你刚才给我的信息是错的,下次你要多给我一点横线的信息,少给一点弯线的信息”,前一排的小朋友再告诉更前一排的小朋友,这样一层一层往前传,每个人(每个神经元)都调整自己负责的部分,下次再遇到“3”的时候,整个班的答案就会更接近正确了。
反向传播是深度学习能发展的核心基础之一,它由科学家David Rumelhart等人在1986年提出,让训练多层神经网络从不可能变成了可能。在反向传播出现之前,神经网络只有1-2层,根本解决不了复杂的问题,直到2006年,科学家Hinton提出了“深度置信网络”,让多层神经网络的训练成为了可能,深度学习才真正开始爆发。
> 📱 电子版侧边栏【小知识】:深度学习模型和人的大脑不一样哦! > 人脑有大约860亿个神经元,每个神经元又和几千个其他神经元连接,总连接数超过100万亿个。而现在的深度学习模型最多也只有几千亿个参数,虽然数量差不多,但人脑的神经元连接更复杂,而且能同时处理视觉、听觉、语言等多种信息,现在的深度学习还远远比不上人脑的“通用智能”哦。
1.2.4 训练与推理:深度学习模型的两种状态
训练好的深度学习模型有两种工作状态: 1. 训练(Training):就是刚才说的“从数据中学习”的过程,模型会反复看大量的数据,不断调整权重,让损失越来越小,直到准确率达到要求。训练过程需要消耗大量的计算资源,通常是在服务器上完成的。 2. 推理(Inference):就是训练好的模型用来预测新数据结果的过程。比如你训练好了一个猫狗识别模型,拿一张新的猫的照片给它看,它马上就能告诉你这是猫,这个过程就是推理。推理需要的计算资源很少,甚至可以在手机、平板上运行。
---
1.3 深度学习的趣味应用案例
深度学习现在已经应用到了我们生活的方方面面,下面两个是最经典、也最贴近小朋友生活的案例:
1.3.1 案例1:手写数字识别——深度学习界的“Hello World”
<term id="mnist">MNIST数据集</term>是深度学习领域最 famous 的数据集,被称为深度学习界的“Hello World”(程序员学编程第一个写的程序就是输出“Hello World”,MNIST就是深度学习入门第一个做的项目)。它是纽约大学的Yann LeCun教授团队在1998年收集的,总共包含7万张28x28像素的手写数字图片,从0到9每个数字都有几千张,都是不同的人手写的,有写的工整的,也有写的歪歪扭扭的。
2012年,深度学习模型在MNIST数据集上的准确率就达到了99.1%,现在已经达到了99.7%以上,几乎和人类认数字的准确率一样高。如果你自己写一个数字,哪怕是写的很潦草,模型也能轻松识别出来。
实际应用场景
1. 快递单识别:快递员扫一下快递单,机器就能自动识别上面的手写邮编、收件人地址,不用手动输入,分拣速度提高了10倍还不容易错。 2. 银行支票识别:你到银行存支票,柜员不用再看支票上的金额和账号,机器自动就能识别出来,几秒钟就能完成入账,节省了很多时间。 3. 数学作业批改:有些智能学习平板已经可以识别小朋友手写的数学答案,自动批改作业,还能告诉你哪里做错了。
1.3.2 案例2:猫狗图像识别——比人还准的宠物识别
<term id="imagenet">ImageNet数据集</term>是计算机视觉领域最 famous 的数据集,总共包含1400万张标注好的图片,涵盖2万多个类别。其中的猫狗分类子集包含2万多张猫和狗的图片,每个类别1万多张,涵盖不同品种、不同角度、不同光线的猫狗照片。
现在最好的深度学习模型在猫狗分类任务上的准确率已经达到了99.5%以上,比普通人认猫狗的准确率(大概95%)还要高。哪怕你给模型看一张它从来没见过的猫的照片,只要照片里的猫符合它学到的规律,它就能准确识别出来。
实际应用场景
1. 智能宠物喂食器:家里的智能喂食器可以识别来的是猫还是狗,自动放出对应的宠物粮,不会喂错。如果你家同时养猫和狗,就不用担心它们抢对方的口粮啦。 2. 流浪动物救助:有些救助APP会用摄像头拍流浪动物的照片,AI自动识别是猫还是狗,是什么品种,然后告诉救助站怎么照顾它,比如猫需要猫砂,狗需要遛,大大提高了救助效率。 3. 家庭智能监控:家里的智能摄像头如果识别到猫在沙发上,就会自动给爸爸妈妈发提醒,防止猫抓坏沙发;如果识别到狗在啃家里的拖鞋,也会马上发出警告。
> 📖 纸书排版说明:以上两个案例可各配一张示意图,比如「图1-3 手写数字识别模型工作示意图」「图1-4 猫
狗在啃家里的拖鞋,也会马上发出警告。除了宠物识别,深度学习还能识别宠物的品种、健康状况,比如有些APP拍一下猫的眼睛,就能判断猫是不是有眼部疾病,提醒主人带猫去看兽医,是不是非常神奇?
1.3.3 案例3:语音识别——能听懂你说话的AI
<concept id="speech_recognition">语音识别(Speech Recognition)</concept>是深度学习另一个非常成熟的应用,它的核心是让机器能把人类说的话转换成文字,甚至理解话里的意思。你现在用的智能音箱、手机语音助手、视频字幕自动生成功能,背后都是深度学习语音识别模型在工作。
你有没有过这样的经历:对着智能音箱说“小度小度,播放《孤勇者》”,没过几秒,音箱里就响起了你最喜欢的歌?或者上课的时候老师用录音笔录课,下课后录音笔自动把老师说的话转成了文字笔记,不用自己慢慢记?这些功能的背后,都是深度学习语音识别模型在帮你把声音转换成文字。
语音识别模型的工作原理和图像识别有点像:它先把你的声音转换成声谱图(一种把声音频率随时间变化的图像),然后用和图像识别类似的神经网络提取声音里的特征,最后转换成对应的文字。现在最好的语音识别模型在标准测试集上的准确率已经达到了98%以上,哪怕是你带着口音说话,或者环境有点吵,它也能准确识别出来。
实际应用场景
1. 儿童智能学习设备:很多儿童智能手表、学习平板都有语音助手功能,小朋友不用打字,直接说“帮我查‘光合作用’是什么意思”,就能马上得到答案,非常方便。 2. 实时字幕生成:现在很多视频平台、会议软件都已经支持实时生成字幕,哪怕你是听障人士,也能通过字幕看懂视频和会议的内容,这是深度学习给生活带来的很大便利。 3. 语音输入法:你平时用手机打字的时候,是不是经常用语音输入?对着手机说一段话,输入法马上就能转换成文字,打字速度快了很多,这个功能也是深度学习语音识别模型提供的。
我们可以用下面的流程图来理解语音识别的工作过程: ```mermaid graph LR A[你说“打开台灯”] --> B[麦克风录音] --> C[深度学习模型识别语音] --> D[转换成文字指令] --> E[智能音箱打开台灯] ``` > 📖 纸书排版说明:上图可居中放置,标注为「图1-5 语音识别工作流程示意图」 > 📱 电子版交互:点击每个节点可播放对应环节的动画演示,比如点击“麦克风录音”可以听到你刚才说的话的录音波形
> 📱 电子版侧边栏【小知识】:现在有些深度学习模型甚至可以识别不同人的声音,比如你家里的智能音箱,只有你和爸爸妈妈的声音能唤醒它,陌生人的声音它就不会理,这个功能叫“声纹识别”,也是深度学习的一个应用哦。
1.3.4 案例4:AI生成内容——你的专属创意小助手
<concept id="aigc">AI生成内容(AI-Generated Content,简称AIGC)</concept>是最近几年最火的深度学习应用之一,它的核心是让AI能根据你给的文字描述,生成图片、文字、音频、视频等内容。你现在看到的很多AI画画的图片、AI写的故事、AI生成的动画,都是AIGC的成果。
比如你对着AI画画APP说“画一只在月球上吃冰淇淋的橘猫,背景是星空”,几秒钟之后,AI就能生成一张完全符合你描述的图片,甚至比你想象的还要好看。如果你让AI写一个“小猫和小狗去太空冒险”的故事,它也能马上写出来一个有趣的故事,还有配图。
实际应用场景
1. 儿童创意绘画:很多小朋友不会画画,但是有很多创意,用AI画画APP就能把自己想象的东西画出来,比如“画一只长翅膀的小猪在云朵上游泳”,马上就能看到自己想象的东西变成真的,特别有成就感。 2. 学习辅助:有些AI学习工具可以根据你学的内容,自动生成练习题、思维导图,比如你学完《西游记》,AI就能给你生成一张《西游记》的人物关系图,还能给你出相关的问答题,帮你巩固知识。 3. 动画制作:现在很多动画工作室用AI生成背景图、人物动作,原来画一