KR20200127381A - Apparatus and method for isolating the network structure of neural networks when deep learning in embedded systems - Google Patents

Apparatus and method for isolating the network structure of neural networks when deep learning in embedded systems Download PDF

Info

Publication number
KR20200127381A
KR20200127381A KR1020190051393A KR20190051393A KR20200127381A KR 20200127381 A KR20200127381 A KR 20200127381A KR 1020190051393 A KR1020190051393 A KR 1020190051393A KR 20190051393 A KR20190051393 A KR 20190051393A KR 20200127381 A KR20200127381 A KR 20200127381A
Authority
KR
South Korea
Prior art keywords
layer
embedded system
server
network structure
separating
Prior art date
Application number
KR1020190051393A
Other languages
Korean (ko)
Other versions
KR102239578B1 (en
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 KR1020190051393A priority Critical patent/KR102239578B1/en
Publication of KR20200127381A publication Critical patent/KR20200127381A/en
Application granted granted Critical
Publication of KR102239578B1 publication Critical patent/KR102239578B1/en

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/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)

Abstract

The present invention relates to a method for separating a network structure of a neural network during deep learning in an embedded system. The method for separating a network structure can comprise the following steps of: (a) determining a separation start layer for separating a layer for calculation in an embedded system and a layer which is separated from the embedded system to request for calculation from a server among a plurality of layers included in a network structure; and (b) separating the network structure by allocating a layer before the separation start layer to a client area, and allocating the separation start layer and a layer after the separation start layer to a server area. According to the present invention, during deep learning in the embedded system, performance can be improved without causing personal information protection problems on large-scale data collected for learning by separating the network structure based on the determined separation start layer.

Description

임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조 분리 장치 및 방법 {APPARATUS AND METHOD FOR ISOLATING THE NETWORK STRUCTURE OF NEURAL NETWORKS WHEN DEEP LEARNING IN EMBEDDED SYSTEMS}Device and method for separating the network structure of neural networks during deep learning in embedded systems {APPARATUS AND METHOD FOR ISOLATING THE NETWORK STRUCTURE OF NEURAL NETWORKS WHEN DEEP LEARNING IN EMBEDDED SYSTEMS}

본원은 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조 분리 장치 및 방법에 관한 것이다. 특히, 본원은 임베디드 시스템에서의 심층 학습(Deep Learning, 딥러닝)시 성능 향상 및 개인 정보 보호를 고려한 신경망의 네트워크 구조를 분리하는 장치 및 방법에 관한 것이다.The present application relates to an apparatus and method for separating a network structure of a neural network during deep learning in an embedded system. In particular, the present application relates to an apparatus and method for separating a network structure of a neural network in consideration of performance improvement and personal information protection during deep learning (deep learning) in an embedded system.

심층 학습(Deep Learning, 딥러닝)의 정확도는 학습에 사용되는 데이터의 양에 비례하므로, 높은 정확도를 위해서는 보다 많은 양의 데이터 수집이 필요하다.Since the accuracy of deep learning (deep learning) is proportional to the amount of data used for learning, a larger amount of data needs to be collected for high accuracy.

심층 학습과 관련하여, 클라우드 기반 기계 학습 알고리즘은 건강 앱이나 이미지 기반 검색 앱을 제공할 수 있지만, 과도하게 데이터를 수집하는 것에 의존함에 따라 사용자에게 알려지지 않은 결과를 초래할 수 있다. 또한, 인공신경망(Artificial Neural Network, ANN)을 기반으로 한 심층 학습은 이미지, 음성 및 텍스트와 같은 복잡한 데이터를 모델링, 분류 및 인식하는데 매우 널리 사용되는 방법 중 하나라 할 수 있다. 또한, 컨볼루션 신경망(Convolutional Neural Network, CNN)은 이미지 분석을 수행하는 강력한 모델 중 하나로서, 객체 인식과 같은 특정 작업에서 높은 정확도를 달성하기 위해 대규모 학습(교육) 데이터 세트를 사용하여 학습된다.Regarding deep learning, cloud-based machine learning algorithms can provide health apps or image-based search apps, but can lead to results unknown to users as they rely excessively on collecting data. In addition, deep learning based on an artificial neural network (ANN) is one of the most widely used methods for modeling, classifying, and recognizing complex data such as images, speech, and text. In addition, the Convolutional Neural Network (CNN) is one of the powerful models for performing image analysis, and is trained using large-scale training (training) data sets to achieve high accuracy in specific tasks such as object recognition.

이러한 심층 학습을 위해 대규모 사용자 데이터를 수집하는 기업(회사)는 사용자로부터 수집된 개인적으로 매우 민감한 데이터(예를 들어, 사진, 음성 녹음 등)를 무의식적으로 보관하게 되는데, 사용자는 이를 삭제하거나 사용 목적을 제한할 수 없다. 또한, 대부분의 애플리케이션은 타겟 광고를 위해 사용자로부터 수집된 개인 데이터(정보)에 의존한다. 이에 따라, 심층 학습을 위한 대규모 데이터의 수집은 개인 정보 보호에 대한 문제(사생활 보호 문제)를 일으키는 문제가 있다.Companies (companies) that collect large-scale user data for such in-depth learning unconsciously store personally very sensitive data (e.g., photos, voice recordings, etc.) collected from users. Cannot be limited. In addition, most applications rely on personal data (information) collected from users for targeted advertising. Accordingly, the collection of large-scale data for in-depth learning has a problem that causes a problem of personal information protection (privacy protection problem).

한편, 최근에는 임베디드 시스템에서 심층 모델(신경망 모델)을 사용하여 추론의 문제를 해결하는 많은 연구가 진행되고 있다. 그러나, 임베디드 시스템에서 복잡하고 정확한 심층 모델을 사용하기 위해서는 상당한 처리 및 메모리 리소스가 필요한 문제가 있으며, 클라우드 기반 모바일 컴퓨팅 모델에는 개인 정보 노출에 대한 많은 위험이 있다.On the other hand, in recent years, many studies have been conducted to solve the problem of reasoning using a deep model (neural network model) in an embedded system. However, in order to use a complex and accurate in-depth model in an embedded system, considerable processing and memory resources are required, and there is a large risk of personal information exposure in a cloud-based mobile computing model.

따라서, 임베디드 시스템에서의 심층 학습시 학습을 위해 수집된 대규모 데이터가 개인 정보 보호 문제를 일으키지 않으면서 성능을 효과적으로 향상시킬 수 있는 기술이 요구된다.Accordingly, there is a need for a technology capable of effectively improving performance without causing personal information protection problems of large-scale data collected for learning during deep learning in an embedded system.

본원의 배경이 되는 기술은 문헌 [LI, M., LAI, L., SUDA, N., CHANDRA, V., AND PAN, D. Z. "Privynet: A flexible framework for privacy-preserving deep neural network training with a fine-grained privacy control", arXiv preprint arXiv:1709.06161 (2017).]에 개시되어 있다.The technology behind the present application is described in [LI, M., LAI, L., SUDA, N., CHANDRA, V., AND PAN, DZ "Privynet: A flexible framework for privacy-preserving deep neural network training with a fine -grained privacy control", arXiv preprint arXiv:1709.06161 (2017).].

본원은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 임베디드 시스템에서의 심층 학습시 학습을 위해 수집된 대규모 데이터가 개인 정보 보호 문제를 일으키지 않으면서 성능을 효과적으로 향상시킬 수 있는 신경망의 네트워크 구조 분리 장치 및 방법을 제공하려는 것을 목적으로 한다.The present application is to solve the problems of the prior art described above, and a network structure separation device of a neural network capable of effectively improving performance without causing personal information protection problems of large-scale data collected for learning during deep learning in an embedded system. And to provide a method.

다만, 본원의 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.However, the technical problem to be achieved by the embodiments of the present application is not limited to the technical problems as described above, and other technical problems may exist.

상기한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본원의 제1 측면에 따른 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조를 분리하는 방법은, (a) 상기 네트워크 구조에 포함된 복수의 레이어 중 상기 임베디드 시스템에서 연산하는 레이어와 상기 임베디드 시스템으로부터 분리하여 서버에 연산 요청할 레이어를 구분하는 분리 시작 레이어를 결정하는 단계; 및 (b) 상기 분리 시작 레이어 이전의 레이어를 클라이언트 영역에 할당하고, 상기 분리 시작 레이어와 상기 분리 시작 레이어 이후의 레이어를 상기 서버 영역에 할당하여 상기 네트워크 구조를 분리하는 단계를 포함할 수 있다.As a technical means for achieving the above technical problem, a method for separating a network structure of a neural network during deep learning in an embedded system according to the first aspect of the present application includes: (a) the plurality of layers included in the network structure Determining a separation start layer for dividing a layer to be calculated in the embedded system and a layer to be requested to be calculated by the server by separating from the embedded system; And (b) allocating a layer before the separation start layer to a client area, and separating the network structure by allocating the separation start layer and a layer after the separation start layer to the server area.

상기한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본원의 제2 측면에 따른 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조를 분리하는 장치는, 상기 네트워크 구조에 포함된 복수의 레이어 중 상기 임베디드 시스템에서 연산하는 레이어와 상기 임베디드 시스템으로부터 분리하여 서버에 연산 요청할 레이어를 구분하는 분리 시작 레이어를 결정하는 결정부; 및 상기 분리 시작 레이어 이전의 레이어를 클라이언트 영역에 할당하고, 상기 분리 시작 레이어와 상기 분리 시작 레이어 이후의 레이어를 상기 서버 영역에 할당하여 상기 네트워크 구조를 분리하는 분리 제어부를 포함할 수 있다.As a technical means for achieving the above technical problem, the device for separating the network structure of a neural network during deep learning in the embedded system according to the second aspect of the present application is, in the embedded system among a plurality of layers included in the network structure. A determining unit for determining a separation start layer for separating a layer to be computed from the embedded system and a layer to request an operation from the server; And a separation control unit for separating the network structure by allocating a layer before the separation start layer to a client area, and allocating the separation start layer and a layer after the separation start layer to the server area.

상기한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본원의 제3 측면에 따른 컴퓨터 프로그램은, 본원의 제1 측면에 따른 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조를 분리하는 방법을 실행시키기 위하여 기록매체에 저장되는 것일 수 있다.As a technical means for achieving the above technical task, the computer program according to the third aspect of the present application is recorded to execute the method of separating the network structure of the neural network during deep learning in the embedded system according to the first aspect of the present application. It may be stored in a medium.

상술한 과제 해결 수단은 단지 예시적인 것으로서, 본원을 제한하려는 의도로 해석되지 않아야 한다. 상술한 예시적인 실시예 외에도, 도면 및 발명의 상세한 설명에 추가적인 실시예가 존재할 수 있다.The above-described problem solving means are merely exemplary and should not be construed as limiting the present application. In addition to the above-described exemplary embodiments, additional embodiments may exist in the drawings and detailed description of the invention.

전술한 본원의 과제 해결 수단에 의하면, 결정된 분리 시작 레이어를 기반으로 네트워크 구조를 분리함으로써, 임베디드 시스템에서의 심층 학습시 학습을 위해 수집된 대규모 데이터가 개인 정보 보호 문제를 일으키지 않으면서 성능이 향상되도록 할 수 있다.According to the above-described problem solving means of the present application, by separating the network structure based on the determined separation start layer, the large-scale data collected for learning during deep learning in the embedded system can improve performance without causing personal information protection problems. can do.

전술한 본원의 과제 해결 수단에 의하면, 개인 정보 보호(Privacy Preserving)와 성능 향상을 고려한 네트워크 구조의 분리를 통해, 임베디드 시스템이 입력 데이터를 신경망 모델에서 결정된 분리 시작 레이어 이전의 레이어들에 통과시켜 피쳐맵을 생성하고 생성된 피쳐맵만이 서버로 전송되도록 할 수 있다. 이러한 본원은 개인 정보 보호의 향상뿐만 아니라 자원에 제약이 있는 임베디드 시스템에서의 네트워크 트래픽과 부하량을 효과적으로 줄일 수 있다.According to the above-described problem solving means of the present application, through the separation of the network structure in consideration of privacy preserving and performance improvement, the embedded system passes the input data to the layers before the separation start layer determined in the neural network model, You can create a map and have only the generated feature maps sent to the server. This application not only improves personal information protection, but also effectively reduces network traffic and load in an embedded system with limited resources.

다만, 본원에서 얻을 수 있는 효과는 상기된 바와 같은 효과들로 한정되지 않으며, 또 다른 효과들이 존재할 수 있다.However, the effect obtainable in the present application is not limited to the effects as described above, and other effects may exist.

도 1은 본원의 일 실시예에 따른 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조를 분리하는 장치의 개략적인 구성을 나타낸 블록도이다.
도 2는 본원의 일 실시예에 따른 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조를 분리하는 장치에 의한 네트워크 구조의 분리 예를 설명하기 위한 도면이다.
도 3은 본원의 일 실시예에 따른 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조를 분리하는 장치에서 고려되는 신경망에 포함된 복수의 레이어의 예를 나타낸 도면이다.
도 4는 본원의 일 실시예에 따른 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조를 분리하는 장치에서 분리 시작 레이어를 결정하는 과정의 흐름을 개략적으로 나타낸 도면이다.
도 5는 본원의 일 실시예에 따른 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조를 분리하는 장치에 의해 분리된 네트워크 구조를 기반으로 한 입력 데이터의 데이터 처리 흐름을 개략적으로 나타낸 도면이다.
도 6은 본원의 일 실시예에 따른 본원의 일 실시예에 따른 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조를 분리하는 방법에 대한 동작 흐름도이다.
1 is a block diagram showing a schematic configuration of an apparatus for separating a network structure of a neural network during deep learning in an embedded system according to an embodiment of the present application.
FIG. 2 is a diagram illustrating an example of separating a network structure by a device separating a network structure of a neural network during deep learning in an embedded system according to an embodiment of the present application.
3 is a diagram illustrating an example of a plurality of layers included in a neural network considered in a device for separating a network structure of a neural network during deep learning in an embedded system according to an embodiment of the present application.
4 is a diagram schematically illustrating a flow of a process of determining a separation start layer in a device for separating a network structure of a neural network during deep learning in an embedded system according to an embodiment of the present application.
5 is a diagram schematically illustrating a data processing flow of input data based on a network structure separated by a device for separating a network structure of a neural network during deep learning in an embedded system according to an embodiment of the present application.
6 is a flowchart illustrating a method of separating a network structure of a neural network during deep learning in an embedded system according to an embodiment of the present application according to an embodiment of the present application.

아래에서는 첨부한 도면을 참조하여 본원이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본원의 실시예를 상세히 설명한다. 그러나 본원은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본원을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, exemplary embodiments of the present application will be described in detail with reference to the accompanying drawings so that those of ordinary skill in the art may easily implement the present application. However, the present application may be implemented in various different forms and is not limited to the embodiments described herein. In addition, in the drawings, parts not related to the description are omitted in order to clearly describe the present application, and similar reference numerals are attached to similar parts throughout the specification.

본원 명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결" 또는 "간접적으로 연결"되어 있는 경우도 포함한다. Throughout the present specification, when a part is said to be "connected" with another part, it is not only "directly connected", but also "electrically connected" or "indirectly connected" with another element interposed therebetween. "Including the case.

본원 명세서 전체에서, 어떤 부재가 다른 부재 "상에", "상부에", "상단에", "하에", "하부에", "하단에" 위치하고 있다고 할 때, 이는 어떤 부재가 다른 부재에 접해 있는 경우뿐 아니라 두 부재 사이에 또 다른 부재가 존재하는 경우도 포함한다.Throughout this specification, when a member is positioned "on", "upper", "upper", "under", "lower", and "lower" of another member, this means that a member is located on another member. It includes not only the case of contacting but also the case of another member being present between the two members.

본원 명세서 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification of the present application, when a certain part "includes" a certain component, it means that other components may be further included rather than excluding other components unless specifically stated to the contrary.

도 1은 본원의 일 실시예에 따른 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조를 분리하는 장치(100)의 개략적인 구성을 나타낸 블록도이다. 도 2는 본원의 일 실시예에 따른 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조를 분리하는 장치(100)에 의한 네트워크 구조의 분리 예를 설명하기 위한 도면이다.1 is a block diagram showing a schematic configuration of an apparatus 100 for separating a network structure of a neural network during deep learning in an embedded system according to an embodiment of the present application. 2 is a diagram for explaining an example of separating a network structure by the apparatus 100 for separating a network structure of a neural network during deep learning in an embedded system according to an embodiment of the present application.

이하에서는 본원의 일 실시예에 따른 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조를 분리하는 장치(100)를 설명의 편의상 본 장치(100)라 하기로 한다.Hereinafter, the device 100 for separating the network structure of a neural network during deep learning in the embedded system according to an embodiment of the present application will be referred to as the device 100 for convenience of description.

도 1 및 도 2를 참조하면, 본 장치(100)는 임베디드 시스템에서의 심층 학습(Deep Learning, 딥러닝)시 개인 정보 보호(Privacy Preserving)가 가능하면서 성능이 향상되도록 신경망(1)의 네트워크 구조(5)를 분리할 수 있다.Referring to FIGS. 1 and 2, the device 100 provides a network structure of a neural network 1 to improve performance while protecting personal information during deep learning (deep learning) in an embedded system. (5) can be separated.

본 장치(100)에서 임베디드 시스템에서의 심층 학습시 고려되는 신경망(1)은 일예로 컨볼루션(Convolution) 레이어와 풀링(Pooling) 레이어를 포함하는 컨볼루션 신경망(Convolutional Neural Network, CNN, 합성곱 신경망)일 수 있다. 다만, 이에만 한정되는 것은 아니고, 본 장치(100)에서 임베디드 시스템에서의 심층 학습시 고려되는 신경망(1)으로는 인공신경망(Artificial Neural Network, ANN), 순환신경망(RNN, Recurrent Neural Network), 딥 신경망(Deep Neural Network) 등 종래에 이미 공지되었거나 향후 개발되는 다양한 신경망(신경망 모델)이 적용될 수 있다. 이하 설명에서는 설명의 편의상, 본 장치(100)에서 고려되는 신경망(1)이 컨볼루션 신경망(CNN)인 것으로 예시하기로 한다.The neural network (1) considered for deep learning in the embedded system in the device 100 is, for example, a convolutional neural network (CNN, convolutional neural network) including a convolution layer and a pooling layer. ) Can be. However, the present invention is not limited thereto, and examples of neural networks (1) considered during deep learning in the embedded system in the device 100 include artificial neural networks (ANNs), recurrent neural networks (RNNs), Various neural networks (neural network models) already known or developed in the future, such as a deep neural network, can be applied. In the following description, for convenience of explanation, the neural network 1 considered in the apparatus 100 will be illustrated as a convolutional neural network (CNN).

본 장치(100)에서 고려되는 신경망(1)은 신경망 모델, 네트워크 구조, 네트워크 모델 등으로 달리 지칭될 수 있다.The neural network 1 considered in the device 100 may be differently referred to as a neural network model, a network structure, a network model, and the like.

일반적으로 CNN은 이미지의 특징을 추출하는 특징 추출(Feature Extraction) 부분과 클래스를 분류하는 분류(classification) 부분으로 구분될 수 있다.In general, the CNN can be divided into a feature extraction part for extracting features of an image and a classification part for classifying a class.

특징 추출 부분은 컨볼루션 레이어와 풀링 레이어가 여러 겹 쌓는(stack) 형태로 이루어진다. 컨볼루션 레이어는 입력 데이터에 필터를 적용한 후 활성화 함수를 반영하는 요소로서, CNN에서 필수적인 요소라 할 수 있다. 컨볼루션 레이어 다음에 위치하는 풀링 레이어는 CNN에서 선택적으로 적용 가능한 요소라 할 수 있으며, 본 장치(100)에서 고려되는 신경망(1)은 일예로 풀링 레이어가 포함된 CNN인 것으로 설명하기로 한다.The feature extraction part is formed in a form in which a convolutional layer and a pooling layer are stacked. The convolutional layer is an element that reflects the activation function after applying a filter to the input data, and can be said to be an essential element in CNN. The pooling layer positioned after the convolutional layer may be regarded as an element that can be selectively applied in the CNN, and the neural network 1 considered in the apparatus 100 will be described as being a CNN including a pooling layer as an example.

특징 추출 부분에서 컨볼루션 레이어는 컨볼루션 연산을 통해 특징들을 추출하는 레이어로서, 규칙적인 패턴을 가진 곱셈이 이루어질 수 있다. 컨볼루션 레이어는 필터(Filter) 크기, 스트라이드(Stride), 패딩(Padding) 적용 여부, 맥스 풀링(Max Pooling) 크기에 따라 출력 데이터의 모양(Shape)이 변경될 수 있다. 특징 추출 부분에서 풀링 레이어는 컨볼루션 레이어의 출력 데이터(Feature Map)를 입력으로 받아 출력 데이터(Feature Map)의 크기를 줄이거나 특정 데이터를 강조하는 용도로 사용되는 레이어를 의미할 수 있다. 분류 부분은 이미지 분류를 위한 전연결(Fully Connected) 레이어로 구성되며 Softmax를 적용해 이미지 분류가 이루어질 수 있다.In the feature extraction part, the convolution layer is a layer that extracts features through a convolution operation, and multiplication having a regular pattern can be performed. In the convolutional layer, the shape of the output data may be changed according to the size of a filter, stride, whether or not padding is applied, and the size of max pooling. In the feature extraction part, the pooling layer may mean a layer used to reduce the size of the output data (Feature Map) or to emphasize specific data by receiving output data (Feature Map) of the convolution layer as input. The classification part consists of a fully connected layer for image classification, and image classification can be performed by applying Softmax.

본 장치(100)에서는 신경망(1)의 네트워크 구조(5)의 분리와 관련하여, CNN 내에서 특히 컨볼루션 레이어와 풀링 레이어가 포함된 특징 추출 부분에 대한 분리에 대하여 설명하기로 한다. 즉, 본 장치(100)에서 신경망(1)의 네트워크 구조(5)의 분리는 예시적으로 CNN 내 특징 추출 부분에 대한 분리를 의미할 수 있다.In the present apparatus 100, in relation to the separation of the network structure 5 of the neural network 1, a description will be given of the separation of the feature extraction part including the convolutional layer and the pooling layer in the CNN. That is, the separation of the network structure 5 of the neural network 1 in the present apparatus 100 may exemplarily mean separation of a feature extraction part in the CNN.

CNN은 입력 데이터에 대한 이미지 특징 추출을 위해 필터를 이용해 입력 데이터를 순회하며 합성곱(컨볼루션)을 계산하고, 그 계산 결과를 이용하여 피쳐맵(Feature map)을 생성(출력)할 수 있다. 달리 표현하여, 신경망(1)은 일반적으로 입력 데이터(2)가 수신되면, 특징 추출 부분에 의하여 신경망(1)의 네트워크 구조(5)에 포함된 복수의 레이어(10)를 통해 합성곱(컨볼루션)을 계산하고, 그 계산 결과를 기반으로 최종적으로 피쳐맵(최종 피쳐맵, Final Feature Map)을 생성해 출력할 수 있다.CNN traverses the input data using a filter to extract image features of the input data, calculates convolutions (convolutions), and can generate (output) a feature map using the calculation result. In other words, when the input data 2 is received, the neural network 1 generally performs a convolution (convolute) through a plurality of layers 10 included in the network structure 5 of the neural network 1 by a feature extraction part. Solution), and finally a feature map (final feature map) can be generated and output based on the calculation result.

신경망(1)은 입력 데이터가 여러 채널을 갖는 경우, 필터가 각 채널을 순회하며 합성곱을 계산함으로써, 채널별 피쳐맵(특징맵)을 생성(출력)할 수 있다. 다시 말해, 신경망(1)에 포함된 컨볼루션 레이어 각각은, 해당 컨볼루션 레이어에 입력된 데이터에 대하여 필터 적용을 통해 합성곱을 계산함으로써 피쳐맵(특징맵)을 생성(출력)할 수 있다. 즉, 신경망(1)에 포함된 컨볼루션 레이어 각각으로부터 피쳐맵이 생성되어 출력될 수 있다. When the input data has multiple channels, the neural network 1 may generate (output) a feature map (feature map) for each channel by calculating a convolution while a filter traverses each channel. In other words, each of the convolutional layers included in the neural network 1 may generate (output) a feature map (feature map) by calculating a convolution by applying a filter to data input to the corresponding convolutional layer. That is, a feature map may be generated and output from each of the convolutional layers included in the neural network 1.

한편, 종래에는 신경망을 이용한 심층 학습시의 정확도를 높이기 위해 학습을 위한 데이터를 대규모로 수집하고, 수집된 대규모 데이터(즉, 방대한 양의 데이터)를 이용해 심층 학습을 수행한다. 그런데, 심층 학습을 위한 대규모 데이터의 수집을 위해 사용자들로부터 과도하게(무분별하게) 데이터를 수집하는 경우, 수집된 데이터 내에 정보 공개시 사용자가 민감해 할 수 있는 개인 데이터(예를 들어, 사진, 음성 녹음 등)가 포함되어 있을 수 있으며, 이러한 민감한 개인 데이터를 이용한 심층 학습의 수행은 개인 정보에 대한 보호가 이루어지지 못하는 문제, 즉 개인 정보 보호(사생활 보호, Privacy Preserving)의 문제를 일으키고 있다.Meanwhile, in the related art, in order to increase the accuracy of deep learning using a neural network, data for learning is collected on a large scale, and deep learning is performed using the collected large-scale data (ie, a huge amount of data). However, in the case of excessively (indiscriminately) collecting data from users for the collection of large-scale data for in-depth learning, personal data (e.g., photos, Voice recording, etc.) may be included, and the in-depth learning using such sensitive personal data raises a problem of not being able to protect personal information, that is, a problem of personal information protection (Privacy Preserving).

이에, 본원은 심층 학습(Deep Learning)에서 학습을 위해 필요한 대규모 데이터의 수집시 나타나는 개인 정보 보호 문제를 해결하면서 성능을 향상시킬 수 있는 임베디드 시스템에서의 심층 학습시 신경망(1)의 네트워크 구조(5)를 분리하는 장치(본 장치, 100), 및 본 장치(100)에 의해 분리된 네트워크 구조(5)에 대하여 제안한다. 본 장치(100)에 대한 구체적인 설명은 다음과 같다.Therefore, the present invention solves the personal information protection problem that occurs when collecting large-scale data necessary for learning in Deep Learning, while improving the performance of the neural network for deep learning in an embedded system (1). A device for separating) (the device 100), and a network structure 5 separated by the device 100 are proposed. A detailed description of the device 100 is as follows.

본 장치(100)는 결정부(110) 및 분리 제어부(120)를 포함할 수 있다.The device 100 may include a determination unit 110 and a separation control unit 120.

결정부(110)는 네트워크 구조(5)에 포함된 복수의 레이어(10) 중 임베디드 시스템에서 연산하는 레이어(11)와 임베디드 시스템으로부터 분리하여 서버에 연산 요청할 레이어(12)를 구분하는 분리 시작 레이어(21)를 결정할 수 있다.The determination unit 110 is a separation start layer that separates the layer 11 calculated by the embedded system from among the plurality of layers 10 included in the network structure 5 and the layer 12 to request calculation from the server by separating it from the embedded system. (21) can be determined.

여기서, 복수의 레이어(10)는 네트워크 구조(5)에 포함된 레이어들, 달리 표현해 신경망(1)에 포함된 레이어들을 의미할 수 있다. 즉, 본 장치(100)에서 네트워크 구조(5)는 신경망(1) 구조라 달리 표현될 수 있다.Here, the plurality of layers 10 may refer to layers included in the network structure 5, or, in other words, layers included in the neural network 1. That is, in the present apparatus 100, the network structure 5 may be differently expressed as a neural network 1 structure.

구체적인 예로, 신경망(1)이 CNN 인 경우, 복수의 레이어(10)는 일예로 CNN 내 특징 추출 부분에 대응하는(특징 추출 부분에 속한) 복수의 레이어일 수 있다. 즉, 복수의 레이어(10)에는 적어도 하나의 컨볼루션 레이어(CONV)와 적어도 하나의 풀링 레이어(POOL)가 포함될 수 있으나, 이에 한정되는 것은 아니다.As a specific example, when the neural network 1 is a CNN, the plurality of layers 10 may be a plurality of layers corresponding to the feature extraction portion in the CNN (pertaining to the feature extraction portion), for example. That is, the plurality of layers 10 may include at least one convolutional layer CONV and at least one pooling layer POOL, but is not limited thereto.

본 장치(100)에서 임베디드 시스템이라 함은 클라이언트(Client)를 의미(클라이언트에 포함되는 시스템을 의미)할 수 있다. 본 장치(100)는 일예로 임베디드 시스템(즉, 클라이언트)에 구비되는 장치일 수 있다.In the device 100, the term "embedded system" may mean a client (meaning a system included in the client). The device 100 may be a device provided in an embedded system (ie, a client), for example.

분리 제어부(120)는 결정부(110)에서 분리 시작 레이어(21)가 결정되면, 분리 시작 레이어 이전의 레이어(21a)를 클라이언트 영역(A)에 할당하고, 분리 시작 레이어(21)와 분리 시작 레이어 이후의 레이어(21b)를 서버 영역(B)에 할당하여 네트워크 구조(5)를 분리할 수 있다.When the separation start layer 21 is determined by the determination unit 110, the separation control unit 120 allocates the layer 21a before the separation start layer to the client area A, and starts separation from the separation start layer 21 The network structure 5 may be separated by allocating a layer 21b after the layer to the server area B.

이에 따르면, 앞서 설명한 임베디드 시스템(클라이언트)에서 연산하는 레이어(11)는 클라이언트 영역(A)에 할당되는 분리 시작 레이어 이전의 레이어(21a)에 대응될 수 있다. 또한, 앞서 설명한 서버에 연산 요청할 레이어(12)는 분리 시작 레이어(21)와 분리 시작 레이어 이후의 레이어(21b)를 포함하는 레이어에 대응될 수 있다.According to this, the layer 11 calculated by the above-described embedded system (client) may correspond to the layer 21a before the separation start layer allocated to the client area A. In addition, the layer 12 to request an operation from the server described above may correspond to a layer including the separation start layer 21 and a layer 21b after the separation start layer.

분리 제어부(120)는 복수의 레이어(10)에 대응하는 네트워크 구조(5)를 클라이언트 영역(A)과 서버 영역(B)을 포함하도록 분리(구분)한 이후, 클라이언트 영역(A)에 할당된 레이어들(21a)을 임베디드 시스템(클라이언트)으로 제공하고, 서버 영역(B)에 할당된 레이어들(21, 21b)을 서버로 제공할 수 있다. After separating (dividing) the network structure 5 corresponding to the plurality of layers 10 to include the client area A and the server area B, the separated control unit 120 is assigned to the client area A. The layers 21a may be provided as an embedded system (client), and the layers 21 and 21b allocated to the server area B may be provided as a server.

이때, 분리 제어부(120)는 레이어의 제공시 레이어 뿐만 아니라 그에 대응하는 가중치를 함께 제공할 수 있다. 즉, 분리 제어부(120)는 클라이언트 영역(A)에 할당된 레이어들(21a) 및 해당 레이어들(21a)에 대응하는 가중치를 임베디드 시스템(클라이언트)으로 제공할 수 있다. 또한, 분리 제어부(120)는 서버 영역(B)에 할당된 레이어들(21, 21b) 및 해당 레이어들(21, 21b)에 대응하는 가중치를 서버로 제공할 수 있다.In this case, when providing the layer, the separation control unit 120 may provide not only the layer but also a weight corresponding thereto. That is, the separation control unit 120 may provide the layers 21a allocated to the client area A and weights corresponding to the layers 21a to the embedded system (client). In addition, the separation control unit 120 may provide the layers 21 and 21b allocated to the server area B and weights corresponding to the corresponding layers 21 and 21b to the server.

달리 말해, 본 장치(100)가 일예로 임베디드 시스템에 구비되는 장치임을 고려하면, 분리 제어부(120)는 클라이언트 영역(A)에 할당된 레이어들(21a) 및 해당 레이어들(21a)에 대응하는 가중치는 자체적으로 가지고 있고, 서버 영역(B)에 할당된 레이어들(21, 21b) 및 해당 레이어들(21, 21b)에 대응하는 가중치는 네트워크 소켓을 통해 서버로 제공(전달)할 수 있다.In other words, considering that the device 100 is, for example, a device included in an embedded system, the separation control unit 120 includes the layers 21a allocated to the client area A and the corresponding layers 21a. The weight has its own weight, and the weights corresponding to the layers 21 and 21b allocated to the server area B and the corresponding layers 21 and 21b can be provided (delivered) to the server through a network socket.

이하에서는 결정부(110)에서 분리 시작 레이어(21)를 결정하는 과정에 대하여 보다 상세히 설명하기로 한다.Hereinafter, a process of determining the separation start layer 21 by the determination unit 110 will be described in more detail.

도 3은 본원의 일 실시예에 따른 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조를 분리하는 장치(100)에서의 네트워크 구조(5)에 포함된 복수의 레이어(10)의 예를 나타낸 도면이다.3 is a diagram illustrating an example of a plurality of layers 10 included in the network structure 5 in the apparatus 100 for separating the network structure of a neural network during deep learning in an embedded system according to an embodiment of the present application .

도 3을 참조하면, 네트워크 구조(5)(즉, 신경망 구조)에는 복수의 레이어(10)(31, 32, 33, 34, 35, 36, …, 3n)가 포함될 수 있다.Referring to FIG. 3, a network structure 5 (ie, a neural network structure) may include a plurality of layers 10 (31, 32, 33, 34, 35, 36, ..., 3n).

이하에서는 본원의 보다 쉬운 이해를 위해, 복수의 레이어(10) 중 레이어(31)가 0번 레이어(31), 레이어(33)가 n번 레이어(33), 레이어(34)가 (n+1)번 레이어(34), 레이어(3n)이 마지막 레이어(마지막번 레이어, 3n)인 것으로 예를 들어 설명하기로 한다. 여기서, 0번, n번 등이라 함은 복수의 레이어들에 순차적으로 부여된 식별번호(식별부호) 등을 의미할 수 있다.Hereinafter, for easier understanding of the present application, among the plurality of layers 10, the layer 31 is the 0th layer 31, the layer 33 is the nth layer 33, and the layer 34 is (n+1). It will be described as an example that the )-th layer 34 and the layer 3n are the last layer (the last layer, 3n). Here, the 0th, nth, etc. may mean an identification number (identification code) sequentially assigned to a plurality of layers.

결정부(110)는, 신경망(1)에 대한 입력 데이터(Input Data, 2)가 복수의 레이어(10) 중 n번 레이어(33)까지 통과함으로써 생성(출력)된 피쳐맵(33a)이 입력 데이터(2)로의 복원이 불가능한 복원 불가 피쳐맵인 복원 불가 조건을 충족하면(즉, n번 레이어까지 통과함으로써 생성된 피쳐맵이 복원 불가 피쳐맵인 경우), n번 레이어(33)의 다음 레이어인 (n+1)번 레이어(34)를 분리 시작 레이어(21)의 후보 레이어로서 고려할 수 있다.The decision unit 110 inputs the feature map 33a generated (output) by passing the input data 2 for the neural network 1 to the n-th layer 33 among the plurality of layers 10 If the condition that cannot be restored, which is a non-recoverable feature map that cannot be restored to data (2), is satisfied (i.e., the feature map created by passing through layer n is a non-recoverable feature map), the next layer of layer n (33) The in (n+1)-th layer 34 may be considered as a candidate layer for the separation start layer 21.

여기서, 신경망(1)에 입력되는 입력 데이터(2)는 일예로 이미지 데이터일 수 있으며, 이에 한정되는 것은 아니고, 학습을 위한 다양한 종류(유형)의 데이터가 고려될 수 있다.Here, the input data 2 input to the neural network 1 may be, for example, image data, and is not limited thereto, and various types (types) of data for learning may be considered.

또한, 복수의 레이어(10) 중 입력 데이터(2)로의 복원이 불가능한 복원 불가 피쳐맵을 생성(출력)하는 레이어는 복원 불가 레이어라 지칭될 수 있다. 일예로, n번 레이어(33)까지 통과함으로써 생성(출력)된 피쳐맵(33a)이 입력 데이터(2)로의 복원이 불가능한 복원 불가 피쳐맵인 복원 불가 조건을 충족하는 경우, n번 레이어(33) 및 그 이후의 레이어들이 복원 불가 레이어일 수 있다.Also, a layer that generates (outputs) a non-recoverable feature map that cannot be restored to the input data 2 among the plurality of layers 10 may be referred to as a non-recoverable layer. For example, if the feature map 33a created (output) by passing through the nth layer 33 satisfies the condition of non-recoverable feature map that cannot be restored to the input data 2, the n-th layer 33 ) And subsequent layers may be non-reconstruction layers.

또한, 복수의 레이어(10)에 포함된 복원 불가 레이어들 중 처음에 위치한 첫번째 복원 불가 레이어는 p 번 레이어라 지칭될 수 있다. 즉, p는 복수의 레이어(10) 내 복원 불가 피쳐맵을 생성하는 복원 불가 레이어들 중 처음에 위치한 첫번째 복원 불가 레이어의 위치를 의미할 수 있다. 즉, p는 복원되지 않는 최소한의 p번 레이어를 의미할 수 있다.Also, a first non-recoverable layer located at the beginning among the non-recoverable layers included in the plurality of layers 10 may be referred to as a p-th layer. That is, p may mean the position of the first non-recoverable layer located first among the non-recoverable layers that generate the unrecoverable feature map in the plurality of layers 10. That is, p may mean the least p-th layer that is not restored.

예시적으로, 복수의 레이어(10) 중 0번 레이어(31), 1번 레이어(32) 및 2번 레이어(33)가 입력 데이터(2)로의 복원이 가능한 복원 가능 피쳐맵을 생성(출력)하는 복원 가능 레이어이고, 3번 레이어(34) 내지 마지막 레이어(3n)가 입력 데이터(2)로의 복원이 불가능한 복원 불가 피쳐맵을 생성(출력)하는 복원 불가 레이어라고 가정하자. 이러한 경우, p 번 레이어는 복원 불가 레이어(34, 35, …, 3n) 중 처음 위치한 레이어인 3번 레이어(34)를 의미할 수 있다.For example, layer 0 (31), layer 1 (32), and layer 2 (33) among a plurality of layers (10) generate (output) a restoreable feature map that can be restored to input data (2). It is assumed that the third layer 34 to the last layer 3n is a restorable layer that generates (outputs) a restorable feature map that cannot be restored to the input data 2. In this case, the p-th layer may mean the third layer 34 that is the first layer among the non-recoverable layers 34, 35, ..., 3n.

이에 따르면, 신경망(1)에 대한 입력 데이터(2)가 복수의 레이어(10) 중 n번 레이어(33)까지 통과함으로써 생성된 피쳐맵(33a)이 입력 데이터(2)로의 복원이 불가능한 복원 불가 피쳐맵인 복원 불가 조건을 충족함에 따라 n번 레이어(33)가 복원 불가 레이어이면서 p번 레이어 이상인 것으로 식별되면, 결정부(110)는 n번 레이어(33)의 다음 레이어인 (n+1)번 레이어(34)를 분리 시작 레이어(21)의 후보 레이어로서 고려할 수 있다.According to this, the feature map 33a generated by passing the input data 2 for the neural network 1 to the nth layer 33 among the plurality of layers 10 cannot be restored to the input data 2. If the n-th layer 33 is identified as being a non-recoverable layer and higher than the p-th layer as the feature map satisfies the non-recoverable condition, the decision unit 110 is the next layer (n+1) of the n-th layer 33. Layer 34 may be considered as a candidate layer for the separation start layer 21.

만약, n번 레이어(33)까지 통과함으로써 생성(출력)된 피쳐맵(33a)이 입력 데이터(2)로의 복원이 불가능한 복원 불가 피쳐맵인 복원 불가 조건을 충족하지 않으면, 결정부(110)는 n번 레이어(33)가 p번 레이어 이상이 아닌 것으로 판단하여, n이 1 증가된 레이어가 복원 불가 조건을 충족하는지 판단할 수 있다. 달리 말해, n번 레이어(33)가 p번 레이어 이상이 아닌 경우, 결정부(110)는 n을 1 증가시켜(즉, n에 n+1을 적용하여), n번 레이어(33)의 다음 레이어인 (n+1)번 레이어(34)가 복원 불가 조건을 충족하는 p번 레이어 이상인지 판단할 수 있다. If the feature map 33a generated (output) by passing up to the nth layer 33 does not meet the restoring impossibility condition, which is an unrecoverable feature map that cannot be restored to the input data 2, the determination unit 110 By determining that the n-th layer 33 is not greater than or equal to the p-th layer, it may be determined whether the layer whose n is increased by 1 satisfies the reconstruction impossibility condition. In other words, when the nth layer 33 is not more than the pth layer, the determination unit 110 increases n by 1 (that is, by applying n+1 to n), and the next layer after the nth layer 33 It may be determined whether the (n+1)-th layer 34, which is the layer, is greater than or equal to the p-th layer that satisfies the reconstruction impossibility condition.

여기서, (n+1)번 레이어(34)가 복원 불가 조건을 충족하지 않으면(즉, p번 레이어 이상이 아니면), 결정부(110)는 n을 1 증가시켜(즉, n에 n+1을 적용하여), (n+1)번 레이어(34)의 다음 레이어인 (n+2)번 레이어(35)가 복원 불가 조건을 충족하는 p번 레이어인지 판단할 수 있다. 한편, (n+1)번 레이어(34)가 복원 불가 조건을 충족하면(즉, p번 레이어 이상이면) 결정부(110)는 (n+1)번 레이어(34) 다음 레이어인 (n+2)번 레이어(35)를 분리 시작 레이어의 후보 레이어로서 고려할 수 있다.Here, if the (n+1)-th layer 34 does not satisfy the restoration impossibility condition (that is, if it is not more than the p-th layer), the determination unit 110 increases n by 1 (that is, n+1 to n). Is applied), it may be determined whether the (n+2)-th layer 35, which is the next layer after the (n+1)-th layer 34, is the p-th layer that satisfies the reconstruction impossibility condition. On the other hand, if the (n+1) layer 34 satisfies the restoring impossibility condition (i.e., if it is greater than or equal to the p layer), the determination unit 110 is Layer 2) 35 may be considered as a candidate layer for the separation start layer.

이처럼, 결정부(110)는 해당 레이어가 입력 데이터로의 복원이 불가능한 복원 불가 피쳐맵을 생성(출력)하는 복원 불가 레이어(p번 레이어 이상인 레이어)가 아니면, 레이어 인덱스인 n을 1 증가시켜 해당 레이어의 다음 레이어가 복원 불가 레이어(p번 레이어 이상인 레이어)인지 판단할 수 있다. 결정부(110)는 해당 레이어가 복원 불가 조건을 충족하는 복원 불가 레이어인지 여부를 판단(특히, p번 레이어 이상인지 여부를 판단)함으로써, 해당 레이어의 다음 레이어를 분리 시작 레이어의 후보 레이어로서 고려할 수 있다.As such, if the corresponding layer is not a non-recoverable layer (a layer greater than or equal to the p-th layer) that generates (outputs) a non-recoverable feature map that cannot be restored to the input data, the layer index n is increased by 1 It may be determined whether the next layer of the layer is an unrecoverable layer (a layer greater than or equal to the p-th layer). The determination unit 110 determines whether the corresponding layer is a non-recoverable layer that satisfies the non-reconstruction condition (especially, determines whether or not the layer p is greater than or equal to), so that the next layer of the corresponding layer is considered as a candidate layer of the separation start layer. I can.

n은 레이어의 인덱스를 나타내며, 네트워크 구조(5)에 포함된 복수의 레이어(10)가 총 t 개인 경우, n은 0≤n≤t일 수 있다. 달리 표현해, 네트워크 구조(5)에는 복수의 레이어(10)로서 총 t개의 레이어가 포함될 수 있다. n denotes a layer index, and when there are a total of t of the plurality of layers 10 included in the network structure 5, n may be 0≦n≦t. In other words, the network structure 5 may include a total of t layers as a plurality of layers 10.

또한, 결정부(110)는 네트워크 트래픽 양을 줄이기 위해, 복수의 레이어(10) 중 적어도 1회 이상 풀링(Pooling)된 이후의 레이어를 분리 시작 레이어(21)의 후보 레이어로서 고려할 수 있다. 예시적으로, 도 5에는 네트워크의 트래픽 양을 줄이기 위해 풀링된 직후의 레이어(즉, 풀링 레이어(POOL 레이어) 다음의 레이어)가 후보 레이어로서 고려된 이후, 최종적으로 분리 시작 레이어(21)로 결정된 경우의 예가 도시되어 있다.Also, in order to reduce the amount of network traffic, the determiner 110 may consider a layer after being pooled at least one or more of the plurality of layers 10 as a candidate layer of the separation start layer 21. For example, in FIG. 5, after the layer immediately after pooling (ie, the layer after the pooling layer (POOL layer)) is considered as a candidate layer in order to reduce the amount of network traffic, it is finally determined as the separation start layer 21. An example of the case is shown.

이에 따르면, 클라이언트는 입력 데이터(2)가 입력되었을 때, 컨볼루션 레이어를 통해 합성곱 연산을 수행함으로써 피쳐맵(특징맵)을 생성하고, 생성된 피쳐맵의 크기를 풀링 레이어를 통해 줄인(감소시킨) 후 크기가 감소된 피쳐맵을 서버로 전송할 수 있다.According to this, when the input data (2) is input, the client generates a feature map (feature map) by performing a convolution operation through the convolution layer, and reduces (reduces) the size of the created feature map through the pooling layer. After that, the feature map with reduced size can be transmitted to the server.

n번 레이어(33)가 p번 레이어 이상임에 따라 (n+1)번 레이어(34)를 후보 레이어로서 고려한 이후, 결정부(110)는 네트워크 구조의 분리와 관련한 서버로의 데이터 전송 시간(NL n)과 서버에서의 서버 연산 수행 시간(SL n)의 합이 임베디드 시스템에서의 클라이언트 연산 수행 시간(CL n) 이하인 수행 시간 조건을 충족하는 n번 레이어의 다음 레이어인 (n+1)번 레이어를 분리 시작 레이어(21)로 결정할 수 있다. 즉, n번 레이어(33)가 p번 레이어 이상이어서 (n+1)번 레이어가 분리 시작 레이어의 후보 레이어로 결정된 이후, 결정부(110)는 n번 레이어(33)가 상기의 수행 시간 조건을 충족하는 레이어이면, n번 레이어(33)의 다음 레이어인 (n+1)번 레이어(34)를 분리 시작 레이어(21)로서 결정할 수 있다.Since the n-th layer 33 is greater than or equal to the p-th layer, after considering the (n+1)-th layer 34 as a candidate layer, the determiner 110 determines the data transmission time ( NL ) to the server related to the separation of the network structure. The next layer (n+1) layer (n+1) that satisfies the execution time condition where the sum of n ) and server operation execution time ( SL n ) is less than or equal to the client operation execution time ( CL n ) in the embedded system May be determined as the separation start layer 21. That is, after the n-th layer 33 is greater than or equal to the p-th layer and the (n+1) layer is determined as a candidate layer for the separation start layer, the determination unit 110 determines that the n-th layer 33 is the above execution time condition. If it is a layer that satisfies, the (n+1)-th layer 34, which is the next layer after the n-th layer 33, may be determined as the separation start layer 21.

여기서, 서버 연산 수행 시간(SL n)은, 서버에서 복수의 레이어(10) 중 (n+1)번 레이어(34)부터 마지막 레이어(3n)까지 연산을 수행하는 데에 소요되는 시간을 의미할 수 있다. 또한, 클라이언트 연산 수행 시간(CL n)은, 임베디드 시스템(클라이언트)에서 복수의 레이어(10) 중 0번 레이어(31)부터 n번 레이어(33)까지 연산을 수행하는 데에 소요되는 시간을 의미할 수 있다.Here, the server operation execution time ( SL n ) means the time it takes for the server to perform an operation from the (n+1) layer 34 to the last layer 3n among the plurality of layers 10. I can. In addition, the client operation execution time ( CL n ) means the time it takes to perform an operation from the 0th layer 31 to the nth layer 33 among the plurality of layers 10 in the embedded system (client). can do.

다시 말해, 서버 연산 수행 시간(SL n)은, (n+1)번 레이어(34)를 분리 시작 레이어의 후보 레이어로서 고려할 때, 복수의 레이어(10) 중 (n+1)번 레이어(34)부터 마지막 레이어(3n)를 통한 연산을 서버에서 수행할 때 소요되는 시간을 의미할 수 있다. 클라이언트 연산 수행 시간(CL n)은, (n+1)번 레이어(34)를 후보 레이어로서 고려할 때, 복수의 레이어(10) 중 (n+1)번 레이어(34) 이전의 레이어들, 즉 0번 레이어(31)부터 n번 레이어(33)까지를 통한 연산을 임베디드 시스템(클라이언트)에서 수행할 때 소요되는 시간을 의미할 수 있다.In other words, the server operation execution time SL n is the (n+1)-th layer 34 of the plurality of layers 10 when considering the (n+1)-th layer 34 as a candidate layer for the separation start layer. ) To the last layer (3n) may mean the time it takes when the server performs the operation. When the (n+1) layer 34 is considered as a candidate layer, the client operation execution time ( CL n ) is the layers prior to the (n+1) layer 34 of the plurality of layers 10, that is, This may mean the time required when the embedded system (client) performs an operation through the 0th layer 31 to the nth layer 33.

또한, 서버로의 데이터 전송 시간(NL n)은 피쳐맵 전송시의 네트워크 트래픽 시간을 의미할 수 있다. 클라이언트는 입력된 입력 데이터에 대한 연산을 수행하여 피쳐맵을 생성하고 생성된 피쳐맵을 네트워크 소켓을 통해 서버로 제공(전달, 전송)할 수 있으며, 서버는 클라이언트로부터 제공받은 피쳐맵을 이용해 나머지 연산을 수행해 연산 결과를 제공할 수 있다. 이때, 클라이언트에서 생성된 피쳐맵이 서버로 전송될 때의 네트워크 트래픽 시간을 서버로의 데이터 전송 시간(NL n)이라 할 수 있다. 다릴 표현해, 서버로의 데이터 전송 시간은 서버와 클라이언트 간의 트래픽 시간(데이터 전송 시간)을 의미할 수 있다. 구체적으로, 서버로의 데이터 전송 시간(NL n)은 임베디드 시스템(클라이언트)가 0번 레이어(31)부터 n번 레이어(33)를 통해 입력 데이터(2)에 대한 연산을 수행함으로써 생성된 피쳐맵(피쳐맵 데이터)을 서버에 전송하는데 소요되는 시간(네트워크 시간)을 의미할 수 있다. In addition, the data transmission time NL n to the server may mean a network traffic time when transmitting a feature map. The client can generate a feature map by performing an operation on the input data and provide the created feature map to the server through a network socket (delivering, transmitting), and the server performs the remaining calculations using the feature map provided from the client. You can provide the result of the operation by performing At this time, the network traffic time when the feature map generated by the client is transmitted to the server may be referred to as the data transmission time ( NL n ) to the server. In other words, the data transfer time to the server may mean the traffic time (data transfer time) between the server and the client. Specifically, the data transmission time to the server ( NL n ) is a feature map generated by the embedded system (client) performing an operation on the input data (2) through the layer 0 (31) through the layer n (33). It can mean the time (network time) required to transmit (feature map data) to the server.

다시 말하자면, CL n 은 클라이언트에서 입력 데이터에 대하여 0번 레이어부터 n번 레이어까지의 연산 수행 시간을 나타낸다. NL n 은 클라이언트에서 연산을 수행한 후 중간 값인 피쳐맵을 서버에 전송하는 네트워크 시간을 의미한다. SL n 은 서버가 피쳐맵을 입력 데이터로서 수신하여, 서버에서 피쳐맵에 대하여 (n+1)번 레이어부터 마지막 레이어까지의 연산 수행 시간을 나타낸다.In other words, CL n Represents the operation execution time from layer 0 to layer n on the input data in the client. NL n Denotes the network time for transmitting the intermediate feature map to the server after the client performs the operation. SL n Denotes the operation time from the (n+1) layer to the last layer for the feature map in the server when the server receives the feature map as input data.

결정부(110)는 n번 레이어(33)가 복원 불가 조건을 충족하여 (n+1)번 레이어(34)를 후보 레이어로서 고려한 이후에, 하기 식 1을 만족하는 n번 레이어의 다음 레이어인 (n+1)번 레이어를 분리 시작 레이어(21)로서 결정할 수 있다. 즉, 결정부(110)는 n번 레이어(33)가 복원 불가 조건을 충족하면서 하기 식 1을 만족하면, n번 레이어(33)의 다음 레이어인 (n+1)번 레이어(34)를 분리 시작 레이어(21)로서 결정할 수 있다.After the n-th layer 33 satisfies the reconstruction impossibility condition and considers the (n+1)-th layer 34 as a candidate layer, the next layer of the n-th layer satisfies Equation 1 below. The (n+1)th layer may be determined as the separation start layer 21. That is, if the n-th layer 33 satisfies the following Equation 1 while the n-th layer 33 satisfies the restoring impossibility condition, the determination unit 110 separates the (n+1)-th layer 34, which is the next layer of the n-th layer 33 It can be determined as the starting layer 21.

[식 1][Equation 1]

Figure pat00001
Figure pat00001

여기서, CL n 은 클라이언트 연산 수행 시간, NL n 은 서버로의 데이터 전송 시간, SL n 은 서버 연산 수행 시간을 나타낸다. 또한, α 는 0<α<1 일 수 있다.Here, CL n is a client operation execution time, NL n is a data transmission time to the server, and SL n is a server operation execution time. In addition, α may be 0<α<1.

클라이언트 연산 수행 시간(CL n)은 클라이언트에서의 연산 수행 시간(즉, 클라이언트에서 연산하는데 걸리는 수행 시간)으로서, 클라이언트가 입력 데이터에 응답하여 특징맵을 생성하는데 소요되는 시간을 의미할 수 있다. 서버로의 데이터 전송 시간(NL n)은 클라이언트에서 생성된 피쳐맵이 서버로 전송될 때의 네트워크 트래픽 시간을 의미할 수 있다. 서버 연산 수행 시간(SL n)은 서버에서의 연산 수행 시간(즉, 서버에서 연산하는데 걸리는 수행 시간)으로서, 클라이언트로부터 전달받은 피쳐맵으로 나머지 연산을 수행하고 결과를 예측하는데 소요되는 시간을 의미할 수 있다.The client operation execution time CL n is an operation execution time in the client (that is, the execution time it takes for the client to operate), and may mean a time required for the client to generate a feature map in response to input data. The data transmission time NL n to the server may mean a network traffic time when the feature map generated by the client is transmitted to the server. Server operation execution time ( SL n ) is the operation execution time in the server (that is, the execution time it takes to operate in the server), which means the time it takes to perform the remaining operations with the feature map received from the client and predict the result. I can.

만약, 후보 레이어로 고려된 n번 레이어(33)가 수행 시간 조건을 충족하지 않는 경우, 결정부(110)는 (n+1)번 레이어(34)가 분리 시작 레이어(21)로서 적합하지 않은 것으로 판단할 수 있다. 이러한 경우, 결정부(110)는 수행 시간 조건을 충족하지 않는 n번 레이어(33)에 대하여 n을 1 증가시킴에 따라, (n+1)번 레이어(34)가 복원 불가 조건을 충족하는지 판단할 수 있다. If the nth layer 33 considered as the candidate layer does not meet the execution time condition, the determination unit 110 determines that the (n+1)th layer 34 is not suitable as the separation start layer 21. It can be judged as. In this case, the determination unit 110 determines whether the (n+1) layer 34 satisfies the restoring impossibility condition by increasing n by 1 for the n-th layer 33 that does not meet the execution time condition. can do.

달리 말해, n번 레이어(33)가 복원 불가 조건을 충족하되 수행 시간 조건을 충족하지 않으면, 결정부(110)는 n번 레이어(33)에 대하여 n을 1 증가시켜(즉, n에 n+1을 적용하여), (n+1)번 레이어(34)가 복원 불가 조건을 충족하는 p번 레이어 이상인지 판단할 수 있다. 이때, 결정부(110)는 (n+1)번 레이어(34)가 p번 레이어 이상이면 (n+2)번 레이어(35)를 분리 시작 레이어(21)의 후보 레이어로서 고려할 수 있다. 이후, (n+1)번 레이어(34)가 수행 시간 조건을 충족하는지(즉, 상기 식 1의 조건을 충족하는지) 판단하고, 수행 시간 조건을 충족하면 (n+2)번 레이어(35)를 분리 시작 레이어(21)로 결정할 수 있다.In other words, if the nth layer 33 satisfies the restoring impossibility condition but does not satisfy the execution time condition, the determination unit 110 increases n for the nth layer 33 by 1 (that is, n+ 1), it may be determined whether the (n+1) layer 34 is greater than or equal to the p layer that satisfies the reconstruction impossibility condition. In this case, if the (n+1)-th layer 34 is equal to or greater than the p-th layer, the determiner 110 may consider the (n+2)-th layer 35 as a candidate layer for the separation start layer 21. Thereafter, it is determined whether the (n+1) layer 34 satisfies the execution time condition (i.e., satisfies the condition of Equation 1), and if the execution time condition is satisfied, the (n+2) layer 35 May be determined as the separation start layer 21.

반면, 결정부(110)는 (n+1)번 레이어(34)가 수행 시간 조건을 충족하지 않으면, 다시 (n+1)번 레이어(34)에 대하여 n을 1 증가시켜, (n+2)번 레이어(35)가 복원 불가 조건을 충족하는 p번 레이어 이상인지 판단할 수 있다.On the other hand, if the (n+1)-th layer 34 does not meet the execution time condition, the determination unit 110 increases n by 1 for the (n+1)-th layer 34, and (n+2) It may be determined whether the )-th layer 35 is greater than or equal to the p-th layer that satisfies the restoration impossibility condition.

결정부(110)에서의 분리 시작 레이어(21)의 결정 과정을 다시 설명하면 다음과 같다.The process of determining the separation start layer 21 in the determination unit 110 will be described again as follows.

도 4는 본원의 일 실시예에 따른 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조를 분리하는 장치(100)에서 분리 시작 레이어(21)를 결정하는 과정의 흐름을 개략적으로 나타낸 도면이다. 즉, 도 4는 복수의 레이어(10) 중 네트워크 구조의 분리를 위한 최적의 레이어 분리 지점인 분리 시작 레이어(21)를 결정(선택)하는 과정의 흐름을 나타낸 도면이다. 도 4에서의 분리 시작 레이어(21)의 결정 과정은 결정부(110)에 의해 수행될 수 있다.4 is a diagram schematically illustrating a flow of a process of determining a separation start layer 21 in the apparatus 100 for separating a network structure of a neural network during deep learning in an embedded system according to an embodiment of the present application. That is, FIG. 4 is a diagram illustrating a flow of a process of determining (selecting) a separation start layer 21 that is an optimal layer separation point for separation of a network structure among a plurality of layers 10. The process of determining the separation start layer 21 in FIG. 4 may be performed by the determination unit 110.

도 4를 참조하면, 결정부(110)는 'n번 레이어 ≥ p' 인지 판단할 수 있다(S11). 즉, 단계S11에서는 복수의 레이어(10) 중 n번 레이어(33)가 p번 레이어(복원 불가 레이어들 중 처음에 위치한 첫번째 복원 불가 레이어) 이상인지 여부를 판단할 수 있다. 달리 말해, 단계S11에서는 n번 레이어가 피쳐맵으로서 입력 데이터로의 복원이 불가능한 복원 불가 피쳐맵을 생성(출력)하는지 판단할 수 있다. Referring to FIG. 4, the determiner 110 may determine whether'n-th layer ≥ p'(S11). That is, in step S11, it may be determined whether the n-th layer 33 of the plurality of layers 10 is greater than or equal to the p-th layer (the first non-recoverable layer located at the first among the non-restoreable layers). In other words, in step S11, it may be determined whether the n-th layer is a feature map and generates (outputs) a non-recoverable feature map that cannot be restored to input data.

이때, n번 레이어가 p번 레이어 이상이면(S11-Y), 결정부(110)는 n번 레이어의 다음 레이어인 (n+1)번 레이어를 분리 시작 레이어(21)의 후보 레이어로서 고려할 수 있다. 만약, n번 레이어가 p번 레이어 이상이 아니면(S11-N), 결정부(110)는 n을 1 증가시키고(S14), 단계S11 이전으로 되돌아갈 수 있다. 즉, 결정부(110)는 n번 레이어가 p번 레이어 이상이 아니면(S11-N), n에 n+1을 대입(적용)해 단계S11 이전으로 되돌아갈 수 있다. 이에 따르면, 단계S11에서는 n번 레이어에 대해 n=n+1이 적용됨으로써, (n+1)번 레이어가 p번 레이어 이상인지 판단할 수 있다.In this case, if the n-th layer is greater than or equal to the p-th layer (S11-Y), the determination unit 110 may consider the (n+1)-th layer, which is the next layer of the n-th layer, as a candidate layer of the separation start layer 21. have. If the n-th layer is not greater than or equal to the p-th layer (S11-N), the determiner 110 may increase n by 1 (S14) and return to the previous step S11. That is, if the n-th layer is not greater than or equal to the p-th layer (S11-N), the determiner 110 may substitute (apply) n+1 to n and return to the previous step S11. Accordingly, in step S11, n=n+1 is applied to the nth layer, so that it can be determined whether the (n+1)th layer is greater than or equal to the pth layer.

한편, n번 레이어가 p번 레이어 이상이면(S11-Y), 결정부(110)는 n번 레이어가 상기 식 1을 충족하는지 판단할 수 있다(S12).Meanwhile, if the n-th layer is greater than or equal to the p-th layer (S11-Y), the determiner 110 may determine whether the n-th layer satisfies Equation 1 (S12).

이때, n번 레이어가 상기 식 1을 충족하면(S12-Y), 결정부(110)는 n번 레이어의 다음 레이어인 (n+1)번 레이어를 분리 시작 레이어(21)로 결정할 수 있다(S13).In this case, if the n-th layer satisfies Equation 1 (S12-Y), the determination unit 110 may determine the (n+1)-th layer, which is the next layer of the n-th layer, as the separation start layer 21 ( S13).

만약, 단계S12에서 n번 레이어가 상기 식 1을 충족하지 않으면(S12-N), 결정부(110)는 n을 1 증가시키고(S14), 단계S11 이전으로 되돌아갈 수 있다. 즉, 결정부(110)는 n번 레이어가 식 1을 충족하지 않으면(S12-N), n에 n+1을 대입(적용)해 단계S11 이전으로 되돌아갈 수 있다. 이후, 단계S11에서는 n번 레이어에 대해 n=n+1이 적용됨으로써, (n+1)번 레이어가 p번 레이어 이상인지 판단할 수 있다.If the n-th layer does not satisfy Equation 1 in step S12 (S12-N), the determination unit 110 may increase n by 1 (S14) and return to the previous step S11. That is, if the n-th layer does not satisfy Equation 1 (S12-N), the determiner 110 may substitute (apply) n+1 to n and return to step S11. Thereafter, in step S11, n=n+1 is applied to the nth layer, so that it may be determined whether the (n+1)th layer is greater than or equal to the pth layer.

이때, 단계S11에서 (n+1)번 레이어가 p번 레이어 이상이면, 단계S12에서 결정부(110)는 (n+1)번 레이어가 식 1을 충족하는지 판단할 수 있다. 여기서, 단계S12에서 (n+1)번 레이어가 식 1을 충족하면, 결정부(110)는 (n+1)번 레이어의 다음 레이어인 (n+2)번 레이어를 분리 시작 레이어로 결정할 수 있다.In this case, if the (n+1)-th layer is equal to or greater than the p-th layer in step S11, the determiner 110 may determine whether the (n+1)-th layer satisfies Equation 1 in step S12. Here, if the (n+1) layer satisfies Equation 1 in step S12, the determination unit 110 may determine the layer (n+2) next to the layer (n+1) as the separation start layer. have.

이에 따르면, 결정부(110)는 복수의 레이어(10) 중 p번 레이어 이상이면서(즉, 단계S11을 만족하면서), 식 1을 만족(즉, 단계S12를 만족)하는 레이어를 네트워크 구조(5)에 대한 최적의 분리 지점 레이어인 분리 시작 레이어(21)로서 결정할 수 있다.According to this, the determination unit 110 selects a layer that is greater than or equal to p-th layer among the plurality of layers 10 (ie, satisfies step S11) and satisfies Equation 1 (ie satisfies step S12) in the network structure (5). It may be determined as the separation start layer 21, which is an optimal separation point layer for ).

이후, 분리 제어부(120)는 결정부(110)에서 결정된 분리 시작 레이어(21)를 기반으로 네트워크 구조(5)를 분리할 수 있다.Thereafter, the separation control unit 120 may separate the network structure 5 based on the separation start layer 21 determined by the determination unit 110.

본원에서 결정부(110)가 복수의 레이어(10) 중 분리 시작 레이어를 결정할 때 해당 레이어(예를 들어 n번 레이어)에 대하여 식 1의 조건(즉, 단계S12의 조건)을 충족하는지 여부를 판단하는 이유(달리 말해 CL n과 (NL n+SL n)을 비교하는 이유)(CL n이 (NL n+SL n) 이상인지를 판단하는 이유)는, CL n 이 (NL n + SL n)보다 작은 경우(서버로의 데이터 전송 시간과 서버 연산 수행 시간을 합한 시간보다 클라이언트 연산 수행 시간이 더 빠르게 끝난 경우) 해당 레이어(n번 레이어)에서 분리할 필요가 없기 때문이라 할 수 있다. 따라서, 본원은 해당 레이어(n번 레이어)가 식 1의 조건을 충족하지 않으면, 그 다음 레이어인 (n+1)번 레이어를 기준으로 하여, 클라이언트가 하나의 레이어(즉, (n+1)번 레이어)를 더 가진 상태에서, (n+1)번 레이어가 단계S11에서의 조건과 단계 S12에서의 조건을 충족하는지를 판단할 수 있다. 이때, 결정부(110)는 복수의 레이어 중 단계S11의 조건과 단계S12의 조건을 모두 충족하는 레이어의 다음 레이어를 최적의 분리 시작 레이어로 결정할 수 있다.Herein, when the determination unit 110 determines the separation start layer among the plurality of layers 10, it is determined whether the condition of Equation 1 (that is, the condition of step S12) is satisfied for the corresponding layer (eg, layer n). The reason for judging (in other words, the reason for comparing CL n and ( NL n + SL n )) (the reason for judging whether CL n is ( NL n + SL n ) or more) is CL n If is less than ( NL n + SL n ) (when the client operation execution time ends faster than the sum of the data transmission time to the server and the server operation time), there is no need to separate from the corresponding layer (layer n). It can be said that it is because of. Therefore, in the present application, if the corresponding layer (layer n) does not satisfy the condition of Equation 1, based on the next layer, the (n+1) layer, the client is given one layer (that is, (n+1) Layer), it may be determined whether the (n+1) layer satisfies the condition in step S11 and the condition in step S12. In this case, the determiner 110 may determine a next layer of a layer that satisfies both the condition of step S11 and the condition of step S12 among the plurality of layers as the optimal separation start layer.

다시 말해, CL n과 (NL n+SL n) 을 비교하는 이유는 CL n 즉, 클라이언트에서 수행 시간이 네트워크 전송 시간과 서버 수행 시간의 합한 시간(NL n+SL n) 보다 빠르게 끝난다면, 해당 n번째 레이어에서는 분리할 필요가 없기 때문이라 할 수 있다. 따라서, 본 장치(100)는 (n+1) 즉, 다음 레이어로 넘어가서 클라이언트가 하나의 레이어를 더 가지고 다시 비교를 수행할 수 있다.In other words, the reason for comparing CL n and ( NL n + SL n ) is CL n, that is, if the execution time at the client ends earlier than the sum of the network transmission time and the server execution time ( NL n + SL n ), the corresponding This is because there is no need to separate the nth layer. Accordingly, the device 100 may move to the next layer (n+1), that is, and the client may perform comparison again with one more layer.

상술한 설명에서, 단계 S11 내지 S14는 본원의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다.In the above description, steps S11 to S14 may be further divided into additional steps or may be combined into fewer steps, depending on the embodiment of the present application. In addition, some steps may be omitted as necessary, and the order between steps may be changed.

도 5는 본원의 일 실시예에 따른 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조를 분리하는 장치(100)에 의해 분리된 네트워크 구조를 기반으로 한 입력 데이터의 데이터 처리 흐름을 개략적으로 나타낸 도면이다.5 is a diagram schematically illustrating a data processing flow of input data based on a network structure separated by the apparatus 100 for separating the network structure of a neural network during deep learning in an embedded system according to an embodiment of the present application. .

도 5를 참조하면, 단계S21에서는 분리 제어부(120)가 결정부(110)에서 결정된 분리 시작 레이어(21)를 기준으로 네트워크 구조(5)를 분리할 수 있다.Referring to FIG. 5, in step S21, the separation control unit 120 may separate the network structure 5 based on the separation start layer 21 determined by the determination unit 110.

이때, 단계S21에서 분리 제어부(120)는 복수의 레이어(10)가 분리 시작 레이어(21)를 기준으로 클라이언트 영역(A)과 서버 영역(B)으로 구분되어 할당되도록 네트워크 구조(5)를 분리할 수 있다. 예시적으로, 분리 제어부(120)는 총 t개의 레이어로 이루어진 네트워크 구조(5)에서, 분리 시작 레이어를 기준으로 클라이언트 영역(A)과 서버 영역(B)으로 구분되도록 네트워크 구조(5)를 분리할 수 있다.At this time, in step S21, the separation control unit 120 separates the network structure 5 so that the plurality of layers 10 are divided into a client area (A) and a server area (B) based on the separation start layer 21 and allocated. can do. For example, the separation control unit 120 separates the network structure 5 so that it is divided into a client area (A) and a server area (B) based on the separation start layer in the network structure 5 consisting of a total of t layers. can do.

단계S21에서 분리 제어부(120)는 클라이언트 영역(A)에 할당된 레이어들(21a)을 임베디드 시스템(클라이언트)으로 제공하고, 서버 영역(B)에 할당된 레이어들(21, 21b)을 서버로 제공할 수 있다. In step S21, the separation control unit 120 provides the layers 21a allocated to the client area A as an embedded system (client), and transfers the layers 21 and 21b allocated to the server area B to the server. Can provide.

이때, 분리 제어부(120)는 레이어의 제공시 레이어 뿐만 아니라 그에 대응하는 가중치를 함께 제공할 수 있다. 즉, 분리 제어부(120)는 클라이언트 영역(A)에 할당된 레이어들(21a) 및 해당 레이어들(21a)에 대응하는 가중치를 임베디드 시스템(클라이언트)으로 제공할 수 있다. 또한, 분리 제어부(120)는 서버 영역(B)에 할당된 레이어들(21, 21b) 및 해당 레이어들(21, 21b)에 대응하는 가중치를 서버로 제공할 수 있다.In this case, when providing the layer, the separation control unit 120 may provide not only the layer but also a weight corresponding thereto. That is, the separation control unit 120 may provide the layers 21a allocated to the client area A and weights corresponding to the layers 21a to the embedded system (client). In addition, the separation control unit 120 may provide the layers 21 and 21b allocated to the server area B and weights corresponding to the corresponding layers 21 and 21b to the server.

달리 말해, 단계S21에서는, 본 장치(100, 임베디드 시스템)에서 결정부(110)가 복수의 레이어(10) 중 최적의 분리 지점 레이어인 분리 시작 레이어(21)를 결정(선택)할 수 있다. 이후, 분리 제어부(120)가 분리 시작 레이어(21)를 기준으로, 그 이전의 레이어들 및 그에 대응하는 가중치는 클라이언트에 할당(구성)되도록 하는 한편, 분리 시작 레이어(21)와 그 이후의 레이어들 및 그에 대응하는 가중치(즉, 분리 시작 레이어의 가중치와 분리 시작 레이어 이후의 레이어들의 가중치)는 분리하여 서버로 전송함으로써 서버에 할당(구성)되도록 할 수 있다.In other words, in step S21, the determination unit 110 in the device 100 (embedded system) may determine (select) the separation start layer 21 that is an optimal separation point layer among the plurality of layers 10. Thereafter, based on the separation start layer 21, the separation control unit 120 assigns (composes) the previous layers and the corresponding weights to the client, while the separation start layer 21 and subsequent layers And the weights corresponding thereto (ie, the weight of the separation start layer and the weight of the layers after the separation start layer) are separated and transmitted to the server so that they are allocated (configured) to the server.

단계 S21에 의해 네트워크 구조(5)의 분리가 이루어진 이후에, 분리된 네트워크 구조가 적용된 클라이언트(Client)에 입력 데이터(2, Input Data)가 입력(S22)될 수 있다. 클라이언트는 입력 데이터(2)에 대한 연산을 수행할 수 있다. 즉, 클라이언트는 입력 데이터(2)의 입력에 응답하여, 입력 데이터(2)에 대한 연산으로서 분리 제어부(120)에 의해 클라이언트에 할당(제공)된 레이어들(즉, 분리 시작 레이어 이전의 레이어들)을 이용하여 입력 데이터(2)에 대응하는 피쳐맵(Feature Map)을 생성(출력)할 수 있다(S23).After the network structure 5 is separated by step S21, the input data 2 may be input to a client to which the separated network structure is applied (S22). The client can perform an operation on the input data (2). That is, the client responds to the input of the input data 2, the layers allocated (provided) to the client by the separation control unit 120 as an operation on the input data 2 (that is, layers before the separation start layer). ) Can be used to generate (output) a feature map corresponding to the input data 2 (S23).

이후, 클라이언트는 네트워크 소켓을 통해 단계S23에서 생성된 피쳐맵을 서버로 전송할 수 있다(S24).Thereafter, the client may transmit the feature map generated in step S23 to the server through the network socket (S24).

서버는 클라이언트로부터 네트워크 소켓을 통해 전송된 피쳐맵을 입력받을 수 있다. 이후 서버는 분리 제어부(120)에 의해 서버에 할당(제공)된 레이어들(즉, 분리 시작 레이어와 분리 시작 레이어 이후의 레이어)를 이용하여 입력받은 피쳐맵으로 입력 데이터(2)에 대한 나머지 연산을 수행하고, 연산 결과(예측 결과)를 제공할 수 있다(S25).The server may receive the feature map transmitted through the network socket from the client. Thereafter, the server uses the layers allocated (provided) to the server by the separation control unit 120 (i.e., the layer after the separation start layer and the layer after the separation start layer) and calculates the remainder of the input data (2). Is performed, and an operation result (prediction result) may be provided (S25).

상술한 설명에서, 단계 S21 내지 S25는 본원의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다.In the above description, steps S21 to S25 may be further divided into additional steps or may be combined into fewer steps, depending on the embodiment of the present application. In addition, some steps may be omitted as necessary, and the order between steps may be changed.

이러한 본 장치(100)는, 입력 데이터(2)를 클라이언트에 통과시킴으로써 생성된 결과물인 피쳐맵(즉, 입력 데이터를 클라이언트에 입력함으로써 클라이언트에 의해 생성되는 피쳐맵)만이 서버로 전송되고, 서버에서는 클라이언트로부터 획득한 피쳐맵을 이용해 연산이 수행되도록 하는 분리된 네트워크 구조를 제공할 수 있다.In this device 100, only the feature map, which is the result generated by passing the input data 2 through the client (that is, the feature map generated by the client by inputting the input data to the client), is transmitted to the server, and the server It is possible to provide a separate network structure that allows operations to be performed using feature maps obtained from clients.

다시 말해, 본 장치(100)는 임베디드 시스템이 입력 데이터(2)를 신경망(1) 모델에서 최적의 분리 지점 레이어로 결정된 분리 시작 레이어(21) 이전의 레이어들에 통과시켜 피쳐맵을 생성하고, 생성된 피쳐맵만을 서버로 전송할 수 있도록 하는, 개인 정보 보호(Privacy Preserving, 사생활 보호)와 성능 향상을 고려한 분리된 네트워크 구조에 대하여 제안한다. 이때, 본 장치(100)에서 결정부(110)는 복수의 레이어(10) 중 최적의 분리 지점 레이어인 분리 시작 레이어(21)를 결정함에 있어서, 다음과 같은 두 가지 사항을 고려하여 분리 시작 레이어(21)를 결정할 수 있다.In other words, the device 100 generates a feature map by passing the input data 2 through the layers prior to the separation start layer 21 determined as the optimal separation point layer in the neural network 1 model by the embedded system, We propose a separate network structure that considers privacy preserving and performance improvement that allows only the generated feature map to be transmitted to the server. In this case, in determining the separation start layer 21, which is an optimal separation point layer among the plurality of layers 10, in the device 100, the determination unit 110 considers the following two points to (21) can be determined.

첫번째 고려사항으로, 결정부(110)는 분리 시작 레이어(21)를 복원되지 않을 정도의 분리 계층(분리 지점 레이어)으로 결정(선택)해야 할 필요가 있다. 결정부(110)는 해당 레이어를 통과하여 생성(출력)되는 피쳐맵으로서, 입력 데이터로의 복원이 불가능한 복원 불가 피쳐맵을 생성(출력)하는 레이어를 분리 시작 레이어(21)로 선택해야 할 필요가 있다.As a first consideration, the determination unit 110 needs to determine (select) the separation start layer 21 as an unrestored separation layer (separation point layer). The decision unit 110 is a feature map generated (output) through the corresponding layer, and it is necessary to select a layer that creates (outputs) a non-recoverable feature map that cannot be restored to input data as the separation start layer 21 There is.

만약, 서버에 모든 데이터를 보낸다면(즉, 대규모 데이터를 기반으로 한 심층 학습에 대한 모든 데이터 처리가 서버에서 이루어지도록 한다면), 수행 속도(데이터 처리 속도)가 빠르겠지만, 개인 정보 보호에 어려움이(즉, 개인 정보 보호에 문제가) 있을 수 있다.If all data is sent to the server (that is, if all data processing for deep learning based on large-scale data is performed on the server), the execution speed (data processing speed) will be high, but it will be difficult to protect personal information. (I.e., there is a problem with privacy).

이에, 개인 정보 보호(Privacy Preserving)를 고려하여 안전한 개인 정보의 보호가 가능해지도록 하는 네트워크 구조의 분리를 위해, 결정부(110)는 분리 시작 레이어(21)의 결정시 해당 레이어가 복수의 레이어(10) 내 입력 데이터로의 복원이 불가능한 복원 불가 피쳐맵을 생성하는 복원 불가 레이어들 중 p번 레이어 이상인 레이어인지 고려할 수 있다. 달리 말해, 결정부(110)는 분리 시작 레이어(21)를 p번 레이어 이상인 레이어에서 선택할 수 있다.Accordingly, in order to separate the network structure that enables safe personal information protection in consideration of privacy preserving, the determination unit 110 determines that the corresponding layer is a plurality of layers ( 10) It may be considered whether the layer is greater than or equal to the p-th layer among the non-recoverable layers that generate the unrecoverable feature map that cannot be restored to the input data. In other words, the determiner 110 may select the separation start layer 21 from a layer that is greater than or equal to the p-th layer.

즉, 분리 시작 레이어(21)는 Privacy Preserving을 고려하여 'n번 레이어 ≥ p'의 조건을 만족하는 레이어로 결정(선택)될 수 있다. 여기서, p는 복원되지 않는 최소한의 p번 레이어를 의미한다. 클라이언트는 임베디드 시스템으로서, 서버가 많은 일을 수행하는 것은 전체 수행 시간을 단축시킬 수 있겠지만 개인 정보 보호의 문제가 있을 수 있으므로, 네트워크 구조의 분리는 Privacy Preserving을 고려하여 최소한의 p번 레이어보다 큰 레이어를 기준으로 이루어져야 한다. That is, the separation start layer 21 may be determined (selected) as a layer that satisfies the condition of'n-th layer ≥ p'in consideration of privacy preserving. Here, p denotes the minimum p-th layer that is not restored. The client is an embedded system, and if the server does a lot of work, the overall execution time can be shortened, but there may be a problem of personal information protection, so the separation of the network structure is a layer larger than the minimum p-th layer in consideration of Privacy Preserving. It should be done on the basis of.

임베디드 시스템과 객체 검출(Object Detection) 네트워크 모델에 따라 복원되지 않는 최소한의 p번 레이어(p번째 레이어)가 달라질 수 있다. 개발자는 최소한의 p번째 레이어를 설정해 주어야 하며, 사용자는 개인의 개인정보보호를 위해 p번째 레이어 보다 많은 레이어를 클라이언트에 할당할 수 있다. 이러한 경우, 클라이언트는 더 많은 레이어를 가지게 되어 일을 하게 되지만, 더욱 복호화되기 어려운 중간 값(즉, 피쳐맵)을 생성하여 서버로 전달할 수 있다. 따라서, 결정부(110)는 복수의 레이어(10) 중 최소한의 p번 레이어 이상인 레이어에서 분리 시작 레이어(21)를 결정(선택)할 수 있다.Depending on the embedded system and the object detection network model, the minimum p-th layer (p-th layer) that is not restored may vary. Developers must set the minimum p-th layer, and users can allocate more layers to clients than the p-th layer to protect personal information. In this case, although the client has more layers to work, it is possible to generate an intermediate value (ie, a feature map) that is more difficult to decode and transmit it to the server. Accordingly, the determiner 110 may determine (select) the separation start layer 21 from a layer having a minimum p-th layer or more among the plurality of layers 10.

결정부(110)는 Privacy Preserving을 고려하여, 복수의 레이어(10) 중 p 번 레이어 이상인 레이어를 분리 시작 레이어(21)의 후보 레이어로서 고려할 수 있다. In consideration of privacy preserving, the determiner 110 may consider a layer greater than or equal to the p-th layer among the plurality of layers 10 as a candidate layer of the separation start layer 21.

두번째 고려사항으로, 결정부(110)는 분리 시작 레이어(21)를 서버로의 데이터 전송 시간(NL n)을 고려하여 결정(선택)해야 할 필요가 있다. 서버에서 수행 속도가 빠르더라도 네트워크 트래픽(네트워크 트래픽 시간)이 증가한다면 전체 수행 시간에 문제가 있을 수 있다(즉, 전체 수행 시간의 성능이 떨어질 수 있다). 이에, 결정부(110)는 분리 시작 레이어(21)의 결정시 서버로의 데이터 전송 시간(즉, 피쳐맵 전송시의 네트워크 트래픽 시간, NL n)을 고려할 수 있다.As a second consideration, the determination unit 110 needs to determine (select) the separation start layer 21 in consideration of the data transmission time NL n to the server. Even if the server has a high execution speed, if network traffic (network traffic time) increases, there may be a problem with the overall execution time (that is, the performance of the total execution time may deteriorate). Accordingly, the determination unit 110 may consider a data transmission time to the server (ie, network traffic time when transmitting a feature map, NL n ) when determining the separation start layer 21.

또한, 결정부(110)는 분리 시작 레이어(21)를 클라이언트 연산 수행 시간(CL n)과 서버 연산 수행 시간(SL n)을 고려하여 결정(선택)해야 할 필요가 있다. 성능에 제약이 있는 임베디드 환경의 클라이언트보다 서버에서의 수행 속도가 더 빠를 것이나, 개인 정보 보호(Privacy Preserving)를 고려한 네트워크 구조의 분리(즉, 레이어의 분할)시 클라이언트에 부하량이 많도록 분리가 이루어진다면, 전체 수행 시간에 문제가 있을 수 있다. 이에, 결정부(110)는 분리 시작 레이어(21)의 결정시 CL nSL n을 고려할 수 있다.In addition, the determination unit 110 needs to determine (select) the separation start layer 21 in consideration of a client operation execution time ( CL n ) and a server operation execution time ( SL n ). The execution speed on the server will be faster than the client in the embedded environment where performance is limited, but when the network structure is separated (i.e., layer division) considering privacy preserving, the separation is made so that the load on the client is high. If so, there may be a problem with the overall execution time. Accordingly, the determination unit 110 may consider CL n and SL n when determining the separation start layer 21.

구체적으로, 서버로의 데이터 전송 시간(네트워크 트래픽 시간, NL n)과 서버 연산 수행 시간(SL n)을 합한 시간이 클라이언트 연산 수행 시간(CL n)보다 오래 걸리는 경우, 전체 성능이 낮아질 수 있다. 따라서, 결정부(110)는 NL n, CL nSL n 를 고려하여, 분리 시작 레이어(21)를 복수의 레이어(10) 중 상기 식 1을 만족하는 레이어로 결정(선택)할 수 있다.Specifically, when the sum of the data transmission time to the server (network traffic time, NL n ) and the server operation execution time ( SL n ) takes longer than the client operation execution time ( CL n ), overall performance may be lowered. Therefore, the determination unit 110 is NL n , CL n and SL n In consideration of, the separation start layer 21 may be determined (selected) as a layer that satisfies Equation 1 from among the plurality of layers 10.

이에 따르면, 결정부(110)는 앞서 설명한 두가지 고려사항을 고려하여, 복수의 레이어(10) 중 'n번 레이어≥ p'의 조건을 만족하면서 상기 식 1의 조건을 만족하는 레이어의 다음 레이어를 최적의 분리 지점 레이어인 분리 시작 레이어(21)로 결정할 수 있다. 본 장치(100)는 이러한 최적의 분리 지점 레이어인 분리 시작 레이어(21)를 기반으로 네트워크 구조(5)를 분리할 수 있다.According to this, the determination unit 110 considers the two considerations described above and selects the next layer of the layer that satisfies the condition of Equation 1 while satisfying the condition of'nth layer ≥ p'among the plurality of layers 10. The separation start layer 21, which is an optimal separation point layer, may be determined. The device 100 may separate the network structure 5 based on the separation start layer 21, which is the optimal separation point layer.

즉, 본원은 'n번 레이어 ≥ p'의 조건을 만족하면서 상기 식 1의 조건을 만족하는 레이어의 다음 레이어를 분리 시작 레이어(21)로 선택하여 이를 기준으로 네트워크 구조의 분리를 수행함으로써, 개인 정보 보호가 가능하도록 하는 네트워크 구조를 제공할 수 있다.That is, the present application selects the next layer of the layer that satisfies the condition of Equation 1 while satisfying the condition of'n-th layer ≥ p'as the separation start layer 21, and performs separation of the network structure based on this. A network structure that enables information protection can be provided.

본원은 본 장치(100)에 의해 제공되는 분리된 네트워크 구조(5)를 통해, 임베디드 시스템에서 심층 모델을 사용해 추론 문제를 해결함에 있어서, 개인 정보 보호(Privacy Preserving)가 가능하면서 성능이 향상된 임베디드 시스템에서의 심층 학습이 이루어질 수 있도록 할 수 있다.The present application is an embedded system with improved performance while enabling privacy preserving in solving the inference problem using a deep model in an embedded system through the separated network structure 5 provided by the device 100 In-depth learning can be made possible.

본 장치(100)는 임베디드 시스템에서 입력 데이터를 적절한 레이어(즉, 분리 시작 레이어 이전의 레이어)까지 통과시켜 피쳐맵(특징맵, Feature Map)만이 서버로 전송되도록 하여 개인 정보 보호(Privacy Preserving)가 가능해지도록 하는 분리된 네트워크 구조를 제공할 수 있다.The device 100 passes the input data from the embedded system to an appropriate layer (i.e., a layer before the separation start layer) so that only a feature map (feature map) is transmitted to the server, thereby protecting privacy (Privacy Preserving). It can provide a separate network structure that makes it possible.

본원은 Privacy Preserving을 적용하기 위해 최적의 적절한 분리 지점 레이어로서 분리 시작 레이어(21)를 선택(결정)하고, 이를 기반으로 분리된 네트워크 구조에서의 클라이언트와 서버 간 통신 기술(즉, 클라이언트와 서버 간의 데이터 처리 기술)에 대하여 제안한다.The present application selects (determines) the separation start layer 21 as the optimal separation point layer to apply Privacy Preserving, and based on this, communication technology between the client and server in a separated network structure (that is, between the client and server) Data processing technology).

본원은 서버와 클라이언트 간의 트래픽 시간(데이터 전송 시간)을 측정하여 네트워크 구조의 분리를 위한 최적의 레이어 분리 지점을 개선할 수 있다. 본원은 제안하는 네트워크 구조의 분리를 통해, 개인 정보 보호의 향상뿐만 아니라 자원에 제약이 있는 임베디드 시스템에서의 네트워크 트래픽과 부하량을 효과적으로 줄일 수 있다. 즉, 본원은 네트워크 구조의 분리를 통해 기존의 네트워크 구조 대비 전송 네트워크 트래픽과 임베디드 시스템 내의 부하량을 개선할 수 있다.The present application measures the traffic time (data transmission time) between the server and the client to improve the optimal layer separation point for separation of the network structure. By separating the proposed network structure, it is possible not only to improve personal information protection but also to effectively reduce network traffic and load in an embedded system with limited resources. That is, the present application can improve the transmission network traffic and the load in the embedded system compared to the existing network structure through the separation of the network structure.

본원은 Privacy Preserving을 고려한 네트워크 구조의 분리를 통해 사생활 보호 문제를 해결할 수 있을 뿐만 아니라 메모리 제약이 있는 임베디드 시스템에서 메모리 사용량과 코어 사용량을 줄임으로써 부하량을 효과적으로 줄일 수 있다. The present application not only solves the problem of privacy protection by separating the network structure considering Privacy Preserving, but also effectively reduces the load by reducing the memory usage and core usage in the embedded system with memory constraints.

본원은 심층학습(딥러닝, Deep Learning)의 학습에 필요한 데이터가 개인 정보 보호의 문제를 일으키는 것을 방지할 수 있는 네트워크 구조(즉, 분리된 네트워크 구조)에 대하여 제안한다. 본원은 기존의 네트워크 구조를 분리하여 서버가 입력 데이터 원본이 아닌 피쳐맵만을 전달받도록 하여 개인 정보 보호가 가능하도록 하는 네트워크 구조를 제공할 수 있다. This application proposes a network structure (that is, a separate network structure) that can prevent data required for deep learning (deep learning) from causing a problem of personal information protection. The present application may provide a network structure in which personal information can be protected by separating the existing network structure so that the server receives only the feature map, not the source of input data.

본원은 사생활 보호 문제로 인한 문제를 해결하기 위해 기존의 신경망 모델(예를 들어, CNN모델)을 기반으로 서버에 피쳐맵(Feature Map)만 전송하는 방식으로 Privacy Preserving을 할 수 있다. 이러한 본원은 개인 정보 보호의 우려로 데이터를 공유하지 못하는 영역(환경)에 대해서도 용이하게 심층 학습(Deep Learning)이 가능하도록 할 수 있다. In order to solve the problem caused by the privacy protection problem, the present application can perform privacy preserving by transmitting only a feature map to the server based on an existing neural network model (eg, a CNN model). This application can easily enable deep learning even in areas (environments) in which data cannot be shared due to concerns about personal information protection.

또한, 본원은 대용량의 이미지를 피쳐맵(Feature Map)으로 변환해 서버로 전송할 수 있음에 따라, 이미지 자체를 서버로 전송하는 것 대비 트래픽을 효과적으로 줄일 수 있다. 즉, 본원은 서버로 입력 데이터의 원본을 전송하는 것 대비 피쳐맵 전송을 통해 트래픽 감소 효과를 얻을 수 있다.In addition, as the present application converts a large-capacity image into a feature map and transmits it to the server, it is possible to effectively reduce traffic compared to transmitting the image itself to the server. That is, the present application can obtain a traffic reduction effect through feature map transmission compared to transmitting the original input data to the server.

본원은 임베디드 시스템에서의 심층 학습시의 성능을 효과적으로 향상시킬 수 있다.This application can effectively improve the performance of deep learning in an embedded system.

만약, 본원에서 제안하는 네트워크 분리 구조 모델보다 클라이언트(Client)에서 0~t까지 레이어를 수행(즉, 0번 레이어부터 마지막번 레이어까지 수행)했을 때 수행 시간이 더 적다면, 0~t까지 레이어를 클라이언트에서 진행하는 것이 바람직할 수 있다. 그 이유는 클라이언트에서 성능 저하가 없다면, 굳이 서버에 데이터를 넘길 필요가 없으며, 모델을 분리할 필요가 없기 때문이라 할 수 있다.If the execution time is less when the client performs layers from 0 to t (that is, from layer 0 to the last layer) than the network separation structure model proposed in the present application, the layer from 0 to t It may be desirable to do so on the client. This is because if there is no performance degradation in the client, there is no need to hand over data to the server, and there is no need to separate the model.

하지만, 본원은 임베디드 시스템이 제한된 환경으로 성능 저하가 심한 경우를 고려하여, 성능이 낮은 임베디드 시스템이 데이터 분석을 위해 서버가 대신 분석해주는 상황에서 프라이버시 침해 문제를 개선하기 위해 제안된 기술이라 할 수 있다. 즉, 본원은 Client와 Server 둘 중에 한곳에서 하던 일을 특정 레이어 기준으로 분리하고 상위 레이어는 Client가 하위 레이어는 Server가 수행하여 분석 결과를 내고자 제안된 기술이라 할 수 있다. 이를 통해 본원은 프라이버시 문제와 성능 저하의 문제를 같이 개선할 수 있다.However, the present application can be said to be a proposed technology to improve the privacy infringement problem in a situation where the server with low performance analyzes the data instead of the embedded system for data analysis, considering the case of severe performance degradation due to the limited environment of the embedded system. . That is, the present application can be said to be a technology proposed to separate the work done in one of the two of the client and the server based on a specific layer, the client in the upper layer and the server in the lower layer to produce the analysis result. Through this, the present application can improve both the privacy problem and the performance degradation problem.

다시 말하자면, 본원은 임베디드 시스템이 제한된 환경으로 인해 성능 저하가 심한 경우, 성능이 낮은 임베디드 시스템이 데이터 분석을 위해 서버가 대신 분석해주는 상황에서(즉, 임베디드 시스템에서 데이터 분석을 수행함에 있어서 서버의 도움이 필요한 상황에서), 프라이버시 침해 문제를 개선하고자 제안된 기술이라 할 수 있다.In other words, in the case where the performance degradation is severe due to the limited environment of the embedded system, the server's help in performing data analysis in the embedded system is in a situation in which the server with low performance analyzes it for data analysis instead. In this necessary situation), it can be said to be a proposed technology to improve the privacy invasion problem.

즉, 본원은 신경망의 네트워크 구조를 특정 레이어(즉, 결정된 분리 시작 레이어)를 기준으로 상위 레이어(즉, 0번 레이어부터 n번 레이어까지)는 클라이언트에 할당되어 분리되도록 하고, 하위 레이어(즉, (n+1)번 레이어부터 마지막 레이어까지)는 서버에 할당되어 분리되도록 함으로써, 이를 기반으로 종래에 클라이언트와 서버 중 어느 한곳에서 집중하여 하던 일(데이터 분석, 업무)을 클라이언트와 서버에서 나누어 데이터 분석(처리)를 수행해 분석 결과가 도출되도록 하는 기술에 관한 것이다. 이러한 본원은 분리된 네트워크 구조를 통해 프라이버시 문제와 성능 저하의 문제를 모두 개선할 수 있다.That is, in the present application, the upper layer (i.e., layer 0 to layer n) is allocated to the client to separate the network structure of the neural network based on a specific layer (i.e., the determined separation start layer), and the lower layer (i.e., (from layer n+1) to the last layer) is allocated to the server and separated, based on this, the work (data analysis, work) that was traditionally concentrated in either the client or the server is divided between the client and the server. It relates to a technology that performs an analysis (processing) to derive an analysis result. The present application can improve both the privacy problem and the performance degradation problem through the separated network structure.

이하에서는 상기에 자세히 설명된 내용을 기반으로, 본원의 동작 흐름을 간단히 살펴보기로 한다.Hereinafter, based on the details described above, the operation flow of the present application will be briefly described.

도 6은 본원의 일 실시예에 따른 본원의 일 실시예에 따른 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조를 분리하는 방법에 대한 동작 흐름도이다.6 is a flowchart illustrating a method of separating a network structure of a neural network during deep learning in an embedded system according to an embodiment of the present application according to an embodiment of the present application.

도 6에 도시된 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조를 분리하는 방법은 앞서 설명된 본 장치(100)에 의하여 수행될 수 있다. 따라서, 이하 생략된 내용이라고 하더라도 본 장치(100)에 대하여 설명된 내용은 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조를 분리하는 방법에 대한 설명에도 동일하게 적용될 수 있다.A method of separating a network structure of a neural network during deep learning in the embedded system illustrated in FIG. 6 may be performed by the apparatus 100 described above. Therefore, even if omitted below, the description of the device 100 may be equally applied to a description of a method of separating a network structure of a neural network during deep learning in an embedded system.

도 6을 참조하면, 단계S31에서 결정부는, 네트워크 구조에 포함된 복수의 레이어(10) 중 임베디드 시스템에서 연산하는 레이어(11)와 임베디드 시스템으로부터 분리하여 서버에 연산 요청할 레이어(12)를 구분하는 분리 시작 레이어(21)를 결정할 수 있다.Referring to FIG. 6, in step S31, the determination unit divides the layer 11 calculated by the embedded system and the layer 12 to request calculation from the server by separating from the embedded system among the plurality of layers 10 included in the network structure. The separation start layer 21 may be determined.

이때, 단계S31에서 결정부는, 신경망(1)에 대한 입력 데이터가 복수의 레이어(10) 중 n번 레이어까지 통과함으로써 생성(출력)된 피쳐맵이 입력 데이터로의 복원이 불가능한 복원 불가 피쳐맵인 복원 불가 조건을 충족하면, n번 레이어의 다음 레이어인 (n+1)번 레이어를 분리 시작 레이어의 후보 레이어로서 고려할 수 있다.At this time, in step S31, the determination unit, the feature map generated (output) by passing the input data for the neural network 1 to the nth layer among the plurality of layers 10 is a non-recoverable feature map that cannot be restored to the input data. When the reconstruction impossibility condition is satisfied, a layer (n+1), which is a layer next to the nth layer, may be considered as a candidate layer of the separation start layer.

또한, 단계S31에서 결정부는, 네트워크 트래픽 양을 줄이기 위해, 복수의 레이어 중 적어도 1회 이상 풀링된 이후의 레이어를 분리 시작 레이어의 후보 레이어로서 고려할 수 있다.In addition, in step S31, in order to reduce the amount of network traffic, the determiner may consider a layer after being pooled at least one or more of the plurality of layers as a candidate layer of the separation start layer.

또한, 단계S31에서 결정부는, 네트워크 구조의 분리와 관련한 서버로의 데이터 전송 시간과 서버에서의 서버 연산 수행 시간의 합이 임베디드 시스템에서의 클라이언트 연산 수행 시간 이하인 수행 시간 조건을 충족하는 n번 레이어의 다음 레이어인 (n+1)번 레이어를 분리 시작 레이어로 결정할 수 있다.Further, in step S31, the determination unit is of layer n that satisfies the execution time condition in which the sum of the data transmission time to the server related to the separation of the network structure and the server operation execution time in the server is less than the client operation execution time in the embedded system. The next layer (n+1) layer may be determined as the separation start layer.

여기서, 서버 연산 수행 시간은, 서버에서 복수의 레이어 중 (n+1)번 레이어부터 마지막 레이어까지 연산을 수행하는 데에 소요되는 시간일 수 있다. 또한, 클라이언트 연산 수행 시간은, 임베디드 시스템에서 복수의 레이어 중 0번 레이어부터 n번 레이어까지 연산을 수행하는 데에 소요되는 시간일 수 있다.Here, the server operation execution time may be a time required for the server to perform the operation from the (n+1)th layer to the last layer among the plurality of layers. In addition, the client operation execution time may be a time required to perform an operation from layer 0 to layer n among a plurality of layers in the embedded system.

단계S31에서 결정부는, 복원 불가 조건을 충족하면서 상기 식 1을 만족하는 n번 레이어의 다음 레이어인 (n+1)번 레이어를 분리 시작 레이어로 결정할 수 있다. 이때, 식 1에 대한 설명은 앞서 자세히 설명했으므로 이하 중복되는 설명을 생략하기로 한다.In step S31, the determiner may determine a layer (n+1) that is a next layer after the n-th layer that satisfies Equation 1 while meeting the restoring impossibility condition as the separation start layer. At this time, since the description of Equation 1 has been described in detail above, the overlapping description will be omitted.

다음으로, 단계S32에서 분리 제어부(120)는, 단계S31에서 결정된 분리 시작 레이어(21)를 기반으로, 분리 시작 레이어 이전의 레이어를 클라이언트 영역(A)에 할당하고, 분리 시작 레이어와 분리 시작 레이어 이후의 레이어를 서버 영역(B)에 할당하여 네트워크 구조를 분리할 수 있다.Next, in step S32, the separation control unit 120 allocates a layer before the separation start layer to the client area A, based on the separation start layer 21 determined in step S31, and the separation start layer and the separation start layer The network structure can be separated by allocating subsequent layers to the server area (B).

상술한 설명에서, 단계 S31 및 S32는 본원의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다.In the above description, steps S31 and S32 may be further divided into additional steps or may be combined into fewer steps, depending on the embodiment of the present application. In addition, some steps may be omitted as necessary, and the order between steps may be changed.

본원의 일 실시 예에 따른 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조를 분리하는 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method of separating the network structure of a neural network during deep learning in an embedded system according to an embodiment of the present disclosure may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the present invention, or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -A hardware device specially configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of the program instructions include not only machine language codes such as those produced by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The above-described hardware device may be configured to operate as one or more software modules to perform the operation of the present invention, and vice versa.

또한, 전술한 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조를 분리하는 방법은 기록 매체에 저장되는 컴퓨터에 의해 실행되는 컴퓨터 프로그램 또는 애플리케이션의 형태로도 구현될 수 있다.In addition, the method of separating the network structure of a neural network during deep learning in the above-described embedded system may be implemented in the form of a computer program or application executed by a computer stored in a recording medium.

전술한 본원의 설명은 예시를 위한 것이며, 본원이 속하는 기술분야의 통상의 지식을 가진 자는 본원의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The foregoing description of the present application is for illustrative purposes only, and those of ordinary skill in the art to which the present application pertains will be able to understand that other specific forms can be easily modified without changing the technical spirit or essential features of the present application. Therefore, it should be understood that the embodiments described above are illustrative in all respects and not limiting. For example, each component described as a single type may be implemented in a distributed manner, and similarly, components described as being distributed may also be implemented in a combined form.

본원의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본원의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present application is indicated by the claims to be described later rather than the detailed description, and all changes or modified forms derived from the meaning and scope of the claims and their equivalent concepts should be interpreted as being included in the scope of the present application.

100: 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조를 분리하는 장치
110: 결정부
120: 분리 제어부
100: Device for separating the network structure of neural networks during deep learning in an embedded system
110: decision part
120: separation control unit

Claims (13)

임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조를 분리하는 방법으로서,
(a) 상기 네트워크 구조에 포함된 복수의 레이어 중 상기 임베디드 시스템에서 연산하는 레이어와 상기 임베디드 시스템으로부터 분리하여 서버에 연산 요청할 레이어를 구분하는 분리 시작 레이어를 결정하는 단계; 및
(b) 상기 분리 시작 레이어 이전의 레이어를 클라이언트 영역에 할당하고, 상기 분리 시작 레이어와 상기 분리 시작 레이어 이후의 레이어를 상기 서버 영역에 할당하여 상기 네트워크 구조를 분리하는 단계,
를 포함하는 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조 분리 방법.
As a method of separating the network structure of a neural network during deep learning in an embedded system,
(a) determining a separation start layer that separates a layer to be calculated by the embedded system from a layer to be calculated by the embedded system from among a plurality of layers included in the network structure and a layer to request calculation from the server; And
(b) separating the network structure by allocating a layer before the separation start layer to a client area, and allocating the separation start layer and a layer after the separation start layer to the server area,
A method of separating the network structure of a neural network during deep learning in an embedded system including a.
제1항에 있어서,
상기 (a) 단계는,
상기 신경망에 대한 입력 데이터가 상기 복수의 레이어 중 n번 레이어까지 통과함으로써 생성된 피쳐맵이 상기 입력 데이터로의 복원이 불가능한 복원 불가 피쳐맵인 복원 불가 조건을 충족하면 n번 레이어의 다음 레이어인 (n+1)번 레이어를 상기 분리 시작 레이어의 후보 레이어로서 고려하는 것인, 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조 분리 방법.
The method of claim 1,
The step (a),
If the feature map generated by passing the input data for the neural network to the nth layer among the plurality of layers satisfies the reconstruction impossibility condition, which is an unrecoverable feature map that cannot be restored to the input data, the next layer of the nth layer, ( The method for separating the network structure of a neural network during deep learning in an embedded system, wherein the n+1) layer is considered as a candidate layer for the separation start layer.
제2항에 있어서,
상기 (a) 단계는,
상기 네트워크 구조의 분리와 관련한 상기 서버로의 데이터 전송 시간과 상기 서버에서의 서버 연산 수행 시간의 합이 상기 임베디드 시스템에서의 클라이언트 연산 수행 시간 이하인 수행 시간 조건을 충족하는 n번 레이어의 다음 레이어인 (n+1)번 레이어를 상기 분리 시작 레이어로 결정하는 것인, 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조 분리 방법.
The method of claim 2,
The step (a),
The next layer of the nth layer that satisfies the execution time condition in which the sum of the data transmission time to the server and the server operation execution time in the server related to the separation of the network structure is less than or equal to the client operation execution time in the embedded system ( The method of separating the network structure of a neural network during deep learning in an embedded system, wherein the n+1) layer is determined as the separation start layer.
제3항에 있어서,
상기 서버 연산 수행 시간은, 상기 서버에서 상기 복수의 레이어 중 (n+1)번 레이어부터 마지막 레이어까지 연산을 수행하는 데에 소요되는 시간이고,
상기 클라이언트 연산 수행 시간은, 상기 임베디드 시스템에서 상기 복수의 레이어 중 0번 레이어부터 n번 레이어까지 연산을 수행하는 데에 소요되는 시간인 것인, 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조 분리 방법.
The method of claim 3,
The server operation execution time is a time required for the server to perform an operation from the (n+1)th layer to the last layer among the plurality of layers,
The client operation execution time is a time required to perform an operation from layer 0 to layer n among the plurality of layers in the embedded system, a method for separating a network structure of a neural network during deep learning in an embedded system .
제2항에 있어서,
상기 (a) 단계는,
네트워크 트래픽 양을 줄이기 위해, 상기 복수의 레이어 중 적어도 1회 이상 풀링된 이후의 레이어를 상기 분리 시작 레이어의 후보 레이어로서 고려하는 것인, 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조 분리 방법.
The method of claim 2,
The step (a),
In order to reduce the amount of network traffic, a layer after being pooled at least one or more of the plurality of layers is considered as a candidate layer of the separation start layer, a method for separating a network structure of a neural network during deep learning in an embedded system.
제3항에 있어서,
상기 (a) 단계는,
하기 식 1을 만족하는 n번 레이어의 다음 레이어인 (n+1)번 레이어를 상기 분리 시작 레이어로 결정하고,
[식 1]
Figure pat00002

여기서, CL n 은 클라이언트 연산 수행 시간, NL n 은 서버로의 데이터 전송 시간, SL n 은 서버 연산 수행 시간, α 는 0<α<1 인 것인, 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조 분리 방법.
The method of claim 3,
The step (a),
A layer (n+1), which is a layer next to the layer n, that satisfies Equation 1 below, is determined as the separation start layer,
[Equation 1]
Figure pat00002

here, CL n is the client operation execution time, NL n is the data transmission time to the server, SL n is the server operation execution time, and α is 0<α<1. A method of separating the network structure of a neural network for deep learning in an embedded system. .
임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조를 분리하는 장치로서,
상기 네트워크 구조에 포함된 복수의 레이어 중 상기 임베디드 시스템에서 연산하는 레이어와 상기 임베디드 시스템으로부터 분리하여 서버에 연산 요청할 레이어를 구분하는 분리 시작 레이어를 결정하는 결정부; 및
상기 분리 시작 레이어 이전의 레이어를 클라이언트 영역에 할당하고, 상기 분리 시작 레이어와 상기 분리 시작 레이어 이후의 레이어를 상기 서버 영역에 할당하여 상기 네트워크 구조를 분리하는 분리 제어부,
를 포함하는 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조 분리 장치.
As a device that separates the network structure of a neural network during deep learning in an embedded system,
A determination unit configured to determine a separation start layer that separates a layer to be calculated by the embedded system from a layer to be calculated by the embedded system from among a plurality of layers included in the network structure and to request an operation from the server; And
A separation control unit for separating the network structure by allocating a layer before the separation start layer to a client area, and allocating the separation start layer and a layer after the separation start layer to the server area,
A device for separating the network structure of a neural network during deep learning in an embedded system comprising a.
제7항에 있어서,
상기 결정부는,
상기 신경망에 대한 입력 데이터가 상기 복수의 레이어 중 n번 레이어까지 통과함으로써 생성된 피쳐맵이 상기 입력 데이터로의 복원이 불가능한 복원 불가 피쳐맵인 복원 불가 조건을 충족하면 n번 레이어의 다음 레이어인 (n+1)번 레이어를 상기 분리 시작 레이어의 후보 레이어로서 고려하는 것인, 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조 분리 장치.
The method of claim 7,
The determination unit,
If the feature map generated by passing the input data for the neural network to the nth layer among the plurality of layers satisfies the reconstruction impossibility condition, which is an unrecoverable feature map that cannot be restored to the input data, the next layer of the nth layer, ( An apparatus for separating a network structure of a neural network during deep learning in an embedded system, wherein the n+1) layer is considered as a candidate layer for the separation start layer.
제8항에 있어서,
상기 결정부는,
상기 네트워크 구조의 분리와 관련한 상기 서버로의 데이터 전송 시간과 상기 서버에서의 서버 연산 수행 시간의 합이 상기 임베디드 시스템에서의 클라이언트 연산 수행 시간 이하인 수행 시간 조건을 충족하는 n번 레이어의 다음 레이어인 (n+1)번 레이어를 상기 분리 시작 레이어로 결정하는 것인, 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조 분리 장치.
The method of claim 8,
The determination unit,
The next layer of the nth layer that satisfies the execution time condition in which the sum of the data transmission time to the server and the server operation execution time in the server related to the separation of the network structure is less than or equal to the client operation execution time in the embedded system ( An apparatus for separating a network structure of a neural network during deep learning in an embedded system, wherein the layer n+1) is determined as the separation start layer.
제9항에 있어서,
상기 서버 연산 수행 시간은, 상기 서버에서 상기 복수의 레이어 중 (n+1)번 레이어부터 마지막 레이어까지 연산을 수행하는 데에 소요되는 시간이고,
상기 클라이언트 연산 수행 시간은, 상기 임베디드 시스템에서 상기 복수의 레이어 중 0번 레이어부터 n번 레이어까지 연산을 수행하는 데에 소요되는 시간인 것인, 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조 분리 장치.
The method of claim 9,
The server operation execution time is a time required for the server to perform an operation from the (n+1)th layer to the last layer among the plurality of layers,
The client operation execution time is a time required to perform an operation from layer 0 to layer n among the plurality of layers in the embedded system. The device for separating the network structure of a neural network during deep learning in an embedded system .
제8항에 있어서,
상기 결정부는,
네트워크 트래픽 양을 줄이기 위해, 상기 복수의 레이어 중 적어도 1회 이상 풀링된 이후의 레이어를 상기 분리 시작 레이어의 후보 레이어로서 고려하는 것인, 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조 분리 장치.
The method of claim 8,
The determination unit,
In order to reduce the amount of network traffic, a layer after being pooled at least one or more of the plurality of layers is considered as a candidate layer of the separation start layer. The apparatus for separating a network structure of a neural network during deep learning in an embedded system.
제9항에 있어서,
상기 결정부는,
하기 식 2를 만족하는 n번 레이어의 다음 레이어인 (n+1)번 레이어를 상기 분리 시작 레이어로 결정하고,
[식 2]
Figure pat00003

여기서, CL n 은 클라이언트 연산 수행 시간, NL n 은 서버로의 데이터 전송 시간, SL n 은 서버 연산 수행 시간, α 는 0<α<1 인 것인, 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조 분리 장치.
The method of claim 9,
The determination unit,
A layer (n+1) that is the next layer of the layer n that satisfies Equation 2 below is determined as the separation start layer,
[Equation 2]
Figure pat00003

Here, CL n is the client operation execution time, NL n is the data transmission time to the server, SL n is the server operation execution time, and α is 0<α<1. The network structure of a neural network for deep learning in an embedded system Separation device.
제1항 내지 제6항 중 어느 한 항의 방법을 컴퓨터에서 실행하기 위한 프로그램을 기록한 컴퓨터에서 판독 가능한 기록매체.A computer-readable recording medium recording a program for executing the method of claim 1 on a computer.
KR1020190051393A 2019-05-02 2019-05-02 Apparatus and method for isolating the network structure of neural networks when deep learning in embedded systems KR102239578B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190051393A KR102239578B1 (en) 2019-05-02 2019-05-02 Apparatus and method for isolating the network structure of neural networks when deep learning in embedded systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190051393A KR102239578B1 (en) 2019-05-02 2019-05-02 Apparatus and method for isolating the network structure of neural networks when deep learning in embedded systems

Publications (2)

Publication Number Publication Date
KR20200127381A true KR20200127381A (en) 2020-11-11
KR102239578B1 KR102239578B1 (en) 2021-04-12

Family

ID=73451762

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190051393A KR102239578B1 (en) 2019-05-02 2019-05-02 Apparatus and method for isolating the network structure of neural networks when deep learning in embedded systems

Country Status (1)

Country Link
KR (1) KR102239578B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102337306B1 (en) * 2021-07-13 2021-12-09 한밭대학교 산학협력단 System for reducing deep learning time using network separation and method therefor
WO2022211140A1 (en) * 2021-03-29 2022-10-06 주식회사 리트빅 Edge-deep-learning-based vehicle safe driving system using vehicle driving state information

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200072586A (en) * 2018-11-30 2020-06-23 서울대학교산학협력단 Deep learning-based image on personal information image processing apparatus and method therefor

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200072586A (en) * 2018-11-30 2020-06-23 서울대학교산학협력단 Deep learning-based image on personal information image processing apparatus and method therefor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022211140A1 (en) * 2021-03-29 2022-10-06 주식회사 리트빅 Edge-deep-learning-based vehicle safe driving system using vehicle driving state information
KR102337306B1 (en) * 2021-07-13 2021-12-09 한밭대학교 산학협력단 System for reducing deep learning time using network separation and method therefor

Also Published As

Publication number Publication date
KR102239578B1 (en) 2021-04-12

Similar Documents

Publication Publication Date Title
KR102419136B1 (en) Image processing apparatus and method using multiple-channel feature map
CN111382868B (en) Neural network structure searching method and device
CN111507150B (en) Method for identifying human face by utilizing multiple image block combination based on deep neural network
KR102180994B1 (en) Adaptive artificial neural network selection techniques
CN111242071B (en) Attention remote sensing image target detection method based on anchor frame
KR20200022739A (en) Method and device to recognize image and method and device to train recognition model based on data augmentation
KR20200075344A (en) Detector, method of object detection, learning apparatus, and learning method for domain transformation
JP7470476B2 (en) Integration of models with different target classes using distillation
CN106462940A (en) Generic object detection in images
CN111104954B (en) Object classification method and device
JP6838161B2 (en) End-to-end modeling methods and systems
CN113393474B (en) Feature fusion based three-dimensional point cloud classification and segmentation method
KR102676221B1 (en) Method and apparatus for speech recognition
KR102239578B1 (en) Apparatus and method for isolating the network structure of neural networks when deep learning in embedded systems
KR102543698B1 (en) Computing system and method for data labeling thereon
KR102249818B1 (en) Method and apparatus of generating training data based on distribution characteristics of training data
US11954590B2 (en) Artificial intelligence job recommendation neural network machine learning training based on embedding technologies and actual and synthetic job transition latent information
KR20220073088A (en) A method and system of switching specialized lightweight neural networks for concept-drift adaptation in resource-constrained mobile devices
KR20220045424A (en) Method and apparatus of compressing artificial neural network
KR102613367B1 (en) Method and apparatus for automatically reducing model weight for deep learning model serving optimization, and a method for providing cloud inference services usin the same
WO2023207411A1 (en) Traffic determination method and apparatus based on spatio-temporal data, and device and medium
KR102142943B1 (en) Cloud based artificial intelligence operation service method and apparatus performing the same
KR101993085B1 (en) Semantic image segmentation method based on deep learing
KR20200020107A (en) Method and system for authenticating stroke-based handwritten signature using machine learning
JP2022091660A (en) Data processing method using neural network, data processing device and electronic device including the same

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant