神经网络

Neural Networks

既然前面降了逻辑回归,为什么还需要神经网络呢?前面我们制定在非线性分类问题中,也可以使用逻辑回归进行分类,不过我们的特征变量就变成了原始特征的高阶多项式。假设有100个特征变量,要使用逻辑回归进行分类的话,特征就呈指数增长,不仅计算量十分大,而且很容易过拟合。

ML 神经网络 NeuralNetworks

2 模型表示

神经元模型

    单个神经元可以是一个逻辑回归模型。

ML 神经网络 NeuralNetworks

基本神经网络

    由多个神经元组成,一般有输入层、隐层和输出层。

ML 神经网络 NeuralNetworks

ML 神经网络 NeuralNetworks

写成向量形式:

ML 神经网络 NeuralNetworks

3 举例Examples and intuitions

首先我们看看sigmoid函数的大致图像,对于线性的分类,我们使用一个神经元就可以完成了。

ML 神经网络 NeuralNetworks

而对于非线性的分类,例如XNOR运算,我们将多个神经元组成一个神经网络可以表达更复杂的模型。

ML 神经网络 NeuralNetworks

多分类

ML 神经网络 NeuralNetworks

4 代价函数 cost function

ML 神经网络 NeuralNetworks

先回顾一下逻辑回归的代价函数:

ML 神经网络 NeuralNetworks

现在给出神经网络的代价函数:

ML 神经网络 NeuralNetworks

正则项其实就是把除了偏置外所有的参数相加。

5 后向传播算法Backpropagation algorithm

我们要使用梯度下降来计算参数时,需要计算出ML 神经网络 NeuralNetworksML 神经网络 NeuralNetworks

先使用前向传播算法:

ML 神经网络 NeuralNetworks

然后计算出每层的残差,进行后向传播:

ML 神经网络 NeuralNetworks

由于输入层直接使用的是输入数据,不存在误差,所以只用计算到第二层。

具体的算法:

Backpropagation algorithm

Training set ML 神经网络 NeuralNetworks

Set ML 神经网络 NeuralNetworks

For ML 神经网络 NeuralNetworks

    Set ML 神经网络 NeuralNetworks

    Perform forward propagation to compute ML 神经网络 NeuralNetworks

    Using ML 神经网络 NeuralNetworks

    Compute ML 神经网络 NeuralNetworks

    ML 神经网络 NeuralNetworks

 

ML 神经网络 NeuralNetworks

ML 神经网络 NeuralNetworks

ML 神经网络 NeuralNetworks

 

梯度检验

在进行后向传播算法训练参数前,为了确保我们的代码计算偏导是正确的,我们可以使用梯度检验。其实就是用数值计算偏导的方法。不过在训练时,一定要记得把梯度检验关掉,因为数值计算偏导十分耗时。

 

ML 神经网络 NeuralNetworks

ML 神经网络 NeuralNetworks

6 随机初始化 Random initialization

在线性回归和逻辑回归中,我们对参数初始化都是赋值为0,那么我们在神经网络中是否也可以全部赋值为0 呢?这样是不行的,如果全部赋值为0,那么每层的每个单元会学习到同样的参数,每个单元也就无法体现出自己的效果了。所以我们要打破这种情况,采取随机初始化。

ML 神经网络 NeuralNetworks

ML 神经网络 NeuralNetworks

7 总结 Putting it together

对于一个神经网络,有输入,输出和隐层,那么我们如何去选择每层有多少单元呢?输入层和输出层的结构我们根据要解决的问题要选定,那么对于隐层我们一般会选取含有同样个数的单元。

ML 神经网络 NeuralNetworks

训练一个神经网络的主要步骤:

  1. 随机初始化权重。
  2. 使用向前传播算法,对于每一个输入ML 神经网络 NeuralNetworks计算得到ML 神经网络 NeuralNetworks
  3. 计算代价函数ML 神经网络 NeuralNetworks
  4. 使用后向传播算法计算偏导ML 神经网络 NeuralNetworks
  5. 用梯度检验验证ML 神经网络 NeuralNetworks的正确性(训练的时候记得要把梯度检验关掉)
  6. 使用梯度下降法最小化ML 神经网络 NeuralNetworks,求出参数。

 

ML 神经网络 NeuralNetworks是一个非凸的,可能收敛到局部最小。

相关文章:

  • 2021-09-23
  • 2022-12-23
  • 2022-01-14
  • 2021-10-30
  • 2021-09-17
  • 2021-06-13
  • 2021-09-18
  • 2021-04-14
猜你喜欢
  • 2021-09-30
  • 2021-05-12
  • 2021-06-04
  • 2021-04-21
  • 2021-07-11
  • 2021-12-12
相关资源
相似解决方案