吴恩达《深度学习》第一门课(2)神经网络的编程基础

  • 时间:
  • 浏览:0

(1)以一张三通道的64×64的图片做二分类识别是不是 毛,输出y为1时认为是猫,为0时认为后会 猫:

(2)以下是或多或少符号定义(数据集变成矩阵以前进行矩阵运算代替循环运算,更加高效)

(1)将样本x横向堆叠,形成X,一块儿根据python的广播性质(把实数b变成了(1,m)维),得到:

(2)以上过程会有1个多循环,1个多循环是循环是遍历样本,第1个循环是当w什么都时是要循环的,顶端之写出了1个多w,什么都没体现出来。

(2)激活函数使用sigmoid,它使得输出值限定在0到1之间,符合概率的取值。

总结一下:为了最小化成本函数J(w,b),亲戚亲戚朋友logistic回归模型的最大似然估计的深度图出发,假设训练集中的样本后会 独立同分布的条件下。

(1)首先可不还可不还可以明确,逻辑回归的输出表示y等于1的概率。故有:

(1)下图形象的总结了Python中的广播

(7)要最大化上式(最大似然估计)也什么都我最小化:

(1)损失函数(针对单个样本):

x:表示1个多nx维数据,维度为(nx,1)

(1)消除w带来的循环

(3)过后计算dz:

(1)没有用向量化时使用的代码:

(2)使用向量的方式

(2)合并成1个多式子(要使得式子越大越好):

(2)首先计算da:

(3)关于偏置项(偏差)b,可将其变成θ0,对应的x0恒定为1,如下所示:

(6)两边取对数得到:

(3)根据对数函数log的单调递增性,对上式取对数有:

(2)参数w、b的更新方式:

记住或多或少常见的导数求法以前直接查看导数表。

后者不仅书写简单,更重要的是计算传输传输速率还可不还可不还可以比前者快一阵一阵多。

(1)使用循环的方式计算:ωTx

其中前面1个式子完成了前向和后向的传播,也实现了对所有训练样本进行预测和求导,再利用后1个多式子,梯度下降更新参数。另外以前可不还可不还可以多次迭代语录,还是可不还可不还可以用到1个多循环的,那是外理不了的。

Y=[y(1),y(2),……,y(m)]:表示所有输入数据集对于的输出值,其维度为1×m;

设置u=np.zeros(n(x),1)来定义1个多x行的一维向量,从而替代循环,仅仅使用1个多向量操作dw=dw+x(i)dz(i),最后亲戚亲戚朋友得到dw/m。

(1)以下代码显示了对整个数据集的一次迭代

(1)下图中左边为凸函数,右边为非凸函数,逻辑回归中代价函数为凸函数,故任意的初始化都能收敛到最优点:

(4)要最大化上式,最小化上式取反,得到1个多样本的损失函数。

(1)下图展示计算图计算的过程:

(1)反向传播利用链式法则来进行求导,如对a进行求导,其链式法则公式为:

(2)正向传播用于计算代价函数

y输出是1个多数,x输入是64*64*3=12288的向量。

y:表示输出结果,取值为(0,1);

(2)代价函数(针对删剪训练样本):

(x(i),y(i)):表示第i组数据;

X=[x(1),x(2),……,x(m)]:表示按列将所有的训练数据集的输入值堆叠成1个多矩阵;其中m表示样本数目;

(5)所有样本时,认为样本间独立同分布,故联合概率什么都我每个样本的乘积:

(1)计算图如下:

(2)在Python的numpy中,axis=0是按照列操作,axis=1,是按照行操作,这一点可不还可不还可以注意。

(2)使用向量化以前的代码:

(1)逻辑回归的输出值是1个多概率,算法思想如下:

(2)继续利用Python的计算方式,得到A:

导数即斜率。

针对于单个样本

(2)应该使用a=np.random.randn(5,1)曾经生成的是1个多行向量,它和他的转置乘积会是1个多矩阵:

(4)最后计算dw,db(下面的式子真是以前对所有样本进行的求导):

(1)使用a=np.random.randn(5)生成的数据特征在python中称为一维数组,它既后会 行向量也后会 列向量,用a.shape的结果是(5,)这表示它是1个多一维向量,a和它的转置相乘真是得到的是1个多数。