使用Python制作神经网络——《python神经网络编程》(一)

本文是《Python神经网络编程》一书的简介,书中详细讲解了神经网络的基础知识。从框架代码、初始化网络、权重设置、网络查询等方面逐步构建神经网络。在权重初始化时,使用了随机小数值,且权重矩阵在神经网络中持久存在。此外,文中还介绍了激活函数的使用,以及训练网络的误差计算和权重更新过程。
摘要由CSDN通过智能技术生成

最近在看《python神经网络编程》这本书,个人感觉这本书非常适合想要学习神经网络的小白们,书很薄,200多页,从最基础的知识开始讲起,循序渐进,通俗易通,是一本很好的神经网络入门书籍。
第一章是基础知识,建议认真阅读,这部分就不写了,我打算从第二章开始更新。
我用的是Ubuntu20.4+jupyter notebook。具体环境搭建可以参考我前面的两篇

我们从最简单的开始,小步前进,逐步建立Python程序。

1、框架代码

神经网络至少包含下面三个函数:
初始化函数——设定输入层节点、隐藏层节点和输出层节点的数量。
训练——学习给定训练集样本后,优化权重。
查询——给定输入,从输出节点给出答案。
具体可能还需要更多函数,但是我们先从这三个函数起步。
下面是基础的代码框架:

#神经网络类型定义
class neuralNetwork:
    #初始化
    def __init__(self):
        pass
    #训练
    def train():
        pass
    #查询
    def query():
        pass

2、初始化网络

从初始化开始,我们能想到的参数有输入层节点、隐藏层节点和输出层节点的数量,还包括学习率。这些节点数量定义了神经网络的形状和尺寸。我们不会将这 些数量固定,而是当我们使用参数创建一个新的神经网络对象时,才会确定这些数量。通过这种方式,我们保留了选择的余地,轻松地创建不同大小的新神经网络。
现在我们来更新__init__函数:

#神经网络类型定义
class neuralNetwork:
    
    #初始化
    def __init__(self,inputnodes,hiddennodes,outputnodes,learningrate):
        self.inodes=inputnodes
        self.hnodes=hiddennodes
        self.onodes=outputnodes
        
        self.lr=learningrate
        pass
    
    #训练
    def train():
        pass
    
    #查询
    def query():
        pass

3、权重——网络的核心

这一步是创建网络的节点和链接。网络中最重要的部分是链接权重, 我们使用这些权重来计算前馈信号、反向传播误差,并且在试图改进网络 时优化链接权重本身。
使用矩阵可以简明地表示权重。因此,我们可以创 建:
在输入层与隐藏层之间的链接权重矩阵: W i n p u t _ h i d d e n = h i d d e n _ n o d e s ∗ i n p u t _ n o d e s W_{input\_hidden}=hidden\_ nodes*input\_nodes Winput_hidden=hidden_nodesinput_nodes
在隐藏层和输出层之间的链接权重矩阵:
W o u t p u t _ h i d d e n = h i d d e n _ n o d e

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值