吴恩达深度学习2-Week1课后作业2-正则化

本文通过吴恩达深度学习课程的课后作业,探讨正则化在模型训练中的作用。首先分析了法国守门员踢球位置的数据集,接着对比了非正则化、L2正则化和Dropout正则化模型的效果。结果显示,正则化有助于防止过度拟合,提升模型在测试集上的表现,特别是L2和Dropout能有效减小权重并提高泛化能力。
摘要由CSDN通过智能技术生成

一、Deeplearning-assignment

这一节作业的重点是理解各个正则化方法的原理,以及它们的优缺点,而不是去注重算法实现的具体末节。

问题陈述:希望你通过一个数据集训练一个合适的模型,从而帮助推荐法国守门员应该踢球的位置,这样法国队的球员可以用头打。法国过去10场比赛中的二维数据集如下:

每个点对应于法国守门员在足球场左侧击球之后,其他运动员用头将球击中的足球场上的位置。

  • 如果这个点是蓝色的,这意味着这个法国球员设法用他/她的头击球
  • 如果这个点是红色的,这意味着另一个队的球员用头撞球

你的目标:使用深度学习模式来找到守门员踢球的场地。

分析数据集:这个数据集有点杂乱,但貌似可以用一条对角线能区分开左上角(蓝色)与右下角(红色)的数据,效果还不错。

在本次作业中将会首先尝试一个非正则化的模型。然后学习如何正规化,并决定选择哪种模式来解决法国足球公司的问题。


二、相关算法代码

1.非正规化模型

def model(X, Y, learning_rate=0.3, num_iterations=30000, print_cost=True, lambd=0, keep_prob=1):
    """

    :param X:input data, of shape (input size, number of examples)
    :param Y:true "label" vector (1 for blue dot / 0 for red dot), of shape (output size, number of examples)
    :param learning_rate:learning rate of the optimization
    :param num_iterations:number of iterations of the optimization loop
    :param print_cost:If True, print the cost every 10000 iterations
    :param lambd:regularization hyperparameter, scalar
    :param keep_prob:probability of keeping a neuron active during drop-out, scalar.
    :return:parameters -- parameters learned by the model. They can then be used to predict.

    """

    grads = {}
    costs = []  # to keep track of the cost
    m = X.shape[1]  # number of examples is 211
    layers_dims = [X.shape[0], 20, 3, 1]

    parameters = initialize_parameters(layers_dims)

    for i in range(0, num_iterations):
        if keep_prob == 1:
            a3, cache = forward_propagation(X, parameters)
        elif keep_prob < 1:
            a3, cache = forward_propagation_with_dropout(X, parameters, keep_prob)

        if lambd == 0:
            cost = compute_cost(a3, Y)
        else:
            cost = compute_cost_with_regularization(a3, Y, parameters, lambd)

        assert (lambd == 0 or keep_prob == 1)

        if lambd == 0 and keep_prob == 1:
            grads = backward_propagation(X, Y, cache)
        elif lambd !=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值