<pclass="content">想学机器学习的人,不大可能没有听说过吴恩达。他开设的机器学习课程已经造就了数以万计的机器学习人才,如果英文好,你们可以去他的Coursera网站看看。那是众多的大规模开放在线课程(Massive Open Online Course,MOOC)平台之一,里面还有一些免费课程。</p>
<pclass="content">下面大力推荐我的最爱—Kaggle网站,同学们搜一下“Kaggle”就能找到它。对于机器学习爱好者来说,Kaggle大名鼎鼎,而且特别实用。它是一个数据分析和机器学习竞赛平台:企业和研究者在上面发布数据,数据科学家基于这些数据进行竞赛以创建更好的机器学习模型。Kaggle的口号是Making Data Science a Sport(使数据科学成为一项运动)。</p>
<pclass="content">(2)选择Datasets之后,单击“Notebooks”,看看各路“大咖”针对这个数据集已经开发出了一些什么东西,然后喜欢的话单击“Copy and Edit”,复制其Notebook,慢慢研习,在“巨人的肩膀上”继续开发新模型。这里的课程中也是借鉴了一些大咖们的Notebooks代码,当然我已经通过邮件得到了他们的授权。</p>
<pclass="content">(3)直接选择Notebooks,单击“New Notebook”,有了Notebook之后,然后再通过“File”→“Add or upload dataset”菜单项选择已有的数据集,或者把自己的新数据集上传到Kaggle,如下图所示。</p>
<pclass="content">原始数据如何获得呢?有时候是自有的数据(如互联网公司拥有的大量的客户资料、购物行为历史信息),或者需要上网爬取数据;有时候是去各种开源数据网站下载(Image Net、Kaggle、Google Public Data Explorer,甚至Youtube和维基百科,都是机器学习的重要数据源),或者可以购买别人的数据。</p>
<pclass="content">■形状为(1,<spanclass="italic">n</span>)和形状为(1,<spanclass="italic">n</span>)的2D张量<spanclass="bold">不能</span>进行点积—系统会报错shapes (1,n) and (1,n) not aligned: n (dim 1) != 1 (dim 0)。</p>
<pclass="content">■形状为(n,1)和形状为(n,1)的2D张量<spanclass="bold">不能</span>进行点积—系统会报错shapes( n,1) and (n,1) not aligned: 1 (dim 1) != n (dim 0)。</p>
<pclass="content">仅就这个数据集而言,Min Max Scaler进行的数据特征缩放不仅不会提高效率,似乎还会令预测准确率下降。大家可以尝试一下使用和不使用Min Max Scaler,观察其对机器学习模型预测结果所带来的影响。这个结果提示我们:没有绝对正确的理论,实践才是检验真理的唯一标准。</p>
<pclass="content">在工程界,当时神经网络也已经有了应用。杨立昆(Yann Le Cun,深度学习“三巨头”之一)于20世纪80年代末在贝尔实验室研发出了卷积神经网络,他将其应用到手写识别和OCR,并在美国广泛应用于手写邮编、支票的读取。然而后来,另一种理论相当完善的机器学习技术支持向量机(Support Vector Machine,SVM)被发明出来,成为了业界“新宠”,神经网络再一次被遗忘了。</p>
<pclass="content">均方根前向梯度下降(Root Mean Square Propogation,RMSProp),是Hinton在一次教学过程中偶然提出来的思路,它解决的是Adagrad中学习速率有时会急剧下降的问题。RMSProp抑制衰减的方法不同于普通的动量,它是采用窗口滑动加权平均值计算二阶动量,同时它也有保存Adagrad中每个参数自适应不同的学习速率的优点。</p>
<pclass="content_105">咖哥嗤之以鼻:“当然行了,我也许搞不定,但哪种语言RNN搞不定?再者说了,我也读过大学,这些东西我全认识。你看这文件里面第1号id的评论‘Love this...’,那就是爱的意思!很明显这条评论的用户爱上了你的产品。因此,在后面的Rating(商品打分)中,她给你打了5分。而第5号id的评论呢?‘This one is not very petite.’Petite这单词咖哥真的不大认识,但是人家一定是说你这个东西—不怎么合适!因此,这条评论后面的Rating是2。”</p>
<pclass="content_105">“对。”咖哥说,“一个人心里面想的东西范围那么广,可以说太难猜了,为什么正确答案最后却总是能够被猜中?其实答题者应用的策略就是决策树算法。决策树(Decision Trees,DT),可以应用于回归或者分类问题,所以有时候也叫分类与回归树(Classification And Regression Tree,CART)。这个算法简单直观,很容易理解。它有点像是将一大堆的if…else语句进行连接,直到最后得到想要的结果。算法中的各个节点是根据训练数据集中的特征形成的。大家要注意特征节点的选择不同时,可以生成很多不一样的决策树。”</p>
<pclass="content_105">咖哥说:“很好,你还记得,就代表上一课我没有白讲。多数情况下的Bagging,都是基于决策树的,构造随机森林的第一个步骤其实就是对多棵决策树进行Bagging,我们把它称为<spanclass="bold">树的聚合</span>(Bagging of Tree)。”</p>
<pclass="content">其中,base_estimator__max_depth中的base_estimator表示Bagging的基模型,即决策树分类器Decision Tree Classifier。因此,两个下划线后面的max_depth参数隶属于决策树分类器,指的是树的深度。而n_estimators参数隶属于Bagging Classifier,指的是Bagging过程中树的个数。</p>
<pclass="content">GAN是由Ian J.Goodfellow等人在2014年提出的。2016年的一个研讨会上,Yann Le Cun将GAN描述为“过去20年来机器学习中‘最酷’的想法”。它的基本架构是两个神经网络在类似游戏的设定下相互竞争。举例来说,博物馆里有一批名画,包括达·芬奇的《蒙娜丽莎》之类的画作。这批名画就作为训练集。那么一个神经网络(生成器网络)学习了这些名画,就开始制造赝品;而另一个神经网络(判断器网络)则负责鉴定,分辨这个画是来自博物馆的原始数据集,还是来自造假网络的伪造画作。</p>
<pclass="content_105">介绍完冰湖挑战小游戏,咖哥忽然拿出一本看起来是英文的书,向大家比划了两下。同学们瞥见书名是《The Road Less Traveled》,作者是M·斯科特·派克(M.Scott Peck)。小冰想起同学圈里盛传咖哥英文很差,四级都没过,心想这样的咖哥还能够读英文书,不禁啧啧称奇。</p>
<pclass="content">强化学习的热潮始于Deep Mind团队在《自然》杂志上发表的一篇论文《Playing Atari with Deep Reinforcement learning》。论文中介绍了如何把强化学习和深度学习结合起来,让神经网络学着玩各种Atari游戏,使智能体在一些游戏中表现出色。后来Deep Mind团队不断地发表强化学习研究新成果,他们团队的博客的文章非常棒,把强化学习的技术细节讲解得很清楚。你们有时间可以自己去看一看。</p>
<pclass="content">Deep Q Network算法,简称DQN算法,是Deep Mind公司于2013年1月在NIPS发表的论文《Playing Atari with Deep Reinforcement Learning》中提出的。该算法是Q-Learning算法的加强版。</p>