哪里可以学深度学习的课程?

2020-07-29 09:16发布

2条回答
卡卡
2楼 · 2020-07-29 22:21


学完吴恩达全部深度学习课程,这有一份课程解读作者:RyanShrott来源:机器之心本文长度为2500字,建议阅读5分钟本文作者是加拿大国家银行首席分析师RyanShrott,完成了迄今为止(2017年10月25日)吴恩达在Coursera上发布的所有深度学习课程,并为我们提供了课程解读。目前Coursera上可用的课程中,有三门课非常值得关注:1.神经网络与深度学习(NeuralNetworksandDeepLearning)2.改进深度神经网络:调整超参数、正则化与优化(ImprovingDeepNeuralNetworks:Hyperparamatertuning,RegularizationandOptimization)3.结构化机器学习项目(StructuringMachineLearningProjects)我发现这三门课非常重要,过程当中,我们可以从吴恩达教授那里获得很多有用的知识。吴恩达在教学语言上做得很好,解释概念清晰明了。例如,吴恩达明确指出监督学习并没有超出多维曲线拟合过程的范畴,而对于这种方法的其他理解方式,如对人类神经系统的模拟,实际上并不严谨。学习这些课程的基础知识要求不多,只要求你事先掌握一些线性代数,以及Python基础编程知识。在我看来,你也需要了解向量计算来理解优化过程的内在知识。但如果你不关心内部运作方式,并只希望了解高级层面上的内容,那就尽管跳过微积分的部分。第1课:为什么深度学习如此热门?现在人类产生的90%数据是在最近2年内被收集的。深度神经网络(DNN)能够利用体量巨大的数据。因此,DNN超越了较小的网络和传统学习算法。规模是如何推动DNN性能的此外,算法上的创新也使得DNN的训练速度变得更快。例如,从Sigmoid激活函数改为RELU激活函数对梯度下降等任务的优化过程产生了巨大影响。这些算法的改进使得研究人员可以更快地遍历灵感→代码→经验的开发循环,从而带来更多的创新。深度学习开发循环第2课:深度学习中的向量化在开始这门课之前,我并不知道神经网络可以在没有任何明确循环语句的情况下被实现(除了层之间的)。吴恩达点明了Python中向量化编程设计的重要性。课程附带的作业引导你进行向量化的编程,同时这些方法也可以很快迁移到你自己的项目中。第3课:深入了解DNN前几门课实际上在引导你使用NumPy从头开始实现前向和反向传播。通过这种方法,我更加深入了解了高级深度学习框架(如TensorFlow和Keras)的工作原理。吴恩达解释了计算图背后的想法,从而让我们了解了TensorFlow如何实现「神奇优化」的。第4课:为什么需要深度?在这一节中,吴恩达深入解释了DNN的层概念。例如,对于面部识别系统,他向我们解释了先处理的层是用于处理面部边界的,其后的层用于将这些边界识别为面部组件(如鼻子、眼睛、嘴等),再其后的层会将这些组件整合到一起识别人的身份。他还解释了电路理论(circuittheory)的思想——存在一个函数,需要来自隐藏单元指数式的数字来适应浅网络的数据。可以通过添加有限数量的附加层来简化指数问题。第5课:处理偏差和方差的工具吴恩达解释了研究者识别和处理偏差方差相关问题的步骤。下图诠释了一种解决这些问题的系统性方法。解决偏差和方差问题的方法他还解决了偏差和方差之间的「权衡」(tradeoff)。他认为在现在这个深度学习的时代,我们拥有独立解决每个问题的工具,而使权衡不再存在。第6课:正则化为什么向成本函数添加惩罚项会降低方差?在上这门课之前我的理解是它使权重矩阵接近于零,从而产生一个更「线性」的函数。吴恩达给出了另外一种和tanh激活函数相关的解释,即较小的权重矩阵生成较小的输出,使得输出围绕在tanh函数线性区域的中心。tanh激活函数他还给出了dropout的有趣解释。之前我认为dropout在每次迭代中消灭随机神经元,就像越小的网络线性程度就越强一样。但是吴恩达的解释是从单个神经元的角度来看待生命(life)。单个神经元的角度由于dropout随机消灭连接,这促使神经元向父系神经元中更加均匀地扩展权重。通过扩展权重,它可以减少权重的L2范数(squarednorm)。他还解释了dropout是L2正则化的自适应形式,两种方法效果相近。第7课:归一化为何有效?吴恩达展示了为什么归一化可以通过绘制等高线图的方式加速优化步骤。他详细讲解了在归一化和非归一化等高线图上进行梯度下降所需要的迭代次数变化,即相同优化算法没经过归一化操作会需要更多的迭代数。第8课:初始化的重要性吴恩达表示不使用参数初始化可能导致梯度消失或爆炸。他展示了多个步骤来解决这些问题。基本原则是确保每一层的权重矩阵的方差都近似为1。他还讨论了tanh激活函数的Xavier初始化。第9课:为什么使用小批量梯度下降?吴恩达使用等高线图解释了使用小批量和大批量训练之间的权衡。基本原则是较大的批量每次迭代会变慢,较小的批量可以加快迭代过程,但是无法保证同样的收敛效果。最佳方法就是在二者之间进行权衡,使得训练过程比一次性处理整个数据集要快,又能利用向量化技术的优势。第10课:高级优化技术的直观理解吴恩达解释了合适使用动量(momentum)和RMSprop等技术限制梯度下降逼近极小值的路径。他还用球滚下山的例子生动地解释了这一过程。他把这些方法结合起来来解释著名的Adam优化。第11课:基本的TensorFlow后端理解吴恩达不仅解释了如何使用TensorFlow实现神经网络,同时还讲解了在优化过程中出现的后端进程。有一个家庭作业就是鼓励我们使用TensorFlow实现dropout和L2正则化,这加强了我对后端过程的理解。第12课:正交化吴恩达还讨论了机器学习策略中正则化的重要性。其基本思想是,我们希望实现并控制影响算法性能的因素,即一次只控制一个影响性能的因素。例如为了解决偏差问题,我们可以使用更大的网络或更鲁棒的优化技术,我们希望这些控制只影响偏差而不会影响其它如泛化等问题。缺少正交化控制的案例是过早停止了算法的最优化过程,因为这样会同时影响模型的偏差和方差。第13课:单数值评估度量的重要性吴恩达强调了选择单数值评估度量(singlenumberevaluationmetric)的重要性,它可以允许我们评估算法。如果目标改变,我们应该在模型开发过程中仅更改评估度量。吴恩达给我们讲解了一个使用猫分类应用识别色情图片的案例。第14课:测试和开发集的分布通常我们会假设测试集与开发集(devsets)的分布相同,这就确保了我们在迭代过程中朝向正确的目标优化。这同样意味着如果你决定纠正测试集中错误的标注数据,那么你需要在开发集中纠正错误标注的数据。第15课:处理不同的训练和测试/开发分布吴恩达介绍了为什么我们对训练和测试/开发集没有相同的分布这一问题感兴趣。因为我们希望根据实际关心的样本来计算评估度量。例如我们可能希望使用和训练问题无关的的样本进行训练,但我们并不希望算法使用这些样本进行评估,这就令我们的算法可以在更多的数据上进行训练。经验上,这种方法可以在许多案例上产生非常好的效果。缺点是可能我们的训练和测试/开发集有不同的分布,这个问题的通常解决办法是,可以留出一小部分训练集,并确定训练集的泛化性能。然后我们可以比较这些误差率与实际的开发误差,并计算一个「数据误匹配」的度量标准。吴恩达还解释了解决这些数据误匹配问题的方法,例如人工数据合成。第16课:训练集/开发集/测试集大小在深度学习时代,训练集/开发集/测试集的分隔方法也发生了巨大的改变。之前,我只知道较普遍的60/20/20分隔。吴恩达强调,对于一个非常大的数据集,应该使用98/1/1甚至99/0.5/0.5的分隔。这是因为开发集合测试集只要足够大能保证模型处于团队设定的置信区间即可。如果你使用1千万个训练样本,那么10万样本(即数据集的1%)就足够保证开发集和/或测试集的置信区间了。第17课:近似贝叶斯最优误差吴恩达解释了在某些应用中人类级别的性能如何作为贝叶斯误差的替代。例如,在视觉和听觉识别任务中,人类级别的误差通常很接近贝叶斯误差,可以用于量化模型中可避免偏差。如果没有诸如贝叶斯误差这样的基准测试,理解网络中的方差和可避免的偏差问题是很困难的。第18课:误差分析吴恩达介绍了一种能显著提高算法性能的有效性的误差分析技术。基本想法是手工标注错误分类的样本,集中精力处理对错误分类数据影响最大的误差。猫识别App误差分析例如,在猫识别中吴恩达认为模糊的图像最容易导致误差。这种敏感性分析可以令人看到在降低总体误差的过程中,你花费的精力到底有多值得。还有一种可能是,修复模糊图像是很费力的任务,而其它的误差更容易理解和修复。敏感性分析和近似操作都将作为决策过程的因素。第19课:什么时候使用迁移学习?迁移学习允许将一个模型的知识迁移到另一个。例如,你可以将一个猫识别app中的图像识别知识迁移到放射诊断中去。实现迁移学习需要用更多的数据重训练网络的最后几个层,以用于相似的应用领域。其思想基础是网络的低层的隐藏单元拥有更加广阔的应用范围,即对具体的任务类型不敏感。总之,当任务之间拥有相同的输入特征,并且需要学习的任务拥有比需要训练的任务多得多的数据的时候,迁移学习是可行的。第20课:什么时候使用多任务学习?多任务学习迫使单个神经网络同时学习多个任务(和每一个任务都配置单独的神经网络相反)。吴恩达解释道,当任务集合通过共享低级特征获得学习增益,以及每一个任务的数据量规模相似的时候,这种方法能工作得很好。第21课:什么时候用端到端的深度学习?端到端的深度学习需要多层处理并将它们组合到单个神经网络中,这使得数据能在没有人工设计步骤引进偏差的前提下自主进行优化过程。另一方面,这个方法需要非常多的数据,有可能排除潜在的手工设计成分。结论:吴恩达的深度学习课程使我对深度学习模型的开发过程有了基本的直观理解,以上我解释过的课程只不过是这个课程中展示资料的一部分。即使完成了课程你也还不能称为深度学习专家,而我唯一的不满是课程的作业布置太简单了。原文链接:https://medium.com/towards-data-science/deep-learning-specialization-by-andrew-ng-21-lessons-learned-15ffaaef627c

大泽九章
3楼 · 2020-10-27 09:04


   

前言:

陆陆续续学完了吴恩达老师在网易云课堂上开设的深度学习工程师微专业的部分内容(01.神经网络与深度学习,04.卷积神经网络,02.改善深层神经网络),在进一步应用实践之前,对之前的学习的内容做个回顾。本篇文章即对第一个课程(神经网络和深度学习)共四周内容的学习心得。

在文章的开始放出本课程包含的五个部分:



进入正题,开始第一个课程NeuralNetworksandDeepLearning(神经网络和深度学习)的学习吧!

Part1.Whatisaneuralnetwork?

                ——直观解释何为神经网络

简单来说,深度学习(DeepLearning)就是更复杂的神经网络(NeuralNetwork)。那么,什么是神经网络呢?下面我们将通过Andrew讲的一个简单的例子来引入神经网络模型的概念。

假如我们要建立房价的预测模型,一共有八个房子。我们已知输入x即每个房子的面积(多少尺或者多少平方米),还知道其对应的输出y即每个房子的价格。根据这些输入输出,我们要建立一个函数模型,来预测房价:y=f(x)。首先,我们将已知的八间房子的价格和面积的关系绘制在二维平面上,如下图所示:


一般地,我们会一条直线来拟合图中这些离散点,即建立房价与面积的线性模型。但是从实际考虑,我们知道价格永远不会是负数。所以,我们对该直线做一点点修正,让它变成折线的形状,当面积小于某个值时,价格始终为零。如下图蓝色折线所示,就是我们建立的房价预测模型:



其实这个简单的模型(蓝色折线)就可以看成是一个神经网络,而且几乎是一个最简单的神经网络。我们把该房价预测用一个最简单的神经网络模型来表示,如下图所示:



该神经网络的输入x是房屋面积,输出y是房屋价格,中间包含了一个神经元(neuron),即房价预测函数(蓝色折线)。该神经元的功能就是实现函数f(x)的功能。

值得一提的是,上图神经元的预测函数(蓝色折线)在神经网络应用中比较常见。我们把这个函数称为ReLU函数,即线性修正单元(RectifiedLinearUnit),形如下图所示:



上面讲的只是由单个神经元(输入x仅仅是房屋面积一个因素)组成的神经网络,而通常一个大型的神经网络往往由许多神经元组成,就像通过乐高积木搭建复杂物体(例如火车)一样。

现在,我们把上面举的房价预测的例子变得复杂一些,而不是仅仅使用房屋面积一个判断因素。例如,除了考虑房屋面积(size)之外,我们还考虑卧室数目(#bedrooms)。这两点实际上与家庭成员的个数(familysize)有关。还有,房屋的邮政编码(zipcode/postalcode),代表了该房屋位置的交通便利性,是否需要步行还是开车?即决定了可步行性(walkability)。另外,还有可能邮政编码和地区财富水平(wealth)共同影响了房屋所在地区的学校质量(schoolquality)。如下图所示,该神经网络共有三个神经元,分别代表了familysize,walkability和schoolquality。每一个神经元都包含了一个ReLU函数(或者其它非线性函数)。那么,根据这个模型,我们可以根据房屋的面积和卧室个数来估计familysize,根据邮政编码来估计walkability,根据邮政编码和财富水平来估计schoolquality。最后,由familysize,walkability和schoolquality等这些人们比较关心的因素来预测最终的房屋价格。



所以,在这个例子中,x是size,#bedrooms,zipcode/postalcode和wealth这四个输入;y是房屋的预测价格。这个神经网络模型包含的神经元个数更多一些,相对之前的单个神经元的模型要更加复杂。那么,在建立一个表现良好的神经网络模型之后,在给定输入x时,就能得到比较好的输出y,即房屋的预测价格。

实际上,上面这个例子真正的神经网络模型结构如下所示。它有四个输入,分别是size,#bedrooms,zipcode和wealth。在给定这四个输入后,神经网络所做的就是输出房屋的预测价格y。图中,三个神经元所在的位置称之为中间层或者隐藏层(x所在的称之为输入层,y所在的称之为输出层),每个神经元与所有的输入x都有关联(直线相连)。



这就是基本的神经网络模型结构。在训练的过程中,只要有足够的输入x和输出y,就能训练出较好的神经网络模型,该模型在此类房价预测问题中,能够得到比较准确的结果。


Part2.SupervisedLearningwithNeuralNetworks

                ——用神经网络进行监督学习

目前为止,由神经网络模型创造的价值基本上都是基于监督式学习(SupervisedLearning)的。监督式学习与非监督式学习本质区别就是是否已知训练样本的输出y。在实际应用中,机器学习解决的大部分问题都属于监督式学习,神经网络模型也大都属于监督式学习。下面我们来看几个监督式学习在神经网络中应用的例子。

首先,第一个例子还是房屋价格预测。根据训练样本的输入x和输出y,训练神经网络模型,预测房价。第二个例子是线上广告,这是深度学习最广泛、最赚钱的应用之一。其中,输入x是广告和用户个人信息,输出y是用户是否对广告进行点击。神经网络模型经过训练,能够根据广告类型和用户信息对用户的点击行为进行预测,从而向用户提供用户自己可能感兴趣的广告。第三个例子是计算机视觉(computervision)。电脑视觉是近些年来越来越火的课题,而电脑视觉发展迅速的原因很大程度上是得益于深度学习。其中,输入x是图片像素值,输出是图片所属的不同类别。第四个例子是语音识别(speechrecognition)。深度学习可以将一段语音信号辨识为相应的文字信息。第五个例子是智能翻译,例如通过神经网络输入英文,然后直接输出中文。除此之外,第六个例子是自动驾驶。通过输入一张图片或者汽车雷达信息,神经网络通过训练来告诉你相应的路况信息并作出相应的决策。至此,神经网络配合监督式学习,其应用是非常广泛的。



我们应该知道,根据不同的问题和应用场合,应该使用不同类型的神经网络模型。例如上面介绍的几个例子中,对于一般的监督式学习(房价预测和线上广告问题),我们只要使用标准的神经网络模型就可以了。而对于图像识别处理问题,我们则要使用卷积神经网络(ConvolutionNeuralNetwork),即CNN。而对于处理类似语音这样的序列信号时,则要使用循环神经网络(RecurrentNeuralNetwork),即RNN。还有其它的例如自动驾驶这样的复杂问题则需要更加复杂的混合神经网络模型。

CNN和RNN是比较常用的神经网络模型。下图给出了StandardNN,ConvolutionalNN和RecurrentNN的神经网络结构图。



CNN一般处理图像问题,RNN一般处理语音信号。他们的结构是什么意思?如何实现CNN和RNN的结构?这些问题我们将在以后的课程中来深入分析并解决。

另外,数据类型一般分为两种:StructuredData(结构化数据)和UnstructuredData(非结构化数据)。




简单地说,结构化数据通常指的是有实际意义的数据。例如房价预测中的size,#bedrooms,price等;例如在线广告中的UserAge,AdID等。这些数据都具有实际的物理意义,比较容易理解。而非结构化数据通常指的是比较抽象的数据,例如Audio(音频),Image(图像)或者Text(文本)。以前,计算机对于非结构化数据比较难以处理,而人类对非结构化数据却能够处理的比较好,例如我们第一眼很容易就识别出一张图片里是否有猫,但对于计算机来说并不那么简单。现在,值得庆幸的是,由于深度学习和神经网络的发展,计算机在处理非结构化数据方面效果越来越好,甚至在某些方面优于人类。总的来说,神经网络与深度学习无论对结构化数据还是非结构化数据都能处理得越来越好,并逐渐创造出巨大的实用价值。我们在之后的学习和实际应用中也将会碰到许多结构化数据和非结构化数据。


Part3.WhyisDeepLearningtakingoff?

                ——为什么深度学习会兴起

如果说深度学习和神经网络背后的技术思想已经出现数十年了,那么为什么直到现在才开始发挥作用呢?接下来,我们来看一下深度学习背后的主要动力是什么,方便我们更好地理解并使用深度学习来解决更多问题。


深度学习为什么这么强大?下面我们用一张图来说明。如下图所示,横坐标x表示数据量(Amountofdata),纵坐标y表示机器学习模型的性能表现(Performance)。



上图共有4条曲线。其中,最底下的那条红色曲线代表了传统机器学习算法的表现,例如是SVM,logisticregression,decisiontree等。当数据量比较小的时候,传统学习模型的表现是比较好的。但是当数据量很大的时候,其表现很一般,性能基本趋于水平。红色曲线上面的那条黄色曲线代表了规模较小的神经网络模型(SmallNN)。它在数据量较大时候的性能优于传统的机器学习算法。黄色曲线上面的蓝色曲线代表了规模中等的神经网络模型(MediaNN),它在在数据量更大的时候的表现比SmallNN更好。最上面的那条绿色曲线代表更大规模的神经网络(LargeNN),即深度学习模型。从图中可以看到,在数据量很大的时候,它的表现仍然是最好的,而且基本上保持了较快上升的趋势。值得一提的是,近些年来,由于数字计算机的普及,人类进入了大数据时代,每时每分,互联网上的数据是海量的、庞大的。如何对大数据建立稳健准确的学习模型变得尤为重要。传统机器学习算法在数据量较大的时候,性能一般,很难再有提升。然而,深度学习模型由于网络复杂,对大数据的处理和分析非常有效。所以,近些年来,在处理海量数据和建立复杂准确的学习模型方面,深度学习有着非常不错的表现。然而,在数据量不大的时候,例如上图中左边区域,深度学习模型不一定优于传统机器学习算法,性能差异可能并不大。


所以说,现在深度学习如此强大的原因归结为三个因素:

Data(数据)Computation(运算能力)Algorithms(算法)

其中,数据量的几何级数增加,加上GPU出现、计算机运算能力的大大提升,使得深度学习能够应用得更加广泛。另外,算法上的创新和改进让深度学习的性能和速度也大大提升。举个算法改进的例子,之前神经网络神经元的激活函数是Sigmoid函数,后来改成了ReLU函数。之所以这样更改的原因是对于Sigmoid函数,在远离零点的位置,函数曲线非常平缓,其梯度趋于0,所以造成神经网络模型学习速度变得很慢。然而,ReLU函数在x大于零的区域,其梯度始终为1,尽管在x小于零的区域梯度为0,但是在实际应用中采用ReLU函数确实要比Sigmoid函数快很多。


Part4. 神经网络基础


  1. 二分类问题:

2.LogisticRegression:

在逻辑回归中,某一事件的预测值:


其表示为1的概率,取值范围在[0,1]之间。我们引入Sigmoid函数,预测值为:



3.Logistic回归的损失函数与代价函数:

一般经验来说,使用平方错误(squarederror)来衡量LossFunction:


但是,对于logisticregression来说,一般不适用平方错误来作为LossFunction,这是因为上面的平方错误损失函数一般是非凸函数(non-convex),其在使用低度下降算法的时候,容易得到局部最优解,而不是全局最优解。因此要选择凸函数作为损失函数:


我们的目标是最小化样本点的损失LossFunction,损失函数是针对单个样本点的。而全部训练数据集的Lossfunction总和的平均值即为训练集的代价函数(Costfunction):



我们的目标就是迭代计算出最佳的w和b的值,最小化Costfunction,让其尽可能地接近于0。

4.梯度下降:


我们采用梯度下降法(GradientDescent)来最小化代价函数Costfunction,以计算出合适的w和b的值。

每次迭代更新的修正表达式为:




5.Logistic回归中的梯度下降法:


6. m个样本的梯度下降:



相关问题推荐

  • 回答 20

    选对培训机构比较重要,还有就是选择的时候看一下自己适合哪种风格的讲课方式,这个也很重要。因为现在5G时代来临,人工智能绝对是一个发展的大趋势,如果你自己空余时间又比较多的话,其实可以报一个辅导班,学习学习一些基本的东西,毕竟多学点总是没有坏处...

  • 回答 3

    深度学习是近几年人工智能领域的主要研究方向。深度学习的主要任务是通过构建深度卷积神经网络(Deep Neural Network,DNN)和采用大量样本数据作为输入,人们最终会得到一个具有强大分析能力和识别能力的模型,该模型包含了DNN的构成参数以应用于实际工作。...

  • 回答 3

    AI深度学习课程是用于建立、模拟人脑进行分析学习的神经网络,并模仿人脑的机制来解释数据的一种机器学习技术,主要应用于图像识别、语音识别、自然语言处理等领域。学完可以从事深度学习工程师、机器学习工程师、人工智能工程师、高级算法工程师、高级算法工...

  • 回答 16

    算法,数据相关的适合做人工智能

  • 回答 28

    人工智能取代的行业,一定有如下几个特征:1、大量重复型。2、逻辑性比较强。3、数据库依赖型。像司机,咨询,教育,医生,会计,律师助理,工程师,码农等,都是容易被取代的行业。当然,这都是强人工智能以后会发生的事,现在还是弱人工智能的时代,想进入...

  • 回答 9

    如果你是自己学着玩,提升自己的话,高中毕业都可以。如果是冲着AI算法岗或者科研一席之地,至少211硕士。具体可以亲身体验一下今年算法岗秋招。

  • 回答 9

    可以,未来的人工智能发展深度学习必然是现在大型机器生产科研必备的,证书的话某个培训好像有这个中科院的证书,具体你去百度吧

  • 回答 8

    我觉得就是人工智能的课程,现在家具都是智能家居了。这一块发展一定很好

  • 回答 3

    对于sgd算法而言,batch size太大太小都不好,太小的话训练不稳定,计算效率低;太大的话收敛速度慢,需要仔细调节一下。以2的倍数调节,例如32,64,128等

  • 回答 1

    在terminal中输入$wolf@wolf:~/Downloads/gitclonehttps://github.com/Tencent/ncnn cd切换到NCNN目录***这步很重要,这时候需要修改ncnn的root目录下的CMakeLists.txt文件,需要将倒数几行的add_subdirectory(examples),取消注释,这样就是默认编译example...

  • 回答 5

    人工智能的话其实到现在来说已经慢慢趋于成熟,学的话首先是一线城市,学出来好就业,还有就是薪资也高

  • 回答 3

    画个train and test error VS 训练数据量(training set size) 的learningcurve应该会更加直观了。可以找个简单的数据集,比如说handwritten digits或者什么的,分别用神经网络和决策树或者knn做出这个learningcurve。你会看到如果用一个决策树去解决这个问题...

  • 回答 2

    共生矩阵用两个位置的象素的联合概率密度来定义,它不仅反映亮度的分布特性,也反映具有同样亮度或接近亮度的象素之间的位置分布特性,是有关图象亮度变化的二阶统计特征。它是定义一组纹理特征的基础。     一幅图象的灰度共生矩阵能反映出图象灰度关于...

没有解决我的问题,去提问