文章目录
1.二分类问题符号定义
先从一个识别猫图片的例子开始:
假设这张图片的大小是64×64像素,为了保存这张图片,需要保存三个64×64的矩阵,分别对应红、绿、蓝三种颜色通道。
从图片中提取的特征向量x总维度就是64643=12,288个。
二分类问题的目标就是习得一个分类器,以图片的特征向量作为输入,然后预测输出结果y。
note:(符号定义)
下面来看一下X矩阵长什么样子:
X.shape #(nx,m)
Y.shape #(1,m)
2.逻辑回归模型建立
本节主要介绍逻辑回归的Hypothesis Function。
需要注意的是sigmoid函数将逻辑回归的值映射到0,1之间,来表示y值等于1的概率。下面来看下sigmod函数的图像:
参数:
将其变成齐次:(过原点)
3.逻辑回归的代价函数
为什么需要代价函数?
为了训练(调整)逻辑回归模型的参数,使其预测更接近真实值。
损失函数的定义
通常用预测值和实际值的平方差作为损失函数,但是对于逻辑回归来说,平方差函数不是凸函数,容易陷入到局部最优,因此不采用平方差损失函数。
交叉熵函数:(单个样本)
内在机制:
损失函数:(所有样本)
训练过程中就是找到合适的w和b,使J降到最低。
综上:逻辑回归=一个非常小的神经网络
4.梯度下降法
本小节力求搞明白梯度下降法的核心。
梯度下降法——通过最小化代价函数J(w,b)来训练参数w和b。
先回忆一下我们逻辑回归的代价函数:
很显然,我们的逻辑回归的成本函数是凸函数,具有全局最大值。
(重点)GD算法:
- 随机初始化
- 迭代更新参数
- 直至逼近最小值点。
note:我们的导数就是斜率,对于单变量来说,一个点的导数就是与这个点相切的小三角形高÷宽
5.导数
这一节没什么好说的,老吴举了个hin简单的例子来说明导数,需要更深入的了解导数和微积分的,请移步。
6.更多导数例子
这节课只是讲了几个更复杂的导数例子,复习这部分还是移步B站。
note:
- 导数就是斜率,函数的斜率,在不同的点是不同的。
- 函数的导数可以去网上查。
7.计算图
这个比较重要,需要理解,因为Pytorch、Tensorflow等框架自动求导就是用的计算图。学习这一部分可以帮助很好理解autograd等机制。
8.使用计算图求导数
计算图就是:链式求导法则公式。偏导就是变量的变化对函数的影响程度。
反向传播的计算图:
9.逻辑回归中的梯度下降
两张图就够了,第一张主要看逻辑回归的公式,包括,z,a和loss:
10.m个样本的梯度下降
这个和1个样本的区别就是损失函数是m个样本的损失值相加,相应的在反向传播更新梯度的时候要讲所有样本相加,最后再取平均。
图片里的算法流程很重要。但由此产生一个问题,for循环算法比较低效,如果你的特征维度比较大的话,计算开销往往难以忍受。这就需要用到下一讲的技术了,向量化。
11.向量化
两个字:艺术
向量化和for循环对比:
Python代码中的对比:(300倍,实际有10倍以上)
12.向量化的更多例子
首先举几个for循环的例子,来说明向量化的好处。
numpy的很多内置函数都可以替代for循环操作:
消除内部for循环:
dw1、dw2 -> dW =np.zeros(n(x),1)
13.向量化的逻辑回归
本节的主要目标就是对逻辑回归中的公式全部进行向量化,去除所有的for循环。主要是将输入x向量化。
14.向量化logistic回归的梯度输出
这里需要重点理解一下,因为之前一直对反向传播的向量维度计算的变换不是很明了。
同时需要重点理解一下。
1/m是因为m个样本,需要求平均。
改进后的五个公式:
15.Python中的广播
深度学习中应用的广播还是比较简单和容易理解的,下面举两个例子进行讲解:
numpy中向量与常数进行运算,常数自动广播为一个和同维度的向量。
同列数,广播
同行数,广播
总结:
老吴对numpy广播机制的理解:
后缘维度相同或者其中一个维度为1的向量可以广播。广播会在缺失维度和轴长度为1的维度上进行。PS:后缘维度的轴长度:A.shape[-1]。
16.关于python_numpy向量的说明
本节主要讲了构造向量时容易出现的bug。
不建议使用这种方式:
而应该使用这种方式:
17.Jupyter/iPython Notebooks快速入门
这个入门没啥可说的,百度去搜,自己去用,去尝试就好了。
18.logistic损失函数的解释
这块其实有点似懂非懂,尤其是多个样本的损失函数,谁和谁独立同分布?
首先要说的是,损失函数其实就是最大化p(y|x)这个条件概率,对于单样本来说:
利用log函数的单增性,将指数降下来,方便计算。
对于m个训练样本的训练集,损失函数如何表示呢?假设所有的样本独立同分布。
利用最大似然估计参数,使得给定样本观测值概率最大,令这个概率最大化等价于其对数最大化。【需要着重理解】