WO2019245186A1 - 전자 장치 및 그의 제어 방법 - Google Patents

전자 장치 및 그의 제어 방법 Download PDF

Info

Publication number
WO2019245186A1
WO2019245186A1 PCT/KR2019/006500 KR2019006500W WO2019245186A1 WO 2019245186 A1 WO2019245186 A1 WO 2019245186A1 KR 2019006500 W KR2019006500 W KR 2019006500W WO 2019245186 A1 WO2019245186 A1 WO 2019245186A1
Authority
WO
WIPO (PCT)
Prior art keywords
artificial intelligence
value
layer
model
layer parameters
Prior art date
Application number
PCT/KR2019/006500
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 EP19823665.5A priority Critical patent/EP3770826A4/en
Priority to US17/053,005 priority patent/US20210125028A1/en
Publication of WO2019245186A1 publication Critical patent/WO2019245186A1/ko

Links

Images

Classifications

    • 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
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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
    • G06N3/045Combinations of networks
    • 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
    • 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
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • 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
    • G06N3/048Activation functions

Definitions

  • the present disclosure relates to an electronic device and a control method thereof, and more particularly, to a method for efficiently using an artificial intelligence model in an electronic device such as a user terminal.
  • AI artificial intelligence
  • AI Artificial Intelligence
  • Artificial intelligence technology consists of elementary technologies that utilize machine learning (deep learning) and machine learning.
  • Machine learning is an algorithm technology that classifies / learns characteristics of input data by itself
  • element technology is a technology that utilizes machine learning algorithms such as deep learning, and it includes linguistic understanding, visual understanding, reasoning / prediction, knowledge expression, motion control, etc. It consists of technical fields.
  • Linguistic understanding is a technology for recognizing and applying / processing human language / characters, and includes natural language processing, machine translation, dialogue system, question and answer, speech recognition / synthesis, and the like.
  • Visual understanding is a technology that recognizes and processes objects as human vision, and includes object recognition, object tracking, image retrieval, person recognition, scene understanding, spatial understanding, and image enhancement.
  • Inference Prediction is a technique for judging, logically inferring, and predicting information. It includes knowledge / probability-based inference, optimization prediction, preference-based planning, and recommendation.
  • Knowledge representation is a technology that automatically processes human experience information into knowledge data, and includes knowledge construction (data generation / classification) and knowledge management (data utilization).
  • Motion control is a technology for controlling autonomous driving of a vehicle and movement of a robot, and includes motion control (navigation, collision, driving), operation control (action control), and the like.
  • the conventional artificial intelligence technology is used by combining a plurality of artificial intelligence models required a lot of learning time and a large storage space. Therefore, the conventional artificial intelligence technology is often performed in an external server capable of performing a large storage space and high computation, and it is necessary to discuss a method for efficiently using the artificial intelligence model in a user terminal device such as a smartphone. It became.
  • the present disclosure is directed to a method for using an artificial intelligence model in a limited storage space to solve the above problems.
  • the control method of the electronic device for generating an artificial intelligence model for achieving the above object comprises: generating a plurality of artificial intelligence models when a user command for using a plurality of artificial intelligence models is input; Inputting input data to an intelligence model to obtain output data for the input data, wherein the generating of the input data is performed on layers of corresponding positions among a plurality of layers included in each of the plurality of artificial intelligence models. Based on a reference value for obtaining a layer parameter for the plurality of layers, the layers of the corresponding positions among the layers included in each of the plurality of artificial intelligence models are generated.
  • the reference value may be determined based on an average value and a variance value of the layer parameter for the layers of the corresponding positions.
  • the reference value may be determined based on an average value of the plurality of layer parameters.
  • the method may further include obtaining a reference value.
  • the method may further include obtaining a reference value based on an average value of the plurality of layer parameters and a dispersion value of the plurality of layer parameters.
  • the generating may further include determining the number of artificial intelligence models generated based on the memory capacity of the electronic device.
  • control method may further include ensembling the plurality of layers and outputting a result value.
  • an electronic device for generating an artificial intelligence model for achieving the above object is included in each of a plurality of artificial intelligence models through the communication unit from a communication unit, a memory, and an external server.
  • a processor configured to receive a reference value for obtaining a layer parameter for layers of a corresponding position among a plurality of layers, wherein the processor is further configured to input a user command to use a plurality of artificial intelligence models.
  • Generates an intelligent model inputs input data to the generated artificial intelligence model to obtain output data for the input data, and applies layers to corresponding positions among a plurality of layers included in each of the plurality of artificial intelligence models.
  • the plurality of artificial intelligence models based on a reference value for obtaining a layer parameter for the The layers of the corresponding positions among the layers included in the respective layers are generated.
  • the reference value may be determined based on an average value and a variance value of the layer parameter for the layers of the corresponding positions.
  • the processor may determine the reference value based on an average value of the plurality of layer parameters.
  • the processor determines a distribution between the plurality of layer parameters, and if the distribution meets a preset condition, the distribution value of the plurality of layer parameters. Based on the reference value can be obtained.
  • the processor may obtain a reference value based on an average value of the plurality of layer parameters and a dispersion value of the plurality of layer parameters.
  • the processor may determine the number of artificial intelligence models generated based on the memory capacity.
  • the processor may ensemble the plurality of layers and output a result value.
  • the server control method for achieving the above object, a plurality of layer parameters for the layers of the corresponding position among the plurality of layers included in each of the plurality of artificial intelligence model Acquiring a reference value for generating a layer parameter for a new layer at the corresponding position based on the obtained plurality of layer parameters, and transmitting the obtained reference value to a user terminal.
  • the reference value may be determined based on an average value and a variance value of the layer parameter for the layers of the corresponding positions.
  • the reference value may be determined based on an average value of the plurality of layer parameters.
  • the variance value of the plurality of layer parameters is greater than or equal to a predetermined value, determining a distribution between the plurality of layer parameters, and if the distribution meets a predetermined condition, based on the variance value of the plurality of layer parameters And obtaining a reference value.
  • the method may include obtaining a reference value based on an average value of the plurality of layer parameters and a dispersion value of the plurality of layer parameters.
  • the electronic device may efficiently use an artificial intelligence model even in a limited storage space.
  • FIGS. 1A to 1C are exemplary views for explaining a method of outputting an artificial intelligence model operating in a conventional server according to an exemplary embodiment of the present disclosure.
  • FIG. 2 is a block diagram schematically illustrating a configuration of an electronic device according to an embodiment of the present disclosure.
  • FIG. 3 is a block diagram illustrating in detail a configuration of an electronic device 200 according to an exemplary embodiment.
  • 4A and 4B are exemplary diagrams for describing a method of generating an artificial intelligence model according to a memory storage space, according to an embodiment of the present disclosure.
  • 5A to 5C are exemplary diagrams for describing a UI capable of adjusting an artificial intelligence model generated according to a user command, according to an embodiment of the present disclosure.
  • 6A to 6E are exemplary diagrams for describing an ensemble method of layers according to an embodiment of the present disclosure.
  • FIG. 7 is a block diagram schematically illustrating a configuration of a server according to an embodiment of the present disclosure.
  • FIG. 8 is a flowchart illustrating an operation of an electronic device according to an embodiment of the present disclosure.
  • FIG. 9 is a flowchart illustrating an operation of a server according to an embodiment of the present disclosure.
  • FIG. 10 is a system diagram illustrating an operation of a server and an electronic device according to an embodiment of the present disclosure.
  • Embodiments of the present disclosure may be variously modified and have various embodiments, and specific embodiments will be illustrated in the drawings and described in detail in the written description. However, this is not intended to limit the scope to the specific embodiment, it should be understood to include all transformations, equivalents, and substitutes included in the spirit and technical scope of the invention. In describing the embodiments, when it is determined that the detailed description of the related known technology may obscure the gist, the detailed description thereof will be omitted.
  • first and second may be used to describe various components, but the components should not be limited by the terms. The terms are only used to distinguish one component from another.
  • a "module” or “unit” performs at least one function or operation, and may be implemented in hardware or software or in a combination of hardware and software.
  • a plurality of “modules” or a plurality of “units” may be integrated into at least one module except for "modules” or “units”, which need to be implemented with specific hardware, and are implemented with at least one processor (not shown). Can be.
  • the ensemble model may refer to a model that calculates and uses outputs of at least two artificial intelligence models.
  • the ensemble may be used by combining a plurality of models.
  • Each artificial intelligence model constituting the ensemble model can be referred to as an individual model or an artificial intelligence model.
  • the ensemble model can output the final output value by applying averaging, weight sum, and boosting methods to the output value of each artificial intelligence model. .
  • a layer may mean one layer in a multilayer neural network structure. That is, one layer may be defined as a layer in the plurality of ensemble models.
  • W and b may be referred to as layer parameters.
  • an ensemble layer may refer to a layer in which the outputs are summed when the two or more layer outputs are used in a plurality of artificial intelligence models.
  • the layer structure may refer to the structure of the artificial intelligence model, such as the number of individual models in the ensemble model or the ensemble model, connectivity between layers, and the like.
  • the layer function g may be expressed as a linear function of inputs x1, ..., x_N, but may be expressed in other forms.
  • a stochastic layer function may mean a function in which an output of a layer function is probabilistically determined.
  • the stochastic layer function may consist of a probability distribution of the output y_j for x_1, ... x_N, such as y_j ⁇ N (f_mean (x_1 ... x_N), f_var (x_1 ... X_N). .
  • FIGS. 1A to 1C are exemplary views for explaining a method of outputting an artificial intelligence model operating in a conventional server according to an exemplary embodiment of the present disclosure.
  • a conventional server may have a method of inputting data into one artificial intelligence model and outputting a result value.
  • the conventional server may learn one artificial intelligence model, input data into the trained model, and output a result value.
  • the recognition result can be easily changed even with a small noise, and there is a problem in that the accuracy and stability of the result value are low.
  • the conventional server may ensemble a plurality of models and output a result value as shown in FIG. 1B.
  • the ensemble model may output a plurality of result values by inputting data to a plurality of separately trained models, and output a final result based on the plurality of output values.
  • the final result may be output by applying averaging, weight sum, and boosting methods to the plurality of result values.
  • the ensemble model may determine an average value of the result values output through each artificial intelligence model as the final output value.
  • the ensemble model may output a final output value by multiplying a specific output value by a specific weight value among the result values output through the artificial intelligence model.
  • the ensemble model may determine a final output parameter for each of the plurality of parameters. For example, it may be assumed that the ensemble model includes three AI models, and the result values output through the three AI models include five parameters. In this case, the first model outputs a first result value including the first parameter to the fifth parameter, the second model outputs a second result value including the first parameter to the fifth parameter, and the third model The third result value including the first to fifth parameters may be output.
  • the ensemble model obtains a first parameter of the final output value based on the first parameter of the first model, the first parameter of the second model, and the first parameter of the third model, and the second parameter of the first model, The second parameter of the final output value may be obtained based on the second parameter of the two models and the second parameter of the third model.
  • the ensemble model may obtain the determined first to fifth parameters as the final output value.
  • an ensemble model As the number of models to be ensemble increases, the number and the amount of layer parameters used in the model may increase.
  • the ensemble model is a model trained to achieve one goal (for example, voice recognition, face recognition, etc.), the learning results of the plurality of separately trained models are similar. As a result, convergence is unlikely to guarantee a significant performance boost.
  • the ensemble model when used, it requires a large storage space and a lot of computational process compared to the expected performance improvement, so in devices having relatively low storage space and processing speed such as smart phones, display devices, and IoT systems Using an ensemble model is an inadequate aspect.
  • an electronic device in order to stably use the artificial intelligence model in a device such as the user terminal (hereinafter referred to as an electronic device), it is necessary to secure a small storage space and a small calculation amount while using the ensemble model.
  • the electronic device 200 instead of receiving and storing a plurality of models from the server 100, receives and stores a layer generator capable of generating a plurality of models, and requires an ensemble model.
  • the ensemble model may be generated by the processor to generate an ensemble model capable of maintaining similar performance in a small storage space. That is, as shown in FIG. 1C, the electronic device 200 does not store a plurality of layers, and the server 100 provides a reference value for generating a layer parameter, a data and a layer parameter generating function for a specific condition, and the like. Received from, a layer parameter can be generated if necessary. In order to generate a layer from the generated layer parameter, the electronic device 200 may receive data about the layer structure from the server 100.
  • the ensemble model generated by the electronic device 200 may be an ensemble model for speech recognition.
  • the general speech recognition artificial intelligence model is large and can be used in a server.
  • speech recognition may be performed through the ensemble model only by receiving data for generating the ensemble model from the server 100. have.
  • the ensemble model generated by the electronic device 200 may be an ensemble model for language translation.
  • the language translation is performed in the electronic device 200 separately from the server 100, there is an advantage that the translation function can be used even in an offline situation.
  • the ensemble model generated by the electronic device 200 may be an ensemble model for image recognition and processing.
  • artificial intelligence models for image recognition / processing are used in a server with a large capacity, and when an input image is a high definition image, it may take a lot of time and money to transmit to the server.
  • images such as personal photos have security problems and may not be suitable for transmission to a server.
  • the electronic device 200 when the electronic device 200 generates an ensemble model for image recognition / processing, the image recognition / processing is performed through the ensemble model only by receiving data for generating an ensemble model from the server 100. Can be performed.
  • FIG. 2 is a block diagram schematically illustrating a configuration of an electronic device according to an embodiment of the present disclosure.
  • the electronic device 200 may include a communication unit 210, a memory 220, and a processor 230.
  • the electronic device 200 may include, for example, a smartphone, a tablet PC, a mobile phone, a video phone, an e-book reader, a desktop PC, a laptop PC, a netbook computer, a workstation, a server, It may include at least one of a PDA, a portable multimedia player (PMP), an MP3 player, a medical device, a camera, or a wearable device.
  • Wearable devices may be accessory (e.g.
  • HMDs head-mounted-devices
  • textiles or clothing integrated e.g. electronic clothing
  • At least one of a body attachment type e.g, a skin pad or a tattoo
  • a bio implantable circuit e.g.
  • the communication unit 210 is a component for performing communication with an external device.
  • communication connection between the communication unit 210 and the external device may include communication via a third device (eg, a repeater, a hub, an access point, a server, or a gateway).
  • a third device eg, a repeater, a hub, an access point, a server, or a gateway.
  • the wireless communication may be, for example, LTE, LTE Advance (LTE-A), code division multiple access (CDMA), wideband CDMA (WCDMA), universal mobile telecommunications system (UMTS), wireless broadband (WiBro), or global network (GSM).
  • LTE Long Term Evolution
  • LTE-A LTE Advance
  • CDMA code division multiple access
  • WCDMA wideband CDMA
  • UMTS universal mobile telecommunications system
  • WiBro wireless broadband
  • GSM global network
  • the wireless communication may include, for example, wireless fidelity (WiFi), Bluetooth, Bluetooth low power (BLE), Zigbee, near field communication (NFC), magnetic secure transmission, and radio. It may include at least one of a frequency (RF) or a body area network (BAN).
  • RF frequency
  • BAN body area network
  • Wired communication may include, for example, at least one of a universal serial bus (USB), a high definition multimedia interface (HDMI), a standard standard232 (RS-232), a power line communication, a plain old telephone service (POTS), and the like. have.
  • USB universal serial bus
  • HDMI high definition multimedia interface
  • RS-232 standard standard232
  • POTS plain old telephone service
  • the network in which wireless or wired communication is performed may include at least one of a telecommunication network, for example, a computer network (eg, LAN or WAN), the Internet, or a telephone network.
  • a telecommunication network for example, a computer network (eg, LAN or WAN), the Internet, or a telephone network.
  • the memory 220 may store, for example, commands or data related to at least one other element of the electronic device 200.
  • the memory 220 may store software and / or a program.
  • the program may include, for example, a kernel, middleware, an application programming interface (API) and / or an application program (or “application”), and the like. At least a portion of the kernel, middleware or API may be referred to as an operating system.
  • the kernel may, for example, control or manage system resources used to execute actions or functions implemented in other programs.
  • the kernel may provide an interface for controlling or managing system resources by accessing individual components of the electronic device 200 from middleware, APIs, or application programs.
  • the middleware may act as an intermediary to allow APIs or application programs to communicate with the kernel to exchange data. Also, the middleware may process one or more work requests received from an application program according to priority. For example, the middleware may assign a priority to use system resources of the electronic device 200 among application programs, and process the one or more work requests.
  • An API is an interface for an application to control functions provided by a kernel or middleware. For example, an API includes at least one interface or function (eg, a command) for file control, window control, image processing, or character control. can do.
  • the memory 220 may include various modules for generating a layer according to the present disclosure.
  • the memory 220 may include a layer parameter generation module for generating a layer parameter, a layer function generation module for generating a layer function, a layer structure change module for changing a layer structure, and an output of the layer generation module.
  • Various modules such as a stochastic ensemble generation module for controlling to change according to a specific probability distribution value, may be included.
  • the various modules described above may be controlled by a processor to generate layer parameters, layer functions, layer structures, and the like.
  • the processor 230 may include one or more of a central processing unit, an application processor, or a communication processor (CP).
  • a central processing unit may include one or more of a central processing unit, an application processor, or a communication processor (CP).
  • CP communication processor
  • the processor 230 may include an application specific integrated circuit (ASIC), an embedded processor, a microprocessor, hardware control logic, a hardware finite state machine (FSM), a digital signal processor, DSP). Although not shown, the processor 230 may further include an interface such as a bus for communicating with each component.
  • ASIC application specific integrated circuit
  • FSM hardware finite state machine
  • DSP digital signal processor
  • the processor 230 may control, for example, a plurality of hardware or software components connected to the processor 230 by running an operating system or an application program, and may perform various data processing and operations.
  • the processor 230 may be implemented with, for example, a system on chip (SoC).
  • SoC system on chip
  • the processor 230 may further include a graphic processing unit (GPU) and / or an image signal processor.
  • the processor 230 may load and process instructions or data received from at least one of other components (eg, nonvolatile memory) into the volatile memory, and store the result data in the nonvolatile memory.
  • the processor 230 may include a dedicated processor for artificial intelligence (AI), or may be manufactured as part of an existing general purpose processor (eg, CPU or application processor) or graphics dedicated processor (eg, GPU).
  • AI artificial intelligence
  • the dedicated processor for artificial intelligence is a dedicated processor specialized in probability calculation, and has higher parallelism performance than the conventional general-purpose processor, so that it is possible to process arithmetic tasks in the field of artificial intelligence such as machine learning.
  • the processor 230 may receive a reference value for obtaining a layer parameter for a layer of a corresponding position among a plurality of layers included in each of the plurality of artificial intelligence models through the communication unit 210 from an external server.
  • the reference value is generated by an external server and is a value for generating a layer parameter.
  • the reference value may be at least one of an average value or a variance value of the layer parameters for layers at corresponding positions of the ensemble model. .
  • the processor 230 may generate an ensemble model (or a plurality of artificial intelligence models) based on a reference value received from an external server.
  • the processor 230 may obtain output data about the input data.
  • the processor 230 is based on a reference value for obtaining a layer parameter for the layers of the corresponding position among the plurality of layers included in each of the plurality of artificial intelligence models included in the ensemble model, the plurality of artificial intelligences A layer having a corresponding position among the layers included in each model may be generated.
  • the reference value may be an average value or a variance value of the layer parameter for the layers of the corresponding positions.
  • the reference value can be determined variously according to various conditions. In an embodiment, when the dispersion value of the plurality of layer parameters is less than or equal to a preset value, the reference value may be determined based on an average value of the plurality of layer parameters. In another embodiment, the reference value may be determined based on the dispersion value of the plurality of layer parameters when the dispersion value of the plurality of layer parameters is greater than or equal to a preset value and the distribution of the plurality of layer parameters satisfies a predetermined condition. .
  • the reference value is based on the average value and the variance of the plurality of layer parameters when the variance of the plurality of layer parameters is greater than or equal to a preset value and the distribution of the plurality of layer parameters does not satisfy the preset condition. Can be determined.
  • the processor 230 may generate the layer parameter based on the reference value determined based on the average value of the plurality of layer parameters.
  • the generated layer parameter may be any output value substituted with a function having a Gaussian distribution as a reference value determined based on an average value of the plurality of layer parameters.
  • the generated layer parameter may be determined according to a reference value determined based on an average value of the plurality of layer parameters and a distribution of layer transformations.
  • the processor 230 may generate the layer parameter based on the reference value determined based on the variance values of the plurality of layer parameters.
  • the processor 230 may generate the layer parameter based on the reference value determined based on the average value and the variance value of the plurality of layer parameters.
  • the processor 230 may determine the stochastic layer functions (for example, y_j ⁇ N (f_mean (x_1 ... x_N), f_var (x_1)). ... X_N)) can be generated as a layer parameter.
  • the stochastic layer functions for example, y_j ⁇ N (f_mean (x_1 ... x_N), f_var (x_1)). ... X_N)
  • the processor 230 may generate layer parameters of all layers included in the ensemble model. That is, since the processor 230 generates the layer parameter based on only the reference value received from the server 100 and information on the method for generating the layer parameter, the processor 230 does not need to store all the layer parameters included in the ensemble model, thereby reducing the storage space and the amount of calculation. Can be.
  • the processor 230 may determine the number of artificial intelligence models generated based on the memory capacity of the electronic device. That is, the processor 230 may determine the space of the memory 220 and determine the number of artificial intelligence models required for the ensemble model according to the determined space of the memory 220. If the memory 220 usage is sufficient, the processor 230 may generate many artificial intelligence models to increase accuracy and stability. If the memory 220 does not have enough space, the processor 230 may adapt the artificial intelligence model to fit the memory 220 space. You can generate quick output by creating it.
  • the processor 230 may output a result value.
  • FIG. 3 is a block diagram illustrating in detail a configuration of an electronic device 200 according to an exemplary embodiment.
  • the electronic device 200 may further include an input unit 240 and an output unit 250 in addition to the communication unit 210, the memory 220, and the processor 230.
  • the present invention is not limited to the above-described configuration, and some configurations may be added or omitted as necessary.
  • the communication unit 210 performs communication with an external server.
  • the communication unit 210 may include various communication chips for performing wireless communication such as a Wi-Fi chip, a Bluetooth chip, a wireless communication chip, an NFC chip, and the like.
  • the WiFi chip, the Bluetooth chip, and the NFC chip communicate with each other by a LAN method, a WiFi method, a Bluetooth method, and an NFC method.
  • various connection information such as SSID and session key may be transmitted and received first, and then various communication information may be transmitted and received by using the same.
  • the wireless communication chip refers to a chip that performs communication according to various communication standards such as IEEE, Zigbee, 3rd Generation (3G), 3rd Generation Partnership Project (3GPP), Long Term Evolution (LTE), and the like.
  • the memory 220 may include at least one of an internal memory and an external memory.
  • the internal memory may be, for example, volatile memory (for example, DRAM, SRAM, or SDRAM), nonvolatile memory (for example, one time programmable ROM (OTPROM), PROM, EPROM, EEPROM, mask ROM, flash ROM, flash memory). Or a hard drive, or a solid state drive (SSD)
  • the external memory may be a flash drive, for example, compact flash, secure digital (SD), micro-SD, It may include a Mini-SD, an extreme digital (xD), a multi-media card (MMC), a memory stick, etc.
  • the external memory may be functionally or physically connected to the electronic device 200 through various interfaces.
  • the input unit 240 is a component for receiving a user command.
  • the input unit 240 may include a camera 241, a microphone 242, and a touch panel 243.
  • the camera 241 is a component for acquiring image data around the electronic device 200.
  • the camera 241 may capture a still image and a video.
  • the camera 241 may include one or more image sensors (eg, a front sensor or a rear sensor), a lens, an image signal processor (ISP), or a flash (eg, an LED or an xenon lamp, etc.).
  • the microphone 242 is a component for acquiring sound around the electronic device 200.
  • the microphone 242 may generate electrical voice information by receiving an external sound signal.
  • the microphone 242 may use various noise removing algorithms for removing noise generated in the process of receiving an external sound signal.
  • Image information or voice information input through the camera 241 or the microphone 242 may be input as an input value of an artificial intelligence model.
  • the touch panel 243 is a component that can receive various user inputs.
  • the touch panel 243 may receive data by user manipulation.
  • the touch panel 243 may be combined with a display, which will be described later.
  • the input unit 240 may be a variety of configurations for receiving a variety of data in addition to the camera 241, the microphone 242, the touch panel 243 described above.
  • the output unit 250 may include an audio output unit 251 or a display 252, and is configured to output various data.
  • the audio output unit 251 is a component for outputting various sounds with respect to input data.
  • the audio output unit 251 may output not only various audio data in which various processing tasks such as decoding, amplification, and noise filtering are performed by the audio processor (not shown), but also various notification sounds or voice messages.
  • the audio output unit 251 may be implemented as a speaker, but this is only an example and may be implemented as an output terminal capable of outputting audio data.
  • the display 252 is a component for outputting various images of input data.
  • the display 252 for providing various images may be implemented with various types of display panels.
  • display panels can include Liquid Crystal Display (LCD), Organic Light Emitting Diodes (OLED), Active-Matrix Organic Light-Emitting Diode (AM-OLED), Liquid Crystal on Silicon (LcoS), or Digital Light Processing (DLP). It can be implemented in various display technologies such as.
  • the display 252 may be coupled to at least one of a front region, a side region, and a rear region of the electronic device 100 in the form of a flexible display.
  • 4A and 4B are exemplary diagrams for describing a method of generating an artificial intelligence model according to a memory storage space, according to an embodiment of the present disclosure.
  • the electronic device 200 may change the number of artificial intelligence models to be used according to the storage space of the memory 220.
  • the electronic device 220 may determine a storage space of the memory 220 and determine the number of artificial intelligence models to ensemble according to the determined storage space. .
  • the electronic device 220 may generate a small number of artificial intelligence models according to the available storage space.
  • the electronic device 220 may generate a large number of artificial intelligence models according to the available storage space.
  • the electronic device 200 may remove some of the plurality of artificial intelligence models included in the ensemble model to produce an ensemble model that fits the memory space.
  • the electronic device 200 may use the ensemble model as it is.
  • the electronic device 200 may add not only a plurality of artificial intelligence models included in the existing ensemble model to improve performance, but also additional artificial intelligence based on the available memory space.
  • a model may be generated, and a plurality of artificial intelligence models and additional artificial intelligence models included in the existing ensemble model may be ensemble.
  • 5A to 5C are exemplary diagrams for describing a UI capable of adjusting an artificial intelligence model generated according to a user command, according to an embodiment of the present disclosure.
  • the electronic device 200 may adjust the type of the artificial intelligence model and the number of layers ensemble according to a user's selection.
  • the type of artificial intelligence model may be a type of artificial intelligence model for speech recognition, artificial intelligence model for image analysis, and the like.
  • the electronic device 200 may provide a UI that can ensemble an optimized artificial intelligence model to the user in consideration of the memory 220, the performance, and the like of the electronic device 200. . That is, as illustrated in FIG. 5B, the electronic device 200 may display a bar UI for manipulating the size of the memory to be used for the artificial intelligence model and the desired performance.
  • the shape of the bar UI is not limited to the example illustrated in FIG. 5B, and may be displayed in the form of a UI that can be set step by step as illustrated in FIG. 5C. That is, as shown in FIG. 5C, the user may select one of five steps (discontinuously) for the indicators such as memory and performance.
  • the electronic device 200 may display a UI for directly designating the number of layers required for the ensemble model and the type of artificial intelligence model to be used. .
  • the electronic device 200 may change an ensemble model setting environment by changing a setting inside the specific application.
  • the electronic device 200 may change the ensemble model setting environment in the setting environment (eg, OS setting environment) of the electronic device 200 itself.
  • 6A to 6E are exemplary diagrams for describing an ensemble method of layers according to an embodiment of the present disclosure.
  • the electronic device 200 may not only generate a layer parameter through a reference value, but also may generate a layer structure. That is, although the electronic device 200 receives the layer structure from the server 100 and stores the layer structure in the memory 220, the electronic device 200 may change the layer structure as shown in FIGS. 6A to 6E as necessary. 6A to 6E have described the case where three artificial intelligence models are ensemble, but three or more models may be ensemble or two models may be ensemble.
  • 6A illustrates a layer structure according to a general ensemble model.
  • the ensemble model according to FIG. 6A may obtain an output value from each artificial intelligence model and ensemble the obtained output value.
  • 6B illustrates an ensemble structure according to a stepwise ensemble model.
  • the ensemble model according to FIG. 6B may not transmit an output value of each ReLU layer to a next layer, but may transfer an ensemble value of each ReLU layer to a next layer. In this case, there is an effect of saving runtime memory.
  • 6C shows an ensemble structure according to a Stepwise Partial Ensemble model. Similar to the Stepwise Ensemble model, but if it is not appropriate to ensemble all the layers as needed, an ensemble model such as FIG. 6C may be used.
  • 6D illustrates an ensemble structure according to a Cascade Partial Ensemble model.
  • Cascade ensemble models can save memory as the number of artificial intelligence models decreases over time. If there are a plurality of artificial intelligence models predicted to have similar results, the ensemble model as shown in FIG. 6D may be used.
  • 6E illustrates an ensemble structure according to a stochastic partial ensemble model. When using the ensemble model according to FIG. 6E, it may be easy to derive a stable result.
  • the electronic device 200 may select and apply various layer structures according to the generated layer parameter, the performance of the current electronic device 200, and the type and purpose of the artificial intelligence model.
  • FIG. 7 is a block diagram schematically illustrating a configuration of a server according to an embodiment of the present disclosure.
  • the server 100 may include a memory 110, a communication unit 120, and a processor 130.
  • various configurations may be added in addition to the above-described configuration.
  • the memory 110 is a component for storing a plurality of artificial intelligence models.
  • the operation and configuration of the memory 110 are similar to the operation and configuration of the memory 220 of the electronic device 200 described above.
  • the memory 110 may store various artificial intelligence models.
  • the communication unit 120 is a component for communicating with the electronic device 200.
  • the operation and configuration of the communication unit 120 are similar to the operation and configuration of the communication unit 210 of the electronic device 200 described above.
  • the processor 130 is a component for controlling the operation of the server 100.
  • the operation and configuration of the processor 130 may include the operation and configuration of the processor 230 of the electronic device 200 described above.
  • the processor 130 may include a data learner and a data recognizer.
  • the data learner may train the data recognition model to have a criterion according to a specific purpose.
  • the specific purpose may include an object related to voice recognition, translation, image recognition, situation recognition, and the like.
  • the data learner may generate a data recognition model having a criterion by applying the training data to the data recognition model to determine an operation according to the above-described purpose.
  • the data recognizing unit may determine a situation for a specific purpose based on the recognized data.
  • the data recognizer may determine a situation from the predetermined recognition data by using the learned data recognition model.
  • the data recognizing unit may acquire predetermined recognition data according to a predetermined criterion and apply the acquired recognition data as an input value to the data recognition model, thereby determining (or estimating) a predetermined situation based on the predetermined recognition data. (estimate).
  • the result value obtained by applying the acquired recognition data as an input value to the data recognition model may be used to update the data recognition model.
  • At least a part of the data learner and at least a part of the data recognizer may be implemented as a software module or manufactured in the form of at least one hardware chip and mounted on the electronic device.
  • at least one of the data learner and the data recognizer may be manufactured in the form of a dedicated hardware chip for artificial intelligence (AI), or may be a conventional general purpose processor (eg, a CPU or an application processor) or graphics. It may be manufactured as part of a dedicated processor (eg, GPU) and mounted on the above-described various electronic devices.
  • a dedicated hardware chip for artificial intelligence is a dedicated processor specialized for probability calculation, and has higher parallelism performance than a conventional general-purpose processor, so that a computational task in artificial intelligence such as machine learning can be processed quickly.
  • the software modules may be computer-readable non-transitory computer readable media. Can be stored in.
  • the software module may be provided by an operating system (OS) or by a predetermined application.
  • OS operating system
  • OS operating system
  • some of the software modules may be provided by an operating system (OS), and others may be provided by a predetermined application.
  • the data learning unit and the data recognizing unit may be mounted on one server 100 or may be mounted on separate servers, respectively.
  • one of the data learner and the data recognizer may be included in the electronic device 200, and the other may be included in an external server.
  • the data learning unit and the data recognizing unit may provide model information constructed by the data learning unit to the data recognizing unit via wired or wireless, or the data input to the data recognizing unit may be provided to the data learning unit as additional learning data.
  • the data learner may further include a data acquirer, a preprocessor, a training data selector, a model learner, and a model evaluator.
  • the data acquisition unit is a component for acquiring learning data according to a specific purpose.
  • the preprocessor is a component for preprocessing the data acquired by the acquirer in a predefined format.
  • the training data selection unit is configured to select data necessary for learning from the preprocessed data.
  • the model learning unit is a component for training the data recognition model using the training data.
  • the model evaluation unit is a component for improving the results of the data recognition model.
  • At least one of the data acquisition unit, the preprocessor, the training data selector, the model learner, and the model evaluator may be implemented as a software module or manufactured in the form of at least one hardware chip and mounted on the electronic device.
  • at least one of the data acquirer, the preprocessor, the training data selector, the model learner, and the model evaluator may be manufactured in the form of a dedicated hardware chip for artificial intelligence (AI), or It may be manufactured as a part of a general purpose processor (eg, a CPU or an application processor) or a graphics dedicated processor (eg, a GPU) and mounted on the aforementioned various electronic devices.
  • AI artificial intelligence
  • the data recognizer may further include a data acquirer, a preprocessor, a recognition data selector, a recognition result provider, and a model updater.
  • the data obtaining unit is a component for obtaining recognition data.
  • the preprocessor is a component for preprocessing the data acquired by the acquirer in a predefined format.
  • the recognition data selection unit is a component for selecting data required for recognition among preprocessed data.
  • the recognition result providing unit may be configured to receive the selected data from the recognition data.
  • the model updating unit is a component for updating the data recognition model based on the evaluation of the recognition result provided from the recognition result providing unit.
  • At least one of the data acquisition unit, the preprocessor, the recognition data selection unit, the recognition result providing unit, and the model updating unit may be implemented as a software module or manufactured in the form of at least one hardware chip and mounted on the electronic device.
  • at least one of the data acquirer, the preprocessor, the training data selector, the model learner, and the model evaluator may be manufactured in the form of a dedicated hardware chip for artificial intelligence (AI), or It may be manufactured as a part of a general purpose processor (eg, a CPU or an application processor) or a graphics dedicated processor (eg, a GPU) and mounted on the aforementioned various electronic devices.
  • AI artificial intelligence
  • the data recognition model may be either a single model or an ensemble model.
  • the data recognition model may be constructed in consideration of the application field of the recognition model, the purpose of learning, or the computer performance of the device.
  • the data recognition model may be, for example, a model based on a neural network.
  • the data recognition model can be designed to simulate the human brain structure on a computer.
  • the data recognition model may include a plurality of weighted network nodes that simulate neurons in a human neural network.
  • the plurality of network nodes may form a connection relationship so that neurons simulate synaptic activity through which signals are sent and received through synapses.
  • the data recognition model may include, for example, a neural network model or a deep learning model developed from the neural network model. In the deep learning model, a plurality of network nodes may be located at different depths (or layers) and exchange data according to a convolutional connection relationship.
  • a model such as a deep neural network (DNN), a recurrent neural network (RNN), and a bidirectional recurrent deep neural network (BRDNN) may be used as the data recognition model, but is not limited thereto.
  • DNN deep neural network
  • RNN recurrent neural network
  • BTDNN bidirectional recurrent deep neural network
  • the processor 130 may obtain a reference value for the electronic device 200 to generate a layer based on the artificial intelligence model learned by the data learner and the data recognizer.
  • the reference value may be an average value and a variance value of the layer parameter for the layers of the corresponding positions.
  • the reference value can be determined variously according to various conditions. In an embodiment, when the dispersion value of the plurality of layer parameters is less than or equal to a preset value, the reference value may be determined based on an average value of the plurality of layer parameters. In another embodiment, the reference value may be determined based on the dispersion value of the plurality of layer parameters when the dispersion value of the plurality of layer parameters is greater than or equal to a preset value and the distribution of the plurality of layer parameters satisfies a predetermined condition. .
  • the reference value is based on the average value and the variance of the plurality of layer parameters when the variance of the plurality of layer parameters is greater than or equal to a preset value and the distribution of the plurality of layer parameters does not satisfy the preset condition. Can be determined.
  • the processor 130 may obtain a reference value based on the layer parameter included in the learned model.
  • the processor 130 may obtain a reference value based on layer parameters of the same path among layers included in the plurality of artificial intelligence models.
  • the ensemble model includes three artificial intelligence models (first artificial intelligence model to third artificial intelligence model), each artificial intelligence model having ten layer parameters (first layer parameter to tenth layer parameter). It may be assumed that the case includes.
  • the n th layer parameter of each artificial intelligence model may be a layer parameter having the same path.
  • the processor 130 may obtain a first reference value based on the first layer parameter of the first artificial intelligence model, the first layer parameter of the second artificial intelligence model, and the first layer parameter of the third artificial intelligence model. .
  • the processor 130 may obtain a second reference value based on the second layer parameter of the first artificial intelligence model, the second layer parameter of the second artificial intelligence model, and the second layer parameter of the third artificial intelligence model. .
  • the processor 130 may obtain the third reference value to the tenth reference value.
  • a process of processing one reference value will be described. However, the technical idea of the present disclosure may be applied even when a plurality of reference values exist.
  • the reference value may be obtained based on an average value or a variance value of the layer parameter.
  • the reference value may be determined through various methods.
  • the reference value may be obtained using a Polygonal Chain (see Equation 1) or a Bezier Curve (see Equation 2) with respect to the layer parameters w1 and w2.
  • the reference value may be determined by the following formula.
  • the reference value is limited to a case where the reference value is obtained based on the average value or the variance value of the layer parameter.
  • the reference value may be determined through the above-described various methods.
  • the processor 130 may determine the variance value for each layer parameter having the same path. In this case, when the variance value is lower than the preset value, the reference value may be obtained based on the average value of the layer parameter. That is, since the variance value is low, it means that each layer parameter is not significantly different from the average value, and thus the processor 130 may obtain the reference value as the average value.
  • the electronic device 200 may receive a reference value from the server 100 and generate a layer parameter based on the reference value. That is, when the variance value is lower than the preset value, the electronic device 200 receives and stores only the reference value instead of receiving and storing all the layer parameters from the server 100 and generates a plurality of layer parameters from the received reference value. can do.
  • the processor 130 may determine whether the corresponding layer parameter satisfies the preset condition.
  • the preset condition may be a condition related to an impact value of each layer parameter.
  • the processor 130 may generate a probabilistic function that generates a layer parameter using a coefficient vector according to the impact value. That is, the processor 130 may obtain a probabilistic output value based on the output value of the layer with respect to the layer parameter value.
  • the impact value means a specific value for the layer parameter that affects the result value.
  • the impact value may be defined as follows.
  • the impact value is not limited to the above-described Equation 4, and of course, the impact value may be applied to various values that can distinguish the layer parameter affecting the result value.
  • the processor 130 may transmit a layer parameter having an impact value greater than or equal to the preset value to the electronic device 200. That is, since the layer parameter having an impact value greater than or equal to a preset value is a parameter that may affect the result value, the electronic device 200 does not generate the layer parameter from the reference value, but receives the original layer parameter from the server 100. can do.
  • the processor 130 deletes the layer parameter having an impact value less than or equal to the preset value and replaces the layer parameter with a stochastic layer function. That is, since a layer parameter having an impact value less than or equal to a preset value does not significantly affect a result value, the electronic device 200 receives and stores a reference value and a stochastic layer function from the server 100, and receives the received reference value and Layer parameters may be generated from a stochastic layer function.
  • the processor 130 obtains a reference value and whether the preset condition is satisfied (for example, an impact value) from the plurality of layer parameters, and the electronic device 100 may generate a layer using only the reference value and the preset condition.
  • the memory of the electronic device can be saved.
  • FIG. 8 is a flowchart illustrating an operation of an electronic device according to an embodiment of the present disclosure.
  • the electronic device 200 may receive a user command for using a plurality of artificial intelligence models (S810).
  • the user command for using the artificial intelligence model may be an application execution command using the artificial intelligence model.
  • the user command for using the artificial intelligence model may be a user command for selecting input data input to the artificial intelligence model.
  • the electronic device 200 may generate a layer parameter for a layer corresponding to the reference value among the layers included in each of the plurality of artificial intelligence models based on the reference value received from the server 100 (S820). ).
  • the plurality of artificial intelligence models are first artificial intelligence models to mth artificial intelligence models, and each model is composed of first to nth layers.
  • the electronic device 200 generates m first layer parameters based on the first reference values of the first layers of each of the first artificial intelligence model to the mth artificial intelligence model, and m second layer parameters in the same manner. To n-th layer parameters.
  • the electronic device 200 may input input data to the generated artificial intelligence model to acquire output data with respect to the input data (S830).
  • the electronic device 100 may generate an artificial intelligence model according to the layer structure and the ensemble method.
  • the structure of the layer may be received from the server 100 and stored.
  • the ensemble method may also be received and stored from the server 100, or an appropriate method may be selected and used according to the situation of the electronic device 200.
  • FIG. 9 is a flowchart illustrating an operation of a server according to an embodiment of the present disclosure.
  • the server 100 may obtain a plurality of layer parameters for layers of corresponding positions among the plurality of layers included in each of the plurality of artificial intelligence models (S910).
  • the plurality of artificial intelligence models are first artificial intelligence models to mth artificial intelligence models, and each model is composed of first to nth layers.
  • the server 100 may determine the first layer parameter for the first layer of the first artificial intelligence model, the first layer parameter for the first layer of the second artificial intelligence model, and the first layer for the m th artificial intelligence model.
  • the first layer parameter may be obtained.
  • the server 100 may obtain a reference value for generating a layer parameter for a new layer at a corresponding position based on the obtained layer parameter (S920). For example, the server 100 may obtain a reference value based on the obtained m layer parameters. In this case, the reference value may be an average value and a variance value of m parameters.
  • the server 100 may transmit the obtained reference value to the electronic device in operation S930. However, as described above, the server 100 may acquire the impact value in addition to the reference value and transmit the impact value to the electronic device 200.
  • FIG. 10 is a system diagram illustrating an operation of a server and an electronic device according to an embodiment of the present disclosure.
  • the server 100 may obtain a plurality of layer parameters for layers of corresponding positions among the plurality of layers included in each of the plurality of artificial intelligence models (S1010).
  • the server 100 may obtain a reference value for generating a layer parameter for a new layer at a corresponding position based on the obtained layer parameter (S1020).
  • the server 100 may transmit the obtained reference value to the electronic device 200 (S1030).
  • the electronic device 200 may receive a user command for using the plurality of artificial intelligence models (S1040).
  • the electronic device 200 may generate a layer parameter for a layer corresponding to the reference value among the layers included in each of the plurality of artificial intelligence models based on the reference value received from the server 100 (S1050). ).
  • the electronic device 200 may input the input data to the artificial intelligence model generated based on the layer parameter to obtain output data for the input data (S1060).
  • At least a portion of an apparatus (eg, modules or functions thereof) or method (eg, operations) may be non-transitory computer readable media in the form of a program module. It can be implemented as a command stored in).
  • a processor for example, the processor 130
  • the processor may perform a function corresponding to the instruction.
  • the program may be stored in a computer-readable non-transitory recording medium and read and executed by a computer, thereby implementing an embodiment of the present disclosure.
  • the non-transitory readable recording medium refers to a medium that stores data semi-permanently and can be read by a device, and includes a register, a cache, a buffer, and the like, and includes a signal and a current. It does not include transmission media such as
  • the above-described programs may be stored and provided in a non-transitory readable recording medium such as a CD, DVD, hard disk, Blu-ray disk, USB, internal memory (eg, memory 150), memory card, ROM, or RAM. Can be.
  • a non-transitory readable recording medium such as a CD, DVD, hard disk, Blu-ray disk, USB, internal memory (eg, memory 150), memory card, ROM, or RAM.
  • a non-transitory readable recording medium such as a CD, DVD, hard disk, Blu-ray disk, USB, internal memory (eg, memory 150), memory card, ROM, or RAM.
  • the method according to the disclosed embodiments may be provided as a computer program product.
  • the computer program product may include a S / W program, a computer readable storage medium on which the S / W program is stored, or a product traded between a seller and a buyer.
  • a computer program product may be an electronic device or a manufacturer of an electronic device or a product (eg, a downloadable app) in the form of a S / W program distributed electronically through an electronic market (eg, Google Play Store, App Store). It may include.
  • an electronic market eg, Google Play Store, App Store.
  • the storage medium may be a server of a manufacturer or an electronic market, or a storage medium of a relay server.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Neurology (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Abstract

인공 지능 모델을 생성하기 위한 전자 장치 및 그의 제어 방법이 개시된다.본 개시에 따른 전자 장치의 제어 방법은, 복수의 인공 지능 모델을 이용하기 위한 사용자 명령이 입력되면, 복수의 인공 지능 모델을 생성하는 단계, 생성된 인공 지능 모델에 입력 데이터를 입력하여 입력 데이터에 대한 출력 데이터를 획득하는 단계를 포함하며, 생성하는 단계는, 복수의 인공 지능 모델 각각에 포함된 복수의 레이어 중 대응되는 위치의 레이어들에 대한 레이어 파라미터를 획득하기 위한 기준값을 바탕으로, 복수의 인공 지능 모델 각각에 포함된 레이어 중 대응되는 위치의 레이어들을 생성한다.

Description

전자 장치 및 그의 제어 방법
본 개시는 전자 장치 및 그의 제어 방법에 관한 것으로, 보다 상세하게는 사용자 단말과 같은 전자 장치에서 인공 지능 모델을 효율적으로 사용하기 위한 방법에 관한 것이다.
또한, 본 개시는 기계학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 인공 지능(Artificial Intelligence, AI) 시스템 및 그 응용에 관한 것이다.
인공 지능(Artificial Intelligence, AI) 시스템은 인간 수준의 지능을 구현하는 컴퓨터 시스템이며, 기존 규칙 기반 스마트 시스템과 달리 기계가 스스로 학습하고 판단하며 똑똑해지는 시스템이다. 인공 지능 시스템은 사용할수록 인식률이 향상되고 사용자 취향을 보다 정확하게 이해할 수 있게 되어, 기존 규칙 기반 스마트 시스템은 점차 딥러닝 기반 인공 지능 시스템으로 대체되고 있다.
인공 지능 기술은 기계학습(딥러닝) 및 기계 학습을 활용한 요소 기술들로 구성된다.
기계 학습은 입력 데이터들의 특징을 스스로 분류/학습하는 알고리즘 기술이며, 요소 기술은 딥러닝 등의 기계학습 알고리즘을 활용하는 기술로서, 언어적 이해, 시각적 이해, 추론/예측, 지식 표현, 동작 제어 등의 기술 분야로 구성된다.
인공 지능 기술이 응용되는 다양한 분야는 다음과 같다. 언어적 이해는 인간의 언어/문자를 인식하고 응용/처리하는 기술로서, 자연어 처리, 기계 번역, 대화 시스템, 질의 응답, 음성 인식/합성 등을 포함한다. 시각적 이해는 사물을 인간의 시각처럼 인식하여 처리하는 기술로서, 객체 인식, 객체 추적, 영상 검색, 사람 인식, 장면 이해, 공간 이해, 영상 개선 등을 포함한다. 추론 예측은 정보를 판단하여 논리적으로 추론하고 예측하는 기술로서, 지식/확률 기반 추론, 최적화 예측, 선호 기반 계획, 추천 등을 포함한다. 지식 표현은 인간의 경험 정보를 지식데이터로 자동화 처리하는 기술로서, 지식 구축(데이터 생성/분류), 지식 관리(데이터 활용) 등을 포함한다. 동작 제어는 차량의 자율 주행, 로봇의 움직임을 제어하는 기술로서, 움직임 제어(항법, 충돌, 주행), 조작 제어(행동 제어) 등을 포함한다.
한편, 종래의 인공 지능 기술은 복수의 인공 지능 모델을 결합하여 사용되어 많은 학습 시간 및 큰 저장 공간을 필요로 하였다. 따라서, 종래의 인공 지능 기술은 큰 저장 공간 및 높은 연산 수행이 가능한 외부 서버에서 이루어지는 경우가 많았으며, 스마트폰과 같은 사용자 단말 장치에서 효율적으로 인공 지능 모델을 이용하기 위한 방법에 대한 논의가 필요하게 되었다.
본 개시는 상술한 문제점을 해결하기 위한 것으로, 한정된 저장 공간에서 인공 지능 모델을 사용하기 위한 방법에 관한 것이다
상기 목적을 달성하기 위한 인공 지능 모델을 생성하기 위한 전자 장치의 제어 방법은, 복수의 인공 지능 모델을 이용하기 위한 사용자 명령이 입력되면, 상기 복수의 인공 지능 모델을 생성하는 단계, 상기 생성된 인공 지능 모델에 입력 데이터를 입력하여 상기 입력 데이터에 대한 출력 데이터를 획득하는 단계를 포함하며, 상기 생성하는 단계는, 상기 복수의 인공 지능 모델 각각에 포함된 복수의 레이어 중 대응되는 위치의 레이어들에 대한 레이어 파라미터를 획득하기 위한 기준값을 바탕으로, 상기 복수의 인공 지능 모델 각각에 포함된 레이어 중 상기 대응되는 위치의 레이어들을 생성한다.
이때, 상기 기준값은, 상기 대응되는 위치의 레이어들에 대한 레이어 파라미터의 평균값 및 분산값을 바탕으로 결정될 수 있다.
이때, 상기 복수의 레이어 파라미터의 분산값이 기 설정된 값 이하인 경우, 상기 기준값은 상기 복수의 레이어 파라미터의 평균값을 바탕으로 결정될 수 있다.
이때, 상기 복수의 레이어 파라미터의 분산값이 기 설정된 값 이상인 경우, 상기 복수의 레이어 파라미터간의 분포를 판단하는 단계, 상기 분포가 기 설정된 조건을 만족하면, 상기 복수의 레이어 파라미터의 분산값을 바탕으로 기준값을 획득하는 단계를 더 포함할 수 있다.
이때, 상기 분포가 상기 기 설정된 조건을 만족하지 않는 경우, 상기 복수의 레이어 파라미터의 평균값 및 상기 복수의 레이어 파라미터의 분산값을 바탕으로 기준값을 획득하는 단계를 더 포함할 수 있다.
이때, 상기 생성하는 단계는, 상기 전자 장치의 메모리 용량을 바탕으로 생성되는 인공 지능 모델의 개수를 판단하는 단계를 더 포함할 수 있다.
이때, 상기 제어 방법은, 상기 생성된 인공 지능 모델에 입력값이 입력되면, 상기 복수의 레이어를 앙상블(Ensemble)하여 결과값을 출력하는 단계를 더 포함할 수 있다.
한편, 상술한 목적을 달성하기 위한 본 개시의 또 다른 실시예에 따른 인공 지능 모델을 생성하기 위한 전자 장치는, 통신부, 메모리 및 외부 서버로부터, 상기 통신부를 통해 복수의 인공 지능 모델 각각에 포함된 복수의 레이어 중 대응되는 위치의 레이어들에 대한 레이어 파라미터를 획득하기 위한 기준값을 수신하는 프로세서를 포함하고, 상기 프로세서는, 복수의 인공 지능 모델을 이용하기 위한 사용자 명령이 입력되면, 상기 복수의 인공 지능 모델을 생성하고, 상기 생성된 인공 지능 모델에 입력 데이터를 입력하여 상기 입력 데이터에 대한 출력 데이터를 획득하고,상기 복수의 인공 지능 모델 각각에 포함된 복수의 레이어 중 대응되는 위치의 레이어들에 대한 레이어 파라미터를 획득하기 위한 기준값을 바탕으로, 상기 복수의 인공 지능 모델 각각에 포함된 레이어 중 상기 대응되는 위치의 레이어들을 생성한다.
이때, 상기 기준값은, 상기 대응되는 위치의 레이어들에 대한 레이어 파라미터의 평균값 및 분산값을 바탕으로 결정될 수 있다.
이때, 상기 프로세서는, 상기 복수의 레이어 파라미터의 분산값이 기 설정된 값 이하인 경우, 상기 기준값은 상기 복수의 레이어 파라미터의 평균값을 바탕으로 결정할 수 있다.
이때, 상기 프로세서는, 상기 복수의 레이어 파라미터의 분산값이 기 설정된 값 이상인 경우, 상기 복수의 레이어 파라미터간의 분포를 판단하고, 상기 분포가 기 설정된 조건을 만족하면, 상기 복수의 레이어 파라미터의 분산값을 바탕으로 기준값을 획득할 수 있다.
이때, 상기 프로세서는, 상기 분포가 상기 기 설정된 조건을 만족하지 않는 경우, 상기 복수의 레이어 파라미터의 평균값 및 상기 복수의 레이어 파라미터의 분산값을 바탕으로 기준값을 획득할 수 있다.
이때, 상기 프로세서는, 상기 메모리 용량을 바탕으로 생성되는 인공 지능 모델의 개수를 판단할 수 있다.
이때, 상기 프로세서는, 상기 생성된 인공 지능 모델에 입력값이 입력되면, 상기 복수의 레이어를 앙상블(Ensemble)하여 결과값을 출력할 수 있다.
한편, 상술한 목적을 달성하기 위한 본 개시의 또 다른 실시예에 따른 서버의 제어 방법은, 복수의 인공 지능 모델 각각에 포함된 복수의 레이어 중 대응되는 위치의 레이어들에 대한 복수의 레이어 파라미터를 획득하는 단계, 상기 획득된 복수의 레이어 파라미터를 바탕으로, 상기 대응되는 위치의 새로운 레이어에 대한 레이어 파라미터를 생성하기 위한 기준값을 획득하는 단계 및 상기 획득된 기준값을 사용자 단말로 전송하는 단계를 포함한다.
이때, 상기 기준값은, 상기 대응되는 위치의 레이어들에 대한 레이어 파라미터의 평균값 및 분산값을 바탕으로 결정될 수 있다.
이때, 상기 복수의 레이어 파라미터의 분산값이 기 설정된 값 이하인 경우, 상기 기준값은 상기 복수의 레이어 파라미터의 평균값을 바탕으로 결정될 수 있다.
이때, 상기 복수의 레이어 파라미터의 분산값이 기 설정된 값 이상인 경우, 상기 복수의 레이어 파라미터간의 분포를 판단하는 단계, 상기 분포가 기 설정된 조건을 만족하면, 상기 복수의 레이어 파라미터의 분산값을 바탕으로 기준값을 획득하는 단계를 포함할 수 있다.
이때, 상기 분포가 상기 기 설정된 조건을 만족하지 않는 경우, 상기 복수의 레이어 파라미터의 평균값 및 상기 복수의 레이어 파라미터의 분산값을 바탕으로 기준값을 획득하는 단계를 포함할 수 있다.
상기와 같은 본 개시의 다양한 실시예에 따라, 전자 장치는 한정된 저장 공간에서도 인공 지능 모델을 효율적으로 사용할 수 있다.
도 1a 내지 도 1c는 본 개시의 일 실시예에 따른 종래 서버에서 동작하는 인공 지능 모델의 결과 출력 방법을 설명하기 위한 예시도이다.
도 2는 본 개시의 일 실시예에 따른 전자 장치의 구성을 간략히 도시한 블록도이다.
도 3은 본 개시의 일 실시예에 따른 전자 장치(200)의 구성을 상세히 도시한 블록도이다.
도 4a 및 도 4b는 본 개시의 일 실시예에 따른, 메모리 저장공간에 따른 인공 지능 모델 생성 방법을 설명하기 위한 예시도이다.
도 5a 내지 도 5c는 본 개시의 일 실시예에 따른, 사용자 명령에 따라 생성되는 인공 지능 모델을 조절할 수 있는 UI를 설명하기 위한 예시도이다.
도 6a 내지 도 6e는 본 개시의 일 실시예에 따른 레이어의 앙상블 방법을 설명하기 위한 예시도이다.
도 7은 본 개시의 일 실시예에 따른 서버의 구성을 간략히 도시한 블록도이다.
도 8은 본 개시의 일 실시예에 따른 전자 장치의 동작으로 설명하기 위한 흐름도이다.
도 9는 본 개시의 일 실시예에 따른 서버의 동작을 설명하기 위한 흐름도이다.
도 10은 본 개시의 일 실시예에 따른 서버 및 전자 장치의 동작을 설명하기 위한 시스템도이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 개시에 대해 구체적으로 설명하기로 한다.
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 개시의 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 발명된 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 실시 예들을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시에서 "모듈" 혹은 "부"는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈" 혹은 복수의 "부"는 특정한 하드웨어로 구현될 필요가 있는 "모듈" 혹은 "부"를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서(미도시)로 구현될 수 있다.
본 개시에서 앙상블 모델(Ensemble Model)이라 함은 적어도 두개 이상의 인공 지능 모델의 출력을 연산하여 이용하는 모델을 의미할 수 있다. 이때, 복수개의 모델을 결합하여 이용하는 것을 앙상블이라 할 수 있다. 앙상블 모델을 구성하는 각각의 인공 지능 모델을 개별 모델 또는 인공 지능 모델이라고 할 수 있다 앙상블 모델은 각각의 인공 지능 모델의 출력값을 Averaging, Weight Sum, Boosting 방식 등을 적용하여 최종 출력값을 출력할 수 있다.
본 개시에서 레이어(Layer)라 함은 다층 신경망 구조에서 하나의 층을 의미할 수 있다. 즉, 복수개의 앙상블 모델에서 하나의 층을 레이어라 정의할 수 있다. 일반적으로 레이어는 입력 벡터 x와 출력 벡터 y에 대하여 y=f(Wx+b)의 형태로 정의 될 수 있다. 이때, W 및 b는 레이어 파라미터라고 할 수 있다.
본 개시에서 앙상블 레이어(Ensemble Layer)라 함은 복수의 인공 지능 모델에서 둘 이상의 레이어 출력을 합하여 이용하는 경우, 출력이 합하여 지는 레이어를 의미할 수 있다.
본 개시에서, 레이어 구조(Layer Scheme 또는 Neural Network Scheme)라 함은 앙상블 모델 또는 앙상블 모델에서 개별 모델의 개수, 레이어간의 연결성 등, 인공 지능 모델의 구조를 의미할 수 있다.
본 개시에서 레이어 함수(Layer Function)라 함은, 상기 레이어의 정의(y=f(Wx+b))를 일반화 하여 임의의 함수 g로 표현한 것을 의미할 수 있다. 예를 들어, 레이어 함수는 y = g(x) 혹은 y_j= g(x1, x2, ... x_N)와 같이 표현될 수 있다. 이때, 레이어 함수 g는 입력 x1, ..., x_N의 선형 함수로 표현되나, 다른 형태로 표현도 가능함은 물론이다.
본 개시에서 확률적 레이어 함수(Stochastic Layer Function)이라 함은, 레이어 함수의 출력이 확률적으로 결정되는 함수를 의미할 수 있다. 예를 들어, 확률적 레이어 함수는 y_j~N(f_mean(x_1...x_N), f_var(x_1...X_N)와 같이 x_1, ... x_N에 대해서 출력 y_j의 확률 분포로 이루어 질 수 있다.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1a 내지 도 1c는 본 개시의 일 실시예에 따른 종래 서버에서 동작하는 인공 지능 모델의 결과 출력 방법을 설명하기 위한 예시도이다.
도 1a에 도시된 바와 같이, 종래 서버는 하나의 인공 지능 모델에 데이터를 입력하여, 결과값을 출력하는 방법이 존재할 수 있다. 구체적으로, 종래 서버는 하나의 인공 지능 모델을 학습시키고, 학습된 모델에 데이터를 입력하여 결과 값을 출력할 수 있다. 그러나, 종래 서버가 하나의 단일 모델을 사용하는 경우, 작은 노이즈에도 쉽게 인식 결과가 변할 수 있어, 결과값에 대한 정확도 및 안정성이 낮은 문제점이 존재하였다.
인공 지능 모델의 정확도 및 안정성을 향상시키기 위해서는, 종래 서버는 도 1b에 도시된 바와 같이, 복수개의 모델을 앙상블하여 결과값을 출력할 수 있다. 구체적으로, 앙상블 모델은 별도로 학습된 복수의 모델에 데이터를 입력하여 복수개의 결과 값을 출력하고, 출력된 복수개의 결과값을 바탕으로 최종 결과를 출력할 수 있다. 이때, 최종 결과물은 복수개의 결과값에 대하여 Averaging, Weight Sum, Boosting 방식 등을 적용하여 출력될 수 있다.
예를 들어, 앙상블 모델은 각각의 인공 지능 모델을 통해 출력된 결과값들의 평균값을 최종 출력값으로 결정할 수 있다.
또는, 앙상블 모델은 각각의 인공지능 모델을 통해 출력된 결과값 중 특정 출력값에 특정 가중치 값을 곱하여 합산한 값을 최종 출력값으로 출력할 수 있다.
또는, 각각의 인공 지능 모델을 통해 출력된 각각의 결과값이 복수의 파라미터를 포함하고 있는 경우, 앙상블 모델은 복수의 파라미터 각각에 대하여 최종 출력 파라미터를 결정할 수 있다. 예를 들어, 앙상블 모델이 3개의 인공지능 모델을 포함하고, 3개의 인공 지능 모델을 통해 출력된 결과값이 5개의 파라미터를 포함하는 경우를 가정할 수 있다. 이때, 제1 모델은 제1 파라미터 내지 제5 파라미터를 포함하는 제1 결과값을 출력하고, 제2 모델은 제1 파라미터 내지 제5 파라미터를 포함하는 제2 결과값을 출력하고, 제3 모델은 제1 파라미터 내지 제5 파라미터를 포함하는 제3 결과값을 출력할 수 있다. 이때, 앙상블 모델은 제1 모델의 제1 파라미터, 제2 모델의 제1 파라미터 및 제3 모델의 제1 파라미터를 바탕으로 최종 출력값의 제1 파라미터를 획득하고, 제1 모델의 제2 파라미터, 제2 모델의 제2 파라미터 및 제3 모델의 제2 파라미터를 바탕으로 최종 출력값의 제2 파라미터를 획득할 수 있다. 같은 방법으로, 최종 출력값의 제3 파라미터 내지 제5 파라미터가 결정되면, 앙상블 모델은 결정된 제1 파라미터 내지 제5 파라미터를 최종 출력값으로 획득할 수 있다.
앙상블 모델을 사용하는 경우, 하나의 단일 모델을 사용하는 경우보다 나은 안정성 및 높은 정확도를 가질 수 있으며, 훈련 과정의 Overfitting 문제가 적으며, 외부의 Adversarial Attack등에 대하여도 강한 안정성을 가질 수 있다.
그러나, 앙상블 모델은, 앙상블 되는 모델의 개수가 증가할수록, 모델에 사용되는 레이어 파라미터의 개수 및 연산량이 증가할 수 있다. 또한, 복수의 모델이 별도로 학습되었다고 하더라도, 앙상블 모델은 하나의 목표(예를 들어, 음성 인식, 얼굴 인식 등)를 달성하기 위해 학습된 모델이기 때문에, 별도로 학습된 복수의 모델의 학습 결과가 유사한 결과로 수렴할 가능성이 높아 획기적인 성능 향상을 보장하지 않는 경우가 많다.
따라서, 앙상블 모델을 사용하는 경우, 기대되는 성능 향상에 비하여 큰 저장 공간과 많은 연산 과정을 필요로 하므로, 스마트폰, 디스플레이 장치, IoT 시스템과 같이 상대적으로 적은 저장 공간과 연산처리 속도를 가지는 장치에서 앙상블 모델을 이용하는 것은 부적절한 측면이 있다.
따라서, 상술한 사용자 단말과 같은 장치(이하 전자 장치)에서 인공 지능 모델을 안정적으로 이용하기 위해서는 앙상블 모델을 사용하면서도 적은 저장 공간 및 적은 연산량을 확보하여야 한다.
따라서, 이하에서 설명하는 바와 같이, 전자 장치(200)는 서버(100)로부터 복수의 모델을 수신하여 저장하는 대신, 복수의 모델을 생성할 수 있는 레이어 생성부를 수신하여 저장하고, 앙상블 모델이 필요한 경우, 프로세서를 통해 앙상블 모델을 생성하여 적은 저장 공간에서 유사한 성능을 유지할 수 있는 앙상블 모델을 생성할 수 있다. 즉, 도 1c에 도시된 바와 같이, 전자 장치(200)는 복수개의 레이어를 저장하고 있지 않고, 레이어 파라미터를 생성할 수 있는 기준값 및 특정 조건에 대한 데이터 및 레이어 파라미터 생성 함수 등을 서버(100)로부터 수신하여, 필요한 경우, 레이어 파라미터를 생성할 수 있다. 생성된 레이어 파라미터로부터 레이어를 생성하기 위하여, 전자 장치(200)는 레이어 구조에 대한 데이터를 서버(100)로부터 수신할 수 있음은 물론이다.
한편, 본 개시에 따른 앙상블 모델은 다양한 분야에서 사용될 수 있음은 물론이다. 일 실시예로, 전자 장치(200)에서 생성되는 앙상블 모델은 음성 인식을 위한 앙상블 모델일 수 있다. 일반적인 음성 인식 인공 지능 모델은 용량이 커 서버에서 이용될 수 있다. 그러나, 음성 인식이 서버에서 이루어 지는 경우, 지속적인 데이터 사용 또는 개인 정보 유출 문제가 발생할 수 있다. 본 개시에 따라, 전자 장치(200)가 음성 인식을 위한 앙상블 모델을 생성하는 경우, 서버(100)로부터 앙상블 모델을 생성하기 위한 데이터를 수신하는 것만으로도 앙상블 모델을 통해 음성 인식을 수행할 수 있다.
또 다른 실시예로, 전자 장치(200)에서 생성되는 앙상블 모델은 언어 번역을 위한 앙상블 모델일 수 있다. 언어 번역이 서버(100)와 별개로 전자 장치(200)에서 이루어 지는 경우, 오프라인 상황에서도 번역 기능을 사용할 수 있다는 이점이 있다.
또 다른 실시예로, 전자 장치(200)에서 생성되는 앙상블 모델은 영상 인식 및 처리를 위한 앙상블 모델일 수 있다. 일반적인 영상 인식/처리를 위한 인공 지능 모델은 용량이 커 서버에서 이용되고 있으며, 입력되는 영상이 고화질 영상인 경우, 서버로 전송하는데 많은 시간과 비용이 소요될 수 있다. 또한, 개인 사진과 같은 영상은 보안 문제를 가지고 있어 서버로 전송하기 적합하지 않을 여지가 있다. 본 개시에 따라, 전자 장치(200)가 영상 인식/처리를 위한 앙상블 모델을 생성하는 경우, 서버(100)로부터 앙상블 모델을 생성하기 위한 데이터를 수신하는 것만으로도 앙상블 모델을 통해 영상 인식/처리를 수행할 수 있다.
도 2는 본 개시의 일 실시예에 따른 전자 장치의 구성을 간략히 도시한 블록도이다.
도 2에 도시된 바와 같이, 전자 장치(200)는 통신부(210), 메모리(220) 및 프로세서(230)를 포함할 수 있다. 본 개시의 다양한 실시예들에 따른 전자 장치(200)는, 예를 들면, 스마트폰, 태블릿 PC, 이동 전화기, 영상 전화기, 전자책 리더기, 데스크탑 PC, 랩탑 PC, 넷북 컴퓨터, 워크스테이션, 서버, PDA, PMP(portable multimedia player), MP3 플레이어, 의료기기, 카메라, 또는 웨어러블 장치 중 적어도 하나를 포함할 수 있다. 웨어러블 장치는 액세서리형(예: 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(head-mounted-device(HMD)), 직물 또는 의류 일체형(예: 전자 의복), 신체 부착형(예: 스킨 패드 또는 문신), 또는 생체 이식형 회로 중 적어도 하나를 포함할 수 있다.
통신부(210)는 외부 장치와의 통신을 수행하기 위한 구성이다. 이 경우, 통신부(210)가 외부 장치와 통신 연결되는 것은 제3 기기(예로, 중계기, 허브, 엑세스 포인트, 서버 또는 게이트웨이 등)를 거쳐서 통신하는 것을 포함할 수 있다.
무선 통신은, 예를 들면, LTE, LTE-A(LTE Advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband), 또는 GSM(Global System for Mobile Communications) 등 중 적어도 하나를 사용하는 셀룰러 통신을 포함할 수 있다. 일 실시예에 따르면, 무선 통신은, 예를 들면, WiFi(wireless fidelity), 블루투스, 블루투스 저전력(BLE), 지그비(Zigbee), NFC(near field communication), 자력 시큐어 트랜스미션(Magnetic Secure Transmission), 라디오 프리퀀시(RF), 또는 보디 에어리어 네트워크(BAN) 중 적어도 하나를 포함할 수 있다. 유선 통신은, 예를 들면, USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard232), 전력선 통신, 또는 POTS(plain old telephone service) 등 중 적어도 하나를 포함할 수 있다.
무선 통신 또는 유선 통신이 수행되는 네트워크는 텔레커뮤니케이션 네트워크, 예를 들면, 컴퓨터 네트워크(예: LAN 또는 WAN), 인터넷, 또는 텔레폰 네트워크 중 적어도 하나를 포함할 수 있다.
메모리(220)는, 예를 들면, 전자 장치(200)의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다. 일 실시예에 따르면, 메모리(220)는 소프트웨어 및/또는 프로그램을 저장할 수 있다. 프로그램은, 예를 들면, 커널, 미들웨어, 어플리케이션 프로그래밍 인터페이스(API) 및/또는 어플리케이션 프로그램(또는 "어플리케이션") 등을 포함할 수 있다. 커널, 미들웨어 또는 API의 적어도 일부는, 운영 시스템으로 지칭될 수 있다. 커널은, 예를 들면, 다른 프로그램들에 구현된 동작 또는 기능을 실행하는 데 사용되는 시스템 리소스들을 제어 또는 관리할 수 있다. 또한, 커널은 미들웨어, API, 또는 어플리케이션 프로그램에서 전자 장치(200)의 개별 구성요소에 접근함으로써, 시스템 리소스들을 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.
미들웨어는, 예를 들면, API또는 어플리케이션 프로그램이 커널과 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다.  또한, 미들웨어는 어플리케이션 프로그램으로부터 수신된 하나 이상의 작업 요청들을 우선 순위에 따라 처리할 수 있다. 예를 들면, 미들웨어는 어플리케이션 프로그램 중 전자 장치(200)의 시스템 리소스를 사용할 수 있는 우선 순위를 부여하고, 상기 하나 이상의 작업 요청들을 처리할 수 있다. API는 어플리케이션이 커널 또는 미들웨어에서 제공되는 기능을 제어하기 위한 인터페이스로, 예를 들면, 파일 제어, 창 제어, 영상 처리, 또는 문자 제어 등을 위한 적어도 하나의 인터페이스 또는 함수(예: 명령어)를 포함할 수 있다.
한편, 메모리(220)는 본 개시에 따른 레이어를 생성하기 위한 다양한 모듈을 포함할 수 있다. 일 실시예로, 메모리(220)는 레이어 파라미터를 생성하기 위한 레이어 파라미터 생성 모듈, 레이어 함수를 생성하기 위한 레이어 함수 생성 모듈, 레이어의 구조를 변경하기 위한 레이어 구조 변경 모듈, 레이어 생성 모듈의 출력이 특정 확률 분포 값에 따라 변경되도록 제어하기 위한 확률적 앙상블 생성 모듈 등 다양한 모듈을 포함할 수 있다. 상술한 다양한 모듈은 프로세서에 의해 제어되어 레이어 파라미터, 레이어 함수, 레이어 구조 등을 생성할 수 있다.
프로세서(230)는, 중앙처리장치, 어플리케이션 프로세서, 또는 커뮤니케이션 프로세서(communication processor(CP)) 중 하나 또는 그 이상을 포함할 수 있다.
또한, 프로세서(230)는 주문형 집적 회로(application specific integrated circuit, ASIC), 임베디드 프로세서, 마이크로프로세서, 하드웨어 컨트롤 로직, 하드웨어 유한 상태 기계(hardware finite state machine, FSM), 디지털 신호 프로세서(digital signal processor, DSP), 중 적어도 하나로 구현될 수 있다. 도시하진 않았으나, 프로세서(230)는 각 구성들과 통신을 위한 버스(bus)와 같은 인터페이스를 더 포함할 수 있다.
프로세서(230)는, 예를 들면, 운영 체제 또는 응용 프로그램을 구동하여 프로세서(230)에 연결된 다수의 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다. 프로세서(230)는, 예를 들면, SoC(system on chip) 로 구현될 수 있다. 일 실시예에 따르면, 프로세서(230)는 GPU(graphic processing unit) 및/또는 이미지 신호 프로세서를 더 포함할 수 있다. 프로세서(230)는 다른 구성요소들(예: 비휘발성 메모리) 중 적어도 하나로부터 수신된 명령 또는 데이터를 휘발성 메모리에 로드하여 처리하고, 결과 데이터를 비휘발성 메모리에 저장할 수 있다.
한편, 프로세서(230)는 인공 지능(AI; artificial intelligence)을 위한 전용 프로세서를 포함하거나, 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작될 수 있다. 이 때, 인공 지능을 위한 전용 프로세서는 확률 연산에 특화된 전용 프로세서로서, 기존의 범용 프로세서보다 병렬처리 성능이 높아 기계 학습과 같은 인공 지능 분야의 연산 작업을 빠르게 처리할 수 있다.
프로세서(230)는 외부 서버로부터 통신부(210)를 통해 복수의 인공 지능 모델 각각에 포함된 복수의 레이어 중 대응되는 위치의 레이어에 대한 레이어 파라미터를 획득하기 위한 기준값을 수신할 수 있다. 이때, 기준값은 외부 서버에서 생성된 것으로, 레이어 파라미터를 생성하기 위한 값이며, 예를 들어, 기준값은 앙상블 모델의 대응되는 위치의 레이어들에 대한 레이어 파라미터의 평균값 또는 분산값 중 적어도 하나일 수 있다.
복수의 인공 지능 모델을 이용하기 위한 사용자 명령이 입력되면, 프로세서(230)는 외부 서버로부터 수신한 기준값을 바탕으로 앙상블 모델(또는 복수의 인공 지능 모델)을 생성할 수 있다. 생성된 앙상블 모델에 입력 데이터가 입력되면, 프로세서(230)는 입력데이터에 대한 출력 데이터를 획득할 수 있다.
구체적으로, 프로세서(230)는 앙상블 모델에 포함된 복수의 인공 지능 모델 각각에 포함된 복수의 레이어 중, 대응되는 위치의 레이어들에 대한 레이어 파라미터를 획득하기 위한 기준값을 바탕으로, 복수의 인공 지능 모델 각각에 포함된 레이어 중 대응되는 위치의 레이어를 생성할 수 있다.
이때, 기준값은, 대응되는 위치의 레이어들에 대한 레이어 파라미터의 평균값 또는 분산값일 수 있다. 기준값은 다양한 조건에 따라 다양하게 결정될 수 있다. 일 실시예로, 복수의 레이어 파라미터의 분산값이 기 설정된 값 이하인 경우, 기준값은 복수의 레이어 파라미터의 평균값을 바탕으로 결정될 수 있다. 또 다른 실시예로, 기준값은, 복수의 레이어 파라미터의 분산값이 기 설정된 값 이상이고, 복수의 레이어 파라미터의 분포가 기 설정된 조건을 만족하면, 복수의 레이어 파라미터의 분산값을 바탕으로 결정될 수 있다. 또 다른 실시예로, 기준값은, 복수의 레이어 파라미터의 분산값이 기 설정된 값 이상이고, 복수의 레이어 파라미터의 분포가 기 설정된 조건을 만족하지 않으면, 복수의 레이어 파라미터의 평균값 및 분산값을 바탕으로 결정될 수 있다.
기준값이 복수의 레이어 파라미터의 평균값을 바탕으로 결정된 경우, 프로세서(230)는 복수의 레이어 파라미터의 평균값을 바탕으로 결정된 기준값을 기초로 레이어 파라미터를 생성할 수 있다. 예를 들어, 생성된 레이어 파라미터는 복수의 레이어 파라미터의 평균값을 바탕으로 결정된 기준값을 입력 값으로 가우시안 분포를 가지는 함수에 대입한 임의의 출력값일 수 있다. 이때, 생성된 레이어 파라미터 W'는 예를 들어, W'={w_ij~N(m,v)}_ij와 같이 표현될 수 있다.
또 다른 예로, 생성된 레이어 파라미터는 복수의 레이어 파라미터의 평균값을 바탕으로 결정된 기준값 및 레이어의 Transformation에 대한 분포에 따라 결정될 수 있다. 이 경우, 생성된 레이어 파라미터 W'은 임의의 함수 A(t)에 대한 연산값일 수 있다. 즉, W'=A(t)*W의 형태일 수 있다.
한편, 기준값이 복수의 레이어 파라미터의 분산값을 바탕으로 결정된 경우, 프로세서(230)는 복수의 레이어 파라미터의 분산값을 바탕으로 결정된 기준값을 기초로 레이어 파라미터를 생성할 수 있다.
한편, 기준값이 복수의 레이어 파라미터의 평균값 및 분산값을 바탕으로 결정된 경우, 프로세서(230)는 복수의 레이어 파라미터의 평균값 및 분산값을 바탕으로 결정된 기준값을 기초로 레이어 파라미터를 생성할 수 있다.
예를 들어, 기준값이 복수의 레이어 파라미터의 평균값 및 분산값을 바탕으로 결정된 경우, 프로세서(230)는 확률적 레이어 함수(예를 들어 y_j~N(f_mean(x_1...x_N), f_var(x_1...X_N))의 출력값을 레이어 파라미터로 생성할 수 있다.
상술한 방법에 따라, 프로세서(230)는 앙상블 모델에 포함된 모든 레이어의 레이어 파라미터를 생성할 수 있다. 즉, 프로세서(230)는 서버(100)로부터 수신한 기준값 및 레이어 파라미터 생성 방법에 관한 정보만을 가지고 레이어 파라미터를 생성하므로, 앙상블 모델이 포함하는 모든 레이어 파라미터를 저장할 필요가 없으므로 저장 공간 및 연산량을 줄일 수 있다.
한편, 프로세서(230)는 전자 장치의 메모리 용량을 바탕으로 생성되는 인공 지능 모델의 개수를 판단할 수 있다. 즉, 프로세서(230)는 메모리(220)의 공간을 판단하고, 판단된 메모리(220) 공간에 따라 앙상블 모델에 필요한 인공 지능 모델의 개수를 결정할 수 있다. 메모리(220) 사용량이 충분한 경우, 프로세서(230)는 많은 인공 지능 모델을 생성하여 정확도 및 안정성을 높일 수 있으며, 메모리(220) 공간이 충분치 않은 경우, 메모리(220) 공간에 맞게 인공 지능 모델을 생성하여 빠른 결과를 출력할 수 있다.
프로세서(230)는 생성된 앙상블 모델에 입력값이 입력되면, 결과값을 출력할 수 있다.
도 3은 본 개시의 일 실시예에 따른 전자 장치(200)의 구성을 상세히 도시한 블록도이다.
전자 장치(200)는 통신부(210), 메모리(220) 및 프로세서(230) 이외에도 입력부(240) 및 출력부(250)을 더 포함할 수 있다. 그러나 상술한 구성에 한정되는 것은 아니며, 필요에 따라 일부 구성이 추가 또는 생략될 수 있음은 물론이다.
상술한 바와 같이, 통신부(210)는 외부 서버와의 통신을 수행한다. 특히, 통신부(210)는 와이파이 칩, 블루투스 칩, 무선 통신 칩, NFC칩 등과 같은 무선 통신을 수행하기 위한 다양한 통신 칩을 포함할 수 있다. 이때, 와이파이 칩, 블루투스 칩, NFC 칩은 각각 LAN 방식, WiFi 방식, 블루투스 방식, NFC 방식으로 통신을 수행한다. 와이파이 칩이나 블루투스칩을 이용하는 경우에는 SSID 및 세션 키 등과 같은 각종 연결 정보를 먼저 송수신 하여, 이를 이용하여 통신 연결한 후 각종 정보들을 송수신할 수 있다. 무선 통신칩은 IEEE, 지그비, 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution) 등과 같은 다양한 통신 규격에 따라 통신을 수행하는 칩을 의미한다.
메모리(220)는, 내장 메모리 및 외장 메모리 중 적어도 하나를 포함할 수 있다. 내장 메모리는, 예를 들면, 휘발성 메모리(예: DRAM, SRAM, 또는 SDRAM 등), 비휘발성 메모리(예: OTPROM(one time programmable ROM), PROM, EPROM, EEPROM, mask ROM, flash ROM, 플래시 메모리, 하드 드라이브, 또는 솔리드 스테이트 드라이브(SSD) 중 적어도 하나를 포함할 수 있다. 외장 메모리는 플래시 드라이브(flash drive), 예를 들면, CF(compact flash), SD(secure digital), Micro-SD, Mini-SD, xD(extreme digital), MMC(multi-media card) 또는 메모리 스틱 등을 포함할 수 있다. 외장 메모리는 다양한 인터페이스를 통하여 전자 장치(200)와 기능적으로 또는 물리적으로 연결될 수 있다.
입력부(240)는 사용자 명령을 입력받기 위한 구성이다. 이때, 입력부(240)는 카메라(241), 마이크(242) 및 터치패널(243)을 포함할 수 있다.
카메라(241)는 전자 장치(200) 주변의 영상 데이터를 획득하기 위한 구성이다. 카메라(241)는 정지 영상 및 동영상을 촬영할 수 있다. 예로, 카메라(241)는 하나 이상의 이미지 센서(예: 전면 센서 또는 후면 센서), 렌즈, 이미지 시그널 프로세서(ISP), 또는 플래시(예: LED 또는 xenon lamp 등)를 포함할 수 있다. 마이크(242)는 전자 장치(200) 주변의 소리를 획득하기 위한 구성이다. 마이크(242)는 외부의 음향 신호를 입력 받아 전기적인 음성 정보를 생성할 수 있다. 마이크(242)는 외부의 음향 신호를 입력 받는 과정에서 발생되는 잡음(noise)를 제거하기 위한 다양한 잡음 제거 알고리즘을 이용할 수 있다. 카메라(241) 또는 마이크(242)를 통해 입력된 이미지 정보 또는 음성 정보는 인공 지능 모델의 입력값으로 입력될 수 있다.
터치 패널(243)은 다양한 사용자 입력을 입력 받을 수 있는 구성이다. 터치 패널(243)는 사용자 조작에 의한 데이터를 입력 받을 수 있다. 터치 패널(243)은 후술하는 디스플레이와 결합하여 구성될 수도 있다.
입력부(240)는 상술한 카메라(241), 마이크(242), 터치 패널(243) 외에도 다양한 데이터를 입력 받기 위한 다양한 구성일 수 있음은 물론이다.
출력부(250)는 오디오 출력부(251) 또는 디스플레이(252)를 포함할 수 있으며, 다양한 데이터를 출력할 수 있는 구성이다.
오디오 출력부(251)는 입력 데이터에 대한 다양한 소리를 출력하기 위한 구성이다. 오디오 출력부(251)는 오디오 처리부(미도시) 에 의해 디코딩이나 증폭, 노이즈 필터링과 같은 다양한 처리 작업이 수행된 각종 오디오 데이터뿐만 아니라 각종 알림 음이나 음성 메시지를 출력할 수 있다. 특히, 오디오 출력부(251)는 스피커로 구현될 수 있으나, 이는 일 실시 예에 불과할 뿐, 오디오 데이터를 출력할 수 있는 출력 단자로 구현될 수 있다.
디스플레이(252)는 입력 데이터에 대한 다양한 영상을 출력하기 위한 구성이다. 다양한 영상을 제공하기 위한 디스플레이(252)는 다양한 형태의 디스플레이 패널로 구현될 수 있다. 예를 들어, 디스플레이 패널은 LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes), AM-OLED(Active-Matrix Organic Light-Emitting Diode), LcoS(Liquid Crystal on Silicon) 또는 DLP(Digital Light Processing) 등과 같은 다양한 디스플레이 기술로 구현될 수 있다. 또한, 디스플레이(252)는 플렉서블 디스플레이(flexible display)의 형태로 전자 장치(100)의 전면 영역 및, 측면 영역 및 후면 영역 중 적어도 하나에 결합될 수도 있다.
이하에서는 도 4a 내지 도 6e를 이용하여 전자 장치의 동작을 상세히 설명한다.
도 4a 및 도 4b는 본 개시의 일 실시예에 따른, 메모리 저장공간에 따른 인공 지능 모델 생성 방법을 설명하기 위한 예시도이다.
도 4a 및 도 4b에 도시된 바와 같이, 전자 장치(200)는 사용할 인공 지능 모델의 개수를 메모리(220) 저장 공간에 따라 변경할 수 있다. 구체적으로, 전자 장치(220)는 인공 지능 모델을 이용하기 위한 사용자 명령이 입력되면, 메모리(220)의 저장 공간을 판단하고, 판단된 저장 공간에 따라 앙상블 할 인공 지능 모델의 개수를 결정할 수 있다. 구체적으로, 도 4a에 도시된 바와 같이 메모리(220)가 사용 가능한 저장 공간이 부족한 경우, 전자 장치(220)는 사용 가능한 저장 공간에 따라 적은 수의 인공 지능 모델을 생성할 수 있다. 또는, 도 4b에 도시된 바와 같이 메모리(220)가 사용 가능한 저장 공간이 충분한 경우, 전자 장치(220)는 사용 가능한 저장 공간에 따라 많은 수의 인공 지능 모델을 생성할 수 있다.
예를 들어, 사용 가능한 메모리 공간이 앙상블 모델의 크기보다 작은 경우, 전자 장치(200)는 앙상블 모델에 포함된 복수의 인공 지능 모델 중 일부를 제거하여 메모리 공간에 맞는 앙상블 모델을 생산할 수 있다.
또는, 사용 가능한 메모리 공간이 앙상블 모델의 크기보다 큰 경우, 전자 장치(200)는 앙상블 모델을 그대로 사용할 수 있다.
또는, 사용 가능한 메모리 공간이 앙상블 모델의 크기보다 큰 경우, 전자 장치(200)는 성능 향상을 위해 기존 앙상블 모델에 포함된 복수의 인공 지능 모델 뿐만 아니라, 사용 가능만 메모리 공간을 바탕으로 추가 인공 지능 모델을 생성하고, 기존 앙상블 모델에 포함된 복수의 인공 지능 모델과 추가 인공 지능 모델을 앙상블 할 수 있다.
도 5a 내지 도 5c는 본 개시의 일 실시예에 따른, 사용자 명령에 따라 생성되는 인공 지능 모델을 조절할 수 있는 UI를 설명하기 위한 예시도이다.
구체적으로, 도 5a에 도시된 바와 같이, 전자 장치(200)는 사용자 선택에 따라 인공 지능 모델의 종류 및 앙상블 되는 레이어의 개수를 조절할 수 있다. 이때, 인공 지능 모델의 종류란, 음성 인식을 위한 인공 지능 모델, 영상 분석을 위한 인공 지능 모델 등에 대한 종류일 수 있다.
한편, 도 5b에 도시된 바와 같이, 전자 장치(200)는 전자 장치(200)의 메모리(220), 성능 등으로 고려하여 사용자에게 최적화된 인공 지능 모델을 앙상블 할 수 있는 UI를 제공할 수 있다. 즉, 도 5b에 도시된 바와 같이, 전자 장치(200)는 인공지능 모델에 사용하고자 하는 메모리의 크기 및 원하는 성능을 조작하기 위한 바 UI(bar UI)를 표시할 수 있다. 다만, 바 UI의 형태는 도 5b에 도시된 예에 한정되지 않으며, 도 5c에 도시된 바와 같이 단계별로 설정 가능한 UI의 형태로 표시될 수도 있다. 즉, 도 5c와 같이 사용자는 메모리, 성능 등의 지표에 대하여 다섯 단계 중 하나의 단계(불연속적으로)를 선택할 수도 있음은 물론이다.
한편, 도 5a 내지 도 5c에는 개시되어 있지 않으나, 전자 장치(200)는 앙상블 모델에 필요한 레이어의 개수, 사용하고자 하는 인공 지능 모델의 종류 등을 직접 지정할 수 있는 UI를 표시할 수 있음은 물론이다.
상술한 앙상블 모델 생성과 관련된 설정은 다양한 방법으로 변경될 수 있다. 일 실시예로, 인공 지능 서비스가 특정 어플리케이션에서 동작하는 경우, 전자 장치(200)는 특정 어플리케이션 내부의 설정을 변경하여 앙상블 모델 설정 환경을 변경할 수 있다. 또 다른 실시예로, 전자 장치(200)는 전자 장치(200)자체의 설정 환경(예를 들어, OS 설정 환경)에서 앙상블 모델 설정 환경을 변경할 수 있음은 물론이다.
도 6a 내지 도 6e는 본 개시의 일 실시예에 따른 레이어의 앙상블 방법을 설명하기 위한 예시도이다.
상술한 바와 같이, 전자 장치(200)는 기준값을 통해 레이어 파라미터를 생성할 수 있을 뿐만 아니라, 나아가 레이어의 구조(Layer Scheme)을 생성할 수 있다. 즉, 전자 장치(200)는 레이어 구조를 서버(100)로부터 수신하여 메모리(220)에 저장하고 있으나, 필요에 따라, 도 6a 내지 도 6e와 같이 레이어의 구조를 변경하여 사용할 수 있다. 도 6a 내지 도 6e는 3개의 인공 지능 모델을 앙상블하는 경우에 대하여 설명하였으나, 3개 이상의 모델이 앙상블되거나 두개의 모델이 앙상블 될 수 있음은 물론이다.
도 6a는 일반적인 앙상블(Simple Ensemble) 모델에 따른 레이어 구조를 나타낸다. 도 6a에 따른 앙상블 모델은 각각의 인공 지능 모델로부터 출력값을 획득하여, 획득된 출력 값을 앙상블할 수 있다. 도 6b는 스텝 와이즈 앙상블(Stepwise Ensemble)모델에 따른 앙상블 구조를 나타낸다. 도 6b에 따른 앙상블 모델은 예를 들어, ReLU 레이어의 출력값을 각각 다음 레이어로 전달하는 것이 아니라, 각각의 ReLU 레이어의 출력값을 앙상블한 값을 다음 레이어로 전달할 수 있다. 이 경우, 런타임 메모리를 절약할 수 있는 효과가 있다. 도 6c는 부분적 스텝 와이즈 앙상블(Stepwise Partial Ensemble) 모델에 따른 앙상블 구조를 나타낸다. 스텝 와이즈 앙상블(Stepwise Ensemble)모델과 유사하나, 필요에 따라 모든 레이어를 앙상블 하는 것이 적절하지 않은 경우, 도 6c와 같은 앙상블 모델이 이용될 수 있다. 도 6d는 부분적 캐스캐이드 앙상블(Cascade Partial Ensemble) 모델에 따른 앙상블 구조를 나타낸다. 캐스캐이드 앙상블 모델은 단계가 거듭될수록 인공 지능 모델의 개수가 줄어들어 메모리를 절약할 수 있다. 결과값이 유사하다고 예측되는 인공 지능 모델이 복수개 존재하는 경우, 도 6d와 같은 앙상블 모델이 이용될 수 있을 것이다. 도 6e는 확률적 앙상블(Stochastic Partial Ensemble) 모델에 따른 앙상블 구조를 나타낸다. 도 6e에 따른 앙상블 모델을 이용하는 경우, 안정적인 결과값을 도출하는데 용이할 수 있다.
전자 장치(200)는 생성된 레이어 파라미터, 현재 전자 장치(200)의 성능, 인공 지능 모델의 종류 및 목적에 따라 다양한 레이어 구조를 선택하여 적용할 수 있음은 물론이다.
도 7은 본 개시의 일 실시예에 따른 서버의 구성을 간략히 도시한 블록도이다.
도 7에 도시된 바와 같이, 서버(100)는 메모리(110), 통신부(120) 및 프로세서(130)를 포함할 수 있다. 다만, 상술한 구성 외에도 다양한 구성이 추가될 수 있음은 물론이다.
메모리(110)는 복수의 인공 지능 모델을 저장하기 위한 구성이다. 메모리(110)의 동작 및 구성은 전술한 전자 장치(200)의 메모리(220)의 동작 및 구성과 유사하다. 메모리(110)는 다양한 인공 지능 모델을 저장할 수 있다.
통신부(120)는 전자 장치(200)와 통신하기 위한 구성이다. 통신부(120)의 동작 및 구성은 전술한 전자 장치(200)의 통신부(210)의 동작 및 구성과 유사하다.
프로세서(130)는 서버(100)의 동작을 제어하기 위한 구성이다. 프로세서(130)의 동작 및 구성은 전술한 전자 장치(200)의 프로세서(230)의 동작 및 구성을 포함할 수 있다.
한편, 프로세서(130)는 데이터 학습부 및 데이터 인식부를 포함할 수 있다. 데이터 학습부는 데이터 인식 모델이 특정 목적에 따른 기준을 갖도록 학습시킬 수 있다. 이때, 특정 목적이란 음성 인식, 번역, 영상 인식, 상황 인식 등과 관련된 목적을 포함할 수 있다. 데이터 학습부는 상술한 목적에 따른 동작을 결정하기 위하여 학습 데이터를 데이터 인식 모델에 적용하여, 판단 기준을 갖는 데이터 인식 모델을 생성할 수 있다. 데이터 인식부는 인식 데이터에 기초하여 특정 목적에 대한 상황을 판단할 수 있다. 데이터 인식부는 학습된 데이터 인식 모델을 이용하여, 소정의 인식 데이터로부터 상황을 판단할 수 있다. 데이터 인식부는 기 설정된 기준에 따라 소정의 인식 데이터를 획득하고, 획득된 인식 데이터를 입력 값으로 하여 데이터 인식 모델에 적용함으로써, 소정의 인식 데이터에 기초한 소정의 상황을 판단할 수 있다(또는, 추정(estimate)할 수 있다). 또한, 획득된 인식 데이터를 입력 값으로 데이터 인식 모델에 적용하여 출력된 결과 값은, 데이터 인식 모델을 갱신하는데 이용될 수 있다.
한편, 데이터 학습부의 적어도 일부 및 데이터 인식부의 적어도 일부는, 소프트웨어 모듈로 구현되거나 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 학습부 및 데이터 인식부 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 전술한 각종 전자 장치에 탑재될 수도 있다. 이 때, 인공 지능을 위한 전용 하드웨어 칩은 확률 연산에 특화된 전용 프로세서로서, 기존의 범용 프로세서보다 병렬처리 성능이 높아 기계 학습과 같은 인공 지능 분야의 연산 작업을 빠르게 처리할 수 있다. 데이터 학습부 및 데이터 인식부가 소프트웨어 모듈(또는, 인스트럭션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 이 경우, 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.
이 경우, 데이터 학습부 및 데이터 인식부는 하나의 서버(100)에 탑재될 수도 있으며, 또는 별개의 서버들에 각각 탑재될 수도 있다. 예를 들어, 데이터 학습부 및 데이터 인식부 중 하나는 전자 장치(200)에 포함되고, 나머지 하나는 외부의 서버에 포함될 수 있다. 또한, 데이터 학습부 및 데이터 인식부는 유선 또는 무선으로 통하여, 데이터 학습부가 구축한 모델 정보를 데이터 인식부로 제공할 수도 있고, 데이터 인식부로 입력된 데이터가 추가 학습 데이터로서 데이터 학습부로 제공될 수도 있다.
한편, 데이터 학습부는 데이터 획득부, 전처리부, 학습 데이터 선택부, 모델 학습부 및 모델 평가부를 더 포함할 수 있다. 데이터 획득부는 특정 목적에 따른 학습 데이터를 획득하기 위한 구성이다. 전처리부는 획득부에서 획득된 데이터를 기 정의된 포맷으로 전처리하기 위한 구성이다. 학습 데이터 선택부는 전처리된 데이터 중 학습에 필요한 데이터를 선별하기 위한 구성이다. 모델 학습부는 학습 데이터를 이용하여 데이터 인식 모델을 학습시키기 위한 구성이다. 모델 평가부는 데이터 인식 모델의 결과를 향상 시키기 위한 구성이다. 전술한, 데이터 획득부, 전처리부, 학습 데이터 선택부, 모델 학습부 및 모델 평가부 중 적어도 하나는, 소프트웨어 모듈로 구현되거나 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 획득부, 전처리부, 학습 데이터 선택부, 모델 학습부 및 모델 평가부 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 전술한 각종 전자 장치에 탑재될 수도 있다.
또한, 데이터 인식부는 데이터 획득부, 전처리부, 인식 데이터 선택부, 인식 결과 제공부 및 모델 갱신부를 더 포함할 수 있다. 데이터 획득부는 인식 데이터를 획득하기 위한 구성이다. 전처리부는 획득부에서 획득된 데이터를 기 정의된 포맷으로 전처리하기 위한 구성이다. 인식 데이터 선택부는 전처리된 데이터 중 인식에 필요한 데이터를 선별하기 위한 구성이다. 인식 결과 제공부는 인식 데이터로부터 선택된 데이터를 수신할 수 있는 구성이다. 모델 갱신부는 인식 결과 제공부로부터 제공된 인식 결과에 대한 평가에 기초하여 데이터 인식 모델을 갱신하기 위한 구성이다. 전술한, 데이터 획득부, 전처리부, 인식 데이터 선택부, 인식 결과 제공부 및 모델 갱신부 중 적어도 하나는, 소프트웨어 모듈로 구현되거나 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 획득부, 전처리부, 학습 데이터 선택부, 모델 학습부 및 모델 평가부 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 전술한 각종 전자 장치에 탑재될 수도 있다.
이때, 데이터 인식 모델이란 단일 모델 또는 앙상블 모델 중 어느 하나일 수 있다. 또한, 데이터 인식 모델은 인식 모델의 적용 분야, 학습의 목적 또는 장치의 컴퓨터 성능 등을 고려하여 구축될 수 있다. 데이터 인식 모델은, 예를 들어, 신경망(Neural Network)을 기반으로 하는 모델일 수 있다. 데이터 인식 모델은 인간의 뇌 구조를 컴퓨터 상에서 모의하도록 설계될 수 있다. 데이터 인식 모델은 인간의 신경망의 뉴런(neuron)을 모의하는, 가중치를 가지는 복수의 네트워크 노드들을 포함할 수 있다. 복수의 네트워크 노드들은 뉴런이 시냅스(synapse)를 통하여 신호를 주고 받는 시냅틱(synaptic) 활동을 모의하도록 각각 연결 관계를 형성할 수 있다. 데이터 인식 모델은, 일 예로, 신경망 모델, 또는 신경망 모델에서 발전한 딥 러닝 모델을 포함할 수 있다. 딥 러닝 모델에서 복수의 네트워크 노드들은 서로 다른 깊이(또는, 레이어)에 위치하면서 컨볼루션(convolution) 연결 관계에 따라 데이터를 주고 받을 수 있다.
예컨대, DNN(Deep Neural Network), RNN(Recurrent Neural Network), BRDNN(Bidirectional Recurrent Deep Neural Network)과 같은 모델이 데이터 인식 모델로서 사용될 수 있으나, 이에 한정되지 않는다.
한편, 프로세서(130)는 전술한 데이터 학습부 및 데이터 인식부에 의해 학습된 인공 지능 모델을 바탕으로, 전자 장치(200)가 레이어를 생성하기 위한 기준값을 획득할 수 있다.
이때, 기준값은, 대응되는 위치의 레이어들에 대한 레이어 파라미터의 평균값 및 분산값일 수 있다. 기준값은 다양한 조건에 따라 다양하게 결정될 수 있다. 일 실시예로, 복수의 레이어 파라미터의 분산값이 기 설정된 값 이하인 경우, 기준값은 복수의 레이어 파라미터의 평균값을 바탕으로 결정될 수 있다. 또 다른 실시예로, 기준값은, 복수의 레이어 파라미터의 분산값이 기 설정된 값 이상이고, 복수의 레이어 파라미터의 분포가 기 설정된 조건을 만족하면, 복수의 레이어 파라미터의 분산값을 바탕으로 결정될 수 있다. 또 다른 실시예로, 기준값은, 복수의 레이어 파라미터의 분산값이 기 설정된 값 이상이고, 복수의 레이어 파라미터의 분포가 기 설정된 조건을 만족하지 않으면, 복수의 레이어 파라미터의 평균값 및 분산값을 바탕으로 결정될 수 있다.
구체적으로, 프로세서(130)는 학습된 모델에 포함된 레이어 파라미터를 바탕으로 기준값을 획득할 수 있다. 구체적으로, 도 1b를 참조하면, 프로세서(130)는 복수의 인공 지능 모델에 포함된 레이어 중 동일 경로에 대한 레이어 파라미터를 바탕으로 기준값을 획득할 수 있다. 예를 들어, 앙상블 모델이 3개의 인공 지능 모델(제1 인공 지능 모델 내지 제3 인공 지능 모델)을 포함하고, 각각의 인공 지능 모델은 10개의 레이어 파라미터(제1 레이어 파라미터 내지 제10 레이어 파라미터)를 포함하는 경우를 가정할 수 있다. 이때, 각각의 인공 지능 모델의 제n 레이어 파라미터는 동일 경로를 가지는 레이어 파라미터일 수 있다.
이때, 프로세서(130)는 제1 인공 지능 모델의 제1 레이어 파라미터, 제2 인공 지능 모델의 제1 레이어 파라미터 및 제3 인공 지능 모델의 제1 레이어 파라미터를 바탕으로 제1 기준값을 획득할 수 있다. 또한, 프로세서(130)는 제1 인공 지능 모델의 제2 레이어 파라미터, 제2 인공 지능 모델의 제2 레이어 파라미터 및 제3 인공 지능 모델의 제2 레이어 파라미터를 바탕으로 제2 기준값을 획득할 수 있다. 같은 방법으로, 프로세서(130)는 제3 기준값 내지 제10 기준값을 획득할 수 있다. 이하 본 개시에서는 하나의 기준값이 처리되는 과정을 설명하나, 기준값이 복수개 존재하는 경우에도 본 개시의 기술적 사상이 적용될 수 있음은 물론이다.
이때, 기준값은, 레이어 파라미터의 평균값 또는 분산값을 바탕으로 획득될 수 있다. 다만, 기준값은 다양한 방법을 통해 결정될 수 있다. 예를 들어, 기준값은 레이어 파라미터 w1, w2에 대하여 Polygonal Chain(수학식 1 참조) 또는 Bezier Curve(수학식 2 참조)를 이용하여 획득될 수 있다.
Figure PCTKR2019006500-appb-M000001
Figure PCTKR2019006500-appb-M000002
또는 기준 값은 하기 수식에 의해 결정될 수도 있다.
Figure PCTKR2019006500-appb-M000003
설명의 편의를 위해 본 개시에서는 기준값이 레이어 파라미터의 평균값 또는 분산값을 바탕으로 획득되는 경우로 한정하여 설명하나, 상술한 다양한 방법을 통해 기준값이 결정될 수 있음은 물론이다.
프로세서(130)는 동일 경로를 가지는 레이어 파라미터별 분산값을 판단할 수 있다. 이때, 분산값이 기 설정된 값보다 낮은 경우, 기준값은 레이어 파라미터의 평균값을 바탕으로 획득될 수 있다. 즉, 분산값이 낮다는 의미는, 각각의 레이어 파라미터가 평균값과 차이가 크지 않다는 의미이므로, 프로세서(130)는 기준값을 평균값으로 획득할 수 있다. 전자 장치(200)는 서버(100)로부터 기준값을 수신하고, 기준값을 바탕으로 레이어 파라미터를 생성할 수 있다. 즉, 분산값이 기 설정된 값보다 낮은 경우, 전자 장치(200)는 레이어 파라미터 전부를 서버(100)로부터 수신하여 저장하는 대신, 기준값만을 수신하여 저장하고, 수신한 기준값으로부터 복수의 레이어 파라미터를 생성할 수 있다.
한편, 프로세서(130)는 분산값이 기 설정된 값보다 큰 경우, 해당 레이어 파라미터가 기 설정된 조건을 만족하는지 여부를 판단할 수 있다. 이때, 기 설정된 조건은 각각의 레이어 파라미터의 임팩트(Impact)값과 관련된 조건일 수 있다. 예를 들어, 프로세서(130)는 임팩트 값에 따라, Coefficient Vector를 이용하여 레이어 파라미터를 생성하는 확률적 함수를 생성할 수 있다. 즉, 프로세서(130)는 레이어 파라미터 값에 대한 레이어의 출력값을 바탕으로 확률적 출력 값을 획득할 수 있다. 임팩트값이라 함은, 결과값에 영향을 주는 레이어 파라미터에 대한 특정 값을 의미한다. 예로, 임팩트값은 하기와 같이 정의될 수 있다.
Figure PCTKR2019006500-appb-M000004
그러나 임팩트값은 상술한 수학식 4에 한정되는 것은 아니며, 결과값에 영향을 주는 레이어 파라미터를 구분할 수 있는 다양한 값에도 적용될 수 있음은 물론이다.
이때, 임팩트값이 기 설정된 값 이상인 경우, 프로세서(130)는 기 설정된 값 이상의 임팩트 값을 가지는 레이어 파라미터를 전자 장치(200)로 전송할 수 있다. 즉, 기 설정된 값 이상의 임팩트 값을 가지는 레이어 파라미터는 결과 값에 영향을 줄 수 있는 파라미터이므로, 전자 장치(200)는 레이어 파라미터를 기준값으로부터 생성하는 것이 아니라, 레이어 파라미터 원본을 서버(100)로부터 수신할 수 있다.
한편, 임팩트값이 기 설정된 값 이하인 경우, 프로세서(130)는 기 설정된 값 이하의 임팩트 값을 가지는 레이어 파라미터 삭제하고, 확률적 레이어 함수로 대체한다. 즉, 기 설정된 값 이하의 임팩트 값을 가지는 레이어 파라미터는 결과값에 큰 영향을 주지 않으므로, 전자 장치(200)는 서버(100)로부터 기준값 및 확률적 레이어 함수를 수신하여 저장하고, 수신된 기준값 및 확률적 레이어 함수로부터 레이어 파라미터를 생성할 수 있다.
상술한 방법을 통해 프로세서(130)는 복수개의 레이어 파라미터로부터 기준값 및 기 설정된 조건 만족 여부(예를 들어 임팩트 값)을 획득하고, 전자 장치(100)는 기준값 및 기 설정된 조건만으로 레이어를 생성할 수 있어 전자 장치의 메모리를 절약할 수 있다.
도 8은 본 개시의 일 실시예에 따른 전자 장치의 동작으로 설명하기 위한 흐름도이다.
먼저, 전자 장치(200)는 복수의 인공 지능 모델을 이용하기 위한 사용자 명령을 입력 받을 수 있다(S810). 인공 지능 모델을 이용하기 위한 사용자 명령이란, 인공 지능 모델을 이용하는 어플리케이션 실행 명령일 수 있다. 또는, 인공 지능 모델을 이용하기 위한 사용자 명령이란, 인공 지능 모델에 입력되는 입력 데이터를 선택하는 사용자 명령일 수 있다.
사용자 명령이 입력되면, 전자 장치(200)는 서버(100)로부터 수신한 기준값을 바탕으로 복수의 인공 지능 모델 각각에 포함된 레이어 중 기준값에 대응되는 레이어에 대한 레이어 파라미터를 생성할 수 있다(S820). 예를 들어, 복수의 인공 지능 모델이 제1 인공 지능 모델 내지 제m 인공 지능 모델이고, 각각의 모델은 제1 레이어 내지 제n 레이어로 구성된 경우를 가정할 수 있다. 전자 장치(200)는 제1 인공 지능 모델 내지 제m 인공 지능 모델 각각의 제1 레이어들에 대한 제1 기준값을 바탕으로 m개의 제1 레이어 파라미터를 생성하고, 같은 방법으로 m개의 제2 레이어 파라미터 내지 제n 레이어 파라미터를 생성할 수 있다.
전자 장치(200)는 생성된 인공 지능 모델에 입력 데이터를 입력하여 입력 데이터에 대한 출력 데이터를 획득할 수 있다(S830). 구체적으로, 전자 장치(100)는 레이어 파라미터가 생성되면, 레이어 구조 및 앙상블 방법에 따라 인공 지능 모델을 생성할 수 있다. 이때, 레이어의 구조는 서버(100)로부터 수신하여 저장하고 있을 수 있다. 앙상블 방법 또한 서버(100)로부터 수신하여 저장하고 있거나, 전자 장치(200)의 상황에 따라 적절한 방법을 선택하여 사용할 수 있다.
도 9는 본 개시의 일 실시예에 따른 서버의 동작을 설명하기 위한 흐름도이다.
서버(100)는 복수의 인공 지능 모델 각각에 포함된 복수의 레이어 중 대응되는 위치의 레이어들에 대한 복수의 레이어 파라미터를 획득할 수 있다(S910). 예를 들어, 복수의 인공 지능 모델이 제1 인공 지능 모델 내지 제m 인공 지능 모델이고, 각각의 모델은 제1 레이어 내지 제n 레이어로 구성된 경우를 가정할 수 있다. 이때, 서버(100)는 제1 인공 지능 모델의 제1 레이어에 대한 제1 레이어 파라미터, 제2 인공 지능 모델의 제1 레이어에 대한 제1 레이어 파라미터 내지 제m 인공 지능 모델의 제1 레이어에 대한 제1 레이어 파라미터를 획득할 수 있다.
서버(100)는 획득된 레이어 파라미터를 바탕으로, 대응되는 위치의 새로운 레이어에 대한 레이어 파라미터를 생성하기 위한 기준값을 획득할 수 있다(S920). 예를 들어, 서버(100)는 획득한 m개의 레이어 파라미터를 바탕으로 기준값을 획득할 수 있다. 이때, 기준값은 m개의 파라미터에 대한 평균값 및 분산 값일 수 있다.
서버(100)는 획득된 기준값을 전자 장치로 전송할 수 있다(S930). 다만, 상술한 바와 같이, 서버(100)는 기준값 이외에도 임팩트값을 획득하여 전자 장치(200)로 전송할 수 있음은 물론이다.
도 10은 본 개시의 일 실시예에 따른 서버 및 전자 장치의 동작을 설명하기 위한 시스템도이다.
서버(100)는 복수의 인공 지능 모델 각각에 포함된 복수의 레이어 중 대응되는 위치의 레이어들에 대한 복수의 레이어 파라미터를 획득할 수 있다(S1010).
서버(100)는 획득된 레이어 파라미터를 바탕으로, 대응되는 위치의 새로운 레이어에 대한 레이어 파라미터를 생성하기 위한 기준값을 획득할 수 있다(S1020). 서버(100)는 획득된 기준값을 전자 장치(200)로 전송할 수 있다(S1030).
전자 장치(200)는 복수의 인공 지능 모델을 이용하기 위한 사용자 명령을 입력받을 수 있다(S1040).
사용자 명령이 입력되면, 전자 장치(200)는 서버(100)로부터 수신한 기준값을 바탕으로 복수의 인공 지능 모델 각각에 포함된 레이어 중 기준값에 대응되는 레이어에 대한 레이어 파라미터를 생성할 수 있다(S1050).
전자 장치(200)는 레이어 파라미터를 바탕으로 생성된 인공 지능 모델에 입력 데이터를 입력하여 입력 데이터에 대한 출력 데이터를 획득할 수 있다(S1060).
한편, 본 개시의 실시 예를 구성하는 모든 구성 요소들이 하나로 결합하거나 결합하여 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시 예에 한정되는 것은 아니다. 즉, 본 개시의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다.
다양한 실시예에 따른 장치(예: 모듈들 또는 그 기능들) 또는 방법(예: 동작들)의 적어도 일부는 프로그램 모듈의 형태로 컴퓨터로 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장된 명령어로 구현될 수 있다. 명령어가 프로세서(예: 프로세서(130))에 의해 실행될 경우, 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다.
여기서, 프로그램은 컴퓨터가 읽을 수 있는 비일시적 기록매체에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 개시의 실시 예를 구현할 수 있다.
여기서 비일시적 판독 가능 기록매체란, 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미할 뿐만 아니라 레지스터, 캐쉬, 버퍼 등을 포함하며, 신호(signal), 전류(current) 등과 같은 전송 매개체는 포함하지 않는다.
구체적으로, 상술한 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 내장 메모리(예: 메모리(150)), 메모리 카드, ROM 또는 RAM 등과 같은 비일시적 판독가능 기록매체에 저장되어 제공될 수 있다.
또한, 개시된 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)으로 제공될 수 있다.
컴퓨터 프로그램 제품은 S/W 프로그램, S/W 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체 또는 판매자 및 구매자 간에 거래되는 상품을 포함할 수 있다.
예를 들어, 컴퓨터 프로그램 제품은 전자 장치 또는 전자 장치의 제조사 또는 전자 마켓(예, 구글 플레이 스토어, 앱 스토어)을 통해 전자적으로 배포되는 S/W 프로그램 형태의 상품(예, 다운로더블 앱)을 포함할 수 있다. 전자적 배포를 위하여, S/W 프로그램의 적어도 일부는 저장 매체에 저장되거나, 임시적으로 생성될 수 있다. 이 경우, 저장 매체는 제조사 또는 전자 마켓의 서버, 또는 중계 서버의 저장매체가 될 수 있다.
이상에서는 본 개시의 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.

Claims (15)

  1. 인공 지능 모델을 생성하기 위한 전자 장치의 제어 방법에 있어서,
    복수의 인공 지능 모델을 이용하기 위한 사용자 명령이 입력되면, 상기 복수의 인공 지능 모델을 생성하는 단계;
    상기 생성된 인공 지능 모델에 입력 데이터를 입력하여 상기 입력 데이터에 대한 출력 데이터를 획득하는 단계;를 포함하며,
    상기 생성하는 단계는,
    상기 복수의 인공 지능 모델 각각에 포함된 복수의 레이어 중 대응되는 위치의 레이어들에 대한 레이어 파라미터를 획득하기 위한 기준값을 바탕으로, 상기 복수의 인공 지능 모델 각각에 포함된 레이어 중 상기 대응되는 위치의 레이어들을 생성하는 제어 방법.
  2. 제1항에 있어서,
    상기 기준값은, 상기 대응되는 위치의 레이어들에 대한 레이어 파라미터의 평균값 및 분산값을 바탕으로 결정되는 것을 특징으로 하는 제어 방법.
  3. 제2항에 있어서,
    상기 복수의 레이어 파라미터의 분산값이 기 설정된 값 이하인 경우,
    상기 기준값은 상기 복수의 레이어 파라미터의 평균값을 바탕으로 결정되는 것을 특징으로 하는 제어 방법.
  4. 제2항에 있어서,
    상기 복수의 레이어 파라미터의 분산값이 기 설정된 값 이상인 경우,
    상기 복수의 레이어 파라미터간의 분포를 판단하는 단계;
    상기 분포가 기 설정된 조건을 만족하면, 상기 복수의 레이어 파라미터의 분산값을 바탕으로 기준값을 획득하는 단계; 를 포함하는 제어 방법.
  5. 제4항에 있어서,
    상기 분포가 상기 기 설정된 조건을 만족하지 않는 경우, 상기 복수의 레이어 파라미터의 평균값 및 상기 복수의 레이어 파라미터의 분산값을 바탕으로 기준값을 획득하는 단계; 를 포함하는 제어 방법.
  6. 제1항에 있어서,
    상기 생성하는 단계는,
    상기 전자 장치의 메모리 용량을 바탕으로 생성되는 인공 지능 모델의 개수를 판단하는 단계; 를 더 포함하는 제어 방법.
  7. 제1항에 있어서,
    상기 제어 방법은,
    상기 생성된 인공 지능 모델에 입력값이 입력되면, 상기 복수의 레이어를 앙상블(ensemble)하여 결과값을 출력하는 단계; 를 더 포함하는 제어 방법.
  8. 인공 지능 모델을 생성하기 위한 전자 장치에 있어서,
    통신부;
    메모리; 및
    외부 서버로부터, 상기 통신부를 통해 복수의 인공 지능 모델 각각에 포함된 복수의 레이어 중 대응되는 위치의 레이어들에 대한 레이어 파라미터를 획득하기 위한 기준값을 수신하는 프로세서; 를 포함하고,
    상기 프로세서는,
    복수의 인공 지능 모델을 이용하기 위한 사용자 명령이 입력되면, 상기 복수의 인공 지능 모델을 생성하고, 상기 생성된 인공 지능 모델에 입력 데이터를 입력하여 상기 입력 데이터에 대한 출력 데이터를 획득하고,
    상기 복수의 인공 지능 모델 각각에 포함된 복수의 레이어 중 대응되는 위치의 레이어들에 대한 레이어 파라미터를 획득하기 위한 기준값을 바탕으로, 상기 복수의 인공 지능 모델 각각에 포함된 레이어 중 상기 대응되는 위치의 레이어들을 생성하는 전자 장치.
  9. 제8항에 있어서,
    상기 기준값은, 상기 대응되는 위치의 레이어들에 대한 레이어 파라미터의 평균값 및 분산값을 바탕으로 결정되는 것을 특징으로 하는 전자 장치.
  10. 제9항에 있어서,
    상기 프로세서는,
    상기 복수의 레이어 파라미터의 분산값이 기 설정된 값 이하인 경우, 상기 기준값은 상기 복수의 레이어 파라미터의 평균값을 바탕으로 결정하는 것을 특징으로 하는 전자 장치.
  11. 제9항에 있어서,
    상기 프로세서는,
    상기 복수의 레이어 파라미터의 분산값이 기 설정된 값 이상인 경우, 상기 복수의 레이어 파라미터간의 분포를 판단하고, 상기 분포가 기 설정된 조건을 만족하면, 상기 복수의 레이어 파라미터의 분산값을 바탕으로 기준값을 획득하는 전자 장치.
  12. 제11항에 있어서,
    상기 프로세서는, 상기 분포가 상기 기 설정된 조건을 만족하지 않는 경우, 상기 복수의 레이어 파라미터의 평균값 및 상기 복수의 레이어 파라미터의 분산값을 바탕으로 기준값을 획득하는 전자 장치.
  13. 제8항에 있어서,
    상기 프로세서는,
    상기 메모리 용량을 바탕으로 생성되는 인공 지능 모델의 개수를 판단하는전자 장치.
  14. 제8항에 있어서,
    상기 프로세서는,
    상기 생성된 인공 지능 모델에 입력값이 입력되면, 상기 복수의 레이어를 앙상블(ensemble)하여 결과값을 출력하는 전자 장치.
  15. 서버의 제어 방법에 있어서,
    복수의 인공 지능 모델 각각에 포함된 복수의 레이어 중 대응되는 위치의 레이어들에 대한 복수의 레이어 파라미터를 획득하는 단계;
    상기 획득된 복수의 레이어 파라미터를 바탕으로, 상기 대응되는 위치의 새로운 레이어에 대한 레이어 파라미터를 생성하기 위한 기준값을 획득하는 단계; 및
    상기 획득된 기준값을 사용자 단말로 전송하는 단계;를 포함하는 제어 방법.
PCT/KR2019/006500 2018-06-19 2019-05-30 전자 장치 및 그의 제어 방법 WO2019245186A1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP19823665.5A EP3770826A4 (en) 2018-06-19 2019-05-30 ELECTRONIC DEVICE AND CONTROL PROCEDURE FOR IT
US17/053,005 US20210125028A1 (en) 2018-06-19 2019-05-30 Electronic apparatus and method of controlling thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180070374A KR102607880B1 (ko) 2018-06-19 2018-06-19 전자 장치 및 그의 제어 방법
KR10-2018-0070374 2018-06-19

Publications (1)

Publication Number Publication Date
WO2019245186A1 true WO2019245186A1 (ko) 2019-12-26

Family

ID=68983012

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/006500 WO2019245186A1 (ko) 2018-06-19 2019-05-30 전자 장치 및 그의 제어 방법

Country Status (4)

Country Link
US (1) US20210125028A1 (ko)
EP (1) EP3770826A4 (ko)
KR (1) KR102607880B1 (ko)
WO (1) WO2019245186A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112884802A (zh) * 2021-02-24 2021-06-01 电子科技大学 一种基于生成的对抗攻击方法

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102179584B1 (ko) * 2020-04-16 2020-11-18 주식회사 딥노이드 의료영상 판독을 위한 인공지능 기반의 클라우드 플랫폼 시스템
KR102212966B1 (ko) * 2020-06-05 2021-02-05 주식회사 딥노이드 개별 레이어의 예상 실행시간이 표시되는 의료영상 판독을 위한 인공지능 기반의 클라우드 플랫폼 시스템
US11782685B2 (en) * 2020-06-17 2023-10-10 Bank Of America Corporation Software code vectorization converter
KR102321607B1 (ko) * 2020-11-25 2021-11-03 국민대학교산학협력단 기계의 결함 검출 장치 및 방법
CN116827804A (zh) * 2022-03-22 2023-09-29 华为技术有限公司 一种信息传输方法及装置
KR20230142164A (ko) * 2022-04-01 2023-10-11 주식회사 Lg 경영개발원 구조식 이미지를 인식하는 인공 지능 장치 및 그 방법
KR20240041716A (ko) * 2022-09-23 2024-04-01 삼성전자주식회사 모바일 장치 및 그 동작 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101763869B1 (ko) * 2017-02-16 2017-08-07 주식회사 더디엔에이시스템 뉴로블록체인 콤비네이션을 이용한 인공신경망 모델의 자가 구성 모듈
WO2018005433A1 (en) * 2016-06-27 2018-01-04 Robin Young Dynamically managing artificial neural networks
US20180053090A1 (en) * 2016-08-22 2018-02-22 Applied Brain Research Inc. Methods And Systems For Implementing Dynamic Neural Networks
KR20180045635A (ko) * 2016-10-26 2018-05-04 삼성전자주식회사 뉴럴 네트워크 간소화 방법 및 장치
KR20180049786A (ko) * 2016-11-03 2018-05-11 삼성전자주식회사 데이터 인식 모델 구축 장치 및 이의 데이터 인식 모델 구축 방법과, 데이터 인식 장치 및 이의 데이터 인식 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016145516A1 (en) * 2015-03-13 2016-09-22 Deep Genomics Incorporated System and method for training neural networks
US10832120B2 (en) * 2015-12-11 2020-11-10 Baidu Usa Llc Systems and methods for a multi-core optimized recurrent neural network
EP3574453A1 (en) * 2017-02-23 2019-12-04 Google LLC Optimizing neural network architectures

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018005433A1 (en) * 2016-06-27 2018-01-04 Robin Young Dynamically managing artificial neural networks
US20180053090A1 (en) * 2016-08-22 2018-02-22 Applied Brain Research Inc. Methods And Systems For Implementing Dynamic Neural Networks
KR20180045635A (ko) * 2016-10-26 2018-05-04 삼성전자주식회사 뉴럴 네트워크 간소화 방법 및 장치
KR20180049786A (ko) * 2016-11-03 2018-05-11 삼성전자주식회사 데이터 인식 모델 구축 장치 및 이의 데이터 인식 모델 구축 방법과, 데이터 인식 장치 및 이의 데이터 인식 방법
KR101763869B1 (ko) * 2017-02-16 2017-08-07 주식회사 더디엔에이시스템 뉴로블록체인 콤비네이션을 이용한 인공신경망 모델의 자가 구성 모듈

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3770826A4 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112884802A (zh) * 2021-02-24 2021-06-01 电子科技大学 一种基于生成的对抗攻击方法
CN112884802B (zh) * 2021-02-24 2023-05-12 电子科技大学 一种基于生成的对抗攻击方法

Also Published As

Publication number Publication date
EP3770826A4 (en) 2021-08-04
EP3770826A1 (en) 2021-01-27
US20210125028A1 (en) 2021-04-29
KR20200003310A (ko) 2020-01-09
KR102607880B1 (ko) 2023-11-29

Similar Documents

Publication Publication Date Title
WO2019245186A1 (ko) 전자 장치 및 그의 제어 방법
WO2018117428A1 (en) Method and apparatus for filtering video
WO2019182346A1 (ko) 인공지능 모델을 이용하여 사용자 음성을 변조하기 위한 전자 장치 및 이의 제어 방법
WO2020080830A1 (en) Electronic device for reconstructing an artificial intelligence model and a control method thereof
WO2019164232A1 (ko) 전자 장치, 이의 영상 처리 방법 및 컴퓨터 판독가능 기록 매체
WO2021075735A1 (en) Training a neural network using periodic sampling over model weights
WO2019143227A1 (en) Electronic device providing text-related image and method for operating the same
WO2020091503A1 (en) Electronic apparatus and control method thereof
WO2019164120A1 (ko) 전자 장치 및 그 제어 방법
EP3539056A1 (en) Electronic apparatus and operation method thereof
WO2021020810A1 (en) Learning method of ai model and electronic apparatus
WO2020096255A1 (en) Electronic apparatus and control method thereof
WO2020045794A1 (ko) 전자 장치 및 그 제어 방법
WO2020050554A1 (ko) 전자 장치 및 그의 제어방법
EP3545685A1 (en) Method and apparatus for filtering video
WO2019190171A1 (ko) 전자 장치 및 그 제어 방법
WO2020141641A1 (ko) 수면 유도 장치
WO2020231151A1 (en) Electronic device and method of controlling thereof
WO2020149493A1 (ko) 전자 장치 및 이의 제어 방법
EP3850623A1 (en) Electronic device and method of controlling thereof
WO2020166796A1 (ko) 전자 장치 및 그 제어 방법
WO2019231068A1 (en) Electronic device and control method thereof
WO2019190243A1 (ko) 사용자와의 대화를 위한 정보를 생성하는 시스템 및 방법
WO2022039494A1 (ko) 단말의 모델을 갱신하는 서버 및 그 동작 방법
WO2022177091A1 (ko) 전자 장치 및 이의 제어 방법

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: 19823665

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019823665

Country of ref document: EP

Effective date: 20201023

NENP Non-entry into the national phase

Ref country code: DE