<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">JSEA</journal-id><journal-title-group><journal-title>Journal of Software Engineering and Applications</journal-title></journal-title-group><issn pub-type="epub">1945-3116</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/jsea.2012.53020</article-id><article-id pub-id-type="publisher-id">JSEA-18291</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Computer Science&amp;Communications</subject></subj-group></article-categories><title-group><article-title>
 
 
  Visualization of Pareto Solutions by Spherical Self-Organizing Map and It’s acceleration on a GPU
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>asato</surname><given-names>Yoshimi</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Takuya</surname><given-names>Kuhara</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Kaname</surname><given-names>Nishimoto</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Mitsunori</surname><given-names>Miki</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Tomoyuki</surname><given-names>Hiroyasu</given-names></name><xref ref-type="aff" rid="aff2"><sup>2</sup></xref></contrib></contrib-group><aff id="aff2"><addr-line>Faculty of department of life and medical science, Doshisha University, Kyoto, Japan</addr-line></aff><aff id="aff1"><addr-line>Factuly of Engineering, Doshisha University, Kyoto, Japan</addr-line></aff><author-notes><corresp id="cor1">* E-mail:<email>myoshimi@mikilab.doshisha.ac.jp(AY)</email>;</corresp></author-notes><pub-date pub-type="epub"><day>29</day><month>03</month><year>2012</year></pub-date><volume>05</volume><issue>03</issue><fpage>129</fpage><lpage>137</lpage><history><date date-type="received"><day>February</day>	<month>1st,</month>	<year>2012</year></date><date date-type="rev-recd"><day>March</day>	<month>1st,</month>	<year>2012</year>	</date><date date-type="accepted"><day>March</day>	<month>12th,</month>	<year>2012</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
  In this study, we visualize Pareto-optimum solutions derived from multiple-objective optimization using spherical self-organizing maps (SOMs) that lay out SOM data in three dimensions. There have been a wide range of studies involving plane SOMs where Pareto-optimal solutions are mapped to a plane. However, plane SOMs have an issue that similar data differing in a few specific variables are often placed at far ends of the map, compromising intuitiveness of the visualization. We show in this study that spherical SOMs allow us to find similarities in data otherwise undetectable with plane SOMs. We also implement and evaluate the performance using parallel sphere processing with several GPU environments.
 
</p></abstract><kwd-group><kwd>Self-Organizing Map; SOM; Spherical; GPU; Pareto-Optimal Solutions; GPU Acceleration</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>With the rapid rise of hardware and software performance in recent years, computer-aided numerical simulations are being used more and more for designing products. These include construction drawings with CAD (Computer-Aided Design), optimizations of design parameters, and validations of candidate solutions, among others.</p><p>It is often effective to formalize problems as optimization problems in order to employ numerical simulations as design aids. An optimization problem is one in which design variables are determined so that one or more objective functions yield the highest or lowest possible values under certain conditions. Real-world optimization problems tend to have multiple objective functions that pose trade-offs among each other: this type of problem is called a multiple-objective optimization problem. Because of the trade-offs, a multiple-objective optimization problem has multiple optimal points, each of which is the most fit for a certain objective function. The set of these solutions is called the Pareto-optimal solution set. Many approaches have been proposed on how to reach the Pareto-optimal solution set [<xref ref-type="bibr" rid="scirp.18291-ref1">1</xref>].</p><p>In product design, an important task is to choose the best solutions from a Pareto-optimal solution set. It is required, then, to visualize the solution set and show the designer what characteristics each of the solutions have in relation to other solutions and in relation to the containing set. However, whereas each solution in a multipleobjective optimization problem is a multi dimensional value consisting of many objective function values and design variables, the human eye can distinguish and comprehend merely three dimensions at most. This gap needs to be bridged in order to present an intuitive visualization.</p><p>One attempt at this challenge is the self-organizing map (SOM) [<xref ref-type="bibr" rid="scirp.18291-ref2">2</xref>], a kind of artificial neural network. A SOM is a means of translating high-dimension data to low-dimension data and is useful for visualizing a Paretooptimal solution set, typically in three or less dimensions.</p><p>Meanwhile, practical use of data analysis on the job site demands short execution times. Although future improvements in hardware performance will allow larger and larger problems to be computed in realistic timeframes, thus enabling a wider range of design aids, recent years have seen the increase of processor frequency hit the ceiling. Instead, grounds for performance gains are shifting to many-core architectures, namely graphic processing units (GPUs). Many-core architectures have multiple processing cores and yield exceptionally good performance with parallel algorithms. Thus, when handling large problems, one should employ highly parallel algorithms that are computed faster with many-core architectures.</p><p>While SOMs require a vast amount of computations, they also have high loop-level parallelism and can be expected to perform well on many core architectures [<xref ref-type="bibr" rid="scirp.18291-ref3">3</xref>].</p><p>Based on these premises, we explored the visualization of Pareto-optimal solutions using SOMs (spherical SOMs [<xref ref-type="bibr" rid="scirp.18291-ref4">4</xref>] specifically) and evaluated the system using a GPUbased implementations. Spherical SOMs have been reported [<xref ref-type="bibr" rid="scirp.18291-ref5">5</xref>] to be less vulnerable to distortions compared to plane SOMs due to the fact that they have no edges. They also show a comparatively rational spatial relationship among the data points and can be clustered more accurately [4,6].</p><p>In this paper, we discuss first the parallelizing of the spherical SOM algorithm, then evaluate its performance with a GPU-based implementation. Subsequently we discuss the visualization of Pareto-optimal solution sets for two optimization problems: test functions commonly used in multi-objective genetic algorithms, and a problem concerning the design of diesel engines, thus pointing out the effectiveness of spherical SOMs and their advantages over planar SOMs.</p></sec><sec id="s2"><title>2. Multi-objective Optimization Problems</title><p>A problem where multiple objectives must be optimized at the same time is called a multi-objective optimization problem. A multi-objective problem is generally formalized as Equation (1): there are n design variables x, and k objective functions f(x) are maximized (or minimized) under m constraints g(x).</p><disp-formula id="scirp.18291-formula102901"><label>(1)</label><graphic position="anchor" xlink:href="4-9301366\3fea5fd2-695f-4600-aaa8-9399632674c6.jpg"  xlink:type="simple"/></disp-formula><p>Because it is often the case with multiple-objective optimization that there are trade-offs among objective functions, not all objective functions <img src="4-9301366\5b84e9f3-b64b-43a2-baef-281a77e7c05f.jpg" /> can be optimized at the same time. Therefore we aim for a set of Paretooptimal solutions rather than a single optimal solution. Pareto-optimal solutions are defined by the solutions’ dominance over each other. Below is the definition of dominant solutions in multiple-objective optimization problems (when all objective functions are optimal when minimized):</p><p>Definition of dominance:</p><p>When (<img src="4-9301366\d05b210b-b1b6-4764-92e7-16a90e7325cb.jpg" />)</p><p>(a) <img src="4-9301366\e794a90f-920b-41cd-8507-38adf678d3f2.jpg" />dominates <img src="4-9301366\44b0f89e-be70-429e-bfba-edf2884c1a4f.jpg" /> when</p><disp-formula id="scirp.18291-formula102902"><graphic  xlink:href="4-9301366\25e0320b-ac1b-4a24-bca6-df9a3e2e0745.jpg"  xlink:type="simple"/></disp-formula><p>(b) <img src="4-9301366\1fdd30ba-87c4-403f-9fd2-089925bdfb58.jpg" />strongly dominates <img src="4-9301366\d1f24780-cda2-4f41-908d-611cbd07a286.jpg" /> when</p><disp-formula id="scirp.18291-formula102903"><graphic  xlink:href="4-9301366\4c42a680-f7f4-4021-a8ef-55dafa535579.jpg"  xlink:type="simple"/></disp-formula><p>A solution <img src="4-9301366\49abf685-98bc-4dae-bb8a-50be31a357ad.jpg" /> that dominates <img src="4-9301366\3fe12ddd-40ca-4266-a9e2-a79b400a7019.jpg" /> is better than <img src="4-9301366\6684eb7a-110c-4c26-817e-7f5a77b3d707.jpg" /> in the general sense. The intent then is to search for nondominated solutions. Based on this definition of dominance, below is the definition of Pareto-optimal solutions:</p><p>Definition of Pareto-optimal solutions:</p><p>When (<img src="4-9301366\6c2b1410-d929-4c79-ac6c-b8baabc2a1b7.jpg" />)</p><p>(a) <img src="4-9301366\0fe04a8b-5951-4ab8-a8a1-2baee7b3d0f3.jpg" />is a weak Pareto-optimal solution when there are no solutions <img src="4-9301366\d0027da0-b115-4c2a-85ac-e1a104465a46.jpg" /> that strongly dominate <img src="4-9301366\8268f35c-b4f8-41a6-b139-739b3b889970.jpg" /></p><p>(b) <img src="4-9301366\43763b3e-b35d-41b0-a34d-4f324a058eba.jpg" />is a Pareto-optimal solution when there are no solutions <img src="4-9301366\caf43b16-2d2a-4320-9d9e-653d9220744b.jpg" /> that dominate <img src="4-9301366\985b44da-f6ae-4fe2-b1a6-3f0899c90d3d.jpg" /></p><p><xref ref-type="fig" rid="fig1">Figure 1</xref> shows an example of Pareto-optimal solutions when there are two objectives (k = 2). Solid dots show Pareto-optimal solutions. Open dots are inferior in every way to Pareto-optimal solutions. Thus we can ignore the white dots and obtain the front consisting of Pareto-optimal solutions, which is shown as the dashed curve (the Pareto-optimal front).</p><p>One way to visually investigate what kinds of Paretooptimal solutions constitute a Pareto-optimal solution set is SOM.</p></sec><sec id="s3"><title>3. SOM</title><sec id="s3_1"><title>3.1. SOM Overview</title><p>SOM is a type of neural network trained by unsupervised learning and is known as a means of data mining. SOM can map a group of data into an arbitrary number of dimensions without distorting correlations among these data points. Thus it is useful for visualizing high dimension data into lower dimensions (typically two or three) so that characteristics can be grasped intuitively. It also lets us cluster the solution set and analyze its traits.</p></sec><sec id="s3_2"><title>3.2. SOM Algorithm</title><p>A SOM consists of two layers: the competitive layer and the input layer. The competitive layer is where neurons are placed, and the input layer is the group of input data points. Neurons on the competitive layer are updated as the SOM is trained with successive read-ins from the input layer.</p><p>An input data point, defined as<img src="4-9301366\37c90edb-7afe-4e77-9a9b-72b4f97f16fd.jpg" />, is presented to all neurons in the network. Any given neuron i has a weight vector with number of dimensions n, corresponding to the dimensions of the input data. A neuron’s weight vector for a given time t is defined as<img src="4-9301366\9dc096b2-f006-4e7a-b856-cab6dde04412.jpg" />. Learning coefficient α(t), neighborhood function h<sub>ci</sub>(t), and neighborhood range σ(t) are also defined. A basic SOM algorithm is as follows:</p><p>1) Initialize competitive layer With <img src="4-9301366\e2708588-ee33-463b-b1a5-c8458f5a9940.jpg" /> and the repetition count<img src="4-9301366\e248b0e5-a107-46c5-8aa8-c309b0b654bb.jpg" />, all neurons <img src="4-9301366\bf181232-86f7-4e5d-9602-7db920161832.jpg" /> in the competitive layer are set with initial weight vectors.</p><p>2) Compute distances Input data point <img src="4-9301366\6a2af6ca-1fc9-462a-b44b-037cec774593.jpg" /> is presented to the competition layer and Euclidian distances from the neurons</p><p><img src="4-9301366\c7736b5e-375b-4ca9-bb23-1edd5f7f5201.jpg" />are computed.</p><p>3) Find the winner neuron The winner neuron c where</p><p><img src="4-9301366\64d15063-3b22-4405-b8e8-59614ac33731.jpg" />is determined.</p><p>4) Train The winner neuron c and all neurons within distance dci from it are adjusted by applying Equations (2). The neighborhood function h<sub>ci</sub>(t) is defined by Equations (3) using the learning coefficient α(t). α(t) and the neighborhood range σ(t) are defined by Equations (4) and (5) respectively.</p><disp-formula id="scirp.18291-formula102904"><label>(2)</label><graphic position="anchor" xlink:href="4-9301366\6dae41dd-a139-41d3-b401-59bac079e0e7.jpg"  xlink:type="simple"/></disp-formula><disp-formula id="scirp.18291-formula102905"><label>(3)</label><graphic position="anchor" xlink:href="4-9301366\d5a06345-a8e0-487e-81cb-03dab5e698d7.jpg"  xlink:type="simple"/></disp-formula><disp-formula id="scirp.18291-formula102906"><label>(4)</label><graphic position="anchor" xlink:href="4-9301366\1dc6dedc-8bd9-4840-a965-457d305602aa.jpg"  xlink:type="simple"/></disp-formula><disp-formula id="scirp.18291-formula102907"><label>(5)</label><graphic position="anchor" xlink:href="4-9301366\083ce52b-fb20-405f-8dcd-ca3ad20e3e06.jpg"  xlink:type="simple"/></disp-formula><p>5) Terminate If<img src="4-9301366\6547d48d-b84c-4e3d-8134-47aaa4b7ba89.jpg" />, set <img src="4-9301366\79d9f839-481a-42d8-a9e4-990b99c41a39.jpg" /> and return to step (2). Otherwise exit the loop.</p></sec></sec><sec id="s4"><title>4. Spherical SOM</title><sec id="s4_1"><title>4.1. Spherical SOM Overview</title><p>When analyzing a Pareto-optimal solution set, it is important not only to grasp where the solutions are clustered, but also to see what other neighboring solutions exist for a given solution, or how the solutions are positioned in relation to each other.</p><p>A map generated with SOM shows similar data points close to each other, which is helpful in assessing the similarities of the solutions. However, the fact that a pair of data points is placed far from each other on the map does not necessarily mean that the similarity is low. A designer analyzing a Pareto-optimal solution set would prefer similar data points to appear as close to each other on the map as possible.</p><p>This apparent similarity (or proximity) of the solutions depends heavily on the form of the competitive layer used in SOM. A competitive layer in the shape of a twodimensional plane often yields distortions in proximity because edges exist, and the number of neurons in the neighborhood range differs from neuron to neuron. To avoid this, SOMs with competitive layers in closed forms such as tori or spheres have been proposed.</p><p>Torus SOMs are easy to implement as an extension to plane SOMs, but the resulting visualization takes the form of a donut, which is difficult to interpret with human eyes, whereas spherical SOMs place the neurons on the surface of a sphere, making it easier to grasp the spatial relations. Thus spherical SOMs are suitable for visualization.</p></sec><sec id="s4_2"><title>4.2. Implementation of a Spherical SOM</title><sec id="s4_2_1"><title>4.2.1. Data Structure</title><p>Neurons in a spherical SOM are commonly placed in a geodesic dome, a type of quasi-regular polyhedron [<xref ref-type="bibr" rid="scirp.18291-ref5">5</xref>]. A geodesic dome is an approximated sphere constructed by halving each edge of a regular polyhedron, thus recursively increasing the number of surfaces. Neurons are placed on the apices of the geodesic dome, forming a hexagonal grid. Apices on a geodesic dome give the neurons a more uniform arrangement on the surface of a sphere compared to other methods such as polar coordinates. In this study we used a regular icosahedron, the regular polyhedron with the largest possible number of surfaces, for the original approximation of the sphere to further ensure uniformity.</p><p>A geodesic dome, when unfolded via the edges of the icosahedron, forms a net that can be mapped to and handled in two dimensions. Thus, our competitive layer is represented as a two-dimensional array of neurons as shown in <xref ref-type="fig" rid="fig2">Figure 2</xref>.</p></sec><sec id="s4_2_2"><title>4.2.2. Parameters of the Neuron Struct</title><p>The neurons in the two-dimensional array mentioned above have a data structure with the following properties:</p><p>List of links to adjacent neurons There are 6 adjacent neurons for any given neuron, for they are placed on a hexagonal grid. Array indices for adjacent neurons can be computed using a fairly simple function for a plane SOM, but are unable to compute in some cases for a spherical SOM, namely at the edges of the net. Therefore we store the addresses of the adjacent neurons as a list for later reference.</p><p>Weight vector The weight vector is stored as a one-dimensional array.</p><p>Euclid distance This property temporarily holds the computed distance between a neuron and a given input data point.</p><p>Trained flag This flag is turned on if a neuron has already been trained with a given input data point to avoid redundant exposures.</p><p>Validity flag This flag is turned off if a neuron is not a valid part of competitive layer, in which case it should be excluded when computing distances and winner neurons.</p><p>Three-dimensional coordinates These coordinates are used to draw a three dimensional sphere.</p></sec><sec id="s4_2_3"><title>4.2.3. Distance and Winner Neuron Computation</title><p>Because the neurons are placed in a two-dimensional array, distances and BMUs can be computed by simply scanning this array, as with a plane SOM. They are filtered before computation, however, according to their validity flags.</p></sec><sec id="s4_2_4"><title>4.2.4. Choosing Neurons to Be Trained</title><p>A SOM is trained by choosing neurons that are within a certain distance from a given point and adjusting them. In order to choose these neurons, we construct a search tree that has a certain depth by recurring into the link of adjacent neurons, thus representing a range of neurons to be trained. The tree is then traversed breadth first so that neurons closer to the origin (winner neuron) are trained first. Below are the details of this process.</p><p>First, the winner neuron is trained. Then, we retrieve all adjacent neurons of the winner neurons and train them. At the same time, a list of neurons trained is created as shown in <xref ref-type="fig" rid="fig3">Figure 3</xref>. Then, we train the neurons that are adjacent to the ones in the list, effectively moving outward (these neurons are also stored in a new list).</p><p>The trained flag is checked before each neuron is trained so that one neuron does not get trained multiple times from one input data point. Thus we recursively train neighboring neurons of the winner without duplications or omissions.</p></sec><sec id="s4_2_5"><title>4.2.5. Displaying the Competitive Layer</title><p>It is often effective to colorize each neuron when displaying the competitive layer as a visualization. We mapped the weight vector of each of the neurons into the HSV color space to colorize the neurons. The Saturation and Value were fixed to the maximum, while the Hue was determined from the weight vector. The Hue can take any value in range [0, 360]. We used values in range [0, 280] so that large values show up as red and small values show up as purple.</p></sec></sec></sec><sec id="s5"><title>5. Execution of Spherical SOM with GPUs</title><sec id="s5_1"><title>5.1. Hardware Acceleration</title><p>The SOM algorithm is known to have high parallelism for its distance computation, winning neuron computation, and training in each cycle of its execution. Therefore we can expect fast execution using recent technologies such as multi-core processors and other hardware suitable for parallel computation.</p><p>High-speed executions of SOMs have been much debated since the well-known research by Carpenter, et al. on hardware acceleration in 1987 [<xref ref-type="bibr" rid="scirp.18291-ref7">7</xref>]. COKOS (Coprocessor for Kohonen’s Self-organizing map), a SIMD processor specifically for SOMs, was developed by Speckman in 1992 [<xref ref-type="bibr" rid="scirp.18291-ref8">8</xref>]. This processor had 8 parallel processing cores and was designed to make the most out of SOM’s parallelism.</p><p>There have also been attempts to construct a SOM accelerator on FPGA by Porrmann and Tamukoh [<xref ref-type="bibr" rid="scirp.18291-ref9">9</xref>]. Porrman constructed a piece of hardware that executes SOMs with 6 processing modules connected to each other in a ring topology. Tamukoh implemented a piece of hardware that chooses a winner neuron by computing all distances at once and evaluated it using a vector dimension number of 128 and a map size of 16 by 16. He also used Manhattan distances instead of Euclidian distances to simplify computations and reduce circuit size. Processing modules and data memories existed for each weight vector, and the way these modules connected with each other replicated the competitive layer. Thus the modules were able to compute in a massively parallel manner. This piece of hardware could compute a SOM in constant time regardless of map size, and was proved to be 350 times faster than an Intel Xeon 2.80 GHz CPU.</p><p>In 2009 Shitara attempted a high-speed execution of SOM using a GPU. He used an NVIDIA GeForce GTX- 280, which was 150 times faster than a CPU [<xref ref-type="bibr" rid="scirp.18291-ref10">10</xref>]. This high parallelism holds for spherical SOMs as well. In this study we use GPUs for which development environments</p><p>have been published (and are actively researched) to implement a spherical SOM and discuss the performance based on execution with GPUs and conventional CPUs.</p></sec><sec id="s5_2"><title>5.2. Parallelizing the SOM Algorithm</title><p>Let us discuss which parts of the SOM algorithm may be parallelized.</p><p>The most costly process in the algorithm is the computations of Euclidian distances between input vectors and neurons’ weight vectors. These computations are independent from each other so they may be parallelized.</p><p>Selecting the winner neuron, the process in which a neuron with the minimum Euclidian distance is determined, may also be parallelized. Sequential comparison would be O(n), but this can be reduced to O(log(n)) by employing a tournament-style comparison with binary trees.</p><p>Training of the neurons may also be parallelized. In this process, computations against weight vectors for all neurons within a certain distance from the winner neuron are to be performed for a given input data point. These adjustments are independent of each other and may be parallelized.</p></sec><sec id="s5_3"><title>5.3. Evaluation</title><p>Based on the above facts, we implemented a spherical SOM program that is executable with a GPU, and evaluated its execution speed.</p><p>C++, along with CUDA, NVIDIA’s GPU development environment, was used in implementation. The GPUs we used are 1) GeForce 8400GS, 2) GeForce GTX280, and 3) Tesla C1060. <xref ref-type="table" rid="table1">Table 1</xref> shows their technical specifications.</p><p>We also implemented a spherical SOM program for CPU to compare. The CPU we used was 4) Opteron 1210 HE.</p><p>SOM settings were as follows:</p><p>• 5-dimensional neurons</p><p>• 50,000 (20 &#215; 50<sup>2</sup>) weight vectors</p><p>• [0,9] neighborhood range</p><sec id="s5_3_1"><title>5.3.1. Results</title><p><xref ref-type="table" rid="table2">Table 2</xref> shows execution times for each GPU and CPU.</p></sec></sec></sec></body><back><ref-list><title>References</title><ref id="scirp.18291-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">P. Czyzzak and A. Jaszkiewicz, “Pareto Simulated Annealing—A Metatheuristic Technique for Multiple-Objective Combinatorial Optimization,” Journal of Multi-Criteria Decision Analysis, Vol. 7, No. 7, 1998, 34-47.  
doi:10.1002/(SICI)1099-1360(199801)7:1&lt;34::AID-MCDA161&gt;3.0.CO;2-6</mixed-citation></ref><ref id="scirp.18291-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">T. Kohonen, “The Self-Organizing Map,” Proceedings of the IEEE, Vol. 78, No.9, 1990, pp. 1464-1480.  
doi:10.1109/5.58325</mixed-citation></ref><ref id="scirp.18291-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">R. D. Prabhu, “SOMGPU: An Unsupervised Pattern Classifier on Graphical Processing Unit,” IEEE Congress on Evolutionary Computation, IEEE World Congress on Computational Intelligence, Hong Kong, 1-6 June 2008, pp. 1011-1018. doi: 10.1109/CEC.2008.4630920</mixed-citation></ref><ref id="scirp.18291-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">P. K. Kihato, H. Tokutaka, M. Ohkita, K. Fujimura, K. Kotani, Y. Kurozawa and Y. Maniwa, “Spherical and Torus SOM Approaches to Metabolic Syndrome Evaluation,” Neural Information Processing, Vol. 4985, 2008, pp. 274-284. doi:10.1007/978-3-540-69162-4_29  </mixed-citation></ref><ref id="scirp.18291-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">Y. Wu and M. Takatsuka, “Spherical Self-Organizing Map Using Efficient Indexed Geodesic Data Structure,” Neural Networks, Vol. 19, No. 6-7, 2006, pp. 900-910.  
doi:10.1016/j.neunet.2006.05.021.</mixed-citation></ref><ref id="scirp.18291-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">H. Tokutaka, P. K . Kihato, K. Fujimura and M. Ohkita, “Cluster Analysis using Spherical SOM,” Proceedings of the 6th International Workshop on Self-Organizing Maps. Bielefeld, 3-6 September 2007, pp. 1-7. 
doi:10.2390/biecoll-wsom2007-101</mixed-citation></ref><ref id="scirp.18291-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">G. A. Carpenter and S. Grossberg, “A Massively Parallel Architecture for a Self-Organizing Neural Pattern Recognition Machine,” Computer Vision, Graphics and Image Processing, Vol. 37, No. 1, 1987, pp. 54-115.  
doi:10.1016/S0734-189X(87)80014-2</mixed-citation></ref><ref id="scirp.18291-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">H. Speckmann, P. Thole and W. Rosenstiel, “A COprocessor for KOhonen’s Self-Organizing Map (COKOS),” Proceedings of 1993 International Joint Conference on Neural Networks, Nagoya, 25-29 October 1993, pp. 1951-1954. doi:10.1109/IJCNN.1993.717038</mixed-citation></ref><ref id="scirp.18291-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">H. Tamukoh, T. Aso, K. Horio and T. Yamakawa, “Self-organizing Map Hardware Accelerator System and Its Application to Real Time Image Enlargement,” Proceedings of 2004 IEEE International Joint Conference on Neural Networks, Budapest, 25-29 July 2004, pp. 2686-2687. 
doi:10.1109/IJCNN.2004.1381073</mixed-citation></ref><ref id="scirp.18291-ref10"><label>10</label><mixed-citation publication-type="other" xlink:type="simple">A. Shitara, Y. Nishikawa, M. Yoshimi and H. Amano, “Implementation and Evaluation of Self-Organizing Map Algorithm on a Graphic Processor,” Proceeding Parallel and Distributed Computing and Systems 2009, Cambridge, 2-4 November 2009.</mixed-citation></ref><ref id="scirp.18291-ref11"><label>11</label><mixed-citation publication-type="other" xlink:type="simple">T. Hiroyasu, K. Kobayashi, M. Nishioka and M. Miki, “Diversity Maintenance Mechanism for Multi-Objective Genetic Algorithms Using Clustering and Network Inversion,” Lecture Notes in Computer Science, Vol. 5199, No. 1, 2008, pp. 722-732. 
doi:10.1007/978-3-540-87700-4_72</mixed-citation></ref><ref id="scirp.18291-ref12"><label>12</label><mixed-citation publication-type="other" xlink:type="simple">S. Obayashi and D. Sasaki, “Visualization and Data Mining of Pareto Solutions Using Self-Organizing Map,” Proceedings of the 2nd International Conference on Evolutionary Multi-Criterion Optimization, Faro, 8-11 April, 2003, pp.796-809. 
doi: 10.1007/3-540-36970-8_56</mixed-citation></ref></ref-list></back></article>