第十周:机器学习

news/2024/9/17 9:25:57/ 标签: 机器学习, 深度学习, 人工智能

目录

摘要

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.ppmy.cn/news/1522855.html

相关文章

【MySQL】MySQL基础

目录 什么是数据库主流数据库基本使用MySQL的安装连接服务器服务器、数据库、表关系使用案例数据逻辑存储 MySQL的架构SQL分类什么是存储引擎 什么是数据库 mysql它是数据库服务的客户端mysqld它是数据库服务的服务器端mysql本质:基于C(mysql&#xff09…

IDEA插件推荐-SequenceDiagram,自动生成时序图

SequenceDiagram插件是一种用于绘制时序图的工具。时序图是一种图形化的表示对象之间消息传递顺序的方法。 该插件可以在使用各种编程语言编写代码时,方便地绘制时序图,以帮助开发者更好地理解和描述系统中的交互流程。 SequenceDiagram插件体验&#x…

字符串操作的高效工具—正则表达式

字符串操作的高效工具—正则表达式 一 . 概述1.1 认识正则表达式1.2 正则表达式体验案例 二 . 使用2.1 字符类2.2 逻辑运算符2.3 预定义字符2.4 数量词2.5 分组括号2.6 字符串中常用含有正则表达式的方法 正则表达式(Regular Expression,简称 regex 或 r…

《论面向方面的编程技术及其应用》写作框架,软考高级系统架构设计师

论文真题 随着社会信息化进程的加快,计算机及网络已经被各行各业广泛应用,信息安全问题也变得愈来愈重要。它具有机密性、完整性、可用性、可控性和不可抵赖性等特征。信息系统的安全保障是以风险和策略为基础,在信息系统的整个生命周期中提…

✨机器学习笔记(二)—— 线性回归、代价函数、梯度下降

Course1-Week1: https://github.com/kaieye/2022-Machine-Learning-Specialization/tree/main/Supervised%20Machine%20Learning%20Regression%20and%20Classification/week11️⃣线性回归(linear regression) f w , b ( x ) w x b f_{w,b}(x) wx b …

85、 探针

一、pod的进阶 pod的进阶: 1.1、pod的生命周期当中的状态: 1、Running运行中,pod已经分配到节点上且pod内的容器正常运行。正常状态(ready 1/1)。 2、complete:完成之后退出,容器内的返回码…

python获取音频文件采样率的方法

在 Python 中,你可以使用多种库来获取音频文件的采样率(sampling rate)。常见的音频文件格式包括 .wav、.mp3、.flac 等。对于不同的音频文件格式,可以使用不同的库来处理。以下是一些常见的库和对应的方法: 1. 使用 w…

pytest压力测试:不断发送数据,直到发现数据丢失

示例场景 假设有一个 send_data 函数接受数据并返回成功或失败的状态。 创建一个测试用例,通过逐步增加数据量来测试这个函数,直到返回失败为止。 步骤 定义压力测试函数 定义一个函数。不断发送数据,直到发现数据丢失。 创建 pytest 测试…

电脑驱动分类

电脑驱动程序(驱动程序)是操作系统与硬件设备之间的桥梁,用于使操作系统能够识别并与硬件设备进行通信。以下是常见的驱动分类: 1. 设备驱动程序 显示驱动程序:控制显卡和显示器的显示功能,负责图形渲染和…

Java并发编程实战 07 | 如何正确停止线程

什么时候需要停止一个线程? 一个线程被创建并启动之后,大部分情况下都会自然运行至结束,但是也有一些情况需要主动停止线程,比如: 用户主动取消执行:用户可能会中止一个正在进行的操作,这时需…

python---爬取QQ音乐

如Cookie为非vip,仅能获取非vip歌曲 1.下载包 pip install jsonpath 2.代码 import os import time import requests from jsonpath import jsonpathdef search_and_download_qq_music(query_text):headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; …

网络层ip协议

一.概念 ip协议主要是为了在复杂的网络环境中确定一个合适的路径来传输主机间的数据。简单来说就是用来确定主机的位置。 ip协议中的一些设备如下: 主机: 配有 IP 地址, 但是不进行路由控制的设备;路由器: 即配有 IP 地址, 又能进行路由控制;节点: 主机和路由器的统…

vue多环境配置和打包

件名的后缀来指定它们仅在特定模式下被加载。 .env:所有环境下都会加载的通用配置。 .env.local:本地覆盖配置,不加入版本控制。 .env.[mode]:仅为指定的模式加载的配置文件,例如.env.development、.env.production、…

Claude Enterprise推出计划

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

探究零工市场小程序如何改变传统兼职模式

近年来,零工市场小程序正逐渐改变传统的兼职模式,为求职者和雇主提供了一个更为高效、便捷的平台。本文将深入探讨零工市场小程序如何影响传统兼职模式,以及它带来的优势和挑战。 一、背景与挑战 传统的兼职市场往往存在信息不对称的问题&am…

本地Gitblit使用

首先创建一个本地的gitblit的服务,创建流程如下: 【GitBlit】Windows搭建Git服务器详细教程_搭建gitblit服务-CSDN博客 GitBlit的使用教程-CSDN博客 创建好一个仓库后,分配好用户权限,再将项目拉下来,这里是再visua…

C++如何创建一个单例模式的类

单例模式(Singleton Pattern)是一种创建型设计模式,其核心目的是确保一个类只有一个实例,并提供一个全局访问点来获取这个实例。单例模式通常用于管理共享资源,如配置文件、线程池、缓存等。在C中,创建一个…

页面小组件-表格封装(基础版)

说明 这一版封装的主要原因是当时有很多报表&#xff0c;数据列很多很多&#xff0c;基本在二十个左右。相应领导安排简洁代码&#xff0c;也为了偷懒&#xff0c;直接插槽循环搞起。其余是为了统一样式修改。 组件源码 <template><el-tablev-loading"loading…

DML、DQL、DCL的基础介绍

1.DML、DQL、DCL 1.1DML-介绍 DML英文全称Data Manipulation Language&#xff08;数据操作语言&#xff09;&#xff0c;用来对数据库中表的数据记录进行增删改操作 添加数据&#xff08;INSERT&#xff09;修改数据&#xff08;UPDATE&#xff09;删除数据&#xff08;DEL…

docker 启动容器报错 Error response from daemon: network XXX not found

华为的云服务器,重启后启动容器报上述错误 可能是容器依赖的网络被删除了 查看现有网络 docker network ls docker run -it \-p 80:80 \-p 443:443 \--name nginx \--network app --hostname nginx \-e TZAsia/Shanghai \--add-host adminJar:192.168.0.169 \-v /guazai/do…