Deep learning 的结构比ANN更为复杂。
当ANN的隐藏层很多时,一般称为深度神经网络(deep neural network).
这种算法模型的建立需要许多记录(原始数据),并对使用的方法和验证方面进行深入思考,以优化计算成本。
1 weight估计
根据误差传播(最小)对weight估计,分为向前和向后传播。根据梯度误差对它们进行下一次迭代所需的调整。
1.1 梯度下降(gradient descent)
误差梯度的估计可以基于:普通梯度下降或批量梯度下降(BGD)。
其实为了找到最小的cost或loss功能。 但是由于这个算法会使用所有的样本计算,这样就造成计算困难。另外两个:随机梯度下降(SGD)和小批量梯度下降(MBGD)可能会更优化。
但是每个方法都有自己的优缺点。并且都需要首先将数据标准化。
1.1.1 :随机梯度下降(SGD)
每次随机抽取一个样本进行迭代,这样其达到较小的之后,很难达到最小值。通过学习率(learning rate)变化来解决, 由大慢慢变小。
1.1.2 小批量梯度下降(MBGD)
每次抽取一个子集参与下次迭代(mini-batch)。需要对子集的大小进行优化。
2 激活功能(Activation functions)
网络使用所有单元之间存在的链接来预测输出值(即预测)。 为了实现该目的,网络使用两种类型的功能:组合功能和转移/激活功能。 组合功能允许根据作为输入连接的单位和连接的权重来计算第一个值。 对于多层感知器,它是输入节点值的加权总和。 为了确定输出值,将其他功能(称为传递/激活功能)应用于该值。
如:
rectified linear unit activation,最常用的函数,输出为0—正无穷。
sigmod/logistic function, 经常被用于classification.
softmax function, 相连与sigmoid fuction. 会给每个分类一个概率,几类的概率总和为1.
hyperbolic tangent activation function(双曲正切激活函数)。输出值为-1到1.
3 loss/cost 功能
3.1 regression
使用均方误差(MSE)或平均绝对误差(MAE)或Huber loss(数据具有异常值) 度量
Huber loss function:
3.2 classification
来自信息论的交叉熵经常被用作分类的损失函数。
二进制交叉熵
分类交叉熵
稀疏的分类交叉熵
三种都是基于计算交叉熵决定预测值得分布于实际值分布关系。两个概率p和q的被定义。
交叉熵值越小,分类越好
4 反向传播
5 多层感知机
所有的点,都全部关联。
每个权重估计时,最好至少分配为5个数据。
wide&deep neural network
6 network 估计
深度学习分为: training, validation, testing set.
7 优化超参
诸如神经元数量,层数,学习率,学习进度,激活功能,梯度下降等超参数的优化很难做到,而且需要时间和/或过去的经验。
7.1 默认值
学习率:
8 正则化
8.1 early stopping
早期停止包括在验证误差达到(可以设置达到10后)最小,停止学习。
8.2 L1 和L2
Lasso 为L1正则化,基于权重系数的绝对值之和。
ridge为L2正则化,这是基于权重系数的平方。
8.3 dropout
最受欢迎的正则化方法之一。 在每个时期,每个神经元(包括输入神经元但不包括输出神经元)都有一定的概率p被忽略(即,值为0)。 这意味着该神经元在一个时期可以被忽略,并在下一个时期被忽略。 p称为丢失率,常设为10-50%。
8.4 Monte Calco (MC) dropout
9 卷积神经网络
处理高像素的照片
9.1 convolutional neural network (cANN).
cANN的开发基于对猫的实验。 50年代的David H. Hubel和Torsten Wiesel观察到,大脑视觉皮层中的几个神经元集中在视野的受限区域,并且只有在该区域发生视觉刺激时才会相互作用。 这意味着没有兴趣链接网络中的所有神经元,因为它们中的大多数与存在于一个小区域的神经元(称为cANN的局部感受野(local receptive field, LRF))相互作用(图12),从而导致数目急剧减少。 网络中的权重。
卷积层之间的关系基于LRF。例如,第一卷积层中的一个神经元仅与其相关的LRF有关。图9b表示6×4像素的LRF。此LRF的大小必须由开发人员定义。但是,如图13所示,其大小与cANN中必须估算的权重数直接相关。因此,一层将包含多个LRF。它们之间的差距称为步幅。
9.2 filters
卷积神经层不仅与LFR有关,而且与过滤器有关。 因此,要计算卷积层,我们还需要应用一个过滤器(图12A)。 实际上,卷积就是如何通过滤波器修改输入。 使用此过滤器可以突出显示图像的特定特征。
过滤器始终由值0和1组成(图14, 2D)。 这些值的顺序可以不同,以便提出不同的过滤器。 例如,原始值等于1的过滤器称为水平过滤器。 一列为0的过滤器称为垂直过滤器。
其还可以用于3D。
9.3 Pooling layers
合并层允许通过子集图像来降低层的尺寸。 这将允许减少计算资源,内存使用和估计参数的数量。 这允许使用简约网络,从而限制了过度拟合。 原理很简单。 选择一个窗口,例如2 * 2。 这称为池化节点。 然后,此窗口在池化层中仅由一个值表示。 该值可以是平均值或最大值。 通常优选最后一个参数。 如果使用2x2池节点,则图像将减少2(图17)。