liblinear中的信赖域算法
- 求方程 \(H s = -g\), H是hessian矩阵, g 为梯度, 残量 \(r = -g -Hs\)。
s的初值为0,理论上,共轭梯度每步迭代使得\(\|s\|\) 单调增加,共轭梯度的迭代停止条件: \[ \| r \| < tol, \quad or \quad \|s + \delta_s \| > \Delta \]
- 给定参数: $ \eta_0 = 1e-4, \eta_1 = 0.25, \eta_2 = 0.75; \sigma_1 = 0.25, \sigma_2 = 0.5, \sigma_3 = 4;$
- 预期下降 prered: \(-q(s)\), 这里 \(q(s) = \frac12 s'Hs+g.s = \frac12(g.s - r.s)\)
- 实际下降 actred: f(w) - f(w+s)
- $\rho = prered / actred $, \(\alpha = -\frac{g.s} {2 (f(w+s) - f(w) - g.s)}\) 是 \(f(w + \alpha s )\)的二次插值函数\(\phi(\alpha)\)的最小值点。
- 实际代码做修正:\(\alpha = \max(\sigma_1, \alpha)\) if \(f(w+s) -f(w) - g.s>0\) else $\sigma_3 $。这个修正符合论文观点,信赖域预估太准确效果提升不明显,不如直接选大一点,SimpleTR的策略效果很好。
更新信赖域半径:
\[
\Delta_{k+1} =
\begin{cases}
\min( \max(\alpha,\sigma_1)\|s^k\|, \sigma_2\Delta_k ), & \text{if } \rho < \eta_0\\
\max(\sigma_1\Delta_k, \min(\alpha\|s^k\|, \sigma_2\Delta_k) ), & \text{else if } \rho < \eta_1\\
\max( \sigma_1\Delta_k, \min(\alpha \|s^k\|, \sigma_3\Delta_k) ), & \text{else if } \rho < \eta_2\\
\max(\Delta_k , \min(\alpha\|s^k\|, \sigma_3\Delta_k)), & \text{else if not reach_boundary } \\
\sigma_3\Delta_k , & \text{else } \\
\end{cases}
\]
- 更新w: if \(\rho >\eta_0\), w = w + s
参考
- https://github.com/cjlin1/liblinear/blob/master/tron.cpp
- http://www.csie.ntu.edu.tw/~cjlin/papers/newtron/newtron.pdf
liblinear中的信赖域算法的更多相关文章
- js中各种跨域问题实战小结(二)
这里接上篇:js中各种跨域问题实战小结(一) 后面继续学习的过程中,对上面第一篇有稍作休整.下面继续第二部分: -->5.利用iframe和location.hash -->6.windo ...
- js中各种跨域问题实战小结(一)
什么是跨域?为什么要实现跨域呢? 这是因为JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象.也就是说只能访问同一个域中的资源.我觉得这就有必要了解下javascript中的同源策略 ...
- Java中常用的查找算法——顺序查找和二分查找
Java中常用的查找算法——顺序查找和二分查找 神话丿小王子的博客 一.顺序查找: a) 原理:顺序查找就是按顺序从头到尾依次往下查找,找到数据,则提前结束查找,找不到便一直查找下去,直到数据最后一位 ...
- webrtc中的带宽自适应算法
转自:http://www.xuebuyuan.com/1248366.html webrtc中的带宽自适应算法分为两种: 1, 发端带宽控制, 原理是由rtcp中的丢包统计来动态的增加或减少带宽,在 ...
- C语言 结构体中的成员域偏移量
//C语言中结构体中的成员域偏移量 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> # ...
- php中ajax跨域请求---小记
php中ajax跨域请求---小记 前端时间,遇到的一个问题,情况大约是这样: 原来的写法: 前端js文件中: $.ajax({ type:'get', url:'http://wan.xxx.c ...
- 基于Vivado HLS在zedboard中的Sobel滤波算法实现
基于Vivado HLS在zedboard中的Sobel滤波算法实现 平台:zedboard + Webcam 工具:g++4.6 + VIVADO HLS + XILINX EDK + ...
- 【转】larbin中的url去重算法
1.bloom filter算法 传说中,larbin使用bloom filter算法来进行url去重.那我们就先来了解下bloom filter算法好了. [以下转自:http://hi.baidu ...
- 在ASP.NET 5应用程序中的跨域请求功能详解
在ASP.NET 5应用程序中的跨域请求功能详解 浏览器安全阻止了一个网页中向另外一个域提交请求,这个限制叫做同域策咯(same-origin policy),这组织了一个恶意网站从另外一个网站读取敏 ...
随机推荐
- C# web.config常用配置说明(文件上传大小、调试、session)
直接贴代码可好(后续用到的在更新) 黄色字体的为说明 <?xml version="1.0" encoding="utf-8"?><!-- 有 ...
- Linux 正则表达式与文本处理器 三剑客
Linux 正则表达式与文本处理器 三剑客 一.正则表达式 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则. 在linu ...
- POJ 1469:COURSES
COURSES Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 19458 Accepted: 7658 Descript ...
- GPU 、APU、CUDA、TPU、FPGA介绍
购买显卡主要关注:显存.带宽和浮点运算数量 GPU :图形处理器(英语:Graphics Processing Unit,缩写:GPU),又称显示核心.视觉处理器.显示芯片,是一种专门在个人电脑. ...
- 19 01 04 CSS3 圆角 grba(带通明的) tansition动画 transform变换 animation动画
CSS3圆角 设置某一个角的圆角,比如设置左上角的圆角:border-top-left-radius:30px 60px; 同时分别设置四个角: border-radius:30px 60px 120 ...
- JS-语句二
for循环的4个要素: 1.初始值 2.条件判断 3.状态改变 4.循环体 for循环的写法: for(var i=0;i>10;i++) ...
- F5双机冗余配置
转自:https://blog.51cto.com/dynamic/769888本文作者:CTO_LiuJinFeng 1. 配置管理接口-IP 前面文章中没提到如何配置IP,现在开始来配置. 登录- ...
- 吴裕雄--天生自然MySQL学习笔记:MySQL 索引
MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度. 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是 ...
- IDEA常用技巧以及快捷键总结
一.常用快捷键 快捷键 描述 Ctrl+o 复写父类方法 Alt+7 查看类所有方法实现 Ctrl+Alt+H 方法调用链
- CommandNotFoundError: No command 'conda conda'.
出现情形 当前conda版本:4.6.11 当使用git bash,无论是在vscode中,还是在桌面上打开bash,都会出现这个错误.但是在cmd中,就可以识别conda命令. 解决 该错误只在4. ...