• 机器学习笔记05(Deep Learning->DNN)


    Deep Learning-------->DNN(Deep Neural Networks )

    又可以称为  DL(Multi-Layer perceptron)

    1、什么是深度学习

    2、深度学习的步骤

           Step 1:Neural Network 

           Step 2:goodness of function 

           Step 3:pick the best function 

    3、Why deeper is better ?  

    4、Back Propagation 

    1、什么是深度学习

    • 深度学习的model是一个深度神经网络结构(neural structure)
    • 深度学习的“深度”是指神经网络的隐层(hidden layer)数量足够多
    • 深度学习是自动提取特征(Feature extractor),不需要像逻辑回归那样特征转换(Feature engineering)

           参考前文结尾引出部分

    2、深度学习的步骤

           和前面的学习一样,深度学习也是三个步骤

           Step 1:定义一个神经网络结构(neural structure)

                  神经网络的创建包括三部分:1. 神经网络有多少个隐层(layer) 2. 每一层有多少个神经元(neuron) 3. 神经元之间如何连接

                         

             1)神经元:每个神经元都有包含以下因素:bias(b)、function,每个input还有一个weight。

                   

             2)举例:全连接

                    

              3)工作过程

           假设已经定义好了神经网络之后(也就是function找到了),输入和输出都是一个 向量(vector)

           如图所示,等式左边,黄色矩阵为 weight 矩阵,蓝色矩阵为 input vector,绿色矩阵为 bias 矩阵

                             等式右边,为这层神经元的 output,同时也是下一层神经元的输入。 

                        

            如此第一层的神经元计算便完成了

            以此类推,计算下面的神经元

                    

                  

               举个栗子:手写识别

               设 input 为16*16 = 1*256 维向量,output 仅有十种可能。因此我们需要设计神经元之间的连接方式。

                  

           Step 2:goodness of function 确定损失函数    

                    和逻辑回归的方法一样,用交叉熵,最终的 L 为所有测试数据的交叉熵总和

              

                  

           Step 3:pick the best function 找到最有函数(参数)

              方法:Gradient Descent

                

                 

     3、why deeper is better?

                 

                

            方法:Modularization(模组化)

           举例说明:将人分为 长头发男、短头发男、长头发女、短头发女。

                   

             较少的长发男的样本,因此我发准确训练。但是如果只要求分类男女、长短发就都有了较多的例子。然后再进行进一步的分类,就解决了某一样本不足的问题。

                       

                  

           结论:deep learning 实际上使用了 Modularization 的方法,可以用更少的 data 得到更可靠的结果。

    4、Back Propagation

           Back Propagation是用于计算微分的方法,在此用此方法来 update DNN参数

           首先回忆Gradient Descent 的过程,需要对loss function 求偏导。如下图

            

           数学微分基础 

              

           使用Back Propagation方法update DNN参数 

             

              1、 由上图可知,我们需要求得 C 对 w 的偏微分,由前面的数学微分基础可得下图,将其分为两部分,前向传递部分 与 后向传递部分。

                 

             2、 前向传递部分 

          此部分较为简单,直接就是对应的系数。

             

            3、 后向传递部分 show time 

             

            假设后面的微分可以知道,也就可以推得前面的微分。如下所示

                 

            具体计算

                

           4、总结:

              说到底,其实也就是如果从前往后求偏导,式子如果比较麻烦,可以从后开始求偏导,利用前面介绍的数学基础,往前带入再求。

                       

  • 相关阅读:
    expect简介和使用例子(转)
    openshift网络
    openstack相关
    SDN的开源方案sonic
    OpenStack Neutron ML2 Deep Dive
    2017双11技术揭秘—阿里数据库计算存储分离与离在线混布
    es的gui工具
    django orm中blank和null的区别
    断关联多表关系阐述
    视图使用
  • 原文地址:https://www.cnblogs.com/Haozi-D17/p/13168438.html
Copyright © 2020-2023  润新知