UFLDL
hello_pig1995
日有所进
展开
-
UFLDL multi_classifier_accuracy.m
虽说这个函数命名是binary_classifier_accuracy,但是实际上并不会和multi_classifier有什么影响。UFLDL和Machine Learning课程最大的不一样,我感觉就是表示的不一样,UFLDL是每一列一个样本,而Machine Learning是每一行一个样本。首先就是theta’*x也就是每一列就是一个概率分布,表示是第几类。由于matlab是列为主,所以通过原创 2016-08-08 13:45:20 · 337 阅读 · 0 评论 -
UFLDL selfTaughtLearning[待更]
There are two common unsupervised feature learning settings, depending on what type of unlabeled data you have. The more general and powerful setting is the self-taught learning setting, which does not原创 2016-08-12 14:06:17 · 384 阅读 · 0 评论 -
UFLDL sparse coding ICA RICA[待更]
Reference: 目前先不打算看sparse coding,所以留待以后再看原创 2016-08-11 23:40:16 · 525 阅读 · 0 评论 -
UFLDL PCA
Reference: [1]http://blog.csdn.net/richard2357/article/details/18145631 [2]http://ufldl.stanford.edu/wiki/index.php/Exercise:PCA_and_Whitening [3]http://ufldl.stanford.edu/tutorial/unsupervised/PCAW原创 2016-08-11 19:45:32 · 1310 阅读 · 0 评论 -
UFLDL Sparse Autoencoder
Reference: [1]http://www.stanford.edu/class/cs294a/cs294a_2011-assignment.pdf [2]http://nlp.stanford.edu/~socherr/sparseAutoencoder_2011new.pdf [3]http://www.cnblogs.com/tornadomeet/archive/2013/03/原创 2016-08-11 15:55:18 · 568 阅读 · 0 评论 -
UFLDL minFuncSGD.m
本函数首先需要进行的操作相当简单,其是就是对于velocity的更新迭代,原来的theta = theta - grad变成了theta = thedeta - velocity而velocity则是累计更新,其中参数mom则是对于velocity的本次相对于上一次的残留的大小。注意另一点就是velocity = mom * velocity + alpha * grad也就是说,我们假设alpha原创 2016-08-09 22:34:06 · 744 阅读 · 0 评论 -
UFLDL cnnCost.m
cnnCost这个函数有一个bug,最开始怎么也调整不对。。。是在conv的bp的时候需要进行一个sigmoid的求导的操作,但是一直就是conv2函数之后就没了,所以。。。很尴尬。。。时刻注意在bp的时候遇到非线性要进行求导一集后续操作。代码相当简洁,没有正则化项。function [cost, grad, preds] = cnnCost(theta,images,labels,numClass原创 2016-08-09 17:39:39 · 556 阅读 · 0 评论 -
UFLDL cnnInitParams.m cnnParamsToStack.m computeNumericalGradient.m
cnnInitParams : Xavier方式的初始化。 cnnParamsToStack : 列向量的参数进行划分 computeNumericalGradient : 数值计算梯度function theta = cnnInitParams(imageDim,filterDim,numFilters,... poolDim,n原创 2016-08-09 17:42:30 · 986 阅读 · 0 评论 -
UFLDL run_train.m
原来的函数调用minFunc进行全局最优解的求解,后来稍作修改,使得其能够通过手动的随机梯度下降,比较简单,有效果。。。按照原来的训练方式进行训练:10000数据 minFunc 92.55%60000数据 minFunc 96.41%Step Size below progToltest accuracy: 0.964100train accuracy: 1.000000% runs tr原创 2016-08-08 21:55:48 · 558 阅读 · 0 评论 -
UFLDL cnnExercise.m
主要就是检查conv 和 pool 两个函数的实现情况。我认为最有价值的是isequal函数,知道了能够直接比较数组。%% Convolution and Pooling Exercise% Instructions% ------------% % This file contains code that helps you get started on the% convolut原创 2016-08-09 00:23:54 · 775 阅读 · 0 评论 -
UFLDL cnnPool.m
虽然pool也能通过比较naive的方法来实现,但是效率相对来说比较低,因此我通过conv2来实现,然后间隔取样,效率较高。function pooledFeatures = cnnPool(poolDim, convolvedFeatures)%cnnPool Pools the given convolved features%% Parameters:% poolDim - dime原创 2016-08-09 00:05:19 · 549 阅读 · 0 评论 -
UFLDL cnnConvolve.m
主要功能为对于图片进行卷积运算,这个并不难。其中卖了一个小关子,就是为什么要filter = rot90(squeeze(filter),2);% 180 degree。这个会discuss later。function convolvedFeatures = cnnConvolve(filterDim, numFilters, images, W, b)%cnnConvolve Returns原创 2016-08-08 22:55:35 · 760 阅读 · 0 评论 -
UFLDL supervised_dnn_cost.m
本函数在实现的时候犯了几个非常傻逼的错误,最开始导致不能收敛,甚至有的时候还会增长。第一个就是在实现forward的时候,最开始的for循环,我将最后一个softmax层的结果也进行了sigmoid然后再求概率分布等,这个就非常蠢了。。。。所以最后将其单独拿出来。第二个是bp的时候,最后一层的delta没有加负号。。。然后就是在sparse的时候,要用一个list而不是一个数,比如说: spa原创 2016-08-08 21:52:50 · 805 阅读 · 0 评论 -
UFLDL params2stack.m
主要有两个参数,所有参数的列向量params和网络的参数ei。 params保存着所有的参数值,而ei保存着每一层的大小,也就是参数reshape的矩阵维度。 最后返回的stack保存着网络层间的参数矩阵。function stack = params2stack(params, ei)% Converts a flattened parameter vector into a nice "st原创 2016-08-08 15:45:12 · 843 阅读 · 0 评论 -
UFLDL stack2params.m
传入的是stack,stack中存储着不同层的W和b。params是向量化之后的所有的参数,存储为一列。function [params] = stack2params(stack)% Converts a "stack" structure into a flattened parameter vector and also% stores the network configuration.原创 2016-08-08 15:39:44 · 517 阅读 · 0 评论 -
UFLDL initialize_weights.m
终于知道Xavier初始化是什么东西了。。。 Glorot X, Bengio Y. Understanding the difficulty of training deep feedforward neural networks[C]//Aistats. 2010, 9: 249-256.其实就是按照均值为0,随机方差为 6√(prevsize+cursize)√ \sqrt6 \over \原创 2016-08-08 15:24:29 · 796 阅读 · 0 评论 -
UFLDL softmax_regression.m
在计算loss损失的时候,只需要对于需要预测的类别进行loss的计算,而bp的时候则需要考虑到错误的类别。function [f,g] = softmax_regression(theta, X,y) % % Arguments: % theta - A vector containing the parameter values to optimize. % In原创 2016-08-08 14:55:42 · 490 阅读 · 0 评论 -
UFLDL ex1c_softmax.m
Reference: [1]http://blog.csdn.net/songrotek/article/details/41310861 [2]http://ufldl.stanford.edu/tutorial/supervised/SoftmaxRegression/主要工作第一个就是读取数据集合, 第二个就是通过minFunc进行训练,找到全局最优, 之后就是在训练和测试集合上分别计原创 2016-08-08 13:49:24 · 886 阅读 · 0 评论 -
UFLDL stl-10
Reference: [1]http://cs.stanford.edu/~acoates/stl10/ [2]https://github.com/mttk/STL10/blob/master/stl10_input.pystl10是一个受到cifar-10启发的数据库。其中包含包含主要有三部分数据,unlabeled data , train data,test data 。主要步骤是首先用原创 2016-08-12 19:47:00 · 1025 阅读 · 0 评论