Python手写体数字识别,数学公式和程序对应详解
Python手写体数字识别,数学公式和程序对应详解 一、数学推导过程 特别详细的数学推导过程,简单易懂。 二程序代码 特别好的程序结构,值得学习 三、代码和公式对应 大家一定要先自己看看数学推导过程,代码都可以不看。但是推导过程一定得看。 1.BP算法四个核心公式 参数列表 x = np . array ( x ) y = np . array ( y ) weights = [ ] # 权重列表 bias = [ ] # 偏置列表 其中x为输入变量,y为输出变量 x为33555个样本值,一个x有784个变量相当于[x 1 ,x 2 ,x 3 ,…,x 784 ] y也为33555个样本值,一个y有一个输出对应于0-9中的一个数字 weights为权重,bias为偏置 类似于 y = ax+b ,a相当于weight,bias相当于b。 weights为权重,从上面的图片中看出有2 elements,分别对应第一层(输入层)->第二层(隐藏层),第二层(隐藏层)->第三层(输出层),由此可知这是一个具有三层感知层的神经网络。 注:weight,bias,都是随机初始化的。例如 layers = [ 784 , 784 , 10 ] for i in range ( 1 , len ( layers ) ) : # 正态分布初始化 self . weights . append (