模型训练:从建构到渐构

模型训练:从建构到渐构

模型训练:从建构到渐构

问题 一做就废

2023年12月9日晚上,我在火车上旁听了整个AE 实践会议,在此期间我注意到一些问题:虽然麦老师提供了充足的学习材料,并且讲解和演示了“轨道遮罩”功能和“颜色范围”抠像,但轮到学员进行操作时,他们的操作总是会出现各种问题。

#

分析 缺少训练

这是典型的“一看就会,一做就废”问题。《断墨寻径》[第二章](https://www.modevol.com/episode/ckx8itiir000l01l2avezagzt)[第八章](https://www.modevol.com/episode/ckx8iy4bl001501l204sz05x3)对此给出解释,这里我简单说明一下:
虽然我们通过其他人提供的学习材料初步建构出新模型,但是新模型没有经过多次有效地模型训练,大脑在神经层面上没有适配新模型;另外,新模型没有经过验证,很可能存在欠拟合现象或者过拟合现象。

模型训练

模型训练

我们从学习材料中建构出新模型后,便可以开始模型训练:

  1. 挑选某一个实例性材料作为任务,运用新模型对其进行预测和实际执行。

  2. 实际执行任务结束后,根据现实与预测的差异,对新模型进行评估和更新。

  3. 提供足够的休息时间,让大脑进行适配和更新,休息完毕后开始下一轮训练。

开锋利刃 模型训练

没有开刃的菜刀,拿来切菜会感到十分费劲,因此需要通过细致地打磨,使菜刀变得锋利无比。[王刚磨刀全过程:开刃、开锋、细磨、利刃](https://www.bilibili.com/video/BV1sa411Y7BN/)

弹反模型

过渡 弹反与处决

在《艾尔登法环》中,玩家可以通过弹反机制,让敌人进入失衡状态。
敌人进入失衡状态后,玩家可以使用致命一击,对敌人造成高额伤害。

建构弹反模型

我在 B 站上找到一个包含大量实例性材料的视频:[【老头环】新手“从无到有”连续11次完美弹反“熔炉骑士”](https://www.bilibili.com/video/BV1aL411N7Qa/)

通过对这个视频进行观察和归纳,我建构出一个弹反模型:
敌人进行蓄力重击时,玩家在某一时段进行弹反,可以让敌人进入失衡状态。

训练弹反模型1 模型训练

第一轮训练,我在风暴关卡附近,找葛瑞克士兵练习弹反。
由于我不知道什么时候进行弹反,全凭感觉,所以十次弹反练习中,有七次是挨打。在挨打过程中,我注意到敌人的手部动作与弹反时机存在某种关联,于是我有意识地观察敌人进行蓄力重击时,敌人的手部动作变化。最终,我发现敌人快要攻击时,手部动作会由慢变快,此时我进行弹反,大概率会让敌人进入失衡状态。

![弹反模型 - 01.gif](https://cdn.modevol.com/user/cl45b90au25jk01r453ik1d56/images/am0sgb95fckpj6p9nx1wd21t.gif)弹反模型 - 01.gif

第一轮训练结束后,我完成弹反模型更新:
敌人从蓄力状态切换到攻击状态时,手部动作会出现由慢变快的变化,此时对敌人进行弹反,很可能会让敌人进入失衡状态。
如果玩家弹反失败,玩家会进入硬直状态,会出现以下两种情况:

  1. 敌人蓄力时玩家弹反,玩家在硬直状态下,受到全额攻击伤害。

  2. 敌人攻击时玩家弹反,玩家在硬直状态下,受到部分攻击伤害和精力伤害。

训练弹反模型2 模型训练

第二轮训练,我进入风暴山丘的封印监牢,找熔炉骑士练习弹反。
刚开始,我一直举盾观察熔炉骑士,结果我被他打空精力后破盾,被他一套连招带走。角色复活后,我通过举盾、翻滚和游走来观察熔炉骑士的招式,我逐步捕捉到熔炉骑士各种蓄力重击的手部动作。死亡&复活三十多次后,我最终抓到合适的弹反时机,通过弹反&处决打败了熔炉骑士。

![弹反模型 - 02.gif](https://cdn.modevol.com/user/cl45b90au25jk01r453ik1d56/images/h4aenpjhgnjhueysolf0piyv.gif)弹反模型 - 02.gif

第二轮训练结束后,我完成弹反模型更新:
如果敌人的招式一板一眼,那么这个敌人适合进行弹反。遇敌时玩家需要与敌人进行周旋,观察敌人的手部动作变化。
一般来说,当敌人从蓄力状态切换到攻击状态时,手部动作会出现由慢变快的变化,此时对敌人进行盾牌弹反,很可能会让敌人进入失衡状态。 如果玩家弹反失败,玩家会进入硬直状态,会出现以下两种情况。

  1. 敌人蓄力时玩家弹反,玩家在硬直状态下,受到全额攻击伤害。

  2. 敌人攻击时玩家弹反,玩家在硬直状态下,受到部分攻击伤害和精力伤害。

训练弹反模型3 模型训练

第三轮训练,我在习战者的破屋,等待灵珠猎人出现。
原本我打算用“辉剑圆阵”和“准备架势”的削韧伤害组合,打出敌人失衡状态后进行致命一击。但在对峙过程中,我发现灵珠猎人的招式也是大开大合,于是我决定用弹反模型来处理。我通过观察灵珠猎人的手部动作,抓住时机进行弹反&处决,最终我打败了灵珠猎人。

![弹反模型 - 03.gif](https://cdn.modevol.com/user/cl45b90au25jk01r453ik1d56/images/wfts8nz71ilqsxi2323qp2qc.gif)弹反模型 - 03.gif

现在,我的弹反模型已经能够处理攻击招式大开大合的敌人,因此不需要再进行模型训练。

匿名函数模型

建构匿函模型

我想学习 Python 的匿名函数,我在菜鸟教程上找到相关的描述性材料和实例性材料:[Python lambda(匿名函数)](https://www.runoob.com/python3/python-lambda.html)

通过这些学习材料,我建构出一个匿名函数模型:
匿名函数是一种小型便捷的内联函数,它可以拥有任意个参数,但只有一个表达式作为返回值。
我们可以将匿名函数赋值给变量,通过变量来调用匿名函数。

训练匿函模型1 模型训练

第一轮训练,我模仿菜鸟教程提供的实例:

dlcr = lambda : '垮小脸'
print(dlcr())

我预测控制台输出”垮小脸“。运行代码,控制台输出:

PS E:\Python Code> python lambda.py       
垮小脸

实际结果与预测结果一致,我不需要对匿名函数模型进行更新。

训练匿函模型2 模型训练

第二轮训练,我对上一个任务进行调整,为匿名函数添加参数。

elden_ring_str = lambda a: '接下来,' + a + '很有用'
print(elden_ring_str('睡眠'))

我预测控制台输出”接下来,睡眠很有用“。运行代码,控制台输出:

PS E:\Python Code> python lambda.py
接下来,睡眠很有用

实际结果与预测结果一致,我不需要对匿名函数模型进行更新。

训练匿函模型3 模型训练

第三轮训练,我适当提高任务难度,用匿名函数返回两个数的中间值。

list1 = [1, 2, 3]
list2 = [7, 8, 9]
list3 = []

f = lambda x, y: (x + y) / 2

for i in range(len(list1)):
    list3.append(f(list1[i], list2[i]))

print(list3)

我预测`list3 = [4, 5, 6]`。运行代码,控制台输出:

PS E:\Python Code> python lambda.py
[4.0, 5.0, 6.0]

实际结果与预测结果数值相同,我不需要对匿名函数模型进行更新。

说明 继承模型

受限于篇幅,这里就不继续列举第 4 次到第 5 次训练内容。
由于菜鸟教程提供了合适的指令描述,因此我不需要继承过来的匿名函数模型进行更新。
只需要通过模型训练,让大脑适配匿名函数模型即可。

轨道遮罩模型

获取学习材料

2023年12月10日下午,我已经记不清昨天会议的具体内容,只记得麦老师用“轨道遮罩”功能和“颜色范围”抠像完成”飞天鲸鱼“项目。
我通过 Copilot 找到 Adobe After Effects 的教程页面:[轨道遮罩和移动遮罩](https://helpx.adobe.com/cn/after-effects/using/track-mattes-and-traveling-mattes.html)

通过阅读官方提供的描述性材料和实例性材料,我发现 After Effects 的“轨道遮罩”功能类似 Photoshop “剪贴蒙版”功能。
我决定对脑中已有的剪贴蒙版模型进行迁移,结合轨道遮罩相关的学习材料,调整得到轨道遮罩模型。

迁移轨遮模型

在 Photoshop 中,我绘制一个矩形图案作为图层 A,导入一张图像作为图层 B,其中图层 B 在图层 A 的上层。
选中图层 B,点击右键 - 创建剪贴蒙版,使图层 B 的内容限制在图层 A 的形状轮廓内。

![轨道遮罩 1-1.jpg](https://cdn.modevol.com/user/cl45b90au25jk01r453ik1d56/images/j7oa0084j2zrwxqhbc62x59d.jpg)轨道遮罩 1-1.jpg

在 After Effects 中,导入背景素材作为轨道 A,导入鲸鱼素材作为轨道 B,其中轨道 B 在轨道 A 的上层。
原本我是想在轨道 B 的轨道遮罩中选择 轨道 A,实现类似剪贴蒙版的效果,实际操作后发现无法这样操作。
后来发现是在轨道 A 的轨道遮罩中选择”Alpha 遮罩轨道 A“,使轨道 A 的内容限制在轨道 B 的形状轮廓内。

![轨道遮罩 1-2.jpg](https://cdn.modevol.com/user/cl45b90au25jk01r453ik1d56/images/fkh13gktqumogoh1h9t946kx.jpg)轨道遮罩 1-2.jpg

我对比“剪贴蒙版”功能和“轨道遮罩”功能,发现前者是在图层 B 上创建剪贴蒙版,使图层 B 的内容限制在图层 A 的形状轮廓内;而后者是在轨道 A 上使用轨道遮罩,使轨道 A 的内容限制在轨道 B 的形状轮廓内。二者功能相同,作用对象相反。

现在,我完成对剪贴蒙版模型的迁移,调整得到轨道遮罩模型:
若轨道 B 在轨道 A 的上层,那么可以设置轨道 A 的轨道遮罩为"Alpha 遮罩轨道 B",使轨道 A 的内容限制在轨道 B 的形状轮廓内。

训练轨遮模型1 模型训练

第一轮训练,在 After Effects 中,新建一个黑色轨道 C,置于轨道 B 的下层,设置轨道 C 的轨道遮罩为”亮度遮罩轨道 B“。
此时,After Effects 自动设置轨道 B 不可见,并通过轨道 B 的亮度通道,来限制轨道 C 的内容。

![轨道遮罩 - 2.jpg](https://cdn.modevol.com/user/cl45b90au25jk01r453ik1d56/images/btj1zswlnejvtobprgpxrer2.jpg)轨道遮罩 - 2.jpg

第一轮训练结束后,我完成轨道遮罩模型更新:
若轨道 B 在轨道 A 的上层,那么可以设置轨道 A 的轨道遮罩:

  1. "Alpha 遮罩轨道 B",通过轨道 B 的 Alpha 通道来显示轨道 A 的内容。

  2. "Alpha 反转遮罩轨道 B",通过反转轨道 B 的 Alpha 通道来显示轨道 A 的内容。

  3. "亮度遮罩轨道 B",通过轨道 B 的亮度通道来显示轨道 A 的内容。

  4. "亮度反转遮罩轨道 B",通过反转轨道 B 的亮度通道来显示轨道 A 的内容。

此时,After Effects 自动设置轨道 B 不可见。

训练轨遮模型2 模型训练

Premiere 有一个效果叫”轨道遮罩键“,我认为它就是 After Effects 的”轨道遮罩“功能。
我找到了一个相关的视频:[PR教程-轨道遮罩键原理讲解](https://www.bilibili.com/video/BV1k44y147rA/)

我打开 Premiere,导入背景素材、过场素材和动画素材进去。
我将背景素材放到 V1 轨道上,动画素材放到 V2 轨道上,过场素材放到 V3 轨道上。然后,为 V2 轨道添加”轨道遮罩键“效果,在效果控件中,设置遮罩为”视频3“,合成方式为”Alpha 遮罩“,也就是”Alpha 遮罩 V3 轨道“。
此时,Premiere 不显示 V3 轨道内容,并通过 V3 轨道的 Alpha 通道,来限制 V2 轨道的内容。

![轨道遮罩 - 3.jpg](https://cdn.modevol.com/user/cl45b90au25jk01r453ik1d56/images/xnknutwtn3znpj49pqg0td0u.jpg)轨道遮罩 - 3.jpg

第二轮训练结束后,我不需要更新轨道遮罩模型,而是将 Premiere 添加到轨道遮罩模型的有效范围内。

项目 白色鲸鱼

我用同样的方法去理解“颜色范围”抠像。
最后我对”飞天鲸鱼“项目分而治之,大概用了两个小时完成项目。

![白色鲸鱼.gif](https://cdn.modevol.com/user/cl45b90au25jk01r453ik1d56/images/j752d489mhsw99fty505xt6j.gif)白色鲸鱼.gif

解决 从废到会

让我们回到 AE 实践会议,这里大家应该能猜出学员如何解决问题。学员在 After Effects 中实际执行了新建构的模型;遇到问题后,麦老师进行提醒和引导,学员通过思考,对新模型进行更新;完成模型更新后,学员重新开始上述环节,直到学员顺利完成任务。
正是因为学员进行了多次有效地模型训练,使得学员建构出的新模型有足够的泛化能力。现在,我们可以给出渐构模型的定义了。

渐构模型

我们从学习材料中建构出模型,并对模型进行多轮模型训练,从而不断提升模型的泛化能力的过程。

后记 年终回顾

这篇文档开始于年初我提出的一个设想:能否参考 AI 学习的过程?反过来指导人类学习?然后我用了大半年的时间去研究如何训练 AI 模型,最终我完成了 AI 绘画模型和 AI 语音模型的训练,从中学到很多有用的知识,这些知识反过来指导我开展项目实践活动。不出意外的话,这是我今年写的最后一篇文档。原本是想做成视频,但临时参加了一个合作项目,就鸽到明年了。

模型训练:从建构到渐构
Alice_小杰的头像
创建于:2023-12-02
随记
讨论
媒体