Binary Classification
- 图像分类任务,一张图片由三个通道表示红绿蓝假设每个通道的维度为64x64,则总共的输入维度为:
,则输入向量维度
;

图像分类问题.png
符号定义
- 假设总共有
个训练样本:
;最终
和
的计算公式如下:

符号定义.png
Logistic Regression定义
- 逻辑回归数学表达式为:
,其中
为sigmoid激活函数。sigmoid激活函数数学表达式为:

Logistic Regression定义.png
Logistic Regression损失函数
- 对于逻辑回归,可以采用平方误差损失函数;但是这样会导致变成一个非凸的优化问题。使得梯度下降算法可能会找到一个局部最优值。
- 所以对于逻辑回归常采用交叉熵损失函数,这样使得问题变成了一个凸优化问题,使得梯度下降算法能够找到一个全局最优值;单个样本的损失函数定义如下:
- 整个样本的损失函数定义如下:
逻辑回归损失函数.png
梯度下降法
- 梯度下降法的目标:找到
使得损失函数
达到最小值;
- 通过随机初始化的方式获取
的初始值,然后使用梯度下降法不断的更新参数
;下式中
表示学习率,即更新步长;

image.png

image.png
前向传播&反向传播算法
-
前向计算得到
的过程:
->
->
; 先计算得到
,再计算得到
,然后最终得到
的值。
前向传播.png 反向传播过程: 首先计算
,然后计算
和
;
之后计算
,
;从上面的计算过程可以看出,在计算
对各个参数的偏导数的时候是一个从右到左的过程,即是一个反向传播的过程;前面参数偏导数的计算,依赖后面参数偏导数计算的结果;通过这种方式能够加速梯度下降过程,这也是反向传播算法的精髓所在。

反向传播.png
Logistic Regression 前向&反向传播
- 假设输入的特征向量为
,则整个逻辑回归的参数共有三个
;
-
损失函数
对
的偏导数如下:
- 其中sigmoid的函数
对
的导数为:
;

image.png
-
对于单个样本而言,最终三个参数
的更新公式如下,其中
单个样本.png -
对于
个样本,参数的更新公式如下:
m个样本参数更新公式.png -
对于
个样本,Logistic Regression前向和反向传播过程;此时需要循环遍历
个样本,并且需要循环遍历所有参数;
logistic regression前向&反向传播过程.png
向量化
-
简单的向量化举例,可以发现通过向量化的方式能够加速运算;
向量化举例.png
(1)向量化前向传播过程
- 计算公式如下:
;

向量化前向传播过程.png
(2)向量化反向传播过程
-
反向传播
更新公式如下:

向量化反向传播过程.png
- 最后一个循环,迭代次数不可避免;损失函数向量化表示如下:

LR向量化更新公式.png
Python中的广播
- 对于一个
的矩阵和一个
或者
的矩阵做加、减、乘、除都会将第二个矩阵做广播;
Python中的广播举例.png






