机器学习算法技术原理
在当前这个阶段如果我们问人工智能具体是什么,可能会说是机器学习–线性回归–梯度下降。。等等一系列算法。
这里我简单的解释两个原理:
空间切割(分类)
从一堆数据中分类出两个特征。我们可以假想成这个过程是一个切割空间的过程:
空间里散落一堆随机的点,假设我们要寻找所有红色的点,通过一刀将空间分开并且红色的点都在同一侧。
但如果图形比较复杂,我们可以通过增加维度的方法。比如上图是一个二维的空间,下图是一个三维的空间,在二维空间里解决不了的问题,升高一个维度就很简单了。
机器学习可以有上万个维度。
最终训练的模型是一个高维度空间。理论上这个空间里会包含无数种分类方式。
生成、判断,迭代,逼近的方式学习(生成对抗网络)
stylegan2是一种生成对抗网络(Generative Adversarial Nets)。简单的说就是里面有俩角色,一个负责制造,一个负责判断,这个过程就像我们在三维空间里捏一个雕塑一样,制造者和判断者的最终目的是找出我们给出的雕塑(字形)所在的空间。他们采用一种慢慢逼近的方式(一些线性代数的方程):先按照算法将我们给出的字形分成一个超维空间。制造者按照自己的算法从虚无(噪音)中抓取一些元素,交给判断者,判断者看这个元素是否在自己算法里的超维空间中,同时反馈回结果。在这个过程中通过设置损失函数慢慢的把那些不在模型超维空间的部分削减掉了。经过几千上万次的优化,最终的模型越来越接近我们给出的语料集。
每个机器学习生成的样本都有它的一个坐标,我们可以通过投影找到它们的坐标,在现实中三维空间一个点的坐标是(a1,a2,a3)那在AI的高维度潜在空间中一个样本的坐标就是(a1,a2,a3……a256),我们可以在这个空间里行走(Latent Space Walk)线性的采样就可以在影像中呈现连续过渡的视觉图像。
一般训练完网络后,随机生成一些坐标采样一下网络的状态,来做判断是否要继续训练或者找到下一步需要调整的方向。
如果出现过拟合,模型塌陷的状态,还需要回退到之前训练的某个阶段调整后重新开始。
多次调整是训练模型必要的步骤。
最终训练何时结束取决于作者的判断。保存网络模型,设置相应的参数生成需要使用的数据。这些生成的数据是无限的。每一个都相似但不同。
工具
Google Colab可以算是比较方便的机器学习训练工具了,以远程服务器和Jupyter Notebook的方式运行python脚本。一键生成和销毁运算实例,与Google drive绑定作为数据储存,是广大机器学习工作者必备的工具。
2020年我开始尝试使用GAN来做创作,也是租用Google colab开始每天训练和折腾各种各样的东西。花了一些时间尝试读代码,发现作用不多,很难完全改变GANism的影像风格。
使用colab-stylegan2生成的作品有:
在这些作品里,我尝试加入更多的除了机器学习之外的元素,比如加入算法视觉的二次处理、混合多种媒介的呈现方式、哲学的后结构主义思想作为作品骨架。。或者仅仅使用ai生成的一部分数据比如颜色数据作为算法视觉里特异的噪音模型。