博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【deep learning学习笔记】注释yusugomori的DA代码 --- dA.h
阅读量:6535 次
发布时间:2019-06-24

本文共 2054 字,大约阅读时间需要 6 分钟。

DA就是“Denoising Autoencoders”的缩写。继续给yusugomori做注释,边注释边学习。看了一些DA的材料,基本上都在前面“转载”了。学习中间总有个疑问:DA和RBM到底啥区别?(别笑,我不是“学院派”的看Deep Learning理论,如果“顺次”看下来,可能不会有这个问题),现在了解的差不多了,详情见:。之后,又有个疑问,DA具体的权重更新公式是怎么推导出来的?我知道是BP算法,不过具体公示的推导、偏导数的求解,没有看到哪个材料有具体的公式,所以姑且认为yusugomori的代码写的是正确的。

注释后的头文件:

 

// The Class of denoising auto-encoderclass dA {public:	int N;			// the number of training samples	int n_visible;	// the number of visible nodes	int n_hidden;	// the number of hidden nodes	double **W;		// the weight connecting visible node and hidden node	double *hbias;	// the bias of hidden nodes	double *vbias;	// the bias of visible nodespublic:	// initialize the parameters	dA ( int,		// N		 int,		// n_visible		 int ,		// n_hidden		 double**,	// W		 double*,	// hbias		 double*	// vbias		 );	~dA();	// make the input noised	void get_corrupted_input (				int*,		// the original input 0-1 vector			-- input				int*,		// the resulted 0-1 vector gotten noised	-- output				double		// the p probability of noise, binomial test -- input				);	// encode process: calculate the probability output from hidden node	// p(hi|v) = sigmod ( sum_j(vj * wij) + bi), it's same with RBM	// but different from RBM, it dose not generate 0-1 state from Bernoulli distribution	void get_hidden_values (				int*,		// the input from visible nodes				double*		// the output of hidden nodes				);	// decode process: calculate the probability output from visiable node	// p(vi|h) = sigmod ( sum_j(hj * wij) + ci), it's same with RBM	// but different from RBM, it dose not generate 0-1 state from Bernoulli distribution 	void get_reconstructed_input (				double*,	// the input from hidden nodes				double*		// the output reconstructed of visible nodes				);	// train the model by a single sample	void train (				int*,		// the input sample from visiable node				double,		// the learning rate				double		// corruption_level is the probability of noise				);	// reconstruct the input sample	void reconstruct (				int*,		// the input sample		-- input				double*		// the reconstructed value -- output				);};

 

 

你可能感兴趣的文章
/boot/grub/grub.conf 内容诠释
查看>>
laravel基础课程---1、laravel安装及基础介绍(laravel如何安装)
查看>>
php实现表示数值的字符串(is_numeric($s))
查看>>
Python Module_os_操作系统
查看>>
用 Flask 来写个轻博客 (19) — 以 Bcrypt 密文存储账户信息与实现用户登陆表单
查看>>
用 Flask 来写个轻博客 (19) — 以 Bcrypt 密文存储账户信息与实现用户登陆表单
查看>>
tomcat的编码方式
查看>>
scala数据库工具类
查看>>
解决 Jsp_Servlet 编码乱码问题
查看>>
PHP7扩展开发之Hello World
查看>>
Linux基础
查看>>
第三章 请求与响应
查看>>
垃圾收集器与内存分配策略
查看>>
看视频学Bootstrap—在微软虚拟学院学习Bootstrap
查看>>
【多重背包】CDOJ1691 这是一道比CCCC简单题经典的中档题
查看>>
【贪心】Codeforces Round #423 (Div. 1, rated, based on VK Cup Finals) A. String Reconstruction
查看>>
【强联通分量缩点】【Tarjan】bzoj1051 [HAOI2006]受欢迎的牛
查看>>
Java class反编译的方法总结
查看>>
AVCodec 结构体
查看>>
三、JVM垃圾回收1(如何寻找垃圾?)
查看>>