《白话深度学习与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月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
135 5
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
|
2月前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
356 55
|
15天前
|
机器学习/深度学习 数据可视化 算法
PyTorch生态系统中的连续深度学习:使用Torchdyn实现连续时间神经网络
神经常微分方程(Neural ODEs)是深度学习领域的创新模型,将神经网络的离散变换扩展为连续时间动力系统。本文基于Torchdyn库介绍Neural ODE的实现与训练方法,涵盖数据集构建、模型构建、基于PyTorch Lightning的训练及实验结果可视化等内容。Torchdyn支持多种数值求解算法和高级特性,适用于生成模型、时间序列分析等领域。
162 77
PyTorch生态系统中的连续深度学习:使用Torchdyn实现连续时间神经网络
|
7天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
蘑菇识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了9种常见的蘑菇种类数据集【"香菇(Agaricus)", "毒鹅膏菌(Amanita)", "牛肝菌(Boletus)", "网状菌(Cortinarius)", "毒镰孢(Entoloma)", "湿孢菌(Hygrocybe)", "乳菇(Lactarius)", "红菇(Russula)", "松茸(Suillus)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,
51 11
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
1月前
|
机器学习/深度学习 监控 算法
基于yolov4深度学习网络的排队人数统计系统matlab仿真,带GUI界面
本项目基于YOLOv4深度学习网络,利用MATLAB 2022a实现排队人数统计的算法仿真。通过先进的计算机视觉技术,系统能自动、准确地检测和统计监控画面中的人数,适用于银行、车站等场景,优化资源分配和服务管理。核心程序包含多个回调函数,用于处理用户输入及界面交互,确保系统的高效运行。仿真结果无水印,操作步骤详见配套视频。
54 18
|
1天前
|
机器学习/深度学习 PyTorch TensorFlow
深度学习工具和框架详细指南:PyTorch、TensorFlow、Keras
在深度学习的世界中,PyTorch、TensorFlow和Keras是最受欢迎的工具和框架,它们为研究者和开发者提供了强大且易于使用的接口。在本文中,我们将深入探索这三个框架,涵盖如何用它们实现经典深度学习模型,并通过代码实例详细讲解这些工具的使用方法。
|
2月前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
220 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于yolov4深度学习网络的公共场所人流密度检测系统matlab仿真,带GUI界面
本项目使用 MATLAB 2022a 进行 YOLOv4 算法仿真,实现公共场所人流密度检测。通过卷积神经网络提取图像特征,将图像划分为多个网格进行目标检测和识别,最终计算人流密度。核心程序包括图像和视频读取、处理和显示功能。仿真结果展示了算法的有效性和准确性。
88 31
|
2月前
|
机器学习/深度学习 算法 信息无障碍
基于GoogleNet深度学习网络的手语识别算法matlab仿真
本项目展示了基于GoogleNet的深度学习手语识别算法,使用Matlab2022a实现。通过卷积神经网络(CNN)识别手语手势,如"How are you"、"I am fine"、"I love you"等。核心在于Inception模块,通过多尺度处理和1x1卷积减少计算量,提高效率。项目附带完整代码及操作视频。
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于深度学习网络的宝石类型识别算法matlab仿真
本项目利用GoogLeNet深度学习网络进行宝石类型识别,实验包括收集多类宝石图像数据集并按7:1:2比例划分。使用Matlab2022a实现算法,提供含中文注释的完整代码及操作视频。GoogLeNet通过其独特的Inception模块,结合数据增强、学习率调整和正则化等优化手段,有效提升了宝石识别的准确性和效率。

热门文章

最新文章