- 神经网络设计与实现
- (英)列奥纳多·德·马尔希 劳拉·米切尔
- 321字
- 2021-06-24 11:18:06
2.4.1 FFNN的Keras实现
为了在Keras中实现我们的网络,我们将再次使用Sequential模型,但是因为这次需要进行二分类预测,所以需要一个输入神经元、三个隐藏单元以及一个输出单元。
1)导入创建网络所需的部分:
![](https://epubservercos.yuewen.com/96A46E/20422784308285606/epubprivate/OEBPS/Images/044-i.jpg?sign=1739427989-VWjwIBBnhYzu4yyiG5xjIbrP2bIgfDsm-0-12f875accd5bad6d6f354ca38583c0a2)
2)现在,我们需要定义网络的第一个隐藏层。为此,只需指定隐藏层的输入即可(在XOR情况下为两个)。我们还可以指定隐藏层中神经元的数量,如下所示:
![](https://epubservercos.yuewen.com/96A46E/20422784308285606/epubprivate/OEBPS/Images/044-2-i.jpg?sign=1739427989-mBJOP5JjVQBUbTzz4DKsxrCGDLiXyWCS-0-c388f7bc7cd5cb68d8c53be684d7dc8c)
3)选择使用tanh作为激活函数:
![](https://epubservercos.yuewen.com/96A46E/20422784308285606/epubprivate/OEBPS/Images/044-3-i.jpg?sign=1739427989-c621WprD1B0cLFqE2Bv8L1ISzQivZHnM-0-380190144c06a469d8beebb91e459b75)
4)然后,我们添加具有一个神经元的另一个全连接层,该层的激活函数为sigmoid,以此为我们提供输出:
![](https://epubservercos.yuewen.com/96A46E/20422784308285606/epubprivate/OEBPS/Images/044-4-i.jpg?sign=1739427989-zdvsrpq4l5ogZr3xU4JfbH8ygC1Cbxga-0-6ee0b73ae57c7311448686cde4fd73b3)
5)再次使用SGD作为优化方法来训练我们的神经网络:
![](https://epubservercos.yuewen.com/96A46E/20422784308285606/epubprivate/OEBPS/Images/044-5-i.jpg?sign=1739427989-kOatz7BFVYQvS3REIOTCKyF1W52tGYHl-0-f08ea29b845643fbd1ff6d3567822ddf)
6)然后,编译神经网络,指定使用MSE作为损失函数:
![](https://epubservercos.yuewen.com/96A46E/20422784308285606/epubprivate/OEBPS/Images/044-6-i.jpg?sign=1739427989-EYXKG76CH1aIj5RhgDE8Ft2G4GLvpRrr-0-ed252d4df3b4a997bee5750b0f19fe96)
7)作为最后一步,我们训练网络,但是这次我们不在乎批次大小,运行2个epoch:
![](https://epubservercos.yuewen.com/96A46E/20422784308285606/epubprivate/OEBPS/Images/044-7-i.jpg?sign=1739427989-RIxru6WofIUUftrV0DAG4eAkYg1V04vI-0-0bd6824ccf5d544f84b3137228fcf36b)
8)像往常一样,我们在测试集对MSE进行测量:
![](https://epubservercos.yuewen.com/96A46E/20422784308285606/epubprivate/OEBPS/Images/044-8-i.jpg?sign=1739427989-DHRZsve6zwzE6iaN000SF341BCwOUufJ-0-47227cdc198e5fa8571a10e65be0923e)