| 书名 | 《机器学习之路caffe、keras、scikit-learn实战》 |
|---|---|
| 作者 | 阿布、胥嘉幸 |
| 出版社 | 电子工业 |
| 出版日期 | 2017年8月 |
| 阅读进度 | 基本全部 |
如下为笔记内容:
框架对比
实验级:性能较差,容易上手,不易定制
工业级:上手难,定制容易
深度学习
机器学习和深度学习是研究弱人工智能实现方式的一门科学。深度学习的价值是挖掘人工挖不到的特征,提高模型的成绩。
深度学习之所以使用“深”的方式扩展模型,是因为:
- 深层模型训练更快
- 深层模型预测效果更好
相关实例,参考专栏。
分类
逻辑分类模型预测一般分三步:
-
计算线性函数\
- 使用链式法则的反向传播算法,把运算量下降到只和神经元数目本身成正比 O(n) 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 l o s s ( w , b ) = − 1 M ∑ i D ( y i , p i ) + 1 M ⋅ w T w C
L1正则化:
loss(w,b)=−1M∑iD(yi,pi)+1M⋅|w|C l o s s ( w , b ) = − 1 M ∑ i D ( y i , p i ) + 1 M ⋅ | w | C - 减少特征,降低模型复杂度
- 增加训练数据量
欠拟合
交叉验证(N-fold Cross-validation)
GridSearch(GridSearchCV)搜索最优参数
模型评估
混淆矩阵
-
准确率\
- 主要用于类别均匀的样本数据中
-
精确率和召回率
对于二分类TP,TN,FP,FN:\- 正样本准确率: Precision=TPTP+FP P r e c i s i o n = T P T P + F P
- 正样本覆盖率: Recall=TPTP+FN R e c a l l = T P T P + F N
-
F1分数
精确率和召回率同等重要,
F1=11Precision+1Recall F 1 = 1 1 P r e c i s i o n + 1 R e c a l l
评估曲线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生成的描述语义的特征向量是有信息损失的,而且一些明显的人工特征对分类帮助很明显。