利用手写数字识别项目详细描述BP深度神经网络的权重学习

本篇文章是针对学习《深度学习入门》(由日本学者斋藤康毅所著陆羽杰所译)中关于神经网络的学习一章来总结归纳一些收获。



本书提出神经网络的学习分四步:1.mini-batch 2.计算梯度 3.更新参数 4.重复前面步骤

1.从识别手写数字项目学习神经网络

所谓“从数据中学习”是指 可以由数据#自动决定权重#。当解决较为简单的问题,使用简单的神经网络时,网络里的权重可以人为的手动设置,去提取输入信息中特定的特征。但是在实际的神经网络中,参数往往是成千上万,甚至可能上亿的权重,这个时候人为手动设置是不可能完成的任务。因此,当可以由数据去学习得到网络的权重,是一件计算机智能的事。本篇文章通过实现手写数字识别的实际项目来分析神经网络的学习。 有效的利用数据有两种方案:1.先从图像中提取特征量,再用机器学习技术学习这些特征量的模式。 第一步:从图像中提取特征量的方法是人为的设置图像特征提取的滤波器,常用的滤波器有:SIFT,SURF和HOG等,使用这些滤波器将图像数据转换为向量,最后对转换后的向量使用机器学习中的SVM,KNN等分类器进行学习。这个方案的缺点是就是特征提取的滤波器需要人为手动设计,针对不同的问题就要设置不同的滤波器。2.神经网络(深度学习)的方法就是完全用数据去训练权重,找出相应的特征,做出判断。如图1在书上的P83页的图4-2有一个更加简洁直观地比较了两种方案的区别。神经网络的优点是对所有的问题都可以用同样的流程来解决。

2.手写数字识别

2.1 训练集

识别手写数字是用来学习神经网络的一个经典的项目。手写数字识别的#标准库#是MINIST手写数字数据集

MINST数据集在LeCun的博客上(http://yann.lecun.com/exdb/mnist/)。在本书中用代码的方式从网站上下载了数据集,并且将所下载到的数据转为字典型数据统一存在了.pkl文件中。这一操作需要用到很多Python的库,以及存储数据时的格式操作时,可以看出对编程有较高的要求。

原文地址:https://www.cnblogs.com/happy-sir/p/10878101.html

时间: 2024-10-06 19:18:25

利用手写数字识别项目详细描述BP深度神经网络的权重学习的相关文章

pytorch 手写数字识别项目 增量式训练

dataset.py ''' 准备数据集 ''' import torch from torch.utils.data import DataLoader from torchvision.datasets import MNIST from torchvision.transforms import ToTensor,Compose,Normalize import torchvision import config def mnist_dataset(train): func = torch

使用L2正则化和平均滑动模型的LeNet-5MNIST手写数字识别模型

使用L2正则化和平均滑动模型的LeNet-5MNIST手写数字识别模型 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献Tensorflow实战Google深度学习框架 实验平台: Tensorflow1.4.0 python3.5.0 MNIST数据集将四个文件下载后放到当前目录下的MNIST_data文件夹下 L2正则化 Dropout 滑动平均方法 定义模型框架与前向传播 import tensorflow as tf # 配置神经网络的参数 INPUT_NODE = 78

手写数字识别——利用keras高层API快速搭建并优化网络模型

在<手写数字识别——手动搭建全连接层>一文中,我们通过机器学习的基本公式构建出了一个网络模型,其实现过程毫无疑问是过于复杂了——不得不考虑诸如数据类型匹配.梯度计算.准确度的统计等问题,但是这样的实践对机器学习的理解是大有裨益的.在大多数情况下,我们还是希望能多简单就多简单地去搭建网络模型,这同时也算对得起TensorFlow这个强大的工具了.本节,还是以手写数据集MNIST为例,利用TensorFlow2.0的keras高层API重现之前的网络. 一.数据的导入与预处理 关于这个过程,与上节

DeepLearning (四) 基于自编码算法与softmax回归的手写数字识别

[原创]Liu_LongPo 转载请注明出处 [CSDN]http://blog.csdn.net/llp1992 softmax 回归模型,是logistic 回归模型在多分类问题上的推广.关于logistic回归算法的介绍,前面博客已经讲得很清楚,详情可以参考博客 机器学习实战ByMatlab(五)Logistic Regression 在logistic回归模型中,我们的激励函数sigmoid的输入为: z=θ0x0+θ1x1+θ2x2+...+θnxn 则可以得到假设函数为: hθ(x)

使用AI算法进行手写数字识别

人工智能 ??人工智能(Artificial Intelligence,简称AI)一词最初是在1956年Dartmouth学会上提出的,从那以后,研究者们发展了众多理论和原理,人工智能的概念也随之扩展.由于人工智能的研究是高度技术性和专业的,各分支领域都是深入且各不相通的,因而涉及范围极广 . 人工智能的核心问题包括建构能够跟人类似甚至超越人类的推理.知识.学习.交流.感知.使用工具和操控机械的能力等,当前人工智能已经有了初步成果,甚至在一些影像识别.语言分析.棋类游戏等等单方面的能力达到了超越

使用Caffe进行手写数字识别执行流程解析

之前在 http://blog.csdn.net/fengbingchun/article/details/50987185 中仿照Caffe中的examples实现对手写数字进行识别,这里详细介绍下其执行流程并精简了实现代码,使用Caffe对MNIST数据集进行train的文章可以参考  http://blog.csdn.net/fengbingchun/article/details/68065338 : 1.   先注册所有层,执行layer_factory.hpp中类LayerRegis

C#中调用Matlab人工神经网络算法实现手写数字识别

手写数字识别实现 设计技术参数:通过由数字构成的图像,自动实现几个不同数字的识别,设计识别方法,有较高的识别率 关键字:二值化  投影  矩阵  目标定位  Matlab 手写数字图像识别简介: 手写阿拉伯数字识别是图像内容识别中较为简单的一个应用领域,原因有被识别的模式数较少(只有0到9,10个阿拉伯数字).阿拉伯数字笔画少并且简单等.手写阿拉伯数字的识别采用的方法相对于人脸识别.汉字识别等应用领域来说可以采用更为灵活的方法,例如基于规则的方法.基于有限状态自动机的方法.基于统计的方法和基于神

keras入门实战:手写数字识别

近些年由于理论知识的硬件的快速发展,使得深度学习达到了空前的火热.深度学习已经在很多方面都成功得到了应用,尤其是在图像识别和分类领域,机器识别图像的能力甚至超过了人类. 本文用深度学习Python库Keras实现深度学习入门教程mnist手写数字识别.mnist手写数字识别是机器学习和深度学习领域的"hello world",MNIST数据集是手写数字的数据集合,训练集规模为60000,测试集为10000. 本文的内容包括: 如何用Keras加载MNIST数据集 对于MNIST问题如何

手把手教你搭建caffe及手写数字识别(全程命令提示、纯小白教程)

手把手教你搭建caffe及手写数字识别 作者:七月在线课程助教团队,骁哲.小蔡.李伟.July时间:二零一六年十一月九日交流:深度学习实战交流Q群 472899334,有问题可以加此群共同交流.另探究实验背后原理,请参看此课程:11月深度学习班. 一.前言 在前面的教程中,我们搭建了tensorflow.torch,教程发布后,大家的问题少了非常多.但另一大框架caffe的问题则也不少,加之caffe也是11月深度学习班要讲的三大框架之一,因此,我们再把caffe的搭建完整走一遍,手把手且全程命