热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

慢速特征分析简介

我最近在波鸿鲁尔大学开始了机器学习的博士学位研究。我加入的小组的主要研究主题之一是慢特征分析(SFA)。要学习一个新主题,我喜欢看示例和直

我最近在波鸿鲁尔大学开始了机器学习的博士学位研究。 我加入的小组的主要研究主题之一是慢特征分析(SFA)。 要学习一个新主题,我喜欢看示例和直观的解释,如果可能的话,让自己沉浸在数学上的严谨中。 我为其他喜欢以类似方式接触学科的人写了这篇博客文章,因为我认为SFA既强大又有趣。

在本文中,我将以一个应用SFA的代码示例为指导,以帮助激发该方法。 然后,我将详细介绍该方法背后的数学原理,最后提供指向该材料上其他良好资源的链接。

1.确定一个平滑的潜在变量

SFA是一种无监督的学习方法,可以从时间序列中提取最平滑(最慢)的基础功能或特征 。 这可以用于降维,回归和分类。 例如,我们可以有一个高度不稳定的级数,该级数由更好的行为潜变量确定。

让我们开始生成时间序列DS:

这称为后勤图。 通过绘制序列S ,我们可以检查其混沌性质。 驱动上面曲线的行为的基本时间序列D简单得多:

我们如何从不稳定的时间序列中确定简单的基础驱动力?

我们可以使用SFA来确定功能最缓慢变化的功能。 在我们的情况下,我们将以S之类的数据开始,以D结束,而不必事先知道S是如何生成的。

SFA的实现旨在寻找线性输入的特征。 但是从示例中我们可以看到,驱动力D是高度非线性的! 这可以通过首先对时间序列S进行非线性扩展,然后找到扩展数据的线性特征来解决。 通过这样做,我们找到了原始数据的非线性特征。

让我们通过在上面堆叠S的延时副本来创建一个新的多元时间序列:

接下来,我们对数据进行三次扩展并提取SFA特征。 立方膨胀变成一个4维向量[A,B,C,d]ᵀ与元件t³,t²v,电大,吨 ²,电视,t代表不同T,U,V∈{A,B的34元素矢量,c,d}。

请记住,每个问题要添加的最佳时间延迟副本数各不相同。 或者,如果原始数据的维数太高,则需要进行降维,例如使用主成分分析 。

因此,将以下内容视为该方法的超参数:维数展开(缩小)方法,展开后的输出尺寸(缩小)和要找到的慢特征数量。

现在,在添加延时复制后,时间序列的长度从300更改为297。因此,慢特征时间序列的相应长度也为297。 为了在此处更好地进行可视化,我们通过在第一个值之前加上最后一个值两次来将其长度更改为300。 SFA发现的特征的均值和单位方差为零,因此我们在可视化结果之前也将D归一化。

即使仅考虑300个数据点,SFA功能也几乎可以完全恢复基础源-令人印象深刻!

2.那么到底发生了什么?

从理论上讲,SFA算法接受一个(多元)时间序列X和一个整数m来表示输入,该整数m指示要从该序列中提取的特征数量,其中m小于时间序列的维数。 该算法确定m个函数

这样使得每个y 1的两个连续时间点的平方时间导数的平方最小。 直观地,我们希望最大化功能的慢度:

其中的点表示时间导数,在离散情况下:

目标函数(1)测量特征的慢度。 零均值约束(2)使特征的第二矩和方差相等,并简化了表示法。 单位方差约束(3)放弃常数解。

最终约束(4)对我们的特征进行解相关,并导致其缓慢性排序。 这意味着我们首先找到最慢的特征,然后找到与它之前的正交的下一个最慢的特征,依此类推。 对功能进行解相关可确保我们捕获最多的信息。

在下文中,我浏览了重要的细节并跳过了步骤,但是为了完整起见,我想将其包括在内。 我建议也查看下面的链接以获取更详尽的解释。

让我们只考虑线性特征:

时间序列X可以是“原始数据”或它的非线性扩展,请参见上面的示例。 请记住,即使这些是扩展数据的线性特征,它们仍然可以是原始数据的非线性特征。

假设均值X为零,则通过求解广义特征值问题 AW = BWΛ找到线性特征。 我们确定特征值-特征向量的元组(λᵢ,Wᵢ),使得A =Wᵢλᵢ Wᵢ,在那里我们有

标量λᵢ表示特征的慢度,即λᵢ越小 ,相应y varying的变化就越慢。 如果您熟悉广义特征值问题,请注意此处的特征值在增加,而不会减少。 最后,特征向量Wᵢ是定义我们学习特征的变换向量。

3.进一步阅读

原始论文: https : //www.ini.rub.de/PEOPLE/wiskott/Reprints/WiskottSejnowski-2002-NeurComp-LearningInvariances.pdf

SFA在分类中的应用: http : //cogprints.org/4104/1/Berkes2005a-preprint.pdf

上面的示例改编自: http : //mdp-toolkit.sourceforge.net/examples/logmap/logmap.html

From: https://hackernoon.com/a-brief-introduction-to-slow-feature-analysis-18c901bc2a58



推荐阅读
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • 机器学习算法:SVM(支持向量机)
    SVM算法(SupportVectorMachine,支持向量机)的核心思想有2点:1、如果数据线性可分,那么基于最大间隔的方式来确定超平面,以确保全局最优, ... [详细]
  • 三角测量计算三维坐标的代码_双目三维重建——层次化重建思考
    双目三维重建——层次化重建思考FesianXu2020.7.22atANTFINANCIALintern前言本文是笔者阅读[1]第10章内容的笔记,本文从宏观的角度阐 ... [详细]
  • 本文介绍了几种常用的图像相似度对比方法,包括直方图方法、图像模板匹配、PSNR峰值信噪比、SSIM结构相似性和感知哈希算法。每种方法都有其优缺点,适用于不同的应用场景。 ... [详细]
  • 题目《BZOJ2654: Tree》的时间限制为30秒,内存限制为512MB。该问题通过结合二分查找和Kruskal算法,提供了一种高效的优化解决方案。具体而言,利用二分查找缩小解的范围,再通过Kruskal算法构建最小生成树,从而在复杂度上实现了显著的优化。此方法不仅提高了算法的效率,还确保了在大规模数据集上的稳定性能。 ... [详细]
  • 自然语言处理(NLP)——LDA模型:对电商购物评论进行情感分析
    目录一、2020数学建模美赛C题简介需求评价内容提供数据二、解题思路三、LDA简介四、代码实现1.数据预处理1.1剔除无用信息1.1.1剔除掉不需要的列1.1.2找出无效评论并剔除 ... [详细]
  • WCF类型共享的最佳实践
    在使用WCF服务时,经常会遇到同一个实体类型在不同服务中被生成为不同版本的问题。本文将介绍几种有效的类型共享方法,以解决这一常见问题。 ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • 本文将深入探讨 iOS 中的 Grand Central Dispatch (GCD),并介绍如何利用 GCD 进行高效多线程编程。如果你对线程的基本概念还不熟悉,建议先阅读相关基础资料。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • C#实现文件的压缩与解压
    2019独角兽企业重金招聘Python工程师标准一、准备工作1、下载ICSharpCode.SharpZipLib.dll文件2、项目中引用这个dll二、文件压缩与解压共用类 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • 双指针法在链表问题中应用广泛,能够高效解决多种经典问题,如合并两个有序链表、合并多个有序链表、查找倒数第k个节点等。本文将详细介绍这些应用场景及其解决方案。 ... [详细]
  • 本文回顾了作者初次接触Unicode编码时的经历,并详细探讨了ASCII、ANSI、GB2312、UNICODE以及UTF-8和UTF-16编码的区别和应用场景。通过实例分析,帮助读者更好地理解和使用这些编码。 ... [详细]
  • R语言中向量(Vector)数据类型的元素索引与访问:利用中括号[]和赋值操作符在向量末尾追加数据以扩展其长度
    在R语言中,向量(Vector)数据类型的元素可以通过中括号 `[]` 进行索引和访问。此外,利用中括号和赋值操作符,可以在向量的末尾追加新数据,从而动态地扩展向量的长度。这种方法不仅简洁高效,还能灵活地管理向量中的数据。 ... [详细]
author-avatar
总裁班的草根
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有