用神经网络拟合数据及图像识别入门
1. 最终使用神经网络
此前为了定义和训练一个模型,我们探索了20多行代码。现在,训练的神秘面纱已被揭开,我们能理解其背后的原理。目前我们所学的知识,能让我们真正掌握所编写的代码,而非在遇到复杂情况时只能盲目操作。
接下来要做的最后一步,是用神经网络替代线性模型作为近似函数。尽管使用神经网络不会得到更高质量的模型(因为校准问题本质上是线性的),但在可控环境下从线性模型过渡到神经网络,能让我们之后更得心应手。
1.1 替换线性模型
我们保持其他条件不变,包括损失函数,仅重新定义模型。构建一个最简单的神经网络:一个线性模块,接着是一个激活函数,再连接到另一个线性模块。由于历史原因,第一个线性层与激活层的组合通常被称为隐藏层,因为其输出不会直接被观察到,而是输入到输出层。模型的输入和输出大小均为1(即有一个输入特征和一个输出特征),但第一个线性模块的输出大小通常大于1。回想之前对激活函数作用的解释,这能让不同单元对输入的不同范围做出响应,从而增加模型的容量。最后一个线性层会将激活函数的输出进行线性组合,得到最终的输出值。
神经网络的表示方式没有标准。图6.8展示了两种典型的表示方法:左边是基础介绍中可能采用的方式,右边则常用于更高级的文献和研究论文。通常会绘制与PyTorch提供的神经网络模块大致对应的图表块(不过有时像Tanh激活层可能不会明确显示)。需要注意的是,两者有一个细微差别:左边的图以圆圈中的输入和(中间)结果为主要元素,而右边的图更突出计算步骤。
# 使用nn.Sequential容器来连接模块
seq_model
神经网络与图像识别入门教程
超级会员免费看
订阅专栏 解锁全文

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



