DL_笔记_正则化

深度学可能存在的过拟合问题--高方差,其解决方法有正则化和准备更多的数据。

正则化:L2正则化(权重衰减)、dropout正则化

L2正则化:

        成本函数:

                        J(w,b)=\frac{1}{m} \sum_{i=1}^{m}L(\widehat{y}^{(i)},y^{(i)})+\frac{\lambda }{2m}\left \| w^{[l]} \right \|^{^{2}}

        其中,\frac{\lambda }{2m}\left \| w \right \|^{^{2}}为正则项。

        梯度下降:

                        w^{[l]}=w^{[l]}-\alpha \frac{\partial }{\partial w^{[l]}}J(w^{[l]},b^{[l]})+\frac{\lambda }{m}w^{[l]}

dropout正则化:

        首先要定义向量𝑑,𝑑 [3]表示一个三层的 dropout 向量:

d3 = np.random.rand(a3.shape[0],a3.shape[1])
a3 =np.multiply(a3,d3)

        然后向外扩展𝑎 [3],用它除以 keep-prob 参数:𝑎3/= 𝑘𝑒𝑒𝑝 − 𝑝𝑟𝑜𝑏

---------------------------------------------------------------------------------------------------------------------------------

归一化输入:

        1、零均值化:

                

                然后用x减去\mu

                ​​x=x-\mu

        2、归一化方差:

                

                 x=\frac{x}{\sigma ^{2}}

        在隐藏单元中进行归一化处理:   \gamma =\mu

Mini-batch梯度下降:

        符号的规范:使用上角小括号(𝑖)表示训练集里的值,所以𝑥 (𝑖)是第𝑖个训练样本。用上角中括号[𝑙]来表示神经网络的层数,𝑧 [𝑙]表示神经网络中第𝑙层的𝑧值,用大括号𝑡来代表不同的mini-batch,所以有𝑋 {𝑡}和𝑌 {𝑡}。

        𝑋 {𝑡}和𝑌 {𝑡}的维数:如果𝑋 {1}是一个有 1000 个样本的训练集,或者说是 1000 个样本的𝑥 值,所以维数应该是(n_{x}, 1000),𝑋 {2}的维数应该是(n_{x} ,1000),以此类推。因此所有的子集维数都是(n_{x}, 1000),而这些(𝑌 {𝑡})的维数都是(1,1000)。

        

         

 指数加权平均:

                

       指数加权平均数的偏差修正: 

                          v_{t}=\frac{v_{t}}{1-\beta ^{t}}

动量梯度下降法:

       

RMSprop:

        

         

         

Adam算法:

        初始化:

        然后用当前的mini-batch计算dW,db;

        接下来计算monentum指数加权平均数,所以v_{dw}=\beta _{1}v_{dw}+(1-\beta _{1})dW,同样有:                ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​       

        接着用RMSprop进行更新:

                                                    

        接着计算偏差修正:

                                                   

                                                     

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​       

        最后更新权重:

                                                        

                                                         

           一般\beta _{1}取0.9;\beta _{2}推荐使用0.999;\varepsilon建议取10^{-8}

---------------------------------------------------------------------------------------------------------------------------------将Batch Norm 拟合进神经网络:

Batch 归一化:

                \mu=\frac{1}{m}\sum_{i}^{}z^{(i)}

                \sigma^{_{2}}=\frac{1}{m}\sum_{i}^{}(z^{(i)}-\mu)^{2}

                z_{norm}^{(i)}=\frac{z^{(i)-\mu}}{\sqrt{\sigma^{2}+\varepsilon }}

                \widetilde{z}^{(i)}=\gamma _{norm}^{(i)}+\beta

Softmax回归:

                                       z^{[l]}=w^{[l]}a^{[l-1]}+b^{[l]}

                                        t=e^{z^{[l]}}

                   激活函数:   a^{[l]}=\frac{e^{z^{[l]}}}{\sum_{j=1}^{C}e^{z^{[j]}}

 

                                        a^{[l]}=\frac{t_{i}}{\sum_{j=1}^{C}e^{z^{[j]}}

                      损失函数: L(\widehat{y},y)=-\sum_{j=1}^{C}y_{j}log\widehat{y_{j}}

              其中C为分类结果数量。  

               作用:将多个神经元的输出映射到(0,1)区间内;

                如图所示:                

                

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值