从深度神经网络 (Deep Neural Network) 认识隐藏空间(Latent spaces)
By 高焕堂 / AI 建模师俱乐部会长
文章目录
- 前言
- 一、隐藏空间(Latent spaces)的特质
- 二、从<单层 NN 模型>说起
- 三、多层的 NN 模型
- 四、隐藏空间在 AIGC 领域的角
- 总结
前言
*** 本文摘自 高焕堂 的下列书籍 ***
*** 以及北京【电子世界杂志】连载专栏 ***
复习:空间对映
在上一集里,特别强调空间对映(Space mapping)的观念和机 制。现在,请您回忆一下(欧式)空间的观念,并且从下述的范例中, 领会欧式空间机制的妙用之处。
这个范例是:有一个学校,它有 2 万学生,其使用计算机来管 理门禁,只要听学生说出语音:<芝麻开门>。计算机录下这一小段 声音,去辨认是否为本校同学,而决定是否开门。
请您想一想,其计算机如何进行这<辨认>过程呢?如果您的 思维是:计算机会去 Database 里读取各人的声音来逐一核对。这 就误解 AI 了。传统上,计算机会去 Database 里读取各人的声音来
逐一核对,花费时间很长,反应速度太慢了。这就不是 AI。
请记得 AI 的特技就是:鉴往知来、瞬间洞察。当 AI 听到<芝麻开门>声音时,不需要去查询 Database,就能瞬间判断了。这才是 AI。为什么古典的计算机做不到呢?因为古典时代里,人们没有让计算机进行机器学习,也就是它没有<鉴古>。在 AI 时代里,其必备过程是:鉴古(即机器学习),所以它能知来(即瞬间洞察)。
AI 的关键技术在于:鉴古(机器学习)。先在鉴古(机器学习)阶段,就会收集每一位同学的声音成为<训练数据>(Training data)。让每一位学生说出:<芝麻开门>语音,重复说 5 遍,把它录制成 mp3 音檔。于是,2 万个同学,共录制了 10 万个声音(即音檔)。然后从每一个声音,萃取出 39 个特征值(如声量、音高等)。继续把每一项特征都当做数学欧式空间的一个维度。于是,上述所录制的每一个声音(即音檔)都对映到此欧式空间里的一个<点>。
所以,这 10 万的声音,就对映到空间里的 10 万个点。当 AI 机器学习完成时,这空间里已含有 10 万点,分别位于空间里的各坐标位置上。于是鉴古阶段完毕了。
接着,就进入应用阶段,又称:预测阶段。真正把 AI 模型(含这欧式空间),布署于门禁系统上。隔天早上,第 1 位学生来了,当场说出语音:〈芝麻开门〉。AI 立即从这个新录下的声音,萃取出 39 个特征值(如声量、音高等)。并且对映到空间里的一个新的点。此时空间里共有 10 万+1 个点。AI 就开始判断了。
如果这个新的点与原来 10 万个点的距离都很远,就不开门。反之,如果这新的点,很靠近这 10 万个点中的任何一个,就立即开门。这叫:瞬间洞察。过去 IT 资讯时代的计算机技术中,没有< 鉴古>。如果没有<鉴古>,就非 AI 了。以上复习您对 AI 里欧式空间角色的领会
简介<隐藏空间>
凡是 AI 生成模型(如 AIGC 的相关模型,都非常依赖关键性的空间,就是本文将介绍的:隐藏空间(Latent space),又称为:潜藏空间。一般的开发者不必去知道隐藏空间的架构及操作技巧,但建模师必需完全掌握它。隐藏空间的向量,就如同人身染色体里的基因组。
例如当今 AI 科技领域的大浪潮:AIGC。其中主要的生成式 AI 模型是:GAN、ChatGPT 和 Diffusion。其中,GAN 只要是捕捉样本空间的潜藏机率分配。Diffusion 是训练对隐藏空间(Latent Space)细微变化的灵敏度。清晰领会<隐藏空间>观念和含意,是掌握 Diffusion 的关键要素。
#=============== ============
欢迎加入…
<中国 AI 建模师俱乐部>微信群
新创期间,免入会费
询问:misoo.tw@gmail.com Melody 收
*** *** *** *** *** *** *** *** ***
一、隐藏空间(Latent spaces)的特质
隐藏空间的特质是:
隐藏空间可模拟人脑的表示方法(Latent spaces are a good model for brain representations)。 隐藏空间蕴藏直觉潜质(Latent spaces have intuitive properties)。
例如,许多人常拿西洋棋大师的眼睛观察了无数的下棋,脑海 里沉淀(浓缩)出简单的(日月)精华之道,谓之,而蕴含于隐藏空间 里。需要时,能瞬间还原出招式,进而创造出新招式,谓之。 如下所示:
隐藏空间相当于金庸小说里武林大侠的境界。唯有高度掌握 才能解释千变万化的招术。如果您对于隐藏空间还感觉很玄秒难 懂,那就可能是没有进入无招境界,对于武林高手过招,只能雾里看花了。
二、从<单层 NN 模型>说起
在前面各章的范例里,都只有建立单层的神经网络模型(NN Model), 也就是只含有一层权重(Weight)。例如,在上一章里,已经看过的范例:
兹以 NN 图形表示如下:
这个模型从 X 空间对映到 Z 空间。其含有两层(Layer)神经元:左边的 X 神经元是输入(Input)层,而右边的 Z 神经元,是输出(Output)层。然而 只有一层权重,所以通称为:单层 NN 模型。
请按下<工作分类>,ML 就会寻找出 W 和 B,如下:
然后,将 X 空间里的 4 个点(即 4 笔数据),经由 X*W+B=Y 和 Sigmoid(Y)Z 公式,对映到 Z 空间里。例如,将 X=[1, 1, 0]对映到 Z 空间, 其计算过程是:
这个模型所输出的 Z 值,可以传送给另一个模型。也就是成为另一个 模型的输入值。如下图:
此时,上一个模型的 Z 值,成为这个新模型的输入值。如下图:
于是,按下<心情分类>,来要求 ML 寻找另一组 W 和 B 值,以便将 Z 在对应到 ZO 空间里。然后输出其预测值 ZO。如下:
然后,将 Z 空间里的 4 个点(即 4 笔数据),经由 Z*W+B=Y 和 Sigmoid(Y)=ZO 公式,对映到 ZO 空间里。例如,将 Z=[0.93, 0.07]对映 到 ZO 空间,其计算过程是:
上述范例是两个单层 NN 模型的接力赛。首先训练第 1 个模型许多回 合,逐步探索 W 和 B 值,一直修正足够好的 W 和 B。此时这个模型已经 训练好,就从 X 空间对映到 Z 空间,来输出 Z 预测值了。
接下来,就把这个 Z 预测值,拿来做为第 2 个模型的输入值,然后开 始训练这个模型,逐步探索、修正而得到足够好的 W 和 B。此时这个模型 已经训练好,就从 Z 空间对映到 ZO 空间,来输出 ZO 预测值了。
两层的 NN 模型
刚才是把两个单层 NN 模型,分别独立训练,先训练好第 1 个模型的 权重,然后把其输出值传送给第 2 个模型,才开始训练第 2 个模型的权重。 换句话说,第 1 个模型的权重先成长完成,才带动第 2 个模型的权重成长。 在本节里,将把两个单层模型合并成为一个双层 NN 模型。在训练时,每 一回合都会同步修正这两层权重。换句话说,这两层权重是一起逐步成长 的。于是,就将它们合并起来,如下图所示:
这个 NN 模型里包含两层权重,所以称为:两层 NN 模型。兹以 NN 图形表示如下:
只要按下<两层一起学习>按钮,ML 就会寻找出中间层的 W 和 B,同时也寻找出输出层的 WO 和 BO。然后将输入层 X 空间,对映到中间层 Z 空间,再对映到输出层的 ZO 空间。于是得出 Z 和 ZO 预测值,如下:
这个中间层,通称为:隐藏(Hidden)层。于是,上图又常表示为:
兹以 NN 图形表示如下:
有些情况下,隐藏层并不需要使用 Sigmoid()激活函数,如下:
例如,下图里的范例:
这个 NN 模型里的隐藏层,并没有使用 Sigmoid()激活函数。一样地,只要按下这个<两层一起学习>按钮,ML 就会寻找出隐藏层的权重 WH 和 BH,同时也寻找出输出层的权重 W 和 B。如下:
然后将输入层 X 空间,对映到隐藏层 H 空间,再对映到输出层的 Z 空间。于是得出 H 和 Z 预测值。例如,将 X=[1, 1, 0]经由两层权重的计算 流程是:
最后计算出 Z 值为:1。继续将 X=[1, 0, 1]经由两层权重的计算流程是:
这就是典型的两层 NN 模型了。在训练的过程中,每一回合都会修正 输出层的权重,也会修正隐藏层的权重。所以这两层权重是同步成长的。
四、多层的 NN 模型
刚才的范例是两层 NN 模型,它只含有一个隐藏层(Hidden Layer)。有些情境下,常常一个 NN 模型里,需要含有更多个隐藏层,这种模型就通称<多层 NN 模型>,或称为<深度 NN 模型>。
这个新模型含有三层权重。在训练时,每一回合都会同步修正这三层权 重。换句话说,这三层权重是一起逐步成长的。兹以 NN 图形表示如下:
一样地,只要按下这个按钮,ML 就会寻找出各隐藏 层的权重(如 WH1 和 BH1),同时也寻找出输出层的权重。如下:
然后将输入层 X 空间,对映到隐藏层 H1 空间,再对映到隐藏层 H2 空间,再对映到输出层的 Z 空间。例如,将 X=[1, 1, 0]经由三层权重的计 算流程是:
其中,基于三层权重(即 W&B)来进行 4 个空间之间的对映,从 X 空 间 H1 空间,再对映到 H2 空间,再对映到 Z 空间。首先人们设定 Z 空间 里的目标值,如下图:
在隐藏层 H1 和 H2 里,仍然使用 X*W+B=Y 公式来表达其对映关系; 而在输出层则使用 X*W+B=Y 和 Sigmoid(Y)=Z 公式来表达其对映关系。 并计算出在 Z 空间里的预测值,如下:
此外,在许多情境里,常常需要建立更多个隐藏层,例如著名的 ResNet 模型就多达数十个隐藏层,也是常见的多层深度 NN 模型。而基于这种模型的机器学习,就通称为:深度学习(Deep Learning)。
其中的隐藏层(Hidden Layer)的观念,位于这隐藏层的空间,就简称为:H 空间(即隐藏空间)。其正式名称是:隐藏空间(Latent Space)。例如,范例:
这是两层 NN 模型,其中的隐藏层(H 空间),就是:隐藏空间。兹以 NN 图形表示:
只要按下这个<两层一起学习>按钮,ML 就会寻找出中间层的权重 WH 和 BH,从 X 空间,对映到隐藏层 H 空间。同时也寻找出输出层的权重 W 和 B,继续从 H 空间对映到 Z 空间。
为什么要特别重视于隐藏空间(即 H 空间)呢? 因为最近几年来,ML 许多光芒都来自隐藏空间的威力。因而基于空间对映的观念,迅速掌握隐藏空间神秘力量,是发挥 ML 魅力的有效途径。
隐藏空间相当于金庸小说里武林大侠的<无招>境界。唯有高度掌握< 无招>才能解释千变万化的招术。君不见,在ML领域里,AE(AutoEncoder) 和 GAN 新潮技术,都是隐藏空间威力的表现。换句话说,如果您对于隐藏空间还感觉很玄秒难懂,那就可能是没有进入无招境界,对于武林高手过招,只能雾里看花了。
五、隐藏空间在 AIGC 领域的角色
综观 AIGC 领域里,最近几个很红的图像模型,例如:DALLE、Imagen 和 Midjourney 等,它们都是基于一种机制:扩散(Diffusion)。并且将其扩散模型转化为隐藏扩散模型(Latent diffusion models),因而获得两个特点:
经由模型训练,操作隐藏空间向量,加上随机输入中合成新的数据, 呈现出令人惊奇的创作,推动了 AI 绘画模型进行组合创新。
经由空间对映,把模型的计算空间从可观察的像素空间,降维对映到 (低维)隐藏空间里。因而大幅降低了计算量和时间,于是大幅提高模型的效率。这项创新的隐藏空间操作模式直接推动了 AIGC 技术的突破性进展。因而,AIGC 绘画之所以能够帮助大众画出各种天马行空的画作。
兹以 Stable Diffusion 为例,它内含两个隐藏空间:1)训练期间使用的图像表示空间(Image representation space)。2)结合预训练与训练时微调的提示潜在空间(Prompt latent space)。
然后,基于这些隐藏空间来进行探索、操作及创新组合。例如应用于生成动画时,可以对隐藏空间中的一个点进行采样并逐步改变潜在向量表示。其中每个采样点都被转交给译码器(Decoder)生成组合的帧(Frame)存储在最终动画中。最后,这些高质量的潜在表示帧连续播放出来,就是看起来很连贯的动画了。
隐藏空间的内容是从可观察空间归纳萃取而得到的精华,相当于阅历丰富的领域专家(Domain Expert)内心所领悟沉淀出来的经验直觉。它具有简单性 和稳定性 ( 不变性 ) ,不同领域的专家可以协同合作 (Collaborative),不同的领域的智慧可以共享的(Shareable)。隐藏空间里的内容(如模型)是可以转移(Transfer)、复用(Reuse)和共享(Share)的。既然模型是可以从一个模型或算法转移(迁移)到另一个模型里,就可以在另一个隐藏空间里运行、迭加、组合成为更具有架构性的智慧仓储了。
◆◆◆
欢迎继续阅读第 5 集
*** *** *** *** *** ***
总结
#=============== ============
欢迎加入…
微信群 新创期间,免入会费
询问:misoo.tw@gmail.com Melody 收
*** *** *** *** *** *** *** *** ***