热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

人工智能推理能力与假设检验

最近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 编译成公式,与原图对比
  • 将函数形式应用于验证数据,与标准答案对比
  • 将逻辑推理应用于新关系的获取,并与已存在数据库对比
  • 将物理方程应用于下一帧的预测,与结果对比

使用人工神经网络将文字,图像,视频映射到符号处理系统能够理解的输入,外接符号计算系统,物理方程,逻辑推理系统,然后使用假设的函数形式,外推或制订长期规划,应该能大大增强人工智能系统的能力。外接模块的加入,可能影响梯度的向后传播,强化学习将是解决这一困难的关键。

关于第三部分的个人思索,严肃的大神请轻拍 :)


推荐阅读
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • 机器学习(ML)三之多层感知机
    深度学习主要关注多层模型,现在以多层感知机(multilayerperceptron,MLP)为例,介绍多层神经网络的概念。隐藏层多层感知机在单层神经网络的基础上引入了一到多个隐藏 ... [详细]
  • 本文将深入探讨 Unreal Engine 4 (UE4) 中的距离场技术,包括其原理、实现细节以及在渲染中的应用。距离场技术在现代游戏引擎中用于提高光照和阴影的效果,尤其是在处理复杂几何形状时。文章将结合具体代码示例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 本文介绍如何使用OpenCV和线性支持向量机(SVM)模型来开发一个简单的人脸识别系统,特别关注在只有一个用户数据集时的处理方法。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • Logging all MySQL queries into the Slow Log
    MySQLoptionallylogsslowqueriesintotheSlowQueryLog–orjustSlowLog,asfriendscallit.However,Thereareseveralreasonstologallqueries.Thislistisnotexhaustive:Belowyoucanfindthevariablestochange,astheyshouldbewritteninth ... [详细]
  • HTML前端开发:UINavigationController与页面间数据传递详解
    本文详细介绍了如何在HTML前端开发中利用UINavigationController进行页面管理和数据传递,适合初学者和有一定基础的开发者学习。 ... [详细]
  • 如何高效解决Android应用ANR问题?
    本文介绍了ANR(应用程序无响应)的基本概念、常见原因及其解决方案,并提供了实用的工具和技巧帮助开发者快速定位和解决ANR问题,提高应用的用户体验。 ... [详细]
  • 编译原理中的语法分析方法探讨
    本文探讨了在编译原理课程中遇到的复杂文法问题,特别是当使用SLR(1)文法时遇到的多重规约与移进冲突。文章讨论了可能的解决策略,包括递归下降解析、运算符优先级解析等,并提供了相关示例。 ... [详细]
  • Windows环境下Python和pip命令无法识别的解决方案
    本文详细介绍了在Windows操作系统中遇到Python和pip命令无法识别的问题时的解决方法,帮助初学者快速配置Python开发环境。 ... [详细]
  • 非计算机专业的朋友如何拿下多个Offer
    大家好,我是归辰。秋招结束后,我已顺利入职,并应公子龙的邀请,分享一些秋招面试的心得体会,希望能帮助到学弟学妹们,让他们在未来的面试中更加顺利。 ... [详细]
  • 独家解析:深度学习泛化理论的破解之道与应用前景
    本文深入探讨了深度学习泛化理论的关键问题,通过分析现有研究和实践经验,揭示了泛化性能背后的核心机制。文章详细解析了泛化能力的影响因素,并提出了改进模型泛化性能的有效策略。此外,还展望了这些理论在实际应用中的广阔前景,为未来的研究和开发提供了宝贵的参考。 ... [详细]
  • 【图像分类实战】利用DenseNet在PyTorch中实现秃头识别
    本文详细介绍了如何使用DenseNet模型在PyTorch框架下实现秃头识别。首先,文章概述了项目所需的库和全局参数设置。接着,对图像进行预处理并读取数据集。随后,构建并配置DenseNet模型,设置训练和验证流程。最后,通过测试阶段验证模型性能,并提供了完整的代码实现。本文不仅涵盖了技术细节,还提供了实用的操作指南,适合初学者和有经验的研究人员参考。 ... [详细]
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • 通过使用CIFAR-10数据集,本文详细介绍了如何快速掌握Mixup数据增强技术,并展示了该方法在图像分类任务中的显著效果。实验结果表明,Mixup能够有效提高模型的泛化能力和分类精度,为图像识别领域的研究提供了有价值的参考。 ... [详细]
author-avatar
heishi86188
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有