03.初识MNIST数据集

目录

一、什么是MNIST数据集

二、不用Deep Learning 用简单的函数映射怎么训练?

1. 简单函数叠加拟合复杂函数

2. Loss函数的设定

3. 梯度下降

4.结果

 三、实例代码

1. plot_image(x, y, 'image sample')

 2. 训练过程

 3.代码如下


一、什么是MNIST数据集

        MNIST数据集已经是一个极其经典的数据集了,先放上下载链接MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burges

图片是以字节的形式进行存储,我需要将其读取到Numpy array中,以便训练与计算。

数据集大概有 60,000 个训练样本和 10,000 个测试样本。

        例举数据集一张图片来说 [0 - 1 , 28 ,28 ] ,存储数据的形式如矩阵所示,第1维度为0-1之间表示灰度,第2维度与第3维度表示28*28格。

03.初识MNIST数据集

二、不用Deep Learning 用简单的函数映射怎么训练?

1. 简单函数叠加拟合复杂函数

        我们知道28*28矩阵的具体参数有784个,那么我们将其打平为X = [1,784]向量进行计算,简写为X = [1,dx] , 接下来将其投入激活函数中进行计算 H1 = XW1 + b1 ,不停拟合(三层)。 这样可能还比较难理解,我们实际代数据进入计算。

03.初识MNIST数据集

首先打平[28*28] 矩阵为X= [1,784], 继续W1=[784,256], b1=[256]

第一层 矩阵H1 = XW1 + b1  得 H1 = [1,256] 

第二层 矩阵H2 = H1W2 + b2 ,W2为[256 , 64] ,b2 = [64] ,得 H2 = [1,64] 

第三层 矩阵H3 = H2W3 + b3 ,W3为[64,10], b3 = [10],得H3 = [1,10] 

得出10个分类。

2. Loss函数的设定

Euclidean Distance: H3 vs Y H3也可以写为预测函数 pred = W3 * {W2[W1X + b1] +b2} +b3 (线性组合) 对于非线性组合还是使用relu函数进行激活拟合 H1 = relu (XW1 + b1) H2 = relu (H1W2 + b2) H3 = relu (H2W3 + 3)
上一篇:java代码实例第20课


下一篇:256work