WO2021177394A1 - データ処理システムおよびデータ圧縮方法 - Google Patents

データ処理システムおよびデータ圧縮方法 Download PDF

Info

Publication number
WO2021177394A1
WO2021177394A1 PCT/JP2021/008346 JP2021008346W WO2021177394A1 WO 2021177394 A1 WO2021177394 A1 WO 2021177394A1 JP 2021008346 W JP2021008346 W JP 2021008346W WO 2021177394 A1 WO2021177394 A1 WO 2021177394A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
region
compression
model
learning
Prior art date
Application number
PCT/JP2021/008346
Other languages
English (en)
French (fr)
Inventor
貴洋 成子
弘明 圷
彬史 鈴木
功人 佐藤
Original Assignee
株式会社日立製作所
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to US17/642,843 priority Critical patent/US11842055B2/en
Publication of WO2021177394A1 publication Critical patent/WO2021177394A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Definitions

  • the present invention generally relates to a reduction in the amount of data.
  • a storage system that reduces the amount of data is known (see Patent Document 1).
  • Such storage systems generally reduce the amount of data by compression.
  • a method such as the run-length method is known in which a character string having a high frequency of appearance in a predetermined block unit is converted into a dictionary and replaced with a code having a smaller size.
  • Lossy compression technology is known as a technology that reduces the amount of data compared to lossless compression such as the run-length method.
  • the technique described in Patent Document 2 is a compression technique using a neural network as a compression / decompression device. Data is compressed by modeling the regularity of the data with a neural network.
  • AI Artificial Intelligence
  • AI gaze region the region that AI gazes at
  • the entire region is compressed at the same compression ratio regardless of whether or not it is the AI gaze region, so that the compression ratio deteriorates.
  • the present invention has been made in consideration of the above points, and an object of the present invention is to propose a data processing system or the like capable of appropriately reducing the amount of data.
  • training data is used in a data processing system including a processor, a storage device, and inputting / outputting data using a trained compression / decompression device that compresses and decompresses data.
  • a trained compression / decompression device that compresses and decompresses data.
  • the estimation unit that estimates the region to be watched by the data model
  • the evaluation function that weights each region based on the region to be watched
  • the result of the compression / expansion device compressing and decompressing the training data.
  • a learning unit for learning the compression / expansion device is provided.
  • the compression ratio of the region other than the region can be made higher than the compression ratio of the region, and the data model can be used. It is possible to improve the compression ratio of the data used by the data model while maintaining operational quality.
  • the amount of data can be appropriately reduced.
  • This embodiment relates to a reduction in the amount of data.
  • a storage system including a lossy compressor for AI will be described as an example.
  • the compression rate it is possible to control the compression rate according to the area, but there are two main reasons why the compression rate cannot be controlled according to the area.
  • the first point is that since the AI gaze region is different for each AI, it is unknown in the compressor which AI gaze region should be used to control the compression rate.
  • the second point is that even if the target AI is determined, there is no means for specifying the AI gaze area of the AI in the compressor.
  • the compression rate is improved as compared with the case where the entire area is compressed at the same compression rate.
  • this storage system operates in cooperation with an AI processing platform that operates at a higher level.
  • the AI processing platform is, for example, for each user application, a model of the neural network used in the user application (structure and parameters, hereinafter referred to as "AI model") and data to be input to the model.
  • AI model a model of the neural network used in the user application
  • data generation source A first interface for designating a generation source (hereinafter referred to as "data generation source") by a user and a first table for managing the designated information are provided.
  • This storage system includes, for example, a second interface for inquiring information stored in a first table and a third interface for requesting an AI model on an AI processing platform.
  • this storage system calculates an AI model to which the data is input for each data generation source of data based on the information inquired by, for example, the second interface and the third interface, and the data generation source.
  • the correspondence between the AI model and the AI model is managed in the second table.
  • this storage system includes, for example, a compression / decompression device using a neural network.
  • This storage system acquires an AI model corresponding to the data generation source of the training data of the compression / decompression device from the second table, estimates the AI gaze area of the AI model in the training data, and compresses the estimation result as a weight.
  • the function for calculating the weighting error between the previous training data and the data after compression / decompression is set in the loss function of the neural network constituting the compression / decompression device, and the compression / decompression device is learned.
  • This storage system uses, for example, a learned compression / decompression device to compress data and store it in a storage drive.
  • the amount of data can be reduced appropriately.
  • the data compression rate will be described as a ratio indicating how much information the compressed data has been reduced to in the original data when the data is compressed. In addition, it may be expressed as a percentage obtained by multiplying the ratio by 100, or as a ratio of the reduced amount of information to the original amount of information. Also, for example, a state compressed to a relatively small amount of information (well compressed) is “highly compressed”, and a state compressed to a relatively large amount of information (not very compressed) is “compressed”. The rate is low. " Further, the state where the compression rate is the highest (for example, "0") may be a state in which the information is truncated.
  • the common part (the part excluding the branch number) of the reference symbols including the branch number is used, and the same type of elements are distinguished and described.
  • a reference code containing the branch number may be used.
  • data generation source 110 is described when the data generation sources are not particularly distinguished, and "data generation source 110-1" and “data generation source 110-1” are described when the individual data generation sources are described separately. It may be described as "Data generation source 110-2".
  • FIG. 1 100 indicates a data processing system according to the first embodiment as a whole.
  • the data processing system 100 includes a data generation source 110, a management terminal 120, an AI processing platform 130 (AI Processing Platform), and a storage system 140 (Storage System).
  • the data generation source 110 is one or more subjects that generate data, for example, a sensor, a camera, a system log, or the like.
  • the management terminal 120 is a terminal provided with an input / output device for the AI processing board 130 to allow the user to make various settings.
  • the AI processing platform 130 is an apparatus, system, etc. for executing AI by inputting data generated by the data generation source 110, data accumulated in the storage system 140, and the like.
  • the AI processing platform 130 includes an AI model DB 131 and an application management table 132.
  • the AI model DB 131 is a database (DB) for managing the AI model.
  • the application management table 132 for each user application (application program), the name of the AI model used in the user application (hereinafter referred to as “AI model name”) and the name of the data generation source 110 that is the input of the AI model. It is a table for managing the correspondence with (hereinafter referred to as "input data name").
  • the AI model may be initially set in the AI model DB 131, may be registered by the user via the management terminal 120, or may be set by a combination thereof.
  • the storage system 140 is a system that stores data generated by the data generation source 110.
  • the storage system 140 inquires the AI processing board 130 for the information of the application management table 132, calculates the AI model name in which the data to be stored is input for each input data name, and requests the AI model from the AI processing board 130. Then, the correspondence between the input data name and the AI model is managed by the AI model management table 141.
  • the storage system 140 includes a compressor 142 and an expander 143 configured by a neural network, and learns the neural network constituting these as learning data such as data generated by the data generation source 110.
  • the storage system 140 acquires the AI model corresponding to each learning data from the AI model management table 141 for each learning data, and estimates the AI gaze area in the learning data by the AI gaze area estimator 144.
  • the storage system 140 assigns a relatively high weight to the estimated AI gaze area, calculates the weighting error between the training data and the data after compression / decompression of the training data by the quality index function 145, and calculates it. Set to the loss function in neural network learning.
  • the storage system 140 compresses the data generated by the data generation source 110 by the learned compressor 142 and stores it in the storage drive 146.
  • FIG. 2 is a diagram showing an example of the configuration related to the storage system 140.
  • the sensor server 210 shown in FIG. 2 is a computer including hardware resources such as a processor, a memory, and a network interface, and software resources such as a driver of a data generation source 110.
  • the sensor server 210 receives the data (signal) output by the data generation source 110 by the AI processing platform 130 and the storage system 140, such as file formats such as csv (comma-separated values), binary, and PNG (Portable Network Graphics).
  • file formats such as csv (comma-separated values), binary, and PNG (Portable Network Graphics).
  • the file format is converted, and the storage system 140 is requested to write the converted data via the switch 220.
  • the sensor server 210 may be a device different from the data generation source 110, or may be implemented as a function of the data generation source 110. Further, the number of sensor servers 210 is not limited to one, and there may be two or more.
  • the switch 220 connects the sensor server 210, the management terminal 120, and the AI processing board 130.
  • the AI processing board 130 includes a front-end interface 231 (Front-end Interface), a processor 232 (Processor), a RAM 233 (RAM: Random Access Memory), a back-end interface 234 (Back-end Interface), and a storage drive 235 (HDD: Hard). It is equipped with Disk Drive / SSD: Solid State Drive) and Switch 236 (Switch).
  • the front-end interface 231 is an interface for connecting the AI processing board 130, the sensor server 210, the management terminal 120, and the like.
  • the processor 232 controls the entire AI processing board 130 based on the program 237 (Program) stored in the RAM 233 and the management information 238 (Metadata) via the switch 236.
  • the processor 232 may be an accelerator such as a GPU (Graphical Processing Unit) or FPGA (Field Programmable Gate Array) in addition to a general-purpose arithmetic processor such as a CPU (Central Processing Unit). It may be a combination thereof.
  • the back-end interface 234 connects the AI processing board 130 and the storage system 140.
  • the storage drive 235 is a storage device for HDDs, SSDs, etc., and stores the AI model (structure information of the AI model, parameter values, etc.) registered in the AI model DB 131.
  • the storage system 140 includes a front-end interface 241 (Front-end Interface), a processor 242 (Processor), a RAM 243 (RAM), a switch 244 (Switch), and a storage drive 146 (HDD / SSD).
  • a front-end interface 241 Front-end Interface
  • a processor 242 Processor
  • RAM 243 RAM
  • switch 244 Switch
  • storage drive 146 HDD / SSD
  • the front-end interface 241 connects the storage system 140 and the AI processing board 130.
  • the processor 242 controls the entire storage system 140 based on the program 245 (Program) and the management information 246 (Metadata) stored in the RAM 243 via the switch 244.
  • the processor 242 may be an accelerator such as a GPU or FPGA, or a combination thereof, in addition to a general-purpose arithmetic processor such as a CPU.
  • the storage drive 146 is a storage device such as an HDD or SSD, and stores data in which data generated by the data generation source 110 is compressed.
  • the AI processing platform 130 and the storage system 140 may be configured by interconnecting individual ICs (Integrated Circuits) on which the components described above are mounted, and some of them may be ASICs (Application Specific Integrated Circuits). ), FPGA, etc., may be configured to be mounted by one semiconductor element.
  • the AI processing board 130 and the storage system 140 may have different hardware devices, may be different VMs (Virtual Machines) that operate on the same computer, or operate on the same OS (Operating System). It may be a different application.
  • (1-3) Management screen The management terminal 120 displays the first application registration screen 300, the second application registration screen 400, or both on the output device to which the management terminal 120 is communicably connected.
  • the information to be specified by the user is equivalent in each screen, but the method of specifying is different.
  • FIG. 3 is a diagram showing an example of the first application registration screen 300.
  • the application name setting field 310 is a field for allowing the user to set the name of the application (hereinafter referred to as "application name"). For example, let the user specify a unique string to identify the application.
  • the application name setting field 310 may be omitted by automatically assigning a unique application name internally by the AI processing platform 130.
  • the AI setting field 320 is a field that allows the user to specify the input data name of the data to be input to the AI model for each AI model.
  • the AI model name designation field 321 causes the user to specify the AI model name.
  • the input data name designation field 322 is a field that allows the user to specify the input data name of the data used in the AI model for the AI model of the AI model name designated in the AI model name designation field 321 on the left side.
  • a character string may be input as described above, a character string may be selected from the drop-down list, or any other means may be used.
  • the line addition button 323 is a button that allows the user to click when adding a new line at the end of the AI setting field 320. Instead of preparing the line addition button 323 on the first application registration screen 300, a sufficient number of lines may be prepared in advance in the AI setting field 320.
  • the registration button 330 is a button that allows the user to click when the input of the application name setting field 310 and the AI setting field 320 is completed.
  • any field, button, or the like may be added to the first application registration screen 300.
  • FIG. 4 is a diagram showing an example of the second application registration screen 400.
  • the application name setting field 310 and the registration button 330 shown on the second application registration screen 400 have the same functions as the first application registration screen 300.
  • the data flow designation field 420 uses a cursor 401 that can operate the edge 423 connecting the input data name node 421 representing the data generation source and the AI model name node 422 representing the AI model by the input device of the management terminal 120. This is a field that the user can draw.
  • the management terminal 120 acquires the correspondence between the AI model name and the input data name of the data used in the AI model of the AI model name from the drawn directed graph.
  • the nodes that can be drawn in the data flow designation field 420 are not limited to the input data name node 421 and the AI model name node 422, and nodes representing other types of functional blocks may be added.
  • any field, button, or the like may be added to the second application registration screen 400.
  • FIG. 5 is a diagram showing an example of the configuration related to the RAM 233 of the AI processing board 130.
  • the RAM 233 includes a control program area 510 that stores a program 237 executed by the processor 232 and a management information area 520 that stores management information 238 that the processor 232 reads and writes according to the program 237.
  • the control program area 510 includes the application management table update program 511 and the database program 512.
  • the application management table update program 511 corresponds to the application name, the input data name, and the AI model name specified by the user via the first application registration screen 300, the second application registration screen 400, or both. It is a program that stores the relationship in the application management table 132.
  • the database program 512 is a program that provides a function for reading and writing an AI model and an API (Application Programming Interface) to the storage drive 235.
  • the database is, for example, a relational database that reads / writes the AI model with respect to the character string of the AI model name, but is not limited thereto.
  • any database may be used as long as it has a function of reading and writing the AI model and an API from the information that identifies the AI model.
  • the management information area 520 includes the application management table 132.
  • FIG. 7 is a diagram showing an example of the application management table 132.
  • the application management table 132 describes the correspondence between the application name, the input data name, and the AI model name specified by the user via the first application registration screen 300, the second application registration screen 400, or both. It is a table to memorize.
  • the application name column 701 stores the application name set in the application name setting field 310.
  • the AI model name column 702 stores the AI model name corresponding to the AI model name designation field 321 or the AI model name node 422.
  • the input data name string 703 stores the input data name corresponding to the input data name designation field 322 or the input data name node 421.
  • Each row of the application management table 132 is the application of the application name stored in the application name column 701, and the AI model of the AI model name stored in the AI model name column 702 is the input data stored in the input data name column 703. Indicates that the data of the name data generation source 110 is used as an input.
  • the application management table 132 may be implemented in any data structure such as a hash table or a tree structure in addition to the table.
  • FIG. 6 is a diagram showing an example of the configuration related to the RAM 243 of the storage system 140.
  • the RAM 243 includes a control program area 610 that stores a program 245 executed by the processor 242 and a management information area 620 that stores management information 246 that the processor 242 reads and writes according to the program 245.
  • the control program area 610 includes an AI model management table update program 611, a compression / decompression device learning program 612, an AI gaze area estimation program 613, a quality calculation program 614, a data writing program 615, and a data reading program 616.
  • the AI model management table update program 611 is a program in which the storage system 140 inquires the AI processing platform 130 of the information stored in the application management table 132 and updates the AI model management table 141.
  • the compression / decompression device learning program 612 is a program for learning the neural network included in the compressor 142 and the decompression device 143.
  • the AI gaze area estimation program 613 corresponds to the AI gaze area estimator 144, inputs the AI model and the data used by the AI model, and applies the data to the AI of the AI model to obtain the AI gaze area. It is a program that estimates and outputs a heat map.
  • the quality calculation program 614 corresponds to the quality index function 145, and inputs the first data, the second data, and the weight information to the weight information between the first data and the second data. It is a program that outputs the weighting error based on. For example, in the root mean square error, it is a program that calculates an index in which the calculation of the average is replaced with the calculation of the weighted average.
  • the index calculated by the quality calculation program 614 is not limited to this, and may be a program that calculates any function that calculates a scalar value by inputting two data and a weight.
  • the data writing program 615 is a program that compresses the data generated by the data generation source 110 with the compressor 142 and writes it to the storage drive 146.
  • the data read program 616 is a program that reads the requested data from the storage drive 146, decompresses it with the decompressor 143, and then responds to the data read request.
  • the management information area 620 includes the AI model management table 141.
  • the AI model management table 141 is based on the information stored in the application management table 132 of the AI processing platform 130, and for each input data name, the AI model name in which the data of the input data name can be input and the AI model name of the AI model name. It is a table that stores the AI model.
  • FIG. 8 is a diagram showing an example of the AI model management table 141.
  • the input data name column 801 stores the input data name corresponding to the input data name column 703 of the application management table 132.
  • the AI model name column 802 stores the AI model name corresponding to the AI model name column 702 of the application management table 132.
  • the AI model column 803 stores the AI model body such as the structure and parameters of the AI model corresponding to the AI model name stored in the AI model name sequence 802.
  • the AI model main body may be stored in the storage drive 146, and only the pointer to the AI model main body may be stored in the AI model column 803.
  • the data of the data generation source 110 of the input data name stored in the input data name column 801 is used as the input of the AI model of the AI model name stored in the AI model name column. It shows that the AI model is stored in the AI model column 803.
  • the AI model management table 141 may be implemented in any data structure such as a hash table or a tree structure in addition to the table.
  • FIG. 9 is a diagram showing an example of application management table update processing.
  • the processor 232 of the AI processing platform 130 may start the application management table update process triggered by an instruction by the user (pressing a predetermined button), may start at regular time intervals, or the like. It may be started at any time of the above (step S900).
  • step S901 the processor 232 causes the output device of the management terminal 120 to display the first application registration screen 300, the second application registration screen 400, or both of them via the front-end interface 231. Note that step S901 may be omitted by always displaying the first application registration screen 300, the second application registration screen 400, or both on the management terminal 120.
  • step S902 the processor 232 inquires of the management terminal 120 about the pressed state of the registration button 330 via the front-end interface 231 and waits until the pressed state is reached.
  • the processor 232 may periodically inquire the management terminal 120 about the status until the pressed status is returned, or when the registration button 330 is pressed, the processor 232 causes the management terminal 120 to send a message and waits upon receipt of the message. You may cancel it.
  • step S903 the processor 232 requests the management terminal 120 for the application name specified in the application name setting field 310 via the front-end interface 231.
  • step S904 the processor 232 requests the management terminal 120 via the front-end interface 231 to set the AI model name specified by the AI model name designation field 321 or the AI model name node 422.
  • Steps S905 to S910 are a group of steps that loop for each of the AI model names acquired in step S904 (loop A).
  • step S906 the processor 232 requests the management terminal 120 to set the input data names of the AI model pointed to by the loop A via the front-end interface 231.
  • the management terminal 120 extracts and responds to the input data name input to the input data name designation field 322 or the input data name node 421 that is associated with the AI model name designated by the processor 232.
  • Steps S907 to S909 are a group of steps that loop for each input data name acquired in step S906 (loop B).
  • step S908 the processor 232 puts the application name column 701, the AI model name column 702, and the input data name column 703 in the application management table 132, the application name acquired in step S903, and the AI model pointed to by the loop A.
  • the name and the input data name pointed to by loop B are stored respectively.
  • step S911 After the end of the loop A, the processor 232 ends the application management table update process (step S911).
  • AI Model Management Table Update Process With reference to FIG. 10, a process for the storage system 140 to update the AI model management table 141 (AI model management table update process) will be described.
  • FIG. 10 is a diagram showing an example of AI model management table update processing.
  • the processor 242 of the storage system 140 may start the AI model management table update process triggered by reading / writing data, may start at regular time intervals, or may trigger the update of the application management table 132. It may be started as, or it may be started at any other trigger (step S1000).
  • step S1001 the processor 242 requests the AI processing board 130 for all the information stored in the application management table 132 via the front-end interface 241.
  • Steps S1002 to S1009 are a group of steps that loop for each row of the application management table 132 acquired in step S1001 (loop A).
  • Steps S1003 to S1005 are a group of steps that loop for each row of the AI model management table 141 (loop B).
  • step S1004 the processor 242 matches the AI model name in the AI model name column 702 of the row pointed to by loop A with the AI model name in the AI model name column 802 of the row pointed to by loop B, and loop A Conditionally determines whether the input data name in the input data name column 703 of the pointed row and the input data name in the input data name column 801 of the line pointed to by the loop B match.
  • the processor 242 breaks the loop B because the combination of the AI model name and the input data name has already been registered in the AI model management table 141, and the loop A Process for the next line (go to the next Iteration in loop A).
  • the processor 242 processes the next line of loop B (goes to the next Iteration of loop B).
  • step S1006 When the loop B ends without breaking in step S1004, the processor 242 executes the process of step S1006.
  • step S1006 the processor 242 puts the input data name column 801 and the AI model name column 802 in the last row of the AI model management table 141 into the input data name column 703 and the AI model of the input data name column 703 in the row pointed to by the loop A.
  • the AI model name of the name string 702 is stored respectively.
  • step S1007 the processor 242 requests the AI processing board 130 for the AI model corresponding to the AI model name stored in the AI model name column 702 of the row pointed to by the loop A via the front-end interface 241.
  • step S1008 the processor 242 stores the AI model acquired in step S1007 in the AI model column 803 in the last row of the AI model management table 141.
  • the processor 242 ends the AI model management table update process (step S1010).
  • FIG. 11 is a diagram showing an example of the compression / decompression device learning process.
  • the processor 242 of the storage system 140 may start the compression / decompression device learning process at the data writing trigger of the data generation source 110, may start at regular time intervals, or initialize the storage system 140. It may be started at times, at a timing instructed by the user via the management terminal 120, or at any other trigger (step S1100).
  • a compressor 142 and a decompressor 143 compression / decompression device
  • compression / expansion device compression / decompression device
  • the compression / expansion device for one type of data generation source 110 corresponding to the input data name given as an argument of the compression / expansion device learning program 612.
  • the process of learning is explained.
  • the present embodiment is not limited to such a case, and the data of the plurality of data generation sources 110 is compressed at the same time (for example, a plurality of data are combined and regarded as one data).
  • One compression / expansion device may be learned, or a combination thereof may be used.
  • Steps S1101 to S1108 are a group of steps that loop with respect to the learning data of the input data name given as an argument (loop A).
  • the learning data may be any data as long as it is similar to the data generated by the data generation source 110.
  • the compression / decompression device may be trained using the data as training data.
  • the compression / decompression device may be learned when the storage system 140 is started for the first time by using the data of the data generation source 110 prepared in advance as a sample as learning data.
  • the particle size of the Iteration of the loop A may be a file unit such as an image constituting the training data, a batch unit composed of a plurality of files, or any other particle size.
  • step S1102 the processor 242 starts the AI gaze area estimation program 613 as a subroutine (performs the AI gaze area estimation process).
  • the processor 242 estimates the AI gaze area of the AI model using the learning data as an input for the learning data pointed to by the loop A, and obtains it as a heat map.
  • the AI gaze area estimation process will be described later with reference to FIG.
  • the processor 242 calculates the weight for input to the quality calculation program 614 based on the heat map of the AI gaze area calculated in step S1102.
  • the processor 242 may use the heat map representing the AI gaze area as it is as a weight, may use a heat map value binarized with an appropriate threshold value as a weight, or may use any other heat map as a weight. Functions may be applied to calculate the weights.
  • the values preset in the storage system 140 may be used for the threshold value and the two types of values to be set after the binarization, or the user is allowed to specify the values via the management terminal 120. You may.
  • step S1104 the processor 242 compresses the training data by the compressor 142 and obtains the compressed data.
  • step S1105 the processor 242 decompresses the compressed data obtained in step S1104 by the decompressor 143 to obtain decompressed data.
  • step S1106 the processor 242 starts the quality calculation program 614 as a subroutine, and calculates the weighted error between the training data and the decompression data by the weight calculated in step S1003.
  • the learning data x, each data point x i corresponding to an extended data y, for each y i, the mean square error weighted by corresponding weights w i can be a quality (the following formula (1) ).
  • the root mean square error of the AI gaze area and the root mean square error of the other areas are calculated using the weights in which "1" is set in the AI gaze area and "0" is set in the other areas, and the target value is calculated for each.
  • the quality may be an equation (the following equation (2)) in which t 1 and the target value t 2 are subtracted, and the value obtained by subtracting “0” and the max operation is added.
  • the target value t 1 is set to be smaller than the target value t 2
  • the reduction of the error is Loss.
  • the compression stretcher is trained to preferentially reduce the root mean square error in the AI gaze region because it does not contribute to the reduction of the function.
  • the target value t 1 and the target value t 2 may be preset values in the storage system 140, or may be specified by the user via the management terminal 120.
  • the error calculation method is not limited to the root mean square error, and any other function that outputs a scalar value by inputting training data x, extension data y, and weight w may be used.
  • MS-SSIM Multi-Scale Structural Similarity
  • weights other than the image are used as inputs.
  • a value calculated by giving w and replacing the average calculation of the Structural Similarity values at each scale with a weighted average based on the weight w may be used as the quality.
  • an appropriate coefficient may be set in each term constituting the above equation (2).
  • step S1107 the processor 242 uses the weighting error calculated in step S1106 as a Loss function to update the learning parameters of the neural network included in the compressor 142 and the decompressor 143. For example, the processor 242 updates the learning parameters by the inverse error propagation method.
  • the learning parameter update algorithm is not limited to the inverse error propagation method, and for example, algorithms such as SGD (Stochastic Gradient Descent) and Adam (Adaptive moment estimation) may be used.
  • the entropy of the compressed data is estimated by a neural network, and by using a function that adds the estimated value and quality as the Loss function of the compression / decompressor, both the compression rate and the quality are improved.
  • a technique for learning a compression / expansion device As the Loss function, in addition to the weighting error calculated in step S1106, a term representing the compression rate, a term for regularizing the learning parameters of the neural network constituting the compression expander, and the like may be added.
  • the Loss function may be obtained by adding each term representing quality, compression rate, regularization, etc. by a predetermined constant, the integrated one may be used as a Loss function, and other terms may be used.
  • An arbitrary function for calculating one scalar value may be applied to obtain a Loss function.
  • the processor 242 ends the compression / decompression device learning process (step S1109).
  • the above processing may be executed a plurality of times for the same learning data until the update of the learning parameters is converged.
  • FIG. 12 is a diagram showing an example of AI gaze area estimation processing.
  • the processor 242 starts the AI gaze area estimation process as a subroutine of the compression / decompression device learning program 612 (step S1200). At this time, the processor 242 sets the learning data and the input data name of the learning data as the arguments of the AI gaze area estimation process.
  • Steps S1201 to S1205 are a group of steps that loop for each row of the AI model management table 141 (loop A).
  • step S1202 the processor 242 conditionally determines whether the input data name stored in the input data name column 801 of the row pointed to by the loop A matches the input data name given as an argument. If the condition is true, processor 242 transfers processing to step S1203. If the condition is false, processor 242 processes on the next line of loop A (goes to the next Iteration).
  • step S1203 the processor 242 acquires the AI model from the AI model column 803 of the row pointed to by the loop A.
  • step S1204 the processor 242 estimates the AI gaze area when the learning data given as an argument is input to the acquired AI model.
  • the processor 242 executes an algorithm such as Grad-CAM or Guided Backpropagation, for example. Further, for example, when the AI model itself calculates the mask internally and performs mask processing of the feature amount tensor, the processor 242 may use the mask as the AI gaze area. Further, for example, the processor 242 receives image data as an input, detects a specific object, and outputs the position of the object in the form of a Bounding Box, a segmentation image, or the like. It may be used as a gaze area.
  • an algorithm such as Grad-CAM or Guided Backpropagation, for example.
  • the processor 242 may use the mask as the AI gaze area. Further, for example, the processor 242 receives image data as an input, detects a specific object, and outputs the position of the object in the form of a Bounding Box, a segmentation image, or the like. It may be used as a gaze area.
  • the AI gaze area estimation process is not limited to these, and may be estimated by any algorithm.
  • the AI model is not limited to the neural network, and may be another machine learning algorithm such as SVM (Support Vector Machine) or an algorithm other than machine learning.
  • the processor 242 generates a heat map that includes the AI gaze area estimated in loop A. For example, when a plurality of heat maps representing the AI gaze area are obtained by the loop A, the processor 242 calculates the maximum value for each of these data points and generates a new heat map. By this processing, a relatively high value is set in the generated heat map in the region that is the AI gaze region for one or more AI models associated with the training data.
  • the heat map generation process is not limited to this, and any algorithm that calculates the heat map from the estimation results of the plurality of AI gaze areas may be used.
  • step S1206 the processor 242 ends the AI gaze area estimation process with the heat map obtained as a result of step S1206 as a return value (step S1207).
  • a heat map in which a high value is set in the human gaze area may be used as the return value.
  • FIG. 13 is a diagram showing an example of data writing processing.
  • the processor 242 starts the data writing process when the data writing request in the front-end interface 241 is received (step S1300).
  • the route between the sensor server 210 and the storage system 140 may be a route relayed by the AI processing board 130, or the sensor server 210 and the network topology for connecting the front-end interface 241 of the storage system 140 to the switch 220. It may be a route that directly connects to the storage system 140.
  • step S1301 the processor 242 compresses the data to be written received by the front-end interface 241 by the compressor 142 corresponding to the data generation source 110 of the data.
  • step S1302 the processor 242 stores the compressed data in the storage drive 146.
  • any means such as a file system and a relational database may be used.
  • step S1302 After the process of step S1302, the processor 242 ends the data writing process (step S1303).
  • FIG. 14 is a diagram showing an example of data reading processing.
  • the processor 242 starts the data read processing when the front end interface 241 receives the data read request (step S1400).
  • the data read request is issued by the management terminal 120, the AI processing platform 130, and the like.
  • the issuer (issuer) of the data read request is not limited to these, and any other device may issue the data read request.
  • the route between the management terminal 120 and the storage system 140 may be a route relayed by the AI processing board 130, or the management terminal 120 and the management terminal 120 can be used as a network topology for connecting the front-end interface 241 of the storage system 140 to the switch 220. It may be a route that directly connects to the storage system 140.
  • step S1401 the processor 242 reads the compressed data corresponding to the data read request received by the front-end interface 241 from the storage drive 146.
  • step S1402 the processor 242 decompresses the compressed data read in step S1401 by the decompressor 143 of the data generation source 110 corresponding to the compressed data.
  • step S1403 the processor 242 responds to the issuer of the data read request via the front-end interface 241 with the decompressed data in step S1402.
  • step S1403 After the process of step S1403, the processor 242 ends the data read process (step S1404).
  • the compressed data is replied to the issuer of the data read request such as the management terminal 120, and the compressed data is sent to the issuer. It may be stretched.
  • the compression ratio can be improved while maintaining the quality in which the AI can operate.
  • the storage system 140 estimates the AI gaze area of the data by the AI gaze area estimator 144 in response to the data write request generated by the data generation source 110, and specifies the estimation result by JPEG2000 or the like.
  • the data is set as the region of interest of the compressor 1501 having the RoI (Region of Interest) function capable of assigning a large amount of code to the region of interest (for example, the region of interest), the data is compressed by the compressor 1501, and the storage drive 146 is used.
  • RoI Registered of Interest
  • the compressor 1501 is not limited to JPEG2000, and may be any compression algorithm having a RoI function.
  • Other processes such as application management table update process, AI model management table update process, AI gaze area estimation process, and the like, which are omitted from the description, are the same as those in the first embodiment.
  • the compressed data is replied to the issuer of the data read request such as the management terminal 120, and the compressed data is sent to the issuer. It may be stretched.
  • the compression ratio can be improved while maintaining the quality in which the AI can operate.
  • the storage system 140 has a quality index, a quality target of the AI gaze area, and a quality target outside the AI gaze area specified by the user via the management terminal 120. Calculate quality based on.
  • the same reference numerals are used for the same configurations as those in the first embodiment, and the description thereof will be omitted as appropriate.
  • FIG. 16 is a diagram showing an example of the AI model management table 1600 in the present embodiment.
  • the AI model management table 1600 includes a quality index column 1601, an AI gaze area quality target column 1602, and an AI gaze area out-of-gaze area quality target column 1603, in addition to the columns of the AI model management table 141 in the first embodiment. Values specified by the user are set in these fields, for example, via the management terminal 120.
  • the quality index column 1601 manages a function for indexing the quality of the data for each input data name column 801.
  • the AI gaze area quality target column 1602 manages the quality target value in the AI gaze area.
  • the quality target column 1603 outside the AI gaze area manages the quality target value in the area other than the AI gaze area.
  • the process of merging the heat maps of a plurality of AI models (step S1206) is not performed, and the estimation result of the AI gaze area is returned for each AI model. .. That is, the AI gaze area estimation process returns the number of heat maps equal to the number of AI models associated with the data.
  • FIG. 17 is a diagram showing an example of the compression / decompression device learning process according to the present embodiment.
  • Steps S1700 to S1705 are step groups that loop for each row in the AI model management table 1600 in which the input data name specified by the argument is stored in the input data name column 801 (loop B). ..
  • step S1701 the processor 242 selects the heat map of the AI gaze area corresponding to the AI model name column 802 of the row pointed to by loop B from the arguments of step S1102, and calculates the weight based on the heat map.
  • the weight is generated by binarizing, for example, by setting "1" for data points exceeding the threshold value preset in the storage system 140 and "0" for other data points in the heat map. can.
  • the threshold value and the value to be set after binarization may be specified by the user via the management terminal 120.
  • the weight may be calculated by applying the heat map to any function.
  • Steps S1702 and S1703 are the same as steps S1104 and S1105 of the compression / expansion learning process in the first embodiment.
  • step S1704 the processor 242 sets the training data and the extension data based on the values stored in the quality index column 1601, the AI gaze area quality target column 1602, and the AI gaze area out-of-gaze area quality target column 1603 in the row pointed to by the loop B. Calculate the quality between.
  • the processor 242 designates the squared average error calculation formula as the quality index calculation formula specified in the quality index column 1601 and t 1 as the AI gaze area quality target column 1602.
  • the quality is calculated by the formula in which t 2 is replaced with the value set in the quality target column 1603 outside the AI gaze area.
  • an appropriate coefficient may be set in each term constituting the equation (2).
  • the quality calculation formula is not limited to the formula (2), and the scalar value is calculated by inputting four input: training data, extension data, weight, AI gaze area quality target, and AI gaze area out-of-gaze quality target. It can be any function that does.
  • step S1706 the processor 242 updates the learning parameters of the neural network included in the compressor 142 and the decompressor 143 by using the sum of the qualities calculated in step S1202 as the Loss function.
  • the processor 242 updates the learning parameters by the inverse error propagation method.
  • the learning parameter update algorithm is not limited to the inverse error propagation method, and for example, an algorithm such as SGD or Adam may be used.
  • the processor 242 may weight each quality by an appropriate coefficient when calculating the sum of the qualities.
  • the Loss function in addition to the weighting error calculated in step S1106, a term representing the compression rate, a term for regularizing the learning parameters of the neural network constituting the compression expander, and the like may be added.
  • the Loss function may be obtained by adding each term representing quality, compression rate, regularization, etc. by a predetermined constant, the integrated one may be used as a Loss function, and other terms may be used.
  • An arbitrary function for calculating one scalar value may be applied to obtain a Loss function.
  • the quality of the AI gaze area of "AI1” only, the quality of the AI gaze area of "AI2” only, and the quality of the area that is not the AI gaze area of any AI model are calculated, and max (t) is set as each target value. It may be calculated in the same manner as in the above equation (2) as p1, t p2 ), max (t p1 , t n2 ), max (t n1 , t p2 ), max (t n1 , t n2).
  • t p1 , t n1 , t p2 , and t n2 are the AI gaze area quality target column 1602 of "AI1", the AI gaze area quality target column 1603 of "AI1”, and the AI gaze area quality of "AI2", respectively.
  • the target value can be set for each data generation source and the AI model, it is possible to more precisely satisfy the quality required for each AI model, and thus the compression ratio is further improved. be able to.
  • FIG. 18 shows an outline of the present embodiment.
  • the compressor 142 is trained so as to control the image quality based on the AI gaze area. This means that the compressor 142 is trained to internally estimate the AI gaze area. However, the estimation of the AI gaze area performed by the compressor 142 may be accompanied by an error. In particular, if there is a region determined to be other than the AI gaze region even though it is originally an AI gaze region, the quality of the region may deteriorate.
  • the compressor 142 by using a Bayesian neural network as the neural network constituting the compressor 142, the uncertainty of estimation of the AI gaze region at each data point is output in addition to the compressed data. As described above, the compressor 142 is trained.
  • the same reference numerals are used for the same configurations as those in the first embodiment, and the description thereof will be omitted as appropriate.
  • the area extraction unit 1800 calculates the uncertainty of the estimation of the AI gaze area by the compressor 142, extracts the original value of the write data in the area where the uncertainty is equal to or greater than the threshold value, and combines it with the compressed data. Then, it is stored in the storage drive 146.
  • the threshold value may be a value preset in the storage system 140, or may be a value specified by the user via the management terminal 120.
  • multiple compressors with different compression rates and qualities are trained in advance, and if there is a region with high uncertainty, it is compressed with a higher quality compressor. It may be re-compressed and the compressed data by the compressor may be stored in the storage drive 146.
  • the compressed data read from the storage drive 146 is decompressed by the decompressor 143, then the original value is read from the storage drive 146, and for data points having the original value, the decompressed data is replaced with the original value. Responds to the read request source.
  • the original value is retained in the region where the uncertainty is equal to or greater than the threshold value and is replaced at the time of reading, so that it is possible to avoid deterioration in quality due to an estimation error in the AI gaze region.
  • the functions of the AI processing platform may be realized, for example, by the processor 232 reading the program 237 into the RAM 233 and executing it (software), or may be dedicated. It may be realized by hardware such as a circuit, or it may be realized by combining software and hardware. In addition, some of the functions of the AI processing infrastructure may be realized by another computer capable of communicating with the AI processing infrastructure.
  • the functions of the storage system 140 are, for example, It may be realized by the processor 242 reading the program 245 into the RAM 243 and executing it (software), it may be realized by hardware such as a dedicated circuit, or it may be realized by combining software and hardware. You may. In addition, some of the functions of the storage system 140 may be realized by another computer capable of communicating with the storage system 140.
  • each table is an example, and one table may be divided into two or more tables, or all or a part of the two or more tables is one table. You may.
  • information such as programs, tables, and files that realize each function can be placed in a storage device such as a memory, a hard disk, or an SSD, or a recording medium such as an IC card, an SD card, or a DVD. ..
  • the above-described embodiment has, for example, the following characteristic configuration.
  • a trained compression / decompressor (eg, compressor 142 and decompressor 143) comprising a processor (eg, processor 242) and a storage device (RAM 243, storage drive 146, etc.) to compress and decompress data.
  • a data processing system for example, data processing system 100
  • an estimation unit AI gaze area estimator 144, AI
  • a data model for example, AI model
  • an evaluation function that weights each area based on the gaze area (for example, the LOSS function), and the result of the compression / expansion device compressing and decompressing the training data.
  • a learning unit (for example, a compression / expansion device learning program 612) for learning the compression / expansion device is provided.
  • the compression ratio of the region other than the region can be made higher than the compression ratio of the region, and the quality at which the data model can operate. It is possible to improve the compression rate of the data used by the data model while maintaining the above.
  • the learning unit changes the parameters of the compression / decompression device based on the difference between the learning data before compression and decompression and the learning data after compression and decompression for each region and the evaluation function for each region. By doing, you will learn.
  • a management unit for example, AI model that manages management information (for example, AI model management table 141) in which a generation source for generating data (for example, data generation source 110) and a data model using the above data are associated with each other.
  • a management table update program 611) is provided, and the estimation unit identifies a data model corresponding to the training data based on the management information for the training data of the generation source, and determines an area to be watched by the specified data model.
  • Estimating see, for example, FIG. 12
  • the learning unit includes the learning data, data obtained by compressing the learning data using a compressor and an expander corresponding to the generation source, and then decompressing the data.
  • the compression / expansion device is trained using the index calculated by using the weight of the region estimated by the estimation unit for the training data as an evaluation function (see, for example, step S1106 and step S1107).
  • the above generation source is one or more subjects that generate data.
  • the generation source may be a sensor or a device that processes and outputs data from a plurality of sensors.
  • the compression / decompression device is trained using the index weighted on the region to be watched by the data model associated with the generation source as an evaluation function. Therefore, for example, all the data models associated with the generation source can be used.
  • the compression ratio of data from the source can be improved while maintaining operational quality. Further, for example, in the above configuration, even if the area to be watched by the data model is different for each data model, it is possible to specify which data model area the compression ratio should be controlled based on the management information. Become.
  • An interface unit capable of specifying a generation source for generating data (for example, data generation source 110) and a data model using the above data, and data.
  • An acquisition unit that has a model (for example, an AI model) and acquires a data model specified by the interface unit from a processing infrastructure (for example, AI processing infrastructure 130) that executes the data model, and an estimation unit.
  • a storage system (for example, a storage system 140) including the management unit is provided, and the management unit has a generation source specified by the interface unit and a data model acquired by the acquisition unit. The management information is generated in association with each other (see, for example, FIG. 10).
  • a generation source that generates data for example, generation source 110
  • a data model that uses the data for example, an AI model
  • a quality target value for example, AI
  • the gaze area quality target column 1602 value is associated with the quality target value of the area other than the above area (for example, the value of the AI gaze area out-of-gaze area quality target column 1603)
  • the learning unit is associated with the learning data.
  • the data decompressed after the training data was compressed using the compression / expander corresponding to the generation source, the weight of the region estimated by the estimation unit for the training data, and the quality target of the region.
  • the compression / decompression device is learned using the index calculated using the value and the target value of the quality in the region other than the region as an evaluation function (see, for example, step S1704 and step S1705).
  • the target value t 1 of the quality of the region is set to be smaller than the target value t 2 of the quality of the region other than the region, the error of the region other than the region becomes t 2 .
  • the reduction of the error does not contribute to the reduction of the evaluation function, so the compression / expansion device is trained so as to preferentially reduce the error in the region.
  • the target value can be set for each generation source and data model, the quality required for each data model can be more precisely satisfied, and the compression ratio is improved.
  • the compression / decompressor has a compressor and an expander, calculates the estimation uncertainty of the region, identifies a region where the uncertainty is equal to or greater than the threshold, and the region data or the region data in the data corresponding to the identified region.
  • a holding unit for example, region extraction unit 1800
  • a response unit for example, a data reading program
  • the compression unit may be provided in the storage system (for example, the storage system 140) or outside the storage system (for example, the AI processing board 130).
  • the replacement data is retained in the region where the uncertainty is the threshold value or more and is replaced at the time of reading, so that it is possible to avoid the deterioration of the quality in the region where the uncertainty is the threshold value or more.
  • a compression / expander having a RoI (Region of Interest) function (for example, a compressor 1501) is used.
  • the above-mentioned configuration may be appropriately changed, rearranged, combined, or omitted as long as it does not exceed the gist of the present invention.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

プロセッサと、記憶装置と、を備え、データを圧縮および伸長する学習済みの圧縮伸長器を用いてデータを入出力するデータ処理システムにおいて、学習データを用いて、データモデルが注視する領域を推定する推定部と、注視する領域に基づいて各領域を重み付けした評価関数と、圧縮伸長器が学習データを圧縮および伸長した結果とに基づいて、圧縮伸長器を学習させる学習部と、を備えるようにした。

Description

データ処理システムおよびデータ圧縮方法
 本発明は、概して、データ量の削減に関する。
 データ量を削減するストレージシステムが知られている(特許文献1参照)。その種のストレージシステムは、一般に、圧縮によりデータ量を削減する。既存の圧縮方法の1つとして、ランレングス法のように、所定のブロック単位内で出現頻度の高い文字列を辞書化し、より小さなサイズの符号に置換する方法が知られている。
 ランレングス法のような可逆圧縮よりも、データ量を削減する技術として、非可逆圧縮技術が知られている。例えば、特許文献2に記載された技術は、ニューラルネットワークを圧縮伸長器に用いた圧縮技術である。データが有する規則性を、ニューラルネットワークでモデル化することにより、データを圧縮する。
日本国特開2007-199891号公報 日本国特開2019-095913号公報
 データの蓄積コストの削減の観点から、IoT(Internet-of-Things)機器が生成する大規模なデータの蓄積には、圧縮率の高い非可逆圧縮が必要である。さらに、蓄積したデータを、ニューラルネットワーク(以下、「AI(Artificial Intelligence)と記す)を用いるユーザアプリケーションで利用可能とするためには、圧縮伸長後のデータがAIの求める品質を満たす必要がある。
 この場合、データを構成するテンソル上で、AIの結果に大きな影響を与える領域、つまりAIが注視する領域(以下、AI注視領域)以外は、高圧縮による品質の劣化を許容できる。しかしながら、特許文献2に記載の技術では、AI注視領域であるか否かにかかわらず、全領域を同程度の圧縮率で圧縮するため、圧縮率が悪くなってしまう。
 本発明は、以上の点を考慮してなされたもので、データ量を適切に削減し得るデータ処理システム等を提案しようとするものである。
 かかる課題を解決するため本発明においては、プロセッサと、記憶装置と、を備え、データを圧縮および伸長する学習済みの圧縮伸長器を用いてデータを入出力するデータ処理システムにおいて、学習データを用いて、データモデルが注視する領域を推定する推定部と、前記注視する領域に基づいて各領域を重み付けした評価関数と、前記圧縮伸長器が前記学習データを圧縮および伸長した結果とに基づいて、前記圧縮伸長器を学習させる学習部と、を備えるようにした。
 上記構成では、上記構成では、データモデルが注視する領域に応じて学習が行われるので、例えば、当該領域以外の領域の圧縮率を当該領域の圧縮率よりも高くすることができ、データモデルが動作可能な品質を保ちつつ、データモデルが用いるデータの圧縮率を改善することができる。
 本発明によれば、データ量を適切に削減することができる。
第1の実施の形態による構成の一例を示す図である。 第1の実施の形態による構成の一例を示す図である。 第1の実施の形態による画面の一例を示す図である。 第1の実施の形態による画面の一例を示す図である。 第1の実施の形態によるRAMに係る構成の一例を示す図である。 第1の実施の形態によるRAMに係る構成の一例を示す図である。 第1の実施の形態によるテーブルの一例を示す図である。 第1の実施の形態によるテーブルの一例を示す図である。 第1の実施の形態による処理の一例を示す図である。 第1の実施の形態による処理の一例を示す図である。 第1の実施の形態による処理の一例を示す図である。 第1の実施の形態による処理の一例を示す図である。 第1の実施の形態による処理の一例を示す図である。 第1の実施の形態による処理の一例を示す図である。 第2の実施の形態による構成の一例を示す図である。 第3の実施の形態によるテーブルの一例を示す図である。 第3の実施の形態による処理の一例を示す図である。 第4の実施の形態による構成の一例を示す図である。
(1)第1の実施の形態
 本実施の形態は、データ量の削減に関するものである。本実施の形態では、AI向けの非可逆圧縮器を備えるストレージシステムを例に挙げて説明する。
 従来の技術において、領域に応じて圧縮率を制御することも考えられるが、領域に応じて圧縮率を制御できない理由として、大きくは2点存在する。1点目は、AI注視領域は、AIごとに異なるため、どのAIのAI注視領域に従って圧縮率を制御すればよいか、圧縮器において不明であるためである。2点目は、仮に対象とするAIが定まる場合でも、圧縮器において、当該AIのAI注視領域を特定する手段がないためである。
 この点、本実施の形態に示すストレージシステムでは、AI注視領域以外を高い圧縮率で圧縮できるため、全領域を同程度の圧縮率で圧縮する場合と比較して、圧縮率が改善する。
 例えば、本ストレージシステムは、上位で動作するAI処理基盤と協調して動作する。AI処理基盤は、例えば、各ユーザアプリケーションについて、ユーザアプリケーションで使用されるニューラルネットワークのモデル(構造およびパラメタであり、以下、「AIモデル」と記す)と、当該モAIデルの入力となるデータの生成源(以下、「データ生成源」と記す)を、ユーザに指定させる第1のインターフェースと、指定させた情報を管理する第1のテーブルとを備える。
 本ストレージシステムは、例えば、AI処理基盤に、第1のテーブルに記憶された情報を問い合わせる第2のインターフェースと、AIモデルを要求する第3のインターフェースとを備える。
 また、本ストレージシステムは、例えば、第2のインターフェースと第3のインターフェースとにより問い合わせた情報に基づいて、データのデータ生成源ごとに、当該データが入力となるAIモデルを計算し、データ生成源とAIモデルとの対応関係を第2のテーブルにて管理する。
 また、本ストレージシステムは、例えば、ニューラルネットワークを用いた圧縮伸長器を備える。本ストレージシステムは、圧縮伸長器の学習データのデータ生成源に対応するAIモデルを第2のテーブルから取得し、学習データにおける当該AIモデルのAI注視領域を推定し、推定結果を重みとして、圧縮前の学習データと、圧縮伸長後のデータとの間の加重誤差を算出する関数を、圧縮伸長器を構成するニューラルネットワークのロス関数に設定し、圧縮伸長器を学習する。
 本ストレージシステムは、例えば、学習した圧縮伸長器を用いて、データを圧縮し、記憶ドライブに記憶する。
 本ストレージシステムによれば、データ量を適切に削減することができる。
 なお、以下では、データの圧縮率については、データを圧縮した際に、圧縮後のデータが元のデータのどのくらいの情報量に減ったかを表す割合として説明する。付言するならば、割合を100倍したパーセンテージで表してもよいし、削減された情報量の元の情報量に対する割合として表してもよい。また、例えば、相対的に少ない情報量に圧縮された(よく圧縮できた)状態を「圧縮率が高い」、相対的に多い情報量に圧縮された(あまり圧縮できなかった)状態を「圧縮率が低い」と記すことがある。また、圧縮率が最も高い状態(例えば、「0」)は、情報が切り捨てられた状態であってもよい。
 また、以下の説明では、同種の要素を区別しないで説明する場合には、枝番を含む参照符号のうちの共通部分(枝番を除く部分)を使用し、同種の要素を区別して説明する場合は、枝番を含む参照符号を使用することがある。例えば、データ生成源を特に区別しないで説明する場合には、「データ生成源110」と記載し、個々のデータ生成源を区別して説明する場合には、「データ生成源110-1」、「データ生成源110-2」のように記載することがある。
 次に、本発明の実施の形態を図面に基づいて説明する。ただし、本発明は、実施の形態に限定されるものではない。
(1-1)概要
 図1において、100は全体として第1の実施の形態によるデータ処理システムを示す。
 データ処理システム100は、データ生成源110と、管理端末120と、AI処理基盤130(AI Processing Platform)と、ストレージシステム140(Storage System)とを含んで構成される。
 データ生成源110は、データを生成する1以上の主体であり、例えば、センサ、カメラ、システムログ等である。
 管理端末120は、AI処理基盤130がユーザに各種の設定をさせるための、入出力装置を備えた端末である。
 AI処理基盤130は、データ生成源110が生成するデータ、当該データをストレージシステム140に蓄積したデータ等を入力として、AIを実行するための、装置、システム等である。
 AI処理基盤130は、AIモデルDB131とアプリケーション管理テーブル132とを備える。AIモデルDB131は、AIモデルを管理するためのデータベース(DB)である。アプリケーション管理テーブル132は、各ユーザアプリケーション(アプリケーションプログラム)について、ユーザアプリケーションで使用されるAIモデルの名前(以下、「AIモデル名」と記す)と、AIモデルの入力となるデータ生成源110の名前(以下、「入力データ名」と記す)との対応を管理するためのテーブルである。
 なお、AIモデルについては、予めAIモデルDB131に初期設定しておいてもよいし、管理端末120を介してユーザに登録させてもよいし、それらの組み合わせで設定されていてもよい。
 ストレージシステム140は、データ生成源110が生成するデータを蓄積するシステムである。ストレージシステム140は、AI処理基盤130にアプリケーション管理テーブル132の情報を問い合わせ、各入力データ名について、蓄積対象のデータが入力となるAIモデル名を計算し、当該AIモデルをAI処理基盤130に要求し、入力データ名とAIモデルとの対応関係を、AIモデル管理テーブル141で管理する。
 ストレージシステム140は、ニューラルネットワークにより構成された圧縮器142および伸長器143を備え、これらを構成するニューラルネットワークを、データ生成源110が生成するデータ等を学習データとして学習する。
 ストレージシステム140は、各学習データについて、各学習データに対応するAIモデルをAIモデル管理テーブル141から取得し、学習データにおけるAI注視領域を、AI注視領域推定器144により推定する。
 ストレージシステム140は、推定したAI注視領域に相対的に高い重みを付して、学習データと、当該学習データの圧縮伸長後のデータとの間の加重誤差を、品質指標関数145により計算し、ニューラルネットワークの学習におけるロス関数に設定する。
 ストレージシステム140は、データ生成源110が生成するデータを、学習した圧縮器142により圧縮し、記憶ドライブ146に記憶する。
(1-2)システム構成
 ストレージシステム140に係る構成について、図2を用いて説明する。図2は、ストレージシステム140に係る構成の一例を示す図である。
 図2に示すセンササーバ210は、プロセッサ、メモリ、ネットワークインターフェース等のハードウェア資源と、データ生成源110のドライバ等のソフトウェア資源とを備えたコンピュータである。センササーバ210は、データ生成源110が出力するデータ(信号)を、csv(comma-separated values)、バイナリ、PNG(Portable Network Graphics)等のファイルフォーマット等、AI処理基盤130およびストレージシステム140が受領するファイルフォーマットに変換し、スイッチ220を介して、変換したデータの書き込みをストレージシステム140に要求する。
 なお、センササーバ210は、データ生成源110と異なる装置であってもよいし、データ生成源110が有する機能として実装されてもよい。また、センササーバ210は、1つに限定されるものではなく、2つ以上あってもよい。
 スイッチ220は、センササーバ210、管理端末120、およびAI処理基盤130を接続する。
 AI処理基盤130は、フロントエンドインターフェース231(Front-end Interface )、プロセッサ232(Processor)、RAM233(RAM:Random Access Memory)、バックエンドインターフェース234(Back-end Interface )、記憶ドライブ235(HDD:Hard Disk Drive / SSD:Solid State Drive)、およびスイッチ236(Switch)を備える。
 フロントエンドインターフェース231は、AI処理基盤130と、センササーバ210、管理端末120等とを接続するためのインターフェースである。プロセッサ232は、スイッチ236を介して、RAM233に記憶されたプログラム237(Program)、および、管理情報238(Metadata)を基に、AI処理基盤130全体を制御する。プロセッサ232は、CPU(Central Processing Unit)のような、汎用的な演算処理器のほかに、GPU(Graphical Processing Unit)、FPGA(Field Programmable Gate Array)のようなアクセラレータであってもよく、また、それらの組み合わせであってもよい。
 バックエンドインターフェース234は、AI処理基盤130と、ストレージシステム140とを接続する。記憶ドライブ235は、HDD、SSD等の記憶装置であって、AIモデルDB131に登録されたAIモデル(AIモデルの構造情報、パラメタ値等)を記憶する。
 ストレージシステム140は、フロントエンドインターフェース241(Front-end Interface)、プロセッサ242(Processor)、RAM243(RAM)、スイッチ244(Switch)、および記憶ドライブ146(HDD / SSD)を備える。
 フロントエンドインターフェース241は、ストレージシステム140と、AI処理基盤130とを接続する。プロセッサ242は、スイッチ244を介して、RAM243に記憶されたプログラム245(Program)および管理情報246(Metadata)を基に、ストレージシステム140全体を制御する。プロセッサ242は、CPUのような汎用的な演算処理器のほかに、GPU、FPGAのようなアクセラレータであってもよく、また、それらの組み合わせであってもよい。記憶ドライブ146は、HDD、SSD等の記憶装置であって、データ生成源110が生成するデータを圧縮したデータを記憶する。
 AI処理基盤130およびストレージシステム140は、以上で説明した構成要素を実装した個別のIC(Integrated Circuit)を相互に接続した構成であってもよいし、そのいくつかが、ASIC(Application Specific Integrated Circuit)、FPGA等として、1つの半導体素子により実装される構成であってもよい。AI処理基盤130とストレージシステム140とは、異なるハードウェア装置あってもよいし、同一のコンピュータで動作する異なるVM(Virtual Machine)であってもよいし、同一のOS(Operating System)上で動作する異なるアプリケーションであってもよい。
(1-3)管理画面
 管理端末120は、管理端末120が通信可能に接続された出力装置に、第1のアプリケーション登録画面300、第2のアプリケーション登録画面400、または、その両方を表示する。いずれの画面もユーザに指定させる情報は等価であるが、指定させる方法が異なる。
 図3は、第1のアプリケーション登録画面300の一例を示す図である。
 アプリケーション名設定フィールド310は、ユーザにアプリケーションの名前(以下、「アプリケーション名」と記す)を設定させるためのフィールドである。例えば、アプリケーションを識別するための固有の文字列をユーザに指定させる。なお、AI処理基盤130が内部で固有なアプリケーション名を自動で割り振ることにより、アプリケーション名設定フィールド310を省略してもよい。
 AI設定フィールド320は、AIモデル毎に、AIモデルの入力となるデータの入力データ名を、ユーザに指定させるフィールドである。AI設定フィールド320のうち、AIモデル名指定フィールド321では、ユーザにAIモデル名を指定させる。入力データ名指定フィールド322は、左隣のAIモデル名指定フィールド321で指定されたAIモデル名のAIモデルについて、当該AIモデルで用いるデータの入力データ名を、ユーザに指定させるフィールドである。
 なお、指定の方法としては、上述したように文字列を入力させてもよいし、ドロップダウンリストから選択させてもよいし、その他の任意の手段であってもよい。
 行追加ボタン323は、AI設定フィールド320の末尾に、新たな行を追加する場合に、ユーザにクリックさせるボタンである。第1のアプリケーション登録画面300に、行追加ボタン323を用意する代わりに、AI設定フィールド320に予め十分な数の行を用意してもよい。
 登録ボタン330は、アプリケーション名設定フィールド310とAI設定フィールド320との入力が完了した際に、ユーザにクリックさせるボタンである。
 第1のアプリケーション登録画面300には、以上で説明したフィールドおよびボタンの他に、あらゆるフィールドやボタン等が追加されてもよい。
 図4は、第2のアプリケーション登録画面400の一例を示す図である。
 第2のアプリケーション登録画面400に示すアプリケーション名設定フィールド310と登録ボタン330とは、第1のアプリケーション登録画面300と同一の機能を有する。
 データフロー指定フィールド420は、データ生成源を表す入力データ名ノード421と、AIモデルを表すAIモデル名ノード422との間を結ぶエッジ423を、管理端末120の入力装置により操作できるカーソル401を用いて、ユーザに描かせるフィールドである。
 管理端末120は、描画された有向グラフから、AIモデル名と、当該AIモデル名のAIモデルで用いるデータの入力データ名との対応関係を取得する。なお、データフロー指定フィールド420に描画できるノードは、入力データ名ノード421およびAIモデル名ノード422に限定されるものではなく、他の種類の機能ブロックを表すノードが追加されてもよい。
 第2のアプリケーション登録画面400には、以上で説明したフィールドおよびボタンの他に、あらゆるフィールドやボタン等が追加されてもよい。
(1-4)RAM構成
 図5および図6を用いて、データ処理システム100が備える主な機能について説明し、図7および図8を用いてデータ処理システム100が備える主な情報について説明する。
 図5は、AI処理基盤130のRAM233に係る構成の一例を示す図である。
 RAM233は、プロセッサ232が実行するプログラム237を記憶する制御プログラム領域510と、プロセッサ232がプログラム237に従って読み書きする管理情報238を記憶する管理情報領域520とを含んで構成される。
 制御プログラム領域510には、アプリケーション管理テーブル更新プログラム511と、データベースプログラム512とが含まれる。
 アプリケーション管理テーブル更新プログラム511は、第1のアプリケーション登録画面300、第2のアプリケーション登録画面400、または、その両方を介してユーザに指定させた、アプリケーション名と入力データ名とAIモデル名との対応関係を、アプリケーション管理テーブル132に記憶させるプログラムである。
 データベースプログラム512は、記憶ドライブ235に対して、AIモデルを読み書きするための機能とAPI(Application Programming Interface)を提供するプログラムである。データベースは、例えば、AIモデル名の文字列に対して、AIモデルを読み書きするリレーショナルデータベース(Relational Database)であるが、これに限定されるものではない。データベースとしては、AIモデルを識別する情報から、AIモデルを読み書きする機能とAPIとを備えれば、いかなるデータベースが用いられてもよい。
 管理情報領域520には、アプリケーション管理テーブル132が含まれる。
 図7は、アプリケーション管理テーブル132の一例を示す図である。
 アプリケーション管理テーブル132は、第1のアプリケーション登録画面300、第2のアプリケーション登録画面400、または、その両方を介してユーザに指定させた、アプリケーション名と入力データ名とAIモデル名との対応関係を記憶するテーブルである。
 アプリケーション名列701は、アプリケーション名設定フィールド310に設定された、アプリケーション名を記憶する。AIモデル名列702は、AIモデル名指定フィールド321またはAIモデル名ノード422に対応するAIモデル名を記憶する。入力データ名列703は、入力データ名指定フィールド322または入力データ名ノード421に対応する入力データ名を記憶する。
 アプリケーション管理テーブル132の各行は、アプリケーション名列701に記憶されたアプリケーション名のアプリケーションにおいて、AIモデル名列702に記憶されたAIモデル名のAIモデルは、入力データ名列703に記憶された入力データ名のデータ生成源110のデータを入力として用いることを表す。なお、アプリケーション管理テーブル132は、テーブルの他、ハッシュテーブル、木構造等、いかなるデータ構造で実装されてもよい。
 図6は、ストレージシステム140のRAM243に係る構成の一例を示す図である。
 RAM243は、プロセッサ242が実行するプログラム245を記憶する制御プログラム領域610と、プロセッサ242がプログラム245に従って読み書きする管理情報246を記憶する管理情報領域620とを含む。
 制御プログラム領域610には、AIモデル管理テーブル更新プログラム611、圧縮伸長器学習プログラム612、AI注視領域推定プログラム613、品質計算プログラム614、データ書き込みプログラム615、およびデータ読み出しプログラム616が含まれる。
 AIモデル管理テーブル更新プログラム611は、ストレージシステム140がAI処理基盤130に、アプリケーション管理テーブル132に記憶された情報を問い合わせ、AIモデル管理テーブル141を更新するプログラムである。
 圧縮伸長器学習プログラム612は、圧縮器142と伸長器143とに含まれるニューラルネットワークの学習を行うプログラムである。
 AI注視領域推定プログラム613は、AI注視領域推定器144に対応し、AIモデルと、当該AIモデルが用いるデータとを入力として、当該データを当該AIモデルのAIに適用した場合のAI注視領域を推定し、ヒートマップを出力するプログラムである。
 品質計算プログラム614は、品質指標関数145に対応し、第1のデータと、第2のデータと、重み情報とを入力として、第1のデータと第2のデータとの間の、重み情報に基づく加重誤差を出力するプログラムである。例えば、二乗平均誤差において、平均の計算を加重平均の計算に置き換えた指標を計算するプログラムである。品質計算プログラム614が計算する指標は、これに限定されるものではなく、その他、2つのデータと、重みとを入力として、スカラ値を計算する、いかなる関数を計算するプログラムであってもよい。
 データ書き込みプログラム615は、データ生成源110が生成するデータを、圧縮器142で圧縮し、記憶ドライブ146に書き込むプログラムである。
 データ読み出しプログラム616は、データの読み出し要求に対して、要求されたデータを記憶ドライブ146から読み出し、伸長器143で伸長したのち、応答するプログラムである。
 管理情報領域620には、AIモデル管理テーブル141が含まれる。AIモデル管理テーブル141は、AI処理基盤130のアプリケーション管理テーブル132に記憶された情報に基づいて、各入力データ名について、入力データ名のデータが入力となり得るAIモデル名と、当該AIモデル名のAIモデルとを記憶するテーブルである。
 図8は、AIモデル管理テーブル141の一例を示す図である。
 入力データ名列801は、アプリケーション管理テーブル132の入力データ名列703に対応する入力データ名を記憶する。AIモデル名列802は、アプリケーション管理テーブル132のAIモデル名列702に対応するAIモデル名を記憶する。AIモデル列803は、AIモデル名列802に記憶されたAIモデル名に対応する、AIモデルの構造、パラメタ等のAIモデル本体を記憶する。なお、AIモデル本体は、記憶ドライブ146に記憶し、AIモデル列803には、AIモデル本体へのポインタのみを記憶してもよい。
 AIモデル管理テーブル141の各行は、入力データ名列801に記憶された入力データ名のデータ生成源110のデータが、AIモデル名列に記憶されたAIモデル名のAIモデルの入力として利用され、当該AIモデルがAIモデル列803に記憶されていることを示している。なお、AIモデル管理テーブル141は、テーブルの他、ハッシュテーブル、木構造等、いかなるデータ構造で実装されてもよい。
(1-5)アプリケーション管理テーブルの更新処理
 図9を用いて、AI処理基盤130がアプリケーション管理テーブル132を更新する処理(アプリケーション管理テーブル更新処理)について説明する。
 図9は、アプリケーション管理テーブル更新処理の一例を示す図である。
 AI処理基盤130のプロセッサ232は、アプリケーション管理テーブル更新処理を、ユーザによる指示(所定のボタンの押下)を契機として開始してもよいし、一定の時間間隔毎に開始してもよいし、その他の任意の契機で開始してもよい(ステップS900)。
 ステップS901では、プロセッサ232は、フロントエンドインターフェース231を介して、管理端末120の出力装置に、第1のアプリケーション登録画面300、第2のアプリケーション登録画面400、または、その両方を表示させる。なお、ステップS901については、管理端末120に、第1のアプリケーション登録画面300、第2のアプリケーション登録画面400、または、その両方を、常に表示させることにより、省略してもよい。
 ステップS902では、プロセッサ232は、フロントエンドインターフェース231を介して、管理端末120に登録ボタン330の押下状態を問い合わせ、押下済みの状態となるまで待機する。プロセッサ232は、押下済みの状態が応答されるまで、管理端末120に状態を定期的に問い合わせてもよいし、登録ボタン330の押下時に、管理端末120にメッセージを送信させ、その受領をもって待機を解除してもよい。
 ステップS903では、プロセッサ232は、フロントエンドインターフェース231を介して、管理端末120に、アプリケーション名設定フィールド310に指定されたアプリケーション名を要求する。
 ステップS904は、プロセッサ232は、フロントエンドインターフェース231を介して、管理端末120に、AIモデル名指定フィールド321またはAIモデル名ノード422により指定させた、AIモデル名の集合を要求する。
 ステップS905~ステップS910は、ステップS904で取得したAIモデル名の各々について、ループするステップ群である(ループA)。
 ステップS906では、プロセッサ232は、フロントエンドインターフェース231を介して、管理端末120に、ループAが指すAIモデルの入力データ名の集合を要求する。管理端末120は、入力データ名指定フィールド322または入力データ名ノード421に入力させた入力データ名のうち、プロセッサ232に指定されたAIモデル名に対応付けられたものを抽出し、応答する。
 ステップS907~ステップS909は、ステップS906で取得した各入力データ名について、ループするステップ群である(ループB)。
 ステップS908では、プロセッサ232は、アプリケーション管理テーブル132の、アプリケーション名列701と、AIモデル名列702と、入力データ名列703とに、ステップS903で取得したアプリケーション名と、ループAが指すAIモデル名と、ループBが指す入力データ名とを、それぞれ記憶する。
 ループAの終了後、プロセッサ232は、アプリケーション管理テーブル更新処理を終了する(ステップS911)。
(1-6)AIモデル管理テーブルの更新処理
 図10を用いて、ストレージシステム140がAIモデル管理テーブル141を更新する処理(AIモデル管理テーブル更新処理)について説明する。
 図10は、AIモデル管理テーブル更新処理の一例を示す図である。
 ストレージシステム140のプロセッサ242は、AIモデル管理テーブル更新処理を、データの読み書きを契機として開始してもよいし、一定の時間間隔毎に開始してもよいし、アプリケーション管理テーブル132の更新を契機として開始してもよいし、その他の任意の契機で開始してもよい(ステップS1000)。
 ステップS1001では、プロセッサ242は、フロントエンドインターフェース241を介して、AI処理基盤130に、アプリケーション管理テーブル132に記憶された全ての情報を要求する。
 ステップS1002~ステップS1009は、ステップS1001で取得したアプリケーション管理テーブル132の各行について、ループするステップ群である(ループA)。
 ステップS1003~ステップS1005は、AIモデル管理テーブル141の各行について、ループするステップ群である(ループB)。
 ステップS1004では、プロセッサ242は、ループAが指す行のAIモデル名列702のAIモデル名と、ループBが指す行のAIモデル名列802のAIモデル名とが一致し、かつ、ループAが指す行の入力データ名列703の入力データ名と、ループBが指す行の入力データ名列801の入力データ名とが一致するかを条件判定する。プロセッサ242は、条件が真である場合、当該AIモデル名と当該入力データ名との組み合わせは、すでにAIモデル管理テーブル141に登録済みであるため、ループBを抜け(break)し、ループAの次の行について処理を行う(ループAの次のIterationに進む)。他方、条件が偽である場合、プロセッサ242は、ループBの次の行について処理を行う(ループBの次のIterationに進む)。
 ループBがステップS1004によりbreakせずに終了した場合、プロセッサ242は、ステップS1006の処理を実行する。
 ステップS1006では、プロセッサ242は、AIモデル管理テーブル141の末尾行の入力データ名列801とAIモデル名列802とに、ループAが指す行の、入力データ名列703の入力データ名とAIモデル名列702のAIモデル名とを、それぞれ記憶する。
 ステップS1007では、プロセッサ242は、フロントエンドインターフェース241を介して、AI処理基盤130に、ループAが指す行のAIモデル名列702に記憶されているAIモデル名に対応するAIモデルを要求する。
 ステップS1008では、プロセッサ242は、ステップS1007で取得したAIモデルを、AIモデル管理テーブル141の末尾行のAIモデル列803に記憶する。
 ループAの終了後、プロセッサ242は、AIモデル管理テーブル更新処理を終了する(ステップS1010)。
 以上では、ストレージシステム140において、AIモデル管理テーブル141を更新する処理を説明した。この他にも、AI処理基盤130において、AIモデル管理テーブル141の複製を更新し、ストレージシステム140のAIモデル管理テーブル141にコピーする方法が採られてもよい。
(1-7)圧縮伸長器の学習処理
 図11を用いて、ストレージシステム140が圧縮器142および伸長器143を学習する処理(圧縮伸長器学習処理)について説明する。
 図11は、圧縮伸長器学習処理の一例を示す図である。
 ストレージシステム140のプロセッサ242は、圧縮伸長器学習処理を、データ生成源110のデータ書き込み契機で開始してもよいし、一定の時間間隔毎に開始してもよいし、ストレージシステム140の初期化時に開始してもよいし、管理端末120を介してユーザに指示させたタイミングで開始してもよいし、その他の任意の契機で開始してもよい(ステップS1100)。
 なお、以下では、データ生成源110ごとに圧縮器142および伸長器143(圧縮伸長器)を用意するケースを例に挙げて説明する。つまり、データ生成源110の数と同数の圧縮伸長器が存在する場合において、圧縮伸長器学習プログラム612の引数として与えられた入力データ名に対応する1種のデータ生成源110向けの圧縮伸長器を学習する処理を説明する。しかしながら、本実施の形態は、そのような場合に限定されるものではなく、複数のデータ生成源110のデータを同時に圧縮するように(例えば、複数のデータを組み合わせて1つのデータとみなして)、1個の圧縮伸長器を学習してもよいし、その組み合わせであってもよい。
 ステップS1101~ステップS1108は、引数で与えられた入力データ名の学習データについて、ループするステップ群である(ループA)。
 学習データは、データ生成源110が生成するデータと類似のものであれば、どのようなデータであってもよい。例えば、データ生成源110がデータを生成する度に、当該データを学習データとして、圧縮伸長器を学習してもよい。また、例えば、サンプルとして予め用意したデータ生成源110のデータを学習データとして、ストレージシステム140の初回起動時に、圧縮伸長器を学習してもよい。ループAのIterationの粒度は、学習データを構成する画像等のファイル単位であってもよいし、複数のファイルから構成されるバッチ単位であってもよいし、その他の任意の粒度でもよい。
 ステップS1102では、プロセッサ242は、AI注視領域推定プログラム613をサブルーチンとして起動する(AI注視領域推定処理を行う)。AI注視領域推定処理において、プロセッサ242は、ループAが指す学習データについて、学習データを入力として用いるAIモデルのAI注視領域を推定し、ヒートマップとして得る。なお、AI注視領域推定処理については、図12を用いて後述する。
 ステップS1103では、プロセッサ242は、ステップS1102で計算したAI注視領域のヒートマップに基づき、品質計算プログラム614の入力とするための重みを計算する。例えば、プロセッサ242は、AI注視領域を表すヒートマップをそのまま重みとしてもよいし、ヒートマップの値を、適当な閾値で二値化したものを重みとしてもよいし、その他、ヒートマップに任意の関数を適用して重みを計算してよい。なお、閾値で二値化する場合、閾値、二値化後に設定する2種類の値については、ストレージシステム140にプリセットされた値を用いてもよいし、管理端末120を介してユーザに指定させてもよい。
 ステップS1104では、プロセッサ242は、圧縮器142により、学習データを圧縮し、圧縮データを得る。
 ステップS1105では、プロセッサ242は、伸長器143により、ステップS1104で得た圧縮データを伸長し、伸長データを得る。
 ステップS1106では、プロセッサ242は、品質計算プログラム614をサブルーチンとして起動し、ステップS1003で計算した重みにより、学習データと、伸長データとの間の加重誤差を計算する。
 例えば、学習データxと、伸長データyとの対応する各データ点x,y毎に、対応する重みwで加重した二乗平均誤差を品質とすることができる(下記の式(1))。
Figure JPOXMLDOC01-appb-M000001
 また、AI注視領域に「1」、その他の領域に「0」を設定した重みを用いて、AI注視領域の二乗平均誤差と、その他の領域の二乗平均誤差を計算し、各々について、目標値tと目標値tとを減算し、「0」とmax演算を取った値を、加算した式(下記の式(2))を品質としてもよい。この場合、例えば、目標値tが目標値tよりも小さい値となるように設定すれば、AI注視領域でない領域の二乗平均誤差がtに達した後は、同誤差の減少がLoss関数の減少に寄与しなくなるため、AI注視領域の二乗平均誤差を優先して削減するように、圧縮伸長器が学習される。
Figure JPOXMLDOC01-appb-M000002
 目標値tと目標値tとは、ストレージシステム140にプリセットされた値を用いてもよいし、管理端末120を介してユーザに指定させてもよい。また、誤差の計算方法は、二乗平均誤差に限定されるものではなく、その他、学習データx、伸長データy、重みwを入力として、スカラ値を出力する任意の関数でよい。例えば、画像データに対して、二乗平均誤差よりも、より人間の知覚に近い品質指標であると知られているMS-SSIM(Multi-Scale Structural Similarity)において、入力として、画像の他に、重みwを与え、各スケールにおけるStructural Similarity値の平均計算を、重みwに基づく加重平均に置き換えて計算した値を、品質としてもよい。また、上記の式(2)を構成する各項に、適当な係数が設定されてもよい。
 ステップS1107は、プロセッサ242は、ステップS1106で計算した加重誤差をLoss関数として、圧縮器142と伸長器143とに含まれるニューラルネットワークの学習パラメタを更新する。例えば、プロセッサ242は、逆誤差伝播法により、学習パラメタを更新する。
 学習パラメタの更新アルゴリズムについては、逆誤差伝播法に限定されるものではなく、例えば、SGD(Stochastic Gradient Descent)、Adam(Adaptive moment estimation)等のアルゴリズムが用いられてもよい。
 また、圧縮後のデータのエントロピーを、ニューラルネットワークにより推定し、圧縮伸長器のLoss関数として、当該推定値と品質とを加算した関数を用いることで、圧縮率と品質との両方を改善するように、圧縮伸長器を学習させる技術が存在する。この場合、Loss関数として、ステップS1106で計算した加重誤差の他に、圧縮率を表す項、圧縮伸長器を構成するニューラルネットワークの学習パラメタを正則化するための項等が追加されてもよい。この場合、品質、圧縮率、正則化等を表す各項を、予め定められた定数により加算したものをLoss関数としてもよいし、積算したものをLoss関数としてもよいし、その他、各項から1つのスカラ値を計算する任意の関数を適用してLoss関数としてもよい。
 ループAの終了後、プロセッサ242は、圧縮伸長器学習処理を終了する(ステップS1109)。
 なお、学習パラメタの更新が収束するまで、同一の学習データに対して、上記の処理は複数回実行されてもよい。
 図12は、AI注視領域推定処理の一例を示す図である。
 プロセッサ242は、圧縮伸長器学習プログラム612のサブルーチンとして、AI注視領域推定処理を開始する(ステップS1200)。このとき、プロセッサ242は、AI注視領域推定処理の引数として、学習データと、学習データの入力データ名とを設定する。
 ステップS1201~ステップS1205は、AIモデル管理テーブル141の各行についてループするステップ群である(ループA)。
 ステップS1202では、プロセッサ242は、ループAが指す行の入力データ名列801に記憶された入力データ名と、引数として与えられた入力データ名とが一致するか、条件判定する。条件が真である場合、プロセッサ242は、ステップS1203に処理を移す。条件が偽である場合、プロセッサ242は、ループAの次の行について処理を行う(次のIterationに進む)。
 ステップS1203は、プロセッサ242は、ループAが指す行のAIモデル列803からAIモデルを取得する。
 ステップS1204では、プロセッサ242は、引数で与えられた学習データを、取得したAIモデルに入力した場合のAI注視領域を推定する。
 AI注視領域の推定処理として、プロセッサ242は、例えば、Grad-CAM、Guided Backpropagation等のアルゴリズムを実行する。また、例えば、プロセッサ242は、AIモデル自体が、内部でマスクを計算し、特徴量テンソルのマスク処理等を行っている場合、当該マスクをAI注視領域として利用してもよい。また、例えば、プロセッサ242は、画像データを入力として、特定の物体を検出し、当該物体の位置をBounding Box、セグメンテーション画像等の形式で出力するAIについては、物体が検出された領域を、AI注視領域として利用してもよい。
 なお、AI注視領域の推定処理は、これらに限定されるものではなく、どのようなアルゴリズムで推定されてもよい。また、AIモデルは、ニューラルネットワークに限定されるものではなく、SVM(Support Vector Machine)等の他の機械学習アルゴリズムであってもよいし、機械学習以外のアルゴリズムであってもよい。
 ステップS1206では、プロセッサ242は、ループA内で推定したAI注視領域を包含するヒートマップを生成する。例えば、プロセッサ242は、ループAによりAI注視領域を表す複数のヒートマップが得られた場合、これらのデータ点毎の最大値を計算して、新たなヒートマップを生成する。この処理により、学習データに関連付けられた1以上のAIモデルについてAI注視領域となっている領域には、生成されたヒートマップにおいて相対的に高い値が設定される。ヒートマップの生成処理は、これに限定されるものではなく、複数のAI注視領域の推定結果から、ヒートマップを計算する任意のアルゴリズムが用いられてよい。
 ステップS1206の処理の後、プロセッサ242は、ステップS1206の結果として得たヒートマップを戻り値として、AI注視領域推定処理を終了する(ステップS1207)。
 なお、AI注視領域に加え、人間の注視点を推定するモデルを使用することにより、人間の注視領域にも高い値を設定したヒートマップを戻り値としてもよい。
(1-8)データ書き込み処理
 図13を用いて、ストレージシステム140がデータを書き込む処理(データ書き込み処理)について説明する。
 図13は、データ書き込み処理の一例を示す図である。
 プロセッサ242は、データ書き込み処理を、フロントエンドインターフェース241におけるデータ書き込み要求の受領を契機として開始する(ステップS1300)。なお、センササーバ210とストレージシステム140との間の経路は、AI処理基盤130が中継する経路でもよいし、ストレージシステム140のフロントエンドインターフェース241をスイッチ220に接続するネットワークトポロジとして、センササーバ210とストレージシステム140とを直接接続する経路でもよい。
 ステップS1301では、プロセッサ242は、フロントエンドインターフェース241にて受領した書き込み対象のデータを、当該データのデータ生成源110に対応する圧縮器142により圧縮する。
 ステップS1302では、プロセッサ242は、圧縮データを記憶ドライブ146に記憶する。なお、記憶ドライブ146でデータを管理する方法は、ファイルシステム、リレーショナルデータベース等、任意の手段を用いてよい。
 ステップS1302の処理の後、プロセッサ242は、データ書き込み処理を終了する(ステップS1303)。
(1-9)データ読み出し処理
 図14を用いて、ストレージシステム140がデータを読み出す処理(データ読み出し処理)について説明する。
 図14は、データ読み出し処理の一例を示す図である。
 プロセッサ242は、データ読み出し処理を、フロントエンドインターフェース241におけるデータ読み出し要求の受領を契機として開始する(ステップS1400)。なお、データ読み出し要求は、管理端末120、AI処理基盤130等が発行する。データ読み出し要求の発行主体(発行元)については、これらに限定されるものではなく、その他の任意の装置がデータ読み出し要求を発行してもよい。
 また、管理端末120とストレージシステム140との間の経路は、AI処理基盤130が中継する経路でもよいし、ストレージシステム140のフロントエンドインターフェース241をスイッチ220に接続するネットワークトポロジとして、管理端末120とストレージシステム140とを直接接続する経路でもよい。
 ステップS1401では、プロセッサ242は、フロントエンドインターフェース241にて受領したデータ読み出し要求に対応する圧縮データを、記憶ドライブ146から読み出す。
 ステップS1402では、プロセッサ242は、ステップS1401にて読み出した圧縮データを、圧縮データに対応するデータ生成源110の伸長器143により伸長する。
 ステップS1403では、プロセッサ242は、ステップS1402にて伸長データを、フロントエンドインターフェース241を介して、データ読み出し要求の発行元に応答する。
 ステップS1403の処理の後、プロセッサ242は、データ読み出し処理を終了する(ステップS1404)。
 なお、データの読み出し要求に対して、データの伸長をストレージシステム140の伸長器143により伸長する以外にも、管理端末120等のデータ読み出し要求の発行元に圧縮データを応答し、当該発行元に伸長処理をさせてもよい。
 本実施の形態によれば、AIが動作可能な品質を保ちつつ、圧縮率を改善することができる。
(2)第2の実施の形態
 本実施の形態の概要について、図15を用いて説明する。なお、本実施の形態では、第1の実施の形態と同じ構成については、同じ符号を用いてその説明を適宜省略する。
 本実施の形態では、ストレージシステム140は、データ生成源110が生成したデータの書き込み要求に対し、当該データのAI注視領域を、AI注視領域推定器144により推定し、推定結果をJPEG2000等、特定の領域(例えば、興味領域)に多くの符号量を割り当てることができるRoI(Region of Interest)機能を有する圧縮器1501の興味領域として設定し、当該データを圧縮器1501により圧縮し、記憶ドライブ146に記憶する。
 圧縮器1501は、JPEG2000に限定されるものではなく、RoI機能を有する任意の圧縮アルゴリズムでよい。その他、アプリケーション管理テーブル更新処理、AIモデル管理テーブル更新処理、AI注視領域推定処理等、説明を省略した処理については、第1の実施の形態と同一である。
 なお、データの読み出し要求に対して、データの伸長をストレージシステム140の伸長器1502により伸長する以外にも、管理端末120等のデータ読み出し要求の発行元に圧縮データを応答し、当該発行元に伸長処理をさせてもよい。
 本実施の形態によれば、AIが動作可能な品質を保ちつつ、圧縮率を改善することができる。
(3)第3の実施の形態
 本実施の形態では、ストレージシステム140は、管理端末120を介してユーザに指定させた、品質指標、AI注視領域の品質目標、およびAI注視領域外の品質目標に基づいて品質を計算する。なお、本実施の形態では、第1の実施の形態と同じ構成については、同じ符号を用いてその説明を適宜省略する。
 図16は、本実施の形態におけるAIモデル管理テーブル1600の一例を示す図である。
 AIモデル管理テーブル1600は、第1の実施の形態におけるAIモデル管理テーブル141の列に加え、品質指標列1601、AI注視領域品質目標列1602、AI注視領域外品質目標列1603を備える。これらのフィールドには、例えば、管理端末120を介して、ユーザに指定させた値が設定される。
 品質指標列1601は、入力データ名列801毎に、当該データの品質を指標化するための関数を管理する。AI注視領域品質目標列1602は、AI注視領域における品質の目標値を管理する。AI注視領域外品質目標列1603は、AI注視領域以外の領域における品質の目標値を管理する。
 本実施の形態においては、AI注視領域推定処理のヒートマップ生成処理において、複数AIモデルのヒートマップをマージする処理(ステップS1206)を行わず、各AIモデルについて、AI注視領域の推定結果を返す。つまり、AI注視領域推定処理は、当該データに紐づくAIモデルの数に等しい枚数のヒートマップを返す。
 図17は、本実施の形態における圧縮伸長器学習処理の一例を示す図である。
 ステップS1700~ステップS1705は、AIモデル管理テーブル1600の行のうち、入力データ名列801に、引数で指定された入力データ名が記憶されている各行について、ループするステップ群である(ループB)。
 ステップS1701では、プロセッサ242は、ループBが指す行のAIモデル名列802に対応するAI注視領域のヒートマップを、ステップS1102の引数から選択し、ヒートマップを基に重みを計算する。重みは、例えば、ヒートマップのうち、ストレージシステム140にプリセットされた閾値を上回るデータ点には「1」を、その他のデータ点には「0」を設定することで二値化することにより生成できる。閾値、二値化後に設定する値は、管理端末120を介してユーザに指定させてもよい。その他、ヒートマップを任意の関数に適用することで、重みを計算してもよい。
 ステップS1702およびステップS1703は、第1の実施の形態における圧縮伸長学習処理のステップS1104およびステップS1105と同一である。
 ステップS1704では、プロセッサ242は、ループBが指す行の品質指標列1601、AI注視領域品質目標列1602、AI注視領域外品質目標列1603に記憶された値を基に、学習データと伸長データとの間の品質を計算する。
 プロセッサ242は、例えば、上記の式(2)において、二乗平均誤差の計算式を、品質指標列1601で指定された品質指標の計算式に、tをAI注視領域品質目標列1602に指定された値に、tをAI注視領域外品質目標列1603に設定された値に、それぞれ置き換えた式により、品質を計算する。なお、式(2)を構成する各項に、適当な係数が設定されてもよい。品質の計算式については、式(2)に限定されるものではなく、学習データ、伸長データ、重み、AI注視領域品質目標、AI注視領域外品質目標の4つを入力として、スカラ値を計算する任意の関数であってよい。
 ステップS1706では、プロセッサ242は、ステップS1202で計算した品質の和をLoss関数として、圧縮器142と伸長器143とに含まれるニューラルネットワークの学習パラメタを更新する。例えば、プロセッサ242は、逆誤差伝播法により、学習パラメタを更新する。学習パラメタの更新アルゴリズムについては、逆誤差伝播法に限定されるものではなく、例えば、SGD、Adam等のアルゴリズムが用いられてもよい。
 また、プロセッサ242は、品質の和を計算する際に、各品質を適当な係数により重み付けしてもよい。また、Loss関数として、ステップS1106で計算した加重誤差の他に、圧縮率を表す項、圧縮伸長器を構成するニューラルネットワークの学習パラメタを正則化するための項等が追加されてもよい。この場合、品質、圧縮率、正則化等を表す各項を、予め定められた定数により加算したものをLoss関数としてもよいし、積算したものをLoss関数としてもよいし、その他、各項から1つのスカラ値を計算する任意の関数を適用してLoss関数としてもよい。
 上記の方法により品質を計算する方法以外にも、品質指標列1601が同一の、2つのAIモデル「AI1」、「AI2」について、AI注視領域が重複する領域が存在する場合、重複領域の品質、「AI1」のみのAI注視領域の品質、「AI2」のみのAI注視領域の品質、いずれのAIモデルのAI注視領域でもない領域の品質をそれぞれ計算し、それぞれの目標値として、max(tp1,tp2),max(tp1,tn2),max(tn1,tp2),max(tn1,tn2)として、上記の式(2)と同様に計算してもよい。ただし、tp1,tn1,tp2,tn2は、それぞれ、「AI1」のAI注視領域品質目標列1602、「AI1」のAI注視領域外品質目標列1603、「AI2」のAI注視領域品質目標列1602、「AI2」のAI注視領域外品質目標列1603である。また、AIモデルの数が3以上の場合について、同様に計算した品質を用いてもよい。
 本実施の形態によれば、データ生成源およびAIモデル毎に目標値が設定可能となるので、各AIモデルに求められる品質をより精緻に満たすことが可能となるため、圧縮率をより改善することができる。
(4)第4の実施の形態
 図18は、本実施の形態の概要を表す。第1の実施の形態~第3の実施の形態では、AI注視領域に基づいて画質を制御するように、圧縮器142を学習させている。これは、圧縮器142が、内部的にAI注視領域の推定が行われるように学習されることを意味する。しかしながら、圧縮器142で行われるAI注視領域の推定は、誤差を伴う可能性がある。特に、本来、AI注視領域であるにも関わらず、AI注視領域以外であると判定される領域が存在すると、当該領域の品質が低下する可能性がある。
 この点、本実施の形態では、圧縮器142を構成するニューラルネットワークとして、ベイジアンニューラルネットワークを用いることで、圧縮データに加え、各データ点におけるAI注視領域の推定の不確かさ(Uncertainty)を出力するように、圧縮器142を学習させる。なお、本実施の形態では、第1の実施の形態と同じ構成については、同じ符号を用いてその説明を適宜省略する。
 領域抽出部1800は、データの書き込み時に、圧縮器142により、AI注視領域の推定の不確かさを計算し、不確かさが閾値以上の領域の書き込みデータのオリジナルの値を抽出し、圧縮データと合わせて、記憶ドライブ146に記憶する。閾値は、ストレージシステム140にプリセットされた値であってもよいし、管理端末120を介してユーザに指定させた値であってもよい。
 オリジナルの値を抽出して記憶する以外にも、圧縮率、品質が異なる複数の圧縮器を予め学習させておき、不確かさが高い領域が存在する場合には、より高品質の圧縮器で圧縮し直し、当該圧縮器による圧縮データを記憶ドライブ146に記憶してもよい。
 読み出し時には、記憶ドライブ146から読み出した圧縮データを伸長器143で伸長した後、記憶ドライブ146からオリジナルの値を読み出し、オリジナルの値があるデータ点については、伸長データを当該オリジナル値で置き換えたデータを、読み出し要求元に応答する。
 本実施の形態によれば、不確かさが閾値以上の領域についてはオリジナル値が保持され、読み出し時に置換されるので、AI注視領域の推定ミスに伴う品質の低下を回避することができる。
 以上、本発明が適用されるAI処理基盤とストレージシステムとについて説明した。
(5)付記
 上述の実施の形態には、例えば、以下のような内容が含まれる。
 上述の実施の形態においては、本発明をデータ処理システムに適用するようにした場合について述べたが、本発明はこれに限らず、この他種々のシステム、装置、方法、プログラムに広く適用することができる。
 AI処理基盤の機能(アプリケーション管理テーブル更新プログラム511、データベースプログラム512等の機能)は、例えば、プロセッサ232がプログラム237をRAM233に読み出して実行すること(ソフトウェア)により実現されてもよいし、専用の回路等のハードウェアにより実現されてもよいし、ソフトウェアとハードウェアとが組み合わされて実現されてもよい。また、AI処理基盤の機能の一部は、AI処理基盤と通信可能な他のコンピュータにより実現されてもよい。
 ストレージシステム140の機能(AIモデル管理テーブル更新プログラム611、圧縮伸長器学習プログラム612、AI注視領域推定プログラム613、品質計算プログラム614、データ書き込みプログラム615、データ読み出しプログラム616等の機能)は、例えば、プロセッサ242がプログラム245をRAM243に読み出して実行すること(ソフトウェア)により実現されてもよいし、専用の回路等のハードウェアにより実現されてもよいし、ソフトウェアとハードウェアとが組み合わされて実現されてもよい。また、ストレージシステム140の機能の一部は、ストレージシステム140と通信可能な他のコンピュータにより実現されてもよい。
 また、上述の実施の形態において、各テーブルの構成は一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部または一部が1つのテーブルであってもよい。
 また、上述の実施の形態において、説明の便宜上、XXテーブル、XXファイルを用いて各種のデータを説明したが、データ構造は限定されるものではなく、XX情報等と表現してもよい。
 また、上記の説明において、各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD等の記憶装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
 上述した実施の形態は、例えば、以下の特徴的な構成を有する。
 プロセッサ(例えば、プロセッサ242)と、記憶装置(RAM243、記憶ドライブ146等)と、を備え、データを圧縮および伸長する学習済みの圧縮伸長器(例えば、圧縮器142および伸長器143)を用いてデータを入出力するデータ処理システム(例えば、データ処理システム100)において、学習データを用いて、データモデル(例えば、AIモデル)が注視する領域を推定する推定部(AI注視領域推定器144、AI注視領域推定プログラム613等)と、前記注視する領域に基づいて各領域を重み付けした評価関数(例えば、LOSS関数)と、前記圧縮伸長器が前記学習データを圧縮および伸長した結果とに基づいて、前記圧縮伸長器を学習させる学習部(例えば、圧縮伸長器学習プログラム612)と、を備える。
 上記構成では、データモデルが注視する領域に応じて学習が行われるので、例えば、当該領域以外の領域の圧縮率を当該領域の圧縮率よりも高くすることができ、データモデルが動作可能な品質を保ちつつ、データモデルが用いるデータの圧縮率を改善することができる。
 前記学習部は、前記圧縮および伸長前の学習データと圧縮および伸長後の学習データとの前記領域ごとの差分と、前記領域ごとの評価関数と、に基づいて、前記圧縮伸長器のパラメタを変更することで、学習させる。
 データを生成する生成源(例えば、データ生成源110)と、上記データを用いるデータモデルと、が対応付けられた管理情報(例えば、AIモデル管理テーブル141)を管理する管理部(例えば、AIモデル管理テーブル更新プログラム611)を備え、上記推定部は、上記生成源の学習データについて、上記管理情報をもとに上記学習データに対応するデータモデルを特定し、特定したデータモデルが注視する領域を推定し(例えば、図12参照)、上記学習部は、上記学習データと、上記生成源に対応する圧縮器および伸長器が用いられて上記学習データが圧縮されてから伸長されたデータと、上記学習データについて上記推定部により推定された領域の重みとを用いて計算した指標を評価関数として上記圧縮伸長器を学習する(例えば、ステップS1106、ステップS1107参照)。
 上記生成源は、データを生成する1以上の主体である。例えば、上記生成源は、センサであってもよいし、複数のセンサのデータを処理して出力する装置であってもよい。
 上記構成では、生成源に対応付けられているデータモデルが注視する領域に重み付けした指標を評価関数として圧縮伸長器が学習されるので、例えば、生成源に対応付けられている全てのデータモデルが動作可能な品質を保ちつつ、生成源からのデータの圧縮率を改善することができる。また、例えば、上記構成では、データモデルが注視する領域がデータモデルごとに異なっていたとしても、管理情報をもとに、どのデータモデルの領域に従って圧縮率を制御すればよいかが特定できるようになる。
 データを生成する生成源(例えば、データ生成源110)と、上記データを用いるデータモデルとを指定可能なインターフェース部(第1のアプリケーション登録画面300、第2のアプリケーション登録画面400等)と、データモデル(例えば、AIモデル)を有し、上記データモデルを実行する処理基盤(例えば、AI処理基盤130)から、上記インターフェース部により指定されたデータモデルを取得する取得部と、上記推定部と、上記管理部とを含んで構成されるストレージシステム(例えば、ストレージシステム140)と、を備え、上記管理部は、上記インターフェース部により指定された生成源と上記取得部により取得されたデータモデルとを対応付けて上記管理情報を生成する(例えば、図10参照)。
 上記管理情報では、データを生成する生成源(例えば、生成源110)と、上記データを用いるデータモデル(例えば、AIモデル)と、上記データモデルが注視する領域の品質の目標値(例えば、AI注視領域品質目標列1602の値)と、上記領域以外の領域の品質の目標値(例えば、AI注視領域外品質目標列1603の値)とが対応付けられ、上記学習部は、上記学習データと、上記生成源に対応する圧縮伸長器が用いられて上記学習データが圧縮されてから伸長されたデータと、上記学習データについて上記推定部により推定された領域の重みと、上記領域の品質の目標値と、上記領域以外の領域の品質の目標値とを用いて計算した指標を評価関数として上記圧縮伸長器を学習する(例えば、ステップS1704、ステップS1705参照)。
 上記構成では、例えば、領域の品質の目標値tが当該領域以外の領域の品質の目標値tよりも小さい値となるように設定すれば、当該領域以外の領域の誤差がtに達した後は、同誤差の減少が評価関数の減少に寄与しなくなるため、当該領域の誤差を優先して削減するように、圧縮伸長器が学習される。上記構成によれば、生成源およびデータモデル毎に目標値が設定可能となるので、各データモデルに求められる品質をより精緻に満たすことができ、圧縮率が改善する。
 上記圧縮伸長器は、圧縮器と伸長器とを有し、上記領域の推定の不確かさを計算し、不確かさが閾値以上の領域を特定し、特定した領域に対応する上記データにおける領域データまたは上記圧縮器より高品質の圧縮器で上記データを圧縮した圧縮データを置換用データとして保持する保持部(例えば、領域抽出部1800)と、上記データの読み出しに対し、上記データの圧縮データを伸長器で伸長し、伸長データを上記置換用データで置換した置換済みデータを、上記データの要求元に応答する応答部(例えば、データ読み出しプログラム)と、を備える。
 上記圧縮部は、ストレージシステム(例えば、ストレージシステム140)に設けられていてもよいし、ストレージシステム外(例えば、AI処理基盤130)に設けられていてもよい。
 上記構成では、例えば、不確かさが閾値以上の領域については置換用データが保持され、読み出し時に置換されるので、不確かさが閾値以上の領域における品質の低下を回避することができる。
 RoI(Region of Interest)機能を有する圧縮伸長器(例えば、圧縮器1501)を用いる。
 上記構成によれば、例えば、圧縮伸長器の学習をすることなく、データモデルが動作可能な品質を保ちつつ、データモデルが用いるデータの圧縮率を改善することができる。
 また上述した構成については、本発明の要旨を超えない範囲において、適宜に、変更したり、組み替えたり、組み合わせたり、省略したりしてもよい。
 100……データ処理システム、142……圧縮器、143……伸長器、144……AI注視領域推定器。

Claims (8)

  1.  プロセッサと、
     記憶装置と、
     を備え、
     データを圧縮および伸長する学習済みの圧縮伸長器を用いてデータを入出力するデータ処理システムにおいて、
     学習データを用いて、データモデルが注視する領域を推定する推定部と、
     前記注視する領域に基づいて各領域を重み付けした評価関数と、前記圧縮伸長器が前記学習データを圧縮および伸長した結果とに基づいて、前記圧縮伸長器を学習させる学習部と、
     を備えるデータ処理システム。
  2.  前記学習部は、前記圧縮および伸長前の学習データと圧縮および伸長後の学習データとの前記領域ごとの差分と、前記領域ごとの評価関数と、に基づいて、前記圧縮伸長器のパラメタを変更することで、学習させる、
     請求項1に記載のデータ処理システム。
  3.  データを生成する生成源と、前記データを用いるデータモデルと、が対応付けられた管理情報を管理する管理部を備え、
     前記推定部は、前記生成源の学習データについて、前記管理情報をもとに前記学習データに対応するデータモデルを特定し、特定したデータモデルが注視する領域を推定し、
     前記学習部は、前記学習データと、前記生成源に対応する圧縮伸長器が用いられて前記学習データが圧縮されてから伸長されたデータと、前記学習データについて前記推定部により推定された領域の重みとを用いて計算した指標を評価関数として前記圧縮伸長器を学習する、
     請求項1に記載のデータ処理システム。
  4.  データを生成する生成源と、前記データを用いるデータモデルとを指定可能なインターフェース部と、
     データモデルを有し、前記データモデルを実行する処理基盤から、前記インターフェース部により指定されたデータモデルを取得する取得部と、前記推定部と、前記管理部とを含んで構成されるストレージシステムと、
     を備え、
     前記管理部は、前記インターフェース部により指定された生成源と前記取得部により取得されたデータモデルとを対応付けて前記管理情報を生成する、
     請求項3に記載のデータ処理システム。
  5.  前記管理情報では、データを生成する生成源と、前記データを用いるデータモデルと、前記データモデルが注視する領域の品質の目標値と、前記領域以外の領域の品質の目標値とが対応付けられ、
     前記学習部は、前記学習データと、前記生成源に対応する圧縮伸長器が用いられて前記学習データが圧縮されてから伸長されたデータと、前記学習データについて前記推定部により推定された領域の重みと、前記領域の品質の目標値と、前記領域以外の領域の品質の目標値とを用いて計算した指標を評価関数として前記圧縮伸長器を学習する、
     請求項3に記載のデータ処理システム。
  6.  前記圧縮伸長器は、圧縮器と伸長器とを有し、
     前記領域の推定の不確かさを計算し、不確かさが閾値以上の領域を特定し、特定した領域に対応する前記データにおける領域データまたは前記圧縮器より高品質の圧縮器で前記データを圧縮した圧縮データを置換用データとして保持する保持部と、
     前記データの読み出しに対し、前記データの圧縮データを伸長器で伸長し、伸長データを前記置換用データで置換した置換済みデータを、前記データの要求元に応答する応答部と、
     を備える、
     請求項1に記載のデータ処理システム。
  7.  RoI(Region of Interest)機能を有する圧縮伸長器を用いる、
     請求項1に記載のデータ処理システム。
  8.  プロセッサと、
     記憶装置と、
     を備え、
     データを圧縮および伸長する学習済みの圧縮伸長器を用いてデータを入出力するデータ処理システムにおけるデータ圧縮方法であって、
     推定部が、学習データを用いて、データモデルが注視する領域を推定することと、
     学習部が、前記注視する領域に基づいて各領域を重み付けした評価関数と、前記圧縮伸長器が前記学習データを圧縮および伸長した結果とに基づいて、前記圧縮伸長器を学習させることと、
     を含むデータ圧縮方法。
PCT/JP2021/008346 2020-03-06 2021-03-04 データ処理システムおよびデータ圧縮方法 WO2021177394A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/642,843 US11842055B2 (en) 2020-03-06 2021-03-04 Data processing system and data compression method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020-038808 2020-03-06
JP2020038808A JP7441682B2 (ja) 2020-03-06 2020-03-06 データ処理システムおよびデータ圧縮方法

Publications (1)

Publication Number Publication Date
WO2021177394A1 true WO2021177394A1 (ja) 2021-09-10

Family

ID=77613488

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/008346 WO2021177394A1 (ja) 2020-03-06 2021-03-04 データ処理システムおよびデータ圧縮方法

Country Status (3)

Country Link
US (1) US11842055B2 (ja)
JP (1) JP7441682B2 (ja)
WO (1) WO2021177394A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023242927A1 (ja) * 2022-06-13 2023-12-21 日本電信電話株式会社 データ管理装置、データ管理方法、及びプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6985853B2 (en) * 2002-02-28 2006-01-10 Broadcom Corporation Compressed audio stream data decoder memory sharing techniques
JP3966461B2 (ja) * 2002-08-09 2007-08-29 株式会社リコー 電子カメラ装置
JP4757038B2 (ja) 2006-01-25 2011-08-24 株式会社日立製作所 ストレージシステム及び記憶制御装置
JP6826021B2 (ja) 2017-11-20 2021-02-03 株式会社日立製作所 ストレージシステム
US10757482B2 (en) * 2017-12-05 2020-08-25 Fdn. for Res.&Bus., Seoul Nat. Univ. of Sci.&Tech. System and method for predicting user viewpoint using location information of sound source in 360 VR contents

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
AKUTSU HIROAKI, NARUKO TAKAHIRO: "End-to-End Learned ROI Image Compression", CVPR 2019 OPEN ACCESS, 2019, pages 4321 - 4325, XP055852094 *
CAI CHUNLEI; CHEN LI; ZHANG XIAOYUN; GAO ZHIYONG: "End-to-End Optimized ROI Image Compression", IEEE TRANSACTIONS ON IMAGE PROCESSING, vol. 29, 25 December 2019 (2019-12-25), pages 3442 - 3457, XP011769267, Retrieved from the Internet <URL:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8943263> [retrieved on 20210510], DOI: 10.1109/TIP.2019.2960869 *

Also Published As

Publication number Publication date
JP7441682B2 (ja) 2024-03-01
US11842055B2 (en) 2023-12-12
JP2021140554A (ja) 2021-09-16
US20220374156A1 (en) 2022-11-24

Similar Documents

Publication Publication Date Title
CN114155543B (zh) 神经网络训练方法、文档图像理解方法、装置和设备
CN110612538B (zh) 生成输入数据项的离散潜在表示
US20190005399A1 (en) Learning device, generation device, learning method, generation method, and non-transitory computer readable storage medium
CN110166757B (zh) 用计算机实现的压缩数据的方法、***、存储介质
JP6569047B1 (ja) 学習方法、コンピュータプログラム、分類器、及び生成器
US11521038B2 (en) Electronic apparatus and control method thereof
US11604584B2 (en) Storage system
CN113656587B (zh) 文本分类方法、装置、电子设备及存储介质
JP7242994B2 (ja) ビデオイベント識別方法、装置、電子デバイス及び記憶媒体
JP6673905B2 (ja) ネットワーク転送およびリアルタイムレンダリング用に3dテクスチャモデルを自動的に最適化するシステム、方法、およびコンピュータプログラム製品
CN111581926A (zh) 文案生成方法、装置、设备和计算机可读存储介质
CN113360619A (zh) 一种表单生成方法、装置、设备及介质
WO2021177394A1 (ja) データ処理システムおよびデータ圧縮方法
CN112949433B (zh) 视频分类模型的生成方法、装置、设备和存储介质
CN115994558A (zh) 医学影像编码网络的预训练方法、装置、设备及存储介质
US11122335B2 (en) Wishing television
US10530387B1 (en) Estimating an optimal ordering for data compression
CN111709473A (zh) 对象特征的聚类方法及装置
JP7328799B2 (ja) ストレージシステムおよび記憶制御方法
JP7041530B2 (ja) 表示プログラム、表示方法、及び表示装置
US10007604B2 (en) Storage device optimization
EP3624065A1 (en) Classification of knowledge management assets
US11983554B2 (en) Automating semantically-related computing tasks across contexts
WO2024055920A1 (en) Automatic adjustment of constraints in task solution generation
CN116228897B (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: 21765506

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21765506

Country of ref document: EP

Kind code of ref document: A1