Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 917|回复: 0

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

[复制链接]
  • TA的每日心情
    奋斗
    2024-4-6 11:05
  • 签到天数: 748 天

    [LV.9]以坛为家II

    2034

    主题

    2092

    帖子

    70万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    705612
    发表于 2021-5-8 19:01:43 | 显示全部楼层 |阅读模式

    前言: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函数的导数很简单,实现起来比较方便。

    六 总结

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

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-4-29 05:22 , Processed in 0.086184 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表