AI内参_164_156_近在咫尺走进人工智能研究
你好,我是洪亮杰。
今天我和你分享的主题是如何做人工智能研究。
在前面两次的分享里,我们聊了一些在人工智能领域快速入门的捷径,以及面对不同的论文或别人分享的技术实践,我们该如何来选择技术?我们今天来看另外一个话题,如何做人工智能研究?我于初学者来说,可能很多人会觉得人工智能研究离自己比较远,在工作中一时半会儿也接触不到。
但实际上我们有必要了解做研究的一些基本原理。
而且这些思路能够应用到我们的日常工作中。
对于中高阶的工程师来说,能够在研究方向更进一步,我们就可以更好的理解优秀的学术论文是怎么写成的。
能够快速挖掘出论文的核心价值,同时也可以把自己手上的工作总结成论文发表出去,真正参与到学术社区的建设当中。
当然了,即便我们不以写论文为目的,用作研究的标准来要求自己平时的工作,也可以让很多工作更加严谨,这也是一种不错的进阶。
那到底什么是人工智能研究呢?简单来说,只要是针对某一个问题,我们有新的方法、新的见解或者是新的结果,这都是潜在的研究成果。
另外一方面,如果我们发现一个新的测试,甚至是一个新的领域,那就更具备总结出来加以发表的潜质。
那是不是已经注意到了研究的一个核心要素就是新。
这也是让很多初学者感到困惑的地方。
我们平时的很多工作看上去都那么普通,没有什么创新的地方呀。
其实,哪怕是在人工智能技术应用非常广泛的很多领域和场景,依然有相当多的地方存在创新点。
只是初学者不太容易注意到我。
这里举几个例子,你可以感受一下。
例如,一个互联网网站经常使用在线测试,也就是通常所说的AB测试来判断这个网站新功能是否好于现在的版本。
一个最基本的设置就是把现在的版本当做对照组,然后把新的功能当做实验组,分别在百分之五十的流量上运行这两个组别。
然而,在线AB测试存在一些根本上的挑战。
第一,我们举例是把整个网站流量的一半用于测试某一个组别。
而有一些小的改变,在百分之五十的流量上可能需要二到三周的时间,需要很长效果。
而在真实情况中拿出来进行。
Ab测试的流量往往是占比更小的,因此等到能够看出一个实验的效果需要很长时间,这本身就是一个非常耗时的过程。
第二,如果我们测试的功能和收入相关,那么假设对照组或者实验组有明显的收入增加或者减少观察到了这样的结果。
但是我们无法在实验的过程中动态的调整这个预先设置好的比例。
你看关于传统意义上的AB测试所面临的难题,我们这里仅仅是列举了两条,其实还有很多其他的问题。
从这些问题出发,我们是不是就可以问问自己能否找到节省AB测试时间的方法呢?能否让实验达到同样的效果,但是使用尽可能少的时间呢?能否在AB测试的过程中动态调整用户或者流量的比例呢?这些问题其实这都是研究课题。
再比如传统的推荐系统,非常适合电影推荐的场景,例如著名的net felix大赛经历了十多年的发展后,推荐系统方法重点都集中在矩阵分解这样的协同过滤的方向上。
那是不是这样的方法就解决了所有的推荐问题呢?我们试想一下,如果是电影推荐,我们作为一个用户看了纸牌屋一之后,系统就给我们推荐了纸牌屋二、纸牌屋三以及这一系列虽然有一点重复,但依然是可以接受的非常相关的推荐结果。
那么如果我们在一个电商网站上购买了一款佳能相机以后,系统依然给我们推荐类似的相机。
我们是不是就会觉得这样的推荐短期内意义不大了呢?我们可以看到推荐系统对场景有非常高的要求。
对于一些特定场景的推荐,我们无法直接照搬现有的方法。
这个时候这个场景就需要一些创新,有可能是把现有的方法进行改进和相机,也有可能是完全提出一些新的思路或新的方法。
说到这里,你是不是对人工智能研究的范围有了一个新的认识呢?按照我们在这里举例的思路,你可以观察一下自己手边的项目。
这里面或许就潜藏了不少值得研究的课题,说不定你就能发现一个新的研究领域。
由此可见,作为普通的工程师或者初学者,我们的工作中也有机会接触到研究课题和研究领域。
那么接下来我们就来看一看怎么做人工智能研究,这其实是一个非常大的话题。
今天我来给你提供一个简单的指南,要做人工智能研究,一般有这么几个步骤。
第一,好好总结一下,在当前这个场景下,我们要解决的是什么问题,也就是针对要研究的问题进行建模归纳。
回到刚才我所提到的电商推荐的例子,我们需要解决的问题是把类似的相机过滤掉。
例是推荐买了相机后,其他的附件还是要推荐相机的替代品,或者是要从根本上理解这样的情况是怎么产生的。
消费者的心理预期是什么样的。
你可以看到,即便是尝试解决同一个问题,我们也可以有好多不同的切入点。
所以最重要的第一步就是找准一个切入点。
第二,了解前人的工作,查找和学习相关文献。
相信我,即便你认为找到了一个貌似完全新的问题或者领域认真查找了相关文献之后,有很大可能你会发现其实已经有人做了一些类似的工作。
甚至你还可能发现你设想的某种方法,已经有人尝试过了了解前人工作的这个步骤。
初学者或者是完全在工业界的工程师,往往容易忽略这一步的核心,其实就是看前人在你设想的问题中是如何寻找方案的。
和你设想的思路是不是完全一致呢?通常情况下,你会发现一定的差异性。
于是基于这些差异性,你可以提出一些进阶性的创新思路。
这也是我们常说的站在巨人的肩膀上。
另外多了解前任的工作。
我们不会把自己的思想和整个大的方法论孤立开来,能够更好的融入到研究的整个社群中去。
第三,选择一种测试数据集和一些基线方法来进行比较。
无论是多么重要的新方法,也无论是什么样的新领域,如果我们不能通过一些标准的数据集,或者是构造一些可以值得信赖的数据集,而且和多种方法进行比较,那么这些创新也都无法通过检验。
换句话说,我们提出的新方法、新思路再好,必须有一个相对的比较者最好。
这个比较者是之前提出的已经使用了的,这样我们才能够更清楚的说明新的方法究竟好在哪里。
研究工作通常是了解前任工作和进行基线比较,这两点是和一般的技术分享有区别的重要标志。
这其实也是我们在上一次的分享中讲到的。
有的技术分享其实只是描述做了一件事情,或者是描述了一个系统。
我们无法真正知道这个系统的设计和整体的思路在社群中的位置,也不知道这个系统是否和类似系统进行过比较。
这其实也给我们的技术选择设置了挑战。
通过今天的内容,我们了解了研究工作的思路,把用研究的思路应用在工作中会让我们平时的技术选择更加严谨。
今天我为你梳理了进行人工智能研究的一些思路。
通过今天的内容,你会发现人工智能研究离我们并不遥远,很多场景都有可能发现新问题,找到新方法。
另外,了解一些研究思路,对我们的日常工程开发也会有所借鉴。
最后给你留一个思考题,如何来衡量我们自己做研究的价值?欢迎你给我留言,和我一起讨论。