Binary Classification
- 图像分类任务,一张图片由三个通道表示红绿蓝假设每个通道的维度为64x64,则总共的输入维度为:,则输入向量维度;
符号定义
- 假设总共有个训练样本:;最终和的计算公式如下:
Logistic Regression定义
- 逻辑回归数学表达式为:,其中为sigmoid激活函数。sigmoid激活函数数学表达式为:
Logistic Regression损失函数
- 对于逻辑回归,可以采用平方误差损失函数;但是这样会导致变成一个非凸的优化问题。使得梯度下降算法可能会找到一个局部最优值。
- 所以对于逻辑回归常采用交叉熵损失函数,这样使得问题变成了一个凸优化问题,使得梯度下降算法能够找到一个全局最优值;单个样本的损失函数定义如下:
- 整个样本的损失函数定义如下:
逻辑回归损失函数.png
梯度下降法
- 梯度下降法的目标:找到使得损失函数达到最小值;
- 通过随机初始化的方式获取的初始值,然后使用梯度下降法不断的更新参数;下式中表示学习率,即更新步长;
image.png
前向传播&反向传播算法
-
前向计算得到的过程: -> -> ; 先计算得到,再计算得到,然后最终得到的值。
前向传播.png
-
反向传播过程: 首先计算,然后计算和;
-
之后计算,;从上面的计算过程可以看出,在计算对各个参数的偏导数的时候是一个从右到左的过程,即是一个反向传播的过程;前面参数偏导数的计算,依赖后面参数偏导数计算的结果;通过这种方式能够加速梯度下降过程,这也是反向传播算法的精髓所在。
Logistic Regression 前向&反向传播
- 假设输入的特征向量为,则整个逻辑回归的参数共有三个;
-
损失函数对的偏导数如下:
- 其中sigmoid的函数对的导数为:;
-
对于单个样本而言,最终三个参数的更新公式如下,其中
单个样本.png
-
对于个样本,参数的更新公式如下:
m个样本参数更新公式.png
-
对于个样本,Logistic Regression前向和反向传播过程;此时需要循环遍历个样本,并且需要循环遍历所有参数;
logistic regression前向&反向传播过程.png
向量化
-
简单的向量化举例,可以发现通过向量化的方式能够加速运算;
向量化举例.png
(1)向量化前向传播过程
- 计算公式如下:;
(2)向量化反向传播过程
-
反向传播更新公式如下:
- 最后一个循环,迭代次数不可避免;损失函数向量化表示如下:
Python中的广播
- 对于一个的矩阵和一个或者的矩阵做加、减、乘、除都会将第二个矩阵做广播;
Python中的广播举例.png
网友评论