前几天有个读者给我发私信,说想学人工智能,但打开教程第一页就看到一堆名词,什么神经网络、深度学习、监督学习,直接给他劝退了。他问我:这些东西到底有没有一个能听懂的入门顺序?
说实话,我特别理解这种感受。我自己刚开始接触人工智能的时候,也干过一件挺蠢的事,花了两周时间啃一本讲算法原理的书,结果连人工智能到底能干什么都没搞明白。后来我想了想,问题出在我一开始就跳进了细节里,没有先把基础概念的地基打好。所以今天咱们不聊复杂公式,就说说一个初学者到底该先搞懂哪些东西。
很多人以为人工智能就是让机器变得像人一样聪明,这个理解其实不太准确。至少从目前的技术来看,人工智能做的事情更具体,它是在帮我们从大量数据里找出规律,然后用这些规律去预测或者判断新情况。
举个例子,你给电脑看一万张猫的照片,它一开始什么都不知道。但通过某种方法让它反复看,它慢慢就能总结出猫的特征,比如有胡须、尖耳朵、圆眼睛。下次你再给它一张新照片,它就能判断这是不是猫。这个从看照片到学会判断的过程,就是人工智能最基本的逻辑。
所以学人工智能的第一件事,不是去搞懂某个算法怎么推导,而是先建立一个认知:所有人工智能技术,本质上都是在做一件事,就是从数据到规律再到预测。你把这个链条理解了,后面学什么都容易往上面挂。
数据是人工智能的原料,但不同的数据用法对应着不同的学习方式。初学者最容易搞混的就是这三个:监督学习、无监督学习和强化学习。
监督学习,说白了就是有人告诉你正确答案。比如你给孩子看图片,告诉他这是猫那是狗,看多了他自然就会分了。人工智能也一样,你给它的数据里带着标签,它学起来就有参照。
无监督学习就不同了,没人告诉它答案。你扔给它一堆数据,让它自己去找规律。比如电商平台把用户分成不同的群,它事先并不知道该怎么分,完全是靠数据之间的相似性自己摸索出来的。这招在客户分群、异常检测上用得特别多。
强化学习呢,更像是训练小狗。它做对了你给奖励,做错了给惩罚,通过不断地尝试,它慢慢就学会了怎么做才能拿到最多的奖励。自动驾驶、下棋程序用的就是这个思路。
你不需要一开始就把这三种学习方式的数学推导搞懂,但一定要能用自己的话把它们的区别讲清楚。这是我踩过坑之后最深的体会,概念清晰比公式熟练重要得多。
很多初学者会把这两个词混着用,其实它们有包含关系。神经网络是一种模仿人脑神经元连接方式的计算结构,而深度学习指的是用很多层的神经网络来做事情。层数多了就叫深度,就这么简单。
你可以把神经网络想象成一个流水线。原料从一头进去,经过一层又一层的加工,最后从另一头出来一个结果。每一层都在对数据进行某种处理,层数越多,能处理的事情就越复杂。深度学习的深度就体现在这里。
我见过不少初学者一上来就去推导反向传播的公式,那个方向其实是反的。先理解神经网络在干什么,再去看它怎么调整参数,顺序不能乱。
需要,但不是一开始就需要。入门阶段最重要的是理解概念和动手跑通几个小项目,等到你想深入调优模型的时候,数学功底才会变成瓶颈。所以别被数学吓住,先用起来再说。
概念聊完了,接下来这一步特别关键。很多人学人工智能的方式是看视频、看书、看文章,看完觉得自己懂了,但真让他动手就懵了。
我的建议是,搞懂上面那几个概念之后,立刻去找一个最简单的手写数字识别项目来做。不要自己从头写代码,找现成的教程跟着跑一遍。你会在跑的过程中遇到各种报错,而解决这些报错的过程,才是真正学习发生的时候。
跑通一个项目之后,试着改一改参数,看看结果会变成什么样。比如把训练次数调大或者调小,观察准确率怎么变。这种实验做多了,你对人工智能的理解就不再是纸上谈兵了。
我自己就干过一件挺傻的事,有个参数一直没搞懂它是干嘛的,我就把它从默认值改成了一个特别大的数,结果模型直接不收敛了。当时我慌了一下,但正是那次翻车让我彻底记住了这个参数的作用。
最后说几个初学者容易走弯路的地方。
一个是纠结于选哪个编程语言。其实入门阶段用哪个都行,关键是先把人工智能的那套思维方式建立起来。另一个是花大量时间比较各种框架的优劣,说实话,等你把基础概念搞定了再选框架也不迟,前期用最主流的那个就行。
再一个就是收藏了无数教程但一个都没看完。这个我太有发言权了,我曾经收藏了大概四十多个教程,真正完整跟下来的不到五个。后来我给自己定了个规矩,一次只看一个教程,看完了再找下一个。这个习惯帮我省了很多时间。
学人工智能这件事,入门阶段最重要的不是学了多少算法,而是建立一张清晰的概念地图,知道每个东西大概在什么位置、能干什么。有了这张地图,后面你想往哪个方向深入,都不会迷路。
你现在卡在哪一步了?是概念理不清还是代码跑不通?可以留言说说,我看看能不能帮上忙。