机器学习笔记(持续更新)

  • 任何一个有效的机器学习算法必须有一个归纳偏好(bias),否则无法产生确定的学习结果 bias的大小决定学习算法尽可能特殊或尽可能一般 可用“奥卡姆剃刀”原则来选择bias
  • “奥卡姆剃刀”原则:如无必要,勿增实体 Entities should not be multiplied unnecessarily
  • NFL(No Free Lunch)原理:在某些问题上算法A比B好,必定存在某些问题,B比A好 所有评价学习算法好坏要针对具体问题
  • 分类的目标是让泛化误差最小,但是只能从经验误差入手(因为不知道新样本是什么)因此不能让经验误差太小(太专注特殊,没有一般性),否则经常过拟合,泛化性能很差
  • 过拟合无法完全避免,只能缓解 通过使用测试集来测试学习器对新样本的判别能力 以测试集上的测试误差(testing error)作为泛化误差的近似
  • 测试集尽量不出现在训练集中
  • 评估方法(留出法、交叉验证法、留一法、自助法)一般用留出法(训练集、测试集、验证集按比例分 8:1:1)
  • 调参工作量很大(实数范围的,不可能穷举)
  • 两类参数:模型的参数(可以很多,深度神经网络百亿个)、算法自身的参数(较少,一般10以内)
  • SVM
1.SVM由Vapnik提出,具有坚实的统计学理论基础
2.主要是用于二分类的,多分类要  专门推广,不是很方便
3.可以很好用于高维分类,避免维数灾
4.基于判别式分类,使用最大间隔原理(Max Margin)
5.使不等式成立的点为支持向量 最大间隔为 2/||W|| 因为便签为 +1 -1
6.SVM基本型如下:
7.SVM基本型是一个凸优化问题,更具体说是一个二次规划问题(目标函数是二次的,约束条件是线性的)
8.通过拉格朗日对偶(Lagrange Duality) 变换到对偶变量(dual veriable)的优化问题进行求解
9.可以引入核函数,推广到非线性分类问题
10.对于非线性可分问题,可以映射到高维空间,使样本在新的特征空间变成线性可分(如果原始空间是有限维,一定存在一个高维特征空间使样本线性可分)引入核函数避开高维障碍
11.高维空间中两个向量的内积等于它们在原始空间中对应的向量通过核函数运算的结果
12.核函数隐式地定义了特征空间,所有核函数如果选择不当,意味着将原始空间映射到了一个不合适的特征空间,导致性能不佳
13.目前还没有什么方法来确定核函数(研究点)
14.SVM的兴起曾把神经网络再次打入低谷
  • 神经网络
    1. 每个神经元都是一个感知机
    2. 若每个激活函数都是线性函数,最终只得到线性变换(线性函数的组合还是线性函数)
    3. 一般都用非线性激活函数 (对数、双曲正切、阶跃、修正线性)
    4. BP算法基于梯度下降策略,以误差函数的负梯度方向对参数进行调整(权重和阈值)
    5. 梯度下降法:一种常用的一阶优化方法(只使用目标函数的一阶导数),求解无约束优化问题最经典的方法之一
    6. 学习率控制每一步更新的步长,太大容易震荡,太小收敛慢
    7. 神经网络只需输入样本和学习率 连接权重和阈值在(0,1)随机初始化
    8. 深度学习中更常用的做法是将softmax作为最后一层的激活函数,此时用的代价函数是log-likelihood(对数自然)
    9. 标准BP(每次用一个样本来更新)和累积BP(先读取一遍训练集)算法的区别,类似于随机梯度下降和(最快)梯度下降的区别
    10. 神经网络模型越复杂则1.参数越多,训练效率低(慢)2.容易过拟合 解决办法1.云计算(计算能力强)2.大数据(样本多)
    11. 改进:1.用交叉熵代价函数代替方差代价函数 2.用分段线性函数(修正线性函数)代替sigmoid函数作隐含层激活函数

你可能感兴趣的:(机器学习笔记(持续更新))