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

多模态机器学习入门Tutorial on MultiModal Machine Learning——第一堂课个人学习内容

文章目录

    • 课程记录
      • 核心技术Core Technical Challenges
      • representation表示
      • alignment对齐
      • 转换translation
      • Fusion融合
      • co-learning共同学习
      • 总结
      • Course Syllabus教学大纲
    • 个人总结
    • 第一周的安排
    • 相关连接

课程记录

这部分是自己看视频,然后截屏,记录下来的这部分的感受,大家感兴趣但是又听得很费劲的话,可以看我的总结。

核心技术Core Technical Challenges

representation表示

在这里插入图片描述

在这里插入图片描述

  • 多模态学习的里程碑事件,是人们学会了联合表示joint representtation。
  • 在上图中,可以看到不同的模态信息都是使用同一种表示进行表示,包括语言,感觉,触觉等。
    在这里插入图片描述
  • 上图中左侧是图片和文字两种模态进行融合发展的典型样例。右侧是语言和视觉的结合,分别使用独立的语言模型和视觉模型,将文本和图片转为vector进行表示,然后再进行联合。这两个语义就存在于同一个空间。

在这里插入图片描述

  • 上述slide是一个联合学习的简单应用 ,将一个蓝色的车辆生成的向量,减去blue生成vector,然后再加上新的单词,你就可以获得红色的车。可以用来做简单的内容理解,虽然内容仍旧很鸡肋,但是但是已经是划时代。进一步说,我们可以将多模态学习转为如何开发出一种能够表示不同模态数据的冗余性和互补型的表示。

在这里插入图片描述

  • 数据的互补性在于,仅仅通过一种模态并不能达成目标,需要两种信息互补。冗余性,就是通过一种信息就可以知道完全的信息,彼此是冗余的,但是可以保持模型的健壮性。
  • 不同于多模态协调,多模态融合是将两种模态融合为一种模态,在同一空间中进行保存,图片就是文本,然后文本就是图片,这是绑定的。但是多模态协调, 是完全不同的模态。如果两个模态比较近似,可以使用联合表示joint representation。如果不相等,但是相似,就可以使用多模态协调。
  • 多模态协调的典型样例就是:CCA Canonical Correlation analysis

alignment对齐

在这里插入图片描述

  • alignment和多视角,多种语言中对齐定义相类似,正常你在说话的时候,需要将和语言和动作进行对齐,才会便于理解。多模态学习就像是对于同一事物,使用不同视角进行学习,这个视角可以看作是模态,就是使用不同的模态去学习同一个事物。常见的应用,比如说,将表示同样意义的图片和文字进行存储。
  • Explicit Alignment:是根据意义将事物进行比对,比如说将做通一道菜的视频和菜谱进行配对,将意义相同的图片和文字进行配对。损失函数,的目标就是衡量是否对齐的。
  • Implicit Alignment:不同于上文的清晰对齐,不清晰对齐的损失函数的目标并不是直接判定是否对齐的,是以别的任务为目标的。不清晰的对齐是作为某一项任务的中间过程,实际的损失函数可能是以别的任务为目标。常见的比如说,在从图片生成文本的过程中,文字和图片对齐仅仅是一个潜在的过程,对于研究这个方向的人来说,具体可能就是注意力模型。自注意力机制和tarnsformer就是按照这个线索展开的。

在这里插入图片描述
在这里插入图片描述

  • 上述视频可能不同,运动力度不同,但是你仍旧可以想方设法使其进行对齐。上述slide就是explicit对齐,单纯为了对齐而对齐

在这里插入图片描述

  • 上述过程就是隐式对齐,为了实现语言生成,需要进行文字对齐。对齐是作为其中一个过程存在的。

在这里插入图片描述

  • representation和alignment对于大部分多模态模型而言,都是必须的部分,也是本课程最为重要的两个部分,分别花费三周的时间学习。在后者,将会产生分支,translation是作为转换,将一种模态转换为另外一种模态,而fusion虽然是融合,是将两种模态进行融合,但是不同于representation,其实为了获取更加高级的信息,比如说获取情感信息,或者获取视频中的具体事件等。
  • translation的典型应用就是图片的注释生成。

转换translation

在这里插入图片描述

  • 这就是转换的一个典型的应用,根据任务描述和台词,自动生成在说这些话的动画模型。

在这里插入图片描述

  • 将数据从一种模态转变为另外一种模态的过程,其中转换关系一般是开放没有限度的,或者是主观的

在这里插入图片描述

  • 这个应用是根据文字生成对应的动作,作者的幻想就是根据剧本生成对应初始版本的动画,看看剧本的效果。

Fusion融合

在这里插入图片描述

  • 主要是分为早期融合和晚期融合,早期融合是针对,在将两种模态的数据进行融合,在融合之后的数据上进行更加复杂的操作。而后融合,就是先进行复杂操作,然后见结果进行融合,这样处理之后,整个模型的数据会变小。
  • model-agnostic approach:模型不可知方法

在这里插入图片描述

co-learning共同学习

  • 共同学习的目标:在模态之间尽心转换结果,包括表达方式和预测性的模型。比如说,目标检测就是一个单模态的任务,我们能否使用其他的已经训练好的相关的多模态模型,来减少单模态目标识别的训练时间。一般来说,是用来针对数据比较少的情况下使用的。

在这里插入图片描述

  • 共同学习的最大问题,就是不知道两个共同学习的模态的相关性是强的,还是弱的,不知道如何进行配对。parallel就是完全匹配的关系,每一个模态的元素都是一一对应的,比如说单词和图片。另外一种就是non-parallel属于不完全匹配,但是整体的含义是相同的,比如说具有相同意义的,英文句子和法语句子。

在这里插入图片描述

  • ** a cyclic loss** : 循环损失
  • 上述例子是学习language Embedding的过程,将用户说的话编码,用来进行情感识别。这里的想法是,如果语料库足够多,就可以单纯通过语言这个模态进行解决,但是针对手写的文本数据库比较多,但是对于语音的语料库并不是很多。正常讲话的过程中,是包含语音信息,语言信息和人物动作三种信息,可以在训练中使用,用来改良训练效果,但是在测试阶段,只能拥有语音信息。
  • 首先,作者将语音模态转换,进行编码,变为中间表示,然后生成为视觉模态。然后,使用循环损失函数,进行逆向操作,由视觉模态,逆向生成共同学习的中间表示,然后在进行逆向生成,变成原始的语言模态。这个用来判定转换之后的目标模态是否保存了输入数据的所有信息。
  • 然后,在实际训练的过程中,你就可以单纯针对中间表示进行训练,中间表是的数据集表较多,然后原先的数据集就只需要进行测试极了。最左端输入的是比较少的测试数据,中间是数据集比较多的数据集,右侧是最终的训练结果

总结

在这里插入图片描述

  • 上述是五个分类的大概,并且指出了对应类别的研究挑战。

在这里插入图片描述

  • 多模态机器学习已经解决了目前很多的问题,上述为目前主要的研究方向。

Course Syllabus教学大纲

  • ICML:

在这里插入图片描述

在这里插入图片描述

  • 不仅仅运行对应的代码,更重要能够进行错误分析,知道为什么。然后再提出一些改进意见,并不是追求什么准确度,而是做出不同的尝试

在这里插入图片描述
在这里插入图片描述

  • 具体的课程安排

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

个人总结

  • 这是完全听了这门课,觉得部分国外教学是要比部分国内教学好的,至少教的东西都是比较新的,并不是照本宣科的念,已经有了网课,就照着网课跟着学习,这里把链接贴出来。上面的内容是我听了网课总结的,感兴趣的可以进行学习。
  • 这门课的最终的项目都发表了相关的文章,而且作者在github上都放上了相关的连接,大部分都已经发表了对应的文章。
  • 这是一个系列性的课程,自己慢慢听,应该会收获很多。
  • 每周的阅读内容,我都会将我自己的阅读内容写成博客,分享,如果大家对于这门课程感兴趣,可以和我一块讨论。

第一周的安排

  • 阅读下述文献
    • Multimodal Machine Learning:A Survey and Taxonomy
    • Repersentation Learning:A Review and New Perspective
  • 回答相关的问题
    • What is Multimodal? Definitions, dimensions of heterogeneity and cross-modal interactions.
    • Historical view and multimodal research tasks.
    • Core technical challenges: representation, alignment, transference, reasoning, generation, and quantification.

相关连接

课程视频链接
课程安排连接

相关文章:

多模态机器学习入门Tutorial on MultiModal Machine Learning——第一堂课个人学习内容

文章目录课程记录核心技术Core Technical Challengesrepresentation表示alignment对齐转换translationFusion融合co-learning共同学习总结Course Syllabus教学大纲个人总结第一周的安排相关连接课程记录 这部分是自己看视频,然后截屏,记录下来的这部分的…...

Java ~ Collection/Executor ~ LinkedBlockingDeque【总结】

一 概述 简介 LinkedBlockingDeque(链接阻塞双端队列)类(下文简称链接阻塞双端队列)是BlockingDeqeue(阻塞双端队列)接口的唯一实现类,采用链表的方式实现。链接阻塞双端队列与LinkedBlockingQu…...

.NET7的AOT的使用

背景其实,规划这篇文章有一段时间了,但是比较懒,所以一直拖着没写。最近时总更新太快了,太卷了,所以借着 .NET 7 正式版发布,熬夜写完这篇文章,希望能够追上时总的一点距离。本文主要介绍如何在…...

分布式缓存的问题

1,Redis缓存穿透问题 Redis缓存穿透问题是指查询一个一定不存在的数据,由于这样的数据缓存一定不命中,所以这样的请求一定会打到数据库上。但是由于数据库里面也没有这样数据,且也没有将这样的null值缓存到数据库,从而造成这样的…...

golang入门笔记——内存管理和编译器优化

静态分析 静态分析:不执行程序代码,推导程序的行为,分析程序的性质 控制流(control flow):程序的执行流程 数据流(data flow):数据在控制流上的传递 通过分析控制流和…...

GEE学习笔记 七十:【GEE之Python版教程四】Python基础编程二

通过上一章的讲解,我们对于python有了初步的了解,这一章就详细讲解一下python的各个变量以及运算规则等内容。 关于测试代码推荐初学者将每一段代码都自己敲入编辑器中在本地运行。 1、数值 这是任何编程中都会有的基本变量,在python支持的…...

股票投资新出发之知识体系构建导论

文章目录前言参考资料如何构建体系实践理论tips前言 自2021年股票开户,投资已有2年左右,但更多的是凭感觉式的拍脑袋投资,没有自己的投资体系,所以开此专栏从零开始构建知识体系,勉励自己不断学习。两年的投资经验让我…...

蓝桥杯算法训练合集 十六 1.首字母变大写2.盾神计科导作业3.Cinema4.接水问题

目录 1.首字母变大写 2.盾神计科导作业 3.Cinema 4.接水问题 1.首字母变大写 问题描述 对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。在字符串中,单词之间通过空白符分隔,空白符包括…...

密码的世界

网络世界中常见的攻击方法 窃听攻击 窃听攻击是网络世界最常见的一种攻击方式,一些不能泄露的隐私信息,例如银行卡密码,账号密码,如果被窃听泄露的话通常会带来比较严重的后果。 中间人攻击 在中间人攻击中,小明准…...

如何用一句话感动测试工程师?产品和技术都这么说!

测试工程师在公司里的地位一言难尽,产品挥斥苍穹,指引产品前路;开发编写代码实现功能,给产品带来瞩目成就。两者,一个是领航员,一个是开拓者,都是聚光灯照耀的对象,唯独团队中的保障…...

3|物联网控制|计算机控制-刘川来胡乃平版|第2章:计算机控制系统中的检测设备和执行机构-2.1传感器和变送器|课堂笔记|ppt

...

MySQL中使用索引优化

目录 一.使用索引优化 数据准备 避免索引失效应用-全值匹配 避免索引失效应用-最左前缀法则 避免索引失效应用-其他匹配原则 1、 2、 3、 4、 5、 一.使用索引优化 索引是数据库优化最常用也是最重要的手段之一,通过索引通常可以帮助用户解决大多数的MySQL的性能优化…...

Linux C/C++ 多线程TCP/UDP服务器 (监控系统状态)

Linux环境中实现并发TCP/IP服务器。多线程在解决方案中提供了并发性。由于并发性,它允许多个客户端同时连接到服务器并与服务器交互。 Linux多线程编程概述 许多应用程序同时处理多项杂务。服务器应用程序处理并发客户端;交互式应用程序通常在处理后台…...

【JavaScript】JavaScript基本使用方法

如何回复程序员发来的短信:Hello world —hello nerd. 前言: 大家好,我是程序猿爱打拳。今天我给大家讲解的是初识JavaScript中基本组成成分、引入方法、输入输出语句,并用源码与效果图的方式展示给大家。 目录 1.JavaScript组成…...

Python数据容器、list列表、tuple元组、str字符串、数据容器(序列)切片、set集合、dict字典、字符串大小比较

数据来源 01 数据容器 为什么学习数据容器 数据容器 总结 02 列表 1)列表定义 为什么需要列表 列表的定义语法 列表的定义方式 演示 """ 演示数据容器之:list列表 语法:[元素,元素,......] """ # 定义一个列表list my_list …...

Python urllib

Python urllib Python urllib 库用于操作网页 URL,并对网页的内容进行抓取处理。 本文主要介绍 Python3 的 urllib。 urllib 包 包含以下几个模块: urllib.request - 打开和读取 URL。urllib.error - 包含 urllib.request 抛出的异常。urllib.parse …...

Centos7安装Python3

前言系统版本:Centos7.6python版本: python 3.10.4下载python下载链接:直通车找到对应版本的python安装包,这里以python 3.10.4为例点击3.10.4版本的链接,拉到最下面找到Files中对应的linux安装包鼠标右键复制下载链接登录linux系…...

[U3D ShaderGraph] 全面学习ShaderGraph节点 | 第四课 | Input/Lighting

📣📣📣本专栏所有内容在完结之前全部为试读模式,专栏完结之后会取消试读模式,如果感觉内容还不错的话请支持一下📣📣📣 ShaderGraph是可视化的着色器编辑工具。您可以使用此工具以可视方式创建着色器。 本专栏可以让你更了解ShaderGraph中每个节点的功能,更自如的…...

SpringBoot升级到3.0

SpringBoot 3.0出来有一段时间了,一直没时间来整理,这次来看一下吧。 Spring Boot 可以轻松创建独立的、生产级的基于 Spring 的应用程序,您可以“直接运行”。 SpringBoot升级到3.01. SpringBoot的维护时间线2. pom添加3. 打包大小对比4. 升…...

JavaWeb8-线程安全问题

目录 1.概念 1.1.单线程 1.2.多线程 2.导致线程不安全的5个因素 ①抢占式执行(首要原因) ②多个线程同时修改了同一个变量 ③非原子性操作 ④内存可见性 ⑤指令重排序 线程优点:加速程序性能。线程缺点:存在安全问题。 1…...

【JavaEE】-- HTTP

1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...

CSS | transition 和 transform的用处和区别

省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...