Closed Bryce1010 closed 3 years ago
1/n * \sum{|y-a(x)|^2}
理解: y=1的时候
y=0的时候
总体来说, 交叉熵函数为 -ylog(t)-(1-y)log(1-t)
随机梯度下降法、批量梯度下降法相对来说都比较极端,简单对比如下:
方法 | 特点 |
---|---|
批量梯度下降 | a)采用所有数据来梯度下降。 b)批量梯度下降法在样本量很大的时候,训练速度慢。 |
随机梯度下降 | a)随机梯度下降用一个样本来梯度下降。 b)训练速度很快。 c)随机梯度下降法仅仅用一个样本决定梯度方向,导致解有可能不是全局最优。 d)收敛速度来说,随机梯度下降法一次迭代一个样本,导致迭代方向变化很大,不能很快的收敛到局部最优解。 |
由于批量梯度下降和随机梯度下降过于极端, 所以想出了mini-batch梯度下降, 保证梯度下降速度和最优值寻找的平衡.
LDA分类思想简单总结如下:
如果用一句话概括LDA思想,即“投影后类内方差最小,类间方差最大”。
LDA和PCA区别
异同点 | LDA | PCA |
---|---|---|
相同点 | 1. 两者均可以对数据进行降维; 2. 两者在降维时均使用了矩阵特征分解的思想; 3. 两者都假设数据符合高斯分布; |
|
不同点 | 有监督的降维方法; | 无监督的降维方法; |
降维最多降到k-1维; | 降维多少没有限制; | |
可以用于降维,还可以用于分类; | 只用于降维; | |
选择分类性能最好的投影方向; | 选择样本点投影具有最大方差的方向; | |
更明确,更能反映样本间差异; | 目的较为模糊; |
流程如下:
首先将特征矩阵做中心化
-> 然后对特征矩阵求协方差矩阵
-> 用协方差矩阵求特征向量
-> 通过排序好的特征向量降维;
-> k维采用前k个特征向量;
欠拟合是训练结果和测试结果误差都比较差, 导致了高偏差, 低方差; 过拟合是训练结果误差小,测试结果误差大, 导致了低偏差,高方差;
从三个方面来说, 数据, 模型, 正则化
从数据来说, 数据特征数太少, 导致了过拟合, 增加样本特征数; 另一方面, 样本特征冗杂,导致网络学习过好, 可以清洗数据;
从模型上来讲, 如果采用模型深度太复杂, 模型的表达能力强, 所以适当降低模型复杂; 还可以采用预训练模型;
从正则化来讲, 是因为正则化太弱, 导致模型拟合能力过强, 所以可以尝试增加正则化;
增加正则化的技巧有:
从三个方面来说, 数据, 模型, 正则化
数据上减少特征数
模型上, 增加模型复杂度
正则化上, 降低正则化强度
决策树(Decision Tree)是一种分而治之的决策过程。一个困难的预测问题,通过树的分支节点,被划分成两个或多个较为简单的子集,从结构上划分为不同的子问题。将依规则分割数据集的过程不断递归下去(Recursive Partitioning)。随着树的深度不断增加,分支节点的子集越来越小,所需要提的问题数也逐渐简化。当分支节点的深度或者问题的简单程度满足一定的停止规则(Stopping Rule)时, 该分支节点会停止分裂,此为自上而下的停止阈值(Cutoff Threshold)法;有些决策树也使用自下而上的剪枝(Pruning)法。
支持向量机是一种二分类模型,它的目的是寻找一个超平面来对样本进行分割,分割的原则是边界最大化,最终转化为一个凸二次规划问题来求解。由简至繁的模型包括:
当训练样本线性可分时,通过硬边界(hard margin)最大化,学习一个线性可分支持向量机;
当训练样本近似线性可分时,通过软边界(soft margin)最大化,学习一个线性支持向量机;
当训练样本线性不可分时,通过核技巧和软边界最大化,学习一个非线性支持向量机;
引入核函数目的:把原坐标系里线性不可分的数据用核函数Kernel投影到另一个空间,尽量使得数据在新的空间里线性可分: 1)核函数的引入避免了“维数灾难”,大大减小了计算量。而输入空间的维数n对核函数矩阵无影响。因此,核函数方法可以有效处理高维输入。
2)无需知道非线性变换函数Φ的形式和参数。
3)核函数的形式和参数的变化会隐式地改变从输入空间到特征空间的映射,进而对特征空间的性质产生影响,最终改变各种核函数方法的性能。
4)核函数方法可以和不同的算法相结合,形成多种不同的基于核函数技术的方法,且这两部分的设计可以单独进行,并可以为不同的应用选择不同的核函数和算法。
核函数 | 表达式 | 备注 |
---|---|---|
Linear Kernel线性核 | $k(x,y)=x^{t}y+c$ | |
Polynomial Kernel多项式核 | $k(x,y)=(ax^{t}y+c)^{d}$ | $d\geqslant1$为多项式的次数 |
Exponential Kernel指数核 | $k(x,y)=exp(-\frac{\left |x-y \right |}{2\sigma ^{2}})$ | $\sigma>0$ |
Gaussian Kernel高斯核 | $k(x,y)=exp(-\frac{\left |x-y \right |^{2}}{2\sigma ^{2}})$ | $\sigma$为高斯核的带宽,$\sigma>0$, |
Laplacian Kernel拉普拉斯核 | $k(x,y)=exp(-\frac{\left |x-y \right |}{\sigma})$ | $\sigma>0$ |
ANOVA Kernel | $k(x,y)=exp(-\sigma(x^{k}-y^{k})^{2})^{d}$ | |
Sigmoid Kernel | $k(x,y)=tanh(ax^{t}y+c)$ | $tanh$为双曲正切函数,$a>0,c<0$ |
机器学习
[ ] Machine Learning Tutorial
[ ] Machine Learning Yearning
[ ] 机器学习基石 & 技法 [couresa]
[ ] Ensemble Learning Methods
机器学习中的数学(Mathematics for Machine Learning) [url]
[ ] Boost家族总结 [blog]
[ ] 40+ Modern Tutorials Covering All Aspects of Machine Learning [url]
[ ] (NIPS 2018) CatBoost: unbiased boosting with categorical features [paper] [code] [review] [中文笔记]
[x] (NIPS 2017) LightGBM: A Highly Efficient Gradient Boosting Decision Tree [paper] [github] [中文笔记]
[ ] (KDD 2016) XGBoost: A Scalable Tree Boosting System [paper] [review] [中文笔记]
[ ] (2001 GDBT) Greedy Function Approximation: A Gradient Boosting Machine [paper] [中文笔记]
机器学习特征工程技巧 (Tips of Feature Engineering) [github]
高级机器学习笔记 (Super-Machine-Learning-Revision-Notes) [github]
[ ] 【李宏毅机器学习2020(国语)】“Machine Learning (Hung-yi Lee, 2020)” [url]
[ ] 理解Gradient Boost Machine [blog]
[ ] 斯坦福《机器学习》课程 (2018) by Andrew Ng [[url]](https://weibo.com/5722964389/IFhrTx2hJ?type=comment#_rnd1588033359249)
[ ] Advanced Deep Learning from KAIST [github]
Machine Learning Engineer roadmap [github]