17-1 神经网络基础:逻辑回归与激活函数

🎯 教学目标与重难点…

【三维目标】

  • 📚 知识目标:理解逻辑回归与线性回归的本质区别;掌握 Sigmoid 函数的数学形式及其将线性输出映射为概率的机制;熟悉二元交叉熵损失函数的定义及其与均方误差的对比;了解 tanh、ReLU 等常见激活函数的数学形式与适用场景。
  • ⚙️ 能力目标:能够从零推导逻辑回归的梯度下降更新公式;能够使用 NumPy 实现逻辑回归的损失函数计算与梯度下降训练;能够用 matplotlib 可视化 Sigmoid、tanh、ReLU 等激活函数的曲线形态。
  • 💡 素养目标:建立“神经网络即函数近似器”的数学直觉;理解激活函数在引入非线性中的核心作用;培养从线性模型向神经网络过渡的思维框架。

【重点与难点】

  • 🟢 教学重点:逻辑回归的模型形式(\( \hat{y} = \sigma(w^T x + b) \))与概率解释;Sigmoid 函数的数学性质(输出范围、导数形式);二元交叉熵损失函数的定义与含义;常见激活函数的形态对比。
  • 🟡 教学难点:逻辑回归的似然函数构造与交叉熵损失的推导过程;梯度下降中交叉熵损失对参数的偏导数推导;Sigmoid 函数饱和区梯度消失问题的理解。

📌 一、 课程导入(8 分钟)

主题:从线性回归到神经网络——缺失的那一环

线性回归(第 8 章)解决了连续数值预测问题:给定输入特征 \( x \),模型输出 \( \hat{y} = w^T x + b \),通过最小化均方误差拟合数据。

但现实世界的问题往往不止于此:

问题类型 示例 输出形式 能否用线性回归?
房价预测 预测房屋售价 连续数值(如 200 万) ✅ 适用
邮件分类 判断邮件是否为垃圾邮件 是/否(二分类) ❌ 不适用
手写数字识别 识别图片中是 0-9 哪个数字 10 个类别(多分类) ❌ 不适用

分类问题要求输出的是离散的类别标签,而非连续的数值。线性回归无法直接处理分类任务。

在进入完整的神经网络之前,需要先解决一个更基础的问题:如何使用线性模型做二分类? 逻辑回归提供了答案。它只包含一个神经元,是神经网络的最简形态。理解逻辑回归,等于理解了神经网络的一半。

本课路径

1线性回归(连续预测)
23逻辑回归(二分类) ← 本次课核心
45激活函数(非线性的来源)
67神经网络(多层堆叠)
  • 👨‍🏫 教师活动:以邮件分类为例,引导学生思考“线性回归能否输出‘是/否’?”;回顾第 8 章波士顿房价预测的任务形式;给出本课结构图。
  • 🧑‍🎓 学生活动:回忆线性回归的输出形式与损失函数;思考二分类问题的需求与输出约束。

建立课程间的联系,让学生明确本课在整个知识体系中的位置——线性模型到神经网络的关键过渡。


📖 二、 解决问题过程(一):逻辑回归——神经元的雏形(35 分钟)

2.1 从线性回归到逻辑回归

核心问题:线性回归的输出 \( z = w^T x + b \) 取值范围为 \( (-\infty, +\infty) \),无法直接作为二分类(0 或 1)的预测结果。

解决方案:在线性输出后加一层“映射”,将任意实数压缩到 \( (0, 1) \) 区间,作为正类的概率。

2.2 Sigmoid 函数(Logistic 函数)

\[ \sigma(z) = \frac{1}{1 + e^{-z}} \]

数学性质

  • 值域:\( (0, 1) \)
  • 对称性:\( \sigma(-z) = 1 - \sigma(z) \)
  • 单调递增
  • 导数表达式:\( \sigma'(z) = \sigma(z) \cdot (1 - \sigma(z)) \)(该性质在反向传播中简化计算)

逻辑回归的模型形式

\[ \hat{y} = P(y = 1 | x) = \sigma(w^T x + b) = \frac{1}{1 + e^{-(w^T x + b)}} \]

预测规则

\[ \hat{y} \geq 0.5 \Rightarrow \text{预测为类别 1} \]

\[ \hat{y} < 0.5 \Rightarrow \text{预测为类别 0} \]

2.3 决策边界

\( w^T x + b = 0 \) 是逻辑回归的决策边界。在二维特征空间中,该边界是一条直线;在更高维空间中,是一个超平面。

💡 直觉理解:逻辑回归本质上仍是线性分类器——决策边界是线性的。若数据线性不可分,逻辑回归无法正确分类。

2.4 逻辑回归的损失函数

为什么不能用均方误差(MSE)?

对于逻辑回归,损失函数 \( L(\hat{y}, y) = \frac{1}{2}(\hat{y} - y)^2 \) 关于参数 \( w \) 的梯度表达式中包含因子 \( \sigma'(z) \)。当预测接近 0 或 1 时,\( \sigma'(z) \approx 0 \),梯度趋近于零,模型无法有效更新参数(梯度消失)。

二元交叉熵损失(Binary Cross-Entropy Loss)

\[ L(\hat{y}, y) = -\left[ y \cdot \log(\hat{y}) + (1 - y) \cdot \log(1 - \hat{y}) \right] \]

直观理解

  • 当真实标签 \( y = 1 \) 时,损失 \( = -\log(\hat{y}) \):预测概率越接近 1,损失越接近 0;预测越接近 0,损失趋向无穷。
  • 当真实标签 \( y = 0 \) 时,损失 \( = -\log(1 - \hat{y}) \):预测概率越接近 0,损失越接近 0;预测越接近 1,损失趋向无穷。

批量的平均损失

\[ J(w, b) = -\frac{1}{m} \sum_{i=1}^{m} \left[ y^{(i)} \cdot \log(\hat{y}^{(i)}) + (1 - y^{(i)}) \cdot \log(1 - \hat{y}^{(i)}) \right] \]

其中 \( m \) 为样本数。

2.5 参数学习:梯度下降

梯度(偏导数)

\[ \frac{\partial J}{\partial w_j} = \frac{1}{m} \sum_{i=1}^{m} (\hat{y}^{(i)} - y^{(i)}) x_j^{(i)} \]\[ \frac{\partial J}{\partial b} = \frac{1}{m} \sum_{i=1}^{m} (\hat{y}^{(i)} - y^{(i)}) \]

参数更新规则(以 \( w_j \) 为例):

\[ w_j := w_j - \alpha \cdot \frac{\partial J}{\partial w_j} \]

对比线性回归的梯度

模型 输出 损失函数 梯度表达式
线性回归 \( \hat{y} = w^T x + b \) MSE \( \frac{1}{m} \sum (\hat{y} - y) x \)
逻辑回归 \( \hat{y} = \sigma(w^T x + b) \) Cross-Entropy \( \frac{1}{m} \sum (\hat{y} - y) x \)

观察:梯度表达式在形式上完全一致,区别仅在于 \( \hat{y} \) 的计算方式不同。这是有意设计的,使得两种模型的代码实现几乎可以复用。

  • 👨‍🏫 教师活动:在黑板逐步推导 Sigmoid 导数公式;对比 MSE 与 Cross-Entropy 在逻辑回归中的梯度差异,解释交叉熵的必要性;写出梯度下降参数更新公式。
  • 🧑‍🎓 学生活动:跟随推导过程在笔记本上记录;完成数学推理;思考“为什么同样形式的梯度可以用于两种不同模型”。

逻辑回归是理解神经网络的基础,其推导过程体现了“线性变换 + 非线性激活 + 损失函数”这一神经网络核心范式的全部要素。强化对梯度表达式的理解,为后续 BP 算法建立直观基础。


📖 三、 解决问题过程(二):激活函数——非线性的来源(25 分钟)

3.1 为什么需要激活函数?

问题:若神经网络中每个神经元都仅做线性变换 \( z = w^T x + b \),那么无论叠加多少层,整体仍是一个线性函数:

\[ z^{(2)} = W_2^T (W_1^T x + b_1) + b_2 = (W_2^T W_1^T) x + (W_2^T b_1 + b_2) = W'^T x + b' \]

结论:没有非线性激活函数的多层网络等价于单层线性模型,无法拟合复杂函数。

激活函数的作用

  1. 引入非线性,使神经网络能够逼近任意复杂函数(通用近似定理)
  2. 将神经元输出映射到特定范围(如 \( (0,1) \)、\( (-1,1) \)、\( [0, +\infty) \) 等)

3.2 常见激活函数

(1)Sigmoid 函数

\[ \sigma(x) = \frac{1}{1 + e^{-x}} \]
属性 说明
值域 \( (0, 1) \)
导数 \( \sigma'(x) = \sigma(x)(1 - \sigma(x)) \),最大值 0.25
特点 可解释为概率;饱和区梯度极小
适用场景 输出层(二分类)
主要缺陷 饱和区梯度消失;输出非零中心(后层输入全为正)

(2)tanh 函数

\[ \tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}} = 2\sigma(2x) - 1 \]
属性 说明
值域 \( (-1, 1) \)
导数 \( \tanh'(x) = 1 - \tanh^2(x) \),最大值 1
特点 零中心,实际表现通常优于 Sigmoid
主要缺陷 仍有饱和区梯度消失问题

(3)ReLU(Rectified Linear Unit)

\[ \text{ReLU}(x) = \max(0, x) \]
属性 说明
值域 \( [0, +\infty) \)
导数 \( x > 0 \) 时为 1,\( x < 0 \) 时为 0,\( x = 0 \) 处不可导(次梯度取 0)
特点 计算简单;正区间梯度恒为 1,缓解梯度消失
适用场景 隐藏层默认选择
主要缺陷 负区间输出为 0,可能导致“神经元死亡”

(4)Leaky ReLU

\[ \text{LeakyReLU}(x) = \max(\alpha x, x), \quad \alpha \text{ 为小常数(如 0.01)} \]

缓解 ReLU 在负区间的神经元死亡问题,负区间保留一个较小的梯度。

3.3 激活函数选择原则

层的位置 推荐激活函数 理由
隐藏层 ReLU(首选) 计算快、缓解梯度消失
输出层(二分类) Sigmoid 输出可解释为概率
输出层(多分类) Softmax 输出各类别概率,和为 1
输出层(回归) 无(线性激活) 输出无范围限制
  • 👨‍🏫 教师活动:在黑板上绘制四种激活函数曲线,标注关键性质;用叠加两层线性变换的数学推导说明激活函数的必要性;讲解每种激活函数的导数与特性。
  • 🧑‍🎓 学生活动:在笔记中手绘激活函数曲线,标注值域与关键点;思考“为什么 ReLU 在正区间梯度恒为 1 就能缓解梯度消失”。

激活函数是神经网络非线性能力的来源。通过系统的函数对比与数学分析,帮助学生建立科学的函数选择框架。


✍️ 四、 解决问题过程(三):代码实践与课堂练习(20 分钟)

4.1 激活函数可视化

 1import numpy as np
 2import matplotlib.pyplot as plt
 3
 4x = np.linspace(-5, 5, 200)
 5
 6# 定义激活函数
 7def sigmoid(x):
 8    return 1 / (1 + np.exp(-x))
 9
10def tanh(x):
11    return np.tanh(x)
12
13def relu(x):
14    return np.maximum(0, x)
15
16def leaky_relu(x, alpha=0.01):
17    return np.where(x > 0, x, alpha * x)
18
19# 绘制对比图
20fig, axes = plt.subplots(2, 2, figsize=(12, 8))
21
22functions = [sigmoid, tanh, relu, leaky_relu]
23titles = ['Sigmoid', 'Tanh', 'ReLU', 'Leaky ReLU']
24
25for ax, func, title in zip(axes.flat, functions, titles):
26    ax.plot(x, func(x), linewidth=2)
27    ax.axhline(y=0, color='k', linestyle='-', linewidth=0.5)
28    ax.axvline(x=0, color='k', linestyle='-', linewidth=0.5)
29    ax.set_title(title)
30    ax.grid(True, alpha=0.3)
31    ax.set_xlim(-5, 5)
32    ax.set_ylim(-2, 2)
33
34plt.tight_layout()
35plt.show()

4.2 逻辑回归从零实现(代码框架)

 1import numpy as np
 2from sklearn.datasets import make_classification
 3from sklearn.model_selection import train_test_split
 4
 5# 生成二分类数据集(线性可分)
 6X, y = make_classification(n_samples=500, n_features=2, n_redundant=0,
 7                           n_informative=2, n_clusters_per_class=1,
 8                           random_state=42)
 9
10X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
11
12class LogisticRegression:
13    def __init__(self, learning_rate=0.1, n_iterations=1000):
14        self.lr = learning_rate
15        self.n_iterations = n_iterations
16        self.weights = None
17        self.bias = None
18
19    def _sigmoid(self, z):
20        return 1 / (1 + np.exp(-z))
21
22    def fit(self, X, y):
23        n_samples, n_features = X.shape
24        self.weights = np.zeros(n_features)
25        self.bias = 0
26
27        for _ in range(self.n_iterations):
28            linear_output = np.dot(X, self.weights) + self.bias
29            y_pred = self._sigmoid(linear_output)
30
31            dw = (1 / n_samples) * np.dot(X.T, (y_pred - y))
32            db = (1 / n_samples) * np.sum(y_pred - y)
33
34            self.weights -= self.lr * dw
35            self.bias -= self.lr * db
36
37    def predict_proba(self, X):
38        return self._sigmoid(np.dot(X, self.weights) + self.bias)
39
40    def predict(self, X, threshold=0.5):
41        return (self.predict_proba(X) >= threshold).astype(int)
42
43    def score(self, X, y):
44        return np.mean(self.predict(X) == y)
45
46# 训练与评估
47model = LogisticRegression(learning_rate=0.1, n_iterations=2000)
48model.fit(X_train, y_train)
49print(f"训练集准确率: {model.score(X_train, y_train):.4f}")
50print(f"测试集准确率: {model.score(X_test, y_test):.4f}")
  • 👨‍🏫 教师活动:运行激活函数可视化代码,展示四种函数曲线形态;运行逻辑回归代码,展示训练过程;逐段解释代码与数学公式的对应关系。
  • 🧑‍🎓 学生活动:运行并理解激活函数可视化代码;在 Jupyter Notebook 中复现逻辑回归实现并完成课堂练习。

将抽象的数学公式转化为可运行的代码,帮助学生建立“数学推导 → 代码实现 → 实验验证”的完整闭环思维。


✍️ 五、 课堂练习与巩固(10 分钟)

📝 任务一:激活函数绘图与性质分析

题目

在 Jupyter Notebook 中完成以下任务:

  1. 在 \([-5, 5]\) 区间绘制 Sigmoid、Tanh、ReLU、Leaky ReLU 四种激活函数的曲线(子图 2×2)
  2. 在同一张图上绘制 Sigmoid 函数及其导数曲线,标注最大值点的位置
  3. 观察 ReLU 在 \( x < 0 \) 区域的输出值,解释“神经元死亡”的原因
参考代码与解析
 1import numpy as np
 2import matplotlib.pyplot as plt
 3
 4x = np.linspace(-5, 5, 200)
 5
 6def sigmoid(x):
 7    return 1 / (1 + np.exp(-x))
 8
 9def sigmoid_derivative(x):
10    s = sigmoid(x)
11    return s * (1 - s)
12
13# 绘制 Sigmoid 及其导数
14plt.figure(figsize=(8, 5))
15plt.plot(x, sigmoid(x), label='Sigmoid', linewidth=2)
16plt.plot(x, sigmoid_derivative(x), label="Sigmoid 导数", linestyle='--', linewidth=2)
17plt.axhline(y=0.25, color='gray', linestyle=':', alpha=0.7)
18plt.legend()
19plt.grid(True, alpha=0.3)
20plt.title('Sigmoid 函数及其导数')
21plt.show()

解析:Sigmoid 导数在 \( x=0 \) 处取最大值 0.25,向两侧迅速衰减至 0。该性质导致深层网络中梯度逐层衰减(梯度消失问题)。

📝 任务二:逻辑回归参数调整实验

题目

基于课堂提供的逻辑回归实现,完成以下实验:

  1. 将学习率分别设为 0.001、0.01、0.1、1.0,记录训练集与测试集准确率
  2. 观察学习率过大(1.0)时模型是否收敛,解释原因
  3. 将迭代次数从 2000 改为 100,观察准确率变化
参考结果与解析
学习率 训练集准确率 测试集准确率 收敛情况
0.001 ~0.75 ~0.74 收敛缓慢,2000 轮后仍可能未充分收敛
0.01 ~0.96 ~0.94 正常收敛
0.1 ~0.97 ~0.95 正常收敛(最快)
1.0 ~0.50 ~0.50 震荡,无法收敛

解析:学习率过小导致收敛速度极慢;学习率过大会导致参数更新跳过最优点,在损失函数表面产生震荡甚至发散。


📝 六、 课堂小结(7 分钟)

flowchart LR
    root["17-1 神经网络基础:逻辑回归与激活函数"]

    subgraph C1["📐 逻辑回归"]
        direction TB
        A1["模型: ŷ = σ(wᵀx + b)"]
        A2["Sigmoid: 实数 → (0,1) 概率映射"]
        A3["决策边界: wᵀx + b = 0"]
    end

    subgraph C2["📉 损失函数与梯度"]
        direction TB
        B1["交叉熵损失: 惩罚错误预测"]
        B2["梯度: ∂J/∂w = (1/m)∑(ŷ-y)x"]
        B3["与线性回归梯度形式一致"]
    end

    subgraph C3["⚡ 激活函数"]
        direction TB
        C3_1["Sigmoid: (0,1) 饱和区梯度消失"]
        C3_2["Tanh: (-1,1) 零中心"]
        C3_3["ReLU: max(0,x) 正区间恒梯度"]
        C3_4["Leaky ReLU: 缓解神经元死亡"]
    end

    subgraph C4["💻 代码实现"]
        direction TB
        D1["激活函数可视化"]
        D2["LogisticRegression 从零实现"]
        D3["梯度下降训练流程"]
    end

    root --> C1
    root --> C2
    root --> C3
    root --> C4

    style root fill:#4b6cb7,stroke:#253b6e,color:#fff,stroke-width:2px
    style C1 fill:#e3f2fd,stroke:#2196f3
    style C2 fill:#fff3e0,stroke:#ff9800
    style C3 fill:#e8f5e9,stroke:#4caf50
    style C4 fill:#f3e5f5,stroke:#9c27b0

✏️ 随堂检测与互动练习

点击展开:随堂测试题(带解析)

一、 单选题

  1. 逻辑回归的模型输出 \( \hat{y} = \sigma(w^T x + b) \) 表示的是?
  • A. 样本属于类别 0 的概率
  • B. 样本属于类别 1 的概率
  • C. 样本的特征值总和
  • D. 样本的类别标签(0 或 1)
【答案】

【解析】B。Sigmoid 函数将任意实数映射到 \( (0,1) \) 区间,逻辑回归将其解释为样本属于正类(类别 1)的概率。

  1. Sigmoid 函数的导数 \( \sigma'(z) \) 等于?
  • A. \( \sigma(z) \)
  • B. \( 1 - \sigma(z) \)
  • C. \( \sigma(z) \cdot (1 - \sigma(z)) \)
  • D. \( \sigma(z) / (1 - \sigma(z)) \)
【答案】

【解析】C。该性质使得反向传播中的梯度计算极为简洁。

  1. 下列哪项是逻辑回归使用交叉熵损失而非均方误差的主要原因?
  • A. 交叉熵计算更简单
  • B. 均方误差在逻辑回归中会导致梯度消失,参数难以更新
  • C. 交叉熵得到的梯度表达式与线性回归完全相同
  • D. 均方误差无法求导
【答案】

【解析】B。MSE 对逻辑回归的梯度包含 \( \sigma'(z) \) 因子,当预测接近 0 或 1 时梯度趋近于 0,参数更新停滞。

  1. 关于 ReLU 激活函数,下列说法正确的是?
  • A. 值域为 \( (-1, 1) \)
  • B. 在整个实数域均可导
  • C. 正区间的梯度恒为 1,有助于缓解梯度消失
  • D. 不存在任何缺陷
【答案】

【解析】C。A 错误:ReLU 值域为 \( [0, +\infty) \);B 错误:在 \( x=0 \) 处不可导;D 错误:存在神经元死亡问题。

  1. 若逻辑回归的决策边界为 \( w_1 x_1 + w_2 x_2 + b = 0 \),则下列说法正确的是?
  • A. 该决策边界一定是直线
  • B. 该决策边界一定是曲线
  • C. 决策边界由数据分布决定
  • D. 该模型可以拟合任意复杂的决策边界
【答案】

【解析】A。逻辑回归是线性分类器,其决策边界在特征空间中始终为直线(或超平面),无法拟合非线性边界。

二、 计算题

题目:给定单个样本 \( x = 1 \),\( y = 1 \),模型参数 \( w = 0.5 \),\( b = 0 \)。计算:

(1)线性输出 \( z \) (2)预测概率 \( \hat{y} \) (3)该样本的交叉熵损失 \( L \) (4)梯度 \( \frac{\partial L}{\partial w} \)

【答案】

(1)\( z = w \cdot x + b = 0.5 \times 1 + 0 = 0.5 \)

(2)\( \hat{y} = \sigma(0.5) = \frac{1}{1 + e^{-0.5}} \approx 0.6225 \)

(3)\( L = -[y \cdot \log(\hat{y}) + (1-y) \cdot \log(1-\hat{y})] = -\log(0.6225) \approx 0.474 \)

(4)\( \frac{\partial L}{\partial w} = (\hat{y} - y) \cdot x = (0.6225 - 1) \times 1 = -0.3775 \)

三、 简答题

题目:为什么说“没有非线性激活函数的多层神经网络等价于单层线性模型”?请用数学表达式简要说明。

【答案】

设有两层网络:\( z^{(1)} = W_1^T x + b_1 \),\( z^{(2)} = W_2^T z^{(1)} + b_2 \)。 若无非线性激活函数,则整体输出为:

\[ > z^{(2)} = W_2^T (W_1^T x + b_1) + b_2 = (W_2^T W_1^T) x + (W_2^T b_1 + b_2) > \]

令 \( W' = W_2^T W_1^T \),\( b' = W_2^T b_1 + b_2 \),则 \( z^{(2)} = W'^T x + b' \),仍为线性函数。多层叠加无法增加表达能力。


📮 七、 课后作业与拓展

📮 课后作业

作业一:公式推导(必做)

  1. 证明 Sigmoid 函数的导数性质:\( \sigma'(z) = \sigma(z) \cdot (1 - \sigma(z)) \)
  2. 手动推导交叉熵损失 \( L = -[y\log(\hat{y}) + (1-y)\log(1-\hat{y})] \) 对 \( w \) 的偏导数,写出完整推导步骤

作业二:激活函数实验(必做)

在 Jupyter Notebook 中完成以下任务:

  1. 在 \( [-10, 10] \) 区间绘制 Sigmoid、Tanh、ReLU、Leaky ReLU(\( \alpha = 0.01 \))及其导数的曲线(2×4 子图布局)
  2. 标注每个函数的以下属性:值域、零中心性、梯度饱和区间
  3. 在图的标题中标注每个函数的输出范围(如 “ReLU: [0, +∞)”)

作业三:逻辑回归应用(必做)

使用 scikit-learn 自带的乳腺癌数据集(load_breast_cancer()),完成:

  1. 数据标准化(StandardScaler)
  2. 训练逻辑回归模型(LogisticRegression 或自主实现)
  3. 计算并输出准确率、精确率、召回率、F1 分数
  4. 绘制混淆矩阵(Confusion Matrix)

作业四:理论拓展(选做)

  1. 查阅资料,了解 Softmax 函数与 Sigmoid 函数的关系,说明 Softmax 如何推广到多分类
  2. 阅读关于“神经元死亡”(Dead Neuron)问题的资料,写出 300 字以内的解决思路摘要

📋 八、 板书设计

🛠️ 板书设计
 1┌───────────────────────────────────────────────────────────────────────────────┐
 2│                    17-1 神经网络基础:逻辑回归与激活函数                       │
 3├───────────────────────────────────────────────────────────────────────────────┤
 4│                                                                               │
 5│  一、逻辑回归(Logistic Regression)                                          │
 6│                                                                               │
 7│      模型:  ŷ = σ(wᵀx + b)          σ(z) = 1 / (1 + e⁻ᶻ)                    │
 8│            输出解释为 P(y=1|x)                                                │
 9│      决策边界:  wᵀx + b = 0                                                  │
10│      预测规则:  ŷ ≥ 0.5 → 正类                                               │
11│                                                                               │
12│  二、损失函数与梯度                                                           │
13│                                                                               │
14│      L(ŷ,y) = -[y·log(ŷ) + (1-y)·log(1-ŷ)]                                  │
15│      J(w,b) = (1/m) ∑ L(ŷⁱ⁾, yⁱ⁾)                                           │
16│      ∂J/∂wⱼ = (1/m) ∑ (ŷⁱ⁾ - yⁱ⁾)·xⱼⁱ⁾                                    │
17│                                                                               │
18│  三、激活函数对比                                                             │
19│                                                                               │
20│      名称       公式              值域         特点                          │
21│      ──────────────────────────────────────────────────────────────────        │
22│      Sigmoid    1/(1+e⁻ˣ)        (0,1)       概率解释,梯度易消失            │
23│      Tanh       (eˣ-e⁻ˣ)/(eˣ+e⁻ˣ)  (-1,1)    零中心,仍有饱和              │
24│      ReLU       max(0,x)         [0,∞)       正区间恒梯度,计算快            │
25│      Leaky ReLU max(αx,x)        (-∞,∞)      缓解神经元死亡                  │
26│                                                                               │
27│  四、选择原则                                                                 │
28│      隐藏层 → ReLU(首选)                                                    │
29│      二分类输出层 → Sigmoid                                                   │
30│      回归输出层 → 无激活(线性)                                              │
31│                                                                               │
32└───────────────────────────────────────────────────────────────────────────────┘

🔤 本课用到的单词

单词 发音(美式) 解释
Logistic Regression /ləˈdʒɪstɪk rɪˈɡreʃən/ 逻辑回归,用于二分类的线性分类模型
Sigmoid /ˈsɪɡmɔɪd/ S 型函数,将实数映射到 (0,1) 区间
Activation Function /ˌæktɪˈveɪʃən ˈfʌŋkʃən/ 激活函数,向神经网络中引入非线性
Decision Boundary /dɪˈsɪʒən ˈbaʊndəri/ 决策边界,分类器区分不同类别的分界面
Binary Cross-Entropy /ˈbaɪnəri krɔːs ˈentrəpi/ 二元交叉熵,二分类任务的常用损失函数
Gradient Descent /ˈɡreɪdiənt dɪˈsent/ 梯度下降,通过梯度反向更新参数的优化算法
Logit /ˈloʊdʒɪt/ 对数几率,\( \log(\frac{p}{1-p}) \),逻辑回归的线性部分
ReLU /ˈriːluː/ Rectified Linear Unit,修正线性单元,最常用的隐藏层激活函数
Tanh /tæntʃ/ 双曲正切函数,值域为 (-1,1) 的激活函数
Leaky ReLU /ˈliːki ˈriːluː/ 带泄露的 ReLU,在负区间保留小梯度防止神经元死亡
Neuron /ˈnʊrɑːn/ 神经元,神经网络中的基本计算单元
Vanishing Gradient /ˈvænɪʃɪŋ ˈɡreɪdiənt/ 梯度消失,深层网络中梯度逐层衰减为 0 的问题
Saturation /ˌsætʃəˈreɪʃən/ 饱和,函数在输入较大时梯度趋近于零的区域
Generalization /ˌdʒenərəlaɪˈzeɪʃən/ 泛化,模型在未见数据上的表现能力
Hyperparameter /ˌhaɪpərˈpærəmɪtər/ 超参数,需在训练前设定的参数(如学习率)