戴德曼谈机器学习实践和解释一下为什么我消失了一段时间

做事情要坚持,所以我还会在简书继续写下去。但是,我还是需要给大家解释一下消失的原因 -- 去工业界干活去了。现在人工智能是风口,所以各个公司都在焦虑。跟风吧,怕风停的时候摔死。不跟吧,怕大家都飞远了,自己还在地上跑。

经过将近两年的摸索,学习和实践,商用化,我对于机器学习的实践和落地的观点非常坚定了,那就是机器学习需要套路,而这个套路就是数据,算法,硬件。一切都是围绕这三件事情来做,而做事的需要人。现在市场上基本上充斥着统计出身的老妖怪,或者做软件的深度学习调参狂人,再就是漫无边际的微信架构师,头条机器学习达人,能够从规划云主机,配置centos或者ubuntu,安装GPU驱动,设计CPU+GPU计算集群,安装Anaconda和各种坑人的开源库(包含各种C库,比如OpenCV支撑视频,比如Kaldi支撑音频,比如fastText支撑文本),创建各种虚拟环境,tensorflow0.12,tensorflow0.9, tensorflow 1.0, theano, pytorch,安装hdfs,保存各种动辄几百G的文件,或者几千万个1k,2k的小文件,安装spark,安装ELK,安装Mongodb,Cassadra,Neo4j,写各种awk,perl,shell script,写各种SQL statments,从raw文件到csv文件,从csv文件到数据库,从一张表到另一张表,无穷无尽的格式化,过滤分割,过滤合并,过滤打标,过滤统计......等把数据整理好了,真正的长征才刚刚开始。tensorflow上的算法多,但是大多数都是原始的概念,不是运行起来无比复杂,就是跑了几个小时就挂了,或者在README.MD或者论文里面讲得效果如何如何的好,拿我自己的数据一跑,不是过拟合,就是不收敛,特别是跑文本学习数据的时候,大部分原创算法都是老外,或者在外国的中国人写的,使用的语料不是facebook就是twitter,本以为只要把中文分个词,或者按单个字处理,就可以套用英文的模型,结果完全不是那么回事,除了TF-IDF这类不涉及语法语义的算法还能这么移花接木的干,其它算法基本抓瞎。算法跑英文的结果能够很快收敛,换成中文,就看见cross entropy上蹿下跳的。预处理的格式也是千奇百怪,对话模型,有的是XML的格式,有的是Json,有的自成一套,编码格式也是GBK,UTF-8,GB2312,好容易可以把数据加载进来,过了第一关,你能得到的就是train_x, dev_x, Y_train_Y, dev_Y。接下来才是真正的考验,一个算法通常由运行模式,参数数据,模型数据,学习数据,评估数据等等组成,仔细的话,需要话2-3天看人家的论文了解算法主体,然后才能下手去写代码,写代码之前还要斟酌使用什么框架来做,毕竟从头写这种事情,我是不敢想,也不敢做的。还好,现在tensorflow一只独大,pytorch偶尔有一个半个好框架,但是架不住用tensorflow的人多,而且你越是用tensorflow,下一次你还会选择用,除非是你拿到一套代码是用theano,pytorch什么写的。抱歉我从来不提CNTK,为什么?你都不肯支持MacOS,我验证个算法还要装个ubuntu的虚拟机在我Macbook pro上,你说我会用CNTK吗?不管是自己写还是找来的算法,基本上开始都不会有什么好结果,为什么?第一,写的代码本身可能写错,比如数据形态处理错了,矢量,数据,矩阵,列表,字典在算法里面变来变去,格式错误。第二,算法大多数都是组合的,基本上很难直接估计收敛,所以基本上要靠固定大部分参数,对于一个参数大距离增加和减少来快速感知算法收敛的方向,这个过程非常原始而又不确定,我一直很渴望采用一个神经网络来调参,苦于我自己研究能力还不够,尝试了几次都无法正确对参数调整建模,但是我一直在关注那么使用神经网络来调参的研究。第三,随着机器学习的普及,大家对于机器学习的效果不再是一开始能够识别个手写字体,认个猫就哇哇的了。

隔了好长时间才更新,但是我会坚持写完。现在大家一般也都过了git clone个代码,wget或者curl个数据,python xxxx的阶段,或多或少手里都玩过一些机器学习的模型,目前大家最大的问题是手里有不少鸡肋模型,你说没用,confusion matrix还看得过去。但是你真指望去用,还真没办法用,为啥,分类/预测/识别率基本上在50%-70%徘徊。现在咋整呢?基本上就三板斧:

第一,你有足够数据吗?可劲的喂给模型去训练,祈祷是模型见识的数据还不够多,但是我觉得这种侥幸的心理不可取,你碰到了,算你走运,可是我可以说绝大多数情况是你全部数据都进去了也是白搭,为啥?你没明白为什么指标不高背后的原因。还有不服气的,说换个模型,反正天天有人往aexiv上投算法,github天天有各种算法改进版,这不是还是碰运气吗?不过,我觉得这个做法对于能力不足以自己优化模型的团队可以尝试,但是忠告是,你先有一个评测框架,把各种算法,各种数据扔进去测,快速评测,意味着你可以快速取巧,特定数据,特定算法,整体框架是一个逻辑上的随机森林(你且想象去吧)。至于调参这种事情,其实你可以自己想想,除非你使用调参程序,不然和应激反应的草履虫差不多,顾此失彼,在欠拟合和过拟合之间摇摆。所以,数据,算法,参数,这些加在一起,我算是第一板斧,也就是本能的调优,不是不好,是太碰运气了。

第二,现在开始进入真正的调优,理解模型的问题。模型千千万万,我这里限定范围,基本上就是机器学习和深度些许大路货的识别,分类,聚类,预测用,找例外很容易,搞定大路货才是真理。那么关键在于理解模型的误差。我尽量回避数学表示,因为我相信绝大多数人和我一样对于在网页编辑器里面输入公式抱有一种厌恶,所以我只套用数学老师的一句话“因为xxxx,所以我们很容易得到xxxxx”。这里,我说我们的模型的输出和实际输出之间的误差很容易表示成一个正态分布,并且拆分成为方差,偏差和不可消解的误差。说白了,模型训练的问题在于结果误差,误差能够想办法的就是偏差和方差。偏差对应着模型结果和实际结果的偏离程度,方差对应着模型结果围绕着实际结果波动的程度。继续一路跳过40-50个公式,直接看结论,为啥,互联网时代,我知道你们都要答案,不看过程,至于能不能理解结论从何而来,对于吃惯了快餐的浮躁的大众,已经不重要了,anyway,结论就是你发现你的模型出现偏差很大,也就是模型结果严重偏离训练数据,那么证明你的模型还不了解数据和数据形态,简单,增加描述数据的维度,就像是素描,看着不像,继续描嘛,多项式加高阶项,同时减少正则参数兰博达,不要问我为什么,有效果的话,请继续服药。如果模型的问题是波动,不收敛,那就是模型那没有找到数据变换的节奏,一个是训练数据提供的数据变化不够丰富,这个时候增加训练样本是有意义的,因为波动可能来自无关紧要的离群值,所以减少特征集合的size,同时增大正则参数,还是不要问我为什么。如果这个时候没有效果,请选择第三板斧。

第三,很神奇的第三板斧,自动化调参。KDnuggets 的主编 Matthew Mayo 写了一篇文章介绍了 AutoML 的概念,以及为什么要做自动机器学习。本文后附 AI 软件工程师 Thibault Neveu 发表在 Medium 的文章,介绍他如何训练神经网络自动编程。我曾经很兴奋,但是现在有些绝望,原因很简单,谁xxx的实际模型就这么简单,能够这么简单的模型,我看看,喝杯咖啡我也调出来了,还要费神写这么多p代码。但是,我内心有个小火花,就是有一天,AutoML能够逢山开路,遇水架桥。

写到这里吧。

戴德曼2017年7月14日于坡县

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

推荐阅读更多精彩内容