DeepFM模型调参
Ref: https://tech.meituan.com/2018/06/07/searchads-dnn.html
影响神经网络的超参数非常多,神经网络调参也是一件非常重要的事情。工业界比较实用的调参方法包括:
- 网格搜索/Grid Search:这是在机器学习模型调参时最常用到的方法,对每个超参数都敲定几个要尝试的候选值,形成一个网格,把所有超参数网格中的组合遍历一下尝试效果。简单暴力,如果能全部遍历的话,结果比较可靠。但是时间开销比较大,神经网络的场景下一般尝试不了太多的参数组合。
- 随机搜索/Random Search:Bengio在“Random Search for Hyper-Parameter Optimization”10中指出,Random Search比Grid Search更有效。实际操作的时候,可以先用Grid Search的方法,得到所有候选参数,然后每次从中随机选择进行训练。这种方式的优点是因为采样,时间开销变小,但另一方面,也有可能会错过较优的超参数组合。
- 分阶段调参:先进行初步范围搜索,然后根据好结果出现的地方,再缩小范围进行更精细的搜索。或者根据经验值固定住其他的超参数,有针对地实验其中一个超参数,逐次迭代直至完成所有超参数的选择。这个方式的优点是可以在优先尝试次数中,拿到效果较好的结果。
我们在实际调参过程中,使用的是第3种方式,在根据经验参数初始化超参数之后,按照隐层大小->学习率->Batch Size->Drop out/L1/L2的顺序进行参数调优。
1. 隐层的层数和大小: 两层 512 256 我们也尝试了3层,4层的隐层,提升效果不是很大,而且训练时间较长,可能导致梯度消失、梯度爆炸、以及过拟合。 隐层大小(512,256) 对比了 128-128,512-256,512-256-128,521-256-256-128 四种中选择
增加隐层数可以降低网络误差,提高精度,但也使网络复杂化,从而增加了网络的训练时间和出现“过拟合”的倾向。
Ref: https://segmentfault.com/q/1010000014818306 http://sofasofa.io/forum_main_post.php?postid=1000320
如何形象的理解隐层大小越大,效果越好 https://www.zhihu.com/question/65403482
2.学习率:最后选择0.001
3. BatchSize :最后选择1000
4.Dropout:神经元保留比例为0.8
5.L1 取值10-4; L2=10-4
DeepFM模型最后采用 sigmoid final_activation='sigmoid'
隐层激活函数采用: activation='relu'
损失函数呐 采用二元交叉熵损失
优化器采用adam,
优化指标AUC
2.
MultiTextCNN 中有关 调参的。
网络常见的一些问题也可以通过超参的设置来解决:
- 过拟合
- 网络宽度深度适当调小,正则化参数适当调大,Dropout Ratio适当调大等。
- 欠拟合
- 网络宽度深度适当调大,正则化参数调小,学习率减小等。
- 梯度消失/爆炸问题
- 合适的激活函数,添加Batch Normalization,网络宽度深度变小等。
- 局部最优解
- 调大Learning Rate,合适的优化器,减小Batch Size等。
- Covariate Shift :
- 这个指的是训练集的数据分布和预测集的数据分布不一致,这样的情况下如果我们在训练集上训练出一个分类器,肯定在预测集上不会取得比较好的效果。
- 深度学习网络在训练时容易受到输入层分布变化和前面层参数变化的影响,所以训练时需要用较低的学习率,且对参数初始化非常敏感。这一现象即为internal covariate shift。
- 增加Batch Normalization,网络宽度深度变小等。BN负责调整特征分布回到原始的数据分布
DeepFM模型调参相关推荐
- python网格搜索核函数_机器学习笔记——模型调参利器 GridSearchCV(网格搜索)参数的说明...
算法 数据结构 机器学习笔记--模型调参利器 GridSearchCV(网格搜索)参数的说明 GridSearchCV,它存在的意义就是自动调参,只要把参数输进去,就能给出最优化的结果和参数.但是这个 ...
- ML之XGBoost:利用XGBoost算法对波士顿数据集回归预测(模型调参【2种方法,ShuffleSplit+GridSearchCV、TimeSeriesSplitGSCV】、模型评估)
ML之XGBoost:利用XGBoost算法对波士顿数据集回归预测(模型调参[2种方法,ShuffleSplit+GridSearchCV.TimeSeriesSplitGSCV].模型评估) 目录 ...
- DL之模型调参:深度学习算法模型优化参数之对LSTM算法进行超参数调优
DL之模型调参:深度学习算法模型优化参数之对LSTM算法进行超参数调优 目录 基于keras对LSTM算法进行超参数调优 1.可视化LSTM模型的loss和acc曲线
- DL之模型调参:深度学习算法模型优化参数之对深度学习模型的超参数采用网格搜索进行模型调优(建议收藏)
DL之模型调参:深度学习算法模型优化参数之对深度学习模型的超参数采用网格搜索进行模型调优(建议收藏) 目录 神经网络的参数调优 1.神经网络的通病-各种参数随机性 2.评估模型学习能力
- 炼丹神器!模型调参这门“玄学”,终于被破解了
吃一个苹果要几步?这对普通人来说,是一件很简单的事. 那么AI模型调参需要几步呢?调参是机器学习中至关重要的一环,因其复杂性而被称之为一门"玄学".这对开发小白和AI专业算法工程师 ...
- AIRec个性化推荐召回模型调参实战
简介:本文是<AIRec个性化推荐召回模型调参实战(电商.内容社区为例)>的视频分享精华总结,主要由阿里巴巴的产品专家栀露向大家分享AIRec个性化推荐召回模型以及针对这些召回模型在电商和 ...
- 大数据预测实战-随机森林预测实战(四)-模型调参
之前对比分析的主要是数据和特征层面,还有另一部分非常重要的工作等着大家去做,就是模型调参问题,在实验的最后,看一下对于树模型来说,应当如何进行参数调节. 调参是机器学习必经的一步,很多方法和经验并不是 ...
- Kaggle泰坦尼克号生存预测挑战——模型建立、模型调参、融合
Kaggle泰坦尼克号生存预测挑战 这是kaggle上Getting Started 的Prediction Competition,也是比较入门和简单的新人赛,我的最好成绩好像有进入top8%,重新 ...
- 模型调参之网格搜索与随机搜索
模型调参之网格搜索与随机搜索 网格搜索法(GridSearchCV) GridSearchCV:GridSearchCV可以拆分成GridSearch和CV两部分,即网格搜素和交叉验证.GridSea ...
最新文章
- 拉取远程分支_git使用教程之创建本地库并关联远程库(笔记整理篇一)
- 清华学长免费分享Java基础核心知识点基础篇(2)
- SQL Server 2008中获取数据库所有表及其字段名称、类型、长度的SQL
- Java操作HBase 2.0.5:创建表代码示例
- api怎么写_PHP开发api接口安全验证
- 清北学霸的书单居然那么有讲究?看看你比学霸少看了哪些书......
- pycharm写python字典_pythonpycharm安装基础语法
- 【APICloud系列|30】苹果MAC电脑取消辅助功能-语音识别
- 新版 Android 已支持 FIDO2 标准,免密登录应用或网站
- 计算机专业用锐龙笔记本,轻松应对工作挑战——ThinkPad T14 锐龙版,适合办公的笔记本电脑...
- epoll边缘触发_4.2.3、epoll:水平触发与边缘触发
- Linux学习笔记3
- 【ElasticSearch】在 ELASTICSEARCH 中使用管道重新索引数据 pipeline
- IEEE754标准:二进位浮点数算术标准
- 人工智能学习(三)Anaconda与PyCharm的结合
- Mysql查询汉字语法_Mysql数据库查询语法详解
- python脚本清除linux cron中过期的定时计划
- [导入]构建WCF面向服务的应用程序系列课程(10):安全基础.zip(24.27 MB)
- torch.optim
- nvme装系统不能自引导_电脑安装了NVME SSD固态硬盘无法进入系统该怎么办?
热门文章
- 硬盘第一个基本分区c 的 ntfs格式的XP上 安装 windows和linux 双引导 设置grub(安装WINGRUB),
- 搞笑小偷版吉祥三宝(收藏)
- 如何给mysql的海量数据查询优化
- CDD文件相关名词描述解析
- html 使table 页面居中,HTML网页中table居中和表格内容居中
- 【自动装箱】Java自动装箱、自动拆箱
- virsh 命令详解
- 2-23财财的财经早报
- Linux中rpm命令有什么优缺点,20个Linux中RPM命令的实际示例
- htc820+android+l,HTC Desire 820手机更新 安卓6.0+Sense 7.0