Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

WeltXing/liblinear-sc-reading

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LIBLINEAR理论解读

LIBLINEAR是用于大型线性分类与回归的流行软件包,在支持多种算法的同时也支持多平台多功能的机器学习。相比于LIBSVM,LIBLINEAR丢弃了SVM中的核方法,只支持线性分类,但大大增加了模型对大数据的适应能力。笔者在阅读完LIBSVM源码后(https://github.com/Kaslanarian/libsvm-sc-reading)便着手于LIBLINEAR源码的阅读,随后发现LIBLINEAR涉及到的优化知识要比LIBSVM多(LIBSVM只有拉格朗日对偶法和SMO算法)。因此将工作重心先放在了理论基础上,然后再研究代码(主要是C++)。

理论部分

我们在theory.pdf中记录LIBLINEAR中设计到的知识基础和优化方法:

1

1

LIBLINEAR总共可以求解12种问题,除了Crammer-Singer的多分类模型和One-class SVM对偶问题之外,剩余的10种优化问题可总结为“带L1/L2正则化的某种损失函数的分类/回归模型的原/对偶问题”,具体如表1所示

基础模型 L1正则化的原问题 L2正则化的原问题 L2正则化的对偶问题
L1-SVC
L2-SVC
LR
L1-SVR
L2-SVR
表1: LIBLINEAR支持的问题类型

基础模型前三种为分类模型,其中第三个模型为对率回归(逻辑回归, Logistic Regression, LR),后两个模型为回归模型。模型中的"L1"和"L2"表示损失函数类型而不是正则化,具体可见theory.pdf

以下为目前笔者的文献阅读和研究进度,表格中为对应问题的优化方法(==已完成==):

基础模型 L1正则化的原问题 L2正则化的原问题 L2正则化的对偶问题
L1-SVC CD
L2-SVC CD+LS CD+LS CD
LR CD+LS TRON+CG CD
L1-SVR CD
L2-SVR TRON+CG CD
  • CD: Coordinate descent, 即坐标下降算法;
  • TRON: Trust region newton method, 带置信域的牛顿法;
  • CG: Conjugate gradient, 共轭梯度法;
  • LS: Line search, 线搜索算法.

下面是剩余两种算法的研究进度(==已完成==):

  • Crammer-Singer多分类:坐标下降法;
  • One-class SVM对偶问题:外贪心内循环的二层坐标下降框架.

获取

通过

git clone https://github.com/Kaslanarian/liblinear-sc-reading

获取文件。

文献清单

下面列出笔者阅读过的主要文献,LIBLINEAR中的各种优化算法全部出于下面的论文。如果觉得本文有表述不清的地方可以查阅原文。

  1. LIBLINEAR: A library for large linear classification:LIBLINEAR的综述论文;
  2. A dual coordinate descent method for large-scale linear SVM:坐标下降法求解SVM分类对偶问题;
  3. Trust region Newton method for large-scale logistic regression:置信域牛顿法求解对率回归原问题;
  4. Large-scale linear support vector regression:求解支持向量回归原问题和对偶问题的算法;
  5. Coordinate descent method for large-scale l2-loss linear support vector machines:坐标下降求解L2-loss SVM原问题;
  6. Dual coordinate descent methods for logistic regression and maximum entropy models:坐标下降法求解对率回归(逻辑回归)的对偶问题;
  7. A comparison of optimization methods and software for large-scale l1-regularized linear classification:L1正则化下的对率回归与L2-loss SVM的求解(这篇文章也是对L1正则的优化算法综述);
  8. Dual coordinate-descent methods for linear one-class SVM and SVDD:二层坐标下降法框架求解单类SVM的对偶问题(同时也提出了支持向量数据描述(SVDD)的训练方法);
  9. A sequential dual method for large scale multi-class li:坐标下降法求解多分类SVM.

你可以在https://welts.xyz中找到笔者对这些文献的解读。我们这里省略了一些辅助文献,详情可查看pdf中的参考文献。

About

LIBLINEAR理论与源码解读(已完结)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
Morty Proxy This is a proxified and sanitized view of the page, visit original site.