深度学习在这些年是非常热门的话题,特别是在计算机视觉应用方面,也许你会在新闻上有所耳闻并感到好奇。那么现在的问题是,该如何入手?今天带来一篇人工神经网络的快速入门教程。

MNIST 数据集

我们当中有许多人想在一个具体的例子中开始入手。那我就写一个手把手快速教程,我们用一个常用的 MINIST 手写数字数据集作为例子以使教程比较直观的、易理解。Kaggle 刚好也在数字识别教程中使用这个数据集。你需要从 “Get the Data” 页面中下载这些数据集:

train.csv – 训练数据

test.csv – 测试数据

当你已经将上述文件下载到当前文件夹时,将训练数据和测试数据都加载进 MATLAB,测试数据用于生成你的提交。

tr = csvread('train.csv', 1, 0); % 读文件 train.csv

sub = csvread('test.csv', 1, 0); % 读文件 test.csv

第一列是数据集中每个样本字符的正确标签,每行一个样本。剩余的列中,每行表示一个28×28的手写字符的图像,所有像素都放在一行中,而不是原本的矩阵格式。如果要使字符可视化,我们需要将这些行重新组织成28×28的矩阵。 reshape 操作是按列进行的,所以除非你需要对数据进行转置,否则可以用 reshape 函数实现这字符的可视化。

figure

% 绘制图像

colormap(gray)

% 设置为灰度图

for i = 1:25

% 查看前25个样本

subplot(5,5,i)

% 在6 x 6的格子中绘制

digit = reshape(tr(i, 2:end), [28,28])'; % 行数据 = 28 x 28 的图像

imagesc(digit)

% 显示图像

title(num2str(tr(i, 1)))

% 显示标签

end

准备数据

你可以使用神经网络工具箱中的模式识别应用nprtool 。这个应用需要两个数据集:

输入 – 一个数值矩阵,列表示样本,行表示特征。该数据集是手写字符的扫描图像;

目标 – 一个0和1的数值矩阵,映射到图像代表的特定标签。该数据集中的值也被称为虚拟变量。神经网络工具箱中希望标签被保存成列而不是行。

标签的取值范围是0到9,但由于MTLAB中的下表是从1开始的,所以我们可以用“10”表示“0”。

1 --> [1; 0; 0; 0; 0; 0; 0; 0; 0; 0]

2 --> [0; 1; 0; 0; 0; 0; 0; 0; 0; 0]

3 --> [0; 0; 1; 0; 0; 0; 0; 0; 0; 0]

:

0 --> [0; 0; 0; 0; 0; 0; 0; 0; 0; 1]

数据集中的样本是按列保存而不是按行保存的,所以你需要对数据进行转置。然后,你需要将数据集分割,保留1/3的数据用作模型评估,仅用2/3的数据来训练我们的人工神经网络模型。

n = size(tr, 1);

% 数据集中的样本数量

targets = tr(:,1);

% 第一列是 |标签|

targets(targets == 0) = 10;

% 用'10' 表示'0'

targetsd = dummyvar(targets);

% 将标签转化为虚拟变量

inputs = tr(:,2:end);

% 剩余的列为预测量

inputs = inputs';

% 转置输入矩阵

targets = targets';

% 转置目标矩阵

targetsd = targetsd';

% 转置虚拟变量

rng(1);

% 消除随机数列的再现性

c = cvpartition(n,'Holdout',n/3); % 保留1/3的数据集

Xtrain = inputs(:, training(c)); % 输入集的2/3用于训练

Ytrain = targetsd(:, training(c)); % 目标集的2/3用于训练

Xtest = inputs(:, test(c));

% 输入集的1/3用于测试

Ytest = targets(test(c));

% 目标集的1/3用于测试

Ytestd = targetsd(:, test(c));

% 虚拟变量的1/3用于测试

使用神经网络工具箱中的图形界面应用(GUI APP)

你可以通过键入命令 nnstart 来打开神经网络的启动图形界面。

进入启动界面后,可以通过单击模式识别工具来打开神经网络模式识别工具。你也可以通过命令 nprtool 来直接打开它。

单击欢迎页面上的“Next”(下一步),进入“Select Data”(数据选择)界面。

选择Xtrain作为输入,Ytrain为训练目标。

人工神经网络matlab啊6,MATLAB人工神经网络教程相关推荐

  1. 【预测模型】基于人工鱼群算法优化BP神经网络实现数据预测matlab源码

    1 算法介绍 1.1 BP神经网络 1. 反向传播算法应用领域 反向传播算法应用较为广泛,从字面意思理解,与前向传播相互对应.在简单的神经网络中,反向传播算法,可以理解为最优化损失函数过程,求解每个参 ...

  2. 神经网络建模的基本思想,人工神经网络建模步骤

    利用人工神经网络建立模型的步骤 人工神经网络有很多种,我只会最常用的BP神经网络.不同的网络有不同的结构和不同的学习算法.简单点说,人工神经网络就是一个函数.只是这个函数有别于一般的函数.它比普通的函 ...

  3. 人工神经网络评价法案例_人工神经网络应用实例

    1 / 5 人工神经网络在蕨类植物生长中的应用 摘要 :人工神经网络 (ARTIFICIAL NEURAL NETWORK ,简称 ANN) 是目前国际上一门发展迅速的 前沿交叉学科. 为了模拟大脑的 ...

  4. bp神经网络mallat小波matlab,小波神经网络原理及其应用汇总.ppt

    小波神经网络原理及其应用汇总,小波神经网络原理,小波变换原理与应用,神经网络的原理及应用,小波神经网络matlab,小波神经网络预测代码,小波神经网络模型,小波神经网络预测程序,小波神经网络预测,小波 ...

  5. 神经网络建模的基本思想,人工神经网络建模过程

    神经网络建模问题 谷歌人工智能写作项目:神经网络伪原创 神经网络优缺点, 优点:(1)具有自学习功能写作猫.例如实现图像识别时,只在先把许多不同的图像样板和对应的应识别的结果输入人工神经网络,网络就会 ...

  6. 人工神经网络算法实例代码,人工神经网络算法步骤

    神经网络算法实例说明有哪些? 在网络模型与算法研究的基础上,利用人工神经网络组成实际的应用系统,例如,完成某种信号处理或模式识别的功能.构作专家系统.制成机器人.复杂系统控制等等. 纵观当代新兴科学技 ...

  7. matlab做神经网络的步骤,用matlab实现神经网络

    如何利用matlab进行神经网络预测 matlab带有神经网络工具箱,可直接调用,建议找本书看看,或者MATLAB论坛找例子. 核心调用语句如下:%数据输入%选连样本输入输出数据归一化[inputn, ...

  8. 神经网络算法的具体流程,人工神经网络算法步骤

    神经网络 算法 思路?能否提供一个最简单的代码? 30 . 最基本的BP算法:1)正向传播:输入样本->输入层->各隐层(处理)->输出层注1:若输出层实际输出与期望输出(教师信号) ...

  9. 蚁群算法优化神经网络matlab源程序,粒子群优化神经网络的程序大集合

    粒子群程序集合 866867259psobp psobp.m pso(粒子群算法)优化神经网络 粒子群算法(PSO)应用于神经网络优化[matlab] PSOt A Particle Swarm Op ...

  10. matlab 区间预测,用神经网络进行预测的MATLAB算法实现?

    一.神经网络简介 二.MATLAB中的神经网络相关函数介绍 1.newff--创建前馈bp网络 net=newff([xm,xM],[h1,h2,...hk],{f1,f2,....fk}) 其中,第 ...

最新文章

  1. 李飞飞高徒新项目,一眼看穿你下届总统会选谁!
  2. undefined reference to symbol ‘_ZN2cv7imwriteERKNS_6StringERKNS_11_InputArrayERKSt6vectorIiSaIiEE‘
  3. 猎豹网校数据结构与算法
  4. telnet不能用!!!提示:-bash: telnet: command not found
  5. [转]C#算法 一对小兔子一年后长成大兔子;一对大兔子每半年生一对小兔子。大兔子的繁殖期为4年,兔子的寿命是6年。假定第一年年初投放了一对小兔子,试编程计算,第n年末总共会有多少对兔子...
  6. [leetcode] 740.删除并获得点数
  7. DateTime.Now.Ticks.ToString()说明
  8. 数据结构期末复习之二叉排序树
  9. boot客户管理系统源码_「计算机毕设」基于SpringBoot开发的仓库管理系统
  10. Centos6 import tensorflow遇到的问题
  11. uni-app之实现分页
  12. Xcode快捷键—图文详解
  13. Windows远程桌面连接(有密码和无密码连接)
  14. keil5图标变成白色_桌面图标出现白块,显示图标异常的解决方法
  15. 搭建前后端分离主流项目完整步骤——在线教育系统(阿里云服务器部署上线)
  16. Kali Linux使用MSF木马入侵安卓手机
  17. 11.自媒体功能补全
  18. Keras Input Layer
  19. 将日数据转为周数据:to_period, resample
  20. 学java用哪个翻译器好_英语翻译器软件哪个好?用这两款就对了

热门文章

  1. android view getx 0,Android动画:解决通过View.getY()获取初始位置为0的问题
  2. 计算机二级考试题停车收费,计算机二级考试真题-Excel-停车场调整收费标准
  3. android 置顶窗口位置,Android 滑动悬浮置顶指南
  4. settimeout( )是全局函数吗_JS函数的执行
  5. dnn神经网络_机器学习-浅谈神经网络和Keras的应用
  6. mysql优化(九)
  7. InputFormat和OutPutFormat
  8. C#微信公众号开发系列教程五(接收事件推送与消息排重)
  9. PL/SQL Developer下设置“长SQL自己主动换行”
  10. C#里巧用DateTime预设一些可选的日期范围(如本年度、本季度、本月等)