zoukankan      html  css  js  c++  java
  • 神经网络(6)---一些神经网络学习复杂非线性问题的例子(2)

    如何实现逻辑非(negation)

    上次我们实现了逻辑与与逻辑或运算,现在来看看逻辑非运算的实现

      

    如左上图所示,我们只有一个x1输入,还有一个bias unit(+1),如果我们将weights设为10,-20的话,则我们的hΘ(x)=g(10-20x1)。计算右上角的表格可以得出函数的值与逻辑非函数的值是一至的。

    cells include negation的基本思想是将你想要取反的那个变量的weight设为很大的负,如上例所示的用-20去乘x1,则会对x1取反.

    右边的一个图为逻辑运算(NOT x1) AND (NOT x2)

    实现XNOR(同或)

    我们可以通过组合x1 AND x2, (NOT x1) AND (NOT x2) , x1 OR x2这三个单个的神经系统来组成x1 XNOR x2.

    x1 XNOR x2的正负取值如最右上的那个坐标系所示,很显然如果要将它的正负取值分割开来的话,它的分割曲线是nonlinear的。

    如左下图所示,我们将第一个神经单元用红色的表示,这个红色的是一个逻辑与,得到中间hidden layer层的a1(2),第二个单元用蓝色的表示的,是一个(NOT x1) AND (NOT x2),输出是a2(2),第三个单元是用绿色的表示的,是一个x1 OR x2,最后的输出设备是hΘ(x)的值与XNOR的值一至。这样我们一层一层的运算,从input layer到hidden layer再到output layer计算出了XNOR所要得到的效果。这说明当我们将几个简单的神经元进行组合时能组成complex function,一层一层递进的compute more complex function

    上图是一个较复杂的神经网络,layer2得到比layer1复杂的features,layer3得到比layer2复杂的features,layer 4进行logistiv regression得到最后的output即hΘ(x),这就是我们之前提到的forward propagation(传播)

    总结

    1 神经网络可以由简单的神经元组合,通过一层一层的forward propagation,来处理复杂的非线性问题,如之前介绍的对手写数字(图片)的识别

    2 二进制上的任何逻辑运算可以由神经网络近似的表示

    ,

  • 相关阅读:
    Maven 环境的配置
    zTree的简单例子
    plsql免安装客户端的配置
    HDU 1232 畅通工程
    HDU 5698 瞬间移动
    Codeforces 1015E1 Stars Drawing (Easy Edition)
    Codeforces 784B Santa Claus and Keyboard Check
    Codeforces 500C New Year Book Reading
    NSarray 赋值 拷贝 等问题记录
    UINavigationController 操作记录
  • 原文地址:https://www.cnblogs.com/yan2015/p/4995972.html
Copyright © 2011-2022 走看看