WO2014129116A1 - 情報処理装置、情報処理方法及び非一時的なコンピュータ可読媒体 - Google Patents
情報処理装置、情報処理方法及び非一時的なコンピュータ可読媒体 Download PDFInfo
- Publication number
- WO2014129116A1 WO2014129116A1 PCT/JP2014/000390 JP2014000390W WO2014129116A1 WO 2014129116 A1 WO2014129116 A1 WO 2014129116A1 JP 2014000390 W JP2014000390 W JP 2014000390W WO 2014129116 A1 WO2014129116 A1 WO 2014129116A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- node
- winner
- distance
- density
- nodes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0495—Quantised networks; Sparse networks; Compressed networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/0895—Weakly supervised learning, e.g. semi-supervised or self-supervised learning
Definitions
- the present invention relates to an information processing apparatus, an information processing method, and a non-transitory computer readable medium that sequentially input input vectors belonging to an arbitrary class and learn an input distribution structure of the input vectors.
- Non-Patent Document 1 As a learning technique for proliferating neurons as necessary during learning, a technique called a self-organizing neural network (SOINN: Self-Organizing Incremental Neural Network) has been proposed (see Non-Patent Document 1).
- SOINN Self-Organizing Incremental Neural Network
- it is possible to learn non-stationary inputs by autonomously managing the number of nodes, and appropriate class numbers and phases even for classes having complex distribution shapes. It has many advantages such as the ability to extract structures.
- SOINN for example, in pattern recognition, after learning a hiragana character class, it is possible to additionally learn a katakana character class.
- E-SOINN Enhanced SOINN
- Patent Document 1 a technique called E-SOINN (Enhanced SOINN) disclosed in Patent Document 1 has been proposed as a technique related to SOIN.
- E-SOINN has the advantage that online additional learning that adds learning as needed is possible and that learning efficiency is good rather than batch learning. For this reason, E-SOINN allows additional learning even when the learning environment changes to a new environment.
- E-SOINN also has an advantage of high noise resistance against input data.
- Non-Patent Document 1 SOINN
- Patent Document 1 E-SOINN
- the first problem regarding stability is that the learning result is greatly affected by the input order of the input data. That is, when the learning environment is not changed and only the input order is changed and input data is input and learning is repeated, the learning results (the number of nodes and the positions of the nodes in the network) are different.
- FIGS. 2A and 2B respectively show learning results by E-SOINN for the Gaussian data distribution set of FIG. 1, and two Gaussian distributions overlap with respect to the distribution of input data.
- FIG. 2A shows a steady learning result by E-SOINN after 500,000 learnings.
- FIG. 2B shows a steady learning result by E-SOINN after 1 million learnings.
- these distributions generated as a result of learning do not match the input distribution shown in FIG. That is, the input data shown in FIG. 1 includes two identical Gaussian distributions, and FIGS. 2A and 2B show learning results for the input data shown in FIG. However, in each learning result of FIGS.
- the number of nodes at the center of each distribution is not the same, so that the centers of the two Gaussian distributions of FIG. ) Of the two Gaussian distributions of FIG. 1 and the centers of the two Gaussian distributions of FIG. 1 and the centers of the two Gaussian distributions of FIG. Originally, the centers of the two Gaussian distributions in FIG. 1 should coincide with the centers of the two Gaussian distributions in FIGS.
- E-SOINN expresses the density of the nodes using the average value of the accumulated points of the nodes (see paragraphs 0067, 12, 12 and 13 of Patent Document 1).
- E-SOINN calculates “p i ” which is the point value of the node density of the node i using the following equation (1).
- the node density point value p i the calculated value of the expression (1) is given when the node i is a winner node, and the value 0 is given otherwise.
- E-SOINN tries to delete large overlapping areas that exist between classes.
- the E-SOINN algorithm is not stable, it causes repeated integration and separation of sub-clusters.
- the winner node learning time calculation means for increasing the time by a predetermined value and the inter-class node insertion determination means, if the inter-class node insertion is not executed, the node of interest is directly determined by the node and edge of interest.
- the first winner node's weight vector and the first A weight vector updating means for updating the weight vector of the adjacent node of the operator node so as to be closer to the input vector, and the learning time value of the node is relative for each predetermined period according to the total number of the input vectors.
- the connection structure of the input pattern can be accurately described without being affected by the input order of the input data, and thus has a stable performance superior to that of the prior art.
- the interclass node insertion determination means when the interclass node insertion is not executed, the first winner node and the second winner node belong based on the sub-cluster label of the given node Each of the sub-clusters is determined, and as a result of the determination, when the first winner node and the second winner node belong to different sub-clusters, regarding the node density of the first winner node and the second winner node, The node density condition for the first winner node based on the average node density of the sub-cluster including the first winner node, or the average node density of the sub-cluster including the second winner node.
- Edge connection that further determines whether or not at least one of the node density conditions for two winner nodes is met And (1) a case where at least one of the first winner node and the second winner node does not belong to any sub-cluster or belongs to the same sub-cluster as a result of the determination by the edge connection determination unit In this case, an edge is connected between the first winner node and the second winner node, or (2) a node for the first winner node and the second winner node as a result of the determination by the edge connection determination means.
- an edge is connected between the first winner node and the second winner node, and a node density condition for the first winner node and the second winner node If at least one of the first winner node and the second winner node is not satisfied, an edge connection means that does not connect an edge between the first winner node and the second winner node, a node of interest, and the note
- the node density calculation means for calculating the node density of the node of interest based on the average distance from the adjacent node of the node to be used, and the node having the highest node density locally as a vertex, respectively different from the vertex A sub-cluster label is assigned, and the same sub-cluster label as that of the adjacent node having the maximum node density is assigned to all the nodes to which the sub-cluster label is not assigned.
- a Voronoi region is generated with a larger vertex as a reference, and in the generated Voronoi region, a subcluster including the reference vertex and a subcluster including another vertex different from the reference vertex are overlapped regions. And the above criteria are used when the average node density condition of the nodes located in the overlap region is satisfied.
- Sub-cluster determining means for assigning a sub-cluster label of the sub-cluster including the point as a sub-cluster label of the sub-cluster including the other vertex may be further provided.
- a weighted first distance calculation formula for calculating a distance between nodes based on the Euclidean distance and a weighted second distance for calculating a distance between nodes based on another distance measure different from the Euclidean distance.
- a distance calculation formula between nodes including the first distance calculation formula using the minimum distance value and the maximum distance value based on the Euclidean distance between any two nodes in the network.
- the second distance calculation formula may calculate a distance between nodes based on a cosine distance. Thereby, it is possible to have good accuracy even for high-dimensional data.
- Node density update determination means for checking whether or not the value has changed, and determining that the node density is updated when at least one value has changed, wherein the node density calculation means comprises: (1) Each component of the vector of the average distance from the adjacent node of the first winner node is calculated using each of the first distance calculation formula and the second distance calculation formula, and (2) the calculated first winner node Calculating a vector of point values of the node density of the first winner node based on the vector of the average distance from the adjacent node of (3), and (3) the calculated first winner node of the first winner node A vector of accumulated point values of node density of the first winner node based on a vector of point values of card density; and (4) a vector of accumulated point values of the node density of the calculated first winner node.
- the node density is updated as a result of the determination by the node density update determination means, the two nodes based on the Euclidean distance before and after the change are calculated. For all nodes present in the network based on the minimum and maximum distance values between and the minimum and maximum distance values between the two nodes based on the other distance measure before and after the change, Update the vector of accumulated point values of the node density of the node of interest; (6) the node of the updated node of interest May be re-calculates the node density of the node to the target based on a vector of the accumulated point value of de density.
- the minimum distance value and the maximum distance value between the two nodes based on the Euclidean distance and the minimum distance value and the maximum distance value between the two nodes based on other distance measures. Even when at least one of the values changes, a more accurate node density that reflects these changes can be automatically calculated.
- An information processing method has a network structure in which nodes described by multidimensional vectors and sides connecting the nodes are arranged, and input vectors belonging to an arbitrary class are sequentially input
- the detecting means detects a node whose learning time value of the node is relatively large and biased for each predetermined period corresponding to the total number of the input vectors, and the weight vector of the detected node and its adjacent nodes.
- a non-transitory computer readable medium is characterized by causing a computer to execute the information processing.
- an information processing apparatus it is possible to provide an information processing apparatus, an information processing method, and a non-transitory computer-readable medium having excellent stability with respect to a learning result. Furthermore, it is possible to provide an information processing apparatus, an information processing method, and a non-transitory computer-readable medium having good accuracy even for high-dimensional data.
- E-SOINN a technique related to the present invention
- FIG. 3 shows the processing by E-SOINN (refers to the processing of S611, S607, S612, etc. of FIG. 5 of Patent Document 1; specifically, the processing described in paragraphs 0071 to 0079 of the specification).
- the distribution of the node density of the nodes in the network is shown. In this example, there is an overlapping area between sub-clusters, and the distribution of node density has a large variation.
- reference symbols A and B respectively indicate two sub-clusters generated by the processing by E-SOINN.
- a set of nodes connected by edges in the network is a cluster, and a subset of the clusters is a sub-cluster.
- the sub-cluster is a set of nodes having the same sub-cluster label.
- E-SOINN defines predetermined conditions (indicated by paragraph 0076, number (14), number (15), etc. of the specification of Patent Document 1) in order to integrate sub-cluster A and sub-cluster B. Yes.
- E-SOINN When new input data is input to the network, E-SOINN has its first winner node belonging to sub-cluster A, its second winner node belonging to sub-cluster B, and (sub-cluster A and Obviously, sub-cluster A and sub-cluster B and sub-cluster C and sub-cluster D are not integrated (because input data first appears in the overlap region of B).
- the conditions for integration are met very easily.
- E-SOINN attempts to integrate sub-cluster A and sub-cluster B, but sub-cluster A should inherently belong to sub-cluster C, and sub-cluster B should inherently belong to sub-cluster D. Therefore, this problem causes repeated integration and separation of subclusters.
- FIG. 4 shows the learning result by E-SOINN for input data having three Gaussian distributions. The three Gaussian distributions overlap each other, and the integration and separation into a plurality of subclusters are disturbed. It has been broken.
- LBSOINN treats the node load in the network as node learning time, and proposes a node load balancing method using this node learning time. LBSOINN can further stabilize the network by this load balancing method. For this reason, LBSOINN is referred to as load balance. Also, LBSOINN avoids disruption of the network structure when deleting overlapping regions between classes by using a sub-cluster determination method based on Voronoi Tessellation. In addition, LBSOINN introduces a new distance measure that is suitable for on-line additional learning of high-dimensional data with respect to the distance measure indicating the similarity between two nodes.
- FIG. 20 is a diagram illustrating an example of a system configuration for realizing the information processing apparatus according to the first embodiment as an example of LBSOINN.
- the information processing apparatus 1 can be realized by a computer 10 such as a dedicated computer or a personal computer (PC). However, the computer does not need to be physically single, and a plurality of computers may be used when performing distributed processing.
- the computer 10 includes a CPU 11 (Central Processing Unit), a ROM 12 (Read Only Memory), and a RAM 13 (Random Access Memory), which are connected to each other via a bus 14.
- OS software for operating the computer is omitted, it is assumed that a computer for constructing the information processing apparatus is also provided.
- the information processing apparatus 1 has a non-hierarchical neural network in which nodes described by n-dimensional vectors are arranged, and includes input information acquisition means 21, node density update determination means 22, node density calculation means 23, winner node search Means 24, inter-class node insertion determination means 25, inter-class node insertion means 26, edge connection determination means 27, edge connection means 28, winner node learning time calculation means 29, weight vector update means 30, old age edge deletion means 31, input Number determination means 32, load balancing means 33, sub-cluster determination means 34, noise node deletion means 35, learning end determination means 36, class determination means 37, and output information display means 38 are included. Details of each means will be described below.
- the node density update determination unit 22 is configured to calculate a minimum distance value and a maximum distance value between nodes based on each distance measure, with respect to the nodes stored in the temporary storage unit and the minimum distance value and the maximum distance value between nodes based on each distance measure. Whether or not at least one value has changed is confirmed. If at least one value has changed, it is determined that the node density is updated, and the result is stored in the temporary storage unit. Details of the minimum distance value and the maximum distance value between nodes based on each distance scale will be described later.
- the winner node search means 24 uses the input vector and the node stored in the temporary storage unit as the first winner node as the node located at the closest distance to the input vector, and as the second winner as the node located at the second closest distance. Search as a node, and store the result in a temporary storage unit. Details of the distance scale according to the present embodiment will be described later.
- the edge connection determination unit 27 converts the node and the sub-cluster label of the node stored in the temporary storage unit to the sub-cluster label of the node according to the determination result by the inter-class node insertion determination unit 25 stored in the temporary storage unit. Based on the sub-cluster to which the first winner node and the second winner node belong, the result is stored in the temporary storage unit.
- the sub-cluster label of a node indicates a sub-cluster to which the node belongs.
- the cluster indicates a set of nodes connected by edges with respect to the nodes included in the mixed class, and the sub-cluster indicates a subset of a cluster including nodes assigned with the same sub-cluster label.
- the edge connection determination unit 27 determines whether the first winner node and the second winner node belong to different sub-clusters as a result of the determination stored in the temporary storage unit.
- the node density condition of the first winner node with respect to the node density of the first winner node and the second winner node, with respect to the average node density of the subcluster including the first winner node Alternatively, it is further determined whether or not at least one of the node density conditions of the second winner node based on the average node density of the sub-cluster including the second winner node is satisfied, and the result is stored in the temporary storage unit Store. Details of the edge connection determination process by the edge connection determination means 27 will be described later.
- the edge connection means 28 indicates that at least one of the first winner node and the second winner node does not belong to any sub-cluster, or the same sub When belonging to a cluster, for the nodes stored in the temporary storage unit and the sides between the nodes, the sides are connected between the first winner node and the second winner node, and the result is stored in the temporary storage unit.
- the edge connection means 28 satisfies the case where at least one of the node density conditions of the first winner node and the second winner node is satisfied as a result of the determination by the edge connection determination means 27 stored in the temporary storage unit.
- the sides are connected between the first winner node and the second winner node, and the result is stored in the temporary storage unit.
- the winner node learning time calculation means 29 increases the learning time of the first winner node by a predetermined value for the node and the learning time of the node stored in the temporary storage unit, and stores the result in the temporary storage unit. In the present embodiment, details of the learning time of the node will be described later.
- the old age side deletion means 31 increases the age of all sides directly connected to the first winner node by a predetermined value for the nodes stored in the temporary storage unit, the sides between the nodes, and the age of the sides. Store the result in the temporary storage. Further, the old-age side deleting means 31 deletes a side having an age exceeding a predetermined threshold set in advance and stored in the temporary storage unit for the side stored in the temporary storage unit, and the result is stored in the temporary storage unit. Store.
- Subcluster label subcluster containing vertices and a grant as a sub-cluster labels subcluster containing other vertices and stores the result in the temporary storage unit. Details of the processing by the sub-cluster determining unit 34 will be described later.
- the learning end determination means 36 determines whether or not to end the learning process by the information processing apparatus 1.
- ⁇ 1 load balancing process between nodes>
- ⁇ 2 sub-cluster determination process>
- ⁇ 3 framework of new distance scale combination>
- ⁇ 4 definition of similarity threshold>
- ⁇ 5 Definition of new node density and calculation process thereof
- ⁇ 6 edge connection determination process and edge connection process>.
- this situation is defined as a state where the load on the nodes is in an unbalanced state.
- the following load balancing process between nodes is introduced.
- the load balancing means 33 is arranged to store the nodes stored in the temporary storage unit, the edges between the nodes, the sub-cluster labels of the nodes, The weight vector, node learning time, and node density are relatively large and biased nodes (the load is in an unbalanced state) compared to the average learning time of the subcluster to which the node belongs. A certain node) is detected, a new node is inserted between the detected node and its adjacent node, the learning time of the detected node and its adjacent node is reduced, and the result is stored in the temporary storage unit.
- the load balancing means 33 uses the node learning time for the node, the node sub-cluster label, and the node learning time stored in the temporary storage unit, based on the node learning time. And the result is stored in the temporary storage unit. For example, the load balancing means 33 searches for a node q having the maximum node learning time in each sub-cluster, and stores the result in the temporary storage unit. Further, the load balancing means 33 determines whether or not the detected learning time of the node q is relatively large and biased with respect to the learning time of the node and the node stored in the temporary storage unit, and the result is obtained. Store in the temporary storage.
- the load balancing means 33 is the adjacent node having the maximum learning time, for example, among the adjacent nodes of the node q based on the learning time of the node and the learning time of the node stored in the temporary storage unit. f is determined, and the result is stored in the temporary storage unit. For example, the load balancing means 33 determines an adjacent node f that satisfies the following expression stored in the temporary storage unit, and stores the result in the temporary storage unit.
- N q indicates an adjacent node set of the node q.
- the load balancing means 33 generates a new node r for the node stored in the temporary storage unit, adds it to the network, and stores the result in the temporary storage unit. Further, the load balancing means 33 obtains the weight vector W r of the node r , the weight vector W q of the node q, and the weight vector W f of the adjacent node f with respect to the nodes and node weight vectors stored in the temporary storage unit. The result is calculated by interpolation, and the result is stored in the temporary storage unit. For example, the load balancing means 33 executes the operation and calculation processing shown in the following expression stored in the temporary storage unit, and stores the result in the temporary storage unit.
- the load balancing means 33 uses the learning time M r of the node r , the learning time M q of the node q, and the learning time M f of the adjacent node f for the node and the learning time of the node stored in the temporary storage unit. The result is calculated by interpolation, and the result is stored in the temporary storage unit. For example, the load balancing means 33 executes a calculation process shown in the following equation stored in the temporary storage unit, and stores the result in the temporary storage unit.
- d indicates the number of dimensions of the input vector.
- the load balancing means 33 decreases the learning time M q of the node q and the learning time M f of the adjacent node f by a predetermined ratio with respect to the node and the learning time of the node stored in the temporary storage unit, respectively. Is stored in the temporary storage unit.
- the load balancing means 33 executes a calculation process shown in the following equation stored in the temporary storage unit, and stores the result in the temporary storage unit.
- d indicates the number of dimensions of the input vector.
- the load balancing means 33 interpolates the density h r of the node r using the density h q of the node q and the density h f of the adjacent node f for the node and the node density stored in the temporary storage unit. And the result is stored in the temporary storage unit.
- the load balancing means 33 executes a calculation process shown in the following equation stored in the temporary storage unit, and stores the result in the temporary storage unit.
- the load balancing means 33 is a node stored in the temporary storage unit, a side connecting the new node r and the node q, a side connecting the new node r and the adjacent node f, and a side between the nodes. , And the side that originally exists between the node q and the adjacent node f is deleted, and the result is stored in the temporary storage unit.
- the load balancing means 33 executes the operations shown in the following equations (8) and (9) stored in the temporary storage unit, and stores the results in the temporary storage unit.
- C indicates an edge set, for example, (r, q) indicates an edge connecting the node r and the node q.
- the information processing apparatus 1 adopts the average learning time of the sub-cluster to which the node belongs as a reference level, and applies it to the additional learning task of whether or not to newly insert a node into the network. For this reason, the knowledge (network including a node and its connection structure) obtained from the prior learning result does not affect the newly input vector.
- the node connection structure generation processing by the information processing apparatus 1 is different from E-SOINN.
- the information processing apparatus 1 determines whether or not to newly insert an input vector into the network. Load balancing processing for detecting a node in which the node is in an unbalanced state (that is, a node having a relatively large and biased learning time value) and inserting a new node near the detected node. Execute. This makes it possible to balance the load on the nodes in the network. Then, when both the new node insertion shown in S101 to S107 described above and the node insertion shown in S507 described later belong to the interclass insertion, the information processing apparatus 1 makes the number of nodes in the network sufficient. As a result, the density distribution of the input data can be accurately reflected. Accordingly, the connection structure of the input pattern can be accurately described without being affected by the input order of the input data, so that it has a more stable performance than the prior art.
- Sub-cluster determination process When the number of inputs of the input vector is an integral multiple of the predetermined unit number ( ⁇ ), in addition to the load balancing process described above, the sub-cluster determining means 34 stores the nodes between the nodes stored in the temporary storage unit. Sub-cluster determination processing based on Voronoi tessellation is executed for edges, node sub-cluster labels, node density, and Voronoi regions, and the results are stored in a temporary storage unit.
- the sub-cluster determination process is a process for determining a sub-cluster to which the node belongs by assigning a sub-cluster label to a node existing in the network.
- the term “tuber” is used instead of the term “sub-cluster” in order to facilitate understanding of the following processing.
- the term “bulge” is used to describe a set of nodes having a locally maximum node density and nodes connected to the nodes by edges. Note that the bulge usually indicates the climax of the mountain, but in this embodiment, the bulge of the node density is considered in consideration of the level of the node density of the nodes included in each sub-cluster in relation to a plurality of sub-clusters included in a certain class.
- the term bump is used to express For example, in FIG. 5, A, B, C, and D each indicate a bump. A and C belong to the same class, and B and D belong to the other same class.
- the sub-cluster determination process is executed from a ridge having a high node density to a ridge having a low density in each Voronoi region.
- the ridge B easily integrates with the ridge A, and as a result, the network is also disturbed.
- the ridge sub-cluster determination process needs to be stopped exactly to avoid integrating with other ridges.
- the sub-cluster determination process for the ridge C it is necessary not to integrate the ridge B.
- Sub-cluster determination process (S201 to S205, S301 to S305)>
- the sub-cluster determination unit 34 assigns different raised labels to all the vertices searched for the nodes and the sub-cluster labels (bump labels) stored in the temporary storage unit, and stores the results in the temporary storage unit. To do.
- the sub-cluster determining means 34 applies to the nodes stored in the temporary storage unit, the sides connecting the nodes, and the sub-cluster labels (bump labels) of all the nodes that have not been given the bump label in S201.
- the same raised label as the adjacent node having the highest node density is given. That is, in S201, a different raised label is assigned to each vertex.
- the raised label of the node having the highest node density among the adjacent nodes of the node is assigned to each of all other nodes excluding the vertex.
- a raised label is assigned to all nodes, and a set of nodes having the same raised label is treated as a raised (sub-cluster), so that a mixed class is converted into a plurality of raised (sub-cluster).
- the node of interest and its adjacent nodes may be located in the overlapping region of the distribution.
- the sub-cluster determining unit 34 searches for a node having a node density greater than ⁇ in the node set LM at the vertex for the node and node density stored in the temporary storage unit, and adds the searched node to the node set K.
- the result is stored in the temporary storage unit.
- the sub-cluster determining unit 34 calculates a value ⁇ by executing a calculation process shown in the following expression stored in the temporary storage unit, and stores the result in the temporary storage unit.
- ⁇ indicates a parameter (1 ⁇ ⁇ 2) that is set by an appropriate value determined in advance by the user
- h mean is an average value of the densities of nodes at all vertices included in the vertex set LM.
- H max represents the maximum node density among the node densities of the vertices included in the node set LM.
- the sub-cluster determining means 34 based on the node set K, for the node, the node weight vector, and the Voronoi region stored in the temporary storage unit, the Voronoi region for the vertex node set LM (see FIG. 6). And the result is stored in the temporary storage unit.
- the sub-cluster determining unit 34 executes the operation shown in the following formula (11) stored in the temporary storage unit, and stores the result in the temporary storage unit.
- a node K i included in the node set K is used as a seed, and a Voronoi region V i corresponding to the seed is generated.
- the node K i included in the node set K is the i-th seed in the Voronoi region V i .
- the node set LM includes all vertices, and the node set K includes vertices having a node density higher than ⁇ among all the vertices.
- the node set K is used as a seed for the Voronoi region.
- such a seed is indicated by using a circle (white circle).
- the Voronoi region is basic knowledge in the field of artificial intelligence and mathematics (for example, see http://en.m.wikipedia.org/wiki/Voronoi_diagram). A known Voronoi region generation process may be executed. For this reason, the detailed description is abbreviate
- the sub-cluster determining unit 34 performs the processes shown in S301 to S305 below on the nodes, the edges between the nodes, the density of the nodes, the sub-cluster labels (raised labels) of the nodes, and the Voronoi region stored in the temporary storage unit.
- the sub-cluster is determined by integrating the sub-clusters in all the Voronoi regions generated in S204, and the result is stored in the temporary storage unit.
- determining the sub-cluster in the Voronoi region means a process of integrating the ridge label of each ridge into the ridge label of the node K i when a predetermined condition regarding the node density is satisfied for the ridges included in each Voronoi region. Point to.
- the predetermined condition refers to satisfying, for example, either formula (12) or formula (13) described later.
- subcluster determining means 34 a temporary storage unit stored in the node, sub-cluster label of the node (the raised label), the Voronoi region, based on the assigned raised labels to the nodes, in certain Voronoi region V i, It is determined whether or not the ridge (K i ) of the node K i included in the Voronoi region V i and the ridge (j) including the node j have an overlapping region, and the result is stored in the temporary storage unit.
- the ridge to which the node K i belongs is defined as the ridge (K i )
- the bulge label given to the node K i is defined as the ridge label (K i )
- the ridge to which the node j belongs is defined.
- a description will be given assuming that the bulge (j) is a bulge label (j) and the bulge label given to the node j is a bulge label (j).
- the node j a node included in the set LM vertex and refers to a node included in the Voronoi region V i.
- Subcluster determination unit 34 determines ridge includes a raised (K i) and the node j of the node K i (j) and as to whether or not having an overlapping area, for example, as follows.
- the sub-cluster determination means 34 is based on the nodes stored in the temporary storage unit, the edges between the nodes, the sub-cluster labels (bump labels) of the nodes, the edges between the nodes included in the network, and the raised labels given to the nodes. Then, it is determined whether or not there exists an edge in which the raised label of the node at one end is the raised label (K i ) and the raised label of the node at the other end is the raised label (j). , if such sides is present, ridges include raised (K i) and the node j of the node K i (j) and is judged to have an overlapping area, and the result is stored in the temporary storage unit .
- subcluster determining means 34 a temporary if stored in the storage unit the result of determination of the ridges of the node K i ridge containing (K i) and the node j (j) has an overlap area, node set O Ki Add node j to The node set O Ki, if the node raised a K i of the (K i) of the ridge including the node j (j) has an overlapping region, the possibility of integration with respect to the raised (K i) of the node K i It is a set for storing a certain ridge (j).
- Subcluster determining means 34 when ridge includes a raised (K i) and the node j of the node K i (j) and has no overlap region, the process proceeds to S301, for the other of the Voronoi region V i Process.
- subcluster determining means 34 for example, for each node j in a node set O Ki, satisfies any one of the following formulas stored in the temporary storage unit (12) or formula (13) It is determined whether or not, and the result is stored in the temporary storage unit.
- Subcluster determining means 34 the result of the determination stored in the temporary storage unit, when satisfying one of the following formulas (12) or formula (13) as the raised label node J ⁇ O Ki , Give a raised label (K i ) for node K i .
- the sub cluster determining unit 34 by changing the raised label of the node j to (j) on the raised label ridges (K i) of the node K i, uplift (j), the node K i belongs node j belongs Integrate into ridges (K i ).
- h Ki indicates the node density of the node K i .
- mean Ki indicates an average node density of node densities of nodes included in the ridge (K i ) (nodes included in the network).
- h j indicates the node density of the node j.
- mean j represents an average node density of node densities of nodes (nodes included in the network) included in the ridge (j).
- mean OR indicates the average node density of such nodes. For example, in the case illustrated in FIG. 23, the ridge (K i ) and the ridge (j) are connected by two sides, and these ridges have overlapping regions.
- ⁇ represents a parameter that is determined and set in advance by the user, and the value is determined within the range of [1, 2].
- ⁇ is a parameter of the tolerance element and is used to determine how much difference between the ridge (K i ) and ridge (j) is tolerated in one class. This tolerance becomes smaller as ⁇ increases.
- the sub-cluster determining unit 34 sets the node set OKi stored in the temporary storage unit to an empty set, proceeds to step S301, and starts the processes after step S301 again.
- the sub-cluster determining unit 34 proceeds to the next S304.
- the sub-cluster determining unit 34 determines whether the formula (12) or (13) is established for the ridge (j1) to which the node j1 belongs, and if so, sets the ridge label (K1) of the node K1 to the node It is given as a raised label for j1. Further, in S304, the sub-cluster determining unit 34 determines whether the formula (12) or (13) is established for the ridge (j2) to which the node j2 belongs, and if so, the ridge label (K1) of the node K1. As the raised label of node j2.
- the sub-cluster determining unit 34 determines whether the formula (12) or (13) is established for the ridge (j3) to which the node j3 belongs, and if so, the ridge label (K1) of the node K1. As the raised label of node j3. As a result of this processing, the state of each bulge based on the bulge label is shown in FIG.
- the sub-cluster determining unit 34 sets the set OK1 to an empty set in S305, and proceeds to step 301.
- the sub-cluster determining unit 34 determines whether or not the ridge (K1) and the ridge (j4) have an overlapping region,..., The ridge (K1) and the ridge (j8) have an overlapping region.
- S302 if all of these ridges (j4) to (j8) have overlapping areas with the ridge (K1), the ridges (j4) to (j8) to add a node j4 ⁇ j8 to set O K1.
- the set O K1 includes nodes j4 ⁇ j8.
- the sub-cluster determining means 34 determines whether or not the formula (13) or (13) is established for the ridges (j4) to (j8) to which the nodes j4 to j8 belong respectively in S304 after S303. Gives the raised label (K1) of the node K1 as raised labels of the nodes j4 to j8. As a result of this processing, the state of each bulge based on the bulge label is shown in FIG. In this way, the sub-cluster determining unit 34 repeats integration of other ridges around the ridge to which the vertex as a seed of the Voronoi region belongs, in each Voronoi region.
- the sub-cluster determination process should start from a high node density uplift to a low node density uplift. For this reason, the purpose of equation (10) is to search the node density boundary ⁇ and determine how high the density of the boundary ⁇ is. A bump with a node density higher than this boundary ⁇ tends to be the center of the corresponding sub-cluster. Therefore, this type of raised node is added to the vertex node set K. In this embodiment, memory is saved by adding only the node having the highest node density locally to the node set K among the nodes included in the ridge. Furthermore, all other ridges whose node density is lower than the boundary ⁇ are elements of the corresponding Voronoi region in the node set K.
- the sub-cluster determination process shown in S301 to S305 starts from the bulge at the center of each Voronoi region.
- the sub-cluster determination process shown in S301 to S305 is an iterative process, and when the overlap region exists between the ridges and the above-mentioned predetermined condition regarding the node density is satisfied, the ridge at the center of the Voronoi region is the overlap region. Integrate ridges with In each iteration, some ridges that initially did not have overlapping areas may have overlapping areas in the last iteration.
- the processing shown in S301 to S305 is very similar to the processing of going down the mountain in different directions.
- FIG. 5 conceptually shows a distribution having fluctuations generated by E-SOINN and a distribution generated by the information processing apparatus 1 and integrated with sub-clusters. According to the processing of S201 to S205 and S301 to S305 according to the present embodiment, it is apparent that the disturbance when the mixed class is separated into different subclusters can be avoided. In other words, it can be said that the information processing apparatus 1 is more stable than E-SOINN.
- LSH Locality ⁇ Sensitive Hashing
- LSH has a big restriction that memory consumption is too large
- non-patent literature: Xiaoguang Gu, Yongdong Zhang, Dongming Zhang and Jintao Li "An improved method of locality sensitive hashing for indexing large-scale and high-dimensional features, "in Press, Signal Processing, 2012.”
- LSH cannot be used for online additional learning tasks.
- a content-based similarity search method there is a method of selecting an optimal norm given a related feedback algorithm.
- this technique cannot also be used for online incremental learning tasks (non-patent literature: Verleysen, M., Francois, D., “The Concentration of Fractional Distances", IEEE Trans. On Knowledge and Data Engineering 19 (See (7), -873-886) (2007).)
- the distance based on the Euclidean distance is effective.
- distance measures effective when the input data has a high dimension several methods such as a cosine distance, a Manhattan distance, a fractional distance are proposed.
- sample data cannot be obtained in advance in an online additional learning environment.
- the number of dimensions of the input vector cannot be analyzed in advance to determine which distance measure is valid.
- a framework for combination of distance measures is proposed, and other distance measures effective in a high-dimensional space and Euclidean distances are integrated. This overcomes the dimensional curse.
- This distance scale combination framework is suitable for online self-propagating incremental learning tasks.
- the distance calculation formula that is the framework of the combination of the distance scales according to the present embodiment is shown, for example, in the following formula (14).
- D (p, q) indicates the distance between the node p and the node q.
- d indicates the number of dimensions of the input vector, and
- n indicates the number of distance measures.
- ⁇ is a parameter that is determined and set in advance by the user. Note that ⁇ may be an appropriate value determined in advance through experiments, and set by the user.
- a function having the number of dimensions of the input vector as a variable is set in the information processing apparatus 1, and information processing is performed. The apparatus 1 may calculate and set an appropriate value according to the number of dimensions of input data by using the function.
- the distance calculation formula shown in Formula (14) includes a first term portion and a second term portion.
- the first term part is an example of a first distance calculation formula for calculating the distance between nodes based on the Euclidean distance.
- the second term part is an example of a plurality of distance calculation formulas that calculate the distance between nodes based on another distance measure different from the Euclidean distance.
- the first term part and the second term part are respectively weighted, and the weights are set according to the parameters ⁇ and d. As will be described later, the weight of the first distance calculation formula is set to decrease as the dimension d of the input vector increases.
- EU pq represents a distance based on the Euclidean distance between the node p and the node q, and is calculated by Expression (15).
- EU min and EU max indicate the minimum Euclidean distance and the maximum Euclidean distance between any two nodes in the network, respectively.
- the value of EU max only increases without decreasing, which indicates that the value of EU max is the maximum Euclidean distance that has ever appeared in the course of learning. Further, as long as the learning phase continues, only the value of EU min decreases without increasing, that this is the value of EU min is the minimum Euclidean distance that appeared so far in the course of learning Show.
- D i pq , D i min and D i max relate to the i-th distance measure.
- D i pq indicates the distance based on the i-th distance measure between node p and node q.
- D i min and D i max denote the minimum distance value and the maximum distance value based on the i-th distance measure between any two nodes in the network, respectively. That is, they have the same meaning as EU pq , EU min and EU max , respectively.
- the distance based on each distance scale is a different scale. For this reason, in order to integrate the distance calculation formula based on each distance scale into one distance calculation formula, the minimum distance value and the maximum distance value between two nodes based on each distance scale are used, as shown in Expression (14). To normalize the distance between two nodes.
- a cosine distance is adopted as an example of another distance measure, and the cosine distance is integrated into the Euclidean distance.
- the definition of cosine distance is shown in the following equation.
- ⁇ represents an angle between the weight vector W p and the weight vector W q .
- the inter-class node insertion determination unit 25 determines the distance from the node of interest among the adjacent nodes when there is an adjacent node with respect to the node of interest and the similarity threshold of the node stored in the temporary storage unit. The distance to the largest node is calculated as a similarity threshold, and the result is stored in the temporary storage unit. If there is no adjacent node, the distance to the node with the smallest distance from the node of interest is similar. As a threshold value, the result is stored in the temporary storage unit. Specifically, for example, the similarity threshold value of the node of interest is calculated as follows, and the result is stored in the temporary storage unit.
- the inter-class node insertion determining means 25 determines whether or not the node i has an adjacent node when the node i becomes the first winner node or the second winner node for the node stored in the temporary storage unit. The result is stored in the temporary storage unit.
- the inter-class node insertion determination unit 25 determines the similarity threshold T i for the similarity threshold and the node stored in the temporary storage unit. Is the maximum distance to the adjacent node, and the result is stored in the temporary storage unit. That is, for the node i, the similarity threshold value Ti is calculated based on the following equation (18) stored in the temporary storage unit, and the result is stored in the temporary storage unit.
- j is a node included in the adjacent node set N i of the node i stored in the temporary storage unit, and D (i, j) is calculated using the equation (17), and the node i and the node j Is the distance between.
- the inter-class node insertion determination unit 25 calculates the distance from the node i to each other node excluding the node i. , the minimum distance among the calculated distance and similarity threshold T i. That is, for the node i, the similarity threshold T i is calculated based on the following equation (19) stored in the temporary storage unit, and the result is stored in the temporary storage unit.
- the node density calculating unit 23 calculates the node density of the node of interest based on the average distance of the nodes from the adjacent nodes.
- the vector d i ⁇ of the average distance of the node i from the adjacent node j can be calculated as shown in the following equation (20), for example.
- the variable d i ⁇ indicates that the symbol “ ⁇ (write arrow)” is attached to the variable d i .
- the symbol “ ⁇ (light arrow)” indicates a vector.
- the number of elements of the vector matches the number of distance scales used. In this embodiment, as will be described later, since two distance measures are used, the number of elements of the vector is two.
- the distance between two nodes is normalized in order to use other distance measures in addition to the Euclidean distance.
- the vector d i instead of directly adopting the above equation (20) in calculating the node density, the vector d i ⁇ the average distance of the node i from the adjacent node j ⁇ Is calculated using the following equation (23).
- the minimum distance value and the maximum distance value (EU max , EU min , D i max , D i min ) between nodes used for normalization of each distance measure are newly added to the network. Since this changes when an input vector is input, this point is also considered.
- the information processing apparatus 1 employs a new distance scale framework. For this reason, when calculating the average distance from the adjacent node for the new node i based on the equation (20), EU max or D used when calculating the average accumulated point value of the other nodes inserted previously. There is a possibility that the value of EU max or D i max is sufficiently larger than i max (provided that EU min and D i min do not change here). In other words, the average distance from the adjacent node of another node inserted before is calculated, and the average distance from the adjacent node of the new node is calculated, but normalization is performed on different scales.
- the information processing apparatus 1 introduces a new definition and calculation process of the node density to deal with the above-described problem.
- the basic idea is that if at least one of the minimum and maximum distance values (EU max , EU min , D i max , D i min ) between nodes based on each distance measure changes, The cumulative point value of the node density of all nodes existing in the network is calculated again and updated. This will be specifically described below.
- the vector d i ⁇ of the average distance of the node i from the adjacent node j can be expressed as shown in the following expression.
- the node density calculation means 23 is configured to pay attention to a vector stored in the temporary storage unit, a minimum distance value and a maximum distance value between nodes based on each distance scale, and an average distance of nodes from adjacent nodes based on each distance scale. Calculate the average distance vector from the adjacent node of the node of interest based on the distance from the adjacent node of the target node and the minimum and maximum distance values between the nodes based on each distance measure, and temporarily calculate the result. Store in the storage.
- the information processing apparatus 1 makes the definition of the node density point value vector p i ⁇ different from E-SOINN, and since Equation (24) is a linear function, the minimum distance between nodes based on each distance measure The node density can be easily calculated again when at least one of the value and the maximum distance value (EU max , EU min , D i max , D i min ) changes.
- the node density calculation means 25 accumulates a node density point value vector p i ⁇ of the first winner node i with respect to ⁇ and m for the nodes and node density point value vectors stored in the temporary storage unit. By summing up, a vector s i ⁇ of accumulated point values of the node density of the first winner node i is calculated, and the result is stored in the temporary storage unit.
- the node density calculation unit 25 executes, for example, a calculation process shown in the following formula (25) stored in the temporary storage unit, and stores the result in the temporary storage unit.
- the node density calculation means 25 executes, for example, a calculation process shown in the following formula (26) stored in the temporary storage unit, calculates the node density, and stores the result in the temporary storage unit.
- f (X ⁇ ) is a function for calculating the total value of the elements of the vector X ⁇ .
- the unit input number N is calculated as the number of unit learning intervals when the element of the vector s i ⁇ of accumulated point values of node density is greater than 0 among m unit learning intervals.
- the definition of N is the same as E-SOINN (see paragraph 0067 of Patent Document 1).
- the node density calculation means 25 learns the node stored in the temporary storage unit, the node density accumulated point value vector, and the node learning. For time, minimum distance value and maximum distance value between nodes based on each distance measure, based on vector of accumulated point value of node density, learning time of node, minimum distance value and maximum distance value between nodes based on each distance measure Te, for all the nodes in the network, and update recalculated vectors s i ⁇ the accumulated point value of the node density of the node i in the following manner, the accumulated point value of the node density of the updated node i The node density h i of the node i is calculated again using the vector s i ⁇ , and the result is stored in the temporary storage unit.
- M i represents the learning time of node i.
- the learning time vector M i ⁇ of node i is shown in the following equation (28).
- the edge connection determination unit 27 determines whether to connect edges, for example, as follows, and stores the result in the temporary storage unit.
- the edge connecting means 28 executes edge generation and deletion processing as follows, for example, and stores the result in the temporary storage unit.
- Node density condition for the first winner node based on the average node density of the sub-cluster including the node, or node density for the second winner node based on the average node density of the sub-cluster including the second winner node It is determined whether or not at least one of the above conditions is satisfied, and the result is stored in the temporary storage unit.
- the side connection unit 28 determines the nodes stored in the temporary storage unit and the sides between the nodes. An edge is generated between the first winner node and the second winner node to connect the nodes. Thereby, the sub-clusters A and B are integrated.
- the input information acquisition unit 21 acquires two input vectors at random, initializes the node set A as a set including only two nodes corresponding to them, and stores the result in the temporary storage unit. Further, the input information acquisition unit 21 initializes the edge set C ⁇ A ⁇ A as an empty set, and stores the result in the temporary storage unit.
- S502 The input information acquisition unit 21 inputs a new input vector ⁇ R n and stores the result in the temporary storage unit.
- the winner node search means 24 searches for the first winner node a 1 closest to the input vector ⁇ and the second winner node a 2 closest to the input vector ⁇ for the input vectors and nodes stored in the temporary storage unit. The result is stored in the temporary storage unit.
- the result is stored in the temporary storage unit.
- the winner node searching means 24 calculates the distance D ( ⁇ , a) between the input vector ⁇ and the node a using the new distance measure shown in the above-described equation (17), and temporarily calculates the result. Store in the storage.
- the edge connection unit 28 satisfies at least one of the node density conditions for the first winner node and the second winner node as a result of the determination in S508 stored in the temporary storage unit, stored node in the temporary storage unit, the edges between the nodes, the edges between the first winning node a 1 and the second winning node a 2 connected, and stores the result in the temporary storage unit.
- the edge connecting means 28 performs, for example, the winner node connection process shown in S404 described above.
- the node density calculator 23 stores the nodes stored in the temporary storage unit, the minimum distance value and the maximum distance value between the nodes based on each distance measure, the vector of the average distance of the nodes from the adjacent nodes, and the node density of the nodes.
- the first winner node a 1 is a node i, the distance of the node i from an adjacent node based on each distance measure, and the node based on each distance measure Based on the minimum distance value and the maximum distance value between, the average distance vector d i ⁇ from the adjacent node for the node i is calculated, and based on the calculated average distance vector d i ⁇ from the adjacent node.
- Weight vector updating means 30 for example, the following equation (33) and using equation (34), the update amount [Delta] W a1 and the first adjacent node of the winning node a 1 for weight vector W a1 of the first winning node a 1
- the update amount ⁇ W j for the weight vector W s1 of j is calculated, the update amount ⁇ W a1 is added to the weight vector W a1 of the first winner node a 1 , and the update amount ⁇ W j is added to the weight vector W s1 of the adjacent node j. Addition is performed and the result is stored in the temporary storage unit.
- M s1 indicates the learning time of the first winner node a 1 . Note that the method of changing the weight vector here is the same as that of E-SOINN (see paragraph 0063 of Patent Document 1).
- old edge deletion unit 31 a temporary stored in the storage unit nodes, edges between nodes, the age of the sides, first winning node a 1 and directly connected to all sides of age a predetermined value is The result is increased and the result is stored in the temporary storage unit.
- the old age side deleting unit 31 increases the age of all sides directly connected to the first winner node a 1 by 1 and stores the result in the temporary storage unit.
- the old age side deletion means 31 deletes a side having an age exceeding a predetermined threshold age max set in advance and stored in the temporary storage unit for the side stored in the temporary storage unit, and the result is stored in the temporary storage unit.
- the parameter age max is calculated in advance by an experiment and stored in the temporary storage unit.
- the input number determination means 32 is a predetermined unit number (the total number of input vectors ⁇ input in advance and stored in the temporary storage unit for the total number of input vectors ⁇ stored in the temporary storage unit). It is determined whether it is a multiple of ⁇ ), and the result is stored in the temporary storage unit. As a result of the determination stored in the temporary storage unit, if the total number of input vectors is not a predetermined unit number, the process returns to S502 to process the next input vector ⁇ . When the total number of input vectors ⁇ reaches a predetermined unit number, the following processing from S515 is executed. The parameter ⁇ is calculated in advance by an experiment and stored in the temporary storage unit.
- processing shown in S515 to S517 is executed each time the total number of input vectors input to the information processing apparatus 1 reaches a predetermined unit number. That is, assuming that the unit learning section until the total number of input vectors reaches a predetermined number ( ⁇ ) is one cycle, the processes shown in S515 to S517 are periodically executed at predetermined intervals according to the total number of input vectors. Is done.
- the load balancing means 33 has a large learning time value for the node, the edge between the nodes, the node sub-cluster label, the node weight vector, the node learning time, and the node density stored in the temporary storage unit.
- a biased node is detected based on the learning time of the node, and a new node is inserted between the detected node and its adjacent node and added to the node set A.
- the node learning time for the detected node and its adjacent nodes is reduced, and the result is stored in the temporary storage unit.
- the load balancing means 33 executes, for example, the load balancing process between nodes shown in S101 to S107 described above, and stores the result in the temporary storage unit. As a result, the load balancing means 33 balances the load of the nodes in which the load is in an unbalanced state.
- the sub-cluster determining unit 34 has the maximum node density locally from the nodes included in the node set A with respect to the nodes, the edges between the nodes, the node density, and the sub-cluster labels of the nodes stored in the temporary storage unit. Search nodes as vertices, assign different subcluster labels (bump labels) to the searched vertices, and have the highest node density for all nodes that have not been given the subcluster labels (bump labels) The same sub-cluster label (protrusion label) as that of the adjacent node is assigned, and the result is stored in the temporary storage unit.
- the noise node deleting means 35 deletes nodes regarded as noise nodes for all nodes a included in the node set A stored in the temporary storage unit, and stores the result in the temporary storage unit.
- the noise node deletion unit 35 executes, for example, the processing shown in S601 to S604 below for the nodes stored in the temporary storage unit, the sides between the nodes, the number of adjacent nodes, and the node density, and the adjacent node a of interest Based on the number of nodes and the node density, the node of interest is deleted, and the result is stored in the temporary storage unit.
- the learning end determination means 36 determines whether or not to end the learning process by the information processing apparatus 1. For example, the learning end determination unit 36 sets the total number of input vectors ⁇ set in advance to a predetermined number LT stored in the temporary storage unit with respect to the total number of input vectors ⁇ stored in the temporary storage unit. It is determined whether or not it is a multiple, and the result is stored in the temporary storage unit. As a result of the determination stored in the temporary storage unit, if the total number of input vectors is not a multiple of LT, the process returns to S502 to process the next input vector ⁇ . On the other hand, when the total number of input vectors ⁇ is a multiple of LT, the following processing is executed. Note that the learning end determination method is not limited to this, and a learning end instruction may be given by the user.
- the class determination unit 37 determines the class to which each node belongs based on the side generated between the nodes, the side between the nodes, and the node class stored in the temporary storage unit, and the result Store in the temporary storage. Then, the output information display means 38 outputs the number of classes to which the node belongs and the prototype vector of each class for the nodes and node classes stored in the temporary storage unit. After completing the above processing, learning is stopped.
- the class determining unit 37 determines the class to which each node belongs by executing the processing shown in S701 to S704 below for the nodes, the sides between the nodes, and the node class stored in the temporary storage unit, for example. Store in the temporary storage.
- S701 For the nodes and node classes stored in the temporary storage unit, all nodes are made not to belong to any class, and the result is stored in the temporary storage unit.
- S702 For nodes and node classes stored in the temporary storage unit, node i is randomly selected from nodes that do not belong to any class, a new class label is assigned, and the result is stored in the temporary storage unit. .
- S703 All nodes connected to node i by “path” are searched for the nodes, edges between nodes, and node classes stored in the temporary storage unit, and the same class label as node i is assigned to the searched nodes. The result is stored in the temporary storage unit.
- S704 For nodes and node classes stored in the temporary storage unit, if there is a node that does not belong to any class, the process proceeds to S702, and until all of the nodes have been assigned class labels. Continue processing for a while.
- FIG. 7 shows the learning time of nodes in E-SOINN and information processing apparatus 1 (LBSOINN).
- the vertical axis indicates the learning time of the node
- the horizontal axis indicates the number of nodes.
- the number of nodes by E-SOINN is not sufficient in some areas of the network, and the learning time of nodes in these areas is long and biased.
- E-SOINN unlike E-SOINN, it can be seen that the distribution of the learning time of nodes in the information processing apparatus 1 (LBSOINN) is balanced.
- FIG. 8 shows the density distribution of the nodes of the artificial data set I.
- FIG. 9 shows the estimation result of the node density in E-SOINN
- FIG. 10 shows the estimation result of the node density in information processing apparatus 1 (LBSOINN).
- the x axis and the y axis indicate a two-dimensional space in which nodes are arranged, and the z axis indicates a node density.
- E-SOINN has not obtained good accuracy for the input pattern.
- the connection structure of the input pattern can be accurately described, so that it has superior stability performance compared to E-SOINN. .
- FIG. 11 shows an artificial data set II.
- Artificial dataset II includes three Gaussian distributions with dense overlapping regions with respect to node density.
- LSOINN information processing apparatus 1
- an input pattern is randomly selected from the data set and 10% noise is added to the input pattern.
- FIGS. 12A to 12J show learning results for the artificial data set II when the network is learned in time series in a stationary environment.
- FIGS. 12A to 12E show the learning results of E-SOINN in 100,000, 200,000, 300,000, 400,000, and 500,000 iterations, respectively.
- FIGS. 12F to 12J respectively show the learning results of the information processing apparatus 1 (LBSOINN) in the repetition of 100,000 times, 200,000 times, 300,000 times, 400,000 times, and 500,000 times.
- LSOINN information processing apparatus 1
- E-SOINN has a disordered and unstable node connection structure because different classes are always connected together.
- the information processing apparatus 1 uses the above-described sub-cluster determination method to avoid the occurrence of an excessively local maximum node existing in the network. As a result, the information processing apparatus 1 (LBSOINN) avoids disturbance of the node connection structure caused by dividing the mixed class into sub-clusters.
- Experiments on Artificial Data Set II show that information processing device 1 (LBSOINN) has better stability and can accurately separate overlapping regions with high node density compared to E-SOINN Yes. As will be described later, the AT & T image data set is used in the non-stationary learning environment, and the information processing apparatus 1 (LBSOINN) is more stable than the E-SOINN by the real world data set. Confirm that it has sex.
- FIG. 13 shows another artificial data set used in the evaluation of E-SOINN.
- This artificial data set includes two Gaussian distributions, two ring shape distributions, and a sine function distribution.
- the input distribution includes random noise that reaches 10% of the total number of input samples.
- 14 and 15 depict the clustering results obtained by the information processing apparatus 1 (LBSOINN) under a steady environment and a non-steady environment, respectively. 14 and 15 indicate that the information processing apparatus 1 (LBSOINN) does not depend on the input order of input data, that is, has better stability than E-SOINN. ing.
- the image data set includes 40 different classes and 10 different images for each class. These classes relate to different ages and races. Images are acquired at different times for several classes. There are variations in facial expressions (open / closed eyes, smiling / not smiling) and facial details (with / without glasses). All images are taken from an upright frontal position (with some side movement resistance) under a black uniform background with class. Ten classes are selected from this data set (FIG.
- E-SOINN and information processing device 1 (LBSOINN) under steady and unsteady environments is tested.
- a prototype vector from the network can be obtained. These prototype vectors are used to classify the original face image and the calculated recognition rate.
- the information processing apparatus 1 (LBSOINN) has a recognition rate of 96.3% under a steady environment, and a recognition rate of 96.5% under a non-steady environment.
- E-SOINN has a recognition rate of 90.3% in a steady environment and a recognition rate of 96% in an unsteady environment. That is, the information processing apparatus 1 (LBSOINN) has a sufficiently higher recognition rate than E-SOINN compared to E-SOINN.
- the commonality between the steady environment and the unsteady environment also indicates that the information processing apparatus 1 (LBSOINN) does not depend on the input order of input data and has better stability than E-SOINN.
- E-SOINN information processing apparatus 1
- LSOINN information processing apparatus 1
- the same processing as E-SOINN is executed by information processing apparatus 1 (LBSOINN). That is, (1) 1000 times of learning is executed for both E-SOINN and the information processing apparatus 1 (LBSOINN), and (2) the frequency of the number of classes is recorded.
- the frequency of the number of classes is, for example, that the number of outputs is 600 times when the number of classes is 10 as a learning result of the information processing apparatus 1 (LBSOINN), or the number of classes is 1000 times.
- the number of outputs is 90, where 9 is 9, the numerical value is 600 times or 90 times.
- 18A and 18B show the distribution of the number of classes by E-SOINN and information processing apparatus 1 (LBSOINN), respectively.
- the vertical axis indicates the frequency of the number of classes
- the horizontal axis indicates the number of classes.
- the distribution of the number of classes for the information processing apparatus 1 (LBSOINN) is sufficiently larger than that of E-SOINN.
- the distribution of the information processing apparatus 1 (LBSOINN) is sufficiently larger than that of E-SOINN.
- the distribution of the number of classes for the information processing apparatus 1 (LBSOINN) in a steady environment is very similar to the distribution of classes in an unsteady environment. All the experimental results described above indicate that the information processing apparatus 1 (LBSOINN) has better stability than E-SOINN.
- WebKb data set and R8 data set are selected to test the performance of E-SOINN and information processing apparatus 1 (LBSOINN) in a high-dimensional space.
- WebKb contains WWW pages collected by the CMU text learning group's worldwide knowledge base project from various university computer science departments in January 1997. The 8282 pages are manually categorized into students, faculties, staff, departments, courses, projects and other categories. In this experiment, only students, departments and course categories are selected.
- the R8 dataset simply considers documents with one topic and its class (with at least one learning and one experimental example). For both WebKb and R8, filtering processing (Non-patent literature: Khaled M. Hammouda and Mohamed S.
- FIG. 19 shows the accuracy when different percentages are entered for each different class.
- SVM support vector machine
- the accuracy of the information processing apparatus 1 (LBSOINN) and SVM reaches 81.21% and 84.21% for the WebKb data set, respectively.
- the accuracy of the information processing apparatus 1 (LBSOINN) and SVM reaches 89.71% and 93.34%.
- the accuracy of the information processing apparatus 1 (LBSOINN) is not as good as that of the SVM.
- the information processing apparatus 1 (LBSOINN) belongs to the online unsupervised learning approach. Another difference is that the information processing apparatus 1 (LBSOINN) can obtain satisfactory accuracy using a limited data set. This feature makes the information processing apparatus 1 (LBSOINN) more suitable for tasks in the real world. Since E-SOINN cannot handle high-dimensional tasks, the performance of E-SOINN is very bad. This experiment shows that the information processing apparatus 1 (LBSOINN) is sufficiently executable in a high-dimensional space.
- the present embodiment proposes a load balanced self-propagating neural network (LBSOINN) that belongs to online unsupervised learning, which can separate high-density overlapping classes.
- the information processing apparatus 1 (LBSOINN) has excellent stability performance compared to E-SOINN, and also has all the advantages of E-SOINN.
- the information processing apparatus 1 (LBSOINN) can obtain accurate learning results when clustering unlabeled knowledge with noise, and also in a high-dimensional space. It was confirmed that it can be executed efficiently. This indicates that it is suitable for online learning tasks in the real world.
- the present invention is not limited to the above-described embodiment, and can be appropriately changed without departing from the spirit of the present invention.
- the case where only the node having the maximum node learning time is searched in each sub-cluster in the node load balancing processing has been described as an example, but the present invention is not limited to this.
- a plurality of nodes having learning times of relatively large nodes in each sub-cluster may be searched, and the subsequent load balancing process may be executed for the searched nodes.
- a node having the maximum learning time of the node is searched, and the adjacent node having the maximum learning time among the adjacent nodes of the searched node.
- the present invention is not limited to this, and other adjacent nodes (for example, adjacent nodes having the second largest learning time among the adjacent nodes of the searched node) are determined.
- the subsequent load balancing process may be executed for the determined adjacent node.
- the distance measure is not limited to an effective distance measure in a high-dimensional space, and other distance measures according to the problem to be learned may be combined.
- the information processing method described above may be realized by using a semiconductor processing apparatus including an ASIC (Application Specific IntegratedACircuit). Further, these processes may be realized by causing a computer system including at least one processor (e.g. microprocessor, MPU, DSP (Digital Signal Processor)) to execute a program. Specifically, one or a plurality of programs including an instruction group for causing the computer system to perform an algorithm related to the transmission signal processing or the reception signal processing may be created, and the programs may be supplied to the computer.
- processor e.g. microprocessor, MPU, DSP (Digital Signal Processor)
- Non-transitory computer readable media include various types of tangible storage media (tangible storage medium). Examples of non-transitory computer-readable media include magnetic recording media (eg flexible disks, magnetic tapes, hard disk drives), magneto-optical recording media (eg magneto-optical discs), CD-ROMs (Read Only Memory), CD-Rs, CD-R / W, semiconductor memory (for example, mask ROM, PROM (Programmable ROM), EPROM (Erasable ROM), flash ROM, RAM (random access memory)) are included.
- the program may also be supplied to the computer by various types of temporary computer-readable media. Examples of transitory computer readable media include electrical signals, optical signals, and electromagnetic waves.
- the temporary computer-readable medium can supply the program to the computer via a wired communication path such as an electric wire and an optical fiber, or a wireless communication path.
- Information processing apparatus 10
- Computer 11 CPU 12 ROM 13 RAM 14 bus 15 input / output interface 16 input unit 17 output unit 18 storage unit 19 communication unit 20 drive 201 magnetic disk 202 optical disk 203 flexible disk 204 semiconductor memory 21 input information acquisition unit 22 node density update determination unit 23 node density calculation unit 24 winner node Search means 25 Inter-node node insertion determination means 26 Inter-class node insertion means 27 Edge connection determination means 28 Edge connection means 29 Winner node learning time calculation means 30 Weight vector update means 31 Old age edge deletion means 32 Input number determination means 33 Load balancing Means 34 Sub-cluster determination means 35 Noise node deletion means 36 Learning end determination means 37 Class determination means 38 Output information display means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
情報処理装置(1)は、入力ベクトルをクラス間挿入ノードとしてネットワークに挿入するクラス間ノード挿入手段(26)と、第1勝者ノード及び第2勝者ノード間に辺を接続したときに、第1勝者ノードについてノードの学習時間を所定の値増加する勝者ノード学習時間算出手段(29)と、入力ベクトルの総数に応じた所定の周期ごとに、ノードの学習時間の値が相対的に大きくかつ偏っているノードを検出し、その検出したノード及びその隣接ノードの近くに新たなノードを挿入し、検出したノードの学習時間及びその隣接ノードの学習時間をそれぞれ減少し、検出したノード及びその隣接ノード間の辺を削除し、新たに挿入したノード及び検出したノード間と、新たに挿入したノード及び検出したノードのその隣接ノード間と、に辺をそれぞれ接続する負荷平衡化手段(33)と、を備える。
Description
本発明は任意のクラスに属する入力ベクトルを順次入力して、当該入力ベクトルの入力分布構造を学習する情報処理装置、情報処理方法、及び非一時的なコンピュータ可読媒体に関する。
学習中に必要に応じてニューロンを増殖させる学習手法として、自己組織化ニューラルネットワーク(SOINN:Self-Organizing Incremental Neural Network)と呼ばれる手法が提案されている(非特許文献1を参照。)。非特許文献1に開示されたSOINNでは、ノード数を自律的に管理することにより非定常的な入力を学習することができ、複雑な分布形状を有するクラスに対しても適切なクラス数及び位相構造を抽出できるなど多くの利点を有する。SOINNの応用例として、例えばパターン認識においては、ひらがな文字のクラスを学習させた後に、カタカナ文字のクラスなどを追加的に学習させることができる。
さらに、SOINNに関する技術として、特許文献1に開示されたE-SOINN(Enhanced SOINN)と呼ばれる手法が提案されている。E-SOINNでは、学習を随時追加するオンライン追加学習が可能であり、バッチ学習ではなく学習効率が良いという利点を有している。このため、E-SOINNでは、学習環境が新しい環境に変化した場合においても追加学習が可能である。また、E-SOINNでは、入力データに対するノイズ耐性が高いという利点をも有している。
F.Shen and O.Hasegawa, "An incremental network for on-line unsupervised classification and topology learning," Neural Networks, Vol.19, No.1, pp.90-106, 2006.
しかしながら、非特許文献1に開示される技術(SOINN)や特許文献1に開示される技術(E-SOINN)では、入力データの入力順序によって学習結果が異なってしまうという安定性の問題があった。また、例えば1000次元以上の高次元データを入力データとする場合に学習精度が低下するという問題もあった。以下、これらの問題をより詳細に説明する。
安定性に関する1つ目の問題点として、入力データの入力順序に応じて学習結果が大きく影響を受けてしまうことがある。即ち、学習環境は変化させずに、入力順序のみを変更して入力データを入力して学習を繰り返した場合に、学習結果(ネットワークにおけるノードの個数及びノードの位置)が異なってしまう。
図1は、実験用の人工データセットを示す。図2(A)、(B)は、図1のガウスデータ分布セットに対するE-SOINNによる学習結果をそれぞれ示し、入力データの分布に関して2つのガウス分布が重複してしまっている。図2(A)は、50万回の学習を経た後の、E-SOINNによる定常的な学習結果を示す。図2(B)は、100万回の学習を経た後の、E-SOINNによる定常的な学習結果を示す。図2(A)、(B)から明らかなように、学習の結果生成されたこれらの分布は、図1に示した入力分布と一致していない。即ち、図1に示した入力データには互いに同一の2つのガウス分布を含み、図2(A)、(B)は、図1の入力データに対する学習結果をそれぞれ示している。しかし、図2(A)、(B)のそれぞれの学習結果では、各分布の中心におけるノードの個数が同一とならないために、図1の2つのガウス分布のそれぞれの中心と、図2(A)の2つのガウス分布のそれぞれの中心とが一致せず、また、図1の2つのガウス分布のそれぞれの中心と、図2(B)の2つのガウス分布のそれぞれの中心とも一致しない。本来であれば、図1の2つのガウス分布のそれぞれの中心は、図2(A)、(B)の2つのガウス分布のそれぞれの中心と一致すべきである。
さらに、E-SOINNの安定性に関する他の問題点を説明する。E-SOINNは、ノードの累積ポイントの平均値を使用して、ノードの密度を表現する(特許文献1の段落0067、数12、数13などを参照。)。E-SOINNは、ノードiのノード密度のポイント値である"pi"を、以下の式(1)を用いて算出する。なお、ノード密度のポイント値piは、ノードiが勝者ノードである場合に式(1)の算出値が与えられ、そうでない場合には値0が与えられる。
式(1)におけるdi
-(di
-は、diの上に記号「-(バー)」が付いていることを示す。)は、ノードiからその隣接ノードjまでの平均距離を示し、以下の式(2)を用いて算出する。なお、隣接ノードjとは、ノードiと辺によって直接的に接続されるノードを示す。式(2)において、mはノードiの隣接ノードjの個数を示し、Wiはノードiの重みベクトルを示し、Wjは隣接ノードjの重みベクトルを示す。
E-SOINNによるこの手法を用いて、図2(A)、(B)に示したノード分布に対してのノードの密度を算出すると、算出されるノードの密度は明らかに不正確なものになる。これは、このノードの分布に対するノードの密度を算出しようとした場合に、当該算出に先立って生成されたノードの分布が入力分布にそもそも一致しておらず、さらに、この入力分布との不一致に起因して、E-SOINNは2つのガウス分布を一つのクラスに誤って統合してしまうことがあるためである。
さらに、E-SOINNの安定性に関する他の問題点を説明する。E-SOINNは、クラス間に存在する大きく重複した領域を削除しようとする。しかし、E-SOINNのアルゴリズムは安定的ではないために、サブクラスタの統合及び分離の繰り返しを引き起こしてしまう。
また、従来技術に関する他の問題点を説明する。従来技術では、高次元データを入力データとした場合に学習精度が低下することがある。例えばE-SOINNでは、ユークリッド距離を使用して最近傍ノードを探索する。しかし、ユークリッド距離の概念を使用して距離を測定すると、与えられた高次元データのデータセットにおける任意の2つの位置が収束してしまうために、入力データの次元数が増加するに従って学習結果の精度が低下してしまう。即ち、高次元空間においてユークリッド距離を使用した場合には、最も近い位置と最も遠い位置との区別が、とりわけ意味をなくしてしまう。このため、E-SOINNは、例えばDNAクラスタリングや文書クラスタリングなどの高次元データを入力ベクトルとする、いくつかのクラスタリングの学習タスクには適していない。
本発明は、上述した問題を解決するためになされたものであり、学習結果について優れた安定性を有する情報処理装置、情報処理方法及び非一時的なコンピュータ可読媒体を提供することを第1の目的とする。さらに、高次元データに対しても良好な精度を有する情報処理装置、情報処理方法及び非一時的なコンピュータ可読媒体を提供することを第2の目的とする。
本発明の一実施の形態に係る情報処理装置は、多次元ベクトルで記述されるノード及び当該ノード間を接続する辺が配置されるネットワーク構造を有し、任意のクラスに属する入力ベクトルを順次入力して、当該入力ベクトルの入力分布構造を学習する情報処理装置において、入力される前記入力ベクトルに最も近い距離に位置するノード及び2番目に近い距離に位置するノードを第1勝者ノード及び第2勝者ノードとしてそれぞれ探索する勝者ノード探索手段と、前記入力ベクトルと前記第1勝者ノード間の距離及び前記入力ベクトルと前記第2勝者ノード間の距離に基づいて、クラス間ノード挿入を実行するか否かを判定するクラス間ノード挿入判定手段と、前記クラス間ノード挿入判定手段による判定の結果、前記クラス間ノード挿入を実行する場合に、前記入力ベクトルの成分と同一の成分を重みベクトルとして有するクラス間挿入ノードを生成し、当該生成したクラス間挿入ノードを前記ネットワークに挿入するクラス間ノード挿入手段と、前記クラス間ノード挿入判定手段による判定の結果、前記クラス間ノード挿入を実行しない場合に、前記第1勝者ノード及び前記第2勝者ノード間に辺を接続したときに、前記第1勝者ノードについてノードの学習時間を所定の値増加する勝者ノード学習時間算出手段と、前記クラス間ノード挿入判定手段による判定の結果、前記クラス間ノード挿入を実行しない場合に、注目するノードについて当該注目するノードと辺によって直接的に接続されるノードを隣接ノードとして、前記第1勝者ノードの重みベクトル及び前記第1勝者ノードの隣接ノードの重みベクトルをそれぞれ前記入力ベクトルに更に近づけるように更新する重みベクトル更新手段と、前記入力ベクトルの総数に応じた所定の周期ごとに、前記ノードの学習時間の値が相対的に大きくかつ偏っているノードを検出し、当該検出したノード及びその隣接ノードの重みベクトルに基づく重みベクトルを有する新たなノードを生成して前記ネットワークに挿入し、前記検出したノードの学習時間及び前記検出したノードの隣接ノードの学習時間をそれぞれ減少し、前記検出したノード及びその隣接ノード間の辺を削除し、前記新たに挿入したノード及び前記検出したノード間と、前記新たに挿入したノード及び前記検出したノードのその隣接ノード間と、に辺をそれぞれ接続する負荷平衡化手段と、を備える、ことを特徴とするものである。これによって、入力データの入力順序に影響を受けずに、入力パターンの接続構造を正確に記述することができるため、従来技術に比べてより優れた安定性能を有する。
また、前記クラス間ノード挿入判定手段による判定の結果、前記クラス間ノード挿入を実行しない場合に、付与されるノードのサブクラスタラベルに基づいて、前記第1勝者ノード及び前記第2勝者ノードが属するサブクラスタをそれぞれ判定し、当該判定の結果、前記第1勝者ノード及び前記第2勝者ノードが互いに異なるサブクラスタに属する場合には、前記第1勝者ノード及び前記第2勝者ノードのノード密度に関して、前記第1勝者ノードを含むサブクラスタの平均ノード密度を基準とする前記第1勝者ノードについてのノード密度の条件、又は、前記第2勝者ノードを含むサブクラスタの平均ノード密度を基準とする前記第2勝者ノードについてのノード密度の条件のうちの少なくとも1つを満たすか否かを更に判定する辺接続判定手段と、(1)前記辺接続判定手段による判定の結果、前記第1勝者ノード及び前記第2勝者ノードの少なくとも1つがいずれのサブクラスタに属していない、又は、同一のサブクラスタに属する場合には、前記第1勝者ノード及び前記第2勝者ノード間に辺を接続し、若しくは、(2)前記辺接続判定手段による判定の結果、前記第1勝者ノード及び前記第2勝者ノードについてのノード密度の条件のうちの少なくとも1つを満たす場合には、前記第1勝者ノード及び前記第2勝者ノード間に辺を接続し、前記第1勝者ノード及び前記第2勝者ノードについてのノード密度の条件のうちの少なくとも1つを満たさない場合には、前記第1勝者ノード及び前記第2勝者ノード間に辺を接続しない辺接続手段と、注目するノード及び当該注目するノードの隣接ノードからの平均距離に基づいて、当該注目するノードのノード密度を算出するノード密度算出手段と、局所的に最大のノード密度を有するノードを頂点として、当該頂点に対してそれぞれ異なるサブクラスタラベルを付与し、当該サブクラスタラベルが付与されなかった全てのノードに対してノード密度が最大の隣接ノードと同一のサブクラスタラベルを付与し、前記頂点のうちでノード密度が所定の閾値よりも大きな頂点を基準としてボロノイ領域を生成し、当該生成したボロノイ領域において、前記基準とした頂点を含むサブクラスタと前記基準とした頂点とは異なる他の頂点を含むサブクラスタとが重複領域を有し、かつ、当該重複領域に位置するノードの平均ノード密度の条件を満たす場合に、前記基準とした頂点を含むサブクラスタのサブクラスタラベルを、前記他の頂点を含むサブクラスタのサブクラスタラベルとして付与するサブクラスタ決定手段と、を更に備える、ようにしてもよい。これにより、異なるサブクラスタに混合クラスを分離するときの乱れを回避することができるため、学習結果をより安定させることができる。
また、ユークリッド距離に基づいてノード間の距離を算出する重み付きの第1の距離算出式と、前記ユークリッド距離とは異なる他の距離尺度に基づいてノード間の距離を算出する重み付きの第2の距離算出式と、を含むノード間距離算出式を更に備え、前記ネットワークにおける任意の2つのノード間の前記ユークリッド距離に基づく最小距離値及び最大距離値を用いて前記第1の距離算出式を正規化し、前記ネットワークにおける任意の2つのノード間の前記他の距離尺度に基づく最小距離値及び最大距離値を用いて前記第2の距離算出式を正規化し、前記入力ベクトルの次元数が増加するに従って、前記第1の距離算出式の重みを減少させ、前記ノード間距離算出式を用いて、前記入力ベクトル及び前記ノード間の距離、又は、前記ネットワークにおける任意の2つのノード間の距離を算出するようにしてもよい。これにより、低次元空間におけるユークリッド距離の優位性を得られる上に、学習対象とする問題に応じた柔軟な距離尺度の設定が可能になる。さらに、この枠組みは入力ベクトルの事前の分析を必要としないために、オンライン追加の自己増殖型学習タスク、あるいは限られた入力ベクトルのサンプルによる実世界の学習タスクに適している。
また、前記第2の距離算出式は、コサイン距離に基づいてノード間の距離を算出するようにしてもよい。これによって、高次元データに対しても良好な精度を有することができる。
また、前記ユークリッド距離に基づく前記2つのノード間の最小距離値及び最大距離値と、前記他の距離尺度に基づく前記2つのノード間の最小距離値及び最大距離値と、のうちで少なくとも1つの値が変化したか否かを確認し、少なくとも1つの値が変化した場合にはノード密度を更新すると判定するノード密度更新判定手段と、を更に備え、前記ノード密度算出手段は、(1)前記第1の距離算出式及び前記第2の距離算出式をそれぞれ用いて前記第1勝者ノードの隣接ノードからの平均距離のベクトルの各成分を算出し、(2)当該算出した前記第1勝者ノードの前記隣接ノードからの平均距離のベクトルに基づいて前記第1勝者ノードのノード密度のポイント値のベクトルを算出し、(3)当該算出した前記第1勝者ノードの前記ノード密度のポイント値のベクトルに基づいて前記第1勝者ノードのノード密度の累積ポイント値のベクトルを算出し、(4)当該算出した前記第1勝者ノードの前記ノード密度の累積ポイント値のベクトルに基づいて前記第1勝者ノードのノード密度を算出し、(5)前記ノード密度更新判定手段による判定の結果、ノード密度を更新する場合には、変化前後における前記ユークリッド距離に基づく前記2つのノード間の最小距離値及び最大距離値と、変化前後における前記他の距離尺度に基づく前記2つのノード間の最小距離値及び最大距離値と、に基づいて、前記ネットワークに存在する全てのノードについて、注目するノードの前記ノード密度の累積ポイント値のベクトルを更新し、(6)当該更新した前記注目するノードの前記ノード密度の累積ポイント値のベクトルに基づいて前記注目するノードの前記ノード密度を再び算出するようにしてもよい。これにより、ノードが挿入されたことに起因して、ユークリッド距離に基づく2つのノード間の最小距離値及び最大距離値と、他の距離尺度に基づく2つのノード間の最小距離値及び最大距離値と、のうちで少なくとも1つの値が変化した場合においても、これらの変化を反映させたより正確なノード密度を自動的に算出することができる。
本発明の一実施の形態に係る情報処理方法は、多次元ベクトルで記述されるノード及び当該ノード間を接続する辺が配置されるネットワーク構造を有し、任意のクラスに属する入力ベクトルを順次入力して、当該入力ベクトルの入力分布構造を学習する情報処理装置における情報処理方法であって、勝者ノード探索手段が、入力される前記入力ベクトルに最も近い距離に位置するノード及び2番目に近い距離に位置するノードを第1勝者ノード及び第2勝者ノードとしてそれぞれ探索するステップと、クラス間ノード挿入判定手段が、前記入力ベクトルと前記第1勝者ノード間の距離及び前記入力ベクトルと前記第2勝者ノード間の距離に基づいて、クラス間ノード挿入を実行するか否かを判定するステップと、クラス間ノード挿入手段が、前記クラス間ノード挿入判定手段による判定の結果、前記クラス間ノード挿入を実行する場合に、前記入力ベクトルの成分と同一の成分を重みベクトルとして有するクラス間挿入ノードを生成し、当該生成したクラス間挿入ノードを前記ネットワークに挿入するステップと、勝者ノード学習時間算出手段が、前記クラス間ノード挿入判定手段による判定の結果、前記クラス間ノード挿入を実行しない場合に、前記第1勝者ノード及び前記第2勝者ノード間に辺を接続したときに、前記第1勝者ノードについてノードの学習時間を所定の値増加するステップと、重みベクトル更新手段が、前記クラス間ノード挿入判定手段による判定の結果、前記クラス間ノード挿入を実行しない場合に、注目するノードについて当該注目するノードと辺によって直接的に接続されるノードを隣接ノードとして、前記第1勝者ノードの重みベクトル及び前記第1勝者ノードの隣接ノードの重みベクトルをそれぞれ前記入力ベクトルに更に近づけるように更新するステップと、負荷平衡化手段が、前記入力ベクトルの総数に応じた所定の周期ごとに、前記ノードの学習時間の値が相対的に大きくかつ偏っているノードを検出し、当該検出したノード及びその隣接ノードの重みベクトルに基づく重みベクトルを有する新たなノードを生成して前記ネットワークに挿入し、前記検出したノードの学習時間及び前記検出したノードの隣接ノードの学習時間をそれぞれ減少し、前記検出したノード及びその隣接ノード間の辺を削除し、前記新たに挿入したノード及び前記検出したノード間と、前記新たに挿入したノード及び前記検出したノードのその隣接ノード間と、に辺をそれぞれ接続するステップと、を実行する、ことを特徴とするものである。これによって、入力データの入力順序に影響を受けずに、入力パターンの接続構造を正確に記述することができるため、従来技術に比べてより優れた安定性能を有する。
本発明の一実施の形態に係る非一時的なコンピュータ可読媒体は、上記情報処理をコンピュータに実行させることを特徴とするものである。これによって、入力データの入力順序に影響を受けずに、入力パターンの接続構造を正確に記述することができるため、従来技術に比べてより優れた安定性能を有する。
本発明によれば、学習結果について優れた安定性を有する情報処理装置、情報処理方法及び非一時的なコンピュータ可読媒体を提供することができる。さらに、高次元データに対しても良好な精度を有する情報処理装置、情報処理方法及び非一時的なコンピュータ可読媒体を提供することができる。
本発明の実施の形態に係る具体的な構成・処理の説明に先立ち、本発明の理解をより容易とするために、本発明に関連する技術(以下、E-SOINNと称する。)の概要を簡単に説明する。
E-SOINNは、入力データの入力順序に学習結果が大きく依存するという問題を有している。図3を参照して、E-SOINNによる学習結果を説明する。図3は、E-SOINNによる処理(特許文献1の図5のS611、S607、S612などの処理を指す。具体的には、明細書の段落0071~0079に記載の処理を指す。)を実行した後の、ネットワークにおけるノードのノード密度の分布を示している。この例では、サブクラスタ間の重複領域が存在し、また、ノード密度の分布は大きな変動を有している。
E-SOINNは、入力データの入力順序に学習結果が大きく依存するという問題を有している。図3を参照して、E-SOINNによる学習結果を説明する。図3は、E-SOINNによる処理(特許文献1の図5のS611、S607、S612などの処理を指す。具体的には、明細書の段落0071~0079に記載の処理を指す。)を実行した後の、ネットワークにおけるノードのノード密度の分布を示している。この例では、サブクラスタ間の重複領域が存在し、また、ノード密度の分布は大きな変動を有している。
図3において、符号A及び符号Bは、E-SOINNによる処理によって生成された2つのサブクラスタをそれぞれ示す。なお、ネットワークにおいて辺によって接続されるノードの集合をクラスタとし、クラスタの部分集合をサブクラスタとする。ここで、サブクラスタとは、同一のサブクラスタラベルが付与されたノードからなる集合である。E-SOINNは、サブクラスタA及びサブクラスタBを統合するために、所定の条件(特許文献1の明細書の段落0076、数(14)、数(15)などにより示される。)を定めている。
E-SOINNは、新たな入力データがネットワークに入力されたときに、その第1勝者ノードがサブクラスタAに属し、かつ、第2勝者ノードがサブクラスタBに属し、さらに、(サブクラスタA及びBの重複領域に入力データが初めて現れたために、)サブクラスタA及びサブクラスタBと、サブクラスタC及びサブクラスタDとが統合されていないという状況下では、明らかに、サブクラスタA及びBを統合する条件をとても容易に満たしてしまう。E-SOINNは、サブクラスタA及びサブクラスタBを統合しようとするが、サブクラスタAはサブクラスタCに本来属すべきであり、サブクラスタBはサブクラスタDに本来属すべきである。従って、この問題は、サブクラスタの統合及び分離の繰り返しを引き起こしてしまう。図4は、3つのガウス分布を有する入力データに対するE-SOINNによる学習結果を示し、3つのガウス分布が互いに重複を有しており、また、複数のサブクラスタへの統合及び分離の乱れが行われている。
以下、自己組織化ニューラルネットワーク(SOINN:Self-Organizing Incremental Neural Network)に関する技術として、本発明に係る技術を、LBSOINN(Load Balance Self-Organizing Incremental Neural Network)と称する。
LBSOINNは、ネットワークにおけるノードの負荷をノード学習時間として扱い、このノード学習時間を使用したノードの負荷の平衡化手法を提案する。LBSOINNは、この負荷平衡化手法によって、ネットワークをより安定化させることができる。このため、LBSOINNを負荷平衡(Load Balance)と称している。また、LBSOINNは、ボロノイテセレーション(Voronoi Tessellation)に基づくサブクラスタ決定手法を使用することによって、クラス間の重複領域を削除する際のネットワーク構造の乱れを回避する。さらに、LBSOINNは、2つのノード間の類似度を示す距離尺度に関して、高次元データをオンライン追加学習するのに適した、新たな距離尺度を導入する。
また、詳細は後述するが、本発明に関する効果を確認するための実験を行い、LBSOINNの有効性を確認した。実験では、人工データセットに加え実世界での例に対してもLBSOINNを適用し、クラスタリングにおけるLBSOINNの有効性を実証した。全ての実験結果から、LBSOINNがE-SOINNよりも優れた安定性を有し、また、高次元空間における良好なパフォーマンスを有していることが示された。
実施の形態1.
以下、図面を参照して本発明の実施の形態について説明する。
図20は、LBSOINNの一例としての、本実施の形態1に係る情報処理装置を実現するためのシステム構成の一例を示す図である。情報処理装置1は、専用コンピュータ、パーソナルコンピュータ(PC)などのコンピュータ10により実現可能である。但し、コンピュータは、物理的に単一である必要はなく、分散処理を実行する場合には、複数であってもよい。図20に示すように、コンピュータ10は、CPU11(Central Processing Unit)、ROM12(Read Only Memory)及びRAM13(Random Access Memory)を有し、これらがバス14を介して相互に接続されている。尚、コンピュータを動作させるためのOSソフトなどは、説明を省略するが、この情報処理装置を構築するコンピュータも当然備えているものとする。
以下、図面を参照して本発明の実施の形態について説明する。
図20は、LBSOINNの一例としての、本実施の形態1に係る情報処理装置を実現するためのシステム構成の一例を示す図である。情報処理装置1は、専用コンピュータ、パーソナルコンピュータ(PC)などのコンピュータ10により実現可能である。但し、コンピュータは、物理的に単一である必要はなく、分散処理を実行する場合には、複数であってもよい。図20に示すように、コンピュータ10は、CPU11(Central Processing Unit)、ROM12(Read Only Memory)及びRAM13(Random Access Memory)を有し、これらがバス14を介して相互に接続されている。尚、コンピュータを動作させるためのOSソフトなどは、説明を省略するが、この情報処理装置を構築するコンピュータも当然備えているものとする。
バス14には又、入出力インターフェイス15も接続されている。入出力インターフェイス15には、例えば、キーボード、マウス、センサなどよりなる入力部16、CRT、LCDなどよりなるディスプレイ、並びにヘッドフォンやスピーカなどよりなる出力部17、ハードディスクなどより構成される記憶部18、モデム、ターミナルアダプタなどより構成される通信部19などが接続されている。
CPU11は、ROM12に記憶されている各種プログラム、又は記憶部18からRAM13にロードされた各種プログラムに従って各種の処理、本実施の形態においては、例えば後述するノード密度算出手段23や負荷平衡化手段33などの各手段の処理を実行する。RAM13には又、CPU11が各種の処理を実行する上において必要なデータなども適宜記憶される。
通信部19は、例えば図示しないインターネットを介しての通信処理を行ったり、CPU11から提供されたデータを送信したり、通信相手から受信したデータをCPU11、RAM13、記憶部18に出力したりする。記憶部18はCPU11との間でやり取りし、情報の保存・消去を行う。通信部19は又、他の装置との間で、アナログ信号又はディジタル信号の通信処理を行う。
入出力インターフェイス15はまた、必要に応じてドライブ20が接続され、例えば、磁気ディスク201、光ディスク202、フレキシブルディスク203、又は半導体メモリ204などが適宜装着され、それらから読み出されたコンピュータプログラムが必要に応じて記憶部18にインストールされる。
続いて、本実施形態に係る情報処理装置1における各処理について、その主な処理を図21に示す機能ブロック図を用いて説明する。ハードウェア上は、各処理は実際にはソフトウェアと上記CPU11などのハードウェア資源とが協働して実現している。
情報処理装置1は、n次元ベクトルで記述されるノードが配置される非階層構造のニューラルネットワークを有し、入力情報取得手段21、ノード密度更新判定手段22、ノード密度算出手段23、勝者ノード探索手段24、クラス間ノード挿入判定手段25、クラス間ノード挿入手段26、辺接続判定手段27、辺接続手段28、勝者ノード学習時間算出手段29、重みベクトル更新手段30、老齢辺削除手段31、入力数判定手段32、負荷平衡化手段33、サブクラスタ決定手段34、ノイズノード削除手段35、学習終了判定手段36、クラス決定手段37、出力情報表示手段38を含む。以下、各手段の詳細を説明する。
本実施形態においては、情報処理装置1が有するニューラルネットワークは、入力ベクトルをニューラルネットワークに入力し、入力される入力ベクトルに基づいて、ニューラルネットワークに配置されるノードを自動的に増加させる自己増殖型ニューラルネットワークであり、また、ニューラルネットワークは非階層構造を有するものとして以下説明する。
自己増殖型ニューラルネットワークを用いてノードを自動的に増加させることができるため、入力ベクトル空間からランダムに入力ベクトルが与えられる定常的な環境に限られず、例えば一定期間毎に入力ベクトルの属するクラスが切替えられて、切替後のクラスからランダムに入力ベクトルが与えられる非定常的な環境にも対応することができる。さらにまた、非階層構造を採用することで、他の層での学習を開始するタイミングを指定せずに追加学習を実施することができる。即ち、完全なオンラインでの追加学習を実施することができる。
入力情報取得手段21は、情報処理装置1に入力として与えられる情報として、任意のクラスに属するn次元の入力ベクトルを取得する。そして、取得された入力ベクトルを一時記憶部(例えばRAM13)に格納し、一時記憶部に格納されたニューラルネットワークに対して順次入力する。
ノード密度更新判定手段22は、一時記憶部に格納されたノード、各距離尺度に基づくノード間の最小距離値及び最大距離値について、各距離尺度に基づくノード間の最小距離値及び最大距離値のうちで少なくとも1つの値が変化したか否かを確認し、少なくとも1つの値が変化した場合にはノード密度を更新すると判定し、その結果を一時記憶部に格納する。なお、各距離尺度に基づくノード間の最小距離値及び最大距離値の詳細については後述する。
ノード密度算出手段23は、一時記憶部に格納されたノード、各距離尺度に基づくノード間の最小距離値及び最大距離値、隣接ノードからのノードの平均距離のベクトル、ノードのノード密度のポイント値のベクトル、ノード密度の累積ポイント値のベクトル、ノード密度について、第1の距離算出式及び第2の距離算出式をそれぞれ用いて第1勝者ノードの隣接ノードからの平均距離のベクトルの各成分を算出し、当該算出した第1勝者ノードの隣接ノードからの平均距離のベクトルに基づいて第1勝者ノードのノード密度のポイント値のベクトルを算出し、当該算出した第1勝者ノードのノード密度のポイント値のベクトルに基づいて第1勝者ノードのノード密度の累積ポイント値のベクトルを算出し、当該算出した第1勝者ノードのノード密度の累積ポイント値のベクトルに基づいて第1勝者ノードのノード密度を算出し、その結果を一時記憶部に格納する。なお、第1の距離算出式及び第2の距離算出式、第1勝者ノードのノード密度の算出処理の詳細については後述する。
また、ノード密度算出手段23は、一時記憶部に格納されたノード密度更新判定手段22による判定の結果、ノード密度を更新する場合には、一時記憶部に格納されたノード、ノード密度の累積ポイント値のベクトル、ノードの学習時間、各距離尺度に基づくノード間の最小距離値及び最大距離値について、変化前後におけるユークリッド距離に基づく2つのノード間の最小距離値及び最大距離値と、変化前後における他の距離尺度に基づく2つのノード間の最小距離値及び最大距離値と、に基づいて、ネットワークに存在する全てのノードについて、注目するノードのノード密度の累積ポイント値のベクトルを更新し、当該更新した注目するノードのノード密度の累積ポイント値のベクトルに基づいて注目するノードのノード密度を再び算出し、その結果を一時記憶部に格納する。なお、注目するノードの累積ポイント値のベクトルの算出処理の詳細については後述する。
勝者ノード探索手段24は、一時記憶部に格納される入力ベクトル及びノードについて、入力ベクトルに最も近い距離に位置するノードを第1勝者ノードとし、2番目に近い距離に位置するノードを第2勝者ノードとして探索し、その結果を一時記憶部に格納する。なお、本実施の形態に係る距離尺度の詳細については後述する。
クラス間ノード挿入判定手段25は、一時記憶部に格納された入力ベクトル及びノードについて、入力ベクトルと第1勝者ノード間の距離及び入力ベクトルと第2勝者ノード間の距離に基づいて、クラス間ノード挿入を実行するか否かを判定し、その結果を一時記憶部に格納する。なお、本実施の形態に係るクラス間ノード挿入判定処理の詳細については後述する。
クラス間ノード挿入手段26は、一時記憶部に格納されたクラス間ノード挿入判定手段25による判定結果に応じて、一時記憶部に格納された入力ベクトルについて、入力ベクトルが新たにネットワークに追加するノードであるものと見なし、その入力ベクトルの成分と同一の成分を重みベクトルとして有するクラス間挿入ノードを生成し、生成したクラス間挿入ノードをネットワークに挿入し、その結果を一時記憶部に格納する。
辺接続判定手段27は、一時記憶部に格納されたクラス間ノード挿入判定手段25による判定結果に応じて、一時記憶部に格納されたノード、ノードのサブクラスタラベルについて、ノードのサブクラスタラベルに基づいて、第1勝者ノード及び第2勝者ノードが属するサブクラスタをそれぞれ判定し、その結果を一時記憶部に格納する。ここで、ノードのサブクラスタラベルとは、そのノードが属するサブクラスタを示す。クラスタとは、混合クラスに含まれるノードについて、辺によって接続されるノードの集合を示し、サブクラスタは、同一のサブクラスタラベルが付与されたノードからなるクラスタの部分集合を示す。
また、辺接続判定手段27は、一時記憶部に格納された判定の結果、第1勝者ノード及び第2勝者ノードが互いに異なるサブクラスタに属する場合には、一時記憶部に格納されたノード、ノードの密度、ノードのサブクラスタラベルについて、第1勝者ノード及び第2勝者ノードのノード密度に関して、第1勝者ノードを含むサブクラスタの平均ノード密度を基準とする第1勝者ノードのノード密度の条件、又は、第2勝者ノードを含むサブクラスタの平均ノード密度を基準とする第2勝者ノードのノード密度の条件のうちの少なくとも1つを満たすか否かを更に判定し、その結果を一時記憶部に格納する。なお、辺接続判定手段27による辺接続判定処理の詳細については後述する。
辺接続手段28は、一時記憶部に格納された辺接続判定手段27による判定の結果、第1勝者ノード及び第2勝者ノードの少なくとも1つがいずれのサブクラスタに属していない、又は、同一のサブクラスタに属する場合には、一時記憶部に格納されたノード、ノード間の辺について、第1勝者ノード及び第2勝者ノード間に辺を接続し、その結果を一時記憶部に格納する。
また、辺接続手段28は、一時記憶部に格納された辺接続判定手段27による判定の結果、上記の第1勝者及び第2勝者ノードのノード密度の条件のうちの少なくとも1つを満たす場合には、一時記憶部に格納されたノード、ノード間の辺について、第1勝者ノード及び第2勝者ノード間に辺を接続し、その結果を一時記憶部に格納する。
また、辺接続手段28は、一時記憶部に格納された辺接続判定手段27による判定の結果、上記の第1勝者及び第2勝者ノードのノード密度の条件のうちの少なくとも1つを満たさない場合には、一時記憶部に格納されたノード、ノード間の辺について、第1勝者ノード及び第2勝者ノード間に辺を接続せず(第1勝者ノード及び第2勝者ノード間に辺が存在する場合には辺を削除する)、その結果を一時記憶部に格納する。なお、辺接続手段28による勝者ノード接続処理の詳細については後述する。
勝者ノード学習時間算出手段29は、一時記憶部に格納されたノード、ノードの学習時間について、第1勝者ノードの学習時間を所定の値増加し、その結果を一時記憶部に格納する。なお、本実施形態において、ノードの学習時間の詳細については後述する。
重みベクトル更新手段30は、一時記憶部に格納されたノード、ノードの重みベクトルについて、注目するノードについて注目するノードと辺によって直接的に接続されるノードを隣接ノードとして、第1勝者ノードの重みベクトル及び第1勝者ノードの隣接ノードの重みベクトルをそれぞれ入力ベクトルに更に近づけるように更新し、その結果を一時記憶部に格納する。
老齢辺削除手段31は、一時記憶部に格納されたノード、ノード間の辺、辺の年齢について、第1勝者ノードと直接的に接続される全ての辺の年齢を所定の値増加し、その結果を一時記憶部に格納する。また、老齢辺削除手段31は、一時記憶部に格納された辺について、予め設定され一時記憶部に格納された所定の閾値を超えた年齢を有する辺を削除し、その結果を一時記憶部に格納する。
入力数判定手段32は、一時記憶部に格納された与えられた入力ベクトルの総数について、与えられた入力ベクトルの総数が予め設定され一時記憶部に格納された所定の単位数の倍数であるか否かを判定し、その結果を一時記憶部に格納する。
負荷平衡化手段33は、一時記憶部に格納されたノード、ノード間の辺、ノードのサブクラスタラベル、ノードの重みベクトル、ノードの学習時間について、入力ベクトルの総数に応じた所定の周期ごとに、ノードの学習時間の値が相対的に大きくかつ偏っているノードを検出し、当該検出したノード及びその隣接ノードの重みベクトルに基づく重みベクトルを有する新たなノードを生成してネットワークに挿入し、検出したノードの学習時間及び検出したノードの隣接ノードの学習時間をそれぞれ減少し、検出したノード及びその隣接ノード間の辺を削除し、新たに挿入したノード及び検出したノード間と、新たに挿入したノード及び検出したノードのその隣接ノード間と、に辺をそれぞれ接続し、その結果を一時記憶部に格納する。なお、負荷平衡化手段33によるノードの負荷平衡化処理の詳細については後述する。
サブクラスタ決定手段34は、一時記憶部に格納されたノード、ノード間の辺、ノードのサブクラスタラベル、ノード密度、ボロノイ領域について、局所的に最大のノード密度を有するノードを頂点として、当該頂点に対してそれぞれ異なるサブクラスタラベルを付与し、当該サブクラスタラベルが付与されなかった全てのノードに対してノード密度が最大の隣接ノードと同一のサブクラスタラベルを付与し、頂点のうちでノード密度が所定の閾値よりも大きな頂点を基準としてボロノイ領域を生成し、当該生成したボロノイ領域において、基準とした頂点を含むサブクラスタと基準とした頂点とは異なる他の頂点を含むサブクラスタとが重複領域を有し、かつ、当該重複領域に位置するノードの平均ノード密度の条件を満たす場合に、基準とした頂点を含むサブクラスタのサブクラスタラベルを、他の頂点を含むサブクラスタのサブクラスタラベルとして付与し、その結果を一時記憶部に格納する。なお、サブクラスタ決定手段34による処理の詳細については後述する。
ノイズノード削除手段35は、一時記憶部に格納されたノード、ノード密度、ノード間の辺、隣接ノードの個数について、注目するノードについて、注目するノードの隣接ノードの個数及びノード密度に基づいて、注目するノードを削除し、その結果を一時記憶部に格納する。
学習終了判定手段36は、情報処理装置1による学習処理を終了するか否かを判定する。
クラス決定手段37は、一時記憶部に格納されたノード、ノード間の辺、ノードのクラスについて、ノード間に生成された辺に基づいて、ノードの属するクラスを決定し、その結果を一時記憶部に格納する。
出力情報表示手段38は、一時記憶部に格納されたノード及びノードのクラスについて、ノードの属するクラスのクラス数、及び各クラスのプロトタイプベクトルを出力する。
次に、本実施の形態に係る情報処理装置1が有する特徴的な構成・処理を説明する。以下では、<1:ノード間の負荷平衡化処理>、<2:サブクラスタの決定処理>、<3:新たな距離尺度の組み合わせの枠組み>、<4:類似度閾値の定義>、<5:新たなノード密度の定義及びその算出処理>、<6:辺接続判定処理及び辺接続処理>の順に説明する。
<1:ノード間の負荷平衡化処理>
E-SOINNは、第1勝者又は第2勝者の類似度閾値による判定のみを単純に使用して、新たな入力ベクトルであるクラス間ノードをネットワークに挿入すべきか否かを決定する。このため、ネットワークの学習を新たに開始しようとしたときにノードの接続構造が既に構築されていた場合には、新たなノードをネットワークに挿入することが困難になる。この構築済みのノードの接続構造は入力データの入力順序に大きく影響されるため、E-SOINNの学習結果は安定しない。また、図2に示したように、この欠点はノードの密度を算出する際には、入力データに対する低い精度をもたらしてしまう。
E-SOINNは、第1勝者又は第2勝者の類似度閾値による判定のみを単純に使用して、新たな入力ベクトルであるクラス間ノードをネットワークに挿入すべきか否かを決定する。このため、ネットワークの学習を新たに開始しようとしたときにノードの接続構造が既に構築されていた場合には、新たなノードをネットワークに挿入することが困難になる。この構築済みのノードの接続構造は入力データの入力順序に大きく影響されるため、E-SOINNの学習結果は安定しない。また、図2に示したように、この欠点はノードの密度を算出する際には、入力データに対する低い精度をもたらしてしまう。
ノードの接続構造を正確に表現するためには、ノードの個数を十分な数にすることが重要であり、このこと自体はよく知られている。ネットワークのいくつかの領域においてノードの個数が十分でない場合、それらの領域におけるノードの学習時間の値が大きくかつ偏った状況になる。本実施の形態では、この状況をノードの負荷が不均衡な状態にあるものと定義する。本実施の形態では、この負荷の不均衡を解消するために、以下に示すノード間の負荷平衡化処理を導入する。
<1-1:ノード間の負荷平衡化処理(S101~S107)>
入力ベクトルの入力総数が所定の単位数(λ)の整数倍となった場合、負荷平衡化手段33は、一時記憶部に格納されたノード、ノード間の辺、ノードのサブクラスタラベル、ノードの重みベクトル、ノードの学習時間、ノードの密度について、ノードが属するサブクラスタの平均学習時間と比較して当該ノードの学習時間の値が相対的に大きくかつ偏ったノード(負荷が不均衡な状態にあるノード)を検出し、当該検出したノードとその隣接ノードの間に新たなノードを挿入し、当該検出したノードとその隣接ノードの学習時間を減少し、その結果を一時記憶部に格納する。これによって、負荷平衡化手段33は、負荷が不均衡な状態にあるノードについて負荷を平衡化させる。以下、ノードの負荷平衡化処理を具体的に説明する。なお、ノードの学習時間及びノードの密度の詳細については後述する。
入力ベクトルの入力総数が所定の単位数(λ)の整数倍となった場合、負荷平衡化手段33は、一時記憶部に格納されたノード、ノード間の辺、ノードのサブクラスタラベル、ノードの重みベクトル、ノードの学習時間、ノードの密度について、ノードが属するサブクラスタの平均学習時間と比較して当該ノードの学習時間の値が相対的に大きくかつ偏ったノード(負荷が不均衡な状態にあるノード)を検出し、当該検出したノードとその隣接ノードの間に新たなノードを挿入し、当該検出したノードとその隣接ノードの学習時間を減少し、その結果を一時記憶部に格納する。これによって、負荷平衡化手段33は、負荷が不均衡な状態にあるノードについて負荷を平衡化させる。以下、ノードの負荷平衡化処理を具体的に説明する。なお、ノードの学習時間及びノードの密度の詳細については後述する。
S101:負荷平衡化手段33は、一時記憶部に格納されたノード、ノードのサブクラスタラベル、ノードの学習時間について、ノードの学習時間に基づいて、各サブクラスタにおいて相対的に大きなノードの学習時間を有するノードを探索し、その結果を一時記憶部に格納する。負荷平衡化手段33は、例えば、各サブクラスタにおいて最大のノードの学習時間を有するノードqを探索し、その結果を一時記憶部に格納する。さらに、負荷平衡化手段33は、一時記憶部に格納されたノード、ノードの学習時間について、検出したノードqの学習時間が、相対的に大きくかつ偏っているか否かを判定し、その結果を一時記憶部に格納する。負荷平衡化手段33は、例えば、ノードqの学習時間Mq及びノードqが属するサブクラスタの平均学習時間Mcq
averageについて、Mq>3Mcq
averageが成立するか否か判定し、その結果を一時記憶部に格納する。なお、負荷平衡化手段33は、ノードqが属するサブクラスタに含まれる全てのノードの学習時間を平均することによって、ノードqが属するサブクラスタの平均学習時間Mcq
averageを算出し、その結果を一時記憶部に格納する。一時記憶部に格納された判定の結果、Mq>3Mcq
averageが成立する場合には、負荷平衡化手段33は、以下のようにして新たなノードを追加し、Mq>3Mcq
averageが成立しない場合には、ノードの追加を行わない。
S102:負荷平衡化手段33は、一時記憶部に格納されたノード、ノードの学習時間について、ノードの学習時間に基づいて、ノードqの隣接ノードのうちで、例えば最大の学習時間を有する隣接ノードfを決定し、その結果を一時記憶部に格納する。例えば、負荷平衡化手段33は、一時記憶部に格納される以下の式を満たす隣接ノードfを決定し、その結果を一時記憶部に格納する。ここで、Nqは、ノードqの隣接ノード集合を示す。
S103:負荷平衡化手段33は、一時記憶部に格納されたノードについて、新たなノードrを生成してネットワークに追加し、その結果を一時記憶部に格納する。また、負荷平衡化手段33は、一時記憶部に格納されたノード、ノードの重みベクトルについて、ノードrの重みベクトルWrを、ノードqの重みベクトルWq及び隣接ノードfの重みベクトルWfを用いて補間して算出し、その結果を一時記憶部に格納する。例えば、負荷平衡化手段33は、一時記憶部に格納される以下の式に示す操作及び算出処理を実行し、その結果を一時記憶部に格納する。
S104:負荷平衡化手段33は、一時記憶部に格納されたノード、ノードの学習時間について、ノードrの学習時間Mrを、ノードqの学習時間Mq及び隣接ノードfの学習時間Mfを用いて補間して算出し、その結果を一時記憶部に格納する。例えば、負荷平衡化手段33は、一時記憶部に格納される以下の式に示す算出処理を実行し、その結果を一時記憶部に格納する。ここで、dは入力ベクトルの次元数を示す。
S105:負荷平衡化手段33は、一時記憶部に格納されたノード、ノードの学習時間について、ノードqの学習時間Mq及び隣接ノードfの学習時間Mfを所定の割合それぞれ減少し、その結果を一時記憶部に格納する。例えば、負荷平衡化手段33は、一時記憶部に格納される以下の式に示す算出処理を実行し、その結果を一時記憶部に格納する。ここで、dは入力ベクトルの次元数を示す。
S106:負荷平衡化手段33は、一時記憶部に格納されたノード、ノードの密度について、ノードrの密度hrを、ノードqの密度hq及び隣接ノードfの密度hfを用いて補間して算出し、その結果を一時記憶部に格納する。例えば、負荷平衡化手段33は、一時記憶部に格納される以下の式に示す算出処理を実行し、その結果を一時記憶部に格納する。
S107:負荷平衡化手段33は、一時記憶部に格納されたノード、ノード間の辺について、新たなノードrとノードqを接続する辺と、新たなノードrと隣接ノードfを接続する辺と、を生成し、また、ノードq及び隣接ノードfの間に元々存在する辺を削除し、その結果を一時記憶部に格納する。例えば、負荷平衡化手段33は、一時記憶部に格納される以下の式(8)、式(9)に示す操作を実行し、その結果を一時記憶部に格納する。ここで、Cは辺集合を示し、例えば(r,q)はノードr及びノードq間を接続する辺を示す。
上述したように、情報処理装置1は、ノードが属するサブクラスタの平均学習時間を基準レベルとして採用し、ネットワークにノードを新たに挿入するか否かという追加学習のタスクに適用する。このため、事前の学習結果により得られた知識(ノード及びその接続構造を含むネットワーク)は、新たに入力される入力ベクトルに影響しない。この処理によって、情報処理装置1によるノード接続構造の生成処理は、E-SOINNとは異なったものになる。
情報処理装置1は、ネットワークに入力ベクトルを新たに挿入すべきか否かに関し、第1勝者又は第2勝者の類似度閾値を使用してノードの挿入を行うクラス間ノード挿入処理に加えて、負荷が不均衡な状態にあるノード(即ち、ノードの学習時間の値が相対的に大きくかつ偏ったノード)を検出して、この検出したノードの近くに新たなノードを挿入する負荷平衡化処理を実行する。これによって、ネットワークにおけるノードの負荷を平衡化させることができる。そして、情報処理装置1は、上述したS101~S107に示す新たなノード挿入と、後述するS507に示すノード挿入と、の両方がクラス間挿入に属する場合、ネットワークにおけるノードの個数を十分なものにすることができ、この結果、入力データの密度分布を正確に反映することができる。従って、入力データの入力順序に影響を受けずに、入力パターンの接続構造を正確に記述することができるため、従来技術に比べてより優れた安定性能を有する。
<2:サブクラスタの決定処理>
入力ベクトルの入力個数が所定の単位数(λ)の整数倍となった場合、上述した負荷平衡化処理に加えて、サブクラスタ決定手段34は、一時記憶部に格納されたノード、ノード間の辺、ノードのサブクラスタラベル、ノードの密度、ボロノイ領域について、ボロノイテセレーション(Voronoi Tessellation)に基づくサブクラスタの決定処理を実行し、その結果を一時記憶部に格納する。なお、サブクラスタの決定処理とは、ネットワークに存在するノードに対してサブクラスタラベルを付与することによって、当該ノードが属するサブクラスタを決定する処理である。
入力ベクトルの入力個数が所定の単位数(λ)の整数倍となった場合、上述した負荷平衡化処理に加えて、サブクラスタ決定手段34は、一時記憶部に格納されたノード、ノード間の辺、ノードのサブクラスタラベル、ノードの密度、ボロノイ領域について、ボロノイテセレーション(Voronoi Tessellation)に基づくサブクラスタの決定処理を実行し、その結果を一時記憶部に格納する。なお、サブクラスタの決定処理とは、ネットワークに存在するノードに対してサブクラスタラベルを付与することによって、当該ノードが属するサブクラスタを決定する処理である。
上述したように、E-SOINNによる処理はサブクラスタの統合及び分離の繰り返しを引き起こしてしまう。これは、E-SOINNによる処理(特許文献1の図5のS611の処理を指す。具体的には、明細書の段落0071に記載の処理を指す。)の実行後にネットワークに多くのサブクラスタが存在し、さらに、E-SOINNによる処理(特許文献1の図5のS607、S612などの処理を指す。具体的には、明細書の段落0072~0079に記載の処理を指す。)によって、真のサブクラスタの外縁に位置するサブクラスタが容易に統合されてしまうためである。情報処理装置1は、以下に示すサブクラスタの統合を目的とするサブクラスタ決定処理を導入することによって、E-SOINNが有する問題に対処する。
本実施の形態では、以下の処理についての理解をより容易とするために、"サブクラスタ"という用語に代えて"隆起(tuber)"という用語を使用する。後述するように、本実施の形態では、局所的に最大のノード密度を有するノード及び当該ノードと辺によって接続されるノードからなる集合を記述するために、この隆起という用語を使用する。なお、隆起とは通常、山の盛り上がりを示すが、本実施の形態では、あるクラスに含まれる複数のサブクラスタに関して各サブクラスタが含むノードのノード密度の高低を考慮して、ノード密度の盛り上がりを表現するために隆起という用語を用いる。例えば、図5において、A、B、C、Dはそれぞれ隆起を示す。A及びCはそれぞれ同一のクラスに属し、B及びDはそれぞれ他の同一のクラスに属する。
後述するように、本実施の形態では、サブクラスタ決定処理を、各ボロノイ領域において、ノード密度が高密度の隆起から低密度の隆起へと向けて実行する。図5において、例えば、隆起Aからサブクラスタ決定処理を開始した場合、隆起Bは隆起Aと容易に統合し、その結果、ネットワークもまた乱れてしまう。さらに、隆起のサブクラスタ決定処理は、他の隆起と統合することを回避するように、正確に停止する必要がある。また、図5において、例えば、隆起Cのサブクラスタ決定処理では、隆起Bと統合しないようにする必要がある。
隆起の決定処理を以下に示す。この処理は、分離及び降下平滑化アルゴリズム(SDSA:Separate and Downhill smooth algorithm)とも呼ばれる。なお、以下の処理では、局所的に最大のノード密度を有するノードを、隆起の頂点と称する。言い換えると、隆起の頂点とは、対応する隆起に含まれるノードのうちで最大のノード密度を有するノードを示す。
<2-1:サブクラスタの決定処理(S201~S205、S301~S305)>
S201:サブクラスタ決定手段34は、一時記憶部に格納されたノード、ノードの密度について、混合クラスにおける全てのノードについて局所的に最大のノード密度を有するノードを探索し、その探索したノードを隆起の頂点としてノード集合LMに追加し、その結果を一時記憶部に格納する。サブクラスタ決定手段34は、一時記憶部に格納されたノード、ノードのサブクラスタラベル(隆起ラベル)について、探索した頂点全てに対してそれぞれ異なる隆起ラベルを付与し、その結果を一時記憶部に格納する。
S201:サブクラスタ決定手段34は、一時記憶部に格納されたノード、ノードの密度について、混合クラスにおける全てのノードについて局所的に最大のノード密度を有するノードを探索し、その探索したノードを隆起の頂点としてノード集合LMに追加し、その結果を一時記憶部に格納する。サブクラスタ決定手段34は、一時記憶部に格納されたノード、ノードのサブクラスタラベル(隆起ラベル)について、探索した頂点全てに対してそれぞれ異なる隆起ラベルを付与し、その結果を一時記憶部に格納する。
S202:サブクラスタ決定手段34は、一時記憶部に格納されたノード、ノード間を接続する辺、ノードのサブクラスタラベル(隆起ラベル)について、S201において隆起ラベルが付与されなかった全てのノードに対して、ノード密度が最大の隣接ノードと同じ隆起ラベルを付与する。即ち、S201において、各頂点に対してそれぞれ異なる隆起ラベルが付与される。そして、S202において、頂点を除いた他の全てのノードのそれぞれに対して、当該ノードの隣接ノードのうちで最大のノード密度を有するノードの隆起ラベルが付与される。このようにして全てのノードに対して隆起ラベルが付与され、同一の隆起ラベルが付与されたノードからなる集合を隆起(サブクラスタ)として扱うことで、混合クラスを、複数の隆起(サブクラスタ)に分離する。ここで、注目するノードとその隣接ノードが互いに異なる隆起ラベルを有する場合には、その注目するノード及びその隣接ノードは、分布の重複領域に位置する可能性がある。
S203:サブクラスタ決定手段34は、一時記憶部に格納されたノード、ノードの密度について、頂点のノード集合LMにおいてノード密度がβより大きなノードを探索し、探索したノードをノード集合Kに追加し、その結果を一時記憶部に格納する。例えば、サブクラスタ決定手段34は、一時記憶部に格納される以下の式に示す算出処理を実行することによって値βを算出し、その結果を一時記憶部に格納する。ここで、γはユーザーによって予め適当な値が決定されて設定されるパラメータ(1<γ<2)を示し、hmeanは、頂点の集合LMに含まれる全ての頂点のノードの密度の平均値を示し、hmaxはノード集合LMに含まれる頂点のノード密度のうちで最大のノード密度を示す。
S204:サブクラスタ決定手段34は、一時記憶部に格納されたノード、ノードの重みベクトル、ボロノイ領域について、ノード集合Kに基づいて、頂点のノード集合LMについてのボロノイ領域(図6を参照。)を生成し、その結果を一時記憶部に格納する。例えば、サブクラスタ決定手段34は、一時記憶部に格納される以下の式(11)に示す操作を実行し、その結果を一時記憶部に格納する。式(11)に示すボロノイ領域の生成処理では、ノード集合Kに含まれるノードKiをシード(seed)として、このシードに対応するボロノイ領域Viを生成する。即ち、ノード集合Kに含まれるノードKiは、ボロノイ領域Viにおけるi番目のシードとなる。このように、S201~204に示す処理では、ノード集合LMは全ての頂点を含み、ノード集合Kは全ての頂点のうちでノード密度がβよりも高い頂点を含む。そして、ノード集合Kをボロノイ領域のシードとして使用する。例えば図6において、このようなシードを○(白丸)を用いて示している。
なお、ボロノイ領域は人工知能及び数学の分野における基礎的な知識であり(例えば、http://en.m.wikipedia.org/wiki/Voronoi_diagram を参照。)、上述したボロノイ領域の生成処理は、公知のボロノイ領域生成処理を実行すればよい。このため、ここでは、その詳細な説明を省略する。
S205:サブクラスタ決定手段34は、一時記憶部に格納されたノード、ノード間の辺、ノードの密度、ノードのサブクラスタラベル(隆起ラベル)、ボロノイ領域について、以下のS301~S305に示す処理を実行し、S204において生成した全てのボロノイ領域におけるサブクラスタの統合を行うことによってサブクラスタを決定し、その結果を一時記憶部に格納する。ここで、ボロノイ領域においてサブクラスタを決定するとは、各ボロノイ領域に含まれる隆起についてノード密度に関する所定の条件を満足する場合に、各隆起の隆起ラベルをノードKiの隆起ラベルに統合する処理を指す。なお、所定の条件とは、例えば、後述する式(12)又は式(13)のいずれかを満足することを指す。
S301:サブクラスタ決定手段34は、一時記憶部に格納されたノード、ノードのサブクラスタラベル(隆起ラベル)、ボロノイ領域について、ノードに付与された隆起ラベルに基づいて、あるボロノイ領域Viにおいて、当該ボロノイ領域Viに含まれるノードKiの隆起(Ki)とノードjを含む隆起(j)とが重複領域を有するか否かを判定し、その結果を一時記憶部に格納する。なお、ここでは、理解を容易とするため、ノードKiが属する隆起を隆起(Ki)とし、ノードKiに付与された隆起ラベルを隆起ラベル(Ki)とし、ノードjが属する隆起を隆起(j)とし、ノードjに付与された隆起ラベルを隆起ラベル(j)として説明する。また、ここでのノードjとは、頂点の集合LMに含まれるノードであって、且つ、ボロノイ領域Viに含まれるノードを指す。
サブクラスタ決定手段34は、ノードKiの隆起(Ki)とノードjを含む隆起(j)とが重複領域を有するか否かを、例えば、以下のようにして判定する。サブクラスタ決定手段34は、一時記憶部に格納されたノード、ノード間の辺、ノードのサブクラスタラベル(隆起ラベル)について、ネットワークに含まれるノード間の辺およびノードに付与された隆起ラベルに基づいて、その一端のノードの隆起ラベルが隆起ラベル(Ki)であり、かつ、他端のノードの隆起ラベルが隆起ラベル(j)である辺が存在するか否かを判定し、判定の結果、そのような辺が存在する場合には、ノードKiの隆起(Ki)とノードjを含む隆起(j)とが重複領域を有するものと判定し、その結果を一時記憶部に格納する。
S302:サブクラスタ決定手段34は、一時記憶部に格納された判定の結果、ノードKiの隆起(Ki)とノードjを含む隆起(j)とが重複領域を有する場合、ノード集合OKiにノードjを追加する。ノード集合OKiとは、ノードKiの隆起(Ki)とノードjを含む隆起(j)とが重複領域を有する場合に、ノードKiの隆起(Ki)に対して統合する可能性のある隆起(j)を格納しておくための集合である。サブクラスタ決定手段34は、ノードKiの隆起(Ki)とノードjを含む隆起(j)とが重複領域を有しない場合には、S301へと処理を進め、他のボロノイ領域Viについて処理を行う。
S303:サブクラスタ決定手段34は、一時記憶部に格納されたノード集合OKiについて、ノード集合OKiが空集合であるか否か判定し、その結果を一時記憶部に格納する。サブクラスタ決定手段34は、一時記憶部に格納された判定の結果、ノード集合OKiが空集合である場合には、S301へと処理を進め他のボロノイ領域Viについて処理を行い、ノード集合OKiが空集合でない場合には、S304へと処理を進める。
S304:サブクラスタ決定手段34は、例えば、ノード集合OKiに含まれるノードjそれぞれについて、一時記憶部に格納される以下の式(12)又は式(13)のいずれか1つを満足するか否かを判定し、その結果を一時記憶部に格納する。サブクラスタ決定手段34は、一時記憶部に格納された判定の結果、以下の式(12)又は式(13)のいずれか1つを満足する場合には、ノードj∈OKiの隆起ラベルとして、ノードKiの隆起ラベル(Ki)を付与する。即ち、サブクラスタ決定手段34は、ノードjの隆起ラベル(j)をノードKiの隆起ラベル隆起(Ki)に変更することによって、ノードjが属する隆起(j)を、ノードKiが属する隆起(Ki)に統合する。
式(12)及び式(13)において、hKiは、ノードKiのノード密度を示す。meanKiは、隆起(Ki)に含まれるノード(ネットワークに含まれるノード)のノード密度の平均ノード密度を示す。hjは、ノードjのノード密度を示す。meanjは、隆起(j)に含まれるノード(ネットワークに含まれるノード)のノード密度の平均ノード密度を示す。
ここで、meanORの定義を説明する。ノード集合OKiに含まれるノードjの隆起(j)について、隆起(Ki)と隆起(j)とが重複領域を有する場合には、隆起ラベル(Ki)であるノードと、隆起ラベル(j)であるノードとを接続する辺が存在する。この辺によって直接的に接続される各ノードを、隆起(Ki)と隆起(j)の重複領域に位置するノードと称する。meanORは、このようなノードのノード密度の平均ノード密度を示す。例えば、図23に例示する場合では、隆起(Ki)と隆起(j)とが2つの辺によって接続されており、これらの隆起は重複領域を有している。そして、これらの辺により接続されるノードとして、隆起(Ki)の2つのノードと、隆起(j)の2つのノードが存在し、これらの4個のノードが隆起(Ki)と隆起(j)の重複領域に位置する。meanORは、これらの4個のノードのノード密度を平均して算出する。
また、θは、ユーザーによって予め適切な値が決定されて設定されるパラメータを示し、その値は[1,2]の範囲内において定められる。また、θは許容度の要素のパラメータであり、1つのクラスにおいて、隆起(Ki)と隆起(j)との間の差異をどの程度許容するのかを決定するために使用される。θが増加するにつれてこの許容度はより小さくなる。
S305:サブクラスタ決定手段34は、一時記憶部に格納されたノード集合OKiを空集合に設定し、ステップS301へと処理を進め、再びステップS301以降の処理を開始する。
S301~S305の処理の様子を、図24(A)、(B)、(C)を参照して説明する。
図24(A)に示すように、ボロノイ領域V1において、隆起(K1)、隆起(j1)、隆起(j2)、隆起(j3)、隆起(j4)、隆起(j5)、隆起(j6)、隆起(j7)、隆起(j8)が含まれている。図において、各隆起を破線による白抜きの丸を用いて示す。なお、各ノードおよびノード間の辺については図示を省略した。
図24(A)に示すように、ボロノイ領域V1において、隆起(K1)、隆起(j1)、隆起(j2)、隆起(j3)、隆起(j4)、隆起(j5)、隆起(j6)、隆起(j7)、隆起(j8)が含まれている。図において、各隆起を破線による白抜きの丸を用いて示す。なお、各ノードおよびノード間の辺については図示を省略した。
サブクラスタ決定手段34は、S301において、隆起(K1)と隆起(j1)が重複領域を有しているか否か、・・・、隆起K1と隆起j8が重複領域を有しているか否か、をそれぞれ判定する。サブクラスタ決定手段34は、S302において、隆起(K1)と隆起(j1)が重複領域を有している場合には、隆起(j1)のノードj1を集合OK1に追加し、隆起(K1)と隆起(j2)が重複領域を有している場合には、隆起(j2)のノードj2を集合OK1に追加し、隆起(K1)と隆起(j3)が重複領域を有している場合には、隆起(j3)のノードj3をOK1に追加する。この結果、集合OK1は、ノードj1、j2、j3を含む。
次に、サブクラスタ決定手段34は、S303において、集合OK1が空集合でないために、次のS304へと進む。サブクラスタ決定手段34は、S304において、ノードj1が属する隆起(j1)について式(12)または(13)が成立するか判定し、成立する場合には、ノードK1の隆起ラベル(K1)をノードj1の隆起ラベルとして付与する。また、サブクラスタ決定手段34は、S304において、ノードj2が属する隆起(j2)について式(12)または(13)が成立するか判定し、成立する場合には、ノードK1の隆起ラベル(K1)をノードj2の隆起ラベルとして付与する。また、サブクラスタ決定手段34は、S304において、ノードj3が属する隆起(j3)について式(12)または(13)が成立するか判定し、成立する場合には、ノードK1の隆起ラベル(K1)をノードj3の隆起ラベルとして付与する。この処理の結果、隆起ラベルに基づく各隆起の状態を、図24(B)に示す。
次に、サブクラスタ決定手段34は、S305において、集合OK1を空集合に設定し、ステップ301へと進む。サブクラスタ決定手段34は、S301において、隆起(K1)と隆起(j4)が重複領域を有しているか否か、・・・、隆起(K1)と隆起(j8)が重複領域を有しているか否か、をそれぞれ判定し、S302において、これらの全ての隆起(j4)~(j8)が隆起(K1)と重複領域を有している場合には、隆起(j4)~(j8)のノードj4~j8を集合OK1に追加する。この結果、集合OK1は、ノードj4~j8を含む。サブクラスタ決定手段34は、S303を経てS304において、ノードj4~j8がそれぞれ属する隆起(j4)~(j8)について、式(13)または(13)が成立するかそれぞれ判定し、成立する場合には、ノードK1の隆起ラベル(K1)を、ノードj4~j8の隆起ラベルとして付与する。この処理の結果、隆起ラベルに基づく各隆起の状態を、図24(C)に示す。このようにして、サブクラスタ決定手段34は、各ボロノイ領域において、ボロノイ領域のシードとした頂点が属する隆起を中心として、他の隆起の統合を繰り返す。
サブクラスタ決定処理は、高いノード密度の隆起から低いノード密度の隆起へと向けて開始すべきである。このため、式(10)の目的は、ノード密度の境界βを探索して、その境界βの密度がどの程度高いかを決定することである。ノード密度がこの境界βよりも高い隆起は、対応するサブクラスタの中心になりやすい。このため、この種の隆起のノードを、頂点のノード集合Kに追加する。なお、本実施の形態では、隆起に含まれるノードのうちで、局所的に最大のノード密度を有するノードのみをノード集合Kに追加することによって、メモリを節約している。さらに、そのノード密度が境界βよりも低い全ての他の隆起は、ノード集合Kにおいて対応するボロノイ領域の要素となる。
そして、サブクラスタ決定処理を、ノード集合Kにおける要素(ノードKi)から開始する。加えて、サブクラスタ決定処理は、同一のボロノイ領域における隆起間においてのみ行う。異なるサブクラスタに属するかもしれない隆起を一緒に統合してしまうことは回避すべきであるため、同一のボロノイ領域における隆起間についてのみサブクラスタ決定処理を行うことはとても重要である。このような目的を実現するために、本実施の形態では、S301~S305に示した処理を実行する。
S301~S305に示したサブクラスタ決定処理は、各ボロノイ領域の中心の隆起から開始する。S301~S305に示したサブクラスタ決定処理は繰り返し処理であり、隆起間に重複領域が存在し、かつ、ノード密度に関する上述した所定の条件を満たす場合に、ボロノイ領域の中心の隆起は、重複領域を有する隆起を統合する。なお、各繰り返し処理において、当初は重複領域を有していなかったいくつかの隆起について、最後の繰り返し処理において、重複領域を有することがある。S301~S305に示した処理は、異なる方向に向けて山を降りていく処理にとても類似する処理である。
図5は、E-SOINNによって生成された変動を有する分布と、情報処理装置1によって生成されてサブクラスタが統合された分布を概念的に示している。本実施の形態に係るS201~S205及びS301~S305の処理によれば、明らかに、異なるサブクラスタに混合クラスを分離するときの乱れを回避することができる。言い換えると、情報処理装置1は、E-SOINNよりも安定であると言える。
<3:新たな距離尺度の組み合わせの枠組み>
E-SOINNは、ユークリッド距離を使用して最近傍ノード(最も近い距離に位置するノード)を探索する。しかしながら、入力データが高次元である場合には、ユークリッド距離を使用すると距離が集中するように見られ、データ要素間での全ての距離がとても類似するように見えてしまう(非特許文献:Verleysen, M., Francois, D. , "The Concentration of Fractional Distances", IEEE Trans. on Knowledge and Data Engineering 19(7), 873-886 (2007).を参照。)。この現象は、"次元の呪い"と呼ばれている。次元の呪いを打倒するためにこれまでに多くの手法が提案されている。
E-SOINNは、ユークリッド距離を使用して最近傍ノード(最も近い距離に位置するノード)を探索する。しかしながら、入力データが高次元である場合には、ユークリッド距離を使用すると距離が集中するように見られ、データ要素間での全ての距離がとても類似するように見えてしまう(非特許文献:Verleysen, M., Francois, D. , "The Concentration of Fractional Distances", IEEE Trans. on Knowledge and Data Engineering 19(7), 873-886 (2007).を参照。)。この現象は、"次元の呪い"と呼ばれている。次元の呪いを打倒するためにこれまでに多くの手法が提案されている。
例えば、高次元において近似する類似探索問題を解決するために、局所性鋭敏型ハッシュ(LSH:Locality Sensitive Hashing)手法が広く用いられている(非特許文献:Aristides Gionis , Piotr Indyk , Rajeev Motwani, "Similarity Search in High Dimensions via Hashing", Proceedings of the 25th International Conference on Very Large Data Bases, p.518-529, September 07-10, 1999.や、非特許文献:M. Datar, N. Immorlica, P. Indyk, and V.S. Mirrokni, "Locality-sensitive hashing scheme based on p-stable distributions", in Proc. Symposium on Computational Geometry, 2004, pp.253-262.を参照。)。しかし、LSHは、メモリ消費量が大きすぎるという大きな制約があり(非特許文献:Xiaoguang Gu, Yongdong Zhang, Lei Zhang, Dongming Zhang and Jintao Li, "An improved method of locality sensitive hashing for indexing large-scale and high-dimensional features," in Press, Signal Processing, 2012.を参照。)、オンライン追加学習タスクにLSHを使用することができない。さらに、コンテンツベースの類似サーチ手法として、関連するフィードバックアルゴリズムが与えられて、最適なノルムを選択するという手法がある。しかしながら、この手法もまた、オンライン追加学習タスクには使用することができない(非特許文献:Verleysen, M., Francois, D. , "The Concentration of Fractional Distances", IEEE Trans. on Knowledge and Data Engineering 19(7), 873-886 (2007).を参照。)。
入力データの次元が低次元である場合、ユークリッド距離に基づく距離は有効である。入力データが高次元である場合に有効な距離尺度としては、例えば、コサイン距離、マンハッタン距離(Manhattan distance)、フラクショナル距離(fractional distance)などのいくつかが提案されている。しかし、オンライン追加学習環境においては、サンプルデータを事前に得ることができない。言い換えると、事前に入力ベクトルの次元数を分析し、どの距離尺度が有効であるかを決定することができない。このため、本実施の形態では、距離尺度の組み合わせの枠組みを提案し、高次元空間において有効な他の距離尺度とユークリッド距離を統合する。これによって、次元の呪いを克服する。この距離尺度の組み合わせの枠組みは、オンライン自己増殖型追加学習タスクに適したものである。
本実施の形態に係る距離尺度の組み合わせの枠組みである距離算出式を、例えば、以下の式(14)に示す。ここで、D(p,q)はノードp及びノードqの間の距離を示す。dは入力ベクトルの次元数を示し、nは距離尺度の個数を示す。ηは、ユーザーによって予め適当な値が決定されて設定されるパラメータである。なお、ηは、実験を経て予め適当な値を決定し、ユーザーによって当該値を設定するものとしてもよいし、入力ベクトルの次元数を変数とする関数を情報処理装置1に設定し、情報処理装置1が、当該関数を用いて入力データの次元数に応じた適当な値を自ら算出して設定するようにしてもよい。
式(14)に示す距離算出式は、第1項部分と、第2項部分を含む。第1項部分は、ユークリッド距離に基づいてノード間の距離を算出する第1の距離算出式の一例である。第2項部分は、ユークリッド距離とは異なる他の距離尺度に基づいてノード間の距離を算出する、複数の距離算出式の一例である。第1項部分及び第2項部分はそれぞれ重み付けがされており、当該重み付けは、パラメータη及びdに応じて設定されている。後述するように、入力ベクトルの次元数dが増加するに従って、第1の距離算出式の重みを減少させるように設定されている。
EUpqは、ノードp及びノードqの間のユークリッド距離に基づく距離を示し、式(15)により算出する。EUmin及びEUmaxは、ネットワークにおける任意の2つのノード間の最小のユークリッド距離及び最大のユークリッド距離をそれぞれ示す。EUmaxの値は減少せずに増加するだけであり、このことは、EUmaxの値が、学習の過程においてそれまでに現れた最大のユークリッド距離であることを示す。また、学習フェーズが続く限り、EUminの値は増加せずに減少するだけであり、このことは、EUminの値が、学習の過程においてそれまでに現れた最小のユークリッド距離であることを示す。
Di
pq、Di
min、Di
maxは、i番目の距離尺度に関するものである。Di
pqは、ノードp及びノードqの間のi番目の距離尺度に基づく距離を示す。Di
min及びDi
maxは、ネットワークにおける任意の2つのノード間のi番目の距離尺度に基づく最小の距離値及び最大の距離値をそれぞれ示す。即ち、これらはEUpq、EUmin、EUmaxとそれぞれ同一の意味合いを有する。
各距離尺度に基づく距離は、互いに異なるスケールである。このため各距離尺度に基づく距離算出式を一つの距離算出式に統合するために、各距離尺度に基づく2つのノード間の最小距離値及び最大距離値を用いて、式(14)に示すようにして2つのノード間の距離を正規化する。
また、式(14)では、入力ベクトルの次元数が増加するに従って、式(14)に示すノード間距離算出式の値に占めるユークリッド距離に基づく距離算出式による値の比率を減少させ、これに対応するように、他の距離尺度に基づく距離算出式による値の比率を増加させる。
従って、このようなノード間距離算出式に示す枠組みによれば、低次元空間におけるユークリッド距離の優位性を得られる上に、高次元空間における学習タスクに対して情報処理装置1を適用させることも可能となる。さらに、この枠組みは入力ベクトルの事前の分析を必要としないために、オンライン追加の自己増殖型学習タスク、あるいは限られた入力ベクトルのサンプルによる実世界の学習タスクに適している。
後述するように、本実施の形態に係る情報処理装置1に対する実験においては、他の距離尺度の一例としてコサイン距離(cosine distance)を採用し、コサイン距離をユークリッド距離に統合する。コサイン距離の定義を以下の式に示す。ここで、θは、重みベクトルWp及び重みベクトルWqの間の角度を示す。
本実施の形態では、式(16)を用いて、式(14)に示した距離尺度の組み合わせを、以下に示すように再定義する。情報処理装置1は、例えば、式(17)に示す新たな距離尺度を用いてノードp及びノードqの間の距離を算出し、その結果を一時記憶部に格納する。
<4:類似度閾値の定義>
クラス間ノード挿入判定手段25は、一時記憶部に格納されたノード及びノードの類似度閾値について、注目するノードについて、隣接ノードが存在する場合には、隣接ノードのうち注目するノードからの距離が最大であるノードまでの距離を類似度閾値として算出し、その結果を一時記憶部に格納し、隣接ノードが存在しない場合には、注目するノードからの距離が最小であるノードまでの距離を類似度閾値として算出し、その結果を一時記憶部に格納する。具体的には、例えば以下のようにして注目するノードの類似度閾値を算出し、その結果を一時記憶部に格納する。なお、クラス間ノード挿入判定手段25は、ネットワークに初めて挿入され一時記憶部に格納されたノードiの類似度閾値Tiについては、予め定める十分大きな値を設定し、その結果を一時記憶部に格納する。
クラス間ノード挿入判定手段25は、一時記憶部に格納されたノード及びノードの類似度閾値について、注目するノードについて、隣接ノードが存在する場合には、隣接ノードのうち注目するノードからの距離が最大であるノードまでの距離を類似度閾値として算出し、その結果を一時記憶部に格納し、隣接ノードが存在しない場合には、注目するノードからの距離が最小であるノードまでの距離を類似度閾値として算出し、その結果を一時記憶部に格納する。具体的には、例えば以下のようにして注目するノードの類似度閾値を算出し、その結果を一時記憶部に格納する。なお、クラス間ノード挿入判定手段25は、ネットワークに初めて挿入され一時記憶部に格納されたノードiの類似度閾値Tiについては、予め定める十分大きな値を設定し、その結果を一時記憶部に格納する。
クラス間ノード挿入判定手段25は、一時記憶部に格納されたノードについて、ノードiが第1勝者ノード又は第2勝者ノードとなった場合に、ノードiが隣接ノードを有するか否かを判定し、その結果を一時記憶部に格納する。
クラス間ノード挿入判定手段25は、一時記憶部に格納された判定の結果、ノードiが隣接ノードを有する場合には、一時記憶部に格納された類似度閾値及びノードについて、類似度閾値Tiを隣接ノードへの最大距離とし、その結果を一時記憶部に格納する。即ち、ノードiについて、一時記憶部に格納される以下の式(18)に基づいて類似度閾値Tiを算出し、その結果を一時記憶部に格納する。ここで、jは一時記憶部に格納されたノードiの隣接ノード集合Niに含まれるノードであり、D(i,j)は、式(17)を用いて算出する、ノードi及びノードj間の距離である。
クラス間ノード挿入判定手段25は、一時記憶部に格納された判定の結果、ノードiが隣接ノードを有しない場合には、ノードiからノードiを除いた他の各ノードへの距離を算出し、算出された距離のうち最小の距離を類似度閾値Tiとする。即ち、ノードiについて、一時記憶部に格納される以下の式(19)に基づいて類似度閾値Tiを算出し、その結果を一時記憶部に格納する。
<5:新たなノード密度の定義及びその算出処理>
ノード密度算出手段23は、注目するノードのノード密度を、隣接ノードからのノードの平均距離に基づいて算出する。隣接ノードjからのノードiの平均距離のベクトルdi →は、例えば、以下の式(20)に示すようにして算出することができる。ここで、変数di →は、変数diの上に記号「→(ライトアロー)」が付いていることを示す。また、以下の説明において、記号「→(ライトアロー)」は、ベクトルであることを示す。ここで、ベクトルの要素数は、使用する距離尺度の個数と一致する。本実施の形態では、後述するように、2つの距離尺度を使用するため、ベクトルの要素数は2である。
ノード密度算出手段23は、注目するノードのノード密度を、隣接ノードからのノードの平均距離に基づいて算出する。隣接ノードjからのノードiの平均距離のベクトルdi →は、例えば、以下の式(20)に示すようにして算出することができる。ここで、変数di →は、変数diの上に記号「→(ライトアロー)」が付いていることを示す。また、以下の説明において、記号「→(ライトアロー)」は、ベクトルであることを示す。ここで、ベクトルの要素数は、使用する距離尺度の個数と一致する。本実施の形態では、後述するように、2つの距離尺度を使用するため、ベクトルの要素数は2である。
本実施の形態では、上述したように、新たな距離尺度の組み合わせの枠組みを提案し、ユークリッド距離に加えて他の距離尺度を使用するために、2つのノード間の距離を正規化する。このため、本実施の形態では、以下に説明するように、ノード密度の算出に際して上記式(20)をそのまま採用することに代えて、隣接ノードjからのノードiの平均距離のベクトルdi
→を以下の式(23)を使用して算出する。また、本実施の形態では、各距離尺度の正規化のために使用されるノード間の最小距離値及び最大距離値(EUmax、EUmin、Di
max、Di
min)はネットワークに新たな入力ベクトルが入力されると変化するため、この点についても考慮する。
情報処理装置1では、新たな距離尺度の枠組みを採用する。このため、新たなノードiについて隣接ノードからの平均距離を式(20)に基づいて算出する場合に、以前に挿入した他のノードの平均累積ポイント値を算出する際に使用したEUmax又はDi
maxと比べて、EUmax又はDi
maxの値が十分に大きくなっている可能性がある(ただし、ここでEUmin及びDi
minは変化しないものと仮定する。)。言い換えると、以前に挿入した他のノードの隣接ノードからの平均距離が算出され、新しいノードの隣接ノードからの平均距離が算出されるが、それぞれ異なったスケールにおいて正規化がなされる。
そこで、本実施の形態では、情報処理装置1は、ノード密度の新たな定義及び算出処理を導入し、上述した問題に対応する。この基本的な考えは、各距離尺度に基づくノード間の最小距離値及び最大距離値(EUmax、EUmin、Di
max、Di
min)のうちで少なくとも1つの値が変化した場合に、ネットワークに存在する全てのノードのノード密度の累積ポイント値を再び算出して更新することである。以下、具体的に説明する。
最後に、式(22)の表記を簡略化することによって、隣接ノードjからのノードiの平均距離のベクトルdi
→を、以下の式に示すように表すことができる。ノード密度算出手段23は、一時記憶部に格納されたノード、各距離尺度に基づくノード間の最小距離値及び最大距離値、隣接ノードからのノードの平均距離のベクトルについて、各距離尺度に基づく注目するノードの隣接ノードからの距離と、各距離尺度に基づくノード間の最小距離値及び最大距離値と、に基づいて注目するノードの隣接ノードからの平均距離のベクトルを算出し、その結果を一時記憶部に格納する。ノード密度算出手段23は、例えば、一時記憶部に格納される以下の式(23)を用いて隣接ノードjからの注目するノードiの平均距離のベクトルdi
→を算出し、その結果を一時記憶部に格納する。
上記式(23)に示した隣接ノードjからの注目するノードiの平均距離のベクトルdi
→における各要素は、0より大きくかつ1より小さい。このため、ノード密度のポイント値のベクトルpi
→の新たな定義を、以下の式(24)に示すように定める。ノード密度算出手段23は、一時記憶部に格納されるノード、隣接ノードからのノードの平均距離のベクトル、ノード密度のポイント値のベクトルについて、注目するノードが第1勝者である場合にのみ隣接ノードからのノードの平均距離のベクトルに応じた値をノード密度のポイント値のベクトルとして算出し、その結果を一時記憶部に格納する。ノード密度算出手段23は、例えば、一時記憶部に格納される以下の式(24)に示す算出処理を実行し、ノード密度のポイント値のベクトルpi
→を算出し、その結果を一時記憶部に格納する。
式(24)に示した"ノード密度のポイント値のベクトルpi
→"の定義に関して、隣接ノードからのノードiの平均距離が大きく、かつ、その領域におけるノードの個数が少ない場合、ノード密度のポイント値の定義は、E-SOINNの定義とは異なったものになる。情報処理装置1では、このような場合には、低い"ノード密度のポイント値のベクトルpi
→"を、ノードiに与える(低いとは、ノード密度のポイント値のベクトルpi
→の要素の合計値が小さいことを意味する。)。他方で、隣接ノードからのノードiの平均距離が小さい場合には、その領域におけるノードの個数が多く、その領域におけるノード密度が高いことを意味する。このため、情報処理装置1は、高い"ノード密度のポイント値のベクトルpi
→"を、ノードiに与える(高いとは、ノード密度のポイント値のベクトルpi
→の要素の合計値が大きいことを意味する。)。
情報処理装置1は、入力ベクトルが1つ入力されてそれに対する1回の学習の繰り返しにおいて、式(24)に示したようにノードiが勝者ノードである場合にのみ、ノードiについての"ノード密度のポイント値のベクトルpi
→"のみを算出する。この繰り返しにおいて、勝者ノードでない他のノードの"ノード密度のポイント値のベクトルpi
→"は算出せず、その値は全て0である。情報処理装置1は、ノード密度のポイント値のベクトルpi
→の定義をE-SOINNとは異なるものにし、式(24)が線形関数であることから、各距離尺度に基づくノード間の最小距離値及び最大距離値(EUmax、EUmin、Di
max、Di
min)のうちで少なくとも1つの値が変化した場合に、ノード密度を容易に再び算出できるようにする。
ノード密度算出手段25は、一時記憶部に格納されたノード、ノード密度のポイント値のベクトルについて、第1勝者ノードiのノード密度のポイント値のベクトルpi
→を、λ及びmに関して累積して合計することによって、第1勝者ノードiのノード密度の累積ポイント値のベクトルsi
→を算出し、その結果を一時記憶部に格納する。ノード密度算出手段25は、例えば、一時記憶部に格納される以下の式(25)に示す算出処理を実行し、その結果を一時記憶部に格納する。ここで、連続して与えられる入力ベクトルの入力総数がLTとなるまでの学習区間を、1つの学習区間とする。さらに、この学習区間を、入力ベクトルの入力総数が所定の単位数(λ)となるごとに複数の単位学習区間に分割する。この複数の学習区間の個数をmとする(m=LT/λ)。
そして、ノード密度算出手段25は、一時記憶部に格納されたノード、ノード密度の累積ポイント値のベクトルについて、所定の関数fに対してノードiのノード密度の累積ポイント値のベクトルsi
→を入力し、単位入力数Nによって除算して算出し、その結果をノードiのノード密度hiとして一時記憶部に格納する。本実施の形態では、単位入力数Nあたりの平均値hiを、ノードiのノード密度として定義する。従って、ノード密度算出手段25は、例えば、一時記憶部に格納される以下の式(26)に示す算出処理を実行し、ノード密度を算出し、その結果を一時記憶部に格納する。ここで、f(X→)は、ベクトルX→の要素の合計値を算出する関数である。単位入力数Nは、m個の単位学習区間のうちで、ノード密度の累積ポイント値のベクトルsi
→の要素が0より大きい場合の単位学習区間の回数として算出する。なお、Nの定義はE-SOINNと同一である(特許文献1の段落0067を参照。)。
次に、ノード密度の更新処理について説明する。ノード密度更新判定手段22は、一時記憶部に格納されたノード、各距離尺度に基づくノード間の最小距離値及び最大距離値について、各距離尺度に基づくノード間の最小距離値及び最大距離値(EUmax、EUmin、Di
max、Di
min)のうちで少なくとも1つの値が変化したか否かを確認し、少なくとも1つの値が変化した場合にはノード密度を更新すると判定し、その結果を一時記憶部に格納する。
そして、ノード密度算出手段25は、一時記憶部に格納された判定の結果、ノード密度を更新する場合には、一時記憶部に格納されたノード、ノード密度の累積ポイント値のベクトル、ノードの学習時間、各距離尺度に基づくノード間の最小距離値及び最大距離値について、ノード密度の累積ポイント値のベクトル、ノードの学習時間、各距離尺度に基づくノード間の最小距離値及び最大距離値に基づいて、ネットワークに存在する全てのノードについて、ノードiのノード密度の累積ポイント値のベクトルsi
→を以下に示すようにして再び算出して更新し、更新したノードiのノード密度の累積ポイント値のベクトルsi
→を用いてノードiのノード密度hiを再び算出し、その結果を一時記憶部に格納する。ノード密度算出手段25は、例えば、一時記憶部に格納される以下の式(27)~(30)に示す算出処理を実行することによって、ネットワークに存在するノードiのノード密度の累積ポイント値のベクトルsi
→を算出し、算出したノードiのノード密度の累積ポイント値のベクトルsi
→を式(26)に代入して、ノードiのノード密度hiを再び算出し、その結果を一時記憶部に格納する。このようにして、ノード密度算出手段25は、ノードiのノード密度の累積ポイント値のベクトルsi
→及びノードiのノード密度hiを再び算出して更新する。
ノード密度算出手段25は、例えば、一時記憶部に格納される以下の式(29)及び式(30)に示す算出処理を実行することによって、式(27)におけるベクトルk→及びb→を算出し、その結果を一時記憶部に格納する。ここで、EU'max、EU'min、(Di
max)'、(Di
min)'は、各距離尺度に基づくノード間の最小距離値及び最大距離値についての、変化後の新たな値である。他方で、EUmax、EUmin、Di
max、Di
minは、変化する以前の値である。変化する以前の値とは、学習処理過程においてネットワークにおけるノード間の距離が変化した結果、EUmax、EUmin、Di
max、Di
minの値が変化した場合に、変化以前の値を指し、EUmax、EUmin、Di
max、Di
minをそのまま用いて記述する。一方で、変化後の新しい値とは、EU'max、EU'min、(Di
max)'、(Di
min)'の値が変化した場合に、変化後の値を指し、以前の値と区別するために、EU'max、EU'min、(Di
max)'、(Di
min)'を用いて示す。
<6:辺接続判定処理及び辺接続処理(勝者ノード接続処理)>
E-SOINNでは、勝者ノード間の辺接続判定処理及び辺接続処理(特許文献1の図5のS606、S607の処理を指す。具体的には、明細書の段落0072~0079に記載の処理を指す。)に関して、パラメータαを使用する。このパラメータαは、所定の閾値関数を用いて定義されている(特許文献1の段落0078を参照。)。この所定の閾値関数は、2.0、3.0、0.0、0.5、1.0などのいくつかの整数を必要としており、実際上の応用処理において良好な学習結果を得るためには、これらの整数値を調整する必要がある。しかしながら、ユーザーにとって、そのような調整タスクを行うことは容易ではない。そこで、情報処理装置1では、以下に示す滑らかな関数(soft function)を提案し、区分的関数(piecewise function)である前記所定の閾値関数を置き換える。
E-SOINNでは、勝者ノード間の辺接続判定処理及び辺接続処理(特許文献1の図5のS606、S607の処理を指す。具体的には、明細書の段落0072~0079に記載の処理を指す。)に関して、パラメータαを使用する。このパラメータαは、所定の閾値関数を用いて定義されている(特許文献1の段落0078を参照。)。この所定の閾値関数は、2.0、3.0、0.0、0.5、1.0などのいくつかの整数を必要としており、実際上の応用処理において良好な学習結果を得るためには、これらの整数値を調整する必要がある。しかしながら、ユーザーにとって、そのような調整タスクを行うことは容易ではない。そこで、情報処理装置1では、以下に示す滑らかな関数(soft function)を提案し、区分的関数(piecewise function)である前記所定の閾値関数を置き換える。
辺接続判定手段27は、一時記憶部に格納されたクラス間ノード挿入判定手段25による判定結果に応じて、一時記憶部に格納されたノード、ノードのサブクラスタラベル、ノードの密度について、第1勝者ノード及び第2勝者ノードが属するサブクラスタラベルと、第1勝者ノード及び第2勝者ノードについてのノード密度の条件とに基づいて、第1勝者ノード及び第2勝者ノード間に辺を接続するか否か判定し、その結果を一時記憶部に格納する。
辺接続手段28は、一時記憶部に格納された判定結果に応じて、第1勝者ノード及び第2勝者ノード間の辺の生成及び削除処理を実行し、その結果を一時記憶部に格納する。
辺接続判定手段27は、例えば以下のようにして、辺を接続するか否かを判定し、その結果を一時記憶部に格納する。辺接続手段28は、例えば以下のようにして、辺の生成及び削除処理を実行し、その結果を一時記憶部に格納する。
<辺接続判定処理及び勝者ノード接続処理:S401~S405>
S401:辺接続判定手段27は、一時記憶部に格納されたノード、ノードのサブクラスタラベル(隆起ラベル)について、ノードのサブクラスタラベル(隆起ラベル)に基づいて、第1勝者ノード及び第2勝者ノードが属するサブクラスタをそれぞれ判定し、その結果を一時記憶部に格納する。
S401:辺接続判定手段27は、一時記憶部に格納されたノード、ノードのサブクラスタラベル(隆起ラベル)について、ノードのサブクラスタラベル(隆起ラベル)に基づいて、第1勝者ノード及び第2勝者ノードが属するサブクラスタをそれぞれ判定し、その結果を一時記憶部に格納する。
S402:一時記憶部に格納された判定の結果、第1勝者ノード及び第2勝者ノードの少なくとも1つがいずれのサブクラスタにも属していない場合、又は、第1勝者ノード及び第2勝者ノードが同一のサブクラスタに属している場合には、辺接続手段28は、一時記憶部に格納されたノード及びノード間の辺について、第1勝者ノード及び第2勝者ノード間に辺を生成することによりノード間を接続し、その結果を一時記憶部に格納する。
S403:一時記憶部に格納されたS401における判定の結果、第1勝者ノード及び第2勝者ノードが互いに異なるサブクラスタに属す場合には(例えば、第1勝者ノードがサブクラスタAに属し、かつ、第2勝者ノードがサブクラスタBに属する場合)、辺接続判定手段27は、一時記憶部に格納されたノード、ノード密度について、第1勝者ノード及び第2勝者ノードのノード密度に関して、第1勝者ノードを含むサブクラスタの平均ノード密度を基準とする第1勝者ノードについてのノード密度の条件、又は、第2勝者ノードを含むサブクラスタの平均ノード密度を基準とする第2勝者ノードについてのノード密度の条件のうちの少なくとも1つを満たすか否かを判定し、その結果を一時記憶部に格納する。
S404:一時記憶部に格納されたS403における判定の結果、辺を接続する必要があると判定した場合には、辺接続手段28は、一時記憶部に格納されたノード及びノード間の辺について、第1勝者ノード及び第2勝者ノード間に辺を生成しノード間を接続する。これによって、サブクラスタA及びBが統合される。
S405:一時記憶部に格納されたS403における判定の結果、辺を接続する必要がないと判定した場合には、一時記憶部に格納されたノード及びノード間の辺について、第1勝者ノード及び第2勝者ノード間を辺によって接続しない。なお、ノード間が辺によって既に接続されていた場合には、辺接続手段28は、一時記憶部に格納されたノード及びノード間の辺について、一時記憶部に格納された第1勝者ノード及び第2勝者ノード間の辺を削除し、その結果を一時記憶部に格納する。
ここで、S403における辺接続判定手段27による判定処理について詳細に説明する。
辺接続判定手段27は、例えば、以下の式(31)又は式(32)の少なくとも1つを満足する場合、第1勝者ノード及び第2勝者ノード間に辺を接続するものと判定し、そうでない場合、第1勝者ノード及び第2勝者ノード間に辺を接続しないと判定し、その結果を一時記憶部に格納する。
辺接続判定手段27は、例えば、以下の式(31)又は式(32)の少なくとも1つを満足する場合、第1勝者ノード及び第2勝者ノード間に辺を接続するものと判定し、そうでない場合、第1勝者ノード及び第2勝者ノード間に辺を接続しないと判定し、その結果を一時記憶部に格納する。
式(31)及び式(32)において、hwinnerは第1勝者ノードのノード密度を示し、hsecondwinnerは第2勝者ノードのノード密度を示す。min(hwinner,hsecondwinner)は、第1勝者ノードのノード密度hwinner及び第2勝者ノードのノード密度hsecondwinnerのうちの最小のノード密度を示す。hAは、サブクラスタAに含まれるノードのうちで最大のノード密度を有するノードのノード密度を示し、meanAは、サブクラスタAに含まれる全てのノードから算出するサブクラスタAの平均ノード密度を示す。hBは、サブクラスタBに含まれるノードのうちで最大のノード密度を有するノードのノード密度を示し、meanBは、サブクラスタBに含まれる全てのノードから算出するサブクラスタBの平均ノード密度を示す。θは、式(12)において用いたパラメータと同一のパラメータである。
式(31)に示す第1勝者ノードについてのノード密度の条件は、第1勝者ノードのノード密度及び第2勝者ノードのノード密度のうちの最小のノード密度が、第1勝者ノードを含むサブクラスタAの平均ノード密度meanAを基準として、サブクラスタAの平均ノード密度meanAに対する最大ノード密度hAの比率に応じて算出する閾値よりも大きいか否かを判定する条件である。また、式(32)に示す第2勝者ノードについてのノード密度の条件は、第1勝者ノードのノード密度及び第2勝者ノードのノード密度のうちの最小のノード密度が、第2勝者ノードを含むサブクラスタBの平均ノード密度meanBを基準として、サブクラスタBの平均ノード密度meanBに対する最大ノード密度hBの比率に応じて算出する閾値よりも大きいか否かを判定する条件である。
<全体処理フロー:S501~S519>
続いて、本実施形態に係る情報処理装置における全体処理フローについて、図22のフローチャートを用いて説明する。図22は、本実施形態に係る情報処理装置による学習処理の処理概要を示すフローチャートである。
続いて、本実施形態に係る情報処理装置における全体処理フローについて、図22のフローチャートを用いて説明する。図22は、本実施形態に係る情報処理装置による学習処理の処理概要を示すフローチャートである。
S501:入力情報取得手段21は、2つの入力ベクトルをランダムに取得し、ノード集合Aをそれらに対応する2つのノードのみを含む集合として初期化し、その結果を一時記憶部に格納する。また、入力情報取得手段21は、辺集合C⊂A×Aを空集合として初期化し、その結果を一時記憶部に格納する。
S502:入力情報取得手段21は、新しい入力ベクトルε∈Rnを入力し、その結果を一時記憶部に格納する。
S502:入力情報取得手段21は、新しい入力ベクトルε∈Rnを入力し、その結果を一時記憶部に格納する。
S503:ノード密度更新判定手段22は、一時記憶部に格納されたノード、各距離尺度に基づくノード間の最小距離値及び最大距離値について、各距離尺度に基づくノード間の最小距離値及び最大距離値(EUmax、EUmin、Di
max、Di
min)のうちで少なくとも1つの値が変化したか否かを確認し、少なくとも1つの値が変化した場合にはノード密度を更新すると判定し、その結果を一時記憶部に格納する。なお、各距離尺度に基づくノード間の最小距離値及び最大距離値(EUmax、EUmin、Di
max、Di
min)は、学習開始時点において初期値として0が予め設定される。
S504:ノード密度算出手段23は、一時記憶部に格納された判定の結果、ノード密度を更新する場合には、一時記憶部に格納されたノード、ノード密度の累積ポイント値のベクトル、ノードの学習時間、各距離尺度に基づくノード間の最小距離値及び最大距離値について、ノード密度の累積ポイント値のベクトル、ノードの学習時間、各距離尺度に基づくノード間の最小距離値及び最大距離値に基づいて、ノード集合Aに含まれるノードi∈Aのノード密度の累積ポイント値のベクトルsi
→を再び算出して更新し、更新したノードiのノード密度の累積ポイント値のベクトルsi
→を用いてノードiのノード密度hiを再び算出し、その結果を一時記憶部に格納する。ノード密度算出手段23は、例えば、一時記憶部に格納される上述した式(27)~(30)及び式(26)に示す算出処理を実行することによって、ノードiのノード密度の累積ポイント値のベクトルsi
→及びノードiのノード密度hiを再び算出して更新する。
なお、一時記憶部に格納された判定の結果、ノード密度を更新しない場合には、S504におけるノード密度算出手段23による処理は行わずに、情報処理装置1は、S505へと処理を進める。
S505:勝者ノード探索手段24は、一時記憶部に格納された入力ベクトル及びノードについて、入力ベクトルεに最も距離が近い第1勝者ノードa1及び2番目に近い第2勝者ノードa2を探索し、その結果を一時記憶部に格納する。勝者ノード探索手段24は、探索処理として、例えば、a1=mina∈AD(ε,a),a2=mina∈A\{a1}D(ε,a)に示す処理を実行し、その結果を一時記憶部に格納する。ここで、勝者ノード探索手段24は、上述した式(17)に示した新たな距離尺度を用いて入力ベクトルε及びノードaの間の距離D(ε,a)を算出し、その結果を一時記憶部に格納する。
S506:クラス間ノード挿入判定手段25は、一時記憶部に格納された入力ベクトル、ノード、ノードの類似度閾値について、入力ベクトルεと第1勝者ノードa1間の距離が第1勝者ノードa1の類似度閾値Ta1より大きいか否か、及び、入力ベクトルεと第2勝者ノードa2間の距離が第2勝者ノードa2の類似度閾値Ta2より大きいか否かを判定し、その結果を一時記憶部に格納する。ここで、クラス間ノード挿入判定手段25は、上述した式(18)又は式(19)を用いて第1勝者ノードa1の類似度閾値Ta1及び第2勝者ノードa2の類似度閾値Ta2を算出し、その結果を一時記憶部に格納する。さらに、クラス間ノード挿入判定手段25は、入力ベクトルεと第1勝者ノードa1間の距離が第1勝者ノードa1の類似度閾値Ta1より大きい、又は、入力ベクトルεと第2勝者ノードa2間の距離が第2勝者ノードa2の類似度閾値Ta2より大きい場合には、クラス間ノード挿入を実行すると判定し、そうでない場合には、クラス間ノード挿入を実行しないと判定し、その結果を一時記憶部に格納する。
S507:一時記憶部に格納されたS506における判定の結果、クラス間ノード挿入を実行する場合には、クラス間ノード挿入手段26は、一時記憶部に格納された入力ベクトル及びノードについて、入力ベクトルεはネットワークへの新たなノードとなるため、入力ベクトルεの成分と同一の成分を重みベクトルとして有するクラス間挿入ノードを生成し、生成したクラス間挿入ノードをノード集合Aに追加し、その結果を一時記憶部に格納する。そして、情報処理装置1は、S502へと処理を進めて、再び入力ベクトルの入力を行う。
S508:一方、一時記憶部に格納されたS506における判定の結果、クラス間ノード挿入を実行しない場合には、辺接続判定手段27は、一時記憶部に格納されたノード、ノードのサブクラスタラベルについて、ノードのサブクラスタラベルに基づいて、第1勝者ノードa1及び第2勝者ノードa2が属するサブクラスタをそれぞれ判定し、その結果を一時記憶部に格納する。辺接続判定手段27は、例えば、上述したS401に示した辺接続判定処理を行う。
また、辺接続判定手段27は、一時記憶部に格納されたS508における判定の結果、第1勝者ノード及び第2勝者ノードが互いに異なるサブクラスタに属する場合には、一時記憶部に格納されたノード、ノードの密度について、第1勝者ノードa1及び第2勝者ノードa2のノード密度に関して、第1勝者ノードa1を含むサブクラスタの平均ノード密度を基準とする第1勝者ノードについてのノード密度の条件、又は、第2勝者ノードa2を含むサブクラスタの平均ノード密度を基準とする第2勝者ノードについてのノード密度の条件のうちの少なくとも1つを満たすか否かを判定し、その結果を一時記憶部に格納する。例えば、上述したS403に示した辺接続判定処理を行う。
S509:一時記憶部に格納されたS508における判定の結果、第1勝者ノード及び第2勝者ノードの少なくとも1つがいずれのサブクラスタにも属していない、又は、同一のサブクラスタに属する場合には、辺接続手段28は、一時記憶部に格納されたノード及びノード間の辺について、第1勝者ノードa1及び第2勝者ノードa2間に辺を接続し、その結果を一時記憶部に格納する。辺接続手段28は、例えば、上述したS402に示した勝者ノード接続処理を行う。そして、辺接続手段28は、一時記憶部に格納された辺及び辺の年齢について、新しく生成された辺、及び、既にノード間に辺が生成されていた場合にはその辺について、辺の年齢を0に設定しその結果を一時記憶部に格納する。
また、辺接続手段28は、一時記憶部に格納されたS508における判定の結果、上記の第1勝者ノード及び第2勝者ノードについてのノード密度の条件のうちの少なくとも1つを満たす場合には、一時記憶部に格納されたノード、ノード間の辺について、第1勝者ノードa1及び第2勝者ノードa2間に辺を接続し、その結果を一時記憶部に格納する。辺接続手段28は、例えば、上述したS404に示した勝者ノード接続処理を行う。
辺接続手段28は、一時記憶部に格納されたS508における判定の結果、上記の第1勝者ノード及び第2勝者ノードについてのノード密度の条件のうちの少なくとも1つを満たさない場合には、一時記憶部に格納されたノード、ノード間の辺について、第1勝者ノード及び第2勝者ノード間に辺を接続しない(第1勝者ノード及び第2勝者ノード間に辺が存在する場合には辺を削除する)、その結果を一時記憶部に格納する。辺接続手段28は、例えば、上述したS405に示した勝者ノード接続処理を行う。
S510:ノード密度算出手段23は、一時記憶部に格納されたノード、各距離尺度に基づくノード間の最小距離値及び最大距離値、隣接ノードからのノードの平均距離のベクトル、ノードのノード密度のポイント値のベクトル、ノード密度の累積ポイント値のベクトル、ノード密度について、第1勝者ノードa1をノードiとして、各距離尺度に基づく隣接ノードからのノードiの距離と、各距離尺度に基づくノード間の最小距離値及び最大距離値と、に基づいてノードiについての隣接ノードからの平均距離のベクトルdi
→を算出し、当該算出した隣接ノードからの平均距離のベクトルdi
→に基づいて第1勝者ノードa1のノード密度のポイント値のベクトルpi
→を算出し、当該算出した第1勝者ノードa1のノード密度のポイント値のベクトルpi
→に基づいてノード密度の累積ポイント値のベクトルsi
→を算出し、当該算出した第1勝者ノードa1のノード密度の累積ポイント値のベクトルsi
→に基づいて第1勝者ノードa1のノード密度hiを算出し、その結果を一時記憶部に格納する。ノード密度算出手段23は、例えば、一時記憶部に格納される上述した式(24)~(26)に示す算出処理を実行することによって、ノードiのノード密度の累積ポイント値のベクトルsi
→及びノードiのノード密度hiを算出する。
S511:勝者ノード学習時間算出手段29は、一時記憶部に格納された第1勝者ノードa1の学習時間Ma1を所定の値増加し、その結果を一時記憶部に格納する。勝者ノード学習時間算出手段29は、例えば、Ma1(t+1)=Ma1(t)+1という処理を実行することによって、第1勝者ノードa1の学習時間Ma1を1増加し、その結果を一時記憶部に格納する。
S512:重みベクトル更新手段30は、一時記憶部に格納されたノード及びノードの重みベクトルについて、第1勝者ノードa1及びその隣接ノードの重みベクトルをそれぞれ入力ベクトルεに更に近づけるように更新し、その結果を一時記憶部に格納する。重みベクトル更新手段30は、例えば以下の式(33)及び式(34)を用いて、第1勝者ノードa1の重みベクトルWa1についての更新量ΔWa1及び第1勝者ノードa1の隣接ノードjの重みベクトルWs1についての更新量ΔWjを算出し、更新量ΔWa1を第1勝者ノードa1の重みベクトルWa1に加算し、更新量ΔWjを隣接ノードjの重みベクトルWs1に加算して、この結果を一時記憶部に格納する。式(33)及び式(34)において、Ms1は、第1勝者ノードa1の学習時間を示す。なお、ここでの重みベクトルの変化方法はE-SOINNと同様である(特許文献1の段落0063を参照。)。
S513:老齢辺削除手段31は、一時記憶部に格納されたノード、ノード間の辺、辺の年齢について、第1勝者ノードa1と直接的に接続される全ての辺の年齢を所定の値増加し、その結果を一時記憶部に格納する。老齢辺削除手段31は、例えば、第1勝者ノードa1と直接的に接続される全ての辺の年齢を1増加し、その結果を一時記憶部に格納する。老齢辺削除手段31は、一時記憶部に格納された辺について、予め設定され一時記憶部に格納された所定の閾値agemaxを超えた年齢を有する辺を削除し、その結果を一時記憶部に格納する。ここで、パラメータagemaxは実験により予め適当な値を算出し一時記憶部に格納される。
S514:入力数判定手段32は、一時記憶部に格納された与えられた入力ベクトルεの総数について、入力された入力ベクトルεの総数が予め設定され一時記憶部に格納された所定の単位数(λ)の倍数であるか否かを判定し、その結果を一時記憶部に格納する。一時記憶部に格納された判定の結果、入力ベクトルの総数が所定の単位数でない場合にはS502へと戻り、次の入力ベクトルεを処理する。入力ベクトルεの総数が所定の単位数となった場合には以下のS515以降に示す処理を実行する。なお、パラメータλは実験により予め適当な値を算出し一時記憶部に格納される。
なお、S515~S517に示す処理は、情報処理装置1に対して入力された入力ベクトルの総数が所定の単位数となるごとに実行される。即ち、入力ベクトルの総数が所定の数(λ)となるまでの単位学習区間を一周期とすると、S515~S517に示す処理は、入力ベクトルの総数に応じた所定の周期ごとに定期的に実行される。
S515:負荷平衡化手段33は、一時記憶部に格納されたノード、ノード間の辺、ノードのサブクラスタラベル、ノードの重みベクトル、ノードの学習時間、ノードの密度について、学習時間の値が大きくかつ偏ったノードをノードの学習時間に基づいて検出し、当該検出したノードとその隣接ノードの間に新たなノードを挿入してノード集合Aに追加する。当該検出したノード及びその隣接ノードについてのノードの学習時間をそれぞれ減少し、その結果を一時記憶部に格納する。負荷平衡化手段33は、例えば、上述したS101~S107に示したノード間の負荷平衡化処理を実行し、その結果を一時記憶部に格納する。これによって、負荷平衡化手段33は、負荷が不均衡な状態にあるノードについてその負荷を平衡化させる。
S516:サブクラスタ決定手段34は、一時記憶部に格納されたノード、ノード間の辺、ノード密度、ノードのサブクラスタラベルについて、ノード集合Aに含まれるノードから局所的に最大のノード密度を有するノードを頂点として探索し、当該探索した頂点に対してそれぞれ異なるサブクラスタラベル(隆起ラベル)を付与し、当該サブクラスタラベル(隆起ラベル)が付与されなかった全てのノードに対してノード密度が最大の隣接ノードと同一のサブクラスタラベル(隆起ラベル)を付与し、その結果を一時記憶部に格納する。また、サブクラスタ決定手段34は、一時記憶部に格納されたノード、ノード間の辺、ノード密度について、頂点のうちでノード密度が所定の閾値よりも大きな頂点を基準としてボロノイ領域を生成し、その結果を一時記憶部に格納する。さらに、サブクラスタ決定手段34は、一時記憶部に格納されたノード、ノード間の辺、ノード密度、ボロノイ領域について、生成したボロノイ領域において、基準とした頂点を含むサブクラスタと基準とした頂点とは異なる他の頂点を含むサブクラスタとが重複領域を有し、かつ、当該重複領域に位置するノードの平均ノード密度の条件を満たす場合に、基準とした頂点を含むサブクラスタのサブクラスタラベルを、他の頂点を含むサブクラスタのサブクラスタラベルとして付与し、その結果を一時記憶部に格納する。サブクラスタ決定手段34は、例えば、上述したS201~S205、S301~S305に示したサブクラスタ決定処理を実行し、その結果を一時記憶部に格納する。
S517:ノイズノード削除手段35は、一時記憶部に格納されたノード集合Aに含まれる全てのノードaについて、ノイズノードと見なしたノードを削除し、その結果を一時記憶部に格納する。ノイズノード削除手段35は、一時記憶部に格納されたノード、ノード間の辺、隣接ノードの個数、ノード密度について、例えば、以下のS601~S604に示す処理を実行し、注目するノードaの隣接ノードの個数及びノード密度に基づいて、注目するノードを削除し、その結果を一時記憶部に格納する。
S601:ノイズノード削除手段35は、一時記憶部に格納されたノード、ノード間の辺、隣接ノードの個数について、注目するノードaの隣接ノードの個数を算出し、その結果を一時記憶部に格納する。そして、ノイズノード削除手段35は、一時記憶部に格納された隣接ノードの個数に応じて、以下のS602~S604のいずれかの処理を実行する。なお、以下の処理において使用されるパラメータc1及びc2は、予め適当な値が設定され一時記憶部に格納される。
S602:一時記憶部に格納された隣接ノード数が2の場合、ノイズノード削除手段35は、一時記憶部に格納される例えば式(35)が成立するか否かを判定し、その結果を一時記憶部に格納する。ここで、haは、ノードaのノード密度を示し、NAは、ノード集合Aに含まれるノードの個数を示す。一時記憶部に格納された判定結果について式(35)が成立する場合には、ノイズノード削除手段35は、一時記憶部に格納されたノードについて、該当するノードaを削除し、その結果を一時記憶部に格納する。
S603:一時記憶部に格納された隣接ノード数が1の場合、ノイズノード削除手段35は、ノードaのノード密度haについて、一時記憶部に格納される例えば式(36)が成立するか否かを判定し、その結果を一時記憶部に格納する。一時記憶部に格納された判定結果について式(36)が成立する場合には、ノイズノード削除手段35は、一時記憶部に格納されたノードについて、該当するノードaを削除し、その結果を一時記憶部に格納する。
S604:一時記憶部に格納された隣接ノード数が0の場合(隣接ノードを有しない場合)、ノイズノード削除手段35は、一時記憶部に格納されたノードについて、該当するノードaを削除し、その結果を一時記憶部に格納する。
S518:学習終了判定手段36は、情報処理装置1による学習処理を終了するか否かを判定する。例えば、学習終了判定手段36は、一時記憶部に格納された与えられた入力ベクトルεの総数について、与えられた入力ベクトルεの総数が予め設定され一時記憶部に格納された所定の数LTの倍数であるか否かを判定し、その結果を一時記憶部に格納する。一時記憶部に格納された判定の結果、入力ベクトルの総数がLTの倍数でない場合にはS502へと戻り、次の入力ベクトルεを処理する。一方、入力ベクトルεの総数がLTの倍数となった場合には以下の処理を実行する。なお、学習終了判定の方法はこれに限定されず、ユーザーによって学習終了の指示が与えられるものとしてもよい。
S519:クラス決定手段37は、一時記憶部に格納されたノード、ノード間の辺、ノードのクラスについて、ノード間に生成された辺に基づいて、各ノードが属するクラスを決定し、その結果を一時記憶部に格納する。そして、出力情報表示手段38は、一時記憶部に格納されたノード及びノードのクラスについて、ノードの属するクラスのクラス数、及び各クラスのプロトタイプベクトルを出力する。以上の処理を終了した後、学習を停止する。
クラス決定手段37は、一時記憶部に格納されたノード、ノード間の辺、ノードのクラスについて、例えば以下のS701~S704に示す処理を実行して各ノードが属するクラスを決定し、その結果を一時記憶部に格納する。
S701:一時記憶部に格納されたノード及びノードのクラスについて、すべてのノードをどのクラスにも属していない状態にし、その結果を一時記憶部に格納する。
S702:一時記憶部に格納されたノード及びノードのクラスについて、いずれのクラスにも属していないノードからノードiをランダムに選択して新しいクラスラベルを付与し、その結果を一時記憶部に格納する。
S703:一時記憶部に格納されたノード、ノード間の辺、ノードのクラスについて、ノードiと「パス」によって接続しているノードをすべて探索し、当該探索したノードにノードiと同じクラスラベルを付与し、その結果を一時記憶部に格納する。
S704:一時記憶部に格納されたノード及びノードのクラスについて、いずれのクラスにも属していないノードが存在する場合にはS702へと進み、全てのノードに対してクラスラベルを付与し終えるまでの間、処理を続ける。
S702:一時記憶部に格納されたノード及びノードのクラスについて、いずれのクラスにも属していないノードからノードiをランダムに選択して新しいクラスラベルを付与し、その結果を一時記憶部に格納する。
S703:一時記憶部に格納されたノード、ノード間の辺、ノードのクラスについて、ノードiと「パス」によって接続しているノードをすべて探索し、当該探索したノードにノードiと同じクラスラベルを付与し、その結果を一時記憶部に格納する。
S704:一時記憶部に格納されたノード及びノードのクラスについて、いずれのクラスにも属していないノードが存在する場合にはS702へと進み、全てのノードに対してクラスラベルを付与し終えるまでの間、処理を続ける。
S703において、任意の2つのノードa及びノードbとが「パス」によって接続されるとは、ノードa及びノードb間において、いくつかの辺を通して2つのノードが接続されることを示す。即ち、ノード集合Aに含まれるノードa、ノードb、ノードxi(i=1,2,・・・,n)に対して、ノードa及びノードx1間の辺を示す(a,x1)、ノードx1及びノードx2間の辺を示す(x1,x2)、・・・、ノードxn及びノードb間の辺を示す(xn,b)という辺の連続が存在する場合に、ノードa及びノードb間とがパスによって接続されると呼ぶ。
<実験結果>
続いて、本実施の形態に係る情報処理装置1の有効性を確認するため、3つの人工データセット及び3つの実世界データセットを用いて実験を行う。情報処理装置1(LBSOINN)をE-SOINNと比較するために、いくつかの実験では同一のデータセットを選択した。また、同一の人工データセットI(図1)を情報処理装置1(LBSOINN)及びE-SOINNに適用してノードの学習時間を比較し、さらに、カーネル密度推定(KDE:kernel density estimation)を使用して、ノード間の接続構造に関するノードの密度を推定する。
続いて、本実施の形態に係る情報処理装置1の有効性を確認するため、3つの人工データセット及び3つの実世界データセットを用いて実験を行う。情報処理装置1(LBSOINN)をE-SOINNと比較するために、いくつかの実験では同一のデータセットを選択した。また、同一の人工データセットI(図1)を情報処理装置1(LBSOINN)及びE-SOINNに適用してノードの学習時間を比較し、さらに、カーネル密度推定(KDE:kernel density estimation)を使用して、ノード間の接続構造に関するノードの密度を推定する。
図7は、E-SOINN及び情報処理装置1(LBSOINN)におけるノードの学習時間を示す。図において、縦軸はノードの学習時間を示し、横軸はノードの個数を示す。E-SOINNによるノードの個数は、ネットワークのいくつかの領域において十分ではなく、それらの領域におけるノードの学習時間は長くかつ偏っている。一方で、E-SOINNとは異なり、情報処理装置1(LBSOINN)におけるノードの学習時間の分布は平衡していることが分かる。
図8は人工データセットIのノードの密度分布を示す。図9は、E-SOINNにおけるノードの密度の推定結果を示し、図10は、情報処理装置1(LBSOINN)におけるノードの密度の推定結果を示す。図8、9、10において、x軸及びy軸はノードが配置される2次元空間を示し、z軸はノード密度を示す。明らかに、E-SOINNは、入力パターンに対する良好な精度を得ていないことが分かる。しかし、E-SOINNでは、ノード密度を使用してクラス間の重複領域を探索するために、入力パターンの接続構造を正確に表現することはとても重要である。これに対して、図10に示したように、情報処理装置1(LBSOINN)では、入力パターンの接続構造を正確に記述することができるため、E-SOINNに比べてより優れた安定性能を有する。
図11に、人工データセットIIを示す。人工データセットIIでは、ノードの密度に関して高密度の重複領域を有する3つのガウス分布を含む。人工データセットIIを使用して、定常環境におけるE-SOINN及び情報処理装置1(LBSOINN)の安定性についての実験を行う。実験では、データセットから入力パターンをランダムに選択して、入力パターンに対して10%のノイズを追加する。パラメータの設定に関して、E-SOINNでは、λ=200、agemax=50、c1=0.001、c2=1.0に設定する。情報処理装置1(LBSOINN)では、λ、agemax、c1、c2についてはE-SOINNと同じ値を設定し、γ=1.3、η=1.001、θ=1.3に設定する。
図12(A)~(J)は、定常環境において時系列にネットワークを学習したときの、人工データセットIIに対する学習結果を示す。図12(A)~(E)は、100000回、200000回、300000回、400000回、500000回の繰り返しにおけるE-SOINNの学習結果をそれぞれ示す。図12(F)~(J)は、100000回、200000回、300000回、400000回、500000回の繰り返しにおける情報処理装置1(LBSOINN)の学習結果をそれぞれ示す。明らかに、E-SOINNは、異なるクラスが常に一緒に接続されてしまうために、ノードの接続構造が乱れておりかつ不安定である。
情報処理装置1(LBSOINN)は、上述したサブクラスタ決定手法を使用して、ネットワークに存在する過度に局所的に最大となるノードの発生を回避する。これによって、情報処理装置1(LBSOINN)は、混合クラスをサブクラスタに分割してしまうことによるノードの接続構造の乱れを回避する。人工データセットIIに対する実験は、E-SOINNと比較して情報処理装置1(LBSOINN)がより優れた安定性を有し、かつ、ノード密度が高密度の重複領域を正確に分離できることを示している。後述するように、AT&T画像データセットを使用して、非定常的な学習環境下において、実世界のデータセットによってまた、E-SOINNと比較して情報処理装置1(LBSOINN)がより優れた安定性を有することを確認する。
図13に、E-SOINNの評価において使用された、他の人工データセットを示す。この人工データセットは、2つのガウス分布、2つのリング形状分布、正弦関数分布を含んでいる。入力分布は、入力サンプル数の合計の10%に達するランダムノイズを含んでいる。パラメータの設定に関して、情報処理装置1(LBSOINN)は、λ=100、agemax=100、c1=0.001、c2=1.0、γ=1.3、η=1.001、θ=1.3に設定する。図14及び図15は、定常環境下及び非定常環境下での情報処理装置1(LBSOINN)によるクラスタリング結果をそれぞれ描写する。図14及び図15の類似性から、情報処理装置1(LBSOINN)は入力データの入力順序に依存していないこと、即ち、E-SOINNと比較してよりも優れた安定性を有することを示している。
実世界での実験の一つとして、情報処理装置1(LBSOINN)をE-SOINNと比較するために、E-SOINNにおいて使用されたデータセットと同一のAT&T画像データセットを選択する。この画像データセットは、40の異なるクラスと、クラスごとの10の異なる画像を含んでいる。これらのクラスは異なる年齢及び人種に関するものである。いくつかのクラスに対して、異なるタイミングで画像が取得されている。顔の表現(開いた/閉じた目、微笑む/微笑んでいない)及び顔の詳細(メガネあり/メガネなし)にはバリエーションがある。全ての画像は、クラスを有する黒色の均一な背景の下で、直立して正面の位置(ある程度の側面の動きに対する耐性を有する。)から撮られている。このデータセットから10クラスを選択し(図16)、最近傍補間法(nearest-neighbor interpolation)を使用して、データセットにおける画像を92×112から23×28へとサンプリングし直す。そして、ガウス法(Gaussian method)を使用することによって、Width=4、σ=2であるガウシアンを用いて画像を平滑化して、特徴ベクトルを得る(図17)。
定常及び非定常環境下におけるE-SOINN及び情報処理装置1(LBSOINN)の性能を実験する。LBSOINNのパラメータは、λ=25、agemax=25、c1=0.0、c2=1.0、γ=1.3、η=1.001、θ=1.3に設定する。学習を経て、ネットワークからのプロトタイプベクトルを得ることができる。これらのプロトタイプベクトルを使用して、元々の顔画像及び算出される認識率を分類する。情報処理装置1(LBSOINN)は、定常環境下では、96.3%の認識率であり、非定常環境下では、96.5%の認識率である。E-SOINNは、定常環境下では、90.3%の認識率であり、非定常環境下では、96%の認識率である。即ち、E-SOINNと比較して、情報処理装置1(LBSOINN)は、E-SOINNよりも十分に高い認識率を有している。定常環境及び非定常環境における共通性はまた、情報処理装置1(LBSOINN)が入力データの入力順序に依存せず、E-SOINNと比較してより優れた安定性を有することを示している。
E-SOINN及び情報処理装置1(LBSOINN)の安定性を比較するため、E-SOINNと同一の処理を情報処理装置1(LBSOINN)によって実行する。即ち、(1)E-SOINN及び情報処理装置1(LBSOINN)の両方に対して1000回の学習を実行し、(2)クラスの個数の頻度を記録する。なお、クラスの個数の頻度とは、例えば、1000回の実験を行い、情報処理装置1(LBSOINN)の学習結果としてクラスの個数を10とした出力回数が600回である、又は、クラスの個数を9とした出力回数が90回であるときに、この600回や90回の数値を示す。
図18(A)、(B)は、E-SOINNおよび情報処理装置1(LBSOINN)によるクラスの個数の分布をそれぞれ示す。図において、縦軸はクラスの個数の頻度を示し、横軸はクラスの個数を示す。情報処理装置1(LBSOINN)に対するクラスの個数の分布はE-SOINNのものと比べて十分に大きい。そして、クラスの個数が10個となる辺りにおいて、情報処理装置1(LBSOINN)の分布はE-SOINNのものと比べて十分に大きい。さらに、定常環境下における情報処理装置1(LBSOINN)に対するクラスの個数の分布は、非定常環境下におけるクラスの分布にとても類似している。上述した全ての実験結果は、E-SOINNと比較して情報処理装置1(LBSOINN)がより優れた安定性を有することを示している。
次に、2つのテキストデータセット(WebKbデータセット及びR8データセット)を選択して、高次元空間におけるE-SOINN及び情報処理装置1(LBSOINN)の性能を実験する。WebKbは、1997年1月における様々な大学のコンピュータサイエンス部門から、CMUテキスト学習グループのワールドワイド知識ベースプロジェクトによって収集されたWWWページを含んでいる。その8282ページは、生徒、学部、スタッフ、部門、コース、プロジェクトやその他のカテゴリに、人手によって分類されている。本実験では、生徒、学部及びコースのカテゴリのみを選択する。R8データセットは、1つのトピック及びそのクラス(少なくとも1つの学習及び1つの実験例を有する。)を備えた文書を単に考慮する。WebKb及びR8の両方ともに、フィルタリング処理(非特許文献:Khaled M. Hammouda and Mohamed S. Kamel, "Efficient Phrase-Based Document Indexing for Web Document Clustering," IEEE Transactions on Knowledge and Data Engineering, Vol. 16, No. 10, pp. 1279-1296, 2004.を参照。)と、stop wordsの削除(removing)、刈り取り(pruning)及び取り出し(stemming)処理(非特許文献:R. Baeza-Yates and B. Ribeiro-Neto, "Modern Information Retrieval,"Addison-Wesley, 1999.を参照。)を事前に行う。
図19は、異なる各クラスに対して異なるパーセントを入力したときの精度を示す。パラメータの設定に関して、情報処理装置1(LBSOINN)は、λ=25、agemax=25、c1=0.0、c2=1.0、γ=1.3、η=1.001、θ=1.3に設定する。また、比較のために、線形関数を使用したサポートベクトルマシーン(SVM)の性能についても示す。
WebKbデータセットに対して、情報処理装置1(LBSOINN)及びSVMの精度は、それぞれ81.21%及び84.21%に達する。そして、R8データセットに対しては、情報処理装置1(LBSOINN)及びSVMの精度は、89.71%及び93.34%に達する。情報処理装置1(LBSOINN)の精度は、SVMの精度ほどは良くない。しかしながら、情報処理装置1(LBSOINN)は、オンライン教師なし学習のアプローチに属する。また違いとして、情報処理装置1(LBSOINN)は、限られたデータセットを用いて満足できる精度を得ることができる。この特徴は、情報処理装置1(LBSOINN)を、実世界におけるタスクにより適したものにする。E-SOINNは高次元タスクを扱うことができないために、E-SOINNの性能はとても悪い。この実験は、高次元空間において情報処理装置1(LBSOINN)が十分に実行可能であることを示している。
以上に、本実施の形態に係る情報処理装置1の構成及び動作、さらに、情報処理装置1に対して実験を行い、その効果を説明した。クラスタリングは最も重要なデータ分析手法の一つである。本実施の形態では、オンラインでの教師なし学習に属する負荷平衡型自己増殖型ニューラルネットワーク(LBSOINN)を提案し、これは、高密度の重複クラスを分離することができる。情報処理装置1(LBSOINN)は、E-SOINNと比較して優れた安定性能を有しており、かつ、E-SOINNが有する全ての利点をも備えている。人口データセット及び実データセットにおける実験により、情報処理装置1(LBSOINN)は、ラベル付けされていないノイズ付き知識をクラスタリングする場合に正確な学習結果を得ることができ、また、高次元空間においても効率的に実行可能なことを確認した。このことは、実世界でのオンライン学習タスクに適していることを示している。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述した実施の形態では、ノードの負荷平衡化処理において、各サブクラスタにおいて最大のノードの学習時間を有するノードのみを探索する場合を例に説明したが、本発明はこれに限定されず、各サブクラスタにおいて相対的に大きなノードの学習時間を有する複数のノードを探索し、当該探索した複数のノードに関して、以降の負荷平衡化処理を実行するものとしてもよい。
また、例えば、上述した実施の形態では、ノードの負荷平衡化処理において、最大のノードの学習時間を有するノードを探索し、当該探索したノードの隣接ノードのうちで最大の学習時間を有する隣接ノードを決定する場合を例に説明したが、本発明はこれに限定されず、他の隣接ノード(例えば、当該探索したノードの隣接ノードのうちで2番目に大きな学習時間を有する隣接ノード)を決定し、当該決定した隣接ノードに関して、以降の負荷平衡化処理を実行するものとしてもよい。
また、例えば、上述した実施の形態では、距離尺度に関して、ユークリッド距離にコサイン距離を組合せる場合を例に説明したが、本発明はこれに限定されず、他の距離尺度(例えば、コサイン距離、マンハッタン距離、フラクショナル距離)を組合せるものとしてもよい。さらに、高次元空間における有効な距離尺度に限定されず、学習しようとする問題に応じた他の距離尺度を組合せるものとしてもよい。
上記で説明した情報処理方法は、ASIC(Application Specific Integrated Circuit)を含む半導体処理装置を用いて実現されてもよい。また、これらの処理は、少なくとも1つのプロセッサ(e.g. マイクロプロセッサ、MPU、DSP(Digital Signal Processor))を含むコンピュータシステムにプログラムを実行させることによって実現されてもよい。具体的には、これらの送信信号処理又は受信信号処理に関するアルゴリズムをコンピュータシステムに行わせるための命令群を含む1又は複数のプログラムを作成し、当該プログラムをコンピュータに供給すればよい。
これらのプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
この出願は、2013年2月22日に出願された日本出願特願2013-033176を基礎とする優先権を主張し、その開示の全てをここに取り込む。
1 情報処理装置
10 コンピュータ
11 CPU
12 ROM
13 RAM
14 バス
15 入出力インターフェイス
16 入力部
17 出力部
18 記憶部
19 通信部
20 ドライブ
201 磁気ディスク
202 光ディスク
203 フレキシブルディスク
204 半導体メモリ
21 入力情報取得手段
22 ノード密度更新判定手段
23 ノード密度算出手段
24 勝者ノード探索手段
25 クラス間ノード挿入判定手段
26 クラス間ノード挿入手段
27 辺接続判定手段
28 辺接続手段
29 勝者ノード学習時間算出手段
30 重みベクトル更新手段
31 老齢辺削除手段
32 入力数判定手段
33 負荷平衡化手段
34 サブクラスタ決定手段
35 ノイズノード削除手段
36 学習終了判定手段
37 クラス決定手段
38 出力情報表示手段
10 コンピュータ
11 CPU
12 ROM
13 RAM
14 バス
15 入出力インターフェイス
16 入力部
17 出力部
18 記憶部
19 通信部
20 ドライブ
201 磁気ディスク
202 光ディスク
203 フレキシブルディスク
204 半導体メモリ
21 入力情報取得手段
22 ノード密度更新判定手段
23 ノード密度算出手段
24 勝者ノード探索手段
25 クラス間ノード挿入判定手段
26 クラス間ノード挿入手段
27 辺接続判定手段
28 辺接続手段
29 勝者ノード学習時間算出手段
30 重みベクトル更新手段
31 老齢辺削除手段
32 入力数判定手段
33 負荷平衡化手段
34 サブクラスタ決定手段
35 ノイズノード削除手段
36 学習終了判定手段
37 クラス決定手段
38 出力情報表示手段
Claims (11)
- 多次元ベクトルで記述されるノード及び当該ノード間を接続する辺が配置されるネットワーク構造を有し、
任意のクラスに属する入力ベクトルを順次入力して、当該入力ベクトルの入力分布構造を学習する情報処理装置において、
入力される前記入力ベクトルに最も近い距離に位置するノード及び2番目に近い距離に位置するノードを第1勝者ノード及び第2勝者ノードとしてそれぞれ探索する勝者ノード探索手段と、
前記入力ベクトルと前記第1勝者ノード間の距離及び前記入力ベクトルと前記第2勝者ノード間の距離に基づいて、クラス間ノード挿入を実行するか否かを判定するクラス間ノード挿入判定手段と、
前記クラス間ノード挿入判定手段による判定の結果、前記クラス間ノード挿入を実行する場合に、前記入力ベクトルの成分と同一の成分を重みベクトルとして有するクラス間挿入ノードを生成し、当該生成したクラス間挿入ノードを前記ネットワークに挿入するクラス間ノード挿入手段と、
前記クラス間ノード挿入判定手段による判定の結果、前記クラス間ノード挿入を実行しない場合に、前記第1勝者ノード及び前記第2勝者ノード間に辺を接続したときに、前記第1勝者ノードについてノードの学習時間を所定の値増加する勝者ノード学習時間算出手段と、
前記クラス間ノード挿入判定手段による判定の結果、前記クラス間ノード挿入を実行しない場合に、注目するノードについて当該注目するノードと辺によって直接的に接続されるノードを隣接ノードとして、前記第1勝者ノードの重みベクトル及び前記第1勝者ノードの隣接ノードの重みベクトルをそれぞれ前記入力ベクトルに更に近づけるように更新する重みベクトル更新手段と、
前記入力ベクトルの総数に応じた所定の周期ごとに、前記ノードの学習時間の値が相対的に大きくかつ偏っているノードを検出し、当該検出したノード及びその隣接ノードの重みベクトルに基づく重みベクトルを有する新たなノードを生成して前記ネットワークに挿入し、前記検出したノードの学習時間及び前記検出したノードの隣接ノードの学習時間をそれぞれ減少し、前記検出したノード及びその隣接ノード間の辺を削除し、前記新たに挿入したノード及び前記検出したノード間と、前記新たに挿入したノード及び前記検出したノードのその隣接ノード間と、に辺をそれぞれ接続する負荷平衡化手段と、を備える、
ことを特徴とする情報処理装置。 - 前記クラス間ノード挿入判定手段による判定の結果、前記クラス間ノード挿入を実行しない場合に、付与されるノードのサブクラスタラベルに基づいて、前記第1勝者ノード及び前記第2勝者ノードが属するサブクラスタをそれぞれ判定し、当該判定の結果、前記第1勝者ノード及び前記第2勝者ノードが互いに異なるサブクラスタに属する場合には、前記第1勝者ノード及び前記第2勝者ノードのノード密度に関して、前記第1勝者ノードを含むサブクラスタの平均ノード密度を基準とする前記第1勝者ノードについてのノード密度の条件、又は、前記第2勝者ノードを含むサブクラスタの平均ノード密度を基準とする前記第2勝者ノードについてのノード密度の条件のうちの少なくとも1つを満たすか否かを更に判定する辺接続判定手段と、
(1)前記辺接続判定手段による判定の結果、前記第1勝者ノード及び前記第2勝者ノードの少なくとも1つがいずれのサブクラスタに属していない、又は、同一のサブクラスタに属する場合には、前記第1勝者ノード及び前記第2勝者ノード間に辺を接続し、若しくは、(2)前記辺接続判定手段による判定の結果、前記第1勝者ノード及び前記第2勝者ノードについてのノード密度の条件のうちの少なくとも1つを満たす場合には、前記第1勝者ノード及び前記第2勝者ノード間に辺を接続し、前記第1勝者ノード及び前記第2勝者ノードについてのノード密度の条件のうちの少なくとも1つを満たさない場合には、前記第1勝者ノード及び前記第2勝者ノード間に辺を接続しない辺接続手段と、
注目するノード及び当該注目するノードの隣接ノードからの平均距離に基づいて、当該注目するノードのノード密度を算出するノード密度算出手段と、
局所的に最大のノード密度を有するノードを頂点として、当該頂点に対してそれぞれ異なるサブクラスタラベルを付与し、当該サブクラスタラベルが付与されなかった全てのノードに対してノード密度が最大の隣接ノードと同一のサブクラスタラベルを付与し、前記頂点のうちでノード密度が所定の閾値よりも大きな頂点を基準としてボロノイ領域を生成し、当該生成したボロノイ領域において、前記基準とした頂点を含むサブクラスタと前記基準とした頂点とは異なる他の頂点を含むサブクラスタとが重複領域を有し、かつ、当該重複領域に位置するノードの平均ノード密度の条件を満たす場合に、前記基準とした頂点を含むサブクラスタのサブクラスタラベルを、前記他の頂点を含むサブクラスタのサブクラスタラベルとして付与するサブクラスタ決定手段と、を更に備える、
請求項1に記載の情報処理装置。 - ユークリッド距離に基づいてノード間の距離を算出する重み付きの第1の距離算出式と、前記ユークリッド距離とは異なる他の距離尺度に基づいてノード間の距離を算出する重み付きの第2の距離算出式と、を含むノード間距離算出式を更に備え、
前記ネットワークにおける任意の2つのノード間の前記ユークリッド距離に基づく最小距離値及び最大距離値を用いて前記第1の距離算出式を正規化し、
前記ネットワークにおける任意の2つのノード間の前記他の距離尺度に基づく最小距離値及び最大距離値を用いて前記第2の距離算出式を正規化し、
前記入力ベクトルの次元数が増加するに従って、前記第1の距離算出式の重みを減少させ、
前記ノード間距離算出式を用いて、前記入力ベクトル及び前記ノード間の距離、又は、前記ネットワークにおける任意の2つのノード間の距離を算出する、
請求項1又は2に記載の情報処理装置。 - 前記第2の距離算出式は、コサイン距離に基づいてノード間の距離を算出する、
請求項3に記載の情報処理装置。 - 前記ユークリッド距離に基づく前記2つのノード間の最小距離値及び最大距離値と、前記他の距離尺度に基づく前記2つのノード間の最小距離値及び最大距離値と、のうちで少なくとも1つの値が変化したか否かを確認し、少なくとも1つの値が変化した場合にはノード密度を更新すると判定するノード密度更新判定手段と、を更に備え、
前記ノード密度算出手段は、
(1)前記第1の距離算出式及び前記第2の距離算出式をそれぞれ用いて前記第1勝者ノードの隣接ノードからの平均距離のベクトルの各成分を算出し、(2)当該算出した前記第1勝者ノードの前記隣接ノードからの平均距離のベクトルに基づいて前記第1勝者ノードのノード密度のポイント値のベクトルを算出し、(3)当該算出した前記第1勝者ノードの前記ノード密度のポイント値のベクトルに基づいて前記第1勝者ノードのノード密度の累積ポイント値のベクトルを算出し、(4)当該算出した前記第1勝者ノードの前記ノード密度の累積ポイント値のベクトルに基づいて前記第1勝者ノードのノード密度を算出し、(5)前記ノード密度更新判定手段による判定の結果、ノード密度を更新する場合には、変化前後における前記ユークリッド距離に基づく前記2つのノード間の最小距離値及び最大距離値と、変化前後における前記他の距離尺度に基づく前記2つのノード間の最小距離値及び最大距離値と、に基づいて、前記ネットワークに存在する全てのノードについて、注目するノードの前記ノード密度の累積ポイント値のベクトルを更新し、(6)当該更新した前記注目するノードの前記ノード密度の累積ポイント値のベクトルに基づいて前記注目するノードの前記ノード密度を再び算出する、
請求項3又は4に記載の情報処理装置。 - 多次元ベクトルで記述されるノード及び当該ノード間を接続する辺が配置されるネットワーク構造を有し、
任意のクラスに属する入力ベクトルを順次入力して、当該入力ベクトルの入力分布構造を学習する情報処理装置における情報処理方法であって、
勝者ノード探索手段が、入力される前記入力ベクトルに最も近い距離に位置するノード及び2番目に近い距離に位置するノードを第1勝者ノード及び第2勝者ノードとしてそれぞれ探索するステップと、
クラス間ノード挿入判定手段が、前記入力ベクトルと前記第1勝者ノード間の距離及び前記入力ベクトルと前記第2勝者ノード間の距離に基づいて、クラス間ノード挿入を実行するか否かを判定するステップと、
クラス間ノード挿入手段が、前記クラス間ノード挿入判定手段による判定の結果、前記クラス間ノード挿入を実行する場合に、前記入力ベクトルの成分と同一の成分を重みベクトルとして有するクラス間挿入ノードを生成し、当該生成したクラス間挿入ノードを前記ネットワークに挿入するステップと、
勝者ノード学習時間算出手段が、前記クラス間ノード挿入判定手段による判定の結果、前記クラス間ノード挿入を実行しない場合に、前記第1勝者ノード及び前記第2勝者ノード間に辺を接続したときに、前記第1勝者ノードについてノードの学習時間を所定の値増加するステップと、
重みベクトル更新手段が、前記クラス間ノード挿入判定手段による判定の結果、前記クラス間ノード挿入を実行しない場合に、注目するノードについて当該注目するノードと辺によって直接的に接続されるノードを隣接ノードとして、前記第1勝者ノードの重みベクトル及び前記第1勝者ノードの隣接ノードの重みベクトルをそれぞれ前記入力ベクトルに更に近づけるように更新するステップと、
負荷平衡化手段が、前記入力ベクトルの総数に応じた所定の周期ごとに、前記ノードの学習時間の値が相対的に大きくかつ偏っているノードを検出し、当該検出したノード及びその隣接ノードの重みベクトルに基づく重みベクトルを有する新たなノードを生成して前記ネットワークに挿入し、前記検出したノードの学習時間及び前記検出したノードの隣接ノードの学習時間をそれぞれ減少し、前記検出したノード及びその隣接ノード間の辺を削除し、前記新たに挿入したノード及び前記検出したノード間と、前記新たに挿入したノード及び前記検出したノードのその隣接ノード間と、に辺をそれぞれ接続するステップと、を実行する、
ことを特徴とする情報処理方法。 - 辺接続判定手段が、前記クラス間ノード挿入判定手段による判定の結果、前記クラス間ノード挿入を実行しない場合に、付与されるノードのサブクラスタラベルに基づいて、前記第1勝者ノード及び前記第2勝者ノードが属するサブクラスタをそれぞれ判定し、当該判定の結果、前記第1勝者ノード及び前記第2勝者ノードが互いに異なるサブクラスタに属する場合には、前記第1勝者ノード及び前記第2勝者ノードのノード密度に関して、前記第1勝者ノードを含むサブクラスタの平均ノード密度を基準とする前記第1勝者ノードについてのノード密度の条件、又は、前記第2勝者ノードを含むサブクラスタの平均ノード密度を基準とする前記第2勝者ノードについてのノード密度の条件のうちの少なくとも1つを満たすか否かを更に判定するステップと、
辺接続手段が、(1)前記辺接続判定手段による判定の結果、前記第1勝者ノード及び前記第2勝者ノードの少なくとも1つがいずれのサブクラスタに属していない、又は、同一のサブクラスタに属する場合には、前記第1勝者ノード及び前記第2勝者ノード間に辺を接続し、若しくは、(2)前記辺接続判定手段による判定の結果、前記第1勝者ノード及び前記第2勝者ノードについてのノード密度の条件のうちの少なくとも1つを満たす場合には、前記第1勝者ノード及び前記第2勝者ノード間に辺を接続し、前記第1勝者ノード及び前記第2勝者ノードについてのノード密度の条件のうちの少なくとも1つを満たさない場合には、前記第1勝者ノード及び前記第2勝者ノード間に辺を接続しないステップと、
ノード密度算出手段が、注目するノード及び当該注目するノードの隣接ノードからの平均距離に基づいて、当該注目するノードのノード密度を算出するステップと、
サブクラスタ決定手段が、局所的に最大のノード密度を有するノードを頂点として、当該頂点に対してそれぞれ異なるサブクラスタラベルを付与し、当該サブクラスタラベルが付与されなかった全てのノードに対してノード密度が最大の隣接ノードと同一のサブクラスタラベルを付与し、前記頂点のうちでノード密度が所定の閾値よりも大きな頂点を基準としてボロノイ領域を生成し、当該生成したボロノイ領域において、前記基準とした頂点を含むサブクラスタと前記基準とした頂点とは異なる他の頂点を含むサブクラスタとが重複領域を有し、かつ、当該重複領域に位置するノードの平均ノード密度の条件を満たす場合に、前記基準とした頂点を含むサブクラスタのサブクラスタラベルを、前記他の頂点を含むサブクラスタのサブクラスタラベルとして付与するステップと、を更に実行する、
請求項6に記載の情報処理方法。 - 前記情報処理装置は、ユークリッド距離に基づいてノード間の距離を算出する重み付きの第1の距離算出式と、前記ユークリッド距離とは異なる他の距離尺度に基づいてノード間の距離を算出する重み付きの第2の距離算出式と、を含むノード間距離算出式を更に備え、
前記ネットワークにおける任意の2つのノード間の前記ユークリッド距離に基づく最小距離値及び最大距離値を用いて前記第1の距離算出式を正規化し、
前記ネットワークにおける任意の2つのノード間の前記他の距離尺度に基づく最小距離値及び最大距離値を用いて前記第2の距離算出式を正規化し、
前記入力ベクトルの次元数が増加するに従って、前記第1の距離算出式の重みを減少させ、
前記ノード間距離算出式を用いて、前記入力ベクトル及び前記ノード間の距離、又は、前記ネットワークにおける任意の2つのノード間の距離を算出する、
請求項6又は7に記載の情報処理方法。 - 前記第2の距離算出式は、コサイン距離に基づいてノード間の距離を算出する、
請求項8に記載の情報処理方法。 - ノード密度更新判定手段が、前記ユークリッド距離に基づく前記2つのノード間の最小距離値及び最大距離値と、前記他の距離尺度に基づく前記2つのノード間の最小距離値及び最大距離値と、のうちで少なくとも1つの値が変化したか否かを確認し、少なくとも1つの値が変化した場合にはノード密度を更新すると判定するステップを更に実行し、
前記ノード密度算出手段は、
(1)前記第1の距離算出式及び前記第2の距離算出式をそれぞれ用いて前記第1勝者ノードの隣接ノードからの平均距離のベクトルの各成分を算出し、(2)当該算出した前記第1勝者ノードの前記隣接ノードからの平均距離のベクトルに基づいて前記第1勝者ノードのノード密度のポイント値のベクトルを算出し、(3)当該算出した前記第1勝者ノードの前記ノード密度のポイント値のベクトルに基づいて前記第1勝者ノードのノード密度の累積ポイント値のベクトルを算出し、(4)当該算出した前記第1勝者ノードの前記ノード密度の累積ポイント値のベクトルに基づいて前記第1勝者ノードのノード密度を算出し、(5)前記ノード密度更新判定手段による判定の結果、ノード密度を更新する場合には、変化前後における前記ユークリッド距離に基づく前記2つのノード間の最小距離値及び最大距離値と、変化前後における前記他の距離尺度に基づく前記2つのノード間の最小距離値及び最大距離値と、に基づいて、前記ネットワークに存在する全てのノードについて、注目するノードの前記ノード密度の累積ポイント値のベクトルを更新し、(6)当該更新した前記注目するノードの前記ノード密度の累積ポイント値のベクトルに基づいて前記注目するノードの前記ノード密度を再び算出する、
請求項8又は9に記載の情報処理方法。 - 請求項6乃至10いずれか1項に記載の情報処理をコンピュータに実行させることを特徴とする非一時的なコンピュータ可読媒体。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/769,692 US10558911B2 (en) | 2013-02-22 | 2014-01-27 | Information processing apparatus, information processing method, and non-transitory computer readable medium |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2013033176A JP6065318B2 (ja) | 2013-02-22 | 2013-02-22 | 情報処理装置、情報処理方法及びプログラム |
| JP2013-033176 | 2013-02-22 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2014129116A1 true WO2014129116A1 (ja) | 2014-08-28 |
Family
ID=51390924
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2014/000390 Ceased WO2014129116A1 (ja) | 2013-02-22 | 2014-01-27 | 情報処理装置、情報処理方法及び非一時的なコンピュータ可読媒体 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US10558911B2 (ja) |
| JP (1) | JP6065318B2 (ja) |
| WO (1) | WO2014129116A1 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108682017A (zh) * | 2018-04-11 | 2018-10-19 | 浙江工业大学 | 基于Node2Vec算法的超像素图像边缘检测方法 |
| CN116543310A (zh) * | 2023-06-30 | 2023-08-04 | 眉山环天智慧科技有限公司 | 一种基于Voronoi图和核密度的道路线提取方法 |
Families Citing this family (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10901996B2 (en) | 2016-02-24 | 2021-01-26 | Salesforce.Com, Inc. | Optimized subset processing for de-duplication |
| US10956450B2 (en) * | 2016-03-28 | 2021-03-23 | Salesforce.Com, Inc. | Dense subset clustering |
| US10949395B2 (en) | 2016-03-30 | 2021-03-16 | Salesforce.Com, Inc. | Cross objects de-duplication |
| US10831787B2 (en) * | 2017-06-30 | 2020-11-10 | Sap Se | Security of a computer system |
| CN109447261B (zh) * | 2018-10-09 | 2023-08-04 | 北京邮电大学 | 一种基于多阶邻近相似度的网络表示学习的方法 |
| US11353859B2 (en) * | 2019-03-19 | 2022-06-07 | Mitsubishi Electric Research Laboratories, Inc. | System and method for anomaly detection in time-varying system operations |
| EP3825796A1 (de) * | 2019-11-22 | 2021-05-26 | Siemens Aktiengesellschaft | Verfahren und vorrichtung zum ki-basierten betreiben eines automatisierungssystems |
| WO2022145089A1 (ja) * | 2020-12-28 | 2022-07-07 | Soinn株式会社 | 情報処理装置、情報処理方法及び非一時的なコンピュータ可読媒体 |
| WO2022145088A1 (ja) * | 2020-12-28 | 2022-07-07 | Soinn株式会社 | 情報処理装置、情報処理方法及び非一時的なコンピュータ可読媒体 |
| JP7489730B2 (ja) * | 2020-12-28 | 2024-05-24 | Soinn株式会社 | 情報処理装置、情報処理方法及びプログラム |
| JP7659766B2 (ja) | 2022-03-03 | 2025-04-10 | Soinn株式会社 | 情報処理装置、情報処理方法及びプログラム |
| CN115909210B (zh) * | 2022-12-02 | 2023-09-01 | 北京思想天下教育科技有限公司 | 一种有效学习时间统计系统 |
| WO2024161441A1 (ja) * | 2023-01-30 | 2024-08-08 | Soinn株式会社 | 情報処理装置、情報処理方法及びプログラム |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009074995A (ja) * | 2007-09-21 | 2009-04-09 | Univ Of Electro-Communications | 移動体情報処理装置、移動体情報処理方法、およびプログラム |
| JP2013025398A (ja) * | 2011-07-15 | 2013-02-04 | Tokyo Institute Of Technology | 識別器生成装置、方法及びプログラム、並びにクラス認識器、方法及びプログラム |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5835901A (en) * | 1994-01-25 | 1998-11-10 | Martin Marietta Corporation | Perceptive system including a neural network |
| US9143393B1 (en) * | 2004-05-25 | 2015-09-22 | Red Lambda, Inc. | System, method and apparatus for classifying digital data |
| JP5130523B2 (ja) | 2007-03-01 | 2013-01-30 | 国立大学法人東京工業大学 | 情報処理装置、情報処理方法、及びプログラム |
-
2013
- 2013-02-22 JP JP2013033176A patent/JP6065318B2/ja active Active
-
2014
- 2014-01-27 WO PCT/JP2014/000390 patent/WO2014129116A1/ja not_active Ceased
- 2014-01-27 US US14/769,692 patent/US10558911B2/en active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009074995A (ja) * | 2007-09-21 | 2009-04-09 | Univ Of Electro-Communications | 移動体情報処理装置、移動体情報処理方法、およびプログラム |
| JP2013025398A (ja) * | 2011-07-15 | 2013-02-04 | Tokyo Institute Of Technology | 識別器生成装置、方法及びプログラム、並びにクラス認識器、方法及びプログラム |
Non-Patent Citations (2)
| Title |
|---|
| KAZUHIRO TOKUNAGA: "Verification of the growth algorithm as the base of the intellectual growth system of robot", IEICE TECHNICAL REPORT, vol. 109, no. 461, 11 March 2010 (2010-03-11), pages 125 - 130 * |
| YOUKI KAMIYA: "An Online Semi-Supervised Clustering Algorithm Based on a Self-organizing Incremental Neural Network", PROCEEDINGS OF INTERNATIONAL JOINT CONFERENCE ON NEURAL NETWORKS, 17 August 2007 (2007-08-17), pages 1061 - 1066, XP031154741 * |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108682017A (zh) * | 2018-04-11 | 2018-10-19 | 浙江工业大学 | 基于Node2Vec算法的超像素图像边缘检测方法 |
| CN108682017B (zh) * | 2018-04-11 | 2021-06-18 | 浙江工业大学 | 基于Node2Vec算法的超像素图像边缘检测方法 |
| CN116543310A (zh) * | 2023-06-30 | 2023-08-04 | 眉山环天智慧科技有限公司 | 一种基于Voronoi图和核密度的道路线提取方法 |
| CN116543310B (zh) * | 2023-06-30 | 2023-10-31 | 眉山环天智慧科技有限公司 | 一种基于Voronoi图和核密度的道路线提取方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| US10558911B2 (en) | 2020-02-11 |
| JP2014164396A (ja) | 2014-09-08 |
| JP6065318B2 (ja) | 2017-01-25 |
| US20160004963A1 (en) | 2016-01-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6065318B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
| Dong et al. | Learning space partitions for nearest neighbor search | |
| Boukerche et al. | Outlier detection: Methods, models, and classification | |
| CN114691868B (zh) | 文本聚类方法、装置及电子设备 | |
| Zhang et al. | A load-balancing self-organizing incremental neural network | |
| CN116561319A (zh) | 文本的聚类方法、文本的聚类装置和文本聚类系统 | |
| Zheng et al. | Supervised adaptive incremental clustering for data stream of chunks | |
| CN117893212A (zh) | 一种金融网络中高效的异常子图发现方法 | |
| Houle et al. | Improving k-NN graph accuracy using local intrinsic dimensionality | |
| Sasongko et al. | Optimization of hyper parameter bandwidth on naïve Bayes kernel density estimation for the breast cancer classification | |
| JP5130523B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
| Yi̇ği̇t et al. | A new feature selection method for text categorization based on information gain and particle swarm optimization | |
| Awad | Machine learning algorithms in web page classification | |
| CN114398884A (zh) | 新闻分类方法、装置、设备及介质 | |
| Hung et al. | Extracting rules from optimal clusters of self-organizing maps | |
| CN119760057A (zh) | 基于分层簇索引结构的应答大模型检索增强方法及装置 | |
| CN113590912B (zh) | 融合节点相对位置和绝对度分布的跨社交网络对齐方法 | |
| Aung et al. | Dual-kNN for a pattern classification approach | |
| JP5130522B2 (ja) | 情報処理装置、情報処理方法、プログラム、データ識別装置、及びデータマイニング装置 | |
| Li | An Improved K-Nearest Neighbor Algorithm Using Tree Structure and Pruning Technology. | |
| Pisheh et al. | Filter-based information-theoretic feature selection | |
| Mehrmohammadi et al. | A graph-based density peaks method by employing shortest path for data clustering | |
| US20190286639A1 (en) | Clustering program, clustering method, and clustering apparatus | |
| Cao et al. | An adaptive density clustering algorithm for massive data | |
| CN119357468B (zh) | 一种基于大数据的期刊匹配推荐方法及装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 14753803 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 14769692 Country of ref document: US |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 14753803 Country of ref document: EP Kind code of ref document: A1 |



































