码迷,mamicode.com
首页 > 其他好文 > 详细

神经网络的学习笔记

时间:2015-09-08 00:24:18      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:

我们先玩玩单层的神经网络,我们把图像切割成8*8的区域,灰度化,成为64维的输入数据
,$x=(x_{1},\cdots,x_{64})^T$,我们的单层神经网络有8个节点,即权重矩阵为一个$64
\times 8$的矩阵$W$,而输出$a=f(W^Tx+b)$。

以上是编码过程,下面讨论解码过程,上面所述之W,b,a改记为
$W^{(1)},b^{(1)},a^{(1)}$有:$a^{(1)}=f(W^{(1)T}x+b^{(1)})$ 。解码过程的输入是
$a^{(1)}$,权重矩阵为$8 \times 64$的矩阵$W^{(2)}$,输出为
$a^{(2)}=f(W^{(2)T}a^{(1)}+b^{(2)})$。

我们要令$h_{W,b} \to x$即对$h_{W,b}-x$计熵。
$h_{W,b}-x=a^{(2)}-x=f(W^{(2)T}a^{(1)}+b^{(2)})-x$,假设$h_{W,b}-x \sim
N(0,\sigma^2)$,熵是$H_{error}={1 \over 2} ln(2 \pi e \sigma_{error}^2)$,对$\sigma_{error}^2$
的最佳估计是${1 \over m}\sum_i^m (a^{(2)}_i-x_i)^2$,m是样本的个数,代入熵公式
$H_{error}={1 \over 2} ln(2 \pi e {1 \over m}\sum_i^m (a^{(2)}_i-x_i)^2)$。

W的熵是$H_W={1 \over 2} ln(2 \pi e {1 \over k \times n \times 2}\sum_i^{k \times n \times 2} (W_i)^2)$,n为隐藏节点数,k是x的尺寸,在本例中k=64。

对于m个样本来说,$H_W$是被平摊的,总的熵为
\begin{eqnarray*}
    H&=&m \times H_{error} + H_W\\
    &=& m{1 \over 2} ln(2 \pi e {1 \over m}\sum_i^m (a^{(2)}_i-x_i)^2)+{1 \over 2} ln(2 \pi e {1 \over k \times n \times 2}\sum_i^{k \times n \times 2} (W_i)^2)\\
    &=& {1 \over 2}ln((2 \pi e {1 \over m}\sum_i^m (a^{(2)}_i-x_i)^2)^m \times (2 \pi e {1 \over k \times n \times 2}\sum_i^{k \times n \times 2} (W_i)^2))\\
    &=& {1 \over 2}ln((2 \pi e)^{m+1}({1 \over m}\sum_i^m (a^{(2)}_i-x_i)^2)^m {1 \over k \times n \times 2}\sum_i^{k \times n \times 2} (W_i)^2)
    \label{}
\end{eqnarray*}

Andrew NG的版本似乎是从概率的角度出发:m个样本,假设$h_{W,b}-x \sim
N(0,\sigma_{error}^2)$,那么第i个样本出现的概率是:${1 \over \sigma_{error} \sqrt {2
\pi}}e^{-{(a^{(2)}_i-x_i)^2 \over 2\sigma_{error}^2}} $,所有样本都出现的概率是:$({1
    \over \sigma_{error} \sqrt {2 \pi}})^m e^{-{ \sum_i^m (a^{(2)}_i-x_i)^2 \over
2\sigma_{error}^2}}$,所有样本都出现且所有的W出现的概率是:$({1 \over \sigma_{error} \sqrt {2 \pi}})^m \times
({1 \over \sigma_W \sqrt {2 \pi}})^{k \times n \times 2} e^{-({ \sum_i^m
(a^{(2)}_i-x_i)^2 \over 2\sigma_{error}^2}+{ \sum_i^{k \times n \times 2}
(W_i)^2 \over 2\sigma_W^2})}$

Andrew NG先生的版本之所以去做${ {1\over m}\sum_i^m (a^{(2)}_i-x_i)^2 \over
2}+\lambda{\sum_i^{k \times n \times 2} (W_i)^2 \over 2}$的最大化,隐含了几个
假设:

1、先验的,$\sigma_{error}=1,\sigma_W=1$;

2、$\lambda={1 \over m }$,这在练习题的代码中作为经验参数被给出。

通观Andrew NG先生教授的各种方法,倾向于样本作$\sigma$归一化的预处理,或许因此而倾向
于假设未知量服从$N(0,1)$分布。

这是很有趣的,这应该归类为一种工程上的方法,好比造一座大楼,每根柱子用十根钢筋
还是十二根钢筋可能都是在可接受的范围之内的,马马虎虎也没有关系,大手大脚的不妨
多扔几根进去,抠门的不妨偷工减料。但从学理上讲,既然样本的取值范围在0-1之间,将
残差的方差估计为1显然是高估了,权重项$W_ij$作为未知量,预先估计其方差为1也是不
科学的。


神经网络的学习笔记

标签:

原文地址:http://www.cnblogs.com/zenothing/p/4790320.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!