理论分析
Originum
勤能补拙。邮箱:[email protected]
展开
-
离散化实现|bug分析及解决
离散化:对于一些应用实例,有时只会用到数据的相对大小,而不在意数据本身的大小例:在区间涂色问题中,依次给区间涂色,后涂色的区间会覆盖前区间。现在求剩下几种颜色可以发现,这个问题中,有用的就只是区间的相对位置关系,而不在于区间本身的大小。如:[1, 3] 涂白色,[6, 7] 涂黑色[1, 3] 涂白色,[10000006, 10000007] 涂黑色最后都只有两种颜色。但是...原创 2018-10-06 20:37:32 · 309 阅读 · 0 评论 -
Mini-batch\Batch\Stochastic梯度下降法 [Andrew Ng 深度学习笔记]
假设神经网络的成本函数为其中 m 为训练样本的数目,全局的成本函数是对所有样本的成本函数求平均值若样本数量很大,设为 M,现在考虑两种极端情况,再引出二者结合的“中庸”方法先给出一幅图,这是吴恩达老师课件上的,分别表示三种方法的梯度下降情况批量梯度下降(Batch Gradient Descent)若每一次迭代都遍历整个训练集,也就是 m == M,这样迭代的“准确性”...原创 2019-05-19 12:05:08 · 395 阅读 · 0 评论 -
正则化(Regularization)分析 [Andrew Ng 深度学习笔记]
之前一直都是看别人的公式,不理解正则化为什么会work,看了吴恩达老师的课后,感觉明白了许多,在这里整理一下笔记我感觉“正则化”这个词,在中文的语义看来有点奇怪,第一次看它感觉挺晦涩的但是当看到它的英文是Regularization时,我感觉就好理解许多了高方差(high variance)与过拟合(overfitting)高方差就是指在训练集上表现良好(low train set...原创 2019-05-15 20:23:25 · 368 阅读 · 0 评论 -
RMSprop、动量梯度下降法与Adam优化 [Andrew Ng 深度学习笔记]
如图:对于蓝色的情况,由于梯度下降时来回摆动,导致收敛很慢若增大学习率,结果可能偏离函数的范围,如紫色的情况。为了避免摆动过大,就必须使用较小的学习率,进一步降低了收敛速度我们希望的是在纵轴上减缓学习,在横轴上加快学习,如红色的情况。有多种方法可以实现动量梯度下降法(Momentum)此处用了指数加权平均的更新方法因为纵轴有许多摆动,在求平均的时候都可以被抵消,最后...原创 2019-05-19 14:50:56 · 780 阅读 · 0 评论 -
快速幂+大数乘法取模
快速幂: 中自带的 函数在调用时需要一系列类型转换;数值并不是严格精确,存在误差;执行效率低。最好不要用。然而自己用累乘法写的朴素函数执行效率低下,时间复杂度 。 算法 () , 是一种高效的快速幂算法,时间复杂度 。原理:求 时,朴素方法需要累乘 n 次。假如 n 是 2 的指数型,可以表示为 ,所以可以转化成: 就压缩到了 k 次平方运算。可以把这个方...原创 2018-07-31 12:02:24 · 1511 阅读 · 0 评论 -
扩展欧几里德算法解二元一次不定方程
扩展欧几里德算法:已知两个不完全为 0 的非负整数 a,b,必然存在整数对 x,y ,使它们满足贝祖等式:解一定存在,根据数论中的相关定理。下面给出代码:int extgcd(int a, int b, int& x, int& y) { int gcd = a; if (b != 0) { gcd = extgcd(b, a % ...原创 2018-08-06 22:09:47 · 1995 阅读 · 0 评论 -
建无根树+无根树转有根树
很多问题需要树的数据结构解决,如树形DP。这时我们需要一种简单、快速的建树方法这里介绍一种先读入数据建一棵无根树,再通过深搜进行分层,实现无根树转有根树的方法数据定义通过 vector 数组的下标表示起点,也就是父节点。定义int v ; 表示终点,也就是儿子节点的概念 int w ; 表示权值要改变树的存储类型,首先要改的就是这个const int MAXN = 1e...原创 2018-08-31 23:54:10 · 3530 阅读 · 0 评论 -
线段树
概念:线段树是一棵完美二叉树,所有叶子的深度相同,并且每个节点要么是叶子要么是有 2 个儿子的树,树上的每个节点都维护一个区间 (最底层的节点退化到维护点) 。根是维护整个区间的,每个节点维护的是父亲的区间二等分后的其中一个子区间。由于其二叉树的结构,可以满足当有 n 个元素时,对区间的操作可以在 的时间内完成。因此,对于一些给出连续数据的问题,线段树可以在 内很快的实现修改和询问。...原创 2018-08-19 20:37:22 · 214 阅读 · 0 评论 -
矩阵快速幂
矩阵的定义:矩阵就用二维数组存储,在结构体中也保存了矩阵的行数、列数 (m、n)。在矩阵之间的计算中需要行数和列数的信息,与其在用到时指定,不如和矩阵二维数组一同放在结构体内,初始化时赋值。把初始化的构造函数放在结构体内,就不用在外部使用前每次手动初始化,很方便。由于经常要用到矩阵相乘,就直接重载了 * ,不用每次调用函数。#include <memory.h>...原创 2018-08-27 23:11:11 · 230 阅读 · 0 评论 -
神经网络向量化与矩阵维度 [Andrew Ng 深度学习笔记]
成本函数:单样本时,假设成本函数为:,为预测值,为标签值那么多样本时,假设样本数为 m, 成本函数为:就是把每个样本分别算出成本函数再相加。大概的思路是把m个样本的每次实验当作独立同分布的,所以总共m次实验在概率上应该全部乘起来。对累乘的结果取对数,增减性不变。把对数符号里的累乘符号提出,就变成累加的了。为了方便后续计算,使 m 不同时,成本函数依然在一个数量级(保...原创 2019-05-18 20:29:54 · 1612 阅读 · 0 评论