变分自编码器(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

关于深度学习和小样本学习问题的新认识

第一个问题,小样本学习问题

之前,我一直认为深度学习的小样本学习能力差,是因为不应该用统计的手段,但现在意识到不是因为统计的问题,而是因为重新发明了轮子,信息利用度不够,举个例子自然图像识别的第一层是方向基,线条基,大家都在重复地训练第一层就是重复劳动,第二层、第三层也有类似的问题,其实前面几层都用通用性,即使到了后面几层,不同的训练之间也是有大量共通的东西。而通用智能的解决方案在于提供了一种灵活、高度的可复用机制。说白了,当我们有足够好的条件的时候,我们会尽量减少统计,但统计的本质没有错。 Read more

人工智能各行业应用结合方式浅脑暴

旅游 行程管家
宾馆 自动宾馆管理系统、智能安防、自动生物识别支付
餐饮 自动配送系统,自动餐饮制作机器人
宠物、花鸟 自动宠物喂食机、宠物健康管理器、宠物养成小秘书
文化艺术 自动创作机(绘画、音乐、雕塑、电影、游戏等等)
购物 自动购物比价、选择工具
机械设备 廉价工业机器人、基于廉价摄像头和低精度控制设备
监督、投诉及热线电话 自动语音服务
美发美容 理发、美发机器人、发型设计
老年服务 养老机器人
闲置物品调剂回收 自动物流机器人、自动驾驶、智能全局调配秘书主动告知有需要的用户
纺织品 个性化量身定制
照相 自动相册管理小秘书
超市 全自动结账系统,自动导购
商场 自动导购pepper
通信 自动社交管家
医疗保健 健康管理 医疗诊断
金融 自动投资助理、炒股机器人、炒期货机器人
保险 自动保险规划、个性化风险识别
城市公共交通 全自动驾驶、辅助驾驶
房产 建材 装潢 智能家居、家庭机器人、家庭宠物机器人
礼品 礼品推荐器
教育事业 教育机器人、个性化教育、陪伴教育
农业 自动化生产
科学技术 从事科研研究,发现新理论,新技术。
社会 犯罪预防、人群识别
其他 验证码破解器、辅助输入、遗留系统自动对接、自动编程器、蚊子发现器、视觉爬虫(快速爬虫开发工具)