用 python 实现一个简单的神经网络

本文介绍了如何使用 Python 手动实现一个简单的双层神经网络,包括前言、另一种表示方法、反向传播的梯度计算以及具体的实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用 python 实现一个简单的神经网络

1. 前言

让我们先看一个经典的双层神经网络模型,想必大家都很熟悉了。

在这个模型中,有一个输入层、一个输出层和一个隐藏层。但是单纯根据这个模型来看图说话,实现一个神经网络,还是比较困难的。

2. 另一种表示

现在看看这个双层神经网络的另外一种表示方法:

同前面的图相比,有几点区别:

  • 除了输入(x)、输出(y_pred)和隐藏层(h 和 h_relu)这几个表征层之外,另外还有两个网络层 w1 和 w2。可以将 w1 看做输入表示到隐藏表示之间的映射,将 w2 看做隐藏表示到输出表示之间的映射。
  • 输入向量的维度为 D_in, 输出向量维度为 D_out,隐藏层向量维度为 H。可以批量执行,每批样本量为 N。
  • 在隐藏层内部,使用了 relu 激活函数

3. 反向传播

反向传播中,最重要的是求梯度。在矩阵乘这种场景下如何求梯度呢?

h_relu * w2 = y_pred
那么,有了 y_pr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值