最近用python写了一个实现手写数字识别的BP神经网络,BP的推导到处都是,但是一动手才知道,会理论推导跟实现它是两回事.关于BP神经网络的实现网上有一些代码,可惜或多或少都有各种问题,在下手写了一份,连带着一些关于性能的分析也写在下面,希望对大家有所帮助. 加一些简单的说明,算不得理论推导,严格的理论推导还是要去看别的博客或书.  BP神经网络是一个有监督学习模型,是神经网络类算法中非常重要和典型的算法,三层神经网络的基本结构如下: 这是最简单的BP神经网络结构,其运行机理是,一个特征向量的…
PCA降维识别手写数字 关注公众号"轻松学编程"了解更多. PCA 用于数据降维,减少运算时间,避免过拟合. PCA(n_components=150,whiten=True) n_components参数设置需要保留特征的数量,如果是小数,则表示保留特征的比例; 设为大于零的整数,会自动的选取n个主成分- whiten: 默认为False,若为True表示做白化处理,白化处理主要是为了使处理后的数据方差都一致 PCA降维识别手写数字 导包 import numpy as np imp…
一.kNN算法是机器学习的入门算法,其中不涉及训练,主要思想是计算待测点和参照点的距离,选取距离较近的参照点的类别作为待测点的的类别. 1,距离可以是欧式距离,夹角余弦距离等等. 2,k值不能选择太大或太小,k值含义,是最后选取距离最近的前k个参照点的类标,统计次数最多的记为待测点类标. 二.关于kNN实现手写数字识别 1,手写数字训练集测试集的数据格式,本篇文章说明的是<机器学习实战>书提供的文件,将所有数字已经转化成32*32灰度矩阵. 三.代码结构构成 1,data_Prepare.py…
文章目录 ★引子 ★求导 ★最初的想法 ★初步的想法 ★后来的想法 ★最后的想法 ★编程范式 ★结尾 首先声明一点,本文主要介绍的是面向对象(OO)的思想,顺便谈下函数式编程,而不是教你如何准确地.科学地用java求出函数在一点的导数. ★引子 def d(f) : def calc(x) : dx = 0.000001 # 表示无穷小的Δx return (f(x+dx) - f(x)) / dx # 计算斜率.注意,此处引用了外层作用域的变量 f return calc # 此处用函数作为返…
kiki's game Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 40000/1000 K (Java/Others) Total Submission(s): 4972    Accepted Submission(s): 2908 Problem Description Recently kiki has nothing to do. While she is bored, an idea appears in his m…
实战一:kNN手写识别系统 本文将一步步地构造使用K-近邻分类器的手写识别系统.由于能力有限,这里构造的系统只能识别0-9.需要识别的数字已经使用图形处理软件,处理成具有相同的色彩和大小:32像素*32像素的黑白图像. 当前使用文本格式存储图像,即使不能有效的利用空间,但是为了方便理解,还是将图像转换成文本格式. 示例:使用k-近邻算法的手写识别系统 (1)收集数据:提供文本文件. (2)处理数据:编写img2vector()函数,将图像格式转换成分类器使用的向量格式. (3)分析数据:在Pyt…
sigmod函数: \[f(z)=\frac{1}{1+e^{-z}} \] 求导: \[\frac{\partial f(z)}{\partial z}=\frac{-1*-1*e^{-z}}{(1+e^{-z})^2} =\frac{e^{-z}}{(1+e^{-z})^2} =\frac{1+e^{-z}-1}{(1+e^{-z})^2} =\frac{1}{1+e^{-z}}-\frac{1}{(1+e^{-z})^2} =\frac{1}{1+e^{-z}}(1-\frac{1}{1+…
http://acm.hdu.edu.cn/showproblem.php?pid=5105 给定a,b,c,d,l,r,表示有一个函数f(x)=|a∗x3+b∗x2+c∗x+d|(L≤x≤R),求函数最大值. 考虑极点可能有0~2个.在极值点处函数的单调性会发生变化,所以最大值一定就在区间边界和极值点上.所以求下l,r,极值点的函数大小然后取最大的即可. #include <cstdio> #include <cstdlib> #include <cmath> #in…
Title/ CSS Background&Gradient完全指南 #Archives009 序: 关于 background 属性, 了解点CSS的人总会知道个大概. 但是你肯定多半还有点不会的吧(别在这装!), 比如你能手写CSS的6个渐变函数吗? 你知道bg-repeat中space和round的作用吗? 你能用纯CSS实现AI中的"任意渐变"吗? 这篇文章详细的整理了一遍CSS的Background和Gradient属性的各种诡异用法. 当然照顾萌新, 讲的会比较完整…