初始化:从 docx 拆分为独立 Markdown 章节

将《设计人工智能:基础与应用》拆分为 38 个 Markdown 文件,
按 11 个部分(上篇6部分+下篇5部分)+ 3 个附录组织。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-04-25 10:32:58 +08:00
commit e58b95d227
42 changed files with 4857 additions and 0 deletions
+165
View File
@@ -0,0 +1,165 @@
### 学习目标
理解"Functions Describe the World"的核心理念
掌握从Excel到神经网络的演进逻辑
理解函数组合与层级抽象的思想
### 核心理念:函数描述世界
#### 从物理定律说起
物理学用简洁的函数描述复杂现象:
----------------------------------
现象 函数 发现者
---------- -------------- --------
自由落体 h = ½gt² 伽利略
万有引力 F = Gm₁m₂/r² 牛顿
电磁感应 ε = -dΦ/dt 法拉第
----------------------------------
这些函数的共同特点:**用数学关系描述客观规律**
#### AI的函数观
AI延续了这一传统:**用函数从数据中学习规律**
`数据`` → ``函数`` → ``预测``/``决策`\
` x → f(x) → y`
从Excel到神经网络
线性回归:y = ax + b
在Excel中,我们经常做线性拟合:
`房价`` ≈ 0.015 × ``面积`` + 50``万`\
` y = a × x + b`
这就是一个最简单的"AI模型"**单变量线性函数**
多元回归:y = a₁x₁ + a₂x₂ + ... + b
增加更多特征:
`房价`` ≈ 0.01 × ``面积`` + 0.5 × ``卧室数`` + 0.3 × ``地段评分`` - 20``万`
这就是**单层神经元**的数学形式!
函数组合:层级嵌套
现实世界的关系往往是非线性的,需要函数组合:
`h₁ = f₁(x) # ``第一层:提取特征`
`h₂ = f₂(h₁) # ``第二层:组合特征`
`y = f₃(h₂) # ``第三层:输出结果`
这就是**多层神经网络**的本质!
### 函数组合的威力
为什么需要多层?
**单层函数**只能学习简单的线性关系
**多层函数**可以学习任意复杂的非线性关系
直观例子:识别圆形
`输入:像素点灰度值`\
` ↓`\
`第一层:检测边缘(梯度变化)`\
` ↓`\
`第二层:组合边缘成弧线`\
` ↓`\
`第三层:判断是否闭合`` → ``圆形`
每一层都是一个函数,层层组合形成复杂能力。
### 数据驱动 vs 规则驱动
#### 规则驱动
`# ``传统编程:人工编写规则`\
`def`` ``is_circle``(image):`\
` edges ``=`` ``detect_edges``(image)`\
` ``if`` ``edges.is_closed``() ``and`` ``edges.is_round``():`\
` ``return`` ``True`\
` ``return`` ``False`
**问题**:规则难以穷举,无法处理复杂情况
#### 数据驱动
`# AI``:从数据中学习函数`\
`f ``=`` ``neural_network``()`\
`train(f, ``thousands_of_examples``)`\
`result ``=`` f(``new_image``) ``# ``自动判断`
**优势**:自动发现规律,适应复杂情况
### 神经网络的函数本质
数学表示
一个L层神经网络:
`y = ``f_L``(f_{L-``1}(``...f_₂(f₁(x))))`
其中每一层:
`h = ``σ(``Wx`` + b)`
W:权重矩阵(可学习参数)
b:偏置向量(可学习参数)
σ:激活函数(引入非线性)
#### 视觉理解
`输入层`` ``隐藏层`` ``输出层`\
` x ``h₁,h₂,h``₃ y`\
` ● ──────────→ ○ ──────────→ ●`\
` │ ○ │`\
` ● ──────────→ ○ ──────────→ ●`\
` │ ○ │`\
` ● ──────────→ ○ ──────────→ ●`\
` ``权重``W₁ ``权重``W₂`
箭头上的权重就是函数的参数,通过学习自动确定。
### 思考与练习
1.列举3个日常生活中"用函数描述世界"的例子
2.为什么单层函数无法学习异或(XOR)问题?
3.思考:设计中有哪些问题可以用"数据驱动函数"的思路解决?
### 关键术语
------------------------------------------------------------
中文 英文 说明
---------- --------------------- ---------------------------
线性回归 Linear Regression y = ax + b 形式的函数拟合
多元回归 Multiple Regression 多输入变量的线性模型
权重 Weight 神经网络中的可学习参数
偏置 Bias 调整输出基准的参数
非线性 Non-linearity 无法用直线表示的关系
------------------------------------------------------------
### 延伸阅读
[Neural Networks and Deep Learning](http://neuralnetworksanddeeplearning.com/) - 在线书籍
+221
View File
@@ -0,0 +1,221 @@
### 学习目标
理解MLP的基本结构
掌握前向传播的计算过程
了解激活函数的作用和类型
理解反向传播的基本思想
### MLP结构
#### 什么是MLP
**MLP (Multi-Layer Perceptron)**:多层感知机,是最基础的神经网络结构。
网络架构
`输入层`` ``隐藏层`` ``输出层`\
` ┌─────────┐ ┌─────────────┐ ┌─────────┐`\
` │ x₁ │ │ h₁ │ │ y₁ │`\
` │ x₂ │───→│ h₂ │───→│ y₂ │`\
` │ x₃ │ │ h₃ │ │ y₃ │`\
` │ ... │ │ ... │ │ ... │`\
` │ xₙ │ │ hₘ │ │ yₖ │`\
` └─────────┘ └─────────────┘ └─────────┘`\
` │ │ │`\
` └───────────────┴────────────────┘`\
` ``全连接(每个神经元相连)`
#### 层次说明
----------------------------------------
层类型 作用 神经元数量
-------- ---------------- --------------
输入层 接收原始数据 取决于特征数
隐藏层 特征变换与组合 自由设计
输出层 产生最终结果 取决于任务
----------------------------------------
### 前向传播
#### 单个神经元
`# ``线性部分`\
`z ``=`` ``w₁x``₁ ``+`` ``w₂x``₂ ``+`` ... ``+`` ``wₙx``ₙ ``+`` b`\
\
`# ``激活函数`\
`h ``=`` σ(z)`
#### 完整网络
对于L层网络:
`# ``第``1``层`
`h₁ ``=`` σ``₁(``W₁x`` ``+`` b₁)`
`# ``第``2``层`
`h₂ ``=`` σ``₂(``W₂h``₁ ``+`` b₂)`
`# ...`
`# ``第``L``层`
y = σₗ(Wₗh_{l-1} + bₗ)
#### 数据流动
`输入向量`` x₀`\
` │`\
` ├─→ W₁, b₁ ──→ z₁ = ``W₁x``₀ + b₁`\
` │ │`\
` │ └─→ σ₁(z₁) = h₁`\
` │ │`\
` └──────────────────────────────├─→ W₂, b₂ ──→ z₂ = ``W₂h``₁ + b₂`\
` │ │`\
` └─→ σ₂(z₂) = h₂`\
` │`\
` └─→ ... → y`
### 激活函数
#### 为什么需要激活函数?
没有激活函数,多层网络就等价于单层线性变换:
`y = W₂(``W₁x``) = (W₂W``₁)x`` = ``W'x`
激活函数引入**非线性**,使网络能够学习复杂模式。
#### 常用激活函数
--------------------------------------------------------------------
激活函数 公式 特点 应用场景
---------- ----------------------------- ------------ --------------
Sigmoid σ(z) = 1/(1+e⁻ᶻ) 输出(0,1) 二分类输出层
ReLU ReLU(z) = max(0,z) 简单高效 隐藏层首选
Softmax softmax(zᵢ) = eᶻⁱ/Σeᶻʲ 输出和为1 多分类输出层
Tanh tanh(z) = (eᶻ-e⁻ᶻ)/(eᶻ+e⁻ᶻ) 输出(-1,1) 循环网络
--------------------------------------------------------------------
#### 视觉对比
`ReLU``: Sigmoid: Tanh:`\
` ↑ ___ ___`\
` │ / ╲`\
` │ / ╲`\
` │____ / ╲___`\
` │ ______ / │`\
` └──────── / └──`\
` -``∞ 0`` +∞ -∞ 0 +∞ -∞ 0 +∞`
### 损失函数与优化
#### 损失函数
损失函数衡量模型预测与真实值的差距:
---------------------------------------
任务 损失函数 公式
-------- ---------- -------------------
回归 均方误差 MSE = Σ(ŷ-y)²/n
二分类 交叉熵 CE = -y·log(ŷ)
多分类 交叉熵 CE = -Σyᵢ·log(ŷᵢ)
---------------------------------------
#### 优化目标
`最小化损失函数:`\
`min L(f(x; θ), y)`\
\
`其中`` θ = {W₁, b₁, W₂, b₂, ...} ``是所有可学习参数`
#### 梯度下降
`重复直到收敛:`\
` θ = θ - α·∇L(θ)`\
\
`其中:`\
` θ``:参数`\
` α``:学习率`\
` ∇L(θ)``:损失函数的梯度`
### 反向传播
核心思想
从输出层向输入层反向计算梯度:
`输出层误差`` → ``隐藏层误差`` → ... → ``输入层误差`
链式法则
`∂L/∂W₁ = (∂L/∂y) · (∂y/∂h₂) · (∂h₂/∂z₂) ·`\
` `` (``∂z₂/∂h₁) · (∂h₁/∂z₁) · (∂z₁/∂W₁)`
直观理解
1.**前向传播**:计算每个神经元的输出
2.**计算误差**:比较输出与真实值
3.**反向传播**:将误差反向传递
4.**更新权重**:根据误差调整参数
### MLP vs 传统模型
--------------------------------------
特性 MLP 传统机器学习
------------ ---------- --------------
特征工程 自动学习 人工设计
非线性能力 强 中/弱
数据需求 大量 中等
可解释性 低 高
训练时间 长 短
--------------------------------------
### 思考与练习
1.为什么隐藏层越多,网络表达能力越强?
2.ReLU为什么比Sigmoid更适合隐藏层?
3.如果所有权重初始化为0,会发生什么?
### 关键术语
----------------------------------------------------------
中文 英文 说明
---------- ------------------ ----------------------------
前向传播 Forward Pass 数据从输入到输出的计算过程
反向传播 Backpropagation 计算梯度的算法
损失函数 Loss Function 衡量预测误差的函数
梯度下降 Gradient Descent 优化算法
学习率 Learning Rate 参数更新的步长
----------------------------------------------------------
### 延伸阅读
[Neural Networks and Deep Learning - Chapter 1](http://neuralnetworksanddeeplearning.com/chap1.html)
[Yes you should understand backprop](https://medium.com/@karpathy/yes-you-should-understand-backprop-e2f06eab496b) \# 01.3 编程工具与Vibe Coding
+226
View File
@@ -0,0 +1,226 @@
## 学习目标
掌握Python AI开发环境配置
了解核心科学计算库
理解Vibe Coding的AI辅助编程新模式
### Python环境配置
#### Anaconda vs Miniconda
-----------------------------------------------
工具 大小 特点 适用场景
----------- --------- ------------ ------------
Anaconda \~500MB 预装常用库 初学者推荐
Miniconda \~50MB 仅含conda 精简安装
-----------------------------------------------
#### 安装步骤
##### 1.下载安装
o访问 https://www.anaconda.com/download
o选择Python 3.x版本
o按提示安装
##### 2.创建虚拟环境
`conda`` create ``-n`` ai-env python=3.10`\
`conda`` activate ai-env`
##### 3.安装核心库
`conda`` install ``numpy`` pandas ``scipy`\
`pip`` install torch ``torchvision`
### 核心科学计算库
#### NumPy:数值计算基础
`import`` ``numpy`` ``as`` np`\
\
`# ``创建数组`\
`x ``=`` ``np.array``([``1``, ``2``, ``3``, ``4``])`\
\
`# ``矩阵运算`\
`W ``=`` ``np.random.randn``(``4``, ``3``) ``# 4×3``权重矩阵`\
`h ``=`` np.dot(x, W) ``# ``矩阵乘法`\
\
`# ``激活函数`\
`relu`` ``=`` ``np.maximum``(``0``, h) ``# ``ReLU`
#### Pandas:数据处理
`import`` pandas ``as`` pd`\
\
`# ``读取数据`\
`df`` ``=`` ``pd.read_csv``(``'data.csv'``)`\
\
`# ``数据清洗`\
`df`` ``=`` ``df.dropna``()`\
`df`` ``=`` ``df`` normalized ``=`` (``df`` ``-`` ``df.mean``()) ``/`` ``df.std``()`\
\
`# ``统计分析`\
`df.describe``()`
#### SciPy:科学计算
`from`` ``scipy`` ``import`` optimize`\
`from`` ``scipy.spatial`` ``import`` distance`\
\
`# ``优化问题`\
`result ``=`` ``optimize.minimize``(``loss_func``, x0)`\
\
`# ``距离计算`\
`dist`` ``=`` ``distance.euclidean``(point1, point2)`
### 开发工具选择
#### VSCode
**特点**: - 微软开源,免费 - 丰富的插件生态 - 轻量级,启动快
**AI开发常用插件** - Python - Jupyter - Pylance - Copilot
## Cursor
**特点**: - AI原生IDE - 代码补全与生成 - 自然语言编程
**使用场景**: - 快速原型开发 - 代码重构 - 学习新API
## Jupyter Notebook
**特点**: - 交互式编程 - 可视化友好 - 文档即代码
**使用场景**: - 数据探索 - 算法实验 - 教学演示
# Vibe CodingAI辅助编程
## 什么是Vibe Coding
传统编程:**明确需求 → 设计算法 → 编写代码**
Vibe Coding**模糊想法 → AI辅助 → 迭代完善**
## 工作流程
### 1. 描述意图(自然语言)
`"``帮我创建一个简单的神经网络``"`
###
`2. AI``生成代码`
### → 自动生成完整代码框架
`3. ``运行测试`
`→ ``发现问题或需要调整`
`4. ``迭代优化`
`"``把隐藏层改成``128``个神经元``"`
`→ AI``自动修改代码`
`5. ``理解学习`
→ 阅读AI生成的代码,学习最佳实践
## 实践技巧
---------------------------------
技巧 说明
---------- ----------------------
明确需求 详细描述输入输出
分步实现 复杂功能拆解为小任务
验证结果 检查生成的代码
学习思考 理解AI为什么这样写
---------------------------------
## 工具推荐
--------------------------------------------
工具 特点 适用场景
---------------- ---------------- ----------
GitHub Copilot 代码补全 日常开发
Cursor 对话式编程 快速原型
ChatGPT/Claude 代码生成与解释 学习咨询
Replit Agent 端到端开发 小型项目
--------------------------------------------
## 开发工作流
项目结构
`project/`\
`├── data/ # ``数据文件`\
`├── notebooks/ # ``Jupyter``笔记本`\
`├── ``src``/ # ``源代码`\
`│ ├── models/ # ``模型定义`\
`│ ├── utils/ # ``工具函数`\
`│ └── train.py # ``训练脚本`\
`├── requirements.txt # ``依赖列表`\
`└── README.md # ``项目说明`
### 典型工作流
`# 1. ``创建环境`\
`conda`` create ``-n`` ``myproject`` python=3.10`\
`conda`` activate ``myproject`\
\
`# 2. ``安装依赖`\
`pip`` install ``-r`` requirements.txt`\
\
`# 3. ``开发迭代`\
`# - ``在``notebook``中实验`\
`# - ``整理到``src``/``目录`\
`# - ``运行测试`\
\
`# 4. ``保存环境`\
`conda`` env export ``>`` ``environment.yml`
## 思考与练习
1.对比Anaconda和Miniconda,什么时候该用哪个?
2.尝试用Cursor/Copilot生成一个简单的神经网络代码
3.Vibe Coding如何改变传统的编程学习方式?
## 关键术语
-----------------------------------------------------------
中文 英文 说明
---------- ----------------------- ------------------------
虚拟环境 Virtual Environment 隔离的Python运行环境
依赖管理 Dependency Management 管理项目所需的库
代码补全 Code Completion 自动补全正在输入的代码
原型开发 Prototyping 快速构建可运行版本
迭代优化 Iterative Refinement 逐步改进代码
-----------------------------------------------------------
## 延伸阅读
[Anaconda官方文档](https://docs.anaconda.com/)
[NumPy快速入门](https://numpy.org/doc/stable/user/quickstart.html)
[Cursor使用指南](https://cursor.com/docs)
+49
View File
@@ -0,0 +1,49 @@
# 第二篇:数学与编程基础
本篇从函数式视角理解AI,介绍神经网络的基本原理和Python编程工具,为后续学习打下基础。
## 篇章导读
理解AI不需要高深的数学背景。核心理念是:**神经网络就是由简单函数组合而成的复杂函数**。
从Excel的线性回归到深度神经网络,本质上是同样的思想:**用函数来描述和预测世界**。
本篇将: - 从函数式视角理解AI - 介绍多层感知机的基本原理 - 讲解Python编程工具和AI辅助编程
## 章节目录
[01.1 函数式AI视角](01.1-math-foundation.md) - "Functions Describe the World"
[01.2 多层感知机](01.2-mlp-basics.md) - MLP结构与原理
[01.3 编程工具与Vibe Coding](01.3-programming.md) - Python环境与AI辅助编程
## 学习目标
完成本篇后,你将能够:
从函数组合角度理解神经网络
描述MLP的基本结构和工作原理
配置Python AI开发环境
使用AI工具辅助编程学习
## 核心概念
-----------------------------------------------------------
概念 英文 说明
------------ --------------------- ------------------------
多层感知机 MLP Multi-Layer Perceptron
前向传播 Forward Pass 数据通过网络的过程
激活函数 Activation Function 引入非线性的函数
损失函数 Loss Function 衡量预测误差的函数
反向传播 Backpropagation 计算梯度的算法
-----------------------------------------------------------
## 01.1 函数式AI视角