Deeplearning-Part2

2.1 二分分类

  • 逻辑回归(logistic regression)算法
  • 输入一个特征向量x,输出一个结果y(1/0)表示判断是/否(训练出一个分类器)

Deeplearning-Part2

  • 说明:
  • 将照片切为64*64的像素,每个像素对应R/G/B通道,因此R/G/B均为64*64的矩阵。
  • 用一个特征向量x来表示这些数据:

Deeplearning-Part2

因此,x的总维度(竖着一共有)为64*64*3=12288,Nx=12288

Deeplearning-Part2

Deeplearning-Part2(训练集为m个样本)

  • 一个训练集X由训练集中x1/x2等组成,构建神经网络时通常用左边的形式。

Deeplearning-Part2

Deeplearning-Part2


2.2 逻辑回归

2.2.1 逻辑回归模型

  • 给出条件X,得到一个输出Y(是猫的概率)
  • 逻辑回归的参数有W和b,W是一个Nx为的矩阵,b是一个实数。
  • 由于线性(蓝色部分)含括了[0,1]及除此之外的范围,而我们不考虑负数的情况,因此用西格玛函数包装。西格玛的取值范围为0~1(在x=0时,y=0.5)。

Deeplearning-Part2


2.2.1 逻辑回归损失函数

Deeplearning-Part2Deeplearning-Part2

  • 我们希望预测值y帽与实际值y帽近似。
  • 逻辑回归损失函数(误差函数):

Deeplearning-Part2

  • 误差平方 = (预测值-实际值)的平方   或   0.5*((预测值-实际值)的平方)
  • 误差平方越小越好
  • 但使用的误差平方后在分析最优解时函数是非凸的,即有多个局部最优解,此时无法使用梯度下降法。
  • 成本函数J:训练集中所有损失函数的平均误差


2.2.2 梯度下降法

Deeplearning-Part2

  • 从最抖的地方起开始找凸函数的最低点
Deeplearning-Part2
  • 越来越逼近最低点,公式中紫色方框里的部分为该点的斜率


2.3 计算图

  • 正向的流程图(从左到右)

Deeplearning-Part2

  • 反向的流程图(从右到左)
  • 正向流程图适合计算成本函数,反向流程图适合计算损失函数(微积分链式计算)

2.4 向量化

  • 向量化:避免使用for循环,使运行更为快速和高效
  • time.time()
  • np.random.rand(多少维度的数组)
  • np.dot(a,b)矩阵乘法(矩阵乘积)(https://blog.****.net/u012609509/article/details/70230204)
  • 利用numpy库去掉显式的for循环(简化for循环可加速运算)
  • python的广播特性:在进行矩阵的加减乘除运算时,如A+B=C,python会将格式不匹配的矩阵自动拓展,方便进行运算

Deeplearning-Part2

(axis=0为纵向,竖直相加     re.shape函数:重定义矩阵大小)

  • 神经网络中常用的python(广播特性)
Deeplearning-Part2