• 利用手写数字识别项目详细描述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的库,以及存储数据时的格式操作时,可以看出对编程有较高的要求。

  • 相关阅读:
    elasticsearch + fluentd + kibana 日志收集
    redis-dump数据导入导出
    zabbix 存储数据清理
    etcd集群部署
    yum安装zabbix4.2
    U盘启动安装CentOS 7出现 -dracut initqueue timeout
    About && 友链
    红队-C2 Server基础构建
    从0学习WebLogic CVE-2020-2551漏洞
    代码审计-phpok框架5.3注入漏洞
  • 原文地址:https://www.cnblogs.com/happy-sir/p/10878101.html
Copyright © 2020-2023  润新知