机器学习 | 浅谈神经网络优化方式


背景:目前各种神经网络相关算法,在实验和生产环境中都会大量被应用。那么,如何应用神经网络以及如何优化神经网络,作为一项可以被系统化的工程,流程化实现就显得很有必要且很有价值。
目标:本文的目的是为了能够将一般优化神经网络的流程系统化梳理。对于customed情况下的优化暂不在本文的讨论范围内。持续完善ing,浅谈不足之处欢迎在评论区指正。


在...应用神经网络之前?

  • First of all, 需要明确定义模型需要优化或者预测的指标。
    所有的策略最终都是为了业务目标服务的,首先要将业务问题转换为需要优化的具体指标,也就是转换为机器学习可以优化的问题。

  • Secondly,从逻辑层面判断模型能达到的效果。
    也就是从逻辑出发判断算法能实现业务指标提升的可能性。如果逻辑上就否定了算法的必要性,就完全没有必要采用算法试验。

  • Thirdly, 从技术角度确认是否需要使用神经网络算法。
    任何一种技术都有其试用范围,特别是在机器学习领域,没有绝对的Silver Bullet。
    任何一种技术也都有其优越性和缺陷。代价永远存在。那就要考虑为了神经网络的优势,这样的代价是否值得。
    比如在数据量很小的情况下,神经网络强大的拟合能力就会成为项目效果的制擘,反而用简单的决策树效果会更好。或者在要求高性能或是高解释性的金融行业,有时候简单的逻辑回归会是更优的选择。

  • Fourth, 选用最简单模型进行快速试验模型能达到效果。
    当回答了以上所有的问题,答案指向都是可以也值得使用神经网络。那下一步就是搭建一个简单的传统机器学习模型来为该项业务指标设定一个指标下限,为神经网络的优化提供一个参考基准。

  • Fifth,初步搭建简单有效的神经网络来实现效果。
    前置准备工作中的最后一步,通过搭建一个同领域验证有效的神经网络模型。在不调差和调整复杂网络结构的情况下,完全采用前人的有效参数和网络结构,快速搭建一个神经网络,实现初步的效果。这一步的目标是走通整个流程,为之后的优化神经网络提供流程上的支持。



不智能的人工经验调参

在完成了上述神经网络建模的前置步骤之后,下面需要做的就是对神经网络的各种参数和结构进行调整,目标是获取更优的指标效果。
P.S. 这里调参主要基于Keras/Tensorflow。

参数类型调整
  • epoch
    通过validation样本accuracy随着epoch改变的曲线,来调整epoch的量级。(如果训练过程较长的话,为了防止重复训练,可以在模型训练过程中设置checkpoint。在Keras中,可以通过回调函数callback来实现checkpoint的设置。)
    更方便的,可以采用earlystopping的方式,对待监测值进行监测,如果待检测值不再优化,则提前停止训练。这也是一种对epoch的数值进行选取的较好方案。
  • 学习率和参数更新方式
    1. 回调参数:通过在Keras中设置回调函数来进行参数更新方式和学习率的更新。
    2. adam:通过adam进行参数学习更新的方式。adam的全称:adaptive moment estimation。
      一般情况下,adam的参数根据前人的经验来设定,基本无需进行调参。Gentle Introduction to the Adam Optimization Algorithm for Deep Learning
  • 其他参数
    神经网络参数贪婪的网格搜索进行调整。比如dropout的比率。

模型正则化方式:
  • 数据样本角度:正负数据样本数量的平均,防止在梯度下降过程中,模型梯度方向严重偏差。
  • L1或者L2正则化: 采用weight参数的L1或者L2对神经网络权重参数的大小进行控制。比如最大范数是5的正则项,就被证明可以提升结果。本质上,也是通过控制模型参数的拟合能力来进行正则控制。
  • Early Stopping:也是一种正则化的方法,可以用来减少对于训练数据的过度拟合。
  • Batch normalization: 通过对特征进行normalization的方法,对参数空间的数值进行标准化,防止拟合过程中不同特征参数步长不一致导致收敛到较差的局部最优,而不易通用化到test data的参数空间中。
  • 神经网络结构控制:从神经网络的结构上,减少结构的复杂度,减少参数空间的大小,对模型的VC维进行控制。
  • Dropout:对神经网络连接在训练的时候进行随机断连接。正则化的有效性由两个方面保证:1. 减少神经网络的参数,控制拟合能力。2. 通过融合模型的思想,降低模型的variance,来达到正则化目的。

神经网络结构调整
  • 神经网络激活函数调整
    Relu作为减少梯度消散的激活函数,更加适用于深度神经网络。
  • 有效神经网络结构扩展
    选择或者增加被验证有效的神经网络结构,来提升神经网络的效果。比如,采用inception的方式对神经网络的特征更好的拟合。
  • 神经网络层数和结构
    在前人文章经验的基础上,尝试不同层数和不同种类层的效果。贪婪的调整结构。
  • 集成学习
    集成多个神经网络(皮尔逊不相关)来融合学习。

P.S. 模型效果的可解释性
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354

推荐阅读更多精彩内容