Toriyung

导航

2022年7月31日 #

神经网络优化:RMSprop(均方根传播梯度下降法)

摘要: 最终目的仍是减少振荡方向(b)的更新幅度,提高前进方向(ω)的更新幅度 引入Sdω和Sdb,如公式表达,由于dω<db,求其均方根作为分母,实现ω的更新幅度大,而b的更新幅度小 注意 1. 使用中为了避免出现√Sdω=0导致除数为0的情况出现,应令√(Sdω+ε) (吴恩达视频中建议ε=1e-8) 阅读全文

posted @ 2022-07-31 15:22 Toriyung 阅读(688) 评论(0) 推荐(0) 编辑

神经网络优化-动量梯度下降法(牛顿法)

摘要: 背景 对于标准梯度下降过程,wt的更新是wt=wt-1+△w,而wt=wt-1-△w仅仅是对于当前点wt的△w,没有对于历史数据的考量(通俗点说叫经验教训) 结果就是下降(优化)过程前进方向速度缓慢,同时产生振荡(如图红线) 据此引入冲量v,令vt=vt-1-△w,由迭代思想知冲量v代表着从初始到当 阅读全文

posted @ 2022-07-31 14:20 Toriyung 阅读(572) 评论(0) 推荐(0) 编辑

2022年7月30日 #

C++新知识点:输入输出

摘要: 输入 int a; string b; bool c; cin >> a; cin >> b; cin >> c; //需要注意的是,布尔类型应输入整型而不是英文 输出 int a = 0; cout << "a = " << a <<endl; //endl是end of line,换行的意思 需 阅读全文

posted @ 2022-07-30 21:12 Toriyung 阅读(42) 评论(0) 推荐(0) 编辑

C++:字符串类型

摘要: 初始化字符串变量时,有两种方式 1. 沿袭C的方式,使用字符数组 char str[] = ""; 2. C++的方式,直接使用字符串变量 string str = ""; 阅读全文

posted @ 2022-07-30 20:50 Toriyung 阅读(63) 评论(0) 推荐(0) 编辑

利用指数加权进行局部平均值计算---指数加权平均(吴恩达)

摘要: 对于5个数值的平均值我们可以使用求和均值计算 对于10个数值的平均值我们也可以使用求和均值计算 对于20个数值的平均值,如果存储条件允许,可以考虑使用求和均值计算 但对于50个数值等甚至更多的数值,直接使用求和均值计算,对于内存来说是十分不友好的。 指数加权平均法,即vt = (1-β)θt + β 阅读全文

posted @ 2022-07-30 15:30 Toriyung 阅读(273) 评论(0) 推荐(0) 编辑

神经网络的小批量梯度下降(吴恩达)

摘要: 首先应该理解到,梯度下降的最终目的就是使梯度为0,整个过程就是在神经网络计算下梯度朝向0梯度一步步前进,当全样本进行一次计算的时候成为一轮 梯度下降的方式有 批量梯度下降:即对全样本进行梯度下降计算,一轮前进一步,速度慢,但前进方向稳定 随机梯度下降:即随机抽取样本进行梯度下降计算,速度快,但前进方 阅读全文

posted @ 2022-07-30 14:01 Toriyung 阅读(506) 评论(0) 推荐(0) 编辑

2022年7月29日 #

神经网络的使用要点(吴恩达)

摘要: 1 数据集的分割 对于样本量小的数据集,经典的分割方式是7:3或6:2:2 对于样本量大的数据集,可以分割为98:1:1甚至更小 一言蔽之,关键是保证足够量的测试集和尽可能大的训练集 2 训练结果的评估 在训练集上误差大叫偏差大(bias),在验证集上误差大叫方差大(variance) a. 假如偏 阅读全文

posted @ 2022-07-29 20:59 Toriyung 阅读(59) 评论(0) 推荐(0) 编辑

2022年7月28日 #

神经网络梯度爆炸/消失以及改善方式(吴恩达)

摘要: 神经网络的传播(前向)过程如图,如果ω>1(即使是稍微大一点点),只要层数足够多最后会造成ω呈指数上升,这就是梯度爆炸;同理,当ω<1(即使是稍微小一点点),ω会快速缩小逼近0,这就是梯度消失 目前能稍微解决的方法是对ω进行合理地初始化 对于若干层数且每层的神经元数量不尽相同的情况下,比较好的取向是 阅读全文

posted @ 2022-07-28 18:33 Toriyung 阅读(57) 评论(0) 推荐(0) 编辑

神经网络的数值归一化(吴恩达)

摘要: 图表为损失函数的等高线图 当数据未进行归一化时:不同权重参数的比例十分之大,不同点的梯度下降的过程精确度不尽相同,所以必须减小学习步长,因此学习时长变长 当数据归一化时:权重参数的比例相近,不同点的梯度下降精确度近似,所以可以放心加大学习步长,进而减小 阅读全文

posted @ 2022-07-28 16:05 Toriyung 阅读(135) 评论(0) 推荐(0) 编辑

2022年7月26日 #

C++中float和double

摘要: 初始化变量时 float a = 3.14 float b = 3.14f double c = 3.1415926 对于变量a来说,是使用double转换成float的,如果为了省去这一步,需要在数据后加f,如变量b float有效数字为6个,double为15个,但输出时默认都为6,需要指定如 阅读全文

posted @ 2022-07-26 17:12 Toriyung 阅读(298) 评论(0) 推荐(0) 编辑