李燕

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

如何选择神经网络的architecture

input units和output units都很好决定,关于hidden layer的层数,则一般来说是选择一个hidden layer, 或者>1的hidden layer,但是每个hidden layer都有相同的units.通常来说hidden layer的units的数目是input units--3/4*input units之间,比input units稍微多一点。

如果是多分类的问题,则y的值如上图所示是一个向量,而不是logistic regression问题中的一个正数。

Trainning a neural network

 

 

weights是接近于0的随机数。

我们用一个for循环,对第一个样本进行forward propagation和backpropagation,再对第二个样本进行forward propagation和backpropagation直到最后一个样本。这样我们就得到了a(l)和δ(l),接下来我们可以计算Δ(l),对Δ(l)进行累加(可详见前面的介绍),这个Δ(l)累加完成后在循环外面用来计算偏导.

 

back propagation算法是用来计算J(Θ)的偏导的,这样可以用来求J(Θ)的最小值。

在神经网络中,J(Θ)是non-convex函数,即我们求的最小值只是局部最优解,不是全局的,但是这并没有关系,因为gradient descent以及一些advanced optimization method求得的最小值已经很好了。

求最优点的图

 

上面这个图只画出了两个参数的情况,实际上我们有很多个参数,但是为了能画出图像的目的,这里只是给出两个参数的图像做为例子。

左下角的那个点对应的J(Θ)的值很小,即对我们的训练数据进行了很好的模拟。右上角的那个点对应的J(Θ)的值较大,即hΘ(x(i))远离y(i).

当我们做梯度下降算法时,先从某一点开始,由back propagation来决定下降的方向,这样一步步下降接近局部最优解。

 

posted on 2015-12-07 20:20  李燕  阅读(329)  评论(0编辑  收藏  举报