zoukankan      html  css  js  c++  java
  • 神经网络(14)--具体实现:put it together

    如何选择神经网络的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来决定下降的方向,这样一步步下降接近局部最优解。

  • 相关阅读:
    Mybatis学习笔记
    Java——设计模式
    Java——多线程
    Java——集合
    DAO层、Service层、Controller层、View层
    Mybatis整合spring
    Spring中的DI和IOC
    事务
    Xml实现AOP
    2018.3.10考试的试题解析
  • 原文地址:https://www.cnblogs.com/yan2015/p/5027328.html
Copyright © 2011-2022 走看看