深度学习基本概念

根据现实情况,Linear Models 是要进化的

       进化的原因

         假设Linear Model 为 y = b + wx (就是一条线性直线)

        不管怎么改变参数w or参数b, 都是线性直线,即随着x的不断增加,y也会呈线性形式变化

        以天数x与观看视频人数y来说明的话,随着天数的增肌,视频观看人数y也呈线性形成改变 

        但是,现实情况并不是这样的,如下图:红色线是真实的数据变化

        但对于Linear Model 来说,你不管怎么改变参数b and w,都无法构成红色线结构

        所以说,Linear  Models是有限制的,而这种限制情况的专业名词:Model Bias (与model 里的b不是一个含义)

        那怎样才能构成与真实情况(红色线分布)一样的变化图呢?

        我们要写一个更复杂的、更有弹性的有未知参数的Function(Model)

        如何写呢?

        观察红色曲线,会发现,红色曲线可由多个小部分组成,如下图:  

 而关于红色曲线也叫作Piecewise Linear Curves,他由constant + sum of a set of  组成

       如何表示呢?

        可以用一个Sigmoid的Function 来 替代,近似表示  如下图:

        

         而sigmoid Fuction 中的参数,对于图像的影响如下图:

        

      开始进化,新model生成

         将现实情况的曲线进行表示,如下图所示:

         

      将抽象的New Model 具体化

         首先,假设数据只有3个

        j:1,2,3 表示第j个feature 

        i:1,2,3 表示第i个sigmoid(即表示那个蓝色曲线)

        X_{1} : 第一天

        X_{2}: 第二天

        X_{3}: 第三天

        首先具体化model中的 如下图:

         如果用线性代数表示的话,如下图:(注:图中只是表示方式不同,其含义是相同的

         整个model的表示如下图:

 

      介绍未知参数Function参数含义和表示形式 

         将所有的未知参数拉成并合并成一条向量\Theta,该向量中的元素来自于未知参数中的元素

         所以用\Theta统称我们所有的未知参数 ---- 目的是为了表达方便

 将New Model应用到机器学习step2 and step3

      step2:计算Loss(\Theta

         L = Loss(\Theta)  \Theta是所有未知参数的统称,可以把 \Theta _{1} 、\Theta _{2}```当成Loss函数的自变量

      step3:对New Model进行优化

              \Theta _{1}\Theta _{2} ···是L的自变量

                \Theta ^{0} ,\Theta ^{1} ···是L自变量某点的值

                g是对所有未知参数(自变量)在某点\Theta ^{i}微分数值的集合,也可以表示为

 使用Batch思想进行学习

      Batch思想应用

        针对每个batch 训练出所对应的损失函数L^{i}

        然后使用这些L^{i}来迭代进行损失函数L的优化

        每次小优化就是一次update,经过多次update最终得到最优未知参数解

        将所有的L^{i}优化完成之后,算一个epoch 

      为什么用Batch思想呢?  

                 

          首先,batch是个自定义参数,根据batch含量不同,一次epoch所进行的update也不同

        我猜测,使用batch所优化的准确度更高,效率更高!

         因为,如果batch是1,说明一次epoch就相当于用整个训练集优化一次得到\Theta ^{1}

        而使用batch时,一次epoch可以优化多次,一次epoch就能优化得到\Theta ^{i} i = N/batch

 那么只有这一种激活函数sigmoid来构造红色曲线吗?

        不是的!

        激活函数有很多种,sigmoid只是其中的一种。

        常用的激活函数有sigmoid、ReLU···

        此处只讲该两种激活函数,他们直接有什么区别呢?(ReLU > sigmoid) 

             这两个函数之间的关系: ReLU可以表示Sigmoid

             其中需要两个ReLU 表示一个Sigmoid

激活函数重复多次

        激活函数重复多次,其Model训练结果更好,误差值越低

        每个激活函数叫Neuron

        多个激活函数构成Neuron Network

        但Neuron Network 过时了,升级为新的名字:Deep Learning

        相同的东西,不同的命名

        为什么要进行深度呢?

               使得模型Model预测的更准确,误差值更低。

                Ps:但并不是hidden layer 越多越好,当出现了过拟合时,此时layers只会起到阻碍的作用,因此应选择layers之前的即可。

 

         

 

 

 

 

         

                

        

 

 

 

 

        

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值