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

常见的损失函数#

均方误差损失函数#

J(θ)=12mi=1mhθ(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(θ)=1mi=1mhθ(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})zzx\mathbf{x}属于正类的评分

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

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

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

所以:

P(yx)={σ(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(yx)=σ(zy+(1y)(z))=σ((2y1)z)\begin{aligned} P(y|\mathbf{x}) &= \sigma(zy + (1-y)(-z)) \\ &= \sigma((2y-1)z) \end{aligned}

则损失函数为:

J(θ)=logP(yx)=logσ((2y1)z)J(\theta) = -\log P(y|\mathbf{x}) = -\log \sigma((2y-1)z)

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

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

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

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

J(θ)=logpy=logezyj=1cezj=zy+logj=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)=supf1(Exp[f(x)]Eyq[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:在特征空间中的函数,满足f1\|f\| \leq 1,通常使用核函数来定义特征空间
  • E\mathbb{E}:期望操作,表示对样本的平均值
  • sup:上确界,表示在所有满足条件的函数中取最大的值
[模式识别与机器学习] 多层感知机
https://alkaid114.github.io/posts/ml/mlp/
作者
Alkaid114
发布于
2026-06-25
许可协议
CC BY-NC-SA 4.0