ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

深度学习前馈神经网络

2021-06-28 15:31:16  阅读:218  来源: 互联网

标签:plt 代码 前馈 X2 神经网络 深度 np X1 D2


深度学习前馈神经网络

河北师范大学2018级人工智能方向课后作业总结

文章目录


任务要求

根据课上所学Rosenblatt感知器模型结构和算法流程,自己用代码实现。
设计实验(包括生成数据集、设计收敛衡量指标,如MSE),验证其在线性可分二分类问题上的性能,并作可视化展示。

参照代码已经在2018级钉钉群内分享,根据课上讲解要求有选择地参考。鼓励创新的思路和设计。

注意参考代码有设计上的bug,需要排除掉之后,才能有好的效果。所改之处要注释。

要求:

原创思路务必注明,解释清晰。

原创代码务必多做注释。

参考代码不要做任何注释。

未达成验证或者展示目标,或者没有任何创新点,不要作答。

代码内容

1.更改后

代码如下(示例):

import numpy as np
from matplotlib import pyplot as plt
D = np.random.random((10,2))
D2 = np.zeros((10,3))  #创建一个新的全0矩阵,比D要多一列,
for i in range(len(D)):
    D2[i] = np.append(D[i],[1])
D1 = np.array([[0.64754855, 0.59507059],
       [0.3120167 , 0.03192053],
       [0.37969568, 0.86204827],
       [0.02818424, 0.98058601],
       [0.396828  , 0.31667695],
       [0.61613117, 0.34472543],
       [0.74338109, 0.51823655],
       [0.73737023, 0.62347628],
       [0.46752571, 0.39628274],
       [0.63097959, 0.38178618]])
X1 = D[:,0]
X2 = D[:,1]
X1,X2
Y = np.array([(2*x1+x2)>1.5 for (x1,x2) in zip(X1,X2)])
Y , X1 , X2
print(X1[Y],X2[Y])
Y_0 = ((Y-1)*(-1)).astype(bool)
print(Y,Y_0)
print(X1[Y_0],X2[Y_0])
plt.scatter(X1[Y],X2[Y],c='r')
plt.scatter(X1[Y_0],X2[Y_0],c='g')

x = np.linspace(0,1,100)
y = 1.5-2*x
plt.plot(x,y)
plt.show()
w = np.zeros(D2.shape[1]) #w因为要和x相乘,要遵循矩阵相乘的法则。
y = Y.astype(int)
y = y*2-1
D2,w,y
#准备模型

def ganzhiqi(x):
    y = np.dot(w,x) 
    # print(y)
    if y>0:
        return 1
    else:
        return -1
ganzhiqi(np.array([1,2,1]))
T = 300
t = 0 
k = 0
N = len(D2)
# for n in range(N):
while(t<T):
    for i in range(N):
        xi = D2[i]
        yi = y[i]
        print(i,xi,yi)
        if yi*ganzhiqi(xi)<=0:
            w = w + yi * xi #在上面b已经合并到w里了,不用再写一次b了
            k = k + 1
            print('更新:',k,w)
        t = t + 1

print("last:",w)
    # if 
    # if w*(y*x)<=0:
    #     w = w + y * x
    # t = t +1
    # print(t,w)
    # if t==T:
    #     break
    

2.关键输出截图

代码如下(示例):

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.与所给代码更改部分

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
收敛证明即为:
在这里插入图片描述
当然收敛证明用图来证明会更好,证明其是不断降低的

总结

对应的ipynb文件 待上传

标签:plt,代码,前馈,X2,神经网络,深度,np,X1,D2
来源: https://blog.csdn.net/fazive/article/details/118303909

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有