教学大纲-人工智能基础及应用-9-23-2021_第1页
教学大纲-人工智能基础及应用-9-23-2021_第2页
教学大纲-人工智能基础及应用-9-23-2021_第3页
教学大纲-人工智能基础及应用-9-23-2021_第4页
教学大纲-人工智能基础及应用-9-23-2021_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

人工智能基础及应用教学大纲课程基本信息课程编号x课程中文名称人工智能基础及应用课程英文名称Artificialintelligencefoundationandapplication课程类别□公共基础课程□通识教育课程□大类基础课程□专业基础课程□专业课程□实践环节□个性化教育课程课程性质□必修课□选修课学时学分总学时x(理论x、实验x),x学分开课单位x学院适用专业x考核方式及说明考试方式□考试□考查成绩录入□百分制□五级分制□二级分制课程最终的成绩评定包括三部分:课堂提问及作业成绩、实验成绩、试卷成绩课程最终的成绩评定=课堂提问及作业成绩×10%+实验成绩×20%+期末试卷成绩×70%1课堂提问及作业成绩占10%,以每章作业为主,课堂问答作为补充;2实验成绩20%,以实验报告为主,实验过程表现作为补充,;3期末成绩占70%,考核基础知识的理解、掌握与应用能力,以指定教材内容为主,考察学生知识的掌握与应用能力。先修课程高等数学(1)、高等数学(2)、概率论、线性代数、模拟电子技术、自动控制原理选用教材宋永端,人工智能基础及应用,清华大学出版社,2021年2月第1版主要教学参考书[1]同济大学数学系.高等数学上下册(第6版)北京:高等教育出版社,2007[2]李航.统计学习方法[M].北京:清华大学出版社,2012[3]周志华,机器学习[M].北京:清华大学出版社,2016

课程说明根据人工智能专业规范要求,本课程主要介绍人工智能的发展历史与国内外研究现状、相关的基础数学知识、不同的人工智能技术以及具体的应用实例。其中人工智能技术涉及机器学习、支持向量机、神经网络和分类与聚类。课程目标课程目标对应毕业要求支撑强度课程目标1:深入了解人工智能的定义、发展历史及三大主要学派;了解人工智能国内外的研究现状、主要的技术难点与挑战、未来的发展趋势。问题识别:能将人工智能的发展与现代智能技术紧密联系在一起,并对未来人工智能的趋势和挑战做合理预测。H课程目标2:掌握高等数学基础知识,并理解线性回归原理和支持向量机;能从机器学习和统计学角度掌握线性回归模型的建立方法;掌握线性可分支持向量机、线性支持向量机的最大间隔分离超平面和分类决策函数求法;掌握非线性支持向量机的分类决策函数求法。综合运用:能利用高数知识理解线性回归原理和支持向量机原理,并且能利用支持向量机对一些简单的数据进行分类处理。H课程目标3:了解神经网络的组成单元、基本结构;掌握常见的几种神经网络之间的特点与区别;能利用梯度下降算法找到神经网络的最优参数;能利用各种神经网络解决简单的分类识别问题。了解分类与聚类的基本思想;能够利用判别函数法,参数估计法,非参数估计法对样本进行分类;对于未知样本,能够掌握几种常见的聚类算法。实验验证:掌握各种神经网络(卷积神经网络、循环神经网络等)的训练算法,并利用其进行手写识别和情感分类的验证,能利用常见的聚类算法进行聚类。H教学目标、内容与学时分配1授课环节教学单元教学内容学时课程目标第1章人工智能简介1人工智能定义;2人工智能发展历史与三大学派;3国内外发展现状、挑战与未来趋势。x课程目标1第2章数学基础1矩阵及其运算;2导数与微分;3泰勒展开式;4梯度及其运算;5概率论相关知识。x课程目标2第3章机器学习的起点:线性回归1线性回归模型建立;2线性回归原理。x课程目标2第4章支持向量机1线性可分支持向量机;2线性支持向量机;3非线性支持向量机。x课程目标2第5章神经网络及基本结构1神经元介绍;2感知机;3神经网络的基本结构;4反向传播;5梯度下降算法。x课程目标3第6章卷积神经网络1卷积神经网络发展历史;2卷积神经网络结构;3卷积神经网络常用的损失函数;4卷积神经网络常用的训练算法。x课程目标3第7章循环神经网络1循环神经网络原理;2长期依赖问题及优化;3基于门结构的循环神经网络;4注意力机制。x课程目标3第8章分类与聚类1基于判别函数的分类方法;2基于已知样本类别的分类方法;3基于未知样本类别的聚类方法。x课程目标3第9章应用实例1MATLAB基础;2几个典型案例:房价预测;支持向量机的二分类应用;豆瓣读书评价分析;手写数字识别;基于循环神经网络的情感分类;国民健康状况研究。x课程目标2课程目标3总学时xx2实验环节实验项目实验内容学时课程目标1.支持向量机的应用实例验证1.加载数据集并选定训练集和测试集;2.为训练集和测试集选定标签集;3.利用训练集进行训练分类得到模型;4.根据模型对测试集进行测试,得到准确率。x课程目标32.神经网络的实例验证1.加载数据集;2.定义神经网络结构和设置参数;3.训练相应的神经网络;4.利用训练后的神经网络进行分类或识别;5.计算准确率。x3.C均值法聚类分析验证1.采集并整理数据集;2.选择初始聚类点;3.分类处理。x总学时xx考核环节设置课程目标考核环节及分值考核形式与内容考试100%作业100%实验100%课程目标1:深入了解人工智能的定义、发展历史及三大主要学派;了解人工智能国内外的研究现状、主要的技术难点与挑战、未来的发展趋势。20%20%0考试:以填空题和选择题形式,用于考查学生对人工智能发展历史和主要技术难点的了解程度。作业:以课后问答题形式,从回答准确性、合理性等方面进行评价。课程目标2:掌握高等数学基础知识,并理解线性回归原理和支持向量机;能从机器学习和统计学角度掌握线性回归模型的建立方法;掌握线性可分支持向量机、线性支持向量机的最大间隔分离超平面和分类决策函数求法;掌握非线性支持向量机分类决策函数求法。40%40%50%考试:以填空题和计算题形式为主,考查学生运用线性回归原理与支持向量机知识,预测和识别简单人工智能工程问题的关键特征与关键环节的能力。作业:以课后问答题和计算题形式,从计算和回答准确性、合理性等方面进行评价。实验报告:以提交实验报告的形式,从实验目的、实验原理、实验方案、实验过程控制、数据采集和记录、实验数据分析等方面进行评价。课程目标3:了解神经网络的组成单元、基本结构;掌握常见的几种神经网络之间的特点与区别;能利用梯度下降算法找到神经网络的最优参数;能利用各种神经网络解决简单的分类识别问题。了解分类与聚类的基本思想;能够利用判别函数法,参数估计法,非参数估计法对样本进行分类;对于未知样本,能够掌握几种常见的聚类算法。40%40%50%考试:以课后问答题和计算题形式为主,考查学生运用神经网络和聚类算法解决复杂工程问题的思辨能力。作业:以课后问答题和计算题形式,从计算和回答准确性、合理性等方面进行评价。实验报告:以提交实验报告的形式,从实验目的、实验原理、实验方案、实验过程控制、数据采集和记录、实验数据分析等方面进行评价。备注课程最终的成绩评定=作业成绩×10%+实验成绩×20%+期末试卷成绩×70%注:各目标考核分数值根据每年的具体情况可有±10%的浮动。课程负责人:专业负责人:年月日年月日附件1应用实例代码第3章:房价预测x=[2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013];y=[2.000,2.500,2.900,3.147,4.515,4.903,5.365,5.704,6.853,7.971,8.561,10.000,11.280,12.900];X=[ones(length(y),1),x'];Y=y';[b,bint,r,rint,stats]=regress(Y,X);b,bint,statsrcoplot(r,rint)%残差分析z=b(1)+b(2)*x;plot(x,Y,'k+',x,z,'r')%预测并作图第4章:支持向量机的二分类应用clearall;clc;loadbedroom.matloadforest.matDataset=[bedroom;MITforest];%dataset是将bedroom和forest合并loadlabelset.mat%导入分类标签集train_set=[dataset(1:5,:);dataset(11:15,:)];%将bedroom.mat的1-5行数据以及forest.mat的11-15行数据做为训练集train_set_labels=[lableset(1:5);lableset(11:15)];%相应的训练集的标签也要分离出来test_set=[dataset(6:10,:);dataset(16:20,:)];%将bedroom.mat的6-10行数据以及forest.mat的16-20行数据做为测试集test_set_labels=[lableset(6:10);lableset(16:20)];%相应的测试集的标签也要分离出来%%数据预处理,将训练集和测试集归一化到[0,1]区间[mtrain,ntrain]=size(train_set);[mtest,ntest]=size(test_set);test_dataset=[train_set;test_set];[dataset_scale,ps]=mapminmax(test_dataset',0,1);%mapminmax为MATLAB自带的归一化函数dataset_scale=dataset_scale';train_set=dataset_scale(1:mtrain,:);test_set=dataset_scale((mtrain+1):(mtrain+mtest),:);%%SVM网络训练model=svmtrain(train_set_labels,train_set,'-c1-g0.07');%%SVM网络预测[predict_label]=svmpredict(test_set_labels,test_set,model);%%结果分析%测试集的实际分类和预测分类图%通过图可以看出没有一个测试样本被错分figure;holdon;plot(test_set_labels,'o');plot(predict_label,'r*');xlabel('测试集样本','FontSize',12);ylabel('类别标签','FontSize',12);legend('实际测试集分类','预测测试集分类');title('测试集的实际分类和预测分类图','FontSize',12);gridon;第5章:豆瓣读书评价分析clcclearallcloseall%%载入输出和输入数据loadtrain.txt;loadtrain.txt;%%保存数据到matlab的工作路径里面savep.mat;savet.mat;%注意t必须为行向量p=p;t=t;%赋值给输出p和输入t%%数据的归一化处理,利用mapminmax函数,使数值归一化到[-1.1]之间,该函数使用方法如下:[y,ps]=mapminmax(x,ymin,ymax),x为需归一化的数据输入,ymin,ymax为需归一化到的范围,不填默认为归一化到[-1,1],返回归一化后的值y,以及参数ps,ps在结果反归一化中,需要调用[p1,ps]=mapminmax(p);[t1,ts]=mapminmax(t);%%确定训练数据,测试数据,一般是随机的从样本中选取70%的数据作为训练数据,15%的数据作为测试数据,一般是使用函数dividerand,其一般的使用方法如下:%[trainInd,valInd,testInd]=dividerand(Q,trainRatio,valRatio,testRatio)[trainsample.p,valsample.p,testsample.p]=dividerand(p,0.7,015,015);[trainsample.t,valsample.t,testsample.t]=dividerand(t,0.7,015,015);%%建立反向传播算法的BP神经网络,使用newff函数,其一般的使用方法如下:net=newff(minmax(p),[隐层的神经元的个数,输出层的神经元的个数],{隐层神经元的传输函数,输出层的传输函数},('反向传播的训练函数'),其中p为输入数据,t为输出数据,tf为神经网络的传输函数,默认为'tansig'函数为隐层的传输函数,purelin函数为输出层的传输函数,一般在这里还有其他的传输的函数一般的如下,如果预测出来的效果不是很好,可以调节:%TF1='tansig';TF2='logsig';%TF1='logsig';TF2='purelin';%TF1='logsig';TF2='logsig';%TF1='purelin';TF2='purelin';TF1='tansig';TF2='purelin';net=newff(minmax(p),[10,1],{TF1TF2},'traingdm');%网络创建%%网络参数的设置net.trainParam.epochs=10000;%训练次数设置net.trainParam.goal=1e-7;%训练目标设置net.trainParam.lr=0.01;%%学习率设置,应设置为较少值,太大虽然会在开始加快收敛速度,但临近最佳点时,会产生动荡,而致使无法收敛net.trainParam.mc=0.9;%动量因子的设置,默认为0.9net.trainParam.show=25;%显示的间隔次数%%指定训练参数%net.trainFcn='traingd';%梯度下降算法%net.trainFcn='traingdm';%动量梯度下降算法%net.trainFcn='traingda';%变学习率梯度下降算法%net.trainFcn='traingdx';%变学习率动量梯度下降算法net.trainFcn='traingd';[net,tr]=train(net,trainsample.p,trainsample.t);%%计算仿真,其一般用sim函数[normtrainoutput,trainPerf]=sim(net,trainsample.p,[],[],trainsample.t);%训练的数据,根据BP得到的结果[normvalidateoutput,validatePerf]=sim(net,valsample.p,[],[],valsample.t);%验证的数据,经BP得到的结果[normtestoutput,testPerf]=sim(net,testsample.p,[],[],testsample.t);%测试数据,经BP得到的结果%%将所得的结果进行反归一化,得到其拟合的数据trainoutput=mapminmax('reverse',normtrainoutput,ts);validateoutput=mapminmax('reverse',normvalidateoutput,ts);testoutput=mapminmax('reverse',normtestoutput,ts);%%正常输入的数据的反归一化的处理,得到其正式值trainvalue=mapminmax('reverse',trainsample.t,ts);%正常的验证数据validatevalue=mapminmax('reverse',valsample.t,ts);%正常的验证的数据testvalue=mapminmax('reverse',testsample.t,ts);%正常的测试数据第6章:手写数字识别%%在matlab工作空间中加载MNIST数据集,数据集中包含10000张图像,0到9中每个数字的图像均为1000张:digitDatasetPath=fullfile(matlabroot,'toolbox','nnet','nndemos','nndatasets','DigitDataset');imds=imageDatastore(digitDatasetPath,'IncludeSubfolders',true,'LabelSource','foldernames');%%对MNIST数据集进行显示:figure;perm=randperm(10000,20);fori=1:20 subplot(4,5,i); imshow(imds.Files{perm(i)});end%%可以通过如下代码获取每张图片的尺寸:img=readimage(imds,1);size(img)%%获取到每张图片的宽为28,高也为28。将数据集拆分为训练数据集和测试数据集,其中训练数据集的图像占75%,测试数据集占25%:numTrainFiles=750;[imdsTrain,imdsValidation]=splitEachLabel(imds,numTrainFiles,'randomize');%%定义卷积神经网络结构,该卷积神经网络包括三个卷积层:layers=[imageInputLayer([28281])convolution2dLayer(3,8,'Padding','same')batchNormalizationLayerreluLayermaxPooling2dLayer(2,'Stride',2)convolution2dLayer(3,16,'Padding','same')batchNormalizationLayerreluLayermaxPooling2dLayer(2,'Stride',2)convolution2dLayer(3,32,'Padding','same')batchNormalizationLayerreluLayerfullyConnectedLayer(10)softmaxLayerclassificationLayer];%%训练神经网络的算法是基于动量的随机梯度下降算法,超参数在程序中设置options=trainingOptions('sgdm','InitialLearnRate',0.01,'MaxEpochs',4,'Shuffle','every-epoch','ValidationData',imdsValidation,'ValidationFrequency',30,'Verbose',false,'Plots','training-progress');%%训练神经网络net=trainNetwork(imdsTrain,layers,options);%%训练后的卷积神经网络准确率YPred=classify(net,imdsValidation);YValidation=imdsValidation.Labels;accuracy=sum(YPred==YValidation)/numel(YValidation)%卷积神经网络经过训练后,对手写数字的识别准确率是accuracy=0.9884第7章:基于循环神经网络的情感分类[XTrain,YTrain]=ChnSentiCorpTrainData;%加载训练数据numObservations=numel(XTrain);%获取每个输入训练数据的长度fori=1:numObservationssequence=XTrain{i};sequenceLengths(i)=size(sequence,2);end[sequenceLengths,idx]=sort(sequenceLengths);%将序列按照长度排序XTrain=XTrain(idx);YTrain=YTrain(idx);miniBatchSize=16;%设置mini-batch大小为16inputSize=200;%输入大小为输入数据维度200numHiddenUnits=200;%双向LSTM隐藏单元数200numClasses=2;%输出大小为2的全连接层,后跟softmax层和分类层maxEpochs=100;%训练轮数100%%定义LSTM网络架构layers=[...sequenceInputLayer(inputSize)bilstmLayer(numHiddenUnits,'OutputMode','last')fullyConnectedLayer(numClasses)softmaxLayerclassificationLayer]%%指定优化器Adam,梯度阈值1,最大训练轮数100,以27位mini-batch大小,填充数据与最长序列相同。options=trainingOptions('adam',...'ExecutionEnvironment','gpu',...'GradientThreshold',1,...'MaxEpochs',maxEpochs,...'MiniBatchSize',miniBatchSize,...'SequenceLength','longest',...'Shuffle','never',...'Verbose',0,...'Plots','training-progress');net=trainNetwork(XTrain,YTrain,layers,options);%训练LSTM网络%%测试LSTM网络[XTest,YTest]=japaneseVowelsTestData;%加载测试数据numObservationsTest=numel(XTest);%获取每个输入测试数据的长度fori=1:numObservationsTestsequence=XTest{i};sequence

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论