神经网络的学习笔记

我们先玩玩单层的神经网络,我们把图像切割成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也是不
科学的。

时间: 2024-12-28 16:13:10

神经网络的学习笔记的相关文章

卷积神经网络(CNN)学习笔记1:基础入门

卷积神经网络(CNN)学习笔记1:基础入门 Posted on 2016-03-01   |   In Machine Learning  |   9 Comments  |   14935  Views 概述 卷积神经网络(Convolutional Neural Network, CNN)是深度学习技术中极具代表的网络结构之一,在图像处理领域取得了很大的成功,在国际标准的ImageNet数据集上,许多成功的模型都是基于CNN的.CNN相较于传统的图像处理算法的优点之一在于,避免了对图像复杂的

深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-01-CNN基础知识点

第一天<CNN基础知识点>From:Convolutional Neural Networks (LeNet) 神经认知机. CNN的灵感来源在诸多论文中已经讲得很全面了,就是伟大的生物发现Receptive Field(感受野细胞).根据这个概念提出了神经认知机.它的主要作用就是Recept部分图像信息(或特征),然后通过分层递交相连,将各个局部特征组合成整个图像特征. 需要仔细阅读的论文包括: (1) 第一篇关于感受野功能的论文Receptive fields and functional

[matlab]bp神经网络工具箱学习笔记

基本就三个函数: newff():创建一个bp神经网络 train():训练函数 sim():仿真函数 同时具有可视化界面,但目前不知道可视化界面如何进行仿真,且设置不太全 工具箱:Neural net fitting textread使用方法:http://blog.sina.com.cn/s/blog_9e67285801010bju.html ex1. clear; clc; %注意P矩阵,matlab默认将一列作为一个输入 P=[0.5152 0.8173 1.0000 ; 0.8173

ufldl学习笔记与编程作业:Convolutional Neural Network(卷积神经网络)

ufldl出了新教程,感觉比之前的好,从基础讲起,系统清晰,又有编程实践. 在deep learning高质量群里面听一些前辈说,不必深究其他机器学习的算法,可以直接来学dl. 于是最近就开始搞这个了,教程加上matlab编程,就是完美啊. 新教程的地址是:http://ufldl.stanford.edu/tutorial/ 本节学习地址:http://ufldl.stanford.edu/tutorial/supervised/ConvolutionalNeuralNetwork/ 一直没更

深度学习笔记(一)卷积神经网络(Convolutional Neural Networks)

一.卷积 卷积神经网络(Convolutional Neural Networks)是一种在空间上共享参数的神经网络.使用数层卷积,而不是数层的矩阵相乘.在图像的处理过程中,每一张图片都可以看成一张"薄饼",其中包括了图片的高度.宽度和深度(即颜色,用RGB表示). 在不改变权重的情况下,把这个上方具有k个输出的小神经网络对应的小块滑遍整个图像,可以得到一个宽度.高度不同,而且深度也不同的新图像. 卷积时有很多种填充图像的方法,以下主要介绍两种,一种是相同填充,一种是有效填充. 如图中

CNN卷积神经网络学习笔记2:网络结构

在上篇笔记<CNN卷积神经网络学习笔记1:背景介绍>中已经介绍过CNN的结构,这篇笔记中,通过一个简单的CNN的例子,梳理一下CNN的网络结构的细节. 以下是一个6层的CNN网络,这个简单的CNN网络是DeepLearning Toolbox里面CNN的一个例子,后面要通过DeepLearning Toolbox中CNN的代码来进一步理解CNN的整个过程.我们输入的是1张大小为28*28的图片. 需要注意的有: 1,这里输入的是一张图片,如果我们输入了50张图片,那么下图中的每一个方框(代表一

深度学习笔记1(卷积神经网络)

深度学习笔记1(卷积神经网络) 在看完了UFLDL教程之后,决定趁热打铁,继续深度学习的学习,主要想讲点卷积神经网络,卷积神经网络是深度学习的模型之一,还有其它如AutoEncoding.Deep Belief Network.Restricted Boltzmann Machine和sparse coding等. 在UFLDL教程中提到了针对大型图像的处理,使用卷积和池化的概念.原因主要对于全连接网络,需要的参数就有很多.比如对于一副1000*1000的图像,hidden layer也为100

ufldl学习笔记与编程作业:Multi-Layer Neural Network(多层神经网络+识别手写体编程)

ufldl学习笔记与编程作业:Multi-Layer Neural Network(多层神经网络+识别手写体编程) ufldl出了新教程,感觉比之前的好,从基础讲起,系统清晰,又有编程实践. 在deep learning高质量群里面听一些前辈说,不必深究其他机器学习的算法,可以直接来学dl. 于是最近就开始搞这个了,教程加上matlab编程,就是完美啊. 新教程的地址是:http://ufldl.stanford.edu/tutorial/ 本节学习地址:http://ufldl.stanfor

DeepLearning (六) 学习笔记整理:神经网络以及卷积神经网络

神经网络 神经网络模型 前向传播 反向传播 Neural Networds Tips and Tricks Gradient Check Regularization 激活函数 sigmoid 函数 Tanh Relu 稀疏编码 卷积神经网络 卷积 局部感知 权值共享 多通道卷积 卷积输出大小计算公式 池化pooling后的平移不变性 Dropout Learning rate AdaGrad python 实现 caffe 中的学习率 参考文献 [原创]Liu_LongPo 转载请注明出处[C