<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Real-time Unsupervised Clustering</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Gabriel</forename><forename type="middle">J</forename><surname>Ferrer</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Department of Mathematics and Computer Science</orgName>
								<orgName type="institution">Hendrix College</orgName>
								<address>
									<addrLine>1600 Washington Ave. Conway</addrLine>
									<postCode>72032</postCode>
									<region>Arkansas</region>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Real-time Unsupervised Clustering</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">305EF2E50AF0E50FB39188EA2EB2EE79</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-23T23:40+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>In our research program, we are developing machine learning algorithms to enable a mobile robot to build a compact representation of its environment. This requires the processing of each new input to terminate in constant time. Existing machine learning algorithms are either incapable of meeting this constraint or deliver problematic results. In this paper, we describe a new algorithm for real-time unsupervised clustering, Bounded Self-Organizing Clustering. It executes in constant time for each input, and it produces clusterings that are significantly better than those created by the Self-Organizing Map, its closest competitor, on sensor data acquired from a physically embodied mobile robot.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Clustering algorithms are unsupervised learning algorithms that employ a distance metric to organize their training inputs into clusters. The classification of a previously unseen input is determined by the cluster to which it is closest, again based on the distance metric. This enables a large input space to be compressed into a more compact representation. A useful application of this technique is to create models of mobile robot environments based on the robot's sensor inputs.</p><p>In both training and classification, the distances between the input and the representative example of each cluster must be calculated. By placing a fixed upper bound on the number of clusters, we limit the total number of calculations required by each training and classification operation. This, in turn, enables us to predict the cycle time of the algorithm, a necessity for the practical deployment of such an algorithm aboard a mobile robot.</p><p>In this paper, we introduce a novel clustering algorithm, Bounded Self-Organizing Clusters (BSOC), that is designed to meet these constraints. In the robotics literature, the Kohonen Self-Organizing Map (SOM) has been used for this purpose as well. We argue that the design of the SOM leads to a relatively poor clustering, and that BSOC represents a significant improvement. We demonstrate this experimentally using both sonar and image data captured from a mobile robot.</p><p>We begin with some background and describe related work. Next, we describe our physical system hardware, with an eye towards making clear the technical limitations to which any solution must conform. We then describe our learning algorithm, followed by our experiments and results. We then give our conclusions and speculations on future work.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Background</head><p>Clustering algorithms have long been an appealing machine learning technique for robotics applications, due to their potential for incremental machine learning in combination as well as their ability to reduce complex continuous sensor input values to a smaller number of discrete values. Several examples of this approach employ the Kohonen Self-Organizing Map (SOM) <ref type="bibr" target="#b7">(Kohonen 2001)</ref> to reduce the sensor inputs into a finite number of discrete states to facilitate the Q-learning algorithm.</p><p>Each SOM is a neural network consisting of a single twodimensional layer of nodes arranged in a rectangular grid. The number of nodes and their arrangement is fixed. Each node is an object of the same specifications as a network input, which represents the reference input for that node. A distance metric is defined for the space of possible inputs. Typically, this distance metric will be the sum-of-squareddifferences. The output node whose reference input that is closest in distance to an input presented to the network is considered the winning node; its coordinates are the output of the SOM.</p><p>To train a SOM, a training input is presented to the network. The winning output node's reference input, along with some of its neighbors, is then combined with the input value. The difference vector between the values is calculated and multiplied by a learning rate. The resulting value is then added to the reference input of the learning node. For each affected SOM node i and input vector element j, the update equation for the weight vector w of the reference input (given a learning rate ↵, 0 &lt; ↵ &lt; 1) is:</p><formula xml:id="formula_0">w ij = w ij + ↵ ⇤ (input ij w ij )</formula><p>The ↵ parameter is determined by the neighborhood scheme of the specific SOM implementation. Many implementations (e.g. <ref type="bibr" target="#b11">(Smith 2002)</ref>) make multiple passes over the input, slowly reducing ↵ on each pass. <ref type="bibr" target="#b12">(Touzet 1997)</ref> trains the winning node with ↵ = 0.9, and the four cardinal neighbors are trained with ↵ = 0.5. As ↵ remains constant throughout, this formulation of the SOM lends itself well to real-time implementation aboard a robot. Since the number of nodes and topology are fixed, one can define a SOM output map that guarantees that the robot's cycle time will reliably meet its timing requirements. This will be the variation of the SOM that will serve as a baseline in our experiments for assessing our own algorithm.</p><p>The earliest application of the SOM to robotics was that of <ref type="bibr" target="#b12">(Touzet 1997)</ref>, in which a tiny (6 cm diameter) Khepera mobile robot equipped with eight infrared sensors for object detection learned to move forward while avoiding obstacles. The continuous values from the IR sensors were routed into a 4x4 SOM. The SOM output node was then employed as a state index for Q-learning. Touzet later scaled up this work to a much larger robot <ref type="bibr" target="#b12">(Touzet 2006</ref>) employing a ring of 16 sonars. In this later work, Q-learning was abandoned; instead of using reinforcement rewards, the desired behavior was specified in terms of an acceptable range of sensor values. <ref type="bibr" target="#b11">(Smith 2002</ref>) did similar work, with two major differences: a different definition of the SOM learning neighborhood than that of Touzet, and implementation in simulation rather than on a physical robot. Instead of using immediate neighbors, all nodes in the network were affected, with the learning rate combined with a Gaussian smoothing function. <ref type="bibr" target="#b0">(Ferrer 2010)</ref> implemented both approaches on a mobile robot and compared the results. He found that both approaches worked respectably well, but that both were surpassed by Q-Learning without the use of clustering. <ref type="bibr" target="#b9">(Provost, Kuipers, and Miikkulainen 2006)</ref> undertook similar work in simulation, but replaced the SOM with the closely related Growing Neural Gas (GNG) algorithm <ref type="bibr" target="#b4">(Fritzke 1995)</ref>. The GNG is appealing in this context because of its flexible topology. It starts with two nodes. Additional nodes are incorporated into the network as needed to represent inputs that correspond to significant previouslyunseen aspects of the input space. <ref type="bibr" target="#b1">(Ferrer 2014a</ref>) also applied the GNG algorithm to robot learning. A robot built a GNG as it drove through its environment. A human then examined each GNG node, specifying an appropriate action based on a visual inspection of the node's reference input. This work was reasonably successful for behavior specification on a physical robot. However, the manual specification of an action for each node was found to be laborious. <ref type="bibr" target="#b2">(Ferrer 2014b</ref>) further advanced the concept of employing a GNG for learning an environment. A human pilots a robot through an environment, learning a GNG representation of the environment and associating actions from the human with the GNG nodes. When running autonomously, the robot selects its action based on which GNG node is the winner for the current input image.</p><p>Because the GNG adapts the number of clusters based on the inputs it receives, it is not possible to guarantee that the robot will complete each round of processing within a specified target time. While one appealing aspect of the GNG algorithm is the elimination of underutilized nodes, the specifics of this elimination process are too unpredictable to enable us to make guarantees about timing.</p><p>The problem of learning from a real-time input stream is also of interest outside the robotics community. <ref type="bibr">(Hapfelmeier et al. 2012)</ref> mention application domains such The most prominent clustering algorithm in the literature is arguably k-means <ref type="bibr" target="#b3">(Forgey 1965</ref><ref type="bibr" target="#b8">) (MacQueen 1967)</ref>. For our application domain, we did not consider this approach at all, as it requires multiple passes through the input data. As each of these multiple passes requires visiting every input sample, our target constraint of constant-time execution cannot be satisfied. Also related to our approach is bottom-up agglomeration as described, for example, by <ref type="bibr" target="#b7">(Koivistoinen, Ruuska, and Elomaa 2006)</ref>. We do not seek to perform a full bottom-up agglomeration; instead, we use agglomeration as a strategy to help us execute in constant time while retaining good relationships with the inputs.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Hardware</head><p>Our robot is a Lego Mindstorms EV3 equipped with a Logitech C270 webcam and three sonar sensors. The EV3 has a 300 MHz ARM9 CPU and 64 MB of RAM. Its OS is a version of Linux. We implemented our software in Java using LeJOS 0.9.0. The webcam is connected to the EV3 via its USB 1.1 port. As the webcam is designed to be used with a USB 2.0 port or better, it is limited to grabbing 160x120 YUYV images at about 14 frames per second. We configured the robot as shown in Figure <ref type="figure" target="#fig_0">1</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Bounded Self-Organizing Clusters Basic Version</head><p>We introduce a novel clustering algorithm called Bounded Self-Organizing Clusters (BSOC) (see Figure <ref type="figure">2</ref>). Each BSOC is a complete undirected weighted graph. Each node in the graph contains the reference input for a cluster (comparable to the nodes in a Self-Organizing Map <ref type="bibr" target="#b7">(Kohonen 2001)</ref>). Each edge weight denotes the distance between the reference inputs of the clusters.</p><p>Each BSOC is given a maximum number of clusters it can represent. When training, each training input is added to the set of clusters as a reference input. If adding the training input causes the number of nodes to exceed the maximum, the two nodes in the graph with the shortest edge are merged by computing a weighted average of their numerical representations.</p><p>The edges are stored in a red-black tree. They are primarily ordered by their distances, and secondarily ordered by the indices of their node endpoints. This enables us to quickly find the smallest edge when needed in the train method. When two nodes are merged (and removed from the main graph), their edges are also removed from the red-black tree. Let M be the maximum number of nodes for a BSOC. Each call to lookup or insert makes no more than M calls to the distance function. Each call to insert performs up to M log M 2 = 2M log M numerical comparisons when inserting an edge connecting the input to each of up to M existing nodes. Each call to train makes up to two calls to insert, along with a comparison, 2M edge removals (each requiring 2 log M comparisons in a red-black tree), and two hash table removals. Consequently, given that M can be fixed as a constant, we can say that each call to train or lookup takes constant time.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Weighted-Input Variation</head><p>A potential drawback of the above algorithm is that clusters that are the result of repeated averages are given the same importance in the merging stage as clusters that are the result of single inputs. We find it intuitive that clusters that are the result of repeated merges would be closer in distance to a larger number of inputs from the input space. The following variation is an attempt to codify this intuition.</p><p>In addition to a reference input, each node in the graph contains a counter, initially set to one. Each counter denotes the number of input samples that contributed to the current node. These counters serve two major roles. First, they will be used as weights when merging nodes. Second, each edge weight (i.e., the distance between the reference inputs of the connected nodes) will be multiplied by the larger of the two counters for the connected nodes.</p><p>We expect these roles to achieve two things. First, by employing the larger counter as an edge weight multiplier, nodes that are derived from larger numbers of input samples will be less likely to be selected for merging. Second, by weighting the merge based on the counters, when they are selected they will preserve more of the broad influence of the inputs from which they were generated.</p><p>The revised BSOC algorithm is given in Figure <ref type="figure">3</ref>. Note that setup and lookup are unchanged (and hence omitted). The additional arithmetic calculations have no asymptotic impact on performance. </p><formula xml:id="formula_1">train(input) insert(input,</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Experiments and Evaluation</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Robot Environment</head><p>We gathered two different types of sensor data from our robot: triples of distance values from the sonars, and images from the webcam. To gather the sonar data set and the first For the second video data set, we navigated the robot through a different office environment. While the first environment has a carpeted floor, the second environment has a tile floor of alternating colors, as we can see in Figure <ref type="figure">5</ref>.</p><p>Each video sequence is 700 frames. Each frame is a 160x120 image in YUYV format. As YUYV uses 2 bytes per pixel, the total size of each frame is 38400 bytes. The sonar data set was created from a sequence of 1304 sonar triples. The sonars are configured as follows: One points about 45 degrees to the left of the robot, one points forward, and one points about 45 degrees to the right. The effective range of each sonar is from 0 to 2.5 meters. In all cases, the robot visited many different areas of the office, so as to ensure that each sequence was reasonably representative of the environment.</p><p>For both types of data, distance values between samples are calculated as sum-of-squared differences. For computing the distance between two triples of sonar distance values, the differences between the distance values of each correspond-  When creating clusters, the merging process requires averaging the inputs. In both cases, the averaging is analogous to the computation of the distance. For the sonar triples, the weighted mean values are computed for each sonar position. For the images, the weighted mean values are computed for each byte. Since the byte values are 8-bit unsigned integers, the result of each division is truncated.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Experiments</head><p>In this section, the basic version of BSOC is denoted BSOC1, and the BSOC variation weighted by input sample counts is BSOC2.</p><p>We constructed our experiments to test the following hypotheses:</p><p>1. Given the same number of clusters, BSOC1 will provide closer matches to its source inputs than the SOM as formulated by <ref type="bibr" target="#b12">(Touzet 1997)</ref>, and BSOC2 will provide closer matches than BSOC1. We define "closer matches" to be the sum-of-squared-differences (SSD) between each input and the reference input for the closest matching cluster.</p><p>2. Given the same number of clusters, BSOC2 will exhibit more consistent performance than the SOM or BSOC1 regardless of the ordering of the input data. We measure "consistent performance" as the ratio of the standard deviation to the mean. Smaller values indicate more consistent performance.</p><p>We tested each of our input sequences with clustering algorithms configured with 16, 32, and 64 nodes. For testing the SOMs, we used 4x4, 4x8, and 8x8 grids. The SSD values for the sonar experiments are in units of meters squared. For the video experiments, the units are pixel intensity values squared. For presentation purposes, all entries have been rounded to four significant figures.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Results</head><p>Hypothesis 1 As we can see from Figures 6 through 11, Hypothesis 1 was confirmed, with some qualifications. BSOC1 consistently outperformed the SOM in the sonar experiments by multiple orders of magnitude, a compelling improvement. In the first video experiments, it outperformed the SOM by factors ranging from slightly over one to slightly over two, a much less compelling improvement, but still consistently superior. The second video was more favorable, performing 3-4 times better.  BSOC2 outperformed both of the other algorithms very consistently, with the exception of the 16-node sonar experiment, in which its performance was very close to BSOC1. In the other two sonar experiments, it outperformed BSOC1 by about 65%.</p><p>In the video experiments, BSOC2 consistently outperformed both the SOM and BSOC1. In the first video, it was about 3-4 times better than the SOM, while with the second video it was 8-16 times better.</p><p>All of these clustering algorithms show significant improvement in performance as additional nodes are added. This demonstrates that those engineering a robotic system incorporating a clustering algorithm do have a clearly defined trade-off between cycle time and clustering accuracy. This improvement was less consistent with the second video stream, as the 32-node solution was more favorable to BSOC than the 64-node solution.</p><p>Hypothesis 2 We ran a separate set of experiments to test Hypothesis 2, as all of the previous experiments trained the learner by showing the inputs in the order that they were acquired by the robot. While we consider that to be the expected deployment situation of these algorithms, the sensitivity to ordering is also worthwhile to measure. To this end, we trained the 64-node version of each algorithm on six different randomly generated permutations of the input samples. We employ here the same performance metric as our earlier experiments, namely, the sum-of-squared-differences between each input and its closest matching cluster. In all three cases, BSOC2 had a much tighter standard deviation than the other algorithms, showing a more consistent performance regardless of move ordering. In spite of this clear result, in all cases the performance on the nonpermuted input is much worse. Figures 15, 16, and 17 highlight this phenomenon. For all of these algorithms, processing the inputs in the order they were acquired creates a highly idiosyncratic statistical outlier.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Potential Applications</head><p>We are in the process of developing several different robot learning systems that would employ BSOC as a component. Our first goal is to replicate the learning scheme described by <ref type="bibr" target="#b12">(Touzet 2006)</ref>. He employed two different SOMs to represent the robot's environment as sensed by a ring of sonars. One SOM was used to represent the environment itself, while the second SOM was used for modeling the result of action selection. The robot's goals are specified in terms of sensor values. The robot then attempts to move itself to a SOM state that is compatible with those values. We have found that while the underlying concept is compelling, there is not sufficient detail to represent the role of the second SOM. We believe that replacing the first SOM with a BSOC will result in improved modeling accuracy, while replacing the second SOM with a Markov chain should prove Once the above system proves workable with sonars, we plan to employ video as the primary input. We believe this will enable us to do two things. First, we hope to be able to define robot behaviors in terms of video input, potentially opening up a wider array of possibilities than those given by sonar. Second, we would like to investigate the possibility of using the nodes for small-scale navigation of an environment.</p><p>We are also interested in using BSOC as a component to a supervised-learning system. In this way, BSOC would enable a scheme along the lines of k-nearest-neighbor (Saunders, Nehaniv, and Dautenhahn 2006) to be implemented in constant time.</p><p>We speculate that this algorithm could be useful for informing human decision-makers in situations requiring rapid responses where sensors are widely distributed and submitting information. Examples of such scenarios could include environmental assessment in the wake of a disaster or any number of military or law-enforcement scenarios<ref type="foot" target="#foot_0">1</ref> .</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Conclusion</head><p>For the purpose of modeling a robot environment in constant time using a sequence of sensor inputs, we have shown that Bounded Self-Organizing Clusters (BSOC) is a compelling alternative to the Kohonen Self-Organizing Map, the existing approach, for both sonar and video inputs. The variation of BSOC that weights the results based on the input sources is a particularly clear winner in our experiments; we consider this to be the definitive variation of the algorithm.</p><p>We believe that improved clustering has great potential to improve robot learning as a component of several possible larger systems. We would also be interested in finding applications for this algorithm in other domains beyond robotics that would benefit from real-time clustering.</p><p>Significant additional work remains in the development of this algorithm. First, many robot vision systems employ preprocessed features rather than raw pixel data, with the goal of improving recognition robustness across many different robot poses. We plan to investigate using ORB <ref type="bibr" target="#b9">(Rublee et al. 2011</ref>) for this purpose. Second, many practical learning situations involve supervised learning. We believe that BSOC could be used as a component of a real-time supervised learning system designed along the lines of k-nearestneighbor. Third, a system that utilizes BSOC clusters and maintains references to those clusters will need to preserve information as clusters merge. We currently have a prototype system in place to address this employing the Observer design pattern, but have not yet conducted an assessment of its utility.</p><p>Anyone who would like to experiment with our code and data sets is welcome to do so. It is archived at https://github.com/gjf2a/maics2016. The code is in the public domain.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Figure 1 :</head><label>1</label><figDesc>Figure 1: Robot</figDesc><graphic coords="2,318.83,70.94,239.52,179.64" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 4 :</head><label>4</label><figDesc>Figure 4: Office, Carpeted Floor</figDesc><graphic coords="4,66.49,284.77,239.51,141.17" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Figure 6 :</head><label>6</label><figDesc>Figure 6: Sonar: SSD</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Figure 8 :</head><label>8</label><figDesc>Figure 8: Video 1: SSD</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_5"><head></head><label></label><figDesc>We plan to employ Dijkstra's Algorithm to find paths in the Markov chain through the BSOC states that it discovers.</figDesc><table><row><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell>effective.</cell></row><row><cell></cell><cell cols="2">Permuted video 1</cell><cell></cell><cell></cell></row><row><cell>Algorithm</cell><cell>x</cell><cell></cell><cell></cell><cell>x</cell></row><row><cell cols="2">SOM 1.27 ⇥ 10 18 BSOC1 9.82 ⇥ 10 17 BSOC2 2.84 ⇥ 10 17</cell><cell>1.455 ⇥ 10 17 1.990 ⇥ 10 17 6.421 ⇥ 10 15</cell><cell cols="2">1.15 ⇥ 10 1 2.03 ⇥ 10 1 2.26 ⇥ 10 2</cell></row><row><cell cols="4">Figure 13: Video 1, with permuted inputs</cell><cell></cell></row><row><cell></cell><cell cols="2">Permuted video 2</cell><cell></cell><cell></cell></row><row><cell>Algorithm</cell><cell>x</cell><cell></cell><cell></cell><cell>x</cell></row><row><cell cols="2">SOM 1.13 ⇥ 10 18 BSOC1 3.74 ⇥ 10 17 BSOC2 1.41 ⇥ 10 17</cell><cell>1.455 ⇥ 10 17 4.835 ⇥ 10 16 8.661 ⇥ 10 15</cell><cell cols="2">1.29 ⇥ 10 1 1.29 ⇥ 10 1 6.12 ⇥ 10 2</cell></row><row><cell cols="4">Figure 14: Video 2, with permuted inputs</cell><cell></cell></row><row><cell></cell><cell cols="2">Sonar: Comparisons of SSD</cell><cell></cell><cell></cell></row><row><cell>Algorithm</cell><cell>Original</cell><cell>Permuted x</cell><cell cols="2">Original P ermuted</cell></row><row><cell cols="2">SOM BSOC1 9.120 ⇥ 10 1 7.361 ⇥ 10 1 BSOC2 5.473 ⇥ 10 1</cell><cell>4.585 ⇥ 10 1 6.695 ⇥ 10 1 2.477 ⇥ 10 1</cell><cell></cell><cell>1.606 1.362 2.209</cell></row><row><cell cols="4">Figure 15: Sonar: Comparisons of SSD</cell><cell></cell></row><row><cell></cell><cell cols="2">Video 1: Comparisons of SSD</cell><cell></cell><cell></cell></row><row><cell>Algorithm</cell><cell cols="2">Original Permuted x</cell><cell cols="2">Original P ermuted</cell></row><row><cell cols="2">SOM 2.702 ⇥ 10 18 BSOC1 1.125 ⇥ 10 18 BSOC2 6.765 ⇥ 10 17</cell><cell>1.27 ⇥ 10 18 9.82 ⇥ 10 17 2.84 ⇥ 10 17</cell><cell></cell><cell>2.12 1.14 2.38</cell></row><row><cell cols="4">Figure 16: Video 1: Comparisons of SSD</cell><cell></cell></row><row><cell></cell><cell cols="2">Video 2: Comparisons of SSD</cell><cell></cell><cell></cell></row><row><cell>Algorithm</cell><cell cols="2">Original Permuted x</cell><cell cols="2">Original P ermuted</cell><cell>Permuted sonar</cell></row><row><cell cols="4">SOM 4.553 ⇥ 10 18 BSOC1 1.058 ⇥ 10 18 BSOC2 2.838 ⇥ 10 17 Figure 17: Video 2: Comparisons of SSD 1.13 ⇥ 10 18 3.74 ⇥ 10 17 1.41 ⇥ 10 17</cell><cell>4.02 2.83 2.01</cell><cell>Algorithm SOM BSOC1 6.695 ⇥ 10 1 x 4.585 ⇥ 10 1 BSOC2 2.477 ⇥ 10 1</cell><cell>1.008 ⇥ 10 1 2.043 ⇥ 10 1 2.717 ⇥ 10 2</cell><cell>x 2.200 ⇥ 10 1 3.051 ⇥ 10 1 1.097 ⇥ 10 1</cell></row><row><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell><cell>Figure 12: Sonar, with permuted inputs</cell></row></table></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">We would like to thank one of our anonymous reviewers for suggesting these possibilities.</note>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Acknowledgements</head><p>We would like to thank the three anonymous reviewers for many helpful comments on our initial submission. We would also like to thank Mark Goadrich for proofreading this paper and giving many helpful suggestions, most specifically the idea to assess performance based on random permutations of the inputs.</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Encoding robotic sensor states for Q-Learning using the self-organizing map</title>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">J</forename><surname>Ferrer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of Computing Sciences in Colleges</title>
		<imprint>
			<biblScope unit="volume">25</biblScope>
			<biblScope unit="issue">5</biblScope>
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Creating visual reactive robot behaviors using growing neural gas</title>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">J</forename><surname>Ferrer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 25th Modern Artificial Intelligence and Cognitive Science Conference</title>
				<meeting>the 25th Modern Artificial Intelligence and Cognitive Science Conference</meeting>
		<imprint>
			<date type="published" when="2014">2014a</date>
			<biblScope unit="page" from="39" to="44" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Towards human-induced vision-guided robot behavior</title>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">J</forename><surname>Ferrer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 2014 AAAI Fall Symposium: Knowledge, Skill, and Behavior Transfer in Autonomous Robots</title>
				<meeting>the 2014 AAAI Fall Symposium: Knowledge, Skill, and Behavior Transfer in Autonomous Robots</meeting>
		<imprint>
			<date type="published" when="2014">2014b</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Cluster analysis of multivariate data: Efficiency vs. interpretability of classification</title>
		<author>
			<persName><forename type="first">E</forename><surname>Forgey</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Biometrics</title>
		<imprint>
			<biblScope unit="volume">21</biblScope>
			<biblScope unit="page">768</biblScope>
			<date type="published" when="1965">1965</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">A growing neural gas network learns topologies</title>
		<author>
			<persName><forename type="first">B</forename><surname>Fritzke</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Advances in Neural Information Processing Systems</title>
				<imprint>
			<publisher>MIT Press</publisher>
			<date type="published" when="1995">1995</date>
			<biblScope unit="volume">7</biblScope>
			<biblScope unit="page" from="625" to="632" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">A</forename><surname>Hapfelmeier</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Mertes</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Schmidt1</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Kramer</surname></persName>
		</author>
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Towards real-time machine learning</title>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the ECML PKDD 2012 Workshop on Instant Interactive Data Mining</title>
				<meeting>the ECML PKDD 2012 Workshop on Instant Interactive Data Mining</meeting>
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">A Voronoi diagram approach to autonomous clustering</title>
		<author>
			<persName><forename type="first">T</forename><surname>Kohonen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Koivistoinen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Ruuska</surname></persName>
		</author>
		<author>
			<persName><surname>Elomaa</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 9th International Conference on Discovery Science</title>
				<meeting>the 9th International Conference on Discovery Science</meeting>
		<imprint>
			<date type="published" when="2001">2001. 2006</date>
			<biblScope unit="page" from="149" to="160" />
		</imprint>
	</monogr>
	<note>Self-Organizing Maps</note>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Some methods for classification and analysis of multivariate observations</title>
		<author>
			<persName><forename type="first">J</forename><surname>Macqueen</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of the Fifth Berkeley Symposium on Math. Stat. and Prob</title>
				<meeting>of the Fifth Berkeley Symposium on Math. Stat. and Prob</meeting>
		<imprint>
			<date type="published" when="1967">1967</date>
			<biblScope unit="page" from="281" to="296" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Developing navigation behavior through self-organizing distinctive state abstraction</title>
		<author>
			<persName><forename type="first">J</forename><surname>Provost</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><forename type="middle">J</forename><surname>Kuipers</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Miikkulainen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Rublee</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Rabaud</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Konolige</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Bradski</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the IEEE International Conference on Computer Vision</title>
				<meeting>the IEEE International Conference on Computer Vision</meeting>
		<imprint>
			<date type="published" when="2006">2006. 2011</date>
			<biblScope unit="volume">18</biblScope>
			<biblScope unit="page" from="159" to="172" />
		</imprint>
	</monogr>
	<note>ORB: An efficient alternative to SIFT or SURF</note>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Teaching robots by moulding behavior and scaffolding the environment</title>
		<author>
			<persName><forename type="first">J</forename><surname>Saunders</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">L</forename><surname>Nehaniv</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Dautenhahn</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 1st ACM SIGCHI/SIGART Conference on Human-robot Interaction, HRI &apos;06</title>
				<meeting>the 1st ACM SIGCHI/SIGART Conference on Human-robot Interaction, HRI &apos;06<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2006">2006</date>
			<biblScope unit="page" from="118" to="125" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Applications of the self-organizing map to reinforcement learning</title>
		<author>
			<persName><forename type="first">A</forename><surname>Smith</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Neural Networks</title>
		<imprint>
			<biblScope unit="volume">15</biblScope>
			<biblScope unit="page" from="1107" to="1124" />
			<date type="published" when="2002">2002</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Modeling and simulation of elementary robot behaviors using associative memories</title>
		<author>
			<persName><forename type="first">C</forename><surname>Touzet</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Touzet</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">International Journal of Advanced Robotic Systems</title>
		<imprint>
			<biblScope unit="volume">22</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="165" to="170" />
			<date type="published" when="1997">1997. 2006</date>
		</imprint>
	</monogr>
	<note>Robotics and Autonomous Systems</note>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
