无人驾驶汽车最早可以追溯到一九八九年,神经网络已经存在很长时间了。那么近年来引发人工智能和深度学习热潮的原因是什么呢? 答案部分在于摩尔定律以及硬件和计算能力的显著提高,我们现在可以事半功倍。顾名思义, 神经网络的概念是受我们自己大脑神经元网络的启发。神经元是非常长的细胞,每个细胞都有称为树突的凸起,分别从 周围的神经元接收和传播。电话学信号。结果,我们的脑细胞形成了灵活强大的通信网络。这种类似于装配线的分配过程支持复杂的认知能力,例如音乐播放和绘画。 接下来我们介绍神经网络结构。神经网络通常包含一个输入层、 一个或多个隐藏层以及一个输出层。输入层由 pig 预测变量或输入单位每节点组成。不用说, 通常最好将变量标准化。这些输入单元可以连接到第一隐藏层中的一个或多个隐藏单元。与上一层完全连接的隐藏层称为密集层。在图中,两个隐藏层都是密 密集的。接下来我们介绍输出层的计算预测。输出层计算预测其中的单元数由具体的问题确定。通常二,分类问题需要一个输出单元, 而具有 k 个类别的多类问题将需要 k 个对应的输出单元。前者可以简单的使用 s 型函数直接计算概率,而后者通常需要 softmax 变换,从而将所有 k 个输出单元中的所有值加起来为一,因此可以将其视为概率, 无需进行分类预测。接下来我们介绍权重。图中显示的每个箭头都会传递与权重关联的输入。每个权重本质上是许多 技术估计之一。该系数估计有助于在相应箭头指向的节点中计算出回归。这些是未知参数。必须使用优化过程,由模型进行调整,以使损失函数最小化。训练之前,所有权重均使用随机值初始化。 接下来我们介绍优化和损失函数。训练之前,我们需要做好两件事, 一是你和优度的度量用于比较所有训练观测值的预测和已知标签。二是计算梯度下降的优化方法, 实质上是同时调整所有权重估计值以提高你和优度的方向。对于每种方法,我们分别具有损失函数和优化器。损 施函数有很多类型,所有目的都是为了量化预测误差。例如使用交叉商流行的随机优化方法,如 adam。 接下来我们介绍卷机神经网络。卷机神经网络是一种特殊类型的神经网络,可以很好的用于图像处理, 并以上述原理为框架。名称中的卷机归英语通过滤镜处理的图像中像素的正方形方块结果,该模型可以在数学上捕获关键的视觉提示。例如鸟的会可以在动物中高度区分鸟。 在下面描述的视力中,卷机神经网络可能会沿着一系列设计卷机持化和扁平化的变换链处理会状结构, 最后会看到相关的神经元被激活。理想情况下会预测鸟的概率是竞争类中最大的。 可以基于颜色强度将图像表示为数值矩阵。单色图像使用二 d 卷基层进行处理,而彩色图像则需要三 d 卷基层。我们使用前者 和也称为滤镜。将像素的正方形块卷机为后续卷机层中的标量,从上到下扫描图像。 在整个过程中和执行竹元素乘法,并将所有乘积求和为一个值,该值传递给后续的卷基层。内核一次移动一个像素,这是内核用来进行卷机的滑动窗口的补偿 逐步调整。较大的不长意味着更细更小的卷基特征。石化是从卷基层进行的采样,可在较低维度上呈现主要特征,从而防止过度拟合 并减轻计算需求。持化的两种主要类型是平均持化和最大持化。提供一个合合,一个不长合并就相当于卷积淡取每帧的平均值或最大值。 扁平化,顾名思义,扁平只是将最后的倦基层转换为意为神经网络层,他为实际的预测奠定了基础。 接下来让我们开始用 r 语言实现卷机神经网络。 我们从加在本教程所需的库开始。 我们将波士顿住房数据及用作目标回归数据。首先,我们将加载数据及并将其分为训练和测试及。 接下来我们将训练数据和测试数据的输入和输出部分分开,并将它们转换为矩阵类型。 接下来,我们将通过添加另一维度来重新定义 x 输入数据的形状。 在这里我们可以提取 carris 模型的输入为 我们定义 carries 模型添加译为卷基层。输入形状变为上面定义的十三一。我们添加扁平层和密集层,并使用 adam 优化器对其进行编译。 接下来我们将使用训练数据对模型进行拟合。 现在我们可以使用训练的模型来预测测试数据, 我们通过 rmse 指标检查预测的准确性。 最后我们将在图表中可视化结果检查误差。
粉丝1205获赞6022

今天的话题,借助 excel 深度剖析卷机神经网络 convolutional neural network cnn 模型,本期节目可以看作数字到第八集的补充和深入。 如果你没有观看前期节目,也完全不用担心所有设计的核心理论,我都会通过全新的例子更深入透彻的分析答疑。 之所以选择 excel, 这是因为可以通过他直观的公式清晰阐述其背后的运作原理。 相信本期节目后,你会对模型中的概念输入层、卷机盒特征提取、最大磁化、扁平化处理、全连接神经网络、输出层损失函数等有更透彻的理解。本期节目不包括模型的训练, 如果节目反馈良好的话,我会打造一个可训练的 excel 图像识别模型并和大家分享。那么让我们正式进入 cnn 模型。 我们把上述 cnn 模型组件根据功能进行分类,输入层和输出层作为模型的数据输入,输出两端是可观测的部分, 卷机和特征提取、最大直化、扁平化处理。这一系列流程的目的是把输入端的数据进行过滤,提取重点特征信息并潜馈到全连接神经网络中。 全连接神经网络能够分析数据规律,并通过输出函数反应预测结果,预测结果和真实标签的误差通过损失函数体现。在模型训练的过程中,通过 back publication 逆向推倒的方法调整模型权重参数,不断提高模型预测准确率。接下来让我们对每个组件进行深入剖析。一、输入层 在前期节目中我们已经介绍过了,图像本质上是由像素数据组合而成, 相对于之前使用的黑白图像,今天我们来使用更复杂的彩色图像。现在我有这样一张喵星人图片,我将图片上传至在线转换工具,获得 excel 图像转换文档。 转化后的像素图包括红、绿、蓝三色,颜色的深浅则有单元格,条件格式规则决定颜色背后的具体像素数值就是我们输入端的 基础数据了。我把红绿、蓝三色数值抓取出来,并标准画质零到一的数值区域内,形成了三个三十九乘三十九的矩阵,对每个矩阵进行条件格式设置,可施化输入层数据。 到现在为止,输入数据包含三十九乘三、十九乘三、四千五百六十三个元素。当然,我们可以把这四千多个元素作为输入数据,全部潜溃制全连接神经网络中。 这样的好处是信息不会丢失,但是这样值得吗?四千多个数据分别与神经元根据相应权重连接,意味着大量的权重信息需要参与训练计算,这会怎样影响 模型的训练时间成本呢?另外,判断图片是猫的概率需要考虑全部的像素信息吗?还是说抓住主要图像特征就足够了?比如鼻、眼就足以判断了呢? 卷机神经网络模型的出现,很好的回应了上面的疑问。二、特征提取卷机和特征过滤器 判断图像是否是喵星人,我们只需要把握一些关键特征就好了,比如猫的眼睛、鼻子的, 而这些细节正是通过特征过滤器来获取的。由于我们有红、绿、蓝三个颜色通道,因此针对每一个特征,比如眼睛,我们也需要匹配三个 三乘三的特征过滤器来对应每个颜色矩阵。之所以是三乘三,这是因为我们假定判断眼睛细节不需要特别多的像素,三乘三就足够了。 假如特征细节隐藏在更大的像素区域中,我们也可以适当增加特征过滤器的维度。三个颜色矩阵特征提取完成后,再去汇总最终的特征图像。 不过这里请记住,初始特征过滤器矩阵中的数值是预设的,需要后期训练优化。特征数量也是预设的,当特征数量为 n 时,意味着需要 n 成三个特征过滤器。特征过滤器维度越大, 特征数量越多,需要训练的参数越多,训练时间成本越大。所以模型设计中可以尝试不同的参数配置,综合比较训练成本和成果再做决定。今天的节目中,我们保持一个特征图像三个特征过滤器的配置。 在特征提取的过程中,特征过滤器会主行扫描输入层数据,在输入层矩阵中添加一个数字为零的外围,将其扩充到四十一乘。四十一乘三,能够保证在扫描过程中不发生矩阵边缘信息遗漏。 关于这块内容,可以回顾第八集对拍定技巧的介绍。在计算过程中,根据扫描顺序框取与特征过滤器相同 围度的三乘三区域、相同行列位置的数字相乘,得到九个乘积。将九个乘积结果相加后,汇总到结果矩阵中。 三个颜色矩阵分别完成特征提取流程。得到特征结果矩阵后,将三个特征结果矩阵相加, 同时加上一个预设且需要后期训练的 bias 偏差参数,得到了融合了三个颜色特征信息的特征图。 我们把这个特征图经过 rale 激活函数处理。 excel 中可以通过 max 函数来实现。处理后将复职单元格变为零,得到最终的特征图矩阵。关于 relay 函数,可以观看数字到第六集神经网络模型中激活函数的选择那期节目,了解其应用场景。 三、最大磁化 max pulling 经过上述流程后,图像信息元素的数量从最初的三十九乘三、十九乘三、四千五百六十三个减少到了当前的三十九乘三、十九乘一、一千五百二十一个。 但这还不够,我们还需要从中提取最突出的特征。这步被称为 max 普领最大尺化。 我们把这一千五百二十一个数据分隔成十三乘十三个三乘三的区域,从每个三乘三区域中提取最大值,放置在 十三乘十三的结果矩阵中的相应位置。最终,这个持画后的十三乘十三的矩阵虽然唯独大幅精简,但保有了原图的核心特征。简单提一句,这里 excel 中我使用了 max 和 index 的组合函数。 index 函数的目的在于返回需要计算的数组区域, max 函数用来求区域内的最大值。 四、扁平化处理为了后续更方便的进行计算,我们可以将这十三乘十三的矩阵转化成一百六十九乘一的数据条。我在 excel 中是这么做的, 在十三乘十三的区域中标记好对应的行和列序号,将其按顺序自上而下填充 一百六十九行。单元格中使用 index match 函数匹配行列标签,完成扁平化处理 这样一个特征数据的提取转换流程就结束了。假如我们有新的特征图像需要提取,可以按照上述相同流程把新生成的扁平化数据条按顺序接入即可。 五、全连接神经网络我们将之前的一百六十九个数据前馈至全连接神经网络中。 为了判断图片是猫狗还是兔子,我们将其分别与三个神经元进行全链接,每个神经元有对应的一百六十九个权重参数和一个偏差参数。把有 对每个神经元进行下面的计算,使用 some product 函数将一百六十九个特征输入值与对应神经元权重先相乘,再将乘级相加,最后加上偏差值。八月四, 我们得到了区分猫狗兔的三个绝对数值。从绝对数值来看,我们可以大致了解当前模型的预测结果。 猫的绝对素质更大,意味着模型判断其为猫的概率会更大,但具体概率是多少呢? 六、输出层我们可以利用 soft max 函数将之前的绝对数值结果转换成概率结果,到此,一个正 项数据流就完成了。关于 soft max 函数,大家也可以参考激活函数那期节目之后训练中, cn 模型会根据损失函数逆向推倒调整权重和偏差参数,从而不断提升模型准确率。七、损失函数 这里我们使用的损失函数是交叉商函数 cos hp loss function。 关于损失函数,我后续应该会出一期节目专门介绍。今天先简单说明一下其背后激励。 我们目前已有模型对三种动物的判断概率以及真实动物的标签,它背后的损失值可以这样表示,因为最终标签确定为猫, 所以踢猫等于一,踢狗等于零,踢兔等于零。上述公式可以简化为, 我们把函数图像画一下, p 猫的值在零到一之间。当模型判断图像是猫,越有把握 p, 猫的值越接近一,其损失值越接近零。相反,当模型判断它是猫的概率越小,它的损失值越大, 这与损失函数的训练目标是一致的,并且其损失函数的一阶倒数绝对值也会随着误差的增加而增大。 这一点可以让模型在训练中根据梯度下降原理更快收敛。关于梯度下降的相关内容,大家可以观看数字到第五集,走进神经 网络模型及其学习的世界,拿起节目到这里卷机神经网络 cn 模型的深入剖析就告一段落了, 大家的点赞和转发投币能够帮助更多有需要的小伙伴观看到本期节目,最后感谢大家支持,让我们下期再见!

训练一个能够识别猫的模型涉及深度学习方法,特别是卷机神经网络 cnn。 以下是一个简单的步骤指南,以帮助您开始训练一个猫的识别模型。数据收集首先,您需要大量的包含猫的图像数据机, 这些图像应包括各种不同种类的猫,以确保模型的泛化能力。您可以在互联网上找到一些公开可用的猫图像数据集,也可以自己收集数据。为了训练一个准确的模型, 需要确保数据及包含足够多且多样化的猫的图片。数据预处理在准备数据时,您需要对收集到的数据进行预处理,这包括调整图像的大小,标准化像素值,对图像进行数据增强,如 随机旋转、裁剪和翻转缩放。皈依化以扩充训练数据集,便于模型训练。划分数据集将数据集分为训练集,验证集和测试集。 训练级用于训练模型,验证级用于调整超参数和监控模型性能。测试级用于最终评估模型性能。选择深度学习框架选择一个深度学习框架 来实现和训练您的模型。这些框架提供了丰富的工具和库来简化深度学习任务。构建模型构建一个卷机神经网络模型通常包括卷机层,石化层,全连接层和输出层。您可以选择使用已有的 架构,如 bgg, raisenet 或自定义设计定义损失函数。选择适当的损失函数来衡量模型的性能。 对于图像分类问题,常用的损失函数是交叉伤损失。选择优化器。选择一个优化算法,如随机梯度下降, sgd 画等。 用于调整模型权重以减小损失函数。模型训练,使用训练级的图像数据来训练模型,通过反向传播和优化器来不断更新模型的权重。在训练期间监控模型在验证级上的性能 以及损失函数的下降情况,以确保模型正常训练。模型评估,使用测试级的图像数据来评估模型的性能,计算模型的 准确率、精确度、召回率等性能指标。调整超参数,根据模型性能可能需要,调整模型的架构、学习率、批量大小等超参数来改善性能。部署模型,一旦您满意模型的性能, 您可以将其部署到实际应用中,用于识别猫的图像。例如,作为一个猫识别器的 api 接口,供用户上传图片并识别是否包含猫。下期我们开始学习如何进行数据标注。

卷机神经网络用常见的节点线段涂模型来表示,是这个样子。左边是输入层,可以是文字、语音、图像、视频等各种数字化信号。最右边是输出层,一般是分类的类别及其概率。 比如我们要识别车型,那输入就是车子的图片,输出就是奔驰、宝马、奥迪等品牌的概率。其内部蕴含着三种不同的网络层, 卷机层、磁化层和全连接层。多个卷机加磁化结构层层连接就是卷机神经网络最重要的特点了。别被这些不明觉理的术语吓到,一会咱就用人话。

因为之前其实上一次我们提到了我们这个模型训练工具的一些实践啊,之前的话应该是讲到了,就是我们怎么用我们的这些工具,对吧?我们就构建一个简单的神经网络。 ok, 那接下来的话我们就也会继续做做一个实践,因为按照我们整个这个脉络,对吧?我们最开始是简单的这个神经网络,那这个神经网络就是只有一个隐藏,有这个输入和输出和一个隐藏这种单隐词呢?神经网络, 那实际我们在那个真正的实际应用中的话,其实这种单隐存的这种神经网络是比较少的,现在都是多隐多层的隐存的这个神经网络啊,那比较两个代表典型代表一一个就是啊。恩恩,对吧?一个叫 cn 啊,这就是我们那个 两个比较有有代表的一个神神经网络,把颜色调一下,红色, ok, 就是我们一个是 r n n, 对吧? r n n 是这个循环神经网络,那这个 c n n 的话是个卷机神经网络,那其实这个都是多隐存的一个模式。那今天我们可能重点去呃分享,就是我们这个 c n n 啊,因为 c n n 的话,呃,它是在呃, 尤其是这个图形图像处理啊,比如说我们的这个欧三啊,包括我们这个物体检测、边缘检测,那这些里面的话是非常重要的一个基础,基础型的这个, 呃一个网络模型啊,非常的重要。 ok, 那我们还是从这个数学的角度去看一下,就是我们整个 个一个卷机神器网络的话,其实它是有不同分的组成,对吧?首先这个是卷机层层,那卷机层的话本质就是一些矩阵运算, 就是我们去一个输入的这些图像的一些位置啊,包括他的坐标,对吧?啊?包括他的颜色啊,比起的这个颜色,我们是把这些图像的话通过一些小的这种矩阵,这个矩阵的话就是我们的卷级,对吧?他可能是三十三或者是六十六,那 不同这个大小的卷积于提取他这个特征啊,提取他图像的特征,所以他有会有这个卷积层,对吧?那第二个就是说成本是你忘了都会有的这个激活函数啊。而磁化层的话主要是对他做一些降维的一些操作, 由于我们对特征的一些合并或特征的日益降维,我们可以提前去关注他的人,这个是通过这个磁化层去做啊,那这个的 怕是损失函数了。还有这个梯度下降,因为这个都是神经网络必有必备的两个点啊。那么看一下,我们举个例子,嗯,比如我们举的例子,我们怎么去举例的话,我们就看一看我们的这个 cn 的 vc 幺六,如果 cnvc 幺六的话,一个视频,一个比较典型的这个转接神经网络 啊,这是左边的话,我们是输入的这个图像,就是我们的这个猫啊,那猫的话这是一张图片,对吧?我们图片的话,它其实同 igb 这个呃,我们可以把它转成 igb 它这样一个像素空间的理解, 因为他有他的位置信息,有他的这个像素点的信息, ok, 那那目前这个呃,我们在这个呃,这个地方微信交流的话,我们是,对吧?我们是李建成,就是二二二四、神二四的这样一个,呃,这样一个,呃这个长和宽, 我们处处理这个图像的这个长和宽的话就是这样一个纸,那这个的话是白色部分是我们的这个卷基层,嗯,这个的话是我们的整个,呃,铺领就是磁化层啊,这个就是对应的那个 vgt 的这个结果,你会发现他是通过多个这个卷基层去 呃去处理啊,就是他去提取不同的恒仁和蒜子啊,然后最终的话形成嗯,到这这样一个啊,矩阵啊,这个矩阵的话最终的话再走这个全连接层啊,然后最终做一个输出啊。这是我们拿回幺六的举的一个例子, 就我们整个这个 cnn 的话,这个网络是怎么去组成的, ok, 呃,那我们还是因为这部分的话,我们下次会分享。 am, 今天就是我们继续到我们的这个实践部分,就是我们实际上我们这样一起看一下怎么去勾践,对吧?我们可以举一些例子,那比如我们现在就举一个例子啊,那这个我们是提前做好的一个啊,声音的一个模型, ok, 那我们看一下我们的这个模型,对吧?我们可以 呃用也是拍拓去的方式,我们去加载,对吧? m n、 s t 这个标准数据集合,我们这个数据是提前下载的,然后我们去拉取这个图像的这个,呃,这些图片,那这个其实这个分类图片它包含了一些标准的这种尺寸的大小和它的这个分类啊, 那我们去, ok, 我们把它建立这个图片以后,也是通过这个拍拖器的 detail。 no, 那啊去加载它这个训练数据,然后接下来的话我们会设定这个定义,损失函数啊,包, 我们的这个优化器会指定,对吧?那我们就可以进行训练了,先把这个之前的这个模型删掉,避免大家呃一一页错, 那我们就在训练,嗯, ok, 这就是我们在分批的,从我们拍拖去的这种能力,我们去训练我们的队的这个啊,卷肌模型, ok, 咱们在这个训练的时间,我们再看一下这 model 的定义啊。啊,那这是我们目前训练的这个网络,对吧?它包含了一些 卷集,两个卷集层啊,还有这个,呃,季后函数啊,一二用,对吧?也包括包括这个全零阶层,那我们也会有一些磁化层做的处理啊,所以说这个我们之前的这个描述也是。呃,网络结构也是一样的啊,就他在不同的,刚才我们提到了, 就是我们在这是通过不同的,对吧?注意组成,组成我们的整个这个 c n n 啊,那算这个和和这个可以就可能匹配上,但是我们可以去添加,对吧?我们可以增加这种层数或者参数啊,那我们就这就是个最简单的这样一个网络 啊,那 transformer 的话,主要是对这个图线的变换啊,我们这个变换的能力啊,那这个 transformer 主要是指呢那个托托气微循的这个 transformer 啊, 你看我们现在就训练到第十轮了,对吧?嗯,那我们训练十轮以后的话,那训练十轮以后, ok, 嗯,现在到训练到第七轮 来,我们继续训练啊,这个会稍微慢一点,因为我们本地是 cpu 在跑。嗯,这个当我们每天看这个模型的结构,第九轮,好,马上就要,呃,跑完了,第十轮, 嗯,好, ok, 那跑完了以后是不是我们就形成了刚才这个文件,对吧?我们这个文件刚才删掉了,这个是新增成的一个文件, 那我们再来验证一下,对吧?我们去验证一下,嗯,那我们去加载这个对应的这个 model 啊,这个 model 就先基于我们这个网络,对吧?我们简单的网络的形成一个 model, 比如我们去 run 这个 project, ok, 嗯,这里的话我们做一个,我去这里面有一个这个图像这个分类,对吧?我们去读取的这个标签,那这个也我们可以看 看这个数学级了啊? gmst, 对吧?他其实这样是一个分类的数学级,那这里面他有各种各样的这种标准的这种图像的这个像素啊,包括他的也有他的这个大小,还有这些, 然后这,这还有一个标准分类的标签啊。那些我们用这个标标准题的好处的话,就是我们可以去的,大家可以去复现,我们可以按照这个视频里面东西,我们去自己去搭建一个。 那就让我们比如说把这个对应的这个训测试结我们拿出来 provio 的话,我们就会拿到这里面去,对吧?做预测,那我们看一下我们预测的一个情况,对吧?那这是我们预测的一个吞锁, 就是,呃,有拍透气的话,是这个张亮嘛?就是他把所有的东西都把它封装到这个吞挫里面,那这个吞挫的话没有预测这个分类啊?你刚才一看到的话,他是不同的速度就代表不同, 那分类啊?他有十个图像分类啊。 ok, 那那完了以后的话呢?就是进入意思的 result, 那么看看整个这个模型的一个参数情况,我们打印了整个这个模型的参数,那我们模型二万一千八十个 啊,八百四十个参数,对吧?我们整个每一个层它的位的啊,就是这个权重,对吧?那卷一层的这个 boss 偏向值啊,是什么样的啊?这是很卷件啊,这是连接层,全连接层的这些一个一参数配置。 ok 啊,那就这就是我们的整个一个简单的演示,那通过今天的演示的话,大家其实会会哎,有一个了解,对吧?我们对整个神经网络,对吧?那在普通的神经网络的话,它更是单层的影层,那对着 cnn 来讲或者 rn 来讲的话,它其实里面的结构会比较复, 那本质上 lm 也是一个神经网络类型,之后它是超大的规模的这种参数的这个神经网络类型,那后续的话我们会呃做一次呃分享,在这个分享用 lm 本身比较复杂,所以我们只会做一些代码的介绍,就不会去撞了。好,谢谢大家。

他的思想其实非常简单,你们点的 r c n n 来了, r c n 呢,是在目标检测任务里面一定会看到的一个模型,一开始的时候呢,人们在对于目标检测的问题里面的解决思路就是我在一张图片当中去剪出很多的小图片,每一张图片就当做一个图像分类任务来去处理就好了。 那么在之前人们会盲选图片,比如说我按照一定的不长,按照一定的窗口大小,就在图片当中去剪,剪出很多图片。为了能够找到更精准的图片,当中的这些目标和对象 会选用不同的布长,会选用不同的目标窗口,所以在一张图片进行目标检测的时候,会剪裁出来大量的字图,再去丢到 cn 啊一个图像分类的 网络里边,然后去看看他识别出来是一个什么类别。 rcn 的思路就是说我不要盲选了,我先有一个策略,能够在你选择这个小窗口的过程当中 精准一点,所以呢,他又有了一个策略。然后呢,在这个策略的作用之下呢,在一张图片当中选出大小不一,形状不一的两千个字图,然后每一个字图都丢到这个卷机神经网络里边,进行一个图像分类任务, 获得它的类别。在这用的图像分类的模型就是 alex night, 所以在最后输出的时候呢,就是 alex night 最后所输出的那个四千零九十六长度的一个向量, 来代表这个图像所获取过出来的一些特征值,然后再把这四千零九十六的长度的这个向量呢往后去做一两个分 知,一个呢来看一看他是什么类别?一个呢?来去,呃,对于他所对应的剪出来的这个框的位置来进行一个调整,在这个过程当中每一个步骤都是可以去单独优化的, 比如说我们怎么能够选出这两千个子图?比如说我们在啊后面进行分类,以及呢再去对于这个图片子图的框的位置进行调整的过程当中,都 都可以怎么去进行优化?这些都可以逐个再展开。好,是不是很简单呀?下课唐老师学 ai 入门如此简单。

大家好,我是简简单单做算法,今天我们介绍基于深度学习网络的蔬菜水果种类识别系统。 首先我们将当前文件夹设置为程序所在路径。这里我提供了一个非常丰富的蔬菜水果训练库,苹果、香蕉、蔬菜等各种常见瓜果都有。 然后我们将当前文件的设置为程序所在路径。我们打开训练模块,训练模块我们将这个数据库分为零点八,零点一,零点一, 其中百分之八十是训练数据,百分之十是验证数据,百分之十是测试数据。我首先对该系统进行训练,点击运行, 这里注意一下,我这里单独放了一个 google net 的 mat 文件,因为部分 matlab 用户它无法安装深度学习工具箱,那么这个时候如果直接调用 google net 网络会报错, 所以我放了一个 goodnight 的初始网络,那么调用这个初始网络在进行训练,这样即使你没有安装这个工具箱,我们也能运行这个程序。 现在开始运行,我们这里总共运行两千五百次,采用单 gpu 训练,学习率是零点零零一,一共二十轮,每轮一百二十五次。这里我们稍微耐心等待一 下,这个蓝色线条就是他的训练级,就是百分之八十训练级的一个识别率。这个黑色线条是他的验证级的一个识别率。整个训练过程大概十分钟左右,我们稍微等一下, 我们看到现在经过将近一千轮训练之后,他的识别率已经快接近百分之八十了,现在在百分之七十左右 训练结束,最终识别率是百分之七十七。下面我们打开第二个程序进行测试,对验证级和测试级同时进行测试,随机选择十六张图片, 可以看到他最后的识别结果是这样的, 大部分都能正确识别, 演示完毕,谢谢大家。

今天给大家介绍一下基于这一个转机神经网络以及 d o i b 的一个笑脸识别,那么这实现了一个单人和一个多人的 图像中的笑脸识别。先给大家呃是看一下他的一个效果吧。首先是对于我们的这一个单人的,他主要是识嗯识别中的图像中的人脸是否微笑,然后给他打上一个 smile 的标签,就是利用我们 已经生成好的一个模型,然后是加这模型是指这一部分,然后加载我们需要识别的一个图片,那么图片的话我们都统一把它放在了这里面, 这个文件夹就是我们 需要识别的一个图片。那么这里的话可以哎看一下他识别的图片的话是一个多姿态的,是包括了一个正脸和他的一个侧脸。那么后面的多人的话就是场景会相对来说更加复杂一点点。 我们先来看一下我们的单人的先运行。我们这个幺零五是图片的一个名字, 这可以看到这里的话就是比较简单的一个识别,没有任何的呃的标记,就是简简简简单单的说明了他是否微笑以及结果。那么我们再换一下其他的图片来测试一下,比如说我们这个六十二或者六十一, 这个六十一嗯二的话是很明显的是识别出了他是一个微小的一个情况。那么这下面的话就是他经过我们这个转接神经网络返回的一个概率,就是一个比例。经过规划之后,我们这里确定的范围是零点五,如果说他返回的一个比 呃概率大于零点五的话,那么我们就确定它是一个非笑脸的情况,如果说相反是小于零点五,就是一个笑脸的情况。然后这就是它的一个简单的一个效果。对于单人的那么多人的话, 我们来看一下多文的效果。比如说我们现在测试一下我们这个 test 三,就是我们这一个图片,那么可以看看一下,就是简单的是左边的这一个是微笑不明显或者说不微笑的,而右边的这两个的话就是相对来说微笑比较明显的。 这里的话我们就对它进行一个人脸的框选。人脸的框选就是利用到了我们这个 d o i b 的六十八点的一个人脸识别。我们来看一下 这里的话就是检测到了三个人脸,然后对这三个人 脸进行一个笑脸识别。那么我们可以看到就是左边的这一个不明显笑脸,然后他就给他打上了一个 onsmile 的标签,然后右边这一个分别是 smilesmile。 那么这就实现了一个多脸的一多人脸的一个人脸识别的一个效果。 那么我们呃可以看一下它的一个整个的代代码结构,仍然是调用了我们的刚才一个生成的模型,然后以及我们这个 d o i b 它的一个六十八年人脸检测。然后它它划分人脸的框架的标准是什么呢? 就是根据我们返回到六十八年人脸的标准,然后获取他的一个左边,就是左边,右边以及我们这个下边上边这四个点,然后对他进行一个绘制矩形框,然后再在我们的这一个 最顶部的一个点的一个减五个像素的位置,给它标记上我们的这一个文字 onsmile 以及我们这个 smile 的标签。那么大家可以看一下呃,这一串的话就是对它进行一个人脸的识别 以及识别结果的一个打上标签,然后这里是如果有人脸的话,那么我们就对他进行一个人脸的框选。 然后这边的话就是获取图片的位置,以及将我们的一个识别结果另存,另存为我们的一个名字,比如说这里现在我们另存为是这个呃零点一,那我们看一下这个结果, 这个零点一, 那这就是我们的一个结果,发现已经存在这里来了。然后我们来看一下整个的一个呃模型训练, 模型训练的话是嗯,用到了我们的这个剪辑神经网络。这里的话就是用到了四层,先分别把它啊从五百一十二变到我们的呃,降到我们的这个一百二十八,一百二十八降到我们的这个六十四,再降到我们的这个三十二。 这是他的一个转机神经网络的一个架构。然后我还规定了他的一个什么激活函数之类的,用到了两种激活环函数,一种是这一个激活函数哦,然后这是用来最后一层转机网络所用到的。然后前面的 这种的激活函数的话就是用到了这一种对于我们的这一个呃数据集的话,数据集我们选用的是 g n i 四 k 里面的一个效应的一个数据集。 为了实现我们的一个多人脸的检测,就是有明显的侧脸效果以及我们这个正脸效果。那么在这里的话我就是嗯,人工筛选呢,大概是一百二十八的一,一百二十八张的正脸和侧脸的一个照片。然后把它放在我们的这个训练数据集里面,就是我们这个 files 二里面。 这是我们的训练数据集以及我们的这个测量嗯,以及我们的验证数据集。我们来看一下他的一个呃总的一个数据集 g n i 四 k。 然后大概是在这里面,它就是包含了我们这个四千张的一个四千张笑脸和 非笑脸的一个图片,好复合,适合我们这个复杂场景下的一个笑脸识别。然后他的一些标签的话就是对他实现了一些标记,然后以便于我们后续的网络训练。 我们要实现我们该该部分的一个神嗯,卷接神经网络他的一个模型。训练的话,首先我们要对这四千张让图片进行一个划分,然后包括他的一个训练级以及他的一个测试级的一个选取。这里的话我的选择比例的话大概是九比一。 然后这就然后把它分别拆分到我们的两个文件夹里面,就是我们的 test 里面是 smell 以及 onsmill 以及我们的这个验证集里面和我们的这个训练都是欧式 onsmile 以及 smile 的标签里面。然后这 这次首先进行一个数据划分,以及我们的创建了我们的这个网络。创建网络之后的话,我们就是呃需要选择我们的这个优化的一个迭代器。这里的话就是我们选择了他的一个呃, 优化器的话是这一个 rms pro。 然后我们的一个混小矩阵的话是我们的这个准确率,嗯, acc 好,这是规定了我们这个模型的一些参数。然后接下来的话就是选择我们的这个训练级以及他的一个验证级的一个位置, 是 feels 二里面的一个确认以及以及验证。然后首先因为我们的图片的话,虽然说有四千张足够我们训练,但是排除掉一些也没有用的图片,以及我们需要我们的这个效果更加的好的话,可能会对我们的这个图片进 行因规矩化的处理,以及进行一个数据加强的部分。然后这是把我们的这个二五五的一个像素归一到我们的这个零到一呃零到一之间,然后以便于我们后续的返回我们的概率。好,这个就是进行我们的这个规划。 然后这就是对我们的这一个数据进行处理,将它转化为我们网络能够处理的一些数据。比如说这里是规定了我们的一个数据输入, 然后后面的话是压缩我们的这个数据尺寸,然后是白色子。就是选择我们批量处理的一个图片的一个数量,然后验证机也是对他进行同样的处理。 这里的话就是对它进行一个迭代,这部分 history 就是定型一个迭代,然后循环训练也保证我们的这个性能最优。然后这里的话就是需要注意点的就是它这个每部 移动的一个呃尺寸,以及我们的总的总的循环次,嗯,次数的话,我们这里定的是五十次。然后它的一个 包括我们的这个训练级的一个循环尺寸,以及我们这个测试级的一个训练尺寸。我们应该注意的是他的一个这个数字与我们的这个提供的训练图片是息息相关的。 比如说我们的这个呃每次处理的是三十二张图片,那么我们会处理大概是五十九次,那么我们所需要的一个训练的图片就是我们这个三十二乘以五十九。 好以上的话就是对我们的这个模型进行一下迭代以及我们的这个训练。然后最后的话就是将我们这个模型保存下来,就是保存到我们的这一个 h 五文件与便于我们这个后续的调用,包括我们后面两个单单人脸的识别以及多人脸的识别 也都是调用了我们的这一个 h 五的一个模型。完了之后的话就是我们训练完之后把它的一个准确率以及损失率的图像进行画出来, 然后形成的结果的话就是训练次数比较长。然后我就简单的呃把呃把之前的图片保存下来了,就是大概是这两张大概叠带了五十次。可以看到他的一个迭代次数的话,就是 随着我们的这呃它的一个准确率随着我们的这个迭代次数而不断的进行增强,然后它的一个损失率也逐渐进行降低,达到了我们所要求的十二负二次方的一个概率。 然后这边的话就是对他进行一个画图,这就是我们整个模型训练的一个流程。然后这里的话是单人脸,刚才已经给大家展示 过,以及这里的多人脸单人脸,因为我们这个呃已经补充了很多的侧脸的微笑和不微笑,所以说它比较适用于复合场景下的一些人。呃笑脸识别, 从而返回我们的一个结果。我们可以看的是,其实我们这个多人脸的识别,他也能够返回我们的一个单人脸进行处理。 但他有一个问题就是因为我们需要进行人脸的一个框选,所以说他只有在我们的这个图片当中检测到了我们这个人脸,才会进行一个呃预测。如果说检测不到人脸的话,他无法绘制我们这个框架,所以说他是不能进行预测的。 现那现在我们用我们这个多人脸来进行我们这个单人脸的一个测试,如果说我们把我们的这个标签改为我们的这一个 里面的这一个一百零六,或者说我们的这个一百一十七,这是经过我测试是可以实现的。把它 好,我们运行一下我们的这一个文件, 那这结果已经出来了,可以实现对他的一个侧脸的一个呃笑微笑和不微笑进行一个判别。嗯,其实的话, 嗯,相对来说,你如果说正脸能够很有效的啊,侧脸能够有很有效的识别的话,其实对于正脸的话是更加简 简单的更。嗯,对于正脸的话,我们就随便拿一张,他的识别效果其实会比我们的这个侧脸更加的高。比如说我们随便拿一张这个正脸 把放到我们的这里面来, 我们可以测测一下,其实它 这个模型的主要优势就是能够针对于我们的这个侧脸也能够很好的进行识别,这是现在所有的一个模型所不具备的。看到没?这里就很明显进行了我们的一个 笑脸的一个识别,是速度还是很快的。那我们最后再测一下一个呃正脸的一个,侧脸的一个微笑。刚才 我们是测了这张不微笑的,然后我们可以测一下这个六十二的, 最后再运行一下。 所以说对于我们这个虽然说他的一个这个代码是可以用来我们这个多人脸检测的,其实他对于我们这个单人脸也是也是能够进行一个很好的检测的。 我们可以看到这里的结果已经出来了,发现他也是一个很明显的一个啊,侧脸微笑的一个结果哦。那整个的代码的一个结构和他的运行效果的话,就大概是长这样子。

cnn、 rnn 和 transformer 是深度学习的三大模型。 cnn 是一种卷机神经网络,它的基本结构是由多个卷机层和磁化层组成的。 剪辑层可以提取图像中的局部特征,而磁化层可以减少特征的数量,提高介绍的效率。 cnn 的这种结构使得它非常适合计算机视觉任务,例如图像分类和物体检测等。 rnn 是一种循环识别网络,它的基本结构是一个循环题,可以处理序列数据。 rnn 的特点是能够在处理 当前输入的同时记住前面的信息。这种结构使得 r, n, n 非常适合用于自然语言处理和语音识别等任务,因为这些任务需要处理具有持续关系的数据。 transformer 是一种基于自注意力机制的 英沃洛模型,它的基本结构是由多个编码器和解码器组成。编码器可以将输入序列转为向量表示,而解码器可以将向量转换回输出序列。 transformer 最大的创新之处在于引入自注意力极致,使得模型可以更好的捕捉序列中的长距离依赖关系。 transformer 在自然语言处理领域取得了巨大的成功,例如机器翻译和文本生成等任务。