人工神经网络简介
人工神经网络(Artificial Neural Network, ANN)是指一系列受生物学和神经学启发的数学模型. 在人工智能领域, 人工神经网络也常常简称为神经网络(Neural Network, NN)或神经模型(Neural Model). 一个简单的多层前馈神经网络如下图.
代码
构造一个神经网络类, 首先需要将一些变量进行初始化,其中各个层的权重矩阵以及偏置项分别存储在字典中, 键代表层数.
from scipy.special import expit
import numpy as np
class ANN(object):
def __init__(self, innum, outnum, lr, *hide_tuple):
self.innum = innum # 输入节点的个数
self.outnum = outnum # 输出节点的个数
self.lr = lr # 学习率
self.layernum = len(hide_tuple) + 1 # 神经网络的层数
self.Weight = {
} # 权重矩阵
self.Bias = {
} # 偏置项
# 对权重矩阵和偏置项进行初始化
self.Weight[1] = np.random.normal(0.0, pow(self.innum, -0.5), (hide_tuple[0], self.innum))
for i in range(1, self.layernum):
self.Bias[i] = np.random.randn(hide_tuple[i-1]).reshape(hide_tuple[i-1]