- 博客(86)
- 问答 (1)
- 收藏
- 关注
原创 ubuntu20.04.6wifi图标消失问题解决方案
本人电脑惠普战99 2023版 集显版双系统:win11 + ubuntu 20.04.6LTS。
2024-02-17 16:13:05
695
原创 深度学习记录--学习率衰减(learning rate decay)
如下图,蓝色曲线表示mini-batch梯度下降,绿色曲线表示采用学习率衰减的梯度下降。mini-batch梯度下降最终会在最小值附近的区间摆动(噪声很大),不会。随着学习率的衰减,步长会逐渐变小,因此最终。为了更加近似最小值,采用学习率衰减的方法。1 epoch = 遍历数据1次。是学习率衰减的超参数,是衰减常量,一般设置。
2024-01-21 17:18:33
644
原创 深度学习记录--RMSprop均方根
减缓纵轴方向学习速度,加快横轴方向学习速度,从而加速梯度下降。不妨以b为纵轴,w为横轴(横纵轴可能会不同,因为是多维量),即w每次减去一个大数字,所以w梯度下降更快。,即b每次减去一个小数字,所以b梯度下降更慢。为了防止分母趋近于0,则加上一个常量。为了让w梯度下降更快,则要使。为了让b梯度下降更慢,则要使。
2024-01-21 16:59:41
405
原创 深度学习记录--Momentum gradient descent
因为学习率过大可能导致偏离函数范围,这种上下波动导致学习率无法得到提高,速度因此减慢(下图蓝色曲线)横轴上,所有的微分都指向横轴方向,所有横轴方向上的平均值依然较大。其中dw,db可以看作加速度,v_dw,v_db可以看作速度,纵轴上,平均过程中正负数相互抵消,所以纵轴上的平均值接近于0。把图像比作一个碗,轨迹视为小球的轨迹,从边缘向碗内最低点运动。因此,小球会向着碗中心运动,最终因摩擦力而停下来。因此,纵轴上摆动减小,横轴上运动速度加快。为了减小波动,同时加快速率,可以使用。
2024-01-21 11:27:14
494
原创 深度学习记录--指数加权平均
较大时,初期数据拟合可能偏差较大,为了更好地拟合初期的数据,故采用偏差修正。当t变大,分母逐渐趋于1,所以后阶段偏差修正作用不大。的取值对拟合结果的影响很大,那么有什么规律?较大时,公式值较大,即取的更多数据的平均值。时,近似取10个数据平均值(红色曲线)时,近似取50个数据平均值(绿色曲线)时,近似取2个数据平均值(黄色曲线)变化时,拟合结果也会发生变化。,因为取的是更多数据的平均值。,因为取的是更少数据的平均值。可以被适当放大,更加拟合数据。如何对杂乱的数据进行拟合?表示第t-1个平均数,
2024-01-21 10:30:47
788
原创 深度学习记录--mini-batch gradient descent
与传统的batch梯度下降不同,mini-batch gradient descent将数据分成多个子集,分别进行处理,在。当size=m,mini-batch gradient descent变为batch gradient descent。的曲线,分成许多小段时,每个小段是一条batch gradient descent曲线,总体看这条曲线还是。可能容易计算,也可能很难计算,这就导致cost时高时低,出现摆动,其实主要是。每个样本都是随机的,可能靠近最小值,也可能远离最小值,当size=1,变为。
2024-01-19 21:37:25
1212
原创 深度学习记录--梯度检验
对于单边误差和双边误差公式,其中双边误差与真实梯度相差更小,故一般采用双边误差公式。在每次迭代过程中,dropout会随机消除隐层单元的不同子集,J函数难以明确计算。为了对梯度进行检验,需要计算近似误差值来接近梯度。,则误差较大,需要考虑是否错误较多。梯度检验的计算时间较长,且通常在。的导数,计算出双边误差。,则误差很小,效果很好。,则误差一般,效果一般。
2024-01-17 15:37:20
643
原创 深度学习记录--梯度消失和爆炸
很大时,w与1之间的大小关系会产生梯度消失与梯度爆炸的问题。层数n越大,越要使特征值w变小。当神经网络层数很大时,即。
2024-01-17 14:47:08
395
原创 深度学习记录--归—化输入特征
归化输入(normalizing inputs),对特征值进行一定的处理,可以加速神经网络训练速度。归化可以让原本狭长的数据图像变得规整,梯度下降的迭代次数减少,训练速度变快。通过x值更新让均值稳定在零附近,即为零均值化。
2024-01-17 13:10:04
499
原创 深度学习记录--正则化(regularization)
正则化(regularization)是一种实用的减少方差variance)的方法,也即避免过度拟合。
2024-01-17 10:52:44
759
原创 深度学习记录--偏差/方差(bias/variance)
train set error过大,dev set error过大(比train set error还大很多):high bias & high variance。train set error过大,dev set error过大(与train set error差不多):high bias。当方差(variance)过大时,如右图,拟合图像过于特殊,不够集中(即方差过大),称为过拟合(overfitting)train set error较小,dev set error过大:high variance。
2024-01-16 20:34:33
642
原创 深度学习记录--Train/dev/test sets
由于大数据量的存在,dev sets只需要对不同的算法进行验证与取舍即可,故得出几种合适的算法来优化性能即可,而test sets只需要对神经网络进行无偏评估即可,所以数据量不需要很大。对于超百万量级的数据,可以分为99.5% train sets 0.25% dev sets 0.25% test sets。对于百万量级的数据,可以分为98% train sets 1% dev sets 1% test sets。如果不需要进行无偏评估,那么只用保证train/dev sets(会加速神经网络的集成。
2024-01-15 22:23:47
694
原创 合并两个有序链表算法(leetcode第21题)
判断链表节点指向值大小,小的节点指针后移,进行递归,最终合并完成。,创建新链表,逐个存入新链表。
2023-12-21 22:41:57
1002
原创 反转链表算法及优化(leetcode第206题)
prev和curr,分别代表前节点和当前节点,同时使用变量next记录curr->next。不断向后移,让curr指向prev。最终返回prev(此时为尾节点)
2023-12-21 21:53:06
596
原创 C语言链表实现
每次操作完,必须更新头节点,因为头节点指向内容虽然改变,但是头节点本身地址并没有改变,,包含了节点值和后节点指针两个数据(双向链表会有两个节点指针)这样就不需要显式地更新头节点。
2023-12-19 21:09:07
415
原创 结构体(共用体)对齐总结
对于32 位字宽的计算机,每次访问内存的地址总是 4 的倍数。如int,char,short,double为基本数据类型。一块内存,内存选取成员中最大占用内存。为了尽量减少指令,提高数据处理性能。通常要求数据按字宽边界对齐,
2023-12-19 17:08:33
514
原创 两数组交集算法(leetcode第349题)
使用hash表,先将nums1记录,再遍历nums2,若有nums2[j]在hash表中被记录过,则说明这是交集,存入返回的数组。先排序,这样如果出现重复,可以筛查出来,保证唯一性。
2023-12-18 21:29:44
616
原创 移动零算法(leetcode第283题)
双指针,分别指向0和非0数,然后分成小段的移位算法,将0移到小段末尾,右指针是从右边起第一个非0数。左指针是从右指针向左的第一个0。
2023-12-17 20:20:00
453
原创 深度学习记录--随机初始化
尽管当w1,w2为0时,依然可以有x1,x2不同使dw1,dw2不同,重新改变w1,w2,起到不断迭代的作用。这种方法,在反向传播的过程中所有权重的导数都不相同,所以权重和偏置b都能得到更新。同理,当b为0时,也是可以依照同样的过程使b重新改变,起到不断迭代的作用。总体来说,节点权重的对称性与权重的初始化对于迭代更新有着巨大的作用。,我们的隐层的神经单元输出始终不变,出现隐藏神经元的对称性。,导致每层的节点作用式微,神经网络也就失去其作用了。权重,指的是变量系数w,决定了变量的变化率。
2023-12-17 14:53:10
450
原创 C语言:指针与数组易错辨析
在学校学习指针和数组的联系时,对指针与数组的结合产生了很大的疑惑,后来不断查找资料,本人对指针与数组的综合有了一定的理解,现进行综合讨论辨析。
2023-12-15 14:59:34
429
原创 螺旋矩阵算法(leetcode第885题)
将while里的两个for循环分为四个for循环,对于上下左右,直观易懂,但是优化不明显。所以我们可以改变步数与增量来实现循环。对于超范围的坐标进行判断即可。
2023-12-13 19:28:17
457
数值计算:四元非齐次方程求解
2024-05-09
cpp虚继承中的类的内存占用为多少?
2023-10-24
请问cpp中为什么不能输出重载后的后置递增运算符的值?
2023-10-23
请问cpp中创建访问private的成员函数为什么会报错?
2023-10-15
windows 11进行C盘扩容后,系统无法识别新增磁盘空间,怎么办?
2023-10-11
visual studio2022中输入中文后终端窗口无法显示中文,出现中文乱码如何解决
2023-09-30
C语言中输入字符串并打印,请问以下代码哪里出错了
2023-09-25
C语言:二维数组列数未知作为函数形参进行传递如何解决?
2023-09-19
C语言中二叉搜索树的中序后继节点,以下代码是否可以实现搜索?
2023-09-13
C语言zsh: no matches found:
2023-09-08
C语言:用栈来检查括号的匹配
2023-08-26
C语言使用栈反转链表
2023-08-26
C语言:如何利用数组stack实现字符串的反转
2023-08-23
C语言:head插入新节点程序无法运行,以下情况如何解决
2023-08-17
C语言中CLK_TCK为何在vs code中显示错误?
2023-08-02
C语言:如何清空缓冲区?
2023-07-30
请问对于getchar如何修改,避免空格与Tab的干扰,以下代码如何解释
2023-07-30
C语言:char *a[]与char a[][10]有什么区别?
2023-07-27
最大内存空间分配 C语言
2023-07-25
如何在mac os上创建一个unix 可执行文件?
2023-07-20
C语言中还有哪些交换变量值的方法?
2023-07-18
C语言tic-tac-toe行列简化
2023-07-17
C语言中unsigned int的最大数
2023-07-11
c语言:九九口诀表对齐问题
2023-07-10
C语言:水仙花数问题如何解决
2023-07-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人