KR20200113744A - 심층 신경망 분할 방법 및 장치 - Google Patents
심층 신경망 분할 방법 및 장치 Download PDFInfo
- Publication number
- KR20200113744A KR20200113744A KR1020190034381A KR20190034381A KR20200113744A KR 20200113744 A KR20200113744 A KR 20200113744A KR 1020190034381 A KR1020190034381 A KR 1020190034381A KR 20190034381 A KR20190034381 A KR 20190034381A KR 20200113744 A KR20200113744 A KR 20200113744A
- Authority
- KR
- South Korea
- Prior art keywords
- point
- learning
- cloud
- edge device
- deep neural
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 34
- 238000000638 solvent extraction Methods 0.000 title claims description 6
- 230000009471 action Effects 0.000 claims abstract description 54
- 230000011218 segmentation Effects 0.000 claims description 24
- 230000006870 function Effects 0.000 claims description 15
- 230000006399 behavior Effects 0.000 claims description 4
- 230000002787 reinforcement Effects 0.000 abstract description 46
- 230000008569 process Effects 0.000 abstract description 28
- 230000000875 corresponding effect Effects 0.000 description 28
- 238000004364 calculation method Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 238000005265 energy consumption Methods 0.000 description 6
- 230000007613 environmental effect Effects 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 3
- 239000000470 constituent Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
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
-
- 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/092—Reinforcement learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- 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
-
- 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/088—Non-supervised learning, e.g. competitive learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- 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
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Feedback Control In General (AREA)
Abstract
프로세서는 복수의 출구 포인트와 각 출구 포인트에 해당하는 브랜치에 적어도 하나의 분할 포인트를 갖는 심층 신경망을 엣지 기기와 클라우드에서 분산 처리를 위해 분할하기 위해, 학습을 위한 환경 변수와 학습 변수를 설정하고, 현재의 상태에 해당하는 출구 포인트와 분할 포인트의 조합에서 상기 출구 포인트와 상기 분할 포인트 중 적어도 하나를 이동시키는 행동을 선택하고, 상기 선택한 행동에 따른 보상을 통해 경험 데이터를 축적한 뒤 다음 상태로 이동하는 방식으로 학습을 진행하고, 상기 학습의 결과로서 최적의 출구 포인트와 분할 포인트의 조합을 출력한다.
Description
본 발명은 심층 신경망 분할 방법 및 장치에 관한 것으로, 더욱 자세하게는 엣지 컴퓨팅 환경에서 최적의 분산 컴퓨팅을 위한 강화학습 기반의 심층신경망 분할 방법 및 장치에 관한 것이다.
심층 신경망(Deep Neural Networks, DNN)은 입력층과 출력층, 그리고 그 사이에 존재하는 여러 개의 은닉층(hidden layer)으로 이루어져 있으며, 최종 결과를 도출해 내기 위해 수많은 층에서 복잡한 연산 과정을 거쳐야 한다. DNN은 연산 과정에서 많은 계산량과 저장공간, 그리고 에너지 소모를 필요로 하기 때문에, 제한된 컴퓨팅 자원과 저장 공간을 가지고 빠른 서비스를 제공해야 하는 엣지 기기에서 이를 적용하기에는 현실적인 어려움이 있다.
이러한 문제를 해결하기 위해서, 기존의 DNN을 거치면서 처리했던 연산 과정을 클라우드와 엣지 기기 간에 분산하여 처리하는 분산 DNN(Distributed DNN, DDNN) 구조가 제시되었다. DDNN 구조에서는 엣지 기기에서 DNN의 일부 층까지만 연산하여 처리한 뒤, 자체적으로 추론 결과를 판단하여 어느 정도 정확도가 만족된다면 더 이상의 불필요한 연산을 하지 않는다. 반면, 엣지 기기에서의 추론 정확도가 부족하여 좀 더 정밀한 연산이 필요할 경우에는 클라우드에서 이어서 처리하는 구조이다. 이와 같이 엣지 기기에서 연산 과정을 멈출 수 있도록 하기 위해서는 기존의 DNN 구조가 출구 포인트(exit point)를 갖도록 변형하는 과정이 우선되어야 한다. 엣지 기기는 설정된 출구 포인트를 기준으로 출구 포인트의 이전 층까지 연산 과정을 거친 후, 중간 연산 결과를 기반으로 추론의 정확도를 계산한다. 계산된 추론 정확도를 미리 정해진 임계치와 비교하여 정확도가 임계치보다 높을 경우, 처리된 결과를 출력하고 이후 층의 연산 과정을 멈춘다. 이를 로컬 출구(local exit)로 지칭한다. 만약, 정확도가 임계치보다 낮을 경우, 엣지 기기는 해당 층까지 처리된 중간 연산 결과를 클라우드로 전송하고 클라우드에서는 엣지 기기에서 처리한 층까지의 중간 연산 결과를 수신한 후, 이후 층부터 최종 층까지 연산하여 최종 결과를 추론한다. 이를 클라우드 출구(cloud exit)로 지칭한다. 이러한 로컬 출구의 도입은 추론의 정확도를 크게 잃지 않으면서 추론 속도를 낮춰주는 효과가 있다. 하지만 기존의 기술에서는 출구 포인트가 정적(static)으로 결정되기 때문에, 현재 엣지 기기의 컴퓨팅 자원 상황이나 네트워크 상황 등의 환경 변수를 고려하여 적응적으로 출구 포인트를 결정해야 할 필요가 있다.
이러한 로컬 출구 구조와 더불어, 서비스의 종단간 지연(end-to-end latency) 또는 엣지 기기의 에너지 소모를 최소화하기 위해서 엣지 기기와 클라우드 간 분산 컴퓨팅에 대한 방법이 제시되었다. 제안된 알고리즘을 통해, DNN의 수 많은 은닉층 중 최적의 분할 포인트(partition point)를 결정하고, 이를 기준으로 엣지 기기와 클라우드에서 나누어 처리하는 구조이다. 제안된 층 분할(layer partitioning) 방법에서는 클라우드의 현재 부하 레벨(load level), 엣지 기기와 클라우드 간 네트워크 대역폭(bandwidth)뿐만 아니라, 특정 DNN 구조에 속한 각 층의 계산 지연(computational latency)과 연산 결과로 나오는 출력 데이터 크기(output data size)에 대한 특성을 고려한다. DNN에 속한 각 층마다 연산에 필요한 계산량과 출력 데이터 사이즈가 각기 다른 특성을 보이는데, 이러한 특성은 클라우드의 현재 부하 레벨과 현재 네트워크 대역폭에 따라서 최적의 분할 포인트 결정에 영향을 미친다. 따라서, 최적의 분할 포인트를 찾기 위해서는 층별로 지연 또는 에너지 소모에 대한 성능 예측 모델을 만들어야 한다. 각 층마다 입력 크기(input size), 출력 크기(output size), 필터 개수, 필터 크기 등의 구성(configuration) 변수를 바꿔가면서 다양한 구성에 대해 데이터를 프로파일링(profiling) 한 뒤, 회귀(regression) 모델을 만들고, 회귀 모델을 이용하여 DNN 구성에 대한 층별 성능을 계산하고, 이와 함께 현재 자원 사용 상황, 네트워크 대역폭 등을 고려하여 최적의 분할 포인트를 찾아낸다. 찾아낸 분할 포인트를 기준으로 하여, 엣지 기기에서는 앞쪽 층에 대한 연산 과정을 거치고 중간 계산 결과를 클라우드로 전송한다. 이를 수신한 클라우드에서는 마지막 층까지 연산 과정을 거친 후, 최종적인 추론 결과를 엣지 기기에게 전송한다.
최근 연구에서는 어플리케이션의 지연 요구 사항을 만족시키면서 높은 추론 정확도를 제공하기 위해 로컬 출구와 분할 포인트를 함께 찾는 방법도 제시되었다. 이를 위해서는 두 가지 전처리 과정이 필요하다. 먼저, DDNN 구조와 마찬가지로 기존의 DNN 구조를 오픈소스 프레임워크인 브랜치넷(BranchyNet)을 이용하여 멀티 출구 포인트(multi-exit point)를 갖는 구조로 모델링한다. 두 번째로, 층 분할 방법과 마찬가지로 층별로 지연 특성을 다양한 구성에 대해 프로파일링하고, 이를 기반으로 성능 예측을 위한 회귀 모델을 생성한 다음, 런타임(runtime)에서는 생성한 층별 회귀 모델과 현재 네트워크 대역폭 등의 상황 변수를 기반으로 하여, 지연 요구 사항을 만족시키는 출구 포인트와 분할 포인트 조합 중에 가장 높은 정확도를 보이는 조합을 결정한다.
하지만, 앞서 언급한 기존의 층별 분할 방식들이 필요로 하는 층별 성능 예측을 위한 회귀 모델을 만들기 위해 층별로 각기 다른 구성 변수들을 일일이 조정하여 프로파일링하는 작업은 매우 번거로운 과정이다. 게다가, 층별 성능 예측을 위해 사용하는 회귀 모델로는 구성 변수들 사이에 복잡한 관계들을 파악하기 어렵기 때문에 정확한 성능 예측 모델을 만들기에 부족함이 있다. 또한 동일한 층이어도 DNN 구조에 따라 특성이 다르며, 동일한 유형의 층이어도 속한 위치에 따라 특성이 달라진다.
본 발명이 해결하려는 과제는 심층 신경망을 기반으로 한 추론 과정에서 로컬 출구와 분할 포인트를 찾기 위한 기존의 방법들이 가지고 있는 복잡한 모델링 과정을 없애고 강화 학습을 통해 효율적으로 로컬 출구와 분할 포인트를 결정할 수 있는 심층 신경망 분할 방법 및 장치를 제공하는 것이다.
본 발명의 한 실시 예에 따르면, 프로세서가 복수의 출구 포인트와 각 출구 포인트에 해당하는 브랜치에 적어도 하나의 분할 포인트를 갖는 심층 신경망을 엣지 기기와 클라우드에서 분산 처리를 위해 분할하는 방법이 제공된다. 심층 신경망 분할 방법은 학습을 위한 환경 변수와 학습 변수를 설정하는 단계, 현재의 상태에서 선택한 행동을 대한 결과로 보상을 수신한 후 다음 상태로 이동하는 방식으로 학습을 진행하는 단계, 그리고 상기 학습의 결과로서 최적의 출구 포인트와 분할 포인트의 조합을 출력하는 단계를 포함하며, 상기 상태는 출구 포인트와 분할 포인트의 조합으로 정의되고, 행동은 출구 포인트 또는 분할 포인트의 이동으로 정의된다.
상기 심층 신경망 분할 방법은 상기 최적의 출구 포인트와 분할 포인트의 조합에 대한 정보를 상기 엣지 기기와 상기 클라우드로 전송하는 단계를 더 포함할 수 있다.
상기 최적의 출구 포인트에 해당하는 브랜치의 입력층부터 상기 분할 포인트에 해당하는 층까지의 추론 연산은 상기 엣지 기기에서 이루어지고, 상기 최적의 출구 포인트에 해당하는 브랜치에서 상기 분할 포인트에 해당하는 층의 이후 층부터 출력층까지의 추론 연산은 상기 클라우드에서 이루어질 수 있다.
상기 학습을 진행하는 단계는 경험 데이터를 기반으로 상기 현재의 상태에서 행동을 선택하는 단계, 선택한 상기 행동에 대한 결과로 보상을 수신하는 단계, 상기 상태에서 행하는 행동의 보상 결과를 축적하여 상기 경험 데이터를 업데이트하는 단계, 상기 선택한 행동을 실행하여 다음 상태로 이동하는 단계, 그리고 상기 학습이 완료되었는지 판단하는 단계를 포함할 수 있다.
상기 행동을 선택하는 단계는 상기 현재의 상태에서 상기 경험 데이터를 기반으로 상기 보상을 최대화하는 행동을 결정하는 단계를 포함할 수 있다.
상기 보상은 상기 엣지 기기와 상기 클라우드에서의 추론 정확도와 추론 속도에 대한 함수로 정의될 수 있다.
상기 행동을 선택하는 단계는 상기 선택한 행동이 유효한지 판단하는 단계를 포함할 수 있다.
상기 환경 변수는 입력 데이터의 크기, 추론 시 성능 요구 사항, 상기 엣지 기기와 상기 클라우드간 네트워크 대역폭 및 상기 엣지 기기의 자원 사용 상황 중 적어도 하나를 포함할 수 있다.
본 발명의 다른 한 실시 예에 따르면, 복수의 출구 포인트와 각 출구 포인트에 해당하는 브랜치에 적어도 하나의 분할 포인트를 갖는 심층 신경망을 분할하는 장치가 제공된다. 심층 신경망 분할 장치는 프로세서, 그리고 인터페이스를 포함한다. 상기 프로세서는 학습을 위한 환경 변수와 학습 변수를 설정한 후, 현재의 상태에 해당하는 출구 포인트와 분할 포인트의 조합에서 상기 출구 포인트와 상기 분할 포인트 중 적어도 하나를 이동시키는 행동을 선택하고, 상기 선택한 행동에 따른 보상을 통해 경험 데이터를 축적한 뒤 다음 상태로 이동하는 방식으로 학습을 진행하고, 상기 학습의 결과로서 최적의 출구 포인트와 분할 포인트의 조합을 출력한다. 그리고 상기 인터페이스는 상기 최적의 출구 포인트와 분할 포인트의 조합에 대한 정보를 상기 심층 신경망을 이용한 추론의 분산 처리를 위한 엣지 기기와 클라우드로 전송한다.
상기 최적의 출구 포인트에 해당하는 브랜치의 입력층부터 상기 분할 포인트에 해당하는 층까지의 추론 연산은 상기 엣지 기기에서 이루어지고, 상기 최적의 출구 포인트에 해당하는 브랜치에서 상기 분할 포인트에 해당하는 층의 이후 층부터 출력층까지의 추론 연산은 상기 클라우드에서 이루어질 수 있다.
상기 프로세서는 상기 현재의 상태에서 상기 경험 데이터를 기반으로 상기 보상을 최대화하는 행동을 결정할 수 있다.
상기 보상은 상기 엣지 기기와 상기 클라우드에서의 추론 정확도와 추론 속도에 대한 함수로 정의될 수 있다.
상기 보상은 패널티(negative reward)를 포함할 수 있다.
상기 프로세서는 상기 현재의 상태에서 선택한 행동이 유효한지 판단하고 유효한 경우에 상기 보상을 수신할 수 있다.
상기 환경 변수는 입력 데이터의 크기, 추론 시 성능 요구 사항, 상기 엣지 기기와 상기 클라우드간 네트워크 대역폭 및 상기 엣지 기기의 자원 사용 상황 중 적어도 하나를 포함할 수 있다.
본 발명의 실시 예에 의하면, 강화 학습을 통해 지연이나 에너지 소비 등 성능 요구 사항을 만족시키면서 높은 정확도를 유지하는 출구 포인트와 분할 포인트를 학습함으로써, DNN에 속한 층별로 계산 지연, 출력 데이터 크기와 같은 특성을 프로파일링하여 일일이 예측 모델을 생성해야 하는 복잡한 과정을 필요로 하지 않는다.
또한 보상(reward)을 추론 정확도와 추론 성능(latency, energy consumption 등)의 함수로 설계함으로써, 운영자/사용자가 쉽게 두 요인 사이의 트레이드오프(tradeoff)를 파악할 수 있고, 보상 함수 수정을 통해 사용자 선호(Preference)에 맞게 학습을 제어할 수 있다.
또한 특정한 DNN 구조에 의존하는 것이 아니라, 다양한 DNN 구조에 적용될 수 있다.
도 1은 브랜치넷을 이용한 멀티 출구 포인트를 갖는 구조로 모델링된 DNN의 일 예를 나타낸 도면이다.
도 2는 출구 포인트를 갖는 DNN 구조를 기반으로 엣지 기기와 클라우드간 분산 처리 과정을 나타낸 도면이다.
도 3은 분할 포인트 기반의 엣지 기기와 클라우드 간 분산 컴퓨팅을 설명하는 도면이다.
도 4는 본 발명의 실시 예에 따른 강화 학습 에이전트의 강화 학습 방법을 나타낸 순서도이다.
도 5는 본 발명의 실시 예에 따른 강화 학습 에이전트의 학습 결과로 도출된 출구 포인트와 분할 포인트를 기반으로 엣지 기기와 클라우드 사이에서 분산 처리를 통한 추론 과정을 나타낸 도면이다.
도 6a 내지 도 6c는 본 발명의 실시 예에 따른 엣지 컴퓨터 환경에서 최적의 분산 컴퓨팅을 위한 강화학습 기반의 심층 신경망 분할 방법을 나타낸 도면이다.
도 7은 본 발명의 실시 예에 따른 심층 신경망 분할 장치를 개략적으로 나타낸 도면이다.
도 2는 출구 포인트를 갖는 DNN 구조를 기반으로 엣지 기기와 클라우드간 분산 처리 과정을 나타낸 도면이다.
도 3은 분할 포인트 기반의 엣지 기기와 클라우드 간 분산 컴퓨팅을 설명하는 도면이다.
도 4는 본 발명의 실시 예에 따른 강화 학습 에이전트의 강화 학습 방법을 나타낸 순서도이다.
도 5는 본 발명의 실시 예에 따른 강화 학습 에이전트의 학습 결과로 도출된 출구 포인트와 분할 포인트를 기반으로 엣지 기기와 클라우드 사이에서 분산 처리를 통한 추론 과정을 나타낸 도면이다.
도 6a 내지 도 6c는 본 발명의 실시 예에 따른 엣지 컴퓨터 환경에서 최적의 분산 컴퓨팅을 위한 강화학습 기반의 심층 신경망 분할 방법을 나타낸 도면이다.
도 7은 본 발명의 실시 예에 따른 심층 신경망 분할 장치를 개략적으로 나타낸 도면이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 및 청구범위 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
이제 본 발명의 실시 예에 따른 심층 신경망 분할 방법 및 장치에 대하여 도면을 참고로 하여 상세하게 설명한다.
도 1은 브랜치넷을 이용한 멀티 출구 포인트를 갖는 구조로 모델링된 DNN의 일 예를 나타낸 도면이다.
도 1을 참고하면, 일반적인 DNN은 입력층과 출력층, 그리고 그 사이에 존재하는 여러 개의 은닉층(hidden layer)으로 이루어져 있으며, 여러 개의 은닉층은 합성곱(Convolutional, conv) 층과 전결합(Fully-connected, fc) 층으로 구성될 수 있다. 예를 들면, 3개의 conv 층과 2개의 fc 층으로 구성될 수 있다.
이러한 DNN 구조는 브랜치넷을 이용하여 멀티 출구 포인트를 갖는 구조로 모델링될 수 있다. 이때 출구 포인트의 개수는 설계자에 의해 임의로 설정될 수 있으며, 출구 포인트의 개수만큼 여러 개의 브랜치가 생성되고 각 브랜치마다 출구 포인트(EP1, EP2, EP3, EP4)를 갖는 형태로 변형된다. 각 브랜치는 여러 개의 층으로 구성되며, 서로 다른 브랜치끼리는 층이 중첩되지 않는다. 입력층은 데이터의 입력을 위한 층이고, 출력층은 각 브랜치의 끝에 존재하여, 추론 결과를 도출해내는 층이다. 각각의 출구 포인트(EP1, EP2, EP3, EP4)에서는 서로 다른 손실 함수를 갖게 되는데, 변형된 브랜치넷 모델은 각 브랜치의 손실 함수의 가중치 합을 최소화 하도록 학습되어 층 파라미터가 결정된다.
도 2는 출구 포인트를 갖는 DNN 구조를 기반으로 엣지 기기와 클라우드간 분산 처리 과정을 나타낸 도면이다.
도 2를 참고하면, 엣지 기기는 설정된 출구 포인트(EP)를 기준으로 출구 포인트(EP) 이전 층까지 연산을 수행한 후, 연산 결과를 기반으로 추론의 정확도를 계산한다. 다음, 엣지 기기는 계산된 추론 정확도를 미리 정해진 임계치와 비교를 하여 정확도가 임계치보다 높을 경우, 처리된 연산 결과를 출력하고 출구 포인트(EP)의 이후 층의 연산을 중지한다. 이때의 출력 구조를 로컬 출구로 지칭한다. 엣지 기기는 추론 정확도가 임계치보다 낮을 경우, 해당 층까지 처리된 중간 연산 결과를 클라우드로 전송하고 클라우드에서는 출구 포인트(EP)의 이후 층부터 최종 층까지 연산한 후, 최종 결과를 추론하고 최종 결과를 출력한다. 이때의 출력 구조를 클라우드 출구로 지칭한다. 이러한 로컬 출구의 도입은 추론의 정확도를 크게 잃지 않으면서 추론 속도를 낮춰주는 효과가 있다.
이때, 출구 포인트에 해당하는 브랜치에서 층 분할을 통해 최적의 분할 포인트를 결정하고, 최적의 분할 포인트를 기준으로 엣지 기기와 클라우드에서 나누어 연산 처리를 수행할 수도 있다. 본 발명의 실시 예는 이 경우에 적용된다.
층 분할 방법에서는 클라우드의 현재 부하 레벨, 모바일 단말과 클라우드 간 네트워크 대역폭뿐만 아니라 특정 DNN 구조에 속한 각 층들의 계산 지연(computational latency)과 연산 결과로 나오는 출력 데이터 크기(output data size)에 대한 특성을 고려한다. DNN에 속한 각 층마다 연산에 필요한 계산량과 출력 데이터 크기가 각기 다른 특성을 보이는데, 이러한 특성은 클라우드의 현재 부하 레벨과 현재 네트워크 대역폭에 따라서 최적의 분할 포인트 결정에 영향을 미친다. 엣지 기기에서는 출구 포인트에 해당하는 브랜치에서 분할 포인트를 기준으로 하여, 이전 층에 대한 연산을 수행하고, 중간 연산 결과를 클라우드로 전송한다. 이를 수신한 클라우드에서는 분할 포인트를 기준으로 이후 층부터 마지막 층까지 연산을 수행한 후, 최종적인 연산 결과를 엣지 기기에게 전송한다.
도 3은 본 발명의 실시 예에 따른 심층 신경망을 기반으로 출구 포인트와 분할 포인트를 찾기 위한 강화 학습 구성을 나타낸 도면이다.
일반적으로 강화 학습은 에이전트가 임의의 주어진 환경에서 특정 목표를 이루기 위해 취해야 할 동작들을 스스로 학습하도록 하는 방법이다. 본 발명의 실시 예에서 제시하는 강화 학습 구조에서, 강화 학습 에이전트의 학습 목표는 주어진 환경에서 최적의 출구 포인트와 분할 포인트를 찾는 것이고, 최적의 출구 포인트와 분할 포인트를 찾기 위해 반복해서 학습 과정을 수행한다.
강화 학습 에이전트의 학습 환경을 구성하는 대표적인 변수들은 추론을 위해 사용되는 입력 데이터의 크기(입력 이미지 크기), 추론 시 성능 요구 사항, 엣지 기기와 클라우드 간 네트워크 대역폭 및 현재 엣지 기기의 자원 사용 상황을 포함할 수 있다. 성능 요구 사항은 예를 들면, 지연이나 에너지 소모 등을 포함할 수 있다. 엣지 기기의 자원 사용 상황은 CPU 효율(CPU utilization)을 포함할 수 있다. 학습 과정에서 이러한 환경 변수들은 계속해서 변화하게 되고, 강화학습 에이전트는 이러한 환경 속에서 반복되는 학습을 통해 어떠한 환경이 주어지더라도 최적의 출구 포인트와 분할 포인트를 찾도록 동작한다.
환경 변수 외에, 강화 학습 과정에 관여하는 요소는 크게 상태(state), 행동(action), 보상(reward)으로 나누어진다. 강화 학습 에이전트는 현재의 상태에서 특정 행동을 행하고 되고, 이에 대한 결과로 보상을 수신한 후 다음 상태로 이동하는 방식으로 학습을 진행한다. 수없이 반복되는 학습 과정을 거치면서, 강화 학습 에이전트는 각 상태에서 행하는 행동의 보상 결과를 축적하여 경험 데이터를 만들게 된다. 이러한 경험 데이터를 기반으로 하여, 강화 학습 에이전트는 가장 많은 보상을 받기 위해서 현재 상태에서의 행동을 결정한다.
본 발명의 실시 예에서는 각각의 요소에 대해 다음과 같이 정의한다.
먼저, 본 발명의 실시 예에서는 상태를 현재 강화 학습 에이전트가 선택한 {출구 포인트, 분할 포인트}의 조합으로 정의한다. 즉, 강화 학습 에이전트가 선택 가능한 상태는 각각의 브랜치에서 입력층과 출력층을 제외한 모든 분할 포인트가 될 수 있다. 도 3을 참고하면, 첫 번째 출구 포인트(EP1)에 해당하는 첫 번째 브랜치에서 선택 가능한 분할 포인트의 개수는 총 3개(A, B, C)이다. 두 번째 출구 포인트(EP2)에 해당하는 두 번째 브랜치에서 선택 가능한 분할 포인트의 개수는 총 4개(D, E, F, G)이다. 세 번째 출구 포인트(EP3)에 해당하는 세 번째 브랜치에서 선택 가능한 분할 포인트의 개수는 총 5개(H, I, J, K, L)이다. 그리고 네 번째 출구 포인트(EP4)에 해당하는 네 번째 브랜치에서 선택 가능한 분할 포인트의 개수는 총 6개(M, N, O, P, Q, R)이다. 이와 같이, 각 브랜치에서 선택 가능한 분할 포인트의 개수는 각각 3, 4, 5, 6개가 된다. 따라서 해당 DNN 구조에서 선택 가능한 상태는 총 18(3 + 4 + 5 + 6)개로 이루어진다. 다시 말해, 멀티 출구 포인트 기반의 DNN 구조에서 가능한 총 상태 공간은 각 브랜치에서 선택 가능한 분할 포인트 개수의 총 합이 된다. 분할 포인트가 첫 번째 conv 층 이전인 경우는 모든 데이터를 클라우드에서 처리하는 경우를 의미하며, 분할 포인트가 두 번째 fc 층 이후인 경우는 모든 데이터를 엣지 기기에서 처리하는 경우를 의미한다.
{출구 포인트, 분할 포인트}로 나타내는 상태를 간단하게 표현하기 위해, 출구 포인트(EP1, EP2, EP3, EP4)를 각각 1, 2, 3, 4로 표현하고, 각 출구 포인트에서 분할 포인트는 입력층에서 가장 가까운 분할 포인트를 1로 표현하고, 출력층으로 갈수록 순차적으로 증가하도록 표현한다. 예를 들어, 출구 포인트(EP2)에서 분할 포인트(D, E, F, G)는 각각 1, 2, 3, 4로 상태가 표현될 수 있다.
본 발명의 실시 예에서는 행동을 출구 포인트 또는 분할 포인트의 이동으로 정의한다. 현재 강화 학습 에이전트가 위치한 상태의 {출구 포인트, 분할 포인트}에서 행해지는 행동을 통해 다음 상태의 {출구 포인트, 분할 포인트}로 이동하게 된다. 현재 상태에서 선택 가능한 행동은 출구 포인트의 증가 또는 감소, 그리고 분할 포인트의 증가 또는 감소가 있다. 즉, 출구 포인트 또는 분할 포인트 중 하나의 포인트만 이동될 수도 있고, 출구 포인트와 분할 포인트 모두 이동될 수도 있다. 예를 들어, 도 3에서 {2,1} 상태에서 {2,2} 상태로 이동하는 경우는, 출구 포인트는 변함이 없고 분할 포인트만 1이 증가된 행동의 결과이며, {2,1} 상태에서 {3,2} 상태로 이동하는 경우는 출구 포인트와 분할 포인트가 모두 1씩 증가된 행동의 결과이다.
강화 학습 에이전트는 보상을 어떻게 설계하느냐에 따라 학습해 나가는 방식이 달라진다. 본 발명의 실시 예에서는 각 {출구 포인트, 분할 포인트} 상태에서 엣지 기기와 클라우드 간에 분산 처리를 했을 때, 보상을 수학식 1과 같이 추론 정확도(accuracy)와 처리 과정에서 소요된 추론 속도(latency)에 대한 함수로 나타낸다.
여기서, reward_point는 보상을 나타내고, function_a는 추론 정확도에 대한 함수를 나타내며, function_b는 추론 속도에 대한 함수를 나타낸다. 수학식 1의 reward_point에 사용되는 function_a와 function_b는 특정한 함수로 명시되는 것이 아니며, 추론 정확도에는 비례하고 추론 시간에는 반비례 하도록 보상을 설계함을 의미한다. 즉, 강화 학습 에이전트가 높은 보상을 받기 위해서는 추론 정확도가 어느 정도 신뢰할 수 있으면서도 낮은 추론 지연을 보이는 {출구 포인트, 분할 포인트} 조합을 찾도록 설계된다. 필요에 따라 function_a와 function_b를 다르게 설계함으로써, 추론 정확도와 추론 시간 사이에 트레이드오프(tradeoff)를 조절할 수도 있다. 예를 들어, 높은 추론 정확도를 요구하는 어플리케이션의 경우, function_a에 가중치를 많이 둠으로써, 추론 정확도가 강화 학습 에이전트의 행동 선택에 많은 영향을 끼치도록 할 수 있다. 반대로, 추론 시간에 매우 민감한 어플리케이션의 경우, function_b에 가중치를 많이 둠으로써, 강화 학습 에이전트가 추론 시간에 중점을 두고 {출구 포인트, 분할 포인트} 조합을 찾도록 만들 수 있다. 또한 어플리케이션의 지연 요구(latency requirement)가 있는 경우에는 function_b의 인자로 추론 시간의 절대적인 값보다는 지연 요구에 따른 상대적인 수치를 사용할 수 있다. 특히, 현재 {출구 포인트, 분할 포인트} 상태에서 추론을 했을 때 어플리케이션의 성능 요구를 만족시킬 수 없을 때에는 강화 학습 에이전트에게 강한 패널티(negative reward)를 부여하도록 설계될 수 있다. 기본적으로 강화 학습 에이전트는 보상을 최대화하도록 학습을 하기 때문에, 강한 패널티를 받게 되는 경우는 피하게 된다. 따라서, 강한 패널티를 보상 설계에 포함시킴으로써, 강화 학습 에이전트가 어플리케이션의 성능 요구를 만족시키면서도 어느 정도 높은 추론 정확도를 보이는 출구 포인트와 분할 포인트의 조합을 찾을 수 있도록 학습이 이루어진다. 본 발명의 실시 예에서는 보상 설계 시, 성능 메트릭(metric)이 지연인 경우를 예로 들었으며, 타켓으로 하는 성능 메트릭이 달라짐에 따라 보상 함수의 구체적인 형태는 바뀔 수 있다.
도 4는 본 발명의 실시 예에 따른 강화 학습 에이전트의 강화 학습 방법을 나타낸 순서도이다.
도 4를 참고하면, 강화 학습 에이전트는 강화 학습을 위한 환경 변수들과 학습 변수(learning rate, discount factor 등)를 초기 설정하고(S410), 임의의 초기 상태부터 학습을 진행한다. 초반에는 어떠한 경험 데이터도 없으므로, 랜덤으로 행동을 선택하여 진행하다가 반복된 학습으로 점점 경험 데이터가 쌓이게 되면 이를 기반으로 행동을 선택한다. 학습 변수는 예를 들면, 학습률(learning rate), 감가율(discount factor) 등을 포함할 수 있다.
강화 학습 에이전트는 현재 상태에서 행동을 선택하면(S420, S430), 해당 행동이 유효한지 여부를 판단한다(S440). 행동의 유효성을 판단하는 과정은 현재 상태에서 선택한 행동의 결과로 이동하는 다음 상태가 존재하지 않는 상태인 경우를 피하기 위함이다. 예를 들어, 도 3에서, 현재 상태가 {3, 4}인 경우에서 출구 포인트는 감소하고 분할 포인트는 증가하는 행동을 선택했을 때, 다음 상태는 {2,5}가 된다. 하지만 도 3의 구조에서 두 번째 브랜치에 해당하는 출구 포인트에서 선택 가능한 분할 포인트의 개수는 총 4개이므로, {2,5} 상태는 해당 구조에서 가능한 상태 공간을 벗어나기 때문에, 이러한 행동은 유효하지 않은 행동으로 간주된다. 강화 학습 에이전트는 유효하지 않은 행동을 선택했을 경우, 다른 행동을 다시 선택한다(S430). 만약, 일정 횟수 이상 유효하지 않은 행동을 선택하게 되면, 초기 상태를 다시 설정하여 학습을 재시작한다.
반면, 강화 학습 에이전트는 선택한 행동이 유효할 경우에는 다음 상태에 대한 보상을 수신하고, 수신한 보상을 현재 상태에서 해당 행동에 대한 경험 데이터에 반영하여 경험 데이터를 업데이트한다(S450).
강화 학습 에이전트는 경험 데이터를 업데이트한 후, 선택한 행동을 실제로 수행하여 다음 상태로 이동하고(S460), 학습이 완료되었는지를 판단한다(S470). 학습 완료 여부에 대한 판단은 여러 방법이 있다. 단순히 학습 시간 또는 반복 횟수에 제한을 두는 방법이 있으며, 일정 횟수 이상 동일한 상태에 머무르는 경우에는 최적 상태(optimal state)로 수렴하였다고 볼 수 있기 때문에 학습을 완료할 수 있다.
강화 학습 에이전트는 학습이 완료 될 때까지 위의 과정을 반복하며, 학습이 완료되면 최종적인 출구 포인트와 분할 포인트의 조합이 학습 결과로 도출된다(S480).
도 5는 본 발명의 실시 예에 따른 강화 학습 에이전트의 학습 결과로 도출된 출구 포인트와 분할 포인트를 기반으로 엣지 기기와 클라우드 사이에서 분산 처리를 통한 추론 과정을 나타낸 도면이다.
도 5를 참고하면, 강화 학습 에이전트(400)에서의 학습 결과인 {출구 포인트, 분할 포인트} 조합에 대한 정보가 엣지 기기(300)와 클라우드(400)로 공유된다. 엣지 기기(300)는 {출구 포인트, 분할 포인트} 조합에 대한 정보를 기반으로, 출구 포인트에 해당하는 브랜치의 입력층부터 분할 포인트에 해당하는 층까지 연산을 수행하고, 클라우드(400)에서 그 이후 층부터 출력층까지 연산을 수행한다. 도 4에서 학습 결과가 출구 포인트는 4이고, 분할 포인트는 3인 경우를 예를 들면, 엣지 기기(300)는 4번째 브랜치의 2번째 conv 층까지 연산을 하고, 연산 결과를 클라우드(400)로 전달한다. 클라우드(400)는 엣지 기기(300)로부터 수신한 연산 결과를 입력으로 하여, 클라우드(400)에서는 분할 포인트인 2번째 conv 층 이후의 3번째 conv 층부터 출력층까지 연산을 수행한다. 클라우드(400)에서 출력층까지 처리된 최종 연산 결과는 엣지 기기(300) 또는 사용자에게 제공된다.
도 6a 내지 도 6c는 본 발명의 실시 예에 따른 엣지 컴퓨터 환경에서 최적의 분산 컴퓨팅을 위한 강화학습 기반의 심층 신경망 분할 방법을 나타낸 도면이다.
도 6a 내지 도 6b를 참고하면, 강화 학습 에이전트(500)는 브랜치넷을 이용하여 모델링된 멀티 출구 포인트 기반의 DNN 구조를 기반으로 하여, 입력 데이터의 크기, 성능 요구 사항, 엣지 기기와 클라우드간 네트워크 대역폭, 현재 자원 사용 상황 등 주어진 환경에서 학습 목표인 보상의 최대화를 달성하기 위한 출구 포인트와 분할 포인트를 찾기 위한 학습을 진행한다. 학습 진행 과정은 강화 학습 에이전트가 현재 상태인 {출구 포인트, 분할 포인트} 조합에서 특정 포인트를 이동시키는 행동을 선택하면, 해당 행동에 따른 보상을 통해 경험 데이터를 축적한 뒤 다음 상태로 넘어가는 방식으로 진행된다. 강화 학습 에이전트는 각 상태마다 얻을 수 있는 보상의 기대 값이 가장 큰 행동을 선택하도록 학습함으로써, 임의의 주어진 환경에서도 최적의 출구 포인트와 분할 포인트를 찾게 된다. 학습의 결과로써 최적의 출구 포인트와 분할 포인트가 결정되면, 강화 학습 에이전트는 해당 결과를 엣지 기기(300)와 클라우드(400)에게 전달한다.
그 후, 도 6c에 도시한 바와 같이 출구 포인트에 해당되는 브랜치가 엣지 기기(300)와 클라우드(400)의 추론 과정에 사용된다. 엣지 기기(300)는 분할 포인트를 기준으로 출구 포인트에 해당하는 브랜치의 입력층부터 분할 포인트에 해당하는 층까지 연산을 수행하고, 연산 결과를 클라우드(400)로 전달한다. 클라우드(400)는 엣지 기기(300)로부터 연산 결과를 수신하면, 연산 결과를 이용하여 분할 포인트에 해당하는 층 이후의 층부터 출력층까지 연산을 수행한다. 클라우드(400)는 출력 층까지 연산을 완료하여 최종적인 추론 결과를 획득하고, 최종적인 추론 결과를 사용자 또는 엣지 기기(300)로 전송한다.
도 7은 본 발명의 실시 예에 따른 심층 신경망 분할 장치를 개략적으로 나타낸 도면이다.
도 7을 참고하면, 심층 신경망 분할 장치(700)는 프로세서(710), 메모리(720), 저장 장치(730) 및 입출력(input/output, I/O) 인터페이스(740)를 포함한다. 심층 신경망 분할 장치(700)는 강화 학습 에이전트(500)를 의미할 수 있으며, 강화 학습 에이전트(500) 내에 구현될 수도 있다.
프로세서(710)는 중앙 처리 유닛(central processing unit, CPU)이나 기타 칩셋, 마이크로프로세서 등으로 구현될 수 있다.
메모리(720)는 동적 랜덤 액세스 메모리(dynamic random access memory, DRAM), 램버스 DRAM(rambus DRAM, RDRAM), 동기식 DRAM(synchronous DRAM, SDRAM), 정적 RAM(static RAM, SRAM) 등의 RAM과 같은 매체로 구현될 수 있다.
저장 장치(730)는 하드 디스크(hard disk), CD-ROM(compact disk read only memory), CD-RW(CD rewritable), DVD-ROM(digital video disk ROM), DVD-RAM, DVD-RW 디스크, 블루레이(blu-ray) 디스크 등의 광학 디스크, 플래시 메모리, 다양한 형태의 RAM과 같은 영구 또는 휘발성 저장 장치로 구현될 수 있다.
메모리(720) 또는 저장 장치(730)에는 앞에서 설명한 모델링된 멀티 출구 포인트 기반의 DNN 구조 및 경험 데이터들이 저장될 수 있다.
I/O 인터페이스(740)는 프로세서(710) 및/또는 메모리(720)가 저장 장치(730)에 접근할 수 있도록 한다. 또한 I/O 인터페이스(740)는 엣지 기기(300) 및 클라우드(400)와 인터페이스를 제공할 수 있다.
프로세서(710) 도 3 내지 도 5, 도 6a 내지 도 6c에서 설명한 심층 심경망 분할 기능을 수행할 수 있으며, 심층 신경망 분할 기능을 구현하기 위한 프로그램 명령을 메모리(720)에 로드시켜, 도 3 내지 도 5, 도 6a 내지 도 6c를 참고로 하여 설명한 동작이 수행되도록 제어할 수 있다. 그리고 이러한 프로그램 명령은 저장 장치(730)에 저장되어 있을 수 있으며, 또는 네트워크로 연결되어 있는 다른 시스템에 저장되어 있을 수 있다.
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리 범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리 범위에 속하는 것이다.
Claims (15)
- 프로세서가 복수의 출구 포인트와 각 출구 포인트에 해당하는 브랜치에 적어도 하나의 분할 포인트를 갖는 심층 신경망을 엣지 기기와 클라우드에서 분산 처리를 위해 분할하는 방법으로서,
학습을 위한 환경 변수와 학습 변수를 설정하는 단계,
현재의 상태에서 선택한 행동을 대한 결과로 보상을 수신한 후 다음 상태로 이동하는 방식으로 학습을 진행하는 단계, 그리고
상기 학습의 결과로서 최적의 출구 포인트와 분할 포인트의 조합을 출력하는 단계
를 포함하며,
상기 상태는 출구 포인트와 분할 포인트의 조합으로 정의되고, 행동은 출구 포인트 또는 분할 포인트의 이동으로 정의되는 심층 신경망 분할 방법. - 제1항에서,
상기 최적의 출구 포인트와 분할 포인트의 조합에 대한 정보를 상기 엣지 기기와 상기 클라우드로 전송하는 단계
를 더 포함하는 심층 신경망 분할 방법. - 제2항에서,
상기 최적의 출구 포인트에 해당하는 브랜치의 입력층부터 상기 분할 포인트에 해당하는 층까지의 추론 연산은 상기 엣지 기기에서 이루어지고,
상기 최적의 출구 포인트에 해당하는 브랜치에서 상기 분할 포인트에 해당하는 층의 이후 층부터 출력층까지의 추론 연산은 상기 클라우드에서 이루어지는 심층 신경망 분할 방법. - 제1항에서,
상기 학습을 진행하는 단계는
경험 데이터를 기반으로 상기 현재의 상태에서 행동을 선택하는 단계,
선택한 상기 행동에 대한 결과로 보상을 수신하는 단계,
상기 상태에서 행하는 행동의 보상 결과를 축적하여 상기 경험 데이터를 업데이트하는 단계,
상기 선택한 행동을 실행하여 다음 상태로 이동하는 단계, 그리고
상기 학습이 완료되었는지 판단하는 단계를 포함하는 심층 신경망 분할 방법. - 제4항에서,
상기 행동을 선택하는 단계는 상기 현재의 상태에서 상기 경험 데이터를 기반으로 상기 보상을 최대화하는 행동을 결정하는 단계를 포함하는 심층 신경망 분할 방법. - 제4항에서,
상기 보상은 상기 엣지 기기와 상기 클라우드에서의 추론 정확도와 추론 속도에 대한 함수로 정의되는 심층 신경망 분할 방법. - 제4항에서,
상기 행동을 선택하는 단계는 상기 선택한 행동이 유효한지 판단하는 단계를 포함하는 심층 신경망 분할 방법. - 제1항에서,
상기 환경 변수는 입력 데이터의 크기, 추론 시 성능 요구 사항, 상기 엣지 기기와 상기 클라우드간 네트워크 대역폭 및 상기 엣지 기기의 자원 사용 상황 중 적어도 하나를 포함하는 심층 신경망 분할 방법. - 복수의 출구 포인트와 각 출구 포인트에 해당하는 브랜치에 적어도 하나의 분할 포인트를 갖는 심층 신경망을 분할하는 장치로서,
학습을 위한 환경 변수와 학습 변수를 설정한 후, 현재의 상태에 해당하는 출구 포인트와 분할 포인트의 조합에서 상기 출구 포인트와 상기 분할 포인트 중 적어도 하나를 이동시키는 행동을 선택하고, 상기 선택한 행동에 따른 보상을 통해 경험 데이터를 축적한 뒤 다음 상태로 이동하는 방식으로 학습을 진행하고, 상기 학습의 결과로서 최적의 출구 포인트와 분할 포인트의 조합을 출력하는 프로세서, 그리고
상기 최적의 출구 포인트와 분할 포인트의 조합에 대한 정보를 상기 심층 신경망을 이용한 추론의 분산 처리를 위한 엣지 기기와 클라우드로 전송하는 인터페이스
를 포함하는 심층 신경망 분할 장치. - 제9항에서,
상기 최적의 출구 포인트에 해당하는 브랜치의 입력층부터 상기 분할 포인트에 해당하는 층까지의 추론 연산은 상기 엣지 기기에서 이루어지고,
상기 최적의 출구 포인트에 해당하는 브랜치에서 상기 분할 포인트에 해당하는 층의 이후 층부터 출력층까지의 추론 연산은 상기 클라우드에서 이루어지는 심층 신경망 분할 장치. - 제9항에서,
상기 프로세서는 상기 현재의 상태에서 상기 경험 데이터를 기반으로 상기 보상을 최대화하는 행동을 결정하는 심층 신경망 분할 장치. - 제9항에서,
상기 보상은 상기 엣지 기기와 상기 클라우드에서의 추론 정확도와 추론 속도에 대한 함수로 정의되는 심층 신경망 분할 장치. - 제12항에서,
상기 보상은 패널티(negative reward)를 포함하는 심층 신경망 분할 장치. - 제9항에서,
상기 프로세서는 상기 현재의 상태에서 선택한 행동이 유효한지 판단하고 유효한 경우에 상기 보상을 수신하는 심층 신경망 분할 장치. - 제9항에서,
상기 환경 변수는 입력 데이터의 크기, 추론 시 성능 요구 사항, 상기 엣지 기기와 상기 클라우드간 네트워크 대역폭 및 상기 엣지 기기의 자원 사용 상황 중 적어도 하나를 포함하는 심층 신경망 분할 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190034381A KR20200113744A (ko) | 2019-03-26 | 2019-03-26 | 심층 신경망 분할 방법 및 장치 |
US16/830,253 US11521066B2 (en) | 2019-03-26 | 2020-03-25 | Method and apparatus for partitioning deep neural networks |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190034381A KR20200113744A (ko) | 2019-03-26 | 2019-03-26 | 심층 신경망 분할 방법 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20200113744A true KR20200113744A (ko) | 2020-10-07 |
Family
ID=72606307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190034381A KR20200113744A (ko) | 2019-03-26 | 2019-03-26 | 심층 신경망 분할 방법 및 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11521066B2 (ko) |
KR (1) | KR20200113744A (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113537400A (zh) * | 2021-09-14 | 2021-10-22 | 浙江捷瑞电力科技有限公司 | 一种基于分支神经网络的边缘计算节点的分配与退出方法 |
WO2022139230A1 (ko) * | 2020-12-24 | 2022-06-30 | 엘지전자 주식회사 | 무선 통신 시스템에서 스플릿 포인트를 조정하는 방법 및 장치 |
KR102505159B1 (ko) * | 2021-11-17 | 2023-03-02 | 주식회사 모바휠 | 음파를 이용한 노면 종류 추정 장치 및 그 방법 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020204938A1 (en) * | 2019-04-05 | 2020-10-08 | Google Llc | Selective inference generation with distributed machine-learned models |
JP7171520B2 (ja) * | 2019-07-09 | 2022-11-15 | 株式会社日立製作所 | 機械学習システム |
US20190362269A1 (en) * | 2019-08-12 | 2019-11-28 | Intel Corporation | Methods and apparatus to self-generate a multiple-output ensemble model defense against adversarial attacks |
WO2021028714A1 (en) * | 2019-08-13 | 2021-02-18 | Omron Corporation | Method, apparatuses, computer program and medium including computer instructions for performing inspection of an item |
EP4275351A4 (en) | 2021-03-24 | 2024-04-03 | Samsung Electronics Co., Ltd. | METHOD AND DEVICE FOR EXECUTING DEEP NEURAL NETWORK IN IoT EDGE NETWORK |
WO2022203400A1 (en) * | 2021-03-24 | 2022-09-29 | Samsung Electronics Co., Ltd. | Method and device for execution of deep neural network in iot edge network |
CN113987692B (zh) * | 2021-12-29 | 2022-03-22 | 华东交通大学 | 用于无人机和边缘计算服务器的深度神经网络分区方法 |
WO2023211081A1 (en) * | 2022-04-27 | 2023-11-02 | Samsung Electronics Co., Ltd. | Optimal split federated learning in wireless network |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10795949B2 (en) * | 2007-07-26 | 2020-10-06 | Hamid Hatami-Hanza | Methods and systems for investigation of compositions of ontological subjects and intelligent systems therefrom |
US10452971B2 (en) * | 2015-06-29 | 2019-10-22 | Microsoft Technology Licensing, Llc | Deep neural network partitioning on servers |
KR102194280B1 (ko) | 2016-09-28 | 2020-12-22 | 주식회사 케이티 | Dnn의 분산 훈련 시스템 및 분산 훈련 방법 |
KR102372423B1 (ko) | 2017-05-16 | 2022-03-10 | 한국전자통신연구원 | 파라미터 공유 장치 및 방법 |
KR102197247B1 (ko) | 2017-06-01 | 2020-12-31 | 한국전자통신연구원 | 파라미터 서버 및 그것에 의해 수행되는 분산 딥러닝 파라미터 공유 방법 |
US11886989B2 (en) * | 2018-09-10 | 2024-01-30 | International Business Machines Corporation | System for measuring information leakage of deep learning models |
US20200175361A1 (en) * | 2018-11-30 | 2020-06-04 | Alibaba Group Holding Limited | Partitioning of deep learning inference with dynamic offloading |
US11138504B2 (en) * | 2018-12-28 | 2021-10-05 | Datalogic Ip Tech S.R.L. | Deployment of deep neural networks (DNN) in embedded devices by means of peer-to-peer routing between computational points |
-
2019
- 2019-03-26 KR KR1020190034381A patent/KR20200113744A/ko active IP Right Grant
-
2020
- 2020-03-25 US US16/830,253 patent/US11521066B2/en active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022139230A1 (ko) * | 2020-12-24 | 2022-06-30 | 엘지전자 주식회사 | 무선 통신 시스템에서 스플릿 포인트를 조정하는 방법 및 장치 |
CN113537400A (zh) * | 2021-09-14 | 2021-10-22 | 浙江捷瑞电力科技有限公司 | 一种基于分支神经网络的边缘计算节点的分配与退出方法 |
CN113537400B (zh) * | 2021-09-14 | 2024-03-19 | 浙江捷瑞电力科技有限公司 | 一种基于分支神经网络的边缘计算节点的分配与退出方法 |
KR102505159B1 (ko) * | 2021-11-17 | 2023-03-02 | 주식회사 모바휠 | 음파를 이용한 노면 종류 추정 장치 및 그 방법 |
Also Published As
Publication number | Publication date |
---|---|
US20200311546A1 (en) | 2020-10-01 |
US11521066B2 (en) | 2022-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20200113744A (ko) | 심층 신경망 분할 방법 및 장치 | |
CN110490309B (zh) | 一种用于神经网络的算子融合方法及其相关产品 | |
CN113220457B (zh) | 模型部署方法、模型部署装置、终端设备及可读存储介质 | |
KR20220127878A (ko) | 신경망을 위한 적응 검색 방법 및 장치 | |
KR20210032266A (ko) | 전자 장치 및 이의 제어 방법 | |
KR102676221B1 (ko) | 음성 인식 방법 및 장치 | |
WO2020050886A1 (en) | Compiler-level general matrix multiplication configuration optimization | |
CN114915630A (zh) | 基于物联网设备的任务分配方法、网络训练方法及装置 | |
KR20220064866A (ko) | 코스-파인 검색, 2-페이즈 블록 증류, 그리고 뉴럴 하드웨어 예측기를 이용한 하드웨어 및 뉴럴 네트워크 아키텍처들의 공동 설계를 위한 방법 | |
KR20220094564A (ko) | 딥러닝 모델 서빙 최적화를 위한 모델 자동 경량화 방법 및 장치, 이를 이용한 클라우드 추론 서비스 제공 방법 | |
Cai et al. | SARM: service function chain active reconfiguration mechanism based on load and demand prediction | |
CN116151363B (zh) | 分布式强化学习系统 | |
CN115409168A (zh) | 神经网络优化方法及其装置 | |
Hafez et al. | Topological Q-learning with internally guided exploration for mobile robot navigation | |
Tokuda et al. | Network slice reconfiguration with deep reinforcement learning under variable number of service function chains | |
CN116418808A (zh) | 一种mec的联合计算卸载和资源分配方法及装置 | |
WO2021115082A1 (zh) | 作业调度方法以及作业调度装置 | |
CN115392467B (zh) | 面向海量数据实时处理的云边协同自适应深度推理方法 | |
CN110610231A (zh) | 一种信息处理方法、电子设备和存储介质 | |
KR20200024433A (ko) | 시간 가변적 예측(anytime prediction)을 위한 얇은 하위 네트워크를 활용하는 방법 및 시스템 | |
JP7127686B2 (ja) | 仮説推論装置、仮説推論方法、及びプログラム | |
Harewood-Gill et al. | Q-routing using multiple QoS metrics in SDN | |
Etefaghi et al. | AdaInNet: an adaptive inference engine for distributed deep neural networks offloading in IoT-FOG applications based on reinforcement learning | |
EP3996005A1 (en) | Calculation processing program, calculation processing method, and information processing device | |
KR102484085B1 (ko) | 서비스 요청에 대응한 단말 추천을 위한 서브 그래프 생성 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right |