研究生写论文需要,先快速学习了机器学习的内容,现在需要继续深入学习人工神经网络ANN的内容,以下是个人的学习笔记,欢迎交流、请多多指正!
以下是参考的学习资料/网站/笔记来源(侵权删):【ANN回归预测】基于ANN实现多变量预测附Matlab代码_ann实现回归-CSDN博客
一、基础知识
1.基础概念
人工神经网络 (Artificial Neural Networks, ANN) 是一种强大的非线性建模工具,在多变量预测领域展现出广阔的应用前景。在实际应用中,我们经常需要对多个变量之间的复杂关系进行建模和预测。传统的回归模型在处理非线性关系时往往存在局限性,而ANN凭借其强大的非线性拟合能力,为多变量预测提供了新的思路。
2.ANN回归预测原理
ANN回归模型主要由输入层、隐藏层和输出层组成。
输入层接收多维输入变量,通过神经元之间的连接传递信息,经过隐藏层的多层非线性变换,最终输出预测值。ANN模型通过学习大量训练数据,不断调整神经元之间的权重和阈值,以最小化预测误差,最终实现对目标变量的准确预测。
3.ANN回归预测步骤
3.1 数据预处理
数据清洗:处理缺失值、异常值,并进行数据类型转换。
数据归一化:将数据范围缩放到[0,1]区间,以提高训练效率。
特征工程:根据业务需求选择合适的特征,并进行特征转换或降维。
3.2 模型构建
选择合适的网络结构:根据数据的复杂程度和预测精度要求,调整隐藏层数量、神经元数量以及激活函数。
设置模型参数:例如学习率、迭代次数等。
3.3 模型训练
采用梯度下降算法等优化方法,通过不断调整模型参数,最小化预测误差。
使用训练数据集对模型进行训练,并记录训练过程中的误差变化。
3.4 模型评估
利用测试数据集评估模型的泛化能力,计算预测误差,并分析误差分布。
通过调整模型参数或网络结构,不断优化模型性能。
4.常用神经网络对比 ANN/CNN/RNN/GAN/Transformer
(参考常用神经网络-ANN/CNN/RNN/GAN/Transformer_ann神经网络-CSDN博客)
简介 常用实例 网络层 ANN
人工
神经网络
Artificial Neural Network,受生物神经网络启发的计算模型,由输入层、一个或多个隐藏层和输出层组成。每层包含若干节点(神经元),节点之间通过带权重的连接(边)相连。ANN通过调整这些权重来学习和预测。 1.手写数字识别;
2.房价预测:
1.输入层:接受输入数据,每个节点对应一个特征。 2.隐藏层:由若干神经元组成,每个神经元通过加权求和及激活函数处理输入。常用的激活函数包括Sigmoid、ReLU、Tanh等。 3.输出层:输出最终结果,神经元数量取决于具体任务(如分类任务中的类别数)。 CNN
卷积
神经网络
Convolutional Neural Network是一种专门用于处理网格数据(如图像)的神经网络。CNN通过卷积层、池化层和全连接层组成,能够有效地捕捉图像的局部特征和空间关系 1.图像分类,ImageNet数据集包含大量标记好的图像,用于训练和评估图像分类模型。ResNet和VGG是常见的CNN架构。
2.物体检测:检测图像中的特定物体。YOLO(You Only Look Once)和Faster R-CNN是常见的物体检测模型。1.输入层:接受输入图像,通常为三维数据(宽度、高度、通道) 2.卷积层:通过卷积核(滤波器)对输入图像进行局部扫描,提取特征。 ①卷积核:一个小矩阵,滑动窗口,生成特征图。
② 激活函数:通常使用ReLU。
3.池化层:通过下采样(如最大池化、平均池化)减少特征图尺寸,降低计算复杂度。 4.全连接层:将卷积层和池化层提取的特征展平,并通过全连接层进行分类或回归。 5.输出层:输出最终分类结果或回归值。 RNN
循环
神经网络
Recurrent Neural Network,是一种适用于处理序列数据(如时间序列、文本数据)的神经网络,通过循环连接使得当前时刻的输出依赖于前一时刻的状态,能够捕捉序列中的时间依赖关系。 1.语言模型:根据前面的单词预测下一个单词。LSTM(长短期记忆网络)和GRU(门控循环单元)是常见的RNN变种,用于解决标准RNN的梯度消失问题。
2.语音识别:将语音信号转换为文字序列。DeepSpeech是一个基于RNN的语音识别系统。
1.输入层:接受序列数据,每个时间步都有一个输入。
2.隐藏层:每个时间步都有一个隐藏状态,当前隐藏状态由当前输入和前一时间步的隐藏状态共同决定。
①激活函数:常用Tanh或ReLU。
②长短期记忆网络(LSTM):通过引入遗忘门、输入门和输出门解决标准RNN的梯度消失问题。
③门控循环单元(GRU):类似于LSTM,但结构更简化。3.输出层:每个时间步都可以输出,也可以仅在序列结束时输出。 GAN
生成
对抗网络
Generative Adversarial Network, GAN由生成器和判别器两个神经网络组成。生成器尝试生成逼真的数据样本,而判别器尝试区分真实样本和生成样本。两个网络通过对抗训练不断改进,最终生成器能够生成非常逼真的数据。 1.图像生成:生成逼真的图像。DCGAN是常见的图像生成模型。
2.图像超分辨率:将低分辨率图像提升到高分辨率。SRGAN是一个用于图像超分辨率的模型。
生成器:输入层:通常是随机噪声向量。 隐藏层:一系列全连接层、卷积层或反卷积层,逐步将噪声向量转化为逼真的数据。 输出层:生成假数据(如图像)。 判别器:输入层:接受真实数据和生成器生成的数据。 隐藏层:一系列卷积层和池化层,提取数据特征。 输出层:输出二分类结果(真假)。 Transformer Transformer是一种基于注意力机制的神经网络,最初用于自然语言处理(NLP)任务。与RNN不同,Transformer不依赖于序列顺序,通过全局的自注意力机制捕捉序列中的长距离依赖关系。由编码器和解码器组成,前者将输入序列转换为内部表示,后者将内部表示转换为输出序列。
1.机器翻译:进行高质量机器翻译。
2.文本生成:生成连贯的文本。GPT(Generative Pre-trained Transformer)和BERT(Bidirectional Encoder Representations from Transformers)是两个著名的Transformer模型。编码器:
① 输入层:接受输入序列,通常是词嵌入表示。
②自注意力层:计算输入序列中每个元素与其他元素的注意力得分。
③注意力机制:包括查询(Q)、键(K)、值(V)三个矩阵,通过点积计算注意力得分。
④前馈神经网络:对自注意力层的输出进行非线性变换。
⑤层归一化:对每一层进行标准化处理。
解码器:
① 输入层:接受目标序列的前一部分(训练时)或生成的前一部分(推理时)。
②自注意力层:与编码器相似,但只关注目标序列的前一部分。 ③编码器-解码器注意力层:通过注意力机制将编码器的输出与解码器的当前状态结合。
④前馈神经网络:对注意力层的输出进行非线性变换。
⑤层归一化:对每一层进行标准化处理。
输出层:生成最终的输出序列(如翻译结果或生成文本)。 5.例子(Matlab代码实现)
基于ANN实现多变量预测的原理和步骤,并结合Matlab代码进行实例演示:
1
二、