自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CS231n课后作业小结

参考资料:https://www.jianshu.com/p/004c99623104

2020-06-13 17:33:23 363

原创 激活函数

关于激活函数为啥一定要是零中心对称的,在这篇文章https://blog.csdn.net/zhaojc1995/article/details/80572098看到了一个说法:关于原点对称的输入和中心对称的输出,网络会收敛地更好。暂且接受

2020-05-21 18:35:01 264

原创 Grid LSTM相关

挖个坑 Grid LSTM下面这篇参考很好http://blog.sina.com.cn/s/blog_5309cefc0102wbcv.html

2020-04-05 18:33:48 766

原创 Highway network——《Training Very Deep Networks》一些总结

最近在家里听斯坦福CS231n的课程,很系统的学习了一些深度学习的知识,很受启发。其中,我对深度学习中的梯度流的概念印象深刻。讲到RNN时,提到LSTM能够解决普通RNN的梯度消失和梯度爆炸的问题。LSTM包含两个隐状态,分别为单元状态和隐藏状态。其中,单元状态是梯度传播的主要路径。上一时刻和下一时刻单元状态的传播通过一个加法和一个逐元素的矩阵乘法操作。这两个操作降低了计算复杂度,同时也能避免梯度...

2020-03-22 14:06:42 379

原创 ladder network不完全汇总

《From Neural PCA to Deep Unsupervised Learning》和《Semi-Supervised Learning with Ladder Network》中的部分观点:1. 为了实现无监督学习和有监督学习的结合,无监督学习不能保存所有信息而是能够放弃与任务无关的信息。但是这与无监督学习的初衷有出入,无监督学习为了重建输入,需要保存所有的信息。比如图像处理中的物...

2020-03-01 17:54:00 1171

转载 c++二元运算符求值顺序

https://bbs.csdn.net/topics/370153775看到的关于表达式求值的回答~

2018-08-30 19:46:42 468

原创 机器学习之线性回归及代码

线性回归是对数据特征赋予一定的权重以实现对数据模型的拟合。线性回归包含一个假设函数(hypothesis function),一个损失函数(loss function)。其目标为最小化损失函数,常用方法是最小二乘法。本文主要用批梯度下降算法(batch gradient descent)、随机/增量梯度下降算法(stochastic/incremental gradient descent

2017-10-21 10:30:53 446

原创 机器学习算法之KNN识别mnist数据集

KNN算法又称K邻近算法(K Nearest Neighbor),其基本思想为:样本空间中,某样本的类别为距离其最近的k个邻居所属类别中最多的那个类别。MNIST数据集为一个带标注的手写数字识别的数据集,其官方下载地址为http://yann.lecun.com/exdb/mnist/。数据集包含60000个训练集和10000个测试集。该数据集中的文件以二进制方式保存,因此在读入时需要以二进制

2017-09-30 11:28:46 3293 4

原创 深度学习笔记之win7下TensorFlow的安装

最近要学习神经网络相关的内容,所以需要安装TensorFlow。不得不说,安装TensorFlow的感受就像是大一刚入学学习C语言时,安装vs时一样,问题一大堆,工具都装不好,还学啥呀。好在,就在昨晚,终于装好了。下面是步骤。1.安装Anaconda这是Anaconda的官网下载地址——https://www.continuum.io/downloads。注意:要选择4.2版本的A

2017-04-23 09:01:46 26661 1

原创 可用PSAPI获取系统进程信息

最近因为要做毕设的实验,所以需要获取程序的所占用的系统的内存。但是,自己拿到的源码是Linux系统下的,在VS上不能跑于是,就兴冲冲地装了Ubuntu。结果发现Linux下编程和Windows还是不一样的。然后,我老师说,你把代码改成Windows下的不就好了嘛,难道这很难吗?我当时是真的觉得难啊~就像我当时还说,我挺喜欢蒙特•卡洛方法的,简单粗暴(现在想想,自己还是太年轻,蒙特•卡洛方法

2017-01-15 09:51:41 674

原创 中科院计算所2017推免生机试

9月18号去计算所参加推免生的机试。。。9月19号去计算所参加推免生的面试。。。9月20号堕落在北京的青旅里,不能出门。。。首先是不得不承认,计算所的环境很好,真的很好。然后就是机试,6道题目,两个小时,没有网络。其实后来自己在看,觉得最起码有两个题目是简单到我这种人都可以做出来的,无奈自己太渣,机试就跪的哟。最后是面试,项目真的太少,以至于老师一直在问我我的社会实践。。。回来之后,一起住的去

2016-09-20 15:05:44 5878 3

转载 数据结构-不相交集ADT

若对于每一对元素(a,b),a、b属于S,aRb或者为true或者为false,则称在集合S上定义关系R。如果aRb是true,那么我们说a与b有关系。等价关系是满足下列三个性质的关系R:自反性:对于所有的a属于S,aRa;对称性:aRb当且仅当bRa;传递性:若aRb且bRc,则aRc; ’一个元素a属于S的等价类是S的一个子集,它包含所有与a有关的元素。所以,不

2016-08-21 16:16:39 900

转载 算法导论-最小生成树之kruskal算法和prim算法

1.Kruskal算法:集合A是一个森林,其结点为给定图的结点。每次加入集合A的安全边永远是权重最小的连接两个不同分量的边。、在最开始实现kruskal算法时,自己不知道如何实现集合A这个森林,也不知道怎么合并树。直到后来,自己去搜索了一下此算法的实现,才发现其实要用到之前自己一直觉得没啥用也不怎么理解的不相交集。下面是Kruskal算法的实现代码:KRUSKAL.htypedef

2016-08-21 15:43:19 423

转载 算法导论-图的搜索算法之深度优先搜索和广度优先搜索

图的搜索算法的目的是发现从源结点s能够到达的每个顶点和相应的距离。广度优先搜索:所有结点一开始涂上白色,第一次遇到一个结点就称该结点被发现,颜色变为黑或者灰。黑色代表所有与该结点邻接的结点都已经被发现,灰色代表的是已知和未知两个集合的边界。白->灰:结点刚被搜索到,灰->黑:结点的所有邻接结点都被搜索完。在扫描已发现结点u的邻接链表时,每当发现一个白色结点v,就将该结点v和边(u,v)同时加入

2016-08-19 14:29:10 463

转载 数据结构-左式堆

左式堆:同二叉堆一样具有结构性和堆序性。惟一的区别是:左式堆不是理想平衡的,而实际上是趋于不平衡的。零路径长(NPL(x)):从节点x到一个没有两个儿子节点的最短路径长。左式堆要求对于堆中的每一个节点x,左儿子的零路径长至少与右儿子的零路径长一样大。左式堆的结构声明:struct treeNode;typedef struct treeNode *priorityQueue;s

2016-08-14 15:32:48 417

转载 数据结构-二叉堆

二叉堆(优先队列)具有结构性和堆序性    结构性为:二叉堆是一棵完全被填满的二叉树,有可能的例外是在底层,底层上的元素从左到右填入。这样的树称为完全二叉树。二叉堆可以用数组表示,对于数组中任意位置i上的元素,其左儿子在位置2i上,右儿子在位置2i+1上,父亲则在i/2上(小于i/2的最小整数)。    堆序性为:使操作被快速执行的性质称为堆序性。在一个堆中,对于每个节点x,x的父节点中的

2016-08-14 15:26:43 398

转载 数据结构-散列

散列(hashing):是一种以常数平均时间执行插入、删除和查找的技术。散列表(hash table):是包含有关键字的具有固定大小的数组。表的大小记作table-size。每个关键字被映射到从0到table-size-1这个范围中的某个数,并且被放到适当的单元中。这个映射叫作散列函数(hash function)。散列函数:一个好的方法为保证表的大小为素数。一个好的散列函数:in

2016-08-14 15:12:34 333

转载 数据结构-AVL树

AVL树:带有平衡条件的二叉查找树,要求每个节点的左子树和右子树的高度最多差1。通常,AVL树通过旋转操作保持平衡条件。不平衡的可能情况:节点a的左儿子左子树进行插入节点a的右儿子右子树进行插入节点a的左儿子右子树进行插入节点a的右儿子左子树进行插入其中情况1、2都是通过单旋转就可以解决了,而情况3、4需要通过双旋转来解决。AVL树的声明:struct avlNode;

2016-08-14 14:38:54 229

转载 数据结构-二叉查找树

树:树是一个大部分操作的运行时间平均为O(log n)的一种数据结构。树的递归定义为:一棵树是一些节点的集合。这些集合可以是空集;若为非空,则一棵树由称作根的节点r以及0个或多个非空的(子)树T1、T2、T3、...、Tk组成。这些子树中每一棵的根都被来自根r的一天有向边所连接(可以发现一棵树是N个节点和N-1条边的集合)

2016-08-14 14:14:58 303

转载 MFC程序开发-C++知识补强(二)

4.继承类的继承是指派生类可以全部或者部分的继承基类的特征,同时加入所需要的新特征和功能。单继承格式为:class 类名:访问限定符 基类名其中,访问限定符一共有三种,介绍如下:public:对于基类中的public成员,在派生类中仍然是public,protected成员仍然是protectedprotected:对于基类中的public成员和protected成员,在派生类

2016-08-08 16:16:31 319

转载 MFC程序开发-C++知识补强(一)

1.构造函数、复制构造函数、析构函数先上例子好了:#include "stdafx.h"#includeusing namespace std;class CRectangle{public: CRectangle();//构造函数 ~CRectangle();//析构函数 CRectangle(int length,int width);//自定义的构造函数 CRec

2016-08-06 15:48:13 747

转载 MFC程序开发-窗口的诞生

从今天开始看《MFC程序开发参考大全》这本书啦,所以会写一下上面的好玩的代码~先是第一章,这次的代码就是体现了 在MFC之前,开发人员是怎样写Windows应用程序的。先上代码好了:#include"windows.h"#include/*窗口函数//系统通过窗口函数处理系统中的各种消息//窗口函数原型为://typedef LRESULT(CALLBACK* WNDFUN

2016-08-04 16:14:56 837

原创 ADO方式连接数据库

ADO方式连接数据库分为如下步骤:1.ADO对象的导入在使用ADO技术时需要导入一个ADO动态链接库msado15.dll。该动态库位于系统盘下的"Program Files\Common Files\System\ado\"目录下。在stafx.h头文件下添加如下代码将msado15.dll动态链接库导入到程序中。#import"C:\Program Files\Common F

2016-08-03 16:32:07 9887

原创 翻译程序、编译程序和解释程序的区别和联系

最近在复习编译原理的时候,就在第一章,发现了一个很有趣的知识点。翻译程序是指这样一个程序,它把一种语言所写的源程序翻译成与之等价的另一种语言的目标程序。编译程序是一种翻译程序,它把高级语言所写的源程序翻译成等价的机器语言或汇编语言的目标程序。解释程序也是一种翻译程序,它将源程序作为输入并执行它,边解释边执行。它与编译程序的主要区别在于在解释程序执行的过程中不产生目标程序,而是按照源语言

2016-08-01 14:17:49 17062

转载 函数模板和模板函数

1.函数模板的声明和模板函数的生成1.1函数模板的声明函数模板可以用来创建一个通用的函数,以支持多种不同的形参,避免重载函数的函数体重复设计。它的最大特点是把函数使用的数据类型作为参数。函数模板的声明形式为:template(参数表){    函数体}其中,template是定义模板函数的关键字;template后面的尖括号不能省略;typename(或clas

2016-07-05 17:47:16 239

原创 C++引用调用、内联函数、带默认形参值的函数

今天在看鸡啄米的C++系列教程的时候学到了三个有趣的东西:引用调用、内联函数和带默认形参值的函数。首先是引用调用:引用调用据百度百科说是C++特有的概念。C++函数调用有三种方式:值调用、引用调用和地址调用。引用调用时给变量取一个别名,在函数传参数时,和指针一样可以用来改变值。例如下例:void swap(int& m,int& n){ int t; t=m; m=n

2016-07-05 15:55:41 1787

原创 C语言结构体对齐存储问题以及给结构体中的数组的赋值问题

最近在看鸡啄米关于c++的教程,偶然发现了结构体中两个好玩的东西。首先是结构体成员如果是字符数组,该怎么赋值?以一个结构体为例:    struct si{        char x[5];        char y;        float z;        double m;    }su;我用的su.x="abcd"和直接在定义是初始化,均报错

2016-07-05 10:46:05 3059

原创 小白进阶之贪心算法VS动态规划

贪心算法和动态规划相同点:要求一个问题具有最优子结构的性质。不同点:动态规划每一步都要进行一次选择,但是选择依赖于子问题的解;               贪心算法进行选择时,直接作出在当前问题中看来最优的选择,而不考虑子问题的解。例如0-1背包问题就可以用动态规划解决而不能用贪心算法,但是分数背包问题就是用贪心算法解决而不是动态规划。关于0-1背包问题,有一个很好的博文可以分

2016-06-29 09:22:11 365

原创 小白进阶之贪心算法-赫夫曼编码

赫夫曼编码是根据字符的使用频率对字符进行编码的一种编码方法,其用于压缩数据的效果非常好。一般用二叉树表示赫夫曼编码,使用频率越低的字符,其深度越大。其中q表示一个按频率从小到大排序的优先队列。在赫夫曼编码的表示中,通常用前缀码的表达方法。前缀码即没有任何码字是其他码字的前缀,其作用是简化解码过程。用二叉树表示前缀码时,0表示转向左孩子,1表示转向右孩子。文件的最优编码方案总是对应一棵满二叉树。

2016-06-28 16:42:55 555

原创 小白进阶之动态规划-矩阵链乘法

问题描述:给定一个n个矩阵的序列(A1,A2,A3,...,An),希望计算它们的乘积的花销最小。用序列p= (p0,p1,p2,...,pn)表示矩阵序列的规模,m[i,j]表示计算矩阵Ai,j所需的标量乘法次数的最小值,s[i,j]记录最优值 m[i,j]对应的分割点k。下面是源码;matrixChain.h#include#include#includeint matr

2016-06-28 11:07:56 308

原创 小白进阶之动态规划-最优二叉搜索树

问题描述:给定关键词序列k=(k1,k2,...,kn)及其相应的概率pi,以及 n+1个伪关键字d0,d1,...,dn不在k值中。其中d0表示小于k1的值,dn表示大于kn的值,对于i=1,2,...,n-1,di表示在 ki和ki+1之间的值,用qi表示其搜索概率。用w(i,j)表示关键字ki,ki+1,...,kj的概率之和,e[i,j]表示包含关键字 ki,ki+1,...,kj

2016-06-28 11:03:10 511

原创 小白进阶之动态规划-最长公共子序列

问题描述:给定两个序列x=(x1,x2,...,xm)和y=(y1,y2,...,yn),z=(z1,z2,...,zx)为x 和y的任意最长公共子序列(LCS),c[i,j]表示xi和yj的LCS的长度,b[i,j]指向表项对应计算C[i,j]时所选的子问题的最优解。子问题分解如下:(1)若xm=yn,则zk=xm=yn且zk-1是xm-1和yn-1的一个LCS;(2)若xm!=

2016-06-28 10:58:45 291

原创 小白进阶之贪心算法-活动选择问题

问题描述:给定活动集合,包括活动i的开始时间si和结束时间fi,求最大兼容活动子集。i1234567891011si130535688212fi4567991011121416问题的解法有

2016-06-28 10:56:18 299

原创 小白进阶之动态规划-钢条切割

关于动态规划算法,首先是:什么样子的问题适合用动态规划算法来解呢?适合用动态规划算法解的问题应具有两个性质:最优子结构性质和具有重复子问题最优子结构性质是指:若一个问题的最优解包含其子问题的最优解,则此问题具有最优子结构性质。具有重复子问题性质是指:问题的递归算法会反复求解相同的子问题。然后是:动态规划算法的设计有四个步骤:1.刻画一个最优解的结构特征-寻找最优子结

2016-06-27 18:47:19 609

原创 小白进阶之期望为线性时间的选择算法

期望为线性时间的选择算法,最坏时间复杂度为:θ(n²),期望时间复杂度为:θ(n)。选择算法用到了以前快速排序时用到的随机划分。目的是找出数组中第i个元素。算法的思想为:先随机划分,再看i的位置,若是i刚刚好等于随机划分的位置,则返回此位置的数组元素值,否则根据i的位置递归调用选择函数,寻找第i 个元素。与快速排序不同的是,此算法只要在一边递归调用函数就可以了,而快速排序需要两边都进行调用

2016-06-22 09:40:49 1471

原创 小白进阶之线性排序算法之计数排序、基数排序和桶排序

线性排序算法主要有三个:计数排序、基数排序和桶排序。计数排序:时间复杂度为O(n)。算法基本思路是:假设n个元素中的每个都是在0到k区间内的一个整数(其中k为某整数)。对于每个输入元素x,确定小于x的元素个数,利用这一信息,就可以直接把x放到它在输出数组中的位置了。基数排序:时间复杂度为θ(d(n+k))(其中d表示d位数,n表示共有n个d位数,k表示 每位数都在0到k-1区间内)。算

2016-06-22 07:47:40 395

原创 小白进阶之矩阵乘法

纠结犹豫了几天,终于还是下定决心写一下矩阵乘法。矩阵乘法有三种实现方法:暴力求解法、分治法、Strassen方法。暴力求解法就是用for循环,一个一个元素的算;分治法是把矩阵分为四块儿,再递归算;Strassen方法则是根据公式来计算。其实分治法和Strassen方法调用的函数是差不多的,但是Strassen方法的时间复杂度要小很多。下面就是源码了:multiply.h

2016-06-20 11:32:14 494

原创 小白进阶之快速排序

快速排序算法也用到了分治的思想。快速排序算法的平均性能很好,通常是实际排序应用中的最好的选择。分解:数组a[p..r]被划分成两个子数组(可能为空)a[p..q-1]和a[q+1..r],使得a[p..q-1]中的每一个元素都小于等于a[q],而a[q+1..r]中的每个元素也大于等于a[q]。解决:通过递归调用快速排序,对子数组a[p..q-1]和a[q+1..r]进行排序。合并:子

2016-06-19 14:29:17 292

原创 小白进阶之优先队列排序

优先队列排序是堆的常见应用。优先队列和堆一样,有两种形式:最大优先队列和最小优先队列。此处是基于最大堆实现最大优先队列。最大优先队列的应用有很多,其中一个就是在共享计算机系统的作业调度。下面是代码:"priorityQueue.h"#include#include#includeint heapMaximun(int *a);//返回队列中的最大值int heapExt

2016-06-19 13:15:40 308

原创 小白进阶之堆排序

堆排序与归并排序一样,但不同于插入排序的是堆排序的时间复杂度为O(nlgn)。而与插入排序相同,但不同于归并排序的是堆排序同样具有空间原址性:任何时候都只需要常数个额外的元素空间存储临时数据。堆分为最大堆和最小堆。最大堆性质是指除了跟以外的所有结点i都满足:a[parent(i)]>=a[i];最小堆性质是指除了跟以外的所有结点都满足:a[parent(i)]此处堆排序使用的是最大堆。

2016-06-19 11:04:51 283

Semi-Supervised Learning with Ladder Network

阶梯网络论文3:《Semi-Supervised Learning with Ladder Network》

2020-03-01

Denoising autoencoder with modulated lateral connections

阶梯网络论文2:《Denoising autoencoder with modulated lateral connections learns invariant representation of natural images》

2020-03-01

From neural PCA to deep unsupervised learning..pdf

阶梯网络论文1:《From neural PCA to deep unsupervised learning.》

2020-03-01

OmegaOptions.bak

switchyomega导入文件 用于设置代理。

2020-02-25

ADO连接数据库-基于mfc的简单实现

基于mfc的ado连接数据库方式的简单实现,其中包含一个列表视图,用于显示数据库中的数据和对数据进行操作

2016-08-06

ADO连接数据库-MFC简单实现

ADO连接数据库-MFC简单实现

2016-08-03

空空如也

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

TA关注的人

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