Learning device, learning method, and learning program
The learning device uses a beam search algorithm with a self-adaptive similarity constraint to address the challenge of reducing computational costs and maintaining accuracy by selecting diverse data samples, effectively preventing learning bias in scenarios with duplicate data.
Patent Information
- Application Number
- JP2024502366
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-02-25
- Publication Date
- 2025-12-23
- Estimated Expiration
- 2042-02-25
AI Technical Summary
Conventional machine learning methods struggle to reduce computational costs while ensuring data diversity and maintaining learning accuracy, particularly in scenarios with duplicate data, leading to learning bias.
A learning device employing a beam search algorithm with a self-adaptive similarity constraint to select diverse data samples, using inter-sample and inter-beam similarity calculations to exclude duplicates and maintain accuracy.
Reduces computational costs and ensures data diversity, preventing learning bias in scenarios with duplicate data, such as environmental sensor data from IoT devices.
Smart Images

Figure 0007790543000019 
Figure 0007790543000020 
Figure 0007790543000021
Abstract
Description
[Technical Field]
[0001] The present invention relates to a learning device, a learning method, and a learning program. [Background technology]
[0002] Machine learning has been used to analyze various types of data, and active learning is an essential method for label-efficient deep learning. Among these methods, the Bayesian Active Learning by Disagreement (BALD) method has high performance by estimating the acquired score of a sample using mutual information between model predictions and model parameters (see, for example, Non-Patent Document 1), and the BatchBALD method has been proposed, which uses a greedy algorithm to add samples one by one to a batch to reduce computational costs (see, for example, Non-Patent Document 2). [Prior art documents] [Non-patent literature]
[0003] [Non-Patent Document 1] Neil Houlsby, Ferenc Huszar, Zoubin Ghahramani, Mate Lengyel,"Bayesian Active Learning for Classication and Preference Learning" [Non-patent document 2] Andreas Kirsch, Joost van Amersfoort, Yarin Gal,"BatchBALD: Efficient and Diverse Batch Acquisition for Deep Bayesian Active Learning" Summary of the Invention [Problem to be solved by the invention]
[0004] However, conventional technologies have the problem that they are sometimes unable to reduce computational costs while ensuring the diversity of data selected for each learning session and maintaining learning accuracy.For example, in use cases where there is a lot of duplicate data, such as scenarios where environmental sensor data is acquired from IoT devices, data with the same or similar features are selected for each learning session, and only those features are recognized, resulting in a learning bias.
[0005] The present invention has been made in consideration of the above, and aims to provide a learning device, a learning method, and a learning program that can reduce computational costs while ensuring the diversity of data selected for a single learning session and maintaining learning accuracy. [Means for solving the problem]
[0006] In order to solve the above-mentioned problems and achieve the object, the learning device of the present invention is characterized by having a first calculation unit that calculates the similarity between samples used in machine learning of a learning model, a second calculation unit that calculates the similarity between beams including multiple samples, a setting unit that sets a threshold for the similarity between the beams using the similarity between the samples calculated by the first calculation unit, an exclusion unit that excludes samples included in similar beams based on the similarity between the beams calculated by the second calculation unit and the threshold set by the setting unit, and a learning unit that performs machine learning of a learning model using samples other than the samples excluded by the exclusion unit. [Effects of the Invention]
[0007] According to the present invention, it is possible to reduce calculation costs while ensuring the diversity of data selected for one learning session and maintaining learning accuracy. [Brief explanation of the drawings]
[0008] [Figure 1] FIG. 1 is a diagram illustrating active learning. [Figure 2]FIG. 2 is a block diagram illustrating the configuration of the learning device of this embodiment. [Figure 3] FIG. 3 is a diagram illustrating an example of the feature space. [Figure 4] FIG. 4 is a diagram illustrating the algorithm. [Figure 5] FIG. 5 is a diagram illustrating the process of eliminating overlapping branches. [Figure 6] FIG. 6 is a diagram showing an example of a sample in which overlapping branches are eliminated. [Figure 7] FIG. 7 is a flowchart showing an example of a processing procedure of the learning device of this embodiment. [Figure 8] FIG. 8 is a diagram illustrating a computer that executes a program. DETAILED DESCRIPTION OF THE INVENTION
[0009] Hereinafter, embodiments of a learning device, a learning method, and a learning program according to the present application will be described in detail with reference to the accompanying drawings. However, the present invention is not limited to the embodiments described below.
[0010] First, we will explain active learning (AL) using Figure 1. Figure 1 is a diagram explaining active learning. Active learning is a branch of machine learning, and in order to minimize (labeled) learning data while maintaining accuracy, the following learning loop is repeated as shown in Figure 1. 1. Prepare a machine learning model, an unlabeled pool of unlabeled data, and a very small initial training dataset. A human expert oracle is on standby. 2. Using a search algorithm / method (Acquisition Function), select the data sample (with the most information or representativeness) from the unlabeled pool. 3. The samples selected in 2 are passed to the Oracle for annotation (labeling) and added to the training set. 4. Retrain the model using the new training dataset obtained in 3. 5. Repeat steps 2 to 4 until the ideal model prediction accuracy is achieved.
[0011] Next, we will explain the BALD method. BALD is a method that has become popular in active learning, especially in recent years, and has achieved good accuracy. BALD reduces the model posterior uncertainty H[ω|D] as shown in the following equation (1).
[0012]
number
[0013] This is equivalent to the conditional mutual information between the unknown output y and the parameters ω(II[ω;y|x, D]) and is easy to compute.
[0014] The principle is to use the mutual information between the model's prediction result y and the model's parameters as the sample score in the search method. In equation (2) below, the model's prediction result is unknown, so the distribution of y must be calculated. Therefore, multiple machine learning models are generated pseudo-wise, and the distribution of the prediction results is calculated. MC Dropout is used to generate multiple models from a single learning model (simply put, by randomly masking (multiple) Dropout layers within the model, the masked resulting models are considered pseudo-multiple models).
[0015]
number
[0016] In the above equation (2), the higher the left equation, the less certain the results agreed upon between the models are, and the lower the right equation, the more certain each model is. In other words, this means that there is the least agreement between the multiple models on the prediction results for this sample.
[0017] This type of BALD has its own challenges. When selecting samples one by one, it is almost certain to select the sample with the most information (labeling this sample first will reduce the uncertainty of the model the most). However, since selecting, labeling, and retraining each sample one by one takes time, it is preferable to select, label, and retrain multiple samples (batch acquisition) at once each time. However, as shown in equation (3) below, BALD in batch mode simply selects the x with the top k scores to form a batch.
[0018]
number
[0019] For this reason, if you simply select Top k and build a batch, you will end up selecting samples with overlapping information all at once, which will result in a decrease in the amount of information in the batch and slower improvement in the accuracy of the re-trained model.
[0020] With this in mind, BatchBALD evaluates the joint information content of samples in a batch. It uses a greedy algorithm when building a batch. Specifically, it first selects the sample with the highest information content, then combines all remaining samples in the unlabeled pool with this first sample for joint evaluation, and selects the second sample based on the information content of the set. This process is repeated until the batch is built.
[0021] BatchBALD also has the common problem of greedy algorithms. When evaluating the first sample, that sample has the highest score, but when evaluating samples added later, that first sample is not necessarily the most appropriate choice. In many cases, it is demoted to a sub-option. On the other hand, exhaustive search, which tries all combinations of batch samples, is the most reliable way to obtain the highest-scoring batch, but considering the computational cost, this is not possible.
[0022] Therefore, we use Beam search, which is between Greedy search and Exhaustive search, as a batch acquisition algorithm for active learning (since using Beam actually generates a certain degree of overlap or near-duplicate beams, in this study we adopt Self Adapted Constraint, which limits the degree of difference between Beams, taking into consideration calculation efficiency and accuracy performance). For example, in BatchBALD, points are scored in an integrated manner. In BatchBALD, as shown in the following formula (4), instead of trying all combinations, we use a Greedy algorithm to find x 1:k Add one by one.
[0023]
number
[0024] In this embodiment, we propose a new active learning sample search method, BeamBALD, which is more stable and effective than existing active learning methods (BALD, BatchBALD, etc.) during batch acquisition. It is particularly effective for datasets with approximate noise (data that are similar to the dataset).
[0025] In the learning device of this embodiment, a beam search algorithm is designed for batch acquisition in active learning, expanded to multiple beams (the number is called the BeamWidth), and a tree-structured search diagram is constructed. Furthermore, in the learning device of this embodiment, a self-adapted similarity constraint is applied between beam branches. Therefore, the learning device of this embodiment can better represent the data distribution of the Unlabeled Pool while ensuring the diversity of the searched beams.
[0026] In addition, if beam search is normally applied to active learning, it simply searches for a specific number of beam branches with the highest score at each batch acquisition step and develops a tree structure.
[0027] For example, the beam search in AL is a limited-width breadth-first search to construct a batch of data points that maximizes the score obtained at each search step. The set of K solutions after time t-1 is shown as the following equation (5), and the pool D pool Considering the remaining series of data points in, search for beam set candidates (see equation (6) below), and one beam is as shown in equation (7) below. Also, the search is performed to find beam set candidates as shown in equation (8) below. At AL training timestamp T, d = (x, y), search span K × |D pool |
[0028]
number
[0029]
number
[0030]
number
[0031]
number
[0032] When beam search is normally applied to active learning, the beam is updated with the BALD score as shown in equation (9) below. However, as shown in equation (10) below, it can only eliminate overlapping beam branches that are completely identical, but it cannot eliminate similar beam branches, which is undesirable. In such a case, when there are many similar beam branches, the effect of converting from greedy to beam, that is, the effect of bringing about batch diversity, is hardly obtained, and the model's re-learning accuracy is not significantly improved compared to greedy.
[0033]
number
[0034]
number
[0035] Based on the above, the learning device 10 of this embodiment performs a diverse beam search. Note that in order to perform a more diverse beam search, it is also possible to apply a dissimilarity constraint with reference to DivMBest. The constraint for updating the m-th beam at time t is as shown in the following equation (11).
[0036]
number
[0037] In active learning, learning is a dynamic learning loop in which the following factors change: 1. Sample feature space 2. Distance (similarity) between samples 3. Density around the sample
[0038] Therefore, in the learning device 10 of this embodiment, the similarity measurement between beams and the threshold of similarity are fully self-adaptive (the similarity and the threshold of similarity are changed depending on the dynamic density around the sample), as shown in the following equation (12) of this slide. i The constraints are rewritten based on the similarity, assuming that the density around the candidate data points is self-adaptive.
[0039]
number
[0040] [Learning device configuration] When performing learning through the above-described active learning, the learning device 10 uses the above-described BatchBALD method to select a predetermined number of samples at each time step of batch construction, thereby ensuring the diversity of data selected for each learning session and maintaining learning accuracy while reducing computational costs. FIG. 2 is a block diagram illustrating the configuration of the learning device of this embodiment. As illustrated in FIG. 2, the learning device 10 of this embodiment has a communication processing unit 11, an input unit 12, an output unit 13, a control unit 14, and a memory unit 15.
[0041] The communication processing unit 11 is realized by a NIC (Network Interface Card) or the like, and controls communication via a telecommunication line such as a LAN (Local Area Network) or the Internet. The input unit 12 is realized by input devices such as a keyboard and a mouse, and inputs various instruction information such as a command to start processing to the control unit 14 in response to an input operation by an operator. The output unit 13 is realized by a display device such as a liquid crystal display.
[0042] The storage unit 15 stores data and programs necessary for various processes by the control unit 14, and has a criterion storage unit 15a. For example, the storage unit 15 is a semiconductor memory element such as a RAM (Random Access Memory) or a flash memory, or a storage device such as a hard disk or an optical disk.
[0043] The control unit 14 has an internal memory for storing programs that define various processing procedures and required data, and executes various processes using these. For example, the control unit 14 has an inter-sample similarity calculation unit (first calculation unit) 14a, an inter-beam similarity calculation unit (second calculation unit) 14b, a threshold setting unit 14c, an exclusion unit 14d, and a learning unit 14e. Here, the control unit 14 is an electronic circuit such as a CPU (Central Processing Unit) or an MPU (Micro Processing Unit), or an integrated circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).
[0044] The inter-sample similarity calculation unit 14a calculates the similarity between samples used in machine learning of the learning model. For example, the inter-sample similarity calculation unit 14a calculates the pool D as shown in the following equation (13) according to a Gaussian Radial Basis Function (GRB): pool Estimate the similarity between different data points in
[0045]
number
[0046] As a result, the inter-sample similarity calculation unit 14a calculates the dynamic similarity between samples. For example, as shown in Fig. 3, the inter-sample similarity calculation unit 14a uses the feature space of the learning model as the feature space, and the feature space is automatically adjusted each time re-learning is performed. By using GRB, the similarity can be measured more sharply (for example, if there is little similarity, the value can be set closer to 0).
[0047] The inter-beam similarity calculation unit 14b calculates the similarity between beams including a plurality of samples. For example, the inter-beam similarity calculation unit 14b calculates the Hausdorff distance as the similarity between beams. For example, the inter-beam similarity calculation unit 14b calculates the similarity between beams in the Hausdorff manifold using the following equations (14) and (15).
[0048]
number
[0049]
number
[0050] The threshold setting unit 14c sets a threshold for the similarity between beams using the similarity between samples calculated by the sample similarity calculation unit 14a. For example, the threshold setting unit 14c searches for a predetermined number of samples around a specific sample for each sample included in a beam based on the similarity between samples calculated by the sample similarity calculation unit 14a, regards the samples as one cluster, calculates the similarity between the samples within the radius of the cluster and the specific sample as the density of the specific sample, and sets the smallest value of the density as the threshold.
[0051] That is, the threshold setting unit 14c performs the following process to calculate the self-adaptive similarity threshold. 1. First, find J samples around a sample d_i based on the sample similarity score and consider them as one cluster. 2. Next, search for sample d_r within the radius of that cluster. 3. The similarity between d_i and d_r is regarded as the density around d_i. 4. The threshold for inter-beam similarity is set as the smallest density of all samples in this beam.
[0052] More specifically, the threshold setting unit 14c uses the density of the data point d instead of the density around the data point. i The radius of the radius is estimated as in the following equations (16) and (17). Then, the threshold setting unit 14c calculates the threshold for the constraint based on the radius as in the following equation (18), and sets the calculated threshold.
[0053]
number
[0054]
number
[0055]
number
[0056] The exclusion unit 14d excludes samples included in similar beams based on the inter-beam similarity calculated by the inter-beam similarity calculation unit 14b and the threshold set by the threshold setting unit 14c. For example, when the inter-beam similarity calculated by the inter-beam similarity calculation unit 14b exceeds the threshold set by the threshold setting unit 14c, the exclusion unit 14d excludes one of the overlapping samples included in multiple similar beams.
[0057] For example, the elimination unit 14d uses a beam selection algorithm for constructing a batch to eliminate samples included in similar beams. An example of the beam selection algorithm for constructing a batch is shown in FIG. 4. FIG. 4 is a diagram illustrating the algorithm. As shown in FIG. 4, many overlaps and branches close to overlaps are eliminated in Line 7.
[0058] Here, the process of eliminating overlapping branches will be described with reference to FIG. 5. FIG. 5 is a diagram illustrating the process of eliminating overlapping branches. In the example of FIG. 5, it is assumed that multiple overlapping or nearly overlapping branch samples "2" exist after the sample "3-2-6-5-9" included in the beam. Note that the branch samples "2" in FIG. 5 are similar to each other, although their shapes are different. In the example of FIG. 5, if the similarity between beams ("3-2-6-5-9-2") exceeds the threshold set by the threshold setting unit 14c, it is assumed that there is an overlapping or nearly overlapping branch sample "2", and one of the overlapping branch samples is eliminated. In this way, the elimination unit 14d can select diverse samples by eliminating overlapping or nearly overlapping branches, for example, as illustrated in FIG. 6. Furthermore, because the elimination unit 14d can eliminate many overlapping or nearly overlapping branches, heavy calculations (score calculations) can be avoided, resulting in a higher calculation cost than Greedy.
[0059] The learning unit 14e performs machine learning of the learning model using samples other than the samples excluded by the exclusion unit 14d. That is, when learning data containing a large amount of duplicate data, the learning device 10 selects a predetermined number of samples at each time step of batch construction in the BatchBALD method, thereby ensuring the diversity of data selected for each learning session and maintaining learning accuracy while reducing computational costs.
[0060] [Learning device processing procedure] Next, an example of the processing procedure executed by the learning device 10 will be described with reference to Fig. 7. Fig. 7 is a flowchart showing an example of the processing procedure of the learning device of this embodiment.
[0061] 7, the inter-sample similarity calculation unit 14a of the learning device 10 calculates the similarity between samples used in machine learning of a learning model (step S101). Then, the inter-beam similarity calculation unit 14b calculates the similarity between beams including multiple samples (step S102). For example, the inter-beam similarity calculation unit 14b calculates the Hausdorff distance as the similarity.
[0062] Then, the threshold setting unit 14c sets a threshold for the similarity between beams based on the similarity between samples calculated by the sample similarity calculation unit 14a (step S103). Subsequently, the excluding unit 14d excludes samples included in similar beams based on the similarity between beams calculated by the beam similarity calculation unit 14b and the threshold set by the threshold setting unit 14c (step S104).
[0063] The learning unit 14e selects samples based on the beams and performs learning using the selected samples as a learning data set (step S105). That is, the learning unit 14e performs machine learning of the learning model using samples other than the samples excluded by the exclusion unit 14d.
[0064] [Effects of the embodiment] In this way, the learning device 10 according to the embodiment calculates the similarity between samples used in machine learning of a learning model and calculates the similarity between beams containing multiple samples. The learning device 10 then uses the calculated similarity between samples to set a threshold for the similarity between beams, and eliminates samples included in similar beams based on the calculated similarity between beams and the set threshold. The learning device 10 then performs machine learning of the learning model using samples other than the eliminated samples. Therefore, the learning device 10 can reduce computational costs while ensuring the diversity of data selected for each learning session and maintaining learning accuracy.
[0065] For example, when learning data containing a large amount of duplicated data, the learning device 10 uses the BatchBALD method to select a predetermined number (beam width) of samples at each time step of batch construction, thereby ensuring the diversity of data selected for each learning session and maintaining learning accuracy while reducing computational costs.
[0066] Furthermore, for example, even in use cases where there is a lot of duplicate data, such as a scenario in which environmental sensor data is acquired from an IoT device, the learning device 10 can prevent bias in learning by not selecting similar data per learning session.
[0067] [System configuration, etc.] The components of each device shown in the drawings according to the above embodiments are conceptual functional units and do not necessarily have to be physically configured as shown. In other words, the specific form of distribution and integration of each device is not limited to that shown, and all or part of each device can be functionally or physically distributed and integrated in any unit depending on various loads, usage conditions, etc. Furthermore, all or any part of the processing functions performed by each device can be realized by a CPU and a program analyzed and executed by the CPU, or can be realized as hardware using wired logic.
[0068] Furthermore, among the processes described in the above embodiments, all or part of the processes described as being performed automatically can be performed manually, or all or part of the processes described as being performed manually can be performed automatically using a known method.In addition, the information including the processing procedures, control procedures, specific names, various data and parameters shown in the above documents and drawings can be changed as desired unless otherwise specified.
[0069] 〔program〕 It is also possible to create a program written in a computer-executable language that describes the processing performed by the learning device 10 described in the above embodiment. In this case, the same effects as those of the above embodiment can be achieved by having a computer execute the program. Furthermore, such a program can be recorded on a computer-readable recording medium, and the program recorded on the recording medium can be read and executed by a computer to achieve the same processing as those of the above embodiment.
[0070] 8 is a diagram showing a computer that executes a program. As shown in the example of FIG. 8, a computer 1000 includes, for example, a memory 1010, a CPU 1020, a hard disk drive interface 1030, a disk drive interface 1040, a serial port interface 1050, a video adapter 1060, and a network interface 1070, and these components are connected by a bus 1080.
[0071] As shown in FIG. 8, the memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM 1012. The ROM 1011 stores a boot program such as a BIOS (Basic Input Output System). The hard disk drive interface 1030 is connected to a hard disk drive 1031 as shown in FIG. 8. The disk drive interface 1040 is connected to a disk drive 1041 as shown in FIG. 8. A removable storage medium such as a magnetic disk or an optical disk is inserted into the disk drive 1041. The serial port interface 1050 is connected to a mouse 1110 and a keyboard 1120 as shown in FIG. 8. The video adapter 1060 is connected to a display 1130 as shown in FIG. 8.
[0072] 8, the hard disk drive 1031 stores, for example, an OS 1091, an application program 1092, a program module 1093, and program data 1094. That is, the above programs are stored, for example, on the hard disk drive 1031 as program modules in which instructions to be executed by the computer 1000 are written.
[0073] The various data described in the above embodiment are stored as program data, for example, in the memory 1010 or the hard disk drive 1031. The CPU 1020 then reads the program module 1093 and the program data 1094 stored in the memory 1010 or the hard disk drive 1031 into the RAM 1012 as needed, and executes various processing procedures.
[0074] Note that the program module 1093 and program data 1094 related to the program are not limited to being stored in the hard disk drive 1031, and may be stored in, for example, a removable storage medium and read by the CPU 1020 via a disk drive or the like. Alternatively, the program module 1093 and program data 1094 related to the program may be stored in another computer connected via a network (such as a LAN (Local Area Network) or WAN (Wide Area Network)) and read by the CPU 1020 via the network interface 1070.
[0075] Although the present invention has been described above as an embodiment, the present invention is not limited to the description and drawings that form part of the disclosure of the present invention. In other words, other embodiments, examples, and operational techniques that can be made by those skilled in the art based on the present invention are all included in the scope of the present invention. [Explanation of symbols]
[0076] 10 Learning Device 11. Communication processing unit 12 Input section 13 Output section 14 Control Unit 14a Sample similarity calculation section 14b Beam similarity calculation section 14c Threshold setting section 14d Exclusion part 14e Learning Department 15 Storage section
Claims
1. a first calculation unit that calculates a similarity between samples used in machine learning of a learning model; a second calculation unit that calculates a similarity between beams including a plurality of samples; a setting unit that sets a threshold value for the similarity between the beams using the similarity between the samples calculated by the first calculation unit; an exclusion unit that excludes samples included in similar beams based on the similarity between the beams calculated by the second calculation unit and the threshold value set by the setting unit; a learning unit that performs machine learning of a learning model using samples other than the samples excluded by the exclusion unit; and The setting unit searches for a predetermined number of samples around a specific sample for each sample included in the beam based on the similarity between the samples calculated by the first calculation unit, considers it to be one cluster, calculates the similarity between the samples within the radius of the cluster and the specific sample as the density of the specific sample, and sets the smallest value of the density as the threshold.
2. 2. The learning device according to claim 1, wherein the second calculation unit calculates a Hausdorff distance as the similarity between the beams.
3. The learning device according to claim 1, characterized in that the exclusion unit excludes one of the overlapping samples contained in multiple similar beams when the similarity between the beams calculated by the second calculation unit exceeds a threshold set by the setting unit.
4. A learning method executed by a learning device, comprising: a first calculation step of calculating a similarity between samples used in machine learning of a learning model; a second calculation step of calculating a similarity between beams including a plurality of samples; a setting step of setting a threshold value for the similarity between the beams using the similarity between the samples calculated in the first calculation step; a excluding step of excluding samples included in similar beams based on the similarity between the beams calculated in the second calculating step and the threshold set in the setting step; a learning step of performing machine learning of a learning model using samples other than the samples excluded by the exclusion step; Including, The setting step is a learning method characterized in that, for each sample included in the beam, a predetermined number of samples around a specific sample are searched for and considered as one cluster based on the similarity between the samples calculated in the first calculation step, the similarity between the samples within the radius of the cluster and the specific sample is calculated as the density of the specific sample, and the smallest value of the density is set as the threshold.
5. a first calculation step of calculating a similarity between samples used in machine learning of a learning model; a second calculation step of calculating a similarity between beams including a plurality of samples; a setting step of setting a threshold value for the similarity between the beams using the similarity between the samples calculated in the first calculation step; a excluding step of excluding samples included in similar beams based on the similarity between the beams calculated in the second calculating step and the threshold set in the setting step; a learning step of performing machine learning of a learning model using samples other than the samples excluded by the exclusion step; on the computer, The setting step is a learning program characterized in that, for each sample included in the beam, a predetermined number of samples around a specific sample are searched for and considered as one cluster based on the similarity between the samples calculated in the first calculation step, the similarity between the samples within the radius of the cluster and the specific sample is calculated as the density of the specific sample, and the value with the smallest density value is set as the threshold.
Citation Information
Patent Citations
Adaptive search system
JP1994282295A
Voice recognizing device
JP1998153999A