![2019年华北五省(市、自治区)大学生机器人大赛:人工智能与机器人创意设计赛论文集](https://wfqqreader-1252317822.image.myqcloud.com/cover/956/35276956/b_35276956.jpg)
4 基于BP神经网络的情感模型及实验结果(The results of theexperiment)
4.1 基于BP神经网络模型的建立
4.1.1 神经网络输入和输出的确定
考虑硬件条件提供的参数有限,不能通过生理信号和面部表情进行情感分析[10],只能检测用户的抚摸力度、抚摸位置、抚摸时间,本文采用二维情绪环状模式[18],如图 9所示。
情绪被划分为愉快度和情感强度两个维度,其中愉快度分为愉快和不愉快,强度分为中强度和高强度。本文提取四个区别明显的情感,即快乐、轻松、悲观、愤怒[17],为了保证实验的可实施性,本文将悲观情绪改为接近的悲伤情绪,让具有上述情绪的人抚摸机器人,并采集训练数据,进行人工标定。
可见,神经网络输入为13个传感器的数字量及其被抚摸时长;神经网络输出为四种情绪,人工标定为快乐(0,0,1,0)、轻松(0,0,1,0)、悲伤(0,0,1,0)、愤怒(0, 0,1,0)。神经网络训练输入和训练输出示例如表3所示。
![](https://epubservercos.yuewen.com/CA9355/18822094501534106/epubprivate/OEBPS/Images/37659_29_02.jpg?sign=1738849219-tlJz2FgCxL6roIMyOLHUXc1AVtlyb51i-0-045b576cb119059e94f04fc6c91222ca)
图9 二维情绪环状模式
Fig.9 Two-Dimensional emotional ring model
表3 神经网络训练输入和训练输出示例
Tab.3 ANN training input and output examples
![](https://epubservercos.yuewen.com/CA9355/18822094501534106/epubprivate/OEBPS/Images/37659_29_03.jpg?sign=1738849219-jDyqB3eKykMATRZpOCzdTruZipkaXONU-0-377e990cff6fe6c14aaa65d73f73cdf3)
续表
![](https://epubservercos.yuewen.com/CA9355/18822094501534106/epubprivate/OEBPS/Images/37659_30_01.jpg?sign=1738849219-oVsmLzyjgsyojVdnKGGS51IvTZJlRJin-0-827a174784a21dcf36051d8877eeddc8)
4.1.2 神经网络的搭建
本实验的神经网络输出为四种情感模型,为多分类问题,采用softmax回归,可以在识别某一分类时做出预测。损失函数采用交叉熵函数[13],如公式(1)所示。在具体实验时,神经网络的输入为26个节点,输出为4个节点,隐藏层神经元的个数为 5 个,学习率为0.2。图10为本实验的神经网络结构图。
![](https://epubservercos.yuewen.com/CA9355/18822094501534106/epubprivate/OEBPS/Images/37659_30_02.jpg?sign=1738849219-aLXjMEA19MQ80fuCWSSZT2Mu1qhZutF4-0-3f06f619a9d9034200ebc2299ce7c0ee)
图10 神经网络结构图
Fig.10 Structural Chart of Neural Network
![](https://epubservercos.yuewen.com/CA9355/18822094501534106/epubprivate/OEBPS/Images/37659_30_03.jpg?sign=1738849219-ahubh6DH5OQ3CBh8QcQN3zz2PDtGgF8v-0-969fa1c4381b51d1162ff2e6bed87b0e)
4.1.3 实验过程
BP 神经网络情感模型的实验过程主要分为五个部分[14]。第一部分是数据的读入。将已经收集好的数据按照训练输入、训练输出、预测输入、预测输出存放在文本文档中,然后再存到对应的数组中。第二部分是数据的归一化和权值的初始化。使用公式(2)进行数据的归一化,并对所有权值进行初始化,保证它们都在[0,1]。第三部分是进行神经网络的训练。对所有样本正向计算网络的输出,计算网络的总误差,然后再根据总误差反向计算修正权值,只有当训练数据被训练过20000次和总误差小于等于0.1时才可进入预测数据的检测,根据训练数据得到的权值计算预测数据的误差;只有当预测数据的平均误差小于等于0.12时,神经网络的训练才算结束;否则一直循环上述步骤,直到满足条件为止。第四部分是权值的输出,将训练的权值保存在指定的文本文档中。第五部分是将程序移植到 stm32 芯片上,进行实时的情感检测。
![](https://epubservercos.yuewen.com/CA9355/18822094501534106/epubprivate/OEBPS/Images/37659_30_04.jpg?sign=1738849219-ZHqrQgrSpfFran7n5wTGET5YyMJORt7A-0-6c2f7308455b33a83875db0cb0931db3)
InpointData为输入数据,InpointDataMIN为输入多样本数据中同类型输入数据的最小值,InpointDataMAX为输入多样本数据中同类型输入数据的最大值。
4.2 实验结果
4.2.1 神经网络训练结果
损失函数输出随训练次数增加的下降曲线如图11所示。从图11中可以看出,经过多次训练,损失函数逐渐收敛,并趋向于0。
![](https://epubservercos.yuewen.com/CA9355/18822094501534106/epubprivate/OEBPS/Images/37659_31_01.jpg?sign=1738849219-6IXIfe26im6Un9WFPekekggy8Im4KpyC-0-691e6746c84af05edc8343d74e4c0af0)
图11 损失函数下降曲线
Fig.11 Loss function descent curve
4.2.2 情绪分类实验检测结果
情绪分类实验检测结果见表 4。从表 4中可以看出准确率达 60%以上,以下对准确率不高的原因进行分析。
(1)硬件条件的局限性。应变片太小,感知力度存在误差;应变片的数量太少,部分位置检测不到。
(2)神经网络没有训练出最优解。超参数的设定需要根据神经网络反复训练来选择合适的,由于最后要将神经网络嵌入 stm32芯片中,保证情感的实时性,神经网络的规模不能太大,所以隐藏层的个数只有一层不是最优的。学习率在默认情况下是很难找到最优的,需要进行反复多次的尝试。隐藏层神经元的个数不是选择最优的,太少的神经元数量没有能力来表达任务,太多的神经元会导致训练缓慢。
(3)训练数据不够多。训练数据较少,训练过程发生过拟合的情况。
(4)抚摸动作与情感之间的对应关系还没有相关的科学证明。
表4 情绪分类实验检测结果
Tab.4 Test results of emotional classificationexperiment
![](https://epubservercos.yuewen.com/CA9355/18822094501534106/epubprivate/OEBPS/Images/37659_31_02.jpg?sign=1738849219-Mkw8p7HjxUqGJ0SwMFoR4LbyBbNQ8P1T-0-58e0e21ff94d0101e5a2255d675efa84)
续表
![](https://epubservercos.yuewen.com/CA9355/18822094501534106/epubprivate/OEBPS/Images/37659_31_03.jpg?sign=1738849219-CoIu9IwXPNAUuNKEqLiKgrqR3pv6xvpy-0-8baa898e2402790949d8246b321e8bde)