相信大部分的读者跟我一样,是从2016年3月开始,一个叫阿尔法狗的玩意儿横空出世,才知道世界上有这么一群人,在做这么一件事,叫做人工智能,简称AI。这件事影响重大,我的一个同学居然因为这件事,开始学习了 下!围! 棋!(MD不应该是开始学人工智能嘛...)。对于当时还在读研究生的我来说,其实并没有什么深刻的理解,只是出于一个理工男的好奇心,上网搜索了一些相关的信息,算是有了一个基本的了解。以当时的基础和学识水平,当看到什么各种英文简称,什么AI呐,BP呀,CNN啊,RNN啦,GAN之类之类的时候,心中只有三个字:“NMB”。不过还是有一些良心发现的人,说人话的人,算是给我的启蒙带来了一些帮助。通过一段时间的学习,和想要炫耀的强烈意愿,终于获得了一些谈资,能够在跟同学们闲扯的时候,装的好像真明白点儿什么似的(虽然当时还在操心六级能不能过的事儿...)。
如今正式的学习这些内容半年多了,走了不少弯路,也对这个行业,这一门技术有了一个大概的了解,有了一点个人的浅见(确实不是谦虚...)。今天拿出来跟大家分享一下,希望能够给想要学习这些内容的小伙伴们一些帮助和建议。
好了,言归正传......
1.认识AI
似乎这是一个必须要搞清楚的问题。AI就是artificial intelligence的简写,我们把它翻译为“人工智能”。事实上,AI就是要通过人工搭建网络的方式,来模拟人类认识世界的过程(事实上还是不一样),给与计算机智能(主要是学习能力)。
这就要从开山鼻祖图灵老爷子说起了,早在老爷子还活着的时候,就在思考一个问题,是否有一天机器能像人一样思考。而第一批投身到机器学习这一领域的人其实早在上世纪60年代就开始了各种研究,发展过程我就不细说了,感兴趣的读者可以自行搜索,网上有一堆(虽然偶尔说法不太一致,不过无伤大雅)。
这里我主要想说一下AI技术与传统技术的区别。其实AI本质上是一种数据处理与分析技术,只不过是通过建立神经网络这种方法,对数据进行深度学习,而建立起我们需要的模型的过程。如果觉得这句话还是不好理解的话,那就举个例子:
假如:我要识别一只猫,黑猫白猫波斯猫,都是猫。现在有两种方法:
方法一:描述猫的特征,比如耳朵的形状,花色,眼睛的样子,尾巴的形状,爪子,身子,姿态,之类之类,然后将满足这些特征的玩意儿叫做猫。下次看见猫,你就按照提供的特征一一去核对,满足全部条件,就认出这是猫。按照这样的方法,你如果要认出你爸爸可能需要三年...
方法二:当你走在街上时,看到一只猫,你爸爸告诉你这是猫,下次又看见猫,你爸爸又告诉你这是猫,看了几次之后,你也不知道为什么,居然知道了什么是猫,哇哦,多么神奇。这个时候如果让你来描述什么是猫,你八成是说不出个一二三。但是这种方法很奏效。做个对比,这种方法下,你认识你爸爸可能见几面就行了。
AI 就是模拟第二种方法,利用海量的数据(图像,语音,数组等都可以是数据),让计算机自己去学习,如何将这些不同的物品区分。学习的途径就是建立各种神经网络,至于神经网络是什么,以后我会细讲。这里你就先记住这个很重要的概念就行。
2.如何学习AI
原则只有一条:理论与实践相结合。相比其他的工作来说,学习 AI 是相对复杂的,既需要一定的数学功底,也需要扎实的编程能力,还要有很强的逻辑能力,最关键的是持续的对这门技术产生兴趣。 不过...这些要求都是不定量的描述,因人而异,可能要求也没我写的这么高··· 所以建议大家有兴趣的还是要去尝试学习一下,万一你就是那个万中无一的AI奇才呢!
这里我建议大家最好还是会使用 python ,没有高大上的原因,就是因为 python 简单粗暴直接。有学过多门编程语言的小伙伴们一定有感受到这一点...真的,不骗各位···
辅助工具呢,我用的是最主流的 TensorFlow ,其他的还有caffe,keras等等... 小伙伴们可以根据对名称的好恶,自己选择,千万不用上网查哪个好用,否则布拉布拉扯一大堆,你也看不懂,到头来还是啥也不知道。所以,负责任的告诉大家,都好用,真的。但是TensorFlow的使用范围最广,资源比较多,学习成本相对较低。所以我选择 TensorFlow ,也是一点点经验。如果你是 c语言类 的忠实用户,选caffe也挺好的,完全没有问题。
此外,很重要的一点,你可能需要一台配置还可以的电脑,否则会有点慢···当然前期学习的话,用一台笔记本或者普通的电脑也是ok的,后期如果想要自己训练一些复杂的模型,还是要用GPU的。
3.开始吧
闲言碎语就不扯了,可以开始了,愿这条路上的小伙伴们都能共同进步...