神经网络的参数都是随机的，有的效果很好，有的效果很差，这真的不是玄学吗？
不是。更可能是bug。这当然不是玄学。之所以感觉像玄学，是因为使用了太多工程学的黑箱heuristics造成的。如果你把视野局限在pca，kmeans这类简单模型里，你会发现他们都挺稳定的。而如果跑个lasso，那可就不一定了，对初始值就可能比较敏感。如果你要是在网络里加了很多除法，奇怪的非线性函数，奇怪的归一化，正则化，还套了个带动量的优化器，还把learningrate设的很大，那就不要怪它呈现出玄学般的拟合曲线了。人家不给你爆nan就已经是很给面子了。当然还有最重要的一个可能性，你的代码里面有逻辑谬误。这些bug会导致你的训练和验证出现各种各样奇怪的情况。多积累一点调试经验，会加强你对bug的免疫力。如果玄学令你感到困惑，说明你应该补一些基础的机器学习知识了，学习一下手推pca，kmeans，svm，gbdt。否则早晚要被卷成新时代的炼丹调参民工。因为玄学是迷信的，是靠天吃饭的，只会把自己的命运主宰权交出去。工程师的一条特征就是以人智抗天命，所以玄学一般只用来描述调试复杂系统时产生的主观无力感，而不是复杂系统的客观本质。