KR20190064862A - 서버와의 연계를 통해 기계학습의 효율성을 높이는 클라이언트 단말 및 이를 포함한 기계학습 시스템 - Google Patents

서버와의 연계를 통해 기계학습의 효율성을 높이는 클라이언트 단말 및 이를 포함한 기계학습 시스템 Download PDF

Info

Publication number
KR20190064862A
KR20190064862A KR1020170164137A KR20170164137A KR20190064862A KR 20190064862 A KR20190064862 A KR 20190064862A KR 1020170164137 A KR1020170164137 A KR 1020170164137A KR 20170164137 A KR20170164137 A KR 20170164137A KR 20190064862 A KR20190064862 A KR 20190064862A
Authority
KR
South Korea
Prior art keywords
server
machine learning
client terminal
layer
data
Prior art date
Application number
KR1020170164137A
Other languages
English (en)
Other versions
KR102093899B1 (ko
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 KR1020170164137A priority Critical patent/KR102093899B1/ko
Publication of KR20190064862A publication Critical patent/KR20190064862A/ko
Application granted granted Critical
Publication of KR102093899B1 publication Critical patent/KR102093899B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/7715Feature extraction, e.g. by transforming the feature space, e.g. multi-dimensional scaling [MDS]; Mappings, e.g. subspace methods

Landscapes

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

Abstract

일 실시 예에 따른 클라이언트 단말은, 데이터 및 기계학습 명령어가 저장되는 메모리와, 기계학습 명령어를 이용하여 입력 데이터에 대해 기계학습을 수행하고 수행에 따른 중간 데이터를 생성하는 프로세서와, 중간 데이터를 서버에 전송하고, 서버에서 연이어 수행되는 기계학습을 통해 생성된 최종 데이터를 서버로부터 수신하는 통신부를 포함한다.

Description

서버와의 연계를 통해 기계학습의 효율성을 높이는 클라이언트 단말 및 이를 포함한 기계학습 시스템 {Client terminal that improves the efficiency of machine learning through cooperation with a server and a machine learning system including the same}
본 발명은 데이터 처리기술에 관한 것으로, 보다 상세하게는 기계학습 기술에 관한 것이다.
기계학습(machine learning) 방식은 인공지능의 한 분야로, 음성과 영상 등에서 사용되고 있으며, 특히 이미지 분류 및 대조, 비교분석 등에 많이 사용되고 있다. 대상 데이터가 이미지(image)일 경우 처리 방식은 이미지 라이브러리 등을 확보하고 이를 카테고리화 한 후 콘볼루션 신경망(Convolutional Neural Network: CNN, 이하, 'CNN'이라 칭함)과 같은 인공신경망으로 특징을 추출하고 이를 학습시킴으로써 정확도를 높여가는 방식을 사용한다. 이때, 성능(performance)을 높이기 위해 수많은 계층(layer)을 순차적으로 연결하여 빠르게 처리해야 하는 관계로, 쿠다(Compute Unified Device Architecture: CUDA, 이하, 'CUDA'라 칭함) 방식 등과 같이 그래픽스 처리 장치(Graphics Processing Unit: GPU, 이하 'GPU'라 칭함)가 장착된 그래픽 카드를 사용해야 하는 방식을 사용하고 있다. 그러나 GPU 방식을 사용할 수 없는 스마트 기기와 같은 클라이언트 단말을 통해서는 실시간에 가까운 인지 처리를 하기 어렵다.
일 실시 예에 따라, 서버와의 연계를 통해 기계학습의 효율성을 높이는 클라이언트 단말 및 이를 포함한 기계학습 시스템을 제안한다.
일 실시 예에 따른 클라이언트 단말은, 데이터 및 기계학습 명령어가 저장되는 메모리와, 기계학습 명령어를 이용하여 입력 데이터에 대해 기계학습을 수행하고 수행에 따른 중간 데이터를 생성하는 프로세서와, 중간 데이터를 서버에 전송하고, 서버에서 연이어 수행되는 기계학습을 통해 생성된 최종 데이터를 서버로부터 수신하는 통신부를 포함한다.
프로세서는 신경망을 구성하는 전체 계층에서 첫 소정의 계층만을 처리하고, 나머지 계층들은 서버에서 처리하도록 할 수 있다. 첫 소정의 계층 수는 클라이언트 단말의 단말 능력에 따라 결정될 수 있다. 또는 첫 소정의 계층 수는 클라이언트 단말과 서버 간의 네트워크 환경에 따라 결정될 수 있다.
통신부는 기계학습을 거쳐 그 크기가 줄어든 중간 데이터를 서버에 전송할 수 있다.
프로세서는 입력 데이터를 대상으로 콘볼루션 신경망을 구성하는 n(n은 정수) 개의 특징 추출 계층들에서 첫 번째 특징 추출 계층부터 m(1≤m<n인 정수)번째 계층까지를 차례대로 거치며 특징정보를 반복적으로 추출하는 m개의 특징 추출부를 포함하며, 통신부는 m 번째 특징 추출 계층에서 추출된 특징정보를 서버에 전송하고, 서버가 마지막 n번째 특징 추출 계층까지를 차례대로 거치며 특징정보를 반복적으로 추출하고 완전 연결 계층을 거쳐 입력 데이터로부터 사물을 분류하면, 서버로부터 분류 결과를 수신할 수 있다.
각 특징 추출부는, 입력 유닛으로부터 콘볼루션을 통해 특징정보를 추출하여 콘볼루션 계층 유닛을 생성하는 적어도 하나의 콘볼루션 필터와, 각 콘볼루션 계층 유닛을 서브 샘플링함에 따라 그 크기를 줄여 풀링 계층 유닛을 생성하는 적어도 하나의 서브 샘플링부를 포함할 수 있다.
클라이언트 단말 내 각 특징 추출부를 구성하는 콘볼루션 필터는 서로 동일하고, 클라이언트 단말의 콘볼루션 필터는 서버에서의 콘볼루션 필터와 동일할 수 있다.
통신부는 서버에 단말 정보를 전송하고, 서버가 단말 정보를 이용하여 클라이언트 단말과 서버 간의 기계학습 처리 비율을 결정하면, 서버로부터 결정된 기계학습 처리 비율을 수신하며, 기계학습 처리 비율은 클라이언트 단말에서 처리할 수 있는 계층의 수 또는 처리할 수 있는 시간정보를 포함하며, 프로세서는 수신된 기계학습 처리 비율에 맞게 기계학습을 수행할 수 있다. 클라이언트 단말과 서버 간의 기계학습 처리 비율은 클라이언트 단말의 기계학습 처리의 동작 결과를 반영하여 조정될 수 있다.
다른 실시 예에 따른 기계학습 시스템은, 입력 데이터에 대해 기계학습을 수행하여 수행에 따른 중간 데이터를 생성하고 이를 서버에 전송하는 클라이언트 단말과, 클라이언트 단말로부터 수신된 중간 데이터를 가지고 이어서 기계학습을 수행하며 수행에 따른 최종 데이터를 클라이언트 단말에 전송하는 서버를 포함한다.
일 실시 예에 따르면, 기계학습의 일정 부분은 클라이언트 단말에서 처리하되, 나머지는 클라이언트 단말과 네트워크 연결된 서버에서 처리하도록 하고 최종 결과를 서버로부터 수신함에 따라, 빠르고 효율적인 기계학습이 가능하다. 이때, 클라이언트 단말은 기계학습 시에 크기가 작아진 중간 데이터를 서버에 전송함에 따라 필요한 데이터 대역폭도 줄고 이후 프로세스를 서버에서 신속하게 처리하기 때문에 정확도와 효율성이 좋다. 특히, 이런 형태의 분산 기계학습 방식은 네트워크 지연시간이 적은 5G 환경 등에서는 매우 유용한 방안이 될 것이다.
나아가, 클라이언트 단말과 서버가 동일한 특성을 사용함에 따라, 클라이언트 단말에 이어서 서버에서 기계학습을 수행할 때 새로 처음부터 다시 시작해야 하는 문제를 방지할 수 있다.
도 1은 본 발명의 이해를 돕기 위한 콘볼루션 신경망(CNN)의 구조도,
도 2는 본 발명의 일 실시 예에 따른 콘볼루션 신경망(CNN)에서의 기계학습 프로세스를 실제 처리하는 예를 도시한 신경망 구조도,
도 3은 본 발명의 일 실시 예에 따른 기계학습 시스템의 구성도,
도 4는 본 발명의 일 실시 예에 따른 도 3의 클라이언트 단말의 세부 구성도,
도 5는 본 발명의 일 실시 예에 따른 콘볼루션 신경망에서의 분산 기계학습 동작에 따른 클라이언트 단말과 서버의 세부 구성도,
도 6은 본 발명의 일 실시 예에 따른 클라이언트 단말과 서버의 분산 기계학습의 실시 예를 보여주는 신경망 구조도,
도 7은 본 발명의 일 실시 예에 따른 클라이언트 단말과 서버 간의 분산 처리 프로세스를 도시한 흐름도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 실시 예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이며, 후술되는 용어들은 본 발명의 실시 예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램명령어들(실행 엔진)에 의해 수행될 수도 있으며, 이들 컴퓨터 프로그램 명령어들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 명령어들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다.
이들 컴퓨터 프로그램 명령어들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 명령어들은 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능을 수행하는 명령어 수단을 내포하는 제조 품목을 생산하는 것도 가능하다.
그리고 컴퓨터 프로그램 명령어들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 명령어들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명되는 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능들을 실행하기 위한 하나 이상의 실행 가능한 명령어들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있으며, 몇 가지 대체 실시 예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하며, 또한 그 블록들 또는 단계들이 필요에 따라 해당하는 기능의 역순으로 수행되는 것도 가능하다.
본 발명에 의해 학습 되는 신경망은 다양한 복잡한 계산 업무에 사용될 수 있다. 예를 들면, 신경망은 이미지 데이터가 주어졌을 때 사물 인식에 사용될 수 있다. 사물 인식은 안면 인식, 손 글씨 분석, 의료 이미지 분석, 그리고 이미지에 포함된 물체나 특징의 분석에 요구되는 일이나 그와 유사한 일들을 포함한다. 신경망은 환경 감시, 제조 및 생산 제어, 의료 진단 보조, 그리고 그와 유사한 다양한 절차에 사용될 수 있다. 신경망은 음성 인식, 언어 번역, 음성 데이터가 주어졌을 때 언어 작업들을 수행할 수 있다.
이하, 본 발명의 이해를 돕기 위해 여기에 게시되는 용어들에 대한 의미를 정의한다.
여기서 언급되는 용어 “신경망”은 일반적으로 적응적 특징을 갖는 통계적 학습 알고리즘을 수행하는, 기계 학습에 유용한 소프트웨어를 의미한다. 신경망은 생체의 신경망을 모사하여 서로 상호 연결되어 네트워크를 형성하는“뉴런”, “처리 요소”, “유닛” 또는 다른 유사한 용어들로 알려진 복수의 인공적 노드들을 포함한다. 일반적으로, 신경망은 적응적 가중치(학습 알고리즘에 의해서 조정되는 숫자 파라미터)의 셋들을 포함하고, 그것들의 입력에 대해 근사적 비선형 함수 기능을 갖는다. 적응적 가중치는 훈련이나 예측 기간동안 활성화되는 뉴런들 간의 연결 강도를 의미한다. 일반적으로, 신경망은 비선형, 분산, 병렬, 그리고 지역 처리 및 적응 원칙에 따라 동작한다.
인공신경망 중 하나로 콘볼루션 신경망(CNN)이 있다. 일반적으로, 콘볼루션은 두 개의 함수(f, g)에 대한 수학 연산으로, 원래 함수의 변형된 버전의 제3 함수를 생성한다. 제3 함수는 두 함수 중 어느 하나의 원래 함수가 변형되는 양의 함수로서, 두 함수들의 영역 중첩을 포함한다.
일반적으로 콘볼루션 신경망(CNN)은 각각의 뉴런들이 타일 형태로 배치되고, 가시 필드에서의 중첩 영역에 응답하는 형태의 신경망 타입을 의미한다. 콘볼루션 신경망(CNN)은 입력 계층과 중간 계층 및 출력 계층을 포함한다. 입력 계층은 입력 데이터를 입력받는 계층이고, 출력 계층은 입력 데이터에 대한 최종 분류 결과를 출력하는 계층이다. 중간 계층은 콘볼루션 계층(convolution layer), 풀링 계층(pooling layer) 및 상층의 완전 연결 계층(fully connected layer), 3종류의 계층으로 표현될 수 있다. 콘볼루션 계층은 콘볼루션 특징을 추출하는 계층으로, 의미있는 특징들을 추출하기 위한 층이다. 각각의 콘볼루션 계층은 콘볼루션 필터(convolution filter)에 의해서 파라미터화될 수 있다. 콘볼루션 신경망(CNN)의 파워는 입력 데이터를 대상으로 단순 특성으로 시작하는 계층들로부터 오며, 후속되는 계층이 고 레벨 의미를 가지도록 각 계층들을 통하여 점점 복잡한 특성들을 학습한다. 풀링 계층은 콘볼루션 계층 이후에 즉시 사용된다. 풀링 계층은 콘볼루션 계층의 출력을 단순화시킨다. 완전 연결 계층은 콘볼루션 계층과 풀링 계층에서 나온 특징을 이용하여 분류하는 층이다.
여기서 언급되는 용어 “서브 샘플링” 또는 “다운 샘플링”은 신호의 전체 사이즈를 줄이는 것을 의미한다. “최대 풀링”으로 언급된 기술은, 감소된 행렬의 각각의 요소들의 최대값을 취하는 과정을 의미한다.
예시적인 실시 예에서, 여기에 게시되는 방법과 장치는 신경망을 훈련하는데 유용하다. 신경망은 이미지 데이터로부터 사물 인식을 수행하도록 설정될 수 있다. 하지만, 예시적인 실시 예들은 설명을 위한 것일 뿐 본 발명은 여기에 국한되지 않는다. 따라서, 여기에 게시되는 방법과 장치는 신경망을 사용하는 다른 응용에서도 동일하게 사용될 수 있다.
이하, 첨부 도면을 참조하여 본 발명의 실시 예를 상세하게 설명한다. 그러나 다음에 예시하는 본 발명의 실시 예는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 다음에 상술하는 실시 예에 한정되는 것은 아니다. 본 발명의 실시 예는 이 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공된다.
도 1은 본 발명의 이해를 돕기 위한 콘볼루션 신경망(CNN)의 구조도이다.
도 1을 참조하면, 콘볼루션 신경망(CNN)은 특징 추출(feature extraction) 단계와 분류(classification) 단계로 이루어진다. 특징 추출단계는 콘볼루션 계층과 풀링 계층으로 구성된 특징 추출 계층이 복수 개로 이루어진다. 분류 단계는 완전 연결된 하나의 계층을 생성하고 추출된 특징들을 이용하여 결과치를 내는 단계이다.
콘볼루션 계층은 콘볼루션 기능을 수행하여 입력 이미지의 특징을 나타낸다. 콘볼루션 기능은 입력 유닛에 k×k 크기의 콘볼루션 필터를 적용하여 출력 유닛을 계산하는 기능이다. 출력 유닛은 이미지의 특징(Feature) 정보를 가진다. 콘볼루션 계산은 입력 유닛의 전 영역에서 가능한 모든 k×k 크기의 부분 영역을 추출하고, 그 다음 입력 유닛과 출력 유닛 사이에 고유하게 지정된 콘볼루션 필터의 각 단위요소들과 n×n 크기의 부분 영역의 각 값을 각각 곱한 후 합산하는 것(즉, 필터와 부분 영역 간의 내적의 곱의 합)을 의미한다. 여기서 콘볼루션 필터는 k×k 개의 파라미터로 구성되며, 커널(kernel)이라고도 지칭한다. 하나의 커널은 입력 유닛(즉, 채널)의 모든 부분 영역에 공통적으로 적용된다.
한 계층의 출력 유닛이 다음 계층을 위한 입력 유닛으로 이용될 수 있다. 한 계층의 입력 유닛으로 이용되면 그 유닛을 채널(channel)이라고도 지칭하며, 한 계층의 출력 유닛으로 이용되면 그 유닛을 특징 맵(feature map) 이라고도 지칭한다.
풀링 계층은 콘볼루션 계층의 출력을 단순화시킨다. 예를 들어, 풀링 계층은 공간적으로 입력을 다운 샘플링한다. 이미지 데이터는 많은 픽셀이 존재하기 때문에 특징을 줄이기 위해 서브 샘플링한다. 풀링 방식 중 하나는 최대 풀링 방식의 서브 샘플링으로, 각 윈도에서 가장 큰 자극만을 선택하는 것이다.
마지막 특징 추출 계층의 출력 유닛은 완전 연결 계층(fully connected layer)과 추가로 연결된다. 완전 연결 계층에서는 복수의 특징 추출 계층을 통해 추출된 특징을 이용하여 이미지 데이터에서 사물이 개인지 고양이인지 새인지 보트인지 등을 분류한다.
도 2는 본 발명의 일 실시 예에 따른 콘볼루션 신경망(CNN)에서의 기계학습 프로세스를 실제 처리하는 예를 도시한 신경망 구조도이다.
도 2를 참조하면, 특징 추출 단계에서, 32×32 픽셀 입력 이미지 데이터(Input)를 대상으로 5×5 콘볼루션 필터를 통해 특징을 추출하여 28×28 이미지 4장(C1)을 추출하고, 이를 대상으로 2×2 서브 샘플링(크기를 줄이기 위한 액션)을 수행하여 동일한 4장의 14×14 이미지(S1)를 생성한다. 그리고 다시 5×5 콘볼루션 필터를 통해 특징을 추출하여 10×10 이미지 12장(C2)을 추출하고, 이를 대상으로 2×2 서브 샘플링하여 동일한 12장의 5×5 이미지(S2)를 생성하는 프로세스를 반복한다. 이어서, 분류 단계에서, 완전 연결된 하나의 행렬(n1)을 만들고 이를 신경망에 입력하여 값을 비교한 뒤 결과치(Output)를 얻는다.
도 3은 본 발명의 일 실시 예에 따른 기계학습 시스템의 구성도이다.
도 3을 참조하면, 기계학습 시스템(1)은 클라이언트 단말(2)과 서버(3) 및 네트워크(4)를 포함한다.
서버(3)는 기계학습을 위한 강력한 컴퓨터 자원을 가진다. 예시적인 자원은, 기계학습을 수행하기 위한 중요한 것들을 포함하고, 실질적인 메모리, 처리 능력, 데이터 스토리지 등을 포함할 수 있다. 일 실시 예에서, 서버(3)는 블레이드 서버와 같은 통상의 서버를 포함할 수 있고, 메인 프레임, 개인용 컴퓨터의 네트워크 또는 단순한 개인용 컴퓨터일 수 있다. 서버(3)는 클라이언트 단말(2)로부터 원거리에 위치할 수 있다. 서버(3)는 집중형 데이터 스토리지(centralized data storage) 프로세싱(processing) 및 분석을 수행하는데, 딥 러닝(deep learning)을 수행할 수 있다. 딥 러닝은 높은 연산력과 많은 양의 데이터 저장용량을 요구한다. 서버(3)는 클라이언트 단말(2)을 원격제어할 수 있다. 이때, 클라이언트 단말(2)의 실행 화면을 모니터링 및 제어할 수 있다.
클라이언트 단말(2)은 축소된 계산 자원을 가진다. 예시적인 자원은 기계학습을 수행하기 위한 중요한 것들을 포함하고, 최소량의 메모리와, 처리 능력, 데이터 스토리지 등을 포함할 수 있다. 일 실시 예에서, 클라이언트 단말(2)은 신경망에 입력되는 입력 이미지를 조합하기 위한 이미지 처리 능력을 포함할 수 있다. 클라이언트 단말(2)은 원거리의 서버(3)에서 동작하는 강력한 자원들과 네트워크(4)를 통해 통신할 수 있다.
일 실시 예에 따른 클라이언트 단말(2)은 모바일 장치이다. 모바일 장치는 모바일 환경에서 사용 가능한 컴퓨팅 자원을 가진다. 모바일 장치는 컴퓨팅 자원의 축소된 셋을 가질 수 있다. 모바일 장치의 예로서, 스마트폰, 태블릿 컴퓨터 등이 있다. 모바일 장치는 애플사의 iOS 환경에서 동작하는 아이폰, 구글사의 안드로이드 환경에서 동작하는 안드로이드폰, 마이크로소프트사의 윈도 환경에서 동작하는 윈도폰을 모두 지원할 수 있다. 클라이언트 단말(2)은 헤드 마운트 디스플레이 (HMD), 스마트 글래스(smart glass) 등과 같이 사용자가 신체에 착용할 수 있는 웨어러블 단말일 수도 있다.
다른 실시 예에 따른 클라이언트 단말(2)은 사물 인터넷(Internet of Things, IoT)이 가능한 사물 인터넷 장치이다. 사물은 웹캠(webcam), 보안 카메라(security camera), 감시 카메라(surveillance camera), 온도 조절 장치(thermostat), 심박 모니터(heart rate monitor), 스마트 가전(smart appliance), 스마트 자동차(smart car), 필드 구동 장치(field operation device), 다양한 센서들과 같은 다양한 장치들일 수 있다.
클라이언트 단말(2)은 서버(3)에 비해 성능이 떨어지므로, 기계학습의 효율을 높이기 위해, 클라이언트 단말(2)에 탑재된 기계학습 모듈이 콘볼루션 신경망(CNN)의 계층을 적정한 수준으로 유지하도록 한다. 이에 클라이언트 단말(2)의 하드웨어 성능이 떨어질 경우 일정 부분은 클라이언트 단말(2)에서 처리하되, 나머지는 클라이언트 단말(2)과 네트워크 연결된 서버(3)의 기능을 활용한다. 즉, 클라이언트 단말(2)과 서버(3)는 콘볼루션 신경망에서의 기계학습을 분산하여 수행함에 따라, 빠르고 효율적인 기계학습을 도모한다.
클라이언트 단말(2)과 서버(3)는 신경망에 적용되는 특성을 동일한 것을 사용한다. 기계학습 시에, 신경망에 적용하는 특성을 바꾸면 학습을 새로 시작해야 하므로 클라이언트 단말(2)과 서버(3)가 특성을 다르게 하여 처리한 후 처리된 값을 비교하고자 하면 서로 비교가 불가능하다. 따라서, 클라이언트 단말(2)과 서버(3)는 동일한 특성, 예를 들어 동일한 콘볼루션 필터를 사용함에 따라, 클라이언트 단말(2)에 이어서 서버(3)에서 기계학습을 수행할 때 새로 처음부터 다시 시작해야 하는 문제를 방지할 수 있다.
속도가 우선적으로 필요하여 신속하게 처리하고자 할 때, 클라이언트 단말에서 전 과정을 처리하되, 계층을 최소화(compact) 하여 줄이는 경우에는, 계층의 수가 많을 경우보다 분별력과 정확도가 떨어지게 된다. 이에 비해, 클라이언트 단말에서 입력 데이터를 통으로 서버에 전송하고 서버에서 전 과정을 처리하도록 하여 서버로부터 정확한 결과를 받아 고지해 주는 방식은, 이미지 데이터의 네트워크 전송을 위한 시간이 많이 소모되고 연산하는 시간도 포함하므로 시간이 비교적 오래 걸리게 되어 속도에 악영향을 끼친다.
일 실시 예에 따른 기계학습 시스템은 클라이언트 단말(2)과 서버(3)가 동일한 특성을 적용하되 클라이언트 단말(2)에서는 소수의 계층을 처리하고, 서버(3)에서 나머지 계층들을 처리하는 방식을 사용하며, 클라이언트 단말(2)은 서버(3)로부터 최종결과를 수신한다. 클라이언트 단말(2)에서 소수의 계층만을 처리하는 경우, 이미지 데이터를 통으로 서버(3)에 넘길 때에 비하여 콘볼루션 이후 서브 샘플링된 훨씬 작은 이미지 데이터가 전송된다. 따라서, 필요한 데이터 대역폭도 줄고 이후 프로세스를 서버(3)에서 신속하게 처리하기 때문에 정확도와 효율성이 좋다. 특히, 이런 형태의 분산 기계학습 방식은 네트워크 지연시간이 적은 5G 환경 등에서는 매우 유용한 방안이 될 것이다.
클라이언트 단말(2)에서 처리되는 소수의 계층 수는 서버(3)에 의해 결정될 수 있다. 예를 들어, 서버(3)는 클라이언트 단말(2)의 단말 정보를 이용하여 클라이언트 단말(2)과 서버(3) 간의 기계학습 처리 비율을 결정한다. 클라이언트 단말(2)의 단말 정보는 클라이언트 단말(2)의 성능을 알 수 있는 파라미터로서, CPU의 개수, 클록 속도, 캐쉬 메모리 크기 등이 될 수 있다. 서버(3)는 결정된 기계학습 처리 비율을 클라이언트 단말(2)에 전송한다. 이때, 기계학습 처리 비율은 클라이언트 단말(2)에서 처리할 수 있는 계층의 수 또는 처리할 수 있는 시간정보를 포함한다. 따라서, 클라이언트 단말(2)은 서버(3)가 결정해 준 계층의 수만큼을 처리하거나 처리시간만큼을 처리하고 나머지를 서버(3)에 넘긴다. 나아가, 클라이언트 단말과 서버 간의 기계학습 처리 비율은 클라이언트 단말의 기계학습 처리의 동작 결과를 반영하여 갱신될 수 있다. 예를 들어, 서버(3)의 기계학습 처리의 동작 결과를 나타내는 클라이언트 성적 정보를 보고 클라이언트 단말과 서버 간의 기계학습 처리 비율을 조정할 수 있다.
도 4는 본 발명의 일 실시 예에 따른 도 3의 클라이언트 단말의 세부 구성도이다.
도 4를 참조하면, 클라이언트 단말(2)은 입력부(20), 프로세서(22), 메모리(24), 통신부(26) 및 출력부(28)를 포함한다.
입력부(20)는 사용자로부터 조작신호를 입력받는다. 예를 들어, 키보드나 마우스 등의 입력장치를 통해 사용자 조작신호를 입력받을 수 있다. 또한, 입력부(20)는 기계학습 대상이 되는 데이터를 획득한다. 이때, 입력 데이터는 사용자로부터 입력받을 수 있고, 카메라 등을 통해 촬영된 이미지 데이터를 입력받을 수 있으며, 외부장치로부터 입력받을 수도 있다. 입력 데이터는 이미지, 음성 등일 수 있다.
메모리(24)는 데이터와 기계학습 명령어가 저장된다. 기계학습 명령어는 컴퓨팅 리소스 및 관련된 컴포넌트의 제어를 통해서 구현되는 본 발명의 방법을 실행하기 위한 것이다.
프로세서(22)는 클라이언트 단말(2)의 각 구성요소를 제어한다. 일 실시 예에 따른 프로세서(22)는 메모리(24)에 저장된 기계학습 명령어를 이용하여 입력부(20)를 통해 입력받은 데이터에 대해 기계학습을 수행하고 수행에 따른 중간 데이터를 생성한다. 일 실시 예에 따른 프로세서(22)는 신경망을 구성하는 전체 계층에서 첫 소정의 계층만을 처리하고, 나머지 계층들은 서버에서 처리하도록 한다. 예를 들어 신경망을 구성하는 전체 계층이 100개이면, 첫 10개를 클라이언트 단말(2)에서 처리하고 나머지 90개는 서버에서 처리한다. 클라이언트 단말(2)에서 처리되는 첫 소정의 계층 수는 클라이언트 단말(2)의 단말 능력 및 클라이언트 단말과 서버 간의 네트워크 환경 중 적어도 하나를 고려하여 결정될 수 있다. 단말 능력은 클라이언트 단말(2)의 기계학습을 처리할 수 있는 성능을 나타내는 파라미터로서, 예를 들어, CPU의 개수, 클록 속도, 캐쉬 메모리의 크기 등이 될 수 있다. 또는 클라이언트 단말(2)의 운영체제(OS), 웹 브라우저 등이 될 수도 있다. 클라이언트 단말과 서버 간의 네트워크 환경은 클라이언트 단말과 서버 사이의 통신속도를 의미할 수 있다.
통신부(26)는 유무선 인터페이스를 통해 서버와 통신한다. 무선 인터페이스는 셀룰러, 블루투스, Wi-Fi, NFC, ZigBee 등의 프로토콜을 사용할 수 있다. 통신 서비스는 블루투스, Wi-Fi, 이더넷, DSL, LTE, PCS, 2G, 3G, 4G, 5G, LAN, CDMA, TDMA, GSM, WDM, WLAN 등을 포함하는 무선 통신 인터페이스를 통해서 제공될 수 있다. 통신 인터페이스는 음성 채널을 포함할 수 있다. 일 실시 예에 따른 통신부(26)는 프로세서(22)에서 생성된 중간 데이터를 서버에 전송하고, 서버에서 연이어 수행되는 기계학습을 통해 생성된 최종 데이터를 서버로부터 수신한다. 통신부(26)는 서브 샘플링을 거쳐 그 크기가 줄어든 중간 데이터를 서버에 전송할 수 있다. 이 경우, 입력 데이터가 통으로 서버에 전송되는 경우에 비해 훨씬 작은 데이터가 서버에 전송되므로 데이터 대역폭도 줄고 이후 프로세스를 서버에서 신속하게 처리할수 있기 때문에 정확도와 효율성이 향상된다.
출력부(28)는 클라이언트 단말(2)의 동작 수행을 위해 필요한 정보나 동작 수행에 따라 생성되는 정보를 출력한다. 출력부(28)는 디스플레이나 터치패널 등의 출력장치거나 이와 연결될 수 있다. 통신부(26)가 서버로부터 기계학습 최종 결과물을 수신하면, 출력부(28)는 이를 화면에 출력할 수 있다.
클라이언트 단말(2)은 센서와 같은 부가적인 구성요소를 포함할 수 있다. 센서의 예로, 방향 정보를 제공하기 위한 가속도 센서, 위치 정보를 제공하기 위한 GPS 센서를 포함할 수 있다.
도 5는 본 발명의 일 실시 예에 따른 콘볼루션 신경망에서의 분산 기계학습 동작에 따른 클라이언트 단말과 서버의 세부 구성도이다.
콘볼루션 신경망은 n개의 특징 추출 계층과 적어도 하나의 완전 연결 계층으로 구성되며, 각 특징 추출 계층은 콘볼루션 계층과 풀링 계층을 포함한다. 이 경우, 클라이언트 단말(2)은 입력 데이터를 대상으로 첫 번째 특징 추출 계층부터 m(1≤m<n인 정수)번째 계층까지를 거치며 차례대로 특징 추출 계산을 반복 수행한다. 이어서, 서버(3)가 클라이언트 단말(2)로부터 m번째 특징 추출 계층 데이터를 수신하면, m+1번째 특징 추출 계층에서 마지막 n번째 특징 추출 계층까지 거치며 특징 추출 계산을 반복 수행한다. 그리고 마지막 n번째 특징 추출 계층 데이터를 완전 연결 계층에 전달하여 입력 데이터에서 의미 있는 정보를 분류한다.
이를 위해, 클라이언트 단말(2)은 m개의 특징 추출부(50-1,50-2,…,50-m)를 포함하며, 서버(3)는 n-m개의 특징 추출부(50-(m+1),…,50-n)와 분류부(52)를 포함한다. 클라이언트 단말(2)의 구성요소들은 m개의 특징 추출부(50-1,50-2,…,50-m)는 도 4의 프로세서(22) 내에 위치하며 m개의 특징 추출부(50-1,50-2,…,50-m)의 프로세싱을 통해 생성되는 데이터들은 도 4의 메모리(24)에 저장될 수 있다.
클라이언트 단말(2) 내 m개의 특징 추출부(50-1,50-2,…,50-m)는 입력 데이터를 대상으로 첫 번째 특징 추출 계층부터 m(1≤m<n인 정수)번째 계층까지를 거치며 차례대로 특징정보를 반복적으로 추출한다. 클라이언트 단말(2)의 마지막 계층인 m 번째 특징 추출 계층에서 추출된 특징정보는 네트워크(4)를 통해 서버(3)에 전송된다.
서버(3) 내 n-m개의 특징 추출부(50-(m+1),…,50-n)는 m+1번째 특징 추출 계층에서부터 마지막 n번째 특징 추출 계층까지를 거치며 차례대로 특징정보를 반복적으로 추출한다. 분류부(52)는 n번째 특징정보를 이용하여 완전 연결 계층을 거쳐 입력 데이터로부터 사물을 분류한다. 분류 결과는 클라이언트 단말(2)에 전송된다.
클라이언트 단말(2)과 서버(3)의 각 특징 추출부(50-1,…,50-n)는 콘볼루션 필터(500)와 서브 샘플링부(510)를 포함한다. 콘볼루션 필터(500)는 입력 유닛으로부터 콘볼루션을 통해 특징정보를 추출하여 콘볼루션 계층 유닛을 생성한다. 서브 샘플링부(510)는 각 콘볼루션 계층 유닛을 서브 샘플링함에 따라 그 크기를 줄여 풀링 계층 유닛을 생성한다. 클라이언트 단말(2) 내 각 특징 추출부(50-1,50-2,…,50-m)를 구성하는 콘볼루션 필터(500)는 서로 동일하고, 클라이언트 단말(2)의 콘볼루션 필터(500)는 서버(3)에서의 콘볼루션 필터(500)와 동일할 수 있다.
각 필터(500)는 입력 데이터를 슬라이딩 윈도로 하여 횡단하는 방식으로 시프트될 수 있다. 시프트의 크기는 “보폭 길이” 또는 간단히 “보폭”이라 칭하기로 한다. 각각의 시프트 구간에서, 주어진 필터(500)에 소속된 각각의 가중치는 콘볼루션 연산을 제공하기 위하여 입력 데이터의 중첩 영역의 입력 요소들과 쌍으로 곱해지고 더해진다. 콘볼루션 연산 이후에, 콘볼루션 출력을 대상으로 윈도를 슬라이딩하면서 서브 샘플링을 수행한다. 서브 샘플링은 윈도에서 최대값 또는 평균을 선택하는 방식이 있을 수 있다.
도 6은 본 발명의 일 실시 예에 따른 클라이언트 단말과 서버의 분산 기계학습의 실시 예를 보여주는 신경망 구조도이다.
도 6을 참조하면, 콘볼루션 신경망(CNN)을 구성하는 전체 계층이 입력 계층 L0, 특징 추출 계층 L1~L4, 완전 연결 계층 F5 및 출력 계층 F6(Output)으로 이루어진다고 가정한다. 이때, 클라이언트 단말(2)에서 기본 계층을 처리하고 서버(3)에서 나머지 계층을 처리한다. 예를 들어, 도 6에 도시된 바와 같이, 클라이언트 단말(2)은 첫 소정의 계층인 입력 계층 L0과 특징 추출 계층 L1만을 처리하고, 나머지 계층들인 특징 추출 계층 L2~L4, 완전 연결 계층 F5 및 출력 계층 F6(Output)은 서버(3)에서 처리된다. 특징 추출 계층 L1~L4은 각각 콘볼루션 계층과 풀링 계층을 포함하여, 특징 추출 계층 단계가 올라갈수록 데이터의 크기는 줄어든다. 서버(3)는 클라이언트 단말(2)로부터 입력 데이터보다 훨씬 축소된 데이터를 네트워크(4)를 통해 수신하여 프로세스를 수행하므로 데이터 대역폭도 줄고 신속하게 프로세스를 수행할 수 있게 되어 정확도와 효율성이 좋아진다.
도 7은 본 발명의 일 실시 예에 따른 클라이언트 단말과 서버 간의 분산 처리 프로세스를 도시한 흐름도이다.
도 7을 참조하면, 클라이언트 단말(2)은 서버(3)에 단말 정보를 전송한다(710). 단말 정보는 클라이언트 단말(2)이 기계학습을 처리할 수 있는 성능을 나타내는 파라미터로서, 예를 들어, CPU의 개수, 클록 속도, 캐쉬 메모리의 크기 등이 될 수 있다.
서버(3)는 단말 정보를 이용하여 클라이언트 단말(2)의 처리능력을 추정하고 추정된 처리능력에 기초하여 클라이언트 단말(2)과 서버(3) 간의 기계학습 처리 비율을 결정한다(720). 이때, 기계학습 처리 비율은 클라이언트 단말(2)에서 처리할 수 있는 계층의 수 처리할 수 있는 시간정보를 포함한다.
이어서, 서버(3)는 결정된 기계학습 처리 비율을 클라이언트 단말(2)에 전송한다(730). 그러면, 클라이언트 단말(2)은 수신된 기계학습 처리 비율에 맞게 기계학습을 수행(740)하여 중간 데이터를 생성하며 이를 서버(3)에 전송한다(750). 중간 데이터를 수신한 서버(3)는 기계학습을 이어서 수행(760)하여 최종 데이터를 생성(770)하며, 이를 클라이언트 단말(2)에 전송한다(780).
이제까지 본 발명에 대하여 그 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (11)

  1. 데이터 및 기계학습 명령어가 저장되는 메모리;
    기계학습 명령어를 이용하여 입력 데이터에 대해 기계학습을 수행하고 수행에 따른 중간 데이터를 생성하는 프로세서; 및
    중간 데이터를 서버에 전송하고, 서버에서 연이어 수행되는 기계학습을 통해 생성된 최종 데이터를 서버로부터 수신하는 통신부;
    를 포함하는 것을 특징으로 하는 클라이언트 단말.
  2. 제 1 항에 있어서, 상기 프로세서는
    신경망을 구성하는 전체 계층에서 첫 소정의 계층만을 처리하고, 나머지 계층들은 서버에서 처리하도록 하는 것을 특징으로 하는 클라이언트 단말.
  3. 제 2 항에 있어서,
    상기 첫 소정의 계층 수는 클라이언트 단말의 단말 능력에 따라 결정되는 것을 특징으로 하는 클라이언트 단말.
  4. 제 2 항에 있어서,
    상기 첫 소정의 계층 수는 클라이언트 단말과 서버 간의 네트워크 환경에 따라 결정되는 것을 특징으로 하는 클라이언트 단말.
  5. 제 1 항에 있어서, 상기 통신부는
    기계학습을 거쳐 그 크기가 줄어든 중간 데이터를 서버에 전송하는 것을 특징으로 하는 클라이언트 단말.
  6. 제 1 항에 있어서,
    상기 프로세서는 입력 데이터를 대상으로 콘볼루션 신경망을 구성하는 n(n은 정수) 개의 특징 추출 계층들에서 첫 번째 특징 추출 계층부터 m(1≤m<n인 정수)번째 계층까지를 차례대로 거치며 특징정보를 반복적으로 추출하는 m개의 특징 추출부; 를 포함하며,
    상기 통신부는 m 번째 특징 추출 계층에서 추출된 특징정보를 서버에 전송하고, 서버가 마지막 n번째 특징 추출 계층까지를 차례대로 거치며 특징정보를 반복적으로 추출하고 완전 연결 계층을 거쳐 입력 데이터로부터 사물을 분류하면, 서버로부터 분류 결과를 수신하는 것을 특징으로 하는 클라이언트 단말.
  7. 제 6 항에 있어서, 각 특징 추출부는
    입력 유닛으로부터 콘볼루션을 통해 특징정보를 추출하여 콘볼루션 계층 유닛을 생성하는 적어도 하나의 콘볼루션 필터; 및
    각 콘볼루션 계층 유닛을 서브 샘플링함에 따라 그 크기를 줄여 풀링 계층 유닛을 생성하는 적어도 하나의 서브 샘플링부;
    를 포함하는 것을 특징으로 하는 클라이언트 단말.
  8. 제 7 항에 있어서,
    클라이언트 단말 내 각 특징 추출부를 구성하는 콘볼루션 필터는 서로 동일하고,
    클라이언트 단말의 콘볼루션 필터는 서버에서의 콘볼루션 필터와 동일한 것을 특징으로 하는 클라이언트 단말.
  9. 제 1 항에 있어서,
    상기 통신부는 서버에 단말 정보를 전송하고, 서버가 단말 정보를 이용하여 클라이언트 단말과 서버 간의 기계학습 처리 비율을 결정하면, 상기 서버로부터 결정된 기계학습 처리 비율을 수신하며, 상기 기계학습 처리 비율은 클라이언트 단말에서 처리할 수 있는 계층의 수 또는 처리할 수 있는 시간정보를 포함하며,
    프로세서는 수신된 기계학습 처리 비율에 맞게 기계학습을 수행하는 것을 특징으로 하는 클라이언트 단말.
  10. 제 9 항에 있어서,
    클라이언트 단말과 서버 간의 기계학습 처리 비율은 클라이언트 단말의 기계학습 처리의 동작 결과를 반영하여 조정되는 것을 특징으로 하는 클라이언트 단말.
  11. 입력 데이터에 대해 기계학습을 수행하여 수행에 따른 중간 데이터를 생성하고 이를 서버에 전송하는 클라이언트 단말; 및
    클라이언트 단말로부터 수신된 중간 데이터를 가지고 이어서 기계학습을 수행하며 수행에 따른 최종 데이터를 클라이언트 단말에 전송하는 서버;
    를 포함하는 것을 특징으로 하는 기계학습 시스템.
KR1020170164137A 2017-12-01 2017-12-01 서버와의 연계를 통해 기계학습의 효율성을 높이는 클라이언트 단말 및 이를 포함한 기계학습 시스템 KR102093899B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170164137A KR102093899B1 (ko) 2017-12-01 2017-12-01 서버와의 연계를 통해 기계학습의 효율성을 높이는 클라이언트 단말 및 이를 포함한 기계학습 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170164137A KR102093899B1 (ko) 2017-12-01 2017-12-01 서버와의 연계를 통해 기계학습의 효율성을 높이는 클라이언트 단말 및 이를 포함한 기계학습 시스템

Publications (2)

Publication Number Publication Date
KR20190064862A true KR20190064862A (ko) 2019-06-11
KR102093899B1 KR102093899B1 (ko) 2020-03-26

Family

ID=66847278

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170164137A KR102093899B1 (ko) 2017-12-01 2017-12-01 서버와의 연계를 통해 기계학습의 효율성을 높이는 클라이언트 단말 및 이를 포함한 기계학습 시스템

Country Status (1)

Country Link
KR (1) KR102093899B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020242266A1 (ko) 2019-05-31 2020-12-03 주식회사 엘지화학 리튬 이차전지용 양극 및 이를 구비한 리튬 이차전지
WO2021107169A1 (ko) * 2019-11-26 2021-06-03 전자부품연구원 엣지-클라우드 시스템에서 딥러닝 네트워크 상호 학습 및 업데이트 방법
WO2022050432A1 (ko) * 2020-09-01 2022-03-10 엘지전자 주식회사 통신 시스템에서 연합 학습을 수행하기 위한 방법 및 장치
KR20220095532A (ko) * 2020-12-30 2022-07-07 주식회사 쿠오핀 네트워크 환경에서의 디바이스와 서버 간의 인공지능 처리 기능 분할방법
JP2022543291A (ja) * 2019-08-13 2022-10-11 オムロン株式会社 アイテムの検査を実行するための方法、装置、コンピュータプログラムおよびコンピュータ命令を含む媒体

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990031082A (ko) * 1997-10-08 1999-05-06 정선종 클라이언트-서버 응용 프로그램 자동 분할 장치 및 그 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990031082A (ko) * 1997-10-08 1999-05-06 정선종 클라이언트-서버 응용 프로그램 자동 분할 장치 및 그 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Teerapittayanon, Surat, Bradley McDanel, and Hsiang-Tsung Kung. Distributed deep neural networks over the cloud, the edge and end devices. 2017 IEEE 37th ICDCS. IEEE. 2017.6.8.* *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020242266A1 (ko) 2019-05-31 2020-12-03 주식회사 엘지화학 리튬 이차전지용 양극 및 이를 구비한 리튬 이차전지
JP2022543291A (ja) * 2019-08-13 2022-10-11 オムロン株式会社 アイテムの検査を実行するための方法、装置、コンピュータプログラムおよびコンピュータ命令を含む媒体
WO2021107169A1 (ko) * 2019-11-26 2021-06-03 전자부품연구원 엣지-클라우드 시스템에서 딥러닝 네트워크 상호 학습 및 업데이트 방법
WO2022050432A1 (ko) * 2020-09-01 2022-03-10 엘지전자 주식회사 통신 시스템에서 연합 학습을 수행하기 위한 방법 및 장치
KR20220095532A (ko) * 2020-12-30 2022-07-07 주식회사 쿠오핀 네트워크 환경에서의 디바이스와 서버 간의 인공지능 처리 기능 분할방법

Also Published As

Publication number Publication date
KR102093899B1 (ko) 2020-03-26

Similar Documents

Publication Publication Date Title
KR102093899B1 (ko) 서버와의 연계를 통해 기계학습의 효율성을 높이는 클라이언트 단말 및 이를 포함한 기계학습 시스템
US20230089380A1 (en) Neural network construction method and apparatus
US11398223B2 (en) Electronic device for modulating user voice using artificial intelligence model and control method thereof
KR102606200B1 (ko) 전자 장치 및 그 제어 방법
JP7377806B2 (ja) 意味処理および動的シーンモデリングに基づく向上された画像形成のための方法
KR102607880B1 (ko) 전자 장치 및 그의 제어 방법
JP2021511579A (ja) 画像処理システム及び画像処理方法
KR20170000767A (ko) 신경망, 신경망 학습 방법 및 이미지 신호 처리 튜닝 시스템
US20230342147A1 (en) Model processing method and apparatus
CN113065635A (zh) 一种模型的训练方法、图像增强方法及设备
CN112598597A (zh) 一种降噪模型的训练方法及相关装置
CN110610191A (zh) 一种电梯楼层识别方法、装置及终端设备
KR20210061146A (ko) 전자 장치 및 그 제어 방법
KR20200027080A (ko) 전자 장치 및 그 제어 방법
WO2022216671A1 (en) Temporal augmentation for training video reasoning system
US20210110158A1 (en) Method and apparatus for estimating location in a store based on recognition of product in image
EP3738305B1 (en) Electronic device and control method thereof
WO2024046144A1 (zh) 一种视频处理方法及其相关设备
CN116309226A (zh) 一种图像处理方法及其相关设备
CN115690544B (zh) 多任务学习方法及装置、电子设备和介质
US20230315209A1 (en) Gesture recognition on resource-constrained devices
CN113780252B (zh) 视频处理模型的训练方法、视频处理方法和装置
Bi et al. PCANN: distributed ANN architecture for image recognition in resource-constrained IoT devices
WO2022052647A1 (zh) 一种数据处理方法、神经网络的训练方法以及相关设备
US11423225B2 (en) On-device lightweight natural language understanding (NLU) continual learning

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)