blob: 2191cff94753f212caf92e381a162f16b100fea9 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>KohonenUpdateAction (Apache Commons Math 3.3 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="KohonenUpdateAction (Apache Commons Math 3.3 API)";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/KohonenUpdateAction.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../../org/apache/commons/math3/ml/neuralnet/sofm/KohonenTrainingTask.html" title="class in org.apache.commons.math3.ml.neuralnet.sofm"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../../../org/apache/commons/math3/ml/neuralnet/sofm/LearningFactorFunction.html" title="interface in org.apache.commons.math3.ml.neuralnet.sofm"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/commons/math3/ml/neuralnet/sofm/KohonenUpdateAction.html" target="_top">Frames</a></li>
<li><a href="KohonenUpdateAction.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.commons.math3.ml.neuralnet.sofm</div>
<h2 title="Class KohonenUpdateAction" class="title">Class KohonenUpdateAction</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.commons.math3.ml.neuralnet.sofm.KohonenUpdateAction</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../../../org/apache/commons/math3/ml/neuralnet/UpdateAction.html" title="interface in org.apache.commons.math3.ml.neuralnet">UpdateAction</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="strong">KohonenUpdateAction</span>
extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="../../../../../../../org/apache/commons/math3/ml/neuralnet/UpdateAction.html" title="interface in org.apache.commons.math3.ml.neuralnet">UpdateAction</a></pre>
<div class="block">Update formula for <a href="http://en.wikipedia.org/wiki/Kohonen">
Kohonen's Self-Organizing Map</a>.
<br/>
The <a href="../../../../../../../org/apache/commons/math3/ml/neuralnet/sofm/KohonenUpdateAction.html#update(org.apache.commons.math3.ml.neuralnet.Network, double[])"><code>update</code></a> method modifies the
features <code>w</code> of the "winning" neuron and its neighbours
according to the following rule:
<code>
w<sub>new</sub> = w<sub>old</sub> + &alpha; e<sup>(-d / &sigma;)</sup> * (sample - w<sub>old</sub>)
</code>
where
<ul>
<li>&alpha; is the current <em>learning rate</em>, </li>
<li>&sigma; is the current <em>neighbourhood size</em>, and</li>
<li><code>d</code> is the number of links to traverse in order to reach
the neuron from the winning neuron.</li>
</ul>
<br/>
This class is thread-safe as long as the arguments passed to the
<a href="../../../../../../../org/apache/commons/math3/ml/neuralnet/sofm/KohonenUpdateAction.html#KohonenUpdateAction(org.apache.commons.math3.ml.distance.DistanceMeasure, org.apache.commons.math3.ml.neuralnet.sofm.LearningFactorFunction, org.apache.commons.math3.ml.neuralnet.sofm.NeighbourhoodSizeFunction)"><code>constructor</code></a> are instances of thread-safe
classes.
<br/>
Each call to the <a href="../../../../../../../org/apache/commons/math3/ml/neuralnet/sofm/KohonenUpdateAction.html#update(org.apache.commons.math3.ml.neuralnet.Network, double[])"><code>update</code></a> method
will increment the internal counter used to compute the current
values for
<ul>
<li>the <em>learning rate</em>, and</li>
<li>the <em>neighbourhood size</em>.</li>
</ul>
Consequently, the function instances that compute those values (passed
to the constructor of this class) must take into account whether this
class's instance will be shared by multiple threads, as this will impact
the training process.</div>
<dl><dt><span class="strong">Since:</span></dt>
<dd>3.3</dd>
<dt><span class="strong">Version:</span></dt>
<dd>$Id: KohonenUpdateAction.java 1566092 2014-02-08 18:48:29Z tn $</dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../../../../org/apache/commons/math3/ml/neuralnet/sofm/KohonenUpdateAction.html#KohonenUpdateAction(org.apache.commons.math3.ml.distance.DistanceMeasure, org.apache.commons.math3.ml.neuralnet.sofm.LearningFactorFunction, org.apache.commons.math3.ml.neuralnet.sofm.NeighbourhoodSizeFunction)">KohonenUpdateAction</a></strong>(<a href="../../../../../../../org/apache/commons/math3/ml/distance/DistanceMeasure.html" title="interface in org.apache.commons.math3.ml.distance">DistanceMeasure</a>&nbsp;distance,
<a href="../../../../../../../org/apache/commons/math3/ml/neuralnet/sofm/LearningFactorFunction.html" title="interface in org.apache.commons.math3.ml.neuralnet.sofm">LearningFactorFunction</a>&nbsp;learningFactor,
<a href="../../../../../../../org/apache/commons/math3/ml/neuralnet/sofm/NeighbourhoodSizeFunction.html" title="interface in org.apache.commons.math3.ml.neuralnet.sofm">NeighbourhoodSizeFunction</a>&nbsp;neighbourhoodSize)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/commons/math3/ml/neuralnet/sofm/KohonenUpdateAction.html#getNumberOfCalls()">getNumberOfCalls</a></strong>()</code>
<div class="block">Retrieves the number of calls to the <a href="../../../../../../../org/apache/commons/math3/ml/neuralnet/sofm/KohonenUpdateAction.html#update(org.apache.commons.math3.ml.neuralnet.Network, double[])"><code>update</code></a>
method.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/commons/math3/ml/neuralnet/sofm/KohonenUpdateAction.html#update(org.apache.commons.math3.ml.neuralnet.Network, double[])">update</a></strong>(<a href="../../../../../../../org/apache/commons/math3/ml/neuralnet/Network.html" title="class in org.apache.commons.math3.ml.neuralnet">Network</a>&nbsp;net,
double[]&nbsp;features)</code>
<div class="block">Updates the network in response to the sample <code>features</code>.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="KohonenUpdateAction(org.apache.commons.math3.ml.distance.DistanceMeasure, org.apache.commons.math3.ml.neuralnet.sofm.LearningFactorFunction, org.apache.commons.math3.ml.neuralnet.sofm.NeighbourhoodSizeFunction)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>KohonenUpdateAction</h4>
<pre>public&nbsp;KohonenUpdateAction(<a href="../../../../../../../org/apache/commons/math3/ml/distance/DistanceMeasure.html" title="interface in org.apache.commons.math3.ml.distance">DistanceMeasure</a>&nbsp;distance,
<a href="../../../../../../../org/apache/commons/math3/ml/neuralnet/sofm/LearningFactorFunction.html" title="interface in org.apache.commons.math3.ml.neuralnet.sofm">LearningFactorFunction</a>&nbsp;learningFactor,
<a href="../../../../../../../org/apache/commons/math3/ml/neuralnet/sofm/NeighbourhoodSizeFunction.html" title="interface in org.apache.commons.math3.ml.neuralnet.sofm">NeighbourhoodSizeFunction</a>&nbsp;neighbourhoodSize)</pre>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>distance</code> - Distance function.</dd><dd><code>learningFactor</code> - Learning factor update function.</dd><dd><code>neighbourhoodSize</code> - Neighbourhood size update function.</dd></dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="update(org.apache.commons.math3.ml.neuralnet.Network, double[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>update</h4>
<pre>public&nbsp;void&nbsp;update(<a href="../../../../../../../org/apache/commons/math3/ml/neuralnet/Network.html" title="class in org.apache.commons.math3.ml.neuralnet">Network</a>&nbsp;net,
double[]&nbsp;features)</pre>
<div class="block">Updates the network in response to the sample <code>features</code>.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../../../org/apache/commons/math3/ml/neuralnet/UpdateAction.html#update(org.apache.commons.math3.ml.neuralnet.Network, double[])">update</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../org/apache/commons/math3/ml/neuralnet/UpdateAction.html" title="interface in org.apache.commons.math3.ml.neuralnet">UpdateAction</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>net</code> - Network.</dd><dd><code>features</code> - Training data.</dd></dl>
</li>
</ul>
<a name="getNumberOfCalls()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getNumberOfCalls</h4>
<pre>public&nbsp;long&nbsp;getNumberOfCalls()</pre>
<div class="block">Retrieves the number of calls to the <a href="../../../../../../../org/apache/commons/math3/ml/neuralnet/sofm/KohonenUpdateAction.html#update(org.apache.commons.math3.ml.neuralnet.Network, double[])"><code>update</code></a>
method.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the current number of calls.</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/KohonenUpdateAction.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../../org/apache/commons/math3/ml/neuralnet/sofm/KohonenTrainingTask.html" title="class in org.apache.commons.math3.ml.neuralnet.sofm"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../../../org/apache/commons/math3/ml/neuralnet/sofm/LearningFactorFunction.html" title="interface in org.apache.commons.math3.ml.neuralnet.sofm"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/commons/math3/ml/neuralnet/sofm/KohonenUpdateAction.html" target="_top">Frames</a></li>
<li><a href="KohonenUpdateAction.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2003&#x2013;2014 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>