Skip to content

panjose/AI-Self-Prediction-Limits-Demos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🤖 AI 自我预测的局限性演示 (AI-Self-Prediction-Limits-Demos)

本项目包含三个 Python 实验,旨在以代码形式直观展示计算理论中的“停机问题”如何投射到现代人工智能系统,并导致“寂静的失败”和“对抗性脆弱性”等核心安全问题。本项目内容来源于对计算机导论课程报告《“停机问题”在人工智能中的影子:AI 是否能预测自身的失败?》的理论论证和实践验证。

🚀 项目结构

├── srcs/
│   ├── lab1.py                          # 停机问题悖论模拟
│   ├── lab2.py                          # 寂静的失败演示
│   ├── lab3.py                          # 对抗性攻击演示
│   ├── golden_retriever.jpg             # 实验 3 所需图片
│   ├── imagenet_classes.txt             # ImageNet 标签文件
├── figs/                                # 一些实验截图
└── README.md

🛠️ 环境准备

为了运行本项目的实验 2 和实验 3,您需要安装 PyTorch, TorchVision 以及其他必要的辅助库。

# 安装主要依赖
pip install torch torchvision matplotlib requests pillow

# 准备本地文件 (已提供)
# 1. ImageNet 标签文件
# 2. golden_retriever.jpg

🔬 实验内容与运行

1. 停机问题悖论

理论基础: 图灵的停机问题证明了通用计算系统无法完美预测自身的终止状态,依赖于自指构造

实验目标: 构造一个函数 paradoxical_program,以代码形式模拟这个逻辑悖论。

运行方式:

python srcs/lab1.py

代码核心: 假设存在一个完美判定器,程序 $D$ 总是执行与判定器预测相反的行为,从而证明判定器的不可能性。

2. 寂静的失败

理论基础: 停机问题在统计系统上的“软阴影”——模型在高置信度下做出错误预测(例如对 OOD 样本)。

实验目标: 将完全随机的噪声图片输入到预训练的 ResNet 模型中,观察模型给出的预测类别和置信度,以证明模型在“不知道”时依然可能“迷之自信”。

运行方式:

# 确保在运行前,imagenet_classes.txt 文件已准备好
python srcs/lab2.py

代码核心: 模型对纯噪声输入给出了远超随机概率的置信度,揭示了其认知不确定性的局限。

3. 对抗性攻击

理论基础: 对停机问题中“病态程序 $D$”概念的工程实践模拟,即通过微小、人眼不可察觉的扰动来欺骗模型。

实验目标: 使用 FGSM 算法,在一张金毛犬图片上生成微小扰动,使模型误识别为其他类别,并通过可视化对比扰动前后的差异。

运行方式:

# 确保在运行前,golden_retriever.jpg 和 imagenet_classes.txt 文件已准备好
python srcs/lab3.py

代码核心: 沿着梯度方向添加极小的 $\epsilon$ 扰动,即可使模型预测结果发生剧变,证明深度神经网络的脆弱性。

About

作为计算机导论这门课程的结课报告,编写了python代码项目,用于演示 AI 模型在理论限制和实践脆弱性下的三种核心失败模式:图灵悖论、寂静的失败和对抗性攻击。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages