前言

  • 对于第二章学过的感知机来说,它(理论上)能够表示可以进行复杂处理的计算机,但确定合适的、能够符合预期的输入与输出的权重(偏置和权重)的工作还是由人工来进行的。
  • 神经网络解决了上面所说的问题,具体来说,神经网络可以自动地从数据学习到合适的权重参数
  • 本章中,先介绍神经网络的概要,然后重点关注神经网络进行识别时的处理
  • 第四章,将讲解神经网络如何从数据学习权重参数

1. 从感知机到神经网络

1.1 神经网络的例子

  • 下图为神经网络的一个例子,包括输入层中间层输出层,其中中间层有时也称为隐藏层。“隐藏”意为隐藏层神经元是肉眼看不见的。
  • 另外,本书约定,从输入层到输出层依次称为第0层、第1层、第2层,这是为了方便后面基于Python来实现。
  • 下图中的网络为2层网络,因为实质上只有2层神经元(输入层、隐藏层、输出层的总数减去1)有权重
    深度学习入门基于Python的理论与实现_第三章_神经网络

1.2 复习感知机

  • 下图的感知机接收x1和x2两个输入信号,输出信号y。
    深度学习入门基于Python的理论与实现_第三章_神经网络

  • 其数学表达式如式(3.1)所示。其中,b被称为偏置,用于控制神经元被**的容易程度;w1和w2被称为权重,用来表示各个信号的权重,用于控制各个信号的重要性。
    深度学习入门基于Python的理论与实现_第三章_神经网络

  • 上图中,偏置b并没有表示在感知机的图中,如果要明确的表示出b,可以像下图这样做。
    深度学习入门基于Python的理论与实现_第三章_神经网络
    上图中的感知机将x1、x2、1三个信号作为神经元的输入,将其和各自的权重相乘后,传送至下一个神经元。在下一个神经元中,计算这些加权信号的总和,如果总和超过0,则输出1,否则输出0。

  • 现在我们将式(3.1)改写成更简洁的形式:引入一个新的函数h(x)(超过0输出1,否则输出0)。
    深度学习入门基于Python的理论与实现_第三章_神经网络
    深度学习入门基于Python的理论与实现_第三章_神经网络
    式(3.2)中,输入信号的总和会被函数h(x)转换,转换后的值就是输出y。

1.3 **函数登场

  • 式(3.3)中的h(x)函数会将输入信号的总和转换为输出信号,这种函数一般称为**函数。“**函数”的作用在于决定如何来**输入信号的总和
  • 现在将式(3.2)进一步改写:先计算输入信号的加权总和,然后用**函数转换这一总和。
    深度学习入门基于Python的理论与实现_第三章_神经网络

2. **函数

2.1 sigmoid函数

2.2 阶跃函数的实现

2.3 阶跃函数的图形

2.4 sigmoid函数的实现

2.5 sigmoid函数和阶跃函数的比较

2.6 非线性函数

2.7 ReLU函数

3. 多维数组的运算

3.1 多维数组

3.2 矩阵乘法

3.3 神经网络的内积

4. 3层神经网络的实现

4.1 符号确认

4.2 各层间信号传递的实现

4.3 代码实现小结

5. 输出层的设计

5.1 恒等函数和softmax函数

5.2 实现softmax函数时的注意事项

5.3 softmax函数的特征

5.4 输出层的神经元数量

6. 手写数字识别

6.1 MNIST数据集

6.2 神经网络的推理处理

6.3 批处理

7. 小结

相关文章: