首页 > 其他分享 >【数学建模导论】Task05 多模数据与智能模型

【数学建模导论】Task05 多模数据与智能模型

时间:2024-08-09 14:54:43浏览次数:8  
标签:模态 plt Python 标签 多模 建模 右键 图像 Task05

前言

多模数据中,涉及以下领域

数字图像处理与计算机视觉
计算语言学与自然语言处理
数字信号处理与智能感知

多模态学习——融合不同的数据类型(如图像和文本):
是机器学习的一个重要分支。
是处理复杂数据分析问题的关键

❤️ ❤️ ❤️ ❤️ ❤️

系列文章导航

【数学建模导论】Task01 数据处理与拟合模型
【数学建模导论】Task02 权重生成与评价模型
【数学建模导论】Task03 时间序列与投资模型
【数学建模导论】Task04 机器学习
【数学建模导论】Task05 多模数据与智能模型

本篇目录导航

1 数字图像处理与计算机视觉

1.1 数字图像的表示与处理

鼠标右键 -> 在新标签页中打开图像
在这里插入图片描述

1.2 数字图像的特征点

鼠标右键 -> 在新标签页中打开图像
在这里插入图片描述

2 计算语言学与自然语言处理

2.1 Python处理字符串

# Python支持多种方式来创建和操作字符串。
str1 = 'Hello, World!'
str2 = "Welcome to Python"
str3 = '''This is a multi-line string.'''
print(str1)
print(str2)
print(str3)



# Python提供了字符串的大小写转换方法
str_lower = str1.lower()  # 转换为小写
str_upper = str1.upper()  # 转换为大写
print(str_lower)  # 输出: hello, world!
print(str_upper)  # 输出: HELLO, WORLD!



# Python还支持字符串的切片操作
substring = str2[7:13]  # 提取索引7到12之间的字符(不包括13)。其实还可以指定步长
print(substring)  # 输出: to Python



# Python还提供了查找字符串中特定子串的功能
index = str1.find('World')  # 查找'World'的索引
print(index)  # 输出: 7


# Python还提供了替换字符串中特定子串的功能
new_str = str1.replace('World', 'Python')  # 将'World'替换为'Python'
print(new_str)  # 输出: Hello, Python!



# Python支持正则表达式(对于更复杂的文本处理任务)
import re

# 使用正则表达式查找所有数字
numbers = re.findall(r'\d+', str3)
print(numbers)  # 输出: ['1', '2'](假设str3中包含数字)

# 使用正则表达式替换字符串中的模式
new_str4 = re.sub(r'\s+', '_', str2)  # 将所有空格替换为下划线
print(new_str4)  # 输出: Welcome_to_Python


3 数字信号处理与智能感知

3.1 数字信号的傅里叶变换

鼠标右键 -> 在新标签页中打开图像
在这里插入图片描述

一维傅里叶变换 np.fft.fft( )

代码

import numpy as np  # 导入numpy库,用于科学计算
import matplotlib.pyplot as plt  # 导入matplotlib库,用于绘图

# 创建了一个包含单一频率成分的信号(生成一个正弦波信号)
fs = 150.0;  # 设置采样频率为150 Hz
ts = 1.0/fs;  # 计算采样间隔,即每个采样点之间的时间差
t = np.arange(0, 1, ts)  # 生成时间向量,从0到1秒,步长为采样间隔
ff = 5;  # 设置正弦波的频率为5 Hz
y = np.sin(2 * np.pi * ff * t)  # 使用numpy生成正弦波,公式为sin(2πft),其中f为频率,t为时间向量

# 对信号进行傅里叶变换
n = len(y)             # 获取信号长度
k = np.arange(n)       # 创建一个从 0 到 n-1 的数组,用于表示频率域的索引
T = n / fs             # 计算总的采样时间 (或者 T = n * ts)
frq = k / T            # 计算频率范围,频率等于索引除以总时间
Y = np.fft.fft(y) / n  # 使用`np.fft.fft`函数对信号进行傅里叶变换,并将其结果归一化


# 绘制原始信号
plt.subplot(2, 1, 1)  # 创建一个2行1列的子图,并选择第一个子图
plt.plot(t, y)  # 绘制时间域信号
plt.xlabel('Time')  # 设置x轴标签为时间
plt.ylabel('Amplitude')  # 设置y轴标签为振幅

# 绘制频谱图
# 只保留正频率部分,因为对于实数输入,傅里叶变换是对称的
Y = Y[range(n // 2)]  # 取前半部分
frq = frq[range(n // 2)]  # 同样取频率范围的前半部分
plt.subplot(2, 1, 2)  # 选择第二个子图
plt.plot(frq, abs(Y), 'r')  # 绘制频率域信号,使用红色线条表示
plt.xlabel('Freq (Hz)')  # 设置x轴标签为频率
plt.ylabel('|Y(freq)|')  # 设置y轴标签为|Y(freq)|,表示频谱幅度

# 调整子图布局,使其紧凑
plt.tight_layout()
plt.show()  # 显示图表

回显

在这里插入图片描述

3.2 数字信号的统计指标

时域特征

鼠标右键 -> 在新标签页中打开图像
在这里插入图片描述

频域特征

鼠标右键 -> 在新标签页中打开图像
在这里插入图片描述

时频域特征

鼠标右键 -> 在新标签页中打开图像
在这里插入图片描述

4 多模态数据与人工智能

4.1 多模态概念与意义

鼠标右键 -> 在新标签页中打开图像
在这里插入图片描述
在这里插入图片描述

4.2 多模态模型发展关系及时间线

鼠标右键 -> 在新标签页中打开图像
在这里插入图片描述
在这里插入图片描述
《》

《MM-LLMs: Recent Advances in MultiModal Large Language Models》
arXiv:2401.13601 [cs.CL]

4.3 多模态基础知识–Transformer

在这里插入图片描述

Transformer 核心架构

自注意力机制(Self-Attention Mechanism)

  • Transformer 模型摒弃了传统 RNN 结构的时间依赖性,
    通过自注意力机制实现对输入序列中任意两个位置之间的直接关联建模。
  • 每个词的位置可以同时关注整个句子中的其他所有词,计算它们之间的相关性得分,
    然后根据这些得分加权求和得到该位置的上下文向量表示。
  • 这种全局信息的捕获能力极大地提高了模型的表达力。

多头注意力(Multi-Head Attention)

  • Transformer 进一步将自注意力机制分解为多个并行的“头部”,
    每个头部负责从不同角度对输入序列进行关注,
    (从而增强了模型捕捉多种复杂依赖关系的能力)
    最后,各个头部的结果会拼接并经过线性变换后得到最终的注意力输出。

位置编码(Positional Encoding)

  • 由于 Transformer 不再使用 RNN 的顺序处理方式,
    为了引入序列中词的位置信息,它采用了一种特殊的位置编码方法。

  • 这种方法对序列中的每个位置赋予一个特定的向量,
    该向量的值与位置有关,确保模型在处理过程中能够区分不同的词语顺序。

编码器-解码器架构(Encoder-Decoder Architecture)

  • Transformer 采用了标准的编码器-解码器结构,

  • 编码器负责理解输入序列,将其转换成高级语义表示;

  • 解码器则依据编码器的输出,结合自身产生的隐状态逐步生成目标序列。
    在解码过程中,解码器还应用了自注意力机制以及一种称为“掩码”(Masking)的技术
    来防止提前看到未来要预测的部分。

残差连接(Residual Connections)

  • Transformer 沿用了 ResNet 中的残差连接设计,
  • 以解决随着网络层数加深带来的梯度消失或爆炸问题,有助于训练更深更复杂的模型。

层归一化(Layer Normalization)

  • Transformer 使用了层归一化而非批量归一化,
  • 这使得模型在小批量训练时也能获得良好的表现,并且有利于模型收敛。

4.4 多模态任务对齐

鼠标右键 -> 在新标签页中打开图像
在这里插入图片描述

文本转换Embedding

在这里插入图片描述

使用 Tramsformer (BERT) 模型的步骤

  • 输入文本:
    “thank you very much”
  • Tokenization(分词):
    [“thank”, “you”, “very”,“much”]
  • Embedding(嵌入):
    假设每个 token 被映射到一个 2048 维的向量,
    “thank you very much”被转换成 4 * 2048 的embeddings
图像转换Embedding

在这里插入图片描述
使用 Vit Transformer 模型的步骤

  • 输入图像大小:224 x 224 像素,3 个颜色通道(RGB),
    预处理:归一化,但不改变图像大小图像切分:
  • 假设每个 patch 大小为 14 x 14 像素,
    图像被切分成 (224/14) × (224/14) = 256 个 patches 线性嵌入:
  • 将每个 14 x 14 x 3 的 patch 展平成一个一维向量,向量大小为 14×14×3=588
  • 通过一个线性层将每个 patch 的向量映射到其他维的空间(假设是 D 维),
    例如 D = 768 , 每个 patch 被表示为一个 D 维的向量。
  • 最后,由于 Transformer 内部不改变这些向量的大小,
    就可以用 256 * 768 的 embeddings 表示一张图像。
模态对齐

模态对齐-通常的步骤

  1. 特征提取:
    这就像是从故事和图片中各自提炼出关键信息。
    对于计算机,这意味着使用算法
    从图片中识别出像是轮廓、颜色和形状这样的视觉元素,
    同时从文本中识别出关键词和语义结构。
    无论是图片还是文字,都转换成了计算机能理解的数字列表——也就是向量。
  2. 特征变换:
    接下来,就像是将故事的翻译成插画的“语言”,或者反过来。
    这个过程需要确保提取的特征可以在一个共同的“向量空间”中进行比较。
    有时候,这就像是在不同的文化中找到共同的表达方式,
    让一种表达形式能够反映另一种的含义。
  3. 对齐策略:
    现在,我们需要一种方法来确认故事和插图确实是对应的。
    在计算机的世界里,这可以通过增加两者之间相似度的方法来实现。
    想象一下,你通过比较故事和插图之间的相似点,来确认它们是匹配的。
  4. 端到端训练:
    最后,就像在不断的游戏中学习,
    计算机通过不停地尝试和调整来更好地匹配故事和图片。
    它会逐渐学会如何提取特征、变换它们,并找到最佳的对齐方式。

4.5 多模态模型训练流程

鼠标右键 -> 在新标签页中打开图像
在这里插入图片描述

Read more

标签:模态,plt,Python,标签,多模,建模,右键,图像,Task05
From: https://blog.csdn.net/sk8Love956/article/details/141003960

相关文章

  • 多模态学习之论文阅读:《Multi-modal Learning with Missing Modality in Predicting A
    《Multi-modalLearningwithMissingModalityinPredictingAxillaryLymphNodeMetastasis》(一)要点研究背景:多模态学习在医学图像分析中的重要性,尤其是乳腺癌早期患者的腋窝淋巴结转移(ALNM)诊断。问题陈述:临床信息的收集困难,导致多模态模型在实际应用中受限。研究目......
  • 多模态学习之论文阅读:《Multi-modal global- and local- feature interaction with at
    《Multi-modalglobal-andlocal-featureinteractionwithattention-basedmechanismfordiagnosisofAlzheimer’sdisease》-2024.9本文提出了一种新的多模态学习框架,用于提高阿尔茨海默病(Alzheimer'sdisease,AD)的诊断准确性。该框架旨在通过结合临床表格数据和大脑......
  • 多模态学习之论文阅读:《PREDICTING AXILLARY LYMPH NODE METASTASIS IN EARLY BREAST
    《PREDICTINGAXILLARYLYMPHNODEMETASTASISINEARLYBREASTCANCERUSINGDEEPLEARNINGONPRIMARYTUMORBIOPSYSLIDES》(一)要点提出一个基于注意力机制的多实例学习框架,构建了一个深度学习模型。该模型利用WSIs和临床数据预测早期乳腺癌(EBC)患者的腋窝淋巴结(ALN)转移状态......
  • 数学建模——线性规划模型
    前言:当学习完线性规划模型,我感觉到了数学建模的“细腻”之处,也可以从中感觉到他“细腻”的美感,为此想记录一下我学习数学建模的一些笔记跟心得。线性规划模型一般是求解最大值最小值问题,如果目标函数f(x)和约束条件均是决策变量的线性表达式,(即没有平方项和乘积项),那么此时的数......
  • LLM大模型:LLaVa多模态图片检索原理
    训练安全垂直领域的LLM,会用到很多著名安全论坛(52pojie\kanxue\xianzhi\freebuf等)、博客的数据,这些数据100%都有很多图片(文不如图嘛,图片比文字更直观,更容易表达业务意义),之前微调LLM只能使用文字,图片只能丢弃,非常可惜,需要利用多模态的技术充分提取图片信息! 1、以前做传......
  • 使用LlamaIndex和GPT-4V进行多模态图像检索
    在本文中,我们将演示如何使用LlamaIndex结合GPT-4V和CLIP来实现图像到图像的检索。该过程包括从维基百科下载图像和文本,构建多模态索引,利用GPT-4V进行图像相关性推理,并展示检索结果。步骤1.安装所需的库%pipinstallllama-index-multi-modal-llms-openai%pipinstalll......
  • 基于simulink的分布式发电系统自动重合闸的建模与仿真分析
    1.课题概述      在配电系统中,80%-90%的故障都是瞬时故障。发生故障时,线路被保护迅速断开,随即重合闸。当分布式电源接入配电网后,线路发生故障后重合闸,此时分布式电源没有跳离线路,这将产生两种潜在威胁,即非同期重合闸和故障点电弧重燃。      非同期重合闸:当线路......
  • 双端口RAM与多模块处理器
    多模块处理器多模块存储器是一种空间并行技术,利用多个结构完全相同的存储模块的并行工作来提高存储器的吞吐率。常用的有单体多字存储器和多体低位交叉存储器。CPU的速度比存储器快得多,若同时从存储器中取出n条指令,就可以充分利用CPU资源,提高运行速度。多体交叉存储器就是......
  • 数仓建模。传统三范式建模和维度建模 详细篇
    数据仓库建模,说白了就是建库建表目录一,三范式建模一,三范式建模的概叙二,三范式建模的作用三,三范式建模的定义四,三范式建模的举例二,维度建模的概念与定义一,维度建模的优势二,维度建模的分类三,维度建模的举例四,维度建模的具体示例:三,三范式建模和维度建模的......
  • 多模态大模型 intern_vl 2.0版本解读
    目录更大规模的语言模型多模态输入多任务输出性能表现github:GitHub-OpenGVLab/InternVL:[CVPR2024Oral]InternVLFamily:APioneeringOpen-SourceAlternativetoGPT-4o.接近GPT-4o表现的可商用开源多模态对话模型论文:https://arxiv.org/pdf/2404.16821(还是......