参考资料:
作业来自Coursera课程Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization第1周作业1
因为没有钱,只能看看github上面别人做完的放上去这样子
-
作业任务
分开蓝红两种颜色的点
-
没有正则化
-
L2正则化
-
Dropout
With dropout, your neurons thus become less sensitive to the activation of one other specific neuron, because that other neuron might be shut down at any time.
使用drop-out
在过拟合的情况下才使用,一般在图像中会用的比较多,因为图像数据会多一点。
使用这些正则化的手段也会让loss的下降趋势不明显-
loss不断下降,但是后面train和验证集相差差不多有10%的正确度
-
慢慢增加正则参数
训练集和验证集的准确度慢慢接近,但是训练集的准确度有所下降
-
继续增加正则参数
验证集和训练集的准确度都下降了好多,因为梯度下降主要是去减少参数的大小了,没有升高准确率。
献上画图的代码:
# Run this cell to visualize training loss and train / val accuracy
plt.subplot(2, 1, 1)
plt.title('Training loss')
plt.plot(solver.loss_history, 'o')
plt.xlabel('Iteration')
plt.subplot(2, 1, 2)
plt.title('Accuracy')
plt.plot(solver.train_acc_history, '-o', label='train')
plt.plot(solver.val_acc_history, '-o', label='val')
plt.plot([0.5] * len(solver.val_acc_history), 'k--')
plt.xlabel('Epoch')
plt.legend(loc='lower right')
plt.gcf().set_size_inches(15, 12)
plt.show()