@nrailgun
2016-08-25T15:00:41.000000Z
字数 1124
阅读 1826
机器学习
基于 Caffe 0.99 实现。开始大部分时间用于实现 数据集清洗 和 网络数据层,实现还算顺利。首先设计第一级网络,平铺直叙,经过 50000 轮迭代,损失最开始稳步下降(最后的损失忘记记录了)。但是提取特征时候,发现 5 个预测特征图没有任何响应。
经过两天的检查,没有发现 convert_lfw_data.cpp
和 face_point_layer.cpp
有太大问题,期间写了非常多的检查代码,甚至超过了本身的逻辑。
既然实现不大可能有问题,也许是我把网络设置错了。现在加入以下三个限定:
结果:似乎在 1000 迭代左右,cost 合理下降,可以得出直观上比较合理的响应。
但是增加了训练样本之后,急剧恶化,cost 不再梯度下降(
最开始
修改 conv 层的 lr_mult
,虽然情况没有好转,但是收敛速度大大提升,这也算是一个好消息。
没有 mismatch,这个问题似乎并没有特别重要。
因为 ground truth response 是稀疏的,所以一个输出接近全零的网络也可能是局部最优。神经网络总是很 Lazy,很容易逼近一个零函数。问题很可能是这个。
原先 Ground truth: