Something_Interesting
文章平均质量分 61
shengno1
年轻就是朝阳,容不得片刻怠慢
展开
-
斯坦福机器学习-week 3 学习笔记(1)
keyword:Logistic Regression Model目录一.Logistic Regression的含义 二.Logistic Function三.Logistic Regression Model 3.1 Hypothesis函数的定义 3.2 Hypothesis函数的含义 3.3 模型训练过程 3.4 模型预测过程原创 2014-01-28 14:17:46 · 1585 阅读 · 0 评论 -
斯坦福机器学习-week 3 学习笔记(2)——Matlab最优问题求解
keyword:Optimization algorithm目录一.最优问题的求解算法二.最优问题求解算法的比较三.利用Matlab求解最优问题一.最优问题的求解的算法Gradient descentConjugate gradientBFGSL-BFGS二.最优问题求解算法的比较 其他最优问题求原创 2014-01-29 22:17:23 · 2566 阅读 · 1 评论 -
斯坦福机器学习-week 3 学习笔记(3)—— 解决Overfitting
keyword: Overfitting ,Regularization目录一.Overfitting的定义二.解决Overfitting的方法三.Regularization四.Regularization时α值的影响 一.Overfitting的定义 根据Andrew Ng的说法,overfitting的定义如下:If原创 2014-01-30 11:56:30 · 5956 阅读 · 0 评论 -
Back Propagation算法推导过程
对于神经网络的相邻两层的神经元的示意图如图1:图 1在图中,Y表示每一层神经元的输出组成的矩阵,X表示每一层神经元的输入所组成的矩阵,表示从第A层输出到第B层输入 的权重,表示从第A层输出到第B层输入 的偏置。 在推导过程中,符号的定义如下: 表示标量相乘,表示矩阵每个元素相乘,表示向量或矩阵的内积。 以下推导过程都是基于输入训练集只有一个样本的时候。根据神原创 2014-02-25 22:30:16 · 8009 阅读 · 2 评论 -
软件版本号
由于经常使用OpenCV,所以每次看到OpenCV有更新时,都十分高兴,但是每次看到OpenCV后面带的那一串数字都不知道代表什么意思,只知道那些数字越大代表版本越新,今天偶然在网上看到那一串数字代表着软件的版本号,下面来学习下软件版本号的含义。原创 2014-01-13 14:57:08 · 1387 阅读 · 0 评论 -
C++ 计时类
平时写程序,总想知道自己的程序跑得有多快,虽然程序用的时间的大小不仅和算法的复杂度有关,也和其他方面有关,但是,总是忍不住想去看看运行的时间。 而且,在运行机器学习和图像处理的程序的时候,也是需要对比不同算法的复杂度的,直接在算法层面上进行复杂度分析比较困难,因此,可以简单地采用不同算法的运行时间来确定。上面啰嗦了那么多写这个类的原因,下面就把我写的这个类,请大家赐教。原创 2014-03-09 16:50:49 · 1197 阅读 · 0 评论 -
斯坦福机器学习-week4 学习笔记——初识神经网络
一.神经元模型 对于单个神经元来说,其模型主要如下: 对于上图的单个神经元来说,其输入z满足下面的式子: 对于图中的单个神经元的输出y满足下面的式子: 其中, 称为激活函数(activation functi原创 2014-03-30 00:24:07 · 2623 阅读 · 0 评论 -
卷积神经网络BP算法推导
原创 2014-04-14 23:34:04 · 4349 阅读 · 0 评论 -
斯坦福机器学习-week5 学习笔记(1)——神经网络训练BP算法与Gradient checking
一.神经网络的cost function 对于神经网络,可以用下图表示一个神经网络 因此,对于神经网络来说,cost function J(θ)的定义如下:二.神经网络的训练算法(Backpropagation algortithm) 对于一中定义的神经网络的cost function J(θ),我们可以使用梯原创 2014-03-30 14:37:16 · 9694 阅读 · 0 评论 -
cocos2d-x 环境搭建
目录一.需要的软件二.配置过程2.1 解压cocos2d-x-2.2.32.2 win32开发2.3 创建新项目2.4 android开发配置 昨晚搞了一晚上,终于搞定了cocos2d-x在windows 7 64位的环境下的开发环境,能够进行win32和android开发了。在这个过程遇到了很多困难,在参考了很多网友的解决方法之后,总算是成功了,我尽量贴出参考的主要来源。写下这篇日志,也是原创 2014-03-21 14:23:46 · 3517 阅读 · 3 评论 -
斯坦福机器学习-week5 学习笔记(2)--神经网络小结
一.神经网络的结构选择 从图上可以看出,神经网络的输入层和输出层已经由任务规定好了,我们能设计的结构只有隐藏层的神经元个数。 一般来说,隐藏层神经元的个数要可以与输入层相同,或者是输入层的3到4倍; 如果有两个以上的隐藏层的话,Andrew Ng认为,可以将隐藏层的神经元个数设置为相同的。 我个人的观点是,每一个隐藏层的数目比前一层多,这样,如果原创 2014-03-31 23:56:47 · 1929 阅读 · 0 评论 -
使用OpenCV自带的神经网络对MNIST手写字体进行识别
在学习了斯坦福机器学习公开课中关于神经网络的章节之后,一直想自己实现一个神经网络,但是在没有对照的情况下,实在是无法验证自己写的程序对不对,因此,必须先找一个已经写好的神经网络来进行对比实验,刚好OpenCV中就有神经网络,于是,先使用OpenCV自带的神经网络对MNIST手写字体进行识别。 在OpenCV中,使用神经网络需要先设置一些关于神经网络的参数。 OpenCV中的神经原创 2014-04-17 20:26:07 · 6997 阅读 · 11 评论 -
Deeplearning Toolbox中CNN代码学习
最近在研究CNN的实现,在还没自己动手写之前,先看看现在比较常用的Matlab的Deeplearning Toolbox中的CNN实现。 在Toolbox中,CNN的实现过程主要包括下面几个文件 cnntrain.m //用于训练CNN的m文件 cnntest.m //用于预测的m文件 cnnsetup.m原创 2014-04-19 21:43:27 · 10725 阅读 · 28 评论 -
遍历一个目录下的所有文件
今天整理数据库的时候发现,需要统计下不同分辨率的图片的数目的多少,本来想着按照图片的大小排个序,然后就可以人工统计,后面发现大小相同的图片,分辨可不一样相同,那就没办法人工统计了。没办法,只好用电脑来完成这种不用脑的体力活了。 这个程序主要利用的QT的QDir类来实现的(QT真是好强大)。 下面来看代码。这个是获取一个文件夹下面的文件名字的函数#include #原创 2014-04-03 16:25:23 · 1791 阅读 · 1 评论 -
斯坦福机器学习-week 2 学习笔记
1.特征缩放Feature Scaling 特征缩放:将特征的范围缩放到大致相同的范围。x = x /(x的最大值 - x的最小值)。Mean normalization 均值归一化:使得x的均值为零的特征范围缩放。x = (x - x的均值) / (x的最大值 - x的最小值)或者x = (x - x的均值) / (x的标准差)2.learni原创 2014-01-24 13:48:06 · 1883 阅读 · 0 评论 -
Java利用TCP协议发送文件(一)--服务器端
最近要写一个使用TCP进行文件传输的软件,考虑客户端是使用手机的,因此,准备采用Java作为开发语言,自己本身对于Java本不熟,还好,有个热心的网友已经将TA的代码公开了,有了这个基本原型,就可以进行进一步开发了。 服务器端采用的是TCP server socket监听端口,如果有客户端连接到服务器,就创建一个新的线程进行处理,在这个线程中,只接受客户端发送过来的数据,并保原创 2014-05-07 15:04:39 · 2227 阅读 · 0 评论 -
Java 将byte[] 与int类型互相转换
在使用TCP socket进行编写文件传输协议的时候,找Java中,可以使用BufferedOutputStream 和 BufferedInputStream来缓冲输出和输入的数据,但是,这里有个问题,BufferedOutputStream类的write函数和BufferedInputStream类的read函数都是使用byte[]作为放置数据的区域,因此,需要将其他的一些数据类型转化为byt原创 2014-04-30 21:44:08 · 2596 阅读 · 3 评论 -
"The MathType DLL cannot be found.Please reinstall MathType"问题解决
今天在打开word的时候,出现了下面的情况解决上面的问题的方法是:将MathType安装目录下的MathPage->64目录下的MathPage.wll文件复制到Office安装目录下的Office15目录下(我这里安装的是64位的Office,所以使用的MathPage下的64的目录下的MathPage.wll文件,如果是32的Office的话,就使用原创 2014-03-26 22:07:36 · 18292 阅读 · 5 评论 -
评价分类器的性能
一.分类正确率 分类正确率定义为分类正确的样本数目与总体样本数目的比值。 二.敏感性和特异性 对于一个二分类问题,定义下面四个统计值:正确的正例(TP):本身为类别t=1,被分类为p=1的对象的数量;正确的反例(TN):本身为类别t=0,被分类为p=0的对象的数量;错误的正例(FP):本身为类别t=0,被分类为p=1的对象的数目;错误的正例(FN):本原创 2014-04-08 13:37:55 · 2311 阅读 · 0 评论 -
Java利用TCP协议发送文件(三)--客户端设计
由于项目的需要,需要在手机平台上面进行传输,但是,由于android平台的开发环境比较容易使用,而且免费,同时,因为在编写数据包的时候,已经在数据包中加入了发送数据包和接收数据包的函数,因此,考虑到开发投入的情况下,选择了使用Android平台。 由于在Android的应用大部分是使用Java进行开发的,而在Android中,并没有特殊的TCP的API,Android使用的TCP就是标准原创 2014-05-16 14:01:23 · 1559 阅读 · 0 评论 -
Deeplearning Toolbox中CNN代码的修改--增加下采样层偏置
前几天学习了Deeplearning Toolbox中关于CNN的那部分代码,发现这个Toolbox的关于CNN的实现与经典的LeNet-5的实现有下面几点不同: 在下采样层,在计算前一层的神经元之和后没有使用到偏置;在下采样层,在计算前一层的神经元之和后没有使用到系数;在下采样层,没有使用Sigmoid函数进行激活 因此,在学习了CNN的代码后,就要进行修改了。原创 2014-04-26 13:10:14 · 2781 阅读 · 3 评论 -
Java利用TCP协议发送文件(四)--完整源代码
完整的使用TCP进行wav文件发送的代码可以在我的github上面下载。 这份代码主要是用来在客户端和服务器端发送wav文件的,其实是可以发送任意类型的文件的,因此在发送的过程中,仅仅是把文件当做字节流的形式发送的,并没有涉及到对文件的解析,因此,理论是可以发送任何类型的文件的,但是,在这个实现的过程中,我把文件的后缀名在程序中指定为.wav格式了,因此,只能发送.wav文件了。原创 2014-05-16 21:18:11 · 2930 阅读 · 1 评论 -
Java利用TCP协议发送文件(二)--数据包设计
虽然TCP协议是可靠传输协议,但是,在服务器端,接受缓冲总是有限的,因此,如果不将数据进行分包发送,在传送的过程中,就无法判断接受到的数据是上一次还没发完的部分,还是新发送的数据。同时,为了更方便地对接收到的数据根据不同的类型进行设计,需要将发送的数据的类型添加到要发送的数据中去,根据上面的两个方面的原因,需要在数据分包发送,并且加入包头。 数据包的设计如下: 由于原创 2014-05-14 11:39:20 · 4290 阅读 · 0 评论 -
递推方程的求解
在计算算法分析的过程中,难免会遇到复杂度的递推方程,求解递推方程是获得复杂度关于输入规模n的函数的必然途径。 目前,主要存在的求解递推方程的方法如下:迭代法:直接迭代法;换元迭代法;差消迭代法;尝试法主定理迭代模型:递归树一.迭代法 迭代法主要思想就是将递推方程中右边的子表达式用更小的表达式代入,不断进行迭代,直到到达初值,然后就可以直接原创 2014-06-25 00:14:27 · 8280 阅读 · 0 评论 -
Python输出字符串到txt文件中
最近在做的一个东西,需要将实验结果输出到txt文件中,因此,需要找一下如何使用Python将字符串输出到一个txt文件中,下面的找到的一种方法。 可以使用open函数打开一个文件,通过设置打开模式,可以将文件设置为只读模式、只写模式和插入模式。 open函数会返回一个file对象,通过file对象调用write函数可以将字符串写入到文件中,如果要实现换行,只要将换行符的转义字符原创 2014-06-26 15:05:43 · 34476 阅读 · 1 评论 -
激活函数实现--3 Tanh函数实现
1.TANH函数的定义2. TANH函数的导数 3.TANH函数的实现Tanh主要是通过类Tanh来实现的,该类继承自AbstrcactActivation类,主要实现Activating接口和Derivating接口。Tanh类的定义如下:#ifndef TANH_H#define TANH_H#include原创 2014-07-18 20:20:11 · 10752 阅读 · 0 评论 -
Deeplearning学习之Theano(1)--保存参数
最近在用Theano做关于Deeplearning的东西,由于是新手,以前没有使用过Theano,只是用过一点Matlab的Deeplearning Toolbox,因此,对于一个新的工具只能从tutorial入手,由于时间比较急,所以没有看Theano的tutorial,而是从Deeplearning的tutorial 入手。一.保存参数的原因原创 2014-06-09 22:53:10 · 3645 阅读 · 0 评论 -
激活函数实现--2 Sigmoid函数实现
1.Sigmoid函数的定义2.Sigmoid函数的导数3.SIGMOID激活的实现过程Sigmoid主要是通过类Sigmoid来实现的,该类继承自AbstrcactActivation类,主要实现Activating接口和Derivating接口。Sigmoid类的定义如下:#ifndef SIGMOID_H#define SIGMOI原创 2014-07-18 16:28:39 · 6588 阅读 · 0 评论 -
激活函数实现--1 接口设计
1 使用语言和库库:mingw编译的OpenCV2.4.9.0开发语言:C++IDE:Qt Creator版本控制:git2 主要接口2.1 功能激活函数的主要功能是输入一个矩阵,计算矩阵中的元素的激活值,同时,也包含有输入一个矩阵,计算矩阵中的元素关于激活函数的导数值,这是为了后续进行神经网络实现所进行的一部分。2.2 主要接口2.2.1 激活原创 2014-07-18 15:32:26 · 1201 阅读 · 0 评论 -
激活函数实现--4 Rectified linear函数实现
1.Rectified Linear函数的定义2.Rectified Linear函数的导数3.Rectified Linear函数的实现Rectified linear主要是通过类RectifiedLinear来实现的,该类继承自AbstrcactActivation类,主要实现Activ原创 2014-07-23 01:51:51 · 6606 阅读 · 0 评论 -
Python2.7 + PyQt + Eric4搭建Python GUI可视化开发环境
在使用Python进行GUI开发的时候,需要一些第三方的库,这里选择PyQt进行GUI开发,同时,为了能够可视化的进行GUI设计,采用了Eric4作为IDE,下面介绍下如何配置开发环境。1.Python安装 直接可以从官网下载,然后安装。我这里选择的是Python2.7的64位版本;2.PyQt4安装 从官网下载与Python版本原创 2014-06-11 23:10:03 · 5006 阅读 · 0 评论 -
OpenCV中不同深度的元素在C++中的保存类型
由于在OpenCV中,访问某个像素点时,目前我知道到的三种遍历方式,有两种是需要知道元素的保存类型的,但是,因此,通过矩阵的元素的深度判断矩阵的元素的保存的类型很重要。 首先,介绍下矩阵元素的深度: 可以看出,直接从矩阵元素深度的介绍并不能看出元素保存的类型,只能通过元素深度的取值范围来判断元素的在C++中的保存类型。 首先,看一下在C++中,不同原创 2014-07-06 22:48:49 · 1053 阅读 · 0 评论 -
算法复杂度
算法的复杂度包含两方面:时间复杂度和空间复杂度。一.算法的时间复杂度 算法的时间复杂度的测量是对于给定问题,该算法所执行的基本运算的次数,对于不同的问题,选择的基本运算的类型不同。算法的时间复杂度可以分为最坏情况下的时间复杂度和平均情况下的时间复杂度。二.算法的空间复杂度 对于一个算法来说,对于内存空间的占用包括两方面:存储程序和输入原创 2014-06-22 06:08:55 · 1047 阅读 · 0 评论 -
Python解析XML文件
最近在做实验的过程中,发现每次都改参数都要直接修改程序,很麻烦,同时,考虑到程序的重用性,想着如何解决在进行实验的过程中,能够在不修改程序的源代码的情况下,修改参数的值,目前看来有两种方法,一是使用GUI,将参数可视化,然后由用户进行修改,每次运行的时候就把这些参数读进来;二是使用类似于程序的配置文件之类的东西。 考虑到目前时间比较紧张,因此,采用XML文件保存实验的参数,然后用Pyth原创 2014-06-21 01:35:47 · 1836 阅读 · 0 评论 -
类型转换和获取XML文件中保存的数据
在上一个博文解析了XML文件之后,由于解析之后得到的数据都是Unicode类型的,在一些场合并不适用,因此,需要将获得的数据进行类型转换,主要是将Unicode转换为int, string和float类型,主要代码如下:原创 2014-06-21 02:05:20 · 1106 阅读 · 0 评论 -
DeepFace: Closing the Gap to Human-Level Performance in Face Verification(精读)
一.文献名字和作者 Deepface: Closing the gap to human-level performance in face verification, Yaniv Taigman, Ming Yang, Marc’Aurelio Ranzato,Lior Wolf, CVPR2014 二.阅读时间 2014年9月4日三.文原创 2014-09-04 16:03:48 · 4872 阅读 · 1 评论 -
C++获得系统当前时间和日期
最近想把实验程序运行过程中需要的一些实验信息保存到日志文件中,方便记录实验的结果和修改的参数,但是,每次文件的命名都是一个头痛的事情。因此,如何自动生成一个合适的名字一直是我想解决的问题,后面突然想起,可以使用程序运行的时间作为文件的名字,这样就知道是什么时候进行的实验了,同时,每次实验保存在不同的文件中,真是一个还可以的解决方案。 想要获得系统的时间,有两个问题要解决:原创 2014-08-21 16:22:00 · 2381 阅读 · 0 评论 -
Windows server 2012 下theano安装并配置GPU
在windows server 2012安装theano需要python环境以及一些必备的theano依赖的库,同时,要使用到GPU,需要VS和cuda。 安装过程有下面七步: 1.安装VS,我安装的是VS2012; 2.安装cuda6.0,因为cuda5.5以前并不支持Windows sever 2012; 3.安装 AnacondaCE。这个是根据the原创 2014-04-27 13:48:11 · 2892 阅读 · 0 评论 -
基于OpenCV2.4.9的Logging类
由于需要将平时做实验时程序的一些输出信息保存下来,以前都是截图之类的,这样虽然也能将输出信息保存下来,但是这样不方便后面整理实验数据,一个比较好的方法是直接将输出信息保存为文本的格式,这样既能保存数据,也方便以后整理数据。 要将输出信息保存下来,有两个问题要解决:1.文件保存的名字;2.如何将不同类型的数据输出到文件中。 对于第一个问题原创 2014-08-22 14:35:57 · 921 阅读 · 0 评论 -
神经网络结构参数
在使用神经网络的时候,都需要输入每一个网络层的输入和输出,以及每个网络层的激活函数,为了方便后续根据不同的需要,选择合适的输入输出神经元个数和每一层的激活函数,因此,考虑将神经网络的结构参数单独写成一个类的形式,这样也方便以后进行拓展。 根据神经网络的结构特点,每一个神经网络层只要知道输入神经元个数,输出神经元个数,以及激活函数即可,因此,神经网络结构参数上面的几个参数。原创 2014-09-11 09:13:16 · 1992 阅读 · 0 评论