首页
学习
活动
专区
工具
TVP
发布

深度学习入门(一)

上次的文章里,小编给大家介绍了机器学习中的几个基本概念,什么是监督学习,训练和推理的区别,标注对于机器学习的意义和机器学习的一般流程。还没看过的小伙伴可以先看看机器学习的一些概念:监督、训练、推理和标注,再来阅读这次的内容。

先区分几个常见的名词:深度学习和神经网络到底区别是啥?深度学习和机器学习又是什么关系呢?

神经网络是AI的一种算法,这种算法的基础,感知机和多层感知机,很早就提出来了。但受限于当时的理论和计算能力等问题,在经历了一段高潮后就衰落了。但是随着技术的发展,特别是在2006年,大神Hinton提出了深度学习理念以及学界发现GPU在训练神经网络上的巨大帮助后,神经网络算法再次腾飞,华丽进阶为深度神经网络,也就是我们现在经常说的深度学习。所以,现在再提到神经网络就是指的深度学习算法。对于这段历史感兴趣的小伙伴,可以看看小编的这篇文章人工智能技术发展的三生三世。关于GPU的话题,小编在一定会好好聊聊,小伙伴别着急哦记得关注,这样才不会错过。

再说说深度学习和机器学习的关系。深度学习是机器学习的一个分支,而且是现阶段机器学习算法中效果最好的一个。深度学习中沿用了很多机器学习的概念和方法,除了上次文章提到的,还有正向传播、反向传播、损失函数和梯度下降等。大家放心,这几个概念小编会用专门的文章去介绍。

下面开始今天的主角:深度学习。先介绍深度学习的基本单元神经元。

神经元(Neuron)是神经网络的基本计算单元。借用台大李宏毅教授的一张PPT,下图中w、b是神经元的系数,是深度学习需要学习的参数。

一组数据ai送入神经元后,要与不同的权重wi(weights)做乘法,然后加上一个偏置b(bias),完成一次运算。这个结果接下来会进入激活函数(activation function)。

想象一下,多个神经元串联、并联起来是什么样子:每一层(layer)包含多个神经元,这一层神经元的计算结果统一输入到下一层去。上一层的每个输出均与下一层的每一个神经元进行连接,完成一次上面提到的神经元计算。这种连接模式称为全连接层,也就是各种编程框架中提到的FC层(Fully Connect)。

图片来源于李宏毅教授的PPT

第一层为输入层(Input Layer),最后一层为输出层(Output Layer),中间称为隐层(Hidden Layer)。深度神经网络指的就是隐层的层数很多的网络模型。现在很多的网络深度已达到上百层之多。

神经网络其实就是在对输入数据进行某种空间变化,将在普通空间不容易进行分类的事情变化到另一空间去解决。这种思想跟傅里叶变换很类似:学过信号与系统的都知道,在时域上混叠的多个信号是不好分开的,通过傅里叶变换到了频域后就容易处理了。神经网络就是通过每一层运算实现了这种空间转换。

以往的机器学习方法,通常需要研发人员对数据进行手工提取数据特征,将这些特征转换到另一空间,然后通过各种分类器,如SVM、随机森林等去实现分类。这种方法有一个弊端:手工提取数据特征往往是不全面的,这会影响最终的分类效果。深度学习算法不是这么做的。

深度学习在训练时,不需要研发人员手工提取数据特征,而是把数据直接丢入模型中,模型会自动进行特征的筛选,然后再去分类。在监督条件下,通过与标注结果的比较进行反馈,程序会自动判断之前的特征提取是否是有效的,并进行修改。这是深度学习算法与传统机器学习的一个很大的区别。

但是这也引发了一个问题:神经网络的模型对于研发人员来说是一个黑盒子,研发人员不知道程序选择了哪些特征。举个例子,在人脸识别程序中,模型对于人脸的识别结果是由一串数字组成的特征值向量,这个向量的长度取决于研发人员对模型的设计。但是这组数字并没有任何实际意义,比如说第一个数字不代表对眼睛识别的结果,第二个数字不代表对鼻子识别的结果。在当前模型设计的条件下,这组数字是模型对于人脸图片在进行空间转换后的结果,并没有任何明确的物理意义。

这次小编带大家了解了深度学习的基本单元—神经元,以及由多个神经元组成的多层神经网络的基本模型。下回我们看看这个模型是怎么训练出来的。

原创不易!欢迎大家关注,拍砖,留言,转发

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180317G1H11K00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券