zoukankan      html  css  js  c++  java
  • 斯坦福2014机器学习笔记六----神经网络(一)

     一、纲要

      神经网络模型表示

      神经网络的直观理解

      神经网络做多类分类

    二、内容详述

      1、神经网络模型表示

      这里就不再描述大脑的神经网络和神经元了,我们直接看神经网络的模型。我们先从最简单的神经网络开始,即只有input layer和output layer

    这里的x0叫做偏置单元,跟之前一样,为一常数,x0=1;这里的hθ(x)叫做神经元的激励函数,hθ(x)跟逻辑回归函数一样。下面再来一个相对来说复杂一点的神经网络

    这里多了一层layer2,叫做隐藏层(hidden layer)。我们用ai(j)表示第j层的第i个激励,用θ(i)表示第j层到第(j+1)层的作用,且θ(i)是一个矩阵,尺寸是(j+1)层的单元数Sj+1为矩阵的行数,第j层的单元数Sj+1表示为矩阵的列数,即θ的维度是(Sj+1 * Sj+1)。这样的话我们就可以算出layer2的各单元的表达式:

    这里在计算layer2的时候会加上x0,如果有更多的层,在计算下一层的时候都会加上这层的偏置单元,如在计算layer3的时候就在layer2画上a0(2)这个bias unit。

    这里我们可以对上面的表达式进行简化表示如图,并对z,x,θ进行向量化得z(i+1) = θ(i)·x(i),i表示对应第i层

    可以看得出,每一层的a都是由上一层的x和x对应的参数(权重)θ决定的,我们把这样从左到右的算法称为前向传播算法。

    说了这么多,神经网络所做的就是逻辑回归,但输入不再是xxx3,而是用aa2 a3的计算出来的新输入特征,这里的aa2 a3都是逻辑回归的结果,因为是梯度下降的,所以我们得到的aa2 a3是比xxx3更好的假设,然后再输入到最后一层,相当于是逻辑回归的多层嵌套。

      2、神经网络的直观描述

      这一部分我们来利用神经网络实现逻辑与、逻辑或,逻辑非运算,然后用稍微复杂的神经网络来实现同或运算

      

    我们假设这里的权重θ0 = -30,θ1 = 20,θ2 = 20,那么进行运算后我们得到,根据我们之前逻辑回归部分的hθ(x)=g(z),当z>4.6时我们可以认为hθ(x)=g(z) = 1,而当z<-4.6时,认为hθ(x)=g(z)=0,所以我们对x0,x1分别赋0、1值可以得到真值表。这就是神经网络实现了AND运算

                  

      我们用同样的方法进行(Not x1)AND(Not x2)运算,此时权重就应该变为θ0 =10,θ1 = -20,θ2 = -20,可以自己动手画一画。这些都是只有input layer和output layer,下面我们要实现同或运算,就需要额外的hidden layer,这里我直接手写来表示

      3、神经网络做多类分类

      多类分类就是说在output layer有多个输出,跟上面这部分的区别在于,上面的都是二元分类,只有一个输出,即非1即0。但是做多类分类的时候,加入我们需要识别4类不同的对象,那我们就需要4个输出,且我们得到的输出值hθ(x)=y(i)=[1,0,0,0](T)或[0,1,0,0](T)或[0,0,1,0](T)或[0,0,0,1](T),这样我们就可以判断识别的是哪类对象了

  • 相关阅读:
    Mono的简单例子
    Struts2基础学习(四)—类型转换器和数据校验
    Struts2基础学习(三)—Result和数据封装
    Struts2基础学习(二)—Action
    Struts2基础学习(一)—初识Struts2
    jQuery基础学习(三)—jQuery中的DOM操作
    jQuery基础学习(二)—jQuery选择器
    jQuery基础学习(一)—jQuery初识
    JavaScript基础学习(九)—DOM
    JavaScript基础学习(八)—事件
  • 原文地址:https://www.cnblogs.com/kl2blog/p/7719981.html
Copyright © 2011-2022 走看看