赞
踩
为了在暑假能更好的发展自己,鉴于对深度学习的浓厚兴趣,楼主开始学习深度学习的相关知识。本系列内容是在楼主学习吴恩达老师的深度学习课程后进行的总结,使用的程序软件为python。如有纰漏还请各位大佬指出,我将虚心接受。
深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning)领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能(AI, Artificial Intelligence)。深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。 深度学习是一个复杂的机器学习算法,在语音和图像识别方面取得的效果,远远超过先前相关技术。 深度学习在搜索技术,数据挖掘,机器学习,机器翻译,自然语言处理,多媒体学习,语音,推荐和个性化技术,以及其他相关领域都取得了很多成果。深度学习使机器模仿视听和思考等人类的活动,解决了很多复杂的模式识别难题,使得人工智能相关技术取得了很大进步。
在深度学习开始前,我们不妨先了解一下图片在计算机的存储方式。一般来说,一个图片在计算机内是由3个64*64矩阵构成(RGB描述),如果将其以一维形式展现,则x一共有3*64*64=12288个元素构成集合,我们称之为X,其中12288为特征向量x的维度。
一般深度学习过程是指通过输入特征向量到神经网络,神经网络经过内部代码的运行后,输出我们所需要的结果。与普通的程序不同的是,神经网络的规模更为庞大,可以更快速地处理大量的数据得出结果,从而实现单个程序无法做到的事,但神经网络的使用前提需要大量的数据进行训练,即创造神经网络所需要的时间更长。
下面我们以二分分类为例子来介绍一下深度学习。
在深度学习中我们用(x,y)来表示一个通过神经网络的样品,其中x为输入的特征向量,y为输出的结果,有时我们会在x,y各上标(1)来表示样品1,上标(2)来表示样品2。
由于在大多数情况下,输出y的量会比较多,我们一般以^y——输出y的概率分布,来作为我们的输出结果,^y=w^T(w的转置矩阵)*x+b,其中w为逻辑回归参数,x为输入的特征参数,b为修正用实数。但这样结果不准确,我们还要用激活函数来进行再次修正,开始我们用的是sigmoid函数,即sigmoid(z)=1/(1+e^(-z)),后面我们会发现用ReLU或Leaky ReLU函数作为激活函数效果会更好,这个之后再介绍。这样我们得到的结果相对会比较准确,但依旧会有一定误差。为了得到误差,我们设L(^y,y)=-(ylog^y+(1-y)log(1-^y)),即我们的误差函数。同时为了得到所有样本的误差,我们设J(w,b)=1/m*各样品误差函数之和,其中m为样品个数,作为我们的成本函数。
接下来我们在介绍一下梯度下降法,通俗来说,梯度下降法是指从起始点开始,沿最陡路线走,直至接近或到达最低点的方法,运用梯度下降法,我们可以在神经网络的运行过程中更新我们的w,即逻辑回归参数,来使我们的输出结果更为准确。
在一个神经网络中,通常会有输入层、隐藏层、输出层,其中隐藏层就是对输入的特征向量进行处理的层,一般神经网络的层数就是指隐藏层与输出层的层数之和,即n+1层,n为隐藏层的层数,每一个隐藏层的输入均为前一个隐藏层的输出,以迭代的方式来进行神经网络数据的传递与处理。每一层均有多个单元,即输入多个数据至单元,经过不同的隐藏单元处理后,最终得到一个输出。
双层神经网络具体如图
每层运行过程
神经网络的使用分为正向传播与反向传播,即我们可以从输入得到输出,也可以从输出得到输入。为了防止隐藏单元相同,从而出现对称性问题,我们一般要进行随机初始化函数的处理,即对w、b进行随机初始化后进行测试,再进行适当调整得到我们所需要的w、b。
上图为正向传播与反向传播公式,其中均将样品组合成为矩阵后代入计算,其中A为预测^y矩阵,g为激活函数。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。