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

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

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

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

 

$X=\begin{bmatrix} \boldsymbol x_1 & \boldsymbol x_2 & \cdots & \boldsymbol x_n\end{bmatrix}$

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

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

$X\boldsymbol w=\begin{bmatrix} \boldsymbol x_1 & \boldsymbol x_2 & \cdots & \boldsymbol x_n\end{bmatrix}\begin{bmatrix} w_1 \\ w_2 \\ \vdots \\ w_n \end{bmatrix}=\sum_{j=1}^n w_j\boldsymbol x_j$

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

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

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

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

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

$W=\begin{bmatrix} \boldsymbol w_1 & \boldsymbol w_2 & \cdots & \boldsymbol w_{h}\end{bmatrix}$

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

根据矩阵乘法的定义,我们有:$XW=X\begin{bmatrix} \boldsymbol w_1 & \boldsymbol w_2 & \cdots & \boldsymbol w_{h}\end{bmatrix}=\begin{bmatrix} X\boldsymbol w_1 & X\boldsymbol w_2 & \cdots & X\boldsymbol w_h\end{bmatrix}$

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

posted on 2017-08-09 16:34  米老虎M  阅读(7329)  评论(0编辑  收藏  举报

导航