落园 » ≪统计学习精要(The Elements of Statistical Learning)≫课堂笔记(十八):神经网络|专注经济视角下的互联网

≪统计学习精要(The Elements of Statistical Learning)≫课堂笔记(十八):神经网络

前馈神经网,BP算法,AE(自编码器,Auto-Encoders)

1. 前馈神经网(Multilayer Feedforward Network)

fig 12.8

前馈神经网大致就是这个样子,一层一层的结构。这样,我们就由第一代的神经元系统繁殖出来了一个神经元群落...看起来很高深的样子。

先说一些参数和记号:

  • L:网络的层次
  • n_{l}1\leq l\leq L:表示第l层中神经元的个数。特别的,n_{0}=p为所有输入变量的个数(x的维数),n_{L}是网络输出的个数。
  • w_{jk}^{l}1\leq j\leq n_{l}1\leq k\leq n_{l-1}:相邻两层(ll-1)之间的连接的权重。
  • b_{j}^{l}:第l层第j个神经元的偏置值。
  • s_{j}^{l},1\leq j\leq n_{l},1\leq l\leq L:第l层第j个神经元的状态值。
  • a_{j}^{l},1\leq j\leq n_{l},1\leq l\leq L:第l层第j个神经元的活性(activation),或称为输出。

基本关系:

  • a_{j}^{l}=\sigma(s_{j}^{l})
  • s_{j}^{l+1}=\sum_{k=1}^{n_{l}}(w_{jk}^{k+1}a_{k}^{l})+b_{j}^{l+1}=\sum_{k=1}^{n_{l}}(w_{jk}^{k+1}\sigma(s_{j}^{l}))+b_{j}^{l+1}1\leq j\leq n_{l+1}1\leq l\leq L

模型:\{f(x;w,b)\}\mathbb{R}^{n_{0}}\rightarrow\mathbb{R}^{n_{L}}的映射。

2. BP算法(网络学习/拟合)

给定数据D=\{(x_{i},y_{i}),1\leq i\leq N\},定义

J(w,b;x(i),y(i))=\frac{1}{2}[y(i)-f(x(i);w,b)]^{2}

那么

J(w,b)=\underbrace{\frac{1}{N}\sum_{i=1}^{N}J(w,b;x(i),y(i))}_{empirical\, error}+\underbrace{\sum_{l=1}^{L}\sum_{j=1}^{n_{l}}\sum_{k=1}^{n_{l-1}}(w_{jk}^{l})^{2}\frac{\lambda}{2}}_{regularization}

接下来的拟合优化问题就是最小化J(w,b)。这里可以采用梯度下降:

w^{t+1}\leftarrow w^{t}-\alpha\frac{\partial J}{\partial w}|_{t}b^{t+1}\leftarrow b^{t}-\alpha\frac{\partial J}{\partial b}|_{t},所以需要求得这两个梯度(偏导)项。

定义\delta_{j}^{l}=\frac{\partial J(w,b;x,y)}{\partial s_{j}^{l}},这样\frac{\partial J(w,b;x,y)}{\partial w_{jk}^{l}}=\frac{\partial J(w,b;x,y)}{\partial s_{j}^{l}}\frac{\partial s_{j}^{l}}{\partial w_{jk}^{l}}=\delta_{j}^{l}\sigma(s_{k}^{l-1}),其中s_{j}^{l}=\sum_{k=1}^{n_{l-1}}w_{jk}^{l}\sigma(s_{k}^{l-1})+b_{j}^{l}

类似的,\frac{\partial J(w,b;x,y)}{\partial b_{j}^{l}}=\frac{\partial J(w,b;x,y)}{\partial s_{j}^{l}}\frac{\partial s_{j}^{l}}{\partial b_{j}^{l}}=\delta_{j}^{l}

为了解\delta_{j}^{l}这个东西,我们需要后向递归。

首先在第L层:\frac{\partial}{\partial s_{j}^{l}}\frac{1}{2}(y-a_{j}^{L})^{2}=\frac{\partial}{\partial s_{j}^{l}}\frac{1}{2}(y-\sigma(s_{j}^{L}))^{2}=(y-a_{j}^{L})\sigma'(s_{j}^{L}),然后\sigma'(s_{j}^{L})=\sigma(s)(1-\sigma(s))

For L-1,...,1,我们有\delta_{j}^{l}=\frac{\partial J}{\partial s_{j}^{l}}=\sum_{k=1}^{n_{l+1}}\frac{\partial J}{\partial s_{j}^{l+1}}\frac{\partial s_{j}^{l+1}}{\partial s_{j}^{l}}=\sum_{k=1}^{n_{l+1}}\delta_{k}^{l+1}w_{jk}^{l+1}\sigma(s_{j}^{l}),这样就一直可以迭代反推至第一层。

3. AE(自编码器,Auto-Encoders)

auto-encoder

自编码器可以算是一个简化的神经网,大致只有三层:0,1,2。其中输入是x,输出也是x,但是中间进行了一个过滤。直观的讲,就像一个文件压缩了一下,又解压缩。中间压缩包的体积要比源文件小,但是信息却基本没有损失。

AE基本上想达到两个目标:

1. n_{1}<n_{0},即中间那层的维数小于原始输入的维数p。

2. 或者输出的均值非常小,即从第一层到最上面一层的输出较为稀疏,不是很强烈的关联。

下节课会讲到SVM。

Leave a Reply

Your email address will not be published. Required fields are marked *