当前位置: 代码网 > it编程>编程语言>C/C++ > 【人工智能】深度学习:神经网络模型

【人工智能】深度学习:神经网络模型

2024年07月28日 C/C++ 我要评论
神经网络(Neural Network)是一种模拟人脑神经元连接方式的计算模型。其基本组成部分是神经元(Neurons),通过加权连接和激活函数构成复杂的网络结构。神经网络广泛应用于模式识别、分类和回归等领域。

【人工智能】深度学习:神经网络模型

神经网络基础知识

bp神经网络的概念

单个神经元的结构

cnn模型汇总

lenet5 模型

alexnet 模型

vgg模型

inception net(googlenet)模型

resnet (残差网络)

rnn模型(循环神经网络)

为什么需要rnn

rnn结构

lstm(长短期记忆网络)模型

lstm结构

gru模型

gru结构

计算重置门rtr_trt​和候选状态h~t\tilde{h}_th~t​

计算更新门ztz_tzt​和当前状态hth_tht​


🎈边走、边悟🎈迟早会好

神经网络基础知识

神经网络(neural network)是一种模拟人脑神经元连接方式的计算模型。其基本组成部分是神经元(neurons),通过加权连接和激活函数构成复杂的网络结构。神经网络广泛应用于模式识别、分类和回归等领域。

bp神经网络的概念

bp神经网络(backpropagation neural network)是多层前馈神经网络的训练算法,通过误差反向传播调整网络权重以最小化输出误差。它主要包括以下步骤:

  1. 前向传播:输入数据通过网络传播,生成预测输出。
  2. 计算误差:预测输出与真实输出之间的差异。
  3. 反向传播:误差反向传播,通过梯度下降法调整网络权重。

单个神经元的结构

单个神经元的基本结构包括:

  • 输入(input):接收多个输入信号。
  • 权重(weights):每个输入信号乘以对应的权重。
  • 加权和(weighted sum):所有加权输入信号的和。
  • 激活函数(activation function):将加权和映射到输出信号。常用的激活函数包括sigmoid、relu、tanh等。

公式表示为: y=f(∑i=1nwixi+b)y = f\left( \sum_{i=1}^{n} w_i x_i + b \right)y=f(∑i=1n​wi​xi​+b) 其中,fff是激活函数,wiw_iwi​是权重,xix_ixi​是输入,bbb是偏置项。

cnn模型汇总

卷积神经网络(cnn)是一种专门处理图像数据的神经网络,具有卷积层、池化层和全连接层等结构。常见的cnn模型有lenet5、alexnet、vgg、inception net(googlenet)和resnet。

lenet5 模型

lenet5是最早的卷积神经网络之一,由yann lecun等人在1998年提出,用于手写数字识别。其结构包括:

  • 输入层:28x28的灰度图像
  • 卷积层c1:6个5x5的卷积核,输出6个24x24的特征图
  • 池化层s2:平均池化层,输出6个12x12的特征图
  • 卷积层c3:16个5x5的卷积核,输出16个8x8的特征图
  • 池化层s4:平均池化层,输出16个4x4的特征图
  • 卷积层c5:120个5x5的卷积核,输出120个1x1的特征图
  • 全连接层f6:84个神经元
  • 输出层:10个神经元(对应10个类别)

alexnet 模型

alexnet由alex krizhevsky等人在2012年提出,标志着深度学习在图像识别领域的突破。其结构包括:

  • 卷积层1:96个11x11的卷积核,步长为4,输出96个55x55的特征图
  • 池化层1:最大池化层,输出96个27x27的特征图
  • 卷积层2:256个5x5的卷积核,步长为1,输出256个27x27的特征图
  • 池化层2:最大池化层,输出256个13x13的特征图
  • 卷积层3:384个3x3的卷积核,步长为1,输出384个13x13的特征图
  • 卷积层4:384个3x3的卷积核,步长为1,输出384个13x13的特征图
  • 卷积层5:256个3x3的卷积核,步长为1,输出256个13x13的特征图
  • 池化层5:最大池化层,输出256个6x6的特征图
  • 全连接层:4096个神经元
  • 输出层:1000个神经元(对应1000个类别)

vgg模型

vggnet由simonyan和zisserman在2014年提出,其特点是使用非常小的卷积核(3x3)和较深的网络结构。常见的vgg模型包括vgg16和vgg19,分别包含16和19个卷积层和全连接层。其结构包括:

  • 卷积层1-2:64个3x3的卷积核,步长为1,输出64个224x224的特征图
  • 池化层1:最大池化层,输出64个112x112的特征图
  • 卷积层3-4:128个3x3的卷积核,步长为1,输出128个112x112的特征图
  • 池化层2:最大池化层,输出128个56x56的特征图
  • 卷积层5-7:256个3x3的卷积核,步长为1,输出256个56x56的特征图
  • 池化层3:最大池化层,输出256个28x28的特征图
  • 卷积层8-12:512个3x3的卷积核,步长为1,输出512个28x28的特征图
  • 池化层4:最大池化层,输出512个14x14的特征图
  • 卷积层13-17:512个3x3的卷积核,步长为1,输出512个14x14的特征图
  • 池化层5:最大池化层,输出512个7x7的特征图
  • 全连接层:4096个神经元
  • 输出层:1000个神经元(对应1000个类别)

inception net(googlenet)模型

inception net由google提出,主要特点是inception模块,能够在同一层上并行进行不同尺寸卷积和池化操作。其结构包括:

  • 卷积层1:64个7x7的卷积核,步长为2,输出64个112x112的特征图
  • 池化层1:最大池化层,输出64个56x56的特征图
  • 卷积层2:192个3x3的卷积核,步长为1,输出192个56x56的特征图
  • 池化层2:最大池化层,输出192个28x28的特征图
  • inception模块:多个inception模块组合,不同尺寸的卷积核和池化层并行
  • 全连接层:辅助分类器和主分类器
  • 输出层:1000个神经元(对应1000个类别)

resnet (残差网络)

resnet由微软研究院提出,主要特点是引入残差连接,解决深度网络中的梯度消失和退化问题。其结构包括:

  • 卷积层1:64个7x7的卷积核,步长为2,输出64个112x112的特征图
  • 池化层1:最大池化层,输出64个56x56的特征图
  • 残差模块:多个残差模块,每个模块包含多个卷积层和一个直接的残差连接
  • 全连接层:1000个神经元
  • 输出层:1000个神经元(对应1000个类别)

rnn模型(循环神经网络)

rnn是一种用于处理序列数据的神经网络,其特点是具有循环连接,能够保留序列信息。rnn在时间序列预测、自然语言处理等领域有广泛应用。

为什么需要rnn

传统神经网络在处理序列数据时无法保留之前的信息,而rnn通过循环连接,能够保留并利用序列中的上下文信息,使得其在处理时间序列数据时更为有效。

rnn结构

rnn的基本结构包括:

  • 输入层:接收序列数据的每个时间步
  • 隐藏层:通过循环连接保留前一个时间步的信息
  • 输出层:输出每个时间步的结果

公式表示为: ht=f(wihxt+whhht−1+bh)h_t = f(w_{ih}x_t + w_{hh}h_{t-1} + b_h)ht​=f(wih​xt​+whh​ht−1​+bh​) yt=g(whoht+bo)y_t = g(w_{ho}h_t + b_o)yt​=g(who​ht​+bo​) 其中,fff是隐藏层的激活函数,ggg是输出层的激活函数,www和bbb分别是权重和偏置项。

lstm(长短期记忆网络)模型

lstm是一种改进的rnn,能够有效解决长期依赖问题。其通过引入记忆单元和门控机制,控制信息的保留和遗忘。

lstm结构

lstm的基本结构包括:

  • 遗忘门(forget gate):决定是否丢弃上一时间步的记忆
  • 输入门(input gate):决定是否接受当前时间步的输入
  • 记忆单元(memory cell):保留重要信息
  • 输出门(output gate):决定输出哪些信息

公式表示为: ft=σ(wf⋅[ht−1,xt]+bf)f_t = \sigma(w_f \cdot [h_{t-1}, x_t] + b_f)ft​=σ(wf​⋅[ht−1​,xt​]+bf​) it=σ(wi⋅[ht−1,xt]+bi)i_t = \sigma(w_i \cdot [h_{t-1}, x_t] + b_i)it​=σ(wi​⋅[ht−1​,xt​]+bi​) c~t=tanh⁡(wc⋅[ht−1,xt]+bc)\tilde{c}_t = \tanh(w_c \cdot [h_{t-1}, x_t] + b_c)c~t​=tanh(wc​⋅[ht−1​,xt​]+bc​) ct=ft⋅ct−1+it⋅c~tc_t = f_t \cdot c_{t-1} + i_t \cdot \tilde{c}_tct​=ft​⋅ct−1​+it​⋅c~t​ ot=σ(wo⋅[ht−1,xt]+bo)o_t = \sigma(w_o \cdot [h_{t-1}, x_t] + b_o)ot​=σ(wo​⋅[ht−1​,xt​]+bo​) ht=ot⋅tanh⁡(ct)h_t = o_t \cdot \tanh(c_t)ht​=ot​⋅tanh(ct​)

gru模型

gru(gated recurrent unit)是一种简化的lstm模型,减少了计算复杂度,保留了lstm的长短期记忆能力。

gru结构

gru的基本结构包括:

  • 重置门(reset gate):控制如何合并新输入和前一个时间步的记忆
  • 更新门(update gate):控制如何更新当前时间步的状态

公式表示为: rt=σ(wr⋅[ht−1,xt]+br)r_t = \sigma(w_r \cdot [h_{t-1}, x_t] + b_r)rt​=σ(wr​⋅[ht−1​,xt​]+br​) zt=σ(wz⋅[ht−1,xt]+bz)z_t = \sigma(w_z \cdot [h_{t-1}, x_t] + b_z)zt​=σ(wz​⋅[ht−1​,xt​]+bz​) h~t=tanh⁡(wh⋅[rt⋅ht−1,xt]+bh)\tilde{h}_t = \tanh(w_h \cdot [r_t \cdot h_{t-1}, x_t] + b_h)h~t​=tanh(wh​⋅[rt​⋅ht−1​,xt​]+bh​) ht=(1−zt)⋅ht−1+zt⋅h~th_t = (1 - z_t) \cdot h_{t-1} + z_t \cdot \tilde{h}_tht​=(1−zt​)⋅ht−1​+zt​⋅h~t​

计算重置门rtr_trt​和候选状态h~t\tilde{h}_th~t​

重置门rtr_trt​控制前一个时间步的隐藏状态如何影响当前时间步的候选状态: rt=σ(wr⋅[ht−1,xt]+br)r_t = \sigma(w_r \cdot [h_{t-1}, x_t] + b_r)rt​=σ(wr​⋅[ht−1​,xt​]+br​) 候选状态h~t\tilde{h}_th~t​是当前时间步的潜在新信息: h~t=tanh⁡(wh⋅[rt⋅ht−1,xt]+bh)\tilde{h}_t = \tanh(w_h \cdot [r_t \cdot h_{t-1}, x_t] + b_h)h~t​=tanh(wh​⋅[rt​⋅ht−1​,xt​]+bh​)

计算更新门ztz_tzt​和当前状态hth_tht​

更新门ztz_tzt​决定当前时间步的隐藏状态如何更新: zt=σ(wz⋅[ht−1,xt]+bz)z_t = \sigma(w_z \cdot [h_{t-1}, x_t] + b_z)zt​=σ(wz​⋅[ht−1​,xt​]+bz​) 当前时间步的隐藏状态hth_tht​通过前一个隐藏状态和当前候选状态的加权和计算: ht=(1−zt)⋅ht−1+zt⋅h~th_t = (1 - z_t) \cdot h_{t-1} + z_t \cdot \tilde{h}_tht​=(1−zt​)⋅ht−1​+zt​⋅h~t​

这些模型和概念构成了神经网络在图像识别、自然语言处理等领域的基础和核心技术。

🎈众口难调🎈从心就好

(0)

相关文章:

  • 数据挖掘期末5

    数据挖掘期末5

    局部异常因子即是用局部相对密度来定义的。重复第二步,直至类不发生变化,【或者可设置最大迭代次数,这样及时类中心点发生变化,但是达到最大迭代次数就会结束】将每个点... [阅读全文]
  • 【空间转录组】MIA分析

    之前讲过一篇空间转录组的文献,里面首次提出了Multimodal intersection analysis(MIA)的空间转录组分析思路。讲解视频在B站MIA分析可以用来评估空间…

    2024年07月28日 编程语言
  • 时序图聚类关联算法

    A time resolved clustering method revealing longterm structures and their short-term inter…

    2024年07月28日 编程语言
  • 实用脚本三:C++ DBSCAN算法实现图像中的点聚类并可视化

    实用脚本三:C++ DBSCAN算法实现图像中的点聚类并可视化

    其基本方法是将当前像素梯度强度与沿正负梯度方向上的相邻像素的梯度强度进行比较,若其最大(即为极值),则保留该像素为边缘点,若不是最大,则对其进行抑制,不将其作为... [阅读全文]
  • 【宠粉赠书】科研绘图神器:MATLAB科技绘图与数据分析

    《MATLAB科技绘图与数据分析》是一本综合性强、内容丰富的书籍,对于希望提升数据分析与科研绘图能力的读者而言,是不可多得的参考书。本书结合了作者丁金滨多年的数据分析与科研绘图经验…

    2024年07月28日 编程语言
  • 多维数据分析

    一、前言 在需求不具体的情况下,面对一堆杂乱的数据,我们该如何进行BI工程的建设呢?宏观上看,整个工程无非就是理解需求 -> 分门别类收集原材料 -&gt…

    2024年07月28日 编程语言

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com