自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(383)
  • 资源 (6)
  • 收藏
  • 关注

原创 dropout技术的引入

dropout技术的实现比较简单,直接设置一个mask,在训练的时候让部分神经元“失活”即可,在测试的时候要让所有的神经元参与进来,废话不多说,直接上代码: layers.pyimport numpy as npdef simple_forward(x,w,b): output=x.dot(w)+b return outputdef relu_func(x): return

2018-04-13 22:48:28 857

原创 batch normalization 技术的引入

在上一篇介绍的基础上引入了一种新的技术,为batch_normalization,然后重新运行,可以看到对于这几种更新技术而言或多或少的都有提高,具体实现如下: layers.py文件的实现:import numpy as npdef simple_forward(x,w,b): output=x.dot(w)+b return outputdef relu_func(x):

2018-04-12 22:45:43 549

原创 几种更新策略的比较

按照模块化编程,自己写了个全连接的神经网络,一共四个文件,具体介绍如下:第一个文件是layers.py,具体实现的是简单的前向计算,relu函数的前向传播计算以及relu的反向传播计算:import numpy as npdef simple_forward(x,w,b): output=x.dot(w)+b return outputdef relu_func(x): re

2018-04-09 17:14:32 1445

原创 NeuralNetwork(两层的实现)

实现两层的神经网络,利用反向传播算法,首先确定最优的超参数,然后确定权值,最后进行测试,准确率大概在47%左右,具体实现见如下代码:import numpy as npimport pickle as picclass neuralNet: parameter=dict() input_layer = 3072 hidden_layer = 80 output_la

2018-04-05 16:47:01 860

原创 Softmax分类器的实现

和SVM的实现存在一定的相似性,要通过划分训练集的一部分作为验证集来确定超参数。在得出对应的评分之后,要求出对应的概率,同时利用梯度更新的时候,注意求导与SVM存在不同即可,具体实现见如下代码,准确率基本稳定在39%左右。import numpy as npimport pickle as picclass softmax: weight=[] l_rate=0 reg=0

2018-04-04 09:45:09 3780 1

原创 SVM的实现

思路:从训练集当中选取一部分作为验证集,对于剩下的训练集,进行多次迭代,每次使用一定量的样本进行训练,用验证集进行测试,从而确定好超参数。确定了超参数之后,用所有的训练集开始进行训练,思路和之前的类似,迭代一定的次数,每次选取一定量的数据进行训练。在训练结束之后,利用测试集进行测试即可,具体实现见如下代码,准确率基本稳定在35%左右,比knn的方法要好。import numpy as npimpo

2018-04-03 22:04:28 346

原创 Knn的python实现

python实现knn 运行的结果为 实现代码如下:import numpy as npimport pickle as picimport heapq as hpfrom collections import Counterclass Solution: path_train='' train_data=[] train_label=[] test_

2018-04-02 09:01:25 266

原创 机器学习笔记2(吴恩达)

1.减少预测的准确率:得到更多的训练样本;使用小一点的特征;得到一些额外的特征;增加多项式特征的方法; 2.将数据分为测试集和训练集(比例一般是7:3) 3.机器学习算法问题:高偏差—拟合的多项式的次数太小,训练误差和验证误差都会非常大;高方差—拟合的多项式的次数太大,训练误差会很小,但是验证误差会很大 4.调试一个学习算法:使用更多的训练样例(解决高方差的问题);使用更小的特征集合(解决高方

2018-03-25 20:06:35 326

原创 简单的机器学习笔记(吴恩达)

1.监督学习(已知的数据集都是有明确的标签的):分类、预测 2.无监督学习(已知的数据集没有明确的标签,关注的是数据的类型结构):聚类算法、组织计算机集群、社交网络分析、市场分割、天文数据分析 3.Octave软件的使用 4.a:=b 赋值 a=b断言的判断(视频提示) 5.αα\alpha代表的是学习率,也就是在梯度下降的时候,“迈出的步子”的大小 如果学习速率设置得太小,那...

2018-03-23 23:25:32 204

原创 第二章(笔记)

空间分辨率:对图像中最小可辩别细节的测量 度量方法:单位距离线对、单位距离像素 图像分辨率:单位距离中最大数量的可观察线对 强度分辨率:在强度等级中最小的能察觉到的变化,经常将量化强度的位数作为强度分辨率 等优曲线:不同的点代表着虽然图片的大小(N*N)以及图片的强度(2k2^k)不同,但是图片的质量(主观性)是一样的 插值:使用已知的位置的值去估计未知的位置的值 双线性插值: v(x

2018-03-14 22:19:19 244

原创 Caffe---create_mnist.sh问题

在windows下利用cygwin,进行数据格式转换的时候在根目录下输入 ./examples/mnist/create_mnist.sh,会出现问题Creating lmdb..../examples/mnist/create_mnist.sh:行17: build/examples/mnist/convert_mnist_data.bin: No such file or director

2017-12-27 21:44:01 1450

原创 Even Parity UVA - 11464

实现起来很简单,主要在于思路:对第一行的状态进行枚举,然后按照得到的第一行的状态,依次计算第二行的状态,然后按照第二行的状态计算第三行的状态即可,状态的计算很简单,假设当前的行为第i行第j列,那么为了让第i-1行第j列满足题目中的条件,那么要保证data[i-2][j]+data[i-1][j-1]+data[i-1][j+1]+data[i][j]的和为偶数,那么就可以按照前面三项的值计算出最后

2017-12-19 22:11:49 236

原创 Piotr's Ants UVA - 10881

首先读入每个蚂蚁的位置以及朝向,可以想到这样一种情况,如果a和b在某个位置相遇之后,那么a与b都要调换朝向,那么将a和b都看成是相互之间穿插而过。也就是讲如果不区分a和b,仅仅将二者看成是两个蚂蚁,那么如果穿插而过在某个时间t,在某个位置应该也会出现一个蚂蚁,但是这个蚂蚁的编号可能会发生变化。那么也就可以发现,其实蚂蚁与蚂蚁之间的相对顺序其实是不会发生变化的。那么对于输入的蚂蚁,按照他们初始的相对

2017-12-19 19:32:34 227

原创 LA 3708 - Graveyard

说一下自己的思路吧,我的方法虽然通过了,但是比较直接,没有具备太多的技巧性。首先将长度为10000的直线分成为n份,计算出每一份的长度dis1,然后依次处理每一个位置上的雕像。处理过程如下:将长度为10000的直线分成n+m份,对于每一个已经放置在直线的雕像的位置,开始判断后面的划分方法中是否划分的点和这个雕像的位置是重合的,并且没有放置其他的雕像,注意这里对于直线上的位置是否放置了雕像我们使用了

2017-12-18 22:43:21 284

原创 Spreading the Wealth UVA - 11300

编程实现很简单的一道题目,但是这道题目主要难在数学上的分析。首先计算出最终每个人手中应该拥有的金币的数量。然后我们可以发现,如果第一个人给了第二个人a个金币,同时第二个人给了第一个人b个金币,那么也就等价于第二个人给了第一个人b-a个金币,那么这也就说明我们仅仅考虑从后一个人给前面一个人的金币的数量即可。那么假设第一个人给了最后一个人x0个金币,第二个人给了第一个人x1个金币,依此类推,然后结合目

2017-12-18 21:34:18 243

原创 Commando War UVA - 11729

比较简单的一道题目,这道题目通过分析可以发现使用贪心算法求解即可,也就是我们要将执行时间长的任务尽量先做然后再完成那些执行时间短的任务即可,具体实现见如下代码:#include#include#include#include#include#include#include#include#include#include#include#include#include#

2017-12-18 19:58:40 242

原创 Dragon of Loowater UVA - 11292

很简单的一道题目,读入每个head的数据,同时读入每个knight的数据,然后分别对二者进行排序。然后对二者分别设置下标为ind1以及ind2,在二者的下标都没有越界的前提下判断二者的大小关系,如果knight对应的数据大于等于head的数据,那么就将knigh的数据加入到最终的结果中来,同时将二者的下标同时增加,否则,就增加knight的下标。最终判断是否能够对head全部处理完,如果可以,那么

2017-12-17 22:42:38 245

原创 Knots UVA - 1624

首先是初始化节点的状态信息,记录每个节点的左节点编号以及右节点标号,然后删除那些没有遮挡别的节点并且没有被别的节点遮挡的节点,然后开始下面的循环删除节点的过程,因为被遮挡以及遮挡其他节点的总数是2*P,每次首先找出没有被删除的节点,并且记录当前节点的右节点以及右节点的下一个右节点,然后判断这两个节点是否是在同一个平面上,然后判断这两个节点对应的另外一个面上的节点是否满足对应的相邻关系,如果满足就将

2017-12-04 20:28:52 423

原创 Meeting with Aliens UVA - 10570

循环队列相关问题的一种处理方法是将数组的长度开为原来的两倍,并且将数组复制,假设数组之前的长度是N,同时假设下标是从1开始的,那么后面的处理也只需要从1一直N,向后面处理N个数字也就可以了。同时注意到这个题目中,既可以选择某一个数字顺时针走,同时也可以逆时针走,所以我们在处理的时候也就需要处理两轮,首先是顺着处理一轮然后是逆着处理一轮。每次选择某一个点为起始点,求解出从这个点开始按照当前的方向,交

2017-11-28 23:07:35 251

原创 Erasing and Winning UVA - 11491

关键在于思维,逐步读入这个数,每次读入一位之后,如果之前已经删除的数字的位数没有达到D,并且已经存储了之前输入的部分的数字,那么就将当前输入的数字和之前存储的数字进行比较,并且逐步删除那些比当前的数字小的数字,这一轮操作结束之后,就判断当前已经插入的数字是否已经到了上限(也就是N-D),如果没有到达上限,那么就将当前的数字插入,最后循环结束,输出最终的结果即可,具体实现见如下代码:#inclu

2017-11-27 23:41:14 215

原创 Bits Equalizer UVA - 12545

实现起来比较简单的一道题目,关键在于思路,首先我们通过考虑可以发现,如果字符串a中包含的1的个数如果比b多,那么无论如何都不能将字符串a转换成为字符串b,因为在题目当中我们可以发现1是不能够直接转换为0的。与此同时我们要统计a和b中不相等的字符的个数,同时也要统计a中的字符是‘1’以及b中的字符是‘0’,和a中的字符是‘0’以及b中的字符是‘1’的字符的个数,那么上面统计的不相等的个数其实是我们利

2017-11-27 22:49:22 271

原创 Party Games UVA - 1610

仔细分析题意,其实很容易发现,如果将整个序列按照字典序排序之后,最终的结果其实仅仅只与最中间的两个字符串序列是有关的,所以后续的求解就很简单了,取出两个最靠中间的字符串,a和b,逐步取a的子串,然后枚举‘A’ 到‘Z’的字符,将二者拼接,假设拼接之后得到的是temp,如果temp>=a&&temp#include#include#include#include#include#inc

2017-11-27 22:23:58 291

原创 Bin Packing UVA - 1149

很简单的一道题目,将输入的数据进行从小到大排序,然后分别从最左边以及最右边开始进行判断,如果最左的值以及最右的值之和超过了上限,那么就只能将最右的物体单独放在一个包中,同时将最右边的下标更新,如果二者的值之和没有超过上限,那么就将二者同时放在一起,同时更新两个下标的值,每次都要记录已经使用的包的数量,最后输出最终的结果即可,具体实现见如下代码:#include#include#includ

2017-11-27 21:46:03 318

原创 UVA 12265 Selling Land

思路同紫书,解法很巧妙,逐行求解,设置一个数组height记录当前扫到的某一行的某一个格子之后,对应这个列的高度,同时设置一个栈结构来进行记录。如果当前扫到的是‘#’,那么就将这一列对应的高度记为0,同时清空栈,如果扫到的为‘.’,那么就将这一行的高度加1,同时注意当前栈中是否为空,如果为空,那么就将这个数据压入栈中,如果不为空,那么就按照紫书上所讲的最优的情况(也就是周长最大的情况),不断地将数

2017-11-27 21:30:36 321

原创 Cav UVA - 1442

思路同紫书一致,首先找出向右方延伸每一个点不会触碰到顶的高度,并且将这些高度记录到一个数组中,然后考虑向左延伸不会触碰的顶的高度,求出这个告诉和之前记录的另外的一个方向的最下值,将这个最小值减去底的高度,将所有求出的结果进行求和即可,具体实现见如下代码:#include#include#include#include#include#include#include#include

2017-11-27 20:18:42 287

原创 Foul Play UVA - 1609

思路和紫书相同,首先记录队伍1能够打败哪些队伍,以及哪些队伍会打败队伍1,然后对于那些会打败队伍1的队伍,每次都从队伍1能够赢的队伍中找出某一队,正好打败这个队伍,如果找不到,那么就将这些队伍放置到容器fin中,以便后续处理,然后从队伍1的赢得的队伍中找出某一位,让队伍1打败,然后将其余的保存到容器中,让那些在fin中的队伍相互对打,将那些胜利队伍放置到对应的容器中,以此迭代,同时在迭代的过程中输

2017-11-27 19:48:29 294

原创 Uva 1608 Non-boring sequences

思路和紫书一样,首先记录每个数字前面和该数字一样的下标,以及后面与该数字一样的下标,然后从0到n-1的区间开始判断,如果能够找到以某个唯一出现的数字为中心点,左边的序列满足条件并且右边的序列也满足条件,那么最后就能得出该序列是“non boring”的,如果找不到这样的一个点,那么就直接返回false,利用递归操作,实现的难度不大,具体实现见如下代码:#include#include#in

2017-11-27 18:42:48 302

原创 Shuffle UVA - 12174

考察滑动窗口机制的一道题目,为了操作的统一,对于输入的s以及n,我们假设数据的长度是s+n+s,中间的n为真正的数据内容,同时用一个数组amount记录每个数字的出现次数,然后将窗口的位置从最左边开始,刚开始统计的窗口的实质长度是小于s的,然后中间会有一段正好对于s,最后处理的那一个部分还是小于s的,同时每次加入新的数字时更新计数,如果满足对应的计数条件,才能更新对应的长度计数,同时在最后要对得出

2017-11-26 23:30:14 301

原创 Gates UVA - 1607

最多仅仅只有一个位为x,其余的位均为0或者1。首先计算出全0以及全1的输入所对应的输出,如果二者是相等的,说明输出其实就是一个常数,那么我们就直接将输入指定为全0就可以了。如果二者不是相等的,那么就可以考虑全0的输入所对应的输出以及全1的输入所对应的输出二者之间的转化,只要从某一个想另外的一个转化就行了,这里使用的是从全1向全0的方向,逐步增加0的个数,如果增加到某一位能够成功转换,那么说明输入其

2017-11-25 15:01:34 292

原创 Just Finish it up UVA - 11093

假设当前从p点开始进行判断,如果仅仅只能走到q点,那么我们下次就从q+1点开始进行模拟与判断,因为从p点到后续的点如果可达,那么到达后续的点的油量>=0,此时如果从这些点都不能继续向后推进,那么再次判断油量为0的情况就没意义了,也就是重复判断了,具体实现见如下代码:#include#include#include#include#include#include#include#i

2017-11-25 10:44:04 357

原创 Erratic Expansion UVA - 12627

比较简单的一道题目,关键是找出递推的关系就可以了,这个题目中记

2017-11-25 10:14:51 231

原创 Add All UVA - 10954

很简单的一道题目,考察的是huffman树,然而这个题目更简单,不需要建树,直接利用优先队列来进行处理,最后输出最终的结果就可以了,具体实现见如下代码:#include#include#include#include#include#include#include#include#include#include#include#include#include#incl

2017-11-25 10:04:13 209

原创 Copying Books UVA - 714

比较经典的一个题目,考察的既不是滑动窗口也不是动态规划,考察的其实是二分法,二分的范围是从序列中的最大值到序列的所有的元素之和。每次二分计算出对应的mid值,然后判断是否能够将序列划分成为不超过k个部分,每个部分的值都不超过mid,如果可以,那么就继续缩小范围,也就是降低下限进行判断,如果不可以的话,那么就放大范围也就是提高下限进行判断,得出最终的结果之后,就开始对数列进行划分,这里要注意一个点,

2017-11-24 22:49:01 336

原创 Average UVA - 1451

比较新颖的一道题目,需要将求解的思想转换成为几何中的关系,每次都是逐步的添加点,如果点的数量满足判断的个数的条件,首先就取出那些上突的点,然后存储当前点,紧接着再找出后续点与前面满足条件的那些点之间的最大的斜率所对应的那些点,然后再与已经保存的结果进行比较,如果当前待加入的点对的斜率更大或者该点对的包含的点的数量更少,那么就更新最终的结果,最后输出即可,具体实现见如下代码:#include#

2017-11-24 21:57:17 274

原创 Defense Lines UVA - 1471

利用两个数组g[i]代表的是以i为结束点的连续递增数列的最大的长度,f[i]代表的是以i为起点的连续递增数列的最大长度。那么答案肯定是某一个g[j]+f[i],同时j#include#include#include#include#include#include#include#include#include#include#include#include#includ

2017-11-24 20:13:34 142

原创 Uva 11572 Unique snowflakes

比较简单的一道题目,一边遍历数据一边记录已经遍历的数据,同时在遍历的时候还要判断该数据是否之前已经被遍历过,如果被遍历过,那么就将该数据以及之前已经遍历到的数据清除,同时要注意记录遍历的数据的最大的长度,最后输出结果即可,具体实现见如下代码:#include#include#include#include#include#include#include#include#incl

2017-11-24 17:36:43 177

原创 uva1606 Amphiphilic Carbon Molecules

题目的主要思想在于依次选定一个节点,然后再选定剩下的另外一个节点,然后判断以这两个节点确定的直线作为边界,相应的黑色节点的个数以及白色节点的个数的最大值,这里也使用了一个很重要的方法,将黑色节点的位置进行中心对称,这样就将求解白色节点以及黑色节点的个数统一起来了,直接求出节点数然后取最大值就行了,具体实现见如下代码:#include#include#include#include#in

2017-11-24 17:11:22 249

原创 Wine trading in Gergovia UVA - 11054

很简单的一道题目,关键在于意识到每个酒庄最终剩余的数量均为0,那么从第一个酒庄的酒也就需要不断的向外转移,那么需要工作量也就是第一个酒庄藏酒量的绝对值(可以将藏酒量看作为负值),那么从第一个酒庄转移到第二个酒庄就继续向后转移,这里能够保证最后一个酒庄一定满足为0的条件,所以特殊处理了一下,具体实现见如下代码:#include#include#include#include#includ

2017-11-24 15:39:48 136

原创 Fabled Rooks UVA - 11134

比较简单的一道题,关键在于抓住一点:可以对行以及队列进行分开处理,行列的处理彼此之间是没有影响的。每次都选出满足条件的右边界最小的点,如果满足要求就继续下一轮的递归求解,如果不满足要求返回false结束即可,具体实现见如下代码:#include#include#include#include#include#include#include#include#include#in

2017-11-24 15:26:43 243

原创 4 Values whose Sum is 0 UVA - 1152

比较简单的一道题目,对于序列A和B,统计出二者中所有的元素之和,并且记录在数组sum中,然后对于序列C和D中的任意的元素之和t,找出sum中-t的个数并且统计。最后将结果输出即可,具体实现见如下代码:#include#include#include#include#include#include#include#include#include#include#include

2017-11-24 11:27:52 245

2015_Harmonic_Analysis__A_Comprehensive_Course_in_Analysis,_Part_3

2015_Harmonic_Analysis__A_Comprehensive_Course_in_Analysis,_Part_3

2018-08-30

Basic_Complex_Analysis__A_Comprehensive_Course_in_Analysis,_Part_2B

Basic_Complex_Analysis__A_Comprehensive_Course_in_Analysis,_Part_2B

2018-08-30

Basic_Complex_Analysis__A_Comprehensive_Course_in_Analysis,_Part_2A

Basic_Complex_Analysis__A_Comprehensive_Course_in_Analysis,_Part_2A——Simon

2018-08-30

单应性矩阵的估计

两个不同视角的图像上的点对的homogeneous coordinate可以用一个射影变换(projective transformation)表述

2018-04-20

stereo matching overview

立体匹配技术简介 立体匹配主要是通过找出每对图像间的对应关系,根据三角测量原理,得到视差图;在获得了视差信息后,根据投影模型很容易地可以得到原始图像的深度信息和三维信息。

2018-04-20

空空如也

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

TA关注的人

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