动手学深度学习PyTorch版

本文介绍了在Python中使用概率理论进行实验模拟(如掷骰子实验),随机梯度下降的基本概念,以及正态分布和平方损失的应用。还详细展示了如何实现线性回归和Softmax回归,包括数据预处理、模型定义和训练过程,以及使用Fashion-MNIST数据集进行图像分类的例子。

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

概率

# 用于处理日期和时间
%pip install pytz
# 包含了许多用于数学、科学和工程的函数
%pip install scipy
# 在Jupyter笔记本中嵌入绘图
%matplotlib inline
import torch
# multinomial是一个用于生成多项式分布的类
from torch.distributions import multinomial
from d2l import torch as d2l

概率向量

# 输入的是概率向量
fair_probs = torch.ones([6]) / 6

# 输出是另一个相同长度的向量:它在索引i处的值是采样结果中i出现的次数
multinomial.Multinomial(1, fair_probs).sample()
# tensor([0., 1., 0., 0., 0., 0.])

multinomial.Multinomial(10, fair_probs).sample()
# tensor([2., 2., 1., 3., 1., 1.])

掷骰子实验

进行500组实验,每组抽取10个样本

counts = multinomial.Multinomial(10, fair_probs).sample((500, ))
print(counts)

cum_counts = counts.cumsum(dim=0)
print(cum_counts)

# total_count = cum_counts.sum()
# estimates = cum_counts / total_count
estimates = cum_counts / cum_counts.sum(dim=1, keepdims=True)
print(estimates)

# estimates = estimates.view(-1, 1)
d2l.set_figsize((6, 4.5))
for i in range(6):
    d2l.plt.plot(estimates[:, i].numpy(),
                label=("P(die=" + str(i + 1) + ")"))
    
d2l.plt.axhline(y=0.167, color='black', linestyle='dashed')
d2l.plt.gca().set_xlabel('Groups of experiments')
d2l.plt.gca().set_ylabel('Estimated probability')
d2l.plt.legend()

线性神经网络

随机梯度下降

梯度下降最简单的用法是计算损失函数(数据集中所有样本的损失均值)关于模型参数的导数(也可称为梯度),但是在每次更新参数之前,我们必须遍历整个数据集。因此,我们在每次需要计算更新的时候随机抽取一小批样本,这种变体叫做小批量随机梯度下降。

正态分布与平方损失

若随机变量x具有均值\mu和方差\sigma ^{2}(标准差\sigma) ,其正态分布概率密度函数如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值