zoukankan      html  css  js  c++  java
  • 数学之路(3)-机器学习(3)-机器学习算法-神经网络[3]


    (5)LMS最小均方差


    Python的LMS算法部分为:

    以逻辑或为例,下面是x和w初始权值

    x = np.array([[1,1,1],[1,1,0],[1,0,1],[1,0,0]])
    d =np.array([1,1,1,0])
    w=np.array([b,0,0])

    下面是LMS算法部分


    #expect_e是期望误差率
    #mycount为最大尝试次数
    mycount=0
    while True:
    
            mye=0
    
            i=0          
    
            for xn in x:
    
                    w,e=neww(w,d[i],xn,a)
    
                    i+=1
    
                    mye+=abs(e)                
    
            mycount+=1
    
            print "第 %d 次调整后的权值:"%mycount
    
            print w
    
            print "误差:%f"%mye        
    
            if abs(mye)<expect_e or mycount>maxtrycount:break 
    
     #以下是验证部分             
    
    for xn in x:
    
            print "%d and %d => %d "%(xn[1],xn[2],get_v(w,xn))

    本博客所有内容是原创,未经书面许可,严禁任何形式的转载

    http://blog.csdn.net/u010255642


    执行结果为:

    >>> 

    第 次调整后的权值:

    [ 0.9  0.   0. ]

    误差:1.000000

    第 次调整后的权值:

    [ 0.8  0.   0. ]

    误差:1.000000

    第 次调整后的权值:

    [ 0.7  0.   0. ]

    误差:1.000000

    第 次调整后的权值:

    [ 0.6  0.   0. ]

    误差:1.000000

    第 次调整后的权值:

    [ 0.5  0.   0. ]

    误差:1.000000

    第 次调整后的权值:

    [ 0.4  0.   0. ]

    误差:1.000000

    第 次调整后的权值:

    [ 0.3  0.   0. ]

    误差:1.000000

    第 次调整后的权值:

    [ 0.2  0.   0. ]

    误差:1.000000

    第 次调整后的权值:

    [ 0.1  0.   0. ]

    误差:1.000000

    第 10 次调整后的权值:

    [  1.38777878e-16   0.00000000e+00   0.00000000e+00]

    误差:1.000000

    第 11 次调整后的权值:

    [-0.1  0.   0. ]

    误差:1.000000

    第 12 次调整后的权值:

    [-0.1  0.1  0.1]

    误差:2.000000

    第 13 次调整后的权值:

    [-0.1  0.1  0.1]

    误差:0.000000

    1 and 1 => 1 

    1 and 0 => 1 

    0 and 1 => 1 

    0 and 0 => 0 

    >>>

    我们换一个分类

    输入矩阵中x向量的整除结果为6为一类,为3是另一类

    x = np.array([[1,1,6],[1,2,12],[1,3,9],[1,8,24]])
    d =np.array([1,1,-1,-1])
    w=np.array([b,0,0])


    分类效果不错

    第 1 次调整后的权值:
    [ 0.8 -0.6 -1.8]
    误差:2.000000
    第 2 次调整后的权值:
    [  1.00000000e+00  -6.00000000e-01   4.44089210e-16]
    误差:6.000000
    第 3 次调整后的权值:
    [ 0.8 -2.4 -4.2]
    误差:6.000000
    第 4 次调整后的权值:
    [ 1.2 -1.8 -0.6]
    误差:4.000000
    第 5 次调整后的权值:
    [ 1.2 -2.2 -1.2]
    误差:4.000000
    第 6 次调整后的权值:
    [ 1.4 -2.2  0.6]
    误差:6.000000
    第 7 次调整后的权值:
    [ 1.2 -2.8 -1.2]
    误差:2.000000
    第 8 次调整后的权值:
    [ 1.4 -2.8  0.6]
    误差:6.000000
    第 9 次调整后的权值:
    [ 1.4 -2.8  0.6]
    误差:0.000000
    1 and 6 => 1
    2 and 12 => 1
    3 and 9 => -1
    8 and 24 => -1
    9 and 27 => -1
    11 and 66 => 1



  • 相关阅读:
    RMI笔记
    java 本地方法(JNI)
    java 的SPI机制
    eclipse中的 Compiler compliance level含义
    初步理解JNDI
    大数据5.1
    大数据4.1
    需要攻破的知识点
    大数据4.2 -- hive数据库
    大数据---单词释义
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3172419.html
Copyright © 2011-2022 走看看