吴恩达人工智能学习笔记

第一部分

第三周 浅层神经网络

3.6 激活函数

  1. 默认用 ReLU,学习速度更快。
  2. 一般用 tanh 代替 sigmoid。
  3. 二分类时,输出端为(0,1),可以用sigmoid。
  4. ReLU 缺点是负数梯度为0,在实践中无影响,因为有足够多z>0的节点,保证ReLU的梯度存在。
  5. 可用 leaky ReLU 修正。

3.7 为什么需要非线性的激活函数

  1. 这样输出就是输入的线性组合。
  2. 回归问题的输出层,可以用线性激活函数。若非负,也可以用ReLU代替。
  3. 和压缩有关的一些非常特殊的情况,会在隐藏层用输出函数。

3.8 激活函数的导数

  1. sigmoid函数的导数是 σ ( z ) ( ˙ 1 − σ ( z ) ) \sigma(z)\dot(1-\sigma(z)) σ(z)(˙1σ(z))
  2. tanh函数的导数是 1 − t a n h 2 ( z ) 1-tanh^2(z) 1tanh2(z)
  3. 对于sigmoid 和 tanh 函数,当z非常大时,导数趋于零。
  4. ReLU函数的导数是 ( 0   i f   z &lt; 0 ) ( 1   i f   z &gt; 0 ) (0~if ~z&lt;0 )(1 ~if~z&gt;0) (0 if z<0)(1 if z>0)
  5. Leaky ReLU函数的导数是 ( 0.01   i f   z &lt; 0 ) ( 1   i f   z &gt; 0 ) (0.01~if ~z&lt;0 )(1 ~if~z&gt;0) (0.01 if z<0)(1 if z>0)

3.9 神经网络中的梯度下降法

  1. ???没太看懂
  2. 用np.sum(dz,axis=1,keepdim=True), keepdim防止将维度降至奇怪的(n,)用np.sum(dz,axis=1,keepdim=True), keepdim防止将维度降至奇怪的(n,)

3.10 直观理解反向传播

  1. 从误差函数开始,求每个参数对误差函数的导数。
  2. ???没有学完

3.11 随机初始化

  1. 如果将所有参数w初始为0,反向传播将失效。
  2. 因为同层的隐藏单元做同样的事情。
  3. w_1=np.random.randn((2,2))*0.01
  4. b_1=np.zeros((2,1))
  5. 通常把权重矩阵w初始化成一个非常小的数,因为当用sigmoid激活函数时,可以获得较大梯度值。
  6. 如果网络中没有sigmoid激活函数,则可以用较大数初始化w。
  7. 当神经网络很深的时候,会选用0.01之外的常数。

第四周 深层神经网络

4.1 深层神经网络

  1. 神经网络的层数只算隐藏层,不算输出层。
  2. L L L:表示层数
    n [ L ] n^{[L]} n[L]:表示每层的节点数
    a [ L ] a^{[L]} a[L]:表示每层的激活函数
    x = a [ 0 ] : x=a^{[0]}: x=a[0]表示输入特征

4.2 深层网络中的前向传播

  1. 和浅层前向传播一样,每一层的节点用向量化技术(矩阵)技术,层到层之间只能用for循环。

4.3 核对矩阵的维数

  1. debug时,在纸上写一遍算法中所以矩阵的维数
  2. d w [ l ] = w [ l ] = ( n [ l ] , n [ l − 1 ] ) dw^{[l]}=w^{[l]}=(n^{[l]},n^{[l-1]}) dw[l]=w[l]=(n[l],n[l1])
  3. d b [ l ] = b [ l ] = ( n [ l ] , 1 ) db^{[l]}=b^{[l]}=(n^{[l]},1) db[l]=b[l]=(n[l],1)
  4. z [ l ] = a [ l ] = ( n [ l ] , 1 ) z^{[l]}=a^{[l]}=(n^{[l]},1) z[l]=a[l]=(n[l],1) 未使用向量化技术
  5. Z [ l ] = A [ l ] = ( n [ l ] , m ) Z^{[l]}=A^{[l]}=(n^{[l]},m) Z[l]=A[l]=(n[l],m) 使用向量化技术,m是样本个数
  6. d Z [ l ] = d A [ l ] = ( n [ l ] , m ) dZ^{[l]}=dA^{[l]}=(n^{[l]},m) dZ[l]=dA[l]=(n[l],m)

4.4 为什么使用深层表示

  • 人脸识别中:
  1. 第一层可以是特征检测器,或边缘检测器,每一个单元对应不同方向的边缘。
  2. 第二层可以识别各个器官,每一个单元对应眼睛,嘴巴,鼻子等等。
  3. 第三层把这些不同的器官放到一起,就组成了不同的人脸。
  • 语音识别:
  1. 第一层探测 低层次的音频波形的特征,比如音调变高低,白噪声还是吱吱声。
  2. 第二层探测声位,比如a,i,o…第二层探测声位,比如a,i,o…
  3. 第三层可以识别单词,第四层识别词组…知道完整的句子
  • 电路理论:浅层需要指数级 2 n 2^n 2n的节点,深层需要 l o g ( n ) log(n) log(n)

  • 遇到一个问题时,从浅层开始,把层数当成一个参数或者超参数调试。

4.5 搭建深层神经网络块

  1. 前向传播:
    输入: A [ l − 1 ] A^{[l-1]} A[l1]
    输出: A [ l ] A^{[l]} A[l]
  2. 后向传播:
    输入: d A [ l ] dA^{[l]} dA[l] Z [ l ] Z^{[l]} Z[l]
    输出: d A [ l − 1 ] dA^{[l-1]} dA[l1]
  3. 计算前向传播时,把 Z [ l ] Z^{[l]} Z[l]缓存起来
  4. 如图所示
    计算示意图

4.6 前向和反向传播

  • 没有看完
  • Forward propagation:
    Input a [ l − 1 ] a^{[l-1]} a[l1]
    Output a [ l ] a^{[l]} a[l],cache( z [ l ] z^{[l]} z[l])
  • Backward propagation:
    Input d a [ l ] da^{[l]} da[l]
    Output d a [ l − 1 ] da^{[l-1]} da[l1], d W [ l ] dW^{[l]} dW[l], d b [ l ] db^{[l]} db[l]
    前向和反向传播

4.7 参数 VS 超参数

  1. 参数: W 1 , b 1 , W 2 , b 2... W1, b1,W2, b2 ... W1,b1,W2,b2...
  2. 超参数:
    学习率: α \alpha α
    迭代循环次数:
    隐藏层数: L L L
    隐藏单元数: n [ l ] n^{[l]} n[l]
    激活函数:
  3. 在下周课程中会系统的讲解超参数的设置。
  4. 最优超参数是会变得,随着GPU或者其他。

4.8 这和大脑有什么关系

  1. 这种类比已经落后了,少说…
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值