动手学深度学习(pytorch)2

动手学深度学习(pytorch)2

概率

先抽样

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页开始。)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值