视频封面

视频元信息

  • 视频时长:未提供
  • 所属课程:CS50x Introduction to Computer Science(哈佛大学计算机科学导论)

TL;DR(内容摘要)

本讲通过"AI vs 真实"互动游戏引入人工智能主题,讲解CS50 Duck背后的提示工程、AI辅助编程(Copilot),并系统介绍机器学习、强化学习、神经网络与大语言模型的基本原理,最后以一首诗提醒AI并非完美。


一、开场互动:AI 与现实的辨识游戏

[188.8s] 课程正式开始,讲师邀请观众扫描二维码参与投票,测试人类能否分辨 AI 生成的内容与真实内容。

1. 图像辨识:哪张照片是 AI 生成的?

  • 第一轮:屏幕上展示两张照片,70%以上观众认为右边是 AI,答案确实是右边。
  • 第二轮:展示两张人脸照片,多数人认为左边是 AI,但答案是陷阱题——两张都是 AI 生成的。
    • 理解:这两张人脸在真实世界中都不存在,完全由 AI 基于大量训练数据合成。这说明 AI 图像生成技术已经逼真到足以迷惑大多数人的程度。
  • 第三轮:文本辨识——两篇作文,哪篇是 AI 写的?
    • 作文一:描述自带午餐,用词较丰富,如 "chat and laugh and catch up on each other's day"。
    • 作文二:更简单直接,如 "my mother packs me a sandwich... I find an empty table and sit there"。
    • 多数观众认为作文一是 AI,答案确实是作文一。
    • 易错点:AI 作文的破绽在于使用了超出目标年龄段的"成熟措辞",例如 "catch up on each other's day" 不像典型四年级学生能写出的表达。

随着 AI 技术发展,未来人类将越来越难以分辨 AI 生成的内容。 本讲的核心目标之一,就是揭示这些技术背后的原理,而不仅仅是展示其表面能力。

2. AI 技术爆发的背景

  • AI 的基本原理已发展数十年,近年来因以下因素而集中爆发:
    • 研究进展
    • 云计算资源普及
    • 内存与磁盘空间增大
    • 可用于训练的海量数据

二、CS50 的 AI 工具:橡皮鸭(Duck)与提示工程

1. Duck 的系统架构

  • 学生通过 CS50 工具(如 CS50.ai)与 Duck 交互。
  • 工作人员编写代码调用 API(Application Programming Interfaces,应用程序编程接口),这些 API 来自微软、OpenAI 等第三方公司,它们负责底层模型的开发。
  • CS50 还加入了"本地配方"(local sauce),使 Duck 的回答专门针对 CS50 课程内容。

2. 什么是提示工程(Prompt Engineering)

  • 提示工程本质上不是真正的"工程",而是提出好问题的艺术:描述足够详细、提供充分上下文,让 AI 以高概率给出你想要的答案。
  • 两个关键术语:
    • 系统提示(System Prompt):由人类(通常是英文)编写的指令,用于设定 AI 的"人设"和专业领域。
    • 用户提示(User Prompt):用户输入的具体问题。

3. CS50 Duck 的系统提示示例

CS50 编写的系统提示本质如下:

"你是一个友好、支持性的 CS50 助教,同时也是一只橡皮鸭。只回答关于 CS50 和计算机科学领域的问题;不回答无关话题;不提供问题集的完整答案(这违反学术诚信)。"

  • 理解:正是这段系统提示,把通用 AI 模型"调教"成了 CS50 专用的橡皮鸭,而不是猫、狗或 PhD。

4. 回顾第 0 周的 OpenAI 代码

  • 第 0 周曾展示过一段 Python 代码,当时难以理解,现在可以逐行解析:
    1. 导入 OpenAI 的库;
    2. 创建 client 变量,获取 OpenAI 客户端;
    3. 用 input() 定义 user_prompt(用户输入);
    4. 定义 system_prompt(例如"假装你是猫");
    5. 调用 client.responses.create,传入三个参数:用户输入、系统指令、模型版本;
    6. 打印 response.output_text。

这段代码是理解 AI 接口调用的最小骨架:用户提示 + 系统提示 + 模型 = 输出。 后续所有 AI 应用都基于这一基本模式。


三、使用 AI 辅助编程:GitHub Copilot 演示

1. CS50 对 Copilot 的限制

  • CS50 默认禁用 Copilot 等 AI 编程助手,直到学生完成最终项目(Final Project)时才允许使用。
  • 思考:这种限制是为了先让学生建立编程的"肌肉记忆"和调试能力,而不是一开始就依赖 AI。

2. 演示:用 Copilot 实现拼写检查器(Speller)

  • 打开 dictionary.c 文件,文件中包含四个待填空的函数(如 check、load)。
  • 在 Copilot 聊天窗口输入:"implement the check function using a hash table in C"。
  • Copilot 会参考:
    • 当前打开的文件(上下文);
    • 代码中的注释(英文提示);
    • 函数的输入参数和返回值(隐含信息)。
  • 生成绿色建议代码,可一键保留。
  • 重点:AI 生成代码的速度远快于学生手动编写,但前提是你必须能看懂代码、能调试、能解释、能修改。 如果没有这些基础能力,AI 生成的代码出错时你将束手无策。

3. 演示:用自然语言生成 Mario 金字塔程序

  • 在空文件 mario.c 中,通过聊天窗口输入自然语言需求:

    "Please implement a program in C that prints a left-aligned pyramid of bricks using hash symbols, and use the CS50 library to ask the user for a non-negative height as an integer."

  • Copilot 自动生成包含 do-while 循环、CS50 库引用、金字塔打印逻辑的完整 C 代码。

4. AI 对程序员的放大效应

  • AI 能消除繁琐工作,让你专注于更高层次的问题(如系统设计、算法选型)。
  • 理解:AI 不是替代程序员,而是放大程序员的能力——一旦你掌握了编程语言和逻辑,AI 可以帮你快速实现细节,让你把精力放在"白板上的大问题"。

四、人工智能基础:从决策树到机器学习

1. 我们身边的 AI 应用

  • 垃圾邮件过滤:Gmail/Outlook 自动将垃圾邮件分类,背后不是人工标记,而是 AI 识别特征,正确率约 99%,但仍存在失败率。
  • 手写识别:微软/谷歌训练了足够多的人类 handwriting 样本,因此能高概率识别你的笔迹。
  • 流媒体推荐:Netflix 根据你看过的内容、评分、相似用户的行为,动态推荐影片——不是简单的 if-else 数据库查询。
  • 语音助手:Siri、Alexa 等能识别语音并回答,同样没有覆盖所有可能问题的 if-else 巨型分支,而是动态生成回答。

2. 从 Pong 到 Breakout:决策树

  • Pong:早期街机游戏,两个玩家控制左右挡板击球。
  • Breakout:单挡板击球打碎彩色砖块。
  • 人类玩家会本能地根据球的位置移动挡板,这个决策可以算法化:
while (游戏进行中)
    if (球在挡板左边) 挡板左移
    else if (球在挡板右边) 挡板右移
    else 挡板不动
  • 决策树是经济学、战略思维和计算机科学共有的概念,可以完美映射为代码。

3. 井字棋(Tic-Tac-Toe)与 Minimax 算法

  • 井字棋的目标是让三个 X 或三个 O 连成一线(横、竖、斜)。
  • 人类常用启发式规则(如占中间、占角),但未必最优。
  • 重点:如果双方都最优下棋,井字棋最差结果是平局,绝不应该输。 如果你输了,说明你的决策不是最优的。

Minimax 原理

  • 给棋盘打分:
    • O 赢 → 分数 = -1
    • X 赢 → 分数 = +1
    • 平局 → 分数 = 0
  • X 的目标是最大化分数,O 的目标是最小化分数。
  • 示例:O 回合,剩余两个空位(左上、下中)。

    • 若 O 走左上 → X 走右下 → X 赢,棋盘值 = 1(不利 O)。
    • 若 O 走下中 → X 走左上 → 平局,棋盘值 = 0。
    • 因此 O 应走下中,至少保证平局。
  • 推导:Minimax 的核心是"换位思考"——不仅要考虑自己这一步,还要考虑对手下一步的最佳应对,然后反向选择对自己最有利的分支。

井字棋的复杂度

  • 井字棋共有 255,168 种可能的走法序列。
  • 国际象棋:仅前 4 步(双方各走 4 步)就有 850 亿种可能。
  • 围棋:前 4 步有 266 秭(quintillion) 种可能。

当问题规模大到无法穷举时,就不能再靠简单的 if-else 或遍历所有可能性来解决,必须让计算机"学习"如何解决问题——这就是机器学习的用武之地。


五、强化学习:奖励与惩罚

1. 什么是强化学习?

  • 强化学习(Reinforcement Learning) 是机器学习的一种,机器通过大量试错,根据奖励/惩罚信号学会解决问题。
  • 人类也在不断使用强化学习——例如训练孩子"多做某事、少做某事"。

2. 机器人学翻煎饼

  • 视频演示:研究人员先手动示范如何翻煎饼,然后让机器人自己尝试。
  • 机器人最初动作笨拙,但每次成功翻饼就获得数字奖励(如加分),每次掉饼就受惩罚。
  • 经过约 50 次尝试后,机器人越翻越好。
  • 理解:机器人的动作被量化为 x、y、z 坐标,它通过调整坐标组合来最大化奖励。

3. 迷宫寻路:探索与利用(Exploration vs. Exploitation)

  • 简化场景:黄色点代表玩家,绿色点代表出口,红色区域代表熔岩(惩罚)。
  • 如果玩家随机移动并碰壁,会记录"此路不通"(红色线),下次避开。
  • 最终可能找到一条通往出口的路径(绿色线),但这未必是最优路径——可能绕了远路。
  • 关键概念:
    • 利用(Exploitation):总是走已知的安全路径,能赢但可能不是最优。
    • 探索(Exploration):偶尔随机尝试新路径,可能发现更短路线。
  • 实现方法:引入 epsilon 变量(如 10%),每次决策生成随机数,若小于 epsilon 则随机移动,否则走已知最优路径。
  • 类比:去餐厅总点同一道菜,偶尔尝试新菜,可能会发现更好吃的美味。

4. Breakout 的 AI 演示:发现"作弊"策略

  • AI 玩 Breakout 的录像:
    • 开始时随机乱动;
    • 约 200 集后,开始意识到击球得分、丢球失分;
    • 持续训练后,AI 发现一个"可怕"的技巧:打穿顶部砖块后,让球在顶部反复弹跳,游戏自动得分,几乎不需要移动挡板。
  • 思考:这个策略不是人类教给它的,而是奖励/惩罚机制下自然涌现的"最优解"。这既令人惊叹,也提醒我们 AI 的优化目标可能走捷径,不一定符合人类预期。

六、监督学习与神经网络

1. 监督学习(Supervised Learning)

  • 垃圾邮件过滤就是监督学习:用户手动把邮件标记为垃圾邮件,就是在给算法提供标注数据。
  • 易错点:手动标注数据无法规模化。 如果每封邮件、每个视频都要人工标注,成本高到不可行。

2. 深度学习与神经网络

  • 深度学习(Deep Learning)不需要人类在循环中逐条标注,而是通过神经网络自动从海量数据中学习。
  • 神经网络受生物学启发:生物神经元传递电信号;计算机科学家将其抽象为节点(圆圈)和边(连线)。

3. 一个简单的神经网络例子:预测点的颜色

  • 二维平面中有蓝点和红点,输入是 x、y 坐标,输出是颜色(蓝/红)。
  • 最初只有两个数据点时,最佳猜测可能是画一条竖线分割左右。
  • 加入第三个数据点后,发现竖线不对,于是旋转决策边界。
  • 最终,通过足够多的数据点,可以拟合一条"最佳拟合线"。
  • 数学形式:A·x + B·y + C,若结果 > 0 预测蓝色,否则预测红色。
    • A、B、C 就是神经网络的参数。

实际神经网络有数十亿个节点和边,每个边代表一个数学权重。这些权重由训练数据决定,但内部的具体含义往往无法用人话解释——这就是神经网络的"黑箱"特性。

4. 神经网络的应用

  • 根据湿度、气压预测降雨量;
  • 根据广告投入预测销售额;
  • 输入是两个特征,输出是一个预测值。

七、大语言模型(LLM)与幻觉

1. GPT 是什么?

  • GPT = Generative Pre-trained Transformer(生成式预训练变换器),是 ChatGPT 中 "GPT" 的来源。
  • 本质是一个在海量文本数据上训练出来的神经网络,提供交互式聊天能力。

2. 预测下一个词:注意力机制

  • 例子:句子 "Massachusetts is a state in the New England region... The state's capital is ___"。
  • 传统方法很难:关键词距离太远,且 "state" 等普通名词替代了专有名词,AI 难以关联。
  • 现代 LLM 的做法:
    1. 将句子拆成词列表;
    2. 把每个词编码成向量(如 Massachusetts 用 1536 个浮点数表示);
    3. 计算注意力(Attention):词与词之间的关联强度(图中粗线表示强关联,如 Massachusetts 和 state;细线表示弱关联,如 a、is、the)。
    4. 根据上下文统计概率,输出最可能的下一个词。

3. LLM 是统计模型

  • LLM 本质上是在回答:"根据训练数据(Reddit、Google 搜索、百科全书、维基百科等),这个位置最可能出现的词是什么?"
  • 因此,答案是 Boston(大概率),但不是 100% 正确。

4. 幻觉(Hallucination)

  • 幻觉:AI 编造出看似合理但实际错误的内容。
  • 产生原因:
    • 互联网上存在错误信息,被 AI 当作权威;
    • 小概率的随机探索(类似 epsilon 机制)导致输出偏离正确路径。
  • 即使 CS50 的 Duck 也并非完美,尽管工作人员编写了大量代码来降低错误率。

AI 生成的内容需要人类批判性审查,不能盲目信任。 这是使用一切 LLM 工具时的基本素养。


八、结语:Homework Machine 的诗

讲师以谢尔·希尔弗斯坦(Shel Silverstein)的诗《作业机》结束本讲:

作业机,哦,作业机, 世界上最完美的机器。 只要把作业放进去,再投进一角硬币, 按下开关,十秒后, 作业就干干净净地出来了。 这就是——9 + 4 = 33。

  • 思考:这首诗几十年前就预言了 AI 时代的场景——机器看似完美,但结果可能错得离谱。AI 是强大的工具,但远非万能。

关键标签 / 关键词

人工智能 CS50 机器学习 强化学习 神经网络 大语言模型 GPT 提示工程 System Prompt User Prompt Minimax 决策树 探索与利用 监督学习 深度学习 幻觉 Copilot AI编程


生成时间:2026-09-02 16:21:51 生成平台:VideoNote