书名  | 《机器学习之路caffe、keras、scikit-learn实战》  | 
阿布、胥嘉幸  | |
出版社  | 电子工业  | 
出版日期  | 2017年8月  | 
阅读进度  | 基本全部  | 
如下为笔记内容:
框架对比
实验级:性能较差,容易上手,不易定制 
 工业级:上手难,定制容易
深度学习
机器学习和深度学习是研究弱人工智能实现方式的一门科学。深度学习的价值是挖掘人工挖不到的特征,提高模型的成绩。
深度学习之所以使用“深”的方式扩展模型,是因为:
- 深层模型训练更快
 - 深层模型预测效果更好
 
相关实例,参考专栏。
分类
逻辑分类模型预测一般分三步:
- 计算线性函数
 
- 使用链式法则的反向传播算法,把运算量下降到只和神经元数目本身成正比O(n)
 
- 从分数到概率的转换
 
sigmoid(x)=11+e−x s i g m o i d ( x ) = 1 1 + e − x
softmax(s)=esi∑jesj s o f t m a x ( s ) = e s i ∑ j e s j
- 从概率到标签的转换
 
模型评估, 使用交叉熵。 
D(y,p)=yln(p)+(1−y)(1−ln(p))
  
   
    
     D
    
    
     (
    
    
     y
    
    
     ,
    
    
     p
    
    
     )
    
    
     =
    
    
     y
    
    
     l
    
    
     n
    
    
     (
    
    
     p
    
    
     )
    
    
     +
    
    
     (
    
    
     1
    
    
     −
    
    
     y
    
    
     )
    
    
     (
    
    
     1
    
    
     −
    
    
     l
    
    
     n
    
    
     (
    
    
     p
    
    
     )
    
    
     )
    
   ,其中,p=softmax(score(wx+b))
  
   
    
     p
    
    
     =
    
    
     s
    
    
     o
    
    
     f
    
    
     t
    
    
     m
    
    
     a
    
    
     x
    
    
     (
    
    
     s
    
    
     c
    
    
     o
    
    
     r
    
    
     e
    
    
     (
    
    
     w
    
    
     x
    
    
     +
    
    
     b
    
    
     )
    
    
     )
    
   
 损失函数: 
loss(w,b)=−1M∑jD(yi,pi)
  
   
    
     l
    
    
     o
    
    
     s
    
    
     s
    
    
     (
    
    
     w
    
    
     ,
    
    
     b
    
    
     )
    
    
     =
    
    
     −
    
    
     
      1
     
     
      M
     
    
    
     
      ∑
     
     
      
       j
      
     
    
    
     D
    
    
     (
    
    
     
      y
     
     
      i
     
    
    
     ,
    
    
     
      p
     
     
      i
     
    
    
     )
    
   
均值公式: 
μ=∑Ni=1xiN
  
   
    
     μ
    
    
     =
    
    
     
      
       
        ∑
       
       
        
         i
        
        
         =
        
        
         1
        
       
       
        N
       
      
      
       
        x
       
       
        i
       
      
     
     
      N
     
    
   
 方差公式: 
σ2=∑ni=1(xi−μ)2n
  
   
    
     
      σ
     
     
      2
     
    
    
     =
    
    
     
      
       
        ∑
       
       
        
         i
        
        
         =
        
        
         1
        
       
       
        n
       
      
      
       (
      
      
       
        x
       
       
        i
       
      
      
       −
      
      
       μ
      
      
       
        )
       
       
        2
       
      
     
     
      n
     
    
   
 预处理数据公式: 
xi=xi−mean(X)std(X)
  
   
    
     
      x
     
     
      i
     
    
    
     =
    
    
     
      
       
        x
       
       
        i
       
      
      
       −
      
      
       m
      
      
       e
      
      
       a
      
      
       n
      
      
       (
      
      
       X
      
      
       )
      
     
     
      
       s
      
      
       t
      
      
       d
      
      
       (
      
      
       X
      
      
       )
      
     
    
   
 去均值和归一化使梯度下降收敛更快,更平稳。
模型调试
过拟合:
- 使用正则化,参数C更小使边界线更柔和。如L2正则化: 
loss(w,b)=−1M∑iD(yi,pi)+1M⋅wTwC - 减少特征,降低模型复杂度
 - 增加训练数据量
 
欠拟合
交叉验证(N-fold Cross-validation)
GridSearch(GridSearchCV)搜索最优参数
模型评估
混淆矩阵
- 准确率
 
- 主要用于类别均匀的样本数据中
 
- 精确率和召回率 
对于二分类TP,TN,FP,FN: 
- 正样本准确率:Precision=TPTP+FP
 
- F1分数 
精确率和召回率同等重要,
F1=11Precision+1Recall 
评估曲线ROC
AUC指标(常用)
回归
分类与回归主要区别:
- 目标数值类型不同(离散,连续)
 - 损失函数设计不同
 - 评估指标选择不同
 
损失函数: 
loss(w,b)=−1M∑i(y−y_pred)2
  
   
    
     l
    
    
     o
    
    
     s
    
    
     s
    
    
     (
    
    
     w
    
    
     ,
    
    
     b
    
    
     )
    
    
     =
    
    
     −
    
    
     
      1
     
     
      M
     
    
    
     
      ∑
     
     
      
       i
      
     
    
    
     (
    
    
     y
    
    
     −
    
    
     y
    
    
     _
    
    
     p
    
    
     r
    
    
     e
    
    
     d
    
    
     
      )
     
     
      2
     
    
   
评估指标:
- 误差平均值
 - 误差中位数
 - 均方差(常用)
 - 均方差平方根(常用)
 - r方,也称确定系数(常用)
 
模型融合(Ensamble)
可以防止过拟合,更适合非线性模型(能力强,有个性)。 
 群体对个体模型的要求:
- 个体正确率大于50%
 - 个体判断问题存在差异,有“个性”
 
融合方式:
- Bagging 
有放回抽样,等权重投票 
- 随机森林(Random Forest)
 
- Boosting 
生成模型个体序列,后面的尝试修复前面模型的错误,前后依赖 
- Ada-Boosting
 - Gradient-Boosting/GBDT/XGBoost
 
- Stacking(融合不同模型) 
注意合理使用数据集,防止信息泄露,融合方式如下: 
- 加权投票
 - 使用新的线性模型融合
 
经验之谈
数据集中噪声的比例决定了机器学习模型的成绩上限。对模型的最终影响因素:原始数据质量,特征质量> 特征工程 > 模型工程 、模型融合。
数据分割成训练集和测试集,要先分开在执行归一化。
神经元越多,模型能力越强大,训练时越容易发生过拟合(不同数据集上波动大,适应力低)。
预处理空间数据:过滤冗余,增加样本。
数据既可以按照维度分类,也可以按照时空意义分类(空间维度数组和时间序列)。RNN是提取时间特征的模型,分析了输入序列的特征描述,并将这些描述信息映射到输出序列,即RNN模型完成序列到序列的映射。因此有诸如下应用:
- 翻译系统
 - 语音识别系统,语言解释(DeepCoder)
 - 结合CNN、RNN的看图说话(答题),颜值打分
 - 辨别任务(是否同一作者)
 
NLP有时使用传统的机器学习而非全部的深度学习,是因为诸如word2vec是从“别的数据集”学习到的语义模型,word2vec生成的描述语义的特征向量是有信息损失的,而且一些明显的人工特征对分类帮助很明显。
                










