1. 分类学习
分类和回归的区别在于输出变量的类型上。通俗理解定量输出是回归,或者说是连续变量预测;定性输出是分类,或者说是离散变量预测。如预测房价这是一个回归任务;把东西分成几类, 比如猫狗猪牛,就是一个分类任务。
2. MNIST
MNIST是一个入门级的计算机视觉数据集,它包含各种手写数字图片,它也包含每一张图片对应的标签,告诉我们这个是数字几。接下来,我们将训练一个机器学习模型用于预测图片里面的数字。
2.1. 下载数据集
访问THE MNIST DATABASE,下载:
- train-images-idx3-ubyte.gz
- train-labels-idx1-ubyte.gz
- t10k-images-idx3-ubyte.gz
- t10k-labels-idx1-ubyte.gz
把这四个文件放到Tensorflow-Tutorial/tutorial-contents/mnist目录下。
数据中包含55000张训练图片,每张图片的分辨率是28×28,所以我们的训练网络输入应该是28×28=784个像素数据。
2.2. 编码
1 | from __future__ import print_function |
3. 过拟合
过拟合的模型,泛化能力差,不能成功的表达除了训练数据以外的其他数据。
3.1. 数据量
增加数据量,大部分过拟合产生的原因是因为数据量太少了。
3.2. 正规化
运用正规化,L1、l2 regularization等等,这些方法适用于大多数的机器学习,包括神经网络。主要思想是把W(权重)加入到cost,W变得太大,就让cost随之变大,成为一种惩罚机制。
3.3. dropout
还有一种专门用在神经网络的正规化的方法,叫作 dropout。在训练的时候,我们随机忽略掉一些神经元和神经联结,使这个神经网络变得“不完整”。用一个不完整的神经网络训练一次。
到第二次再随机忽略另一些,变成另一个不完整的神经网络。有了这些随机 drop 掉的规则,我们可以想象其实每次训练的时候,我们都让每一次预测结果都不会依赖于其中某部分特定的神经元。
conda install scikit-learn
1 | # View more python learning tutorial on my Youtube and Youku channel!!! |
3.4. 参考资料
- Classification 分类学习
- MNIST For ML Beginners
- Deep MNIST for Experts
- MNIST机器学习入门
- MNIST机器学习入门
- Softmax函数的特点和作用是什么?
4. 源码分享
https://github.com/voidking/Tensorflow-Tutorial.git