Python人工智能深度学习模型训练经验总结
作者:Swayzzu 发布时间:2022-01-05 18:10:50
一、假如训练集表现不好
1.尝试新的激活函数
ReLU:Rectified Linear Unit
图像如下图所示:当z<0时,a = 0, 当z>0时,a = z,也就是说这个激活函数是对输入进行线性转换。使用这个激活函数,由于有0的存在,计算之后会删除掉一些神经元,使得神经网络变窄。
该函数也有其他变体,如下图所示,主要是对于z小于0的时候,对应
Maxout:以上几种函数的一般形式
简单来说就是谁大输出谁,通过Maxout可以自己学习激活函数。当给出的参数不同的时候,可以得到上面所描述的各类函数。如下图所示,当输入给1个计算单元时,得到蓝色的线,假如第二个计算单元参数均为0,则是X轴上的一条线,那么在这两个之中取大的那个,就是ReLU;当第二个计算单元参数不为0的时候,就可以得到其他形式的结果。
2.自适应学习率
①Adagrad
Adagrad是使用前面的梯度进行平方和再开方,作为计算梯度时系数的一部分。
②RMSProp
是Adagrad的进阶版,在Adagrad中,是使用了前面所有的梯度平方和再开方,这个系数中没有考虑当前的梯度。在RMSProp中,是考虑了现在的梯度,也对其进行平方,并对两项进行一个权重的分配。
③ Momentum
加入动量的梯度下降
下图中,v就是上一次的方向。在计算本次方向的时候,加入lambda倍的上一次的方向。其实v就是过去算出来的所有的梯度的总和。
④Adam
将RMSProp和Momentum结合
二、在测试集上效果不好
1.提前停止
通过交叉验证集,提前停止训练
2.正则化
和其他的算法正则化方式一致,有L1和L2正则,此处不再详细描述。
3.Dropout
每次训练的时候,都以p%的几率去掉一些神经元以及输入值。得到如下图所示的更瘦一些的神经网络。直接去训练这个神经网络。下一次训练的时候,对整个网络重新进行采样。(类似于随机森林)
在测试的时候不进行dropout,如果训练的时候的dropout几率是p%,那么在测试集上,所有的权重都乘上(1-p)%
来源:https://blog.csdn.net/Swayzzu/article/details/121027097?spm=1001.2014.3001.5501


猜你喜欢
- 我们一般在Excel里面是使用数据连接属性里面写sql语句,或者vba里面利用ado组件执行sql语句。新版的Excel里面带上了Power
- Python画图主要用到matplotlib这个库。Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的
- python代码运行助手是能在网页上运行python语言的工具。因为python的运行环境在很多教程里都是用dos的,黑乎乎的界面看的有点简
- 前言忘了在哪看到一位编程大牛调侃,他说程序员每天就做两件事,其中之一就是处理字符串。相信不少同学会有同感。在Python中,我们经常会遇到字
- 在日常的工作中,我们通常会有去探测目标主机是否存活的应用场景,单个的服务器主机可以通过计算机自带的DOS命令来执行,但是业务的存在往往不是单
- 一、前言这里我先为大家提供一个中文网站,大家可以下去更深入的学习。https://pypi.org/project/pypinyin/pyp
- python一行输入n个数据有时会碰到一行输入多个数据,这是可以先用str类型存一组数据,然后再迭代的将每个数据追加到新的列表中。方法一先输
- 目录生成器nextsendthrowclose使用场景大集合的生成简化代码结构协程与并发总结生成器如果在一个方法内,包含了 yield 关键
- 当数据文件过大时,由于计算机内存有限,需要对大文件进行分块读取:import pandas as pdf = open('E:/学习
- Beautiful Soup 库一般被称为bs4库,支持Python3,是我们写爬虫非常好的第三方库。因用起来十分的简便流畅。所以也被人叫做
- 为什么会用到 replace取名是一个很有讲究的事情,但每个人都不一样。一开始,我写了一个 A 项目,代码仓名称为 project-alph
- 在上一章我们学习了 异常的三个关键字,分别是try、except 以及 finally。我们知道在 try 代码块中如果遇到错误就会抛出异常
- 前言在跑模型的时候,遇到如下报错UserWarning: To copy construct from a tensor, it is re
- 先上代码:import tensorflow as tfx = tf.ones(shape=[100, 200], dtype=tf.int
- 脚手架是啥从前我总觉得脚手架是个很高大上的东西,好像得牛叉:ox:一点的人才写的出来,可望而不可即。其实并不是因为困难使我们放弃,而是因为放
- #encoding=utf-8#------------------------------------------------------
- 前言在面向对象的编程范式中,封装都是必不可少的一个概念,而在诸如 Java,C++等传统的面向对象的语言中, 私有成员是实现封装的一个重要途
- 前言最近碰到了照片识别的场景,正好使用了face_recognition项目,给大家分享分享。face_recognition项目能做的很多
- 今天,在项目中遇到一个问题,两个js页面要共享一个就js对象。js全局变量和静态变量都不行,其他苦逼的小农们就不要去强求了。而LZ又不想用c
- 用HZHOST实用工具集的服务器安全设置里安装了MSSQL安全配置,现在SQL2000还原不了数据库了,从还原选定设备浏览文件夹时出现&qu