深度学习的三个步骤

  1. 建立函数集合,即建立神经网络模型;
  2. 训练模型;
  3. 找出对数据表现最好的参数,作为模型的参数。

全连接前向网络

  • 输入向量x与第一层神经元相连,将wx+b(其中w与权重,b为变差)经过激活函数(sigmoid或其它函数)的运算得到的结果作为下一层的输入,如此一直运算下去,直到得到整个网络的输出,该种模型称为全连接前向网络。如下图:

  • 可以把不带权重和偏差的网络结构当作一个函数集合,通过训练学习到参数的网咯可以当作针对某一数据集的best函数。
  • 矩阵运算:
    • 网络的输入为一个向量X,对应的权重w是一个矩阵,因此在网络中的运算通常都是矩阵运算。

  • 因为时矩阵运行,可以通过并行计算的技术加速运算速度。

交叉熵(Cross-Entropy)

  • 介绍交叉熵之前,需要先介绍一下信息量。举个例子:

    • 可以理解为,一个事件发生的概率越大,则它所携带的信息量就越小,而当p(x0)=1时,熵将等于0,也就是说该事件的发生不会导致任何信息量的增加。举个例子,小明平时不爱学习,考试经常不及格,而小王是个勤奋学习的好学生,经常得满分,所以我们可以做如下假设:
      事件A:小明考试及格,对应的概率P(xA)=0.1,信息量为I(xA)=−log(0.1)=3.3219
      事件B:小王考试及格,对应的概率P(xB)=0.999,信息量为I(xB)=−log(0.999)=0.0014
      可以看出,结果非常符合直观:小明及格的可能性很低(十次考试只有一次及格),因此如果某次考试及格了(大家都会说:XXX竟然及格了!),必然会引入较大的信息量,对应的I值也较高。而对于小王而言,考试及格是大概率事件,在事件B发生前,大家普遍认为事件B的发生几乎是确定的,因此当某次考试小王及格这个事件发生时并不会引入太多的信息量,相应的I值也非常的低。
    • 熵其实是信息量的期望值,它是一个随机变量的确定性的度量。熵越大,变量的取值越不确定,反之就越确定。
  • 因此深度学习网络中,损失函数的网络就可以有交叉熵来定义,值越小,确定性越大,越准确。


  • 目标便是寻找一组最优的参数,使损失函数L最小,使用的方法就是我们熟悉的Gradient Descent