模式识别及神经网络期末复习知识整理

1.有一组基因芯片数据,样本的个数为 216, 其中肺癌 90 个,其余为正常人, 每个样本的基因芯片数据维度为 10500。 计划用 2/3 数据训练,剩下测试。 1)要求用 GA 算法实现从中选取 10 个与肺癌相关的关键的基因,编写 matlab 程序实现预测模型。 % 假设P是个矩阵,里面存放着216个维度为10500的基因芯片数据
PP=P(:,1:144); %训练集216×(2/3) 
PT=P(:,145:216);%测试集216×(1/3) 
TR=(PP);
TE=(PT);
%假设T1是TR的目标集
%假设T2是TE的目标集
options=gaoptimset('PopulationSize',50,'Generations',20,'PlotFcns',@gaplotbestf);%调用遗传算法工具箱,种群数50,迭代数20
spread=5;
FitnessFunction=@(x)fit_crab_features(x,TR,T1,TE,T2,spread);
n=10;                   %关键数据的值
LB=[1 ... 1];           %10个1
UB=[10500 ... 10500];   %10个10500 
[x,fval]=ga(FitnessFunction,n,[],[],[],[],LB,UB,[],options);
有一组基因芯片数据,样本的个数为 216, 其中肺癌 90 个,其余为正常人, 每个样本的基因芯片数据维度为 10500。 计划用 2/3 数据训练,剩下测试。 2)1.设计 RBF 精确神经网络的预测模型, 标注隐含层的神经元的个数, 以及隐含层的权值是如何计算的, 以及采用的激活函数.。       2. 编写 matlab 简单程序实现预测模型。rbf+wavalet 模式识别及神经网络期末复习知识整理 隐含层的神经元的个数:216×2/3 = 144个 (隐含层神经元的个数=用于训练的样本的个数) 隐含层的权值如何计算:隐含层的权值就是输入矩阵的转置。 激活函数: 模式识别及神经网络期末复习知识整理
% 第一步用小波对数据进行处理:
% 假设X是个矩阵,里面存放着216个维度为10500的基因芯片数据 
lev=5; %小波分解的层数 
nam='db7'; %小波的名字 
for i=1:216
    [C,L]= wavedec(X(i,:),lev,nam); 
    a = appcoef(C,L,nam,lev); 
    P(i,:)=a(:);  
end 
PN=mapminmax(double(P)); 
P=PN’; 
PP=P(:,1:144); %训练集 216×(2/3) 
PT=P(:,145:216); %测试集 216×(1/3) 
TR=(PP); 
TE=(PT); 
%假设T是TR的目标集
%第二步对小波处理后的数据建立RBF神经网络:
spread=10;
net=newrbe(TR,T,spread);  
out=sim(net,TE);
2. 有 10 个学生, 每人 8 张黑白照片, 照片大小为 128X96, 拿出 5 张训练, 3 张测试。 1)1. 画出 BP 神经网络的预测模型, 一个隐含层, 40 个隐含神经元, 同时写出隐含层和输出层权值的维度,输入矩阵的维度, 输出矩阵的维度,以及采用的激活函数。       2. 编写出matlab程序。 模式识别及神经网络期末复习知识整理 激活函数: 模式识别及神经网络期末复习知识整理
%第一步:使用PCA对人脸数据进行降维:
%假设P是个矩阵,存储着所有的照片数据
PP=[P(1,1:5)...P(10,1:5)];%PP是训练集
PT=[P(1,6:8)...P(10,6:8)];%PT是测试集
[coeff]=pca(PP);
TR=PP*coeff';
TE=PT*coeff';
TR=TR(1:5,:); %得到训练集降维后的矩阵,想降到n维,就写1:n,这里是降到5维。 
TE=TE(1:5,:);
TR=mapstd(TR); %降维后的训练集标准化 
TE=mapstd(TE); %降维后的测试集标准化
%设T为TR的目标集
net=newff(minmax(TR),[111 10],{'logsig' 'logsig'},'traingdx');
%[111 10]第一个值是隐含层神经元的个数I,I=Sqrt(128×96+10)=111。第二个值是输出的个数为10(10个人)。 
net.trainParam.epochs=1000; 
net.trainParam.goal=0.001;
[net,tr]=train(net,TR,T);
out=sim(net,TE);
有 10 个学生, 每人 8 张黑白照片, 照片大小为 128X96, 拿出 5 张训练, 3 张测试。 2)1. 画出 CNN 的预测模型, 使用一个卷积层和池化层, 16 个 5X5 的过滤核, 过滤步长为 3, 池化的大小为 2X2,步长为 2。写出权值矩阵以及神经元的个数,即 feature map 的维度。        2. 编写 matlab 程序实现预测模型。 预测模型: 模式识别及神经网络期末复习知识整理权值矩阵的大小:  公式:(h×w×c+1)×Number of Filters  在题目中h×w即为5×5 c为1( 灰度图或者说黑白图的c为1,彩色图的c为3)  结果:(5×5×1+1)×16 = 26×16 =416  神经元的个数:  求神经元的个数,先求出feature map的大小,然后再乘上filter的个数  求feature map大小的公式: (InputSize - FilterSize + 2×Padding) / Stride+1  Padding不用管,如果题目给出Padding的值就照着代进去。  Stride是步长。  结果:第一维大小 (128-5)/3 + 1 = 42 第二维大小(96-5)/3 + 1 = 31 所以feature map的大小为 42 × 31  所以神经元的个数为: 42×31×16 = 20832
% 假设训练集为TR 目标集为TT 
layers=[imageInputLayer([128 96 1]); %128×96的黑白照片 黑白第三个值是1 彩色第三个值是3 
        convolution2dLayer(5,16,'Stirde',3); %16个5X5 的过滤核, 过滤步长为 3 
        reluLayer(); 
        maxPooling2dLayer(2,'Stride',2); %池化的大小为 2X2,步长为 2 
        fullyConnectedLayer(10); % 全连接层10个输出(10个人) 
        softmaxLayer(); 
        classificationLayer()]; 
options=trainingOptions('sgdm'); 
net=trainNetwork(TR,TT,layers,options);
3. 有 30000 个维度为 21000 的数据, PCA 和 WAVELET 特征提取,那个更适合, 为什么?如果做离散 WAVELET 三层分解, 提取特征的维度是多少? PCA,PCA更适合用于高维数据的降维。 如果做离散Wavelet三层分解,提取特征的维度是 30000×21000× (1/8) (几层就乘几个1/2) 4.  写出我们所学的特征提取和特征选取方法,以及有指导的学习和无指导学习的方法。 特征提取的方法:BP、RBF、SOM、PCA、Wavelet 、CNN  特征选取的方法:GA  有指导的学习方法:BP、RBF、CNN  无指导的学习方法:SOM 5. 写出以下本课程所学智能技术的英文全名称和中文名称,并连接下面算法的关系 1.BP 反向传播  Back Propagation  2.RBF 径向基函数 Radial Basis Function  3.SOM 自组织映射 Self-organizing Maps  4.PCA 主成分分析技术 Principal Components Analysis  5.Wavelet 小波 Wavelet  6.GA 遗传算法 Genetic Algorithm  7.CNN 卷积神经网络 Convolutional Neural Networks 各个算法的关系: BP、RBF、CNN属于前馈神经网络中的多层前馈神经网络 ,属于有指导的学习方法                             SOM属于自组织神经网络,属于无指导的学习方法                             PCA、Wavelet、GA用于数据处理
上一篇:第十次


下一篇:消除左递归