EMNLP2018: 基于多模态信息级联对偶调制的视觉推理

受认知过程的视觉和语言注意力机制启发,我们近期提出了一种多模态信息的级联对偶调制模型,解决了涉及复杂语义关系的视觉推理问题(Visual Reasoning),在两个视觉推理任务的公开数据集CLEVR(CVPR2017, 斯坦福联合Facebook创建)和NLVR(ACL2017, 康奈尔联合Facebook创建)上达到最好性能。相关工作发表在自然语言处理国际顶级会议EMNLP2018上,文章见[arxiv.org/abs/1809.01943],代码见[github.com/FlamingHorizon/CMM-VR]。 图 级联对偶调制的模型框图 表 CLEVR数据集上的实验结果 表 NLVR数据集上的实验结果 表 CLEVR数据集上的可视化注意转移实例

【AAAI2018论文+代码】鸡尾酒会中的听觉注意性选择

相关工作发表在人工智能领域的顶级国际会议AAAI2018,论文全文和示范代码参考:https://github.com/jacoxu/ASAM 鸡尾酒会问题(Cocktail party problem)最早是由英国的认知科学家Edward Colin Cherry于1953年[1]提出,描述了人类听觉系统在复杂听觉场景下的注意性选择能力。例如,当我们身处多说话人的鸡尾酒会场景中,我们可以很容易地将注意力集中在某个感兴趣的说话人语音上,并忽略其他说话人语音的干扰。近些年,随着电子设备和人工智能技术的飞速迅速,人机语音交互的重要性日益凸显,在现实生活中得到非常广泛的应用。然而,由于干扰声源的存在,真实复杂环境下的语音交互技术远没有达到令人满意的程度。现阶段,开发一个在复杂听觉场景下具有较强自适应性和鲁棒性的计算听觉系统仍是一件极具挑战性的任务。 受行为与认知神经科学领域对听觉选择机理的探索[2,3]和外部记忆神经网络的最新进展[4,5]启发,自动化所听觉模型与认知计算团队提出一种听觉注意性选择模型,分别完成自上而下任务导向和自下而上刺激驱动的两个听觉注意任务,如图1所示。模型的框架示意图如图2所示,该模型将说话人的声纹特征沉淀到长时记忆单元中,并通过注意力机制将多说话人的混叠语音输入调制到受关注说话人的语音频率通道上。不同于以往神经记忆网络[6]和神经图灵机[7]中的短时记忆单元,该模型中的长时记忆单元不会在新样本载入时进行记忆复位,而是从模型训练阶段就不断地进行先验知识积累,将数据中获取的说话人声纹特征沉淀到记忆单元中。 图1. 三个说话人混叠语音环境下的自上而下和自下而上的听觉注意任务示例图。其中,自上而下是由任务导向的听觉注意(如我们聚精会神地聆听朋友的对话),而自下而上是由刺激驱动的听觉注意(如忽然地被某种显著音刺激所吸引)。 图2. 融入注意机制和长时记忆的听觉注意性选择示意图(a)模型总体框架图;(b)用于存储说话人声纹特征的长时记忆单元结构图。 通过中、英文两个公开语音数据集WSJ0和THCHS-30上的对比实验表明,听觉注意性选择模型在含噪音的多说话人听觉场景下具有更好的鲁棒性,为复杂环境下的语音信号处理任务提供了一种有效而可行的解决方案。图3呈现了不同长度语音刺激下的听觉注意热力分布图,可以看到随着刺激语音时间的延长,听觉注意的热力分布图和预测语音的语谱图均逐渐趋近于纯净语音语谱图,而且在0.5秒的语音刺激下已经获得较好的听觉注意性能。 图3. 不同刺激语音时长对听觉注意性能的影响(a)0.25秒~32秒刺激语音时长下的评价指标结果;(b)-(d)0.25秒、0.5秒和1秒的刺激语音波形图;(e)两个说话人的混叠语音语谱图;(i)目标说话人的纯净语音语谱图;(f)-(h)不同刺激语音时长下的听觉注意热力图;(j)-(l)不同刺激语音时长下预测输出语音的语谱图。 自动化所听觉模型与认知计算团队主要围绕语音翻译、问答对话、口语交互和虚拟现实等方向的核心问题开展前瞻性科学研究和技术储备,重点关注脑科学与人工智能等多学科的深度交叉融合,希望通过新型神经网络模型和算法突破现有技术的瓶颈,在泛应用场景下达到并超越人类水平。 参考文献: [1] Cherry, E. C. 1953. Some experiments on the recognition of speech, with one and with two ears. The Journal of the acoustical society … 继续阅读

CNCC2017和言语与听觉研究论坛

今年的计算机大会在福州召开,参会6000多,可谓各个方向的IT大聚会。 10月26日上午的大会报告上,微软副总裁沈向洋博士分享的报告为《理解自然语言:描述对话和隐喻》,AI最基本的两个要素分为感知和认知。过去几年里,视听觉感知技术突飞猛进。然而,在诸如自然语言理解和对话领域的认知研究方面,我们的进展还非常有限。沈博士认为在未来的十年中,自然语言处理会成为人工智能突破最重要的方向。所谓懂语言者得天下(这句话在会议期间刷爆朋友圈)。 同时,沈博士设想了三个层次来逐步让机器理解并掌握语言,从机器学习(表述),到机器智能(对话),再到机器意识(意境)。 第一个层次首先是建立客观的对观察到的或体验到的事物进行描述的能力。沈博士会用微软认知服务里面的CaptionBot为例,来展现通过机器学习对一幅输入图像内容产生客观描述的技术。第二个层次是建立持续对话的能力。因为在对话的过程中,机器要能答问题,还要能提问题。机器要理解上下文状况,常识,及情感来做出合理的判断和响应—所谓对话即智能。沈博士总结一下微软研究院在智能问答生成方面的一些最新研究工作, 以及其在微软小冰聊天机器人平均长达23轮对话中的应用。第三个层次是建立在有意识地思考之上的理解和表达隐喻的能力。尽管离建立完全的机器意识还很远,作为一个初步的尝试,沈博士展示一下微软小冰看图作诗的技术。 下面是几张PPT: 对话即智能 阅读文本及提问 端到端对话生成模型与记忆机制 小冰的聊天话题引导 理解和表达意境:有意识的脑补 微软对话式人工智能产品的布局 同时,微软仍在主推Image Caption,并发布了COCO这样的数据集,SeeingAI项目及http://captionbot.ai 平台。 斯坦福李飞飞老师演讲的题目为:A Quest for Visual Intelligence: Beyond Objects. 介绍了视觉对生物的重要性,以及计算机视觉在物体识别任务中的飞速发展。然后讨论了计算机视觉的下一步目标:复杂场景理解,以及计算机视觉与语言结合的任务。目前主推Image Reasoning, 并围绕CLEVER数据集进行视觉理解和推理。 10月27号下午参加的听觉论坛主要围绕如下几个问题讨论: 1)听觉场景的噪音问题; 2)ASR需求和实用性问题; 3)声音的多模态问题; 4)文字理解和自主学习问题; 5)听觉机理的科学问题。 包括李锦辉教授、蒙美玲教授等多名教授报告过程中不只一次提到其担心的问题:目前成熟的深度学习工具可能害了近些年的一代Ph.D,工具太好太成熟导致很多Ph.Ds对科学问题没有深入、缺乏工匠精神,不做细工。只知How,不知Why。 言语与听觉研究论坛的集体合影 今年的CNCC在福州召开。住在了鼓楼区,开会闲暇之余四处逛了一下。 宾馆附近就是国家5A级景区 三坊七巷 福州还有一个西湖公园哈哈。 =======嗯,这里有后记========= 在福州机场例行检查时一安检姑娘问我:你是来参加计算机大会的吧? 我:啊,这都能猜到,怎么看出来的? … 继续阅读

基于BP的有监督脉冲学习算法:SpikeProp

在前面的工作中[http://jacoxu.com/tempotron/]已经介绍过脉冲神经元的基本特性。脉冲神经网络难以进行有监督学习的原因是其脉冲的离散特性和脉冲神经元的不可连续和微分性。文献[1]采用误差反向传播[2]进行多层脉冲神经网络模型(Multilayer SNNs)的训练,该方法假定神经元内部状态值在神经元发放脉冲时是在一个极短时间内线性增加的过程,通过这种近似,避免了脉冲无可微分的问题。后续的各种变种工作,甚至包括二值神经网络[3,4]和量化网络模型[5]均是采用近似的方式解决有监督训练过程中不可微分的问题。 首先,文献[1]中给出神经元的内部状态变量\({x_j}(t)\): \[{x_j}(t) = \sum\limits_{i \in {\Gamma _j}} {{w_{ij}}\varepsilon (t - {t_i})} \] 其中,\(\varepsilon (t)\)为脉冲响应函数,\({w_{ij}}\)为突触连接权重。突触响应函数的定义如下: \[\varepsilon (t) = \frac{t}{\tau }{e^{1 - t/\tau }}\] 如果考虑两个神经元之间有多个不同延时\({d^k}\)的突触连接,如下图所示。 图(A)前馈的脉冲神经网络模型;(B)多延时突触末梢的连接示例。 那么,考虑了多延时突触末梢连接的神经元内部状态变量重新定义如下: \({x_j}(t) = \sum\limits_{i \in {\Gamma _j}} {\sum\limits_{k = 1}^m {w_{ij}^ky_i^k(t)} } \)   … 继续阅读

脉冲神经网络及有监督学习算法Tempotron

接下来一段时间开启脉冲神经网络模型的探索之旅。脉冲神经网络有更强的生物学基础,尽可能地模拟生物神经元之间的连接和通信方式。其潜在能力较强,值得踏进一步探索。 构建脉冲神经网络模型,至少需要考虑三点: 1. 外界刺激编码 2. 构建神经元模型 3. 制定学习规则 外界刺激的编码方式主要有Rate Coding和Temporal Coding等,这里不在细述。而Hodgkin和Huxley两位研究员早在1952年就提出了第一个神经元模型:HH[1]。随后陆续有各种神经元模型被提出,其中具有代表性的为Izhikevich模型[2]和LIF(Leaky-Integrate-and-Fire)模型[3]。 以LIF神经元模型为例,其数学表达形式如下: \[\tau \frac{{dV}}{{dt}} = - (V - {V_r}) + RI\] 其中,\(\tau = RC\)为膜时间常数,\(R\)为膜电阻,\(C\)为膜电导,\(V\)为膜电位,\(V_r\)为复位电位,\(I\)为注入电流。当膜电位超过一个固定的阈值时,神经元发放一个脉冲,并很快地降至复位电位并维持一小段时间,然后接受前段突触的输入脉冲重新升高膜电位。各种神经元模型均类似于此过程。 学习规则又分为无监督和有监督,其中无监督学习方法以STDP(Spike-Timing-Dependent Plasticity)[4,5]为代表,而有监督学习包括Tempotron[6],ReSuMe(Remote Supervised Method)[7]和SpikeProp[8]等。 以Tempotron为例,阈值下的后突触膜电位(PSPs, Postsynaptic Potentials)为所有输入脉冲的加权和: \[V(t) = \sum\limits_i {{\omega _i}\sum\limits_{{t_i}} {K(t – {t_i}) + … 继续阅读

WSJ0数据中的.wv1文件(sph)读取

WSJ0数据中语音文件都是.wv1格式,为sph文件,在Windows下无法正常读取,需要进行转换。 转换工具:sph2pipe_v2.5,如果安装过Kaldi的话,可以直接使用 $KALDI_ROOT/tools/sph2pipe_v2.5/sph2pipe,如果没有安装的话,可以单独下载:http://sourceforge.net/projects/kaldi/files/sph2pipe_v2.5.tar.gz 如果是在Windows环境下的话直接使用sph2pipe.exe即可,如果是在linux环境下的话,则需要进行GCC编码:gcc -o sph2pipe  *.c -lm 最简单使用方式为 sph2pipe -f wav filename.wv1 filename.wav      

Matlab处理log文件

一般文本类文件都用java或python处理方便很多,此处记录一下matlab 处理文本文件的一些语法。 例如,程序记录下的日志文件为:dl4ss_output.log_2017_03_10_210643,其部分内容为: [Epoch: 1] - SDR:1.308344, SIR:2.063156, SAR:-1.509836, NSDR:2.908430   Epoch 1/1   50/50 [==============================] - 178s - loss: 1.9203 - val_loss: 1.7383   Epoch 1/1   50/50 [==============================] - 176s - loss: 1.6208 - val_loss: 1.5113   Epoch 1/1   50/50 [==============================] - 176s - loss: 1.4212 - val_loss: 1.3334   Epoch 1/1   50/50 [==============================] - 175s - loss: 1.2612 - val_loss: 1.1911   Epoch 1/1   50/50 [==============================] - 176s - loss: 1.1320 - val_loss: 1.0740   [Epoch: 6] - SDR:2.128937, SIR:3.154744, SAR:0.774681, NSDR:3.729023   Epoch 1/1   50/50 [==============================] - 175s - loss: 1.0312 - val_loss: 0.9913   现在想对该日志文件进行处理,并将Epoch迭代过程中评估的结果值绘制成图,方法如下: clc    clear   colours = ’rbckgcmbkgcmbkgcmbgrcmykbgrcmykb’;  % ’bgrcmykw’ modified by jacoxu@msn.com    symbols = ’.x^os*.dvph><x+^os*.dvph><+’;  % ’.ox+*sdv^<>ph’ %参考 http://blog.sina.com.cn/s/blog_618af1950100kdi2.html    linetypes = {‘-’,’-’,’-’,’-’,’-’,’-’,’-’,’-’,’-’,’-’,’-’,’-’,’-’,’-’,’-’,’-’,’-’,’-’,’-’,’-’,’-’,’-’};  % {‘-’,’:’,’-.’,’–’}    figureSize = [300,200,500,300];    lineWidth = 1.5;    para_list = {‘SDR’, ’SIR’, ’SAR’, ’NSDR’};       log_file = ’dl4ss_output.log_2017_03_10_210643′;    log_file_fd = fopen(log_file);    epoch_idx = 0;    … 继续阅读

Python下调用Matlab接口

1. 安装Matlab到目录$Matlab_Path 2. 安装Matlab Engine API for Python cd $Matlab_Path/extern/engines/python python setup.py install 3. 在Python中使用 (a). 加载库 import matlab.engine (b). 开启引擎 mat_eng = matlab.engine.start_matlab() (c). 把matlab文件放到当前工程目录下,如’./BSS_EVAL.m’ (d). 如有需要进行tpye转换,如 input = matlab.double(input) (d). 调用BSS_EVAL.m函数 params = mat_eng.BSS_EVAL(input)

三个短文本数据集及其分类聚类基准

【本文相关数据和代码】参见[Github, https://github.com/jacoxu/STC2] @article{xu2017self, title={Self-Taught Convolutional Neural Networks for Short Text Clustering}, author={Xu, Jiaming and Xu, Bo and Wang, Peng and Zheng, Suncong and Tian, Guanhua and Zhao, Jun and Xu, Bo}, journal={Neural Networks}, doi = “http://dx.doi.org/10.1016/j.neunet.2016.12.008“, year={2017} } 三个数据集分别来自SearchSnippets, StackOverflow和Biomedical. SearchSnippets: … 继续阅读

深度强化学习[Deep Reinforcement Learning]相关工作

此处列下要阅读学习的论文,待后续逐步增添其内容。 【0】. 强化学习经典教材 贡献:非常系统地介绍了强化学习的常用算法,在第二版最后章节添加了强化学习与心理学和神经学研究的关联性。 Sutton R S, Barto A G. Reinforcement learning: An introduction[M]. Cambridge: MIT press, 1998. 【1】. 2013年DeepMind团队Mnih等人在NIPS workshop上提出了深度强化学习的开创性工作DQN,在视频游戏领域取得突破。此工作使得DeepMind公司一战成名。 贡献:首次提出DQN,引起谷歌公司的注意并以4亿美元被其收购,致力于解决AI问题。 Mnih V, Kavukcuoglu K, Silver D, et al. Playing atari with deep reinforcement learning[C]//Proceedings of the NIPS Workshop on … 继续阅读