一文读懂深度神经网络大家族什么!深度神经网络你只知道CNN?那你就落伍了嗷,今天就给大家介绍一下庞大的深度神经网络家族,

一提到深度神经网络,大家脑海中第一个浮现的无疑是卷积神经网络(ConvolutionalNeuralNetwork,CNN),并且通过前几节的学习,我相信盆友们已经可以很熟练地掌握一些CNN的应用啦然而,CNN只是深度学习神经网络中的一小部分,深度神经网络家族还有许多其他成员。今天,我就把压箱底的宝贝拿出来啦,向大家介绍一下庞大的深度神经网络家族,让盆友们对人工智能和深度学习有更全面深入的认识

深度神经网络(DeepNeuralNetwork,DNN)是一种由多个神经元层组成的计算模型。每个神经元接收来自上一层的输入,并通过激活函数处理后输出给下一层。它的核心思想是通过训练来学习输入与输出之间的映射关系。训练过程中,网络根据输入进行前向传播计算,并与真实输出进行比较计算损失函数;然后通过反向传播算法来调整网络中的权重和偏置,以减小损失函数,从而优化网络性能。(这几个名词是不是很熟悉腻前几节都介绍过啦,看来深度学习的尽头是卷积狗头保命)

前馈神经网络(FeedforwardNeuralNetwork)也被称为多层感知机,是一种最常见和基本的人工神经网络模型。它由多个神经元层组成,这些层按顺序连接,并且信号只在一个方向上前进,从输入层到输出层,没有循环反馈。

以下是前馈神经网络的一般结构和工作原理:

前馈神经网络训练过程:初始化权重、前向传播、计算损失、反向传播、更新权重和重复迭代。

以下是一个简单的使用TensorFlow实现前馈神经网络的代码,有利于理解:

importtensorflowastf#定义前馈神经网络defffn_model():#创建模型model=tf.keras.models.Sequential()#添加隐藏层model.add(tf.keras.layers.Dense(64,activation='relu',input_shape=(input_size,)))#添加输出层model.add(tf.keras.layers.Dense(output_size,activation='softmax'))returnmodel#定义输入和输出的维度input_size=100output_size=10#创建模型model=ffn_model()#编译模型model.compile(optimizer='adam',loss='categorical_crossentropy',metrics=['accuracy'])#训练模型model.fit(train_data,train_labels,epochs=10,batch_size=32)#使用模型进行预测predictions=model.predict(test_data)2.2卷积神经网络CNN关于卷积神经网络的原理介绍及一些应用,前几节已经讲解很多啦,没看过的来看看叭

RNN的隐藏状态更新公式如下:

以下是一个简单的使用TensorFlow实现RNN的代码:

importtensorflowastf#定义RNN模型,其中包含一个SimpleRNN层和一个输出层defrnn_model():model=tf.keras.models.Sequential()model.add(tf.keras.layers.SimpleRNN(64,activation='relu',input_shape=(time_steps,input_size)))model.add(tf.keras.layers.Dense(output_size,activation='softmax'))returnmodel#定义输入和输出的维度input_size=100output_size=10time_steps=10#创建模型model=rnn_model()#编译模型model.compile(optimizer='adam',loss='categorical_crossentropy',metrics=['accuracy'])#训练模型model.fit(train_data,train_labels,epochs=10,batch_size=32)#使用模型进行预测predictions=model.predict(test_data)2.3.1长短期记忆网络LSTM长短期记忆网络(LongShort-TermMemory,LSTM)是一种特殊类型的循环神经网络,专门用于处理序列数据,具有记忆能力。相比传统的RNN模型,LSTM能够更好地解决梯度消失和梯度爆炸问题,有效地捕捉序列数据中的长距离依赖关系。

LSTM的简单代码和上面的差不多,只不过是定义模型有了些改变:

#定义LSTM模型,其中包含一个LSTM层和一个输出层deflstm_model():model=tf.keras.models.Sequential()model.add(tf.keras.layers.LSTM(64,activation='tanh',input_shape=(time_steps,input_size)))model.add(tf.keras.layers.Dense(output_size,activation='softmax'))returnmodel2.4生成对抗网络GAN生成对抗网络(GAN)是一种由两个神经网络组成的框架,旨在生成逼真的合成数据。

GAN的训练过程可以概括为以下步骤:

真实的GAN模型需要更复杂的架构、更多的样本数据、更多的训练技巧才能获得高质量的合成样本。同时,还有很多其他更高级的GAN变体和改进方法可以探索和尝试,下图是GAN家族的演变。

深度强化学习网络(DeepReinforcementLearningNetwork,DRLN)是将深度学习和强化学习相结合的方法,其原理基于强化学习的框架。在强化学习中,智能体通过与环境的交互来学习最优策略,以最大化累积奖励;而深度学习网络则用于逼近值函数或策略函数,将状态映射为动作。

DRLN的原理基于强化学习的框架,其中主要包括环境、智能体、状态、动作和奖励等要素。智能体根据当前状态(State)选择相应的动作(Action),并根据环境的反馈获得相应的奖励(Reward)。通过不断与环境交互,智能体逐步学习出最优的策略,使累积奖励最大化。它引入了深度神经网络作为智能体的决策模型,用于将状态映射到动作空间。

典型的DRLN模型是深度Q网络(DeepQ-Network,DQN)。DQN论文提出了一种使用深度神经网络进行Q值函数逼近的方法。通过将当前状态作为输入,神经网络输出每个动作的Q值,智能体根据Q值选择动作。DQN采用经验回放(ExperienceReplay)来存储和随机选择过去的经验样本,以减小样本之间的关联性,并且使用固定Q目标(FixedQ-Targets)来提高训练的稳定性。

关于DRLN,因为涉及到强化学习,属实是超出了我的学习范围(只有大佬才配学高难度滴强化学习),所以只能介绍这么些啦

Transformer是一种基于自注意力机制(self-attention)的深度学习模型,核心思想是完全基于注意力机制来建模序列间的依赖关系,而不依赖于传统的循环神经网络(RNN)或卷积神经网络(CNN)。它使用自注意力机制来实现并行计算,使得模型能够更好地捕捉文本中不同位置的上下文信息。

自注意力机制允许模型在计算每个位置的表示时,考虑到输入序列中其他位置的语义关系。通过对输入序列中所有位置的软注意力权重进行加权求和,Transformer能够更好地捕捉上下文信息,并有效地建模长距离依赖关系。

Transformer模型由编码器和解码器组成:

通过编码器和解码器的协同工作,Transformer模型能够准确捕捉输入序列的上下文信息,并生成高质量的输出序列。

这几年Transformer可太火了,用处太多,下面简单介绍几个它的变体:

自动编码器(Autoencoder,AE)是一种无监督学习的神经网络模型,通过将输入数据压缩成低维度的表示并尝试将其重构回原始输入,从而实现数据的特征提取和降维。

AE由两部分组成:编码器(Encoder)和解码器(Decoder)。编码器将输入数据映射到潜在空间(也称为编码或隐藏层),而解码器则将潜在表示映射回原始数据空间。整个模型的目标是最小化重构误差,使得重构的输出尽可能接近原始输入。

训练过程可以分为两个阶段:

AE的训练过程可以使用反向传播算法进行优化,通过最小化重构误差来更新网络的参数。一般情况下,常用的重构误差函数是均方差(MeanSquaredError,MSE)。

深度残差网络(DeepResidualNetwork,DRN)是一种深度学习架构,通过引入残差连接来解决深层网络训练过程中的梯度消失和模型退化问题,使得可以更容易地训练和优化非常深的神经网络。

原理:传统的深层神经网络在训练过程中可能遇到梯度消失和模型退化的问题。当网络变得很深时,反向传播算法在更新参数时梯度会逐渐减小,导致难以有效地训练网络。为了解决这个问题,DRN引入了残差连接(ResidualConnection)。残差连接可以看作是一种跨层的直接连接,通过将前一层的特征与后续层的特征相加,使得网络可以更容易地学习残差(即前后层特征之间的差异)。这样,对于深度网络中较浅的层,即使网络的学习函数近似于恒等映射,也可以通过残差连接传递正确的梯度信息,避免梯度消失问题。具体而言,DRN的基本单元是残差块(ResidualBlock),它由两个或三个卷积层组成。残差块的输入通过跳过一个或多个卷积层,直接与块内最后一个卷积层的输出相加,然后经过激活函数得到最终的输出。

胶囊网络(CapsuleNetwork,CapsNet)是由GeoffreyHinton等人于2017年提出的一种神经网络架构。与传统的卷积神经网络不同,胶囊网络引入了胶囊层(CapsuleLayer)来代替传统网络中的卷积层和全连接层。胶囊层利用胶囊(Capsule)来表达特征向量,并且能够编码实体的姿态信息。胶囊网络的设计目标是解决传统卷积神经网络在处理视觉问题时对空间层次化信息建模不足的问题。

胶囊网络的核心原理是利用胶囊来表示实体的各种属性,例如位置、方向、大小等,并通过动态路由(DynamicRouting)机制来学习不同胶囊之间的权重关系。每个胶囊都输出一个向量,该向量包含了实体的属性信息,而不是单纯的激活值。

在胶囊网络中,第一个胶囊层被称为主胶囊层(PrimaryCapsuleLayer),它类似于传统卷积层,用于提取低级特征。然后,主胶囊层的输出会通过动态路由算法,分配给下一层的胶囊,这样高级特征可以通过胶囊表示。动态路由算法根据两个胶囊之间的一致性来调整它们之间的权重,使得具有相似属性的胶囊可以更好地进行通信和合作。

胶囊网络的最后一层为分类胶囊层(CapsuleLayer),每个分类胶囊对应一个类别,并输出一个向量表示实体属于该类别的概率。通过计算分类胶囊的长度(向量的范数),可以确定实体是否属于某个类别。

损失函数:胶囊网络通常使用多样本边缘损失函数(MarginLoss)作为训练的目标函数。多样本边缘损失函数主要通过比较目标类别的胶囊向量与其他类别的胶囊向量之间的距离来进行优化。这样可以使得目标类别的胶囊向量在空间上与其他类别的胶囊向量相隔较远,增强分类的鲁棒性。

深度信念网络(DeepBeliefNetwork,DBN)是一种由多个堆叠的受限玻尔兹曼机(RestrictedBoltzmannMachine,RBM)组成的深度神经网络,它是一种生成式模型,通过无监督学习的方式对数据进行建模和特征学习。

受限玻尔兹曼机(RBM):

DBN的训练包括两个主要步骤:逐层预训练和全局微调。

微调阶段:在预训练完成后,整个DBN进行端到端的监督训练。使用反向传播算法来更新所有层之间的连接权重,并通过最大似然估计来拟合训练数据的标签。

#DBN模型定义classDBN(nn.Module):def__init__(self,input_size,hidden_sizes):super(DBN,self).__init__()self.rbm_layers=nn.ModuleList()#创建多个RBM层foriinrange(len(hidden_sizes)):visible_size=input_sizeifi==0elsehidden_sizes[i-1]rbm_layer=RBM(visible_size,hidden_sizes[i])self.rbm_layers.append(rbm_layer)defforward(self,x):#逐层传递输入数据forrbminself.rbm_layers:x=rbm(x)returnx#RBM模型定义classRBM(nn.Module):def__init__(self,visible_size,hidden_size):super(RBM,self).__init__()self.W=nn.Parameter(torch.randn(visible_size,hidden_size))self.v_bias=nn.Parameter(torch.randn(visible_size))self.h_bias=nn.Parameter(torch.randn(hidden_size))defforward(self,x):h_prob=torch.sigmoid(torch.matmul(x,self.W)+self.h_bias)#计算隐藏层激活概率h=torch.bernoulli(h_prob)#根据概率生成二值化的隐藏层输出v_prob=torch.sigmoid(torch.matmul(h,self.W.t())+self.v_bias)#计算可见层激活概率returnv_prob上述代码是一个简单的DBN实现,从中可以看出包括了DBN模型确实包含了多个RBM模型

THE END
1.了解深度学习的概念在计算了所有数据批次的聚合损失后,深度学习框架使用优化器来确定应如何调整模型中的权重和偏差来减少总体损失。 然后,这些调整将反向传播到神经网络模型中的层,接着再次通过网络传递数据,并重新计算损失。 此过程将重复多次(每次迭代称为一个 epoch),直到损失最小化,并且模型已“学习”正确的权重和偏差,能够准确预测https://learn.microsoft.com/zh-cn/training/modules/deep-learning-azure-databricks/2-deep-learning
2.本期课程深入探讨神经网络的核心结构与工作来自与非网本期课程深入探讨神经网络的核心结构与工作原理。从前馈神经网络的构建讲起,介绍反向传播算法和自动梯度计算技术,这些是训练深度学习模型的关键。课程还将讨论神经网络参数优化过程中的主要问题,为理解深度学习模型的高效训练提供必要的知识。 L与非网的微博视频 小窗口 ?收藏 转发 评论 ?1https://weibo.com/1768387552/5112254494933678
3.原理及循环神经网络简述深度神经网络的基本原理这里用两层来代表多层的神经网络举例:第一层的输出是第二层的输入,其中MM的W*X矩阵乘法,ADD是向量加法即加上偏置,如果每一层都只有线性变换,那么最终无论多少层都可以化简成一层(见上图左边的公式),这样多层数就没有意义了,所以要在每一层都加上非线性函数即激活函数,才能保证每一层都有它独特的作用。 https://blog.csdn.net/weixin_61725823/article/details/130568173
4.深度学习算法原理——神经网络的基本原理腾讯云开发者社区深度学习算法原理——神经网络的基本原理 一、神经网络 1、神经元概述 神经网络是由一个个的被称为“神经元”的基本单元构成,单个神经元的结构如下图所示: Sigmoid函数的区间为[0,1],而tanh函数的区间为[?1,1]。 若是使用sigmoid作为神经元的激活函数,则当神经元的输出为1时表示该神经元被激活,否则称为https://cloud.tencent.com/developer/article/1066395
5.神经网络的基本工作原理51CTO博客从本文开始,我们试图用一系列博客,讲解现代神经网络的基本知识,使大家能够从真正的“零”开始,对神经网络、深度学习有基本的了解,并能动手实践。这是本系列的第一篇,我们先从神经网络的基本工作原理开始讲解。 神经元细胞的数学计算模型 神经网络由基本的神经元组成,下图就是一个神经元的数学/计算模型,便于我们用程https://blog.51cto.com/u_15127597/4666503
6.ResNet深度学习神经网络原理及其在图像分类中的应用Python代码此外,本文还介绍了与卷积层紧密相关的激活函数、池化层以及ResNet深度神经网络的概念与应用,并通过实验验证了ResNet在复杂数据集上的高效分类性能。本文将通过视频讲解,展示ResNet原理,并结合如何用 Python中VGG模型、自定义ResNet模型、Capsule Network模型分析MNIST数据集实例的代码数据,为读者提供一套完整的实践数据分析https://t.10jqka.com.cn/pid_373202406.shtml
7.深度神经网络总结深度神经网络(Deep Neural Networks,DNN)可以理解为有很多隐藏层的神经网络,又被称为深度前馈网络(DFN),多层感知机(Multi-Layer perceptron,MLP)。 1 前向传播算法 1.1 从感知机到神经网络 感知机的模型是一个有若干输入和一个输出的模型,如下图: 输出和输入之间学习到一个线性关系,得到中间输出结果: http://www.360doc.com/content/24/0120/11/18005502_1111679528.shtml
8.焦李成院士:下一代深度学习的思考与若干问题由于神经网络是一个动力学的过程,如何实现长时间内对动态过程的建模,是需要克服的。而用神经网络学习拉格朗日量,在学习的动态的上,诱导一个强大的物理先验,就把两者有机的结合起来,这就是拉格朗日神经网络构造的基本思想和原理。其实神经网络的基本原理或者神经计算的基本原理就是能量最小化的一个过程。https://ipiu.xidian.edu.cn/info/1097/2576.htm
9.深度神经网络(DNN)模型与前向传播算法刘建平Pinard深度神经网络(Deep Neural Networks, 以下简称DNN)是深度学习的基础,而要理解DNN,首先我们要理解DNN模型,下面我们就对DNN的模型与前向传播算法做一个总结。 1. 从感知机到神经网络 在感知机原理小结中,我们介绍过感知机的模型,它是一个有若干输入和一个输出的模型,如下图: https://www.cnblogs.com/pinard/p/6418668.html
10.基于卷积神经网络的手写数字识别【嵌牛导读】在深度学习领域,手写数字识别是一个较为基础的案例,笔者通过深度学习框架pytorch,使用卷积神经网络设计了一个基本的网络结构,使用MINST数据集作为实验数据集,训练了40个轮次,识别率(在训练集上的)达到了99.95%,最终识别率(在测试集上的)达到了99.13%,取得了比较良好的识别效果。 https://www.jianshu.com/p/849ad35db8b7
11.基于深度学习的烟雾识别研究AET本文通过预处理的烟雾图像数据集对卷积神经网络训练提取烟雾特征,并结合Inception Resnet v2[7]网络模型进行烟雾检测,在基于TensorFlow[8]的多GPU支持下本文对烟雾特征的提取训练时间大大缩短。 3.1 基本卷积神经网络原理 卷积神经网络是一个利用反向传播算法进行特征训练的多层神经网络,卷积核就是其核心,当前在各领域被http://www.chinaaet.com/article/3000092836
12.深度学习cnn卷积神经网络原理(图文详解)受Hubel和Wiesel对猫视觉皮层电生理研究启发,有人提出卷积神经网络(CNN),Yann Lecun 最早将CNN用于手写数字识别并一直保持了其在该问题的霸主地位。近年来卷积神经网络在多个方向持续发力,在语音识别、人脸识别、通用物体识别、运动分析、自然语言处理甚至脑电波分析方面均有突破。本文将会深度详解cnn卷积神经网络原理,对https://www.sumaarts.com/share/620.html