1. 还是涉及到了sigmoid函数溢出的问题。报错如下:
经验证这个报错貌似对结果影响不大,如果不想看见报错的话,sigmoid函数换成下面这种形式:
s = .5 * (1 + np.tanh(.5 * x))
以及cost function部分加上微小量, 防止很小的数值被当作0遇到log出问题。但这样也会造成一定的精度损失。
cost = -1 / m * (np.multiply(Y, np.log(A2 + 1e-5)).sum() + np.multiply(1 - Y, np.log(1 - A2 + 1e-5)).sum())
2. 个人存在一个疑问,本次作业中未涉及到测试集,都是用一个数据集去训练然后查看正确率的,为什么在一些数据集中,随着隐藏层size的增大,正确率会先上升后下降?作业中对正确率下降的解释是过拟合,但是过拟合不是会增大训练集的准确率,减小测试集的准确率吗。求大佬解答。