自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

silent56_th的博客

大学生一枚,对机器学习、图像处理感兴趣,偶尔也会刷刷leetcode或者hihocoder。希望在这里可以和大家多多交流,互相学习。

  • 博客(39)
  • 收藏
  • 关注

原创 CS231n作业笔记2.3:优化算法Momentum, RMSProp, Adam

CS231n简介详见 CS231n课程笔记1:Introduction。 本文都是作者自己的思考,正确性未经过验证,欢迎指教。作业笔记本部分实现的是Momentum,RMSProb, Adam三种优化算法,优化算法是用于从随机点出发,逐渐找到局部最优点的算法。关于各种优化算法的详细介绍,请参考CS231n课程笔记6.1:优化迭代算法之SGD,Momentum,Netsterov Momentum

2016-12-29 21:13:51 6525 3

原创 [hihocoder 1070]RMQ问题再临

问题描述时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述终于,小Hi和小Ho踏上了回国的旅程。在飞机上,望着采购来的特产——小Hi陷入了沉思:还记得在上上周他们去超市的时候,前前后后挑了那么多的东西,都幸运的没有任何其他人(售货员/其他顾客)来打搅他们的采购过程。但是如果发生了这样的事情,他们的采购又会变得如何呢?于是小Hi便向小Ho提出了这个问题:假设整个货架上从

2016-12-29 20:03:51 275

原创 [hihocoder taige 20-3]最小字典序子序列

问题描述题目3 : Smallest Substring 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Given a string S and an integer K, your task is to find the lexicographically smallest string T which satisfies: T is a subseq

2016-12-28 20:49:25 660

原创 CS231n作业笔记2.2:多层神经网络的实现

CS231n简介详见 CS231n课程笔记1:Introduction。 本文都是作者自己的思考,正确性未经过验证,欢迎指教。作业笔记这部分就是二层神经网络的拓展,详情参考CS231n作业笔记2.1:两层全连接神经网络的分层实现。 注:这部分不包括dropout以及batch normalization。1. 初始化参数注:这次使用了normal函数,也可以使用randn函数 self.

2016-12-28 19:07:22 1285

原创 [hihocoder taige 20-1]括号配对

问题描述题目1 : Parentheses Matching 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Given a string of balanced parentheses output all the matching pairs.输入 A string consisting of only parentheses ‘(’ and ‘)’.

2016-12-27 19:29:58 528

原创 CS231n作业笔记2.1:两层全连接神经网络的分层实现

CS231n简介详见 CS231n课程笔记1:Introduction。 本文都是作者自己的思考,正确性未经过验证,欢迎指教。作业笔记1. 神经网络的分层实现实现全连接层+ReLU层的前向传播与后向传播。 参考资料:CS231n课程笔记4.2:神经网络结构,CS231n课程笔记4.1:反向传播BP, CS231n作业笔记1.6:神经网络的误差与梯度计算,CS231n作业笔记1.5:Softma

2016-12-27 18:58:47 5418

原创 CS231n课程笔记5.2:数据预处理&权重矩阵初始化

CS231n简介详见 CS231n课程笔记1:Introduction。 注:斜体字用于注明作者自己的思考,正确性未经过验证,欢迎指教。课程笔记1. 数据预处理1.1. 归一化如下图所示,归一化即使得重心位于原点,方差为1。对于归一化的优点请参考CS231n课程笔记5.1:神经网络历史&激活函数比较。 1.2. PCA & 白化如下图所示,PCA是作用于原数据上的一个线性变换,使得协方差矩阵对

2016-12-27 15:17:49 1957

原创 Ubuntu16.04 开发环境配置

编辑器vimsudo apt-get install vimvim+python 请参考Vim与Python真乃天作之合。codeblocks官网:http://codeblocks.org/sudo add-apt-repository ppa:damien-moore/codeblocks-stablesudo apt-get updatesudo apt-get install codeb

2016-12-25 18:25:16 561

原创 MATLAB点云处理:读取、展示、最近邻、ICP算法求取转移矩阵、旋转

MATLAB中关于点云的几个函数的简单应用。作者使用的是MATLAB R2015b,这几个函数应该是在Computer Vison包里。 全文都是作者自己结合MATLAB文档的理解,欢迎指教。 1. pcread: 输入文件名,返回pointCloud类(用于存储点云)。eg: pcloud = pcread(“filename.ply”) 2. pcshow: 输入pointCloud类,展

2016-12-24 17:49:56 23182 15

原创 CS231n课程笔记5.1:神经网络历史&激活函数比较

CS231n简介详见 CS231n课程笔记1:Introduction。 注:斜体字用于注明作者自己的思考,正确性未经过验证,欢迎指教。课程笔记关于神经网络的简介请参考 CS231n课程笔记4.2:神经网络结构。1. 神经网络历史具有神经网络的结构,但是使用电门手动构造函数。[Frank Rosenblatt, ~1957: Perceptron;Widrow and Hoff, ~1960:

2016-12-24 16:43:03 1086

原创 CS231n作业笔记1.7:基于特征的图像分类之调参

CS231n简介详见 CS231n课程笔记1:Introduction。 本文都是作者自己的思考,正确性未经过验证,欢迎指教。作业笔记1. SVM的交叉验证&调参交叉验证的具体内容请参考CS231n课程笔记5.4:超参数的选择&交叉验证。 交叉验证部分的代码和SVM作业中的一模一样,详情请参考CS231n作业笔记1.4:随机梯度下降(SGD),CS231n作业笔记1.3:SVM的误差函数以及反

2016-12-23 18:33:01 2018 1

原创 CS231n课程笔记4.2:神经网络结构

CS231n简介详见 CS231n课程笔记1:Introduction。 注:斜体字用于注明作者自己的思考,正确性未经过验证,欢迎指教。课程笔记关于神经网络的实现请参考: CS231n作业笔记1.6:神经网络的误差与梯度计算。1. 神经网络结构 如上图所示,两层之间都是全连接,隐层函数都是用激活函数。两层神经网络,激活函数使用ReLU的形式为scores = W2 max(0,W1*X+b1)

2016-12-22 19:37:12 570

原创 CS231n作业笔记1.6:神经网络的误差与梯度计算

CS231n简介详见 CS231n课程笔记1:Introduction。 本文都是作者自己的思考,正确性未经过验证,欢迎指教。作业笔记这里实现的是一个两层神经网络(含有一个隐层),激活函数使用的是ReLU,误差函数使用的是softmax,使用了L2正则项。1. scores计算需要注意的有 1. 最后一层不使用激活函数 2. 注意加bias的时候,使用了broadcasting,所以在反向传

2016-12-21 16:08:40 3446

原创 CS231n作业笔记1.5:Softmax的误差以及梯度计算

CS231n简介详见 CS231n课程笔记1:Introduction。 本文都是作者自己的思考,正确性未经过验证,欢迎指教。作业笔记Softmax的误差函数以及正则项请参考 CS231n课程笔记3.1:线性分类器(SVM,softmax)的误差函数、正则化。 代码部分请参考 python、numpy、scipy、matplotlib的一些小技巧。 注:这里只写了向量化的实现方法,因为非向量

2016-12-20 17:35:25 2348

原创 python、numpy、scipy、matplotlib的一些小技巧

这里是作者使用python, numpy 以及 scipy时经常忘记的一些有用的小技巧,记录在这里。 斜体字为作者自己的理解,仅供参考,欢迎指教。 参考网址:Python Numpy Tutorial,Numpy and Scipy Documentation,Python 3.5.2 documentation,The Matplotlib API。Python基本运算 1.1. x**y

2016-12-19 22:30:05 1807

原创 CS231n课程笔记4.1:反向传播BP

CS231n简介详见 CS231n课程笔记1:Introduction。 注:斜体字用于注明作者自己的思考,正确性未经过验证,欢迎指教。课程作业关于BP实现的实例请参考 CS231n作业笔记1.3:SVM的误差函数以及反向传播(非向量及向量算法)。1. 计算图 VS 微积分如果可以直接使用微积分得到gradient,使用BP则会显得效率低下。但是通常情况下我们需要计算多层的神经网络,其中设计很多

2016-12-19 21:03:19 1954

原创 CS231n作业笔记1.4:随机梯度下降(SGD)

CS231n简介详见 CS231n课程笔记1:Introduction。 本文都是作者自己的思考,正确性未经过验证,欢迎指教。作业笔记1. 随机梯度下降这部分是对SVM模型进行随机梯度下降,求取近似最优解。关于随机梯度下降的知识请参考CS231n课程笔记3.2:梯度下降,关于SVM的误差以及梯度计算请参考 CS231n作业笔记1.3:SVM的误差函数以及反向传播(非向量及向量算法)。 实践部分

2016-12-19 18:40:21 1647

原创 CS231n作业笔记1.3:SVM的误差函数以及反向传播(非向量及向量算法)

CS231n简介详见 CS231n课程笔记1:Introduction。 注:斜体字用于注明作者自己的思考,正确性未经过验证,欢迎指教。作业笔记SVM的Loss Function请参考 CS231n课程笔记3.1:线性分类器(SVM,softmax)的误差函数、正则化。1. 非向量的误差计算这部分属于作业自带部分,使用loop计算,如果margin大于0,就叠加,最后加入正则项。2. 非向量的梯

2016-12-19 01:07:14 3108

原创 CS231n作业笔记1.2: KNN的交叉验证

CS231n简介详见 CS231n课程笔记1:Introduction。 注:斜体字用于注明作者自己的思考,正确性未经过验证,欢迎指教。作业笔记关于KNN的实现详见 CS231n作业笔记1.1: KNN中的距离矩阵vectorize的实现方法(无循环)。1. 切分训练集np.split函数用于切分训练集,注意必须是等分,而且返回list类型。 X_train_folds = np.array(

2016-12-17 21:50:02 2307

原创 [hihocoder1066]无间道之并查集

问题描述就是并查集的简单应用。详情请参考hihocoder官网。算法详解每个节点存储两个数值,其父亲节点的位置以及类别内部节点的个数。其中父子节点位于一个类别,而类别内部节点数只对根节点有意义。1. 寻找根节点根节点的位置可以用于区分两个节点的类别。所以寻找根节点是个十分常见的操作,这里使用递归实现,同时加入短路,减少平均复杂度。int find_root(int i){

2016-12-17 20:46:25 366

原创 CS231n作业笔记1.1: KNN中的距离矩阵vectorize的实现方法(无循环)

CS231n简介详见 CS231n课程笔记1:Introduction。 注:斜体字用于注明作者自己的思考,正确性未经过验证,欢迎指教。作业笔记KNN部分主要关注与距离矩阵的计算。输入是X_test[test_num,D], X_train[train_num,D],其中D为特征维度,train_num、test_num分别是训练集以及测试机大小。返回dist[test_num,train_nu

2016-12-17 00:13:40 2433 1

原创 CS231n课程笔记3.2:梯度下降

CS231n简介详见 CS231n课程笔记1:Introduction。 注:斜体字用于注明作者自己的思考,正确性未经过验证,欢迎指教。课程笔记上一篇 CS231n课程笔记3.1:线性分类器(SVM,softmax)的误差函数、正则化介绍了线性分类器的最后优化的目标函数,这节介绍优化方法:梯度下降。梯度下降不仅可以用于解线性分类器,还可以用于优化任意目标函数,得到局部最优解,只是因为线性分类器+

2016-12-16 16:52:41 763

原创 [hihocoder1055]刷油漆

问题描述给树中每个节点赋予一个value,求包含指定节点的最多还有M个节点的一个联通的最大值。具体参考hihocoder官网。算法详解1. 算法框架子问题为求以该节点为根节点的子树中最多含有0-m个节点能够得到的最大值,递归实现的算法,每个节点内部利用动态规划求解。递归基:如果没有子节点,那么max_value[0] = 0; max_value[1] = Node.val

2016-12-15 20:36:59 376

原创 CS231n课程笔记3.1:线性分类器(SVM,softmax)的误差函数、正则化

CS231n简介详见 CS231n课程笔记1:Introduction。 注:斜体字用于注明作者自己的思考,正确性未经过验证,欢迎指教。课程笔记这篇是线性分类器的第二部分,回忆线性分类器的线性体现在score的获得,即score = Wx+b,然后predict_label = argmax(score)。具体细节以及关于线性分类器的解释请参考CS231n课程笔记2.2:线性分类器。 如果不考

2016-12-15 01:13:34 2236

原创 [hihocoder1050]树中的最长路

问题简介寻找树中的最长路,详情请参考hihocoder官网。算法详解使用递归算法实现,首先设定一个全局根节点(这里使用编号为1的节点),然后任意节点计算以该节点为根节点的子树中的最长路径以及深度。使用longest_path(int &lt,int &ld)实现上诉功能,lt用于返回最长路径,ld返回深度。对于任意节点,该节点的最长路径为子节点的最长路径的最大值,在与所有子节点中深

2016-12-14 21:12:12 359

原创 CS231n课程笔记2.2:线性分类器

CS231n简介详见 CS231n课程笔记1:Introduction。 注:斜体字用于注明作者自己的思考,正确性未经过验证,欢迎指教。课程笔记这篇是CS231n课程笔记2.1:图像分类问题简介&KNN的下篇,两篇一起构成Lecture2的笔记。 上一篇介绍了kNN,那个是无参数的算法,只需要记录训练集即可,所以对于大数据集,kNN的模型很大。 这里先简介线性分类器,线性体现在score的获

2016-12-13 22:13:09 535

原创 [hihocoder1049]后序遍历

问题描述由树的前序、中序得到后序。具体参考hihocoder官网。算法简介1. 由前序、中序重构树因为数据很小,所以不需要考虑复杂度。作者采用了递归算法,利用前序找到根节点,然后利用中序切分左右子树,然后左右子树再递归构建。递归算法需要注意构造递归基。2. 生成树的后序遍历递归算法很简单,先左子树后序遍历,再右子树后序遍历,最后加上根节点即可。全部代码#includ

2016-12-13 21:12:20 315

原创 [hihocoder1048]状态压缩2

问题描述具体介绍请参考hihocoder的官网。算法&部分代码这里标记中使用的上下左右指的是同一蛋糕的另外一个格子相对于本格子的位置,例如左上角的格子只可能有DOWN和RIGHT两个方向。1. 深搜+剪枝从上到下,从左到右,枚举格子的状态,深搜到底则+1。剪枝是基于祖先节点的情况不存在,则本节点的情况也不存在。深搜是利用迭代算法实现的。简单证明可以得到O(4^n^m)的复杂

2016-12-13 17:06:29 285

原创 CS231n课程笔记2.1:图像分类问题简介&KNN

CS231n简介详见 CS231n课程笔记1:Introduction。 注:斜体字用于注明作者自己的思考,正确性未经过验证,欢迎指教。课程笔记1. 图像分类问题简介a. API: input image, output labelb. 难点:i.illumination (光强)ii. deformation (变形)iii. occlusion (遮挡)iv. background cl

2016-12-12 15:16:55 735

原创 CS231n课程笔记1:Introduction

CS231n课程简介CS231n是Stanford的CV课程,主要专注于解决图像分类问题。网址为 http://vision.stanford.edu/teaching/cs231n/index.html,视频网上有很多。 作者水平不高,这里也仅仅是自己的课程笔记与大家分享,记录一些课程中的重要知识点,欢迎各路大神指教。从作者收到的风评来看,这门课的水准不高,但因为最近要自己设计训练CNN模型,所

2016-12-11 22:43:30 2251

原创 [hihocoder1044]状态压缩一

问题简介详情请参考hihocoder官网。从N个数字选取任意个数字使得数字和最大,需要满足连续M个数字中不选择超过Q个。算法详解这个问题可以利用动态规划求解,需要按数字枚举,且对于前M个是否选取的状态展开。时间复杂度为O(N*2^M),因为M不大于10,所以O(2^M)=O(1024)=O(1)。具体的对于第i个数字,存储i-M+1到i这M个数字的2^M种选取情况下,从前i个数字中

2016-12-06 20:46:03 410

原创 [hihocoder1043]完全背包

问题简介具体问题请参考hihocoder官网。算法介绍回顾[hihocoder1038]01背包问题,01背包是按照物体逐一枚举,是因为每个物体只能选择1次。而完全背包问题,是可以选择无数次,这里可以展开为K个物体,但是作者采用的按照金额枚举。具体来说,定义f[i]为有i个金额所能获得的最大价值,那么有转移方程f[i] = max(f[i-1],max(f[i-need[j]]+v

2016-12-05 23:53:54 256

原创 [hihocoder1038]01背包问题

问题简介具体问题请参考hihocoder的网站。算法思想这就是一个01-背包问题,非常典型的动态规划求解问题。按照物体逐一枚举,转换方程为max_value[money] = max(max_value[money] , max_value[money-need[物体]]+value[物体]),即在此之前所有物体中使用Money可以求得的最大value等于不采用最大值以及采用最

2016-12-05 17:32:09 617

原创 [hihocoder1037]数字三角形

问题简介具体问题请参考hihocoder的网站。算法思想此问题可以看做给定一个无环图,求路径上节点值之后最大的路径,是一个经典的动态规划问题。方程可以看做f[i][j] = value[i][j]+max(f[i+1][j],f[i+1][j+1]),由最底层到最高层枚举即可。代码#include using namespace std;int ma

2016-12-05 16:28:15 540

原创 LeNet论文阅读:LeNet结构以及参数个数计算

本文是对Yann Lecun大神的经典论文“Gradient-Based Learning Applied to Document Recognition”的阅读笔记之一,主要介绍LeNet的结构以及参数个数的计算,上一篇博客介绍的CNN设计原理。作者才疏学浅,还望指教。LeNet-5 引用自原论文“Gradient-Based Learning Applied to Document Reco

2016-12-04 21:11:31 10672 1

原创 [hihocoder1036]Trie图

问题简介给定词典,求给定文章内部是否含有词典中的单词。具体问题请参考hihocoder的网站。算法思路详细的算法思路参照hihocoder的网站。Trie树大致上是共前缀的树(具体参照[hihocoder1014]Trie树),Trie图则是维护后缀前缀重叠最长的信息(这里结合了KMP的思想,KMP可以看做是词典只有一个词的Trie树;KMP也是维护字符串前缀后缀最长重叠部分,

2016-12-03 22:46:38 318

原创 [hihocoder1015]补提交卡

问题简介具体参照hihocoder官网。实现思路最长连续提交天数等价于相邻未提交日期差值的最大值-1,所以原问题是求解去除哪些日期之后可以使得相邻日期的差值最大。那么消除的日期必定是相邻的日期,否则可以通过改变某个不相邻日期为相邻日期使得差值增大。处理的时候前后加入虚拟日期第0日以及第101日,方便边界的处理。代码#include using namespace std

2016-12-03 18:23:04 340

原创 [hihocoder1039]字符消除

问题简介具体参照hihocoder网站。实现思路因为字符串长度最大为100,只有ABC三个字符,所以只有300种情况,每种情况最差处理是O(100^2)。所以即便最差情况也只有3e6的计算次数,不足10ms。因此只需要实现穷举算法即可,先插入字符,然后判断会消除多少字符。代码1. 消除字符的函数输入字符串,返回消除字符的数目,同时字符串改变为消除之后的字符串。例如str

2016-12-02 15:12:13 720

原创 LeNet论文阅读:CNN设计原理

本文是对Yann Lecun大神的经典论文“Gradient-Based Learning Applied to Document Recognition”的阅读笔记之一,主要阐述CNN为什么使用权值共享、降采样以及局部感受野。作者才疏学浅,还望指教。传统的模式识别方法人工设计的特征提取方法+分类器(可以是全连接神经网络) 1.1. 图像–特征提取–>特征–分类器–>数字类别

2016-12-01 22:49:54 5675

空空如也

空空如也

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

TA关注的人

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