天天看点

第三章 神经网络

神经网络

神经网络一个重要性质就是可以自动地设定合适的权重参数

1. 复习感知机:

第三章 神经网络
第三章 神经网络
第三章 神经网络

其中b被称为偏置的参数,用于控制神经元被激活的容易程度;而w1和w2是表示各个信号权重的参数,用于控制各个信号的重要性。

为了简化上式我们用函数来表示这种分情况的动作(超过0则输出1,否则输出0),引入新函数h(x),将上式改写为:

第三章 神经网络
第三章 神经网络

2. 激活函数(activation function):

上面h(x)函数会将输入信号的总和转化为输出信号,这种函数一般被称为激活函数;

激活函数的作用在于决定如何来激活输入信号的总和。

现在进一步改写“公式3.2”,将其分为两个阶段进行处理,先计算输入信号的加权总和a,然后用激活函数转换这一总和。如下:

第三章 神经网络
第三章 神经网络

信号的加权总和为节点a,然后节点a被激活函数h(x)转换成节点y。

由上述描述我们可以知道,激活函数是连接感知机和神经网络的桥梁;

  • 朴素感知机:指单层感知机,其激活函数使用了阶跃函数的模型。
  • 多层感知机:指神经网络,即使用sigmoid函数后等平滑的激活函数的多层网络。
  • 阶跃函数:表示激活函数以阈值为界,一旦输入超过阈值,就切换输出;图形显示详见“A.step_function.py”。
  • sigmoid函数:就是给定某一输入后,会返回某个输出的转换器,其平滑性对神经网络的学习具有重要意义,图形显示详见“B.sigmoid.py”。
  • 其中两者比较的图形显示详见“C.sig_step_compare.py”

3. 非线性函数

* 函数本来就是输入某个值后会返回一个值的转换器。神经网络的激活函数必须是非线性函数。

4. ReLU(Rectified Linear Unit)函数

ReLU函数在输入大于0时,直接输出该值在输入小于等于0时输出0,如图:

第三章 神经网络

其函数实现详见“D.relu.py”,其实现效果,即函数图像如下:

第三章 神经网络

5. 多维数组的运算

  1. 简单来说,多维数组就是“数字的集合”,二维数组也称矩阵(matrix),数组的横向排列称为行(row),纵向排列称为列(column);
  2. 矩阵的乘法:np.dot(Amxn, Bnxl),多维数组乘法运算时,必须使两个矩阵中的对应维度的元素个数一致

6. 3层神经网络的实现

神经网络的运算可以作为矩阵运算打包进行。因为神经网络各层的运算是通过矩阵的乘法运算打包进行的;

第三章 神经网络

增加了表示偏置的神经元“1”

第三章 神经网络

将第一层的加权和表示为下面的式子:

第三章 神经网络
第三章 神经网络

隐藏层的加权和(加权信号和偏置的总和)用a表示,被激活函数转换后的信号用z表示。此外,图中h()表示激活函数;

第三章 神经网络
第三章 神经网络

输出层所用的激活函数,要根据求解问题的性质决定。一般地,回归问题可以使用恒等函数(对于输入的信息不加任何改动地输出),二元分类问题可以使用sigmoid函数,多元分类问题可以使用softmax函数。

7. 输出层的设计

机器学习的问题大致可分为分类问题和回归问题。分类问题是数据属于哪一类的问题;而回归问题是根据某个输入预测一个(连续的)数值的问题。

第三章 神经网络

softmax函数的输出通过箭头与所有的输入信号相连。输出层的各个神经元都受到所有输入信号的影响。

第三章 神经网络

实现softmax函数的注意事项:

  • 超大值无法表示的问题,即溢出,在进行计算机的运算时必须注意,为了防止溢出,一般会加上或减去输入信号的最大值,如下公式中的C’:
    第三章 神经网络
    softmax函数的输出是0.0到1.0之间的实数。并且softmax函数的输出值总和为1。输出总和为1是softmax函数的一个重要性质。正因如此,我们才可以把softmax函数的输出解释成“概率”。

一般而言,神经网络只把输出值最大的神经元所对应的类别作为识别结果。

求解机器学习问题的步骤可以分为“学习”和“推理”两个阶段。首先,在学习阶段进行模型的学习(训练),然后在推理阶段,用学到的模型对未知的数据进行推理(分类)。

对于分类问题,输出层的神经元数量一般设定为类别的数量,如手写体数字的识别,共0~9,10个数字,所以输出层神经元就设定为10个。

8. 手写数字识别

我们假设训练过程已结束,并得到了我们想要的参数。现在推理阶段,先实现神经网络的“推理处理”,这个推理处理也称神经网络的前项传播(forward propagation)。

正规化:把数据限定到某个范围内的处理成为正规化(normalization),如把输入图像的像素由0 ~ 255 的值正规化为 0.0 ~ 1.0 的值,其正规化方法很多种,如利用数据整体的均值或标准差,移动数据,使数据整体以0为中心分布

继续阅读