7.4 深度学习基础(进阶选修)

本节面向有编程基础和进一步探索兴趣的同学。如果你暂时不打算深入技术细节,可以跳过本节。

在前三节中,你已经学会了在扣子平台上搭建 Agent——拖拽节点、配置提示词、设置触发器。这些操作的背后,是大模型在驱动 Agent 的"思考"能力。本节将带你走进大模型的技术基础——深度学习,理解 Agent 之所以"聪明"的底层原因。

一、从机器学习到深度学习

6.3 节中我们用 scikit-learn 实现了线性回归——这是经典机器学习的范畴。深度学习则更进一步,使用神经网络来处理更复杂的任务。

为什么需要深度学习?经典机器学习在处理表格数据(如房价预测)时表现出色,但面对图像、语音、自然语言等非结构化数据时,往往力不从心。原因在于:这类数据的特征极其复杂,人工设计特征的方式难以穷尽所有可能。深度学习的突破在于——让模型自己学习特征。

核心区别:

特征 经典机器学习 深度学习
特征提取 需要人工设计特征 自动学习特征
模型结构 相对简单(线性回归、决策树) 多层神经网络
数据需求 较少数据即可 通常需要大量数据
计算资源 普通电脑即可 通常需要 GPU 加速
典型应用 表格数据分析、简单分类 图像识别、语音识别、文本生成

二、神经网络的基本原理

神经网络的灵感来源于人脑的神经元连接方式。一个最简单的神经网络包含三层:

输入层 → 隐藏层 → 输出层
  • 输入层:接收原始数据(如图片的像素值);
  • 隐藏层:对数据进行变换和特征提取(可以有多层,层数越多越"深");
  • 输出层:给出最终结果(如"这是一只猫"的概率)。

每一层由若干"神经元"组成,神经元之间通过"权重"连接。训练的过程就是不断调整这些权重,使模型的预测结果越来越准确。之所以叫"深度"学习,正是因为隐藏层可以有很多层——现代大模型的神经网络往往有数十甚至上百层,层层叠加使模型能够捕捉从简单到复杂的多层次特征。

训练过程的直觉理解:

想象你在学投篮。每次投篮后,你会观察球偏了多少(这叫"损失"),然后调整出手角度和力度(这叫"更新权重")。经过成百上千次练习,你的命中率越来越高。神经网络的训练过程与此类似:

输入数据 → 模型预测 → 计算误差(损失函数)
→ 反向传播误差 → 调整权重 → 重复直到误差足够小

这个过程叫反向传播(Backpropagation),是深度学习最核心的训练算法。

推荐使用 Google Colab(colab.research.google.com),无需在本地安装任何软件,打开浏览器即可编写和运行 Python 代码。

三、用 Keras 构建简单神经网络

以下用一个手写数字识别的例子,演示如何用 TensorFlow/Keras 构建神经网络。

import tensorflow as tf
from tensorflow import keras

# 加载 MNIST 手写数字数据集
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()

# 数据预处理:归一化到 0-1 范围
x_train = x_train / 255.0
x_test = x_test / 255.0

# 构建模型
model = keras.Sequential([
    keras.layers.Flatten(input_shape=(28, 28)),  # 将 28x28 图片展平为 784 维向量
    keras.layers.Dense(128, activation='relu'),   # 隐藏层:128 个神经元
    keras.layers.Dense(10, activation='softmax')  # 输出层:10 个类别(0-9)
])

# 编译模型
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

# 训练模型
model.fit(x_train, y_train, epochs=5)

# 评估模型
test_loss, test_acc = model.evaluate(x_test, y_test)
print(f"测试集准确率:{test_acc:.2%}")

代码解读:

  1. MNIST 数据集包含 6 万张手写数字图片(28×28 像素),是深度学习的"Hello World";
  2. Flatten 层将二维图片展平为一维向量;
  3. Dense(128) 是一个全连接隐藏层,relu 是激活函数;
  4. Dense(10, softmax) 输出 10 个概率值,对应数字 0—9;
  5. 训练 5 轮后,准确率通常可达 97% 以上。

四、卷积神经网络(CNN)简介

对于图像识别任务,卷积神经网络(CNN)比普通神经网络更加高效。CNN 的核心思想是:用"卷积核"在图片上滑动扫描,自动提取边缘、纹理、形状等特征。

输入图片 → 卷积层(提取特征)→ 池化层(压缩信息)→ 全连接层 → 输出

CNN 的工作方式类似于人类观察图片的过程:你不会一次性看完整张图片的每个像素,而是先注意到局部的边缘和纹理,再逐步组合成完整的物体。CNN 的卷积层正是模拟了这一过程——底层卷积核识别边缘和颜色,中层组合出纹理和形状,高层识别出完整的物体。

CNN 是计算机视觉领域的基础架构,从人脸识别到自动驾驶,背后都有 CNN 的身影。2012 年,AlexNet(一种 CNN 架构)在 ImageNet 图像识别竞赛中大幅超越传统方法,将错误率从 26% 降至 16%,被视为深度学习革命的起点。此后,CNN 的变体不断涌现——VGG、ResNet、EfficientNet 等,推动图像识别准确率超越了人类水平。

深度学习与 Agent 的关系:本章前三节介绍的 AI Agent,其"大脑"正是基于深度学习技术构建的大语言模型。大语言模型使用的 Transformer 架构(1.3 节已介绍)是深度学习的最新成果之一。理解了神经网络的基本原理,你就能更好地理解 Agent 为什么能"理解"自然语言、为什么会产生"幻觉"(8.1 节)、以及为什么需要通过提示词工程来引导它的行为。


进阶挑战:用 Python 复现朴素贝叶斯文本分类

使用 scikit-learn 的朴素贝叶斯分类器,完成一个简单的文本分类任务(如垃圾邮件识别)。要求:

  1. 使用 CountVectorizer 将文本转换为特征向量;
  2. 使用 MultinomialNB 训练分类模型;
  3. 在测试集上评估准确率;
  4. 尝试输入自定义文本,观察分类结果。

思辨时刻:当 AI 能自己造 AI——Agent 的能力边界在哪里?

2024 年,多家 AI 公司开始探索让 AI Agent 自主编写代码、自主调试、甚至自主创建新的 Agent。这意味着 AI 正在获得"自我复制"和"自我改进"的能力。

思考以下问题:

  1. 如果一个 Agent 能自主创建更强大的 Agent,这个过程是否需要人类监督?
  2. Agent 的"自主行动"应该有哪些边界?它能自主发送邮件吗?能自主花钱吗?
  3. 当 Agent 犯了错误(如发送了错误的信息),责任应该由谁承担——开发者、使用者,还是 Agent 本身?

results matching ""

    No results matching ""