使用.ai域名的著名人工智能创业公司盘点

.com域名基本已经废了,除非特别讨巧地起到新的名字,否则基本都要花大价钱才能搞到满意的名字。但这些对于人工智能的初创公司,似乎烦恼更小一点,因为.ai域名的注册价格不菲,导致投机者大幅减少,直到2015年,.ai域名都数量甚微,大量优质域名都无人注册,比如单拼ai域名今年才用尽,而双拼域名大把存在,因此这些人工智能初创公司,就可以开开心心地毫无压力地选择一个比较不错的域名注册。

Read more

[DeepMind论文部分翻译]克服神经网络中的灾难性遗忘 Overcoming catastrophic forgetting in neural networks

本文翻译了DeepMind的最新研究成果的第一部分,可以当做是introduction部分,借鉴神经科学成果,解决了一个通用人工智能领域持续学习所面临的关键性难题。
实现通用智能需要智能代理能够学习和记住许多不同的任务[1]。在现实世界中这很困难:任务的顺序并不会显式地标注出来,任务之间可能会不可预期地切换,单一任务可能在很长的一段时间内都不会复现。因而,智能代理必须具备持续学习的能力:也就是学习连贯的任务而不会忘记如何执行之前训练过的任务的能力。
持续学习对人工神经网络是一个特别大的挑战,因为与当前任务(比如任务B)相关的知识被合并掉,关于先前任务(比如任务A)的知识会突然地丢失。这个现象术语叫灾难性遗忘(catastrophic forgetting)[2-6],一般会发生在神经网络在多个任务上进行按序训练的时候,比如对任务A很重要的神经网络的权重正好满足任务B的目标时。然而近来机器学习的进步,尤其是深度神经网络的进步对各个领域已经产生了广泛的有利影响(如文献7和8),但连续学习领域的研究却停滞不前。当前的方法主要是通过确保来自各个任务的数据在训练中都可以同时获得。通过在学习过程中对来自多任务的数据进行交叉操作,其实遗忘并不会发生,因为神经网络的权重能够对所有任务上的表现进行联合优化,但这个方法通常指的是多任务学习范式-深度学习技术,已经被成功地应用在训练单一智能体玩多种Atari游戏[9,10]。如果任务按序呈现的话,只能在数据存储在事件记忆系统并在训练的过程中对网络进行回放时,才能采用这种多任务学习技术。这种方法(通常也叫系统级巩固[4, 5])面对学习大量任务时并不实用的,因为按照我们的设定,它应该需要与任务数量成比例的存储数量。相关算法的确实成为通用智能开发的关键障碍。
与人工神经网络形式鲜明对比的是人类和其他动物似乎能够以连续的方式学习[11]。最近的证据提示哺乳动物的大脑可能会通过大脑皮层回路来保护先前获得的知识,从而避免灾难性遗忘[11-14]。当小鼠需要一个新技能的时候,一定比例的突触就会增强,表现为单一神经元的树突棘数量的增加[13]。至关重要的是,即使进行了后续的其他任务的学习,这些增加了的树突棘能够得到保持,以便几个月后相关能力仍然得到保留。当这些树突棘被选择性“擦除”后,相关的技能就会被遗忘[11,12]。这表明对这些增强的突触的保护对于任务能力的保留至关重要。这些实验发现与诸如瀑布模型[15, 16]这样的神经生物学模型提示我们大脑皮层中的持续学习依赖于任务相关突触的巩固,知识能够长久地编码得益于让一部分突触降低可塑性从而在相当长的时间范围内变得稳定。
本次工作将展示任务相关突触巩固为人工智能的持续学习问题提供了独特的解决方案。我们为人工智能神经网络开发了一种类似于突触巩固的算法,称之为可塑权重巩固(elastic weight consolidation,EWC)。这个算法会针对那些对特定任务特别重要的特定权重降低学习率。也会展示EWC如何应用在监督学习和强化学习问题中,在不会遗忘旧任务的情况下,按次序地训练多个任务,并与之前的深度学习技术进行对比。

变分自编码器(Variational Autoencoder, VAE)通俗教程

1. 神秘变量与数据集

现在有一个数据集DX(dataset, 也可以叫datapoints),每个数据也称为数据点。
我们假定这个样本受某种神秘力量操控,但是我们也无从知道这些神秘力量是什么?那么我们假定这股神秘力量有n个,起名字叫\(power_1, power_2,…, power_n\)吧,他们的大小分别是\(z_1, z_2, …, z_n\),称之为神秘变量表示成一个向量就是

\(
z =
\left(
\begin{array}{c}
z_1\\
z_2\\
\vdots\\
z_n
\end{array}
\right)
\)

z也起个名字叫神秘组合

一言以蔽之:神秘变量代表了神秘力量神秘组合关系。
用正经的话说就是:隐变量(latent variable)代表了隐因子(latent factor)的组合关系。 Read more

STDP与无监督学习

SDTP是在大脑中发现的神经元之间权重连接的更新规则,他的目标非常的清晰就是如果两个神经元的发放在时间上离的远近,他们之间的绑定关系就越紧密,一般就反映到激活权重越大上。我从文献[1]中盗了个图,如下:

a

我们可以看到,如果一个神经元A的激活在另一个神经元B的激活之后很快就发生,时间差小于5ms时,B到A的连接权重就会增加约70%,而相反A到B的连接权重就会衰减20%。什么意思?通俗的说,就是当A和B先后激活时,具备紧密先后关系的双方会加强联系,而具备相反关系的,就会渐行渐远,这样的规则带来了什么样的结果呢?那就是具备时间上和空间上同时性或连续性的事件之间建立带有次序关系的联系。从这个角度,也可以想象到神经元之间往往建立的是单向的加强联系,如果A到B不断增强,那么B到A就不断减弱,而如果是同时发生,一般两者会不好不坏,而他们的共同下游则与他们之间形成了更加紧密的联系, 从而两者变成了同级,并具备了间接关系。 Read more

大脑、小脑与运动控制原理

发现一个写得还不错的关于运动控制的教学文章,翻译给大家。

原文地址: http://thebrain.mcgill.ca/flash/d/d_06/d_06_cr/d_06_cr_mou/d_06_cr_mou.html#4

运动皮层

人体的自主运动都是由大脑控制的。控制自主运动的大脑区域称作运动皮层。运动皮层位于额叶后部,中央沟回(额叶和顶叶的分界线)之前。运动皮层主要分为两个区域,4区和6区,也成为初级运动皮层,沿着中央沟回形成一条窄带。6区位于4区的正前方。6区更宽,进一步细分为两个亚区。为了能够执行目标导向的运动,运动皮层需要接收来自各叶的各种信息,包括:来自顶叶的身体空间位置信息;来自额叶前部的关于达成目标而采用的恰当策略信息;来自颞叶关于历史策略的记忆信息;

d_06_cr_mou_1a

图1. 区域划分

d_06_cr_mou_1b

图2. 身体映像

Read more

小议动态神经网络

深度学习的发展很快将到达一个瓶颈期,因为从更高的维度来看,从开始到现在我们对待时间问题的处理方式都可能存在的方向上的错误,虽然RNN相关的技术在时序相关问题上取得了不错的成果,但应用范围依然有限。

那么,问题到底出现在哪里?在下献一拙思。

梳理生物等级链的智能演化,大家可以发现,对于时间性问题的处理,是神经网络在诞生之初就最先具备的,而我们的人工神经网络恰恰是从诞生到现在都不具备的,举个例子,对视频进行实时的物体识别、定位与标注是怎样做的?利用训练好的深度神经网络对当下选取的一帧进行计算,算出的向量用于展示,再选取一帧重复计算,整个流程是由人类算法控制的,网络的计算呈现的是时间无关性,亦即就像时间静止时网络做了一件工作,再推动时间向前一步,再静止工作一样,我称之为静态识别网络,进而可以理解如果是动态识别网络,那就像生物学神经网络那样,信息流源源不断地流入,计算在每个局部都在发生,结果在时间流上持续出现。显然,我们现在已知的网络都没有走这条路,这其中可能有计算量的问题,也可能有理论上刻意的选择,但我的见解是动态网络才是智能进阶的关键点。
当然,在整个智能系统中,特征的自动发现、层级组合性等诚然至关重要,但这些关键的能力之外,我们可能还忽略了若干重要的能力,动态性就是其中一个,有了这个能力,我们的网络就可以更加容易地处理时间流上的东西,比如运动控制、传感器流的处理(包括视觉流处理能力,更好的声音流处理能力以及其他知觉的感知能力)、联想、观察、思考、甚至产生意识。

那么现在的RNN存在什么问题呢?

就是因为RNN虽然引入了时间性,但是不彻底,他的本质是直接处理静态化后的数据流,再进行处理。静态化就是将随时间流逝的东西借助缓存等手段变成一个共存的东西,静态化是智能系统面对时间性问题的解决方案,比如视听觉暂留机制、缓存机制,但RNN在静态化方面是被动的,因为网络本身不提供静态化的机制,他只能将人为静态化后的成果进行处理;RNN是图灵完备的,他可以模拟任何计算过程,而程序也是静态化的,每一条指令的执行是基于CPU的时间片的,RNN本质上也是,是通过程序控制RNN的step的,倒不是说这种序列步骤有什么错误,问题在于序列步骤的基础仍然是人为的,所以网络缺乏了施展空间,这种结构限制了RNN具备更加复杂的时间性数据的处理能力,所以你无法用RNN进行实时地观察、联想、思考甚至互动等等。

那应该怎样做呢?

我的一个思路是这样的,基本就是生物脑运行模式,先抛弃计算量的问题不谈,假定我们不需训练已经掌握了一个权重直接确定法,我们先让这个用于某种功能的网络可以实时不断地接收外部数据,每个神经元都独立计算,一个完全的分布式模式;从运动控制、简单的感受器做起,沿着生物进化的脚步增加该神经网络的复杂性。

Deep Learning Tutorial 深度学习教程翻译

国内互联网上关于deeplearning.net上的Deep Learning Tutorial的翻译有很多,但很零散,并且没有人有效地把这些组织起来,本文对这些进行了整理,带有>前往的都是已经找到的对应的翻译文章,有些是我自己写的,其他一些还没有的,我会自己补充上。

前置阅读

Machine Learning for AI an introduction to Deep Learning algorithms

Learning Deep Architectures for AI (Foundations & Trends in Machine Learning, 2009).

Theano basic tutorial

正式教程

准备工作 – 它介绍了符号,本教程中使用的数据集(可下载),以及对随机梯度下降法所做的优化。 > 前往

纯监督学习算法,按顺序阅读:

  1. Logistic Regression – 简单使用Theano > 前往
  2. Multilayer perceptron – 介绍layer >前往
  3. Deep Convolutional Network – LeNet5的简化版本 >前往

无监督和半监督学习算法,阅读顺序无要求:(自编码器与RBM/DBN议题相互独立):

  • Auto Encoders, Denoising Autoencoders, 自编码器,去噪自编码器 – 自编码器描述 >前往
  • Stacked Denoising Auto-Encoders,堆栈式自编码器 – 进行深度网络无监督预训练的简单步骤 >前往
  • Restricted Boltzmann Machines,受限玻尔兹曼机 -单层生成式RBM模型
  • Deep Belief Networks – 深度信念网络 -先进行栈式RBMs的无监督生成式预训练再进行有监督微调

面向mcRBM模型构建, 关于从能量模型采样的新教程:

  • HMC Sampling,混合蒙特卡罗采样 -混合(又名汉密尔顿)蒙特卡洛采样 scan()

面向收缩自编码器的构建教程, 目前已经有了代码:

  • Contractive auto-encoders code,收缩自编码器代码 – 代码中有基础文档

带有词语嵌入和上下文窗口的Recurrent neural networks

  • Semantic Parsing of Speech using Recurrent Net

用于语义分析的LSTM:

  • LSTM network

基于能量的recurrent neural network (RNN-RBM)

  • Modeling and generating sequences of polyphonic music,和弦音乐序列的建模与生成

人工智能任务的分类

本文主要提出一种智能任务分类方法,希望未来可以有利于智能系统的设计和评估。

本稿属于2016年06月24日初稿,后续会不断修订更新,转载须注明出处。

 

人工智能任务的分类

邓范鑫

为了实现AI-Complete(AI-Hard,AI完全)问题,我们需要一些测量方法,最著名的测量方法当属图灵测试。一个可以解决AI完全问题的机器应该在必要辅助的设备帮助下,可以完成人类能够完全的所有任务,亦即它像人类一样的智能(Intelligent),我们便称其为强人工智能(True AI或Strong AI)。这些人类可以完成的任务,我们称之为人工智能任务,简称AI任务,AI任务有不同的难易程度,所谓难易是基于所需要的智力资源的多少,一般呈现到科学技术领域,表现出来的是越容易模拟实现的AI任务越简单,越难于模拟实现的任务越困难,目前还有很多AI任务,除人类以外没有任何对象可以完成。 Read more

Linsker网络的模拟实验

结合原论文[1]整理出Linsker网络的定义并进行了实现。

【Linsker网络定义】

突触分布函数: \(e^{-a^Mr^2}\),其中,\(r_M\equiv(a^M)^{-\frac{1}{2}}\)
假设L层向M层输入
a representation用\(\pi\)代表,则{\(F^{L\pi}_x\)}代表L层\(\pi\)表示的所有位置(x)的活动(activity)的集合。

第一层为A,定义同一box内的\(F^{A\pi}_x\)相同,跨box之间不相关。
第二层为B,对于A层的每一个box只接收其中的一个或几个输入。
\(N_B\)代表从A到一个B细胞的突触数,这些突触零星散步在\(\pi^2_B\)的范围内,可以将该约束表示为:N_B\delta^2/\pi^2_B \lesssim 1

Read more

维度灾难与降维

本文将分析和讨论人类智能应对维度灾难的解决方案,应对维度灾难的核心解决方案是降维,那么如何降维,降维的信息如何利用从而来完成智能任务呢?降维作为一个通用的处理原则,它反映在智能处理的各个方面,下面让我为您一一道来。

维度灾难是传统算法在完成智能任务时面对的巨大挑战,而在自然界,生物所面临的世界是极度复杂的,理论上的输入维度可以无穷大,面对维度灾难,具有强烈适应性的生物一般都具有自己的处理方案,随着处理方式的简单到复杂反映了智力的从低到高,人类之所以成为万物之首,究其原因是在应对复杂局面时有更高级的应对办法,这就是高级智能的结果。通过分析这些适者生存的各类生物的生存能力,我们会发现,在整个生物链上,越是低等的动物,他们的脑越小,意味着能够处理的信息能力有限,因为在面对这个复杂的世界时,会尽力减少输入的信息量,只选择对自己最有价值的信息,如参考资料[1]中提到的,不真实性问题就是对降维的观察,想象一下带有触角的昆虫,触角将整个世界的可能输入转变为两个触角的探测,这远比视觉的输入维度要低的多。当然,并不是所有的感觉输入都是降维的,听觉系统就是一个典型的升维操作,通过耳蜗分频使得大脑可以处理复杂的序列信息,升维的目的在于提高输入信息的丰富性,这是因为高维信息隐藏在低维表示中,值得一提的是,大脑皮层似乎没有升维能力,必须借助特定的器官才行。

Read more