精品视频课程第三课 | PaddlePaddle深度学习实战之识别数字 2017-07-26 16:23来源:百度大脑 原标题:精品视频课程第三课 | PaddlePaddle深度学习实战之识别数字 本次课程从 NMIST 手写图片识别的例子开始,从而引出了三个神经网络模型的分类器。从数学的角度进行了讲解后,本次课程对 PaddlePaddle 的实现代码也进行了讲解。最后,课程中还对代码效果进行演示,对训练的结果进行了展示。 背景介绍 数字识别究竟有什么用? IC 、 IP 、 IQ 卡,都能“扫扫扫”了 在深度学习领域,我们从一个简单的手写数据识别开始。网上有一个开源手写数字数据库,叫做: MNIST MNIST 形象的比喻就是,你写了一堆1/2/3/4/5/6/7,然后存到了数据库,就形成了 MNIST (据说 MNIST 最早的版本就是美国的几个中学生一起写的)。那么有人或许要问了:我手写的数字(可能还很丑,可能还很个性),机器如何识别呢? 机器得练,而且得多练! 所以让机器练,需要两个条件: 1.需要一个函数; 2.需要“多多益善”的数据。 第二个条件还好, MNIST 数据库的数据很多,atv,有60000份训练数据,这些“喂”给机器,应该就能得到不错的识别能力,然后再利用剩余的10000份数据进行验证; 但是第一个条件,函数怎么构建呢?程序怎么实现呢? 别急,我们往下看! 模型中的四块“积木” 介绍模型之前,有必要对在模型中起到重要作用的四块“积木”进行解释说明。 积木一:全连接( fully connected ) 简单来说,全连接就是所有的子神经元与上一级所有神经元进行连接,即任意父子神经元之间,都会进行连接。 全连接对节点较多的输入负荷较大,造成参数成倍数的增长;同时,对于图像数字的识别,全连接没有考虑到像素位置信息的因素,造成所有的输入像素同等权重,这与现实情况其实是不相符的。 积木二:激活函数( activation function ) 其实,每个人的人生都不是一帆风顺的; 那么,每个模型也不可能是单纯线性的; 激活函数,就是为了更自由的构建模型而生,有了它就可以不用线性发展,可以使得模型逼近任意的非线性函数,更加贴近现实世界的真实情况。 所以,我们原来的: y=Wx ,就变成了: y=f(Wx) 。 第一类激活函数: softmax 其实这乍一看有些云山雾罩的公式,只需稍稍具象化一点,就和“1+1”一样简单。 上边这三个式子,就是 softmax 公式的简化版! 那么 softmax 激活函数的三大特点就出来啦: softmax(xi) 的区间范围是【0,1】; softmax(xi) 所有的输入相加等于1; softmax(xi) 对于较大值输入,则函数值较大,即概率较大。 其他类激活函数: Sigmoid Tanh ReLU 因为基于 softmax 函数的回归模型,只采用了最简单的两层神经网络,所以拟合能力有限,这时候需要在中间加入若干隐藏层,而上边提到的三个激活函数,就会在这样的隐层神经元中发挥它们至关重要的作用了。 可以看到, Sigmoid 函数区间在[0,1],atv, Tanh 把 Sigmoid 扩大了2倍,又下移了一位,就变成了[-1,1]; 而最为简单的当属 ReLU,从来不会小于0,导数要么是0,要么是1。 积木都搭完了,给大家留个自学作业:把多层感知器模型搞懂,并用程序运行。 积木三:卷积( convolution ) (责任编辑:本港台直播) |