作者:heishi86188 | 来源:互联网 | 2023-10-17 10:01
最近Google的Deepmind开始研究如何让AI做数学题。这个问题的提出非常有启发,逻辑推理,发现新知识的能力应该是强人工智能出现自我意识之前最需要发展的能力。深度学习目前可以
最近 Google 的 Deepmind 开始研究如何让AI做数学题。这个问题的提出非常有启发,逻辑推理,发现新知识的能力应该是强人工智能出现自我意识之前最需要发展的能力。
深度学习目前可以做什么
深度学习框架 Keras 的作者在《Deep Learning with python》这本书的最后,讲述了目前人工智能的能力与缺陷。总结起来,“深度学习拥有将任何东西映射到另一样东西的强大能力,只要两者之间存在连续几何变换”。原文如下,
“Layers can be plugged together to map essentially anything to anything, given that you have appropriate training data available and that the mapping is achievable via a continuous geometric transformation of reasonable complexity. The space of possibilities is infinite.”
1. Mapping Vector Data to Vector Data
- 医保:通过病人的医疗记录预测未来健康状况
- 网站访客行为:通过网站数据布局预测用户驻留时间
- 产品质量控制:通过产品数据预测保质期
简言之,传统的使用特征向量进行分类和回归的机器学习方法,都可用深度学习代替。
2. Mapping Image Data to Vector data
- 医生助理:通过医疗影像,自动定位肿瘤
- 自动驾驶:通过汽车摄像头拍摄视频流,控制方向盘转动角度
- 棋类游戏:通过围棋或象棋棋盘图像,计算下步棋所走位置
- 饮食助理:通过食物照片,估计卡路里含量
- 年龄预测:通过自拍照,预测一个人的年龄
如题,所有应用都是将图像映射到向量数据。
3. Mapping timeseries data to vector data
- 天气预报:根据一个地区本地及周边的天气时间序列数据,预测下周天气
- 脑机接口:将脑磁图MEG微弱生物磁场分布的时间序列,映射到计算机命令
- 用户行为:根据用户与网站交互的时间序列数据,预测用户购买某物的几率
4. Mapping text to text
- 智能回复:将收到的邮件映射到一行简短的回复 (这不是Google邮箱的功能吗!)
- 智能问答:将基于自然语言的问题映射到答案
- 文章概要:将长文章压缩为简短摘要
5. Mapping images to text
6. Mapping text to images
- 条件图像生成:根据简短的语言描述,自动生成满足描述的图像
- Logo 的生成和选择:将公司的名字和描述,映射到公司的 Logo
7. Mapping images to images
- 超分辨率:将低分辨率图片,映射到高分辨率的同内容图片
- 测距:根据室内环境照片,估算不同位置的距离
- 图像分割:UNET,MaskRCNN 等将图像映射为掩码
- 风格变换:将任意照片转化为毕加索,梵高等艺术风格
- 智能P图:一键P掉照片中路人,杂物,同时补全背景
- 智能绘画:根据简单的色块或涂鸦,生成高真图片
- Deepfakes: 视频中明星人物换脸
8. Mapping images and text to text
- 图像问答:将图像和关于此图像内容的问题映射到自然语言回答
9. Mapping video and text to text
- 视频问答:将短视频和关于此短视频内容的问题映射到自然语言回答
深度学习目前不能做什么:自动推理
接下来这个列表给出的,都是深度学习无法完成的任务
- 阅读详细的机器操作手册,从而学会操作一辆机器
- 阅读详细的代码描述,从而编写出一段功能一致的新程序
- 应用科学方法和知识
- 长期规划,模仿算法的数据制备
Keras 的作者认为机器能做的,“仅仅“是通过一系列简单,连续的几何变换,将一个向量空间映射到另一个,将一个数据流形X映射到另一个流形Y — 假设从X到Y存在可以学习的连续变换。所以,尽管深度学习模型可以解释为一种程序,但反过来,很多程序不能表示成深度学习模型。对于很多任务,或者不存在相应的深度神经网络来完成这个任务,或者存在这样的神经网络,但是不可学习 — 比如相应的几何变换太复杂而训练数据有限。所以,通过添加更多的层,准备更多的数据,将神经网络做大的方法,只能解决一部分问题,(比如Google的BERT以及OpenAI的GPT-2),却不能解决更根本的问题。目前深度学习模型局限于他们的表示能力,即很多任务不能表示为连续几何变换。
个人思考:在强化学习中加入假设/检验来增强推理能力
回到让 AI 做数学题这件事本身,如果允许外援,我们可以训练AI将数学题的自然语言描述,映射到 Mathematica 符号处理系统,或 Sympy 符号处理系统能够理解的输入,将其输入到外接软件中,获得最终结果。这样的系统并不难做。最近一个刷屏的软件 Mathpix 就可以将屏幕截屏到的数学方程转化为 Latex 源代码,将Latex源代码输入另一个编译器,从而得到原始数学公式的图像。根据深度学习的超强映射能力,将自然语言或数学方程图像映射为符号处理系统能够理解的输入,指日可待。而符号处理系统经过多年发展,已经拥有很强的推理能力。
人类的外推能力可能是一种错觉。比如已知粉红色区域的数据分布,如何预测黄色虚线部分的分布。深度学习系统会觉得,在这个没有任何训练数据的区域,一切皆有可能。就像CTEQ和NNPDF两种部分子分布函数,一种人工的假设了函数形式,在小x区给出较小的误差棒,但NNPDF在没有数据的区域,给出巨大的误差棒。人在看到粉红色实线部分,其实做了一个简单的假设,数据分布可能满足 Sin(x) 的形式或周期规律,如果这种假设跟后期的检验符合,那么这就是新的知识和规律,人类就会强化这种假设,如果假设总是跟经验相反,那么人类就会放弃这种假设,根据以往的知识提出新的假设。
手动构造的形似 Sin(x) 的曲线
这种假设检验,不仅对长期规划和无限外推有用,也已经用在了过往的研究中。一个成功的典范是 AlphaGo 中使用的 MonteCarlo 树搜索算法。其在局部棋局的战术网络训练时,使用蒙特卡洛树搜索算法,就是一种先假设怎么走,再检验其有效性的假设检验方法。对于这个 Sin(x) 函数的例子,我们可以先训练一个深度学习系统,将各种各样的函数形式与它们的几何表示(数据表示)映射起来,使神经网络看到粉红色曲线图像或数据,首先想到 Sin(x)函数,并作为假设Proposal。而假设的过程,可以融合AlphaGo中的蒙特卡洛树搜索算法与贝叶斯推理。使用贝叶斯推理对单个假设进行参数估计,使用蒙特卡洛树搜索筛选最好的假设。检验的过程即将假设的函数形式,逻辑规律,物理方程应用到新数据,获得正面或负面反馈的过程。
1. 如何训练神经网络,得到假设
- 根据图像建议最可能的函数形式,如 Mathpix
- 根据数据建议最可能的函数形式
- 根据自然语言建议内在的逻辑,方程
- 根据视频的不同帧,建议物理规律
2. 如何检验
- 将 Latex 编译成公式,与原图对比
- 将函数形式应用于验证数据,与标准答案对比
- 将逻辑推理应用于新关系的获取,并与已存在数据库对比
- 将物理方程应用于下一帧的预测,与结果对比
使用人工神经网络将文字,图像,视频映射到符号处理系统能够理解的输入,外接符号计算系统,物理方程,逻辑推理系统,然后使用假设的函数形式,外推或制订长期规划,应该能大大增强人工智能系统的能力。外接模块的加入,可能影响梯度的向后传播,强化学习将是解决这一困难的关键。
关于第三部分的个人思索,严肃的大神请轻拍 :)