导读: 深度学习自从2006年以后已经 "火" 了十多年了,目前大家看到的,最普遍的应用成果是在计算机视觉、语音识别和自然语言处理 ( NLP )。 最近工业界也在努力地扩展它的应用场景,比如游戏、内容推荐和广告匹配等等。
深度模型架构分三种:
❶ 前向反馈网络: MLP,CNN
❷ 后向反馈网络: stacked sparse coding, deconvolutional nets
❸ 双向反馈网络: deep Boltzmann machines, stacked auto-encoders
卷积神经网络 ( Convolutional Neural Network, CNN ) 应该是最流行的深度学习模型,在计算机视觉也是影响力最大的。 下面介绍一下深度学习中最常用的 CNN 模型,以及相关的 RNN 模型,其中也涉及到著名的 LSTM 和 GRU。
——基本概念——
计算神经生物学对构建人工神经元的计算模型进行了重要的研究。 试图模仿人类大脑行为的人工神经元是构建人工神经网络的基本组成部分。 基本计算元素 ( 神经元 ) 被称为节点 ( 或单元 ),其接收来自外部源的输入,具有产生输出的一些内部参数 ( 包括在训练期间学习的权重和偏差 )。 这个单位被称为感知器。 感知器的基本框图如下图所示。
图显示神经元的基本非线性模型,其中 1, 2, 3,... 是输入信号; 1, 2, 3,⋯ 是突触权重; 是输入信号的线性组合; φ ( ∙ ) 是激活函数 ( 例如 sigmoid ), 是输出。 偏移 与输出的线性组合器相加,具有应用仿射变换的效果,产生输出 。神经元功能可以用数学表示如下:
神经元的基本模型
人工神经网络或一般神经网络由多层感知器 ( MLP ) 组成,其中包含一个或多个隐藏层,每层包含多个隐藏单元 ( 神经元 )。 具有 MLP 的 NN 模型如图所示。
带有 MLP 的 NN 模型
多层感知器输出:
学习率 ( learning rate ) 是训练 DNN 的重要组成部分。 它是训练期间考虑的步长,使训练过程更快。 但是,选择学习率是敏感的。 如果为 η 较大,网络可能会开始发散而不是收敛; 另一方面,如果 η 选择较小,则网络需要更多时间收敛。 此外它可能很容易陷入局部最小值。
有三种常用方法可用于降低训练期间的学习率: 常数、因子和指数衰减。 首先,可以定义一个常数 ζ,基于定义的步长函数手动地降低学习率。 其次,可以在训练期间根据以下等式调整学习率:
指数衰减的步进函数格式为:
梯度下降法是一阶优化算法,用于寻找目标函数的局部最小值。 算法1解释了梯度下降的概念:
算法1 梯度下降
输入: 损失函数 ε,学习率 η,数据集 , 和模型 F ( θ, )
输出: 最小化 ε 的最优 θ
重复 直到收敛:
结束
由于训练时间长是传统梯度下降法的主要缺点,因此随机梯度下降