一文讲述如何将预测范式引入到机器学习模型中

随着人工智能的持续深入,深度学习技术在多智能体学习、推理系统和推荐系统上取得了很大进展。

对于多智能体来说,预测能力有着关键性的作用。一个训练有素的智能体已经能骗过智商正常的人类了!你可能不会相信,仅仅从一个反应系统学习90%的动作命令,它就已经可以取得这样的“成就”了。

主要思路

本文构建了一个在视觉条件下以感官信息作为输入的预测模型。由于无法准确建立感官信息的运动方程,只能通过机器学习来完成。

实现细节

构建一个上述的预测编码器本身十分简单,问题的关键在于缩放上。在构建一个系统的时候,有时可以通过将一个大的系统拆分成小块或者缩小数量来解决这个问题,而不是一次性构建一个庞大的整体。我们就应用这种想法。

我们不用构建一个大规模的预测编码器来处理大图像,而是构建许多小规模的预测编码器。工作时,每个小编码器都输入并处理一个小的片段,工作流程如下图所示:

这样我们就得到了一个“分布式”预测系统。

当然,这样仍然存在问题:虽然每个单元能够独立地进行预测了,但是它们所处理的信号有些具有全局一致性。

如何解决这一问题呢?

压缩!压缩方法就像去噪自编码器(denosing autoencoder)一样,强制每个单元只能预测,而且只能使用基本特征进行预测。

我们通过引入一个瓶颈,缩小中间层来实现压缩功能。一旦这一功能实现了,我们就能利用“压缩后”的表达信息连接到相邻单元,从而构成横向连接。工作流程如下图所示:

到目前为止,我们实现了:每个单元不光可以预测自身的输入信息,还可以预测附近单元的输入信息。由于感官数据通常具有局部性(locality)特点,这些附近单元的附加信息通常对预测是十分有用的。

需要注意的是,即使现在的系统是稀疏连接的(本地连接),只要我们添加更多的单元(其实就是以更高分辨率处理图像)就可以扩展这个系统,而且总的收敛时间将不受任何影响(假设添加的算力与添加的单元成正比)。

下图所示:

好了,现在有了较高一层单元,我们就可以发现更大规模视野的规律。我们可以不断地添加更多的层,直到剩下一个能够捕获整个场景规律的单元,尽管这个单元处理的分辨率可能不是很高。

层数增加带来单元数量的增加,每个单元都会产生预测信息,中间这些额外的预测信息可以做什么呢?

作为反馈进行回传!这样,可以帮助低一层的单元更好地进行预测,如下图所示:

到目前为止,我们就完成了一个完整的视觉预测模型的系统搭建任务。每个单元都有其清晰的目标函数,误差以分布式的方式在系统中传播,而不是以单个反向传播标签的形式,并且系统仍然具有扩展性。原理上,这就是通用的视觉预测模型——没有任何变形,只是以一种新的方式安排了联想记忆(associative memories)。

该模型的主要目标是进行预测。如果构建输入信号的内部模型,这个系统仍然可以胜任。由于其内部的循环连接,该系统可以扩展为非常复杂的模型。下面的动画显示了信息的流动过程:

好了,现在系统设计完成了,详细说明一下它到底能做什么,在这之前,关于该模型还有几个重要的东西需要强调一下:

真的有用吗?我们用实验去证明!

大量的实验证明,PVM确实在基本预测任务中发挥了巨大的作用,但它还能做别的事情吗?

一方面,推荐系统会利用预测误差给用户提供他们想要的信息,但是这是一个长期的过程。

另一方面,我们决定增加一个有监督的视觉目标跟踪任务,并在上面测试PVM的实际性能。

我们往PVM中加入一些小东西:

热图的产生过程:

总而言之:它是起作用的!详细的信息可以参考我的长篇论文。

通常通过训练这个系统,我们可以将它用于稳定的视觉目标跟踪,其效果可以打败几种最先进的目标跟踪器。

第一行从左到右为:视觉输入信息、后续几层的内部压缩后的激活信号。

第二行:连续的预测信息。第一层的视觉预测,对于第一层激活的第二层预测等等。

第三行是误差信息(实际信息与预测之间的偏差)。

第四行是有监督对象的热图(我们这个实验是对“STOP”标志敏感)。

最后一列:各种跟踪的可视化信息。

以下是针对数据集中,其它跟踪目标的实例(注意,我们从不在训练集上对系统进行评估,因为这样训练出来的系统泛化性是很差的),红色框代表人为标注的真实地面目标,黄色框是PVM的返回。总而言之,它的效果非常好,特别是它在低分辨率(96*96)的视频上仍然起作用(虽然这个分辨率对于人类来说足够理解场景中的物品了)。

结论

我们都知道,上世纪80年代提出的深度卷积神经网络是基于60年代的神经学知识发展起来的,现在还异常火热。

PVM不同于卷积神经网络,它是基于全新的大脑皮质结构和功能的一种新的算法。PVM能避免许多机器学习都会遇到的问题:比如过度拟合和梯度消失问题。它也不用使用一些繁杂的技巧:比如卷积和正则化,它会把任务当成在线信号预测的任务。

虽然PVM还不能作为感知任何事物的黑盒(还没人知道这个黑盒是否存在),但是与各种感知应用的方法来比,它还是很有竞争力的,这里就不得不提深度学习的方法了,相比来说这是最大的挑战。PVM的不同之处在于,它是由直觉进行驱动的,它将使机器人在长期内真正起作用。

目前有关PVM的应用性实验都可以在Github上找到,enjoy!https://github.com/braincorp/PVM

原文发布于微信公众号 - IT技术精选文摘(ITHK01)

原文发表时间:2018-06-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏菩提树下的杨过

winform中linkLabel的用法(示例)

private void Form1_Load(object sender, EventArgs e)         {             this...

1935
来自专栏张善友的专栏

Using sqlite with .NET

The other day I found that there is a .NET wrapper for sqlite. sqlite is a very ...

2308
来自专栏闻道于事

商城项目整理(三)JDBC增删改查

商品表的增加,修改,删除,订单表的增加,确认,用户表的查看,日志表的增加,查看 商品表建表语句: 1 create table TEST.GOODS_TABL...

5485
来自专栏码匠的流水账

聊聊EurekaRibbonClientConfiguration

spring-cloud-netflix-eureka-client-2.0.0.RELEASE-sources.jar!/org/springframewor...

1171
来自专栏谈补锅

记录C#常用的代码片段

using Newtonsoft.Json; using Newtonsoft.Json.Linq;

942
来自专栏码匠的流水账

聊聊spring cloud的AbstractLoadBalancingClient

本文主要研究一下spring cloud的AbstractLoadBalancingClient

842
来自专栏菩提树下的杨过

MSDN官方的ASP.Net异步页面的经典示例代码

示例1.演示异步获取一个网址的内容,处理后显示在OutPut这一Label上 using System; using System.Web; using S...

1995
来自专栏飞扬的花生

日志帮助类

 1.代码 using System; using System.Collections.Generic; using System.Linq; using S...

1919
来自专栏积累沉淀

Hive2.0.0操作HBase 1.2.1报错解决

首先看错  org.apache.hive.service.cli.HiveSQLException: Failed to open new session: ...

2369
来自专栏互联网开发者交流社区

WinForm之窗体应用程序

1863

扫码关注云+社区