神经网络的数据拟合与图像识别探索
1. 最终的神经网络
在构建和训练模型的过程中,我们已经探索了许多内容。现在,我们要迈出最后一步,用神经网络替代线性模型作为近似函数。虽然使用神经网络不一定能得到更高质量的模型(因为校准问题本质上是线性的),但在可控环境下从线性模型过渡到神经网络是有益的,能让我们在后续学习中更有信心。
1.1 替换线性模型
我们将保持其他条件不变,包括损失函数,仅重新定义模型。构建最简单的神经网络:一个线性模块,接着是一个激活函数,再连接到另一个线性模块。第一个线性 + 激活层通常被称为隐藏层,因为其输出不直接观察,而是输入到输出层。模型的输入和输出大小均为 1,但第一个线性模块的输出大小通常大于 1,这能让不同单元对输入的不同范围做出响应,增加模型的容量。最后一个线性层将激活函数的输出线性组合,产生输出值。
神经网络的表示方式不唯一,常见的有两种,一种常用于基础介绍,另一种常用于高级文献和研究论文。
使用 nn.Sequential 容器可以简单地连接模块:
import torch.nn as nn
seq_model = nn.Sequential(
nn.Linear(1, 13),
nn.Tanh(),
nn.Linear(13, 1)
)
print(seq_model)
这个模型将 1 个输入特征扩展到 13 个隐藏特征,经过 tanh 激活函数,再将 13 个结果线性组合成 1 个输出特征。
超级会员免费看
订阅专栏 解锁全文
1132

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



