Matlab和Python环境下的深度学习小项目
算法程序*行环境为python,可以选择Jupyter Notebook和py文件*行,深度学习模块为keras和tensorflow。采用如下方法进行齿轮故障识别:(1)CNN+Fully;(2)CNN+SVM linear;(3)CNN+SVM linear
算法程序讲解如何使用深度学习网络对语音信号进行降噪,并比较了应用于同一任务的两种类型的网络:全连接和卷积网络。语音信号降噪的目的是去除语音信号中的噪声,同时提高语音的质量,本例主要讲解利用深度学习网络从语音信号中去除洗衣机的噪声。
有5千元能做什么小生意Matlab和Python环境下的深度学习小项目(第二篇)
matlab的机器学习练手小项目
该算法使用连续小波变换 (CWT) 和深度卷积神经网络 (CNN) 对人体心电图 (ECG) 信号进行分类,并进行特征可视化便于以后的深入分析。由于从头训练深度 CNN 的计算成本很高,并且需要大量的训练数据,在很多应用中并没有足够数量的训练数据可用,因此采用迁移学习方法GoogLeNet 对ECG波形的CWT时频谱图进行分类。
算法程序执行环境为Python,使用Keras深度学习模块,执行基于LSTM的NASA涡轮喷气发*机风扇的剩余使用寿命(remaining useful life,RUL)预测,Lookback=10。
有了这个数据集,我们还通过将原始数据输入 LSTM 来达到类似的精度。在更复杂的数据集中,原始数据可能本质上变化太大,模型无法从原始数据中学习鲁棒特征,您可能需要在使用 LSTM 之前诉诸特征提取。
此示例介绍了使用机器学习和深度学习技术执行雷达目标分类的工作流。尽管此示例使用合成数据进行训练和测试,但它可以轻松扩展以适应实际雷达返回。由于信号特性,小波技术被用于机器学习和CNN方法。
为了将 SqueezeNet 用于这个二元分类问题,我们需要修改几个层。首先,我们将 SqueezeNet 中的最后一个可学习层(第 ** 层)更改为具有与我们新类数相同的 1×1 卷积数 2。
辅助函数获取每个雷达回波的CWT,重塑CWT以与SqueezeNet兼容,并将CWT写入jpeg文件。要*行 ,请选择您具有写入权限的位置。此示例使用 ,但您可以使用计算机上您具有写入权限的任何文件夹。帮助程序函数在 和 下创建和设置文件夹,在 和 下创建和子文件夹。这些文件夹填充了 jpeg 图像,用作 SqueezeNet 的输入。
由于瞬态在确定目标返回是来自圆柱目标还是锥形目标方面具有明显的重要性,因此我们选择CWT作为要使用的理想TFR。在获得每个目标回波的CWT后,我们从每个雷达回波的CWT制作图像。这些图像被调整为与SqueezeNet的输入层兼容,我们利用SqueezeNet对生成的图像进行分类。
很明显,前面显示的雷达回波的特点是变化变慢,如前所述,瞬态大幅减少。小波变换非常适合稀疏地表示此类信号。小波收缩以定位具有高时间分辨率的瞬态现象,并拉伸以捕获缓慢变化的信号结构。获取并绘制其中一个圆柱回波的连续小波变换。
SqueezeNet旨在区分图像差异并对结果进行分类。因此,为了使用SqueezeNet对雷达回波进行分类,我们必须将一维雷达回波时间序列转换为图像。执行此操作的常用方法是使用时频表示 (TFR)。信号的时频表示有多种选择,哪一种最合适取决于信号特性。要确定哪种 TFR 可能适合此问题,请随机选择并绘制每个类别的一些雷达回波。
挤压网由*8层组成。与所有DCNN一样,SqueezeNet级联卷积*算符,然后是非线性和池化或平均。SqueezeNet 需要大小为 227 x 227 x 3 的图像输入,您可以通过以下代码看到。此外,SqueezeNet 配置为识别 1,000 个不同的类,您可以通过以下代码看到这些类。
SqueezeNet 是一个深度卷积神经网络 (CNN),用于 ImageNet 大规模视觉识别挑战赛 (ILSVRC) 中使用的 1,000 个类的图像。在这个例子中,我们重用预先训练的SqueezeNet来分类属于两类之一的雷达回波。
在小波时间散射网络中要指定的关键参数是时间不变的尺度、小波变换的数量以及每个小波滤波器组中每个倍频程的小波数量。在许多应用中,两个滤波器组的级联足以实现良好的性能。在这个例子中,我们用两个滤波器组构建了一个小波时间散射网络:第一个滤波器组中每倍频程 * 个小波,第二个滤波器组中每倍频程 2 个小波。不变性标度设置为701个样本,即数据的长度。
在小波散射特征提取器中,数据通过一系列小波变换、非线性和平均来传播,以产生时间序列的低方差表示。小波时间散射产生的信号表示对输入信号的变化不敏感,而不会牺牲类的可判别性。
锥体的返回可以类似地生成。为了创建训练集,对 5 个任意选择的圆柱半径重复上述过程。此外,对于每个半径,通过改变入射角来模拟 10 个**剖面,遵循 10 条随机生成的围绕视线的正弦曲线。每个**配置文件中有 701 个样本,因此有 701 x 50 个样本。对圆柱目标重复该过程,这将产生具有 701 个圆柱体和 100 个圆锥轮廓的 50 x 50 训练数据矩阵。在测试集中,我们使用 25 个圆柱体和 25 个锥体轮廓来创建 701 x 50 的训练集。由于计算时间较长,训练数据在下面预先计算并加载。
然后可以将该模式应用于反向散射雷达目标,以模拟从不同角度返回。下图显示了如何模拟一段时间内圆柱体的 100 次返回。假设下方的圆柱体**在孔视线周围引起小振*,因此,纵横角从一个样品到下一个样品发生变化。
目标分类是现代雷达系统的重要功能。此示例使用机器学习和深度学习对圆柱体和锥体的雷达回波进行分类。虽然此示例使用合成的I/Q样本,但工作流程适用于实际雷达回波。
此示例展示了如何使用机器学习和深度学习方法对雷达回波进行分类。机器学习方法使用小波散射特征提取与支持向量机相结合。此外,还说明了两种深度学习方法:使用SqueezeNet的迁移学习和长短期记忆(LSTM)递归神经网络。请注意,此示例中使用的数据集不需要高级技术,但描述了工作流,因为这些技术可以扩展到更复杂的问题。
擅长现代信号处理(改进小波分析系列,改进变分模态分解,改进经验小波变换,改进辛几何模态分解等等),改进机器学习,改进深度学习,机械故障诊断,改进时间序列分析(金融信号,心电信号,振*信号等)
相应地,第二个图显示网络只将文本中的部分短语理解为仙粉黛 (Zinfandel) 品种的特征,然而相比之下,短语“单宁重” (strong tannins) 和“樱桃” (cherry/cherries) 表现为特别不典型的特征。
我们可以看到,网络将许多短语理解为梅洛 (Merlot) 品种的典型特征,唯一的例外是“酒精含量高” (high alcohol content)。
(strNew = “Strong aromas of black cherry. Powerful taste with a high alcohol content. Rich flavor with strong tannins and a long finish. Vibrant flavors of cherries and a hint of pepper.”)
可以看到,网络已经学习到短语“口感丰富而微甜” (Rich and slightly sweet) 和“荔枝味” (notes of lychee) 是琼瑶浆 (Gewürztraminer) 品种的典型特征;相应地,短语“稻草色” (straw colored) 和“桃子香味” (Notes of peaches) 则是此品种不太典型的特征。
(strNew = “Slightly straw colored with a hint of greenness. Notes of peaches and nectarines. Rich and slightly sweet, intense notes of lychee. A soft finish with some sweetness.”)
对于图像分类问题,要可视化网络预测结果,可以取一张图像并删除其中一小块,衡量分类结果会变好还是变差,然后将结果叠加到图像上。
不过我觉得把卡瓦起泡酒 (Cava) 说成是起泡混酿 (sparkling blend) 无伤大雅,毕竟理论上讲,网络没有判断错。
sequencesNew = text2sequence(emb,str,sequenceLength);[YNewPred,scoresNew] = classify(caberNet,sequencesNew);
要使用网络对这些记录进行预测,需要先将文本转换为序列,步骤和训练时一样。使用 text2sequence 函数(文末有提供),可以将字符串数组转换为指定长度的词向量序列组成的表。
(“Strong aromas of blackcurrent and blueberries. A very big wine with high alcohol content. Intense flavour on the palate with a long finish. Vibrant flavors of black fruits and spices.”)
(“Deep ruby red in colour. Aromas of dark cherries, oak, and clove. Slightly smokey in taste with strong hints of blackberries and licorce.”)
(“Very light bodied wine and pale in colour. Aromas of strawberries and forest fruits. Slightly oaked with slight tannins. Vibrant taste of red cherries.”)
(“Deep golden colour. Strong aromas of toast and butter with strong hints of oak. On the palate, intense flavours of ripe banana and cooked apples.”)
(“Pale straw in colour with zesty citrus fruit on the nose. On the palate, intense gooseberry and crisp lime flavours with slight hints of oak.”)
(“Straw coloured with a slight hint of green. Notes of peaches and nectarines. Rich and slightly sweet, intense notes of lychee. Strong minerality with some sweetness.”)
(“A crisp, golden coloured, bubbly wine. On the nose, there are aromas of citrus fruits alongside ripe stone fruits. On the palete, vibrant notes of apple and creamy textures.”)
labelstest = tbl.variety;YTest = categorical(labelsTest,classNames);YPred = classify(caberNet,tdsTest,’MiniBatchSize’,miniBatchSize);
numIterationsPerEpoch = floor(numObservationsTrain/miniBatchSize);
ttdsValidation = tabularTextDatastore(filenameValidation, …
transformTextData 函数使用从 tabularTextDatastore 对象读取的数据作为输入20左右可以做的小生意,返回一个预测变量和响应组成的表。
[classCounts,classNames] = histcounts(data.variety);[~,idx] = maxk(classCounts,numClasses);
如果评价的葡萄品种不属于数据中前 200 个品种之一,则删除相关评价。(如果在前 200 个可选项中都找不到喜欢的葡萄酒,那 MATLAB 可能也帮不了你了 ┓( ´∀` )┏。)
在本例中,我们将使用宽度可变的一维卷积过滤器训练一个网络。每个过滤器的宽度对应过滤器可检测到的词数(n 元分词长度)。该网络有多个卷积层分支,因此可使用不同的 n 元分词长度。
首先是创建一个 tabularTextDatastore 对象,然后使用自定义变换函数作为输入调用 transform 函数,将 tabularTextDatastore 对象中读取的数据转换为图像,以进行深度学习。
为了将 CSV 格式的文本数据转换为图像,我使用了一个名为 transformTextData 的辅助函数(文末有提供)。
专题:
农村创业难
农村在创业
创业的农村