-
- 视频加载中。。。
- 课程目录
- 课程笔记
大家好!
我是 Monisha[? Agrivad。?]
在本视频中,我将要介绍
深度学习。
本视频面向的是初入深度学习领域
并且想要熟悉该领域的人。
在这段视频中,您将会获得
对深度学习技术的概括认识,
学习深度学习语言,
了解深度学习解决方案的开发流程
以及可使用该技术的
一些应用领域。
人工智能或 AI 是以智能方式完成
某项工作的计算机程序的统称。
机器学习是AI 的一个分支,
深度学习则又是机器学习的一个分支。
为什么深度学习和机器学习
都属于更宽泛的人工智能的范畴呢?
深度学习是与人类
最相似的人工智能的基础。
与机器学习模型不同的是,
深度学习模型无需您明确告知
如何进行准确地预测,它能够通过自己的
计算方法进行自学,
因此拥有所谓的自己的大脑。
它的设计灵感来自人类的大脑结构,
尤其擅长对象分类、
模式识别和预测分析。
它是否实用呢?
我们来看一下汽车使用案例中的这个例子。
您可能对这个比较熟悉,或者使用过类似的东西。
这是来自一个演示的屏幕截图,该演示
由 TI 的驾驶员辅助系统团队编制而成,
展示了如何使用深度学习
对从汽车前置摄像头看到的对象
进行分类。
在该演示中,深度学习用于
将图像中的各个像素
分类成以下五个类别:
车辆、道路、标志、行人和背景。
然后,该演示会对图像进行适当配色,
从而实现种族化。
深度学习是实现自动驾驶车辆的
关键技术之一。
深度学习还能对哪些事物进行分类?
图片或视频,正如您在汽车示例中看到的,
但它可以是任何类型的数据,音乐、语音、雷达、
飞行时间或机器数据,几乎涵盖了您想要进行分类的
任何类型的数据。
前面曾提到,深度学习的
设计灵感来自人类的大脑结构。
它所具备的思考能力在一定程度上
是通过使用神经网络实现的。
大多数现代化深度学习模型
都是基于人工神经网络,
即粗略模仿人类大脑的
成套算法,专门用于
识别模式,就像人类大脑可以识别
模式一样,而且可帮助我们对信息进行分类。
人工神经网络会为计算机完成相同的工作。
神经网络的核心是人工神经元,
也就是节点。
它模仿了生物神经元。
一个生物神经元主要由三个
主要功能元素组成,树突、细胞体和轴突。
它仅通过树突接收信号。
然后,该信息,或者说信号
被传递到胞体,或者说细胞体。
在细胞体内,所有的信息
被整合在一起,生成一个输出。
在累积的结果达到阈值后,
神经元会产生神经冲动,信息
将经由轴突通过其突触
传递到与之连接的其他神经元。
两个神经元之间传输的信号量
取决于它们之间的连接强度。
人工神经元也具有与生物神经元
相同的组成部分。
它具有输入、权值、处理单元和输出。
它借鉴了生物神经元的处理流程。
在人工神经网络中,您可以将树突
想象成基于其突触互联的
加权输入。
加权输入会在人工神经网络的
细胞体内汇总在一起。
如果生成的输出大于相应阈值,
神经元会产生神经冲动,该神经元的输出
便会传输到另外一个神经元。
人工神经元,或者说节点,是神经网络的基本
计算单元。
一个节点可以连接至多个节点,
可同步将输入馈送至其他
节点的节点被称为一个层,
它们通常表示为
垂直堆叠的节点,
比如图中组成一个网络层的一列绿色节点。
层是神经网络的下一级构建块。
简单的神经网络具有三个层。
第一层称为输入层,
而且是唯一可接触到外部信号的网络层。
输入层将信号传输至
下一层的神经元,这一层称为
隐藏层。
隐藏层会从收到的信号中
提取出相关的特性或者说模式。
然后,该层会将它认为重要的特性或模式
传输至输出层,这是该网络的
最后一层。
当有许多隐藏层时,
便会形成堆栈式神经网络。
增加的层数越多,堆栈越深。
这些网络被称为深度网络。
使用这些深度网络的算法
便是逐渐为人们所熟知的深度学习。
深度学习会在将结果传递至
后续层的其他节点之前,先对
上一层的信息和特征进行分类,从而
逐层学习结构化的大数据表示方法。
为了更直观地了解这个过程,
您可以看一下下面这个非常简单的例子,
深度神经网络收到一张画着一条狗的图片,
并且正在尝试对其进行分类。
该网络的第一层可能会
只是识别该图像内的边缘。
后续层会获取这些信息,
并尝试将其集结在一起,从而形成形状,
然后基于这些形状,给出与某种图像
对应的概率。
后续的层会获得这些形状,
并将它们组合在一起,形成一个完整的结构,
然后为它认为该输入最可能
对应的结构分配一个概率值。
它以概率的形式报告输出。
该网络通过尝试比较这一
生成的概率报告与期望输出
来进行学习。
如果报告的输出与期望输出不匹配,
它会调整它的网络参数,
然后重复该过程,直至它完成学习,
因而报告的图像是狗的概率
高于其输入图像的
其他类别的概率。
如本例中所示,当该网络完成学习后,
在收到的输入为狗狗图像时,
它会报告说收到的图像
有 90% 的可能是狗,
有 10% 的可能是狼。
在深度学习中,有许多不同的神经网络
架构。
这些不同的架构适合解决
不同类型的问题。
在本视频中,我们将介绍三个深度神经网络
架构,MLP、CNN 和 RNN。
MLP 或者说多层感知架构
或许是最传统的
DL 架构类型之一。
当时上一层中的每个元素
都要与下一层中的每个元素连接。
MLP 的过气一定程度上是因为它们很难完成训练。
虽然这种困难是由许多方面的原因造成的,
但其中一个原因便是它们的密集连接
使得它们无法通过轻松扩展来解决各种计算机视觉
问题。
这便是卷积神经网络或者说 CNN
产生的原因。
它包含多层感知器,
这些感知器旨在使用最少数量的
预处理。
CNN 是一个前馈深度神经网络。
在前馈神经网络中,信息
只能向一个方向传播,即向前,从输入节点,
经过隐藏节点,移动到输出节点。
该网络中没有循环或回路。
CNN 会获得固定大小的输入,并生成固定大小的
输出。
这种网络主要用于计算机视觉应用,
而且在光学检测、分类和语义分割方面
具有理想的图像和视频
处理效果。
我们在前面讨论了汽车前置摄像头中
使用的深度学习网络和
关于狗狗图像的网络识别,这两个
例子都是基于 CNN。
另外一种类型的网络是循环神经网络
或者说 RNN。
说 RNN 循环是因为这种网络会接收输入,
根据前面的计算更新隐藏状态,
并为序列中的每个元素提供保护。
RNN 利用前馈连接,
然后扩展纳入反馈连接,从而形成一个循环。
这种网络具有记忆,会保留有关至今为止
所处理的内容的信息。
RNN 对于时间系列的数据非常有用,
该网络假设代表过去的特性
会对未来有影响。
RNN 非常适合用于文本和语音分析,
不管是从语音转换为文本,还是从一种语言转换为另一种语言,
而且它还对预见性维护非常有用。
前面曾提到,所有这些深度神经网络
都包含多个层。
例如在 CNN 中,一些关键层包括
卷积层、ReLu 层、最大值池化层和全连接层。
卷积层是 CNN 中的关键层。
这是一个过滤层,具有最高的计算密度,
而且可以决定指定 CNN 架构的
性能。
ReLu 层,或者说修正线性单元,
通常用于激活函数层。
池化层是一个
用于减少计算成本的降采样层。
全连接层是 CNN 中的最后几个层之一,
可帮助进行数据分类。
CNN 中还有很多其他层,
但这里提到的都是典型 CNN 中的常见层。
指定的一组网络层以及这些层的交互方式
便构成了一个网络模型。
您需要了解网络模型在深度学习中的使用情况,
这一点很重要。
在设计神经网络模型时,
设计者必须考虑要使用哪些层、
每层有多少个神经元、
如何布置各层,等等诸如此类的问题。
设计这种结构会稍微有一点复杂。
现在有很多标准CNN 模型都可以很好地
处理很多标准问题。
其中一些很知名的例子包括
AlexNet、GoogleNet和 Inception-ResNet。
这些模型都是之前的ILSVRC 竞赛中的优胜者。
ILSVRC 是指 ImageNet大规模视觉识别
挑战赛。
这是一个由 ImageNet举办的年度软件竞赛,
它要求研究团队在指定的数据集上
评估他们的算法,并力争在多个
视觉识别任务上实现较高的
准确度。
AlexNet 是首批提高了 ImageNet 分类
准确度的深度网络之一,并且是
2012 年的优胜模型。
从那之后,网络虽然由于提高准确度而变得
更加复杂,但却也找到了
实现更高效性能的方法。
这些模型通常会用作开发工作的
切入点和基准。
但需要注意的是,这些模型都不属于
嵌入友好型网络。
对于功率、大小和成本通常会成为设计中的
限制因素的嵌入式系统,在考虑要使用的网络模型时,
设计的网络一定要具有
较高的计算效率,且能够采用
一些技术来在稍微牺牲计算准确度的
条件下提高计算效率。
利用深度学习构建解决方案
对数据科学家和工程师来说是一个巨大的挑战。
框架是可用于简化深度学习解决方案构建工作的
工具。
框架可提供一个抽象级别,
并简化可能存在困难的编程任务。
可用的开源框架越来越多,
且这些框架通常都是为特殊目的而打造的,
可提供独特的功能范围。
目前最流行的两个开源框架是
TensorFlow 和 Caffe。
TensorFlow 的开发商是 Google,
而且其在 Github 上的“Star”数量和“Fork”数量
以及 Stack Overflow 上的活动数量表明,该框架是当今
最常用的深度学习框架。
Caffe 的开发者是伯克利视觉与学习
中心。
它依赖自己的社区支持、在卷积
神经网络建模中的主要应用以及
对预先训练的模型的选择,也就是 Model Zoo,
而受到人们的青睐。
这些框架还有基于C++ 或 Python 的
更高级别的热门包装器,它们都能够简化编程
工作。
我们已经了解了深度学习网络的
基本组成部分和构建工具,
下面我们来了解一下网络的开发流程。
网络训练的目标是
尽可能获得能够可靠地解决
相应问题的最佳网络参数值。
寻找最佳参数集依赖的是一个
称为反向传播的过程,
也就是,您首先采用一个随机参数集,
然后不断改变这些权值,
直至每个训练图像都可以得到正确的输出。
例如,在尝试构建一个区分猫和狗的分类器时,
我们希望找到具有以下效果的参数:
对于所有的狗狗图像,输出给出的
是狗的概率为 1,或者至少要高于是猫的概率,
而对于所有猫咪的图像,给出的是猫的概率为 1,
或者至少要高于是狗的概率。
为了完成这一步,我们需要收集大量有关
猫和狗的训练图像。
每个输入上都标记有期望的输出值。
该网络会使用一个随机参数集实现初始化。
然后获取各个输入。
该网络会处理相应的图像,并为该图像分配一个
分类概率。
如果图像分类错误,也就是说
报告的正确分类的概率
低于其他分类,那么系统会通过
调整权值来计算并返回概率误差。
然后重复该过程,直至
每个训练图像都能报告正确的输出。
这种利用标记图像训练网络的方法
叫做监督训练,这种方法有可能
会耗费较长的时间。
根据要解决的问题和需要的准确度,
网络模型可能需要使用高性能台式机、
GPU 或云计算训练数周或数月的时间。
训练完成后,这些参数和架构
会保存在一个叫做模型的二进制文件中。
在生产设置阶段,我们将该模型加载到
相同的网络架构中,然后计算新图像
是猫还是狗的概率。
这个过程称为推理或预测。
该模型可能会运行性能远低于
训练时的计算系统,该模型通常会被
部署在嵌入式部件中,
运行与训练时所用处理器
完全不同等级的处理器。
以下是打造深度学习解决
方案的整个开发流程。
选择用于进行网络训练的数据集。
选择用于开发网络模型的框架。
然后设计初始网络。
然后,通过转换来进行网络设计迭代。
例如,边缘、深度、宽度等,直至达到
相应应用所需的性能。
在 PC 上进行离线训练并确定准确度,然后
酌情对网络设计进行微调。
重复执行到第 4 步,直至达到性能和准确度
目标。
在达到网络的性能和准确度目标后,
对模型进行转换,并基于推理工作对其进行部署。
前面曾提到,深度学习
可用于解决需要进行数据分类的
问题。
许多问题都可以归结为分类问题。
下面试举几例。
ADR 工厂自动化与控制
具有许多使用深度学习解决方案的机会,
从提高拾取和放置系统所用的工业
机器人的准确度,到改进装配线上的
检查系统,再到分析工业机器的数据,
从而实现对这些机器的预见性维护,
比比皆是。
就工厂自动化和控制领域而言,
深度学习可用于许多地方。
如果您想要了解一些不太一样
的例子,可以看看农业领域,
深度学习可帮助确定作物的健康情况,
并开发优化的灌溉和收割技术。
零售业也在依靠深度
学习来提高自动结账的
速度和准确度,
以及了解购物者的
需求和偏好,并提供能够吸引
特定购物者的促销激励。
能够使用深度学习来
提高性能或增加新功能的领域
可谓是数不胜数。
这里我们只列举几个可能会用到深度学习
的领域,从更智能的家用扫地机器人
到更安全的交通监控,到游戏中优化的手势识别,
再到先进的监控系统,不一而足。
很显然,这些只是其中的一部分,
因为深度学习的使用案例还会继续增加。
让我们来回顾一下我们在这段视频中所学到的东西。
我们学到了什么是深度学习以及
它与 AI、机器学习、人工神经元和人工神经
网络的关系。
我们学习了深度学习社区中使用的术语,
像节点、层、网络模型和框架等,
了解了深度学习解决方案的
开发流程和
应用领域。
感谢您
课程介绍
共计1课时,29分46秒
猜你喜欢
换一换
推荐帖子
- MCU调试大法:使用串口实现简单shell功能
- MCU程序调试方法有很多,比如软/硬件仿真、添加数据打印等。 像Keil MDK就支持不少单片机的软件仿真,在没有拿到单片机的情况下,就可以先仿真调试部分功能,查看代码逻辑是否正确。硬件仿真则需要借助仿真器,如调试Cortex内核MCU常用的J-Link/ST-Link等。通过watch窗口可以查看变量的值: 在代码中添加数据的打印,则需要借助MCU的串口功能,将运行时的关键数据...
-
Jacktang
微控制器 MCU
- 无线通讯技术(华为).pdf
- 本帖最后由 dontium 于 2015-1-23 13:08 编辑 无线通讯技术(华为).pdf ...
-
785180572
模拟与混合信号
- 分享MSP430设置串口波特率的方法
- 给定一个BRCLK时钟源,波特率用来决定需要分频的因子N: N = fBRCLK/Baudrate 分频因子N通常是非整数值,因此至少一个分频器和一个调制阶段用来尽可能的接近N。 如果N等于或大于16,可以设置UCOS16选择...
-
灞波儿奔
微控制器 MCU
- FAQ蓝牙传输类问答
- 蓝牙传输类问答(由TI 嵌入式现场应用工程师 Michael Qian 整理提供) 1. 蓝牙5.0的功耗相对蓝牙4.0有什么优势?目前手机大部分为蓝牙4.0,能否连接5.0的蓝牙穿戴设备? 答:进入蓝牙5.0时代,将能实现传输距离更远,数据吞吐量更大。 2. 蓝牙5.0支持组网吗?通信速率多高? 答:不支持,组网...
-
qwqwqw2088
无线连接