我目前所理解的人工智能
介绍:虽然作者是计算机专业,也一直在一线搞技术,但人工智能这个领域却没有涉猎过。最近研究了这方面的一些技术,记录一下。
一些术语
架构
架构是指一个人工神经网络的形式,架构的定义需要回答以下问题:
- 有几层
- 每层有多少个参数
- 每个参数的范围是多少
- 层与层之间是如何连接的
不同的问题,一般需要不同的架构。架构定义了网络的形式,却少了精确的参数。
模型
确定了每个参数的架构就是模型。在不同的上下文中,有时也会用“模型”指代架构本身,需要读者注意。
训练
通过数据,在给定架构中计算出模型的过程。
预测
给定输入,通过模型计算出输出的过程。实际上预测可以理解为一个普通的函数,只不过在人工智能领域特指模型的使用函数。
预训练模型使得深度学习技术正在走进大众
在深度学习方向,困扰其大规模应用的其实是训练所需要的资源
- 大规模算力(GPU/TPU)
- 海量数据
- 持续的训练时间(数周,数月)
如果每个细分领域,都需要从头训练数据,显然阻挡了很多很多小公司和个人开发者进入这个领域。可是现在不是这个状况,有很多大公司、开源机构把训练好的大模型开放出来了,而细分领域的从业者只需要调优训练(数据量1K以下)甚至直接开箱即用,就能获得很好的结果。
fast.ai 在2020年出了一本书叫 《Deep Learning for Coders with Fastai and PyTorch: AI Applications Without a PhD》,关联一个在线课程,第一章的练习里面放了一个2015年的XKCD笑话:
而现在,根据这个课程的例子,下载几百张“鸟”和“不是鸟”的照片,在已经开放的大模型基础上调优训练一下,任何一个AI菜鸟都能获得一个非常不错的预测函数:一张图片是不是鸟。
从开放社区到开发者,生态正在爆发
由于预训练模型,人工智能即将在各行各业大规模应用,而目前是社区生态百花齐放的时候。本章列举一些社区。
开放底层软件
开放中层软件
开放模型
开放数据集
开放模型和数据集社区
开放API
有趣的文生图
自从今年Stable Diffusion开源以来,文本生成图像(简称文生图,英文text to image)开始在社区大火。这两周我玩了玩,这里放几张有意思的图和对应的提示语。
猫头,Logo设计
一只猫和一只狗在草地上对峙
机器猫骑着高头大马在森林里游猎
大漠孤烟直 长河落日圆
除了最后一张由无界版图生成之外,前面的都是由百度的文心ernie-vilg大模型生成的(有水印)。这几张是挑出来感觉不错的。
文生图的技术进展
目前的状态,我认为百度的ernie-vilg 2.0是最好的。Stable Diffusion虽然很火,但对文字的理解能力不够;Google的Imagen提出从文字到图片中间需要增加文字语义层,并给出了提示语集合DrawBench,可用于测试文生图系统的好坏;Google虽然提供了论文和架构,但并没有给出预训练的模型,而百度的ernie-vilg 2.0在Google的论文基础上做了进一步的设计优化,并通过训练,提供了开源的模型(开源模型版本似乎不是ernie-vilg 2.0,看版本号最新是1.2)和API。我拿“一只猫和一只狗在草地上对峙”分别在百度平台和无界版图平台生成图像,明显是百度平台生成得好。
当然,这里的“好”,是指人类的常规视觉体验和语言的匹配程度。在艺术美感度上,与训练数据集有关,我感觉这些平台差不多。
10年后的人工智能
以深度学习为代表的人工神经网络,目前是欣欣向荣的状态,但过10年还会这样吗?我看不见得。目前的人工神经网络是“强人工智能”吗?我看不是。杰夫.霍金斯的《千脑智能》这本书,通过对人脑的研究,提出了人工智能的一个不同方向。他的书反映了他和他所领导的研究机构Numenta公司对当前深度学习神经网络的批判。我认为他的方法可能会逐渐引领研究社区,替代深度学习或者走向某种程度的融合。在他的书中,一个有意思的问题是人的学习方法,我在这里,尝试用他的理论解释人是怎么读图的:
- 人的双眼视觉差,可以对三维世界建模
- 人通过运动学习,双眼+运动,可以让人脑中的模型不断的接近真实的三维世界
- 当人有三维世界的经验后,读图(尤其是照片)时,会不自觉的将三维模型投射到二位图片上来进行解释
而现在的深度学习是怎么读图的?显然没有三维建模读图, 而是通过大量的图片和特征对来统计,发现统计规律,建立“人工神经网络”模型然后读图的。可是,现在的人工神经网络,模拟了人的大脑神经网络了吗?从这个例子出发,我觉得倒是机器人可以通过运动和多个传感器来模拟人脑学习。再进一步推断,智能汽车简直就是模拟人脑学习的绝佳平台。