# mnist
**Repository Path**: cj740470290/mnist
## Basic Information
- **Project Name**: mnist
- **Description**: python自己实现的神经网络,完成手写数字识别的问题
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2020-09-16
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
### 灵感来源于:https://blog.csdn.net/qq_31192383/article/details/77429409
西格玛函数:sigmoid函数
代价函数:1/2*(y-a)^2,偏导数为a-y
最近看了一本书,叫做未来简史,书中说以后人工智能将无处不在,是一个万物互联的世界
传统的机器学习,比如k近邻解决的是分类问题,思想就是离谁近就和谁是一类,它们都是通过数学算法去解决问题,通过计算得到一个明确的结果,整个过程很直观
现在最火的是深度学习,它的原理是神经网络,就是通过模拟人类的大脑思考过程,去让计算机像人一样思考,然后解决问题
之前使用人工智能的时候,使用的框架tensorflow,它把很多事确都做好了,你只需要很少的代码就可以解决问题,后来我就疑惑,神经网络是通过一层层的神经元去处理问题,电脑究竟是怎么模拟神经元的呢?于是决定不使用框架,独立完成神经网络
经过一番研究后,我发现神经网络可以用一句话描述
随机生成一个函数,通过大量的数据,调整函数的参数,得到一个准确率最高的函数
事实上也不简单,因为随便一个问题都是很难解决的,比如这个函数有多少个参数,或者参数调整的算法是什么,每个问题的背后都很复杂
## 第一次计算:
### 784\*1的矩阵,乘以30\*784的矩阵加上30\*1的误差矩阵,使用sigmoid转化一下,成为30\*1的(0,1)的矩阵
## 第二次计算:
### 30\*1的矩阵,乘以10\*30的矩阵加上10\*1的误差矩阵,使用sigmoid转化一下,成为10\*1的(0,1)的矩阵,矩阵的下标表示是那个数字的概率