吴恩达深度学习
目录
神经网络的编程基础
神经网络的编程基础
大部分在 “机器学习” 笔记中写过了
计算图 - 前向过程

计算图 - 反向过程
可以反推:值和偏导数
反推值不难理解,反推导数的核心是 复合求导,即dxdy=dudy⋅dxdu


其中
dadJ=dbdJ=dcdJ=dudJdadududJdbdu=dvdJdudvdbdududJdcdu=dvdJdudvdcdu=3×1 =3=3×1×c=6=3×1×b=9
计算图 - 计算逻辑回归偏导以梯度下降

计算图:J(a,y)=L(a,y)=a=z=m1i∑m(L(a,y))−ylog(a)−(1−y)log(1−a)σ(z)=1−ez1w1x1+w2x2+b 一些中间变量:da=dadL=dz=dzdL=(−ay+(1−a)(1−y)) =a(1−a)a−ydadLdzda=a(1−a)a−y⋅a(1−a)=a−y 用于梯度下降的偏导数:(该例子中每次下降都要遍历m次)dw1=dw2=db=dzdLdw1dz=m1i∑mx1(i)(a(i)−y(i))dzdLdw2dz=m1i∑mx2(i)(a(i)−y(i))dzdLdbdz =m1i∑m (a(i)−y(i))
Python 中的广播(Broadcasting in Python)
(翻译问题:Broadcast翻译成 “广播” 可能不太恰当,反而翻译成 “散布,传播” 会比较好理解)
是令一种能使Python运行得更快的技术(第一种是向量化)
首先是numpy广播机制
如果两个数组的后缘维度的轴长度相符或其中一方的轴长度为1,则认为它们是广播兼容的。广播会在缺失维度和轴长度为1的维度上进行。
例如:


总结一下broadcasting
,可以看看下面的图:

这很灵活,但由于不会报错,若出错了也很难找到到问题所在