自动驾驶中的卷积神经网络(1)|学习笔记

简介: 快速学习自动驾驶中的卷积神经网络(1)

开发者学堂课程【深度学习与自动驾驶:自动驾驶中的卷积神经网络(1)】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/533/detail/7154


自动驾驶中的卷积神经网络(1)

 

内容介绍

一、Computer Vision is Machine Learning

二、Images are Numbers

Computer Vision is Hard

Image Classification Pipeline

Famous Computer Vision Datasets

Let's Build an Image Classifier for CIFAR-1O

K-Nearest Neighbors: Generalizing the Image-Diff Classifier

Reminder: Weighing the Evidence

Reminder: Learning" is Optimization of a Function

Convolutional Neural Networks

 

内容简介

今天讨论应用于图像的神经网络 CNN,以及这些类型的网络如何帮助驾驶汽车,如果有时间会讲一个简单的交通灯检测案例,检测绿色黄色红色如果我们不能训练我们的神经网络做到这一点那么我们就会陷入困境,但这是对三类分类问题的一个很好的清晰的说明性案例研究,接下来DeepTesla 它已经在网站上实时运行了,它像 Depitotic 是一个神经网络,基于道路视频控制车辆驾驶,依旧可以在浏览器中使用 JavaSript 做所有的事情,所以你将能够利用真实世界的驾驶数据来训练自己的网络,如果有时间会讲 tensorflow 中如何做同祥的事情,因此如果想要构建一个更大更深的网络并且希望利用 GPU 来训练该网络,而且你不希望在浏览器中执行此操作而是希望使用 TensorFlow 进行离线处理,并在计算机上安装强大的 GPU将解释如何做到到这一点计算机视觉所以谈论了普通机器学习,它大部分的输入都是很小的,在神经网络中,神经元的数量约为10,100,1000。

 

一、Computer Vision is Machine Learning

image.png

图像是像素的集左下方是计算机视觉中最具代表性的图像之一,那就是 Lenna,现在计算机视觉再一次被机器学习的数据驱动方法所主导,其中所有与其他类型处理数据相同的方法被用于图像,其中输入只是像素的集合像素是数字从0到255个离散值,可以用同样的方式来思考图像,可以在有输入图像和输出标签的地方进行监督学习。这里的输入图像是一女人的照片,标签可能是“女人”,在监餐学习中,原理类似。将简要地看一下这些,并将图像聚类成不同的类别。回到半监督和强化学习。事实上,之前谈到的Atari游戏就是,对图像做一些预处理他们在做计算机视觉使用卷积神经网络,而监督学习的流水线也是一样的:有图像形式的原始数据,这些图像上有标签。执行一个机器学习算法执行特征提取,它对图像上的输入和输出以及这些图像的标签进行训练构建模型,然后测试该模型,得到一个度量和准确性。精度是经常用来描述模型表现如何的术语。就是百分比的形式。

 

二、Images are Numbers

image.png

1、Regression: The output variable takes continuous values

2、Classification: The output variable takes class labels

Underneath it may still produce continuous values such as

probability of belonging to a particular class.

图像是数字。我们非常善于视觉感知,将视觉感知转化为语义,可以看到这个图像知道这是一只猫但电脑只能看到数字就是彩色图像的RCB值。每个像素从0到255有三个值,可以想到两个问题一个是回归另一个是分类。回归是当想要产生一个值,所以如果有一个四车道的图像希望产上一个方向盘角度的值如果有一个非常聪明的算法,它可以训练任何形式的前进道路,并产生完美的正确的转向角度安全驾驶汽车穿越美国分类是当输入是一个图像输出是一个类标签,一个离散的类标签在它底层虽然往往还是一个回归问题,并且一旦产生其形式就是这个特定图像属于特定类别的概率,使用值来切断与低概率相关的输出,并将与高概率相关联的标签转换为离散分类。

 

三、Computer Vision is Hard

image.png

计算机视觉很难,作为人类真的天生善于处理这类问题。会有视点变化发生:从不同的角度观察时,物体在像素方面看起来完全不同,当站在离他们很近或很近时物体是完全不同的大小。擅长检测不同的尺寸,它仍然是同一个对象但这非常难因为这些尺寸可能会有很大的差异。谈到了咬合和变形这是一个很好理解的问题但是有背景噪声存在。必须从背景中分离出感兴趣的对象并赋予世界的三维结构。背景中经常出现很多东西混乱差异,这通常此类别间的差异更大;意思是相同类型的对象通常比你试图分离它们的对象有更多的变化。有一个对于驾驶来说很困难因素:照明,通过物体表面的反射光观察事物,光的来源改变了物体出现的方式必须对所有这些物体保持强健。

 

四、Image Classification Pipeline

image.png

所以图像分类管道(一套由标准流链接的进程)是有类别,这是猫,狗,马克杯,帽子的分类问题,有一堆不同类别的图像的例子,所以输入只是与类别配对的图像,并且训练映射来估算一个从图像到类别的映射函数。

 

五、Famous Computer Vision Datasets

这个训练估算过程需要大量的数据,虽然获取到的数据集越来越多但和真正需要的数据数量仍然相距甚远,尽管它们不是数十亿或数万亿的图像但仍然为有数以百万计的图像感到兴奋,如果经常阅读学术文献,会看到这些数据集,MINIST(机器学习数据集);已经非常的常用,然后在这个过程中也使用手写数字的数据集,其中的类别是0到9,ImageNet(一个大型可视化数据库设计用于使用可视对象识别软件)是最大的图像数据集之一世界上完全标记的图像数据集具有来自WordNet的分类层次的图像,你所看到的图像是与目前数据集中的某一个单词存在关联的标签,CIFAR-10和CIFAR-100是微小的图像,用来以非常高效和快速的方式证明你正在尝试发布的算法是很有用的,这是个很小的数据集,ClFAR-10意味着有10个类别,地点是自然场景的数据集,树林,自然,城市等。

 

六、Let's Build an Image Classifier for CIFAR-1O

image.png

1、作为10个类别的数据集:飞机,汽车,鸟,猫等。这是一些样本图像,建立一个分类器从这10个类别中的一个中获取图像并告诉图像中显示的是什么。所有的算法看到的依然是数字。所以必须要有一个核心必须比较两个图像。所以给出一个图像,保存它作为一只猫或狗,比较它与猫的图像和狗的图像看看哪一个此较匹配,所以必须有二个比较运算符那么一种方法是获取到两张图之间的绝对差异,逐个像素,取之间的差,将幻灯片底部显示的每个像素之询的差异用于4x4图像然后相加所有的像素值,像素方式的绝对差值变成一个单一的数字所以如果图像的像素完全不同,这意味着这个差值会很大,如果它是相同的图像数字将是0这也是差异的绝对值。

2、这就是所谓的L1距离。当谈到距离时,通常谈的是L2距离。所以可以尝试建立一个分类器使用这个运算符来比较它与数据集中的每个图像,并且选择一个使用比较运算符之后最接近的类别,如果通过一张小猫照片来出属于猫类别的照片,要查看数据集并找到最接近这张图片的图片,并说出这张图片所展的类别,如果只是翻转硬币随机选择一个类别来作为图像的类别的准确性,平均准确率只有10%,这是随机的,刚刚通过数据集并找到最接近的那个图像差异算法的准确性是38%,这是相当不错的,超过了10%。

 

七、K-Nearest Neighbors: Generalizing the Image-Diff Classifier

 image.png

1、所以可以考虑一下基于这个的操作,找到最接近的图像这称为k-nearestneighbor 算法(最近邻算法。一种用于分类和回归的非参数方法),k的意思是在图像集合中找到了最接近问题的图像,并接受该图像的标签可以做同样的事情增加 K,把 K 增加到2意味着取到最近的两个邻居,通过这个特定的查询图像可以找到两个最接近的图像的像素差异,并找出它们属于哪些类别,左边显示的是正在处理的数据集:红色,绿色和蓝色,中间显示的是一个最近邻分类器,这意味着如何将不同事物的整个空间分割成可以较的东西,如果一个点落入这些区域中的任何一个,它将立即与属于该图像的最近邻居算法相关联,对于该区域而言,最近的五个邻居现在有问题,问题是有白色的区域,有五个最接近的邻居来自不同类别是未知的。所以目前还不清楚你属于哪里。所以这是参数调整的一个很好的例子,有一个参:K,而作为机器学习的老师的任务,必须教这个算法如何跟着你学习,来弄清楚这个参数,这就是所谓的“参数调整”或“超参数调整”,因为它被称为神经网络,在图片的右下角的X轴上是 K当从0增加到100时,y轴是分类精度事实证明这个数据集最好的 K 是 7,

有了这个,得到了人类表现的30%,就像在很多机器学习管道流程中所做的那样,得到这个数字的方法就是将数据分成多个部分部分一部分用于训练,另一部分用于测试你不允许插手测试部分因为那是作弊,你可以在训练数据集上构建你的世界模型并使用所谓的交叉验证,拿一小部分的训练数据“折叠五“那里用黄色表示不参与训练,然后将其用作超参数调整的一部分。当你训练时,找出折叠五中黄色的部分,做得如何,然后选择不同的折叠,再看做得如何,并继续玩参数,不可以接触测试部分。当准备好了,运行一个测试数据的算法,看看做得如何。它将如何概括。

2、问题有没有一个好方法去感知K隐藏着什么

有一些一般规则,但通常需要穷举网格搜索蛮力

3、问题:每个像素是一维位数还是三维?

对于大多数计算机视觉,它们曾经使用灰度图像,所以它是一个数,但RGB是3个数有时也有深度值所以是4个数,如果有一个立体视觉相机可以提供像素的深度信息,这是第四个如果你把两个图像叠加在一起那么可能是6维,接触的每个像素都是3位数

4、问题:至于绝对值只是1个数?

这是正确的。所以在这种情况下,那些是灰度图像。这不是RGB图像,这个算法是相当不错的,只要能够使用得当。

5、对这个算法的超参数进行了优化,选择了K等于7,似乎对于这个特定的CIFAR-10数据集运行良好有30%的准确性。这令人印象深刻,超过10%。人类约94%,CIFAR-10的准确性超过94%。所以给了一个图像,这是一个微小的图像就像一个小图标。根据这个图像,人类能够准确地确定10个类别中的一个,精度达到94%。目前最先进的卷积神经网络是95%的准确性,它的准确率是95.4%,有的人相信,有的人不相信,这是一场激烈的战斗,但最重要的是,这里最关键的事实是它最近超越了人类。

 

八、Reminder: Weighing the Evidence

image.png

定会超越K-近邻算法。这是如何工作的?这一切还归结为神经元,将其输人的权重相加,添加一个偏置值,根据一个激活函数产生一个输出,一个平滑的激活函数。

问题:拍了一张 Cassie 的照片,知道这是一只猫,但这不是编码

就像你必须在某处写下来一样。所以必须写一个标题:"这是我的猫。”因为互联网是呆滞的,你不能根信图像上的字幕。因为也许你很聪明,但它不是猫,它是只裝扮成猫的狗。

问题:卷积神经网络通常比近邻网络做得更好吗?

神经网络做得不好的情况很少,是的,他们几乎总是做的更好,除非几乎没有数据。所以需要数据。而卷积神经网络并不是什么特别的神奇的东西。

这只是一些前面提到的神经网络,试图缩小规模,并使其能够处理图像。输入是,在这种情况下,来分类写有数字的图像,而不是做些奇特的卷积技巧。只需要整个28x28像素图像,是784像素,作为输入。784个神经元在输入中,15个神经元在隐层,10个神经元在输出中。

 

九、Reminder: Learning" is Optimization of a Function

现在所有东西都有相同的结构。有一个通过正向传递的网络,拿一个输入图像,并产生输出分类,并且通过向后传递的网络反向传播可以在其中调整权重,当预测不符合基准值输出。学习归结为优化;它只是优化一个平滑函数。可区分的函数;这被定义为损失函数。这通常与真实输出之间的平方误差一样简单。

 

十、Convolutional Neural Networks

 image.png

得到的输出。那有什么区别?什是卷积神经网络?卷积神经网络采用具有一定空间一致性的输入,它们像图像一样具有一些空间意义。还有其他的东西,可以在时间维度想到的。可以将音频信号输入卷积神经网络。所以输入是,通常是单层,这是一个卷积层,输入是3D 值,输出是3D 值。简化了这个,所以你可以称它为4D,但它是3D。有高度,宽度和深度。所以这是一个图像,高度和宽度是图像的宽度和高度。然后灰度图像的深度为1;将对于RGB图像是3;对于十帧视频的灰度图像,深度为10。这只是一个值,三维矩阵值。卷积层所做的唯一事情就是采用3D 值的输入产生一个3D 值作为输出,还有一些平滑面数,对输入进行操作,根据输入的总和,这可能是,也可能不是你调整的参数,你只试图优化。

1、Convolutional Neural Networks: Layers

(1)INPUT [32x32x3] will hold the raw pixel values of the image, in this case an image of width 32, height 32, and with three color channels R,G,B.

(2)CONV layer will compute the output of neurons that are connected to local regions in the input, each computing a dot product between their weights and a small region they are connected to in the input volume. This may result in volume such as [32x32x12] if we decided to use 12 filters.

(3)RELU layer will apply an elementwise activation function, such as the max(O,x) thresholding at zero. This leaves the size of the volume unchanged ([32x32x12]).

(4)POOL layer will perform a downsampling operation along the spatial dimensions (width, height), resulting in volume such as [16x16x12].

(5)FC (i.e. fully-connected) layer will compute the class scores, resulting in volume of size [1x1x10], where each of the 10 numbers correspond to a class score, such as among the 10 categories of CIFAR-10. As with ordinary Neural Networks and as the name implies, each neuron in this layer will be connected to all the numbers in the previous volume.

你用同样的方式堆积乐高积木。卷积神经网络有哪些类型的层呢?这有一些输入。因此,例如32x32的彩色图像将是32x32x3的体积。

2、Dealing with Images: Local Connectivity

卷积层利用输入神经元和卷积层的空间系,是完全一样的神经元。至于完整连接的网络就是之前的规则。但它具有更窄的接受范围更集中,卷积层上的输入来自上一层的指定区域,而每个过滤器的参数可以把它看成是一个过滤器因为把它滑过整个图像。而这些参数是共享的。如果虑两层,而不是将第一层中的每个像素连接到下一层中的每个单个神经元。只将输入层中彼此靠近的神经元连接到输出层,然后连接到输出层。接着将权重在空间上连在一起。结果是什么呢?输出中的每一层都有一个过滤器,可以把它想象成一个过滤器,例如会被边缘激发。当它看到图像中这种特殊的边缘时,它就会激活。它会在图片的左上方,右上角,左下角,右下角被激活。假设有一个明显的特征可以用来检测猫,不管它在图像中的位置都可以用。这可以让你切除神经元之间的大量连接,但它仍然在右边,作为一个神经元,汇入了一系列输入,并给它们加权。输出音量相对于输入音量的空间排列。

3、ConvNets: Spatial Arrangement of Output Volume

image.png

Depth: number of filters

Stride: filter step size (when we "slide" it)

Padding: zero-pad the input

被三个东西控制。过滤器的数量。所以对于每一个“过滤器",都会在输出上获得额外的图层。所以如果输入,看看第一层,输入是32x32x3。它在32x32的 RGB 的图像里。如果过滤器的数暈是10,那么由此产生的深度在输出中叠加通道的数量将会是10。步幅是沿着图像滑动的过滤器的步长。往往只有1或3。并且直接减少输出图像的尺寸,宽度和高度的空间大小。那么被填充是很方便的。外面的图像会清零。

相关文章
|
5天前
|
机器学习/深度学习 计算机视觉 Python
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力本文提出了一种简单且高效的卷积神经网络(ConvNets)注意力模块——SimAM。与现有模块不同,SimAM通过优化能量函数推断特征图的3D注意力权重,无需添加额外参数。SimAM基于空间抑制理论设计,通过简单的解决方案实现高效计算,提升卷积神经网络的表征能力。代码已在Pytorch-SimAM开源。
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
|
8天前
|
机器学习/深度学习 监控 自动驾驶
卷积神经网络有什么应用场景
【10月更文挑战第23天】卷积神经网络有什么应用场景
12 2
|
8天前
|
机器学习/深度学习 自然语言处理 算法
什么是卷积神经网络
【10月更文挑战第23天】什么是卷积神经网络
16 1
|
11天前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
33 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
|
13天前
|
机器学习/深度学习 人工智能 自动驾驶
深度学习中的卷积神经网络(CNN)及其应用
【10月更文挑战第21天】本文旨在深入探讨深度学习领域的核心组成部分——卷积神经网络(CNN)。通过分析CNN的基本结构、工作原理以及在图像识别、语音处理等领域的广泛应用,我们不仅能够理解其背后的技术原理,还能把握其在现实世界问题解决中的强大能力。文章将用浅显的语言和生动的例子带领读者一步步走进CNN的世界,揭示这一技术如何改变我们的生活和工作方式。
|
2天前
|
机器学习/深度学习 人工智能 TensorFlow
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【10月更文挑战第32天】本文将介绍深度学习中的一个重要分支——卷积神经网络(CNN),以及其在图像识别领域的应用。我们将通过一个简单的代码示例,展示如何使用Python和TensorFlow库构建一个基本的CNN模型,并对其进行训练和测试。
|
7天前
|
机器学习/深度学习 自然语言处理 TensorFlow
深度学习中的卷积神经网络(CNN)及其应用
【10月更文挑战第26天】在这篇文章中,我们将深入探讨卷积神经网络(CNN)的基本原理、结构和应用。CNN是深度学习领域的一个重要分支,广泛应用于图像识别、语音处理等领域。我们将通过代码示例和实际应用案例,帮助读者更好地理解CNN的概念和应用。
|
10天前
|
机器学习/深度学习 算法 计算机视觉
深度学习与生活:如何利用卷积神经网络识别日常物品
【10月更文挑战第24天】在这篇文章中,我们将探索深度学习如何从理论走向实践,特别是卷积神经网络(CNN)在图像识别中的应用。通过一个简单的示例,我们将了解如何使用CNN来识别日常生活中的物体,如水果和家具。这不仅是对深度学习概念的一次直观体验,也是对技术如何融入日常生活的一次深刻反思。文章将引导读者思考技术背后的哲理,以及它如何影响我们的生活和思维方式。
|
15天前
|
机器学习/深度学习 人工智能 自动驾驶
深入理解深度学习中的卷积神经网络(CNN)
【10月更文挑战第18天】深入理解深度学习中的卷积神经网络(CNN)
26 0
|
18天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化卷积神经网络(Bayes-CNN)的多因子数据分类识别算法matlab仿真
本项目展示了贝叶斯优化在CNN中的应用,包括优化过程、训练与识别效果对比,以及标准CNN的识别结果。使用Matlab2022a开发,提供完整代码及视频教程。贝叶斯优化通过构建代理模型指导超参数优化,显著提升模型性能,适用于复杂数据分类任务。

热门文章

最新文章