首个神经网络
在本练习中,我们将训练首个小型神经网络。借助神经网络,我们无需使用显式特征组合,便可学习非线性模型。
任务 1:给定模型将两个输入特征合并为一个神经元。此模型会学习任何非线性规律吗?运行该模型,以确认您的猜测是否正确。
任务 2:尝试将隐藏层中神经元的数量从 1 增加到 2,此外,尝试将线性激活更改为非线性激活(例如 ReLU)。您能否创建可以学习非线性的模型?
任务 3:通过添加或移除隐藏层和每层的神经元,继续进行实验。此外,您可以随时更改学习速率、正则化和其他学习设置。要使测试损失不超过 0.177,您可以使用的最少节点和层数是多少?
(答案位于练习下方。)
神经网络初始化
本练习将再次使用 XOR 数据,但这次用于研究训练神经网络的重复性以及初始化的重要性。
任务 1:运行给定模型四到五次。在每次试验开始之前,请点击重置网络按钮,以获取新的随机初始化数据。(重置网络按钮是一个圆形重置箭头,位于“播放”按钮左侧)。让每次试验至少运行 500 步,以确保图形能收敛。每个模型输出会收敛为何种形状?对于初始化在非凸优化中发挥的作用,这说明了什么?
任务 2:尝试添加一层和几个额外节点,让模型变得稍微复杂点。重复任务 1 的试验。这是否可以提高结果的稳定性?
(答案位于练习下方。)
神经网络螺旋
此数据集是一种混乱的螺旋。显然,线性模型不适用于此处,但即使手动定义的特征组合可能也很难构建。
任务 1:只使用 X1 和 X2 训练您可以获得的最佳模型。您可以随时添加或移除层和神经元,以及更改学习速率、正则化率和批量大小等学习设置。您可以获得的最佳测试损失是多少?此模型输出表面的平滑程度如何?
任务 2:即使使用神经网络,通常也需要一些特征工程,才能获得最佳性能。尝试添加额外向量积特征或 sin(X1) 和 sin(X2) 等其他转换。您是否获得了更好的模型?模型输出表面是否更平滑?
(答案位于练习下方。)
KidsAIEdu。此页面的某些部分是根据Google创建和共享的作品所做的修改 ,并根据知识共享4.0署名许可中所述的 条款使用。
Portions of this page are modifications based on work created and shared by Google and used according to terms described in the Creative Commons 4.0 Attribution License.见原网页 谷歌机器学习速成课程。