nuget server logo nuget api documents
↑

API Docs / SMRUCC.genomics.Analysis.HTS.P-NET / PredictionHead

PredictionHead

Full name SMRUCC.genomics.Analysis.HTS.P_NET.PredictionHead Assembly SMRUCC.genomics.Analysis.HTS.P-NET Members 16

深度监督预测头:挂在每一个隐藏层之后的 sigmoid 二分类输出节点

00 Remarks

P-NET 在每一个隐藏层后面都挂一个 sigmoid 预测节点,最终预测为所有预测头输出的平均值:

ŷ = (1 / L) · Σ_l σ(z_l)

这样设计有三个作用:

  1. 正则化:迫使每一层的中间表示本身就要具备判别力,防止信息只在前几层"打包", 后面的层退化为恒等映射;
  2. 逐层可解释:每一个预测头都可以单独审视,从而判断哪一层抽象层级携带了主要的判别信号;
  3. 损失加权:越深的层节点数越少、参数越少、拟合更困难, 因此训练时给深层的预测头更高的损失权重以平衡梯度贡献(见 PredictionHead.LossWeight)。

01 Syntax

SMRUCC.genomics.Analysis.HTS.P_NET.PredictionHead

02 Methods

NameOverloadsSummary
.ctor 1 创建深度监督预测头
Forward 1 前向传播:p = σ(a·w + b)
Backward 1 反向传播:累积权重与偏置梯度,并返回传递给隐藏层激活值的梯度
ZeroGrad 1 清零累积的权重与偏置梯度
CollectParameters 1 把参数与梯度收集到给定的列表之中,供优化器使用
ToString 1 生成预测头的字符串描述

03 Properties

NameOverloadsSummary
Name 1 预测头的名称,通常采用其所挂载的隐藏层名称
FanIn 1 所挂载的隐藏层的节点数量
Weights 1 权重向量 w,形状为 [1, FanIn]
Bias 1 偏置标量 b,形状为 [1]
WeightGrad 1 累积的权重梯度,形状与 PredictionHead.Weights 相同
BiasGrad 1 累积的偏置梯度
LossWeight 1 该预测头在总损失之中的权重,越深的层取值越大
LastZ 1 最近一次前向传播所得到的 logits 值 z = a·w + b,形状为 [N, 1]
LastP 1 最近一次前向传播所得到的概率值 σ(z),形状为 [N, 1]
LastInput 1 最近一次前向传播所输入进来的隐藏层激活值,形状为 [N, FanIn]

04 Members

method .ctor #
#ctor(Int32, String, Double, Nullable(Of Int32))

创建深度监督预测头

Parameters
NameTypeDescription
fanInInt32

所挂载的隐藏层的节点数量

nameString

预测头名称

lossWeightDouble

该预测头在总损失中的权重

seedNullable(Of Int32)

权重初始化随机数种子

method Forward #
Forward(Tensor)

前向传播:p = σ(a·w + b)

Parameters
NameTypeDescription
aTensor

隐藏层激活值矩阵,形状为 [N, FanIn]

Returns

概率矩阵,形状为 [N, 1]

method Backward #
Backward(Tensor)

反向传播:累积权重与偏置梯度,并返回传递给隐藏层激活值的梯度

Remarks

记 dz = ∂L/∂p · p · (1 - p),则有 ∂L/∂w = Σ a · dz、∂L/∂b = Σ dz、∂L/∂a = dz ⊗ w。

Parameters
NameTypeDescription
dLoss_dPTensor

损失对预测概率的梯度,形状为 [N, 1]

Returns

损失对隐藏层激活值的梯度 ∂L/∂a,形状为 [N, FanIn]

method ZeroGrad #
ZeroGrad

清零累积的权重与偏置梯度

method CollectParameters #
CollectParameters(List(Of Tensor), List(Of Tensor))

把参数与梯度收集到给定的列表之中,供优化器使用

Parameters
NameTypeDescription
parametersList(Of Tensor)

参数收集列表

gradientsList(Of Tensor)

梯度收集列表

method ToString #
ToString

生成预测头的字符串描述

Returns

形如 head_Genes[48 -> 1, weight=1.000] 的描述文本

property Name #
Name

预测头的名称,通常采用其所挂载的隐藏层名称

Returns

名称字符串

property FanIn #
FanIn

所挂载的隐藏层的节点数量

Returns

输入维度

property Weights #
Weights

权重向量 w,形状为 [1, FanIn]

Returns

权重张量

property Bias #
Bias

偏置标量 b,形状为 [1]

Returns

偏置张量

property WeightGrad #
WeightGrad

累积的权重梯度,形状与 PredictionHead.Weights 相同

Returns

权重梯度张量

property BiasGrad #
BiasGrad

累积的偏置梯度

Returns

偏置梯度张量

property LossWeight #
LossWeight

该预测头在总损失之中的权重,越深的层取值越大

Returns

损失权重

property LastZ #
LastZ

最近一次前向传播所得到的 logits 值 z = a·w + b,形状为 [N, 1]

Returns

logits 张量,供 DeepLIFT 归因使用

property LastP #
LastP

最近一次前向传播所得到的概率值 σ(z),形状为 [N, 1]

Returns

概率张量

property LastInput #
LastInput

最近一次前向传播所输入进来的隐藏层激活值,形状为 [N, FanIn]

Returns

激活值张量