感知器


1. 阈值神经元

* 三层网络

* 关键:任何自动学习权重和阈值


2. S型神经元

* 如果对权重或者偏置的微小改动,仅仅引起输出的微小变化,可以利用这个性质来修改权重和偏置

* 上述要求,对于阈值神经元,无法完成,因为微小的改动直接导致输出发生反转

* 引入S型神经元

* $$\sigma$$ 函数

* 阶跃函数

* S型是平滑感知器

  • 平滑特性,意味权重和偏值的微小变化,会导致神经元产生微小的输出


3. 神经网络的架构

  • 输入层
  • 输出层
  • 隐藏层


5. 应用感知器实现手写识别数字网络

网络结构

* 输入层

  • 每幅图像是28*28,灰度级是:0.0是白色,1.0是黑色
  • 784=28*28

* 隐藏层

  • 可以给隐藏层分配不同的神经元
  • 15个神经元

* 输出层

  • 10个神经元
  • 计算每个神经元,然后选择最大的值,作为输出

数据集合

  • MNIST
  • 60.000用于训练数据
  • 10.000用于测试数据

* 输入数据

  • 28*28=784维的向量

    * 期望输出数据

  • y(x)=(0,0,0,0,0,0,0,0,0,1,0)

代价函数

  • 代价函数:量化输出数据对期望数据的拟合,用来找到权重和偏置的最优值

$$C(w,b) = \frac{1}{2n} \sum\limits_{x} ||y(x)-a||^2$$

  • w:网络中权重的集合
  • b:网络中偏置的集合
  • n:训练输入数据的个数
  • a:输入时x时的输出
  • y:真实输出

* 二次代价函数的意义

  • 为什么使用二次函数,不直接使用正确分类的图像数量
  • 正确分类的图像数量关于权重和偏置的函数不是一个平滑函数,对权重和偏值的微小变化不会引起正确数量的个数 难以通过,修改权重和偏置来改进性能

梯度下降算法学习权重

* 梯度向量

* 上式得到:

* 速度如何取值,才会使得C一直减少

* 得到位置的变化,循环,一直得到最小值


使用梯度下降计算神经网络


随机梯度下降算法

* 计算公式

* 一个迭代周期

  • 当前小批量数据训练完后,然后再挑选另一个随机选定的小批量的数据,直到用完所有的训练输入,
  • 然后进行下一轮迭代周期的训练

results matching ""

    No results matching ""