首先明确,“正向传播”求损失,“反向传播”回传误差。同时,神经网络每层的每个神经元都可以根据误差信号修正每层的权重,
将训练集数据输入到ANN的输入层,经过隐藏层,最后达到输出层并输出结果,这是ANN的前向传播过程; 由于ANN的输出结果与实际结果有误差,则计算估计值与实际值之间的误差,并将该误差从输出层向隐藏层反向传播,直至传播到输入层; 在反向传播的过程中,根据误差调整各种参数的值;不断迭代上述过程,直至收敛
如果不使用激活函数,我们的每一层输出只是承接了上一层输入函数的线性变换,无论神经网络有多少层,输出都是输入的线性组合。如果使用的话,激活函数给神经元引入了非线性的因素,使得神经网络可以逼近任何非线性函数,这样神经网络就可以应用到非线性模型中。
非线性函数是那些一级以上的函数,而且当绘制非线性函数时它们具有曲率。现在我们需要一个可以学习和表示几乎任何东西的神经网络模型,以及可以将输入映射到输出的任意复杂函数。神经网络被认为是通用函数近似器(Universal Function Approximators)。这意味着他们可以计算和学习任何函数。几乎我们可以想到的任何过程都可以表示为神经网络中的函数计算。
1、sigmoid 激活函数:除了输出层是一个二分类问题基本不会用它。
该函数是将取值为 (−∞,+∞)的数映射到 (0,1) 之间。可以联想到概率,但是严格意义上讲,不要当成概率。sigmod函数曾经是比较流行的,它可以想象成一个神经元的放电率,在中间斜率比较大的地方是神经元的敏感区,在两边斜率很平缓的地方是神经元的抑制区。sigmoid函数的公式以及图形如下:
缺点:
当输入稍微远离了坐标原点,函数的梯度就变得很小了,几乎为零。在神经网络反向传播的过程中,我们都是通过微分的链式法则来计算各个权重w的微分的。当反向传播经过了sigmod函数,这个链条上的微分就很小很小了,况且还可能经过很多个sigmod函数,最后会导致权重w对损失函数几乎没影响,这样不利于权重的优化,这个问题叫做梯度饱和,也可以叫梯度弥散。
函数输出不是以0为中心的,这样会使权重更新效率降低。对于这个缺陷,在斯坦福的课程里面有详细的解释。
sigmod函数要进行指数运算,这个对于计算机来说是比较慢的。
2、tanh 激活函数: tanh 是非常优秀的, 几乎适合所有场合。
该函数是将取值为 (−∞,+∞) 的数映射到(−1,1) 之间,其公式与图形为:
tanh函数的缺点同sigmoid函数的第一个缺点一样,当 z 很大或很小时,g′(z)接近于 0 ,会导致梯度很小,权重更新非常缓慢,即梯度消失问题。因此再介绍一个机器学习里特别受欢迎的激活函数 Relu函数。
3、ReLu 激活函数:最常用的默认函数,如果不确定用哪个激活函数,就使用 ReLu 或者Leaky ReLu。
只要z是正值的情况下,导数恒等于 1,当z是负值的时候,导数恒等于 0。z 等于0的时候没有导数,但是我们不需要担心这个点,假设其导数是0或者1即可。
激活函数选择的经验:如果输出是0和1的二分类问题,则输出层选择 sigmoid 函数,其他层选择 Relu 函数
平均绝对误差 MAE(Mean Absolute Error)
均方误差 MSE(Mean Square Error)
均方根误差 RMSE(Root Mean Square Error)
平均绝对百分比误差 MAPE(Mean Absolute Percentage Error)
其中,MAE 和 MSE 使用较为广泛。
卷积神经网络(Convolutional Neural Networks,简称CNNs)属于深度学习(Deep Learning)领域中的一种神经网络架构。它特别适用于处理具有网格状拓扑结构的数据,例如图像(2D网格)和视频(时间序列上的2D网格)。CNNs在以下方面表现出色:
图像识别和分类:
CNNs是图像识别和分类任务中的首选模型,能够识别图像中的模式和特征。 计算机视觉:
除了图像分类,CNNs也被广泛应用于其他计算机视觉任务,如目标检测、语义分割、实例分割、姿态估计等。 视频分析:
在视频领域,CNNs可以用于动作识别、视频分类等任务。 医学图像处理:
CNNs在医学图像分析中用于肿瘤检测、细胞分类等任务。 自然语言处理(NLP):
尽管CNNs主要用于图像处理,但它们也被用于一些NLP任务,如句子分类、文本分类等,尤其是在结合循环神经网络(RNNs)时。 推荐系统:
在推荐系统中,CNNs可以用于处理用户和物品的图像信息,以提高推荐的准确性。 生成模型:
作为生成对抗网络(GANs)的一部分,CNNs可以用于生成图像、艺术作品等。 强化学习:
在强化学习领域,CNNs可以从视觉输入中提取特征,用于训练智能体。 卷积神经网络的核心优势在于其卷积层能够捕捉输入数据的空间层次结构和局部特征,这使得它们非常适合处理图像和视频数据。随着深度学习的发展,CNNs已经成为许多视觉任务的标准解决方案。
作用:概率论提供了理解随机变量、概率分布和统计推断的基础,这对于理解神经网络中的参数初始化、激活函数和损失函数等概念至关重要。
作用:了解不同的数据分布(如正态分布、二项分布等)有助于理解数据的特性和模型的假设条件。在神经网络中,激活函数的选择可能与数据分布有关。
作用:熵是衡量数据不确定性的指标,与激活函数的选择有关。在线性神经网络中,激活函数通常是线性的,但在输出层可能使用softmax函数进行多类分类。
作用:线性神经网络可以用于回归问题,其中目标是预测连续值。回归分析提供了评估模型性能的方法,如均方误差(MSE)和平均绝对误差(MAE)。
作用:在线性神经网络的训练过程中,假设检验可以帮助评估模型的有效性和参数的显著性。
作用:相关分析有助于识别特征之间的线性关系,这对于特征选择和理解模型的输入输出关系很重要。
作用:方差分析(ANOVA)可以用来比较不同组之间的均值差异,这在某些分类问题中可能有用。