396 字
2 分钟
[模式识别与机器学习] 多层感知机

常见的损失函数#

均方误差损失函数#

J(θ)=12m∑i=1m∥hθ(x(i))−y(i)∥2J(\theta) = \frac{1}{2m} \sum_{i=1}^m \| h_\theta(\mathbf{x}^{(i)}) - \mathbf{y}^{(i)} \|^2
  • hθ(x(i))h_\theta(\mathbf{x}^{(i)}):模型预测值
  • y(i)\mathbf{y}^{(i)}:真实值
  • mm:样本数量
  • θ\theta:模型参数

L1范数损失函数#

J(θ)=1m∑i=1m∥hθ(x(i))−y(i)∥1J(\theta) = \frac{1}{m} \sum_{i=1}^m \| h_\theta(\mathbf{x}^{(i)}) - \mathbf{y}^{(i)} \|_1

交叉熵损失#

二分类交叉熵损失函数BCE#

定义z=hθ(x)z=h_\theta(\mathbf{x}),zz是x\mathbf{x}属于正类的评分

使用sigmoid函数将评分映射到概率空间:

p=σ(z)=11+e−zp = \sigma(z) = \frac{1}{1 + e^{-z}}

则P(y=1∣x)=pP(y=1|\mathbf{x}) = p,P(y=0∣x)=1−pP(y=0|\mathbf{x}) = 1-p

所以:

P(y∣x)={σ(z),y=11−σ(z),y=0P(y|\mathbf{x}) = \begin{cases} \sigma(z), \quad y = 1 \\ 1 - \sigma(z), \quad y = 0 \end{cases}

因为1−σ(z)=σ(−z)1-\sigma(z) = \sigma(-z),所以可以统一表示为:

P(y∣x)=σ(zy+(1−y)(−z))=σ((2y−1)z)\begin{aligned} P(y|\mathbf{x}) &= \sigma(zy + (1-y)(-z)) \\ &= \sigma((2y-1)z) \end{aligned}

则损失函数为:

J(θ)=−log⁡P(y∣x)=−log⁡σ((2y−1)z)J(\theta) = -\log P(y|\mathbf{x}) = -\log \sigma((2y-1)z)

多分类交叉熵损失函数CE#

Softmax函数将评分映射到概率空间:

pi=ezi∑j=1cezj\begin{aligned} p_i = \dfrac{e^{z_i}}{\sum_{j=1}^c e^{z_j}} \end{aligned}
  • cc:类别数
  • ziz_i:样本属于第ii类的评分

实际上为了数值稳定性,通常使用log⁡softmax\log \text{softmax}来计算交叉熵损失,即:

J(θ)=−log⁡py=−log⁡ezy∑j=1cezj=−zy+log⁡∑j=1cezj第y类的损失J(\theta) = -\log p_y = -\log \frac{e^{z_y}}{\sum_{j=1}^c e^{z_j}} = -z_y + \log \sum_{j=1}^c e^{z_j} \qquad \text{第y类的损失}

最大均值差异MMD#

通过将样本映射到高维特征空间,计算不同分布的均值差异来衡量分布之间的差异。

MMD2(p,q)=sup⁡∥f∥≤1(Ex∼p[f(x)]−Ey∼q[f(y)])\text{MMD}^2(p, q) = \sup_{\|f\| \leq 1} \left( \mathbb{E}_{x \sim p}[f(x)] - \mathbb{E}_{y \sim q}[f(y)] \right)
  • pp:分布pp的样本
  • qq:分布qq的样本
  • ff:在特征空间中的函数,满足∥f∥≤1\|f\| \leq 1,通常使用核函数来定义特征空间
  • E\mathbb{E}:期望操作,表示对样本的平均值
  • sup:上确界,表示在所有满足条件的函数中取最大的值
[模式识别与机器学习] 多层感知机
https://alkaid114.github.io/posts/ml/mlp/
作者
Alkaid114
发布于
2026-06-25
许可协议
CC BY-NC-SA 4.0