《白话深度学习与TensorFlow》——2.2 深度神经网络

简介: 本节书摘来自华章计算机《白话深度学习与TensorFlow》一书中的第2章,第2.2节,作者:高扬,卫峥著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.2 深度神经网络

2016年3月,随着Google的AlphaGo以4∶1的悬殊比分战胜韩国的李世石九段,围棋——这一人类一直认为可以在长时间内轻松碾压AI的竞技领域已然无法固守,而深度学习(deep learning)这一象征着未来人工智能领域最重要、最核心的科技也越来越成为人们关注的焦点。
这里所谓的深度学习实际指的是基于深度神经网络(deep neural networks,DNN)的学习,也就是深度人工神经网络所进行的学习过程,或称作Deep Learning。这个Deep指的是神经网络的深度(层数多)。当然,其实业界没有特别具体地定义,大于多少层的算深度网络,少于多少层的不算,没有这样一个说法。所以在这里我也就不强调多深算深的概念了,我们就权且管超过2层的——也就是1个隐藏层和1个输出层以上深度的都叫深度神经网络好了。不过呢,深度学习这个词我觉得还有另外一个层面的意思,就是说用这样一个网络可以学到很多深层次的东西,能够提取到很多用纯粹基于统计学指标、传统机器学习或显式的特征与内容描述所无法名状的东西。机器能够学习到比较丰富的信息,这是人类在发明出计算机以后一直都在尝试挑战的一个领域。读过本书姊妹篇《白话大数据与机器学习》的朋友估计应该不会陌生,在那本书中,我们讨论过很多机器学习相关的算法。在这种非深度学习的场景中——我姑且称之为“浅度学习”吧,人们输入给模型的学习样本都是要经过高度提炼的向量内容,而不能像我们在深度学习那样直接把一张图、一段语音、一段视频的多媒体资料丢给机器去学习。
就拿我们前面说过的那个例子来看,(年龄,身高,体重,血压,血脂)这样的数据向量必须由人来提取、整理并明确定义每个向量维度的确实含义。剩下的过程就是基于这些人类已经抽象过的指标来寻找它们之间的逻辑关系。这就是与“深度学习”相对的“浅度学习”的工作场景。
如果使用贝叶斯概率进行学习,那就是用统计的方法解释不同事件先验概率和后验概率的量化关系计算问题;如果使用决策树归纳一个分类模型,那就是用维度的引入把分类模型向信息熵降低的方向做引导,还是一个统计过程;如果是用支持向量机SVM做分类,那就是寻找超平面来保证分类的置信度最大,也就是让样本点距离超平面尽可能远,仍然是一个统计过程;这些问题大部分靠线性模型或者统计学概率模型能够给出清晰的物理含义解释,当然它们的局限性也非常明显。如果读者朋友对这个部分还不是太了解,建议参考相关的书籍进行一下知识补充。
注意,在这里要强调一下,在很多初学者中有一些误区,很多人会认为深度学习在任何情况下都要比传统机器学习表现更好,但实际上并不是的。其实想想也知道,这不符合“尺有所短,寸有所长”的哲学观点。从前面的叙述可以看出来,传统机器学习在工作的过程中具有非常好的解释特性,或者说你知道模型在做什么,处理的是什么特征,其中任何一个指标值的大小变化的意义会有良好的解释。而且,传统机器学习在训练的过程中需要很少的样本向量,通常都是百级或者千级就够了,这对于深度学习来说也是无法做到的——它需要数以万计的样本来做训练。所以,大家千万不要盲目迷信深度学习的能力,也不要误读了深度学习的作用。
人类的眼睛、耳朵、口舌,是上天赐给人类最敏感和感知细腻的器官。没错,眼睛让我们看到不同的形状、不同的颜色、不同的大小,它使我们能够轻松辨别千百万种不同的物体;耳朵可以听到20 Hz~20 000 Hz之间的声波,能够感知不同的人通过声波传递给我们的信息;口舌的存在也极为精妙,舌头可以用来尝出酸甜苦辣咸(医学家说“辣”的辨别其实不是舌头的特性,而是包括皮肤在内的很多细胞都有的特性),而人的声带发出的声音或高亢嘹亮,或低回婉转,能够传递蕴含着丰富信息的音频数据。
刚刚说的这些领域中的数据信息大都属于特征提取比较困难的,数据量大,而且没办法通过线性关系或者统计概率关系直接描述。这些信息中蕴含的分类规则对于只会做加减乘除、比大小和读写数据的计算机来说显得太困难了。你想啊,把一张照片送到计算机里面,你就让他判断这里面的人物漂亮不漂亮,不难为死它么?它看到的不过是一堆堆的数字而已,还没法直接比大小。

image

遗憾的是,这种非离散的数据信息是远比我们前面例子所指出的病患体检指标的数据难于量化的。也许有人说,不对,起码音频视频的数字化早在几十年前就已经被人类掌握并非常成熟地应用于家用PC中了,我们现在用的mpeg文件、avi文件、mp3和mp4文件,里面都蕴含着丰富的音视频多媒体信息,怎么能说难于量化呢。是的,这些文件确实可以用来承载完整的音视频信息,但是这些音视频信息最终的解读在相当长的一段时间内只能由人来完成。换句话说,在一张照片中,究竟表示的是一匹马,一辆车;在一段视频里,播放的究竟是一部歌剧,还是一部动作电影,这些内容让计算机自己来做判断和识别几乎是没有办法的。因为,我们量化存储的这些帧数据所承载的信息都是关于屏幕上某个点的颜色的,而这是极难与其实际承载的内容发生关联的,更别说还要进行相应统计和概率计算了。
比如下面这两张图片,我们打眼一看就觉得两幅雕塑表示的内容主题是相似的。但是承载它的文件你用肉眼再怎么仔细看,也无法看出这一堆堆数据之间的关系,不仅如此,即便你用其他任何一种常规性的机器学习算法,你也无法把这两个雕塑关联在一起,因为它们看上去是如此“不相似”。
image

在我们连图片所承载的内容信息是不是相似都无法判断的情况下,显然是没有办法做更深一步的分析的。在我们束手无策的时候,出现了一类神器一般的算法逻辑系统,这就是我们刚才所说的神经网络,尤其是层级比较深的神经网络。

image
image

深度学习(deep learning)这个概念最早是由著名计算机科学家Geoffrey Hinton等人于2006年和2007年在《科学》(《Sciences》)杂志上发表的文章中所提出的。就深度学习而言,在最初被提出的时候指的是深度神经网络(deep neural network),而随着神经网络层数的增多,网络就具备了很多原先非深度神经网络所不具备的学习能力,在设计合理的情况下它能学到很多层面的内容,显得更为“智能”。也正是因为这一点,它使我们人类感觉到它学习层面的“深度”。还是那句话,虽然“深度学习”这个词本身单指网络的深度,但是如果你认为它指的是学习层面有深度,我觉得同样不能算错,因为它真的是这样,你在后面就会看到它有多么强大了。

相关文章
|
1天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络:从理论到实践
【10月更文挑战第35天】在人工智能的浪潮中,深度学习技术以其强大的数据处理能力成为科技界的宠儿。其中,卷积神经网络(CNN)作为深度学习的一个重要分支,在图像识别和视频分析等领域展现出了惊人的潜力。本文将深入浅出地介绍CNN的工作原理,并结合实际代码示例,带领读者从零开始构建一个简单的CNN模型,探索其在图像分类任务中的应用。通过本文,读者不仅能够理解CNN背后的数学原理,还能学会如何利用现代深度学习框架实现自己的CNN模型。
|
2天前
|
机器学习/深度学习 TensorFlow 算法框架/工具
利用Python和TensorFlow构建简单神经网络进行图像分类
利用Python和TensorFlow构建简单神经网络进行图像分类
12 3
|
13天前
|
机器学习/深度学习 搜索推荐 安全
深度学习之社交网络中的社区检测
在社交网络分析中,社区检测是一项核心任务,旨在将网络中的节点(用户)划分为具有高内部连接密度且相对独立的子群。基于深度学习的社区检测方法,通过捕获复杂的网络结构信息和节点特征,在传统方法基础上实现了更准确、更具鲁棒性的社区划分。
27 7
|
14天前
|
机器学习/深度学习 自然语言处理 TensorFlow
深度学习的奥秘:探索神经网络背后的魔法
【10月更文挑战第22天】本文将带你走进深度学习的世界,揭示神经网络背后的神秘面纱。我们将一起探讨深度学习的基本原理,以及如何通过编程实现一个简单的神经网络。无论你是初学者还是有一定基础的学习者,这篇文章都将为你提供有价值的信息和启示。让我们一起踏上这段奇妙的旅程吧!
|
14天前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
54 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
|
15天前
|
机器学习/深度学习 人工智能 自动驾驶
深度学习中的卷积神经网络(CNN)及其应用
【10月更文挑战第21天】本文旨在深入探讨深度学习领域的核心组成部分——卷积神经网络(CNN)。通过分析CNN的基本结构、工作原理以及在图像识别、语音处理等领域的广泛应用,我们不仅能够理解其背后的技术原理,还能把握其在现实世界问题解决中的强大能力。文章将用浅显的语言和生动的例子带领读者一步步走进CNN的世界,揭示这一技术如何改变我们的生活和工作方式。
|
1天前
|
机器学习/深度学习 人工智能 自动驾驶
深入解析深度学习中的卷积神经网络(CNN)
深入解析深度学习中的卷积神经网络(CNN)
5 0
|
3天前
|
机器学习/深度学习 人工智能 自动驾驶
深度学习的奇迹:如何用神经网络识别图像
【10月更文挑战第33天】在这篇文章中,我们将探索深度学习的奇妙世界,特别是卷积神经网络(CNN)在图像识别中的应用。我们将通过一个简单的代码示例,展示如何使用Python和Keras库构建一个能够识别手写数字的神经网络。这不仅是对深度学习概念的直观介绍,也是对技术实践的一次尝试。让我们一起踏上这段探索之旅,看看数据、模型和代码是如何交织在一起,创造出令人惊叹的结果。
10 0
|
4天前
|
机器学习/深度学习 人工智能 TensorFlow
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【10月更文挑战第32天】本文将介绍深度学习中的一个重要分支——卷积神经网络(CNN),以及其在图像识别领域的应用。我们将通过一个简单的代码示例,展示如何使用Python和TensorFlow库构建一个基本的CNN模型,并对其进行训练和测试。
|
10天前
|
机器学习/深度学习 自然语言处理 TensorFlow
深度学习中的卷积神经网络(CNN)及其应用
【10月更文挑战第26天】在这篇文章中,我们将深入探讨卷积神经网络(CNN)的基本原理、结构和应用。CNN是深度学习领域的一个重要分支,广泛应用于图像识别、语音处理等领域。我们将通过代码示例和实际应用案例,帮助读者更好地理解CNN的概念和应用。

热门文章

最新文章

下一篇
无影云桌面