神经网络中重要的概念

1.激活函数:激活函数必须是可导的,将线性转换为线性

tanh:早起比较常用,现在被relu替代

relu: F(x) = max(0, x)

sigmoid:将输出数值经过非线性变换转换为一个概率值输出,该概率值在[0,1]之间,当概率值小于0.5时就相当于1,大于0.5时可       当做1

softmax:将多分类问题的输出经过加权和非线性处理转换为多个概率输出,所有概率和为1

2.损失函数:

逻辑回归问题:

     交叉熵误差

              交叉熵损失函数:交叉熵刻画的是实际输出(概率)与期望输出(概率)的距离,也就是交叉熵的值越小,两个概率分                布就越接近。假设概率分布p为期望输出,概率分布q为实际输出,H(p, q)为交叉熵,                                                                   则:H(p, q)=   -\sum p(x) log q(x)

               二分类问题:     

                             binary_crossentropy: 二分类逻辑回归问题

               多分类问题:

                            categorical_crossentropy:将目标数据转换为独热编码时使用

                             sparse_categorical_crossentropy:将目标数据转换为顺序编码时使用

线性回归问题

      平均绝对误差mae:

       均方差误差mse:

3.优化器:

SGD:

        随机梯度下降优化器

        随机梯度下降优化器SGD和min-batch是同一个意思,抽取m个小批量(独立同分布)样本,通过计算他们的平均梯度值

Rmsprop:

        经验上,RMSProp被证明为有效并且实用的深度学习网络优化算法

        RMSProp增加了一个衰减系数来控制历史信息的获取多少

        RMSProp会对学习了进行衰减

Adam:

        Adam算法可以看做是修正后的Momentum+RMSProp算法

        Adam通常被认为是对超参数的选择相当鲁棒性(超参数的选择对于模型没有很大影响)

        学习率建议为0.001

        Adam是一种可以替代传统随机梯度下降过程的一阶优化算法,他能基于训练数据迭代地更新神经网络的权重

        Adam通过计算梯度的一阶矩估计和二阶矩估计而为不同的参数设计独立的自适应学习率

Momentumn:

          动量,一种增加动量的随机梯度下降算法,加速往最小值的地方前进。

4.ont-hot编码(独热编码):100,001,010

整数编码:0,1,2,3,4,。。。。。。。。

5.梯度就是表明损失函数相对参数的变化率

对梯度进行缩放的参数被称为学习速率(learning rate)

在具体实践中,可通过查看损失函数值随时间的变化曲线,来判断学习速率的选取是否合适

合适的学习速率,损失函数会随着时间下降,直到一个底部

不合适的学习速率,损失函数可能会发生震荡(学习速率过大)

6.前向传播

前向传播是指从输入数据到输出预测值的过程,从前往后

7.反向传播算法

从后往前逐步求损失函数的导数更新参数的过程

反向传播算法是一种高效的计算数据流图中梯度的技术

每一层的导数都是后一层的导数与前一层输出之积,这正是链式法则的奇妙之处,误差方向传播算法利用的正是这一特点。

8.过拟合与欠拟合

产生过拟合的原因:(1)模型拥有大量参数,表现力强。(2)训练数据少

过拟合:模型在训练数据上的准确率很高,但是在测试数据上或是在从未见过的数据上的准确率却很低

欠拟合:模型的准确率还可以再提升

9.抑制过拟合的方法:

dropout方法(随机失活):

                [1] dropout是指在学习的过程中随机删除一些神经元的方法。被删除的神经元不再进行信号的传递。

                [2]在训练时,每传递一次,就会随机选择要删除的神经元。然后在测试时,虽然会传递所有的神经元信号,但是对于                      各个神经元的输出,要乘上训练时删除的比例再输出。

                 [3]dropout可以有效避免全局信息过度依赖于局部信息。

                 [4] 通过在训练时随机删除一些神经元,从而每一次都让不同的神经元进行学习。并且,推理时,通过对神经元的输出                   乘  以删除比例,可以取得模型的平均值。

                  [5]dropout可以减少神经元之间复杂的共性关系:因为dropout程序导致两个神经元不一定每次都在一个dropout网络                     中出现。这样权值的更新不再依赖于有固定关系的隐含节点的共同作用,阻止 了某些特征仅仅在其他特定特征                              下才有效果的情况。

                  [6]dropout类似于在生物进化中的角色:物种为了生存往往会倾向于适应这种环境,环境突变则会导致物种难以做出                      及 时反应,性别的出现繁衍出适应新环境的变种,有效地阻止过拟合,即避免环境改变时物种可能面临的灭绝。

                   [7]添加了dropout层需要相应地增加训练次数epochs

减小网络:减小网络的层或减少层中的神经元数量

正则化(权值衰减):抑制权重的增长的规模,使权重不会无限增大

             有个超参数,表示惩罚的力度

              该方法通过在学习过程中对大的权重(参数)进行惩罚,即对损失函数添加一个惩罚项,

               L1(在损失函数后面加上各个权重的绝对值之和),

               L2(在损失函数后面加上各个权重的平方之和)

10.验证集的作用:在训练fit模型时,监测模型的准确率

   交叉验证

11.选择网络参数的原则

总原则:保证神经网络容量(层数及每层的神经元个数)足够拟合数据

          一、增大网络容量,知道过拟合

          二、采取措施抑制过拟合

          三、当不过拟合之后,继续增大网络容量,直到过拟合

12.小数据由小网络拟合

猜你喜欢

转载自blog.csdn.net/fu_jian_ping/article/details/108281350