深度学习自学第一周(一)了解深度学习与神经网络


本周开始对深度学习进行自学,主要是对吴恩达老师的课程进行学习,整理出相关笔记并进行研究的一个模式,下面总结一下这一周的学习内容。

深度学习是高度数据依赖型的算法,它的性能通常随着数据量的增加而不断增强,也就是说它的**可扩展性(Scalability)**显著优于传统的机器学习算法。

1.神经网络

神经网络是一个很重要的概念,深度学习指的是“训练神经网络”。可以从下面这张图来看出神经网络的基本用法。
在这里插入图片描述

用上图来表示神经网络的话,我们可以将神经网络分为四层,最左边的一层称为输入层,位于这一层的神经元称为输入神经元。最右边的输出层包含了输出神经元,上图只有一个输出神经元。中间的层被称为隐藏层,因为这些神经元既不是输出也不是输入。若把输出比作Y,输入比作X,对于神经网络来说,我们只需要输入X,它就能反馈给我们Y,所有的中间过程都是由它自己完成的。这就意味着,如果我们给定的训练集够大(即给定的X、Y),我们可以通过输入X来得到想要的Y,即计算从X到Y的映射函数,从而使神经网络实现预测效果。上图所示的神经网络结构是一个标准神经网络,主要用于处理数列数据。

如果要处理图像,我们要用到的是卷积神经网络(CNN),如下图所示。
在这里插入图片描述

此外还有循环神经网络(RNN)。相关的知识在此先不做详细介绍,简单引入一下,以后再具体阐述。

2.深度学习与机器学习

开始研究深度学习时,总是会同时接触到关于机器学习的知识,那么这两者有什么关系呢。上面我们讲到的神经网络就是深度学习的表现形式。

机器学习则是实现这一目标的基础。它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。当我们给定的训练集越大,他的精确度就越高。

深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。

从下面这张图我们可以直观看出他们之间的关系。
在这里插入图片描述

可以看出,机器学习与深度学习都属于人工智能的范畴,而深度学习又是机器学习的一种方向。因此我们在研究深度学习的问题时,所用到的基本算法都是源于机器学习的,下面简单介绍一下机器学习的几种方法。

(一)监督学习

从给定的训练数据集中学习出一个函数(模型参数),当新的数据到来时,可以根据这个函数预测结果。即当我们给了一定数量的X、Y后,可以训练出一个最优模型。再利用这个模型将新的输入映射为相应的输出,对输出进行简单的判断从而实现分类的目的。也就具有了对未知数据分类的能力。所以监督学习往往可以用来解决分类问题,例如我们熟知的猫狗大战。

常见的有监督学习算法:回归分析和统计分类。最典型的算法是KNN和SVM。

(二)无监督学习

输入数据的没有被标记,也没有确定的结果。样本数据类别未知,需要根据样本间的相似性对样本集进行分类,试图使类内差距最小化,类间差距最大化。非监督学习目标不是告诉计算机怎么做,而是让它自己去学习怎样做事情。使用非监督学习方法的思路是在判断成功时,采用某种形式的激励制度,对正确的行为做出激励,而对错误行为做出惩罚。

无监督学习的方法分为两大类:

(1) 一类为基于概率密度函数估计的直接方法:指设法找到各类别在特征空间的分布参数,再进行分类。

(2) 另一类是称为基于样本间相似性度量的简洁聚类方法:其原理是设法定出不同类别的核心或初始内核,然后依据样本与核心之间的相似性度量将样本聚集成不同的类别。

利用聚类结果,可以提取数据集中隐藏信息,对未来数据进行分类和预测。应用于数据挖掘,模式识别,图像处理等。

PCA和很多deep learning算法都属于无监督学习。

此外机器学习还有半监督学习和强化学习的方法,在此不多加阐述,以后有接触再详细介绍。

(三)结构函数就与非结构化数据

结构化数据:结构化数据意味着数据的基本数据库。例如在房价预测中,你可能有一个数据库,有专门的几列数据告诉你卧室 的大小和数量,这就是结构化数据。或预测用户是否会点击广告,你可能会得到关于用户的 信息,比如年龄以及关于广告的一些信息,然后对你的预测分类标注,这就是结构化数据, 意思是每个特征,比如说房屋大小卧室数量,或者是一个用户的年龄,都有一个很好的定义。

非结构化数据:非结构化数据是指比如音频,原始音频或者你想要识别的图像或文本中的内容。这 里的特征可能是图像中的像素值或文本中的单个单词。

对于我们人类来说,可能更擅长理解非结构化数据,而计算机相对于非结构化数据来说,理解结构化数据会更加容易。而通过深度学习,计算机可以更加容易的去理解非结构化数据,这也是我们要去让它做的事。

3.sigmoid函数和relu函数

(一)激活函数的定义

激活函数的主要作用是提供网络的非线性建模能力。如果不用激活函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合。

如果使用的话,激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。激活函数主要有如下几种。
在这里插入图片描述

(二)sigmoid函数

sigmoid 是使用范围最广的一类激活函数,具有指数函数形状,它在物理意义上最为接近生物神经元。此外,(0, 1) 的输出还可以被表示作概率,或用于输入的归一化。

但使用这一函数,机器学习的问题是在这一函数的前后两个区域,sigmoid函数的斜率趋近于0,因此学习会变得特别缓慢。因为使用梯度下降法时,当梯度接近0时,参数会变化得特别缓慢。这也使得深度神经网络在二三十年里一直难以有效的训练,是阻碍神经网络发展的重要原因。

(三)ReLU函数

ReLU的全称是Rectified Linear Units,是一种后来才出现的激活函数。它的梯度对于所有为正值的输入,输出都为1,反之则为0.因此它的梯度不会逐渐趋向于0。

我们可以看到,通过改变sigmoid函数为ReLU函数,“梯度下降法”可以运行得更快。最直观的改变就是计算速度变快了,也就使我们能够更快地训练更多的训练模型或在合理的时间内进行计算。这也就使我们在进行深度学习的研究或工作时,神经网络迭代速度变快了,我们能够更快的改进我们的想法、更快地得到实验结果。

当然,ReLU函数也不是毫无缺点。

ReLU函数在训练的时候很”脆弱”,数据很容易就”死亡”了,训练过程该函数不适应较大梯度输入,因为在参数更新以后,ReLU的神经元不会再有激活的功能,导致梯度永远都是零。
例如,一个非常大的梯度流过一个 ReLU 神经元,更新过参数之后,这个神经元再也不会对任何数据有激活现象了,那么这个神经元的梯度就永远都会是 0.
如果 训练集很大,那么很有可能网络中的 40% 的神经元都”死亡”了。

今天先到此为止了,接下来也会不断学习提高自己。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值