
视频元信息
- 视频时长:未提供
- 所属课程: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 代码,当时难以理解,现在可以逐行解析:
- 导入 OpenAI 的库;
- 创建
client变量,获取 OpenAI 客户端; - 用
input()定义user_prompt(用户输入); - 定义
system_prompt(例如"假装你是猫"); - 调用
client.responses.create,传入三个参数:用户输入、系统指令、模型版本; - 打印
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 的做法:
- 将句子拆成词列表;
- 把每个词编码成向量(如 Massachusetts 用 1536 个浮点数表示);
- 计算注意力(Attention):词与词之间的关联强度(图中粗线表示强关联,如 Massachusetts 和 state;细线表示弱关联,如 a、is、the)。
- 根据上下文统计概率,输出最可能的下一个词。
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