- 博客(34)
- 收藏
- 关注
原创 Q-learning和Sarsa区别的理解之为什么Sarsa保守
值得一提的是,虽然Q-learning算法在才开始学习时也可能会用跳崖的值函数去更新,但很快绝对不会再用跳崖的值函数去更新其他位置值函数),此时就会使这一动作值函数的值较Q-learning明显偏小,故较为保守。例如,当在远离悬崖的第二排时(上图S状态),会做出向下的动作a,得到沿着悬崖的状态S',沿着悬崖的状态S'向下的动作a_Sarsa会有很低的奖励,例如-100,而沿着悬崖走向右的动作a_Q-learning对应的累积回报却很可观,因为会减少抵达目标的步数,从而使累积回报的期望较大。
2023-06-14 14:57:31
447
原创 主成分分析PCA
3、转换后点云(point_cloud_trans = pca.transform(point_cloud))的第几列数据就表示第几主成分点云,则point_cloud_trans[:, 0]表示在第一主成分上的投影点, point_cloud_trans[:, 1]表示在第二主成分的投影点,依次类推。第一主成分为沿着H型钢方向,因为所有点在第一主成分轴上的投影点距离中心的距离平方和最大。以下代码用特征向量转换和直接用pca.transform方法对H型钢点云的第一和第二主成分组成的平面图形进行绘制。
2023-05-26 19:30:02
765
原创 长短期记忆网络LSTM理解和示例
门在LSTM中用的是sigmoid函数(输出为0,1)而待选数据ct'为tanh函数。ft表示遗忘门(forget),it表示输入门(input), ot为输出门(output), ct'为输入单元的候选状态。由图可知,ct-1记录着历史信息(t时刻之前的信息),ft与ct-1向量相乘可以选择接收和遗忘ct-1中存储的历史数据。LSTM是一种特殊的RNN(循环神经网络),是RNN的变体,可以做到记住重要信息而忘记无关紧要信息的特点。it这个门与候选数据ct'相互作用,筛选ct'中的数据,为输入门。
2023-05-18 14:04:38
543
原创 Pytorch实现简单循环神经网络和detach相关讨论
基于pytorch平台建立了RNN网络简单例子,主要讨论了参数形状,计算图和反向传播时应注意的问题,主要为技术上的,并未就RNN的原理展开过多探讨。
2023-05-17 16:08:59
417
1
原创 pytorch卷积网络示例和参数设置介绍
以pytoroch的一个简单网络为例,介绍Pytorch定义深度学习网络的方法,并详细介绍了各网络参数的设置和计算方法。
2023-05-14 22:41:03
518
原创 用numpy中的nditer遍历矩阵中的元素
介绍了numpy中提供的矩阵迭代工具nditer, 通过nditer编写了梯度的数值计算程序,最后用梯度下降法计算了f=x^2 +y^2 + z^2的最小值。
2023-05-14 11:19:24
504
原创 牛顿法介绍
牛顿法也是一类求解极值的方法,多用于有限元的求解,由于要求函数二阶可导(海森矩阵),且海森矩阵逆矩阵不一定存在,因此在机器学习领域应用较少。可以看见这个公式与梯度下降法比较接近,只是梯度下降法中海森矩阵的逆矩阵。牛顿法同样是得到自变量的更新方法,从而得到极值。为海森矩阵,g为梯度。-1被替换为了学习率。
2023-03-30 14:41:30
194
原创 梯度下降法的个人理解
此外,这里不光应当小于0,而且应该是一个最大的小于0的数,这样才能让。0)本质上是两个向量乘积,只有当两者反向时(-180°)才能最小。假设x为更新后的值,x0为当前点,那么应该有。为学习率,可见学习率为步长和梯度模分之一的乘积。梯度下降法是机器学习中一种常见的优化方法。0)最小,准确的讲是达到局部最小值。泰勒展开的意义是用一系列多项式去。为学习率,是一个小于1的数,需要注意的是,梯度下降法就是。)的值减小,即每次更新x则。是步长(每次走一小步),而。0)也是一个向量,所以(梯度下降法的目标是让。
2023-03-30 11:21:16
136
原创 梯度含义的理解
一般的认知某点的梯度和某点的导数有很大的联系,但是认识这一概念起就知道导数是某条曲线的切线,切线是函数值变化最快的方向,而梯度也是表明沿着梯度变化方向很快,因此直观上讲,在某些情况应该可以认为导数和梯度是一回事。从降维后的曲线可知,现在梯度的方向确实是垂直方向,也可以说是切线(切平面)的法线方向,这还没完,这只是梯度在xoy平面的形态,而非在自变量即x轴和y轴上的体现。这里顺便提一下,如果我们认为xoy平面的切线是梯度,则此时的因变量不是z,而是y(x是因变量)或者x(y是自变量)。那么,问题到底出在哪?
2023-03-29 15:14:40
7066
6
原创 强化学习之Sarsa
通过将Q-learning和Sarsa对比简单介绍了Sarsa算法,根据个人理解指出了Sarsa算法与Q-learning的不同。最后,通过一个简单例子实现了Sarsa强化学习算法
2023-02-25 11:21:54
258
原创 已有模型的调用和修改--torchvision.models
以vgg16网络为例,介绍导入已有训练好(直接用来预测)和未训练好的网络(用其框架);还介绍了对已导入网格的修改和添加操作,从而做出适用于自己问题的网络。
2023-02-17 18:54:28
662
原创 优化器的学习--torch.optim
用pytorch框架定义了一个简单卷积神经网络,并采用随机梯度下降法进行了20轮的迭代学习,期间统计了所有样本在每一轮的误差。
2023-02-17 17:49:03
424
原创 Affine层之nn.Linear()的使用
Affine层也叫线性层,在神经网络全连接用的比较多,即Y = WX+b, 其中W为权重向量,b为偏置。在pytorch中Affine层为采用nn.Linear()类实现
2023-02-17 12:39:18
519
原创 非线性激活函数之nn.ReLU和nn.Sigmoid
以非线性激活函数nn.ReLU和nn.Sigmoid介绍非线性激活函数的用法参数inplace表示是否改变原来的值,例如nn.ReLu(input, inplace= Ture) 表示input的值会改变而nn.ReLu(input, inplace= False) 表示input的值不会改变,可以让output值接收,例如:output = n.ReLu(input, inplace= False) 此时input为原值,而output接收处理后的值建议设置inplace = False, 以免丢
2023-02-17 11:42:49
1247
原创 池化层操作之nn.MaxPool2d的使用
池化层的作用是为了缩减参数。nn.MaxPool2d的使用比较简单,其中参数ceil_model为False表示当输入的一部分小于池化核时则舍弃。
2023-02-17 10:55:38
586
原创 pytorch之nn.Conv2d用法
nn.functional.Conv2d提供了卷积的计算函数,需要自己定义卷积核,输入图像的相关信息(值),从而帮助计算卷积。而nn.Conv2d类仅需要提供输入层,卷积核的尺寸信息即可计算,自动初始化权重等信息。
2023-02-16 20:38:13
807
原创 torchvision之Dataset用法
pytorch本身自带的Dataset类提供了一些列数据集,比如常用的EMNIST,CORFAR10诸如此类。这里简要介绍如何用Dataset导入这些数据集,以及将这些数据集和transforms配合使用。
2023-02-16 10:50:23
335
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人