基于多层感知机的姓氏分类模型
1. 多层感知机(MLP)基础
多层感知机(MLP)是堆叠的线性层,用于将张量映射到其他张量。在每对线性层之间使用非线性函数,以打破线性关系,使模型能够扭曲向量空间。在分类任务中,这种扭曲应使不同类别之间具有线性可分性。
1.1 输出概率化
MLP 的输出可以通过 softmax 函数转换为概率。softmax 函数的基本直觉是,较大的正值会产生较高的概率,较小的负值会产生较小的概率。以下是一个示例代码:
# 示例 4-4:使用多层感知机分类器生成概率输出
y_output = mlp(x_input, apply_softmax=True)
describe(y_output)
输出结果如下:
Type: torch.FloatTensor
Shape/size: torch.Size([2, 4])
Values:
tensor([[ 0.2087, 0.2868, 0.3127, 0.1919],
[ 0.1832, 0.2824, 0.3649, 0.1696]])
需要注意的是,在某些损失函数(如交叉熵损失)的训练过程中,计算 softmax 不仅浪费计算资源,而且在许多情况下数值不稳定,因此 softmax 函数的应用是可选的。
2. 姓氏分类示例
2.1 姓氏数据集
姓氏数据集包含来自 18 个
超级会员免费看
订阅专栏 解锁全文
1894

被折叠的 条评论
为什么被折叠?



