# 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)的矩阵,矩阵的下标表示是那个数字的概率