ATR实验室周报告模板.docx
《ATR实验室周报告模板.docx》由会员分享,可在线阅读,更多相关《ATR实验室周报告模板.docx(10页珍藏版)》请在冰豆网上搜索。
ATR实验室周报告模板
ATR实验室研究生年月第4周进度报告
学生姓名:
提交日期:
,星期日指导老师:
I.本周工作小结
1.工作小结
(1)重新尝试另一个数据库—柏林情感语音库,并用opensmile对其进行384个特征提取。
(2)对支持向量机算法作出一些改进,用libsvm工具包的核函数解决线性可分问题,并用grid-search方法寻找最优参数C和g。
(3)对特征选取方法作出改进,用PCA降维,以及重新选取24个重要特征。
(4)对不同的特征选取方法的分类正确率对比,对不同情绪识别率对比。
(5)学习四种算法的基本原理,完成第三章部分工作。
2.原计划的完成情况(与原计划是否有出入?
有哪些出入?
原因?
)
与原计划的完成情况差不多,但是不同算法的优缺点对比不明显,这方面在理论和实验上都要多做点工作。
II.下周工作计划
1.总体目标
(1)学习四种算法的原理以及优缺点,并联系实验结果分析对比。
(2)基本完成毕业论文第三章
2.需要的条件及建议
III.技术报告
11.重新用另一个语音库——柏林情感语音库
1.1柏林EMO-DB情感语音库简介
新选取的语音库为免费的柏林DMO-DB情感语音库,是由柏林工业大学录制的情感语音库。
其采样频率为16KHZ,16bit量化,共有500句情感语音信号。
该语音库分别由10名专业演员(5男,5女),在7种不同情感状态下(中性/nertral、生气/anger、害怕/fear、高兴/joy、悲伤/sadness、厌恶/disgust、无聊/boredom)朗读10句不同文本的德语组成。
本实验选取其中的部分情感(高兴、愤怒、平静、悲伤)加以识别。
22.支持向量机算法的改进
对于不是线性可分的问题,就不能通过寻找最优分类超平面进行分类,SVM这时通过把n维空间的样本映射到更高维的空间中,使得在高维的空间上样本是线性可分的。
在实际的算法中,SVM不需要真正地进行样本点的映射,因为算法中涉及到的高维空间的计算总是以内积的形式出现,而高维空间的内积可以通过在原本n维空间中求内积然后再进行一个变换得到,这里计算两个向量在隐式地映射到高维空间的内积的函数就叫做核函数。
SVM根据问题性质和数据规模的不同可以选择不同的核函数。
在libsvm中,有自带的核函数,但需要自己调节参数,可以使用grid-search或cross-validation方法选择最优的参数惩罚因子c和核函数的参数g。
-gr(gama):
核函数中的gamma函数设置(针对多项式/rbf/sigmoid核函数)(默认1/k)
-ccost:
设置C-SVC,e-SVR和v-SVR的参数(损失函数)(默认1)
具体方法:
1.对数据做归一化(simplescaling)
2.用RBF(径向基)核函数:
exp(-r|u-v|^2),‘-t2’
3.用cross-validation或grid-search得到最优的参数c和g
4.用得到的最优c和g训练训练数据
5.测试
2.12.1用grid-search网格法找核函数最优参数
网格搜索就是尝试各种可能的(C,g)对值,然后进行交叉验证,找出使交叉验证精确度最高的(C,g)对。
通过反复实验测试,本文中参数C和g最终的值分别设为11.3137和0.1250。
下载libsvm-mat-加强工具箱,在libsvm-mat-2.89-3的基础上给出相应的辅助函数插件,方便用户来选取最佳的参数。
MATLAB程序如下:
clc,clearall
train_data=xlsread('all_bolin4_24_train.xlsx',1,['A1:
X230']);
train_label=xlsread('all_bolin4_24_train.xlsx',1,['Y1:
Y230']);
test_data=xlsread('all_bolin4_24_test.xlsx',1,['A1:
X106']);
test_label=xlsread('all_bolin4_24_test.xlsx',1,['Y1:
Y106']);%bolin24
[train_data,test_data,ps]=scaleForSVM(train_data,test_data,-1,1);
[bestCVaccuracy,bestc,bestg]=SVMcgForClass(train_label,train_data,-3,3.5,-3,3.5,3,0.5,0.5,0.9);
cmd=['-c',num2str(bestc),'-g',num2str(bestg)];
Factor=svmtrain(train_label,train_data,cmd);%建立svm分类器训练数据
[predicted_label]=svmpredict(test_label,test_data,Factor);%预测测试数据分类标签
参数选择及其分类结果:
33.特征选取方法改进
3.13.1PCA降维
Matlab程序:
clc,clearall
x=xlsread('all_bolin4.xlsx',1,['A1:
NT335']);
[pc,score,latent,tsquare]=princomp(x);
a=cumsum(latent)./sum(latent);
final=score(:
1:
20)
xlswrite('pca_jw.xlsx',final);
结果:
(1)朴素贝叶斯
(2)神经网络
(3)随机森林
(4)支持向量机
正确率为:
84.9%,参数分别为c:
2.8284,g:
0.0313
3.23.2重新自选24个特征
通过查阅相关资料以及多次试验,选取24个对识别情感贡献较大的特征,分别为:
Pcm_RMSenergy:
max,min,range,mean,std,linregerrQ,skewness
Pcm_zcr:
max,min,range,mean,std
Voiceprob:
max,min,range,mean,std,linregerrQ
F0:
max,min,range,mean,std,linregerrQ
结果:
(1)朴素贝叶斯
正确率为:
80.19%
(2)神经网络
正确率为78.3%
(3)随机森林
正确率为76.42%
(4)支持向量机
44结果分析与总结
4.14.1不同特征选取方法对比
算法\特征选取方法
PCA降维
自选24个特征
朴素贝叶斯
63.21%
80.19%
神经网络
61.30%
78.13%
随机森林
63.21%
76.42%
支持向量机
84.91%
79.25%
4.24.2不同情绪识别率对比
算法\情绪
angry
happy
neutral
sad
朴素贝叶斯
84.2%
63.0%
90.4%
85.0%
神经网络
92.1%
40.8%
95.3%
85.0%
随机森林
92.1%
40.8%
85.7%
85.0%
支持向量机
92.1%
48.2%
90.5%
85.0%
可以看出,对生气,伤心,中性的识别率都不错,但高兴的识别率较低,原因是高兴与生气两个情绪的能量,基频等特征比较相似,高兴容易归属到生气一类。