Unsupervised Feature Learning and Deep Learning(UFLDL) Exercise 代码实现

无监督特征学习——Unsupervised feature learning and deep learning 无监督学习近年来很热,先后应用于computer vision, audio classification和 NLP等问题,通过机器进行无监督学习feature得到的结果,其accuracy大多明显优于其他方法进行training。本文将主要针对Andrew的unsupervised learning,结合他的视频:unsupervised feature learning by Andrew N 阅读详情

最近开始了解深度学习的东西,看到国内研究者翻译的斯坦福大学的深度学习的历程,觉得很不错,就按照学习例程学习,一步一步完成后面的练习。这个练习安排的很合理,得按顺序完成,跳跃着做可能会遇到一定的麻烦。我在完成中也遇到不少的麻烦,不过还是慢慢克服了,越往后程序对计算机的配置要求越高,需要的内存也越大。下面是我完成这些例程中一些关键性的代码,觉得有用的可以参考一下,建议大家先自己动手写,如果实在是遇到困难了,可以参考一下我写的代码,由于本人编程能力也很一般,代码优化做得也很差,只供参考而已。


Exercise1: Sparase AutoEncoder

这个练习比较关键,基本上后面许多练习都依赖于这个练习的代码,所以首先得完成好这个练习。这个练习需要补充3个地方的代码。我这里只列出其中最关键的一个地方的代码,也就是sparseAutoencoderCost.m这个文件。
函数的目的是首先代价的计算以及梯度的计算,具体的实现如下:
A1 = data;
Y = data;
z2 = W1 * data + repmat(b1,1,m);
A2 = sigmoid(z2);
z3 = W2 * A2 + repmat(b2,1,m);
A3 = sigmoid(z3);

rho_hat = mean(A2,2); % 隐层每个神经元的平均激活度 hiddenSize*1

%backpropagation
for i = 1:m             
    
    a1 = A1(:,i);
    
    a2 = A2(:,i);
    
    a3 = A3(:,i);
    
    y = Y(:,i);                 % 原始输入向量
    
    cost = cost + 1/2 * norm(y - a3, 2)^2;   % 计算代价
    
    delta_3 = -(y - a3) .* (a3 .* (1 - a3));
    
    delta_2 = (W2'* delta_3 + beta *(-sparsityParam ./rho_hat + (1 - sparsityParam) ./(1 - rho_hat))) .* (a2 .* (1 - a2));
    
    W1grad = W1grad + delta_2 * a1';
    b1grad = b1grad + delta_2;
    W2grad = W2grad + delta_3 * a2';
    b2grad = b2grad + delta_3;
end
% 计算梯度
W1grad = 1/m * W1grad + lambda * W1;
W2grad = 1/m * W2grad + lambda * W2;
b1grad = 1/m * b1grad;
b2grad = 1/m * b2grad;


%计算KL
KL = 0;
for i = 1:hiddenSize
    KL = KL + sparsityParam * log(sparsityParam/rho_hat(i)) + (1 - sparsityParam) * log((1 - sparsityParam)/(1 - rho_hat(i)));
end

%计算代价
cost = 1/m * cost + lambda/2 * (sum(sum(W1.^2)) + sum(sum(W2.^2))) 
常用分类器的效果对比 如果把机器学习归为两大类,那么主要的工作可以分为:分类和聚类。而分类任务基本上占整个机器学习或者是数据挖掘领域的70%,可见我们遇到的很多问题,都可以用分类的算法进行解决。机器学习发展到现在,许多被证实有效的分类算法被提出,例如我们经常会用到的K-近邻分类器、朴素贝叶斯分类器、支持向量机(SVM)、决策树算法等。大家平时在用的时候可能并不太清楚每种分类算法适合哪种类型的数据,因为对于不同的数据集, 阅读详情

相关推荐

分类器中的S型函数

对于了解机器学习相关知识的朋友,对一个函数肯定不陌生,没错,就是我今天要说的sigmoid(S型)函数,这个函数的图像如下:                                                                      它的函数表达式为: f(x)=11+exp(−x) f(x)=\frac{1}{1+exp(-x)}     这个函数有很好的特性,

FireMicrocosm的专栏 6069

利用朴素贝叶斯模型进行文档分类

朴素贝叶斯模型进行分类的思路很简单,就是待分类的对象属于哪一类的概率大,就认为它属于相应的类别。朴素贝叶斯分类模型的公式化描述如下: p(ci|x,y)=p(x,y|ci)p(ci)p(x) p(c_i|x,y) = \dfrac{p(x,y|c_i)p(c_i)}{p(x)} 根据这一准则,可以定义贝叶斯分类准则为:        如果 p(c1|x,y)>p(c2|x,y)p(c_1|x,

FireMicrocosm的专栏 1475

fibplus-8.0.0.zip

FIBPlus 是一套面向 Delphi / C++Builder 的 Firebird、InterBase 数据库访问组件,特点是直接走原生客户端 API,不经 BDE/ODBC,速度快且可控性强。8.0.0 版本主要适配 Delphi 2009 及以后的版本(Delphi 6–2007 需用 7.9.x),核心组件包括 TpFIBDatabase、TpFIBTransaction、TpFIBDataSet 等,支持精细事务管理、本地缓存、BLOB 处理和备份恢复等数据库服务。该库原为 Devrace 的商业组件,现由社区在 GitHub 的 madorin/fibplus 项目开源维护,建议从官方仓库获取源码而非第三方网盘压缩包。安装时解压后用对应版本的工程组(10.4+ 统一为 `FIB.groupproj`)Build 全部包,再 Install `dclFIB` 并在 Library 路径加入 Source 目录即可。新项目中若需官方技术支持,也可考虑 FireDAC、IBDAC 等更现代的替代方案。

手把手教你为RK3588开发板适配RTL8211F网卡:设备树配置与PHY驱动匹配全流程

本文详细介绍了在RK3588开发板上适配RTL8211F千兆以太网PHY芯片的全流程,包括硬件原理图确认、设备树配置与PHY驱动匹配。通过实战案例和调试技巧,帮助开发者解决常见问题并优化网络性能,适用于嵌入式Linux开发中的Ethernet网络功能实现。

weixin_29184075的博客 526

Nifi SNI 问题解决方案

Nifi 在配置 SSL 时,如果没有正确设置主机名(SNI),就会导致。为了解决这个问题,我们需要重新配置 Nifi 的 SSL 证书,并确保所有相关配置项(如服务器地址、证书路径和密码等)正确无误。以下是一个详细的解决步骤,以帮助你正确配置 Nifi 并解决 SNI 错误。文件中的配置项(如服务器地址、端口和证书路径),以及正确设置用户凭证。通过这些配置,你可以确保 Nifi 在支持 HTTPS 的同时,正确处理 SSL/TLS 的 SNI 问题。文件,配置服务器地址、端口以及证书路径和密码。

m0_58786911的博客 2295

3个国产AI大模型实战:如何用DeepSeek+豆包+千问批量生成高质量测试用例(附完整代码)

本文详细介绍了如何利用DeepSeek、豆包和千问三大国产AI大模型批量生成高质量测试用例的实战方法。通过Python环境配置、多模型SDK安装和统一接口封装,实现高效测试用例生成,并结合结构化提示词设计和多模型结果对比分析,显著提升测试效率和覆盖率。

weixin_29197699的博客 708

告别“盲开”:手把手教你用MCU内置比较器搞定BLDC无感方波启动(附代码片段)

本文详细介绍了如何利用MCU内置比较器实现BLDC无感方波启动,解决传统无传感器控制中的'盲开'问题。通过虚拟中性点电路设计和三段式启动流程,结合反电动势检测和过零检测技术,提供了一套经济高效的解决方案,并附有可直接移植的代码片段,助力工程师快速实现可靠的无感控制。

weixin_33694172的博客 502

模拟CMOS集成电路设计入门学习(1)

模拟CMOS集成电路设计入门学习(1):二级效应

qq_61052827的博客 3084

PWM调节DCDC参数计算原理

SOC芯片的核电压、GPU电压、NPU电压、GPU电压等,都会根据性能和实际应用场景来进行电压和频率的调整。 即动态电压频率调整DVFS(Dynamic Voltage and Frequency scaling),优化性能和功耗。

电子绿洲的博客 3159

Halcon 3D点云处理实战:从PLY文件读取到曲面匹配的完整流程(附避坑指南)

本文详细介绍了Halcon在3D点云处理中的完整流程,从PLY文件读取到曲面匹配,特别强调了3D算子的应用技巧和避坑指南。通过实战案例和参数优化建议,帮助开发者高效处理工业视觉检测中的复杂点云数据,提升匹配精度和性能。

weixin_42535720的博客 278

基于A*算法的二维栅格地图路径规划与避障MATLAB仿真

本文将介绍如何使用MATLAB编写基于A*算法的二维栅格地图路径规划与避障的仿真程序。我们可以使用二维数组表示地图,其中每个元素表示一个栅格的状态,例如1表示障碍物,0表示可行走区域。接下来,我们需要定义A*算法的节点类。G值表示从起始节点到当前节点的代价,H值是启发式函数估计的从当前节点到目标节点的代价。算法,我们可以有效地找到起始点到目标点的最短路径,并在仿真中进行可视化展示。算法的基本思路是从起始节点开始,按照一定的启发式函数选择下一个节点,直到找到目标节点或者遍历完所有可行走区域。

ByteWhizX的博客 1273

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

上一篇: 利用朴素贝叶斯模型进行文档分类
下一篇: 常用分类器的效果对比
FireMicrocosm
博客等级 码龄12年 261粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值