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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
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
Description
본원은 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조 분리 장치 및 방법에 관한 것이다. 특히, 본원은 임베디드 시스템에서의 심층 학습(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
이하에서는 본원의 일 실시예에 따른 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조를 분리하는 장치(100)를 설명의 편의상 본 장치(100)라 하기로 한다.Hereinafter, the
도 1 및 도 2를 참조하면, 본 장치(100)는 임베디드 시스템에서의 심층 학습(Deep Learning, 딥러닝)시 개인 정보 보호(Privacy Preserving)가 가능하면서 성능이 향상되도록 신경망(1)의 네트워크 구조(5)를 분리할 수 있다.Referring to FIGS. 1 and 2, the
본 장치(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
본 장치(100)에서 고려되는 신경망(1)은 신경망 모델, 네트워크 구조, 네트워크 모델 등으로 달리 지칭될 수 있다.The
일반적으로 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
특징 추출 부분에서 컨볼루션 레이어는 컨볼루션 연산을 통해 특징들을 추출하는 레이어로서, 규칙적인 패턴을 가진 곱셈이 이루어질 수 있다. 컨볼루션 레이어는 필터(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
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
신경망(1)은 입력 데이터가 여러 채널을 갖는 경우, 필터가 각 채널을 순회하며 합성곱을 계산함으로써, 채널별 피쳐맵(특징맵)을 생성(출력)할 수 있다. 다시 말해, 신경망(1)에 포함된 컨볼루션 레이어 각각은, 해당 컨볼루션 레이어에 입력된 데이터에 대하여 필터 적용을 통해 합성곱을 계산함으로써 피쳐맵(특징맵)을 생성(출력)할 수 있다. 즉, 신경망(1)에 포함된 컨볼루션 레이어 각각으로부터 피쳐맵이 생성되어 출력될 수 있다. When the input data has multiple channels, the
한편, 종래에는 신경망을 이용한 심층 학습시의 정확도를 높이기 위해 학습을 위한 데이터를 대규모로 수집하고, 수집된 대규모 데이터(즉, 방대한 양의 데이터)를 이용해 심층 학습을 수행한다. 그런데, 심층 학습을 위한 대규모 데이터의 수집을 위해 사용자들로부터 과도하게(무분별하게) 데이터를 수집하는 경우, 수집된 데이터 내에 정보 공개시 사용자가 민감해 할 수 있는 개인 데이터(예를 들어, 사진, 음성 녹음 등)가 포함되어 있을 수 있으며, 이러한 민감한 개인 데이터를 이용한 심층 학습의 수행은 개인 정보에 대한 보호가 이루어지지 못하는 문제, 즉 개인 정보 보호(사생활 보호, 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
본 장치(100)는 결정부(110) 및 분리 제어부(120)를 포함할 수 있다.The
결정부(110)는 네트워크 구조(5)에 포함된 복수의 레이어(10) 중 임베디드 시스템에서 연산하는 레이어(11)와 임베디드 시스템으로부터 분리하여 서버에 연산 요청할 레이어(12)를 구분하는 분리 시작 레이어(21)를 결정할 수 있다.The
여기서, 복수의 레이어(10)는 네트워크 구조(5)에 포함된 레이어들, 달리 표현해 신경망(1)에 포함된 레이어들을 의미할 수 있다. 즉, 본 장치(100)에서 네트워크 구조(5)는 신경망(1) 구조라 달리 표현될 수 있다.Here, the plurality of
구체적인 예로, 신경망(1)이 CNN 인 경우, 복수의 레이어(10)는 일예로 CNN 내 특징 추출 부분에 대응하는(특징 추출 부분에 속한) 복수의 레이어일 수 있다. 즉, 복수의 레이어(10)에는 적어도 하나의 컨볼루션 레이어(CONV)와 적어도 하나의 풀링 레이어(POOL)가 포함될 수 있으나, 이에 한정되는 것은 아니다.As a specific example, when the
본 장치(100)에서 임베디드 시스템이라 함은 클라이언트(Client)를 의미(클라이언트에 포함되는 시스템을 의미)할 수 있다. 본 장치(100)는 일예로 임베디드 시스템(즉, 클라이언트)에 구비되는 장치일 수 있다.In the
분리 제어부(120)는 결정부(110)에서 분리 시작 레이어(21)가 결정되면, 분리 시작 레이어 이전의 레이어(21a)를 클라이언트 영역(A)에 할당하고, 분리 시작 레이어(21)와 분리 시작 레이어 이후의 레이어(21b)를 서버 영역(B)에 할당하여 네트워크 구조(5)를 분리할 수 있다.When the
이에 따르면, 앞서 설명한 임베디드 시스템(클라이언트)에서 연산하는 레이어(11)는 클라이언트 영역(A)에 할당되는 분리 시작 레이어 이전의 레이어(21a)에 대응될 수 있다. 또한, 앞서 설명한 서버에 연산 요청할 레이어(12)는 분리 시작 레이어(21)와 분리 시작 레이어 이후의 레이어(21b)를 포함하는 레이어에 대응될 수 있다.According to this, the
분리 제어부(120)는 복수의 레이어(10)에 대응하는 네트워크 구조(5)를 클라이언트 영역(A)과 서버 영역(B)을 포함하도록 분리(구분)한 이후, 클라이언트 영역(A)에 할당된 레이어들(21a)을 임베디드 시스템(클라이언트)으로 제공하고, 서버 영역(B)에 할당된 레이어들(21, 21b)을 서버로 제공할 수 있다. After separating (dividing) the
이때, 분리 제어부(120)는 레이어의 제공시 레이어 뿐만 아니라 그에 대응하는 가중치를 함께 제공할 수 있다. 즉, 분리 제어부(120)는 클라이언트 영역(A)에 할당된 레이어들(21a) 및 해당 레이어들(21a)에 대응하는 가중치를 임베디드 시스템(클라이언트)으로 제공할 수 있다. 또한, 분리 제어부(120)는 서버 영역(B)에 할당된 레이어들(21, 21b) 및 해당 레이어들(21, 21b)에 대응하는 가중치를 서버로 제공할 수 있다.In this case, when providing the layer, the
달리 말해, 본 장치(100)가 일예로 임베디드 시스템에 구비되는 장치임을 고려하면, 분리 제어부(120)는 클라이언트 영역(A)에 할당된 레이어들(21a) 및 해당 레이어들(21a)에 대응하는 가중치는 자체적으로 가지고 있고, 서버 영역(B)에 할당된 레이어들(21, 21b) 및 해당 레이어들(21, 21b)에 대응하는 가중치는 네트워크 소켓을 통해 서버로 제공(전달)할 수 있다.In other words, considering that the
이하에서는 결정부(110)에서 분리 시작 레이어(21)를 결정하는 과정에 대하여 보다 상세히 설명하기로 한다.Hereinafter, a process of determining the
도 3은 본원의 일 실시예에 따른 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조를 분리하는 장치(100)에서의 네트워크 구조(5)에 포함된 복수의 레이어(10)의 예를 나타낸 도면이다.3 is a diagram illustrating an example of a plurality of
도 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
결정부(110)는, 신경망(1)에 대한 입력 데이터(Input Data, 2)가 복수의 레이어(10) 중 n번 레이어(33)까지 통과함으로써 생성(출력)된 피쳐맵(33a)이 입력 데이터(2)로의 복원이 불가능한 복원 불가 피쳐맵인 복원 불가 조건을 충족하면(즉, n번 레이어까지 통과함으로써 생성된 피쳐맵이 복원 불가 피쳐맵인 경우), n번 레이어(33)의 다음 레이어인 (n+1)번 레이어(34)를 분리 시작 레이어(21)의 후보 레이어로서 고려할 수 있다.The
여기서, 신경망(1)에 입력되는 입력 데이터(2)는 일예로 이미지 데이터일 수 있으며, 이에 한정되는 것은 아니고, 학습을 위한 다양한 종류(유형)의 데이터가 고려될 수 있다.Here, the
또한, 복수의 레이어(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
또한, 복수의 레이어(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
예시적으로, 복수의 레이어(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
이에 따르면, 신경망(1)에 대한 입력 데이터(2)가 복수의 레이어(10) 중 n번 레이어(33)까지 통과함으로써 생성된 피쳐맵(33a)이 입력 데이터(2)로의 복원이 불가능한 복원 불가 피쳐맵인 복원 불가 조건을 충족함에 따라 n번 레이어(33)가 복원 불가 레이어이면서 p번 레이어 이상인 것으로 식별되면, 결정부(110)는 n번 레이어(33)의 다음 레이어인 (n+1)번 레이어(34)를 분리 시작 레이어(21)의 후보 레이어로서 고려할 수 있다.According to this, the
만약, 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
여기서, (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)-
이처럼, 결정부(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
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
또한, 결정부(110)는 네트워크 트래픽 양을 줄이기 위해, 복수의 레이어(10) 중 적어도 1회 이상 풀링(Pooling)된 이후의 레이어를 분리 시작 레이어(21)의 후보 레이어로서 고려할 수 있다. 예시적으로, 도 5에는 네트워크의 트래픽 양을 줄이기 위해 풀링된 직후의 레이어(즉, 풀링 레이어(POOL 레이어) 다음의 레이어)가 후보 레이어로서 고려된 이후, 최종적으로 분리 시작 레이어(21)로 결정된 경우의 예가 도시되어 있다.Also, in order to reduce the amount of network traffic, the
이에 따르면, 클라이언트는 입력 데이터(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-
여기서, 서버 연산 수행 시간(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)
다시 말해, 서버 연산 수행 시간(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)-
또한, 서버로의 데이터 전송 시간(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
결정부(110)는 n번 레이어(33)가 복원 불가 조건을 충족하여 (n+1)번 레이어(34)를 후보 레이어로서 고려한 이후에, 하기 식 1을 만족하는 n번 레이어의 다음 레이어인 (n+1)번 레이어를 분리 시작 레이어(21)로서 결정할 수 있다. 즉, 결정부(110)는 n번 레이어(33)가 복원 불가 조건을 충족하면서 하기 식 1을 만족하면, n번 레이어(33)의 다음 레이어인 (n+1)번 레이어(34)를 분리 시작 레이어(21)로서 결정할 수 있다.After the n-
[식 1][Equation 1]
여기서, 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
달리 말해, 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
반면, 결정부(110)는 (n+1)번 레이어(34)가 수행 시간 조건을 충족하지 않으면, 다시 (n+1)번 레이어(34)에 대하여 n을 1 증가시켜, (n+2)번 레이어(35)가 복원 불가 조건을 충족하는 p번 레이어 이상인지 판단할 수 있다.On the other hand, if the (n+1)-
결정부(110)에서의 분리 시작 레이어(21)의 결정 과정을 다시 설명하면 다음과 같다.The process of determining the
도 4는 본원의 일 실시예에 따른 임베디드 시스템에서의 심층 학습시 신경망의 네트워크 구조를 분리하는 장치(100)에서 분리 시작 레이어(21)를 결정하는 과정의 흐름을 개략적으로 나타낸 도면이다. 즉, 도 4는 복수의 레이어(10) 중 네트워크 구조의 분리를 위한 최적의 레이어 분리 지점인 분리 시작 레이어(21)를 결정(선택)하는 과정의 흐름을 나타낸 도면이다. 도 4에서의 분리 시작 레이어(21)의 결정 과정은 결정부(110)에 의해 수행될 수 있다.4 is a diagram schematically illustrating a flow of a process of determining a
도 4를 참조하면, 결정부(110)는 'n번 레이어 ≥ p' 인지 판단할 수 있다(S11). 즉, 단계S11에서는 복수의 레이어(10) 중 n번 레이어(33)가 p번 레이어(복원 불가 레이어들 중 처음에 위치한 첫번째 복원 불가 레이어) 이상인지 여부를 판단할 수 있다. 달리 말해, 단계S11에서는 n번 레이어가 피쳐맵으로서 입력 데이터로의 복원이 불가능한 복원 불가 피쳐맵을 생성(출력)하는지 판단할 수 있다. Referring to FIG. 4, the
이때, 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
한편, 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
이때, n번 레이어가 상기 식 1을 충족하면(S12-Y), 결정부(110)는 n번 레이어의 다음 레이어인 (n+1)번 레이어를 분리 시작 레이어(21)로 결정할 수 있다(S13).In this case, if the n-th layer satisfies Equation 1 (S12-Y), the
만약, 단계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
이때, 단계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
이에 따르면, 결정부(110)는 복수의 레이어(10) 중 p번 레이어 이상이면서(즉, 단계S11을 만족하면서), 식 1을 만족(즉, 단계S12를 만족)하는 레이어를 네트워크 구조(5)에 대한 최적의 분리 지점 레이어인 분리 시작 레이어(21)로서 결정할 수 있다.According to this, the
이후, 분리 제어부(120)는 결정부(110)에서 결정된 분리 시작 레이어(21)를 기반으로 네트워크 구조(5)를 분리할 수 있다.Thereafter, the
본원에서 결정부(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
다시 말해, 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
상술한 설명에서, 단계 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
도 5를 참조하면, 단계S21에서는 분리 제어부(120)가 결정부(110)에서 결정된 분리 시작 레이어(21)를 기준으로 네트워크 구조(5)를 분리할 수 있다.Referring to FIG. 5, in step S21, the
이때, 단계S21에서 분리 제어부(120)는 복수의 레이어(10)가 분리 시작 레이어(21)를 기준으로 클라이언트 영역(A)과 서버 영역(B)으로 구분되어 할당되도록 네트워크 구조(5)를 분리할 수 있다. 예시적으로, 분리 제어부(120)는 총 t개의 레이어로 이루어진 네트워크 구조(5)에서, 분리 시작 레이어를 기준으로 클라이언트 영역(A)과 서버 영역(B)으로 구분되도록 네트워크 구조(5)를 분리할 수 있다.At this time, in step S21, the
단계S21에서 분리 제어부(120)는 클라이언트 영역(A)에 할당된 레이어들(21a)을 임베디드 시스템(클라이언트)으로 제공하고, 서버 영역(B)에 할당된 레이어들(21, 21b)을 서버로 제공할 수 있다. In step S21, the
이때, 분리 제어부(120)는 레이어의 제공시 레이어 뿐만 아니라 그에 대응하는 가중치를 함께 제공할 수 있다. 즉, 분리 제어부(120)는 클라이언트 영역(A)에 할당된 레이어들(21a) 및 해당 레이어들(21a)에 대응하는 가중치를 임베디드 시스템(클라이언트)으로 제공할 수 있다. 또한, 분리 제어부(120)는 서버 영역(B)에 할당된 레이어들(21, 21b) 및 해당 레이어들(21, 21b)에 대응하는 가중치를 서버로 제공할 수 있다.In this case, when providing the layer, the
달리 말해, 단계S21에서는, 본 장치(100, 임베디드 시스템)에서 결정부(110)가 복수의 레이어(10) 중 최적의 분리 지점 레이어인 분리 시작 레이어(21)를 결정(선택)할 수 있다. 이후, 분리 제어부(120)가 분리 시작 레이어(21)를 기준으로, 그 이전의 레이어들 및 그에 대응하는 가중치는 클라이언트에 할당(구성)되도록 하는 한편, 분리 시작 레이어(21)와 그 이후의 레이어들 및 그에 대응하는 가중치(즉, 분리 시작 레이어의 가중치와 분리 시작 레이어 이후의 레이어들의 가중치)는 분리하여 서버로 전송함으로써 서버에 할당(구성)되도록 할 수 있다.In other words, in step S21, the
단계 S21에 의해 네트워크 구조(5)의 분리가 이루어진 이후에, 분리된 네트워크 구조가 적용된 클라이언트(Client)에 입력 데이터(2, Input Data)가 입력(S22)될 수 있다. 클라이언트는 입력 데이터(2)에 대한 연산을 수행할 수 있다. 즉, 클라이언트는 입력 데이터(2)의 입력에 응답하여, 입력 데이터(2)에 대한 연산으로서 분리 제어부(120)에 의해 클라이언트에 할당(제공)된 레이어들(즉, 분리 시작 레이어 이전의 레이어들)을 이용하여 입력 데이터(2)에 대응하는 피쳐맵(Feature Map)을 생성(출력)할 수 있다(S23).After the
이후, 클라이언트는 네트워크 소켓을 통해 단계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
다시 말해, 본 장치(100)는 임베디드 시스템이 입력 데이터(2)를 신경망(1) 모델에서 최적의 분리 지점 레이어로 결정된 분리 시작 레이어(21) 이전의 레이어들에 통과시켜 피쳐맵을 생성하고, 생성된 피쳐맵만을 서버로 전송할 수 있도록 하는, 개인 정보 보호(Privacy Preserving, 사생활 보호)와 성능 향상을 고려한 분리된 네트워크 구조에 대하여 제안한다. 이때, 본 장치(100)에서 결정부(110)는 복수의 레이어(10) 중 최적의 분리 지점 레이어인 분리 시작 레이어(21)를 결정함에 있어서, 다음과 같은 두 가지 사항을 고려하여 분리 시작 레이어(21)를 결정할 수 있다.In other words, the
첫번째 고려사항으로, 결정부(110)는 분리 시작 레이어(21)를 복원되지 않을 정도의 분리 계층(분리 지점 레이어)으로 결정(선택)해야 할 필요가 있다. 결정부(110)는 해당 레이어를 통과하여 생성(출력)되는 피쳐맵으로서, 입력 데이터로의 복원이 불가능한 복원 불가 피쳐맵을 생성(출력)하는 레이어를 분리 시작 레이어(21)로 선택해야 할 필요가 있다.As a first consideration, the
만약, 서버에 모든 데이터를 보낸다면(즉, 대규모 데이터를 기반으로 한 심층 학습에 대한 모든 데이터 처리가 서버에서 이루어지도록 한다면), 수행 속도(데이터 처리 속도)가 빠르겠지만, 개인 정보 보호에 어려움이(즉, 개인 정보 보호에 문제가) 있을 수 있다.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
즉, 분리 시작 레이어(21)는 Privacy Preserving을 고려하여 'n번 레이어 ≥ p'의 조건을 만족하는 레이어로 결정(선택)될 수 있다. 여기서, p는 복원되지 않는 최소한의 p번 레이어를 의미한다. 클라이언트는 임베디드 시스템으로서, 서버가 많은 일을 수행하는 것은 전체 수행 시간을 단축시킬 수 있겠지만 개인 정보 보호의 문제가 있을 수 있으므로, 네트워크 구조의 분리는 Privacy Preserving을 고려하여 최소한의 p번 레이어보다 큰 레이어를 기준으로 이루어져야 한다. That is, the
임베디드 시스템과 객체 검출(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
결정부(110)는 Privacy Preserving을 고려하여, 복수의 레이어(10) 중 p 번 레이어 이상인 레이어를 분리 시작 레이어(21)의 후보 레이어로서 고려할 수 있다. In consideration of privacy preserving, the
두번째 고려사항으로, 결정부(110)는 분리 시작 레이어(21)를 서버로의 데이터 전송 시간(NL n)을 고려하여 결정(선택)해야 할 필요가 있다. 서버에서 수행 속도가 빠르더라도 네트워크 트래픽(네트워크 트래픽 시간)이 증가한다면 전체 수행 시간에 문제가 있을 수 있다(즉, 전체 수행 시간의 성능이 떨어질 수 있다). 이에, 결정부(110)는 분리 시작 레이어(21)의 결정시 서버로의 데이터 전송 시간(즉, 피쳐맵 전송시의 네트워크 트래픽 시간, NL n)을 고려할 수 있다.As a second consideration, the
또한, 결정부(110)는 분리 시작 레이어(21)를 클라이언트 연산 수행 시간(CL n)과 서버 연산 수행 시간(SL n)을 고려하여 결정(선택)해야 할 필요가 있다. 성능에 제약이 있는 임베디드 환경의 클라이언트보다 서버에서의 수행 속도가 더 빠를 것이나, 개인 정보 보호(Privacy Preserving)를 고려한 네트워크 구조의 분리(즉, 레이어의 분할)시 클라이언트에 부하량이 많도록 분리가 이루어진다면, 전체 수행 시간에 문제가 있을 수 있다. 이에, 결정부(110)는 분리 시작 레이어(21)의 결정시 CL n과 SL n을 고려할 수 있다.In addition, the
구체적으로, 서버로의 데이터 전송 시간(네트워크 트래픽 시간, NL n)과 서버 연산 수행 시간(SL n)을 합한 시간이 클라이언트 연산 수행 시간(CL n)보다 오래 걸리는 경우, 전체 성능이 낮아질 수 있다. 따라서, 결정부(110)는 NL n, CL n 및 SL 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
이에 따르면, 결정부(110)는 앞서 설명한 두가지 고려사항을 고려하여, 복수의 레이어(10) 중 'n번 레이어≥ p'의 조건을 만족하면서 상기 식 1의 조건을 만족하는 레이어의 다음 레이어를 최적의 분리 지점 레이어인 분리 시작 레이어(21)로 결정할 수 있다. 본 장치(100)는 이러한 최적의 분리 지점 레이어인 분리 시작 레이어(21)를 기반으로 네트워크 구조(5)를 분리할 수 있다.According to this, the
즉, 본원은 'n번 레이어 ≥ p'의 조건을 만족하면서 상기 식 1의 조건을 만족하는 레이어의 다음 레이어를 분리 시작 레이어(21)로 선택하여 이를 기준으로 네트워크 구조의 분리를 수행함으로써, 개인 정보 보호가 가능하도록 하는 네트워크 구조를 제공할 수 있다.That is, the present application selects the next layer of the layer that satisfies the condition of
본원은 본 장치(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
본 장치(100)는 임베디드 시스템에서 입력 데이터를 적절한 레이어(즉, 분리 시작 레이어 이전의 레이어)까지 통과시켜 피쳐맵(특징맵, Feature Map)만이 서버로 전송되도록 하여 개인 정보 보호(Privacy Preserving)가 가능해지도록 하는 분리된 네트워크 구조를 제공할 수 있다.The
본원은 Privacy Preserving을 적용하기 위해 최적의 적절한 분리 지점 레이어로서 분리 시작 레이어(21)를 선택(결정)하고, 이를 기반으로 분리된 네트워크 구조에서의 클라이언트와 서버 간 통신 기술(즉, 클라이언트와 서버 간의 데이터 처리 기술)에 대하여 제안한다.The present application selects (determines) the
본원은 서버와 클라이언트 간의 트래픽 시간(데이터 전송 시간)을 측정하여 네트워크 구조의 분리를 위한 최적의 레이어 분리 지점을 개선할 수 있다. 본원은 제안하는 네트워크 구조의 분리를 통해, 개인 정보 보호의 향상뿐만 아니라 자원에 제약이 있는 임베디드 시스템에서의 네트워크 트래픽과 부하량을 효과적으로 줄일 수 있다. 즉, 본원은 네트워크 구조의 분리를 통해 기존의 네트워크 구조 대비 전송 네트워크 트래픽과 임베디드 시스템 내의 부하량을 개선할 수 있다.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
하지만, 본원은 임베디드 시스템이 제한된 환경으로 성능 저하가 심한 경우를 고려하여, 성능이 낮은 임베디드 시스템이 데이터 분석을 위해 서버가 대신 분석해주는 상황에서 프라이버시 침해 문제를 개선하기 위해 제안된 기술이라 할 수 있다. 즉, 본원은 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.,
이하에서는 상기에 자세히 설명된 내용을 기반으로, 본원의 동작 흐름을 간단히 살펴보기로 한다.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
도 6을 참조하면, 단계S31에서 결정부는, 네트워크 구조에 포함된 복수의 레이어(10) 중 임베디드 시스템에서 연산하는 레이어(11)와 임베디드 시스템으로부터 분리하여 서버에 연산 요청할 레이어(12)를 구분하는 분리 시작 레이어(21)를 결정할 수 있다.Referring to FIG. 6, in step S31, the determination unit divides the
이때, 단계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
또한, 단계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
단계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
다음으로, 단계S32에서 분리 제어부(120)는, 단계S31에서 결정된 분리 시작 레이어(21)를 기반으로, 분리 시작 레이어 이전의 레이어를 클라이언트 영역(A)에 할당하고, 분리 시작 레이어와 분리 시작 레이어 이후의 레이어를 서버 영역(B)에 할당하여 네트워크 구조를 분리할 수 있다.Next, in step S32, the
상술한 설명에서, 단계 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.
상기 (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.
상기 (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.
상기 서버 연산 수행 시간은, 상기 서버에서 상기 복수의 레이어 중 (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 .
상기 (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.
상기 (a) 단계는,
하기 식 1을 만족하는 n번 레이어의 다음 레이어인 (n+1)번 레이어를 상기 분리 시작 레이어로 결정하고,
[식 1]
여기서, 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]
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.
상기 결정부는,
상기 신경망에 대한 입력 데이터가 상기 복수의 레이어 중 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.
상기 결정부는,
상기 네트워크 구조의 분리와 관련한 상기 서버로의 데이터 전송 시간과 상기 서버에서의 서버 연산 수행 시간의 합이 상기 임베디드 시스템에서의 클라이언트 연산 수행 시간 이하인 수행 시간 조건을 충족하는 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.
상기 서버 연산 수행 시간은, 상기 서버에서 상기 복수의 레이어 중 (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 .
상기 결정부는,
네트워크 트래픽 양을 줄이기 위해, 상기 복수의 레이어 중 적어도 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.
상기 결정부는,
하기 식 2를 만족하는 n번 레이어의 다음 레이어인 (n+1)번 레이어를 상기 분리 시작 레이어로 결정하고,
[식 2]
여기서, 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]
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.
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)
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)
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 |
-
2019
- 2019-05-02 KR KR1020190051393A patent/KR102239578B1/en active IP Right Grant
Patent Citations (1)
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)
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 |