DNN(深度神经网络)

深度神经网络(Deep Neural Networks, 以下简称DNN)

神经网络发展

  • 第一代神经网络又称为感知器,由科学家Frank Rosenblatt发明于1950至1960年代,它的算法只有两层,输入层输出层,,主要使用的是一种叫做sigmoid神经元(sigmoid neuron)的神经元模型,主要是线性结构。它不能解决线性不可分的问题,如异或操作。

  • 为了解决第一代神经网络的缺陷,在1980年左右提出第二代神经网络多层感知器(MLP)。和第一代神经网络相比,第二代在输入输出层之间有增加了隐含层的感知机,引入一些非线性的结构,解决了之前无法模拟异或逻辑的缺陷。第二代神经网络让科学家们发现神经网络的层数直接决定了它对现实的表达能力,但是随着层数的增加,优化函数愈发容易出现局部最优解的现象,由于存在梯度消失的问题,深层网络往往难以训练,效果还不如浅层网络。

  • 2006年Hinton采取无监督预训练(Pre-Training)的方法解决了梯度消失的问题,使得深度神经网络变得可训练,将隐含层发展到7层,有一个预训练的过程。使用微调技术作为反向传播和调优手段。减少了网络训练时间,并且提出了一个新的概念叫做"深度学习,
    直到2012年,在ImageNet竞赛中,Hinton教授的团队,使用以卷积神经网络为基础的深度学习方案,他们训练的模型面对15万张测试图像时,预测的头五个类别的错误率只有 15.3%,而排名第二的日本团队,使用的SVM方法构建的模型,相应的错误率则高达 26.2%。从此一战成名!2012年后深度学习就成为主流。

DNN

DNN是一个很广的概念,CNN(卷积神经网络)、RNN(递归神经网络)等都属于其范畴之内。CNN多用于网络结构数据类型的任务,如图像;RNN多用于时间序列类型的任务,如音频、文本(NLP)等

DNN神经网络的组成:

  1. 输入层:神经网络的第一层,原始的样本数据
  2. 隐藏层:除了输入层,输出层,中间的都是隐藏层
  3. 输出层:神经网络的最后一层,最终的计算结果

神经网络的特点:

  1. 每个连接都有个权值
  2. 同一层神经元之间没有连接
  3. 最后的输出结果对应的层也称之为全连接层
    在这里插入图片描述

对DNN的损失函数用梯度下降法进行迭代优化求极小值的过程即为我们的反向传播算法