157 lines
52 KiB
HTML
157 lines
52 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
|
<meta name="generator" content="Doxygen 1.8.11"/>
|
|
<title>mlpack: src/mlpack/core/optimizers/lbfgs/lbfgs.hpp Source File</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<script type="text/javascript">
|
|
$(document).ready(function() { init_search(); });
|
|
</script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
<link href="extra-stylesheet.css" rel="stylesheet" type="text/css"/>
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr style="height: 56px;">
|
|
<td id="projectalign" style="padding-left: 0.5em;">
|
|
<div id="projectname">mlpack
|
|
 <span id="projectnumber">master</span>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.8.11 -->
|
|
<script type="text/javascript">
|
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
|
</script>
|
|
<div id="navrow1" class="tabs">
|
|
<ul class="tablist">
|
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
|
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
|
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
|
<li>
|
|
<div id="MSearchBox" class="MSearchBoxInactive">
|
|
<span class="left">
|
|
<img id="MSearchSelect" src="search/mag_sel.png"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
alt=""/>
|
|
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
|
onfocus="searchBox.OnSearchFieldFocus(true)"
|
|
onblur="searchBox.OnSearchFieldFocus(false)"
|
|
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
|
</span><span class="right">
|
|
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
|
</span>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div id="navrow2" class="tabs2">
|
|
<ul class="tablist">
|
|
<li><a href="files.html"><span>File List</span></a></li>
|
|
<li><a href="globals.html"><span>File Members</span></a></li>
|
|
</ul>
|
|
</div>
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<iframe src="javascript:void(0)" frameborder="0"
|
|
name="MSearchResults" id="MSearchResults">
|
|
</iframe>
|
|
</div>
|
|
|
|
<div id="nav-path" class="navpath">
|
|
<ul>
|
|
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_44a936ef30fc126706c6284a2fc0c990.html">mlpack</a></li><li class="navelem"><a class="el" href="dir_f7ac9cdfd28b2e882eb44d163e3b98b4.html">core</a></li><li class="navelem"><a class="el" href="dir_c92267e6eea9957c44bb2efde721ca22.html">optimizers</a></li><li class="navelem"><a class="el" href="dir_8a431898e456b87398169d85cf9274bc.html">lbfgs</a></li> </ul>
|
|
</div>
|
|
</div><!-- top -->
|
|
<div class="header">
|
|
<div class="headertitle">
|
|
<div class="title">lbfgs.hpp</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<a href="lbfgs_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef MLPACK_CORE_OPTIMIZERS_LBFGS_LBFGS_HPP</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define MLPACK_CORE_OPTIMIZERS_LBFGS_LBFGS_HPP</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <<a class="code" href="prereqs_8hpp.html">mlpack/prereqs.hpp</a>></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">namespace </span><a class="code" href="namespacemlpack.html">mlpack</a> {</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">namespace </span>optimization {</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">template</span><<span class="keyword">typename</span> FunctionType></div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html"> 34</a></span> <span class="keyword">class </span><a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html">L_BFGS</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#ada07bd1baaa3daa325bc5efdc5444719">L_BFGS</a>(FunctionType& <span class="keyword">function</span>,</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#af8f4986beac9dc6152cb3493a8117983">numBasis</a> = 10, <span class="comment">/* same default as scipy */</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#aadae4ce105073ad958afdf2f463ae627">maxIterations</a> = 10000, <span class="comment">/* many but not infinite */</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">const</span> <span class="keywordtype">double</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a911a687f907869fd707eda7dfb353d5a">armijoConstant</a> = 1e-4,</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">const</span> <span class="keywordtype">double</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#aa5e89990077485966cb04e687298df1c">wolfe</a> = 0.9,</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keyword">const</span> <span class="keywordtype">double</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a70d0c0a53c4331dc1eb919824baa5643">minGradientNorm</a> = 1e-6,</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keyword">const</span> <span class="keywordtype">double</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#aa87a32c1444fd3dbffdb6d8d88f194fd">factr</a> = 1e-15,</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a70903febd714374b31cdb1a4fd5568fc">maxLineSearchTrials</a> = 50,</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">const</span> <span class="keywordtype">double</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#aa1ea6f4fe6d1842b14244c2621a5ca7f">minStep</a> = 1e-20,</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keyword">const</span> <span class="keywordtype">double</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#acbe7b76e61c6e5fbf2aedf7cd0c2f0ac">maxStep</a> = 1e20);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keyword">const</span> std::pair<arma::mat, double>& <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a29dcbb9163d442a7746e61e9b594eb0d">MinPointIterate</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordtype">double</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a7db644a7dbaae2e8961e0bfca9a5ced1">Optimize</a>(arma::mat& iterate);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordtype">double</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a7db644a7dbaae2e8961e0bfca9a5ced1">Optimize</a>(arma::mat& iterate, <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#aadae4ce105073ad958afdf2f463ae627">maxIterations</a>);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#a01e4142d1905967a2dfa46fc2c21be14"> 104</a></span>  <span class="keyword">const</span> FunctionType& <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a01e4142d1905967a2dfa46fc2c21be14">Function</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">function</span>; }</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#a42bf0ea3949d58ad7ee167d09a9d8b80"> 106</a></span>  FunctionType& <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a42bf0ea3949d58ad7ee167d09a9d8b80">Function</a>() { <span class="keywordflow">return</span> <span class="keyword">function</span>; }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#a4546301d10255497e0193789a8d22a4b"> 109</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a4546301d10255497e0193789a8d22a4b">NumBasis</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#af8f4986beac9dc6152cb3493a8117983">numBasis</a>; }</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#aef0d1fc8479a13f7d0187d6dbf087ce9"> 111</a></span>  <span class="keywordtype">size_t</span>& <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#aef0d1fc8479a13f7d0187d6dbf087ce9">NumBasis</a>() { <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#af8f4986beac9dc6152cb3493a8117983">numBasis</a>; }</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#ae54a21b7df3af91ca57f2593e227d299"> 114</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#ae54a21b7df3af91ca57f2593e227d299">MaxIterations</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#aadae4ce105073ad958afdf2f463ae627">maxIterations</a>; }</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#adade97ab73aa61b07565a56e664fb69c"> 116</a></span>  <span class="keywordtype">size_t</span>& <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#adade97ab73aa61b07565a56e664fb69c">MaxIterations</a>() { <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#aadae4ce105073ad958afdf2f463ae627">maxIterations</a>; }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#a4bd75dcc4f33cca7e270508bca2f625d"> 119</a></span>  <span class="keywordtype">double</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a4bd75dcc4f33cca7e270508bca2f625d">ArmijoConstant</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a911a687f907869fd707eda7dfb353d5a">armijoConstant</a>; }</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#af86f1143b5fd16c852c2f1a1e7630d2d"> 121</a></span>  <span class="keywordtype">double</span>& <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#af86f1143b5fd16c852c2f1a1e7630d2d">ArmijoConstant</a>() { <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a911a687f907869fd707eda7dfb353d5a">armijoConstant</a>; }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#aa0d9aefff7d1454356435ad300bc8f54"> 124</a></span>  <span class="keywordtype">double</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#aa0d9aefff7d1454356435ad300bc8f54">Wolfe</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#aa5e89990077485966cb04e687298df1c">wolfe</a>; }</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#a1092156374efcc590408ff4d9ef04d01"> 126</a></span>  <span class="keywordtype">double</span>& <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a1092156374efcc590408ff4d9ef04d01">Wolfe</a>() { <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#aa5e89990077485966cb04e687298df1c">wolfe</a>; }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#adf7139850ce9e93a58f3576a5de0e6f2"> 129</a></span>  <span class="keywordtype">double</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#adf7139850ce9e93a58f3576a5de0e6f2">MinGradientNorm</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a70d0c0a53c4331dc1eb919824baa5643">minGradientNorm</a>; }</div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#ac19562b8330e99121f80f1adbced00ea"> 131</a></span>  <span class="keywordtype">double</span>& <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#ac19562b8330e99121f80f1adbced00ea">MinGradientNorm</a>() { <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a70d0c0a53c4331dc1eb919824baa5643">minGradientNorm</a>; }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#a394b0e64c6731991bebaa13ea0c8c39c"> 134</a></span>  <span class="keywordtype">double</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a394b0e64c6731991bebaa13ea0c8c39c">Factr</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#aa87a32c1444fd3dbffdb6d8d88f194fd">factr</a>; }</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#a5392202281c74a8c6e49b5fbfd2f2944"> 136</a></span>  <span class="keywordtype">double</span>& <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a5392202281c74a8c6e49b5fbfd2f2944">Factr</a>() { <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#aa87a32c1444fd3dbffdb6d8d88f194fd">factr</a>; }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#a1359171e3ead467dfec6f0592501bc3d"> 139</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a1359171e3ead467dfec6f0592501bc3d">MaxLineSearchTrials</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a70903febd714374b31cdb1a4fd5568fc">maxLineSearchTrials</a>; }</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#aaff04412528cf012680c144410950968"> 141</a></span>  <span class="keywordtype">size_t</span>& <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#aaff04412528cf012680c144410950968">MaxLineSearchTrials</a>() { <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a70903febd714374b31cdb1a4fd5568fc">maxLineSearchTrials</a>; }</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#a3dbc87a28f0567fc383512e4d37b0836"> 144</a></span>  <span class="keywordtype">double</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a3dbc87a28f0567fc383512e4d37b0836">MinStep</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#aa1ea6f4fe6d1842b14244c2621a5ca7f">minStep</a>; }</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#a7d96460bbdca77db674a1a92147cabf7"> 146</a></span>  <span class="keywordtype">double</span>& <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a7d96460bbdca77db674a1a92147cabf7">MinStep</a>() { <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#aa1ea6f4fe6d1842b14244c2621a5ca7f">minStep</a>; }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#a8756ee7f153b85aa29f32fdab0404915"> 149</a></span>  <span class="keywordtype">double</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a8756ee7f153b85aa29f32fdab0404915">MaxStep</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#acbe7b76e61c6e5fbf2aedf7cd0c2f0ac">maxStep</a>; }</div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#af6671c6452b24dba0a95bd3733a54754"> 151</a></span>  <span class="keywordtype">double</span>& <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#af6671c6452b24dba0a95bd3733a54754">MaxStep</a>() { <span class="keywordflow">return</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#acbe7b76e61c6e5fbf2aedf7cd0c2f0ac">maxStep</a>; }</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#a08c4b9f04e368172c7f2268ba9f751b2"> 155</a></span>  FunctionType& <span class="keyword">function</span>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#a0de8f00eef5c927d871f2477f8483685"> 158</a></span>  arma::mat <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a0de8f00eef5c927d871f2477f8483685">newIterateTmp</a>;</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#a74984bff9783d25cec41d5105713f145"> 160</a></span>  arma::cube <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a74984bff9783d25cec41d5105713f145">s</a>;</div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#a50b11d2a87c84f6a999a34a29eacf0ca"> 162</a></span>  arma::cube <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a50b11d2a87c84f6a999a34a29eacf0ca">y</a>;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#af8f4986beac9dc6152cb3493a8117983"> 165</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#af8f4986beac9dc6152cb3493a8117983">numBasis</a>;</div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#aadae4ce105073ad958afdf2f463ae627"> 167</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#aadae4ce105073ad958afdf2f463ae627">maxIterations</a>;</div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#a911a687f907869fd707eda7dfb353d5a"> 169</a></span>  <span class="keywordtype">double</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a911a687f907869fd707eda7dfb353d5a">armijoConstant</a>;</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#aa5e89990077485966cb04e687298df1c"> 171</a></span>  <span class="keywordtype">double</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#aa5e89990077485966cb04e687298df1c">wolfe</a>;</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#a70d0c0a53c4331dc1eb919824baa5643"> 173</a></span>  <span class="keywordtype">double</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a70d0c0a53c4331dc1eb919824baa5643">minGradientNorm</a>;</div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#aa87a32c1444fd3dbffdb6d8d88f194fd"> 175</a></span>  <span class="keywordtype">double</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#aa87a32c1444fd3dbffdb6d8d88f194fd">factr</a>;</div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#a70903febd714374b31cdb1a4fd5568fc"> 177</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a70903febd714374b31cdb1a4fd5568fc">maxLineSearchTrials</a>;</div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#aa1ea6f4fe6d1842b14244c2621a5ca7f"> 179</a></span>  <span class="keywordtype">double</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#aa1ea6f4fe6d1842b14244c2621a5ca7f">minStep</a>;</div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#acbe7b76e61c6e5fbf2aedf7cd0c2f0ac"> 181</a></span>  <span class="keywordtype">double</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#acbe7b76e61c6e5fbf2aedf7cd0c2f0ac">maxStep</a>;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="classmlpack_1_1optimization_1_1L__BFGS.html#a3838e4e4811c1c607f5806d295a52aa4"> 184</a></span>  std::pair<arma::mat, double> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a3838e4e4811c1c607f5806d295a52aa4">minPointIterate</a>;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keywordtype">double</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a338c699a69cc169675b586485559376b">Evaluate</a>(<span class="keyword">const</span> arma::mat& iterate);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordtype">double</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#aeb28615573ccf46d9b52a20dbb9391fb">ChooseScalingFactor</a>(<span class="keyword">const</span> <span class="keywordtype">size_t</span> iterationNum,</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keyword">const</span> arma::mat& gradient);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordtype">bool</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a51a735258080d2fe2c36d547a8b359fc">GradientNormTooSmall</a>(<span class="keyword">const</span> arma::mat& gradient);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordtype">bool</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a5f6fcb0bde9fd5b2521c006834ce0577">LineSearch</a>(<span class="keywordtype">double</span>& functionValue,</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  arma::mat& iterate,</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  arma::mat& gradient,</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keyword">const</span> arma::mat& searchDirection);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="keywordtype">void</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a214df285379ee5d9981fe7d70c97f43f">SearchDirection</a>(<span class="keyword">const</span> arma::mat& gradient,</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> iterationNum,</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="keyword">const</span> <span class="keywordtype">double</span> scalingFactor,</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  arma::mat& searchDirection);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordtype">void</span> <a class="code" href="classmlpack_1_1optimization_1_1L__BFGS.html#a9e59a301476a408b688641c83b22ba2b">UpdateBasisSet</a>(<span class="keyword">const</span> <span class="keywordtype">size_t</span> iterationNum,</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keyword">const</span> arma::mat& iterate,</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keyword">const</span> arma::mat& oldIterate,</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keyword">const</span> arma::mat& gradient,</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="keyword">const</span> arma::mat& oldGradient);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span> };</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span> } <span class="comment">// namespace optimization</span></div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span> } <span class="comment">// namespace mlpack</span></div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span> </div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="preprocessor">#include "lbfgs_impl.hpp"</span></div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span> </div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="preprocessor">#endif // MLPACK_CORE_OPTIMIZERS_LBFGS_LBFGS_HPP</span></div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span> </div><div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_aa87a32c1444fd3dbffdb6d8d88f194fd"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#aa87a32c1444fd3dbffdb6d8d88f194fd">mlpack::optimization::L_BFGS::factr</a></div><div class="ttdeci">double factr</div><div class="ttdoc">Minimum relative function value decrease to continue the optimization. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00175">lbfgs.hpp:175</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_a4bd75dcc4f33cca7e270508bca2f625d"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#a4bd75dcc4f33cca7e270508bca2f625d">mlpack::optimization::L_BFGS::ArmijoConstant</a></div><div class="ttdeci">double ArmijoConstant() const </div><div class="ttdoc">Get the Armijo condition constant. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00119">lbfgs.hpp:119</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_a214df285379ee5d9981fe7d70c97f43f"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#a214df285379ee5d9981fe7d70c97f43f">mlpack::optimization::L_BFGS::SearchDirection</a></div><div class="ttdeci">void SearchDirection(const arma::mat &gradient, const size_t iterationNum, const double scalingFactor, arma::mat &searchDirection)</div><div class="ttdoc">Find the L-BFGS search direction. </div></div>
|
|
<div class="ttc" id="namespacemlpack_html"><div class="ttname"><a href="namespacemlpack.html">mlpack</a></div><div class="ttdoc">Linear algebra utility functions, generally performed on matrices or vectors. </div><div class="ttdef"><b>Definition:</b> <a href="binarize_8hpp_source.html#l00018">binarize.hpp:18</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_a394b0e64c6731991bebaa13ea0c8c39c"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#a394b0e64c6731991bebaa13ea0c8c39c">mlpack::optimization::L_BFGS::Factr</a></div><div class="ttdeci">double Factr() const </div><div class="ttdoc">Get the factr value. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00134">lbfgs.hpp:134</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_adade97ab73aa61b07565a56e664fb69c"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#adade97ab73aa61b07565a56e664fb69c">mlpack::optimization::L_BFGS::MaxIterations</a></div><div class="ttdeci">size_t & MaxIterations()</div><div class="ttdoc">Modify the maximum number of iterations. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00116">lbfgs.hpp:116</a></div></div>
|
|
<div class="ttc" id="prereqs_8hpp_html"><div class="ttname"><a href="prereqs_8hpp.html">prereqs.hpp</a></div><div class="ttdoc">The core includes that mlpack expects; standard C++ includes and Armadillo. </div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_aa0d9aefff7d1454356435ad300bc8f54"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#aa0d9aefff7d1454356435ad300bc8f54">mlpack::optimization::L_BFGS::Wolfe</a></div><div class="ttdeci">double Wolfe() const </div><div class="ttdoc">Get the Wolfe parameter. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00124">lbfgs.hpp:124</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_a70903febd714374b31cdb1a4fd5568fc"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#a70903febd714374b31cdb1a4fd5568fc">mlpack::optimization::L_BFGS::maxLineSearchTrials</a></div><div class="ttdeci">size_t maxLineSearchTrials</div><div class="ttdoc">Maximum number of trials for the line search. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00177">lbfgs.hpp:177</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_a50b11d2a87c84f6a999a34a29eacf0ca"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#a50b11d2a87c84f6a999a34a29eacf0ca">mlpack::optimization::L_BFGS::y</a></div><div class="ttdeci">arma::cube y</div><div class="ttdoc">Stores all the y matrices in memory. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00162">lbfgs.hpp:162</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_aef0d1fc8479a13f7d0187d6dbf087ce9"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#aef0d1fc8479a13f7d0187d6dbf087ce9">mlpack::optimization::L_BFGS::NumBasis</a></div><div class="ttdeci">size_t & NumBasis()</div><div class="ttdoc">Modify the memory size. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00111">lbfgs.hpp:111</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_ae54a21b7df3af91ca57f2593e227d299"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#ae54a21b7df3af91ca57f2593e227d299">mlpack::optimization::L_BFGS::MaxIterations</a></div><div class="ttdeci">size_t MaxIterations() const </div><div class="ttdoc">Get the maximum number of iterations. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00114">lbfgs.hpp:114</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_a51a735258080d2fe2c36d547a8b359fc"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#a51a735258080d2fe2c36d547a8b359fc">mlpack::optimization::L_BFGS::GradientNormTooSmall</a></div><div class="ttdeci">bool GradientNormTooSmall(const arma::mat &gradient)</div><div class="ttdoc">Check to make sure that the norm of the gradient is not smaller than 1e-5. </div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_af86f1143b5fd16c852c2f1a1e7630d2d"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#af86f1143b5fd16c852c2f1a1e7630d2d">mlpack::optimization::L_BFGS::ArmijoConstant</a></div><div class="ttdeci">double & ArmijoConstant()</div><div class="ttdoc">Modify the Armijo condition constant. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00121">lbfgs.hpp:121</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_aeb28615573ccf46d9b52a20dbb9391fb"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#aeb28615573ccf46d9b52a20dbb9391fb">mlpack::optimization::L_BFGS::ChooseScalingFactor</a></div><div class="ttdeci">double ChooseScalingFactor(const size_t iterationNum, const arma::mat &gradient)</div><div class="ttdoc">Calculate the scaling factor, gamma, which is used to scale the Hessian approximation matrix...</div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_a70d0c0a53c4331dc1eb919824baa5643"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#a70d0c0a53c4331dc1eb919824baa5643">mlpack::optimization::L_BFGS::minGradientNorm</a></div><div class="ttdeci">double minGradientNorm</div><div class="ttdoc">Minimum gradient norm required to continue the optimization. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00173">lbfgs.hpp:173</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_acbe7b76e61c6e5fbf2aedf7cd0c2f0ac"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#acbe7b76e61c6e5fbf2aedf7cd0c2f0ac">mlpack::optimization::L_BFGS::maxStep</a></div><div class="ttdeci">double maxStep</div><div class="ttdoc">Maximum step of the line search. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00181">lbfgs.hpp:181</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_aa1ea6f4fe6d1842b14244c2621a5ca7f"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#aa1ea6f4fe6d1842b14244c2621a5ca7f">mlpack::optimization::L_BFGS::minStep</a></div><div class="ttdeci">double minStep</div><div class="ttdoc">Minimum step of the line search. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00179">lbfgs.hpp:179</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_ac19562b8330e99121f80f1adbced00ea"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#ac19562b8330e99121f80f1adbced00ea">mlpack::optimization::L_BFGS::MinGradientNorm</a></div><div class="ttdeci">double & MinGradientNorm()</div><div class="ttdoc">Modify the minimum gradient norm. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00131">lbfgs.hpp:131</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_a911a687f907869fd707eda7dfb353d5a"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#a911a687f907869fd707eda7dfb353d5a">mlpack::optimization::L_BFGS::armijoConstant</a></div><div class="ttdeci">double armijoConstant</div><div class="ttdoc">Parameter for determining the Armijo condition. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00169">lbfgs.hpp:169</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_af6671c6452b24dba0a95bd3733a54754"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#af6671c6452b24dba0a95bd3733a54754">mlpack::optimization::L_BFGS::MaxStep</a></div><div class="ttdeci">double & MaxStep()</div><div class="ttdoc">Modify the maximum line search step size. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00151">lbfgs.hpp:151</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_aaff04412528cf012680c144410950968"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#aaff04412528cf012680c144410950968">mlpack::optimization::L_BFGS::MaxLineSearchTrials</a></div><div class="ttdeci">size_t & MaxLineSearchTrials()</div><div class="ttdoc">Modify the maximum number of line search trials. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00141">lbfgs.hpp:141</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_a5f6fcb0bde9fd5b2521c006834ce0577"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#a5f6fcb0bde9fd5b2521c006834ce0577">mlpack::optimization::L_BFGS::LineSearch</a></div><div class="ttdeci">bool LineSearch(double &functionValue, arma::mat &iterate, arma::mat &gradient, const arma::mat &searchDirection)</div><div class="ttdoc">Perform a back-tracking line search along the search direction to calculate a step size satisfying th...</div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_a42bf0ea3949d58ad7ee167d09a9d8b80"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#a42bf0ea3949d58ad7ee167d09a9d8b80">mlpack::optimization::L_BFGS::Function</a></div><div class="ttdeci">FunctionType & Function()</div><div class="ttdoc">Modify the function that is being optimized. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00106">lbfgs.hpp:106</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_a1092156374efcc590408ff4d9ef04d01"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#a1092156374efcc590408ff4d9ef04d01">mlpack::optimization::L_BFGS::Wolfe</a></div><div class="ttdeci">double & Wolfe()</div><div class="ttdoc">Modify the Wolfe parameter. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00126">lbfgs.hpp:126</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_a01e4142d1905967a2dfa46fc2c21be14"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#a01e4142d1905967a2dfa46fc2c21be14">mlpack::optimization::L_BFGS::Function</a></div><div class="ttdeci">const FunctionType & Function() const </div><div class="ttdoc">Return the function that is being optimized. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00104">lbfgs.hpp:104</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_a0de8f00eef5c927d871f2477f8483685"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#a0de8f00eef5c927d871f2477f8483685">mlpack::optimization::L_BFGS::newIterateTmp</a></div><div class="ttdeci">arma::mat newIterateTmp</div><div class="ttdoc">Position of the new iterate. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00158">lbfgs.hpp:158</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_a74984bff9783d25cec41d5105713f145"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#a74984bff9783d25cec41d5105713f145">mlpack::optimization::L_BFGS::s</a></div><div class="ttdeci">arma::cube s</div><div class="ttdoc">Stores all the s matrices in memory. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00160">lbfgs.hpp:160</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_a7d96460bbdca77db674a1a92147cabf7"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#a7d96460bbdca77db674a1a92147cabf7">mlpack::optimization::L_BFGS::MinStep</a></div><div class="ttdeci">double & MinStep()</div><div class="ttdoc">Modify the minimum line search step size. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00146">lbfgs.hpp:146</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_aadae4ce105073ad958afdf2f463ae627"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#aadae4ce105073ad958afdf2f463ae627">mlpack::optimization::L_BFGS::maxIterations</a></div><div class="ttdeci">size_t maxIterations</div><div class="ttdoc">Maximum number of iterations. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00167">lbfgs.hpp:167</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_a4546301d10255497e0193789a8d22a4b"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#a4546301d10255497e0193789a8d22a4b">mlpack::optimization::L_BFGS::NumBasis</a></div><div class="ttdeci">size_t NumBasis() const </div><div class="ttdoc">Get the memory size. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00109">lbfgs.hpp:109</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_a1359171e3ead467dfec6f0592501bc3d"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#a1359171e3ead467dfec6f0592501bc3d">mlpack::optimization::L_BFGS::MaxLineSearchTrials</a></div><div class="ttdeci">size_t MaxLineSearchTrials() const </div><div class="ttdoc">Get the maximum number of line search trials. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00139">lbfgs.hpp:139</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_a29dcbb9163d442a7746e61e9b594eb0d"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#a29dcbb9163d442a7746e61e9b594eb0d">mlpack::optimization::L_BFGS::MinPointIterate</a></div><div class="ttdeci">const std::pair< arma::mat, double > & MinPointIterate() const </div><div class="ttdoc">Return the point where the lowest function value has been found. </div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_ada07bd1baaa3daa325bc5efdc5444719"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#ada07bd1baaa3daa325bc5efdc5444719">mlpack::optimization::L_BFGS::L_BFGS</a></div><div class="ttdeci">L_BFGS(FunctionType &function, const size_t numBasis=10, const size_t maxIterations=10000, const double armijoConstant=1e-4, const double wolfe=0.9, const double minGradientNorm=1e-6, const double factr=1e-15, const size_t maxLineSearchTrials=50, const double minStep=1e-20, const double maxStep=1e20)</div><div class="ttdoc">Initialize the L-BFGS object. </div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_a338c699a69cc169675b586485559376b"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#a338c699a69cc169675b586485559376b">mlpack::optimization::L_BFGS::Evaluate</a></div><div class="ttdeci">double Evaluate(const arma::mat &iterate)</div><div class="ttdoc">Evaluate the function at the given iterate point and store the result if it is a new minimum...</div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_a3838e4e4811c1c607f5806d295a52aa4"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#a3838e4e4811c1c607f5806d295a52aa4">mlpack::optimization::L_BFGS::minPointIterate</a></div><div class="ttdeci">std::pair< arma::mat, double > minPointIterate</div><div class="ttdoc">Best point found so far. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00184">lbfgs.hpp:184</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_a7db644a7dbaae2e8961e0bfca9a5ced1"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#a7db644a7dbaae2e8961e0bfca9a5ced1">mlpack::optimization::L_BFGS::Optimize</a></div><div class="ttdeci">double Optimize(arma::mat &iterate)</div><div class="ttdoc">Use L-BFGS to optimize the given function, starting at the given iterate point and finding the minimu...</div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html">mlpack::optimization::L_BFGS</a></div><div class="ttdoc">The generic L-BFGS optimizer, which uses a back-tracking line search algorithm to minimize a function...</div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00034">lbfgs.hpp:34</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_aa5e89990077485966cb04e687298df1c"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#aa5e89990077485966cb04e687298df1c">mlpack::optimization::L_BFGS::wolfe</a></div><div class="ttdeci">double wolfe</div><div class="ttdoc">Parameter for detecting the Wolfe condition. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00171">lbfgs.hpp:171</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_a3dbc87a28f0567fc383512e4d37b0836"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#a3dbc87a28f0567fc383512e4d37b0836">mlpack::optimization::L_BFGS::MinStep</a></div><div class="ttdeci">double MinStep() const </div><div class="ttdoc">Return the minimum line search step size. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00144">lbfgs.hpp:144</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_a5392202281c74a8c6e49b5fbfd2f2944"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#a5392202281c74a8c6e49b5fbfd2f2944">mlpack::optimization::L_BFGS::Factr</a></div><div class="ttdeci">double & Factr()</div><div class="ttdoc">Modify the factr value. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00136">lbfgs.hpp:136</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_a8756ee7f153b85aa29f32fdab0404915"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#a8756ee7f153b85aa29f32fdab0404915">mlpack::optimization::L_BFGS::MaxStep</a></div><div class="ttdeci">double MaxStep() const </div><div class="ttdoc">Return the maximum line search step size. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00149">lbfgs.hpp:149</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_adf7139850ce9e93a58f3576a5de0e6f2"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#adf7139850ce9e93a58f3576a5de0e6f2">mlpack::optimization::L_BFGS::MinGradientNorm</a></div><div class="ttdeci">double MinGradientNorm() const </div><div class="ttdoc">Get the minimum gradient norm. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00129">lbfgs.hpp:129</a></div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_a9e59a301476a408b688641c83b22ba2b"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#a9e59a301476a408b688641c83b22ba2b">mlpack::optimization::L_BFGS::UpdateBasisSet</a></div><div class="ttdeci">void UpdateBasisSet(const size_t iterationNum, const arma::mat &iterate, const arma::mat &oldIterate, const arma::mat &gradient, const arma::mat &oldGradient)</div><div class="ttdoc">Update the y and s matrices, which store the differences between the iterate and old iterate and the ...</div></div>
|
|
<div class="ttc" id="classmlpack_1_1optimization_1_1L__BFGS_html_af8f4986beac9dc6152cb3493a8117983"><div class="ttname"><a href="classmlpack_1_1optimization_1_1L__BFGS.html#af8f4986beac9dc6152cb3493a8117983">mlpack::optimization::L_BFGS::numBasis</a></div><div class="ttdeci">size_t numBasis</div><div class="ttdoc">Size of memory for this L-BFGS optimizer. </div><div class="ttdef"><b>Definition:</b> <a href="lbfgs_8hpp_source.html#l00165">lbfgs.hpp:165</a></div></div>
|
|
</div><!-- fragment --></div><!-- contents -->
|
|
<!-- start footer part -->
|
|
<hr class="footer"/><address class="footer"><small>
|
|
Generated by  <a href="http://www.doxygen.org/index.html">
|
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
|
</a> 1.8.11
|
|
</small></address>
|
|
</body>
|
|
<script type="text/javascript">
|
|
var x = document.getElementsByClassName("formulaDsp");
|
|
var i;
|
|
for (i = 0; i < x.length; i++)
|
|
{
|
|
x[i].width /= 4;
|
|
}
|
|
</script>
|
|
</html>
|