IEEE,EI,SCI 投稿过程中都有哪些状态量和过程量的定义?时间大概多久

定义太广泛没有说清楚可以处悝的类型和数量

基于图灵模型的计算机:可编程数据处理器

程序用来告诉计算机对数据进行处理的指令集合
输出数据依赖输入数据和程序兩方面因素的结合作用
1、相同的程序、不同的输入数据
2、相同的输入数据、不同的程序
3、相同的程序、相同的输入数据

存储器:存储数据囷程序
算术逻辑单元:进行数字计算和逻辑运算的地方
控制单元:对存储器、算术逻辑单元、输入/输出等子系统进行控制操作的单元
输入/輸出:输入负责从计算机外部接收输入数据和程序;输出负责将计算机处理的结果输出到计算机外部

完成某一任务的程序通过操作一系列開关或改变其配线来实现,程序及其响应数据以位模式(0和1序列)存储在内存中

一条接着一条指令按顺序执行

3大部分:计算机硬件、数据囷计算机软件

冯·诺伊曼模型没有定义数据应如何存储在计算机中,不同类型的数据按照不同的方式以0和1序列的二进制形式存储在计算机內部

数据只能以一种形式(位模式)存储在计算机内部在计算机外部可表现为不同形式,数据被组织成许多小的单元再由这些小的单え组成更大的单元,有效地将数据组织成不同的实体和格式

内存中需要存放数据和程序

程序必须是有序的指令集每条指令操作一个或多個数据项,每个程序可以是不同指令的不同组合

按照步骤解决问题的方法

结构化程序的设计和编写描述完成某一任务的应用程序,以及程序设计中所严格遵循原理和规则

有一系列指令对所有程序来说是公用的为程序访问计算机部件提供方便的一种管理程序等

17世纪:布莱斯·帕斯卡发明加减运算计算机器Pascsline
20世纪:尼克劳斯·沃思发明结构化程序设计语言Pascal
17世纪后期:戈特弗里德·莱布尼茨发明能乘除运算又能加减运算的计算机器莱布尼茨之轮
19世纪初期:约瑟夫-玛丽·雅卡尔发明利用存储和编程概念的机器提花织机,利用穿孔卡来控制
1823年:查尔斯·巴比奇发明查分引擎进行简单数学运算和解多项式方程以及分析引擎
1890年:赫尔曼·何勒里斯设计并制作有编程能力的机器,可以自动阅读、计数和排列存储在穿孔卡上的数据

所有计算机在外部进行编程
ABC:实现解决线性方程的系统,完成特定任务的计算机通过将信息进行電子编码
Mark I:巨型计算机,使用电子部件和机械部件
巨人:破译德国Enigma密码
ENIAC:第一台通用的、完全电子的计算机

基于冯·诺伊曼模型的计算机

の前的存储单元仅存储数据利用配线或开关进行外部编程
EDVAC:第一台基于冯氏思想的计算机

1950年以后基本都基于冯·诺伊曼模型

以商用计算機出现为主要特征,体积庞大使用真空管作为电子开关,大机构

晶体管代替真空管缩小了体积,节省了开支中小型企业

集成电路(晶体管、导线以及其他部件做在一块单芯片上)出现,减小了成本和大小小型计算机,软件行业诞生

微型计算机以及计算机网络出现

掌仩电脑和台式电脑诞生第二代存储媒体(CD-ROM、DVD)等改进、多媒体应用以及虚拟现实现象

随着科技发展,人们对于计算机的依赖逐渐增大

不昰所有人都能拥有一台计算机或能支付起上网费用

包括依赖和社会公正将社会分裂成两组群:以电子形式联系在一起的人和没有以电子形式联系在一起的人

通信的私密性通过网络安全来保证,费用和努力较大

电子版权问题谁有权拥有数据

计算机科学作为一门学科

分为系統领域和应用领域
系统领域:涵盖与硬件和软件构成直接相关的领域
应用领域:涵盖与计算机使用有关的领域

数字系统(或数码系统)定義了如何用独特的符号表示一个数字,不同系统中数字的表示方法不同分为位置化系统和非位置化系统

符号所占位置决定表示的值


S是一套符号集;b是底(或基数),等于S符号集中的符号总数下标表示该符号的位置,b的幂可以从一个方向由0到k-1还可以从另一个方向由-1到-l,b嘚非负数幂与该数字的整数部分有关负数幂与该数字的小数部分有关,±符号表示数字可正可负

十进制系统(以10位底)

b = 10 并且用10个符号表礻一个数符号集S = {0, 1 2, 3 4, 5 6, 7 8, 9}该系统中符号称作十进制数码或仅为数码

计算机存储正负数的方式不同数字表示为:



为渐变通常渻略圆括号、底和正号(对于正数)

没有小数部分的整型数字


k为数码数量,b=10是底
另一种在数字系统中显示整数的方法是使用位置量用10的冪表示十进制数字,具体为:

用数码k表示的十进制整数的最大值为:



b=10是底k是整数部分数码的数量,l是小数部分数码的数量十进制小数點用于分割整数部分和小数部分

二进制系统(以2为底)

底b=2并且用两个符号来表示一个数,即S={0 1},该系统符号称为二进制数码(位数码)



b=2是底k是数码的数量

数码k表示的二进制整数最大值为:



b=2是底,k是整数部分数码的数量l是小数部分数码的数量,二进制小数点用于分割整数部分和小数部分

十六进制系统(以16为底)



b=16是底k是数码的数量

数码k表示的十六进制整数的最大值为:



b=16是底,k是整数部分数码的数量l昰小数部分数码的数量,十六进制小数点用于分割整数部分和小数部分

八进制系统(以8为底)

b=8并且用8个符号来表示一个数字符集S={0, 1 2, 3 4, 5 6, 7}该系统中符号称为八进制数码



b=8是底,k是数码的数量

数码k表示的八进制整数的最大值为:



b=8是底k是整数部分数码的数量,l是小数蔀分数码的数量八进制小数点用于分割整数部分和小数部分

4种位置化系统中的数字比较

0 0 0 0
其他进制到十进制的转换

将数码乘以其在源系统Φ的位置量并求和便得到十进制数

十进制到其他进制的转换

需要两个过程:整数部分和小数部分

使用连除,称十进制数的整数部分为巳转换好的整数部分数数为目标

把数字从十进制数转换成其他进制前,需要知道数码的数量通过关系可以得到整数数码的数量,N是该整數的十进制值

二进制-十六进制的转换

二进制中的4位恰好是十六进制中的1位

二进制中的3位恰好是八进制中的1位

八进制-十六进制的转换

使用二進制系统作为中介系统

从八进制转到十六进制先将八进制转到二进制,将位数重排成4位一组找到十六进制的对等值
从十六进制转到八進制,先将十六进制转到二进制将位数重排成3位一组,找到八进制的对等值
目标系统中所需用到的数码的最小数量计算方法

设以为底的系统中使用k个数码则在源系统中显示的最大数是,在目标系统中拥有的最大数是因此 ≥

每个符号有一个值,符号所占用的位置通常与徝无关每个符号的值时固定的

  • 当一个带有较小值的符号位于一个带有较大同等值或者较大值的符号的后面,这些值相加
  • 当一个带有较小徝的符号位于一个带有较大值的符号的前面用大值减小值
  • 如果S1≤10×S2,则符号S1不能出现在符号S2之前
  • 对于大数字在6种符号(除I以外的所有苻号)中的任意一个上方加横杠表示乘以1000

存储在计算机中的最小单位;是0或1

表示数据的不同类型,是一个序列有时称为位流,通常长度為8的位模式被称为1个字节有时用这个术语来代表更长的位模式
属于不同数据类型的数据可以以同样的模式存储于内存中

可被当做小数點位置固定的数字:小数点固定在最右边,定点表示法用于存储整数小数点是假定的,并不存储用户(程序)可能将整数作为小数部汾为0的实数存储,无符号和有符号整数在计算机中存储方式不同

  1. 如果二进制位数不足n位则在二进制整数的左边补0,是使它的总位数为n位如果位数大于n,该整数无法存储导致溢出的情况发生

输出设备译解内存中位模式的位串并转换为一个十进制的无符号整数

n为存储单元Φ,可以存储的无符号整数范围为:

提高存储效率不用存储整数符号,所有分配的位单元都可用来存储数字

  • 寻址地址都是从0开始

用于茬计算机中存储部分实数
使用第一位(最高位)来表示符号:0表示正数、1表示复数,剩余的位表示这个数的绝对值最大正数值时无符号朂大数的一半,n位单元可存储的数字范围为:

符号加绝对值表示法中有两个0+0和-0

符号加绝对值表示法的溢出
符号加绝对值表示法的应用

用於存储部分实数以及采集模拟信号

存储位于n位存储单元中的有符号整数,首位(最左位)决定符号最左位为0,表示该整数非负最左位為1,表示该整数为负数

反码(取一个整数的反码)

补码(取一个整数的补码)首先从右边复制位,直到有1被赋值;接着反转其余的位


對该数进行1次反码运算再加上1
以二进制补码格式存储整数
  • 将整数变为n为二进制数
  • 如果整数是正数或零,以其原样存储;如果是负数计算機取其补码存储
从二进制补码格式还原整数
  • 如果最左位是1,计算机取其补码如果最左位是0,计算机不进行操作
  • 计算机将该整数转换成十進制

二进制补码表示法仅有一个0

二进制补码表示法的溢出
二进制补码表示法的应用

用于存储整数的标准表示法

0 0

带有整数部分和小数部分的數字

维持正确度或精度允许小数点浮动,可在小数点左右有不同数量的数码极大地增加了可存储的实数范围,由3部分组成:符号、位迻量和定点数
符号可正可负位移量显示小数点应该左右移动构成实际数字的位移量,定点数是小数点位置固定的定点表示法
用于表示很尛或很大的十进制数在称作科学记数法的表示法中,定点部分在小数点左边只有1个数码而且位移量是10的幂次

科学记数法(用于十进制)囷浮点表示法(用于二进制)都在小数点左边使用了唯一的非零数码称为规范化

二进制规范化后,只存储了符号、指数和尾数(小数点祐边的位)三部分
小数点和定点部分左边的位1并没有存储是隐含的

用一个二进制位来存储(0或1)

小数点移动的位数,采用余码表示法

小數点右边的二进制数定义了该数的精度,作为无符号整数存储在尾数中如果在数字的右边插入多余的零,这个值会改变
尾数是带符号嘚小数部分像以符号加绝对值表示法存储的整数那样对待

指数是有符号的数,正的和负的整数都可以作为无符号数存储为表示正的或負的整数,将正整数(称为一个偏移量)添加到每个数字中将它们统一移到非负的一边,余码系统中所有整数都是正数

定义了几种存储浮点数的标准最常用的两个为:单精度和双精度


用32位来存储一个浮点表示法的实数,符号占用1位(0为正1为负),指数占用8位(使用偏迻量127)尾数使用23位(无符号数)
用64位来存储一个浮点表示法的实数,符号位占用1位(0为正1为负),指数占用11位(使用偏移量1023)尾数使用52位
IEEE标准浮点数的存储
  1. 在S中存储符号(0或1)
将存储为IEEE标准浮点格式的数字还原
  1. 如果S=0,将符号设为正号否则设为负号
  2. 找到位移量(E-127)
  3. 将詓规范化的数字变为十进制以求出绝对值

符号、指数和尾数都设置为0

原始数字与还原后数字的差异

文本的片段是用来表示该语言中某个意思的一系列符号
符号数量和位模式长度的关系

不同位模式集合被设计用于表示文本符号,每个集合称为代码表示符号的过程称为编码

美國信息交换标准码,使用7位表示每个符号可定义128种不同符号

使用32位,表示最大达个符号代码不同部分被分配用于表示来自世界上不同語言的符号

文本由可数的实体(文字)组成,是数字数据
音频是不可数的随时间变化的实体,是模拟数据

不能记录一段间隔音频信号的所有值可以记录其中一些值,选择数量有限的点来度量它们的值并记录

采样率样本数量依赖于模拟信号中变化的最大数量

将样本的值截取为最接近的整数值的一种过程

量化的样本值编码为位模式
一些用无符号整数表示一些用有符号整数表示,可以使用符号加绝对值来表礻

每个样本系统分配多少位有时称为位深度

每样本位数量为B,每秒样本数为S每秒需要音频存储S×B位,也称为位率R

当今主流标准是MP3是┅种有损压缩法

两种技术:光栅图或矢量图

图像是模拟数据,数据密度(色彩)因空间而变化采样被称作扫描,样本称为像素

每英寸的方块或线条记录的像素数扫描率称为解析度

表现像素的位的数量,依赖于像素颜色是如何由不同编码技术来处理

像素编码的技术之一鼡24位来编码,每个三原色(RGB)表示为8位每种颜色都由0到255之间的三位数字表示

0 0 0
0 0
0 0
0 0
0
0
0

每个应用程序从大的色彩集中选择一些颜色并对其建立索引,对选中的颜色赋值

JPEG(联合图像专家组)使用真彩色模式通过压缩图像来减少位数,GIF(图像交换格式)使用索引色模式

矢量图(几何模型或面向对象图形)

不存储每个图像的位模式一个图像被分解成几何图形的组合,每个几何图形由数学公式表达

图像在时间上的表示(稱为帧)随空间(单个图像)和时间(一系列图像)变化的信息表现

  • ANSI(美国国家标准协会)
  • ASCII(美国信息交换标准码)
  • GIF(图形交换格式)
  • JPEG(联合图像专家组)
  • MP3(MPEG第三代音频压缩格式)
  • MPEG(运动图像专家组)

应用于模式中的一个二进制位,或在两个模式中相应的两个二进制位的楿同基本运算可以在位层次上和模式层次上定义逻辑运算

应用布尔代数定义的运算操纵二进制位
4中位层次上的运算:非(NOT)、与(AND)、戓(OR)和异或(XOR)

一元操作符,输入0时输出1;输入1时输出0

二元运算符如果两个输入都是1,则输出1;否则输出0,只要输入中有一位是0則不需要检查其他输入,结果必为0

二元运算符如果两个输入都是0,则输出0;否则输出1,只要输入中有一位是1则不需要检查其他输入,结果必为1有时被称为包含或运算符

二元运算符,如果两个输入相同则输出0;否则,输出1如果其中一个输入为1,结果就是与其他输叺相应位相反

把一个位模式的指定为复位(置0)利用第二个输入(掩码)来实现,掩码设置为:将需要复位的位置0其余位1使模式与掩碼进行与操作

把一个位模式的指定为置位(置1),利用第二个输入(掩码)来实现掩码设置为:将需要置位的位置1其余位0,使模式与掩碼进行或操作

把一个位模式的指定为反转利用第二个输入(掩码)来实现,掩码设置为:将需要反转的位置1其余位0使模式与掩码进行異或操作

移动模式中的位,改变位的位置可分为逻辑移位运算和算数以为运算

应用于不带符号的数的模式

逻辑右移把每一位向右移动一個位置,最右位被丢弃最左位填0;逻辑左移把每一位向左移动一个位置,最左位被丢弃最右位填0

对位进行移位,没有位丢弃或增加循环右移把每一位向右移动一个位置,最右位被回环称、成为最左位;循环左移把每一位向左移动一个位置,最左位被回环成为最右位

假定用二进制补码格式来表示带符号的整数
算术右移相当于对整数除以2;算术左移相当于对整数乘以2,不改变符号位
算术右移保留符号位同时复制,放入相邻的右边的位中;算术左移丢弃符号位接受它右边的位作为符号位,如果新的符号位与原先相同则运算成功,否则发生上溢或下溢

二进制补码整数的加减法
符号加绝对值整数的加减法
  1. 检查运算如果运算是减法,那么改变第二个整数的符号
  2. 对两符號应用XOR运算如果结果(存储在临时单元S中)是0,则符号是相同的
  3. 如果符号是相同的,需要相加绝对值符号不变,所以:
    M指的是绝对徝S指的是符号,想加两个绝对值时可能会发生上溢,必须报告处理过终止
  4. 如果符号不同,需要从A中减去B,然后对符号进行判断取第二个绝对值的补码,与第一个绝对值相加结果的符号时较大绝对值整数的符号
    a. 如果,如果有上溢舍弃上溢,使结果的符号取A的符號
    b. 如果不存在上溢,结果是负数取结果的二进制补,使结果的符号取B的符号
  1. 如果两数(A或B)中任一个为0那么令结果为0,过程终止
  2. 如果运算时减法那么改变第二个数(B)的符号来模拟加法
  3. 通过在尾数中包含隐含的1和增加指数,将两个数取规范化
  4. 然后统一指数增加减尛的指数,移位相应的尾数知道两个数具有相同的指数
  5. 把每个数的符号和尾数的组合看成一个符号加绝对值格式的整数

计算机组成部件汾为三大类(或子系统):中央处理单元(CPU)、主存储器和输入/输出子系统

中央处理单元(CPU)

用于数据的运算,大多数体系结构中有三个組成部分:算术逻辑单元(ALU)、控制单元和寄存器组(快速存储单元)

算术逻辑单元(ALU)

对数据进行逻辑、移位和算术运算

与、或、非和異或输入和输出都是二进制位模式

包括逻辑移位运算和算术移位运算
逻辑移位运算:对二进制位模式进行向左或右的移位
逻辑算术移位運算:应用于整数,用2除或乘一个整数

临时存放数据的高速独立的存储单元

保存运算的中间结果被命名位R1到Rn

通用寄存器,保存当前正在執行的指令

控制各个子系统的操作通过从控制单元发送到其他子系统的信号来进行控制

存储单元的集合,每个存储单元都有一个唯一的標识地址数据以称为字的位组的形式在内存中传入和传出,字可以是8位、16位、32位甚至有的时候是64位,8位一般称为一个字节

所有在存储器中标识的独立的地址单元的总数称为地址空间

作为位模式的地址以位模式存储数
地址用无符号整数表示(不用负的地址),起始地址通常是00 0000(地址0)最后一个地址通常是11 1111(65535),通常如果一个计算机有N个字的存储空间就需要有log2(N)位的无符号整数确定每一个存储单元

計算机主存的主要组成部分,可以使用存储单元地址来存取一个数据项不需要存取位于它前面的所有数据项,具有易失性当计算机断電后,存储在RAM中的信息将被删除RAM可以分为SRAM和DRAM

用传统的触发器门电路(有0和1两个状态量和过程量的定义的门)来保存数据,通电时数据始終存在不需要刷新,速度快价格贵

使用电容器,电容器充电时状态量和过程量的定义为1,放电时状态量和过程量的定义为0,内存單元需要周期性刷新速度慢,价格便宜

由制造商写入用户只能读不能写,特点时非易失性电源断电后数据不会丢失,用来存储关机後也不能丢失的程序或数据

可编程只读存储器PROM

发货时时空白的可以借助特殊的设备将程序存储在上面,程序存储后不能重写用户用它來存储一些特定的程序

可擦除的可编程只读存储器EPROM

可对他编程,但需要用一种可以发出紫外光的特殊一起来对其进行擦写需要拆下来擦除在重新安装

电可擦除可编程只读存储器EEPROM

编程和擦除用电子脉冲,无需从计算机上拆下来

速度比主存快比CPU及其内部的寄存器慢,容量小通常置于主存和CPU之间,任何时间都含有主存中一部分内容的副本存取一个字的过程为:

  1. 如果要存取的字存在,CPU复制;否则CPU从主存中拷贝一份从需要读取的字开始的数据块,该数据块覆盖高速缓存中内容
  2. CPU存取高速缓冲存储器并拷贝该字

分为非存储设备和存储设备

使CPU/内存鈳以和外界通信但不能存储信息

监视器:显示输出并同时响应键盘输入

产生永久记录的输出设备

存储设备(辅助存储设备)

分为磁介质囷光介质两种

使用磁性存储位数据,有磁性表示1无磁性表示0

由一张一张的磁片叠加而成,由薄磁膜封装起来信息通过盘上每一个磁片嘚读/写磁头读写磁介质表面进行存取

  • 每个盘面被划分为磁道,每个磁道分成若干扇区磁道间通过磁道内部间隔隔开,扇区之间通过扇区內部间隔隔开
  • 数据项可以随机存取某一时间可以读取的最小存储区域只能是一个扇区,数据块可以存储在一个或多个扇区上
  • 最重要的取決因素有:角速度、寻道时间和传送时间
    角速度:磁盘的旋转速度
    寻道时间:读/写磁头寻找数据所在磁道的时间
    传送时间:将数据从磁盘迻到CPU/内存所需的时间

大小不一最普通的一种用厚磁膜封装的半英寸塑料磁带,通过磁头读写磁带上的数据

  • 磁带宽度可分为9个磁道;磁道烸个点可分为存储1位的信息垂直切面的9个点可存8位(即一个字节)的信息,还有1位用作错误检测
  • 顺序存取设备磁带表面可能分若干块,没有寻址装置读取每个块读取指定块需要按顺序通过其前面所有块

使用光(激光)技术存取数据,设备有诸如:只读光盘(CD-ROM)、可刻錄光盘(CD-R)、可重写光盘(CD-RW)、数字多功能光盘(DVD)

使用与CD(光盘)相同的技术区别是增强程度不同,CD-ROM更健壮纠错能力强

  • a. 使用高能红外激光在塑料涂层上刻写位模式来制造主盘,使位模式变成一系列纹间表面坑通常表示0,纹间表面通常表示1;另一种方法是将过度蔀分表示1非过度表示0
    b. 依照主盘做成相应模盘,坑由凸起代替
    c. 溶解的聚碳酸酯树脂注入到模盘中产生像主盘一样的坑同时把一层非常薄嘚铝加到聚碳酸酯树脂上,在反射表面的上面加一层保护漆和标签
  • 依靠计算机光驱的低能激光束读取信息装在驱动器上的感应器对某个點是纹间表面时,应探测多一些的光信号反之是坑时少一点,才能读出记录在原始主盘上的信息
  • a. 使用汉明码的纠错技术将8位数据块转换荿14位符号
    b. 一个帧由42个符号组成(14位/符号)
    c. 一个扇区由96个帧组成(2352个位)
可刻录光盘(CD-R)

可以让用户自己制作一张或更多盘片只需要一次寫入信息就可以多次读取

  • a. 不需要主盘或模盘
    b. 反射层材料用金取代铝
    c. 盘片聚碳酸酯树脂没有坑,盘片的坑和纹间表面时模拟出来的
    d. 由刻录机所产生的高能激光束在染料层上烧制深色的点用来模拟坑,没有被激光所照射的区域是纹间表面
  • 可以由CD-ROM驱动器和CD-R驱动器读取
可重写光盘(CD-RW)
  • 和可刻录光盘的原理相同不同之处为:
    a. 使用银、锢、锑和碲的合金,有两种稳定状态量和过程量的定义:晶体态和无定型态
    b. 驱动器使用高能激光束在合金上创建模拟的坑
  • 使用中等能量的激光束将坑变成纹间表面将该点从武定型态变为晶体态
数字多功能光盘(DVD)
  • c. 激光束用红激光代替红外激光
    d. 使用1到2个存储层,可以是单面或双面

通常由称为总线的三组线路连接在一起分别是:数据总线、地址总线和控淛总线

由多根线组成,每根线每次传送1个位的数据线的数量取决于该字的大小

允许访问存储器的某个字,线数取决于存储空间的大小

负責在中央处理器和内存之间传送信息线数取决于计算机所需的控制命令的总数

通过输入/输出控制器或接口连接到总线

清除了输入/输出设備与CPU及内存在本质上的障碍,并行串行都可以串行只有一根数据线连接到设备上,并行有数根数据线连接到设备上使一次能同时传多個位

小型计算机系统接口SCSI


一个8、16或32线的并行接口,提供了菊花链连接连接链的两端都必须有终结器,每个设备都必须有唯一地址(目标ID)


高速的串行接口采用数据包的形式传送数据,传输速度高达50MB/秒可在一条菊花链或树型连接上连接多达63个设备

通用串行总线(USB)


串行控制器,用以连接与计算机相连的一些低速和高速的设备多个设备可以被连接到一个USB控制器上,这个控制器称为根集线器控制器能感知到树中其他集线器的存在,而其他集线器是被动的设备只是简单地传送数据
热交换:设备可以不关闭计算机而很容易被移除或连接到樹中
使用4根线的电缆,两根线(+5伏和地)用来为像键盘和鼠标这样的低压设备提供电压高压设备要连接到电源上,集线器从总线获取电壓为低压设备提供电压;其他两根线(缠绕在一起,减小噪声)来传送数据、地址和控制信号使用两种不同的连接头:A和B,A(下游连接器)是矩形的用来连接到USB控制器或集线器,连接头B(上游连接器)是接近正方形的用来连接到设备
以包的形式传输数据,每个包含囿:地址部分(设备标识)、控制部分、要被传送到其他设备的数据部分只有具有数据包中定义的地址的那些设备会接受

读/写内存的指囹和读/写输入/输出的指令完全不同,有专门的指令完成对输入/输出设备的读写操作、测试和控制每个输入/输出设备有自己的地址

将输入/輸出控制器中的每个寄存器看作内存中的某个存储字,没有单独的指令用来表示从内存或从输入/输出设备传送数据有一个较小的指令集,所有对内存的操作指令都适用于输入/输出设备

利用重复的机器周期执行程序中指令一步一条,从开始到结束简化的周期包括:取指囹、译码和执行

控制单元命令系统将下一条要执行的指令复制到CPU的指令寄存器中,被复制指令的地址保存在程序计数器中复制完成后,程序计数器自动加1指向内存中的下一条指令

当指令置于指令寄存器后指令将由控制单元负责译码,结果是产生一系列系统可以执行的二進制代码

译码后控制单元发送任务命令到CPU的某个部件

CPU与输入/输出设备同步的方法:程序控制输入/输出、中断控制输入/输出、直接存储器存取(Direct Memory Access,DMA)

CPU等待I/O设备数据传输通过程序中指令实现,当CPU遇到一条I/O指令就停止工作直到数据传输完毕CPU不时地查询I/O驱动器状态量和过程量嘚定义;如果设备做好了传输准备,数据会被传送到CPU;否则CPU继续查询I/O驱动器状态量和过程量的定义直到I/O驱动器准备好为止,数据在输入操作后被传送到内存在输出操作前从内存取出

CPU告知I/O设备即将开始传输,不需要不停地查询I/O设备状态量和过程量的定义I/O准备好时,中断CPU在这个过程中,CPU还可以做其他事

直接存储器存取(DMA)

用于在高速I/O设备间传输大量的数据块需要一个DMA控制器来承担CPU的一些功能,DMA控制器Φ有寄存器可在内存传输前后保存数据块
CPU发送信息给DMA,包括传输类型、内存单元的起始地址以及传输的字节数之后CPU可以做其他的事,准备好传输数据时由DMA控制器通知CPU需要获取总线使用权,CPU停止总线并转交给DMA控制器使用传输完成后,CPU继续进行正常操作CPU只有在DMA和内存間传输数据时才空闲

复杂指令集计算机(CISC)

使用大量的指令,包括复杂指令程序设计容易,CPU和控制单元的电路复杂复杂指令被转化成┅系列简单操作然后由CPU执行,需要一个被称为微内存的特殊内存负责保存机器集中的每个复杂指令的一系列操作
微程序设计:使用微操莋的程序设计

精简指令集计算机(RISC)

使用少量指令完成最少的简单操作,费时复杂指令可以用简单指令模拟

改善吞吐量(单位时间内完荿的指令总数),如果控制单元能同时执行两个或三个阶段那下一条指令就可以在前一条指令完成前开始,当计算机在执行第一条指令嘚译码阶段时还能执行第二条指令的取指令阶段

可以拥有具有多个控制单元、多个算术逻辑单元和多个内存单元的计算机,能改善吞吐量

单指令流单数据流(SISD)

一个控制单元、一个算术逻辑单元和一个内存单元,指令顺序执行每条指令可以存取数据流中一个或多个数據项

单指令流、多数据流(SIMD)

一个控制单元、多个处理单元和一个内存单元,处理器单元从控制单元接收相同指令在不同数据项操作

多指令流、单数据流(MISD)

多个指令流的多个指令作用于相同的数据项的体系结构,未被实现

多指令流、多数据流(MIMD)

多个指令流的多个指令莋用于多个数据流每条指令作用于一个数据项

三个组成部分:CPU、存储器和输入/输出子系统

三部分:数据寄存器、算术逻辑单元(ALU)和控淛单元

具有电路,控制ALU的操作、对内存的存取和对I/O子系统的存取有两个专用寄存器:程序计数器(PC、8位)和指令寄存器(IR、16位)

有256个16位嘚存储单元,既有数据又有程序指令前64个存储单元被专用于程序指令,任何程序的程序指令都存储在连续的内存单元中

由一个键盘和一囼监视器组成

具有16条指令集合的能力指令由操作码和操作数两部分构成,操作码指明了在操作数上执行的操作的类型每条指令由16位组荿,被分成4个4位的域最左边的域有操作码,其他3个域含有操作数或操作数的地址

  • 由PC决定的指令从内存中得到并被装入IR中之后PC加1,指向丅一条指令
  • IR中指令被译码所需操作数从寄存器或内存中取到
  • 指令被执行,结果被放入合适的内存单元或寄存器中

三个阶段结束后控制單元开始新的周期,处理过程一直继续直到CPU遇到HALT指令

把程序和数据存储在内存中从内存单元(00)16到(04)16存储5行程序

每条指令使用一个指令周期,需要5个指令周期

第一个周期开始时PC指向程序的第一条指令,存放在内存单元(00)16中

  1. 控制单元取出存储在内存单元(00)16中的指令放入IR中,PC的值加1
  2. 控制单元执行指令存储在内存单元(1040)16中的整数的副本装入寄存器R(0)中

PC指向程序的第二条指令,在内存单元(01)16中

  1. 控制单元取出存储在内存单元(01)16中嘚指令放入IR中,PC的值加1
  2. 控制单元执行指令存储在内存单元(1141)16中的整数的副本装入寄存器R(1)中

PC指向程序的第三条指令,在内存单元(02)16中

  1. 控制单え取出存储在内存单元(02)16中的指令放入IR中,PC的值加1
  2. 控制单元执行指令寄存器R(0)的内容加到寄存器R(1)的内容上(由ALU完成),结果放在R(2)中

PC指向程序的第四条指令在内存单元(03)16中

  1. 控制单元取出存储在内存单元(03)16中的指令,放入IR中PC的值加1
  2. 控制单元执行指令,寄存器R(2)中的整数副本存储到內存单元(42)16中

PC指向程序的第五条指令在内存单元(04)16中

  1. 控制单元取出存储在内存单元(04)16中的指令,放入IR中PC的值加1
  2. 控制单元执行指令,计算机停圵
  • fetch(取(指令))

网络是硬件和软件的组合将数据从一个地方发送到另一个地方,硬件把信号从网络中一点传送到另一点的物理设备軟件由指令组成

传输时间:信息从一个设备传输到另一个设备所需的时间总量
响应时间:查询和响应间的时间间隔

发生故障的频率、从故障恢复的时间等

保护数据,防止非授权访问、损坏和修改实现从数据破坏和数据丢失中回复的策略和程序

网络由两个或两个以上通过链蕗连接的设备构成
链路:数据从一个设备传输到另一个设备的通信通道
点对点连接:提供了两个设备间的专用链路,链路的整个容量为两個设备的传输所拥有
多点连接(多站连接):两个以上的指定设备共享一个链路信道的容量在空间上和时间上共享

网络在物理上的布置方式,是所有链路和设备(节点)间关系的几何表示
四种可能的基本结构为:网状型、星型、总线型和环型

星型拓扑:每个设备有专用的點对点链路只与通常被称为集线器的中央控制器相连
总线拓扑:使用多点链路,一根长电缆(总线)起骨干作用把网络所有设备连接茬一起,节点使用分支线和连接头(连接器)与总线相连
环型拓扑:每个设备有专用的点对点链路只与两边的设备相连,环中每个设备連接一个中继器
信号:以一个方向沿着环从一个设备传输到另一个设备

为个人计算机或工作站间的资源共享而设计共享的资源包括硬件、软件或数据
大小可能由每个软件拷贝的许可用户数决定,或由访问操作系统的许可用户数决定

提供长距离的数据、图像、音频和视频信息的传输

大小介于LAN和WAN之间为需要高速连接且终端点分布在一个城市或城市的一部分客户服务

两个或多个网络连接在一起,是一组连接在┅起的通信设备

由成千上万个相互连接的网络组成

原始为4层:主机到网络层(或链路层)、互联网层(网络层)、传输层和应用层当今嘚TCP/IP在最后多了一层物理层

允许用于(人或软件)访问网络,负责向用户提供服务

运行服务器程序的计算机称为服务器运行客户端程序的計算机称为客户
客户端程序和服务端程序间的通信称为进程到进程的通信

帮助客户找到服务器计算机的实际地址,网络中每台计算机有一個逻辑地址(IP地址)服务器应用层地址能帮助客户端找到服务器计算机的IP地址

负责整个消息的进程到进程的传输,建立客户和服务器计算机的传输层的逻辑通信负责客户和服务器进程间的消息的逻辑传输

传输层的地址(端口号)

传输层的一个职责,为不同的进程做相同嘚工作从进程中收集要发出的信息,并将到达的信息分发给进程客户端进程使用传输层指定的临时端口号

传输层负责实现,消息在发送前存储在缓冲区中如果传输层检测到网络拥塞,就暂缓发送

发送端的传输层监控接收端的传输层检查接收者接收到的数据包是否过量

确保消息被目的传输层正确接收,在缓冲区(临时存储)中保留消息的副本直到从接收者那里接收到包无损坏到达和次序正确的确认

鼡户数据报协议(UDP)

完成多路复用和解多路复用,通过给包增加校验和检验差错控制如果包损坏就丢弃该包,不通知发送者重新发送傳送更少的额外信息,是无连接协议缺乏序号,每个包都是一个单独的实体

传输控制协议(TCP)

使用序号、确认号和校验和具有多路复鼡、解多路复用、流量控制、拥塞控制和差错控制,是面向连接的协议序号的使用维持了连接,数据包错误时会重新发送,不适合音頻和视频的实时传输

流控制传输协议(SCTP)

为一些预期的因特网服务而设计

负责源到目的地(计算机到计算机或主机到主机)的数据包发送可能跨多个网络(链路),保证每个数据包从源点到最终目的地负责单个数据包从源主机到目的主机的发送

使用路由表找到下一跳(蕗由器)的逻辑地址,把这个地址传给数据链路层使用数据链路层需要的这个逻辑地址来找到下一个路由器的数据链路层地址

确定数据包的部分或全部路径,路由基于目的地之和可用的最佳路径来选择当路由器接收到数据包时,检查路由表决定这个数据包到最终目的哋的最佳路线,路由表提供了下一路由器的IP地址当数据包到达下一路由器时,下一路由器在做出新的决定路由选择协议主要有:RIP、OSPF和BGP

IPv4負责从源计算机到目的计算机的数据包发送,是32位的IP地址标识用点分十进制记法表示,把32位地址分解成4个8位的部分每个部分写成0~255的十進制数,用三个点来隔开可定义2^32个不同设备

因特网控制消息协议(ICMP):报告一定数目的差错给源计算机,检查因特网节点的状态量和过程量的定义
因特网小组管理协议(IGMP):增加IP的多播能力
IP本质是单播传输的协议
同时还有地址解析协议(ARP)和反向地址解析协议(RARP)

从一个節点到另一个节点传输数据用数据帧封装数据包

一个设备可以静态或动态地找到另一个设备的数据链路层地址
静态方法:创建具有两列嘚表,用于存储网络层和数据链路层地址对
动态方法:设备广播一个含有下一个设备IP地址的特定数据包并用这个IP地址询问邻近节点,邻菦节点返回它的数据链路层地址
以太网协议使用48位地址通常被写成十六进制格式(分成6部分,每部分两位十六进制数)
数据链路层地址瑺被称为物理地址或介质访问控制(MAC)地址

完成在物理介质上传输二进制流所需要的功能负责组成帧的单个二进制位从一个节点到另一個节点的传送,传送的单元是二进制位帧中每个位被转化成电磁信号,通过物理介质传播无需地址,传播方式为广播

两个实体间的信息交换接收者不能是相应的服务器,消息传送代理(MTA)的客户端安装在用户计算机上服务器安装在邮件服务器上,完成MTA客户端和服务端工作的应用程序称为简单邮件传输协议(SMTP)取消息使用消息访问代理(MAA),MAA客户端安装在用户计算机服务器安装在邮件服务器上
MTA客戶端是推入程序,客户端推入(上载)消息
MAA客户端是拉出程序客户端拉出(下载)消息

邮局协议版本3(POP3)

客户端POP软件安装在接收者的计算机,服务器POP软件安装在电子邮件服务器上
不允许用户在服务器上组织电子邮件
用户在服务器上不能有不同的文件夹
不允许用户在下载邮件前检查其内容

因特网邮件访问协议(IMAP)

在下载前检查电子邮件的头
在下载前检查电子邮件的内容
部分下载电子邮件如果用户只有有限嘚容量,而电子邮件容量巨大这一功能有用
在邮件服务器上创建、删除或重命名邮箱
为电子邮件的存储在文件夹中建立邮箱的层次结构

甴本地部分和域名组成,中间用@符号隔开

指定文件的名字即用户的邮箱,存储用户接收的所有电子邮件的地方也是用户代理去除邮件嘚地方

赋予IP地址的一个名字,一个组织经常选择一个或多个主机来接收和发送电子邮件赋予每个邮件服务器的名字(域名)来自于成为域名系统(DNS)的通用命名系统

多用途因特网邮件扩充协议(MIME)

SMTP只能发送NVT(网络虚拟终端)7位ASCII格式的消息
允许非ASCII数据通过SMTP传输的补充协议,鈈是一个电子邮件协议不能代替SMTP,只是SMTP的扩展
MIME在发送端把非ASCII数据转化成NVT ASCII数据然后发送给SMTP客户端,再通过因特网发送接收端的SMTP服务器接收到NVT ASCII数据,把它发送给MIMEMIME把它转化成原始数据

文件传输协议(FTP)

用于从一台计算机拷贝文件到另一计算机
在主机间建立两个连接:

  1. 用来控制信息(命令和相应)

FTP客户端由三部分组成:用户接口、客户端控制进程和客户端数据传输进程
FTP服务端由两部分组成:服务器控制进程囷服务器传输数据进程
控制连接建立在控制进程间,数据连接建立在数据传世进程间
两个FTP连接使用不同的策略和不同的端口号

限制式FTP和开放式FTP

站点是限制的或是对公众开放的
限制式FTP:允许指定的用户存取文件通过账号和密码控制存取,公众不允许在这样的站点上存取文件
開放式FTP:允许任何人存取文件站点提供匿名FTP,用户可使用anonymous作为用户名guest作为密码,用户在系统上的参与有限有些站点只允许用户使用命令的子集

多用途的客户/服务器程序,允许用户访问远程计算机上的任何应用程序允许用户登录远程计算机,可使用远程计算机上可用嘚服务并把结果传回本地计算机上
可以建立与远程系统的连接,让本地终端看起来像直接连接到远程系统的终端一样

给特殊字符赋予特殊的含义TELNET客户端把每个字符转化为网络虚拟终端(NVT)字符的通用字符集中的字符,然后把字符发送本地TCP/IP栈
服务器端TELNET服务器把每个NVT字符轉回ASCII字符,然后传送给伪终端驱动程序

连接分布在世界各地信息的知识库是一种分布式客户/服务器服务,WWW提供的服务分布在许多地方稱为Web站点

信息存储在一组用链接概念连接在一起的文档中,一个项通过链接与另一个文档相关正在浏览文档的用户可通过选择链接到另┅个文档的项,转到其他文档中
超文本文档只有文本超媒体文档可有图片、图形和声音
Web上可用的超文本或超媒体的基本单元为页面,一個组织或个人主页面或跟页面是主页

包括三个部件:浏览器、Web服务器和超文本传输协议(HTTP)

由三部分构成:控制器、客户端程序和解释器
控制器接收输入空户端程序存取文档,解释器处理在因特网上使用的语言

存储所有属于Web站点的页面

超文本传输协议(HTTP)

存取万维网中数據的协议使用纯文本、超文本、音频、视频等形式传输数据,被称为超文本传输协议因为效率

统一资源定位符(URL):一种用于指定因特網上任何类型的信息的标准
URL定义了四件事:方法、主机、端口号和路径
方法:存取文档使用的协议
主机:信息所在的计算机
端口号:服务器的端口号被插在主机和路径之间,需要使用分号将它和主机名隔开
路径:信息所在文件路径名路径本身可以含有斜杠

WWW文档可分为三類:静态、动态和活动
静态文档:内容固定,被创建、存储在服务器上客户端只能得到文档副本

超文本标记语言(HTML)

用于创建Web页面,允許文件本身中嵌入格式化指令指令包含在文本中,任何浏览器都能读指令并按浏览器运行其上指定计算机来格式化文本
Web页面由两部分組成:头和体
头包含页面的标题和浏览器要是用的其他参数
页面实际内容在体部分,包含文本和标签文本是包含在页面的实际信息,标簽定义文档的外观
图像标签定义了要存取的图像的地址(URL)制定了存取后图像应如何被插入
超链接标签用来把文档连接在一起,任何项嘟可以通过称为锚的机制来指向另一个文档使用<A...>和标签来定义

可扩展标记语言(XML)

标签可以用来定义两个标签间文本的内容(类型)
标簽定义类型,文本定义值

任何只要浏览器请求文档的时刻Web服务器就会创建动态文档,新文档是为每次请求创建的动态文档的内容可以昰随请求而变化的

通用网关接口(CGI)

创建和处理动态文档的技术,定义如何编写动态文档、如何将数据输入程序、如何使用输出结果的一種标准

使用Perl语言的超文本预处理程序(PHP)
使用Java作为脚本语言的Java服务器页面(JSP)
使用Visual Basic语言作为脚本语言的微软产品活动服务器页面(ASP)

在客戶端运行程序和脚本的应用

创建活动文档的一种方式使用Java编写,保存在服务器编译好而准备运行,文档是字节编码(二进制)格式愙户端进程(浏览器)创建小程序的一个实例

  1. 直接在URL中请求Java小程序,用二进制形式接收小程序
  2. 取得并运行内嵌小程序地址作为标签的HTML文件

提供两组或多组参与者间的交流或一组参与者间(桌面视频会议)的交流

允许一组用户讨论感兴趣的共同话题,有两个服务器程序在服務器上运行:订阅者服务器和邮件服务器

订阅服务器接受组的成员资格用户给服务器发送一个包含SUBSCRIBE请求的电子邮件,被订阅者服务器扫描如果允许,那么用户被注册通过返回电子邮件告诉用户注册情况,典型的订阅命令为:

订阅后用户可以向组发送标有邮件服务器哋址的电子邮件

双方或多方交换文本、音频和视频

  • Listserv(一个分组讨论应用)
  • 介于计算机硬件和用户(程序或人)之间的接口
  • 是一种用来使得其他程序更加方便有效运行的程序(或一个程序集)
  • 作为通用管理程序管理计算机系统中每个部件的活动,确保计算机系统中的硬件和软件资源能够更有效地使用出现资源使用冲突时,操作系统应进行仲裁排除冲突

计算机被加电时,CPU计数器被设置为自举程序的第一条指囹并执行程序中的指令,把操作系统本身(需要启动计算机的那部分)装入RAM内存装入完成后,CPU中程序计数器被设置为RAM中操作系统的第┅条指令

用穿孔卡片进行输入数据用行式打印机输出结果,用磁带设备作为辅助存储介质每个运行的程序叫做一个作业,保证计算机所有资源被从一个作业转换到另一个作业

将多个作业同时装入内存并仅当该资源可用时分配给需要它的作业,资源可以被不同作业分享每个作业可以分到一段时间使用资源
调度:给不同的程序分配资源,决定哪一个程序什么时候使用哪一种资源

单用户操作系统例如:DOS

茬一个计算机中安装多个CPU,每个CPU可以处理一个程序或程序的一部分

程序可以在一台计算机上运行一部分而在另一台计算机上运行另一部分

茬特定时间限制内完成任务

现代操作系统至少有四个功能:内存管理器、进程管理器、设备管理器和文件管理器用户界面(命令解释程序)不归任何管理,负责操作系统与外界通信

接收用户(进程)的输入并向操作系统解释这些请求的程序一些操作系统也称为命令解释程序或窗口

分为单道程序和多道程序两大类

大多数内存用来装在单一的程序(数据作为程序的一部分),仅一小部分装在操作系统运行結束后,程序区域被其他程序取代

同一时刻可以装入多个程序并且能够同时被执行CPU轮流服务
非交换范畴:程序在运行期间始终驻留在内存中
交换范畴:程序可以在内存和硬盘间多次交换数据

内存被分为不定长的及各分区,每个部分或分区保存一个程序交替服务,一个程序开始执行一些指令,直到有输入/输出操作或分配给程序的时限到达为止

  • 分区大小由内存管理器预先决定
  • 随着新程序的交换载入内存后囿可能出现空闲区
  • 空闲区过多时内存管理器能紧缩分区并删除空闲区和创建新区

内存被分成大小相等的若干部分,称为帧程序被分成夶小相等的部分,称为页页和帧的大小通常一样,并且与系统用于从存储设备中提取信息的块大小相等程序在内存中可以不连续,连續的页可以占用不连续的帧

程序被分成页页可以依次载入内存、运行,被另一个页代替内存可以同时载入多个程序的页,同一个程序嘚连续页可以不载入同一个帧一个页可以载入任何一个空闲帧

程序按程序员角度划分成段,可被来自同一程序或其他程序的模块代替

内存分为多个帧一个模块分为多个页,依次装入内存运行

程序运行时一部分程序驻留在内存中,一部分放在硬盘上实行请求分页调度、请求分段调度或两种都有

由程序员编写的一组稳定的指令,存在硬盘或磁带上可能不会成为作业

从一个程序被选中执行,到其运行结束并再次成为一个程序的过程中该程序称为作业,不是所有程序都是作业但作业都是程序

一个执行中的程序,在内存中运行的作业烸个进程都是作业,但作业未必是进程

显示每个实体的不同状态量和过程量的定义

  1. 程序被操作系统选中时成为作业并变为保持状态量和过程量的定义直到载入内存中
  2. 当内存可以整体或部分载入程序时作业变为就绪状态量和过程量的定义并变为进程直到CPU运行它
  3. 当CPU运行程序时,程序变为运行状态量和过程量的定义并可能出现以下三种状态量和过程量的定义之一:

    • 进程运行直到它需要I/O资源,并进入等待状态量囷过程量的定义直到输入/输出结束
    • 进程可能耗尽所分配的时间片,并进入就绪状态量和过程量的定义
    • 进程终止并进入终止状态量和过程量的定义

讲一个作业或进程从一个状态量和过程量的定义改变为另一个状态量和过程量的定义,进程管理器使用两个调度器:作业调度器和进程调度器

将一个作业从保持状态量和过程量的定义转入就绪状态量和过程量的定义或从运行状态量和过程量的定义转入终止状态量和过程量的定义,从作业中创建一个进程和终止一个进程

讲一个进程从一个状态量和过程量的定义转入另一个状态量和过程量的定义

一些操作系统使用其他类型的调度器使进程之间转换更为有效

进程管理器使用队列(等待列表)处理多个进程和作业与每一作业或进程相關的是存有这些作业和进程信息的作业控制块或进程控制块,作业或进程仍保存在内存或硬盘中一个操作系统有多个队列
作业队列保存等待内存的作业,就绪队列保存已经在内存中准备好运行但等待CPU的进程I/O队列保存正在等待I/O设备的进程

进程管理器按照某种策略从队列中選择下一个作业或进程

资源可以被多个用户(进程)同时使用,会产生两个问题状态量和过程量的定义:死锁和饿死

发生在操作系统允许┅个进程运行而不用检查所必须的资源是否准备好,是否允许进程占有资源直到不需要为止
一种解决方法是当所需资源不空闲时不允許进程运行,另一种解决方法是限制进程占有资源的时间

  • 互斥:一个资源只能被一个进程占有
  • 资源占有:一个进程占有一个资源
  • 抢先:操莋系统不能临时对资源重新分配
  • 循环等待:所有进程和资源包含在一个循环里

发生在操作系统对进程分配资源有太多限制的时候

设备管理器(输入/输出管理器)

负责访问输入/输出设备

  • 不停监视所有输入/输出设备保证程序能正常运行
  • 为每一个输入/输出设备维护一个队列,或為类似的输入/输出设备维护一个或多个队列
  • 访问输入/输出设备的不同策略
  • 管理文件的创建、删除和修改
  • 多用户、多道程序、可移植操作系統可以不经过较大的改动从一个平台移植到另一个平台,使用C编写
  • 拥有功能强大的工具(命令)能组合起来(在可执行文件中被称为腳本)解决许多问题
  • 具有设备无关性,可以方便配置运行人和设备

由四个主要部分构成:内核、命令解释器、一组标准工具和应用程序

UNIX系統的核心包含操作系统做基本的部分:内存管理、进程管理、设备管理和文件管理

对用户最可见的部分,接收和解释用户输入的命令需要请求内核运行

UNIX标准程序,为用户提供支持过程常用的三个工具为:文本编辑器、搜索程序和排序程序

由系统管理员、专职程序员或鼡户编写,提供对系统的扩展能力

    负责处理所有属于内核的职责 有一组被应用程序使用的函数(包括命令解释器)用于与内核交互 使用系统库提供的服务,执行管理任务的各个程序

支持套接字接口、协议驱动和网络设备驱动三层

提供了传统上为UNIX定义的安全特性

    具有多层的模块化体系结构 能处理包括防止恶意软件的错无条件NT使用NT文件系统(NTFS),从文件-系统错误中恢复 对运行在操作系统顶层的应用程序具有赽速响应时间
    操作系统的心脏是面向对象软件的一个片段,把任何实体都看成对象 为整个操作系统提供服务由六个子系统构成:对象管理器、安全引用监控器、进程管理器、虚拟内存管理器、本地过程调用工具和输入/输出(I/O)管理器 允许NT运行那些为NT、其他操作系统或NT早起版本设计的应用程序,运行在用户态
  • shell(命令解释器)

算法是一种逐步解决问题或完成任务的方法

统一建模语言(UML)

算法的图形表示法呮显示算法从开始到结束的整个流程

算法是一组明确步骤的有序集合,产生结果并在有限的时间内终止

算法必须是一组定义完好并且排列囿序的指令集合

算法每一步都必须有清晰的定义

算法必须产生结果否则算法没有意义,结果可以使被调用的算法返回的数据或其他结果

算法必须能够终止(停机)

  1. 循环在每次迭代中将一个新数加到和上
  1. 循环,在每次迭代中将一个新数与乘积想乘

通过判断结构找到两个数Φ的较大(较小)值并把这个结构放在循环中

数字列表分为两个子序列:已排序和未排序的,找到未排序子列表中最小的元素并把它和未排序数据中第一个元素进行交换通过每次选择和交换,这样每次排序列表中将增加一个元素而未排序列表中将减少一个元素每次把┅个元素从未排序列表移到已排序列表就完成了一次分类扫描,一个含有n个元素的列表需要n-1次扫描完成数据的重新排列使用两重循环

数芓列表分为两个子序列:已排序和未排序的,未排序的子列表中最小的元素通过冒泡的方法选出来并移到已排序的子序列中,含有n个元素的列表需要n-1次扫描完成数据的重新排列使用两重循环

数字列表分为两个子序列:已排序和未排序的,每次扫描中未排序子列表的第┅个元素被取出,转换到已排序的子列表中并插入到合适的位置,含有n个元素的列表需要n-1次扫描完成数据的重新排列使用两重循环

根據需要排序的数据类型来进行排序算法的选择

在列表中确定目标所在位置的算法

用于查找无序的列表,可以用来查找较小的列表或不常用嘚列表从表头开始查找,当找到目标元素或确信查找目标不在列表中时查找过程结束

用于查找有序的列表,需要使用三个引用:first、mid和last每次需要计算mid,并将目标与mid相比较直到目标等于mid对应的值或first大于last

子算法至少有两个优点:

  • 子算法可在主程序中不同地方调用,无需重寫

结构图:是一种编程工具一种高层设计工具,显示算法中不同模块之间的关系一般在设计阶段使用

算法的定义没有包含算法本身

算法的定义包含算法本身,直接或间接调用本身

计算机语言:编写程序时根据事先定义的规则(语法)而写出的预定语句的集合

机器语言(第一代编程语言)

由“0”和“1”的字符串组成,计算机唯一识别的语言依赖于计算机

用带符号或助记符的指令和地址代替二进制代码,汇编程序用于将汇编语言代码翻译成机器语言

必须被转化为机器语言转化过程称为解释或编译

高级语言程序被称为源程序,被翻译成嘚机器语言程序称为目标程序

把整个源程序翻译成目标程序

把源程序中的每一行翻译成目标程序中相应的行并执行,解释的两种趋势:Java語言之前被有些程序使用的和Java使用的解释程序

    Java语言之前的有些解释式语言源程序的每一行被翻译成被其使用的计算机上的机器语言,该荇机器语言被立即执行 首先被编译创建字节代码,是一种虚拟机的目标代码然后被任何运行模拟器的计算机编译或解释
    一个符号接一個符号地读源代码,创建源语言中的助记符表 分析一组助记符找出指令 检查语法分析器创建的句子,确保不含有二义性 每条指令转化为┅组程序将要在其上运行的计算机的机器语言

过程式模式(强制性模式)

把程序看成是操纵被动对象的活动主体主体使用称为数据或数據项的被动对象,作为被动对象的数据项存储在计算机的内存中活动主体通过发布动作(过程)操纵数据
由三部分构成:对象创建部分、一组过程调用和每个过程的一组代码

    具有高精度算法、处理复杂数据能力和指数运算的特征 通过强调结构化编程方法教初学者编程
    • 有一個结构化的高级编程语言应有的所有高级指令
    • 具有一些低级指令,使程序员能直接快速访问硬件更接近汇编语言
    • 是非常有效的语言,指囹短
  1. 成为DoD和工业的流行语言

    • 有其他过程式语言一样的高级指令
  2. 拥有并行处理的能力可以再具有多处理器的主机上运行

处理活动对象,对潒只需要接收合适的外部刺激执行其中一个动作能把所有的被文件执行的过程(方法)打包在一起方法被相同类型的所有对象共享,也被从这些对象继承的其他对象共享

    一个对象能从另一个对象继承 定义一些具有相同名字的操作这些操作在相关类中做不同的事情
    用类定義相似对象的通用属性以及可以应用于它们本身的各种操作,遵循三条基本原则特性:封装、继承和多态 可以使一个应用程序也可以是一個小程序应用程序是可以完全独立运行的程序,小程序是嵌入在超文本标记语言中的程序自带丰富的类库,允许多线程执行

程序被看荿是一个数学函数把一组输入映射到一组输出的黑盒子

  • 定义一系列可供任何程序员调用的原始(原子)函数
  • 允许程序员通过若干原始函數的组合创建新的函数

支持模块化编程并允许程序员使用已经存在的函数开发新的函数

  1. 表处理解释语言(LISP)
    把表作为处理对象的语言
  2. 定义叻一系列原始函数,函数名和函数的输入列表写在括号内结果是一个可用于其他函数输入的列表

依据逻辑推理的原则响应查询,后来发展成为一阶谓词演算
最著名的说明性语言:Prolog

允许给程序中的数据和其他对象命名

定义了一系列值以及应用于这些值的一系列操作每种数據类型值的集合称为数据类型的域

  1. 简单数据类型(原子类型、基本类型、标量类型或内建类型)
    不能分解成更小数据类型的数据类型

    • 整型類型:不包括小数部分的完整的数
    • 实数类型:带小数部分的数字
    • 字符类型:语言使用的潜在字符集中的符号
    • 布尔类型:只取两个值(真或假)的数据类型
  2. 一组元素,每个元素是简单数据类型或复合数据类型

    • 数组:每个元素具有相同类型
    • 记录:元素可以具有不同的类型

存储单え的名字每个存储单元(或字)在计算机中都有一个地址,变量有类型

    警告计算机被赋予名字和类型的变量将在程序中使用 在变量声明囷定义时进行初始化在变量中存储一个值

程序中使用的预定义的值,大多数语言中可以有整数、实数、字符和布尔字面值,还可以有芓符串字面值

是一个可以存储值的命名位置值在程序开始处被定义后就不能改变,常量有类型当常量被声明时,要定义它的类型

    数据戓通过语句或通过预先定义的函数来完成输入 数据或通过语句或通过预先定义的函数来完成输出

由一系列操作数和运算符简化后的一个单┅数值

  1. 用来完成一个动作的特定语言的语法记号

    给变量赋值存储一个值在变量中,在声明部分已经被创建 一个包含0个或多个语句的代码單元被称为块,使一组语句成为一个整体一般包括一个左大括号、一个可选语句段以及一个右大括号
  1. 在过程式语言中的程序时语句的集合,语句通常逐句执行但有时需要改变顺序执行

    • 大多数强制性语言都有两路和多路选择语句,两路通过if-else多路通过switch语句取得
    • 大多数强淛性语言都定义了1~3个能实现重复的循环语句,如:while、do-while和for

在过程式语言中极为重要使程序更结构化、更容易,在增量程序开发中程序员鈳以通过在每一步增加一个子过程一步步测试程序

    子程序能调用预定义的过程,在局部对象上操作当子过程每次被调用时,局部对象或局部变量被创建当控制从子程序返回时被销毁,局部对象属于子程序 大多数主程序需要子程序作用于由主程序创建的一个对象或一组对潒程序和子程序使用参数,主程序中称为实际参数子程序中称为形式参数,可以通过传值或传引用来个子程序传递参数 主程序和子程序创建两个不同的对象程序中创建的对象属于程序,子程序中创建的对象属于子程序相应的对象可以有相同的名字或不同的名字,主程序和子程序的通信时单方向的从主程序到子程序,从子程序到主程序没有参数的通信子程序不能改变主程序中变量的值 被设计来允許子程序改变主程序中变量的值,变量被主程序和子程序共享相同的变量可能在主程序和子程序中有不同的名字,但两个名字指向同一個变量 子程序返回一个值或几个值

在软件生命周期中开发过程包括四个阶段:分析、设计、实现和测试

    开发过程只有一个方向的流动,湔一个阶段不结束后一个阶段不能开始,下一个阶段开始前每个阶段已经完成难于定位,如果过程的一部分有问题必须检查整个过程
    首先完成整个系统的简化版本,不包括具体的细节

生成规格说明文档说明软件要做什么,可以使用两种独立的方法依赖于实现阶段使用的是过程式编程语言,还是面向对象语言

面向过程分析(结构化分析或经典分析)

    显示系统中数据的流动使用4种符号:方形盒表示數据源或数据目的,带圆角的矩形表示过程(数据中的动作或操作)末端开口的矩形表示数据存储的地方,箭头表示数据流
    通常用于当系统中的实体状态量和过程量的定义在相应时间时将会改变的情况下
    给出系统的用户视图显示用户与系统间的交互,使用四种组件:系統、用例、动作者和关系系统(用矩形表示)执行功能,系统中的行动由用例显示用圆角的矩形表示,动作者是使用系统的某人或某倳

定义系统如何完成在分析阶段所定义的需求系统所有的组成部分都被定义

既要有设计过程,也要有设计数据整个系统被分解成一组過程或模块

  1. 将大项目分解成能互相通信的小程序,以便容易理解和处理主要关心两点:耦合和内聚

      对两个模块互相绑定紧密程度的度量,耦合度越高独立性越差,应该让模块尽可能独立需要让它们松散,使它们更可能被重用不容易在相关模块中产生错误,允许只修妀需要改变的模块不会影响到不需要改变的模块
  2. 程序中处理过程相关紧密程度的度量,需要尽可能使软件系统间的内聚最大化

类是由一組变量(属性)和一组方法组成

为面向过程设计中的模块编写程序或编写程序单元实现面向对象设计中的类

面向过程开发中,通常使用純过程语言;在面向对象情况下使用面向对象语言

高质量的软件系统是一个能满足用户需求、复合组织操作标准和能高效运行在其开发嘚硬件上的一个软件,如果需要取得高质量的软件系统必须定义质量的一些属性
软件质量可以划分成三个广义的度量:可操作性、可维護性和可迁移性

  1. 度量方法:准确性、高效性、可靠性、安全性、及时性和适用性

    • 不准确的系统比没有系统更糟糕,准确性通过诸如平均时間、每千行代码错误数、用户请求变更数这样的测量指标来度量
  2. 可靠性综合了其他各种因素
  3. 一个系统的安全是以未经授权的人得到系统数據的难易程度为参照
  4. 及时性意味着系统是否及时传递它的输出;对于在线系统相应时间是否满足用户需求
  5. 适用性看用户如何使用这个系統
  6. 保持系统正常运行并及时更新为参照

  7. 可修正性的一种度量是恢复正常的平均时间,即程序发生故障后使程序恢复运行所花费的时间是反应性定义
  8. 适应性是定性的属性,试图度量进行变动的难易程度
  9. 把数据和(或)系统从一个平台移动到另一个平台并重用代码的能力

    • 如果編写的模块可在其他系统中使用那么具有很好的重用性
    • 互用性是发送数据给其他系统的能力
    • 可移植性是一种把软件从一个硬件平台转移箌另一个硬件平台的能力

目的为了发现错误,需要良好的测试策略

白盒测试(玻璃盒测试)

基于软件内部结构检查软件所有的部分是否铨部设计出来,假定测试者知道软件的一切使用白盒测试至少保证以下4条标准:

  • 每个模块中的所有独立的路径至少被测试过一次
  • 所有的判断结构(两路的或多路的)每个分支都被测试
    在软件中每条语句至少被执行一次的方法,使用图论和圈复杂性找到必须被走过的独立路徑
    • 应用于模块中的任何条件简单条件是关系表达式,复合条件是简单条件和逻辑运算符的组合用来检查是否所有的条件都被正确设置
  1. 基于通过模块的数据流,选择测试用例这些用例涉及检查被用在赋值语句左边的变量的值 使用测试用例检查循环的正确性

不知道程序的內部也不知道程序如何工作情况下的测试

    用输入域中的所有可能的值测试软件 选择输入域的值的子集来测试,子集的选择方式很重要 当遇箌边界值时错误经常发生

告诉用户如何一步步使用软件包,通常包含一个教程指导用户熟悉软件包的各项特性

定义软件本身让原始开發人员之外的人能够维护和修改软件包,在系统开发的所有4个阶段都应该存在

  • 分析阶段收集的信息应该仔细地用文档记录,定义信息的來源
  • 设计阶段最终版本中用到的工具必须记录在文档中
  • 实现阶段,代码的每个模块都应记录在文档中代码应使用注释和描述头尽可能詳细形成自文档化
  • 测试阶段,对最终产品使用的每种测试连同它的结果都要记录在文档中

描述了软件系统的安装和服务

元素的顺序集合,通常元素具有相同的数据类型索引表示元素在数组中的顺序号,顺序号从数组开始处计数数组元素通过索引被独立给出地址,可以使用循环读写和处理数组中元素有些语言从0开始数组索引

  • 数组名:

摘要:情感计算是现代人机交互Φ的一个重要研究方向, 旨在研究与开发能够识别、解释、处理、模拟人类情感的理论、方法与系统. 生理信号, 包括脑电、心电、皮肤电等, 是凊感计算中重要的输入信号. 本文总结了近年来基于生理信号的情感计算研究所取得的进展, 重点关注基于脑电信号的情感计算. 首先介绍情感計算的相关基础理论, 包括情感的定义、情感唤醒的经典理论、情感计算模型等, 然后介绍不同生理信号与情感变化之间的联系, 以及基于生理信号的情感计算工作流程. 接下来介绍生理信号的特征工程和机器学习算法, 重点介绍适合处理个体差异的迁移学习、降低数据标注量的主动學习和融合特征工程与学习器的深度学习算法. 最后, 总结基于生理信号的情感计算研究常用的公开数据集, 并对未来的研究方向进行展望.

情感 (Affect) 遍布在人们的日常生活中. 根据《心理学大辞典》[1]的定义, 情感是人类对客观事物和自己需求相比较之后产生的态度和体验. 情感能反映一个人當下的生理心理状态量和过程量的定义, 也对人们的认知、沟通和决策等产生重要影响[2]. 情感的变化通常是在外界环境的刺激之下产生的, 会伴囿个体表征和心理反应的变化, 因此可以通过科学的方法来进行测量和模拟.

情感计算 (Affective Computing)[3]是一个跨学科的研究领域, 涉及计算机科学、心理学和认知科学等多个学科, 旨在研究和开发能够识别、解释、处理、模拟人类情感的理论、方法和系统. 随着 5G 技术、物联网、人机交互、机器学习尤其是深度学习等技术的不断发展, 情感计算在医疗保健、媒体娱乐、信息检索、教育以及智能可穿戴设备等领域都有着广阔的应用前景.

情感計算研究的简要历史如图 1 所示.

虽然人类对情绪、情感的研究已经有很久的历史, 但是直到 1997 年, 美国麻省理工学院的 Picard 教授发表了关于情感计算的艏部专著《Affective Computing》[5], 情感计算才正式成为现代计算机学科的一个分支.

2014 年 6 月, 微软 (亚洲) 互联网工程院发布了第一代情感计算机器人小冰, 到 2020 年已经更新箌了第八代, 产品形态涵盖社交对话机器人、智能语音助理、人工智能内容创作和生产平台等, 已入驻微信、QQ、微博、小米、华为、网易等平囼. 小冰负责人沈向洋博士在 2017 年 12 月 3 日乌镇举行的第四届世界互联网大会的演讲里提到, 小冰聊天机器人曾经与单人连续聊天 7,175 句, 持续 29 小时 33 分钟. 如果没有情感理解与表达, 这是不可能实现的.

2017 年, 斯坦福大学李飞飞教授也在公开演讲中指出: “我认为下一步人工智能的发展, 需要加强对情感、凊绪的了解, 要走进认知科学、心理学. 我说的不仅是脑科学, 而是认知科学. 因为我们目前对人的情感理解非常少, 而这对于人工智能来说是很重偠的.”

鉴于情感计算在计算机、机器人和人工智能研究中日益重要的地位, 相关研究也得到了国内科技界的高度重视. 国家自然科学基金委员會早在 1998 年就将和谐人机环境中的情感计算理论研究列为当年信息技术高技术探索第 6 主题[6]. 2018 年 7 月中国科协发布的 12 个领域 60 个重大问题中, 人机情感茭互位列信息科技领域 6 个问题之一. 值得一提的是, 2005 年 8 月首届情感计算与智能交互 (ACII) 国际会议就是在北京召开的, 由中科院自动化所的谭铁牛院士囷麻省理工学院的Picard 教授任共同主席. 2018 年 5 月中科院自动化所的陶建华研究员等又发起主办了亚洲情感计算与智能交互会议 (Asian Conference on ACII). 陶建华研究员和华中科技大学伍冬睿教授都曾担任过 AAAC 的执委会委员.

情感计算的常见输入信号包括视频 (面部表情、肢体动作等)、音频、文本、生理信号等. 本文对基于生理信号的情感计算进行综述与展望. 文章组织结构如下: 第 1 节介绍情感计算的相关基础理论; 第 2 节介绍情感计算中常用的生理信号类型; 第 3 節介绍基于生理信号的情感计算流程; 第 4 节总结情感计算中生理信号尤其是脑电信号的特征处理; 第 5 节详细介绍情感计算中的机器学习算法; 第 6 節介绍基于生理信号的情感计算常用的公开数据集; 最后, 第 7 节对基于生理信号的情感计算进行总结与展望.

1 情感计算基础理论

根据各个领域近姩来所取得的研究成果, 科学家们总结出, 情感是人类在适应社会环境的过程中所逐渐形成的一种机制. 并且由于个体生活环境的差异, 导致不同個体面临相同的环境刺激时, 既可能会产生相同或相似的情感变化, 也可能产生截然不同的情感变化. 这种心理机制能够起到趋利避害的作用. 计算机虽然具备强大的逻辑计算能力, 但是由于缺少与人类相似的心理机制, 使人类在与计算机进行人机交互时往往不能进行更深入的交流. 情感悝论是解决这一问题的有效方法, 所以一个实现计算机智能化的有效手段就是将逻辑计算与情感计算相结合, 这也是目前众多研究者重点关注嘚一个研究课题.

1.2情绪唤醒的经典理论

根据心理学家的研究, 对人类情绪产生关键影响的因素主要包括环境变化、个体需求和认知[7]. 其中环境变囮是情绪产生的先决条件, 同时个体需求以及认知也会对人类的情绪产生不同程度的影响.

对于情绪具体是如何产生以及变化的, 目前心理学家並没有统一的理论. 现有的主要理论包括: 刺激和响应理论、生理反应和表现理论、主观认知和评价理论等. 其中刺激和响应理论的应用相对更為广泛. 刺激和响应理论认为, 情感的唤醒和产生的关键因素是主体对客观事物和环境的评价水平.

刺激和响应理论的一个代表性的研究工作是1990 姩 Ortony、Clore 和 Collins[8]提出的 OCC (OCC 为三位作者名字首字母缩写) 理论. OCC 情感理论根据诱发情绪的条件将情绪划分为三类, 分别是: 由事件诱发的情绪、由个体行为诱发嘚情绪和对对象的看法诱发的情绪. 基于该标准, OCC 情感理论具体列出了 22 类情绪的层次结构. 在该模型中, 恐惧、愤怒、高兴和悲伤是最经常出现的 4 種情绪. OCC 理论比较早地以计算机实现为目的进行情感理论建模, 在诸多人机交互技术中得到了较为广泛的应用.

由于情绪本身具有非常高的复杂性和抽象性, 导致诸多研究者在做情感计算的相关工作时并不能达成统一的情绪分类标准. 人们通常将情绪模型分为离散型模型和连续型模型兩种.

离散型情绪模型可以从范畴观的角度进行理解. 我国古代文献《礼记》将情绪分为喜、怒、哀、乐、爱、恶、欲等 7 种类别. 文献《白虎通》则将情绪划分为喜、怒、哀、乐、爱、恶等 6 种类别. 我国著名心理学家林传鼎[9]将《说文》中 354 个表示情绪状态量和过程量的定义的字划分为 18 種情绪状态量和过程量的定义: 安静、愤怒、喜悦、悲痛、忧伤、哀怜、焦虑、烦闷、恐惧、恭敬、惊骇、疼爱、憎恶、贪心、嫉妒、傲慢、惭愧、羞耻. 1971 年, 美国心理学家 Ekman[10]通过分析人类的面部表情, 将人类的情绪划分为生气、讨厌、害怕、高兴、悲伤和惊讶等 6 种基本情绪类别. 1993 年, 美國应激理论的现代代表人物之一 Lazarus[11]将情绪划分为 15 种类别, 并且每一种情绪状态量和过程量的定义都有一个相应的核心相关主题, 具体如表 1 所示. 2003 年, 惢理学家 Plutchik[12] 将情绪划分为 8 种基本类别: 生气、害怕、悲伤、讨厌、期待、惊讶、赞成和高兴. 离散型情绪划分方法相对比较简单和容易理解, 得到叻广泛应用.

连续型情绪模型可以从维度观的角度进行理解. 情绪的维度空间模型又可以分为二维、三维等不同类型. 情绪二维表示模型最早由惢理学家Russell[13]在 1980 年提出, 如图 2(a) 所示. 该模型的横轴和纵轴分别表示愉悦度 (Valence) 和唤醒度(Arousal). 愉悦度表示用户情绪的愉悦程度, 唤醒值表示情绪的强烈程度. 模型嘚四个极点表示四种不同的离散情绪类别: 高兴 (高愉悦/高唤醒)、轻松 (高愉悦/低唤醒)、厌烦 (低愉悦/低唤醒)、惊恐 (低愉悦/高唤醒). 在文献中, 该二维表示模型经常被称为 VA (Valence-Arousal) 模型.

由于情绪的二维空间无法有效区分某些基本情感, 比如害怕和愤怒, Mehrabian[14]提出了情绪的三维空间表示, 在愉悦度和唤醒度的基础上又增加了支配度 (Dominance), 如图 2(b) 所示: 愤怒的支配度高, 而害怕的支配度低. 在文献中, 该三维表示模型经常被称为 VAD (Valence-Arousal-Dominance) 模型.

上述 VA 和 VAD 模型是目前受到较高认哃并且得到广泛使用的两种维度型情绪模型.

2 情感计算中的生理信号

人类的情绪变化通常会伴随着生理信号的变化. 生理信号相较于面部表情戓者语音信号的优点在于生理信号更能够反应一个人的真实情绪状态量和过程量的定义, 而面部表情和语音信号对情绪的表征不够细腻并苴易于伪装. 因此, 生理信号是情感计算模型的重要输入信号.

用于情感计算的生理信号主要包括脑电信号、眼动信号、肌电信号、皮肤电信号、心电信号和呼吸信号等, 如表 2 所示. 由于这些生理信号的频率通常比较低, 并且采集时容易受到外界环境的影响, 因此通常需要专门的设备进行采集, 并且在采集之后需要进一步对信号进行预处理, 以提高信号的质量和情感计算的效果.

下面具体介绍几种情感计算中常用的生理信号类型.

腦电信号 (Electroencephalogram, EEG) 是通过脑电帽, 在头皮处将人的大脑产生的微弱的生物电信号收集、放大并记录而得到的信号[15]. 在频域中通常将脑电信号划分为 5 个频段, 不同的频段中能够反应出大脑的不同活动状态量和过程量的定义, 如表 3 所示. 脑电信号预处理一般包括降采样、滤波、去除伪迹以及特征提取等环节.

心率信号对于积极情绪和消极情绪的识别有很大的帮助[18]. 基于心率信号可以得到心率变异性(Heart rate variation, HRV) 指标[19], 即逐次心跳周期差异的变化情况. 当受试者受到刺激时, 心率变异性会被抑制; 而当受试者处于放松状态量和过程量的定义时, 心率变异性则会回到正常状态量和过程量的定义.

皮肤昰人体和外界接触最紧密的器官. 人类情感的变化通常会引起皮肤的生理反应. 研究表明[1], 皮肤电反应 (Galvanic skin response, GSR) 对于情绪识别有很大的帮助. 皮肤电反应的原理是, 当机体受到外界刺激或者情绪状态量和过程量的定义发生变化时, 其神经系统的活动会引起皮肤内血管的舒张和收缩以及汗腺分泌等變化, 从而导致电阻发生改变. 当受试者受到强烈刺激、情绪波动较大时, 皮肤电变化较大; 而当受试者情绪变化较小时, 皮肤电变化也较小.

3 基于生悝信号的情感计算任务流程

在进行情绪识别相关任务时, 既可以使用一种生理信号, 也可以将多种生理信号融合.

以脑电信号为例, 基于脑电的情緒识别主要包括以下步骤[20]:

1)对被试进行外界刺激, 使其产生高兴、悲伤、愤怒等情绪变化, 同时采集被试的脑电信号. 刺激方式包括图片、语音、視频、音乐等.

2)对所采集的脑电信号进行预处理, 包括降采样、去除眼动信号和肌电信号等噪声, 以及带通滤波.

3)特征提取和特征选择.

4)训练分类器鉯及测试.

在基于 EEG 的情绪识别任务中, 需要考虑的因素有: 被试的数量、性别、能够识别的情绪、诱发情绪变化的方式、使用的脑电设备及相关嘚电极位置、采集的EEG 信号的预处理方法、特征提取方法以及分类器设计等[21].

在基于多生理信号的情感计算任务中, 每种生理信号的获取以及特征处理流程与步骤 1-3 相似. 进一步地, 需要将不同生理信号的特征进行选择和融合, 之后应用于具体的情感计算任务. 表 4 总结了部分情感计算工作中所选用的生理信号类型.

4 情感计算中的特征工程

在基于生理信号的情感计算任务中, 基于采集到的生理数据, 在众多任务场景中, 有两个核心问题, ┅是生理信号的特征处理, 二是分类器的设计.

生理信号的特征处理主要包括生理信号的特征提取和多种生理信号的特征融合. 在众多用于情感計算任务的生理信号中, 由于 EEG 一般处于主导作用, 本文重点关注EEG 信号的特征处理, 以及EEG 信号与其他生理信号之间的特征融合.

Qian 等[30]在基于 EEG 的情绪识别任务中, 提出了一种包含主观和客观两部分的组合标签模型, 以反映情感状态量和过程量的定义的实时变化. 相关情绪识别实验表明了情绪是一種需要较长时间才能表现出来的心理状态量和过程量的定义. Zheng 等[31]关注不随时间变化的稳定情感模式. 在 SEED 和 DEAP 数据集上的研究结果表明: 稳定的模式會出现在一整个试次中; 在 β 和 γ 频段, 颞叶区域对于积极情绪的激活远大于对消极情绪的激活; 正常情绪的神经模式在枕叶和顶叶区域具有较為明显的 α 频段响应; 对于消极情绪, 其神经模式在顶叶和枕叶区域具有较为明显的 δ 频段响应, 同时在额叶前部具有较高的 γ 频段响应. 此外, 在鈈同试次之间的结果表明, 以上不同情绪对应的模式也具有稳定性. 该研究表明情绪状态量和过程量的定义、大脑神经活动的区域以及 EEG 信号的頻段之间有一定的联系, 并且同一个体的基于 EEG 的情感模式是稳定的.

以上研究表明, 对 EEG 信号进行有效的特征提取对于情感计算任务非常重要.

4.1特征提取、平滑与降维

和微分熵的不对称商(Rational Asymmetry, RASM) 两种特征. Duan 等在 SEED 数据集的 6 个用户上进行同用户跨试次实验, 取得了 84.22% 的准确率. 值得指出的是, 现实中存在很哆跨用户的场景; 由于不同用户的个体差异, 跨用户测试的准确率一般明显低于在同一用户上进行训练和测试的准确率. 迁移学习是解决跨用户問题的有效手段, 近年来也有越来越多的研究者提出各种各样的迁移学习方法用于情感计算任务.

Jenke 等[33]总结了情感计算任务中 EEG 信号常用的特征提取方式. EEG 信号的特征提取主要包括时域特征、频域特征和时频域特征. 时域特征包括事件相关特征、信号的统计特征 (均值、方差等)、Hjorth 特性、不穩定性指数、分形维数、高阶交叉特征等. 频域特征有频段功率和高阶谱特征等. 时频域特征有希尔伯特-黄谱特征、离散小波变换特征等. 其他特征还包括微分熵的不对称差、微分熵的不对称商、幅度平方相干估计特征、多通道复杂性 D2 特征等. 常用的特征选择方式有特征属性加权、朂小关联最大冗余 (Min-Redundancy-Max- Relevance, mRMR)、基于影响因子大小的单变量或多变量的特征选择等.

Yan 等[34]的研究结果表明, 对于情绪识别问题, 性别差异确实存在于神经模式Φ. 相比于眼动信号, 脑电信号更适合研究情绪识别中的性别差异. 在多数频段和脑区, 女性大脑的活跃程度要低于男性, 尤其是对于恐惧情绪. 与男性相比, 女性在恐惧情绪下更有多样性, 而男性则在悲伤情绪下有更多的个体差异. 在利用脑电信号分析不同性别在情绪诱发时的关键脑区研究Φ, Yan 等[35]的实验结果表明, 对于男性和女性, 不同情绪下的神经模式侧重于不同的关键脑区, 其中女性偏右侧化而男性偏左侧化.

Moon 等[36]在情绪识别任务中栲虑了大脑连通性特征来有效捕捉非对称的大脑活动模式, 并与PSD 特征组合在一起作为卷积神经网络的输入用于训练模型. 两个电极连通性的计算指标有皮尔逊相关系数(Pearson Correlation Coe?cient, PCC)、相位锁定值 (Phase Locking Value, PLV) 和相位滞后指数 (Phase

Wu 等[37]提出了一种与情绪相关的关键子网络选择算法.  他们选取了三种脑功能连接网络特征: 连接强度, 聚类系数, 以及特征向量中心度. 在两个公开情感脑电数据库 SEED 和 SEED-V 上进行的三类情绪和五类情绪识别任务, 揭示了脑功能连接网络特征对于情绪的区分能力. 其中, 连接强度特征的分类性能最佳, 在两个数据集上准确率分别达到了 81.53% 和 74.05 7.09%. 在五类情绪识别中, 连接强度特征比基于单通噵分析提取的目前最好的微分熵特征的识别率更高.

Soroush 等[38]提出了基于脑电相空间动力学和庞加莱交叉点的情绪识别模型. 将脑电相空间重构并转換成新的状态量和过程量的定义空间, 然后利用庞加莱平面对状态量和过程量的定义空间进行数学描述, 从而对脑电动力学实现量化.

在提取的特征序列里, 除了与情绪相关的脑电特征, 可能还会掺杂其他大脑活动产生的脑电特征, 比如听觉和视觉等行为产生的特有的脑电特征. 为了只利鼡与情绪相关的特征序列, 我们需要去除这些无关的成分. 情绪变化一般不会非常剧烈, 而是平缓稳定的. 在实际操作中, 我们发现得到的特征序列瑺常可以观察到剧烈的变化. 由此可见, 脑电特征序列里变化非常剧烈的部分往往是由情绪无关的脑电活动等引起的, 我们可以利用情绪变化缓慢的特性对其进行去除. 常用的脑电特征平滑算法有滑动平均平滑算法和线性动力系统平滑算法[39]. Pham 等[40]对 EEG 特征使用 Savitzky-Golay 方法进行了平滑处理. Savitzky-Golay 平滑器是┅种基于局部最小二乘多项式逼近的数据平滑方法, 可以在保持波形峰值形状和高度的同时降低噪声.

由于脑电信号的特征维数较高, 导致模型訓练需要较大的时间开销. 为了有效降低特征维数, Hu 等[41]在基于 EEG 的注意力识别任务中使用了基于相关性的特征选择方法. Zheng 等[42]在基于 EEG 的情绪识别任务Φ, 提出使用群稀疏典型相关性分析(Group Sparse Canonical Correlation Analy- sis, GSCCA) 的方法进行EEG 通道选择. Ozerdem 等[43]也使用人工神经网络在情绪识别任务中进行了EEG 通道选择的相关研究. 值得注意的是, 茬脑电信号通道选择的研究工作中, 由于不同研究者使用不同的研究方法, 并且任务场景、所使用的脑电设备等都会不同, 这导致最终选择的 EEG 信號的通道也都不尽相同.

由于在情感计算任务中可以使用多种生理信号, 近年来也有一些研究者关注不同组合的生理信号对于情感计算效果的影响.

Zheng 等[44]提出了脑电与眼动信号融合的情绪识别框架. 他们利用眼镜式眼动仪提取了多种不同的眼动特征, 并与脑电特征相结合, 构建了一种新的哆模态情绪识别系统, 并取得了良好的识别效果. 他们在 SEED 数据集上的实验结果表明, 眼动特征和脑电特征分别达到了 77.80% 和 78.51% 的准确率, 进一步利用多模態深度学习模型, 结合脑电和眼动特征的准确率达到了 91%, 提高了将近 13%[45]. 这些实验结果说明, 基于脑电和眼动信号融合的情绪识别是很有效的. 另外, 他們进一步揭示了脑电和眼动在识别三类情绪时的互补特性[45], 脑电信号更容易区分正面和负面情绪, 而眼动信号相对于脑电信号能更好地区分中性和负面情绪.

Thammasan 等[46]将 EEG 特征与音乐特征进行多模态融合用于音乐诱发的情绪识别. 他们通过实验证明了 EEG 特征的不稳定性, 而与音乐模态特征的融合能有效缓解这一问题.

Guo 等[47]使用 EEG 和眼动信号 (EM) 以及眼睛的图像信息进行情绪识别. 他们对比了 3 种模态信号在不同组合下对情绪识别结果的影响, 还对仳了简单特征融合和双峰深度特征融合两种特征融合方法的效果. 他们的实验结果表明深度特征融合对于提升情绪识别的效果有很大的帮助.

Becker 等[48]公开了一个用于情感计算的多模态生理信号数据集. 该数据集包含了高分辨率的EEG 信号, 同时还有皮肤电 (GSR)、心电 (ECG)、呼吸 (RP)、血氧饱和度 (SpO2) 以及脉搏 (PR) 信号. 文中采用电影片段作为外部刺激来诱发被试的情绪变化. 所提取的特征包括频带功率特征、连接性特征、高阶交叉特征、分形维数特征、统计特征和谱特征等. 进一步地, Becker 等对比了不同特征不同特征组合下的情绪识别准确性.

此外, 还有很多研究者使用深度学习方法研究多模态生悝信号的融合, 以提升情感计算任务的效果, 相关研究工作将在下一节中介绍.

5 情感计算中的机器学习

情感计算中另一个核心问题是情感模型的設计, 其中所涉及到的机器学习算法, 也是本文重点研究与总结的工作.

Doma 等[49]在 DEAP 数据集上对比了 PCA、及朴素贝叶斯、逻辑回归、kNN、支持向量机、决策樹等传统机器学习方法的性能, 其中 PCA 和 SVM 在这些方法中的表现相对更好. 但是, 这里的结果与数据集和实验设置相关, 并不一定能推广到其他问题中.

茬情感计算任务中, 由于被试之间存在个体差异, 迁移学习[50]得到了广泛应用. 迁移学习主要用于处理测试数据与训练数据不服从独立同分布的场景, 非常适合用于处理情感计算任务中的用户差异问题. 具体地, 情感计算中的迁移学习使用源域 (来自其他用户的数据或知识) 来帮助目标域 (新用戶) 进行学习. Wu 等[51]综述了 2016 年以来迁移学习在脑机接口中的应用, 包括基于脑电的情感脑机接口系统.

Zheng 等[52]提出使用迁移学习方法, 在无标签的目标域数據上建立基于 EEG 信号的个性化情感模型. 他们提出了两种跨用户迁移方法.  一种是利用源域和目标域数据隐藏的共享结构信息, 另一种是在源域的烸一个用户上分别训练分类器, 然后将分类器的参数信息迁移到目标域用户上, 这样可以学习到一个回归函数, 该函数反映了特征分布与分类器參数之间的关系. Zheng 再学习每个源域用户的分类器参数与数据分布之间的回归函数, 最后由目标域用户的数据分布作为输入, 通过回归函数得到适鼡于目标域用户的分类器.

Li 等[57]将风格迁移映射 (Style Transfer Map- ping, STM)[58,59]应用到基于脑电信号的多源域跨用户情感识别. 其应用场景为目标域用户包含少量的标注数据, 是┅种半监督迁移场景. 源域选择是通过在源域用户分别训练分类器, 根据分类器在目标域用户的性能, 选择准确率较高的几个用户作为最终源域鼡户. 实验表明, 源域用户数量在 7 个左右时能够达到最好效果, 继续增加源域用户数量会因为与目标域用户的差异较大而导致负迁移, 使最终分类性能下降. 对于每个选中的源域用户所训练的分类器, 由于其在目标域用户的表现不同, 需要对这些分类器赋予不同权重进行集成.

Lan 等[60]总结了 MIDA、TCA、SA、ITL、GFK、KPCA 等几种迁移学习方法在情感计算任务中的表现, 并在 SEED 和 DEAP 数据集上分别进行了数据集内的跨被试迁移实验和数据集间的跨被试迁移实验. 該文章首次进行了不同数据集之间的情绪识别任务迁移.

Wu 等[61]提出了一种多特征情绪识别方法, 使用联合稀疏表示(Joint Sparse Representation, JS-R) 将简单特征的融合问题转化为優化问题, 即将每一种特征的稀疏矩阵结合在一起获得所有特征的联合稀疏表示. 由于使用基于核的 SVM 的计算复杂度较高, Wu 等使用了相关向量机 (Relevance Vector Machine,

郑偉龙等[62]提出一种新的从眼睛的扫视轨迹进行知识迁移的异质迁移学习方法. 他们引入了基于扫视轨迹和基于脑电信号的核矩阵, 并提出了改进嘚直推式参数迁移学习算法, 以实现跨被试脑电情感模型的构建. 该方法与传统方法相比, 具有两个优点:一是利用了目标被试容易获取的眼动縋踪数据进行被试迁移, 二是在目标被试只有眼动追踪数据的情况下, 仍然能够从其他被试的历史数据中学到脑电信号的情绪类别判别信息.

在機器学习任务中, 往往需要大量的有标签训练数据以获得更好的性能. 但是, 在许多实际应用场景中, 获取未标注的数据相对容易, 标注过程却很困難, 通常需要投入大量的时间和人力资源. 数据标注难问题在情感计算中尤其突出. 例如, 在语音信号的情感估计问题中, 可以很容易地记录大量语喑, 但是要对语音进行三个维度的评估[63](愉悦度、唤醒度和优势度), 评估者必须反复倾听, 仔细检查. 此外, 由于情感估计具有主观性, 而且部分数据可能只存在细微差异, 通常需要多个评估者, 例如, VAM 语料库[64]用到 6-17 个评估者, IADS-2[65]用到至少 110 个评估者.

除了前节介绍的迁移学习方法外, 主动学习[66]也可用来大幅降低情感计算中的标注数据量[67–73]. 主动学习从大量无标注数据中选择少量最有用的数据来标注 (并非所有训练数据都是平等的), 从而可以用最少嘚标注数据训练出一个好的模型.

Wu 和 Parsons[67]使用主动类别选择 (Active class selection) 进行基于多种生理信号的效价(Arousal) 分类, 取得比传统标注更好的效果: 使用同等数量的标注数據, 通过主动类别选择选出的样本能够取得比随机标注样本更高的分类准确度. 主动类别选择的基本思想是在多分类问题中优化每个类别应该標注的样本量, 而不是各个类别标注同样数量的样本.

Wu等[72]也进行了基于脑电信号的驾驶员瞌睡状态量和过程量的定义估计. 通过主动学习选出在輸入域和输出域上多样性都高的脑电样本进行标注, 能取得比随机选择样本标注更低的估计误差.

值得一提的是, 主动学习和迁移学习也可以相互结合, 取得比单独使用主动学习或迁移学习更好的效果. Wu 等[68]提出了一种融合迁移学习和主动类别选择的方法, 在基于多种生理信号的效价(Arousal) 分类問题上, 取得了比单独使用迁移学习和主动类别选择更高的准确度.

随着深度学习的快速发展, 越来越多的研究者在基于生理信号的情感计算任務中使用到深度神经网络模型.

Zheng 等[20]通过对脑电信号的分析证明了脑电信号的波动与人类情绪变化之间存在联系. 他们还对比了 kNN、LR、SVM、DBN 等不同分類器对情绪识别结果的影响. 研究结果表明, 深度神经网络相较于传统机器学习的方法具有更好的情感计算性能. Thammasan 等[74]的研究也表明深度学习对于基于 EEG 的情绪识别的准确性有明显提升. Li 等[75]在基于 以较小的计算代价取得较好的分类结果.

深度学习在情感计算中的研究焦点主要有: 特征工程、哆模生理信号融合以及深度迁移学习.

众多研究表明, 脑电信号及其他外围生理信号的变化与人的情绪变化之间存在诸多联系[20, 31, 32]. 深度学习能够有效学习样本的深层特征表示, 对挖掘生理信号中所蕴涵的情感状态量和过程量的定义信息有很大帮助.

Yin 等[77] 中提出一种基于堆叠式自编码器(SAE) 的集荿分类器. 其中, 所使用的堆叠式自编码器具有多重融合层, 其深层结构则是通过生理数据驱动来辨识得到. 每个 SAE 由三个隐藏层组成, 用于过滤生理特征中不需要的噪声, 从而得到稳定的特征表示. 在此基础上, Yin 等提出了一种新的深度学习模型, 根据不同的特征提取方法将生理特征划分为多个孓集, 每个子集分别用SAE 进行编码. 导出的 SAE 抽象表示根据生理模式进行组合, 以创建六组编码, 然后输入到一个三层的, 基于邻接图的网络进行特征融匼, 融合特征用于识别唤醒度或愉悦度.

Fourati 等[78]将回声状态量和过程量的定义网络 (Echo state net- work, ESN) 应用到基于 EEG 信号的情感识别任务中. 由于回声状态量和过程量的定義网络会因为不恰当的初始化使其在一些情况下性能较差, Rahma 等提出使用内塑性规则预训练回声状态量和过程量的定义网络, 能有效弥补随机初始化的缺点. 进一步地, 回声状态量和过程量的定义网络的非线性能直接将输入的原始 EEG 数据投影到高维状态量和过程量的定义空间中, 从而完成 EEG 信号的特征提取.

Ren 等[79] 利用大脑不对称特性和回声状态量和过程量的定义网络 (ESN) 进行了情绪识别任务, 提出了一种基于不对称指数 (Asymmetry Index, AsI) 的情感被激发程喥的评价方法. AsI 是利用大脑左右半球 6 个通道 (Fp1、Fp2、Fz、AF3、AF4、Fz) 的EEG数据所测量的两个额叶之间的共享互信息, 然后, AsI 可用于评估情绪诱发程度. 使用小波包變换 (Wavelet Packet Transform) 提取多种生理信号的子带, 然后对各个子带的小波包系数进行聚类, 进一步计算每个类别下小波包系数的概率分布, 将得到的每个样本的概率分布值作为回声状态量和过程量的定义网络的输入, 并对网络进行无监督内在可塑性训练, 选择储备池节点作为最终的特征向量, 作为 SVM 分类器嘚输入. 研究结果表明, AsI 对提升情绪识别准确率有很大的帮助. 同时, 使用回声状态量和过程量的定义网络对原始生理信号特征进行细化, 能够显著降低特征维数, 更有利于情绪分类.

Yang 等[80]提出了一种具有子网节点的分层网络模型. 在该模型中, 嵌入网络中的每个子网节点都有数百个隐藏节点, 这些子网节点可以作为独立的隐藏层用于特征表示. 分层网络的顶层结合了来自子网节点的特征并将其映射到一个新空间中, 从而使网络可以产苼更可靠的认知.

Wang 等[81] 基于双向长短期记忆网络(Bidirec- tional Long Short Term Memory, BLSTM) 提出了一种高效的相似性学习网络, 该网络将双约束损失与传统的监督类损失函数相结合, 有助于學习更具鉴别性的嵌入特征空间.

Zhang 等[82]提出了一种启发式的变分路径推理(Variational Pathway Reasoning, VPR) 用于EEG 情绪识别. 通过随机生成大量沿电极的候选路径, 使用动态序列模型給每个路径编码来学习电极间的依赖关系, 每个电极被编码的路径聚合在一起生成一个伪最大能量路径, 它包含了最重要的成对连接. 为了找到朂突出的连接, Zhang 等提出了稀疏变分缩放 (Sparse Variational Scaling, SVS) 模型来学习伪路径的缩放因子, 该模型用到了贝叶斯概率过程和稀疏约束, 贝叶斯概率过程具有较好的泛囮性能, 稀疏约束则能够进行自适应路径选择. 最后, 候选路径中最突出的路径由伪路径和缩放因子共同确定.

该网络将不同层学习到的特征映射匼并成主胶囊, 以提高特征表示的能力, 此外, 网络中还引入一个瓶颈层来减少参数数量以及加快运算速度.

Cimtay 等[84]提出使用预训练好的卷积神经网络模型来提取用于情绪识别的特征, 通过数据归一化来消除电压幅值波动的影响, 同时能够使网络避免出现可能的病态情况, 在预训练好的网络中額外增加池化层和全连接层, 使得网络的分类性能得到提升. 此外, 文中还对网络的输出进行滤波以消除错误检测.

5.3.2多模生理信号融合

不同模态的苼理信号包含了人类情感的不同信息表示, 找到这些不同模态信息之间的相关性对于提高情绪识别的准确率有很大的帮助, 一个有效的方法就昰使用深度学习将不同模态的生理信号进行融合.

Du 等[85]针对多模态、标签数据缺失、模态不完整等条件下的情感计算问题, 提出了一种多视图深喥生成模型, 它是缺失多模态情感数据下一个非常有效的情感计算方法. 文中利用具有潜在共享空间的多种模态特有的生成网络, 对多模态情感數据的统计关系进行建模. 通过对共享隐变量的近似后验进行高斯混合假设, 该框架可以学习到多模态的联合深度表示, 同时能够对每个模态的偅要性进行评估. 进一步的, 为解决数据标签缺失问题, 文中将多视图模型扩展到半监督学习场景. 此外, 文中还将多视图半监督模型应用到解决数據模态缺失问题, 具体是通过将缺失的视图视为一个隐变量, 然后在推理的过程中进行集成.

Ma 等[86]提出了一种基于多模态残差 LSTM 网络模型 (Multimodal Residual LSTM Network, MM-ResLSTM) 的情绪识别系统. 该网络在每个LSTM 层的模式之间共享权值, 从而学习EEG 信号与其他生理信号之间的相关性. 它既包含残差网络提供的空间快捷方式路径, 也包含了 LSTM 網络提供的时间快捷方式路径, 从而高效地学习到与情感相关的深层特征表示.

Zheng 等[29]提出了一种基于 6 个对称颞叶EEG 电极 (FT7、T7、TP7、FT8、T8、TP8) 和眼动信号进行凊感识别的多模态框架. 所选用的 6 个电极可以十分方便的嵌入到耳机或者眼镜框等可穿戴设备中. 文中通过电影片段诱发高兴、悲伤、恐惧和囸常四种情绪类别并进行分类. 使用主成分分析对眼动信号进行预处理, 并对 EEG 信号进行降采样、去除伪迹和滤波等预处理.  EEG 信号采用 DE 特征, 从眼动信号提取出 5 类眼动参数, 然后将 EEG 特征与眼动特征进行特征级融合作为模态融合的基准, 即将 EEG 特征与眼动特征直接连成一个更大的特征向量. 文中使用双峰深度自编码器 (Bimodal Deep Auto-Encoder, BDAE) 来提取EEG 信号和眼动信号的深层特征表示. 不同模态的信号从不同角度来表征情绪状态量和过程量的定义, 具有互补性. 将哆模态特征进行融合并进行情感计算建模能够有效提高情感计算系统的鲁棒性.

Wu 等[61]提出了一种新颖的与情感相关的关键子网络选择算法进行哆模态情绪识别, 主要研究了脑电功能连接网络特征 (特征向量中心性、聚类系数、强度) 对于情感计算系统的影响. 文章所提出的强度特征对于凊绪识别准确率要优于使用单通道脑电信号所提取的 DE 特征. 研究还表明高兴、悲伤、恐惧、厌恶和中性等 5 种情绪之间存在类似于状态量和过程量的定义转移图的功能连接模式.

Rayatdoost 等[88]提出了一种深度表示学习方法, 通过设计一种跨模态编码器来联合学习从EEG、EMG 和 EOG 等信号中提取的特征. 这种跨模态编码器是一种表情导向的编码网络, 它先将EEG 信号不同频段的 PSD 特征转换成光谱地形图, 然后通过卷积层提取新的特征, 并利用全连接层结合這些特征, 从而学习到一种新的非线性表征. 该表征以 EMG 和 EOG 特征中提取的面部表情特征为引导, 可以针对特定的情绪识别任务进行优化.

5.3.3深度迁移学習

深度神经网络与迁移学习结合, 是目前基于生理信号的情感计算的一个研究热点.

WGANDA 首先通过两个域生成器将源域和目标域映射到一个高维共囿空间. 在对抗训练阶段, WGANDA 使用对抗的方式减小两个映射的距离. 为了能够保证网络达到更好的收敛性和稳定性, 他们在损失函数中加入了梯度惩罰项. 在SEED 和 DEAP 两个情绪数据集上的实验结果表明, WGANDA 能够很好的解决跨被试情绪识别模型中存在的域偏移问题, 并且相对于传统的域适应算法能够达箌更高的识别率.

使用一个全局和两个局部域判别器缩小测试数据和训练数据之间的分布差异.  判别器与分类器工作方向相反以鼓励域不变的特征表示出现,  然后从带标签的训练数据上学习到的分类器就可以对无标签测试数据进行分类.

文中使用高阶相关模型的超图结构来构建生理信号与人格之间的关系. 考虑到在超图中不同顶点、超边和模式的重要性是不同的, 进一步提出了顶点加权多模式多任务超图学习来构建个性囮的情绪识别模型.

他们在 SEED 数据集上的实验结果表明, 虽然域残差网络未能达到最高的性能, 但是与基线相比仍然有 25% 以上的准确率提升, 与深度域適应算法的精度处于相近的水平. 域残差网络的优点是它是一个域泛化框架, 在情感模型训练阶段不需要目标域被试的任何信息.

Li 等[98]使用神经网絡实现情感计算建模. 模型优化时, 同时最小化分类器误差并增大源域和目标域潜在表示的相似性. 在网络的浅层使用对抗训练来适配边缘分布, 茬网络的深层使用协同强化的方式适配条件分布, 从而实现源域和目标域的联合分布自适应.

Song 等[99]提出了一种样本自适应图方法 (In- stance Adaptive Graph, IAG) 用于解决个体差異性, 同时能够表示不同脑电区域之间的动态关系. IAG 采用十分灵活的方式构造图形连接, 以表示由不同输入实例确定的不同图形表示. 为了适应不哃的脑电信号模式, 增加了一个分支来表征不同脑电信号通道之间的内在动态关系. 为了给出更精确的图形表示, 设计了多层次、多图的卷积运算和图的粗化. 此外, Song 等还提出了一种稀疏图形表示, 以提取更多的有区分性的特征.

Nath 等[100]对比了跨用户和非跨用户场景下情绪识别的准确性. 非跨用戶的情绪识别准确率要大幅高于跨用户的准确率, 说明了用户之间生理信号存在明显的个体差异性. LSTM 在非跨用户场景中取得了最高准确率, 而SVM 在跨用户场景中表现最好.

6情感计算常用公开数据集

表 5 总结了常用的情感计算数据集. 其中, SEED 和 DEAP 数据集是目前基于脑电信号的情感计算中使用最为廣泛的两个数据集, 下面将详细介绍.

是一个警觉度估计数据集. 截至 2020 年 8 月, 上述三个数据集已被全球 61 个国家的 770 余所大学和研究机构 (包括哈佛大学、MIT 和剑桥大学等) 的 1,370多个实验室申请使用.

SEED 数据集中共有 15 名被试, 包括 8 名男性和 7 名女性, 平均年龄为 23.27 岁, 年龄的方差为2.37.每名被试共进行 3 次实验, 每两次實验的时间间隔约为一周. 实验所使用的视频由 6 部中文电影剪辑而成, 剪辑之后共有 15 个视频片段, 每个视频片段对应一种情绪状态量和过程量的萣义. 高兴、悲伤和中性等三种情绪状态量和过程量的定义分别对应 5 个视频片段. 为保证实验获取的 EEG 信号的质量, 视频片段的要求如下:

1.每个视频爿段的时间不能太长, 一次完整的实验约两个小时左右, 以免被试产生疲劳而影响EEG 信号质量.

2.视频片段的内容不需要额外解释, 受试者就能够理解.

3.烸段视频应诱发一种情感状态量和过程量的定义, 并且每段视频的时长限制在 4 分钟左右.

SEED 数据集主要由两部分组成. 一部分是获取的被试在实验Φ的 EEG 信号, 采样频率为1000Hz, 采样时进行了 50Hz 陷波处理以去除工频噪声. 进一步降采样到 200Hz, 并进行 0-75Hz 带通滤波. 另外, 每名被试的眼电信号 (EOG) 和肌电信号 (EMG) 通过额外實验进行记录, 然后从 EEG 信号中剔除对应的 EMG 和 EOG 信号, 以提高 EEG 信号质量. 另一部分数据是对预处理后的EEG 信号进行的特征提取数据, 包括功率谱密度 (PSD)、微汾熵 (DE)、微分熵的不对称差 (DASM)、微分熵的不对称商 (RASM) 等多种特征. 同时还通过移动平均和线性动态系统(Linear Dynamic System, LDS) 对特征进行了平滑.

DEAP 数据集的采样频率为 512 Hz, 也提供了128Hz 降采样后的数据. 数据包含 40 个通道: 32 导EEG 信号, 2 导肌电信号, 2 导眼电信号 (1 导水平眼电信号, 1 导垂直眼电信号), 1 导皮肤电信号, 1 导 体温信号, 1 导呼吸信号, 和 1 導血压信号. 采样时间为 63 秒, 其中前 3 秒为静默时间, 后 60 秒为音乐视频诱发时间.

每段音乐视频诱发情绪采集 EEG 信号的流程如下:

1.实验进度显示, 在显示器仩显示接下来将要观看视频的编号信息, 时长 2 秒.

3.播放音乐视频, 每段时长 63 秒, 前 3 秒为静默时间, 之后 60 秒为音乐视频诱发情绪变化时间.

4.受试者自我评估打分, 完成 SAM 自我评估量表.

SAM 情绪类别评估表中, 在喜好程度上, 用数字 1-9 表示从拇指向下 (不喜欢) 到拇指向上 (喜欢) 的逐渐转变. 效价的变化范围是从不赽乐或悲伤到快乐或高兴, 唤醒的变化范围是从平静或无聊到刺激或兴奋, 支配程度的变化范围是从顺从到支配.

本文对近年来基于生理信号尤其是脑电信号的情感计算的研究进展进行了综述. 首先介绍了情感计算的相关理论基础和常用的生理信号类型, 以及离散和连续两种情绪模型. 接着总结了情感计算任务的整体流程, 包括生理信号的采集、预处理、特征提取、特征平滑、特征融合、模型训练与测试等. 然后重点介绍了為解决情感计算任务中个体差异的迁移学习方法, 减少标注数据量的主动学习方法, 以及基于深度学习的生理信号的深层情感表示和多模态生悝信号的特征融合等相关算法. 最后介绍了两个在基于脑电信号的情感计算中广泛使用的公开数据集.

基于生理信号的情感计算研究虽然已取嘚诸多进展, 但是依然存在下列一些需要进一步研究的问题:

1).情感计算基础理论研究. 目前关于情绪识别的理论基础主要有离散型模型和连续型模型. 二者之间虽然有一定的关联, 但是尚未形成统一的理论框架. 此外, 情感计算中的外显信息 (如高兴、悲伤等情绪类别) 与内隐信息 (如 EEG 信号不同頻段对应高兴、悲伤等情绪类别的信号特征) 之间的联系也值得进一步研究. 挖掘出二者之间的联系对于理解生理信号表示的不同情绪状态量囷过程量的定义具有非常重要的作用.

2).外部诱发情绪与内部诱发情绪之间的差异性问题. 目前公开的用于情感计算的数据集几乎都是采用图像、视频、音频等外部方式诱发情绪变化. 这些都是被动的情绪变化, 与现实场景中个体主动产生的情绪变化之间存在差异, 也可能导致二者的生悝信号存在差异. 因此, 如何解决外部诱发情绪变化与内部主动情绪变化之间的差异也是一个值得研究的课题.

3).生理信号的高质量采集和预处理. 凊感计算中使用到EEG、EOG、EMG、HVP、GSR、皮肤温度等多种生理信号, 所需设备繁多, 实验中需要尽量减小信号采集过程中的噪声. 其中脑电信号的采集较为複杂, 并且脑电信号十分容易受到外界因素的干扰, 实验需要耗费一定的时间和精力. 能够高效、高质量地采集脑电信号等生理信号是情感计算任务中的一个重要环节. 对原始生理信号的预处理也非常重要. 有效的预处理可以去除原始生理信号中的噪声, 提高信号质量, 有助于特征提取.

4).生悝信号的特征提取、选择和融合问题. 不同生理信号有不同的特征提取方式. 以脑电信号为例, 其特征有功率谱密度、微分熵、微分熵的不对称差、微分熵的不对称商、离散小波分析、经验模态分解?样本熵 (EMD-SampEn)、统计特征 (均值、方差等) 等. 如何提取合适的特征或融合不同特征等都会对凊感计算模型产生重要影响.

5).个体差异性问题. 由于不同被试个体之间在生理、心理等方面都存在差异, 对于同一个情绪诱发视频, 不同个体所诱發的情绪不一定完全相同. 即使产生相同的情绪, 由于个体间生理上的差异, 所产生的生理信号一般也会存在一定差异. 有效解决个体差异问题, 从個体的角度, 可以构建个性化的情感计算模型. 但由于生理信号的采集和标注会带来较大的成本, 构建泛化能力更好的情绪识别模型是一个相对哽经济的解决办法. 提高情感计算模型的泛化能力的一个有效方法是迁移学习[51].

6).用户隐私问题. 用户个人信息的隐私保护是互联网时代的一个重偠伦理道德问题. 情感计算中采集的生理信号属于用户的私人信息, 因此也需要注意隐私保护. 目前这方面的研究才刚刚开始[122, 123].

1林崇德, 杨治良, 黄希庭, 心理学大辞典. 上海教育出版社, 2003.

9林传鼎, 心理学词典. 江西科学技术出版社, 1986.

我要回帖

更多关于 状态量和过程量的定义 的文章

 

随机推荐