KR20240059283A - 신경망의 양자화를 위한 데이터 증강 장치 및 방법 - Google Patents

신경망의 양자화를 위한 데이터 증강 장치 및 방법 Download PDF

Info

Publication number
KR20240059283A
KR20240059283A KR1020220140357A KR20220140357A KR20240059283A KR 20240059283 A KR20240059283 A KR 20240059283A KR 1020220140357 A KR1020220140357 A KR 1020220140357A KR 20220140357 A KR20220140357 A KR 20220140357A KR 20240059283 A KR20240059283 A KR 20240059283A
Authority
KR
South Korea
Prior art keywords
value
data
loss value
neural network
updated
Prior art date
Application number
KR1020220140357A
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 KR1020220140357A priority Critical patent/KR20240059283A/ko
Publication of KR20240059283A publication Critical patent/KR20240059283A/ko

Links

Classifications

    • 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

Landscapes

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

Abstract

신경망의 양자화를 위한 데이터 증강 장치 및 방법이 개시된다. 본 개시의 데이터 증강 방법에 따르면, 신경망 모델의 계산량 지표의 값에 기반하여 데이터 셋의 증강에 이용될 손실 값의 종류를 결정한다. 또한, 양자화 에러가 증가하는 방향으로 갱신된 데이터를 증강 데이터 셋에 포함시킨다.

Description

신경망의 양자화를 위한 데이터 증강 장치 및 방법{APPARATUS FOR DATA AUGMENTATION FOR QUANTIZATION OF NEURAL NETWORK AND METHOD THEREOF}
본 개시는 양자화로 인한 신경망의 성능 하락을 경감시키는 데이터의 생성 기법에 관한 것이다.
심층 신경망(Deep Neural Networks, DNN) 기반의 딥러닝 모델은 계산량이 큰 관계로, 메모리 사용량이 많고 연산 자원을 많이 소모한다. 따라서 제한된 메모리 및 연산 자원 하에서 딥러닝 모델의 효용성을 높이기 위해서는 모델의 경량화 작업이 선행되어야 한다.
이러한 경량화를 위한 방식의 한 종류로서, 모델의 성능을 유지하면서 모델을 구성하는 네트워크 파라미터의 비트-너비(bit-width)를 줄이는 양자화(quantization) 기법이 각광받고 있다. 특히, 주어진 교정 데이터 셋(calibration dataset)에 대해서 네트워크의 액티베이션(activation) 및 가중치(weight)의 분포를 분석하여, 양자화 스케일(quantization scale)이나 영점(zeropoint) 등의 파라미터를 결정하는 학습 후 양자화(Post Training Quantization, PTQ)가 빈번히 이용된다.
다만, 데이터 보안 이슈로 인해 교정 데이터 셋의 크기가 작은 경우가 많은데, 작은 크기의 교정 데이터 셋을 이용할 경우, 학습 시 과적합(overfitting)이 발생하여 모델의 성능이 오히려 하락할 위험이 있다. 특히, 최적화 과정을 포함하는 일부 학습 기법은 과적합으로 인한 성능 하락이 더 심할 수도 있다.
대한민국 공개특허공보 제10-2022-0109301호 (2022.08.04. 공개)
본 개시는 상술한 문제점을 해결하기 위해 제안된 것으로, 모델의 과적합을 방지할 수 있도록 기존의 데이터 셋의 크기를 증강하는 것을 목적으로 한다.
또한, 본 개시는 양자화 에러가 비교적 큰 학습 데이터도 증강 데이터 셋에 포함되도록 데이터를 생성하는 것을 또 다른 목적으로 한다.
본 개시에 의해 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시 예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
개시되는 일 실시 예에 따른 데이터 증강 방법은, 제1 신경망 모델을 양자화(quantization)하여 제2 신경망 모델을 생성하는 단계; 초기 데이터 셋에 포함된 임의의 초기 데이터에 기반하여, 상기 제1 신경망 모델의 제1 출력 값 및 상기 제2 신경망 모델의 제2 출력 값을 획득하는 단계; 상기 제1 출력 값과 상기 제2 출력 값에 기반하여 양자화 에러(quantization error)를 증가시킬 수 있는 손실 값을 산출하는 단계; 상기 손실 값에 기반하여 상기 초기 데이터를 갱신함으로써 갱신 데이터를 생성하는 단계; 상기 갱신 데이터를 증강 데이터 셋에 포함시키는 단계; 및 설정된 종료 조건을 충족할 때까지, 상기 초기 데이터 셋에 포함된 나머지 데이터 중 적어도 일부를 입력으로 하여 상기 제1 출력 값 및 상기 제2 출력 값을 획득하는 단계, 상기 손실 값을 산출하는 단계, 상기 갱신 데이터를 생성하는 단계 및 상기 갱신 데이터를 증강 데이터 셋에 포함시키는 단계를 반복 수행하는 단계를 포함한다.
실시 예에 따르면, 상기 제2 신경망 모델을 생성하는 단계는, 상기 제1 신경망 모델의 복수의 네트워크 파라미터 중 적어도 일부의 네트워크 파라미터의 값들을 제한된 범위의 이산 값(discrete value)으로 매핑하는 것을 특징으로 할 수 있다.
실시 예에 따르면, 상기 손실 값은, 상기 제1 출력 값과 상기 제2 출력 값을 이용한 평균 제곱 오차(mean square error, mse)에 기초한 손실 값일 수 있다.
실시 예에 따르면, 상기 데이터 증강 방법은, 상기 초기 데이터가 상기 손실 값이 감소하는 방향으로 사전 설정된 갱신 횟수만큼 갱신되었는지 판단하는 단계; 및 상기 초기 데이터가 상기 갱신 횟수만큼 갱신된 경우, 상기 반복 수행을 종료하는 단계를 더 포함할 수 있다.
실시 예에 따르면, 상기 데이터 증강 방법은, 상기 초기 데이터가 상기 손실 값이 임계 손실 값 이하가 될 때까지 갱신되었는지 판단하는 단계; 및 상기 초기 데이터가 상기 손실 값이 임계 손실 값 이하가 될 때까지 갱신된 경우, 상기 반복 수행을 종료하는 단계를 더 포함할 수 있다.
개시되는 다른 실시 예에 따른 데이터 증강 방법은, 초기 데이터 셋에 포함된 임의의 초기 데이터에 기반하여, 제1 신경망 모델의 제1 출력 값을 획득하는 단계; 상기 제1 출력 값에 기반하여 양자화 에러(quantization error)를 증가시킬 수 있는 손실 값을 산출하는 단계; 상기 손실 값에 기반하여 상기 초기 데이터를 갱신함으로써 갱신 데이터를 생성하는 단계; 상기 갱신 데이터를 증강 데이터 셋에 포함시키는 단계; 및 설정된 종료 조건을 충족할 때까지, 상기 초기 데이터 셋에 포함된 나머지 데이터 중 적어도 일부를 입력으로 하여 상기 제1 출력 값을 획득하는 단계, 상기 손실 값을 산출하는 단계, 상기 갱신 데이터를 생성하는 단계 및 상기 갱신 데이터를 증강 데이터 셋에 포함시키는 단계를 반복 수행하는 단계를 포함한다.
실시 예에 따르면, 상기 손실 값은, 상기 제1 출력 값에 포함된 아웃라이어(outlier) 값과 상기 제1 출력 값에 포함된 다른 값들 사이의 거리 또는 상기 제1 출력 값에 포함된 값들 중 아웃라이어 값의 비율에 기초한 손실 값일 수 있다.
실시 예에 따르면, 상기 손실 값은, 상기 제1 출력 값에 기초한 아웃라이어(outlier) 손실 값일 수 있다.
실시 예에 따르면, 상기 손실 값은, 상기 제1 출력 값에 기초한 첨도(kurtosis) 손실 값일 수 있다.
실시 예에 따르면, 상기 데이터 증강 방법은, 상기 초기 데이터가 상기 손실 값이 감소하는 방향으로 사전 설정된 갱신 횟수만큼 갱신되었는지 판단하는 단계; 및 상기 초기 데이터가 상기 갱신 횟수만큼 갱신된 경우, 상기 반복 수행을 종료하는 단계를 더 포함할 수 있다.
실시 예에 따르면, 상기 데이터 증강 방법은, 상기 초기 데이터가 상기 손실 값이 임계 손실 값 이하가 될 때까지 갱신되었는지 판단하는 단계; 및 상기 초기 데이터가 상기 손실 값이 임계 손실 값 이하가 될 때까지 갱신된 경우, 상기 반복 수행을 종료하는 단계를 더 포함할 수 있다.
개시되는 또 다른 실시 예에 따른 데이터 증강 방법은, 제1 신경망 모델의 계산량 지표의 값을 확인하는 단계; 상기 계산량 지표의 값이 제1 임계 지표 값 이하인 경우, 청구항 1의 방법을 수행하는 단계; 및 상기 계산량 지표의 값이 상기 제1 임계 지표 값을 초과할 경우, 청구항 6의 방법을 수행하는 단계를 포함한다.
실시 예에 따르면, 상기 청구항 6의 방법을 수행하는 단계는, 상기 계산량 지표의 값이 상기 제1 임계 지표 값을 초과하면서 상기 제1 임계 지표 값보다 큰 제2 임계 지표 값 이하인 경우, 첨도(kurtosis) 손실 값에 기반하여 청구항 6의 방법을 수행하는 단계; 및 상기 계산량 지표의 값이 상기 제2 임계 지표 값을 초과할 경우, 아웃라이어(outlier) 손실 값에 기반하여 청구항 6의 방법을 수행하는 단계를 포함할 수 있다.
개시되는 일 실시 예에 따른 데이터 증강을 위한 전자 장치는, 명령어를 저장하는 메모리 및 프로세서를 포함하고, 상기 프로세서는, 상기 메모리와 연결되어, 제1 신경망 모델의 계산량 지표의 값을 확인하고, 상기 계산량 지표의 값이 제1 임계 지표 값 이하인 경우, 청구항 1의 방법을 수행하고, 상기 계산량 지표의 값이 상기 제1 임계 지표 값을 초과할 경우, 청구항 6의 방법을 수행한다.
기타 실시 예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 개시되는 방법에 따라 데이터가 증강됨으로써, 모델의 양자화에 필요한 교정 데이터 셋의 크기를 증가시키면서도 학습 시 모델의 과적합을 방지할 수 있다.
특히, 데이터 증강에 있어 적대적 생성(adversarial generation) 기법을 접목함으로써, 과적합 방지 측면에서 신뢰성 있는 데이터를 획득할 수 있다.
발명의 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 당해 기술 분야의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 일 실시 예에 따른 데이터 증강 방법을 설명하기 위한 흐름도이다.
도 2는 도 1의 방법을 구현하기 위한 알고리즘의 예시도이다.
도 3 및 4는 도 1의 방법의 반복 조건을 구체화한 도면이다.
도 5는 다른 실시 예에 따른 데이터 증강 방법을 설명하기 위한 흐름도이다.
도 6은 도 5의 방법을 구현하기 위한 제1 알고리즘의 예시도이다.
도 7은 도 5의 방법을 구현하기 위한 제2 알고리즘의 예시도이다.
도 8 및 9는 도 5의 방법의 반복 조건을 구체화한 도면이다.
도 10은 또 다른 실시 예에 따른 데이터 증강 방법을 설명하기 위한 흐름도이다.
도 11은 일 실시 예에 따른 데이터 증강을 위한 전자 장치를 설명하기 위한 블록도이다.
실시 예들에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "...모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하고, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있으며, 도시된 예와 달리 구체적 동작에 있어 명확히 구분되지 않을 수 있다.
명세서 전체에서 기재된 "a, b, 및 c 중 적어도 하나"의 표현은, 'a 단독', 'b 단독', 'c 단독', 'a 및 b', 'a 및 c', 'b 및 c', 또는 'a, b, 및 c 모두'를 포괄할 수 있다.
이하에서 언급되는 "단말" 또는 "사용자 단말"은 네트워크를 통해 서버나 타 단말에 접속할 수 있는 컴퓨터나 휴대용 단말로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(desktop), 랩톱(laptop) 등을 포함하고, 휴대용 단말은 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, IMT(International Mobile Telecommunication), CDMA(Code Division Multiple Access), W-CDMA(W-Code Division Multiple Access), LTE(Long Term Evolution) 등의 통신 기반 단말, 스마트폰, 태블릿 PC 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다.
이하의 설명에 있어서, 신호, 메시지 또는 정보의 "전송", "통신", "송신", "수신" 기타 이와 유사한 의미의 용어는 일 구성요소에서 다른 구성요소로 정보, 메시지 또는 정보가 직접 전달되는 것뿐만이 아니라 다른 구성요소를 거쳐 전달되는 것도 포함한다.
특히 신호, 메시지 또는 정보를 일 구성요소로 "전송" 또는 "송신"한다는 것은 그 신호, 메시지 또는 정보의 최종 목적지를 지시하는 것이고 직접적인 목적지를 의미하는 것이 아니다. 이는 신호, 메시지 또는 정보의 "수신"에 있어서도 동일하다. 또한 본 개시에 있어서, 2 이상의 데이터 또는 정보가 "관련"된다는 것은 하나의 데이터(또는 정보)를 획득하면, 그에 기초하여 다른 데이터(또는 정보)의 적어도 일부를 획득할 수 있음을 의미한다.
또한, 제1, 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로 사용될 수 있다.
예를 들어, 본 개시의 권리 범위를 벗어나지 않으면서 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.
이하에서는 도면을 참조하여 본 개시의 실시 예들을 상세히 설명한다.
실시 예를 설명함에 있어서 본 발명이 속하는 기술 분야에 익히 알려져 있고 본 발명과 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 발명의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다.
마찬가지 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시되었다. 또한, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 각 도면에서 동일한 또는 대응하는 구성요소에는 동일한 참조 번호를 부여하였다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이하의 흐름도에 도시된 방법은, 도 11을 참조하여 예시하는 전자 장치(110)에 의해 수행될 수 있다.
또한, 이하에 도시된 흐름도에서는 데이터 증강 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
도 1은 일 실시 예에 따른 데이터 증강 방법을 설명하기 위한 흐름도이다.
단계 S110에서, 전자 장치(110)는 제1 신경망 모델을 양자화(quantization)하여 제2 신경망 모델을 생성한다.
일 실시 예에 따르면, 전자 장치(110)는 제1 신경망 모델의 복수의 네트워크 파라미터 중 적어도 일부의 네트워크 파라미터의 값들을 제한된 범위의 이산 값(discrete value)으로 매핑하여, 새로이 매핑된 네트워크 파라미터의 값들을 포함하는 제2 신경망 모델을 생성할 수 있다.
단계 S120에서, 전자 장치(110)는 초기 데이터 셋에 포함된 임의의 초기 데이터에 기반하여, 제1 신경망 모델의 제1 출력 값 및 제2 신경망 모델의 제2 출력 값을 획득한다. 이와 관련하여, 제1 출력 값과 제2 출력 값은 각각 제1 신경망 모델과 제2 신경망 모델의 마지막 레이어의 출력 값일 수 있으나, 이는 예시적인 것으로, 실시 예에 따라서는 제1 신경망 모델과 제2 신경망 모델을 구성하는 각각의 레이어의 출력 값일 수도 있다.
단계 S130에서, 전자 장치(110)는 제1 출력 값과 제2 출력 값에 기반하여 양자화 에러(quantization error)를 증가시킬 수 있는 손실 값을 산출한다. 구체적으로, 전자 장치(110)는 제1 출력 값과 제2 출력 값을 양자화 에러를 증가시킬 수 있는 손실 함수에 대한 입력으로 사용할 수 있다.
일 실시 예에 따르면, 전자 장치(110)가 산출하는 손실 값은 제1 출력 값과 제2 출력 값을 이용한 평균 제곱 오차(mean square error, mse)에 기초한 손실 값일 수 있다. 예를 들어, 전자 장치(110)가 산출하는 손실 값은 제1 출력 값과 제2 출력 값을 이용한 MSE 값에 -1을 곱한 값일 수 있다.
단계 S140에서, 전자 장치(110)는 손실 값에 기반하여 초기 데이터를 갱신함으로써 갱신 데이터를 생성한다. 구체적으로, 전자 장치(110)는 손실 값이 감소하는 방향으로 초기 데이터를 갱신함으로써 갱신 데이터를 생성할 수 있다. 즉 다시 말하면, 전자 장치(110)는 양자화 에러가 증가하는 방향으로 초기 데이터를 갱신할 수 있다.
단계 S150에서, 전자 장치(110)는 갱신 데이터를 증강 데이터 셋에 포함시킨다. 즉 다시 말하면, 전자 장치(110)에 의해 생성된 갱신 데이터는 증강 데이터 셋의 요소가 된다. 본 개시에 있어서, '증강 데이터 셋'은 초기 데이터 셋의 모든 데이터를 초기부터 포함한 상태인 것으로 전제한다.
단계 S160에서, 전자 장치(110)는 설정된 종료 조건을 충족할 때까지, 초기 데이터 셋에 포함된 나머지 데이터 중 적어도 일부를 입력으로 하여 단계 S120 내지 S150을 반복 수행한다. 즉 다시 말하면, 전자 장치(110)는 종료 조건이 충족될 때까지 초기 데이터 셋에서 데이터를 선택하고, 그 데이터를 입력으로 하여 증강 데이터 셋에 추가될 데이터를 생성한다. 예컨대, 초기 데이터 셋의 모든 데이터를 대상으로 반복 수행이 이루어진다면, 증강 데이터 셋에 포함된 데이터의 수는 초기 데이터 셋에 포함된 데이터 수의 2배가 될 것이다. 다만, 2배라는 수치는 예시적인 것으로, 하나의 초기 데이터를 입력으로 하여 갱신 중간에 추가적인 증강 데이터를 추출한다면, 증강 데이터 셋에 포함되는 최대 데이터 수는 초기 데이터 셋에 포함된 데이터 수의 2배 이상이 될 수도 있다.
도 2는 도 1의 방법을 구현하기 위한 알고리즘의 예시도이다.
도 2를 참조하면, 먼저 교정 데이터 셋(초기 데이터 셋에 해당)을 D, 설정된 갱신 횟수를 N이라 하고, 반복 실행을 위해 값이 변동하는 변수 n을 초기값 0으로 설정한다.
1번 과정: MSE 손실 값을 이용하는 특성상 양자화된 모델(제2 신경망 모델)이 필요하므로, percentile 등의 저비용 학습 후 양자화(Post Training Quantization, PTQ) 기법을 통해 기존 모델을 양자화한다. 이때, 증강 데이터 셋 Daug의 초기값은 초기 데이터 셋 D으로 설정된다.
2번 과정: 초기 데이터 셋 D의 원소인 x에 대해, x를 입력으로 한 제1 신경망 모델의 제1 출력 값과, 양자화된 x를 입력으로 한 제2 신경망 모델의 제2 출력 값을 이용하여 MSE에 기초한 손실 값을 산출한다. 예를 들어, MSE에 기초한 손실 값은 제1 출력 값과 제2 출력 값을 이용하여 산출된 MSE 값에 -1을 곱한 값일 수 있다. 구체적으로, a)에 도시된 것처럼 MSE에 기초한 손실 값은 각 신경망 모델의 마지막 레이어의 출력 값을 이용하여 산출될 수 있으나, 각 신경망 모델에 포함된 적어도 일부 레이어 각각의 출력 값을 이용하여 산출된 MSE에 기초한 손실 값들의 가중치 합일 수도 있다. 이후, 경사하강법(gradient descent)을 통해 N회 동안 반복하여 갱신하고, n번 갱신된 입력 x를 증강 데이터 셋 Daug에 추가한다.
3번 과정: 증강 데이터 셋 Daug을 반환한다.
도 3 및 4는 도 1의 방법의 반복 조건을 구체화한 도면이다.
먼저, 전자 장치(110)는 제1 신경망 모델을 양자화(quantization)하여 제2 신경망 모델을 생성할 수 있다(S310, S410).
이후, 전자 장치(110)는 초기 데이터 셋에 포함된 임의의 초기 데이터에 기반하여, 제1 신경망 모델의 제1 출력 값 및 제2 신경망 모델의 제2 출력 값을 획득할 수 있다(S320, S420).
이후, 전자 장치(110)는 제1 출력 값과 제2 출력 값에 기반하여 양자화 에러(quantization error)를 증가시킬 수 있는 손실 값을 산출할 수 있다(S330, S430).
이후, 전자 장치(110)는 손실 값에 기반하여 초기 데이터를 갱신함으로써 갱신 데이터를 생성할 수 있다(S340, S440).
이후, 전자 장치(110)는 갱신 데이터를 증강 데이터 셋에 포함시킬 수 있다(S350, S450).
이후, 단계 S360에 따르면, 전자 장치(110)는 초기 데이터가 손실 값이 감소하는 방향으로 사전 설정된 갱신 횟수만큼 갱신되었는지 판단하고, 초기 데이터가 설정된 갱신 횟수만큼 갱신된 경우, 반복 수행을 종료할 수 있다.
한편, 단계 S460에 따르면, 전자 장치(110)는 초기 데이터가 손실 값이 임계 손실 값 이하가 될 때까지 갱신되었는지 판단하고, 초기 데이터가 손실 값이 임계 손실 값 이하가 될 때까지 갱신된 경우, 반복 수행을 종료할 수 있다.
도 5는 다른 실시 예에 따른 데이터 증강 방법을 설명하기 위한 흐름도이다.
단계 S510에서, 전자 장치(110)는 초기 데이터 셋에 포함된 임의의 초기 데이터에 기반하여, 제1 신경망 모델의 제1 출력 값을 획득한다. 도 1의 방법과 비교하면, 제1 신경망 모델을 양자화하여 제2 신경망 모델을 생성하는 과정이 수행되지 않는다. 이는 도 5는 MSE에 기초한 손실 값이 아닌 다른 종류의 손실 값을 사용하는 것을 전제로 하기 때문인데, MSE에 기초한 손실 값의 계산을 위해서는 모델의 양자화 및 입력의 양자화가 요구되므로 제1 신경망 모델, 제2 신경망 모델, 입력, 양자화된 입력을 저장하기 위한 메모리 비용이 필연적으로 증가한다. 도 5의 방법은 이러한 사항을 개선할 수 있도록 새로운 종류의 손실 값을 이용하는 실시 예에 관한 것이다.
단계 S520에서, 전자 장치(110)는 제1 출력 값에 기반하여 양자화 에러(quantization error)를 증가시킬 수 있는 손실 값을 산출한다.
이때, 일 실시예에 따르면, 손실 값은 제1 출력 값에 포함된 아웃라이어(outlier) 값과 제1 출력 값에 포함된 다른 값들 사이의 거리 내지는 제1 출력 값에 포함된 값들 중 아웃라이어 값의 비율에 기초한 손실 값일 수 있다.
구체적으로, 일 실시 예에 따르면, 전자 장치(110)가 산출하는 손실 값은 제1 출력 값에 기반한 아웃라이어 손실 값일 수 있다. 본 개시에 있어서, 아웃라이어 손실 값은 손실 함수에 대한 입력(즉, 제1 출력 값)에 포함된 값들 중 크기가 큰 상위 K개(이때, K는 2 이상의 자연수)의 값들의 합에 -1을 곱한 값으로 정의되거나, 손실 함수에 대한 입력에 포함된 값들 중 크기가 작은 하위 K개의 값들의 합으로 정의될 수 있다.
다른 실시 예에 따르면, 전자 장치(110)가 산출하는 손실 값은 제1 출력 값에 기반한 첨도(kurtosis) 손실 값일 수 있다. 본 개시에 있어서, 첨도 손실 값은 손실 함수에 대한 입력(즉, 제1 출력 값)의 표본 평균과 표본 표준 편차에 기반하여 정의될 수 있다. 구체적으로, 첨도 손실 값은 다음의 수학식 1에 의해 정의될 수 있다.
[수학식 1]
이때, 은 첨도 손실 값, X는 손실 함수에 대한 입력, 는 X의 표본 평균, 는 X의 표본 표준 편차를 나타낸다.
단계 S530에서, 전자 장치(110)는 손실 값에 기반하여 초기 데이터를 갱신함으로써 갱신 데이터를 생성한다.
단계 S540에서, 전자 장치(110)는 갱신 데이터를 증강 데이터 셋에 포함시킨다.
단계 S550에서, 전자 장치(110)는 설정된 종료 조건을 충족할 때까지, 초기 데이터 셋에 포함된 나머지 데이터 중 적어도 일부를 입력으로 하여 단계 S510 내지 S540을 반복 수행할 수 있다.
도 6은 도 5의 방법을 구현하기 위한 제1 알고리즘의 예시도이다.
도 5를 참조하면, 먼저 교정 데이터 셋(초기 데이터 셋에 해당)을 D, 설정된 갱신 횟수를 N이라 하고, 반복 실행을 위해 값이 변동하는 변수 n을 초기값 0으로 설정한다.
1번 과정: 초기 데이터 셋의 원소인 x를 제1 신경망 모델에 입력하고, 제1 신경망 모델의 출력 값을 이용하여 아웃라이어 손실(Outlier loss) 값을 산출한다. 구체적으로, a)에 도시된 것처럼 아웃라이어 손실 값은 제1 신경망 모델의 마지막 레이어의 출력 값을 이용하여 산출될 수 있으나, 제1 신경망 모델에 포함된 적어도 일부 레이어 각각의 출력 값을 이용하여 산출된 아웃라이어 손실들의 가중치 합일 수도 있다. 이후, 경사하강법(gradient descent)을 통해 N회 동안 반복하여 갱신하고, n번 갱신된 입력 x를 증강 데이터 셋 Daug에 추가한다.
2번 과정: 증강 데이터 셋 Daug을 반환한다.
도 7은 도 5의 방법을 구현하기 위한 제2 알고리즘의 예시도이다.
도 6을 참조하면, 먼저 교정 데이터 셋(초기 데이터 셋에 해당)을 D, 설정된 갱신 횟수를 N이라 하고, 반복 실행을 위해 값이 변동하는 변수 n을 초기값 0으로 설정한다.
1번 과정: 초기 데이터 셋의 원소인 x를 제1 신경망 모델에 입력하고, 모델의 출력 값을 이용하여 첨도(Kurtosis) 손실 값을 산출한다. 구체적으로, a)에 도시된 것처럼 첨도 손실 값은 제1 신경망 모델의 마지막 레이어의 출력 값을 이용하여 산출될 수 있으나, 제1 신경망 모델에 포함된 적어도 일부 레이어 각각의 출력 값을 이용하여 산출된 첨도 손실들의 가중치 합일 수도 있다. 이후, 경사하강법(gradient descent)을 통해 N회 동안 반복하여 갱신하고, n번 갱신된 입력 x를 증강 데이터 셋 Daug에 추가한다.
2번 과정: 증강 데이터 셋 Daug을 반환한다.
도 8 및 9는 도 5의 방법의 반복 조건을 구체화한 도면이다.
먼저, 전자 장치(110)는 초기 데이터 셋에 포함된 임의의 초기 데이터에 기반하여, 제1 신경망 모델의 제1 출력 값을 획득할 수 있다(S810, S910).
이후, 전자 장치(110)는 제1 출력 값에 기반하여 양자화 에러(quantization error)를 증가시킬 수 있는 손실 값을 산출할 수 있다(S820, S920).
이후, 전자 장치(110)는 손실 값에 기반하여 초기 데이터를 갱신함으로써 갱신 데이터를 생성할 수 있다(S830, S930).
이후, 전자 장치(110)는 갱신 데이터를 증강 데이터 셋에 포함시킬 수 있다(S840, S940).
이후, 단계 S850에 따르면, 전자 장치(110)는 초기 데이터가 손실 값이 감소하는 방향으로 사전 설정된 갱신 횟수만큼 갱신되었는지 판단하고, 초기 데이터가 상기 갱신 횟수만큼 갱신된 경우, 상기 반복 수행을 종료할 수 있다.
한편, 단계 S950에 따르면, 전자 장치(110)는 초기 데이터가 손실 값이 임계 손실 값 이하가 될 때까지 갱신되었는지 판단하고, 초기 데이터가 손실 값이 임계 손실 값 이하가 될 때까지 갱신된 경우, 반복 수행을 종료할 수 있다.
도 10은 또 다른 실시 예에 따른 데이터 증강 방법을 설명하기 위한 흐름도이다.
단계 S1010에서, 전자 장치(110)는 제1 신경망 모델의 계산량 지표의 값을 확인한다.
일 실시 예에 따르면, 전자 장치(110)는 제1 신경망 모델의 MAC(Multiply-Accumulate) 값을 계산량 지표 값으로써 확인할 수 있다.
다른 실시 예에 따르면, 전자 장치(110)는 제1 신경망 모델의 FLOPs(Floating point Operations) 값을 계산량 지표 값으로써 확인할 수 있다.
단계 S1020에서, 전자 장치(110)는 계산량 지표의 값이 제1 임계 지표 값 이하인 경우, 단계 S110 내지 S160에 도시된 방법을 수행하고, 계산량 지표의 값이 제1 임계 지표 값을 초과할 경우, 단계 S510 내지 S550에 도시된 방법을 수행한다.
구체적으로, 전자 장치(110)는 계산량 지표의 값이 제1 임계 지표 값 이하인 경우, 제1 출력 값과 제2 출력 값을 이용한 MSE에 기초하여 산출된 손실 값에 기반하여 데이터를 증강시킬 수 있다.
일 실시 예에 따르면, 전자 장치(110)는 계산량 지표의 값이 제1 임계 지표 값을 초과하면서 제1 임계 지표 값보다 큰 제2 임계 지표 값 이하인 경우, 첨도(kurtosis) 손실 값에 기반하여 단계 S510 내지 S550에 도시된 방법을 수행할 수 있다. 구체적으로, 전자 장치(110)는 계산량이 상대적으로 중간 구간에 위치하는 모델의 경우, 첨도 손실 값에 기반하여 데이터를 증강시킬 수 있다.
일 실시 예에 따르면, 전자 장치(110)는 계산량 지표의 값이 제2 임계 지표 값을 초과할 경우, 아웃라이어(outlier) 손실 값에 기반하여 단계 S510 내지 S550에 도시된 방법을 수행할 수 있다. 구체적으로, 전자 장치(110)는 계산량이 상대적으로 매우 큰 모델의 경우, 아웃라이어 손실 값에 기반하여 데이터를 증강시킬 수 있다.
이를 통해, 전자 장치(110)는 모델의 계산량을 고려하여, 계산량이 많은 모델일수록 비교적 데이터 증강에 필요한 연산이 간단한 손실 함수를 적용하여, 모델의 계산량 한계로 인해 데이터가 제대로 증강되지 않는 상황을 방지할 수 있다.
도 11은 일 실시 예에 따른 데이터 증강을 위한 전자 장치를 설명하기 위한 블록도이다.
전자 장치(110)는 일 실시 예에 따라, 프로세서(111) 및 메모리(113)를 포함할 수 있다. 일 실시 예에서, 전자 장치(110)는 트랜시버나 통신 인터페이스를 통하여 외부 서버 또는 데이터베이스와 연결되고, 데이터를 교환할 수 있다.
프로세서(111)는 도 1 내지 도 10을 통하여 전술한 적어도 하나의 방법을 수행할 수 있다. 메모리(113)는 도 1 내지 도 10을 통하여 전술한 적어도 하나의 방법을 수행하기 위한 정보를 저장할 수 있다. 메모리(113)는 휘발성 메모리 또는 비휘발성 메모리일 수 있다.
프로세서(111)는 프로그램을 실행하고, 정보를 제공하기 위해 전자 장치(110)를 제어할 수 있다. 프로세서(111)에 의하여 실행되는 프로그램의 코드는 메모리(113)에 저장될 수 있다.
프로세서(111)는 메모리(113)와 연결되어, 제1 신경망 모델의 계산량 지표의 값을 확인하고, 계산량 지표의 값이 제1 임계 지표 값 이하인 경우, 도 1의 방법을 수행하고, 계산량 지표의 값이 상기 제1 임계 지표 값을 초과할 경우, 도 5의 방법을 수행할 수 있다.
일 실시 예에 따르면, 프로세서(111)는 메모리(113)와 연결되어, 계산량 지표의 값이 제1 임계 지표 값을 초과하면서 제1 임계 지표 값보다 큰 제2 임계 지표 값 이하인 경우, 첨도(kurtosis) 손실 값에 기반하여 도 5의 방법을 수행할 수 있다.
일 실시 예에 따르면, 프로세서(111)는 메모리(113)와 연결되어, 계산량 지표의 값이 제2 임계 지표 값을 초과할 경우, 아웃라이어(outlier) 손실 값에 기반하여 도 5의 방법을 수행할 수 있다.
도 11에 도시된 전자 장치(110)는 본 실시 예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 11에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시 예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
전술한 실시 예들에 따른 장치는 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(permanent storage), 외부 장치와 통신하는 통신 포트, 터치 패널, 키(key), 버튼 등과 같은 사용자 인터페이스 장치 등을 포함할 수 있다. 소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 상기 프로세서상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다. 여기서 컴퓨터가 읽을 수 있는 기록 매체로 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-Access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
본 실시 예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 실시 예는 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩 업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 실시 예는 전자적인 환경 설정, 신호 처리, 메시지 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. “매커니즘”, “요소”, “수단”, “구성”과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
전술한 실시 예들은 일 예시일 뿐 후술하는 청구항들의 범위 내에서 다른 실시 예들이 구현될 수 있다.
110: 전자 장치
111: 프로세서
113: 메모리

Claims (15)

  1. 제1 신경망 모델을 양자화(quantization)하여 제2 신경망 모델을 생성하는 단계;
    초기 데이터 셋에 포함된 임의의 초기 데이터에 기반하여, 상기 제1 신경망 모델의 제1 출력 값 및 상기 제2 신경망 모델의 제2 출력 값을 획득하는 단계;
    상기 제1 출력 값과 상기 제2 출력 값에 기반하여 양자화 에러(quantization error)를 증가시킬 수 있는 손실 값을 산출하는 단계;
    상기 손실 값에 기반하여 상기 초기 데이터를 갱신함으로써 갱신 데이터를 생성하는 단계;
    상기 갱신 데이터를 증강 데이터 셋에 포함시키는 단계; 및
    설정된 종료 조건을 충족할 때까지, 상기 초기 데이터 셋에 포함된 나머지 데이터 중 적어도 일부를 입력으로 하여 상기 제1 출력 값 및 상기 제2 출력 값을 획득하는 단계, 상기 손실 값을 산출하는 단계, 상기 갱신 데이터를 생성하는 단계 및 상기 갱신 데이터를 증강 데이터 셋에 포함시키는 단계를 반복 수행하는 단계를 포함하는, 데이터 증강 방법.
  2. 제1항에 있어서,
    상기 제2 신경망 모델을 생성하는 단계는,
    상기 제1 신경망 모델의 복수의 네트워크 파라미터 중 적어도 일부의 네트워크 파라미터의 값들을 제한된 범위의 이산 값(discrete value)으로 매핑하는 것을 특징으로 하는, 데이터 증강 방법.
  3. 제1항에 있어서,
    상기 손실 값은,
    상기 제1 출력 값과 상기 제2 출력 값을 이용한 평균 제곱 오차(mean square error, mse)에 기초한 손실 값인, 데이터 증강 방법.
  4. 제1항에 있어서,
    상기 데이터 증강 방법은,
    상기 초기 데이터가 상기 손실 값이 감소하는 방향으로 사전 설정된 갱신 횟수만큼 갱신되었는지 판단하는 단계; 및
    상기 초기 데이터가 상기 갱신 횟수만큼 갱신된 경우, 상기 반복 수행을 종료하는 단계를 더 포함하는, 데이터 증강 방법.
  5. 제1항에 있어서,
    상기 데이터 증강 방법은,
    상기 초기 데이터가 상기 손실 값이 임계 손실 값 이하가 될 때까지 갱신되었는지 판단하는 단계; 및
    상기 초기 데이터가 상기 손실 값이 임계 손실 값 이하가 될 때까지 갱신된 경우, 상기 반복 수행을 종료하는 단계를 더 포함하는, 데이터 증강 방법.
  6. 초기 데이터 셋에 포함된 임의의 초기 데이터에 기반하여, 제1 신경망 모델의 제1 출력 값을 획득하는 단계;
    상기 제1 출력 값에 기반하여 양자화 에러(quantization error)를 증가시킬 수 있는 손실 값을 산출하는 단계;
    상기 손실 값에 기반하여 상기 초기 데이터를 갱신함으로써 갱신 데이터를 생성하는 단계;
    상기 갱신 데이터를 증강 데이터 셋에 포함시키는 단계; 및
    설정된 종료 조건을 충족할 때까지, 상기 초기 데이터 셋에 포함된 나머지 데이터 중 적어도 일부를 입력으로 하여 상기 제1 출력 값을 획득하는 단계, 상기 손실 값을 산출하는 단계, 상기 갱신 데이터를 생성하는 단계 및 상기 갱신 데이터를 증강 데이터 셋에 포함시키는 단계를 반복 수행하는 단계를 포함하는, 데이터 증강 방법.
  7. 제6항에 있어서,
    상기 손실 값은,
    상기 제1 출력 값에 포함된 아웃라이어(outlier) 값과 상기 제1 출력 값에 포함된 다른 값들 사이의 거리 또는 상기 제1 출력 값에 포함된 값들 중 아웃라이어 값의 비율에 기초한 손실 값인, 데이터 증강 방법.
  8. 제7항에 있어서,
    상기 손실 값은,
    상기 제1 출력 값에 기초한 아웃라이어(outlier) 손실 값인, 데이터 증강 방법.
  9. 제7항에 있어서,
    상기 손실 값은,
    상기 제1 출력 값에 기초한 첨도(kurtosis) 손실 값인, 데이터 증강 방법.
  10. 제6항에 있어서,
    상기 데이터 증강 방법은,
    상기 초기 데이터가 상기 손실 값이 감소하는 방향으로 사전 설정된 갱신 횟수만큼 갱신되었는지 판단하는 단계; 및
    상기 초기 데이터가 상기 갱신 횟수만큼 갱신된 경우, 상기 반복 수행을 종료하는 단계를 더 포함하는, 데이터 증강 방법.
  11. 제6항에 있어서,
    상기 데이터 증강 방법은,
    상기 초기 데이터가 상기 손실 값이 임계 손실 값 이하가 될 때까지 갱신되었는지 판단하는 단계; 및
    상기 초기 데이터가 상기 손실 값이 임계 손실 값 이하가 될 때까지 갱신된 경우, 상기 반복 수행을 종료하는 단계를 더 포함하는, 데이터 증강 방법.
  12. 제1 신경망 모델의 계산량 지표의 값을 확인하는 단계;
    상기 계산량 지표의 값이 제1 임계 지표 값 이하인 경우, 청구항 1의 방법을 수행하는 단계; 및
    상기 계산량 지표의 값이 상기 제1 임계 지표 값을 초과할 경우, 청구항 6의 방법을 수행하는 단계를 포함하는, 데이터 증강 방법.
  13. 제12항에 있어서,
    상기 청구항 6의 방법을 수행하는 단계는,
    상기 계산량 지표의 값이 상기 제1 임계 지표 값을 초과하면서 상기 제1 임계 지표 값보다 큰 제2 임계 지표 값 이하인 경우, 첨도(kurtosis) 손실 값에 기반하여 청구항 6의 방법을 수행하는 단계; 및
    상기 계산량 지표의 값이 상기 제2 임계 지표 값을 초과할 경우, 아웃라이어(outlier) 손실 값에 기반하여 청구항 6의 방법을 수행하는 단계를 포함하는, 데이터 증강 방법.
  14. 제1항 내지 제13항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 비일시적 기록 매체.
  15. 데이터 증강을 위한 전자 장치로서,
    명령어를 저장하는 메모리 및 프로세서를 포함하고,
    상기 프로세서는, 상기 메모리와 연결되어,
    제1 신경망 모델의 계산량 지표의 값을 확인하고,
    상기 계산량 지표의 값이 제1 임계 지표 값 이하인 경우, 청구항 1의 방법을 수행하고,
    상기 계산량 지표의 값이 상기 제1 임계 지표 값을 초과할 경우, 청구항 6의 방법을 수행하는, 전자 장치.
KR1020220140357A 2022-10-27 2022-10-27 신경망의 양자화를 위한 데이터 증강 장치 및 방법 KR20240059283A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220140357A KR20240059283A (ko) 2022-10-27 2022-10-27 신경망의 양자화를 위한 데이터 증강 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220140357A KR20240059283A (ko) 2022-10-27 2022-10-27 신경망의 양자화를 위한 데이터 증강 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20240059283A true KR20240059283A (ko) 2024-05-07

Family

ID=91078199

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220140357A KR20240059283A (ko) 2022-10-27 2022-10-27 신경망의 양자화를 위한 데이터 증강 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20240059283A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220109301A (ko) 2021-01-28 2022-08-04 삼성전자주식회사 딥 러닝 모델용 양자화 방법 및 양자화 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220109301A (ko) 2021-01-28 2022-08-04 삼성전자주식회사 딥 러닝 모델용 양자화 방법 및 양자화 장치

Similar Documents

Publication Publication Date Title
US20190251165A1 (en) Conversational agent
CN112597754B (zh) 文本纠错方法、装置、电子设备和可读存储介质
CN113792855B (zh) 一种模型训练及字库建立方法、装置、设备和存储介质
CN112861548B (zh) 自然语言生成及模型的训练方法、装置、设备和存储介质
US20170155744A1 (en) Network packet management server, network packet management method and computer readable medium thereof
CN113570030A (zh) 数据处理方法、装置、设备以及存储介质
KR20220034080A (ko) 순환 생성 네트워크 모델의 훈련 방법, 글자 라이브러리의 구축 방법 및 장치, 전자 기기, 저장 매체, 컴퓨터 프로그램
KR20230044318A (ko) 모델 파라미터 조정 방법, 기기, 저장매체 및 프로그램 제품
CN114091655A (zh) 神经网络量化方法、装置、存储介质以及终端
CN114928574A (zh) 信息发送方法、装置、电子设备和计算机可读介质
CN114358023A (zh) 智能问答召回方法、装置、计算机设备及存储介质
KR20240059283A (ko) 신경망의 양자화를 위한 데이터 증강 장치 및 방법
CN117492743A (zh) 基于大语言模型的目标应用生成方法、装置及存储介质
CN117351299A (zh) 图像生成及模型训练方法、装置、设备和存储介质
JP2022518671A (ja) デュアル・ネットワークと共に訓練された主ネットワークを介した多目的タスクの実行
CN115186738B (zh) 模型训练方法、装置和存储介质
US11876756B2 (en) Graph-based natural language generation for conversational systems
CN116933189A (zh) 一种数据检测方法和装置
CN114048863A (zh) 数据处理方法、装置、电子设备以及存储介质
CN113536006B (zh) 生成图片的方法、装置、设备、存储介质和计算机产品
CN112749560A (zh) 地址文本处理方法、装置、设备及计算机存储介质
CN113362428B (zh) 用于配置颜色的方法、装置、设备、介质和产品
US20190197564A1 (en) Product space representation mapping
CN115309888B (zh) 图表摘要的生成方法和生成模型的训练方法、装置
CN116187473B (zh) 联邦学习方法、装置、电子设备和计算机可读存储介质