最近在用Tensorflow进行深度学习,发现学习效果不是很理想。总是有很多个别点(数量不在少数)不能够覆盖。决定从最简单的数据分布开始,一点点研究深度学习程序对于各维度、各分布数据下的表现,将图一并列出。
1. 只有一个输入,输出与输入呈线性分布(y=x)的情况。如下图(蓝色代表原始数据分布,红色代表预测数据分布):
2. 只有一个输入,输出与输入呈线性分布(y=x),但是有1个数据远离其他数据的情况:
3. 只有一个输入,输出与输入呈线性分布(y=x),但是有1个数据不满足线性分布的情况:
由以上各示例可以总结出:
1. 所谓深度学习,并不是万能的,也只是向绝大多数点拟合而已(这里仅仅是一位数据,而且是最简单的y=x线性关系);
2. 实际上多次训练得到的拟合曲线并不一致,有时甚至完全不能拟合(一条直线),跟Weight和bias的初始值是密切相关的(程序中采用的是随机值)。