深度神经网络算法 –1.0v

人工神经网络(Artificial Neural Network,ANN),也简称神经网络(Neural Network,NN),是机器学习中很重要的一部分,这是一种仿生模型,模仿的就是生物神经元的结构,他是一个自适应系统,具有学习功能。通过对一个函数的估计或近似,得到一个用函数来表达的局部结构空间。也就是说通过统计学的方法,人工神经网络能够像人一样具有简单的决定能力和判断能力。

其过程可以用以下图来阐述:

ANN训练过程

首先输入变量先后经过加权求和和非线性变换后得到输出,当然这个过程中可能还需要加上误差bias(例如保证非负),这个过程中,主要就是要确定参数ω(omega)还有偏差b(bias),这个过程就是将输入向量与权向量内积后,经过一个非线性传递函数得到一个标量结果。

可以理解为:一个神经元的功能是吧一个n维向量用超平面分割成两部分,也就是判断边界,给定一个输入向量的时候,神经元可以判断这个输入是超向量的那一边。

目前的深度学习算法非常多,以下为大致了解后所记录下来的算法,待笔者依次了解过后再在此基础上扩充修改,目前为1.0v。

CNN

卷积神经网络(Convolutional Neural Network,CNN)

卷积神经网络的核心当然是卷积,原始的输入经过输入层后会变成灰度或者RGB的数值矩阵,这些矩阵包含的就是原始信息,在卷积核(这个卷积核可以通过训练得到)按照一定步长移动并且相乘再相加后会得到一个新矩阵,这个过程就是卷积,当然实际处理中可能有多层卷积。

上一步得到的这个新矩阵就称为特征图,同时也做为下一层的输入,而数据太大太多并不好处理,所以卷积的过程后配有池化过程,经过池化之后,参数会大幅度减少。

而最后将所有的特征组合在一起,便是全连接层干的事情,他可以给出图像是什么的可能性。下图展示了这个过程:

CNN

以上的三个层次分别是卷积层,池化层,全连接层,对应图中的Convoltions ,Subsampling , Fully connected。

CNN的过程还是有图像演示可以看的更加清楚一点,另外还有一种分类器,是笔者在本科毕设阶段用到的,既是Haar cascade分类器(用opencv即可实现),这两者间有什么差别呢?

Haar cascade分类器是一种传统的图像分类算法,基于Haar特征和级联分类器,通过矩阵计算得到Haar特征,然后再通过级联的方式来过滤掉不符合条件的区域。而CNN是一种基于深度学习的图像分类算法,它可以自动从原始数据中学习到特征,并且可以处理更加复杂的情况。

也就是说,Haar cascade 分类器简单高效,可以处理简单问题,而CNN需要更多的计算资源和数据量,但可以处理大规模,高纬度的数据。

RNN

循环神经网络(Recurrent neural network RNN)是神经网络的一种。通常情况下,深度神经网络都是水平方向延伸的,比如CNN,这个过程很少关注时间,时序上的变化,而RNN就不同,它关注隐层每个神经元在时间维度上的成长。

其过程可以用以下图来简单概括:

RNN

这个RNN中的循环过程可能并不是很直观,可以将普通的神经网络视图上建立三维坐标,将纵坐标看作时间,在时间的基础上,对于时序,RNN做出了参数调整,促使它可以理解上下文,就避免了文本理解错误等问题。RNN通过这种看似是级联,实际上沿着时序反复迭代的结构实现了对序列数据的学习。

单纯的RNN因为无法处理随着递归,权重指数级爆炸或梯度消失问题,难以捕捉长期时间关联。也就是说,对于时序上的依赖,并不能无限延伸,为了解决这个问题,又有一种新的深度学习算法问世,也就是LSTM。

LSTM

长短期记忆网络,(Long Short-term Memory Network,LSTM)是一类递归神经网络,能够学习和记忆长期依赖关系。

而之前的RNN只有短期记忆,在很多需要长期记忆的任务上表现并不好,参考人类的记忆方式,我们并不会记住每时每刻发生的事情,而是选择性的记忆相对自己来讲重要的。

于是人们进一步改造小黑盒,用到了门这种机制,门可以用来决定信息的取舍,LSTM有很多变体,MGU,SRU 不过最受欢迎的还是GRU,他又两个门,更新门决定丢弃和添加部分信息,重置门决定写入多上一时刻网络的状态,用来捕捉短期记忆。

RNN: 我大意了啊,没装门!
LSTM门:我大意了啊,没有关!
GRU门: 我大意了啊,没有开!

GAN

生成对抗网络(Generative Adversarial Network,GAN)是一种深度学习算法,透过两个神经网络相[博弈的方式进行学习。他包含三个部分 – 生成,判别,对抗。
生成和判别是两个独立的模块,生成器负责按照输入产生内容,判别器负责判断接受到的内容是否真实,通常会给出一个概率。
GAN的交替训练过程,也就是对抗,这个过程就是让生成器生成一些假的数据和收集到的真数据一起交给判别器,判别器会学习并区分两者,通过打分来对抗,不断重复,直到达成一个预置的概率(50%?)。

以下为GAN的基本结构:

GAN

Transformer

Transformer模型(直译为“变换器”)是一种采用自注意力机制的深度学习模型,这一机制可以按输入数据各部分重要性的不同而分配不同的权重。是谷歌在2017年提出的著名算法。当下著名的Chat-GPT就是基于此训练的。

若是有一项翻译任务,需要用到神经网络的模型,那用什么最好呢?RNN可以采集句子间的序列关系,是个不错的选择,但是翻译时句子和译句之间并非是“1 to 1”的,对于“n to m”的问题,RNN就很难处理了,于是有人找到了Seq2Seq,一个拥有编码器和解码器的模型。

Encoder和Decoder的模型依然是RNN网络由Encoder提取意义,再将意义交付于Decoder再解决问题的法子,但随之而来的问题是意义这一个单元的存储容量有限,面对很长的句子时,该如何处理是一个大问题。

这个时候就该注意力机制登场了,在Seq2Seq的基础上,有意识的从原始句子中提取最重要的信息,这样就摆脱了信息的长度限制,但是新的问题又随之而来,这样的方式太慢了,RNN只有看过句子中的每一个单词才能输出。

下图就是一个简单的示例:

Transformer
Transformer模型在(NLP)自然语言处理上取得了巨大成功,前一阵子的Chat-GPT就是一个很好的例子,还有各种AI应用井喷式发展,但这是否是一件好事?值得思考。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇