前言:Hello 大家好,我是小花,又和大家见面了,前面的文章一直是对机器学习的基本分类,回归,聚类算法进行学习。那时候我记得给了大家很多特征,当时我说,特征的好坏决定了机器学习算法的效果。那么接下来,我将会带着大家研究研究机器学习的特征。

这是我在ICML上看到的一篇文章,作者是华盛顿大学的一个教授,文章名:deep canonical correlation analysis。就是深度典型相关分析。目的是解决多视图学习的非线性问题。前面我的文章对这个有介绍:

多视图学习:http://www.cnblogs.com/xiaohuahua108/p/6014188.html

典型相关分析:http://www.cnblogs.com/xiaohuahua108/p/6086959.html

估计看到这里的小伙伴估计就要问了,等等,非线性问题,不是你在说SVM算法的时候,用核解决的么。哈哈,真聪明,我在把连接给大家。

核的介绍:http://www.cnblogs.com/xiaohuahua108/p/6146118.html

核的思想:将数据映射到更高维的空间,希望在这个更高维的空间中,数据可以变得更容易分离或更好的结构化。对这种映射的形式也没有约束,这甚至可能导致无限维空间。然而,这种映射函数几乎不需要计算的,所以可以说成是在低维空间计算高维空间内积的一个工具。

那小伙伴肯定说把核函数加到CCA上不就完美解决了非线性问题了么,那这个深度网络的CCA难道比核方法好?我们稍后再说。

核CCA,既然大家都想到了,核加CCA。那么我就把KCCA的优化表达式给大家:

那既然选择了这个Deep CCA,那这个是不是比KCCA好呢。大家应该知道,核方法的应用主要在于核选取的不可知性,还有计算量比较大。说了这么多,我们先来介绍这个方法吧。

一:深度神经网络

深度网络就是超过两层的神经网络。如下图:

二:深度典型相关分析

大家都知道,典型相关分析是一个物体的不同视图,然后通过求两个视图的最大相关性,然后把它们融合在一个子空间。但是这是传统的线性问题,如果数据是非线性的,用传统的CCA去算的话,效果可想而知不好。而神经网络解决非线性问题的时候,就是通过嵌入每个层次的非线性函数来解决的,Deep CCA就是先用深度神经网络分别求出两个视图的经过线性化的向量,然后求出两个投影向量的最大相关性,最后求出新的投影向量。用这个投影向量加入到机器学习算法进行分类,聚类回归。

三 操作流程

如下图,假设我们输入层有C1个单元,输出层有σ个单元。

那么第一个视图的第一层输出为: 其中s是一个非线性函数。为权重的一般性写法。v代表第几个视图,d代表网络的层次。

第二层输出为:

,,,

最后输出为:

第二个视图的输出为:

那么现在我们的优化目标就和CCA一样,只是把原先直接输入的特征集用深度网络训练一遍,然后在用CCA求出投影向量。

优化目标就是: 其中分别为第一视图与第二个视图的参数集合。

我们为了求出,用反向传播的理论。

假设H1作为被深度网络训练之后的样本,同理H2也是。当然为了计算方便,我们把数据中心化分别为中心化之后的数据。

那么视图一和视图二之间的协方差阵为:(计算参照于秀林版的多元统计分析)

视图一的协方差矩阵为: 为了让矩阵有逆,类似于岭回归。其中r1是正则化参数,我一直认为叫正规化参数比较好理解。关于参数的选举我以后开一篇博客详细介绍下。

同理,视图二的协方差矩阵为:

由于我们知道,整个相关性等于矩阵.如果我们让K=σ,那么相关性就是矩阵T的迹范数也就是:

更具反向传播,以及奇异值分解,那么,

那么:

其中:

同理也就知道了。

至于后面的我就不说了,就是求出参数带进去算就可以了。

四 几个细节

因为是整个样本的相关系,不是分成一些数据点相关系的和。目前还不知道如何用随机优化方法一个一个地处理数据点。本篇文章采取的是一个基于最小批租的方法(Le, Q. V., Ngiam, J., Coates, A., Lahiri, A., Prochnow,B., and Ng, A. Y. On optimization methods for deeplearning. In ICML, 2011),但是比L-BFGS 方法要好,该方法来自(Nocedal, J. and Wright, S. J. Numerical Optimization.Springer, New York, 2nd edition, 2006)。

一开始训练的参数不是一个随机的初始化的参数,一般要先进行预训练。本文采取的初始参数方法是来自(Vincent, P., Larochelle, H., Bengio, Y., and Manzagol, P.-A.Extracting and composing robust features with denoisingautoencoders. In ICML. ACM)它是一个噪声的自编码技术。

另外在数据集进行处理的时候,加上一个方差为的高斯噪声作为样本集。然后被重建的样本集为,然后用L-BFGS方法重建初始数据加上二次惩罚系数:

,然后W,b被用来做DCCA的优化,然后作为下一层的预训练。

五 sigmoid函数的选择问题

任何一个非线性的sigmid都可以决定每个神经元的输出,但是这篇文章使用一个新的以立方根为基础的sigmid函数,设。则sigmoid函数为:。这个函数与传统的logistic和双曲正切非线性函数相比,S函数有一个s形状,和在x=0的时候有一个单位斜率,与双曲切面相比,他是一个新奇的功能,但是logistic和双曲切面值变化特别快。如下图:

另外一个是实现简单:这个s函数的导数很简单,实现起来比较方便。

六 总结

好了,本文说完了。可能理解有些偏颇,希望大家指正,哈哈。

转载于:https://www.cnblogs.com/xiaohuahua108/p/6423938.html

深度学习解决多视图非线性数据特征融合问题相关推荐

  1. 用深度学习解决大规模文本分类问题

     用深度学习解决大规模文本分类问题 人工智能头条 2017-03-27 22:14:22 淘宝 阅读(228) 评论(0) 声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者 ...

  2. 步步为营!高手教你如何有效使用深度学习解决实际问题

    来自法国 Capgemini Invent 公司的高级数据科学家 Ahmed BESBES 三个月前参加了一个其公司内部的比赛:使用机器学习方法帮助海洋科学家更好的识别鲸鱼,根据鲸尾页突的外观作为主要 ...

  3. Data Augmentation for Deep Learning-based Radio ModulationClassification解读(基于深度学习的无线电调制分类数据扩充)

    摘要:深度学习最近被应用于自动分类接收无线电信号的调制类别,而无需人工经验.然而,训练深度学习模型需要大量的数据.训练数据不足会导致严重的过度拟合问题,降低分类精度.为了处理小数据集,数据增强被广泛应 ...

  4. 基于深度学习技术的电表大数据检测系统

    基于深度学习技术的电表大数据检测系统 人工智能技术与咨询 来源:< 人工智能与机器人研究> ,作者方向 关键词: 智能电表:数据分析:深度学习时序模型: 摘要: 随着我国电厂不断发展,我国 ...

  5. 用深度学习解决旅行推销员问题,研究者走到哪一步了?

    来源:机器之心 本文约2600字,建议阅读9分钟 本文分析了深度学习在路由问题方面的最新进展,并提供了新的方向来启发今后的研究. 最近,针对旅行推销员等组合优化问题开发神经网络驱动的求解器引起了学术界 ...

  6. 基于深度学习的目标检测:数据增强(一)图像翻转、图像旋转、图像放缩

    1.数据增强简介 数据增强(data augmentation),又名数据增广或数据扩充,其本质是通过使用图像处理方法,基于有限的数据产生更多的数据,以此增加训练样本的数量以及多样性,进而提升模型的泛 ...

  7. 谷歌开放语音命令数据集,助力初学者利用深度学习解决音频识别问题

    语音命令数据集地址:http://download.tensorflow.org/data/speech_commands_v0.01.tar.gz 音频识别教程地址:https://www.tens ...

  8. 深度学习仍是视觉大数据领域的最好分析方法之一

    随着移动互联网和物联网的快速普及,全球数据总量呈指数级增长.据雷锋网统计,我们每天创造约2.3万亿GB数据. 过去,人们对海量数据无从下手.随着大数据与人工智能.云计算.物联网.区块链等前沿技术的紧密 ...

  9. 花书+吴恩达深度学习(二)非线性激活函数(ReLU, maxout, sigmoid, tanh)

    目录 0. 前言 1. ReLU 整流线性单元 2. 绝对值整流线性单元 3. 渗漏整流线性单元 4. 参数化整流线性单元 5. maxout 单元 6. logistic sigmoid 单元 7. ...

最新文章

  1. JAVA基础知识之Set集合
  2. FPGA之道(27)VHDL的操作符号
  3. TypeScript 使用 字典 Dictionary
  4. python时间重叠_最常见的重叠范围-Python3.x
  5. golang怎么给空结构体赋值
  6. 如何使用SDK连接SBO?
  7. 马哥学习笔记二十七——IO复用
  8. python读取文件名有中文_[请教]python的中文文件名处理
  9. cmd做个定时弹窗_windows如何设置定时关机?
  10. 发布阿里云OSS for phpcmsV9整合教程
  11. ABAP术语-V1 Module
  12. SQL server常见问题
  13. 解决禁用笔记本键盘,外接使用键盘方法
  14. 新版Edge浏览器如何设置崩溃自动恢复网页
  15. 华为OD机试题:叠积木(Python 解法)
  16. 【归纳】对于S3C2440A芯片的认知和使用理论再学习
  17. 地址栏中的#是什么意思
  18. 网游运营基本概念及专业术语
  19. python 抽奖 完全公平的随机数算法_抽奖 随机数
  20. windows录屏_Windows电脑怎么录制屏幕?查看电脑自动录屏方法

热门文章

  1. 类似百度输入框自动完成
  2. getInitParameter方法
  3. [Security]XSS一直是个棘手的问题
  4. 业界资讯:Alternativa 3D 7 免费
  5. Django之MVC框架与MTV框架详解
  6. appium-java长按学习
  7. PInvoke复习之深入理解char*与wchar_t*与string以及wstring之间的相互转换
  8. [ant]通过Android命令自动编译出build.xml文件
  9. 《青春飞扬》诗集出版历程与思考分享 之三:游记、感悟与思考
  10. 黑马在线教育项目---15-16、datatables插件