Python人工智能深度学习模型训练经验总结

作者:Swayzzu 时间:2022-01-05 18:10:50 

一、假如训练集表现不好

1.尝试新的激活函数

ReLU:Rectified Linear Unit

图像如下图所示:当z<0时,a = 0, 当z>0时,a = z,也就是说这个激活函数是对输入进行线性转换。使用这个激活函数,由于有0的存在,计算之后会删除掉一些神经元,使得神经网络变窄。

Python人工智能深度学习模型训练经验总结

该函数也有其他变体,如下图所示,主要是对于z小于0的时候,对应

Python人工智能深度学习模型训练经验总结

Maxout:以上几种函数的一般形式

简单来说就是谁大输出谁,通过Maxout可以自己学习激活函数。当给出的参数不同的时候,可以得到上面所描述的各类函数。如下图所示,当输入给1个计算单元时,得到蓝色的线,假如第二个计算单元参数均为0,则是X轴上的一条线,那么在这两个之中取大的那个,就是ReLU;当第二个计算单元参数不为0的时候,就可以得到其他形式的结果。

Python人工智能深度学习模型训练经验总结

2.自适应学习率

①Adagrad

Adagrad是使用前面的梯度进行平方和再开方,作为计算梯度时系数的一部分。

Python人工智能深度学习模型训练经验总结

②RMSProp

是Adagrad的进阶版,在Adagrad中,是使用了前面所有的梯度平方和再开方,这个系数中没有考虑当前的梯度。在RMSProp中,是考虑了现在的梯度,也对其进行平方,并对两项进行一个权重的分配。

Python人工智能深度学习模型训练经验总结

③ Momentum

加入动量的梯度下降

下图中,v就是上一次的方向。在计算本次方向的时候,加入lambda倍的上一次的方向。其实v就是过去算出来的所有的梯度的总和。

Python人工智能深度学习模型训练经验总结

④Adam

将RMSProp和Momentum结合

Python人工智能深度学习模型训练经验总结

二、在测试集上效果不好

1.提前停止

通过交叉验证集,提前停止训练

Python人工智能深度学习模型训练经验总结

2.正则化

和其他的算法正则化方式一致,有L1和L2正则,此处不再详细描述。

3.Dropout

每次训练的时候,都以p%的几率去掉一些神经元以及输入值。得到如下图所示的更瘦一些的神经网络。直接去训练这个神经网络。下一次训练的时候,对整个网络重新进行采样。(类似于随机森林)

在测试的时候不进行dropout,如果训练的时候的dropout几率是p%,那么在测试集上,所有的权重都乘上(1-p)%

Python人工智能深度学习模型训练经验总结

来源:https://blog.csdn.net/Swayzzu/article/details/121027097?spm=1001.2014.3001.5501

标签:Python,人工智能,模型训练
0
投稿

猜你喜欢

  • 在python 中实现运行多条shell命令

    2023-07-30 10:40:11
  • JavaScript编写棋盘覆盖代码详解

    2024-04-17 10:30:05
  • Oracle中获取执行计划的几种方法分析

    2023-07-17 15:18:31
  • tensorflow中的数据类型dtype用法说明

    2023-08-28 05:44:30
  • mysql优化小技巧之去除重复项实现方法分析【百万级数据】

    2024-01-17 03:44:31
  • 网站升级兼容firefox经验小谈

    2007-10-28 20:28:00
  • ASP中如何判断字符串中是否包数字

    2008-07-21 12:04:00
  • Vue CLI3.0中使用jQuery和Bootstrap的方法

    2023-07-02 17:08:15
  • js获取上传文件大小示例代码

    2024-04-22 22:35:02
  • 这十大Python库你真应该知道

    2022-09-20 00:09:03
  • python垃圾回收机制(GC)原理解析

    2023-01-05 10:57:46
  • 浅谈MySQL中的自增主键用完了怎么办

    2024-01-24 07:51:50
  • Python趣味挑战之教你用pygame画进度条

    2022-08-13 15:02:49
  • 10大实用web应用界面技术[译]

    2009-01-20 12:40:00
  • 基于Python实现图像的傅里叶变换

    2023-12-14 09:10:34
  • python应用文件读取与登录注册功能

    2023-04-17 17:04:03
  • python如何正确使用yield

    2023-09-29 16:57:05
  • Centos 7下使用RPM包安装MySQL 5.7.9教程

    2024-01-19 20:44:49
  • python实现随机密码字典生成器示例

    2022-07-25 17:11:50
  • 深入分析C#连接Oracle数据库的连接字符串详解

    2024-01-20 23:46:29
  • asp之家 网络编程 m.aspxhome.com