Coursera Deeplearning.ai「深度学习」课程笔记L1.W2神经网络的编程基础

1. 符号定义

  • x x x: 表示一个 n n n维数据,为输入数据,维度为 ( n , 1 ) (n,1) (n,1)
  • y y y: 表示输出结果
  • ( x ( i ) , y ( i ) ) (x^{(i)},y^{(i)}) (x(i),y(i)): 表示第 i i i组数据
  • X = [ x ( 1 ) , x ( 2 ) , . . . , x ( m ) ] X = [x^{(1)}, x^{(2)}, ..., x^{(m)}] X=[x(1),x(2),...,x(m)]: 表示输入值,为 n × m n\times m n×m的矩阵, 其中 m m m表示样本数目
  • Y = [ y ( 1 ) , y ( 2 ) , . . . , y ( m ) ] Y = [y^{(1)}, y^{(2)}, ..., y^{(m)}] Y=[y(1),y(2),...,y(m)]: 表示输出值(标签),为 1 × m 1\times m 1×m的向量

X X X, Y Y Y 均是通过将样本按照堆叠起来,这在实现神经网络时会使实现过程变得简单;而有时候可能对矩阵 X X X通过将样本按照堆叠而实现。

(1) X = [ ⋮ ⋮ ⋮ ⋮ x ( 1 ) x ( 2 ) ⋯ x ( m ) ⋮ ⋮ ⋮ ⋮ ] X = \left[ \begin{matrix} \vdots & \vdots & \vdots &\vdots \\ x^{(1)} & x^{(2)} & \cdots & x^{(m)} \\ \vdots & \vdots & \vdots &\vdots \\ \end{matrix} \right] \tag{1} X=x(1)x(2)x(m)(1)
(2) Y = [ y ( 1 ) y ( 2 ) ⋯ y ( m ) ] Y = \left[ \begin{matrix} y^{(1)} & y^{(2)} & \cdots & y^{(m)} \\ \end{matrix} \right] \tag{2} Y=[y(1)y(2)y(m)](2)

X.shape = (n,m)
Y.shape = (1,m)

2. Python基础

numpy包

  1. axis = 0 or 1
    A.sum(axis = 0),axis 用来指明将要进行的运算是沿着哪个轴执行,在 numpy 中,0 轴是垂直的,也就是列,而 1 轴是水平的,也就是行。
  2. reshape()
    当我们写代码时不确定矩阵维度的时候,通常会对矩阵进行重塑来确保得到我们想要的列向量或行向量。重塑操作 reshape 是一个常量时间的操作,时间复杂度是?(1),它的调用代价极低。
  3. 广播机制(broadcasting)
  • 如果两个数组的后缘维度的轴长度相符或其中一方的轴长度为 1,则认为它们是广播兼 容的。广播会在缺失维度和(或)轴长度为 1 的维度上进行。
不同
相同
矩阵维度
后缘维度轴长相符
有一方的轴长度为1
可以广播

后缘维度(trailing dimension),即从末尾开始算起的维度

  • 确保 矩阵维度 的准确性
    - 加入 assert 断言语句,如assert(a.shape == (5,1))
    - 常使用 reshape 操作

3. 逻辑回归

sigma函数

y=wx + b
y可能大于1或者为负
线性回归
逻辑回归
引入sigma函数

(3) σ ( z ) = 1 1 + e − z \sigma(z) = \frac{1}{1+e^{-z}} \tag{3} σ(z)=1+ez1(3)

损失函数 VS 代价函数

  • 损失函数(loss function),是在单个训练样本中定义的,它衡量的是算法在单个训练样本中表现如何。
    逻辑回归的损失函数是:
    (4) L ( y ^ , y ) = − y log ⁡ ( y ^ ) − ( 1 − y ) log ⁡ ( 1 − y ^ ) L(\hat{y}, y)=-y\log(\hat{y})-(1-y)\log(1-\hat{y}) \tag{4} L(y^,y)=ylog(y^)(1y)log(1y^)(4)

有很多的函数效果和现在这个类似,就是如果 y y y 等于1,我们就尽可能让 y ^ \hat{y} y^ 变大,如果 y y y 等于0,我们就尽可能让 y ^ \hat{y} y^ 变小。

  • 代价函数(cost function),衡量算法在全部训练样本上的表现如何,是参数的总代价。
    逻辑回归的代价函数是:
    J ( w , b ) = 1 m ∑ i = 1 m L ( y ^ ( i ) , y ( i ) ) = 1 m ∑ i = 1 m ( − y log ⁡ ( y ^ ) − ( 1 − y ) log ⁡ ( 1 − y ^ ) ) J(w,b)=\frac{1}{m}\sum_{i=1}^mL\big(\hat{y}^{(i)},y^{(i)}\big)=\frac{1}{m}\sum_{i=1}^m\big(-y\log(\hat{y})-(1-y)\log(1-\hat{y})\big) J(w,b)=m1i=1mL(y^(i),y(i))=m1i=1m(ylog(y^)(1y)log(1y^))

逻辑回归可以看做是一个非常小的神经网络

4. 向量化

  • 经验法则是,无论什么时候,避免使用明确的 for 循环

5. L1和L2损失函数

L1 loss function

(6) L 1 ( y ^ , y ) = ∑ i = 0 m ∣ y ( i ) − y ^ ( i ) ∣ L_1(\hat{y}, y) = \sum_{i=0}^m|y^{(i)} - \hat{y}^{(i)}| \tag{6} L1(y^,y)=i=0my(i)y^(i)(6)

L2 loss function

(7) L 2 ( y ^ , y ) = ∑ i = 0 m ( y ( i ) − y ^ ( i ) ) 2 L_2(\hat{y},y) = \sum_{i=0}^m(y^{(i)} - \hat{y}^{(i)})^2 \tag{7} L2(y^,y)=i=0m(y(i)y^(i))2(7)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值