人工智能--循环神经网络

2a20c54b85e042bfa2440367ae4807e9.gif

https://blog.csdn.net/2302_76516899?spm=1000.2115.3001.5343

个人主页:欢迎来到 Papicatch的博客

 课设专栏 :学生成绩管理系统

专业知识专栏: 专业知识 

文章目录

🍉引言

🍉概述

🍈基本概念

🍍定义

🍍结构 

🍌输入层

🍌隐藏层

🍌输出层

🍌扩展结构

🍈工作原理

🍍基本流程

🍍隐藏状态的计算

🍍输出的生成

🍍处理长序列时的挑战

🍍解决长期依赖问题的改进

🍈优势与局限

🍍优势

🍍局限

🍈面临的挑战

🍍长期依赖问题

🍍梯度消失和梯度爆炸

🍍计算效率低下

🍍内存占用 

🍍过拟合风险

🍈改进与变体

🍍长短期记忆网络(Long Short-Term Memory,LSTM)

🍍门控循环单元(Gate Recurrent Unit,GRU)

🍍双向循环神经网络(Bidirectional RNN)

🍍深度循环神经网络(Deep RNN)

🍈应用领域

🍍自然语言处理(NLP)

🍍语音处理

🍍金融预测

🍍 医学

 🍍工业控制

🍍视频处理

🍍交通预测

🍉理论基础

🍈神经网络理论

🍈 信息处理理论

🍈动态系统理论

🍈概率论与统计学

🍈优化理论

🍉长短期记忆网络

🍈结构与原理

🍈优势

🍈应用

🍉示例(股票预测)

🍈方法解析

🍍数据准备

🍍特征工程

🍍RNN 模型构建

🍍训练模型

🍍模型评估

🍈代码实现(使用 Python 和 TensorFlow 库)

🍈代码解析

🍍数据加载和预处理

🍍序列创建

🍍模型构建

🍍模型编译

🍍模型训练

🍍预测和评估

🍉总结


2a20c54b85e042bfa2440367ae4807e9.gif

🍉引言

        在当今这个数据驱动的时代,序列数据无处不在。从自然语言中的文本,到语音的音频流,再到金融市场中的时间序列数据,如何有效地处理和理解这些具有先后顺序和时间依赖关系的数据,成为了人工智能领域的一个关键挑战。

        循环神经网络(Recurrent Neural Network,RNN)应运而生,它以独特的架构和计算方式,为处理序列数据带来了全新的思路和方法。

        RNN 打破了传统神经网络在处理序列数据时的局限性,能够捕捉数据中的长期依赖关系和动态模式。它如同一位善于倾听和记忆的智者,在接收每一个新的输入时,都会回顾过去的信息,从而做出更加准确和全面的判断。

        无论是让机器生成如人类般流畅自然的文本,还是精准地预测股票价格的走势,RNN 都展现出了巨大的潜力和应用价值。然而,如同任何一项技术,RNN 也并非完美无缺,它在训练和应用中面临着诸多挑战,但这也正是推动其不断发展和创新的动力源泉。

        在接下来的篇章中,我们将深入探索循环神经网络的奥秘,揭开其神秘的面纱,一同领略它在处理序列数据方面的独特魅力和强大能力。

🍉概述

🍈基本概念

🍍定义

        循环神经网络是一类具有反馈连接的神经网络,能够处理任意长度的序列数据,通过在隐藏层中引入循环连接,使得网络能够记住过去的信息,并将其用于当前的计算。

🍍结构 

        循环神经网络(RNN)的结构主要由输入层、隐藏层和输出层组成。

🍌输入层
  • 输入层负责接收序列数据中的每个元素。假设输入的序列为 x = [x1, x2, x3,..., xt] ,其中每个 xt 都是一个向量。
🍌隐藏层

        隐藏层是 RNN 的核心部分,其状态不仅取决于当前的输入,还依赖于上一时刻隐藏层的状态。

        在每个时间步 t ,隐藏层的状态 ht 通过以下公式计算:

ht = f(U * xt + W * ht-1 + b)

        其中,f 通常是一个非线性激活函数,如 tanh 或 ReLU 。U 是输入权重矩阵,它将当前输入 xt 映射到隐藏层空间。W 是循环权重矩阵,用于连接上一时刻的隐藏状态 ht-1 。b 是偏置项。

这种循环连接使得隐藏层能够保存历史信息,并在处理当前输入时加以利用。

🍌输出层

        输出层根据隐藏层的状态生成最终的输出。输出层的计算方式取决于具体的任务。

        例如,如果是分类任务,输出层可能是一个全连接层加上一个 softmax 激活函数,以输出每个类别的概率分布。

        如果是回归任务,输出层可能是一个简单的线性层,直接输出预测值。

        假设输出层的计算为:

yt = g(V * ht + c) 

        其中,g 是输出层的激活函数(或没有激活函数,取决于任务),V 是输出权重矩阵,c 是输出偏置。

🍌扩展结构
  • 为了应对 RNN 存在的长期依赖问题,出现了一些改进的结构,如长短期记忆网络(LSTM)和门控循环单元(GRU)。
  • LSTM 引入了输入门、遗忘门和输出门,以及一个长期记忆单元来更好地控制信息的流动和保存。
  • GRU 则将遗忘门和输入门合并为一个更新门,并引入了重置门,简化了 LSTM 的结构,同时保持了较好的性能。

🍈工作原理

        循环神经网络(RNN)的工作原理基于其对序列数据中时间依赖关系的处理能力。

🍍基本流程

        在处理序列数据时,RNN 按时间步依次处理输入。假设我们有一个输入序列 x = [x1, x2, x3,..., xt] ,每个时间步 t 都有一个对应的输入 xt 。

🍍隐藏状态的计算

        在每个时间步 t ,隐藏状态 ht 的计算如下:

 ht = f(U * xt + W * ht-1 + b)

        这里,f 是一个非线性激活函数,常见的如 tanh 或 ReLU 。U 是输入权重矩阵,用于将当前输入 xt 映射到隐藏层空间。W 是循环权重矩阵,用于连接上一时刻的隐藏状态 ht-1 ,b 是偏置项。

        这意味着当前隐藏状态不仅取决于当前输入,还依赖于上一时刻的隐藏状态,从而实现了对历史信息的记忆和利用。

🍍输出的生成

        输出 yt 通常根据隐藏状态 ht 计算得出:

yt = g(V * ht + c) 

        其中,g 是输出层的激活函数(或没有激活函数,取决于具体任务),V 是输出权重矩阵,c 是输出偏置。

🍍处理长序列时的挑战

        当处理较长的序列时,RNN 可能会面临梯度消失或梯度爆炸的问题。这是因为在反向传播过程中,梯度需要通过多个时间步进行传播,由于反复的乘法操作,梯度可能会迅速减小(梯度消失)或急剧增大(梯度爆炸)。

🍍解决长期依赖问题的改进

  • 为了解决长期依赖问题,出现了一些改进的 RNN 架构,如长短期记忆网络(LSTM)和门控循环单元(GRU)。
  • 以 LSTM 为例,它引入了输入门、遗忘门和输出门,以及一个细胞状态来更有效地控制信息的流动和保存。输入门决定当前输入有多少信息被存储,遗忘门决定过去的信息有多少被遗忘,输出门决定当前细胞状态有多少信息被输出到隐藏状态。
  • 例如,在文本生成任务中,RNN 可以根据已经生成的单词序列来预测下一个单词。在每个时间步,它会综合当前输入的单词和之前积累的语义信息来做出预测。
  • 又如,在语音识别中,RNN 可以根据音频信号的时间序列特征来识别语音内容,通过不断积累和利用过去的音频信息来提高识别的准确性。

🍈优势与局限

🍍优势

  • 处理序列数据:RNN 天生适合处理具有时间顺序或序列特征的数据,如自然语言中的文本、语音信号、股票价格的时间序列等。它能够捕捉数据中的时间依赖关系,这是传统前馈神经网络无法直接做到的。
    • 例如,在机器翻译中,能够根据源语言句子的先后顺序来生成目标语言的句子。
  • 内存高效:与需要为每个输入单独存储大量参数的一些模型相比,RNN 在处理不同长度的序列时,其参数数量相对固定,对内存的需求较为稳定。
  • 模型简洁:RNN 的结构相对简单,易于理解和实现,这使得它在研究和应用中都具有较高的可操作性。
  • 灵活性:可以应用于各种不同类型的序列数据,并且能够适应不同长度的序列,无需对输入序列的长度进行固定的限制。

🍍局限

  • 梯度消失和梯度爆炸:在处理长序列时,由于反复的乘法操作,梯度在反向传播过程中可能会迅速减小(梯度消失)或急剧增大(梯度爆炸),导致模型难以训练,无法有效地学习长期依赖关系。
    • 例如,在处理非常长的文本时,可能会丢失早期输入的重要信息。
  • 计算效率低:由于其顺序处理的特性,RNN 在处理长序列时计算效率较低,难以进行并行化计算。
  • 对复杂模式的学习能力有限:对于一些复杂的序列模式,RNN 可能无法准确地捕捉和学习。
  • 容易过拟合:在数据量较小的情况下,RNN 容易出现过拟合现象,导致模型在新数据上的泛化能力较差。

        尽管 RNN 存在一些局限性,但通过不断的改进和创新,如发展出长短期记忆网络(LSTM)和门控循环单元(GRU)等变体,在很大程度上缓解了这些问题,使得循环神经网络在处理序列数据方面的性能得到了显著提升。

🍈面临的挑战

🍍长期依赖问题

  • 在处理长序列数据时,RNN 难以有效地捕捉早期输入与当前输出之间的长期依赖关系。随着序列长度的增加,信息在传播过程中逐渐衰减,导致模型对远距离的上下文理解能力不足。
  • 例如,在一个长篇文章中,开头的关键信息可能对结尾处的理解至关重要,但 RNN 可能无法很好地将这种遥远的关联传递过来。

🍍梯度消失和梯度爆炸

  • 在训练过程中,由于反复的矩阵乘法运算,梯度可能会出现消失或爆炸的情况。
  • 当梯度消失时,模型参数的更新变得非常缓慢,导致训练效率低下,难以学习到有效的模式。而梯度爆炸则可能导致模型的不稳定,参数更新幅度过大,使训练无法收敛。

🍍计算效率低下

        RNN 是按照时间顺序依次处理输入数据的,难以进行并行计算。这在处理大规模数据和长序列时,会导致训练和预测的时间成本较高。 

🍍内存占用 

        在处理长序列时,RNN 需要保存每个时间步的隐藏状态,这会占用大量的内存资源,尤其当序列长度较长时,内存压力可能成为限制模型应用的一个因素。

🍍过拟合风险

  • 如果训练数据有限,RNN 容易出现过拟合现象,即在训练集上表现良好,但在新的、未见过的数据上性能不佳。
  • 例如,在文本分类任务中,如果训练数据的多样性不足,RNN 可能会过度适应训练数据中的特定模式,而无法泛化到新的文本。

🍈改进与变体

🍍长短期记忆网络(Long Short-Term Memory,LSTM)

        LSTM 通过引入门控机制来更好地控制信息的流动和保存,从而有效地解决了 RNN 的长期依赖问题。

        LSTM 包含三个门:输入门、遗忘门和输出门,以及一个记忆单元。

  • 输入门决定当前输入有多少信息被存储到细胞状态中。
  • 遗忘门决定过去的细胞状态有多少信息被丢弃。
  • 输出门控制细胞状态有多少信息被输出到隐藏状态。

        例如,在自然语言处理中,LSTM 能够更好地记住文本中的长期依赖关系,从而提高文本生成和机器翻译的质量。

🍍门控循环单元(Gate Recurrent Unit,GRU)

        GRU 是 LSTM 的一种简化变体,它将遗忘门和输入门合并为一个更新门,并引入了重置门。

  • 更新门用于控制前一时刻的状态信息被带入到当前状态中的程度。
  • 重置门用于决定如何将新的输入与之前的记忆相结合。

        GRU 在保持性能的同时减少了参数数量,计算效率相对较高。

        在语音识别任务中,GRU 能够有效地对语音信号的时间序列进行建模,提高识别准确率。

🍍双向循环神经网络(Bidirectional RNN)

  • 传统的 RNN 只能从前向处理序列信息,而双向 RNN 则同时考虑了前向和后向的序列信息。
  • 它由两个独立的 RNN 组成,一个按照正常的顺序处理输入,另一个按照相反的顺序处理输入,然后将两个 RNN 的输出进行组合。
  • 这在许多自然语言处理任务中非常有用,例如词性标注,因为当前词的标注可能依赖于前后的词。

🍍深度循环神经网络(Deep RNN)

  • 类似于深度前馈神经网络,深度循环神经网络通过增加隐藏层的数量来构建更深的网络结构,从而能够学习更复杂的模式。
  • 但深度 RNN 也面临着梯度消失和爆炸等问题,需要配合合适的训练方法和正则化技术。
  • 在股票价格预测等复杂的时间序列预测任务中,深度 RNN 可能会表现出更好的性能。

🍈应用领域

🍍自然语言处理(NLP)

  • 机器翻译:将一种语言的文本序列转换为另一种语言的文本序列。
  • 文本生成:创作文章、故事、诗歌等。
  • 问答系统:理解问题并生成准确的回答。
  • 情感分析:判断文本所表达的情感倾向,如积极、消极或中性。

🍍语音处理

  • 语音识别:将语音信号转换为文字。
  • 语音合成:根据输入的文本生成自然流畅的语音。

🍍金融预测

  • 股票价格预测:基于历史价格数据预测未来的走势。
  • 汇率预测:分析汇率的时间序列数据以预测未来的汇率变化。

🍍 医学

  • 心电图(ECG)分析:解读心脏活动的时间序列数据。
  • 疾病预测:根据患者的病史和症状序列预测疾病的发展。

 🍍工业控制

  • 预测设备的故障和维护需求,基于传感器采集的时间序列数据。

🍍视频处理

  • 理解视频中的动作序列和事件发展。

🍍交通预测

  • 预测交通流量、拥堵情况等。

🍉理论基础

        循环神经网络(RNN)建立在以下几个重要的理论基础之上:

🍈神经网络理论

        RNN 本质上仍然是一种神经网络,它继承了神经网络的基本概念,如神经元、权重、激活函数等。神经元通过权重连接,对输入进行加权求和,并通过激活函数进行非线性变换,以产生输出。

🍈 信息处理理论

  • 序列数据的表示:RNN 旨在有效地处理序列形式的数据,将其视为一系列按时间顺序排列的信息单元。
  • 信息的传递和保存:通过在隐藏层中引入循环连接,RNN 能够传递和保存历史信息,从而利用过去的输入来影响当前的处理和输出。

🍈动态系统理论

  • 时间依赖性建模:RNN 可以看作是一个动态系统,其状态(隐藏层的激活值)随时间(输入序列的时间步)而变化。
  • 稳定性和收敛性:在训练过程中,需要关注模型的稳定性和收敛性,以确保能够学习到有效的模式。

🍈概率论与统计学

  • 参数估计:通过优化算法(如随机梯度下降)来估计模型的参数,以最大化数据的似然或最小化损失函数。
  • 不确定性处理:在预测时,RNN 可以给出输出的概率分布,以反映预测的不确定性。

🍈优化理论

  • 梯度计算:在训练 RNN 时,需要计算损失函数关于模型参数的梯度,以进行参数更新。
  • 避免过拟合:采用正则化技术(如 L1 和 L2 正则化)来防止模型过拟合训练数据。

        例如,从信息处理的角度来看,在文本分类任务中,RNN 会随着输入单词的依次到来,逐步整合和更新对文本整体含义的理解;在动态系统理论方面,就像股票价格的预测,RNN 模型的状态会随着时间步的推进而动态调整,以反映价格变化的趋势和规律。

🍉长短期记忆网络

        长短期记忆网络(LSTM)是对传统循环神经网络(RNN)的一种重要改进,旨在更好地处理序列数据中的长期依赖问题。

🍈结构与原理

        LSTM 引入了特殊的单元结构,称为记忆单元(Memory Cell),以及三个门控机制:输入门(Input Gate)、遗忘门(Forget Gate)和输出门(Output Gate)。

  • 输入门决定了当前输入有多少信息可以被存储到记忆单元中。
  • 遗忘门控制着从记忆单元中遗忘多少过去的信息。
  • 输出门则决定了记忆单元中的信息有多少可以被输出到隐藏状态。

        通过这些门控机制,LSTM 能够更加灵活地控制信息的流动和保存,从而有效地解决了 RNN 中存在的长期依赖问题。

🍈优势

  • 更好的长期记忆能力:能够在处理长序列时记住重要的早期信息。
  • 减轻梯度消失和爆炸:由于其独特的结构,LSTM 在反向传播时能够更好地保持梯度的稳定性,减少梯度消失和爆炸的影响。

🍈应用

LSTM 在众多领域都有出色的表现:

  • 自然语言处理:如机器翻译、文本生成、情感分析等。
  • 语音识别:对语音信号的序列进行建模和识别。
  • 时间序列预测:例如股票价格预测、气象预测等。

        例如,在机器翻译中,LSTM 可以记住源语言文本中较远位置的关键信息,从而生成更准确的目标语言翻译;在股票价格预测中,它能够捕捉到长期的价格趋势和周期性模式,提供更可靠的预测结果。

🍉示例(股票预测)

🍈方法解析

🍍数据准备

  • 收集历史股票价格数据,包括开盘价、收盘价、最高价、最低价、成交量等。
  • 对数据进行预处理,如归一化、去除异常值等,以提高模型的训练效果。

🍍特征工程

  • 提取有用的特征,如移动平均线(MA)、相对强弱指标(RSI)、布林带(Bollinger Bands)等技术指标。
  • 将特征和目标变量(如未来一段时间的收盘价)组合成适合 RNN 输入的格式。

🍍RNN 模型构建

  • 选择合适的 RNN 架构,如简单的 RNN、长短期记忆网络(LSTM)或门控循环单元(GRU)。
  • 确定隐藏层的数量和神经元个数,以平衡模型的复杂度和性能。

🍍训练模型

  • 使用准备好的数据进行训练,通常采用反向传播算法来更新模型的参数。
  • 选择合适的优化器(如 Adam 优化器)和损失函数(如均方误差)。

🍍模型评估

  • 使用测试集数据对训练好的模型进行评估,常见的评估指标包括均方误差(MSE)、平均绝对误差(MAE)等。
  • 根据评估结果对模型进行调整和优化。

🍈代码实现(使用 Python 和 TensorFlow 库)

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import MinMaxScaler
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, LSTM# 加载股票数据
data = pd.read_csv('stock_data.csv')# 数据预处理
scaler = MinMaxScaler()
data_scaled = scaler.fit_transform(data)# 划分训练集和测试集
train_size = int(len(data) * 0.8)
train_data = data_scaled[:train_size]
test_data = data_scaled[train_size:]# 构建输入序列和目标值
def create_sequences(data, sequence_length):X = []y = []for i in range(len(data) - sequence_length):X.append(data[i:i + sequence_length])y.append(data[i + sequence_length])return np.array(X), np.array(y)sequence_length = 10
X_train, y_train = create_sequences(train_data, sequence_length)
X_test, y_test = create_sequences(test_data, sequence_length)# 调整输入维度
X_train = np.reshape(X_train, (X_train.shape[0], X_train.shape[1], 1))
X_test = np.reshape(X_test, (X_test.shape[0], X_test.shape[1], 1))# 构建 LSTM 模型
model = Sequential()
model.add(LSTM(50, return_sequences=True, input_shape=(sequence_length, 1)))
model.add(LSTM(50))
model.add(Dense(1))# 编译模型
model.compile(optimizer='adam', loss='mean_squared_error')# 训练模型
model.fit(X_train, y_train, epochs=50, batch_size=32)# 预测
y_pred = model.predict(X_test)# 反归一化预测结果和真实值
y_pred_original = scaler.inverse_transform(y_pred)
y_test_original = scaler.inverse_transform(y_test)# 评估模型
mse = np.mean((y_pred_original - y_test_original)**2)
mae = np.mean(np.abs(y_pred_original - y_test_original))
print(f"均方误差(MSE): {mse}")
print(f"平均绝对误差(MAE): {mae}")# 绘制预测结果和真实值
plt.plot(y_test_original, label='True')
plt.plot(y_pred_original, label='Predicted')
plt.legend()
plt.show()

🍈代码解析

🍍数据加载和预处理

  • 使用 pandas 库读取股票数据文件。
  • 通过 MinMaxScaler 对数据进行归一化处理,将数据范围缩放到 [0, 1] 之间。

🍍序列创建

  • create_sequences 函数用于将数据构建为输入序列 X 和对应的目标值 y ,每个序列的长度由 sequence_length 决定。

🍍模型构建

  • 使用 tensorflow.keras 的 Sequential 类构建 LSTM 模型。
  • 首先添加两个具有 50 个神经元的 LSTM 层,其中第一个 LSTM 层 return_sequences=True 表示返回每个时间步的输出,以便后续的 LSTM 层能够处理。
  • 最后添加一个全连接层 Dense(1) 用于输出预测值。

🍍模型编译

  • 选择 adam 优化器和均方误差作为损失函数。

🍍模型训练

  • 使用训练数据 X_train 和 y_train 进行训练,设置训练轮数 epochs 和批量大小 batch_size 。

🍍预测和评估

  • 使用训练好的模型对测试数据进行预测。
  • 对预测结果和真实值进行反归一化处理,以恢复到原始数据的范围。
  • 计算均方误差和平均绝对误差来评估模型的性能。
  • 绘制预测结果和真实值的对比图,直观地观察预测效果。

🍉总结

        循环神经网络为处理序列数据提供了一种强大的工具,尽管存在一些挑战,但通过不断的改进和创新,其在众多领域都取得了显著的成果,并将继续在人工智能的发展中发挥重要作用。

        例如,在机器翻译任务中,使用基于 RNN 的架构能够显著提高翻译的准确性和流畅性;在文本情感分析中,能够更准确地捕捉文本中的情感倾向。随着技术的不断进步,我们有理由相信 RNN 及其衍生架构将在更多的应用场景中展现出强大的能力。

2a20c54b85e042bfa2440367ae4807e9.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/39143.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

行业模板|DataEase旅游行业大屏模板推荐

DataEase开源数据可视化分析工具于2022年6月发布模板市场(https://templates-de.fit2cloud.com),并于2024年1月新增适用于DataEase v2版本的模板分类。模板市场旨在为DataEase用户提供专业、美观、拿来即用的大屏模板,方便用户根据…

开关电源的电路组成原理

一、 开关电源的电路组成 开关电源的主要电路是由输入电磁干扰滤波器(EMI)、整流滤波电路、功率变换电路、PWM控制器电路、输出整流滤波电路组成。辅助电路有输入过欠压保护电路、输出过欠压保护电路、输出过流保护电路、输出短路保护电路等。 开关电源…

基于Hadoop平台的电信客服数据的处理与分析④项目实现:任务18: 数据展示

任务描述 接下来我们需要将根据业务需求将某人按照不同维度查询出来的结果,展示到Web页面上。 任务指导 数据展示模块流程图: 数据展示使用Java的SSM框架,需要实现的代码包括: 1. 实体类 2. 数据库操作 3. 业务逻辑操作 4.…

springboot旅游管理系统-计算机毕业设计源码16021

摘 要 本文旨在设计和实现一个基于Spring Boot框架的旅游管理系统。该系统通过利用Spring Boot的快速开发特性和丰富的生态系统,提供了一个高效、可靠和灵活的解决方案。系统将实现旅游景点信息的管理、线路规划、跟团游玩、旅游攻略、酒店信息管理、订单管理和用户…

MySQL—创建和修改数据表结构

创建表 实例: CREATE TABLE user (id INT,name VARCHAR(255),password VARCHAR(255),birthday DATE) CHARACTER SET utf8 COLLATE utf8_bin ENGINE INNODB; 显示数据库中的表 show tables from hsp; 显示表结构 desc dept; 修改表 实例: 代码&…

第十五章 路由器综合路由配置

实验目标 掌握综合路由器的配置方法; 掌握查看通过路由重分布学习产生的路由; 熟悉广域网线缆的链接方式; 实验背景 假设某公司通过一台三层交换机连到公司出口路由器 R1 上,路由器 R1 再和公司外的另一台路由器 R2 连接。…

【Python实战因果推断】17_线性回归的不合理效果7

目录 Regression for Dummies Conditionally Random Experiments Dummy Variables Regression for Dummies 回归和正交化固然很好,但归根结底,你必须做出独立性假设。你必须假设,在考虑到某些协变量的情况下,干预看起来与随机分…

python 获取Shopee虾皮商家店铺商品列表 虾皮api数据采集

此api接口可用于获取虾皮平台商家店铺的商品列表,目前land参数支持id、vn、my、th、sg、ph、tw(印尼、越南、马来、泰国、新加坡、菲律宾、台湾)。 若有需要,请点击文末链接联系我们。 详细采集页面如下 https://shopee.tw/yue…

使用Adobe Acrobat对PDF文档进行数字签名

文章目录 前言一、使用Adobe Acrobat对PDF文档进行数字签名1.使用Adobe Acrobat打开需要进行签名的PDF文档2. 点击【查看更多】3.点击【使用证书】4.点击【数字签名】5.使用鼠标选定一个区域6.选择您需要使用的证书 → 点击【继续】7.点击【签名】8.签名成功 前言 一、使用Ado…

嵌入式C语言中指针与链表的关系详解

假定给你一块非常小的内存,这块内存只有8字节,这里也没有高级语言,没有操作系统,你操作的数据单位是单个字节,你该怎样读写这块内存呢? 注意这里的限定,再读一遍,没有高级语言,没有操作系统,在这样的限制之下,你必须直面内存读写的本质。 这个本质是什么呢? 本质…

基于xilinx FPGA的GTX/GTH/GTY位置信息查看方式(如X0Y0在bank几)

目录 1 概述2 参考文档3 查看方式4查询总结: 1 概述 本文用于介绍如何查看xilinx fpga GTX得位置信息(如X0Y0在哪个BANK/Quad)。 2 参考文档 《ug476_7Series_Transceivers》 《pg156-ultrascale-pcie-gen3-en-us-4.4》 3 查看方式 通过…

语音大模型引领自然交互新时代,景联文科技推出高质量语音大模型数据库

近期,OpenAI正式发布语音大模型GPT-4o,可以综合利用语音、文本和视觉信息进行推理,扮演一个个人语音交互助手。 在音频处理方面,它不仅能识别和转录多种口音和方言,改变语音的速度音调和振动,还能进行声音模…

使用 App Store Connect API 生成和读取分析报告

文章目录 前言安装 API Swift SDK配置 API Swift SDK生成分析报告获取所有可用的报告获取报告的分段下载分段的数据总结 前言 Apple 最近推出了50多个新的分析报告,其中包含数百个新的数据点和指标,以帮助开发者了解他们的应用程序的表现情况。 这些报…

构建安全稳定的应用:Spring Security 实用指南

前言 在现代 Web 应用程序中,安全性是至关重要的一个方面。Spring Security 作为一个功能强大且广泛使用的安全框架,为 Java 应用程序提供了全面的安全解决方案。本文将深入介绍 Spring Security 的基本概念、核心功能以及如何在应用程序中使用它来实现…

相比共享代理,为什么要用独享代理IP?

随着互联网的广泛普及和应用,涉及网络隐私、数据安全和网络访问控制的问题变得越来越重要。代理服务器作为一种常见的网络工具,可以在跨境电商、海外社媒、SEO投放、网页抓取等领域发挥作用,实现匿名访问并加强网络安全。在代理服务器类别中&…

CDC模型

引言 聚类是一种强大的机器学习方法,用于根据特征空间中元素的接近程度发现相似的模式。它广泛用于计算机科学、生物科学、地球科学和经济学。尽管已经开发了最先进的基于分区和基于连接的聚类方法,但数据中的弱连接性和异构密度阻碍了其有效性。在这项…

第四篇——作战篇:战争里的激励与成本

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么? 四、总结五、升华 一、背景介绍 前面进行了分析之后,这篇显然又从经济的角度进行了介绍和分析…

STELLA系统动态模拟技术及在农业、生态及环境等科学领域中的应用技术

STELLA是一种用户友好的计算机软件。通过绘画出一个系统的形象图形,并给这个系统提供数学公式和输入数据,从而建立模型。依据专业兴趣,STELLA可以用来建立各种各样的农业、生态、环境等方面的系统动态模型,为科研、教学、管理服务…

用例子和代码了解词嵌入和位置编码

1.嵌入(Input Embedding) 让我用一个更具体的例子来解释输入嵌入(Input Embedding)。 背景 假设我们有一个非常小的词汇表,其中包含以下 5 个词: "I""love""machine"&qu…

10 Posix API与网络协议栈

POSIX概念 POSIX是由IEEE指定的一系列标准,用于澄清和统一Unix-y操作系统提供的应用程序编程接口(以及辅助问题,如命令行shell实用程序),当您编写程序以依赖POSIX标准时,您可以非常肯定能够轻松地将它们移植到大量的Unix衍生产品系列中(包括Linux,但不限于此!)。 如…