数据驱动编程和机器学习的常见误解以及如何优雅的跳这个坑
投稿 @ 2017.07.18 , 01:50 下午# 这费是法 投稿:看到前面这篇算法之国:中国人工智能的兴起,写了这篇原创
Receptive fields of single neurones in the cat's striate cortex
D. H. Hubel and T. N. Wiesel(59年的论文,应该是公共领域了)
我们离真正的通用人工智能还非常非常远,但是进步的非常非常快。现在两个极端,谈AI色变,要被skynet干掉了;AI是噱头,没用,过两年就消停了。都不好,都源自不了解。所以原创一个简单的介绍内容。以及说一说如果真的想跳这个坑,怎么优雅而高效的跳进去。
现在所有的所谓AI都应该被称为机器学习或者数据驱动编程。真正这个领域里面的人极少会说自己是搞AI的,最多最多带上学习两个字,机器学习,或者模式识别这样的。最热门的图像识别领域其实是一个非常细分的专业领域,但是其中卷积神经网络的思想在一定的范围内可以被视为通用的机器学习技术。以猫图为例,我们不再是通过结构化的代码去实现分辨图中是否有猫,而是实现一个机器学习的范式,用数据来驱动代码对猫图进行判断。
这些工作需要大量的经过标注的数据集比如imageNet,通常的样子是这张图里有猫,这张图里没有猫,然后去训练对应的学习结构。当然这样的思想可以用在别的领域。但是需要注意的是,这里的关键在于完全信息。简单的判断就是,如果你是个人,给你这个数据,你能不能判断出来标记。给你看有猫的图,你能说,这里有猫。给你看没有猫的图,你能说,这里没有猫。给你看“学 小组”,你能知道很可能是“学习小组”。另一个领域是非完全信息的领域,那就会面临其他的很多问题,最近打扑克的那个也是很厉害的。
前面说的都是监督学习,你需要提供有标记的数据集。那么未来的方向一定是非监督学习。我们直接给图,不再提供图里面“有什么”这样的标记。目前来看,最厉害的微软研究院的resNet可以在图像识别方面做到超越人类的识别正确率,但是需要注意的是,这只是图像识别这样一个非常细分的领域。这有巨大的价值,简单的例子,把猫换成CT片,标记换成有恶性病变还是么有恶性病变,你就不用在拿着CT片子去找医生看做诊断,训练好的卷积神经网络能够以比任何医生还要高的准确率来作出诊断。
这个领域和神经生物学,认知理论,语义处理等领域有非常多的交叉;而且实践起来相对的简单,能够迅速的转化为经济收益,所以大量的极其聪明的人加入其中。竞争极其激烈,以谷歌为例,最聪明的人,用着跑在自己开发的TPU(张量处理器)集群上TensorFlow构建的百多层深的卷积网络。任何严肃的想要加入这场竞争的人大概都需要想想在这些环境下自己客观的定位是什么。
接下来讲讲怎么优雅的跳这个大坑。首先这个领域太热,所以一定要专业,不要去吃二手粮,要直奔大牛。这个领域非常开放,大部分的论文和代码都是开放的,耐心去看吧,看个半年,从开始到最前沿的东西也就看下来了。
按重要性排序的前提条件:
1、能科学的访问某著名网络公司。
2、英文听读没有问题,可以听专业课的程度。
3、线性代数很重要。
4、Git和Github要会用,至少知道怎么commit和怎么回滚。
5、C++至少明白1分(要记住大神也就明白8分)。
6、Python要用好。
7、Linux要会用。
8、StackOverflow要善用。
9、朝死了搜索,找领域大牛的论文囫囵完了顺着参考文献□。
入门很重要:
1、Coursera上面吴恩达的课程可以作为非常好的入门
2、接下来是多伦多大学Hinton大神的神经网络课程可以作为下一道菜
3、斯坦福李飞飞的CS231n课程是非常好的图像识别的课程
上面套路下来基本就在坑里面了,接下来你需要接着往下挖。这里需要问一个问题,为什么要接着往下挖?
数据!数据!数据!如果你的工作中接触到大量的数据,而且原有的处理方式可以有优化空间,那你就使劲挖吧,将会带来实实在在的收益。但是如果你纯粹的想搭AI这班车,开头已经说过了,这班车不存在。
PREV : 对孩子来说,玩多少电子游戏是“太多”?
NEXT : 如果你总是没时间,试着慢下来