吴恩达深度学习笔记 课程1 第二周 基础知识

本文介绍了如何使用逻辑回归解决图片二分类问题,强调了向量化技术的重要性,如numpy中的矩阵运算和广播机制,以及如何通过梯度下降法训练模型,展示了向量化在大规模数据处理中的显著效率提升。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 二分分类

在图片二分类问题中,目标是训练一个分类器,以图片的特征向量x作为输入,预测输出的结果标签y是1还是0 也就是预测图片是否有猫。
在这里插入图片描述
x是n×m维矩阵 其中m是训练样本数,n是图片总维度 比如RGB n=64×64×3 x,y均用列表示

x.shape //输出矩阵维度 (n,m)
y.shape//1,m)

二 逻辑回归

面对一个图片二分类问题,x为输入图片的特征向量,y实质上就是是否为图片的概率,假设参数为w,b 线性回归方程wT* x+b 为了满足输出在0-1之间,在线性方程上加一个sigmoid函数 也就是逻辑回归方程。
在这里插入图片描述

三 逻辑回归损失函数

如何训练w,b是考虑的问题
在这里插入图片描述
对于逻辑回归损失函数(衡量单一训练样例效果),为了避免出现局部最优解,不采用平方差,而采用最下面的公式。最终我们采用成本函数(衡量所有训练样本的效果)找到w,b 使得成本函数尽可能的小。
在这里插入图片描述

四 梯度下降法

在这里插入图片描述
梯度下降法,沿着最快下降方向走
在这里插入图片描述
在这里插入图片描述
显示的for循环面对大量数据处理时会降低算法速度,因此摆脱这种显示for循环是一种方法,也就是向量化。

五 向量化

在这里插入图片描述

import numpy  as np
a=np.array([1,2,3,4])
print(a)

> [1 2 3 4]

import time
a=np.random.rand(1000000)
b=np.random.rand(1000000)
tic=time.time()
c=np.dot(a,b)
toc=time.time()
print(str(1000*(toc-tic))+"ms")

> 3.878355026245117ms

c=0
tic=time.time()
for i in range(1000000):
    c=c+a[i]*b[i]
toc=time.time()
print(str(1000*(toc-tic))+"ms")

> 401.29566192626953ms

​

时间差一百多倍,随着数据的增加会更加明显。

六 向量化逻辑回归

z=np.dot(wT,X)+b

这里的X是(n,m)维 W是(1,n)维 b正常是(1,1)python中广播机制b会自动变成(1,m)维。
在这里插入图片描述
没有向量化之前的逻辑回归实现
在这里插入图片描述
向量化后的逻辑回归实现。

七 广播机制

import numpy  as np
A=np.array([
    [12,34,56,76],
    [45,67,89,90],
    [53,73,86,97],
])
print(A)
CAL=A.sum(axis=0)
print(CAL)
CAL1=A.sum(axis=1)
print(CAL1)
percentage=100*A/CAL.reshape(1,4)
print(percentage)

如何将A(3,4)除以CAL(1,4) 利用广播机制实现
在这里插入图片描述

八 编程技巧

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值