Combining Domain Knowledge with Statistical Factor Analysis: An Application to Financial Risk Modeling
-
摘要: 因子分析是一种在工业领域广泛使用的统计学方法. 在金融资产管理中, 因子分析通过对历史价格波动的极大似然估计推导自适应的统计学因子来生成风险模型. 与通过使用预先设定具有经济学含义的因子来生成风险模型的基本面因子模型相比, 通过因子分析生成的模型不仅更灵活, 还能发现在基本面模型中缺失的因子. 然而, 由于因子分析所生成模型中的统计学因子缺少可解释性, 因此当金融数据中存在显著噪音时容易过拟合. 针对中国股市数据的风险模型生成问题, 本文提出快速因子分析算法以及将基本面因子结合到因子分析中的挑选基本面因子的混合因子分析方法, 使风险模型同时在因子探索及模型可解释性上达到最优. 实验结果显示快速因子分析方法能够达到31倍以上的加速比, 且新混合因子分析方法能够增大人造数据集以及真实数据集上预测的对数似然估计值. 在真实数据集上, 新方法能最好够达到平均对数似然估计值12.00, 比因子分析构建模型的7.56大4.44, 并且两个算法均值差值的标准差为1.58, 表现出新方法能构建更准确的风险模型.Abstract: Factor analysis is a statistical method widely used in many industrial domains. In financial portfolio management, a statistical risk model can be constructed via factor analysis, decomposing the risk into self-adapting factors and maximizing log-likelihood of the historical price movement. Compared to a fundamental model that uses well defined factors with economical meanings, it is more dynamic and may discover factors that are missed in the fundamental ones. On the other hand, statistical factors lack the intuitive interpretation, and thus are less stable and more prone to overfitting especially for the financial data with remarkable noises. In this work, we propose a fast factor analysis and a hybrid method that incorporates the fundamental factors into the statistical process, achieving an optimized combination of model interpretability and data exploitation. Our experiment results show that the acceleration of fast factor analysis is up to more than 31 times, and the new hybrid method yields improved out-of-sample log-likelihood on both synthetic and real-world data. The best mean of log-likelihood of proposed algorithm on real-world data is 12.00, which is larger than 7.56 of factor analysis with difference 4.44, and the standard deviation of the difference is 1.58. All the results shows the proposed algorithms estimate risk model more accurately.
-
Key words:
- Factor analysis /
- fundamental factor /
- domain knowledge /
- risk model /
- expectation-maximization process
-
人工神经网络(Artificial neural network, ANN)已经被广泛应用于各个场景, 如计算机视觉、自然语言处理、机器人控制、医疗诊断等. 然而, 随着模型参数规模的不断扩大, ANN需要更多的计算能耗以支持实现更复杂的应用任务, 这无疑限制了边缘智能设备的应用推广[1]. 尽管研究人员已经开展了关于网络量化、结构剪枝以及知识蒸馏等模型压缩技术研究, 但功耗问题依然十分突出.
作为第三代人工神经网络的脉冲神经网络(Spiking neural network, SNN), 脉冲式异步编码特征为高能效计算提供了一种生物合理的解决方案, 支持多尺度和多维度的时空信息高效处理. 与以浮点运算为主的ANN相比, SNN通过单比特的激活值避免了高能耗的浮点乘法操作, 从而实现高能效计算; 同时SNN使用具有丰富时间维度信息的生物动力学神经元, 如采用泄漏整合发放(Leaky-integrated and fire, LIF)神经元模型, 可以帮助动态积累时序输入信息, 并且只有当膜电位超过阈值时才会编码异步事件脉冲. SNN在保持生物合理性的同时展示出了计算高效性, 并在许多人工智能任务上展现出与ANN相近的精度表现. 这些关键特性使得面向SNN的类脑芯片成为研究热点, 如TrueNorth[2]、Loihi[3]和TianjiC[4]等类脑芯片, 这些神经形态芯片具有低延迟、低功耗和并行度高的特点[5].
然而, 在现有计算设备上模拟时序动态信息需要多时间步计算, 而为了保证SNN的运算精度, 这个多时间步的步长又往往设置的很高, 这就导致了推理延迟过大和推理能耗过高的问题. 如现有的SNN学习方法部分采用先ANN训练再SNN转换的方式, 在较为复杂的数据集任务或深层网络结构上, 通常需要几十到数百个时间步才能获得比较好的运算精度, 因此这类SNN模型的部署能耗很高. 此外, 部分学者提出时空依赖的反向传播方法(Spatio-temporal backpropagation, STBP)[6], 可以采用反向传播的微调方法来直接训练SNN, 能够降低计算时间步到十几个量级. 由此可见, 无论是转换方法还是直接训练方法, SNN都需要运行多个时间步, 这不可避免地增加了计算延迟与能量消耗, 对边缘设备的低功耗推理带来了挑战; 另一方面, 现有计算设备如GPU, 无法充分利用SNN稀疏二值脉冲特性, 仍然在使用高能耗的浮点乘法计算. 设计一款更适用于SNN量化计算本身的硬件加速器也迫在眉睫.
针对上述挑战, 本文从SNN的学习方法、计算能耗、硬件部署等实际应用需求出发, 提出一系列降低SNN软硬件部署能耗的方式方法, 并在实际的标准分类任务上测试通过, 本文的主要贡献如下:
1) 提出一种自适应时间步(Adaptive timestep, AT)选择算法. 通过关联输出层置信度和推理所需要的时间步, 支持更加精准地获得样本正确分类所需最小时间步, 可以有效降低平均推理延迟和能耗.
2) 提出一种表征不同时间步重要性的损失函数$ L_{\text{imp}} $. 通过设置时间步越低重要性越高的基本原则, 并使用不重置膜电位的神经元组成输出层, 保留输出层的动态时间信息. 与基于标准交叉熵损失函数的SNN相比, 本文在仅使用1个时间步时的推理准确率就可以提升27% ~ 55%.
3) 设计一款低能耗脉冲神经网络加速器以进一步降低能耗. 在硬件模拟器上开展CIFAR10、CIFAR100、CIFAR10-DVS数据集能耗实验, 自适应时间步脉冲神经网络 (Adaptive timestep improved spiking neural network, ATSNN)算法在不降低精度的情况下, 推理延迟减少36.7% ~ 58.7%、计算复杂度减少33.0% ~ 57.0%, 并且能耗仅为GPU RTX 3090Ti 的4.43% ~ 7.88%, 显示出边缘端智能应用的巨大优势.
1. 已有工作概述
Izhikevich[7]指出, 神经元模型的生物可解释性越高, 其计算复杂度越大. LIF神经元模型因为计算复杂度低以及具有生物合理性, 成为SNN最常使用的一种神经元模型. 原始的LIF模型使用微分方程表达, 通常使用的LIF模型欧拉展开迭代表达式如式(1) ~ (2)所示
$$ {\boldsymbol{u}}_{t+1}^{l} = \tau {\boldsymbol{u}}_{t}^{l}\left({\boldsymbol{1}}-{\boldsymbol{s}}_{t}^{l} \right) + {\boldsymbol{W}}^{l}{\boldsymbol{s}}_{t+1}^{l-1} $$ (1) $$ ({\boldsymbol{s}}_{t+1}^{l})_i = \begin{cases} 1, & ({\boldsymbol{u}}_{t+1}^{l})_i>V_{th} \\ 0, & \text{ otherwise } \end{cases} $$ (2) 式中, ${\boldsymbol{u}}_{t+1}^{l} $是在时间步$t+1 $时第$ l $层的神经元膜电位, $({\boldsymbol{u}}_{t+1}^{l})_i$是在时间步$ t+1 $时第$ l $层的第$ i $个神经元的膜电位, $ \tau $是膜电位衰减系数, $ {\boldsymbol{W}}^{l} $是第$ l $层的权重, $({\boldsymbol{s}}_{t+1}^{l-1})_i$是在时间步$ t+1 $时第$ l-1 $层的第$ i $个神经元发放的脉冲, $ V_{th} $是发放脉冲的膜电位阈值.
SNN每个时间步的计算与ANN十分相似, 只需将ANN的激活函数换成具有时间信息的生物神经元模型. 处理数据集样本时, 需要通过速率编码、时间编码、相位编码等方法添加时间维度信息[8], 或者将数据样本重复输入多次. 假设时间步$ t $时第$ i $个样本的输入数据为$ {\boldsymbol{x}}_{t}^{i} $, SNN的前向推理公式可以定义为
$$ \begin{array}{*{20}{l}} f_{t}({\boldsymbol{x}}_{t}^{i})=h\circ g^{L}\circ g^{L-1}\circ \cdots \circ g^{1}({\boldsymbol{x}}_{t}^{i}) \end{array} $$ (3) 式中, $ f_{t}({\boldsymbol{x}}_{t}^{i}) $是在时间步$ t $时网络的输出, $ h $是网络的输出层, $ g^{L} $是第$ L $个包含卷积池化层、全连接层和LIF神经元的模块, $\circ $表示函数的复合.
由于SNN的输出是脉冲序列, 需要对脉冲序列解码来完成后续任务. 常见的解码方式有第一峰值解码、计数解码[9]. 对于分类任务, 输出层神经元数目和类别数相同, 第一峰值解码选择第一个出现脉冲的神经元所在类为预测类别; 计数解码统计多个时间步输出层神经元的脉冲数, 选择脉冲数最多的神经元所在类为预测类别. 此外, 也有些模型如EfficientLIF-Net[10], 将神经元输出层替换成全连接层, 统计多个时间步全连接输出层的累计值, 选择累计值最大的神经元所在类为预测类别.
STBP是训练SNN常用且有效的方法. 为解决脉冲发放函数不可导的问题, STBP定义了一系列函数来逼近发放函数的导数, 如式(4)所示, 式中$ \alpha $是一个超参数. 通过梯度近似, SNN的梯度能够在时间和空间两个尺度进行传播, 使网络易于快速收敛.
$$ \frac{\partial {\boldsymbol{s}}}{\partial {\boldsymbol{u}}} = \frac{1}{\sqrt{2\pi \alpha} } \text{e}^{-\frac{({\boldsymbol{u}}-{\boldsymbol{V}}_{th})^{2}}{2\alpha} } $$ (4) 在直接训练低延迟网络方面, Bu等[11]提出膜电位的最佳初始化策略, 不仅实现高精度ANN到SNN转换, 还能缩短推理延迟. Jiang等[12]提出KLIF神经元模型, 在训练过程中动态调整代理梯度函数的斜率和宽度. Fang等[13]提出基于SEW (Spike element wise)的残差块实现SNN中的残差学习, 克服梯度爆炸问题, 以较少时间步实现高准确率. Zheng等[14]提出阈值依赖的批归一化, 在时间和空间两个维度归一化输入特征. Rathi和Roy[15]提出训练神经元膜电位衰减系数和发放阈值的算法. Guo等[16]提出信息最大化损失函数和动态调整代理梯度大小方案, 实现训练后期更为准确的反向梯度以及低延迟性能.
除了直接训练低延迟SNN外, 也有学者通过执行部分时间步获得较高准确率. 在ANN领域有早期退出(Early exit)策略, 如BranchyNet[17]通过在网络某些层加入分类器, 当分类器的置信度大于预期设定的阈值时, 就选择当前分类器的结果作为网络的输出, 否则网络继续向前传播直至后续分类器的置信度大于阈值或者传播至输出层. 早期退出策略存在早期退出分支多、网络参数多、分类器阈值难于调整等问题.
与早期退出策略相似的是时间步选择策略. Kim和Panda[18]提出在时间维度归一化输入特征, 并使用神经元随时间步变化的发放阈值作为早期退出条件. Li等[19]提出的DTSNN在选择时间步时, 计算当前时间步样本的归一化信息熵, 选择熵小于预期设定阈值的最小时间步作为该样本的推理时间步. DTSNN的动态选择时间步算法如式(5) ~ (7)所示
$$ \pi_{t}^{i} ( {\boldsymbol{x}} )=\frac{ \text{exp}\left(\frac{1}{t}\sum\limits_{k=1}\limits^{t}(f_{k}({\boldsymbol{x}}_{k}))_{i}\right) }{ { \sum\limits_{j=1}\limits^{C}} \text{exp}\left(\frac{1}{t}\sum\limits_{k=1}\limits^{t}(f_{k}({\boldsymbol{x}}_{k}))_{j}\right)} $$ (5) $$ E_{f}^{t}( {\boldsymbol{x}} )=-\frac{1}{\text{lg}C}\sum\limits_{i=1}\limits^{C} \pi_{t}^{i} ( {\boldsymbol{x}} ) \text{lg} (\pi_{t}^{i} ( {\boldsymbol{x}} )) $$ (6) $$ {\hat{T}} = \text{arg}\, \underset{{\hat{T}}}{\text{min}} \{ E_{f}^{{\hat{T}}}({\boldsymbol{x}})<\theta |1\leq {\hat{T}}< T \} \cup \{ T \} $$ (7) 式中, $ C $是类别数, $ \pi_{t}^{i} ({\boldsymbol{x}}) $是样本$ {\boldsymbol{x}} $在时间步$ t $时预测为第$ i $类的概率, $ E_{f}^{t}({\boldsymbol{x}}) $是样本$ {\boldsymbol{x}} $运行$ t $个时间步时累积的熵, $ \theta $是选择时间步的阈值, $ {\hat{T}} $是熵小于$ \theta $的最小时间步, $ T $是最大时间步.
使用网络剪枝、减少脉冲发放次数与量化技术, 通常会有效降低SNN能耗. Deng等[20]通过在损失函数中引入脉冲发放率正则化项来降低脉冲发放率. Stöckl 和 Maass[21]提出具有反馈通路的神经元来减少脉冲数目. Chen等[22]通过定义权重梯度来权衡连接关系剪枝与生长, 获得稀疏网络结构. Eshraghian等[23]、Wang等[24]分别将网络权重量化为4比特和2比特.
2. ATSNN 算法
传统的SNN使用固定时间步长推理样本, 这带来较大的推理延迟和能量消耗. 我们发现部分样本使用较小时间步推理依然可以正确预测类别信息, 而对所有样本使用相同的低时间步推理性能不佳, 同时网络在极低时间步的推理性能较差.
为此, 本文提出自适应时间步脉冲神经网络, 提出不重置神经元膜电位的输出层、低时间步更重要的损失函数$ L_{\text{imp}} $和自适应时间步选择算法. 图1(a)是LIF神经元模型与ATSNN输出层等价的神经元模型, 相较于传统的使用固定时间步长的神经元计算过程, ATSNN的输出层神经元膜电位不重置, 同时根据置信度$ CL_{t} $自适应地选择合适的推理时间步, 无需运行所有的时间步; 图1(b)是ATSNN训练和动态时间步推理过程, 黄色部分为本文的神经元及损失函数, 绿色部分为自适应时间步选择模块.
本文模型一方面在固定的低时间步推理的准确率得到了大幅提升, 另一方面能够在推理过程中自适应选择合适的时间步而不损失网络性能. 此外, 本文也针对ATSNN设计一款低功耗脉冲神经网络加速器, 并在硬件模拟器上验证ATSNN.
2.1 不重置膜电位的输出层
低延迟模型如SEWResNet[13]以及DTSNN[19]均使用全连接层并使用式(5)表达网络的输出. STBP[6]使用LIF神经元全连接层并将该层脉冲在多个时间步的累加值作为网络的输出. 第一种方案的输出层将带有时间信息的脉冲序列直接转化为实数空间的值, 损失了时间信息; 第二种方案将实数空间的神经元膜电位量化为脉冲序列并统计脉冲数, 信息表达能力大幅下降. 考虑到重置膜电位会丢失部分时间信息, 为了在输出层保留更多的信息, 并且不降低网络输出信息表达能力, 本文提出使用不重置膜电位的简化LIF模型来保留时间信息和降低量化误差, 并统计膜电位的Softmax累积值作为网络的输出, 如式(8) ~ (10)所示
$$ {\boldsymbol{u}}_{t+1}^{l} = \tau {\boldsymbol{u}}_{t}^{l} + {\boldsymbol{W}}^{l}{\boldsymbol{s}}_{t+1}^{l-1} $$ (8) $$ {\boldsymbol{o}}_{i}^{t} = \frac{\text{exp}((f_{t}({\boldsymbol{x}}_{t}))_{i})}{ { \sum\limits_{j=1}\limits^{C}} \text{exp}((f_{t}({\boldsymbol{x}}_{t}))_{j})} $$ (9) $$ {\boldsymbol{y}}_{t}=\frac{1}{t} \sum\limits_{k=1}^{t} {\boldsymbol{o}}^{k} $$ (10) 式中, $(f_{t}({\boldsymbol{x}}_{t}))_i$是在时间步$ t $时最后一层的第$ i $个神经元的膜电位, $ {\boldsymbol{x}}_{t} $代表当前时刻输入网络的数据, $ {\boldsymbol{o}}_{i}^{t} $是在时间步$ t $时网络预测为第$ i $类的概率; $ {\boldsymbol{y}}_{t} $是$ t $个时间步的累积输出向量, 在训练时根据$ {\boldsymbol{y}}_{T} $最大值所在位置作为当前样本的类别. 相比于式(1) ~ (2)的基础LIF模型, 本文的神经元模型没有重置膜电位和发放脉冲操作.
通过使用本文提出的输出层, 一方面可以保持SNN丰富的时间信息, 另一方面使用了膜电位而不是神经元脉冲序列, 这将保持网络输出表达空间、消除膜电位转换脉冲带来的量化误差并提升网络分类置信度.
2.2 低时间步更重要的损失函数$ L_{\text{imp}} $
SNN输出层的信息随着时间进行累积, 时间步越大输出层的信息量越大. 现有的SNN大多采用交叉熵损失函数, 这将平等地对待每个时间步网络的输出, 造成使用固定的低时间步推理网络准确率低的问题. 本文希望增加低时间步网络的信息量, 以此提升直接固定低时间步网络的推理性能. 为此本文设计表征低时间步更重要的函数, 如式(11)所示, 时间步越小重要性越高, 并将重要性函数与交叉熵函数结合, 提出低时间步更重要的损失函数$ L_{\text{imp}} $, 如式(13)所示
$$ I_{t} = 1 + \text{exp}\left(-1-\frac{t+1}{T}\right) $$ (11) $$ D = \sum\limits_{t = 1}^{T} I_{t} $$ (12) $$ L_{\text{imp}} = -\frac{1}{B} \sum\limits_{t = 1}^{T} \frac{I_{t}}{D} \sum\limits_{i = 1}^{C}{\boldsymbol{z}}_{i}\text{lg}({\boldsymbol{o}}_{i}^{t}) $$ (13) 式中, $ I_{t} $为第$ t $个时间步的重要性, $ D $是归一化系数, $ {\boldsymbol{o}}_{i}^{t} $是在时间步$ t $时网络预测为第$ i $类的概率, $ C $是类别数, $ {\boldsymbol{z}}_{i} $是输入样本属于第$ i $类的概率, $ B $是批次大小.
基于本文的输出层以及损失函数, 使用STBP进行模型训练, 并使用式(14)所示的代理梯度函数
$$ \frac{\partial {\boldsymbol{s}}}{\partial {\boldsymbol{u}}} = \max\left({\boldsymbol{0}}, {\boldsymbol{1}}-\frac{|{\boldsymbol{u}}-{\boldsymbol{V}}_{th}|}{{\boldsymbol{V}}_{th}}\right) $$ (14) 2.3 自适应时间步选择算法
随着时间步的增加, 网络的性能也会随之增加. 对于最大时间步为$ T $的SNN, 对每个样本使用不同的时间步依然能获得相同的准确率. 经过Softmax函数归一化的时间步$ t $时的输出$ {\boldsymbol{o}}^{t} $, 如果$ {\boldsymbol{o}}_{c}^{t} $越接近于1, 这个样本属于第$ c $类的可能性就越大. 考虑到本文提出的损失函数$ L_{\text{imp}} $会使长时间步的输出重要性减弱, 为此提出基于可变置信度的自适应时间步选择算法, 如式(15)、式(16)所示
$$ CL_{t} = CL_{\text{init}} \times \tau^{t-1}_{CL} $$ (15) $$ {\hat{T}} = \min ( \{ t |\max({\boldsymbol{o}}^{t}) > CL_{t} ,1\leq t< T \} \cup \{ T \} ) $$ (16) 式中, 超参数$ CL_{\text{init}} $是初始化置信度, 标量$ \tau_{CL} $是置信度$ CL_{t} $的衰减系数, $ {\hat{T}} $是选择的时间步, $ {\boldsymbol{o}}^{t} $是时间步$ t $时网络的输出. 若当前时间步网络输出的最大值小于置信度$ CL_{t} $, 认为此时网络的输出并不可信, 需要进行下一个时间步的计算, 直至获得可信的结果. 由于式(11)的时间步重要性随时间增大而减小, 置信度$ CL_{t} $变化趋势应与时间步重要性保持一致, 如式(15)所示.
2.4 脉冲神经网络加速器
脉冲神经网络加速器可以对SNN低功耗推理. 图2(a)为SNN常用的加速器, 由于神经元膜电位更新需要衰减操作, 因此使用了带有高能耗乘法的处理元件(Process elements, PE)用于膜电位计算, 同时SNN使用固定时间步进行推理, 没有时间步选择模块.
图2(b)是DTSNN的硬件加速器, 在实现方式上, 采用数模混合的方式: PE更新膜电位时使用模拟信号, DT选择动态时间步时使用数字信号. 由于加速器采用了大量的模数转换器(Analog to digital converter, ADC), 引入了额外的功耗开销, 芯片面积也会明显增大. 动态时间步选择模块DT为全数字实现, 通过使用在6 KB存储器查表的方式避免复杂的指数、对数运算.
本文设计脉冲神经网络加速器, 并实现所提出的自适应时间步选择算法. 图2(c)是本文加速器的架构, 阵列大小为16$ \times $16, 包含255个PE单元、1个AT单元. PE和AT均有128 B的输入脉冲缓冲器和128 B的输出脉冲缓冲器; PE和AT数据存储器的大小分别为1 KB、3 KB.
PE是完成神经元计算、发放脉冲的处理单元, 完成输入电流累积、膜电位更新、发放脉冲三个操作. 针对式(1)中膜电位衰减需要高能耗的乘法计算, 本文使用移位和加法计算代替乘法计算, 从而降低加速器的功耗.
AT单元用于实现ATSNN的输出层以及AT算法, 由于不重置膜电位, 相较于PE少了一个多路选择器(Multiplexer, MUX), 同时加入了一个乘法器用于实现AT算法. 为降低硬件功耗, 将AT算法修改为硬件友好型, 如式(17)、式(18)所示
$$ {\boldsymbol{o}}_{i}^{t} = \text{exp}((f_{t}({\boldsymbol{x}}_t))_{i}) $$ (17) $$ CL_{t} = CL_{\text{init}} \times \tau^{t-1}_{CL} \times \sum\limits_{j=1}^{C} \text{exp}((f_{t}({\boldsymbol{x}}_t))_{j}) $$ (18) 相较于式(9)和式(15), 硬件上的AT算法在计算输出时, 将高能耗与高延迟的除法计算转换为乘法计算; 同时在硬件设计上, 通过对在数据存储参数区预存的指数值线性插值, 避免式(17)中高能耗的指数计算. 相较于DTSNN的加速器, 本文的加速器避免大量ADC带来的额外功耗开销, 同时具有更小的存储器开销.
3. 实验结果与分析
3.1 数据集与实验设置
本文使用四个静态图像数据集和两个动态数据集训练并测试网络. 静态数据集CIFAR10和CIFAR100[25], 每个数据集均有尺寸为3$ \times $32$ \times $32的
50000 张训练图像和10000 张测试图像, 类别数分别为10和100. TinyImageNet[26]总共有200类尺寸为3$ \times $64$ \times $64的100000 张训练图像和10000 张测试图像. ImageNet-100数据集是ImageNet1K[27]的子集, 具有100类尺寸为3$ \times $224$ \times $224的126689 张训练图像和5000 张测试图像. 动态数据集CIFAR10-DVS[28]通过使用DVS相机将10000 个CIFAR10图像转换成数据流, 相机的空间分辨率为128$ \times $128, 数据集的类别数为10. 动态数据集N-Caltech-101[29]有101类共8709 个数据流, 相机空间分辨率为240$ \times $180.基于NVIDIA GeForce RTX 3090Ti训练并推理本文提出的算法, 网络结构使用VGG16和ResNet19. 对于静态数据集, 使用均值和方差归一化图像. 对于数据集CIFAR10-DVS, 由于原数据集没有划分训练集和测试集, 本文参照DTSNN将其划分为
9000 个训练样本和1000 个测试样本; 对于数据集N-Caltech-101, 参照NDA[30]划分数据集, 并使用Spikingjelly[31]将动态数据集转换成与相机画幅相同的双通道图像帧.对于所有的数据集和网络, 均使用随机梯度下降(Stochastic gradient descent, SGD)优化器, 权值衰减设置为
0.0005 , 动量设置为0.9. 初始学习率为0.1, 使用余弦退火方法调整学习率; 批大小设置为256, 最大迭代次数设置为300. 本文首先使用固定时间步对网络进行训练, 然后使用提出的时间步选择算法对训练后的网络选择合适的时间步. 网络的性能有三个评价指标: 准确率、吞吐率和复杂度. 复杂度$ E $计算如式(19)所示$$ E = { \sum\limits_{l=1}\limits^{L}} fr^{l-1}\times T\times conn^{l} $$ (19) 式中, $ fr^{l-1} $为第$ l-1 $层的脉冲发放率, $ conn^{l} $为第$ l $层每个输入神经元实际连接的权重数目.
3.2 ATSNN 获得优于 DTSNN精度
为验证本文提出的ATSNN的有效性, 将本文的算法与未使用ATSNN模块的SNN和Li等[19]提出的DTSNN进行对比. 本文使用相同的参数训练SNN、DTSNN和ATSNN, 对比推理所用的平均时间步和复杂度, 并将SNN的复杂度归一化以作为基准.
表1给出各个模型在三个数据集上的性能, 表中时间步一列如2.53 (4)表示推理平均时间步为2.53, 最大时间步为4. 从表1可以看出, 在CIFAR10数据集上, ATSNN只需要2.19和2.00个时间步就能达到另外两个模型相当的准确率, 复杂度仅为SNN的67%; 在CIFAR100数据集上, ATSNN只需要2.49和2.53个时间步就能获得最好的准确率, 复杂度仅为SNN的64%; 而在CIFAR10-DVS数据集上, ATSNN的准确率接近其他两个算法, 但平均时间步和复杂度最小.
表 1 SNN、DTSNN和ATSNN在时间步、准确率和复杂度的对比Table 1 Comparison of SNN, DTSNN and ATSNN in timestep, accuracy and complexity网络结构 算法 CIFAR10 CIFAR100 CIFAR10-DVS 时间步 准确率(%) 复杂度 时间步 准确率(%) 复杂度 时间步 准确率(%) 复杂度 VGG16 SNN 4.00 91.35 1.00 4.00 66.99 1.00 10.00 72.60 1.00 DTSNN 2.53 (4) 91.13 0.79 3.58 (4) 69.68 0.96 5.70 (10) 73.30 0.56 ATSNN 2.19 (4) 91.61 0.67 2.49 (4) 70.05 0.63 4.13 (10) 73.00 0.43 ResNet19 SNN 4.00 91.86 1.00 4.00 67.22 1.00 10.00 70.00 1.00 DTSNN 2.52 (4) 91.51 0.88 3.54 (4) 67.58 1.02 6.95 (10) 70.50 0.94 ATSNN 2.00 (4) 91.84 0.67 2.53 (4) 70.64 0.64 5.57 (10) 69.50 0.63 通过调整时间步选择模块的参数, 获得DTSNN和ATSNN的准确率随平均推理时间步变化曲线. 如图3所示, 可以看到在相同准确率下, ATSNN具有更低的平均推理时间步, 因此推理延迟更低; 在相同的平均推理时间步下, ATSNN具有更高的准确率. 如图3(d)所示, 在平均时间步均约为2.4的情况下, ATSNN准确率高于DTSNN. 通过以上结果与分析, ATSNN在准确率和推理延迟上优于DTSNN.
此外, 为进一步探究ATSNN和DTSNN的计算耗能情况, 在ImageNet-100和N-Caltech-101两个数据集上对比每个时间步ATSNN相对DTSNN的计算复杂度和网络性能, 对比结果如表2所示. 表中T1表示第一个时间步的相对计算复杂度, $ \tilde{T} $是使用时间步选择算法后ATSNN相对于DTSNN的平均推理时间步, $ \Delta ACC $是ATSNN相对于DTSNN提升的准确率. 从表中可以看出在两个数据集上ATSNN能够取得更好的准确率, 同时ATSNN的计算复杂度和DTSNN相差不大, 即两个算法每个时间步计算耗能相似. 由于ATSNN使用更少的时间步进行推理, 故计算耗能更低, 计算效率更高.
表 2 每个时间步的相对计算复杂度及网络性能Table 2 Relative computational complexity per timestep and network performance数据集 T1 T2 T3 T4 T5 $\tilde{T}$ (%) $\Delta ACC$ (%) ImageNet-100 0.998 1.009 1.009 1.010 1.003 68.49 0.90 N-Caltech-101 0.959 0.977 0.978 0.959 0.989 68.32 0.45 3.3 有效的损失函数$ L_{\text{imp}} $
ATSNN的损失函数$ L_{\text{imp}} $期望低时间步网络输出的重要性更高. 为测试损失函数的效果, 在SNN的基础上, 仅将损失函数替换为交叉熵(Cross entropy)函数、DTSNN模型的损失函数(DTSNN-loss)和本文的损失函数($ L_{\text{imp}} $)并训练网络. 然后所有网络均不使用时间步选择算法, 仅使用固定的时间步(1、2、3、4)测试网络性能, 结果如图4所示.
从图4中可以看出, 使用本文的损失函数$ L_{\text{imp}} $在1个时间步的推理性能优于另外两个损失函数, 这为后续选择时间步算法实现低推理延迟且无准确率损失奠定了基础. 由此可见, 本文的损失函数$ L_{\text{imp}} $提升了网络在低时间步的表达能力.
3.4 低能耗SNN硬件加速器
本文使用SNN硬件模拟器SATA-Sim[32]实现脉冲神经网络加速器, 使用4个工作在28 nm工艺、500 MHz时钟频率条件的并行加速器运行本文模型, 同时也与GPU对比总耗能、帧率(Frames per second, FPS).
实验结果如表3所示, 表3最后一列的数值如606.1 (5.46%)表示本文加速器总耗能606.1 J, 仅为GPU耗能的5.46%. 可以明显看到, 本文的加速器能够达到GPU相同的推理速度, 但仅消耗4.43% ~ 7.88% GPU的能量. 同时本文也分析AT单元的功耗, 由于最后一层神经元数目少, AT单元的操作数远少于PE单元, 所以尽管有乘法器的存在, AT单元的总功耗不及PE的千分之一. 因此本文的硬件平台具有显著的能耗优势, 并且AT算法不会引入较大的资源消耗, 非常适合部署在终端智能设备.
表 3 加速器与GPU关于FPS、耗能对比Table 3 Comparison of FPS and energy consumption between accelerator and GPU网络结构 数据集 GPU 本文加速器 FPS 耗能(J) FPS 耗能(J) VGG16 CIFAR10 215 6814 248 537.6 (7.88%) CIFAR100 200 7499 228 543.6 (7.24%) ResNet19 CIFAR10 215 11088 212 606.1 (5.46%) CIFAR100 172 13914 180 617.2 (4.43%) 3.5 超参数的影响分析
本文的自适应时间步选择算法有两个超参数$ CL_{\text{init}} $和$ \tau_{CL} $, 在CIFAR10和CIFAR100数据集上遍历两个超参数分别从
0.9950 到0.9998 , 步长为0.0002 , 统计不同参数对算法准确率以及平均时间步的影响.图5、图6分别为不同超参数条件下的准确率和平均时间步. 从图中可以看到, 随着两个超参数的不断增大, 算法的准确率呈增大趋势, 同时所有算法的平均时间步也在提升. 这是因为当$ CL_{\text{init}} $变大、$ \tau_{CL} $变大时, ATSNN输出层需要更高的置信度才能退出选择时间步模块, 在提升推理准确率的同时也带来了时间步的增加. 超参数的选择会对网络的性能带来一定的影响, 为此设置$ CL_{\text{init}} $和$ \tau_{CL} $均为0.999, 此时ATSNN的性能如表4所示. 与表1的结果相比, 本文的算法仍然具有较低的平均时间步和较高的准确率.
表 4 默认超参数的性能Table 4 Performance with default hyperparameters数据集 网络结构 时间步 准确率(%) CIFAR10 ResNet19 1.897 (4) 91.77 CIFAR10 VGG16 2.183 (4) 91.57 CIFAR100 ResNet19 2.501 (4) 70.46 CIFAR100 VGG16 2.642 (4) 69.58 当$ \tau_{CL} $等于1时, ATSNN的自适应时间步选择算法退化为单一阈值比较, 这在CNN的早期退出经常使用. 对比本文提出的动态时间步选择方案$ (\tau_{CL} \ne1)$以及$ \tau_{CL}=1 $时的退化方案, 结果如图7所示. 实验结果表明, 本文动态时间步选择方案比退化的方案具有更好的性能. 虽然本文方案具有两个超参数, 但从前文的分析可以得知, 使用默认的超参数也可以获得较好的性能, 并且增大超参数能够提升准确率.
3.6 消融实验分析
为验证本文提出的各个模块对低时间步推理的合理性和有效性, 针对网络构建过程使用到的三个模块进行消融实验. ATSNN使用的网络模型相较于SNN模型做了三处改动: 替换输出层神经元、改变输出表征以及更换损失函数. 本节在基准SNN的基础上逐步替换模块来进行消融实验, 实验使用ResNet19结构并在CIFAR10和CIFAR100两个数据集上进行, 训练的时间步均为4. 如表5所示, 第2 ~ 4列分别表示是否替换相应模块, 如第3行表示仅将输出层替换为本文的膜电位不重置LIF神经元; 第5 ~ 8列分别表示推理时间步为1 ~ 4的网络准确率.
表 5 ATSNN消融实验Table 5 Ablation experiment of ATSNN数据集 输出层神经元 损失函数 输出表征 T1 T2 T3 T4 CIFAR10 34.43 89.39 90.82 91.86 √ 47.26 89.85 90.52 91.38 √ 85.68 88.78 90.39 91.28 √ √ 86.93 89.96 91.63 91.79 √ √ √ 86.93 90.14 91.39 91.86 CIFAR100 27.13 56.68 62.53 67.22 √ 30.38 57.19 63.37 67.70 √ 52.69 63.80 67.29 69.61 √ √ 53.47 64.35 67.53 69.90 √ √ √ 53.47 65.23 68.17 70.25 通过表5可以看到, 当只替换输出层时, 推理时只使用一个时间步的网络性能得到了提升; 如果只更换损失函数, 推理时只使用一个时间步的网络准确率得到了大幅度提升, 基本上与基准SNN使用两个时间步的推理准确率相似; 当替换输出层和损失函数时, 网络在低时间步的推理性能进一步得到提升, 说明两个模块的结合有助于提升网络的性能; 最后一行为三个模块全部替换的结果, 此时低时间步推理性能和网络最终的准确率(时间步为4的推理性能)达到最高. 不过在CIFAR10数据集上, 尽管替换部分模块导致网络最终准确率下降, 但低时间步推理性能得到了提升, 这对后续的动态时间步选择十分重要. 此外在替换全部模块的情况下, 网络最终性能能够达到基准SNN的性能, 甚至超越. 因此本文提出的模块在大幅提升低时间步推理准确率的同时, 能够保持甚至提高网络最终的推理准确率.
3.7 低延迟特性对比
本文也和目前具有低延迟的SNN算法进行了比较, 结果如表6所示. 表6中时间步一列如2.51 (4)表示训练时间步为4, 推理时选择的平均时间步为2.51. 网络结构一列VGG16的参数量为138 M、ResNet19的参数量为11.2 M、SEW-ResNet34的参数量为21.5 M.
表 6 ATSNN与低延迟算法的对比Table 6 Comparison between ATSNN and low-latency algorithms数据集 算法 算法类型 网络结构 时间步 准确率 (%) CIFAR10 Conversion[11] ANN转SNN VGG16 8 90.96 STDB[33] 转换+训练 VGG16 5 91.41 EfficientLIF-Net[10] 直接训练 VGG16 5 90.30 DTSNN[19] 直接训练 VGG16 2.53 (4) 91.13 本文 直接训练 VGG16 2.56 (10) 92.09 STBP-tdBN[14] 直接训练 ResNet19 6 93.16 DTSNN[19] 直接训练 ResNet19 2.51 (4) 91.51 本文 直接训练 ResNet19 2.71 (10) 92.38 CIFAR100 STDB[33] 转换+训练 VGG16 5 66.46 Diet-SNN[15] 直接训练 VGG16 5 69.67 Real Spike[34] 直接训练 VGG16 5 70.62 RecDis-SNN[35] 直接训练 VGG16 5 69.88 本文 直接训练 VGG16 3.86 (10) 71.37 DTSNN[19] 直接训练 ResNet19 3.54 (4) 67.58 本文 直接训练 ResNet19 2.53 (10) 70.64 CIFAR10-DVS STBP-tdBN[14] 直接训练 ResNet19 6 67.80 DTSNN[19] 直接训练 ResNet19 6.95 (10) 70.50 本文 直接训练 ResNet19 5.57 (10) 69.50 ImageNet-100 EfficientLIF-Net[10] 直接训练 ResNet19 5 79.44 LocalZO[36] 直接训练 SEW-ResNet34 4 81.56 本文 直接训练 ResNet19 1.76 (5) 81.96 TinyImageNet EfficientLIF-Net[10] 直接训练 ResNet19 5 55.44 DTSNN[19] 直接训练 ResNet19 3.71 (5) 57.18 本文 直接训练 ResNet19 2.47 (5) 57.61 N-Caltech-101 MC-SNN[37] 直接训练 VGG16 20 81.24 DTSNN[19] 直接训练 VGG16 3.21 (10) 82.26 本文 直接训练 VGG16 2.19 (10) 82.63 NDA[30] 直接训练 ResNet19 10 78.60 本文 直接训练 ResNet19 2.56 (10) 80.56 通过表6的结果可以看出, ATSNN获得了最低的推理延迟. 在CIFAR10数据集上, 能以2.71个时间步获得92.38%的准确率; 在CIFAR100数据集上获得了最高分类准确率; 在CIFAR10-DVS数据集上, 本文的算法仍能以5.57个时间步获得较高准确率; 在规模更大的ImageNet-100、TinyImageNet和N-Caltech-101数据集上, ATSNN实现了最低的推理延迟和最高的准确率. 通过以上分析可以得到, 本文的算法不论是与固定低时间步的算法还是与动态选择时间步的算法相比, 均有较低的时间步以及较高的准确率, 具有较强的低延迟推理能力.
3.8 讨论
通过实验可以看出, 本文算法具有推理延迟低、复杂度低的特点, 在所有的实验中均取得了较低的推理延迟. 但在处理部分数据集时, 如表6的CIFAR10, 本文算法的准确率不及STBP-tdBN方法; 在CIFAR10-DVS数据集上, 本文算法准确率略低于DTSNN.
出现这种情况的原因主要是训练出的网络精度较低. 通过在训练时增大时间步, 发现本文算法依然比上述算法具有更低的推理延迟, 准确率相对于低时间步训练的网络得到了提升. 因此可以通过增加训练时间步解决这个问题, 同时也考虑对网络改进以提升性能.
此外, 在第3.3节中, 直接使用本文提出的损失函数$ L_{\text{imp}} $会出现准确率下降的现象(图4 时间步为4). 这是因为这项对比实验使用到的SNN模型, 其输出层为无时间信息的全连接层. 由于$ L_{\text{imp}} $会使长时间步的输出重要性减弱, 如果网络输出携带较少的时间信息, 权重无法得到有效更新, 从而导致准确率下降. 但是在本文的算法中, 输出层能够携带时间信息, 因此使用$ L_{\text{imp}} $的ATSNN能够相较其他算法提升网络的准确率.
从时间步选择算法的计算过程来看, 根据式(5) ~ (7), DTSNN每个时间步分别需要进行$ C $次除法、指数、对数运算; 从式(17)、式(18)可以看出, 本文算法每个时间步需要$ C $次指数运算. 由于除法和对数运算的计算过程较为复杂, 计算延迟高、能耗大, 难以在硬件上直接部署. 尽管DTSNN的加速器设计了专用的时间步模块实现该算法, 但所需的存储器资源是本文加速器的两倍. 综上, 本文方案相比DTSNN对硬件更加友好, 同时具有较高的推理性能、较低的推理延迟以及较低的能耗, 适合在低功耗智能终端设备上部署.
4. 结论
本文介绍了一种自适应时间步脉冲神经网络, 能够在推理过程中自动选择适当的时间步. 本文改进了 SNN 输出层与表征方式, 构建了具有时间重要性的损失函数$ L_{\text{imp}} $, 提出了可自适应选择时间步的方法, 并分析了所提自适应时间步选择算法的有效性. 此外本文也设计了一款适用于ATSNN的低功耗脉冲神经网络加速器. 实验结果表明, ATSNN 的延迟减少36.7% ~ 58.7%, 计算复杂度减少33.0% ~ 57.0%. 与目前最先进的动态时间步脉冲神经网络DTSNN相比, ATSNN 能有效缩短时间步, 提升网络准确率, 具有更高的能效. 同时, 本文加速器具有与GPU相当的推理速度, 能耗仅为GPU RTX 3090Ti的4.43% ~ 7.88%. 综上, ATSNN 能在推理过程中自适应地选择时间步, 降低复杂度、推理延迟和能耗, 有效解决了多时间步带来的问题, 非常适合在低功耗智能终端设备上部署.
-
表 1 算法1和算法2在第一个人造数据集上的实验结果
Table 1 Results on first synthetic dataset of Alg.1 and Alg.2
因子数 算法 $\delta=5$ $\delta=10$ 时间 (s) ${\rm E}\,(LL)$ $\sigma\,({\rm E})$ ${\rm E}\,(iter)$ 加速比 时间 (s) $ {\rm E}\,(LL)$ $\sigma\,( {\rm E})$ $ {\rm E}\,(iter)$ 加速比 $s=10$ 算法1 (FA) 444.21 −1927.63 10.01 709.02 — 252.07 −2059.10 6.30 405.51 — $s=10$ 算法2 (FFA) 14.05 −1927.63 10.01 709.01 31.6 7.80 −2059.10 6.30 405.55 32.3 $s=13$ 算法1 (FA) 653.60 −1861.02 11.48 1019.66 — 313.86 −2027.42 6.29 492.91 — $s=13$ 算法2 (FFA) 20.38 −1863.73 11.39 1020.77 32.1 9.58 −2027.08 6.24 492.79 32.8 表 2 算法1、算法2、算法3和算法4在第二个人造数据集上的实验结果
Table 2 Results on second synthetic dataset of Alg.1, Alg.2, Alg.3 and Alg.4
因子数 算法 $\delta=3$ $\delta=5$ $\delta=10$ 时间 (s) ${\rm E}\,(LL)$ $\sigma\,( {\rm E})$ 时间 (s) $ {\rm E}\,(LL)$ $\sigma\,( {\rm E})$ 时间 (s) $ {\rm E}\,(LL)$ $\sigma\,( {\rm E})$ $s=10,f=0$ 算法1 (FA) 484.94 −3789.03 28.85 389.27 −3866.59 24.26 227.39 −4116.68 14.46 $s=10,f=0$ 算法2 (FFA) 207.17 −3789.02 28.85 171.58 −3866.60 24.65 99.19 −4116.68 14.46 $s=0,f=10$ 算法3 (OLS) 0.23 −3734.41 22.60 0.23 −3815.23 19.05 0.23 −4072.60 11.39 $s=13,f=0$ 算法1 (FA) 779.07 −3617.34 33.82 562.08 −3732.61 25.96 279.78 −4046.25 13.46 $s=13,f=0$ 算法2 (FFA) 331.09 −3616.64 33.72 247.17 −3731.49 26.16 121.48 −4045.92 13.46 $s=3,f=10$ 算法4 (HFA) 123.49 −3564.72 25.94 92.44 −3678.27 20.23 48.63 −4002.81 10.52 表 3 算法1、算法2、算法3、算法4及算法6在第三个人造数据集上的实验结果
Table 3 Results on third synthetic dataset of Alg.1, Alg.2, Alg.3, Alg.4 and Alg.6
因子数 算法 $\delta=3$ $\delta=5$ $\delta=10$ 时间 (s) $ {\rm E}\,(LL)$ $\sigma\,( {\rm E})$ 时间 (s) $ {\rm E}\,(LL)$ $\sigma\,( {\rm E})$ 时间 (s) $ {\rm E}\,(LL)$ $\sigma\,( {\rm E})$ $s=10,f=0$ 算法1 (FA) 693.57 −3594.51 26.64 507.47 −3709.94 20.81 263.41 −4019.67 10.86 $s=10,f=0$ 算法2 (FFA) 290.06 −3593.84 26.97 215.58 −3703.39 21.36 105.50 −4019.93 10.88 $s=0,f= 10$ 算法3 (OLS) 0.24 −3712.75 22.24 0.25 −3796.19 18.78 0.24 −4059.71 11.19 $s+f=10$ 算法6 (HFA+) 1726.79 −3561.04 25.26 1307.14 −3683.00 20.75 596.52 −4005.34 11.34 $s=13,f=0$ 算法1 (FA) 845.15 −3389.00 30.54 721.67 −3550.65 21.55 312.41 −3955.47 10.07 $s=13,f=0$ 算法2 (FFA) 351.61 −3389.82 30.89 304.29 −3549.53 21.45 123.93 −3955.47 10.07 $s=3,f=10$ 算法4 (HFA) 111.30 −3536.52 28.39 81.30 −3661.63 22.11 48.15 −3993.70 11.43 $s+f=13$ 算法6 (HFA+) 2314.11 −3378.86 32.36 1826.26 −3522.23 21.72 796.98 −3933.08 10.42 表 4 算法1、算法2、算法3和算法6在真实数据集上的实验结果比较
Table 4 Results on real-world dataset of Alg.1, Alg.2, Alg.3 and Alg.6
因子数 算法 $r$ 时间 (s) $ {\rm E}\,({LL})$ $\sigma\,( {\rm E})$ $ {\rm E}\,(LL_{Alg.6} - LL_{Alg.2})$ $\sigma( {\rm E}\,(LL_{Alg.6} - LL_{Alg.2}))$ $s=15, f=0$ 算法1 (FA) — 1.61 7.56 9.06 — — $s=15, f=0$ 算法2 (FFA) — 0.55 7.54 9.06 — — $s=0, f=22$ 算法3 (OLS) — 0.01 −108.0 15.50 — — $s+f=15$ 算法6 (HFA+) $0.6$ 10.82 11.96 8.18 4.40 1.64 $0.7$ 10.90 11.86 8.20 4.29 1.61 $0.8$ 10.40 11.77 8.24 4.21 1.58 $0.9$ 10.51 12.00 8.25 4.44 1.58 -
[1] Alexander C. Market Models: A guide to financial data analysis. John Wiley & Sons, 2001 [2] Alexander C. Market Risk Analysis, Practical Financial Econometrics. John Wiley & Sons, 2008 [3] MSCI Barra. Barra Risk Model Handbook. MSCI Barra Applied Research, 2007, 43 [4] Christoffersen P, Goncalves S. Estimation Risk in Financial Risk Management. CIRANO, 2004. [5] Christoffersen P, Diebold F. How relevant is volatility forecasting for financial risk management? Review of Economic and Statistics, 2000, 82(1): 12-22 doi: 10.1162/003465300558597 [6] Higgins R C, Reimers M. Analysis for Financial Management. Number 53. Irwin Chicago, 1995 [7] Smith C W, Smithson C W, Wilford D S. Managing Financial Risk. Irein Burr Ridge, 1995 [8] Connor G. The three types of factor models: A comparison of their explanatory power. Finanacial Analysis Journal, 1995, 51(3): 42-46 doi: 10.2469/faj.v51.n3.1904 [9] Boyer M M, Filion D. Common and fundamental factors in stock returns of Canadian oil and gas companies. Energy Economics, 2007, 29(3): 428-453 doi: 10.1016/j.eneco.2005.12.003 [10] Dechow P M, Hutton A P, Meubroek L, Sloan R G. Short-sellers, fundamental analysis, and stock returns. Journal of financial Economics, 2001, 61(1): 71-106 [11] Doshi-Velez F, Kim B. Towards a Rigorous science of interpretable machine learning. arXiv preprint arXiv: 1702.08608, 2017 [12] Molnar C. Interpretable Machine Learning: A guide for making black box models explainable [Online]. available: https://christophm.github.io/interpretable-ml-book, 2020 [13] Goodfellow I, Bengio Y, Courville A. Deep Learning. MIT press, 2016. [14] Dempster A P. Maximum likelihood from incomplete data via the EM algorithm. Journal of Royal Statistical Society, 1977, 39(1): 1-38 [15] Rubin D and Thayer D. EM algorithms for ML factor analysis Psychometrika, 1982, 47(1): 69-76 doi: 10.1007/BF02293851 [16] Ghahramani Z, Hinton G. The EM algorithm for mixtures of factor analyzers. Technical Report CRG-TR-96-1, University of Toronto, Canada, 1996 [17] Kaiser H. The application of electronic computers to factor analysis. Educational and Psychological Measurement, 1960, 20(1): 141-151 doi: 10.1177/001316446002000116 [18] Roweis S, Ghahramani Z. A unifying review of linear Gaussian models. Nueral Computation, 1999, 11(2): 305-345 doi: 10.1162/089976699300016674 [19] Saqib U, Gannot S, Jensen J R. Estimation of Acoustic Echoes Using Expectation-Maximization Methods. Eurasip Journal on Audio, Speech, and Music Processing, 2020, 2020(1): 1-15 doi: 10.1186/s13636-019-0169-5 [20] Sun Z, Yang Y. An EM Approach to Non-autoregressive Conditional Sequence Generation. In: Proceedings of the 37th International Conference on Machine Learning. arXiv: 2006.16378, 2020 [21] Nan Y, Quan Y, Jim H. Variational-EM-Based Deep Learning for Noise-Blind Image Deblurring. In: Proceedings of the 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition, 2020: 3626−3635 [22] 席燕辉, 彭辉, 莫红. 基于EM-EKF算法的RBF-AR模型参数估计. 自动化学报, 2017, 43(9): 1636-1643. doi: 10.16383/j.aas.2017.e160216Yanhui Xi, Hui Peng, Hong Mo. Parameter Estimation of RBF-AR Model Based on the EM-EKF Algorithm. Acta Automatica Sinica, 2017, 43(9): 1636-1643. doi: 10.16383/j.aas.2017.e160216 [23] 马新科, 杨扬, 杨昆, 罗毅. 基于模糊形状上下文与局部向量相似性约束的配准算法. 自动化学报, 2020, 46(2): 342-357. doi: 10.16383/j.aas.c180118MA Xin-Ke, YANG Yang, YANG Kun, LUO Yi. Registration Algorithm Based on Fuzzy Shape Context and Local Vector Similarity Constraint. Acta Automatica Sinica, 2020, 46(2): 342-357. doi: 10.16383/j.aas.c180118 [24] 姚红革, 董泽浩, 喻钧, 白小军. 深度EM胶囊网络全重叠手写数字识别与分离. 自动化学报, DOI: 10.16383/j.aas.c190849Yao Hong-Ge, Dong Ze-Hao, Yu Jun, Bai Xiao-Jun. Fully overlapped handwritten number recognition and separation based on deep EM capsule network. Acta Automatica Sinica, DOI: 10.16383/j.aas.c190849 [25] Thomposon B. Exploratory and confirmatory factor analysis: Under concepts and applications. American Psycholohical Association, 2004 [26] 郭武, 李轶杰, 戴礼荣, 王仁华. 说话人识别中的因子分析以及空间拼接. 自动化学报, 2009, 35(9): 1193-1198. doi: 10.3724/SP.J.1004.2009.01193Guo Wu, Li Yi-Jie, Dai Li-Rong, Wang Ren-Hua. Factor Analysis and Space Assembling in Speaker Recognition. Acta Automatica Sinica, 2009, 35(9): 1193-1198. doi: 10.3724/SP.J.1004.2009.01193 [27] Gonzalez J A, et al. A silent speech system based on permanent magnet articulography and direct synthesis. Computer Speech & Language, 2016, 39: 67-87 [28] Li Y, Dixit M, Vasconcelos N. Deep scene image classification with the MFAFVNet. In: Proceedings of the 2017 IEEE International Conference on Computer Vision, 2017: 5746−5754 [29] Kesteren E van, Kievit R A. Exploratory Factor Analysis with Structured Residuals for Brain Network Data. Network Neuroscience, 2020: 1-45 期刊类型引用(4)
1. 任好,马亚杰,姜斌,刘成瑞. 基于零和微分博弈的航天器编队通信链路故障容错控制. 自动化学报. 2025(01): 174-185 . 本站查看
2. 罗世坚,常琪,项玥,郭胜辉. 含变化时延和集总扰动的智能网联车编队控制. 控制与决策. 2025(04): 1293-1302 . 百度学术
3. 徐会彬,方龙,张莎. 车联网中基于stacking集成学习的攻击检测模型. 电信科学. 2024(12): 38-50 . 百度学术
4. 张锐. 面向车联网的基于卷积神经网络的入侵检测模型. 电信科学. 2024(12): 51-62 . 百度学术
其他类型引用(4)
-