吴恩达deep learning笔记 Neural Networks week2

这篇博客介绍了如何使用神经网络解决二分类问题,如识别图片中的猫咪。内容包括神经网络的基本符号解释,数据预处理,以及使用逻辑回归模型。讨论了为什么不用平方损失函数并选择了交叉熵损失函数,强调了向量化计算在优化运算速度中的关键作用,并给出了使用Python实现逻辑回归的简要代码示例。
摘要由CSDN通过智能技术生成

通过神经网络来解决二分类问题

首先是任何和基本符号的说明
我们要解决一个二分类问题,比如要识别一副图片是否是一只猫咪,所以输入是图片数据,输出是 1 or 0 代表是猫咪,不是猫咪
(x,y)代表训练数据的一条数据对,x是输入数据,y是label即标记
X是 n x n_x nx维的,比如图片是 64 X 64 像素的图片,我们把它拉长成一个长的向量,向量的大小是 64 X 64 X 3 ,乘以3是因为图片是RGB 3通道的。
训练集的大小是m ,另外一个trick是我们通常要把所有输入数据写成矩阵的形式,大写X,维度是 ( n x , m ) (n_x,m) (nx,m),每一列是一条样本,共m列。
在这里插入图片描述
下面用逻辑回归来解决这个二分类问题,
Given x ,want y h a t = P ( y = 1 ∣ x ) y^{hat} = P( y = 1|x) yhat=P(y=1x)
即用概率的形式来表示,当已知输入x,y = 1的概率,即是一只猫咪的概率。
我们知道线性回归函数的表达形式 y = w x + b y=wx+b y=wx+b
这里我们习惯把b 与 w和到一起,写成 θ \theta θ y = θ y=\theta y=θx
在这里插入图片描述
已经选择了逻辑回归作为模型,下面我们确定损失函数
在这里,我们不使用平方损失函数作为loss Function 因为在这里它是非凸的,无法得到全局最优解,我们使用以下函数
在这里插入图片描述
其中Loss Function ,这是对单个训练样本的损失
L ( y h , y ) = − ( y l o g y h + ( 1 − y ) l o g ( 1 − y h ) ) L(y^h,y)=-(ylog y^h + (1-y)log(1-y^h)) L(yh,y)=(ylogyh+(1y)log(1yh))
其中Cost Function 是对整个训练集的平均损失,它是关于参数w,b的函数,我们通过对它最小化,得到最优的w,b
J ( w , b ) = 1 m ∑ ( L ( y h , y ) ) J(w,b)=\frac{1}{m}\sum(L(y^h,y)) J(w,b)=m1(L(yh,y))
定义好代价函数后,通过链式求导法则,计算每个参数关于损失函数的偏导,就可以使用梯度下降,不断迭代更新参数
这里吴恩达提到了vectorization 非常重要,也就是向量化计算,通过它来代替 for-loops 可以大大提升程序的运算速度。
在这里插入图片描述
上面的代码,对比了通过np使向量点乘 和 使用for-loops来做同样的操作,可以看到,运算时间相差百倍的,这个差距是非常巨大的。
除了点乘外,还以np.exp() np.log() np.max 以及矩阵和向量乘法等操作都是vectorization

下面我们用python 代码来手写逻辑回归
先上andrew伪代码
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值