学习笔记-神经网络

今天开始读《神经网络与深度学习》这本书,是从Tensorflow的官网中得到学习线索,一读之下果然由浅入深,通俗易懂,今天读完了第一小节,”使用神经网络识别喝手写数字“。

  • 感知机(Perceptron)。神经网络的基础,将输入空间转换到输出空间的函数,代数形式为:f(x)=sign(w•x+b),如下图所示:
    感知机示意
  • 感知机网络。通过组合多个感知机可以实现复杂的运算,每个感知机对一个单一因素进行判断,整个感知机网络可以综合所有的感知机实现最终的决策。
    感知机网络
  • S型神经元。神经网络学习算法的核心是学习感知机的权重w和偏置b,需要对权重(或偏置)的微小变化,能够引起输出的微小变化,通过反复迭代这这些微小变化,使输出(分类)获得更好的结果。S型神经元可以实现这个效果,它和感知机类似,但修改权重和偏重的微小变化只会引起输出的微小变化,其代数形式为:
    S型神经元
    其几何图形如下:
    这里写图片描述
  • 多层感知器或MLP。神经网络的输入和输出设计很直接,以手写识别数字为例,如果输入图像是64*64的灰度图像,那么需要输入64*64=4096个神经元;输出是0~9这10个数字,每个数字的输出值大于0.5表示”输入图像是该数字“,否则不是。隐藏层的设计可以认为是一门艺术,有很多的研究人员为隐藏层的开发设计了最优法则。
  • 梯度下降学习法。通过梯度下降学习法,尽可能找到最优的神经元权重和偏置,也就是代价值尽可能小的权重和偏置。梯度下降法的核心是对代价求导,也就是寻找一种选择Δv1和Δv2的方法使得ΔC为负:
    这里写图片描述
    用∇C表示梯度向量:
    这里写图片描述
    梯度下降算法的工作方式就是重复计算梯度∇C,然后沿着相反的方向移动,沿着山谷”滚落“:
    这里写图片描述
    梯度下降的更新法则:
    这里写图片描述

书中提供了Python的代码,可以实现手写数字识别,看起来不算太多,决定在今后几天把代码实际运行起来,通过调整相关的参数,深入理解神经网络的原理。

猜你喜欢

转载自blog.csdn.net/weixin_42893650/article/details/81871987