KR20200084695A - 응용프로그램의 관리 장치 및 방법 - Google Patents

응용프로그램의 관리 장치 및 방법 Download PDF

Info

Publication number
KR20200084695A
KR20200084695A KR1020190000861A KR20190000861A KR20200084695A KR 20200084695 A KR20200084695 A KR 20200084695A KR 1020190000861 A KR1020190000861 A KR 1020190000861A KR 20190000861 A KR20190000861 A KR 20190000861A KR 20200084695 A KR20200084695 A KR 20200084695A
Authority
KR
South Korea
Prior art keywords
neural network
common
central processing
processing unit
storage device
Prior art date
Application number
KR1020190000861A
Other languages
English (en)
Inventor
정현주
김재덕
박치연
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020190000861A priority Critical patent/KR20200084695A/ko
Priority to US16/678,548 priority patent/US10884760B2/en
Priority to CN201980087539.6A priority patent/CN113272791A/zh
Priority to PCT/KR2019/015805 priority patent/WO2020141720A1/en
Priority to EP19907925.2A priority patent/EP3821341A4/en
Publication of KR20200084695A publication Critical patent/KR20200084695A/ko
Priority to US16/951,725 priority patent/US11880692B2/en
Priority to US18/533,640 priority patent/US20240103883A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

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

Abstract

보조 기억 장치, 주 기억 장치 및 중앙 처리 장치를 포함하는 응용프로그램 관리 장치에 있어서, 중앙 처리 장치는, 제 1 응용프로그램에 포함된 제 1 신경망과 제 2 응용프로그램에 포함된 제 2 신경망의 구조적 대응 여부를 판단하고, 제 1 신경망과 제 2 신경망이 구조적으로 서로 대응하는 경우, 제 1 신경망을 공통 신경망으로서 보조 기억 장치에 저장하고, 제 1 응용프로그램 또는 제 2 응용프로그램의 실행에 따라 제 1 신경망 또는 제 2 신경망의 실행이 필요한 경우, 공통 신경망을 주 기억 장치에 로딩하는 것을 특징으로 하는 일 실시예에 따른 응용프로그램 관리 장치가 개시된다.

Description

응용프로그램의 관리 장치 및 방법{APPARATUS AND METHOD FOR MANAGING APPLICATION}
본 개시는 데이터 관리 분야에 관한 것이다. 보다 구체적으로, 본 개시는 여러 종류의 응용프로그램이 설치되는 기기에서 응용프로그램의 저장, 실행 등을 관리하는 장치 및 방법에 관한 것이다.
스마트폰 등의 모바일 기기의 발전에 따라 응용프로그램의 종류가 기하급수적으로 증가하였다. 사용자들은 자신의 기기에 자신이 원하는 서비스를 제공하는 응용프로그램을 설치할 수 있다.
기기에 많은 수의 응용프로그램이 설치된 경우, 기기의 보조 기억 장치 및 주 기억 장치의 저장 용량에 큰 부담이 될 수 있다. 서로 다른 서비스를 제공하는 응용프로그램이라도 유사 기능을 제공하는 공통 모듈이 존재할 수 있음에도 모든 응용프로그램들이 개별적으로 기기에 설치 및 저장됨으로써 보조 기억 장치 및 주 기억 장치의 저장 용량의 낭비가 될 수 있다.
일 실시예에 따른 응용프로그램의 관리 장치 및 방법은 기기에 저장되는 응용프로그램의 데이터 크기를 감소시키는 것을 목적으로 한다.
또한, 일 실시예에 따른 응용프로그램의 관리 장치 및 방법은 응용프로그램의 실행을 위해 주 기억 장치에 로딩되는 데이터 크기를 감소시키는 것을 목적으로 한다.
일 실시예에 따른 응용프로그램 관리 장치는, 보조 기억 장치, 주 기억 장치 및 중앙 처리 장치를 포함하며, 상기 중앙 처리 장치는, 제 1 응용프로그램에 포함된 제 1 신경망과 제 2 응용프로그램에 포함된 제 2 신경망의 구조적 대응 여부를 판단하고, 상기 제 1 신경망과 상기 제 2 신경망이 구조적으로 서로 대응하는 경우, 상기 제 1 신경망을 공통 신경망으로서 상기 보조 기억 장치에 저장하고, 상기 제 1 응용프로그램 또는 상기 제 2 응용프로그램의 실행에 따라 상기 제 1 신경망 또는 상기 제 2 신경망의 실행이 필요한 경우, 상기 공통 신경망을 상기 주 기억 장치에 로딩할 수 있다.
상기 중앙 처리 장치는, 상기 제 1 응용프로그램 및 상기 제 2 응용프로그램에 포함된 메타 파일로부터 상기 제 1 신경망과 상기 제 2 신경망의 구조 정보를 획득하고, 상기 제 1 신경망의 구조 정보와 상기 제 2 신경망의 구조 정보를 비교하여, 상기 제 1 신경망과 상기 제 2 신경망의 구조적 대응 여부를 판단할 수 있다.
상기 중앙 처리 장치는, 상기 제 1 신경망과 상기 제 2 신경망에 포함된 레이어의 종류 및 레이어간 연결 관계가 서로 동일하면, 상기 제 1 신경망과 상기 제 2 신경망이 구조적으로 서로 대응하는 것으로 판단할 수 있다.
상기 중앙 처리 장치는, 상기 제 1 신경망과 상기 제 2 신경망에 포함된 레이어의 입력 데이터 및 출력 데이터의 크기가 서로 동일한지를 더 고려하여, 상기 제 1 신경망과 상기 제 2 신경망의 구조적 대응 여부를 판단할 수 있다.
상기 중앙 처리 장치는, 상기 제 1 신경망과 상기 제 2 신경망이 FCL(fully connected layer)을 포함하는 경우, 각 FCL에 포함된 레이어별 노드들의 개수가 서로 동일한지를 더 고려하여, 상기 제 1 신경망과 상기 제 2 신경망의 구조적 대응 여부를 판단할 수 있다.
상기 중앙 처리 장치는, 상기 제 1 신경망과 상기 제 2 신경망이 컨볼루션 레이어를 포함하는 경우, 각 컨볼루션 레이어의 필터 커널의 개수, 크기 및 스트라이드(stride)가 서로 동일한지를 더 고려하여, 상기 제 1 신경망과 상기 제 2 신경망의 구조적 대응 여부를 판단할 수 있다.
상기 중앙 처리 장치는, 상기 제 1 신경망과 상기 제 2 신경망이 풀링 레이어를 포함하는 경우, 각 풀링 레이어의 필터 커널의 크기 및 스트라이드가 서로 동일한지를 더 고려하여, 상기 제 1 신경망과 상기 제 2 신경망의 구조적 대응 여부를 판단할 수 있다.
상기 중앙 처리 장치는, 상기 제 1 신경망의 일부 레이어가 상기 제 2 신경망과 구조적으로 대응하는 경우, 상기 제 1 신경망의 일부 레이어를 상기 공통 신경망으로서 상기 보조 기억 장치에 저장하고, 상기 제 1 신경망의 나머지 레이어를 상기 제 1 응용프로그램의 개별 신경망으로서 상기 보조 기억 장치에 저장할 수 있다.
상기 중앙 처리 장치는, 상기 제 1 신경망에서 입력 데이터의 처리를 위해 이용되는 제 1 내부 파라미터를 공통 파라미터로서 상기 보조 기억 장치에 저장하고, 상기 공통 파라미터와, 상기 제 2 신경망에서 입력 데이터의 처리를 위해 이용되는 제 2 내부 파라미터의 동일 여부를 판단하고, 상기 공통 파라미터와 상기 제 2 내부 파라미터가 서로 동일하지 않은 경우, 공통 파라미터와 상기 제 2 내부 파라미터 사이의 차이 정보를 결정하고, 상기 결정된 차이 정보를 상기 보조 기억 장치에 저장할 수 있다.
상기 중앙 처리 장치는, 상기 제 2 내부 파라미터의 복원을 위해, 상기 공통 파라미터에 합해지는 잔차 파라미터, 상기 공통 파라미터에 곱해지는 변환 파라미터 및 상기 공통 파라미터의 일부를 선택하기 위한 선택 파라미터 중 적어도 하나를 상기 차이 정보로 결정할 수 있다.
상기 중앙 처리 장치는, 복수의 산출 방식에 따라 상기 공통 파라미터와 상기 제 2 내부 파라미터 사이의 복수의 차이 정보를 결정하고, 상기 복수의 차이 정보 중 크기가 가장 작은 차이 정보를 상기 보조 기억 장치에 저장할 수 있다.
상기 중앙 처리 장치는, 상기 제 1 신경망에서 입력 데이터의 처리를 위해 이용되는 제 1 내부 파라미터를 공통 파라미터로서 상기 보조 기억 장치에 저장하고, 상기 공통 파라미터와, 상기 제 2 신경망에서 입력 데이터의 처리를 위해 이용되는 제 2 내부 파라미터의 동일 여부를 판단하고, 상기 공통 파라미터와 상기 제 2 내부 파라미터가 서로 동일하지 않은 경우, 공통 파라미터와 상기 제 2 내부 파라미터 사이의 차이 정보를 결정하고, 상기 차이 정보의 크기와 상기 제 2 내부 파라미터의 크기의 비교 결과에 기초하여, 상기 보조 기억 장치에 상기 차이 정보를 저장할지 여부를 결정할 수 있다.
상기 중앙 처리 장치는, 상기 제 1 응용프로그램의 실행에 따라 상기 제 1 신경망의 실행이 필요한 경우, 상기 공통 신경망 및 상기 개별 신경망을 상기 주 기억 장치에 로딩하되, 상기 공통 신경망 및 상기 개별 신경망 중 어느 하나의 신경망의 출력 데이터는 다른 하나의 신경망에 입력될 수 있다.
상기 중앙 처리 장치는, 상기 제 2 신경망의 실행이 필요한 경우, 상기 차이 정보에 기초하여 상기 공통 파라미터로부터 상기 제 2 내부 파라미터를 복원하고, 상기 복원된 제 2 내부 파라미터를 상기 주 기억 장치에 로딩할 수 있다.
상기 중앙 처리 장치는, 상기 제 1 응용프로그램의 상기 제 1 신경망과 관련된 업데이트 데이터를 획득하고, 상기 업데이트 데이터에 기초하여 신경망을 획득하고, 상기 획득한 신경망과 상기 공통 신경망의 구조적 대응 여부를 판단하고, 상기 획득한 신경망과 상기 공통 신경망이 구조적으로 서로 대응하지 않으면, 상기 획득한 신경망을 상기 제 1 응용프로그램의 개별 신경망으로서 상기 보조 기억 장치에 저장할 수 있다.
상기 중앙 처리 장치는, 상기 획득한 신경망이 상기 공통 신경망과 구조적으로 대응하는 경우, 공통 파라미터와 상기 업데이트 데이터에 기초하여 획득된 내부 파라미터가 동일하지 않으면, 이들 사이의 차이 정보를 상기 보조 기억 장치에 저장할 수 있다.
상기 중앙 처리 장치는 상기 획득한 신경망과 상기 공통 신경망이 구조적으로 대응하는 경우, 상기 획득한 신경망을 상기 보조 기억 장치에 저장하지 않을 수 있다.
일 실시예에 따른 응용프로그램 관리 장치는, 보조 기억 장치, 주 기억 장치 및 중앙 처리 장치를 포함하며, 상기 중앙 처리 장치는, 제 1 응용프로그램에 포함된 제 1 신경망과 상기 보조 기억 장치에 저장된 공통 신경망의 구조적 대응 여부를 판단하고, 상기 제 1 신경망과 상기 공통 신경망이 구조적으로 대응하는 경우, 제 1 응용프로그램에 포함된 파일들 중 상기 제 1 신경망 이외의 파일들을 상기 보조 기억 장치에 저장하고, 상기 제 1 응용프로그램이 실행됨에 따라 상기 제 1 신경망의 실행이 필요한 경우, 상기 제 1 신경망에 대응하는 상기 공통 신경망이 상기 주 기억 장치에 로딩되어 있지 않으면 상기 공통 신경망을 상기 주 기억 장치에 로딩할 수 있다.
일 실시예에 따른 응용프로그램 관리 방법은,
제 1 응용프로그램에 포함된 제 1 신경망과 제 2 응용프로그램에 포함된 제 2 신경망의 구조적 대응 여부를 판단하는 단계; 상기 제 1 신경망과 상기 제 2 신경망이 구조적으로 서로 대응하는 경우, 상기 제 1 신경망을 공통 신경망으로서 상기 보조 기억 장치에 저장하는 단계; 및 상기 제 1 응용 프로그램 또는 상기 제 2 응용프로그램이 실행됨에 따라 상기 제 1 신경망 또는 상기 제 2 신경망의 실행이 필요한 경우, 상기 공통 신경망을 주 기억 장치에 로딩하는 단계를 포함할 수 있다.
일 실시예에 따른 응용프로그램의 관리 장치 및 방법은 기기에 저장되는 응용프로그램의 데이터 크기를 감소시킬 수 있다.
또한, 일 실시예에 따른 응용프로그램의 관리 장치 및 방법은 응용프로그램의 실행을 위해 주 기억 장치에 로딩되는 데이터 크기를 감소시킬 수 있다.
다만, 일 실시예에 따른 응용프로그램의 관리 장치 및 방법이 달성할 수 있는 효과는 이상에서 언급한 것들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 명세서에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 일 실시예에 따른 응용프로그램 관리 장치의 구성을 도시하는 블록도이다.
도 2는 보조 기억 장치에 저장되는 응용프로그램을 구성하는 파일을 나타내는 예시적인 도면이다.
도 3은 일 실시예에 따른 응용프로그램 관리 방법을 설명하기 위한 순서도이다.
도 4 내지 도 10은 제 1 신경망과 제 2 신경망의 구조적 대응 여부를 판단하는 방법을 설명하기 위한 예시적인 도면들이다.
도 11 및 도 12는 제 2 신경망의 제 2 내부 파라미터를 저장하는 방법을 설명하기 위한 순서도이다.
도 13 및 도 14는 공통 파라미터와 제 2 내부 파라미터 사이의 차이 정보를 획득하는 방법을 설명하기 위한 예시적인 도면들이다.
도 15 및 도 16은 제 1 응용프로그램을 업데이트하는 방법을 설명하기 위한 순서도이다.
도 17은 제 1 응용프로그램의 업데이트 방법과 관련하여 공통 신경망, 공통 파라미터, 업데이트 파일에 기초하여 획득된 신경망 및 업데이트 파일에 기초하여 획득된 내부 파라미터를 나타내는 도면이다.
도 18은 다른 실시예에 따른 응용프로그램 관리 방법을 나타내는 순서도이다.
본 개시는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고, 이를 상세한 설명을 통해 설명하고자 한다. 그러나, 이는 본 개시를 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
실시예를 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 실시예의 설명 과정에서 이용되는 숫자(예를 들어, 제 1, 제 2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 본 명세서에서 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에서 '~부(유닛)', '모듈' 등으로 표현되는 구성요소는 2개 이상의 구성요소가 하나의 구성요소로 합쳐지거나 또는 하나의 구성요소가 보다 세분화된 기능별로 2개 이상으로 분화될 수도 있다. 또한, 이하에서 설명할 구성요소 각각은 자신이 담당하는 주기능 이외에도 다른 구성요소가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성요소 각각이 담당하는 주기능 중 일부 기능이 다른 구성요소에 의해 전담되어 수행될 수도 있음은 물론이다.
또한, 본 명세서에서 'A(예를 들어, 파일, 신경망, 내부 파라미터 등)를 보조 기억 장치에 저장한다'의 표현은 보조 기억 장치에 저장되어 있지 않은 A를 새롭게 보조 기억 장치에 저장하는 것을 의미할 뿐만 아니라, 보조 기억 장치에 이미 저장되어 있던 A의 저장 상태를 유지시킨다는 것을 의미할 수 있다. 또한, 'A를 보조 기억 장치에 저장하지 않는다'의 표현은 보조 기억 장치에 저장되어 있지 않았던 A를 보조 기억 장치에 저장하지 않는 것을 의미할 뿐만 아니라, 보조 기억 장치에 이미 저장되어 있던 A를 보조 기억 장치로부터 삭제한다는 것을 의미할 수 있다.
또한, 본 명세서에서, '응용프로그램'이란 특정 기능 수행을 위해 작성된 프로그램으로서, 컴퓨터, 스마트폰 등에 설치되는 다양한 종류의 프로그램을 포함할 수 있다. 예를 들어, '응용프로그램'은 스마트폰 애플리케이션, PC 애플리케이션, STB(set-top box) 애플리케이션, 웹 애플리케이션, 인스턴트 애플리케이션, 자동차 애플리케이션 등을 포함할 수 있다.
이하, 본 개시의 기술적 사상에 의한 실시예들을 차례로 상세히 설명한다.
도 1은 일 실시예에 따른 응용프로그램 관리 장치(100)의 구성을 도시하는 블록도이다.
응용프로그램 관리 장치(이하, '관리 장치')(100)는 다양한 종류의 기기로 구현될 수 있다. 예를 들어, 관리 장치(100)는 데스크탑 PC, 노트북, 태블릿 PC, 스마트폰, 웨어러블 기기, 내비게이션 기기, 자동차, TV 등 응용프로그램의 설치 및 실행이 가능한 다양한 기기로 구현될 수 있다.
도 1을 참조하면, 관리 장치(100)는 보조 기억 장치(110), 주 기억 장치(130) 및 중앙 처리 장치(150)를 포함할 수 있다.
보조 기억 장치(110)는 적어도 하나의 응용프로그램을 저장한다. 보조 기억 장치(110)는 주 기억 장치(130)의 한정된 용량을 보조하기 위해 이용되는 것으로서, 예를 들어, HDD(hard disk drive), SSD(solid state drive), USB, 플로피디스크, 자기 테이프, 광학디스크(CD, DVD, 블루레이 등) 등을 포함할 수 있으나 이에 한정되는 것은 아니다. 보조 기억 장치(110)에 저장되는 응용프로그램은 AI(artificial intelligence) 기술의 실현을 위해 작성된 프로그램을 포함할 수 있다. 이러한 응용프로그램은 신경망과 내부 파라미터를 포함하며, 신경망으로 입력되는 데이터를 내부 파라미터에 따라 처리하고, 처리된 결과를 출력할 수 있다.
주 기억 장치(130)는 중앙 처리 장치(150)의 제어에 따라 응용프로그램의 실행에 필요한 파일을 로딩한다. 주 기억 장치(130)는 예를 들어, 롬(ROM), Masked ROM, PROM, EPROM, 램(RAM), DRAM, SRAM 등을 포함할 수 있으나 이에 한정되는 것은 아니다.
중앙 처리 장치(150)는 보조 기억 장치(110) 및 주 기억 장치(130)의 동작을 제어한다. 중앙 처리 장치(150)는 CPU(central processing unit), GPU(graphic processing unit) 및 AI 전용의 프로세서 중 적어도 하나를 포함할 수 있다.
중앙 처리 장치(150)는 보조 기억 장치(110)에 설치된 응용프로그램들로부터 후술하는 공통 신경망 및 공통 파라미터를 결정하고, 내부 파라미터들 사이의 차이 정보를 획득하여 보조 기억 장치(110)에 저장할 수 있다. 또한, 중앙 처리 장치(150)는 응용프로그램을 구성하는 파일들 중 일부를 보조 기억 장치(110)에 저장하지 않음으로써, 보조 기억 장치(110)에 저장되는 응용프로그램의 크기를 감소시킬 수 있다. 또한, 중앙 처리 장치(150)는 여러 응용프로그램들이 공유하는 공통 신경망 및 공통 파라미터를 주 기억 장치(130)로 로딩하여, 주 기억 장치(130)에 로딩되는 데이터 크기를 감소시킬 수도 있다.
도 2는 보조 기억 장치(110)에 저장되는 응용프로그램(140)을 구성하는 파일들을 나타내는 예시적인 도면으로서, 응용프로그램(140)은 다수의 파일들로 구성된다. 파일은 실행 파일, 소스(source) 파일, 바이너리 파일, 데이터베이스 파일, 이미지 파일, 동영상 파일 등 응용프로그램의 실행에 필요한 다양한 종류의 파일을 포함할 수 있다. 본 개시에 따른 응용프로그램 관리 장치(100)는 신경망 파일(145)을 포함하는 응용프로그램(140)을 대상으로 하여 보조 기억 장치(110) 및 주 기억 장치(130)의 저장 용량을 최적화할 수 있다.
신경망 파일(145)은 기계 학습된 신경망이 파일 형태로 구현된 것으로서, 신경망은 적어도 하나의 레이어로 이루어지며, 입력 데이터가 입력되면 입력 데이터를 내부 파라미터에 따라 처리한 후 출력 데이터를 출력한다. 본 개시에서, 신경망을 저장한다는 것은 해당 신경망이 파일 형태로 구현된 신경망 파일을 저장한다는 것을 의미할 수 있고, 신경망을 삭제한다는 것은 해당 신경망이 파일 형태로 구현된 신경망 파일을 삭제한다는 것을 의미할 수 있다.
신경망은 AI(artificial intelligence) 기술의 실현을 위한 것일 수 있다. AI 기술이 적용된 응용프로그램은 사용할수록 인식률이 향상되고 사용자 취향을 보다 정확하게 이해할 수 있게 되어, 기존 Rule 기반의 응용프로그램이 점차 딥러닝 기반 AI 프로그램으로 대체되고 있다.
AI 기술은 기계학습(딥러닝) 및 기계학습을 활용한 요소 기술들로 구성된다. 기계학습은 입력 데이터들의 특징을 스스로 분류/학습하는 알고리즘 기술이며, 요소기술은 딥러닝 등의 기계학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 기술로서, 언어적 이해, 시각적 이해, 추론/예측, 지식 표현, 동작 제어 등의 기술 분야로 구성된다.
AI 기술이 응용되는 다양한 분야는 다음과 같다. 언어적 이해는 인간의 언어/문자를 인식하고 응용/처리하는 기술로서, 자연어 처리, 기계 번역, 대화시스템, 질의 응답, 음성 인식/합성 등을 포함한다. 시각적 이해는 사물을 인간의 시각처럼 인식하여 처리하는 기술로서, 객체 인식, 객체 추적, 영상 검색, 사람 인식, 장면 이해, 공간 이해, 영상 개선 등을 포함한다. 추론 예측은 정보를 판단하여 논리적으로 추론하고 예측하는 기술로서, 지식/확률 기반 추론, 최적화 예측, 선호 기반 계획, 추천 등을 포함한다. 지식 표현은 인간의 경험정보를 지식데이터로 자동화 처리하는 기술로서, 지식 구축(데이터 생성/분류), 지식 관리(데이터 활용) 등을 포함한다. 동작 제어는 차량의 자율 주행, 로봇의 움직임을 제어하는 기술로서, 움직임 제어(항법, 충돌, 주행), 조작 제어(행동 제어) 등을 포함한다.
도 2에서 응용프로그램(140)은 메타 파일(146)을 포함할 수 있는데, 메타 파일(146)은 신경망 관련 정보를 포함할 수 있다. 예를 들어, 메타 파일(146)은 신경망을 이루는 적어도 하나의 레이어의 종류, 연산 방식 등에 대한 정보를 포함할 수 있다. 후술하는 바와 같이, 중앙 처리 장치(150)는 메타 파일(146)을 통해 공통 신경망을 추출할 것인지 판단할 수 있다.
내부 파라미터는 신경망을 이루는 각 레이어의 연산 과정에서 이용되는 값으로서 예를 들어, 입력 값을 소정 연산식에 적용할 때 이용되는 가중치 및/또는 입력 값과 출력 값 사이의 매핑 값(예를 들어, 워드 임베딩의 임베딩 매트릭스 등)을 포함할 수 있다. 또한, 내부 파라미터는 가중치 매트릭스 및/또는 매핑 값 매트리스를 포함할 수도 있다. 내부 파라미터는 예를 들어, 훈련의 대상이 되는 값으로서 신경망은 학습 데이터(training data)에 기초하여 내부 파라미터를 최적화할 수 있다. 일 실시예에서, 내부 파라미터는 신경망 파일에 저장될 수 있고, 또는, 상기 메타 파일이나 별도의 내부 파라미터 파일로서 응용프로그램에 포함될 수도 있다.
이하에서는, 도 3을 참조하여, 일 실시예에 따른 관리 장치(100)의 응용프로그램 관리 방법에 대해 상세히 설명한다.
S310 단계에서, 중앙 처리 장치(150)는 제 1 응용프로그램의 제 1 신경망과 제 2 응용프로그램의 제 2 신경망이 구조적으로 서로 대응하는지 여부를 판단한다. 제 1 신경망과 제 2 신경망이 구조적으로 대응한다는 것은, 신경망을 구성하는 레이어의 종류 및 레이어 간 연결 관계가 서로 대응한다는 것을 의미할 수 있다.
제 1 응용프로그램 및/또는 제 2 응용프로그램은 예를 들어, 어플리케이션 배포 서버로부터 관리 장치(100)로 설치 파일이 전송된 후, 설치 파일의 실행을 통해 관리 장치(100)에 설치된 것일 수 있다. 또한, 제 1 응용프로그램 및/또는 제 2 응용프로그램은 USB 등을 통해 관리 장치(100)로 설치 파일이 전송된 후, 설치 파일이 실행됨으로써 관리 장치(100)에 설치된 것일 수도 있다.
제 1 응용프로그램이 먼저 설치된 후 제 2 응용프로그램이 설치된 것일 수 있고, 제 2 응용프로그램이 먼저 설치된 후 제 1 응용프로그램이 설치된 것일 수도 있다.
중앙 처리 장치(150)는 제 1 신경망과 제 2 신경망이 구조적으로 대응하는지 여부를, 신경망을 구성하는 레이어의 종류, 연결 관계 등에 기초하여 판단할 수 있는데, 이의 구체적 판단 방법에 대해서는 도 4 내지 도 10을 참조하여 상세히 설명한다.
S320 단계에서, 제 1 신경망과 제 2 신경망이 구조적으로 서로 대응하는 경우, S330 단계에서, 중앙 처리 장치(150)는 제 2 응용프로그램을 구성하는 파일들 중 제 2 신경망 이외의 파일들을 보조 기억 장치(110)에 저장할 수 있다. 중앙 처리 장치(150)는 제 2 응용프로그램을 구성하는 파일들 중 제 2 신경망 파일은 보조 기억 장치(110)에 저장하지 않을 수 있다. 일 실시예에서, 제 2 신경망 파일 내에 제 2 신경망의 제 2 내부 파라미터가 저장되어 있고, 도 11 및 도 12를 참조하여 후술하는 바와 같이 제 2 내부 파라미터가 제 1 신경망의 제 1 내부 파라미터와 동일하지 않고, 차이 정보의 저장도 불필요한 경우, 중앙 처리 장치(150)는 제 2 신경망 파일은 보조 기억 장치(110)에 저장하지 않되, 제 2 신경망 파일에 저장된 제 2 내부 파라미터는 별도의 파일로서 보조 기억 장치(110)에 저장할 수도 있다.
S340 단계에서, 중앙 처리 장치(150)는 제 1 응용프로그램을 구성하는 파일들을 보조 기억 장치(110)에 저장하되, 제 1 신경망은 공통 신경망으로서 보조 기억 장치(110)에 저장할 수 있다.
도 3은 상기 S340 단계가 S330 이후에 수행되는 것으로 도시하고 있으나, 이는 하나의 실시예일뿐, S340 단계는 S330 단계과 동시 또는 그 이전에 수행될 수도 있다.
S350 단계에서, 제 1 응용프로그램 또는 제 2 응용프로그램이 실행됨에 따라 제 1 신경망 또는 제 2 신경망의 실행이 필요한 경우, 중앙 처리 장치(150)는 공통 신경망(즉, 제 1 신경망)을 주 기억 장치(130)에 로딩시킨 후, 공통 신경망을 실행할 수 있다. 중앙 처리 장치(150)는 주 기억 장치(130)에 로딩된 공통 신경망으로 입력 데이터를 입력하고, 공통 신경망에서 출력되는 출력 데이터를 획득할 수 있다. 예를 들어, 제 1 응용프로그램이 실행되는 경우, 중앙 처리 장치(150)는 제 1 응용프로그램의 소정 기능(예를 들어, 사진 촬영 기능, 사진 선택 기능 등)이 실행됨에 따라 획득된 데이터를 입력 데이터로서 공통 신경망에 입력하고, 공통 신경망에서 출력되는 데이터를 획득할 수 있다. 그리고, 중앙 처리 장치(150)는 공통 신경망에서 출력된 데이터를 제 1 응용프로그램의 소정 기능(예를 들어, 디스플레이 기능 등)의 실행을 위한 입력 데이터로 이용할 수 있다.
일 실시예에서, 제 1 응용프로그램이 실행됨에 따라 공통 신경망이 주 기억 장치에 로딩된 후, 제 1 응용프로그램이 종료된 경우, 중앙 처리 장치는 주 기억 장치로부터 공통 신경망을 언로딩(unloading)할 수 있다. 다만, 중앙 처리 장치는 제 1 응용프로그램이 종료되었더라도 공통 신경망을 이용하는 제 2 응용프로그램이 실행 중인 경우에는 주 기억 장치에 공통 신경망이 계속적으로 로딩되어 있게 할 수 있다.
일 실시예에서, 제 1 신경망이 공통 신경망으로 저장된 이후, 제 3 신경망을 포함하는 제 3 응용프로그램이 관리 장치(100)에 설치된 경우, 중앙 처리 장치(150)는 공통 신경망과 제 3 신경망이 구조적으로 서로 대응하는지를 판단할 수 있다. 중앙 처리 장치(150)는 공통 신경망과 제 3 신경망이 구조적으로 서로 대응하는 경우, 제 3 응용프로그램을 구성하는 파일들 중 제 3 신경망 이외의 파일들만을 보조 기억 장치(110)에 저장하고, 이후 제 3 신경망의 실행 필요시 공통 신경망을 주 기억 장치(130)에 로딩하거나, 기 로딩된 공통 신경망을 실행할 수 있다.
S320 단계에서, 제 1 신경망과 제 2 신경망이 구조적으로 서로 대응하지 않는 경우, S360 단계에서, 중앙 처리 장치(150)는 제 1 응용프로그램 및 제 2 응용프로그램을 구성하는 파일들을 보조 기억 장치(110)에 저장한다. 제 1 신경망과 제 2 신경망이 구조적으로 서로 대응하지 않는 경우, 공통 신경망의 추출이 불가능하기 때문에 제 1 응용프로그램 및 제 2 응용프로그램을 구성하는 모든 파일들이 보조 기억 장치(110)에 저장되는 것이다.
S370 단계에서, 중앙 처리 장치(150)는 제 1 응용프로그램 또는 제 2 응용프로그램이 실행됨에 따라 제 1 신경망 또는 제 2 신경망의 실행이 필요한 경우, 제 1 신경망 또는 제 2 신경망을 주 기억 장치(130)에 로딩할 수 있다.
이후, 새로운 제 3 신경망을 포함하는 제 3 응용 프로그램이 관리 장치(100)에 설치되면, 관리 장치(100)는 전술한 방법과 같이 제 1 신경망과 제 3 신경망의 구조에 기초하여 공통 신경망의 추출 여부를 판단하고, 제 2 신경망과 제 3 신경망의 구조에 기초하여 공통 신경망의 추출 여부를 판단할 수 있다. 여기서, 제 1 신경망과 제 3 신경망의 구조에 기초하여 공통 신경망의 추출 여부를 판단하는 방법 및, 제 2 신경망과 제 3 신경망의 구조에 기초하여 공통 신경망의 추출 여부를 판단하는 방법은, 앞서 도 3과 관련하여 설명한 것과 동일하므로 상세한 설명은 생략한다.
제 1 신경망과 제 3 신경망이 구조적으로 대응하는 경우, 제 1 신경망이 공통 신경망으로 결정될 수 있고, 이후, 제 1 신경망 및/또는 제 3 신경망의 실행이 필요한 경우, 중앙 처리 장치(150)는 공통 신경망을 주 기억 장치(130)에 로딩할 수 있다. 또한, 제 2 신경망과 제 3 신경망이 구조적으로 대응하는 경우, 제 2 신경망이 공통 신경망으로 결정될 수 있고, 이후, 제 2 신경망 및/또는 제 3 신경망의 실행이 필요한 경우, 중앙 처리 장치(150)는 공통 신경망을 주 기억 장치(130)에 로딩할 수 있다.
일 실시예에 따르면, 구조적으로 서로 대응하는 여러 신경망이 존재하는 경우, 여러 신경망 중 하나의 신경망이 공통 신경망으로서 보조 기억 장치(110)에 저장되고, 나머지 신경망은 보조 기억 장치(110)에 저장되지 않으므로 보조 기억 장치(110)의 저장 용량에 부담을 주지 않게 된다. 또한, 일 실시예에서, 구조적으로 서로 대응하는 여러 신경망을 포함하는 여러 응용프로그램이 동시에 실행될 때, 하나의 공통 신경망만을 주 기억 장치(130)에 로딩할 수 있으므로, 여러 신경망이 주 기억 장치(130)에 동시에 로딩됨으로써 발생하는 주 기억 장치(130)의 부하를 감소시킬 수 있게 된다.
이하에서는, 도 4 내지 도 10을 참조하여 신경망들의 구조적 대응 여부를 판단하는 방법에 대해 설명한다.
일 실시예에서, 중앙 처리 장치(150)는 제 1 신경망과 제 2 신경망에 포함된 레이어의 종류 및 레이어간 연결 관계가 서로 동일하면, 제 1 신경망과 제 2 신경망이 구조적으로 서로 대응하는 것으로 판단할 수 있다.
도 4를 참조하면, 제 1 신경망(410)은 컨볼루션 레이어(convolution layer)(411), 풀링 레이어(pooling layer)(412), 노멀라이제이션 레이어(normalization layer)(413), 활성화 레이어(activation layer)(414), 제 1 FCL (fully connected layer)(415) 및 제 2 FCL(416)로 이루어질 수 있다. 또한, 제 2 신경망(430)은 제 1 컨볼루션 레이어(431), 풀링 레이어(432), 노멀라이제이션 레이어(433), 제 2 컨볼루션 레이어(434), 제 1 FCL(435) 및 제 2 FCL(436)로 이루어질 수 있다.
컨볼루션 레이어는 데이터에서 원하는 특성을 추출하기 위해 컨볼루션 연산을 적용하는 레이어를 의미할 수 있고, 풀링 레이어는 특징 맵의 공간적 해상도를 감소시키기 위한 레이어를 의미할 수 있다. 또한, 노멀라이제이션 레이어는 입력 데이터의 범위를 정규화하는 레이어를 의미할 수 있고, 활성화 레이어는 이전 레이어의 출력 결과에 대해 비선형(Non-linear) 특성을 부여하는 레이어를 의미할 수 있다. 또한, FCL은 적어도 하나의 노드를 포함하고, 적어도 하나의 노드 각각으로 입력된 데이터를 처리하여 다음 레이어로 전달하는 레이어를 의미할 수 있다. FCL에 포함되는 노드 각각은 이전 FCL 또는 이후 FCL에 포함된 노드들 모두와 연결될 수 있다.
도 4에 도시된 레이어들의 종류 및 개수는 하나의 예시일 뿐이며, 제 1 신경망(410) 및 제 2 신경망(430)은 다양한 종류 및 다양한 개수의 레이어로 이루어질 수 있다.
도 4를 참조하면, 제 1 신경망(410)과 제 2 신경망(430)의 첫 번째 레이어(411, 431) 내지 세 번째 레이어(413, 433), 그리고 다섯 번째 레이어(415, 435) 및 여섯 번째 레이어(416, 436)는 그 종류가 서로 동일하다. 그러나, 네 번째 레이어(414, 434)는 각각 활성화 레이어 및 컨볼루션 레이어로 그 종류가 서로 상이하므로, 중앙 처리 장치(150)는 제 1 신경망(410)과 제 2 신경망(430)이 구조적으로 서로 대응하지 않는 것으로 판단할 수 있다. 후술하는 바와 같이, 중앙 처리 장치(150)는 제 1 신경망(410)과 제 2 신경망(430)의 첫 번째 레이어(411, 431)부터 세 번째 레이어(413, 433)까지는 레이어의 종류가 서로 동일하므로, 첫 번째 레이어(411, 431) 내지 세 번째 레이어(413, 433)를 공통 신경망으로 결정할 수도 있는데 이에 대해서는 도 10을 참조하여 설명한다.
일 실시예에서, 레이어의 종류가 동일하다는 것은 입력된 데이터에 대한 연산 종류(컨볼루션 연산, 풀링 연산, 활성화 연산 등)가 동일하면서, 구체적 연산 방법이 동일한 경우를 의미할 수 있다. 다시 말하면, 동일 종류의 연산을 수행하는 컨볼루션 레이어들이라도, 구체적 연산 방법이 상이한 경우 두 컨볼루션 레이어를 포함하는 두 신경망이 구조적으로 서로 대응하지 않는 것으로 판단될 수 있다.
도 5를 참조하면, 제 1 신경망(510)과 제 2 신경망(530) 모두 컨볼루션 레이어(511, 531), 풀링 레이어(512, 532), 노멀라이제이션 레이어(513, 533), 활성화 레이어(514, 534), 제 1 FCL(515, 535) 및 제 2 FCL(516, 536)을 포함하더라도, 제 1 신경망(510)의 풀링 레이어(512)가 맥스(max) 풀링 연산을 하고, 제 2 신경망(530)의 풀링 레이어(532)가 평균(average) 풀링 연산을 하는 경우, 중앙 처리 장치(150)는 제 1 신경망(510)과 제 2 신경망(530)이 구조적으로 서로 대응하지 않는다고 판단할 수 있다.
또한, 도 6을 참조하면, 제 1 신경망(610)과 제 2 신경망(630) 모두 컨볼루션 레이어(611, 631), 풀링 레이어(612, 632), 노멀라이제이션 레이어(613, 633), 활성화 레이어(614, 634), 제 1 FCL(615, 635) 및 제 2 FCL(616, 636)을 포함하더라도, 제 1 신경망(610)의 컨볼루션 레이어(611)와 제 2 신경망(630)의 컨볼루션 레이어(631)의 연산 방식이 서로 상이한 경우, 중앙 처리 장치(150)는 제 1 신경망(610)과 제 2 신경망(630)이 구조적으로 서로 대응하지 않는다고 판단할 수 있다.
예를 들어, 도 7을 참조하면, 제 1 신경망(610)의 컨볼루션 레이어(611)가 입력 데이터(715) 중 서로 인접한 소정 개수의 화소 값들을 필터 커널(713)로 컨볼루션 처리하는 일반 컨볼루션 레이어이고, 제 2 신경망(630)의 컨볼루션 레이어(631)가 입력 데이터(725) 중 서로 이격된 소정 개수의 화소 값들을 필터 커널(723)로 컨볼루션 처리하는 확장(dilated) 컨볼루션 레이어인 경우, 중앙 처리 장치(150)는 제 1 신경망(610)과 제 2 신경망(630)이 구조적으로 서로 대응하지 않는다고 판단할 수 있다.
또한, 도 8을 참조하면, 제 1 신경망(810)과 제 2 신경망(830) 모두 컨볼루션 레이어(811, 831), 풀링 레이어(812, 832), 노멀라이제이션 레이어(813, 833), 활성화 레이어(814, 834), 제 1 FCL(815, 835) 및 제 2 FCL(816, 836)을 포함하지만, 제 1 신경망(810)의 노멀라이제이션 레이어(813)가 배치 노멀라이제이션 연산을 하고, 제 2 신경망(830)의 노멀라이제이션 레이어(833)가 레이어 노멀라이제이션 연산을 하는 경우, 중앙 처리 장치(150)는 제 1 신경망(810)과 제 2 신경망(830)이 구조적으로 서로 대응하지 않는다고 판단할 수 있다.
일 실시예에서, 중앙 처리 장치(150)는 제 1 신경망 및 제 2 신경망에 포함된 레이어들 사이의 연결 관계가 서로 동일하면 제 1 신경망과 제 2 신경망이 구조적으로 서로 대응하는 것으로 판단할 수 있다.
도 9를 참조하면, 제 1 신경망(910)과 제 2 신경망(930) 각각이 제 1 컨볼루션 레이어(911, 931), 제 2 컨볼루션 레이어(912, 932) 및 제 3 컨볼루션 레이어(913, 933)를 포함할 때, 제 1 신경망(910)은 제 1 컨볼루션 레이어(911)의 출력이 제 2 컨볼루션 레이어(912)로 입력되는 동시에 제 3 컨볼루션 레이어(913)로 입력되는 스킵 커넥션(skip connection) 구조를 갖지만, 제 2 신경망(930)에서는 제 1 컨볼루션 레이어(931)의 출력이 제 2 컨볼루션 레이어(932)로만 입력되므로, 중앙 처리 장치(150)는 제 1 신경망(910)과 제 2 신경망(930)이 구조적으로 서로 대응하지 않는다고 판단할 수 있다.
일 실시예에서, 제 1 신경망 및 제 2 신경망에 포함된 레이어들의 종류 및 레이어 간 연결관계가 동일한 경우, 중앙 처리 장치(150)는 제 1 신경망 및 제 2 신경망에 포함된 각 레이어에 대한 입력 데이터 및 출력 데이터의 크기가 동일한지를 더 고려하여 제 1 신경망과 제 2 신경망이 구조적으로 대응하는지를 판단할 수도 있다. 상기 입력 데이터 및 출력 데이터의 크기가 동일한 경우란, 입출력 데이터의 차원이 동일하고, 각 차원에 해당하는 데이터의 개수가 동일한 경우를 의미할 수 있다. 예를 들어, 두 개의 1차원 데이터의 개수가 동일하면 두 1차원 데이터의 크기는 동일하다고 할 수 있다. 또한, 두 개의 2차원 데이터 사이에서 가로 데이터 및 세로 데이터의 개수가 동일하면 두 2차원 데이터의 크기는 동일하다고 할 수 있다. 또한, 두 개의 3차원 데이터 사이에서 가로 데이터, 세로 데이터 및 뎁스(depth) 데이터의 개수가 동일하면 두 3차원 데이터의 크기는 동일하다고 할 수 있다. 또한, 두 개의 4차원 데이터 사이에서 가로 데이터, 세로 데이터, 뎁스 데이터 및 배치(batch)의 개수가 동일하면 두 4차원 데이터의 크기는 동일하다고 할 수 있다.
예를 들어, 레이어들의 종류 및 레이어 간 연결관계가 동일한 제 1 신경망 및 제 2 신경망 각각이 세 개의 레이어를 포함하고 있는 경우, 중앙 처리 장치(150)는 제 1 신경망 및 제 2 신경망에 포함된 첫 번째 레이어들의 입출력 데이터의 크기, 두 번째 레이어들의 입출력 데이터의 크기 및 세 번째 레이어들의 입출력 데이터의 크기가 동일하면 제 1 신경망과 제 2 신경망이 구조적으로 서로 대응하는 것으로 판단할 수 있다.
일 실시예에서, 중앙 처리 장치(150)는 제 1 신경망 및 제 2 신경망에 포함된 레이어 종류별로 서로 다른 기준에 따라 각 레이어들이 구조적으로 서로 대응하는지를 판단할 수도 있다.
일 예로서, 제 1 신경망과 제 2 신경망이 FCL을 공통적으로 포함하는 경우, 각 FCL에 포함된 노드들의 개수가 서로 동일하면, 제 1 신경망과 제 2 신경망이 구조적으로 대응하는 것으로 판단할 수 있다. 예를 들어, 도 10에서 제 1 신경망(1010)의 여섯 번 째 레이어인 제 2 FCL(1016)은 3개의 노드를 포함하지만, 제 2 신경망(1030)의 제 2 FCL(1036)은 4개의 노드를 포함하므로, 중앙 처리 장치(150)는 제 1 신경망(1010)과 제 2 신경망(1030)이 구조적으로 서로 대응하지 않는다고 판단할 수 있다.
또한, 일 예에서, 중앙 처리 장치(150)는 제 1 신경망과 제 2 신경망이 컨볼루션 레이어를 공통적으로 포함하는 경우, 각 컨볼루션 레이어의 필터 커널의 개수, 필터 커널의 크기, 스트라이드(stride) 및 패딩(padding) 크기가 서로 동일하면, 제 1 신경망과 제 2 신경망이 구조적으로 대응하는 것으로 판단할 수도 있다. 여기서, 필터 커널은 이미지의 특징을 찾아내기 위한 파라미터를 의미할 수 있고, 스트라이드는 입력 데이터에 대한 필터 커널의 이동 간격을 의미할 수 있다. 또한, 패딩은 입력 데이터의 외각에 기 설정된 픽셀 값(예를 들어, 0)을 할당하여 입력 데이터의 크기를 증가시키는 것을 의미할 수 있으며, 패딩 크기는 입력 데이터의 외각에 추가되는 픽셀 라인의 개수에 대응할 수 있다. 예를 들어, 입력 데이터 상측, 우측, 하측 및 좌측의 외각을 따라 하나의 라인의 픽셀들이 추가되는 경우, 패딩 크기는 1에 대응할 수 있다.
또한, 일 예에서, 중앙 처리 장치(150)는 제 1 신경망과 제 2 신경망이 풀링 레이어를 공통적으로 포함하는 경우, 각 풀링 레이어의 필터 커널의 크기, 스트라이드 및 패딩 크기가 서로 동일하면, 제 1 신경망과 제 2 신경망이 구조적으로 대응하는 것으로 판단할 수도 있다. 여기서, 필터 커널은 입력 데이터의 공간적 해상도를 감소시키기 위해 이용되는 일부의 입력 데이터를 특정하는 필터를 의미할 수 있고, 스트라이드는 필터 커널의 이동 간격을 의미할 수 있다. 또한, 패딩은 입력 데이터의 외각에 기 설정된 픽셀 값을 할당하여 입력 데이터의 크기를 증가시키는 것을 의미할 수 있으며, 패딩 크기는 입력 데이터의 외각에 추가되는 픽셀 라인의 개수에 대응할 수 있다.
일 실시예에서, 중앙 처리 장치(150)는 제 1 신경망 및 제 2 신경망에 포함된 레이어들 중 일부의 레이어들만이 구조적으로 서로 대응하는 경우, 구조적으로 대응하는 일부의 레이어들만 공통 신경망으로 결정하고, 제 1 신경망의 나머지 레이어들과 제 2 신경망의 나머지 레이어들은 각각 개별 신경망으로서 보조 기억 장치(110)에 저장할 수 있다. 예를 들어, 중앙 처리 장치(150)는 제 1 신경망의 일부 레이어가 제 2 신경망의 일부 레이어와 구조적으로 대응하는 경우, 제 1 신경망 파일을 상기 일부 레이어를 포함하는 제 1 서브 파일과 나머지 레이어를 포함하는 제 2 서브 파일로 분할하고, 제 1 서브 파일은 공통 신경망으로서 보조 기억 장치(110)에 저장하고, 제 2 서브 파일은 개별 신경망으로서 보조 기억 장치(110)에 저장할 수 있다. 이후, 공통 신경망으로 결정된 제 1 서브 파일은 제 1 응용프로그램 및 제 2 응용프로그램의 실행에 공통적으로 이용될 수 있으나, 제 2 서브 파일은 제 1 응용프로그램이 실행되는 경우에만 주 기억 장치(130)에 로딩될 수 있다. 또한, 중앙 처리 장치(150)는 제 2 신경망 파일을 상기 일부 레이어를 포함하는 제 1 서브 파일과 나머지 레이어를 포함하는 제 2 서브 파일로 분할하고, 제 1 서브 파일은 보조 기억 장치(110)에서 삭제하고, 제 2 서브 파일은 개별 신경망으로서 보조 기억 장치(110)에 저장할 수 있다. 여기서 제 2 서브 파일은 제 2 응용프로그램이 실행되는 경우에만 주 기억 장치(130)에 로딩될 수 있다.
도 10을 참조하면, 제 1 신경망(1010) 및 제 2 신경망(1030)에서 첫 번째 레이어(1011, 1031)부터 다섯 번째 레이어(1015, 1035)까지는 구조적으로 서로 대응하므로, 중앙 처리 장치(150)는 첫 번째 레이어(1011, 1031) 내지 다섯 번째 레이어(1015, 1035)를 공통 신경망으로 결정할 수 있다. 그리고, 중앙 처리 장치(150)는 제 1 신경망(1010)의 여섯 번째 레이어(1016)를 제 1 응용프로그램의 개별 신경망으로서 보조 기억 장치(110)에 저장하고, 제 2 신경망(1030)의 여섯 번째 레이어(1036)를 제 2 응용프로그램의 개별 신경망으로서 보조 기억 장치(110)에 저장할 수 있다.
중앙 처리 장치(150)는 제 1 신경망(1010)의 실행 필요시, 공통 신경망과 제 1 응용프로그램의 개별 신경망을 주 기억 장치(130)에 로딩한다. 또한, 중앙 처리 장치(150)는 제 2 신경망(1010)의 실행 필요시, 공통 신경망과 제 2 응용프로그램의 개별 신경망을 주 기억 장치(130)에 로딩한다. 이 경우, 공통 신경망의 출력 데이터는 개별 신경망의 입력 데이터로 이용되거나, 개별 신경망의 출력 데이터가 공통 신경망의 입력 데이터로 이용될 수 있다.
한편, 중앙 처리 장치(150)는 보조 기억 장치(110)에 적어도 하나의 공통 신경망이 저장되어 있을 때, 각각의 공통 신경망이 어느 응용프로그램에 의해 이용되는 것인지를 나타내는 매핑 정보를 생성할 수도 있다. 예를 들어, 보조 기억 장치(110)에 A 공통 신경망 및 B 공통 신경망이 저장되어 있으면, 중앙 처리 장치(150)는 A 공통 신경망을 a 응용프로그램 및 b 응용프로그램이 이용하고, B 공통 신경망을 c 응용프로그램 및 d 응용프로그램이 이용한다는 매핑 정보를 생성 및 저장할 수 있다. 그리고, 중앙 처리 장치(150)는 a 응용프로그램 및 b 응용프로그램에 포함된 신경망의 실행이 필요한 경우, 미리 생성된 매핑 정보에 기초하여 A 공통 신경망을 주 기억 장치(130)에 로딩하고, 마찬가지로 c 응용프로그램 및 d 응용프로그램에 포함된 신경망의 실행이 필요한 경우, 미리 생성된 매핑 정보에 기초하여 B 공통 신경망을 주 기억 장치(130)에 로딩할 수 있다.
앞서서는, 여러 신경망의 구조적 대응 여부에 따라 공통 신경망을 추출하는 방법에 대해 설명하였는데, 공통 신경망이 추출되었더라도 각각의 신경망의 내부 연산에 이용되는 내부 파라미터는 신경망들 간에 상이할 수도 있으므로, 각각의 신경망에서 이용되는 내부 파라미터의 저장 방법에 대해 살펴본다.
도 11 및 도 12는 제 2 신경망의 제 2 내부 파라미터를 저장하는 방법을 설명하기 위한 순서도이다.
제 1 신경망과 제 2 신경망이 구조적으로 서로 대응하여 제 1 신경망이 공통 신경망으로서 보조 기억 장치(110)에 저장된 경우, S1110 단계에서, 중앙 처리 장치(150)는 제 1 신경망을 구성하는 각 레이어의 연산에 이용되는 제 1 내부 파라미터를 공통 파라미터로서 보조 기억 장치(110)에 저장한다. 일 실시예에서, 제 1 내부 파라미터는 제 1 신경망 파일 내에 저장되어 있을 수 있고, 또는, 메타 파일이나 별도의 내부 파라미터 파일에 저장되어 있을 수도 있다.
S1120 단계에서, 중앙 처리 장치(150)는 제 2 신경망을 구성하는 각 레이어의 연산에 이용되는 제 2 내부 파라미터와 공통 파라미터가 서로 동일한지를 판단한다.
중앙 처리 장치(150)는 공통 신경망 및 제 2 신경망이 복수의 레이어로 이루어진 경우, 각각의 레이어에서 이용되는 공통 파라미터와 제 2 내부 파라미터를 비교하여, 제 2 내부 파라미터와 공통 파라미터의 동일 여부를 판단할 수 있다. 예를 들어, 공통 신경망 및 제 2 신경망이 3개의 레이어로 이루어진 경우, 공통 신경망 및 제 2 신경망의 첫 번째 레이어에서 이용되는 내부 파라미터들을 서로 비교하고, 공통 신경망 및 제 2 신경망의 두 번째 레이어에서 이용되는 내부 파라미터들을 서로 비교하고, 공통 신경망 및 제 2 신경망의 세 번째 레이어에서 이용되는 내부 파라미터들을 서로 비교하여, 제 2 내부 파라미터와 공통 파라미터가 서로 동일한지를 판단할 수 있다.
일 실시예에서, 중앙 처리 장치(150)는 공통 파라미터에 포함된 수치들과 제 2 내부 파라미터에 포함된 수치들이 모두 동일하면, 제 2 내부 파라미터와 공통 파라미터가 서로 동일한 것으로 판단할 수 있다.
S1130 단계에서, 공통 파라미터와 제 2 내부 파라미터가 서로 동일하면, S1140 단계에서, 중앙 처리 장치(150)는 제 2 내부 파라미터를 보조 기억 장치(110)에 저장하지 않는다. 중앙 처리 장치(150)는 보조 기억 장치(110)에 저장되어 있던 제 2 내부 파라미터를 보조 기억 장치(110)로부터 삭제할 수 있다. 일 예에서, 중앙 처리 장치(150)는 제 2 내부 파라미터에 대한 정보를 포함하는 제 2 내부 파라미터 파일(예를 들어, 제 2 신경망 파일, 메타 파일 또는 별도의 내부 파라미터 파일)을 보조 기억 장치(110)에 저장하지 않거나, 보조 기억 장치(110)로부터 삭제할 수 있다.
S1150 단계에서, 중앙 처리 장치(150)는 제 2 신경망의 실행이 필요한 경우, 공통 신경망 및 공통 파라미터를 주 기억 장치(130)에 로딩하여 공통 신경망이 공통 파라미터에 따라 내부 연산 동작을 하게 할 수 있다.
S1130 단계에서, 공통 파라미터와 제 2 내부 파라미터가 서로 동일하지 않은 경우에 대해서는 도 12를 참조하여 설명한다.
S1210 단계에서, 중앙 처리 장치(150)는 공통 파라미터와 제 2 내부 파라미터 사이의 차이 정보를 결정한다.
일 실시예에서, 중앙 처리 장치(150)는 복수의 산출 방식에 따라 복수의 차이 정보를 결정한 후, 복수의 차이 정보 중 데이터의 크기가 가장 작은 차이 정보를 최종의 차이 정보로 결정할 수 있다.
복수의 산출 방식 중 어느 하나의 방식은, 공통 파라미터(또는 제 2 내부 파라미터)로부터 제 2 내부 파라미터(또는 공통 파라미터)를 차감하여 획득한 잔차 파라미터를 차이 정보로서 획득하는 방식일 수 있다. 예를 들어, 도 13에 도시된 바와 같이, 공통 파라미터(1310)로부터 제 2 내부 파라미터(1320)를 뺀 결과에 해당하는 잔차 파라미터(1330)가 차이 정보로 획득될 수 있다. 이 경우, 잔차 파라미터(1330)가 공통 파라미터(1310)로부터 차감됨으로써 제 2 내부 파라미터(1320)가 복원될 수 있다.
다른 하나의 방식은, 제 2 내부 파라미터가 공통 파라미터에 포함될 때, 공통 파라미터에 속한 값들 중 제 2 내부 파라미터에도 속한 값을 선택(selection)하기 위한 선택 파라미터를 차이 정보로 획득하는 방식일 수 있다. 예를 들어, 도 14에 도시된 바와 같이, 공통 파라미터(1410)에 포함된 값들 중 1행에 해당하는 값들과 3행에 해당하는 값들이 제 2 내부 파라미터(1420)에 포함되어 있으므로, 공통 파라미터(1410) 중 1행과 3행을 선택할 수 있는 선택 파라미터(1430)를 차이 정보로 획득할 수 있다.
또 다른 하나의 방식은, 공통 파라미터에 변환 파라미터가 곱해진 결과 제 2 내부 파라미터가 도출될 수 있는 경우, 상기 변환 파라미터를 차이 정보로서 획득하는 방식일 수 있다. 예를 들어, 변환 파라미터를 T라 할 때, (공통 파라미터·T = 제 2 내부 파라미터)가 될 수 있다.
또 다른 하나의 방식은, 제 1 변환 파라미터가 공통 파라미터에 곱해진 결과에 제 2 변환 파라미터가 다시 곱해짐으로써 제 2 내부 파라미터가 도출될 수 있는 경우, 제 1 변환 파라미터 및 제 2 변환 파라미터를 차이 정보로서 획득하는 방식일 수 있다. 예를 들어, 제 1 변환 파라미터를 T1, 제 2 변환 파라미터를 T2라 할 때, (T1·공통 파라미터·T2 = 제 2 내부 파라미터)가 될 수 있다.
또 다른 하나의 방식은, 제 1 변환 파라미터를 공통 파라미터에 곱하고, 곱한 결과에 제 2 변환 파라미터를 곱한 후 잔차 파라미터를 더한 결과 제 2 내부 파라미터가 도출될 수 있는 경우, 상기 제 1 변환 파라미터, 제 2 변환 파라미터 및 잔차 파라미터를 차이 정보로서 획득하는 방식일 수 있다. 예를 들어, 제 1 변환 파라미터를 T1, 제 2 변환 파라미터를 T2, 잔차 파라미터를 D라 할 때, (T1·공통 파라미터·T2+D = 제 2 내부 파라미터)가 될 수 있다.
다시 도 12를 참조하면, S1220 단계에서, 중앙 처리 장치(150)는 차이 정보의 데이터 크기가 제 2 내부 파라미터의 데이터의 크기보다 작은지를 판단한다.
차이 정보의 데이터 크기가 제 2 내부 파라미터의 데이터 크기보다 작은 경우, S1230 단계에서, 중앙 처리 장치(150)는 차이 정보를 보조 기억 장치(110)에 저장하고, 제 2 내부 파라미터는 보조 기억 장치(110)에 저장하지 않는다. 차이 정보는 별도의 파일로 생성되어 보조 기억 장치(110)에 저장될 수 있다.
S1240 단계에서, 제 2 신경망의 실행이 필요한 경우, 중앙 처리 장치(150)는 공통 신경망, 공통 파라미터 및 차이 정보를 주 기억 장치(130)에 로딩하고, S1250 단계에서, 공통 파라미터에 차이 정보를 적용하여 제 2 내부 파라미터를 복원한다. 이에 의해, 공통 신경망은 제 2 내부 파라미터에 따라 기능할 수 있다.
중앙 처리 장치(150)는 제 2 신경망의 실행이 종료되면, 제 2 내부 파라미터를 주 기억 장치(130)에서 언로딩하고, 이후, 제 2 신경망이 다시 실행되는 경우, 공통 파라미터 및 차이 정보를 주 기억 장치(130)에 로딩한 후, 제 2 내부 파라미터를 다시 복원할 수 있다.
S1220 단계에서, 차이 정보의 데이터 크기가 제 2 내부 파라미터의 데이터 크기보다 작지 않은 경우, 즉, 차이 정보의 데이터 크기가 제 2 내부 파라미터의 데이터 크기보다 크거나 동일한 경우, S1260 단계에서, 중앙 처리 장치(150)는 차이 정보를 보조 기억 장치(110)에 저장하지 않고, 보조 기억 장치(110)에 제 2 내부 파라미터를 저장한다. 전술한 바와 같이, 제 2 신경망 파일 내에 제 2 신경망의 제 2 내부 파라미터가 저장되어 있는 경우, 중앙 처리 장치(150)는 제 2 신경망 파일은 보조 기억 장치(110)에 저장하지 않되, 제 2 신경망 파일에 저장된 제 2 내부 파라미터는 별도의 파일로서 보조 기억 장치(110)에 저장할 수도 있다. 제 2 내부 파라미터가 메타 파일이나 별도의 내부 파라미터 파일에 저장되어 있는 경우, 중앙 처리 장치(150)는 메타 파일 또는 별도의 내부 파라미터 파일을 보조 기억 장치(110)에 저장할 수 있다.
S1270 단계에서, 중앙 처리 장치(150)는 제 2 신경망의 실행이 필요한 경우, 공통 신경망 및 제 2 내부 파라미터를 주 기억 장치(130)에 로딩시켜 공통 신경망이 제 2 내부 파라미터에 따라 기능하게 한다.
한편, 스마트폰을 포함한 모바일 기기에 설치되는 응용프로그램은 비교적 짧은 주기로 업데이트되는 경우가 많다. 본 개시에 따르면, 응용프로그램에 포함된 신경망이 공통 신경망으로 추출될 수 있으므로, 이 경우 응용프로그램이 어떠한 방식으로 업데이트되는지에 대해 도 15 내지 도 17을 참조하여 설명한다.
도 15 및 도 16은 제 1 응용프로그램을 업데이트하는 방법을 설명하기 위한 순서도이고, 도 17은 제 1 응용프로그램의 업데이트 방법과 관련하여 공통 신경망(1710), 공통 파라미터(1730), 업데이트 파일에 기초하여 획득된 신경망(1750) 및 업데이트 파일에 기초하여 획득된 내부 파라미터(1770)를 나타내는 도면이다.
일 실시예에서, 중앙 처리 장치(150)는 업데이트 파일을 임시 폴더에 저장하고, 임시 폴더에 저장된 파일에 따라 공통 신경망(1710) 및 공통 파라미터(1730)를 업데이트하여 신경망(1750) 및 내부 파라미터(1770)를 획득하거나, 또는 임시 폴더에 저장된 신경망 파일로부터 신경망(1750) 및 내부 파라미터(1770)를 획득할 수도 있다. 일 실시예에서, 업데이트 파일은 제 1 응용프로그램을 어떻게 업데이트시켜야 하는지의 정보를 포함하는 파일, 예를 들어, 제 1 응용프로그램과 업데이트된 제 1 응용프로그램의 차이 데이터를 포함할 수 있는데, 이 경우, 중앙 처리 장치(150)는 업데이트 파일에 따라 공통 신경망(1710) 및 공통 파라미터(1730)를 업데이트시켜 신경망(1750) 및 내부 파라미터(1770)를 획득할 수 있다. 일 실시예에서, 업데이트 파일은 제 1 응용프로그램을 대체할 새로운 제 1 응용프로그램 파일을 포함할 수도 있는데 이 경우, 중앙 처리 장치(150)는 업데이트 파일 내 신경망 파일로부터 신경망(1750) 및 내부 파라미터(1770)를 획득할 수도 있다.
도 15 및 도 17을 참조하면, S1510 단계에서, 중앙 처리 장치(150)는 제 1 응용프로그램의 업데이트 파일을 획득한다. 중앙 처리 장치(150)는 어플리케이션 배포 서버로부터 관리 장치(100)로 전송된 업데이트 파일을 획득하거나, USB 등을 통해 관리 장치(100)로 전송된 업데이트 파일을 획득할 수 있다.
전술한 바와 같이, 제 1 응용프로그램의 제 1 신경망 및 제 1 내부 파라미터는 공통 신경망(1710) 및 공통 파라미터(1730)로서 보조 기억 장치(110)에 저장된 상태이다.
S1520 단계에서, 중앙 처리 장치(150)는 업데이트 파일에 기초하여 신경망(1750)을 획득한다.
S1530 단계에서, 중앙 처리 장치(150)는 획득한 신경망(1750)과 공통 신경망(1710)이 구조적으로 서로 대응하는지를 판단한다. 중앙 처리 장치(150)는 신경망(1750)과 공통 신경망(1710)에 포함된 레이어의 종류, 레이어간 연결 관계, 입출력 데이터의 크기 등에 기초하여 대응 여부를 판단할 수 있다. 두 신경망 간의 구조적 대응 여부를 판단하는 방법에 대해서는 전술하였으므로 상세한 설명은 생략한다.
신경망(1750)과 공통 신경망(1710)이 구조적으로 서로 대응하는 경우, S1540 단계에서, 중앙 처리 장치(150)는 신경망(1750)을 보조 기억 장치(110)에 저장하지 않는다. 제 1 응용프로그램을 구성하는 파일들 중 공통 신경망(1710)을 포함하는 신경망 파일 이외의 파일들은 업데이트 파일에 따라 업데이트될 수 있다. 그리고, S1550 단계에서, 제 1 신경망의 실행이 필요한 경우, 중앙 처리 장치(150)는 공통 신경망(1710)을 주 기억 장치(130)에 로딩한다.
일 실시예에서, 신경망(1750)의 일부 레이어만이 공통 신경망(1710)과 구조적으로 서로 대응하는 경우, 중앙 처리 장치는 신경망(1750)의 상기 일부 레이어에 해당하는 파일은 보조 기억 장치(110)에서 삭제하고, 나머지 레이어에 해당하는 파일은 개별 신경망으로서 보조 기억 장치(110)에 저장할 수 있다. 이후, 제 1 신경망의 실행이 필요한 경우, 중앙 처리 장치(150)는 공통 신경망(1710)과 개별 신경망을 주 기억 장치에 로딩할 수 있다.
신경망(1750)과 공통 신경망(1710)이 구조적으로 서로 대응하지 않는 경우, S1560 단계에서, 중앙 처리 장치(150)는 신경망(1750)을 제 1 응용 프로그램의 개별 신경망으로서 보조 기억 장치(110)에 저장한다.
S1570 단계에서, 제 1 신경망의 실행이 필요한 경우, 중앙 처리 장치(150)는 개별 신경망으로 저장된 신경망(1750)을 주 기억 장치(130)에 로딩한다.
공통 신경망(1710)과 신경망(1750)이 구조적으로 대응한 경우, 중앙 처리 장치(150)는 공통 파라미터(1730)와 업데이트 파일에 따라 획득된 파라미터(1770)의 동일 여부를 판단하는데 이에 대해서는 도 16을 참조하여 설명한다.
S1610 단계에서, 중앙 처리 장치(150)는 업데이트 파일에 기초하여 획득된 내부 파라미터(1770)와 공통 파라미터(1730)가 서로 동일한지를 판단한다.
S1620 단계에서, 내부 파라미터(1770)와 공통 파라미터(1730)가 서로 동일한 경우, 중앙 처리 장치(150)는 내부 파라미터(1770)를 보조 기억 장치(110)에 저장하지 않는다.
S1630 단계에서, 제 1 신경망의 실행이 필요한 경우, 중앙 처리 장치(150)는 공통 신경망(1710) 및 공통 파라미터(1730)를 주 기억 장치(130)에 로딩한다.
S1640 단계에서, 내부 파라미터(1770)와 공통 파라미터(1730)가 서로 상이한 경우, 중앙 처리 장치(150)는 내부 파라미터(1770)와 공통 파라미터(1730) 사이의 차이 정보를 보조 기억 장치(110)에 저장한다. 전술한 바와 같이, 중앙 처리 장치(150)는 여러 산출 방식에 따라 차이 정보를 획득한 후, 가장 작은 데이터 크기를 갖는 차이 정보와 내부 파라미터(1770)의 데이터 크기를 비교하여 차이 정보를 보조 기억 장치(110)에 저장할 지 여부를 결정할 수 있다. 만약, 차이 정보의 크기가 내부 파라미터(1770)의 크기보다 작지 않다면, 중앙 처리 장치(150)는 차이 정보 대신 내부 파라미터(1770)를 보조 기억 장치(110)에 저장할 수 있다. 내부 파라미터(1770)가 신경망(1750)을 포함하는 파일 내에 저장되어 있는 경우, 중앙 처리 장치(150)는 내부 파라미터(1770)를 포함하는 별도의 파일을 생성하여 보조 기억 장치(110)에 저장할 수 있다.차이 정보의 크기가 내부 파라미터(1770)의 크기보다 작지 않음을 이유로 내부 파라미터(1770)가 보조 기억 장치(110)에 저장된 경우, 중앙 처리 장치(150)는 제 1 신경망의 실행 필요시, 공통 신경망(1710)과 내부 파라미터(1770)를 주 기억 장치(130)에 로딩할 수 있다.
S1650 단계에서, 차이 정보가 보조 기억 장치(110)에 저장된 이후, 중앙 처리 장치(150)는 제 1 신경망의 실행 필요시, 공통 신경망(1710), 공통 파라미터(1730) 및 차이 정보를 주 기억 장치(130)에 로딩하고, S1660 단계에서, 공통 파라미터(1730)에 차이 정보를 적용하여 내부 파라미터(1770)를 복원한다. 이에 따라, 공통 신경망(1710)이 내부 파라미터(1770)에 따라 기능할 수 있다.
공통 신경망(1710)을 이용하는 제 2 응용프로그램의 업데이트 파일이 획득된 경우에도 도 15 및 도 16과 같이 제 2 응용프로그램의 업데이트가 수행될 수 있으나, 제 2 내부 파라미터와 공통 파라미터(1730) 사이의 원 차이 정보가 보조 기억 장치(110)에 기 저장되어 있는 경우가 문제된다.
먼저, 업데이트 파일 내에 제 2 응용프로그램의 새로운 제 2 내부 파라미터가 포함되어 있는 경우, 중앙 처리 장치(150)는 새로운 제 2 내부 파라미터와 공통 파라미터(1730)가 동일하지 않으면, 새로운 제 2 내부 파라미터와 공통 파라미터(1730) 사이의 신규 차이 정보를 결정한다. 그리고, 중앙 처리 장치(150)는 새로운 제 2 내부 파라미터와 신규 차이 정보의 크기 비교 결과에 따라 신규 차이 정보를 보조 기억 장치(110)에 저장할 수 있다. 제 2 내부 파라미터와 공통 파라미터(1730) 사이의 원 차이 정보는 보조 기억 장치(110)에서 삭제될 수 있다. 이후, 제 2 신경망의 실행이 필요한 경우, 중앙 처리 장치(150)는 공통 파라미터(1730)에 신규 차이 정보를 적용하여 새로운 제 2 내부 파라미터를 복원할 수 있다.
또한, 업데이트 파일 내에 원래의 제 2 내부 파라미터와 새로운 제 2 내부 파라미터 사이의 차이 데이터만이 포함되어 있는 경우, 먼저, 중앙 처리 장치는(150)는 공통 파라미터(1730)와 제 2 내부 파라미터 사이의 원 차이 정보를 공통 파라미터(1730)에 적용하여 원래의 제 2 내부 파라미터를 복원한다. 그리고, 업데이트 파일에 포함된 차이 데이터를 원래의 제 2 내부 파라미터에 적용하여 새로운 제 2 내부 파라미터를 획득한다. 중앙 처리 장치(150)는 새로운 제 2 내부 파라미터와 공통 파라미터(1730)가 동일하지 않으면, 새로운 제 2 내부 파라미터와 공통 파라미터(1730) 사이의 신규 차이 정보를 결정한다. 그리고, 중앙 처리 장치(150)는 새로운 제 2 내부 파라미터와 신규 차이 정보의 크기 비교 결과에 따라 신규 차이 정보를 보조 기억 장치(110)에 저장할 수 있다. 이후, 제 2 신경망의 실행이 필요한 경우, 중앙 처리 장치(150)는 공통 파라미터(1730)에 신규 차이 정보를 적용하여 새로운 제 2 내부 파라미터를 복원할 수 있다.
도 18은 다른 실시예에 따른 응용프로그램 관리 방법을 나타내는 순서도이다.
도 3은 제 1 응용프로그램과 제 2 응용프로그램이 관리 장치(100)에 설치된 이후 공통 신경망을 추출하는 실시예에 대해 도시하고 있으나, 도 18은 보조 기억 장치(110)에 공통 신경망이 미리 저장되어 있는 상태에서 제 3 신경망을 포함하는 제 3 응용프로그램이 관리 장치(100)에 설치된 경우의 실시예를 나타내고 있다.
S1810 단계에서, 중앙 처리 장치(150)는 공통 신경망과 제 3 신경망이 구조적으로 서로 대응하는지 여부를 판단한다.
중앙 처리 장치(150)는 공통 신경망과 제 3 신경망이 구조적으로 대응하는지 여부를, 신경망을 구성하는 레이어의 종류, 연결 관계 등에 기초하여 판단할 수 있다.
S1820 단계에서, 공통 신경망과 제 3 신경망이 구조적으로 서로 대응하는 경우, S1830 단계에서, 중앙 처리 장치(150)는 제 3 응용프로그램을 구성하는 파일들 중 제 3 신경망 이외의 파일들을 보조 기억 장치(110)에 저장할 수 있다. 중앙 처리 장치(150)는 제 3 응용프로그램을 구성하는 파일들 중 제 3 신경망 파일은 보조 기억 장치(110)에 저장하지 않을 수 있다.
S1840 단계에서, 중앙 처리 장치(150)는 제 3 신경망의 실행이 필요한 경우, 공통 신경망이 주 기억 장치(130)에 로딩되어 있지 않으면 상기 공통 신경망을 주 기억 장치(130)에 로딩시킬 수 있다.
S1820 단계에서, 공통 신경망과 제 3 신경망이 구조적으로 서로 대응하지 않는 경우, S1850 단계에서, 중앙 처리 장치(150)는 제 3 응용프로그램을 구성하는 파일들을 보조 기억 장치(110)에 저장한다. 공통 신경망과 제 3 신경망이 구조적으로 서로 대응하지 않는 경우, 제 3 응용프로그램의 실행을 위해 공통 신경망을 이용할 수 없으므로, 제 3 응용프로그램을 구성하는 모든 파일들이 보조 기억 장치(110)에 저장되는 것이다.
일 실시예에서, 공통 신경망과 제 3 신경망이 구조적으로 서로 대응하지 않는 경우, 제 3 응용프로그램을 구성하는 파일들을 보조 기억 장치(110)에 저장하기 전에 중앙 처리 장치(150)는 제 3 신경망과 이미 저장된 응용프로그램(예를 들어, 제 1 응용 프로그램 및 제 2 응용프로그램)의 신경망의 구조를 비교하여 새로운 공통 신경망의 추출이 가능할지를 판단할 수도 있다. 제 3 신경망의 구조와 이미 저장된 응용프로그램의 신경망의 구조를 비교하여 새로운 공통 신경망을 추출할지 여부를 결정하는 방법은 앞서 도 3과 관련하여 설명한 것과 동일하므로 상세한 설명은 생략한다. 제 3 신경망과 이미 저장된 응용프로그램의 신경망이 구조적으로 대응하는 경우, 이미 저장된 응용프로그램의 신경망은 공통 신경망으로서 보조 기억 장치(110)에 저장되고, 제 3 응용프로그램을 구성하는 파일들 중 제 3 신경망 이외의 파일들이 보조 기억 장치(110)에 저장될 수 있다.
제 3 응용프로그램을 구성하는 모든 파일들이 보조 기억 장치(110)에 저장된 후, S1860 단계에서, 중앙 처리 장치(150)는 제 3 신경망의 실행이 필요한 경우, 개별 신경망으로 저장된 제 3 신경망을 주 기억 장치(130)에 로딩할 수 있다.
S1820 단계에서, 공통 신경망과 제 3 신경망이 구조적으로 서로 대응하는 것으로 판단된 경우, 중앙 처리 장치(150)는 공통 파라미터와 제 3 신경망의 제 3 내부 파라미터가 동일한지를 판단하고, 전술한 것과 같이 제 3 내부 파라미터를 보조 기억 장치(110)에 저장할지, 또는, 공통 파라미터와 제 3 내부 파라미터 사이의 차이 정보를 보조 기억 장치(110)에 저장할지를 결정할 수 있다. 이후, 제 3 신경망의 실행 필요시, 중앙 처리 장치(150)는 공통 신경망, 공통 파라미터 및 차이 정보를 주 기억 장치(130)에 로딩하거나, 공통 신경망 및 제 3 내부 파라미터를 주 기억 장치(130)에 로딩할 수 있다.
한편, 상술한 본 개시의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 작성된 프로그램은 매체에 저장될 수 있다.
매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.
이상, 본 개시의 기술적 사상을 바람직한 실시예를 들어 상세하게 설명하였으나, 본 개시의 기술적 사상은 상기 실시예들에 한정되지 않고, 본 개시의 기술적 사상의 범위 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러 가지 변형 및 변경이 가능하다.
100: 응용프로그램 관리 장치
110: 보조 기억 장치
130: 주 기억 장치
150: 중앙 처리 장치

Claims (20)

  1. 보조 기억 장치, 주 기억 장치 및 중앙 처리 장치를 포함하는 응용프로그램 관리 장치에 있어서,
    상기 중앙 처리 장치는,
    제 1 응용프로그램에 포함된 제 1 신경망과 제 2 응용프로그램에 포함된 제 2 신경망의 구조적 대응 여부를 판단하고,
    상기 제 1 신경망과 상기 제 2 신경망이 구조적으로 서로 대응하는 경우, 상기 제 1 신경망을 공통 신경망으로서 상기 보조 기억 장치에 저장하고,
    상기 제 1 응용프로그램 또는 상기 제 2 응용프로그램의 실행에 따라 상기 제 1 신경망 또는 상기 제 2 신경망의 실행이 필요한 경우, 상기 공통 신경망을 상기 주 기억 장치에 로딩하는 것을 특징으로 하는 응용프로그램 관리 장치.
  2. 제1항에 있어서,
    상기 중앙 처리 장치는,
    상기 제 1 응용프로그램 및 상기 제 2 응용프로그램에 포함된 메타 파일로부터 상기 제 1 신경망과 상기 제 2 신경망의 구조 정보를 획득하고,
    상기 제 1 신경망의 구조 정보와 상기 제 2 신경망의 구조 정보를 비교하여, 상기 제 1 신경망과 상기 제 2 신경망의 구조적 대응 여부를 판단하는 것을 특징으로 하는 응용프로그램 관리 장치.
  3. 제1항에 있어서,
    상기 중앙 처리 장치는,
    상기 제 1 신경망과 상기 제 2 신경망에 포함된 레이어의 종류 및 레이어간 연결 관계가 서로 동일하면, 상기 제 1 신경망과 상기 제 2 신경망이 구조적으로 서로 대응하는 것으로 판단하는 것을 특징으로 하는 응용프로그램 관리 장치.
  4. 제3항에 있어서,
    상기 중앙 처리 장치는,
    상기 제 1 신경망과 상기 제 2 신경망에 포함된 레이어의 입력 데이터 및 출력 데이터의 크기가 서로 동일한지를 더 고려하여, 상기 제 1 신경망과 상기 제 2 신경망의 구조적 대응 여부를 판단하는 것을 특징으로 하는 응용프로그램 관리 장치.
  5. 제3항에 있어서,
    상기 중앙 처리 장치는,
    상기 제 1 신경망과 상기 제 2 신경망이 FCL(fully connected layer)을 포함하는 경우, 각 FCL에 포함된 레이어별 노드들의 개수가 서로 동일한지를 더 고려하여, 상기 제 1 신경망과 상기 제 2 신경망의 구조적 대응 여부를 판단하는 것을 특징으로 하는 응용프로그램 관리 장치.
  6. 제3항에 있어서,
    상기 중앙 처리 장치는,
    상기 제 1 신경망과 상기 제 2 신경망이 컨볼루션 레이어를 포함하는 경우, 각 컨볼루션 레이어의 필터 커널의 개수, 크기 및 스트라이드(stride)가 서로 동일한지를 더 고려하여, 상기 제 1 신경망과 상기 제 2 신경망의 구조적 대응 여부를 판단하는 것을 특징으로 하는 응용프로그램 관리 장치.
  7. 제3항에 있어서,
    상기 중앙 처리 장치는,
    상기 제 1 신경망과 상기 제 2 신경망이 풀링 레이어를 포함하는 경우, 각 풀링 레이어의 필터 커널의 크기 및 스트라이드가 서로 동일한지를 더 고려하여, 상기 제 1 신경망과 상기 제 2 신경망의 구조적 대응 여부를 판단하는 것을 특징으로 하는 응용프로그램 관리 장치.
  8. 제1항에 있어서,
    상기 중앙 처리 장치는,
    상기 제 1 신경망의 일부 레이어가 상기 제 2 신경망과 구조적으로 대응하는 경우, 상기 제 1 신경망의 일부 레이어를 상기 공통 신경망으로서 상기 보조 기억 장치에 저장하고, 상기 제 1 신경망의 나머지 레이어를 상기 제 1 응용프로그램의 개별 신경망으로서 상기 보조 기억 장치에 저장하는 것을 특징으로 하는 응용프로그램 관리 장치.
  9. 제1항에 있어서,
    상기 중앙 처리 장치는,
    상기 제 1 신경망에서 입력 데이터의 처리를 위해 이용되는 제 1 내부 파라미터를 공통 파라미터로서 상기 보조 기억 장치에 저장하고,
    상기 공통 파라미터와, 상기 제 2 신경망에서 입력 데이터의 처리를 위해 이용되는 제 2 내부 파라미터의 동일 여부를 판단하고,
    상기 공통 파라미터와 상기 제 2 내부 파라미터가 서로 동일하지 않은 경우, 공통 파라미터와 상기 제 2 내부 파라미터 사이의 차이 정보를 결정하고,
    상기 결정된 차이 정보를 상기 보조 기억 장치에 저장하는 것을 특징으로 하는 응용프로그램 관리 장치.
  10. 제9항에 있어서,
    상기 중앙 처리 장치는,
    상기 제 2 내부 파라미터의 복원을 위해, 상기 공통 파라미터에 합해지는 잔차 파라미터, 상기 공통 파라미터에 곱해지는 변환 파라미터 및 상기 공통 파라미터의 일부를 선택하기 위한 선택 파라미터 중 적어도 하나를 상기 차이 정보로 결정하는 것을 특징으로 하는 응용프로그램 관리 장치.
  11. 제9항에 있어서,
    상기 중앙 처리 장치는,
    복수의 산출 방식에 따라 상기 공통 파라미터와 상기 제 2 내부 파라미터 사이의 복수의 차이 정보를 결정하고,
    상기 복수의 차이 정보 중 크기가 가장 작은 차이 정보를 상기 보조 기억 장치에 저장하는 것을 특징으로 하는 응용프로그램 관리 장치.
  12. 제1항에 있어서,
    상기 중앙 처리 장치는,
    상기 제 1 신경망에서 입력 데이터의 처리를 위해 이용되는 제 1 내부 파라미터를 공통 파라미터로서 상기 보조 기억 장치에 저장하고,
    상기 공통 파라미터와, 상기 제 2 신경망에서 입력 데이터의 처리를 위해 이용되는 제 2 내부 파라미터의 동일 여부를 판단하고,
    상기 공통 파라미터와 상기 제 2 내부 파라미터가 서로 동일하지 않은 경우, 공통 파라미터와 상기 제 2 내부 파라미터 사이의 차이 정보를 결정하고,
    상기 차이 정보의 크기와 상기 제 2 내부 파라미터의 크기의 비교 결과에 기초하여, 상기 보조 기억 장치에 상기 차이 정보를 저장할지 여부를 결정하는 것을 특징으로 하는 응용프로그램 관리 장치.
  13. 제8항에 있어서,
    상기 중앙 처리 장치는,
    상기 제 1 응용프로그램의 실행에 따라 상기 제 1 신경망의 실행이 필요한 경우, 상기 공통 신경망 및 상기 개별 신경망을 상기 주 기억 장치에 로딩하되,
    상기 공통 신경망 및 상기 개별 신경망 중 어느 하나의 신경망의 출력 데이터는 다른 하나의 신경망에 입력되는 것을 특징으로 하는 응용프로그램 관리 장치.
  14. 제9항에 있어서,
    상기 중앙 처리 장치는,
    상기 제 2 신경망의 실행이 필요한 경우, 상기 차이 정보에 기초하여 상기 공통 파라미터로부터 상기 제 2 내부 파라미터를 복원하고,
    상기 복원된 제 2 내부 파라미터를 상기 주 기억 장치에 로딩하는 것을 특징으로 하는 응용프로그램 관리 장치.
  15. 제1항에 있어서,
    상기 중앙 처리 장치는,
    상기 제 1 응용프로그램의 상기 제 1 신경망과 관련된 업데이트 데이터를 획득하고,
    상기 업데이트 데이터에 기초하여 신경망을 획득하고,
    상기 획득한 신경망과 상기 공통 신경망의 구조적 대응 여부를 판단하고,
    상기 획득한 신경망과 상기 공통 신경망이 구조적으로 서로 대응하지 않으면, 상기 획득한 신경망을 상기 제 1 응용프로그램의 개별 신경망으로서 상기 보조 기억 장치에 저장하는 것을 특징으로 하는 응용프로그램 관리 장치.
  16. 제15항에 있어서,
    상기 중앙 처리 장치는,
    상기 획득한 신경망이 상기 공통 신경망과 구조적으로 대응하는 경우, 공통 파라미터와 상기 업데이트 데이터에 기초하여 획득된 내부 파라미터가 동일하지 않으면, 이들 사이의 차이 정보를 상기 보조 기억 장치에 저장하는 것을 특징으로 하는 응용프로그램 관리 장치.
  17. 제15항에 있어서,
    상기 중앙 처리 장치는
    상기 획득한 신경망과 상기 공통 신경망이 구조적으로 대응하는 경우, 상기 획득한 신경망을 상기 보조 기억 장치에 저장하지 않는 것을 특징으로 하는 응용프로그램 관리 장치.
  18. 보조 기억 장치, 주 기억 장치 및 중앙 처리 장치를 포함하는 응용프로그램 관리 장치에 있어서,
    상기 중앙 처리 장치는,
    제 1 응용프로그램에 포함된 제 1 신경망과 상기 보조 기억 장치에 저장된 공통 신경망의 구조적 대응 여부를 판단하고,
    상기 제 1 신경망과 상기 공통 신경망이 구조적으로 대응하는 경우, 제 1 응용프로그램에 포함된 파일들 중 상기 제 1 신경망 이외의 파일들을 상기 보조 기억 장치에 저장하고,
    상기 제 1 응용프로그램이 실행됨에 따라 상기 제 1 신경망의 실행이 필요한 경우, 상기 제 1 신경망에 대응하는 상기 공통 신경망이 상기 주 기억 장치에 로딩되어 있지 않으면 상기 공통 신경망을 상기 주 기억 장치에 로딩하는 것을 특징으로 하는 응용프로그램 관리 장치.
  19. 제 1 응용프로그램에 포함된 제 1 신경망과 제 2 응용프로그램에 포함된 제 2 신경망의 구조적 대응 여부를 판단하는 단계;
    상기 제 1 신경망과 상기 제 2 신경망이 구조적으로 서로 대응하는 경우, 상기 제 1 신경망을 공통 신경망으로서 상기 보조 기억 장치에 저장하는 단계; 및
    상기 제 1 응용 프로그램 또는 상기 제 2 응용프로그램이 실행됨에 따라 상기 제 1 신경망 또는 상기 제 2 신경망의 실행이 필요한 경우, 상기 공통 신경망을 주 기억 장치에 로딩하는 단계를 포함하는 것을 특징으로 하는 응용프로그램 관리 방법.
  20. 하드웨어와 결합하여 제19항의 응용프로그램 관리 방법을 실행하기 위하여 매체에 저장된 프로그램.
KR1020190000861A 2019-01-03 2019-01-03 응용프로그램의 관리 장치 및 방법 KR20200084695A (ko)

Priority Applications (7)

Application Number Priority Date Filing Date Title
KR1020190000861A KR20200084695A (ko) 2019-01-03 2019-01-03 응용프로그램의 관리 장치 및 방법
US16/678,548 US10884760B2 (en) 2019-01-03 2019-11-08 Apparatus and method for managing application program
CN201980087539.6A CN113272791A (zh) 2019-01-03 2019-11-19 用于管理应用程序的装置和方法
PCT/KR2019/015805 WO2020141720A1 (en) 2019-01-03 2019-11-19 Apparatus and method for managing application program
EP19907925.2A EP3821341A4 (en) 2019-01-03 2019-11-19 APPLICATION PROGRAM MANAGEMENT APPARATUS AND METHOD
US16/951,725 US11880692B2 (en) 2019-01-03 2020-11-18 Apparatus and method for managing application program
US18/533,640 US20240103883A1 (en) 2019-01-03 2023-12-08 Apparatus and method for managing application program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190000861A KR20200084695A (ko) 2019-01-03 2019-01-03 응용프로그램의 관리 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20200084695A true KR20200084695A (ko) 2020-07-13

Family

ID=71405112

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190000861A KR20200084695A (ko) 2019-01-03 2019-01-03 응용프로그램의 관리 장치 및 방법

Country Status (5)

Country Link
US (3) US10884760B2 (ko)
EP (1) EP3821341A4 (ko)
KR (1) KR20200084695A (ko)
CN (1) CN113272791A (ko)
WO (1) WO2020141720A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210397940A1 (en) * 2020-06-10 2021-12-23 Nvidia Corporation Behavior modeling using client-hosted neural networks
CN114077437A (zh) * 2020-08-20 2022-02-22 第四范式(北京)技术有限公司 一种人工智能应用的集成管理方法、装置及系统
KR20220118047A (ko) * 2021-02-18 2022-08-25 삼성전자주식회사 어플리케이션의 모델 파일을 초기화하는 프로세서 및 이를 포함하는 전자 장치

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5222196A (en) * 1990-02-20 1993-06-22 International Business Machines Corporation Neural network shell for application programs
US5375241A (en) 1992-12-21 1994-12-20 Microsoft Corporation Method and system for dynamic-link library
DE19535519C2 (de) 1995-09-25 1999-03-04 Ibm Verfahren zur Reduzierung des Umfanges von Computerprogrammen
US8307016B2 (en) 2008-02-25 2012-11-06 Microsoft Corporation Accessing different application data via a common data structure
KR101377601B1 (ko) 2012-09-20 2014-03-25 주식회사 인지소프트 모바일 카메라를 이용한 자연 영상 다국어 문자 인식과 번역 시스템 및 방법
CN104133667B (zh) * 2013-11-29 2017-08-01 腾讯科技(成都)有限公司 实现人工智能行为的方法、装置及人工智能编辑器
US9443192B1 (en) * 2015-08-30 2016-09-13 Jasmin Cosic Universal artificial intelligence engine for autonomous computing devices and software applications
US20170140273A1 (en) * 2015-11-18 2017-05-18 Video Inform Ltd System and method for automatic selection of deep learning architecture
EP3445250B1 (en) * 2016-04-21 2021-09-15 The University of British Columbia Echocardiographic image analysis
US20170330069A1 (en) * 2016-05-11 2017-11-16 Kneron Inc. Multi-layer artificial neural network and controlling method thereof
JP6750854B2 (ja) * 2016-05-25 2020-09-02 キヤノン株式会社 情報処理装置および情報処理方法
US11907760B2 (en) * 2016-09-23 2024-02-20 Apple Inc. Systems and methods of memory allocation for neural networks
US20180157972A1 (en) 2016-12-02 2018-06-07 Apple Inc. Partially shared neural networks for multiple tasks
US10546231B2 (en) * 2017-01-23 2020-01-28 Fotonation Limited Method for synthesizing a neural network
US11023803B2 (en) * 2017-04-10 2021-06-01 Intel Corporation Abstraction library to enable scalable distributed machine learning
EP3401846B1 (en) * 2017-05-09 2023-02-01 Nokia Technologies Oy Method and device for analyzing sensor data
US20190012592A1 (en) * 2017-07-07 2019-01-10 Pointr Data Inc. Secure federated neural networks
US11741354B2 (en) * 2017-08-25 2023-08-29 Ford Global Technologies, Llc Shared processing with deep neural networks
US11153156B2 (en) * 2017-11-03 2021-10-19 Vignet Incorporated Achieving personalized outcomes with digital therapeutic applications
US20190180183A1 (en) * 2017-12-12 2019-06-13 Amazon Technologies, Inc. On-chip computational network
WO2019118299A1 (en) * 2017-12-13 2019-06-20 Sentient Technologies (Barbados) Limited Evolving recurrent networks using genetic programming
US11429855B2 (en) * 2018-02-06 2022-08-30 Nec Corporation Acceleration of neural networks using depth-first processing
US10235625B1 (en) * 2018-02-09 2019-03-19 Capital One Services, Llc Automatically scaling neural networks based on load
US10836379B2 (en) * 2018-03-23 2020-11-17 Sf Motors, Inc. Multi-network-based path generation for vehicle parking
US20190294927A1 (en) * 2018-06-16 2019-09-26 Moshe Guttmann Selective update of inference models
US11593634B2 (en) * 2018-06-19 2023-02-28 Adobe Inc. Asynchronously training machine learning models across client devices for adaptive intelligence
US11914860B2 (en) * 2018-08-20 2024-02-27 Macronix International Co., Ltd. Data storage for artificial intelligence-based applications

Also Published As

Publication number Publication date
US20210073002A1 (en) 2021-03-11
US11880692B2 (en) 2024-01-23
US10884760B2 (en) 2021-01-05
US20240103883A1 (en) 2024-03-28
US20200218543A1 (en) 2020-07-09
WO2020141720A1 (en) 2020-07-09
CN113272791A (zh) 2021-08-17
EP3821341A1 (en) 2021-05-19
EP3821341A4 (en) 2022-01-05

Similar Documents

Publication Publication Date Title
US10909455B2 (en) Information processing apparatus using multi-layer neural network and method therefor
US20240103883A1 (en) Apparatus and method for managing application program
CN110728317A (zh) 决策树模型的训练方法、系统、存储介质及预测方法
WO2022166115A1 (en) Recommendation system with adaptive thresholds for neighborhood selection
CN114549913B (zh) 一种语义分割方法、装置、计算机设备和存储介质
US20190065899A1 (en) Distance Metric Learning Using Proxies
CN111104954A (zh) 一种对象分类的方法与装置
KR102305575B1 (ko) 이미지 간 유사도를 이용한 유사 영역 강조 방법 및 시스템
CN114299304B (zh) 一种图像处理方法及相关设备
CN114792387A (zh) 图像恢复方法和设备
CN113626610A (zh) 知识图谱嵌入方法、装置、计算机设备和存储介质
He et al. Scalable incomplete multi-view clustering with adaptive data completion
CN114638823B (zh) 基于注意力机制序列模型的全切片图像分类方法及装置
Cuevas et al. Otsu and Kapur segmentation based on harmony search optimization
CN115880556A (zh) 一种多模态数据融合处理方法、装置、设备及存储介质
CN113505861B (zh) 基于元学习和记忆网络的图像分类方法及系统
CN113870965A (zh) 基于健康大数据档案的数据共享方法及系统
CN112668659A (zh) 模型训练方法、平台和电子设备
US20240012858A1 (en) Metadata propagation method for graph structure data
US11928182B1 (en) Artificial intelligence system supporting semi-supervised learning with iterative stacking
CN116227585B (zh) 集群任务的并行执行方法、装置、计算机设备和存储介质
Kirti et al. Context-sensitive thresholding technique using ABC for Aerial images
US20240104904A1 (en) Fault image generation method and apparatus
US20230176762A1 (en) Object storage system, migration control device, and migration control method
US20220318634A1 (en) Method and apparatus for retraining compressed model using variance equalization

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal