Vago Mundo

尘世闲游,听凭风引

    LIBLINEAR:A Library for Large Linear Classification

    文献解读

    原文:https://www.jmlr.org/papers/volume9/fan08a/fan08a.pdf 摘要 LIBLINEAR是一个用于大规模线性分类的开源库,它支持逻辑回归和线性支持向量机。文章的作者团队为用户和开发人员提供易于使用的命令行工具和库调用。初学者和高级用户都可以阅读其全面的文档。实验表明,LIBLINEAR在大稀疏数据集上是非常有效的。 引言 解决大规模分...

    初识LIBLINEAR

    命令行模式和问题形式化

    源码地址:https://github.com/cjlin1/liblinear. 本文着重介绍LIBLINEAR软件包的使用方法,同时有一些C++代码的少许解读,内容基于软件包中的README文件。 本文的所有命令行相关内容都是基于Linux平台上运行。 Quick start 通过命令 git clone https://github.com/cjlin1/liblinear ...

    集中不等式(2)

    Concentration

    矩生成函数 对于随机变量$X$,我们设 \[M_X(t)=\mathbb{E}(e^{tX})\] 称$M_X(t)$为$X$的矩生成函数。矩生成函数有这样的性质: \[\mathbb{E}[X^n]=M_X^{(n)}(0)\] 此外,$\forall x,y,\exists\delta>0,t\in(-\delta,\delta)$,我们有 \[M_X(t)=M_Y(t...

    集中不等式(1)

    Concentration

    笔者在一年前曾学习过相关内容,但当时没有机器学习的相关基础,也没想到自己会在以后的工作中依赖这些知识。幸运的是导师能让我旁听并复习这部分内容,笔者因此也认真对待,本文记录的就是课上内容。 机器学习与集中不等式 对于数据特征与标记,机器学习的一个基本假设就是独立同分布假设:数据特征$\mathcal{X}$与标记$\mathcal{Y}$服从分布$\mathcal{D}$,而已知数据集$S...

    EM算法的推导

    引言 EM(Expectation Maximization)算法是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计。本文主要讨论该算法以及相关知识。 从最大似然说起 我们先从最简单的极大似然估计开始说起。以掷硬币为例,对于一个质量分布未知的硬币,投掷$n$次,其正面朝上的次数$k$满足二项分布:$k\sim B(n,p)$,其中$p$为硬币正面朝上的概率。...

    将随机傅里叶特征应用到SVM

    实现与分析

    引言 我们在前面介绍了用随机傅里叶特征的方法求核函数的过程,而笔者在Kaslanarian/PySVM: 支持向量机模型(分类、回归和分布估计)的Python(numpy)实现 (github.com)实现了多个基于SMO算法支持向量机模型,其中的高斯核函数是基于直接计算实现的。因此,我打算将随机傅里叶特征(RFF)模块化,嵌入到SVM中,并进行性能与速度的比较。 RFF模块的设计 R...

    随机傅里叶特征

    在核函数上的应用

    引言 我们在之前提到利用numpy的广播算法来实现核函数的快速计算。而对于高斯核 \[k(\pmb x,\pmb y)=\exp(-\gamma\Vert\pmb x-\pmb y\Vert_2^2)\] 我们会将中间二范数的平方拆开 \[\Vert\pmb{x}-\pmb{y}\Vert_2^2=\pmb{x}^T\pmb{x}+\pmb{y}^T\pmb{y}-2\pmb x^T...

    核矩阵的高效计算

    Numpy实现

    内积矩阵(Gram矩阵)的快速求解 在线性SVM中,求解内积矩阵(也被称作Gram矩阵) \[Q=\begin{bmatrix} \pmb x_i^T\pmb x_j \end{bmatrix}\] 是一个必经的步骤,然后才可以进行后续的优化等步骤。当笔者在手动实现SVM时,就在求解上述$Q$矩阵时遇到困难。众所周知,Python在功能性强的同时舍弃了运行速度;在求得$Q$矩阵时,最基...

    ctypes库的使用

    C+Python混合编程

    引言 Python简单明了,易于理解,但这样的优点带来的是速度上的缓慢。在这样的背景下,我们想在Python程序中插入C,已进行一些耗时的计算任务,以实现速度的提升。本文主要介绍ctypes库的使用方法,为后面的工作提供参考。 背景知识 ctypes 是 Python 的外部函数库。它提供了与 C 兼容的数据类型,并允许调用DLL或共享库中的函数。可使用该模块以纯 Python 形式对...

    鲁棒线性回归

    Huber回归和RANSAC模型的探究与实现

    引言 如果想对下面的数据集 进行回归,线性回归是一个很好的选择。当然,这样的数据往往只存在于理论中,真实世界的数据往往它复杂得多,比如这样的数据集: 数据集中出现了离群点(outliers),如果我们仍使用线性模型,预测结果则会出现偏差: 因此,我们需要一种回归模型,它能够识别出离群点并忽视它们进行回归。这种回归模型就是鲁棒回归(Robust regression。在统计...