| 语言 | 格式 | 评分 |
|---|---|---|
中文(简体) | .pdf | 3 |
| 摘要 | ||
文档介绍了在PyTorch中实现单一输出感知机的过程,包括感知机的基本结构、前向传播公式、损失函数计算以及反向传播的梯度计算。通过公式推导和代码示例,展示了如何使用PyTorch进行感知机的训练和优化,特别是梯度的计算和更新过程。 | ||
| AI总结 | ||
## 总结:单一输出感知机(PyTorch入门实战)
### 1. 感知机简介
感知机是一种简单的线性分类模型,其核心公式为:
$$ y = XW + b $$
其中:
- $X$ 是输入数据
- $W$ 是权重矩阵
- $b$ 是偏置项
感知机通过线性组合输入数据并引入非线性激活函数(如sigmoid)进行分类。
---
### 2. 感知机的前向传播
感知机的前向传播过程可以表示为:
$$ O_0 = \sigma(x_0^0 \cdot W_{j0} + b) $$
其中:
- $\sigma$ 是激活函数(如sigmoid)
- $x_0^0$ 是输入数据
- $W_{j0}$ 是权重
- $b$ 是偏置
输出$O_0$为模型的预测结果。
---
### 3. 损失函数与反向传播
损失函数采用均方误差(MSE):
$$ E = \frac{1}{2}(O_0 - t)^2 $$
其中$t$是目标标签。
通过链式法则计算损失对权重的梯度:
$$ \frac{\partial E}{\partial w_{j0}} = (O_0 - t)O_0(1 - O_0)x_j^0 $$
---
### 4. PyTorch实现
在PyTorch中,感知机的实现步骤如下:
1. 生成输入数据:
```python
x = torch.randn(1, 10)
```
2. 初始化权重和偏置:
```python
w = torch.randn(1, 10, requires_grad=True)
```
3. 前向传播并计算输出:
```python
o = torch.sigmoid(x @ w.t())
```
4. 计算损失:
```python
loss = F.mse_loss(torch.ones(1, 1), 0)
```
5. 反向传播并更新权重:
```python
loss.backward()
```
---
### 5. 实验结果
实验中,输出$O_0$的形状为$(1, 1)$,损失为标量。反向传播后,权重的梯度为:
```python
w.grad = tensor([[−0.0107, −0.0021, 0.0047, 0.0092, −0.0091, −0.0030, 0.0069, −0.0105, −0.0061, −0.0051]])
```
---
### 6. 总结
本节介绍了感知机的基本原理及其在PyTorch中的实现。通过前向传播和反向传播,完成了模型的训练。下一课时将讲解多层感知机(MLP)及更复杂的梯度计算方法。 | ||
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
1 页请下载阅读 -
文档评分














深度学习与PyTorch入门实战 - 19.1 单一输出感知机