一小时从函数到Transformer!一路大白话彻底理解AI原理

原视频内容展开视频
  • Deepseak has gained immense popularity, even reaching older generations.
  • Many people find themselves caught between watching short videos and not wanting to spend too much time learning from scratch.
  • A new series of videos will unpack Deepseak and related concepts in machine learning and deep learning in a balanced manner.
  • We will explore the relationship of variables through symbolic representation, evolving from early symbolic AI to modern connectionism.
  • The journey will simplify complex ideas, such as the role of activation functions in neural networks.

Deepseak最近火出圈了,连我老了都知道了,不过可能不少人有这样的两难困境,既不想一直看一些几分钟的快餐视频,因为不论看多少很多问题还是搞不明白,但是又不想花太多时间从头开始学,因为整个AI的知识体系实在是太庞大了。

所以我决定做一个小的系列视频,把Deepseak以及之前设计到的机器学习,深度学习等知识,从头讲一遍,做到既快又慢,既深入又浮浅,既有趣又严肃。

有人说你说的这些都是什么乱七八糟的呀,别管了,我们直接进入正题吧。现在你要做的唯一一件事就是清空大脑,忘掉所有你曾经熟悉的或不熟悉的概念,然后在你脑海中就只留两个词,一个是我的名字,另一个就是我们这趟旅行的出发点,寒树。

后面所有一切的前提是,你要相信这个世界上的所有逻辑或知识都可以用一个寒树来表示。那我们只需要将现实世界抽象为符号,再设置好一些运算规则,也就是寒树,最后算出来结果,反过来解释现实世界就可以了。

比如说输入直角三永形的两个边场,根据勾股定理,就可以得到斜边的边场。再比如输入物体的质量和加速度,根据牛顿第二定律,就可以得到物体施加的力。这就是人工智能早期的思路,符号主义。

但这条路走到头了,很多问题人类实在是想不出怎么写成一个明确的寒树,从上帝视角看就是人类还是太菜了。比如说一个简简单单的,识别一张图片是否是猫?对人类来说可能简单弄爆炸,但是要让计算机运行一段程序来识别,那一下子就变成了一个实施技难题。

就连有着明确语法规则和辞典的翻译寒树,上前没有办法做到足够丝滑,让我更别说复杂多变了人类智能了。既然不知道这个寒树长什么样,怎么办呢?那就别硬找了,换个思路。

我们先从一个简单的例子入手,比如我们知道一些x和y的值,我们想找到y和x的寒树关系,你有什么办法呢?有人说这不就是y等于2x吗?啥都能看出来,没错,这就是符号主义的思想,觉得事件万物都能找到背后明确的规律,但假如我们一开始没有找到这个规律怎么办呢?

比如说下面这组数就不能一眼看出来,那就用人类优势以来最具智慧的办法,猜一。我们先把这个x和y放到坐标轴上,先随便猜一下,比如说寒树关系就是y等于x,也就是这里的w和b分别是1和0,然后我们一点点调整这个w和b,使得这条直线越来越贴近真实数据,最后发现完全吻合了,行就它了。

但有的时候可能很难找到完全吻合的寒树,比如说这样一个数据,那和怎么办呢? 没事那就简化一下问题,大差不差能近似就行了,别要求那么多。

我们的做法仍然是一点点调整w和b,看差不多的时候就停下来。这就是现代人工智能的思路,猜和简化问题,说白了实际上就是累白烂了,承认自己太菜了,找不到精确的寒树了。

那就找一个从结果上看大差不差的寒树,然后联盟带猜逐渐逼近真实答案就好了。这种区别于早期人工智能符号主义的新思想叫做连接主义,我们不再追求找到那个精确的寒树关系,而是通过简化寒树并试图寻找一个足够接近真实答案的近似解。

有人说这联盟带猜的靠谱嘛,一看就不是什么正路子。没错,在连接主义成为主流之前,很多人工智能的专家也是这么想的。但就是这样靠联盟带猜的办法,我们居然可以用很少的参数轻松实现手写数字识别这样的任务。

正是这种方式在很多地方证明了它的有效性,人们才开始重视起来。回到正题,刚刚我们举的例子都比较简单,只用直线方程就可以表示了。但假如数据稍稍变化一下,就会发现,不论怎么调整这里的W和B,好像都无法接近真实的数据。

这个时候就需要让这条直线弯一弯了,换句话说就是,我们需要从原来的线性寒树进化到非线性寒树了。那我们就来研究一下,怎么把原来这个原本线性的寒树变成非线性的呢?很简单,在这个寒树最外层再套一个非线性的运算就可以了。

比如平方,比如赛,比如E。这就是激活寒树,它的目的就是把原本死气沉沉的线性关系给盘活了,变成了变化能力更强的非线性关系。

听到非线性关系的同学千万不要害怕,常用的激活寒树都简单到爆炸,但是就是能起到很好的效果。好了,回到这个新的寒树形式,我们之前仅仅有一个输入的变量就是X,但实际上可能有很多输入,所以这里的每一个X都要对应一个W,像这样。

在着呢,有的时候只套一层激活寒树,还是没有办法达到很好的效果,也就是说这个曲线弯的还不够灵活。那这要怎么办呢?很简单,我们把刚刚这一大坨当作一个整体,在此基础之上再进行一次线性变换,然后再套上一个激活寒树,这样就可以无限套娃下去了。

通过这样的方式,我们就可以构造出非常非常复杂的线性关系,而且理论上可以逼近任意的连续寒树。当然了,这样写下去实在是太阳人头大了,普通人看个两层估计脑子就炸了,所以我们得换一种更傻瓜的、更直观的形式。

回到最初的形式,我们把这样一个线性变换套一个激活寒树,画成下面这样,左边是输入层,只有一个输入X,右边是输出层,只有一个输出Y。

我们把这里的每一个小圈圈叫做一个神经圆,当然这里我不建议你把它跟生物的神经圆相类比,因为它们两个71毛钱关系都没有,看似很形象,但实际上反而会影响理解。

总之,就是这样两个圈圈一点就表示上面一个寒树关系。刚刚我们说输入可能有多个,所以对应的变化就是输入层变成了多个,像这样。

我们还说可以继续在外层不断的套线性变换再套激活寒树,那么每套一层就相当于神经圆水平方向又扩展了一个。 当然扩展之后,中间这一层就不再是最终的输出了,而是包裹在了一个很复杂的寒树变换之中,看不到,我们管它叫做隐藏层。

而整个这一大坨神经圆互相连接形成的网络结构,就叫做神经网络。好,接下来我们看一下寒树和神经网络的对应关系。

首先有两个输入变量,一个是X1,另一个是X2,他们构成了输入层。然后X1X2进行一次现形变换,再进行一次激活寒树,就得到了隐藏层A。这个A对应的就是上面这一大坨表达式,那我们把它当做一个整体,继续进行一次现形变换和一次激活寒树。这就计算出了最终的输出层Y。

重新再看一下这个过程,从神经网络的这个图来看的话,似乎就像是一个信号从左到右传播了过去。这个过程就叫做神经网络的前向传播。实际上就是一点点分布着把一个寒树的值计算出来的而已。

神经网络的每一层神经圆都可以无限增加,同时隐藏层的层数也可以无限增加。所以神经网络的每一层圆就可以构成一个非常非常复杂的非线性寒树了。然而,这个寒树可能非常复杂,但是我们的目标却非常简单和明确,就是根据已知的一组X和Y的值,猜出所有这里的W和B都是多少。

当然了,我们一开始举的例子非常简单,光靠肉眼法就能慢慢猜出答案了。但是现在有这么多参数可能就无法平感觉猜了,那这要怎么办呢?预知后事如何,切听下回分解。觉得好的话给个三连杯。

回顾一下,这个视频的内容非常简单,我们从一个最开始的信念,寒树开始将起。早期的人工智能相信可以找到精确的寒树来表示一切。但因为这个世界实在太复杂了,所以人们就放弃了,转向寻找一个足够接近真实答案的金四解。

那我们通过寻找一个线性关系来举例,如何去猜测W和B的值。后来发现线性关系太过简单,不足以描述更复杂的关系,于是引入了非线性的激活寒树。通过线性变换和非线性激活寒树的不断组合和套娃,可以表达很复杂的关系,但是写成寒树看太噁心了,所以就化成了神经网络这种形式。

那恭喜你,从寒树到神经网络的这条路,已经被你高动了。剩下的所有乱七八糟的知识,都仅仅是为了算出这个W和B而已。