自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(172)
  • 收藏
  • 关注

原创 机器学习梯度检验笔记

梯度的数值逼近  在实施dropout时,由于无法保证dropout是否正确,需要梯度检验来确保网络的正确。具体步骤是我们先通过双边差分计算出一个近似的梯度,和代码计算出的梯度比较,如果二者差的绝对值小于一个阈值,就可以认定计算正确。设函数f如下图所示:  对点θ\thetaθ加减ε\varepsilonε,其中ε\varepsilonε越小越好,由拉格朗日中值定理得:f′(θ)=f(θ+ε)−f(θ−ε)2ε=3.000f^{'}(\theta) = \frac{f(\theta + \vare

2022-05-14 17:46:56 478

原创 机器学习梯度消失与梯度爆炸笔记

梯度消失与梯度爆炸假设当前有如下的神经网络,设激活函数为g(z)=zg(z) = zg(z)=z,偏置值b为b[l]=0b^{[l]} = 0b[l]=0,y^\hat{y}y^​取值如下:y^=W[l]W[l−1]W[l−2].....W[3]W[2]W[1]X\hat{y} = W^{[l]}W^{[l-1]}W^{[l-2]}.....W^{[3]}W^{[2]}W^{[1]}Xy^​=W[l]W[l−1]W[l−2].....W[3]W[2]W[1]X设每一层的W都是比1大一点点,如下

2022-05-14 16:40:30 287

原创 机器学习标准化化输入笔记

归一化输入在训练神经网络中,一个加速训练的方法就是标准化输入,标准化输入总共需要两个步骤:零均值化,过程如下:μ=1m∑i=1mx(i)\mu = \frac{1}{m}\sum_{i=1}{m}x^{(i)}μ=m1​i=1∑​mx(i)x=x−μx=x-\mux=x−μ此时样本的均值为0。归一化方差,公式如下σ2=1m∑i=1mx(i)∗∗2\sigma ^ {2} = \frac{1}{m}\sum_{i=1}{m}x^{(i)}**2σ2=m1​i=1∑​mx(i)∗∗2

2022-05-14 14:49:19 543

原创 深度学习Dropout笔记

Dropout含义  dropout含义就是在一个神经网络中,每个隐藏层都有一个概率,是用来判断节点保留或者消除的,将一个大的神经网络通过消除节点变为一个小的神经网络,防止过拟合的发生。如下图所示,每个隐藏层节点是否保留的概率都是0.5。  对一个样本训练时,消除一些节点后如下:  其他样本训练时同样是通过概率判断是否消除每个节点。Dropout实施方法–Inverted dropout(反向随机是活)  假设当前是一个三层的神经网络l=3,keep-prob = 0.8。  首先初始化一个

2022-05-14 12:26:28 296

原创 机器学习正则化

正则化作用在机器学习中,通常会在损失函数后加入正则项来防止模型过拟合。L1正则化  L1正则化公式为:  L为损失函数,W为网络权重,b为偏置值,m为样本数量,n_x为网络层数,λ\lambdaλ是超参数。L2正则化  L2正则化公式为:  L为损失函数,W为网络权重,b为偏置值,m为样本数量,n_x为网络层数,λ\lambdaλ是超参数。L2正则化含义  在对W进行梯度下降时,对于第l层的参数W[l]W^{[l]}W[l]更新过程如下:  先计算w[l]w^{[l]}w[l]的梯度

2022-05-12 17:27:38 2645

原创 深度学习中偏差和方差

本文部分内容摘自https://blog.csdn.net/wuzqChom/article/details/75091612从上面可以看出来均方误差由方差和偏差构成,那偏差和方差的高低又代表什么呢?偏差与方差在训练结果中的表现  如上图所示,高偏差代表训练结果欠拟合。而高方差代表训练结果为过拟合。偏差描述的是算法的预测的平均值和真实值的关系(可以想象成算法的拟合能力如何),而方差描述的是同一个算法在不同数据集上的预测值和所有数据集上的平均预测值之间的关系(可以想象成算法的稳定性如何)。  通过

2022-05-12 15:42:10 596

原创 考研数据结构之topsort核心代码

代码// 由于拓扑排序需要考虑到入度,因此需要把邻接表的数据结构做如下更改如下更改struct vNode { int count; // 代表当前节点入度 ArcNode *firstarc;};// 核心代码int topsort(graph *G){ // 将入度为0的节点放到队列中 // 书中是放入栈,并无区别 queue<int> que; ArcNode *p; int num = 0; // 1. 将当

2021-06-09 21:18:11 125

原创 考研之floyd代码核心

代码// 存图方式为邻接矩阵// 方便遍历操作// a存储的是从i到j的最短的距离,path存储的是从i到j需要经过的一个中间节点void print_path(int a[][MAXN], int u, int v, int path[][MAXN]){ if (a[u][v] == INF) return ; else { if (a[u][v] == -1) // 直接输出当前边 else

2021-06-09 21:03:44 92

原创 考研数据结构之dijkstra核心代码实现cpp

代码本文使用vetor模拟邻接表,可以直接用二维数组void print_path(int path[], int a){ // path实际是一个双亲存储结构的树 // 只能从叶子节点找到根节点 // 因此需要一个栈,将序列倒着输出,即为从根节点到叶子节点 stack<int> s; while (path[a] != -1) // 一直向上直到查找到根节点 { s.push(a); // 思考一下如果这两句交换

2021-06-09 20:49:46 144

原创 判断无向图是否为树

解题思路一个无向图是树的条件是有n-1条边的连通图顶点个数和边的信息在结构体G中含有,剩下的就是判断图是否联通通过dfs如果能访问到所有节点那么这个图就是连通的,这里又计算了一个e其实是多余的部分代码const int MAXN = 1000;int vis[MAXN];void dfs(Graph *G, int v, int &n, int &e){ vis[v] = 1; n++; // 来到一个从来未访问过的节点, 计数器加一 Ar

2021-06-09 16:20:24 1210

原创 求不带权无向连通图中距离给定节点最远的节点

解题思路首先确定使用图的BFS,因为BFS是由近到远一点点蔓延过去的。所以队列中的最后一个节点一定是距离给定节点最远的点。代码实现vector模拟邻接表代码#include <iostream>#include <vector>#include <queue>using namespace std;const int MAXN = 2000;int vis[MAXN];//采用vector模拟图的邻接表存储方法//求图中离给定节点最远的节点

2021-06-09 16:05:26 881

原创 考研数据结构二叉树之前序线索二叉树

知识点前序遍历第一个节点为根节点找后继节点左指针不为空且不是线索:就是后继节点左指针空或为线索且右指针不为空:右指针就是后继节点,无论他是不是线索找前驱节点参考文章代码前序线索化,与中序类似,只写出核心代码void preThread(tNode *p, tNode *&pre){ if (p != NULL) { if (p->lChild == NULL) { p->lChild = pre; p->ltag = 1;

2021-06-08 22:16:30 171

原创 考研数据结构二叉树之中序线索二叉树

考点遍历序列中的起始为,从根一直往左走,直到不能再走,即为遍历序列的起始节点。注意: 不一定是叶子节点。遍历序列的最后一个节点,从根一直往右走即可。找后继节点若右指针为线索,则右指针指向的即为后继如果右指针不是线索,就从当前节点向右走一步,再一直向左找前驱节点若左指针为线索,左指针指向的节点即为前驱若左指针指向的不是线索,就从当前节点向左走一步,再一直向右走代码实现#include <iostream>using namespace std;// 线索

2021-06-08 21:20:02 638

原创 cpp图的两种邻接表表达和深搜与广搜

使用STL的vector容器模拟邻接表本代码中 队列均使用STL内置队列,如有需要请自行修改。// 运行环境:cpp11#include <iostream>#include <vector>#include <queue>#include <cstring>using namespace std;// 最大节点数量const int MAXN = 2000;int vis[2000]; // 标记节点是否被访问过的struct e

2021-06-08 21:05:26 252

原创 中缀表达式转后缀表达式

介绍中缀表达式就是我们平时书写的式子比如 2 * 3 + 5 - 4 * (2 + 3)后缀表达式又叫做逆波兰表达式表达式,可以让计算机快速求出一个式子的值。主要通过栈来辅助计算。  一,后缀计算e.g 1 2 3 4 + 8 * + 3 + *遍历整个字符串,将遇到的数字先压入栈中。此时栈中为:1 2 3 4遇到操作符时,从栈中弹出两个数字进行计算,并压入栈中。弹出4 3 相加后 栈中为:1 2 7继续一和二的操作,直到读取到字符串结束,此时栈顶

2021-05-03 20:30:39 174

原创 padlepadle实现手写数字识别

目标通过构建ANN,实现对手写数字识别,并对自己手写的数字进行预测源码地址添加链接描述数据分析数据集为60000个训练样本和10000个测试数据,每个样本为图片和标签,图片大小为28*28,标签为0-9的数字代码实现导包import numpy as npimport paddleimport paddle.fluid as fluidfrom PIL import Imageimport matplotlib.pyplot as pltimport os获取数据并创建数据读取

2020-10-30 20:43:42 781

原创 git连接小组远程仓库

1. 加入仓库加入仓库地址:地址2. 创建ssh发送给yxx创建过程在 git bash窗口输入 ssh-keygen -t rsa -C "[email protected]" 。其中的email就是你自己的git设置的email查看方式 git config user.email 。根据提示生成后,一般保存在 C:\Users\Administrator\.ssh 。用记事本打开.pub文件,将key复制,发送给我即可。3. 创建本地仓库在项目目录下,点击鼠标右键

2020-08-05 17:32:02 271

原创 hdu5533 Dancing Stars on Me (思维题)

题目地址hdu5533题目大意给出n个点,问你能不能凑成一个正n边形。解题思路非常有意思的一个题。想要形成正n边形,两个点之间的距离必定是它周围的点之间的最短距离。那我们把每个点和其他边的距离存下来,查找到其中相等并且最短的边数量,如果等于n就能凑成正n边形。AC代码#include <iostream>#include <cmath>#include &...

2020-04-20 20:38:05 130

原创 历届试题 包子凑数 (完全背包+最大公约数)

题目地址包子凑数解题思路首先呢如果n个数的最大公约数不为1,那他们不凑的数字肯定无情多个。因为n个数字的最小公倍数就是最大公约数的倍数。如果最大公约数为1,就使用完全背包解题即可。AC代码#include <iostream>using namespace std;int num[110*110], a[200];int gcd(int a, int b){...

2020-04-20 20:07:13 728

原创 历届试题 分巧克力 (二分)

题目地址分巧克力解题思路二分查找长度,每次判断能不能凑成,能凑成就继续往上查找,否则向下查找。AC代码#include <iostream>using namespace std;int main(){ int N,K,r=100001,l=1,ans=0,h[100000],w[100000]; cin>>N>>K; for(int i=...

2020-04-20 20:02:58 208

原创 历届试题 Excel地址

题目地址Excel地址解题思路像正常的进制转换处理就行,但是需要注意的是对于像26这样的数字,输出的是Z,如果是真正的进制转换的话就是10了。因此每次取模完成后,要把取模后的数字给减去,并且如果得到的0,就要给变成26在减去。AC代码#include <iostream>using namespace std;char a[2000];int main(){ ...

2020-04-20 19:59:38 118

原创 历届试题 青蛙跳杯子 (BFS)

题目地址青蛙跳杯子解题思路通过bfs来做这个题,每次判断一个和我们要的字符串是否相同。只要相同就直接输出当前的步数,因为bfs每个循环都会使得每一个状态的计数器加一,因此再往后找到的肯定比当前的步数多。需要剪枝的是可能会出现重复的字符串,这个时候就不要在放入队列中了,否则会超时的。AC代码#include <iostream>#include <queue>#...

2020-04-20 19:50:00 241 1

原创 历届试题 发现环 (并查集+DFS)

题目地址发现环解题思路通过并查集判断出图的环,然后dfs查找到它所在环的路径,得到顶点数组,进行一次排序输出。虽然题目没说,但我觉得应该就是一个环,这样就能保证把环里的顶点全都不重复的放到数组里了。因此dfs放在循环里和循环外都行,memset写不写也都行。AC代码#include <iostream>#include <queue>#include <...

2020-04-20 18:04:16 200 1

原创 历届试题 小数第n位

题目地址小数第n位解题思路解题思路,就是像我们平时做除法那样就可以了,首先把被除数变得比除数小,也就是a = a%b 或者是a = a - a/b*b,这样接下来的除法得到的就是小数点后的数字了。接下来被除数每次乘上十然后除以除数,然后被除数减去得到的商乘上除数,然后在乘十计算,一直到第p个小数位。AC代码#include <iostream>using namespac...

2020-04-20 17:53:12 110

原创 历届试题 合根植物 (并查集)

题目地址和根植物解题思路由于题目告诉了谁和谁已经和根了,就直接使用并查集就可以了,最后从1到n遍历f数组,检查有多少种数字,就代表多少株植物。AC代码#include <iostream>using namespace std;int f[1000009];int vis[1000009];int Map[1000009];void init(){ for...

2020-04-20 17:42:36 150

原创 poj1011 Sticks (DFS)

题目地址poj1011题目大意给n个小木棍,要求你把这些小木棍拼成长度相同木棍,并且长度越小越好解题思路首先我们应该确定能够拼成的长度,下限是n个木棍中最长的长度maxlen,上线就是n个木棍的长度之和sum。由于题目给的数据并不大,我们可以从maxlen一直遍历到sum,查找到一个符合条件的长度。查找的过程不难看出可以使用深搜来做。深搜得确定好边界,当n根木棍均用完且凑出来了m个...

2020-04-13 18:53:17 150

原创 洛谷3964 松鼠聚会

题目地址p3964解题思路首先学习一下曼哈顿距离和切比雪夫距离即二者之间的转换。那根据切比雪夫距离的定义,只要x, y这个点到它周围八个点的距离都是一的话,就是使用的切比雪夫距离。对于给出的n个点,选择其中一个点并计算它到其他点的距离的话,由于切比雪夫距离定义为:d = max(|x1 - x2|,|y1 - y2|) 。计算所有点到当前点距离的时间复杂度为O(n)。那n个点就是O(n2...

2020-04-12 12:41:36 90

原创 hdu2552 三足鼎立

题目地址hdu2552解题思路首先正常的算一下哈。arctan(1 / v) = arctan(1 / s) - arctan(1 / u)设 x = arctan(1 / v)那 1 / v = tan(x)既 v = 1 / tan(x)然后直接输出v * u - s * u - s * v后来看了讨论发现,结果只会是一。。。。。AC代码#include <iost...

2020-04-12 10:33:34 113

原创 约瑟夫环问题求解方法总结

约瑟夫环问题n个人围成圈,从第一个人开始报数,数到k的人自杀。然后自杀的下一个人接着从1开始数,一直到剩下最后一个人。一,使用队列模拟过程首先将这n个人入队,然后开始计数,并且不断地出队,如果当前这个人是k的倍数的话就杀掉,如果不是k的倍数就再次入队。代码如下:#include <iostream>#include <queue>using namespac...

2020-04-12 09:51:36 397

原创 hdu1789 Doing Homework again (贪心)

题目地址hdu1789题目大意给出n个作业的截止时间,然后给出如果不完成第i个作业会扣多少分。每天只能做一个作业,问你最少扣多少分。解题思路我第一次呢是先按照截至时间从大到小排序,如果截至时间相同,就按照扣分从大到小排序。从第0天开始向后走,只要当前天小于第i个任务的截止时间,当前天加一,i+1。第三个样例就没过。为什么呢? 比如一个任务截止时间为第一天,扣一分,另一个任务第二天,扣...

2020-04-11 19:35:18 105

原创 hdu1281 棋盘游戏

题目地址hdu1281解题思路很明显的一个二分图题目,可以使用匈牙利算法进行求解。还有一个问题就是怎么判断一个点是不是关键点呢?我们可以把当每个点依次设置为不可放点,然后在用一遍匈牙利算法如果求出来的数量变少了,那它就是一个关键点。AC代码#include <iostream>#include <cstring>using namespace std;i...

2020-04-11 19:27:34 96

原创 hdu5688 Problem D

题目地址hdu5688解题思路对每一个给出的字符串,进行排序,然后使用map记录出现的次数。这里我用的unordered_map,不知道map能不能过。AC代码#include <iostream>#include <algorithm>#include <unordered_map>using namespace std;int main...

2020-04-11 19:23:21 77

原创 hdu5339 Untitled

题目地址hdu5339题目大意给一个数字a和序列b,问你最少在序列中选择多少个数字进行a%b[i]操作能够使得a变为0,找不到这样一个序列输出-1。解题思路不要给自己加戏,各种花里胡哨不需要的。n的范围是20,只要处理一下数据dfs即可。我一开始并没有处理数据,直接进行dfs,导致了超时。那怎么处理数据呢?比如a = 18, b = {2, 7}。很显然先模7,在模2就能够让a变为0...

2020-04-11 19:18:04 110

原创 hdu2368 Alfredo's Pizza Restaurant

题目地址hdu2368题目大意给三个数字,分别是圆半径,矩形长宽。问能不能把这个矩形放到圆里解题思路正好放下的情况是这样,此时矩形的对角线长等于圆的直径。那我们根据这个条件作为判断依据,只要对角线长小于等于圆的直径就能放进去。AC代码#include <iostream>#include <cmath>using namespace std;int...

2020-04-11 19:12:42 127

原创 hdu2575 Count Problem

题目地址hdu2575题目大意给一个数字,可以在最左边加数字,但不能比原数字第一位的一半多,问有多少种。解题思路由于添加数字只与给出的数字第一位有关,因此我们可以不用管后面,只看第一位就行。第一位最多十种可能,在纸上直接算出来多少种就可以了。AC代码#include <iostream>using namespace std;int main(){ int t...

2020-04-11 19:09:08 71

原创 hdu1152 Brownie Points I (水题)

题目地址hdu1152题目大意给出奇数个点,以中间那个点做原点,问你一,三象限和二,四象限的点分别是多少。坐标轴上的点不算。解题思路遍历判断一下就行了。AC代码#include <iostream>using namespace std;int a[200010], b[200010];int main(){ int n; while (cin &g...

2020-04-08 22:12:25 98

原创 hdu2105 The Center of Gravity

题目地址hdu2105题目大意给出三角形的三个顶点坐标,让你求出其重心的坐标解题思路观察样例可以看出重心的坐标为 [(x1 + x2 + x3)/2 ,(y1 + y2 + y3)/2]。证明过程:已知重心向量定理:OA + OB + OC = 0,设O点坐标为(x0,y0)由重心向量定理得到 x1 - x0 + x2 - x0 + x3 - x0 = 0因此xo = (x1 ...

2020-04-08 22:00:36 139

原创 hdu2563 统计问题

题目地址hdu2563解题思路由于不能往下走,所以前三步的情况如下图从图中第三步可以看出 Dn = Dn-2 * 3 + (Dn-1 - Dn-2) * 2 ,也就是三个可以走三步,四个可以走两步。AC代码#include <iostream>using namespace std;long long sum[30];void init(){ sum[0]...

2020-04-08 21:22:58 148

原创 hdu2084 数塔

题目地址hdu2084解题思路简单的dp转移方程为 dp[i][j] = max(dp[i-1][j-1], dp[i-1][j])AC代码#include <iostream>#include <cstring>using namespace std;int dp[110][110];int main(){ int t; cin &gt...

2020-04-08 20:23:19 65

原创 Java连接Oracle方法详解

导入驱动包首先我们得导入Oracle的驱动包,在Oracle安装目录下可以找到,导入它。具体位置是:app\计算机用户名\product\11.2.0\dbhome_1\jdbc\lib可能有的人不太一样,但是大致都差不多,像我就没有dbhome_1这个文件夹。我是直接进入的jdbc。如下图,选择一个将它拖入到java项目中,选择copy即可然后右键点击它,单击build path...

2020-04-08 12:00:56 4565

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除