神经网络和深度学习(吴恩达) _神经网络基础

本系列笔记旨在记录自己的学习过程,能够及时回顾整理学过的东西,有助于加深理解和记忆。学这个课程的同时,也在看《机器学习》(周志华),所以会将书和视频的内容结合起来,综合学习。

那么本篇主要是第二周的视频课程中讲到的:二分分类Logistic回归损失函数梯度下降向量化

  • 二分分类:

简单的理解就是输出的结果是两个离散的值,就像课程中举的例子:通过输入一张图片的信息,经过一些列的计算,输出一个离散的Y值,预测图片中是否有猫,当Y=1时表示图片中有猫,反之当Y=0时,表示图片中没有猫。


  • Logistic回归:

我看很多人将这个翻译成逻辑回归,而在《机器学习》中,作者认为应该更为准确的叫对数几率回归,这里我就不对这两个翻译做过多的纠缠,知道就好,我们的重点应该是理解这个概念。

Logistic回归实际上是实现上面所说的二分分类的具体方法,可以这样理解:线性回归函数y=wx+b的输出区间为(-∞,+∞),而二分分类的输出区间应该是(0,1),用正经的话就是需要一个函数将区间(-∞,+∞)映射到区间(0,1),当然也可以这样通俗的理解:需要对线性函数做一个“整形”手术,而这个“手术刀”就是Sigmoid函数,“整形”的过程就是Sigmoid(y)。下面给出Sigmoid函数的表达式和图像,帮助我们更直观的理解:



  • 损失函数:

损失函数其实有很多,可能容易想到的就是平方损失函数(y-yˆ)²,但它是一个非凸的函数,这样在后面利用梯度下降算法优化权重参数时,得到的仅仅是局部的最优解,并不能得到全局的最优解,如图所示:


所以在Logistic回归中,我们使用的是对数损失函数



这是一个凸函数,可以得到全局的最优解,那么怎么理解这个函数呢?我们可以想这样2个例子:

①当y=0时,L(yˆ,y) = -log(1-yˆ),如果要使损失函数尽可能小,即要log(1-yˆ)尽可能大,所以yˆ要尽可能小,而yˆ的取值区间为(0,1),故yˆ=0

②当y=1时,L(yˆ,y) = -logyˆ,同样如果要使损失函数尽可能小,即要logyˆ尽可能大,所以yˆ=1。

所以我们能通过使损失函数尽可能小,来得到我们正确的预测值yˆ


  • 梯度下降:

Gradient Descent Optimization(梯度下降)是神经网络训练中最常用的参数优化算法。首先要明白梯度是一个向量,向量我们大家都知道,是能表示方向的,梯度的方向就是函数f增长最快的方向,梯度的反方向即函数f下降最快的方向。比如一元函数的梯度y'(y对x的导数),二元函数的梯度就是(f'x,f'y)(函数f对x、y的偏导),以此可以类推的更多元,这里给出一元和二元的图像,能够有更直观的理解梯度下降:



在Logistic回归中,梯度下降算法是如何来更新参数w、b的呢?


首先进行正向传播,得到预测结果a,从而计算出损失函数L(a,y)。接下来进行反向传播,通过求出的dw、db,用w = w - αdw,b = b - αdb来更新参数w、b(α为学习率,当损失函数下降到最小时,参数w、b也就确定下来,模型训练完成。


  • 向量化:

向量化在神经网络中非常非常的重要,课程中也花了大量篇幅讲为什么要向量化,但我这里不想详细阐述。只需知道:①向量化计算速度更快(for循环是线性运算,而向量化后可以并行运算,速度不是一个数量级的)②编码更简单(矩阵的点乘直接用numpy库中的一行语句就能完成)


这周的课后习题是完成一个很简单的神经网络,判断输入的图片中是否有猫,是理论上升到实践的一个很好练手。


网易云课堂上只有视频课,课后习题在github上有。也希望大家down下来自己练练。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值