第3章 全连接神经网络
蒙祖强,欧元汉 编著. 深度学习理论与应用. 北京: 清华大学出版社,2023年7月.
本章内容
contents
3.1 构建一个简单的全连接神经网络——解决二
分类问题
3.2 全连接神经网络的构造方法
3.3 几种主流的损失函数
3.4 网络模型的训练与测试
3.5 正向计算和反向梯度传播的理论分析
3.1 构建一个简单的全连接神经网络——解决二分类问题
3.1.1 一个简单全连接神经网络的构建和训练
【例 3.1】构建一个全连接神经网络,并用给定的数据集
对其进行训练,使其实现相应的二分类任务。
本例设计一个三层结构全连接神经网络,其结构如图 3-1
所示。严格说,该网络只包含两个网络层,因为第 0 层(
即输入层)只是传递数据给后面的网络层,而它本身没有
计算功能,只有后面两个网络层有计算功能。但按照习惯
,还是称为“三层全连接神经网络”。
3.1 构建一个简单的全连接神经网络——解决二分类问题
3.1.1 一个简单全连接神经网络的构建和训练
核心代码:(全部代码见教材P55)
class FullNN(nn.Module):
def __init__(self):
super().__init__()
self.fc1 = nn.Linear(3,4) #用于构建神经网络的第 1 层(隐含层),4个神经元
self.fc2 = nn.Linear(4,2) #用于构建神经网络的第 2 层(输出层),
#包含 2 个神经元,因为有 2 个类别
def forward(self,x):
out = self.fc1(x)
out = torch.tanh(out)
out = self.fc2(out)
return out
3.1 构建一个简单的全连接神经网络——解决二分类问题
3.1.2 程序代码解释及网络层的构建方法
(4)多分类问题常使用的损失函数—nn.CrossEntropyLoss()。
训练过程中还运用到一个新的损失函数——nn.CrossEntropyLoss()。该函数是
一种交叉熵损失函数,它经常在多分类问题用作损失函数。
注:行和列分别都是从第 0 行和第 0 列开始编号, 本书均
采用这种编号