概率
先抽样
import torch
from torch.distributions import multinomial
from d2l import torch as d2l
fair_probs = torch.ones([6]) / 6
t=multinomial.Multinomial(10, fair_probs).sample()
print(t)
输出为tensor([1., 2., 1., 3., 1., 2.])
搜了一下torch的库,有torch.multinomial和torch.distributions中的multinomial。我粗浅的理解是前者需要我们输入一个向量(带权重),然后返回的是多个不同i(对应每次对向量中第i个元素进行索引),出现次数多概率大。后者输出是另⼀个相同⻓度的向量:它在索引i处的值是采样结果中i出现的次数。
下面是torch.multinomial。
>>>weights = torch.tensor([0, 10, 3, 0], dtype=torch.float) # create a tensor of weights
>>> torch.multinomial(weights, 2)
tensor([1, 2])
整套过程
用到cumsum(注意维数从外到内是0-2编号)
https://blog.csdn.net/banana1006034246/article/details/78841461
import torch
from torch.distributions import multinomial
from d2l import torch as d2l
fair_probs = torch.ones([6]) / 6
counts = multinomial.Multinomial(10, fair_probs).sample((500,))
cum_counts = counts.cumsum(dim=0)
estimates = cum_counts / cum_counts.sum(dim=1, keepdims=True)
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();
d2l.plt.show()
源码给的是%matplotlib inline
在pycharm上报错,就删了,在最后加上d2l.plt.show()
库函数查阅
模块提供了各种⽣成随机数的⽅法,包括从均匀分布(uniform)、正态分布(normal)和多项分布(multinomial)中采样。
怎样看呢?用dir
import torch
print(dir(torch.distributions))
查询特定函数或类,用help
help(torch.ones)
线性神经网络
神经⽹络的整个训练过程,包括:
定义简单的神经⽹络架构、
数据处理、
指定损失函数和如何训练模型
线性回归和softmax回归可以视为线性神经⽹络
线性回归
1 预测的⽬标(⽐如预测房屋价格)称为标签(label)或⽬
标(target)。
2 预测所依据的⾃变量(⾯积和房龄)称为特征(feature)或协变量(covariate)
3 权重和偏置,我一般粗略理解为y=ax+b的a和b
矩阵X每⼀⾏是⼀个样本,每⼀列是⼀种特征
y= Xw + b
4 损失函数(loss function):量化⽬标的实际值与预测值之间的差距。
【平方误差l(i)(w, b) = 1/2*(
y
ˆ
yˆ
yˆ(i) − y(i))
2
^2
2】
最小总损失对应的w,b: argmin L(w, b).
(大多数情况下并不能得到w,b的解析解,所以我把导数粗略看成y真实与y估计之差,用它对w,b进行修正)
5 每次需要计算更新的时候随机抽取⼀⼩批样本,这种变体叫做⼩批量随机梯度下降(minibatchstochastic gradient descent)
6 泛化:找到⼀组参数,这组参数能够在我们从未⻅过的数据上实现较低的
损失,这⼀挑战被称为泛化(generalization)
书上涉及具体的定义与概念,就不做详细笔记了。以上是各名词的简要解释(从pdf107页开始。)