一 多层前向神经网络

输入层(input layer)-> 隐藏层(hideen layer)->输出层(outpu layer)

每层由单元组成

神经网络算法设计

算法介绍

二 训练实例

三 代码实战

import numpy as npdef tanh(x):    #定义tan函数return np.tanh(x)def tanh_deriv(x): #定义tan函数的导数return 1.0-np.tan(x)*np.tan(x)def logistic(x):#定义逻辑回归函数return 1/(1+np.exp(-x))def logistic_deriv(x):#定义逻辑回归函数的导数return logistic(x)*(1-logistic(x))#定义一个名为神经网络的类
class NeuralNetwork:#init类似于构造函数 初始化一个类对象是默认调用def __init__(self,layers,activation='tanh'):#选择该神经网络所使用的损耗函数if activation == 'logistic':self.activation = logisticself.activation_deriv = logistic_derivelif activation == 'tanh':self.activation = tanhself.activation_deriv = tanh_derivself.weights = [] #初始化一个weigt权重容器#初始化权重 是随机的 还要加上偏差biasfor i in range(0,len(layers)-1):self.weights.append((2*np.random.random((layers[i]+1,layers[i+1]+1))-1)*0.25)#参数说明def fit(self,x,y,learn_rate = 0.2,epochs = 100000):x = np.atleast_2d(x) #升到2维以上temp = np.ones([x.shape[0],x.shape[1]+1])  #增加的一类用于处理Bias 因此设置为1temp[:,0:-1] = x  #左闭右开  把X的值赋值给新的数组x = tempy = np.array(y)for k in range(epochs):  #采用抽样的方法进行训练i =  np.random.randint(x.shape[0])a = [x[i]]for l in range(len(self.weights)):a.append(self.activation(np.dot(a[l],self.weights[l])))  #矩阵求和 然后在用损耗函数处理 再放在数组后面  整个过程处理完毕
error = y[i] - a[-1] #计算结果误差deltas = [ error*self.activation_deriv(a[-1])]  #计算输出层误差#现在开始反向走for i in range(len(a)-2,0,-1): #
                deltas.append(deltas[-1].dot(self.weights[i].T)*self.activation_deriv(a[i]))                deltas.reverse()for i in range(len(self.weights)):layer = np.atleast_2d(a[i])delta = np.atleast_2d(deltas[i])self.weights[i]+= learn_rate*layer.T.dot(delta)def predict(self,x):x = np.array(x)temp = np.ones(x.shape[0]+1)temp[0:-1] = xa = tempfor i in range(0,len(self.weights)):a = self.activation(np.dot(a,self.weights[i]))return a[0]

from NeuralNetwork import NeuralNetwork
import numpy as np nn = NeuralNetwork([2,2,1],'tanh')
#建立两层神经网络 输入层为2维  隐藏层为2维 输出层为1维
x = np.array([[0,0],[0,1],[1,0],[1,1]])
y = np.array([0,1,1,0])
nn.fit(x,y)for i in [[0,0],[0,1],[1,0],[1,1]]:print(nn.predict(i))

转载于:https://www.cnblogs.com/xiaoqi254789/articles/8359198.html

麦子学院机器学习基础(5)-(神经网络NN))(python)相关推荐

  1. 【机器学习基础】如何在Python中处理不平衡数据

    特征锦囊:如何在Python中处理不平衡数据 ???? Index 1.到底什么是不平衡数据 2.处理不平衡数据的理论方法 3.Python里有什么包可以处理不平衡样本 4.Python中具体如何处理 ...

  2. 麦子学院学习视频之机器学习(1):1.1 机器学习介绍

    今天开始学习机器学习,在网上找了很多视频还有书籍.由于本人不是计算机专业的学生,基础知识还是比较薄弱,但我非常想学习机器学习以及深度学习.最后还是选择了麦子学院的彭亮老师的<机器学习基础介绍&g ...

  3. 麦子学院学习视频之机器学习(1):1.2深度学习介绍

           今天学习了第二课,从什么是深度学习,深度学习什么时间段发展起来的,以及深度学习能用来干什么,如今和未来将对我们生活造成怎样的影响?这几个问题了解和学习深度学习的基础知识. 一,从网上还了 ...

  4. 机器学习基础-10:机器学习简史

    机器学习简史 机器学习原理与实践(开源图书)-总目录,建议收藏,告别碎片阅读! 人类社会和自然界每时每刻都会生产大量数据,数据即信息,如果有效利用这些信息和数据,如何根据个体和机构的特定需求从海量数据 ...

  5. 麦子学院彭亮python基础_麦子学院python

    教程名称:麦子学院python 麦子学院PYTHON ├─第一阶段:python基础准备 │xa0 ├─1.Web前端开发之HTML+CSS基础入门 │xa0 ├─2.Javascript初步 │xa ...

  6. [Python人工智能] 三.theano实现分类神经网络及机器学习基础

    从本篇文章开始,作者正式开始研究Python深度学习.神经网络及人工智能相关知识.前两篇文章讲解了神经网络基础概念.Theano库的安装过程及基础用法.theano实现回归神经网络,这篇文章主要讲解机 ...

  7. python自学教程读书导图-python机器学习基础教程读书笔记八(全书总结)

    全书总结 现在你知道了如何使用重要的机器学习算法进行监督学习和无监督学习,这让你可以解 决很多种机器学习问题.在带你探索机器学习提供的所有可能性之前,我们希望给你一 些最后的建议.一些额外的资源,并提 ...

  8. 【机器学习基础】数学推导+纯Python实现机器学习算法26:随机森林

    Python机器学习算法实现 Author:louwill Machine Learning Lab 自从第14篇文章结束,所有的单模型基本就讲完了.而后我们进入了集成学习的系列,整整花了5篇文章的篇 ...

  9. python基础教程免费下载-《Python机器学习基础教程》高清版免费PDF下载

    Python机器学习基础教程-[德] 安德里亚斯·穆勒(Andreas C.Müller)[美]莎拉·吉多(Sarah Guido) 著,张亮(hysic) 译 下载地址1:网盘下载 下载地址2:网盘 ...

最新文章

  1. 阿铭每日一题 day 6 20180116
  2. 中国剩余定理matlab非互质,中国剩余定理模板(互质版和非互质版)
  3. qtextedit 默认文案_QT中常用的控件说明.md
  4. linux内核线性地址等于物理地址,Linux 从虚拟地址到物理地址
  5. 【JLOI2013】地形生成
  6. 写代码?程序猿?你不能不懂的八大排序算法的Python实现
  7. 泰拉瑞亚试图加载不正确的_盘点那些著名的沙盒游戏?泰拉瑞亚堪称2D沙盒之王...
  8. Python PIP Mysql-python 报错 ERROR: Command errored out with exit status 1: python setup.py egg_info C
  9. redis运行状态图形化监控工具 — RedisLive
  10. 在python3.X中执行python manage.py migrate命令的坑
  11. struct构造函数 c++
  12. 如何查看自己的qq邮箱服务器地址,怎么看自己设置的qq邮箱帐号
  13. 李克秋 加盟天津大学 计算机学院,天津大学
  14. Windows 时间同步出错
  15. Linux中ps命令 ps aux与ps -ef的区别
  16. php手册下载后打开没有内容,word保存后内容不见了怎么办
  17. java word转pdf【去水印】
  18. 信道编码算法的发展和应用
  19. yum的配置文件yum.conf详解
  20. 2021年中国国产剧播出现状及行业发展趋势分析:网络剧播映指数上升明显,未来小体量精品短剧将会越来越多[图]

热门文章

  1. SCARA四轴机器人eye-to-hand手眼标定(九点标定)
  2. 快速保存网页中所有图片的方法
  3. Layui数据表格 换行
  4. spark task 任务状态管理
  5. 《那些年啊,那些事——一个程序员的奋斗史》——02
  6. 手把手教你如何在广交会使用OBS直播丨汇信外贸软件
  7. 大数据Hadoop3.1.3 HDFS 详细入门笔记
  8. 【大数据】Hadoop (二) HDFS
  9. Windbg串口联调
  10. Zalando Postgres Operator 快速上手