深度学习基本概念总结

误差的产生原因:

通俗的解释,一般情况下,误差产是的产生是由于输入值与权重的计算产生了错误,而输入值往往是固定不变的,因此对于误差的调节,需要对权重进行更新。而权重的更新又以输入值与真实值的偏差为基础,当最终层的输出误差被反向一层一层地传递回来后,每个节点都会相应地分配适合其在神经网络中的地位误差,即只需要更新其所需承担的误差量。

反馈神经网络算法

反馈神经网络算法主要需要得到输出值和真实值之间的差值,然后再利用这个差值去对权重进行更新,而这个差值在不同的传递层有着不同的计算方法:

1、对于输出层单元,误差项是真实值与模型计算之间的差值。

2、对于隐藏层的误差项,由于缺少直接的目标值来计算隐藏层单元的误差,因此需要以简洁的方式来计算隐藏层的误差项,并对受隐藏层单元影响的每个单元的误差进行加权求和。

卷积的概念

卷积的作用:能够对输入数据的局部特征进行抽取和计算。

数字图像处理中有一种基本的处理方法,即线性滤波。它将待处理的二维数字看作一个大型矩阵,图像中的每个像素可以看做矩阵中的每个元素,像素的大小就是矩阵中的元素值。

而使用的滤波工具是另一个小型矩阵,这个矩阵被称为卷积核。卷积核的大小远小于图像矩阵,而具体的计算方式就是计算图像大矩阵中的每个像素周围的像素和卷积核对应位置的乘积,之后将结果相加,最终得到的就是该像素的值,这样就完成了一次卷积。

池化

池化的一个非常重要的作用是能够帮助输入的数据表示近似不变形,对于平移不变性,指的是对输入的数据进行少量平移时,经过池化后的输出结果并不会发生改变。局部平移不变性是一个很有用的性质,尤其是当关心某个特征是否出现而不关心它出现的具体位置时。

(如在进行人脸识别的时候)

卷积神经网络的原理

从本质上讲,卷积神经网络就是将图像处理中的二维离散卷积运算和神经网络相结合。这种卷积运算可以用于自动提取特征,而卷积运算可以用于自动提取特征,而卷积神经网络主要应用于二维图像的识别。

一个卷积神经网络如果包含一个输入层,一个卷积层和一个输出层,那么在真正使用的时候,一般会使用多层卷积网络不断地提取特征,特征越抽象,越有利于识别(分类)。而通常神经网络包含池化层、全连接层、最后输出层。

以下是对一幅图进行卷积神经网络处理的过程:

1、图像输入:获取输入的数据图像;

2、卷积:对图像特征进行提取;

3、pooling层:用于缩小在卷积时获取的图像特征。

4、全连接层:用于对图像进行分类。

残差网络ResNet

ResNet网络结构,突破性地使用了模块化思维对网络记性叠加,从而实现了数据在模块内部特征的传递不会产生丢失。模块内容实际上是3个卷积通道互相叠加,形成了一种瓶颈设计。对于每个残差模块使用3层卷积。这3层分别是1x1,3x3,1x1的卷积层。其中1x1层卷积对输入数据起到“整形”的作用,通过修改通道使得3x3卷积层具有较小的输入/输出数据结构。

词嵌入

无论是使用深度学习还是传统的自然语言处理方式,一个非常重要的内容就是将自然语言转换成计算机可以识别的特征向量。文本的预处理就是如此,通过文本分词、词向量训练。特征词抽取这3个主要步骤组建能够代表文本内容的矩阵向量。

文本数据处理

1、文本清洗:文本中除了常用的标点符号外,还包含着大量的特殊字符,因此需要对文本进行清洗,文本清洗的方法一般是使用正则表达式。文本清洗完成后,将文本内容进行分词。

2、停用词的使用:通过观察分好词的文本集,每组文本中除了能够表达含义的名词和动词外,还有大量没有意义的副词,这些词的存在并不会给句子增加太多的含义,反而由于频率非常高,会影响后续的词向量分析,因此为了减少我们要处理的词汇量,降低后续程序的复杂度,需要清除停用词。清除停用词一般用的是NLTK工具包。

文本清洁处理步骤

1、Tokenization:对句子进行拆分,以单个词或者字符的形式进行存储,文本清洁函数中的text.split函数执行的就是这个操作。

2、Normalization:将词语正则化,lower函数和PorterStemmer函数做了此方面的工作,用于将数据转换为小写和还原词干。

3、Rare Word Replacement:对稀疏性较低的词进行替换,一般将词频小于5的替换成一个特殊的Token<UNK>,通常把Rare Word视为噪声,故此法可以降噪并减小字典的大小。

4、Add <BOS><EOS>: 添加每个句子的开始和结束标志

5、Long Sentence Cut-Off or Short Sentence Padding:对于过长的句子进行截取,对于过短的句子进行补全。

One-Hot介绍

onehot表示的词向量是很冗长的,它使用词向量维度大小为整个词汇表的大小,对于每个具体的词汇表中的词,将对应位置置为1。如有3个单词组成的词汇表,“is”的序号为2,那么它的词向量就是(0,1,0)。

onehot用来表示词向量非常简单,但是onehot存在一个巨大的问题,词汇表一般都非常大,如词汇表达到数百万级别,那么这个词就要用百万维的向量来表示,这是基本不可能的。而且这样的向量除了一个位置是1,其余的位置全部是0,表达效率不高。将其使用在卷积网络中会使得卷积网络难以收敛。

Word2Vec介绍

word2vec是google在2013年推出的一个自然语言处理工具,它的特点是将所有的词向量化,这样词与词之间就可以定量的度量它们之间的关系,挖掘词之间的联系。word2vec是一种可以觉接one-hot的方法,它的思路是通过训练将每个词都映射到一个较短的词向量上来,所有这些词向量构成了向量空间,进而可以用普通的统计学方法来研究词与词之间的关系。

1、CBOW模型:CBOW(continuous bsg-of-word,连续词袋)模型是一个三层神经网络。该模型的特点是输入已知的上下文 ,输出当前单词的预测。

2、Skip-Gram模型:skop-gram模型与CBOW模型正好相反,由当前词预测上下文词

文本主题的提取:基于TF-IDF

TF-IDF是一种用于资讯检索与资讯勘察的常用加权技术。TF-IDF是一种统计方法,用来衡量一个词对一个文件集的重要程度,字词的重要性与其在文件中出现的次数成正比,而与其在文件集中出现的次数成反比。该算法在数据挖掘、文本处理和信息检索等领域得到了广泛的使用。

TF-IDF是统计方法:用来衡量一个词对一个文件集的重要程度,字词的重要性与其在文件中出现的次数成正比,而与其在文件集中出现的次数成反比。

上一篇:Golang获取文件名扩展名/后缀


下一篇:npm包-fflate