文档章节

也谈 机器学习到底有没有用 ?

Breath_L
 Breath_L
发布于 2014/06/12 11:53
字数 2902
阅读 315
收藏 0
点赞 0
评论 0

今天看到@52CS 文字化了@老师木谈机器学习的一系列文章,其中有一篇我很感兴趣的文章《机器学习有没有用?》,文字版连接:http://php-52cs.rhcloud.com/?p=87

作为一个机器学习爱好者,也想谈一下自己目前对机器学习的看法。但事先声明,本人对机器学习研究不多,知之甚少,实践也有限,文章观点难免有狭隘之处。

1. 机器学习是有用的。

对于这个问题,其实大家都心知肚明了。看看铺天盖地的机器学习相关的论文,新闻,再看看工业界招聘的需求,动不动都会写上:有机器学习背景者优先,甚至在去年预测的十大改变未来的技术中为列第一位的就是深度学习技术。为什么这么多人关注机器学习呢?或许正是因为它有用吧。具体到自己从事的互联网行业,眼睁睁看着机器学习技术的不断改进对产品收益的不断提升,没有比这个事实更能让人信服的机器学习有用了。当然,也有一些其他领域的项目声称用了机器学习技术之后没有带来明显的变化,原因可能有二:1)这个项目不适合用机器学习技术;2)没有用对机器学习技术。

2. 机器学习的优势在哪里?

这个问题要从机器学习的具体应用方式来讲,以我看来,当前有两种大的应用方式:1)组织和拟合参数;2)学习特征表示。(这里可能有人不太赞同,如果你把特征表示也视为参数的话,第二种其实也算是第一种的特殊案例吧)。在机器学习发展不算长也不算短的几十年里,可以说第一种方式是占主导和统治地位的。而且这种思想更严重影响了机器学习的主要应用领域,如自然语言处理,图像分类等等。甚至你现在问这些领域的教授,他们解决一个具体问题时依然是这种思维。为什么这种思维影响这么大?原因有二:1)这种解决问题的思路简单但有效,看看NLP领域的paper就知道,对于不同的问题,抽象成一个机器学习可解决的问题,然后就同一个套路来求解了,而且效果往往不错。2)机器学习自身的发展过于强调实际应用和算法,理论研究相对滞后。这方面其实我没有发表意见的权利,吃过的盐太少。但听到过一些大家谈论过相关的话题,我想这个说法也不算为过。一个突出的具体事实你可以读机器学习领域的一些论文,你会发现只要实验结果好,算法能不能证明,甚至最终能不能收敛都不是大问题。就连当前最最火的深度学习,99%的人也只是看到它work,为什么work,能不能更work都没有详细的理论分析。

回到机器学习的优势这个话题。我目前狭义地认为机器学习只不过是起到了自动调节各因素权重,综合学习出来一个组合而已。它为什么有作用?不在于它比人更聪明,仅仅在于它能处理的数据量更大,超过了单个人的处理能力,也超过了多个人协作处理的能力。在当前全民大数据的背景下,机器学习也会被吵得更火,捧的更高。但目前深度学习的操作中,领军人物是一般是从第二个应用方式(学习特征表示)来发展机器学习的,这或许是思维的一个大转变。

3. 要不要深入专研机器学习技术?

说机器学习是计算机领域最为火热的topic应该没有太多人反对吧,接踵而来的就是各种相关的学习材料,书、论文、技术报告、视频,甚至大牛的对话都成为人们关注的焦点。也有一大群比我还有兴趣的爱好者来参与其中,呵呵。不过坦率的讲,我已经慢慢回归理性,对该领域的成果和人物没有之前那么崇拜了。就个人而言,我非常认同@老师木的观点,机器学习学多学深了没有太大用处,还不如多提高自己的编程能力实用。如果非要说出了子丑寅卯来,我觉得有以下几个原因:1)实践是检验真理的唯一标准,研究者给我们那些条条框框还有所谓的经验,不一定完全正确,至少某些情况下是不太对的,唯一永恒正确的就是不断的去试,好了就好了,坏了就坏了;2)机器学习是一个很跨界,很四不像的东西,你要真想想明白背后的原理,做到融汇贯通,没有概率、矩阵、统计、信息方面的大量储备以及还不错的智商和记忆力的话,想把一个很简单的东西用稍微理论的方式说明白很难。而且这个领域的新东西太多,你先要识别出哪些是灌水的,哪些是老生常谈的,哪些是真正有用的也需要花一些时间的。3)只需要熟悉几个常用的算法,然后结合你的领域知识用好他们就能做到90分。这个可以看百度少帅@李沐的那篇关于大数据特征工程的文章,机器学习的应用是否成功,很大程度上取决于特征,而不是算法。(现在在图像和语音领域,这一说法似乎可以稍微放松些,因为最近deep learning确实做了一些能对特征处理不那么依赖的工作)。

4. 深度学习还能火多久?

虽然读了一些相关的材料,但回过头来想一想,什么sparse coding、autoencoder、Word2vec、cnn、rnn等等,和最基础的聚类和分类算法也没太大的不同,唯一的不同可能就是所谓的“Deep”吗?其实这里我真想再说一下我对word2vec的理解,单从作者发布的几篇论文来讲,这个模型连Deep都称不上,严格来说跟深度学习半毛钱关系都没有。对于Deep Learning在NLP上的应用,我已经从起初的乐观到现在回归理性了,不管Hinton还是什么Bengio再寄希望于Deep Learning在NLP上取得类似语音和图像上的胜利,我至少目前和未来的一段时间内不会太盲目迷信他们的说法的。NLP的问题如@老师木所说,本质是结合上下文的消歧。最最重要的就是如何利用上下文,如何表示上下文。当前的研究工作说白了就是在这个方面折腾来折腾去,换换结构,换换粒度,其他的就是融进更多数据或者知识,仅此而已。再回头看看深度学习在图像上取得的成功,是真的达到了人类的水平了吗?张钹院士在一次讲座中曾经指出过这个问题,不是深度学习太牛逼,是之前的技术太差,深度学习技术(如经典CNN)相对之前是好了不少,但准召的绝对值也才达到刚刚能看的地步。

回答这个问题,可能跟回答统计学习在机器翻译上还能火多久有太多的相似之处,甚至就是同样一个问题。在之前十年或者更长的时间里,IBM为首的一帮人的工作让人们认识到统计学习的重要性,然后大批统计学习的东西引入到自然语言处理的各个领域,现在来看结果如何呢?NLP的那些难题解决了几个?很不幸,至少目前来看也仅仅是多收了三五斗而已。

5. 如何学机器学习?

上面的3只是说你不用太专研机器学习,但多知道点常用的算法是无害的。所以这里的学仅仅是指多学习一些能立马提升你应用机器学习技术的东西。(更多的我也不知道,我也只能算是机器学习实践者,而且还是初级的)。学习任何东西,都是因人而异,因目的而已。就看你自身是怎么样一个状态,想达到怎么样一个状态了。对于没有任何经验的同学来说,其实是最好办的,不要去跟什么最新的文章,最新的会议的,就老老实实的读一本机器学习教材,中英文的都无所谓,能读懂就行。选好一本教材,然后认真读,中途不要说什么适合不适合的东西,第一遍也不要想着完全读懂,先顺一遍下来有个印象,知道些基本概念就行。然后再对第一遍中不太懂的章节再读第二遍。这样完成一本教材之后,你知道了一些常用的算法了,然后就可以着重学习一些常用的经典的能用的算法了,不要永远只停留在K-Means和K-NN上面,好歹咱也知道点经典的SVM、RF、BP算法吧。再然后呢就看你是想做一个实践者还是研究者了,如果只是想做实践者呢,最好能动手写一两个算法,然后用它解决几个经典的实际问题,再对比着找一些这些实际问题的解决方法,看看自己的差在什么地方,别人的好在什么地方就更好了。举个实际例子来讲,你可能同样是用NB算法来识别一个垃圾邮件,别人的效果可能比你要好很多,一般两个常见的原因:1)算法的假设;2)特征的优劣。对于后者,一般就是所谓的领域知识吧,多看看别人设计的特征就知道人家对这个问题的理解程度了。对于前者呢,80%的人一般都是用非0即1的VSM,你可以假设对于每个类每个词都是一个(条件)独立的变量,服从伯努利分布,这样就有M(词的个数)只有两面的骰子。每个邮件用这些骰子来产生,产生哪个词就用哪个骰子。而20%的人会用更合理的假设,所有的词是一个multi-nominal的分布,每个邮件只是用同一个这样的骰子来产生。对于很多场景来说,后者往往是有效的。至于为什么有效?理论上我也没太明白,但实际效果是被不少人验证过的。

最后,写了满纸的荒唐言,如果有大牛看到了,还望轻喷!

© 著作权归作者所有

共有 人打赏支持
Breath_L

Breath_L

粉丝 221
博文 20
码字总数 26444
作品 0
朝阳
程序员
深度学习VS机器学习——到底什么区别

摘译自文章:https://www.analyticsvidhya.com/blog/2017/04/comparison-between-deep-learning-machine-learning/ 最近在听深度学习的课,老师提了一个基本的问题:为什么会出现深度学习?或...

Coding羊 ⋅ 03/20 ⋅ 0

周志华:满足这三大条件,可以考虑不用深度神经网络

出品 | AI科技大本营(公众号ID:rgznai100) AI科技大本营按:4 月 15 日举办的京东人工智能创新峰会上,刚刚上任京东人工智能南京分院学术总顾问的周志华教授做了《关于深度学习一点思考》...

AI科技大本营 ⋅ 04/16 ⋅ 0

周志华最新演讲:深度学习为什么深?有多好的人才,才可能有多好的人工智能

昨天,2018京东人工智能创新峰会举行,京东集团副总裁、AI 平台与研究部负责人周伯文揭开了京东技术布局下的 AI 战略全景图。这个全景图概括起来说就是“三大主体、七大应用场景和五个人工智...

技术小能手 ⋅ 04/16 ⋅ 0

满足这三大条件,可以考虑不用深度神经网络

出品 | AI科技大本营(公众号ID:rgznai100) AI科技大本营按:4 月 15 日举办的京东人工智能创新峰会上,刚刚上任京东人工智能南京分院学术总顾问的周志华教授做了《关于深度学习一点思考》...

gitchat ⋅ 04/28 ⋅ 0

机器学习/深度学习书单推荐及学习方法

所谓的“大数据”在近两年来极其火爆,甚至连街头巷尾的买菜大妈都知道。大数据最根本的基础是机器学习/深度学习,然而很多程序员们想要从事数据岗位的工作却不知如何下手。 数学需要吗?需要...

valada ⋅ 04/12 ⋅ 0

成为技术老大技术管理篇5一技术演变史(19)

上一篇我们聊了云计算和5G的话题。今天,我们继续来聊另外两个现在热议的技术趋势。 人工智能 人工智能实在是太火爆的话题了。好像所有的问题,只要采用了人工智能的手段都可以一劳永逸的解决...

铁棍山药 ⋅ 05/27 ⋅ 0

1- Python3入门机器学习经典算法与应用-课程介绍

python3玩转机器学习 到底什么是机器学习? 让机器去学习 传统的算法课程中写的代码,是让机器去执行 最早的机器学习应用 - 垃圾邮件分辨 一封邮件是垃圾邮件还是不是垃圾邮件 传统的计算机解...

天涯明月笙 ⋅ 04/14 ⋅ 0

AI快速入门学习的经验积累-最佳学习路线图谱梳理

一 最难的一件事 要成为大牛,其实不难,只需要做一件事 -- 学习;然而其实也很难,因为必须做到一件事 -- 坚持学习。无关智商,无关信仰,能否坚持到底,至关重要。 白天要上班,往往要加班...

ebzxw ⋅ 05/13 ⋅ 0

qmake 乱乱乱谈(三)

接前面的qmake 乱乱乱谈(一)以及qmake 乱乱乱谈(二),本文看看qmake中的函数(Manual中有的就不重复了)。 函数分两种: 内置函数 (qmake Manual中列出的属于此类) 自定义函数 (通过defineRep...

晨曦之光 ⋅ 2012/05/08 ⋅ 0

大数据、人工智能、机器学习、深度学习,这些到底在说什么?

1,大数据、人工智能、机器学习、深度学习的关系。 大数据,或者说大数据分析平台,更具体一点就是大数据分析PaaS平台,其实是一种针对需要处理海量数据统计分析的PaaS云平台。 大数据学习可...

卢家大少 ⋅ 06/06 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JavaScript零基础入门——(八)JavaScript的数组

JavaScript零基础入门——(八)JavaScript的数组 欢迎大家回到我们的JavaScript零基础入门,上一节课我们讲了有关JavaScript正则表达式的相关知识点,便于大家更好的对字符串进行处理。这一...

JandenMa ⋅ 今天 ⋅ 0

sbt网络问题解决方案

转自:http://dblab.xmu.edu.cn/blog/maven-network-problem/ cd ~/.sbt/launchers/0.13.9unzip -q ./sbt-launch.jar 修改 vi sbt/sbt.boot.properties 增加一个oschina库地址: [reposit......

狐狸老侠 ⋅ 今天 ⋅ 0

大数据,必须掌握的10项顶级安全技术

我们看到越来越多的数据泄漏事故、勒索软件和其他类型的网络攻击,这使得安全成为一个热门话题。 去年,企业IT面临的威胁仍然处于非常高的水平,每天都会看到媒体报道大量数据泄漏事故和攻击...

p柯西 ⋅ 今天 ⋅ 0

Linux下安装配置Hadoop2.7.6

前提 安装jdk 下载 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz 解压 配置 vim /etc/profile # 配置java环境变量 export JAVA_HOME=/opt/jdk1......

晨猫 ⋅ 今天 ⋅ 0

crontab工具介绍

crontab crontab 是一个用于设置周期性被执行的任务工具。 周期性执行的任务列表称为Cron Table crontab(选项)(参数) -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该...

Linux学习笔记 ⋅ 今天 ⋅ 0

深入Java多线程——Java内存模型深入(2)

5. final域的内存语义 5.1 final域的重排序规则 1.对于final域,编译器和处理器要遵守两个重排序规则: (1)在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用...

江左煤郎 ⋅ 今天 ⋅ 0

面试-正向代理和反向代理

面试-正向代理和反向代理 Nginx 是一个高性能的反向代理服务器,但同时也支持正向代理方式的配置。

秋日芒草 ⋅ 今天 ⋅ 0

Spring 依赖注入(DI)

1、Setter方法注入: 通过设置方法注入依赖。这种方法既简单又常用。 类中定义set()方法: public class HelloWorldOutput{ HelloWorld helloWorld; public void setHelloWorld...

霍淇滨 ⋅ 昨天 ⋅ 0

马氏距离与欧氏距离

马氏距离 马氏距离也可以定义为两个服从同一分布并且其协方差矩阵为Σ的随机变量之间的差异程度。 如果协方差矩阵为单位矩阵,那么马氏距离就简化为欧氏距离,如果协方差矩阵为对角阵,则其也...

漫步当下 ⋅ 昨天 ⋅ 0

聊聊spring cloud的RequestRateLimiterGatewayFilter

序 本文主要研究一下spring cloud的RequestRateLimiterGatewayFilter GatewayAutoConfiguration @Configuration@ConditionalOnProperty(name = "spring.cloud.gateway.enabled", matchIfMi......

go4it ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部