深度学习笔记一

深度学习笔记


二分类(Binary Classification)
  • 使用逻辑回归(logistic regression)传达二分类的算法
  • 在二分类问题中,我们的目标是习得一个分类器,它以图片的特征向量为输入,然后输出预测结果y为1还是0[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uoD39St9-1664591545560)(C:\Users\86158\AppData\Roaming\Typora\typora-user-images\image-20220929143945503.png)]
  • 用一对(x,y)来表示一个单独的样本,x代表nx维的特征向量,y表示标签(输出结果)只能为0或者1
  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A9fAZSJ2-1664591545561)(C:\Users\86158\AppData\Roaming\Typora\typora-user-images\image-20220929144420556.png)]

逻辑回归(logistic regression)
  • y’=wTx+b(w的维度和x一样)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gKwbowBa-1664591545561)(C:\Users\86158\AppData\Roaming\Typora\typora-user-images\image-20220929145107931.png)]

  • y’=sigmoid(wTx+b),利用激活函数将线性函数转换为非线性函数,使得输出的预测结果在0~1之间

  • sigmoid函数的公式以及图像如下:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LCVnNt0b-1664591545562)(C:\Users\86158\AppData\Roaming\Typora\typora-user-images\image-20220929145512888.png)]

逻辑回归的代价函数
  • 为什么需要代价函数

    为了训练逻辑回归模型的参数参数w和参数b我们,需要一个代价函数,通过训练代价函数来得到参数w和参数b

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8cd8EeFI-1664591545562)(C:\Users\86158\AppData\Roaming\Typora\typora-user-images\image-20220929145927788.png)]

  • 逻辑回归中用到的损失函数是:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k6QQYA3d-1664591545562)(C:\Users\86158\AppData\Roaming\Typora\typora-user-images\image-20220929150600186.png)]

  • 损失函数是在单个训练样本中定义的,它衡量的是算法在单个训练样本中表现如何,为了衡量算法在全部训练样本上的表现如何,我们需要定义一个算法的代价函数,算法的代价函数是对m个样本的损失函数求和然后除以m:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-daoXwDV4-1664591545563)(C:\Users\86158\AppData\Roaming\Typora\typora-user-images\image-20220929150658088.png)]

  • 损失函数只适用于像这样的单个训练样本,而代价函数是参数的总代价,所以在训练逻辑回归模型时候,我们需要找到合适w的和b,来让代价函数J的总代价降到最低。

梯度下降法(Gradient Descent)
  • 梯度下降法可以做什么

    在测试集上,通过最小化代价函数(成本函数)J(w,b)来训练的参数w和b

  • 梯度下降法的细节说明

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z1Ed3Y0M-1664591545563)(C:\Users\86158\AppData\Roaming\Typora\typora-user-images\image-20220929151726588.png)]

    假定代价函数(成本函数) 只有一个参数,即用一维曲线代替多维曲线,这样可以更好画出图像。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JSZ8SGPk-1664591545563)(C:\Users\86158\AppData\Roaming\Typora\typora-user-images\image-20220929151749737.png)]

    迭代就是不断重复做如图的公式 , :=表示更新参数 学习率用来控制步长 代码中用dw表示函数J(w)对w求导

  • 计算图

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SEHYq4hX-1664591545563)(C:\Users\86158\AppData\Roaming\Typora\typora-user-images\image-20220929152734151.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sV91COTo-1664591545564)(C:\Users\86158\AppData\Roaming\Typora\typora-user-images\image-20220929153344454.png)]

  • 逻辑回归中的梯度下降

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xiw3G06x-1664591545564)(C:\Users\86158\AppData\Roaming\Typora\typora-user-images\image-20220929154350677.png)]

  • m个样本中的梯度下降

    一布梯度下降:

    J=0;dw1=0;dw2=0;db=0;
    for i = 1 to m
        z(i) = wx(i)+b;
        a(i) = sigmoid(z(i));
        J += -[y(i)log(a(i))+(1-y(i))log(1-a(i));
        dz(i) = a(i)-y(i);
        dw1 += x1(i)dz(i);
        dw2 += x2(i)dz(i);
        db += dz(i);
    J/= m;
    dw1/= m;
    dw2/= m;
    db/= m;
    w=w-alpha*dw
    b=b-alpha*db
    
    # 这种计算中有两个缺点,也就是说应用此方法在逻辑回归上你需要编写两个for循环。第一个for循环是一个小循环遍历个训练样本,第二个for循环是一个遍历所有特征的for循环。这个例子中我们只有2个特征,所以等于2并且 等于2。 但如果你有更多特征,你开始编写你的因此,,你有相似的计算从一直下去到。所以看来你需要一个for循环遍历所有个特征。
    
  • 当你应用深度学习算法,你会发现在代码中显式地使用for循环使你的算法很低效,同时在深度学习领域会有越来越大的数据集。所以能够应用你的算法且没有显式的for循环会是重要的,并且会帮助你适用于更大的数据集。所以这里有一些叫做向量化技术,它可以允许你的代码摆脱这些显式的for循环。

向量化
  • 通过numpy内置函数和避开显式的循环(loop)的方式进行向量化,从而有效提高代码速度。

  • 事实上,numpy库有很多向量函数。比如 u=np.log是计算对数函数()、 np.abs() 是计算数据的绝对值、np.maximum() 计算元素中的最大值,你也可以 np.maximum(v,0) 、 代表获得元素 每个值得平方、 获取元素 的倒数等等。所以当你想写循环时候,检查numpy是否存在类似的内置函数,从而避免使用循环(loop)方式。

  • 在这例子我们有个特征值。如果你有超过两个特征时,需要循环dw1 、dw2 、dw3 等等。所以 j的实际值是1、2 和 nx,就是你想要更新的值。所以我们想要消除第二循环,在这一行,这样我们就不用初始化 dw1,dw2 都等于0。去掉这些,而是定义dw 为一个向量,设置 u=np.zeros(n(x),1)。定义了一个x行的一维向量,从而替代循环。我们仅仅使用了一个向量操作dw=dw+xidzi 。最后,我们得到dw=dw/m 。现在我们通过将两层循环转成一层循环,我们仍然还用这个循环训练样本。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QeTEattq-1664591545564)(C:\Users\86158\AppData\Roaming\Typora\typora-user-images\image-20220929163728083.png)]

向量化逻辑回归

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cJY0hx1G-1664591545564)(C:\Users\86158\AppData\Roaming\Typora\typora-user-images\image-20220929164625051.png)]

向量化逻辑回归的梯度输出(高度向量化的、非常高效的逻辑回归的梯度下降算法)
  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wp9kJ6Zi-1664591545564)(C:\Users\86158\AppData\Roaming\Typora\typora-user-images\image-20220929165414954.png)]

    现在我们利用前五个公式完成了前向和后向传播,也实现了对所有训练样本进行预测和求导,再利用后两个公式,梯度下降更新参数。我们的目的是不使用for循环,所以我们就通过一次迭代实现一次梯度下降,但如果你希望多次迭代进行梯度s下降,那么仍然需要for循环,放在最外层。不过我们还是觉得一次迭代就进行一次梯度下降,避免使用任何循环比较舒服一些。

广播
  • 如果两个数组的后缘维度的轴长度相符或其中一方的轴长度为1,则认为它们是广播兼容的。广播会在缺失维度和轴长度为1的维度上进行。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x25BD6XC-1664591545565)(C:\Users\86158\AppData\Roaming\Typora\typora-user-images\image-20220929170404923.png)]

  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SbFcO57q-1664591545565)(C:\Users\86158\AppData\Roaming\Typora\typora-user-images\image-20220929170551018.png)]


广播会在缺失维度和轴长度为1的维度上进行。

[外链图片转存中…(img-x25BD6XC-1664591545565)]

  • [外链图片转存中…(img-SbFcO57q-1664591545565)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值