【NN】搭建你的第一个简单的神经网络_准备篇_NN&DL学习笔记(二)

前言

本文为《Neural Network and Deep Learning》学习笔记(二),可以转载但请标明原文地址。

本人刚刚入门、笔记简陋不足、多有谬误,而原书精妙易懂、不长篇幅常有柳暗花明之处,故推荐阅读原书。

《Neural Network and Deep Learning》下载地址(中文版):Neural Network and Deep Learning(中文版)

注:这本书网上有很多免费版,随便搜一下就有了,不用非得花积分下载我上传的资料。


第二部分:准备篇(搭建神经网络、选择学习算法)

理论篇中,我们讲述了神经元与神经网络的基本知识,那么下面我们就来搭建一个神经网络吧!

本篇中依然不涉及代码部分,只讲解了一些前期准备过程,想要直接食用源码,可以跳到实践篇

我们将以【手写数字识别】项目为例进行讲解。

手写数字识别是指:输入一张图片,图片中包含一个数字,输出该数字是什么。

一、搭建一个三层神经网络

在理论篇中,我们讲到:神经网络的架构可以分为三部分:输入层、输出层、隐藏层。下面我们就来分别设计:

1.1 设计输入层(input layer)

输入图片,就相当于输入图片的每一个像素。因此我们设计的网络的输入层,必须包含给输入像素的值进行编码的神经元。

例如,在手写数字识别项目中,我们的输入图像来源于MNIST数据集,这些图像是28×28大小的灰度图像。这意味着我们的输入层需要包含784=28×28个输入神经元,值为0.0表示白色,值为1.0表示黑色,中间数值表示逐渐暗淡的灰色。

这样就完成了输入层的设计。

1.2 设计输出层(output layer)

我们需要的输出是:“判断输入图片是什么数字”,一共有0-9共十个数字,因此我们的输出神经元有10个,将它们按0-9编号。

接下来我们需要人为定义输出值的意义:如果编号为0的输出神经元被激活,那么表明输出是“数字0”;如果编号为1的输出神经元被激活,那么表明输出是“数字1”;以此类推。

这里出现了一个词:“激活”。还记得在理论篇中,我们曾经讲过激活函数吗?激活函数的作用在于:将神经元的输入(x)映射到输出(output),在这里我们将output称作激活值

我们共有10个输出神经元,每个神经元都有一个output,也就是说都有一个激活值。我们可以这样定义:哪个输出神经元输出的激活值最高,就证明网络判断哪个数字最有可能。

比如:10个输出神经元中,编号为0的神经元激活值最高,那么表明输出是“数字0”.

这样就完成了输出层的设计及输出值的解释定义。

1.3 设计隐藏层(hidden layer)

作者曰:设计隐藏层是一门艺(xuan)术(xue)。

简单起见,我们只设计一层隐藏层,假设该层中有n个隐藏神经元,我们将给n实验不同的数值,观察准确率的变化。

以上,三层神经网络设计完毕,网络拓扑图如下所示:

二、设计学习算法:梯度下降算法

神经网络、机器学习,到底是怎么学习的?!?!学习的到底是什么?!?!

2.1 学习是什么

让我们再来看看我们的激活函数(=S型函数)(=output的计算公式):

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值