http://gitbook.cn/gitchat/column/59f7e38160c9361563ebea95/topic/59f7e86d60c9361563ebeee5html
wiki.jikexueyuan.com/project/tensorflow-zh/tutorials/mnist_beginners.htmlgit
手写图片识别的实现,分为三步:数组
input层表明将二维数组从全部行都排列成一行,hidden层表明若干次处理,output层存储计算获得的结果,最后输出几率最大的网络
知乎神经网络的解释
总结一下:
神经元就是分类器,能够根据正确的值进行调整机器学习反向传播训练神经网络函数
1.神经网络深刻浅出
!!!!!!!!!!!!!!!!!认真看两遍,保证你神清气爽。看懂了后,回来点个赞,就当你的答谢了。这个博客下的另外一篇文章也写的不错
2.从机器学习谈起 推荐 不错,不过,我推的都只是适合初学者哦,大神们绕道走开
3.还有一篇关于SVM的,虽然有点跑题了,可是也以为特别好。SVM讲解
虽然第三个连接有点跑题,可是讲真,学AI怎能不学SVM,这是我在一次双语课上作pre,查资料用到的最多的一个blog了。认真看两遍,基本能够本身跑代码了。仍是不会的,欢迎私信我,一块儿进步。哈哈哈哈哈
开心,我觉得会没人看,一夜醒来赞变多了,也算是确定了。学神经网络的人儿们好好努力哦,好了,大早上的,我也继续看书了。学习做者:知乎用户 连接:https://www.zhihu.com/question/22553761/answer/267280164
来源:知乎 著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。测试
Kaggle 里包含了42000份训练数据和28000份测试数据(和谷歌准备的 MNIST 数据,在数量上有所不一样)。训练和测试数据的下载地址能够百度也能够点这里。下载下来是两个CVS文件。
优化
这个模型,组成是这样的:编码
神经网络:由不少个神经元组成,每一个神经元接收不少个输入:[X1,X2….Xn],加权相加而后加上偏移量后,看是否是超过了某个阀值,超过了发出1,没超过发出0。
神经网络:由不少个神经元组成,每一个神经元接收不少个输入:[X1,X2….Xn],加权相加而后加上偏移量后,看是否是超过了某个阀值,超过了发出1,没超过发出0。
想要成为激活函数,你得有两把刷子啊。这两把刷子是:一是你得到处可微,可微分才能求导,求极值。二是要非线性的,由于线性模型的表达能力不够。
目前主流的几个激活函数是:sigmoid,tanh,ReLU。
sigmoid:采用 S 形函数,取值范围[0,1] tanh:双切正切函数,取值范围[-1,1]
ReLU:简单而粗暴,大于0的留下,不然一概为0。
SoftMax:咱们知道 max(A,B),是指 A 和 B 里哪一个大就取哪一个值,但咱们有时候但愿比较小的那个也有必定几率取到,怎么办呢?咱们就按照两个值的大小,计算出几率,按照这个几率来取 A 或者 B。好比A=9,B=1,那取 A 的几率是90%,取B的几率是10%。
损失函数:损失函数是模型对数据拟合程度的反映,拟合得越好损失应该越小,拟合越差损失应该越大,而后咱们根据损失函数的结果对模型进行调整。
交叉熵:这个概念要解释的简单,那就不许确,若是要准确,那可能一千字都打不住。这里说一个简单但不必定准确的解释吧。
好比,你想把乾坤大挪移练到第七层大圆满,你如今是第五层,那你还差两层,这个两层就是你和大圆满之间的距离。交叉熵通俗的讲就是如今的训练程度和圆满之间的距离,咱们但愿距离越小越好,因此交叉熵能够做为一个损失函数,来衡量和目标之间的距离。
梯度降低:这个概念能够这样理解,咱们要解决的问题是一座山,答案在山底,咱们从山顶到山底的过程就是解决问题的过程。
在山顶,想找到最快的下山的路。这个时候,咱们的作法是什么呢?在每次选择道路的时候,选最陡的那条路。梯度是改变率或者斜度的另外一个称呼,用数学的语言解释是导数。对于求损失函数最小值这样的问题,朝着梯度降低的方向走,就能找到最优值了。
1,载入数据,并对数据进行处理
在写代码的过程当中,数据的预处理是最大的一块工做,作一个项目,60%以上的代码在作数据预处理。 这个项目的预处理,分为5步: