Vago Mundo

尘世闲游,听凭风引

    基于LaTeX的伪代码书写

    笔者最开始是用markdown的代码块写算法伪代码: function CalculatePositiveSum(arr[1...n]): /* 计算数组非负数元素的和 */ s <- 0 foreach a in arr: if a >= 0: s <- s + a return s 但在后来,...

    python3-argparser的使用

    编写命令行接口

    引言 在LIBSVM和LIBLINEAR等软件包中,在基本的算法代码之上是软件包的接口,用户可以通过命令行来指定训练的超参数设置,比如在LIBSVM的训练代码中: void exit_with_help() { printf( "Usage: svm-train [options] training_set_file [model_file]\n" ...

    数字信号处理复习

    概念,性质和基本信号 离散信号周期性 信号分类 信号的运算 典型信号 离散信号的差分与求和 奇异信号 冲激信号 信号的微积分 系统的描述和卷积的引入 系统的分类与描述 描述 分类 ...

    Trust Region Newton Method for Large-Scale Logistic Regression

    大规模逻辑回归的置信域牛顿法

    原文地址: https://www.jmlr.org/papers/volume9/lin08b/lin08b.pdf 该文提出了训练大型逻辑回归问题的新算法:置信域牛顿法(Trust Region Newton Method),并通过实验证明了该算法效率比常用的拟牛顿法更高,同时也将该算法应用到L2-SVM的求解上。 问题引入 先来看带L2正则化的逻辑回归: \[\min_{\pm...

    共轭梯度法

    理论证明

    引入 对于二次优化问题: \[\min_{\pmb x}\quad f(\pmb x)=\frac12\pmb x^TA\pmb x-\pmb b^T\pmb x+c\] 其中$A$是对称正定矩阵(SPD),我们很容易得到上述问题的解析解: \[\begin{aligned} \dfrac{\partial f}{\partial\pmb x}&=A\pmb x-\pmb b...

    置信域方法简介

    置信域方法(Trust-region Methods)又称为信赖域方法,它是一种最优化方法,能够保证最优化方法总体收敛。 它解决的是无约束的凸优化问题: \[\min_{x\in\mathbb{R}^n}\quad f(x)\tag{1}\] 其中$f$是定义在$\mathbb{R}^n$上的二阶可微函数。对于当前所在的位置$x_k$,给定一个距离$\Delta_k$,我们想在以$x_...

    指数乘三角函数型积分的3种解法

    随笔

    问题引入 求积分 \[\int e^x\cos x\mathrm dx\] 该问题其实在大一的高等数学课上就已经接触过,但囿于笔者记性不好,这里重新记录一下解法。 事实上,我们对问题进行扩展,也就是求积分 \[\int e^{ax}\cos(bx)\mathrm dx\] 这里$\cos$函数可以替换成$\sin x$,做法类似。 分布积分法 利用两次分部积分,求出上式: ...

    矩阵到对角张量的转换

    摆脱低效for循环

    背景 对于Sigmoid函数 \[f(x)=\frac{1}{1+e^{-x}}\] 有一个很好的性质 \[\dfrac{\partial f}{\partial x}=f\cdot(1-f)\] 对于多元广播的Sigmoid函数 \[\pmb f=\begin{bmatrix} f_1&f_2&\cdots&f_n \end{bmatrix}\] 对其...

    A Dual Coordinate Descent Method for Large-scale Linear SVM

    DCDM:求解SVM问题的一种算法

    原文:https://www.csie.ntu.edu.tw/~cjlin/papers/cddual.pdf. 参考:林智仁教授的talk,https://www.csie.ntu.edu.tw/~cjlin/talks/msri.pdf. 引入 对于$C$-SVC模型,其原问题: \[\begin{aligned} \min_{\pmb w,b\pmb\xi}&\quad...

    LIBLINEAR源码解读(1)

    liblinear.h

    在LIBLINEAR软件包中,头文件liblinear.h包含了多种重要的结构体和接口函数,可以供用户调用与使用。本文借助README的帮助,对liblinear.h中的内容进行简单的列举与分析。 结构体 liblinear中定义了4个结构体:feature_node、problem、parameter和model,分别表示数据、数据集、模型参数和模型。 先来看feature_node...