说是一课机器学习,其实只讨论神经网络。神经网络首先被看作是一种「学习算法」。因此,我们有必要先对「学习」做一番探讨。
何谓「学习」?
我们先会想一下日常中人们对学习的看法。似乎听课、理解、刷习题,而且题做得越多,考得越好,就是人们对「学习」的认识。虽然简单,但这个角度抓住了可以量化的几个点:对一个特定的任务,喂给机器一些历史数据,然后给张卷子,考试的分数就是学习的成绩。这个定义好像屁都没说嘛😒 其实这里面有几个要点:
- 关于数据。我们只是喂数据,并没有教它怎么做卷子(应对未知数据)。如果像「我们定义了函数,再叫机器跑[1]」那样,其实已经用逻辑暗含了「教它怎么做卷子」。其中的区别很简单:如果只是给出部分数据,就能猜测全部数据的分布,那就是「学习」;而如果已经给出了全部数据(哪怕是逻辑暗含的),那顶多算作「照章办事」,算不得「会学习」。
-
关于假设。我们并非什么都没教机器,叫它瞎猜。我们会告诉它,怎么去猜数据的整体模样(比如线性拟合,我们假设数据是线性的,只不过掺杂了噪音而已)。
-
关于学习难度。学习难度大不大,取决于机器学习的数据是不是够底层。如果是一些已经提取好的「特征」,那么学习的难度就不大。而如果是一堆没加工过的数据,那么难度就很大。比如:要教机器「数照片上的人头」,如果把人头都标记好,那么就比较简单;而如果只是给了照片的像素值,那就相当难了。
-
最重要的一点,关于经验。如果随着经验的增长(输入的增多),预测能力得到加强,那么就是「会学习」。可以说,这是最核心的一点,也是与人们理解最为相悖的一点:谈起学习,人们总是不自然地和「知识体系」啦、「逻辑」啦……联系在一起。人类的潜意识里似乎觉得,经过训练,脑子里不新生出个什么东西来,就不叫学习。直觉是对的。后面我们会看到,虽然看起来,神经网络只是在做分类,但内部确实形成了一个新的、随经验改善的模型。同时,我们也会看到,神经网络在逻辑推理面前将会遇到巨大的困难。
神经网络「神」在哪?
一天,我和师兄讨论「深度学习和之前那些数据仓库、数据挖掘……有什么不同」。突然意识到,能不能「自动构建一个模型揭示内在结构」是核心区别。以往的数据分析方法使用的特征都是人工设计的,而神经网络可以做到自己构建一套层级的内部表征。路子找对了,这才是我们为什么能感到现在的机器真正智能起来的主要原因。
学习,最本质的不就是自我建立一套内在表征去揭示其内在结构?以学习书法为例:我们知道,书法当中「间架结构」是第一重要的。所有的练习都是在熟悉掌握字的间架结构。比如下面的「都」字,右包耳相对左边「者」字的位置、大小、倾斜角度,都会影响字的美感。
映射到一个五维空间<x, y, x^2, xy, y^2>
(其实就是变换为X + Y = 1; X = x^2, Y = y^2
)后发现,咦,线性可分了👻
这就是支撑向量机的做法。但这种做法技巧性太强,数学艺术上的种种优势反而成为了工程推广上的弱势[2]。
而做层级结构不仅结构简单,而且可以重复利用下层的抽象单元(或者叫「表征(representations)」?「特征(features)」?)。要知道,进化的成本是很高的,不管从时间跨度、还是参与个体消耗的能量看。重复利用大为节省了「构建成本」。这篇文章介绍了人脑为什么要采用层级结构。
而坏处是:参数过多不容易调试(当然后期也找到了一系列优化的办法:反向传播、残差学习)。
神经网络做非线性映射的办法很简单:线性聚合 + 非线性变换。非线性变换从最初的「阶梯函数」转而使用「Sigmoid」是为了方便求导,而再到「ReLU」是为了减弱「梯度消失」。整个神经网络算法发展的历史,推荐大家去看王川的「深度学习有多深?学了究竟有几分?」(目前连载到二十五话了),写得相当清晰。
神经网络的基石
怎么寻得最优值——梯度下降思想指导下的反向传播算法
再写一遍有点小麻烦,大家还是将就看吧。
先验知识的作用
YJango 的公开课已经讲得够透彻了,没有什么可补充的了。
简单来说,任何新型网络的构建都建立在某种对研究对象的洞见之上。意识到世间万物都是以层级的形式搭建的,这就意味着「很多单元是可以重复利用的」。这种思路造就了「卷积神经网络(CNN)」。虽然人眼识别边缘的原理和「卷积」没什么关系,只不过是受到周围的视觉神经元压制的自然结果。
同样,时间上的重复造就了「循环神经网络(RNN)」。
逻辑的位置
你可以验证一万个1 + 2 = 2 + 1
、2 + 4 = 4 + 2
…… 这样的算式,但远远不等于你证实了交换律a + b = b + a
。逻辑推理,这种处理无限的神武是怎么被人类 get✔︎ 的,至今仍是一个谜。
虽然 Domingos 在他那本《The Master Algorithm》里提出已经解决了这个问题,但以我目前的智商只能说「我读书少,你不要骗我哦」。
机器学习能干啥?
我相信,机器学习的「势」到了。势到了,实现未来的路就不止一条。比如:假如无人自动驾驶被智子锁死(这个梗大家应该懂吧😏),永远都没有可能实现 100% 的安全,研发无人驾驶还有意义吗?当然有。首先,自动驾驶这条路走不通,我们可以用 VR + 5G 实现司机和汽车的分离,一样可以达到无人驾驶的效果。其次,如果自动驾驶始终不安全,怎么都得配个安全员,这还有价值吗?会开车的老司机可能一个月值 ¥3000 ,但一个只需要踩刹车的安全员可能只需要 ¥1000 。你说有没有价值?!
同理,我们不需要每一个机器学习算法都像 AlphaGo 那样超越人类,仅仅只需要达到比人类略差的程度,就足够产生巨大的经济价值了。比如:我隔一分钟煎一个蛋🍳,煎上十个,过程录像,喂给机器。下次我煎蛋的时候,就可以通过 Google Class 那样的眼镜实时监控蛋有几分熟。至少在煎蛋这个领域,我很快就能成为专家。
我们一直错误地认为「教给别人半桶水,自己首先得有一桶水」。但,优秀的老师,更确切地说是优秀的「教练」,大部分时候只是起到一个「实时反馈」的作用。有了机器学习这位「小教练」,我们可以加速几乎所有的学习(因为初期的学习都只能是技术的训练,远远达不到艺术的层面)。那时,人人都是全能的「超人」。试想一下那个人人都是「超人」的世界,想想还是有点小激动呢😍
机器学习最初应该会在教育领域获得巨大的应用。这里的教育可以泛指任何技能的学习。其成效关键在于一套游戏化的课程体系,这也是人类可以也应该大有作为的一块。
之后,机器学习还是会回到人类创造人工智能之初的理想——探究人脑的运转机制。回顾神经网络的发展历史可以看到,每一次人们对人脑的某种洞察,都会导致学习效率的极大提升(从「Dropout」到「残差学习」无不如此)。入宝山岂能空手回?人脑的奥秘一定会被揭开。当然,这之间还有一段远超乎我们想象的距离。难度参看 WaitButWhy 的这篇《 Neuralink 和大脑的魔幻未来》。
关于学习,最后的最后,想起前几天老妈对我说的「又去买这么多书!读这么多书,能挣大钱不?!」
学习不能当饭吃,也许只能带给你虚假的安全感。哈哈哈哈💃「呃~~我去拍照也能养活自己😤」
网友评论