多模态机器学习入门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.首字母变大写 问题描述 对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。在字符串中,单词之间通过空白符分隔,空白符包括…...

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

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

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…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...

排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...

【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

Golang——7、包与接口详解
包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...