深入理解设计矩阵(Design Matrix)

设计矩阵通常是用来描述数据集的一个方法。通常有m行n列,

1、每个行向量$oldsymbol x^{(i)}$代表第$i$个实例

2、每个列向量$oldsymbol x_j$代表第$j$个feature

$X=egin{bmatrix} oldsymbol x_1 & oldsymbol x_2 & cdots & oldsymbol x_nend{bmatrix}$

其中每一列表示一个feature向量,向量内容(每一行)代表不同实例在该feature上的取值。

先考察$X$和一个参数向量$oldsymbol w$相乘

$Xoldsymbol w=egin{bmatrix} oldsymbol x_1 & oldsymbol x_2 & cdots & oldsymbol x_nend{bmatrix}egin{bmatrix} w_1 \ w_2 \ vdots \ w_n end{bmatrix}=sum_{j=1}^n w_joldsymbol x_j$

这是一个标准的矩阵和向量乘法,意义是用$oldsymbol w$中的各分量对X中的对应列进行线性组合。

考虑一个典型的神经网络:

$x_1,x_2,x_3$代表3个feature,在大部分教程的介绍中,为了描述简便,都是标量数值。但是在训练过程中,$x_1,x_2,x_3$通常都是$m$维列向量($m$代表实例的个数),将它们从左到右叠起来,就是设计矩阵X。而$Xoldsymbol w$生成了一个新的列向量,也就是第一个隐藏结点在激活之前的值(unactivated value)。

可以看到,图中有四个隐藏节点,那么怎么用一个乘法,把所有隐藏节点的unactivated value都算出来呢?

对,我们把4个系数向量$oldsymbol w$从左到右叠起来,变成一个系数矩阵:

$W=egin{bmatrix} oldsymbol w_1 & oldsymbol w_2 & cdots & oldsymbol w_{h}end{bmatrix}$

其中$h$代表第一层隐藏节点的个数,$w_{i,j}$表示第$i$个隐藏单元的第$j$个系数

根据矩阵乘法的定义,我们有:$XW=Xegin{bmatrix} oldsymbol w_1 & oldsymbol w_2 & cdots & oldsymbol w_{h}end{bmatrix}=egin{bmatrix} Xoldsymbol w_1 & Xoldsymbol w_2 & cdots & Xoldsymbol w_hend{bmatrix}$

很明显,$XW$的每一列就是对应的隐藏节点的unactivated value

原文地址:https://www.cnblogs.com/milaohu/p/7326084.html