MATLAB与PyTorch实践:从神经网络到图像处理

18、实现通用粒子滤波算法,针对不同数量的粒子流N和不同的有效粒子大小阈值Neff进行处理。

  1. 先选择一个分布(正态分布是不错的选择)并进行初始化。
  2. 然后根据算法在每一步更新粒子。
  3. 最后,检查 Neff 是否低于阈值,如果是,则继续进行重采样过程。

19、实现序贯重要性采样(SIS)粒子滤波算法,并绘制不同时间点 n 下生成的粒子及其归一化权重。观察随着时间推移,权重的退化现象。

可按如下步骤操作:

  1. 先选择一个分布(正态分布是不错的起始选择)并初始化。
  2. 然后依据算法在每一步更新粒子。
  3. 最后检查有效粒子大小 $N_{\text{eff}}$ 是否低于阈值,若低于则进行重采样过程。

之后绘制不同时间点 $n$ 下的粒子及其归一化权重,观察权重方差随时间增加,少数粒子权重非零的退化现象。

20、证明如果激活函数是 softmax,损失函数是交叉熵,那么在特定计算式中的 δL nj 不依赖于非线性函数的导数。

将 softmax 激活与交叉熵损失函数结合会得到与非线性函数导数无关的梯度,但未给出具体证明过程。

21、考虑一个分类问题,有数据集X1和X2。采用两层前馈神经网络,并使用自适应反向传播算法对其进行训练,初始步长设为0.0001,ri = 1.05,rd = 0.7,c = 1.04,迭代6000次。分别基于X1和X2计算训练误差和测试误差,并绘制训练误差随迭代次数变化的曲线。将结果与之前某题中(b)部分的结果进行比较。

需要按照以下步骤完成任务:

  1. 构建两层前馈神经网络;
  2. 使用自适应反向传播算法训练网络,设置初始步长为0.0001,ri = 1.05,rd = 0.7,c = 1.04,迭代6000次;
  3. 基于数据集X1计算训练误差,基于数据集X2计算测试误差;
  4. 绘制训练误差随迭代次数变化的曲线;
  5. 将上述结果与之前某题中(b)部分的结果进行比较。

22、这是一个与分类相关的练习,旨在通过在MNIST数据集上运用丢弃正则化(dropout regularization)来积累经验。使用PyTorch机器学习框架训练一个前馈神经网络。(a) 理解PyTorch的数据集(Datasets)和数据加载器(Dataloaders)的概念。使用torchvision中的MNIST数据集实例,加载数据集,其中60000张图像用于训练,10000张用于测试。创建一个数据加载器实例,设置shuffle = True。将图像值归一化到[0, 1]区间。在PyTorch中,可以通过设置数据加载器的transform变量为torchvision.transforms.ToTensor()和torchvision.transforms.Norma

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值