当前位置: 首页 > article >正文

第十周:机器学习

目录

摘要

Abstract

一、RNN的进一步探索

1、RNN的困境 

2、RNN的应用 

二、谱图理论

 1、理论基础​编辑 

2、计算流程  

3、傅里叶变换

4、filtering 

5、GCN 

总结 


摘要

接着上周对RNN的讨论,这周学习了如何训练RNN,对于训练过程中出现的问题做出了解决——LSTM,进而又介绍了几种RNN更加复杂的应用情况,以及将RNN与结构化学习进行对比分析;接下来,简单了解了GNN,为了进一步了解谱图理论,我们又对其计算流程和傅里叶变换等技巧进行分析和数学推导。

Abstract

Following last week's discussion of RNNs, this week we learned how to train RNNs, made a solution to the problems that arose during the training process - LSTM, and then introduced several more complex applications of RNNs, as well as a comparative analysis of RNNs and structured learning; next, we briefly learned about GNNs, and in order to further understand the spectrogram theory, we also analyze and mathematically derive its computational process and techniques such as Fourier transform.

一、RNN的进一步探索

1、RNN的困境 

一般来说,RNN的训练比较困难。如下图: 

error surface有时很陡峭有时很平坦。如果说橙色的点是初始点,然后不断地进行gradient descent,一旦下一步橙色点位于悬崖之上,那么loss就会变得很大。为了解决这一问题,可以采用clipping的方法将loss较高的点砍去,继续进行下一步的gradient descent。 

解决gradient descent骤增的方法:clipping 

为什么会出现RNN难以训练的情况,如下: 

 

可以从上述例子中看出,同一个weight在不同神经元传递的过程中反复利用了多次。当weight的乘积次方数过大时,只要有很小的差异都会被无限放大。 

问题:RNN在太长的序列当中,可能会出现梯度消失的问题。是因为参数更新只能捕捉到局部依赖,但无法捕捉到全局依赖。

解决:LSTM,可以实现全局依赖

LSTM可以解决“梯度消失”的问题。因为LSTM是在input gate和forget gate的共同作用下将input和memory叠加而成,LSTM的每个神经元都是带着前面输入的记忆,所以可以做到全局依赖。

2、RNN的应用 

周报(九)从slot filling入手,列举了RNN比较简单的一种情况——input和output的长度一致。其实, RNN不仅可以解决上述情形,还能应用在一些更加复杂的场合,如下:

many to one

 

比如说,我们想要收集一个电影的评论来判断该部的观影质量。需要让机器学习评论中的正向、中立及负向等情绪词汇,然后分析评论得出分类结果。 左图中就是情绪分析的大致流程,逐字作为输入最终经过RNN,得到的输出是定义的其中一个类别;右图是情绪分析中的主要部分——关键字提取,其中经过embedding layer(netx lecture)

many to many

比如说,语音辨识中,可以将一系列语音作为输入,最终经过trimming将有用的词(删除所有与前面一致的词)保留下来作为输出。

问题:如果输出是一个叠词,那么根据trimming将会删去最后一个重复的字

解决:增加一个符号代表 “null”

序列对序列的自编码器

Seq2Seq Auto-encoder:可以利用当前语句,来预测下一语句。除了要学习sequence向量以外,还需要前后语句之间的关系。

 

自编码器可以应用在文本处理、语音识别等场合,如下: 

 

RNN中的auto-encoder中一般包含编码器和解码器。编码器中,它接受输入序列,然后处理该序列,处理完成后处于隐藏状态;解码器中,它将输出序列进行处理,使得输出序列尽可能接近输入序列,在处理之前处于隐藏状态。

RNN v.s. structured learning

总结:RNN只考虑了序列中前面部分的输入,不能兼顾整个序列;然而结构化学习可以考虑到完整的序列。RNN、LSTM有个最大的优势就是 可以进行深度学习,是结构化学习无法实现的。

深度学习和结构化学习是可以相结合的。 

二、谱图理论

GNN

GNN(Graph Nerual Networks)图神经网络:是深度学习的一种常见模型。它可以很好地捕捉节点之间的关系和依赖性,在许多领域都有广泛应用,如社交网络分析、流行病学、化学分子预测等。

 1、理论基础\cdot 

重要的就是要完成上述图解过程: Layer_{i+1}=Layer_i\cdot Filter,右图是左图经过filter后的结果。 

下面是一个重要的“合成”与“分析”基础: 

 

合成就是从“个别到整体”的过程,也就是说一个空间向量是由多个空间中的分支在“空间中的加和”而成的;分析就是从“整体到个别”的过程,也就是可以通过一个空间向量计算出其在各个分支的向量。 相同域和不同域中的合成有不同的表示方式,如下:

从上图能够看出 ,可以用\widehat{v_i} 或者\widehat{u_k}等等不同组的向量来表示\widehat{A},也可以用傅里叶变换来表示。

2、计算流程  

图谱理论流程的关键字母解释如下: 

 

 L是拉普拉斯矩阵,A是邻接矩阵,D是degree矩阵(用来记录每个顶点的出入度之和),\Lambda是 特征向量矩阵 ,\lambda是特征值(也代表了不同的频次)

拉普拉斯矩阵Laplacian Matrix:laplace矩阵描述的是运动的位移或者变化量。 记为L=D-A

参考文章:https://zhuanlan.zhihu.com/p/80817719 

 矩阵U代表的每一行都代表各个频率下每个结点的大小,其中\lambda_1\lambda_2\lambda_3\lambda_4分别代表不同的频次。f就是每个顶点的信号大小。

如何解读顶点的频次

得出结论:频次越大,相邻两点之间的差距(信号变化)也就越大。

前面所叙述的power difference可以用特征值\lambda来表示,特征值的大小就代表了能量差异的大小,如下图所示: 

可以看出,特征值较小的情况下,各个相邻顶点的能量差距较小;反之,特征值较大时各个顶点能量值较大。 

3、傅里叶变换

傅里叶变换fourier transform:是一种线性积分变换,用于信号在时域(或空域)和频域之间的变换,在物理学和工程学中有许多应用。它认为任何一个周期性函数都可以经过变换变成一系列正余弦函数。一般情况下,傅里叶变换都是连续的。

参考视频:B站首发!草履虫都能看懂的【傅里叶变换】讲解,清华大学李永乐老师教你如何理解傅里叶变换,辨清美颜和变声原理,!!_哔哩哔哩_bilibili

傅里叶变换如下图: 

 

上半部分是一个周期性函数,下半部分经过fourier transform变成了不同频次上振幅的大小的示意图。能做到上述变换需要用到“分析”这一步骤:

 

需要分析出每个信号x在各个频域上的大小。反之,如何实现由多个分支合成一个整的顶点信号,如下图所示:

就是在所有的频域上的信号做变换之和。 

4、filtering 

问题1:需要学习的参数太多,学习复杂度高达O(N) 。而且不同的图需要重新学习一批新的参数。

问题2:不是一个localized filter。该filtering的过程与CNN的filter不一样,CNN中不同的kernel会决定不同的receptive,而谱图理论中的filtering会依次读取整个图中的所有信息。

解决:使用多项式来解决上述问题

切比雪夫网络Chebnet:是通过将卷积核函数切比雪夫多项式进行逼近,避免了特征值分解 、运算;并利用多项式拟合可以选择使用低阶数拟合的能力,将计算从全局变成了局部

总的来说,Chebnet不仅可以做到速度快,还能做到localized。

问题3:最后计算成本巨大,因为需要计算两遍特征值相乘(特征值的计算时间复杂度就是 O(N)

解决: 切比雪夫多项式来递归的计算Laplacian矩阵

将一个函数一个多项式表示来变成另一个多项式的表示,这样的转换为的就是方便计算

5、GCN 

正则化renormalization:在图卷积网络当中,由于每个结点会与其他结点相互连接,所以每个结点的所接受到的信息不仅受自身影响,还受相邻结点信息的影响(并且各个结点的度也同时决定着它对相邻结点的影响大小)邻居节点的度越大,权重越小,也即一个节点的边越多,由于节点的总的信息是一定的,那么他通过每条边的信息量越少,即通过某条边向外发送的信息越少。

正则化的公式如下: 

总结 

本周对RNN进行了更深层次的分析,主要是针对RNN的应用场景及RNN训练中遇到的困难;还有GNN及谱图理论的分析推导。下周将继续学习GNN。 


http://www.kler.cn/a/305605.html

相关文章:

  • React的基础API介绍(二)
  • INQUIRE:一个包含五百万张自然世界图像,涵盖10,000个不同物种的专为专家级文本到图像检索任务设计的新型基准数据集。
  • WPF学习之路,控件的只读、是否可以、是否可见属性控制
  • 软件测试面试八股文(超详细整理)
  • Kubernetes在容器编排中的应用
  • git commit 校验
  • 深度学习的关键数据结构——张量解释
  • [羊城杯 2020]Blackcat1
  • ThinkPHP8出租屋管理系统
  • 【高等数学学习记录】函数
  • RPC远程调用的序列化框架
  • 【python】OpenCV—Age and Gender Classification
  • Threejs合并模型动画(上)
  • quartz 搭配SQL Server时出现deadlock的解决方案
  • ClickHouse总结
  • 如何使用 Vue 3 的 Composition API
  • C++ | Leetcode C++题解之第406题根据身高重建队列
  • 阿里部分集团内部中间件简介
  • 【Elasticsearch系列四】ELK Stack
  • DroidBot-GPT: GPT-powered UI Automation for Android论文学习
  • C++学习笔记----7、使用类与对象获得高性能(一)---- 书写类(2)
  • 【编程基础知识】Java语言中字面字符和转义字符的区别
  • 自建,前端sdk库(react-utils-dev-sdk)
  • Pytorch2.4.0自动安装cudnn9.1??? pip安装cudnn方法
  • 使用SQLAlchemy进行数据库操作:编写一个高效的Python函数
  • SpringBoot和SpringMVC是什么关系?SpringBoot替代SpringMVC了吗?