【李宏毅机器学习】Basic Concept 基础概念(p4) 学习笔记

李宏毅机器学习学习笔记汇总
课程链接


Review

越复杂的model,在testing data上的error未必越低。

error来自两个地方:

  1. bias
  2. variance
    【李宏毅机器学习】Basic Concept 基础概念(p4) 学习笔记

f_star是f_hat的一个估测值,f_star可能不等于f_hat,距离可能来自于bias,也可能来自于variance方差

【李宏毅机器学习】Basic Concept 基础概念(p4) 学习笔记

估测变量x的mean均值(假设变量x的均值为μ,方差为σ^2):

​ 先sample N个点,将其算平均值m,一般都不等于x的均值μ

但是计算m的期望值,会正好等于μ

【李宏毅机器学习】Basic Concept 基础概念(p4) 学习笔记

【李宏毅机器学习】Basic Concept 基础概念(p4) 学习笔记
N越大,分布越集中;N越小,分布越分散
【李宏毅机器学习】Basic Concept 基础概念(p4) 学习笔记
估测x的σ^2

【李宏毅机器学习】Basic Concept 基础概念(p4) 学习笔记

重点图如下,便于理解

错误来自于bias(瞄准的位置)和variance(枪的性能),理想情况是二者都小/没有。

点越集中,方差越小;离中心越远,偏差越大。
【李宏毅机器学习】Basic Concept 基础概念(p4) 学习笔记

平行时空,抓到不同的宝可梦

【李宏毅机器学习】Basic Concept 基础概念(p4) 学习笔记

不同宇宙中,找到的f*是不同的

【李宏毅机器学习】Basic Concept 基础概念(p4) 学习笔记

在100个平行的宇宙中,各抓取10个宝可梦,都去找一个f*

100个不同的w和b

【李宏毅机器学习】Basic Concept 基础概念(p4) 学习笔记


简单模型:很集中,variance很小

复杂模型:散布分散,variance很大

原因:简单模型受不同data影响较小

【李宏毅机器学习】Basic Concept 基础概念(p4) 学习笔记


靶心代表理想的函数,目标结果。

【李宏毅机器学习】Basic Concept 基础概念(p4) 学习笔记

实验结果如下:

黑线代表:靶心位置;

红线代表:做5000次实验每一次找出的f*都不一样,model也不一样;

蓝线代表:将这5000次f*平均后

     f
    
    
     ˉ
    
   
  
  
   \bar f
  
 
</span><span class="katex-html"><span class="base"><span class="strut" style="height: 1.02566em; vertical-align: -0.19444em;"></span><span class="mord accent"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.83122em;"><span class="" style="top: -3em;"><span class="pstrut" style="height: 3em;"></span><span class="mord mathdefault" style="margin-right: 0.10764em;">f</span></span><span class="" style="top: -3.26344em;"><span class="pstrut" style="height: 3em;"></span><span class="accent-body" style="left: -0.08333em;">ˉ</span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.19444em;"><span class=""></span></span></span></span></span></span></span></span></span></p> 

【李宏毅机器学习】Basic Concept 基础概念(p4) 学习笔记

下图的解释:

model是一个function set,使用一个范围表示function set。最好的function也只能从function set里选出来。

  • 而一个简单的model的space很小,又可能没有包含target,所以无论如何sample,平均起来都不可能得到target。

  • 复杂的model,space很大,他的function set包含了target,只不过可能无法找出那个target,因为每次给的training data不一样,如果散布在target附近的,则只要平均起来就可能得到

           f
          
          
           ˉ
          
         
        
        
         \bar f
        
       
      </span><span class="katex-html"><span class="base"><span class="strut" style="height: 1.02566em; vertical-align: -0.19444em;"></span><span class="mord accent"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.83122em;"><span class="" style="top: -3em;"><span class="pstrut" style="height: 3em;"></span><span class="mord mathdefault" style="margin-right: 0.10764em;">f</span></span><span class="" style="top: -3.26344em;"><span class="pstrut" style="height: 3em;"></span><span class="accent-body" style="left: -0.08333em;">ˉ</span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.19444em;"><span class=""></span></span></span></span></span></span></span></span></span></p> </li></ul> 
    

【李宏毅机器学习】Basic Concept 基础概念(p4) 学习笔记


如下图,其中

简单model:大bias,小variance

复杂model:小bias,大variance

error来自bias(红线)和variance(绿线),蓝色线是二者共同造成的影响

  • error来自于variance很大:overfitting 过拟合(太复杂了)
  • error来自于bias很大:underfitting 欠拟合(太简单了)

【李宏毅机器学习】Basic Concept 基础概念(p4) 学习笔记

如何知道目前是bias大还是variance大?

  • 如果你的模型没有办法fit你和你的training example(少数的几个training data点),代表bias大,underfitting了。
  • 如果在training data上得到一个小的error,而在testing data上却得到一个error,说明这个model的variance大,说明overfitting了

【李宏毅机器学习】Basic Concept 基础概念(p4) 学习笔记

解决方法:

bias大:

  • 要redesign一个新model,有可能model根本没有包含target
          f
         
         
          ^
         
        
       
       
        \hat{f}
       
      
     </span><span class="katex-html"><span class="base"><span class="strut" style="height: 1.15232em; vertical-align: -0.19444em;"></span><span class="mord accent"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height: 0.95788em;"><span class="" style="top: -3em;"><span class="pstrut" style="height: 3em;"></span><span class="mord"><span class="mord mathdefault" style="margin-right: 0.10764em;">f</span></span></span><span class="" style="top: -3.26344em;"><span class="pstrut" style="height: 3em;"></span><span class="accent-body" style="left: -0.08333em;">^</span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height: 0.19444em;"><span class=""></span></span></span></span></span></span></span></span></span>,所以可以考虑加入更多的feature、更高的次数。(增加data没有效果)</li></ul> 
    

variance大:

  • 增加data数量,数据集增强,很有效控制variance过大的方法
  • Regularization正则化,在loss function后加一项

【李宏毅机器学习】Basic Concept 基础概念(p4) 学习笔记


在bias和variance中权衡,选择一个模型可以平衡两种error,使得总error最小。

但是不可以做的事情是:利用自己手上已有的testing set来选择最好的模型的时候,选出来的模型在真正的testing data上,未必是最好的模型

testing set有自己的bias:数据采集的偏差。除非你的testing set比较好地代表了总体分布,否则实际使用时Err一定会变差

【李宏毅机器学习】Basic Concept 基础概念(p4) 学习笔记
【李宏毅机器学习】Basic Concept 基础概念(p4) 学习笔记

正确做法: 交叉验证cross validation

【李宏毅机器学习】Basic Concept 基础概念(p4) 学习笔记

若不相信某次分trin和test的数据集,可以分好多次,即,N折交叉验证N-fold Cross Validation

把最好的效果的model用在最后的testing test

【李宏毅机器学习】Basic Concept 基础概念(p4) 学习笔记

上一篇:【通过python操作perforce】


下一篇:P4环境配置