Posts

Showing posts from February, 2020

Random Forests SVM

Image
Bagged classier using decision trees: 1) Each split only considers a random group of features 2) Tree is grown to maximum size without pruning 3) Final predictions obtained by aggregating over the B trees Out of Bags(OOB) samples: From each observation, construct its random forest predictor by averaging only those trees corresponding to bootstrap samples in which observation does not appear OOB error estimates can be fit in one sequence Once OOB stabilizes, training can be stopped OOB can also be used for variable importance Ensembles and Multi-Learners Goal: use multiple learners to solve parts of the same problem  Ensembles: competing learners with multiple looks at the same problem SVM: Support Vector Machine(SVM) Find large margin separator to improve generalization Use optimization to find solution with few errors Use kernel trick to make large feature spaces computationally efficient Chose the linear separator ...

Logistic Regression 、 Linear Discriminant Analysis(LDA) 、 Quadratic Discriminant Analysis(QDA)

(1 ) 当分类边界是线性时, LR 和 LDA 会更好; 当分类边界是非线性时, QAD 会更好; 当分类边界更复杂时, KNN 会更好。 (2) LR 和 LDA 都将产生线性分类边界,不同的是LR的系数估计是通过极大似然法, 而LDA系数是运用正态分布的均值和方差的估计值计算的, LR 适用于二分类问题,对于多分类问题,LDA 更为常见。 LDA 和 QDA 都是建立在自变量服从正态分布的假设上,所以当自变量的分布确实是几乎服从正态分布时,这两种方法表现的较好; LDA 和QDA 的区别在于LDA 假设所有类别的自变量都服从方差相同的正态分布,而QDA假设对于因变量属于不同类别的自变量服从方差不同的正态分布,选择LDA和QDA的关键在于bias-variance的权衡。

BatchSize、 学习率 、 Data augmentation、 Internal Covariate Shift

Batchsize 增大,达到同样精度所需要的epoch数量变多,因为随着样本数量的增大,标准差并不是线性减小的。 Batchsize 大更容易陷入局部最优,在相同的计算量下,因为标准差的问题收敛速度更慢。 Batchsize增大到某个时候就会达到时间上的最优。 Data Augmentation:   Color Jittering: 图像亮度,饱和度,对比度    PCA Jittering: 按照RGB 三个颜色通道计算均值和标准差,再在整个训练集上计算协方差矩阵,进行特征分解得到特征向量和特征值,用来做PCA Jittering Random Scale Random Crop Horizontal/Vertical Flip : 水平、垂直翻转 Shift: 平移变换 Rotation/Reflection: 旋转、仿射变换 Noise : 高斯噪声、模糊处理 Label Shuffle Internal Covariate Shift:  深度神经网络涉及到很多层的叠加,每一层参数更新都会导致上层输入数据分布发生变化,通过层层叠加,高层的输入分布会变化非常剧烈。 Covarite shift 就是值source domain 和target dmain 的条件概率是一致的,但边缘概率不同。 ICS 会导致的问题 :每个神经元的输入数据不再是独立同分布的。 1) 上层参数需要不断适应新的输入数据分布,降低学习速度 2) 下层输入的变化可能趋向于变大或者变小,导致上层落入饱和区,使得学习过早停止 3) 每层的更新都会影响到其它层,因此每层的参数更新策略需要尽可能的谨慎。

常见的激活函数

Image
1. sigmoid  函数定义为: Sigmoid: exists between 0 to 1 , it is especially used for models we have to predict the probability as an output. The function is differentiable and monotonic , but the function's derivative is not, which can cause a neural network to get stuck at the training time. Softmax function is a more generalized logistic activation function which is used for mutliclass classification. 2、tanh函数 (tangent activation function) The range of tanh function is from -1 to 1. The advantage is that the negative inputs will be mapped strongly negative and the zero inputs will be mapped near zero in the tanh graph. The function is also differentiable and monotonic while its derivative is not monotonic . The tanh  function is mainly used in classification between two classes . Both tanh and logistic sigmoid activation functions are used in feed-forward nets. 3. ReLU(Rectified Linear Unit) activation function f(x) = max(0, x) ...

Pooling 的作用及优缺点

Pooling 层作用:   1.invariance(translation, rotation, scale) 2. 保留主要特征的同事减少参数和计算量(降维),提高模型的泛化能力 在神经网络中,池化函数一般在卷积函数下一层 池化操作是利用一个矩阵窗口在张量上进行扫描,将每个矩阵窗口中的值通过取最大值或者平均值来减少元素个数。 avg_pool, max_pool, max_pool_with_argmax 尺度不变性增大了感受野, 让卷积看到更多的信息,但是增大感受野的前提是降低分辨率,丢失了重要信息,这对segmentation要求的精确度location有一定的影响。 但为了增大感受野一开始就用跟图像一样大的卷积核,这样感受野不就变大了吗? 错,卷积层越深模型的表征能力越强,但此时降维会导致重要信息丢失。 Adopt from  https://blog.csdn.net/zxyhhjs2017/article/details/78607469

Information Retrival--BM25

BM25: The next generation of TF*IDF TF: Term Frequency, eg. how often does "apple" occur in the article? IDF: Inverse Document Frequency, eg. the document frequency measures how many docs a term appear in. IDF (1/df) measures how special the term is. BM25 stands for " Best Match25 ". BM25 improves upon TF*IDF. BM25 has its roots in probability information retrieval . Probability Information Retrieval: It casts relevance as a probability problem. A relevance score ought to reflect the probability a user will consider the result relevant. BM25's IDF has the potential for giving negative scores for terms with high document frequency. Bayes Decision Rule: A document D is relevant if P(R|D) > P(NR|D) P(R|D) = P(D|R)P(R)/P(D) P(NR|D) = P(D|NR)P(NR)/P(D) -->P(D|R)/P(D|NR)>P(NR)/P(R) Estimating P(D|R): Assume independence P(D|R)=P(d0|R)P(d1|R)...P(dt|R) Binary independence model : Document represented by a vector of binary features indica...

过拟合与欠拟合

欠拟合产生的原因 主要有两个: 1. 模型过于简单: 模型形式太简单,无法捕捉到数据特征,无法很好的拟合数据。 2. 缺乏强预测能力的特征: 可以通过组合、泛化等各种手段增加特征。 过拟合 产生的原因 主要有三个: 1. 噪音干扰: 模型受到噪音的干扰,导致拟合的函数形状与实际总体的数据分布相差甚远,清洗样本或异常值可以帮助解决这个问题。 2. 训练数据过少 : 训练的数据无法代表整体的数据分布情况,需要增加数据,包括人工合成假样本。 3. 模型复杂度过高 : 模型对于训练数据学习过度,记住了过于细节的特征。 模型容量: 模型容量是指模型拟合各种函数的能力 容量低的模型容易发生欠拟合, 模型拟合能力太弱 容量高的模型容易发生过拟合, 模型拟合能力太强 Bias-Variance 偏差-方差 Bias: the difference between your model's expected predictions and the true values 衡量了模型期望输出与真实值之间的差别,刻画了模型本身的拟合能力 Variance: refers to your algorithm's sensitivity to specific sets of training data. High variance algorithms will produce drastically different models depending on the training set. 衡量了训练集的变动所导致的学习性能的变化,刻画了模型输出结果由于训练集的不同造成的波动。 High bias low variance: 算法在不同训练集上训练得到的模型基本一致,但是预测值与真实值差距较大; Low bias high variance: 算法得到的模型预测值与真实值差距小,但在不同训练集上面得到的模型输出波动较大。 Total error = bias*bias + variance + irreducible error(noise) High bias--> underfitting: 模型过于简单,以至于无法很好的学习训练集,从而使得训练误差过高 。 High variance-->ove...

Machine Learning

Image
Linear regression: Logistic regression:  SVM:  Convex Optimization: achieves global minimum, no local traps Convex Sets: x1, x2 in C, 0<= t <=1 ==> t*x1 + (1-t)*x2 in C Gradient Descent: Use for unconstrained optimization min(x) f(x) Main idea: take a step proportional to the negative of the gradient Extremely popular; simple and easy to implement Handful of approaches to selecting step size: 1) fixed step size 2) exact search 3) backtracking line search Limitations of Gradient Descent: Step size search may be expensive; Convergence is slow for ill-conditioned problems; Convergence speed depends on initial starting position; Does not work for non differentiable or constrained problems. Linear Regression Formulation: Given an inout vector X' = (X1, X2, ..., Xp), we want to predict the quantitative response y. Minimize sum of square errors: (Objective function) Least square solutions:) ...

Loss Function for Object Detection Regression

Image
In object detection, loss = classification loss + bounding box regression loss Bounding box regression loss development: Smooth L1 loss-->IoU loss --> GIoU Loss --> DIoU Loss -->CIoU Loss 1. Smooth L1 loss (proposed in Fast RCNN): x: difference of predicted bounding box and the ground truth; L1 = |x|dL2(x)/x = 2x L2 = x^2 smoothL1(x) = 0.5x^2 if |x|<1                       = |x|-0.5  otherwise Derivatives of the above three loss function: dL1(x)/x = 1 if x >= 0                = -1 otherwise dL2(x)/x = 2x dsmoothL1(x) = x if |x| < 1                         = +-1  otherwise From above, the derivative of L1 los s is constant, when x becomes small in late training and learning rate remains same, the loss function will fluctuate around certain value and...

Bilinear Pooling

Image
Paper: Revisiting Bilinear Pooling: A coding Perspective 常见的特征融合 :BoW(Bag of Words), VLAD(Vector of Locally Aggregated Descriptor), FV(Fisher Vector)。 最近的研究表示:Bilinear Pooling (双线性池化)是一个更有效的特征融合方法。 双线性池化是通过建模特征的高阶统计信息来捕获特征之间的关系,进而生成具有表达力的全局表示。 问题: 1.双线性池化生成的表示含有大量的 信息冗余(redundancy) ; 2.双线性池化具有 突发性(burstiness) 的问题,降低了表示的判别力。 方法: 1.双线性池化的编码----池化框架 双线性池化方法的形式是: 其中是双线性池化的矩阵表示,将Z向量化得到z作为全局表示。在本文中,作者证明了双线性池化是一个基于相似性的编码--池化框架。全局表示z可以写成: 其中, B 是字典, 双线性池化计算双线性特征 fi 和字典 bl 的內积相似度。由相似度构成的编码通过一个求和池化(SumPooling)聚合成全局表示 z 。 在上述的编码--池化框架下,有三个的性质影响了双线性池化的性能: (1) 双线性特征 是秩为1的矩阵,含有大量的信息冗余; (2)字典B由输入的双线性特征决定 。 因此对不同的输入进行编码所使用的字典不同; (3)将双线性池化用于 多模态任务 时,字典元 共线,这影响了表示 z 的判别力。 2.分解的双线性编码 从编码的角度,作者提出了分解的双线性编码(FBC)融合特征。作者将 基于相似性的编码 替换成为 稀疏编码 (Sparse Coding),激活尽可能少的字典元并保持尽可能多的信息。与原始的双线性池化相比 ,分解的双线性编码学习一个全局字典进行编码,提高了 z 的判别力 。 对高维的双线性特征直接编码很容易引入大量的参数,为了避免这个问题,作者将字典元进行分解,其中每个字典元被分解成两个矩阵的乘积,矩阵分解的秩远小于双线性特征的维度。 分解的双线性编码与原始的双线性池化相比, 减少了大量的内存消耗。 例如在视觉问答任务中,文本特征...