范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Matlab和Python环境下的深度学习小项目(第二篇)

  使用深度学习方法对脑部MRI进行年龄分类
  算法程序讲解如何应用迁移学习调整预训练深层神经网络 (ResNet-18),以对大脑 MRI 数据集进行年龄分类。数据集包含从 155 名研究参与者处获得的脑部MRI数据,为了使用2D图像数据预训练的轻量级深层网络模型 (ResNet-18) ,使用2D 轴向中间切片图像。共三个年龄组类别:3-5岁,7-12,18 岁以上。
  首先大致浏览下所使用的数据集
  读取数据集 %Read OpenNEURO Dataset  mriRootDataFolder = "ds000228-1.1.0-subset"; mriDataFolder = fullfile(mriRootDataFolder, "derivatives", "preprocessed_data");
  可视化3D Volumetric 数据 vol = niftiread(fullfile(mriDataFolder,"sub-pixar001","sub-pixar001_normed_anat.nii.gz")); mask = niftiread(fullfile(mriDataFolder,"sub-pixar001","sub-pixar001_analysis_mask.nii.gz")); vol = int16(vol) .* int16(mask); % Apply skull-stripping  numSlices = size(vol,3); imshow(vol(:,:,round(numSlices/2))); opengl hardware volshow(vol(:,:,1:round(numSlices/2)),"CameraViewAngle",7.5);
  读取受试者数据
  提取轴向切片示例
  加载预训练网络 netName = "resnet18"; net = resnet18();  netInputSize = net.Layers(1).InputSize; inputImageSize = netInputSize(1:2);  img = imread(fullfile(classifierDataFolder, "Adults", "image_033.png")); imgLabel = classify(net, imresize(img, inputImageSize)); % resize 2D brain image to match network"s input image size  figure("Position",[10 10 200 200]); imshow(img); title([netName " prediction: " char(imgLabel)]);
  测试结果的混淆矩阵
  通过Occlusion方法得到网络所学习到的一些重要特征(对应的高亮区域)
  此外,再继续可视化为两个年龄较大的类别
  Matlab环境下基于深度学习的心电信号(ECG信号)识别
  使用深度学习进行 ECG信号(心电信号)识别,所用MATLAB版本为R2021B
  首先导入ECG信号,并进行短时傅里叶变换和连续小波变换 close all clear all % load ecg signal  ecg =load("ecg.mat"); % Graphical Output % Time Signal %t = [0:length(ecg.data)-1]/ecg.fs; t = [0:length(ecg.ecg)-1]/500; plot(t,ecg.ecg) % Short Time Fourier Analysis -- Spectrogram pspectrum(ecg.ecg,500,"spectrogram") % Wavelet Analysis -- Scalogram cwt(ecg.ecg,[],500)
  所使用的ECG数据集分为3类:心律失常(ARR),充血性心力衰竭 (CHF) ,正常窦性心律(NSR),本项目的目标是使用短时傅里叶变换(STFT)和连续小波变换 (CWT) 以及深层卷积神经网络 (DCNN) 对人体心电图 (ECG) 信号进行分类。共使用了来自3个 PhysioNet 数据库的 162 条心电图记录:MIT-BIH 心律失常数据库、MIT-BIH 正常窦性心律数据库和 BIDMC 充血性心力衰竭数据库,共96 个心律失常患者的数据,30 个充血性心力衰竭患者的数据,以及 36 个正常窦性心律患者的数据。共使用两个深层CNN模型:GoogLeNet 和 SqueezeNet,经过预训练用于图像识别。
  使用Score-CAM方法解释深度学习的分类结果
  算法程序主要讲解如何使用类激活映射(Score-CAM)研究和解释深层卷积神经网络预测结果,运行环境为MATLAB R2021b。与CAM 和 grad-CAM算法类似,但 Score-CAM 是所谓的一种"无梯度"解释方法,关于Score-CAM的参考文献如下:
  Wang, H., Du, M., Yang, F. and Zhang, Z., 2019. Score-CAM: Improved Visual Explanations Via Score-Weighted Class Activation Mapping. arXiv preprint arXiv:1910.01279.
  CAM相关的参考文献如下
  Zhou, B., Khosla, A., Lapedriza, A., Oliva, A. and Torralba, A., 2016. Learning deep features for discriminative localization. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 2921-2929).
  grad-CAM相关的参考文献如下
  Selvaraju, R.R., Cogswell, M., Das, A., Vedantam, R., Parikh, D. and Batra, D., 2017. Grad-cam: Visual explanations from deep networks via gradient-based localization. In Proceedings of the IEEE international conference on computer vision (pp. 618-626).
  读取目标图像,并调整大小以适合 SqueezeNet 网络,并计算网络最后一个卷积层之后的 ReLU 层图像的激活值。addpath("testImg") im = imread("CatImg.png"); imResized = imresize(im,[inputSize(1:2)]);
  图像分类[PredCategory,scoreBaseLine]=classify(net,imResized); PredCategory
  提取预测类别的索引classIdx=find((net.Layers(end, 1).Classes==PredCategory)==1);
  使用激活函数计算特征图
  获取输入图像和调整后的特征图的点积,所获得图像如下
  展示score-cam的结果
  基于LSTM的NASA涡轮喷气发动机风扇的剩余使用寿命(remaining useful life,RUL) 预测
  算法程序执行环境为Python,使用Keras深度学习模块,执行基于LSTM的NASA涡轮喷气发动机风扇的剩余使用寿命(remaining useful life,RUL)预测,Lookback=10。#基于LSTM的NASA涡轮喷气发动机风扇的剩余寿命RUL预测 #导入相关模块 import numpy as np import pandas as pd import seaborn as sns import math import matplotlib.pyplot as plt from matplotlib import cm #机器学习相关模块 from sklearn.decomposition import PCA from sklearn.preprocessing import MinMaxScaler from sklearn.model_selection import train_test_split, cross_val_score from sklearn.preprocessing import QuantileTransformer , PowerTransformer from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import mean_absolute_error from sklearn.metrics import r2_score from sklearn.metrics import accuracy_score from sklearn.metrics import mean_squared_error from sklearn.linear_model import LinearRegression from sklearn.linear_model import LogisticRegression #深度学习相关模块 from keras import optimizers from keras.models import Sequential from keras.layers import TimeDistributed, Flatten from keras.layers.core import Dense, Dropout, Activation from keras.layers.recurrent import LSTM from sklearn.metrics import mean_squared_error   import warnings  warnings.filterwarnings("ignore")   %matplotlib inline cmap = cm.get_cmap("Spectral") # Colour map (there are many others)   from sklearn.metrics import mean_absolute_error from sklearn.metrics import mean_squared_error from sklearn.metrics import explained_variance_score from sklearn.metrics import r2_score   from keras.models import load_model   #数据分析 train_file = "train_FD001.txt" #训练数据 test_file = "test_FD001.txt"#测试数据 RUL_file = "RUL_FD001.txt"#剩余寿命数据 #读取文件 df = pd.read_csv(train_file,sep=" ",header=None) df.head()   #columns = ["unit_number","time_in_cycles","setting_1","setting_2","TRA","T2","T24","T30","T50","P2","P15","P30","Nf", #           "Nc","epr","Ps3 0","phi","NRf","NRc","BPR","farB","htBleed","Nf_dmd","PCNfR_dmd","W31","W32" ] #d删除NaN值 df.drop(columns=[26,27],inplace=True) columns = ["Section-{}".format(i)  for i in range(26)] df.columns = columns df.head() #每个参数的数据统计信息 df.describe() #有关数据的相关信息,包括传感器ID,时间,传感器数据等 #Section-0 is MachineID #Section-1 is time in, Cycles #Section-2~4 is Opertional Settings #Section-5~25 is sensor"s data #Data Set: FD001 #Train trjectories: 100 #Test trajectories: 100 #Conditions: ONE (Sea Level) #Fault Modes: ONE (HPC Degradation)   #命名 MachineID_name = ["Section-0"] RUL_name = ["Section-1"] OS_name = ["Section-{}".format(i) for i in range(2,5)] Sensor_name = ["Section-{}".format(i) for i in range(5,26)]     # 将数据转换为pandas数据框架 MachineID_data = df[MachineID_name] RUL_data = df[RUL_name] OS_data = df[OS_name] Sensor_data = df[Sensor_name]     #将数据转换为pandas序列 MachineID_series = df["Section-0"] RUL_series = df["Section-1"]   grp = RUL_data.groupby(MachineID_series) max_cycles = np.array([max(grp.get_group(i)["Section-1"]) for i in MachineID_series.unique()]) print("Max Life >> ",max(max_cycles)) print("Mean Life >> ",np.mean(max_cycles)) print("Min Life >> ",min(max_cycles))   #删除不携带有关单元状态信息的常量值的列 df.drop(columns=["Section-0",                 "Section-4", # Operatinal Setting                 "Section-5", # Sensor data                 "Section-9", # Sensor data                 "Section-10", # Sensor data                 "Section-14",# Sensor data                 "Section-20",# Sensor data                 "Section-22",# Sensor data                 "Section-23"] , inplace=True)
  MATLAB生成对抗网络系列(11种,对抗自编码器,辅助分类生成对抗网络,条件生成对抗网络,Pix-to-Pix等)环境配置MATLAB 2021b Deep Learning Toolbox Parallel Computing Toolbox 目录G enerative  A dversarial  N etwork (GAN) L east  S quares  G enerative  A dversarial  N etwork (LSGAN) D eep  C onvolutional  G enerative  A dversarial  N etwork (DCGAN) C onditional  G enerative  A dversarial  N etwork (CGAN) A uxiliary  C lassifier  G enerative  A dversarial  N etwork (ACGAN) InfoGAN A dversarial  A uto E ncoder (AAE) Pix2Pix W asserstein  G enerative  A dversarial  N etwork (WGAN) S emi-Supervised  G enerative  A dversarial  N etwork (SGAN) CycleGAN DiscoGAN
  基于小波分析和深度学习的时间序列分类并可视化相关特征
  算法程序运行环境为MATLAB R2021B。加载预训练的 GoogLeNet网络的时候,如果未安装 Deep Learning Toolbox™ Model   for GoogLeNet Network   支持包,软件将在附加功能资源管理器中提供所需支持包的链接
  该算法使用连续小波变换 (CWT) 和深度卷积神经网络 (CNN) 对人体心电图 (ECG) 信号进行分类,并进行特征可视化便于以后的深入分析。由于从头训练深度 CNN 的计算成本很高,并且需要大量的训练数据,在很多应用中并没有足够数量的训练数据可用,因此采用迁移学习方法GoogLeNet 对ECG波形的CWT时频谱图进行分类。
  使用的ECG数据分为3种:心律失常(ARR)、充血性心力衰竭(CHF) 和正常窦性心律(NSR),分别来自MIT-BIH Arrhythmia数据库、MIT-BIH Normal Sinus Rhythm数据库和BIDMC Congestive Heart Failure数据库,首先看一下这3种波形的样子。
  创建CWT时频谱图
  显示网络的层次图
  修改网络并进行训练
  可视化第一个卷积层的网络滤波器权重
  查看第一个卷积层  "conv1-7x7_s2"   的输出激活区域
  将最强通道与原始图像进行比较
  5种深度学习可解释性方法:LIME,GradientAttribution,Occlusion,GradCam等方法
  算法程序运行环境为MATLAB R2021b
  大佬说了,最简单可以将可解释性分为两类,第一类是全局性解释,第二类是局域性解释。
  全局性解释  试图可视化神经网络每个神经元学到了什么。
  局域性解释  只关注输入空间中在这个图片周围的很小区域。
  以Local Interpretable Model-Agnostic Explanations(LIME)算法为例,进行可视化。
  重要特征展示
  使用卷积神经网络CNN进行涡轮风扇发动机的剩余使用寿命(remaining useful life,RUL)估计
  注意:该程序运行环境为MATLAB R2021B
  算法程序主要讲解如何使用卷积神经网络 CNN)来预测涡轮风扇发动机的的剩余使用寿命(remaining useful life,RUL)。 深度学习的优势在于模型无需通过手动特征提取或特征选择来预测 RUL。 此外,基于深度学习的 RUL 预测模型不需要信号处理的先验知识。
  MATLAB环境下基于支持向量机、孤立森林和LSTM自编码器的三轴振动数据的机械状态异常检测
  算法程序主要讲解如何使用机器学习和深度学习来进行机械状态异常检测,使用机械振动数据。
  数据集包含来自工业机器的三轴振动测量值, 在计划维护之前和维护之后采集数据。 假定在定期维护后采集的数据代表机器的正常运行状况,维护前的数据代表正常或异常情况。 每轴的数据存储在单独的列中,每个文件包含 7000 个测量值。
  基于迁移学习的滚动轴承故障诊断
  算法程序运行环境为MATLAB R2021B, 主要讲解如何使用深度学习(迁移学习)方法对滚动轴承进行故障诊断,讲解如何将一维轴承振动信号转换为二维尺度图图像并使用预训练网络应用迁移学习对轴承故障进行分类。 迁移学习显著减少了传统轴承诊断方法特征提取和特征选择所花费的时间,并在小型数据集中获得了良好的准确性。
  面包多代码
  https://mbd.pub/o/GeBENHAGEN

河南全力拼经济丨郑州比亚迪招贤纳士!瞄准新能源汽车第一阵营河南如何抢抓机遇?编者按春节假期刚过,河南一派繁忙的生产景象。各地企业铆足干劲,开足马力,迅速掀起生产热潮,奋力夺取兔年开门红。为此,大河网推出河南全力拼经济策划,看企业如何发力,交出开门红成绩单。国常会再提推动消费加快恢复,餐饮等接触型消费迎利好恢复及扩大消费再度被提及。1月28日召开的国务院常务会议要求,推动消费加快恢复和保持外贸外资稳定,增强对经济的拉动力。会议指出,要针对需求不足的突出矛盾,乘势推动消费加快恢复成为经1车5人,全部救回!近日,安徽阜阳一车五人坠入水沟生死一线跳水跪地人工呼吸一对父女与众人合力上演了一场紧急救援视频加载中1月27日下午吕智慧和父亲吕振康驾车经过阜阳市阜南县看到一辆白色轿车坠入水沟整个尔康制药经营整体向好业务和业绩迎来双转机红网时刻新闻1月30日讯(记者喻向阳)1月30日晚间,尔康制药发布2022年度业绩预盈公告,预计实现归母净利润4,500万元6,500万元,一举扭转2021年出现亏损的不利局面。公交广会客厅铁路春运里的侠客行春运,是铁路人的江湖,万里铁道线侠客辈出。他们身怀绝技,心系旅客,立足岗位,各显神通,演绎铁路版侠客行。剑客安检员舞剑弄清影1月28日,大年初七,桂林站迎来返程客流高峰。请打开双手注意,火星熊出没!NASA轨道飞行器拍到一张熊脸在微笑美国宇航局(NASA)的轨道飞行器近日从火星上空155英里(约250公里)处拍摄到惊人的地表形象,像是一张熊脸在微笑。据报道,NASA的火星轨道飞行器配备了HiRISE(高分辨率成宋仲基再婚当爸,宋慧乔单身忙事业,离婚4年,两人境遇大不相同文九爷编辑孙大圣宋仲基再婚了,还升级为了父亲。1月30日,宋仲基突然在个人社交账号发文宣布了结婚当爸的消息。他写道今天以深厚的信赖和爱情为基础,开始夫妻生活,还拥有了宝贵的新生命。作为金融消费者,您应该知道的事!问什么是金融消费者信息?答消费者金融信息,是指银行支付机构通过开展业务或者其他合法渠道处理的消费者信息,包括个人身份信息财产信息账户信息信用信息金融交易信息及其他与特定消费者购买使外媒为阻止俄运动员参加2024年巴黎奥运会,泽连斯基致信马克龙环球网报道记者祁玥据路透社报道,乌克兰总统泽连斯基29日在夜间讲话中表示,为了阻止俄罗斯运动员参加2024年巴黎奥运会,自己已经致信法国总统马克龙。泽连斯基资料图图源外媒路透社称,科学家获取了热带气候变化最长的冰川记录2022年8月10日,由美国国家科学基金会(NSF)资助,匹兹堡大学(UniversityofPittsburgh)的科学家团队在秘鲁安第斯山脉高处的一个湖床上挖出一个300英尺长索尼Xperia5V跑分曝光,搭载二代骁龙816GB大内存IT之家2月23日消息,索尼Xperia在智能手机市场一直特立独行,在配置和设计上都走自己的路线,有时也会出现落后主流配置的情况。但今年的索尼Xperia旗舰新机可能会有所不同,因
俄亥俄脱轨事件,不是偶然而是必然,物极必反的美式下坡路美国媒体报道中国灾难,最惯用的就是黑白不分,然后以人权卫士的口气进行舆论攻击,然后上升到世界秩序问题,最后拉阵营对抗。2023年2月3日,美国俄亥俄州发生了一起严重的生态灾难。一列火耗归公是什么意思,雍正为什么要大力推行火耗归公?历史开讲清朝到康熙年间,社会大局稳定,经济发展迅速,官本民末的收入差距明显缩小,极大的提高了民众的生活水平,而且还实施了积极的外交政策,扩大了中国的影响力。在康熙去世后,继位雍正和民间故事寇准出世头条创作挑战赛寇准(961年1023年),字平仲,华州下邽(今陕西渭南)人。北宋政治家诗人,与白居易张仁愿并称渭南三贤。寇准出生在书香门第,但自幼丧父,家境非常贫寒,为了改变生活,都是分封惹的祸?浅析流传千年的分封历史开讲分封制起源于商代,自周武王灭商后,便大规模封赏王室子弟和功臣为诸侯,各诸侯在其封国内世袭罔替,负责定期朝贡提供军赋和劳役维护周天子的安全,号称八百诸侯国。周武王剧照然而到了面对一个差点杀死自己的人晋文公为什么会赦免他?学习罗胖子,每天三百字,历史小趣事,点滴有意思。1827056坚持日更第56天,还有1771天面对一个差点杀死自己的人,晋文公为什么会赦免他?面对一个杀手,特别是曾经两次试图谋杀你希特勒可能只有一个睾丸据坊间传闻,阿道夫希特勒可能只有一个睾丸。这个说法可能是个都市传说,有可能源自与他同时期的英国军歌希特勒只有一个蛋。希特勒希特勒的医生欧文吉辛以及他的私人医生特奥多尔莫雷尔都表示希第六回林希的自我修养历史开讲纵跨神宗丶哲宗丶徽宗三朝,有个著名的官场爬虫叫林希,福州人,进士出身。神宗时曾任同知太常礼院,相当于外交部礼宾司副司长。神宗命他出使朝鲜半岛,这货竟然面露惧色,当廷推辞,神2月27日政协日历,一图速览!1948年五一口号发布后,邀请组织民主人士北上解放区筹备新政协,成为中共中央的一项重点工作。于是从当年8月起,在中共中央和地下党组织的帮助下,远在香港和国民党统治区的各民主党派领导鬼匿药方清代乾隆年间,有一叫永宁的内阁学士,因为疾病缠身,精神萎靡不振,整日里昏昏欲睡。永宁学士让府中下人,请了大夫登门来诊治,试服了一剂药后,见病症未有好转。以为是前面一个大夫医术不精,专利壁垒铁幕下的中国,如何打碎枷锁?完成向工业强国的蜕变一个国家从农耕文明转成工业文明的过程之艰,难以想象。但是到底有多困难呢?这么说吧,二战之后全球只有两个国家实现了这种跨越式的跃迁。那就是中国和韩国。但是,韩国受益于美国的大力扶持,知识青年上山下乡,1974年是一个分水岭从1969年开始的广大知识青年上山下乡,一直持续到1978年,全国共有1600万知识青年上山下乡,来到农村山区草原边疆等等广阔天地,成为一代知识农民和兵团战士。知识青年上山下乡一开