1.前言

神经网络模型对训练样本数量的要求 神经网络的样本数据_神经网络模型对训练样本数量的要求


深度神经网络的架构如上图,这里是一个网页版的在线绘图工具,是比较实用

下面,文章将一步一步解密神秘的神经网络

2.数据

2.1 常见的神经网络数据集

2.1.1 MNIST手写数字数据集

下载网址:http://yann.lecun.com/exdb/mnist/index.html

2.1.2 CIFAR-10,CIFAR-100


以MNIST数据集为例,它是最常见的图像数据,有28*28=784个像素点组成。比如这样:

神经网络模型对训练样本数量的要求 神经网络的样本数据_权重_02

2.2 数据说明

用0表示全白,1表示全黑,其余值介于[0,1]之间。

  • 第一层的数据输入:784维的向量
  • 最后一层的输出:0-9的10个类别数据
  • 隐藏层:暂定

3.目标

建议一个基于神经网络的分类模型,通过识别图片,判断数字是几。

假设我们建立的神经网络如下:

神经网络模型对训练样本数量的要求 神经网络的样本数据_算法_03

4.正向传播

正向传播,顾名思义就是从输入端计算到输出端。

下面我们手算神经网路神经网络模型对训练样本数量的要求 神经网络的样本数据_python_04

神经网络模型对训练样本数量的要求 神经网络的样本数据_神经网络模型对训练样本数量的要求_05


手算的正向传播。Z是输入激活与权重想成并相加的结果, 预测值y是Z与权重的积。通常要计算的任何输出,都需要激活与权重相乘。

神经网络模型对训练样本数量的要求 神经网络的样本数据_神经网络模型对训练样本数量的要求_06

5.BIAS偏置

偏置实际上是对神经元激活状态的控制。
神经网络模型对训练样本数量的要求 神经网络的样本数据_算法_07

6.激活函数

6.1 常见的激活函数

6.1.1 Sigmoid函数

神经网络模型对训练样本数量的要求 神经网络的样本数据_算法_08

神经网络模型对训练样本数量的要求 神经网络的样本数据_机器学习_09

6.1.2 Tanh函数

神经网络模型对训练样本数量的要求 神经网络的样本数据_权重_10

神经网络模型对训练样本数量的要求 神经网络的样本数据_权重_11

6.1.3 ReLU函数

神经网络模型对训练样本数量的要求 神经网络的样本数据_神经网络模型对训练样本数量的要求_12


神经网络模型对训练样本数量的要求 神经网络的样本数据_python_13

6.2 功能

加如激活函数,使得原来的线性组合模型,在非线性激活函数的作用下,可以逼近任何一个函数。

7.计算损失

损失就是真实值与预测值之间的误差,结合4.1计算的结果,我们计算误差为:
神经网络模型对训练样本数量的要求 神经网络的样本数据_权重_14

7.1 常见的误差形式

7.1.1 绝对误差

神经网络模型对训练样本数量的要求 神经网络的样本数据_神经网络模型对训练样本数量的要求_15
不加绝对值,误差会因为有正有负而抵消一部分。

7.1.2 平均值误差

神经网络模型对训练样本数量的要求 神经网络的样本数据_算法_16
加平方的原因也如此。

8.反向传播

正向传播反着算!!!
因为我们虽然无法改变输入,但是我们可以调整权重。反向传播的目的,就是通过改变权重值,从而使得获得更小的误差,逐渐的趋近真实值。

9.梯度下降

就是求导,求最小值。
这里的最小值,就是使得损失最小。梯度下降的解释,请参照我以前的博客,不做过多的介绍和解释。

10.学习率

古有俗语:还没学会趴,你就要假装飞!
神经网络的学习率也是如此,当我们的模型开始进行迭代的时候,在确切的说是在梯度下降的时候,每一次迭代【增加、减少】多少的权重????
学习率过快过慢都会对模型产生影响。

11.权重调整

神经网络模型对训练样本数量的要求 神经网络的样本数据_算法_17

12.DROP OUT

为了便面模型的过拟合,使用drop out 层。一句话讲:每次计算不比全部运用这些神经元,随机的选取神经元来迭代计算,从而解决模型的过拟合!!