KR102242904B1 - 압축 알고리즘의 파라미터를 추정하는 방법 및 장치 - Google Patents

압축 알고리즘의 파라미터를 추정하는 방법 및 장치 Download PDF

Info

Publication number
KR102242904B1
KR102242904B1 KR1020190154346A KR20190154346A KR102242904B1 KR 102242904 B1 KR102242904 B1 KR 102242904B1 KR 1020190154346 A KR1020190154346 A KR 1020190154346A KR 20190154346 A KR20190154346 A KR 20190154346A KR 102242904 B1 KR102242904 B1 KR 102242904B1
Authority
KR
South Korea
Prior art keywords
compression algorithm
final image
parameter
estimating
neural network
Prior art date
Application number
KR1020190154346A
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 KR1020190154346A priority Critical patent/KR102242904B1/ko
Application granted granted Critical
Publication of KR102242904B1 publication Critical patent/KR102242904B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3086Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing a sliding window, e.g. LZ77
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6005Decoder aspects
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6017Methods or arrangements to increase the throughput

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)

Abstract

압축 알고리즘의 파라미터를 추정하는 방법에 있어서, 압축 알고리즘에 의해 압축된 데이터를 입력 받고, 압축된 데이터를 각각이 복수 개의 비트들을 포함하는 1*M(M은 자연수)차원의 벡터들로 분할하고, 벡터들 각각을 m*m(m은 자연수)차원의 벡터들로 변환하여 복수의 이진 영상(binary image)들을 생성하고, 복수의 이진 영상들을 합하여 최종 이미지를 획득하고, 최종 이미지를 뉴럴 네트워크에 입력하여 상기 압축 알고리즘의 파라미터를 추정할 수 있다.

Description

압축 알고리즘의 파라미터를 추정하는 방법 및 장치{Method and apparatus for estimating parameters of compression algorithm}
본 개시는 압축 알고리즘의 파라미터를 추정하는 방법 및 장치에 관한 것이다.
LZ77 압축 알고리즘은 현재 압축하고자 하는 문자열이 이미 출현하였는지 확인하고 출현하였다면 문자열을 출력하는 대신 이미 출현한 문자열에 대한 포인터의 위치와 일치하는 길이를 출력하는 방식으로 데이터를 압축하는 방식이다. LZ77 압축 알고리즘은 서치 버퍼와 룩어헤드 버퍼를 사용하여 데이터를 압축할 수 있다.
LZ77 압축 알고리즘에 의해 압축된 데이터의 압축 해제를 수행하기 위해서는, 서치 버퍼의 크기를 알아야 한다. 압축된 데이터에는 압축 알고리즘의 적용 시 설정된 서치 버퍼의 크기에 대한 정보를 포함하는 헤더가 존재할 수 있으나, 헤더가 손상된 경우에는 압축된 데이터를 압축 해제할 수 없다는 문제점이 있다.
기존에는 이러한 문제점을 해결하기 위해 무차별 대입(brute-force search)을 이용하여, 압축 해제가 될 때까지 서치 버퍼의 크기를 변경해 가며 압축 해제를 시도하는 방법이 있었으나, 많은 계산량과 긴 시간을 필요로 한다는 한계 점이 있었다.
다양한 실시예들은 압축 알고리즘의 파라미터를 추정하는 방법 및 장치를 제공하는데 있다. 본 개시가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
본 개시의 일 측면에 따르면, 압축 알고리즘의 파라미터를 추정하는 방법에 있어서, 상기 압축 알고리즘에 의해 압축된 데이터를 입력 받는 단계; 상기 압축된 데이터를 각각이 복수 개의 비트들을 포함하는 1*M(M은 자연수)차원의 벡터들로 분할하는 단계; 상기 벡터들 각각을 m*m(m은 자연수)차원의 벡터들로 변환하여 복수의 이진 영상(binary image)들을 생성하는 단계; 상기 복수의 이진 영상들을 합하여 최종 이미지를 획득하는 단계; 및 상기 최종 이미지를 뉴럴 네트워크에 입력하여 상기 압축 알고리즘의 파라미터를 추정하는 단계; 를 포함할 수 있다.
또한, 상기 최종 이미지는, 상기 복수 개의 비트들의 개수 및 상기 압축 알고리즘의 파라미터에 기초하여 결정될 수 있다.
또한, 상기 획득하는 단계는, 상기 최종 이미지에 해당하는 벡터에 포함된 값들 각각이 0과 1 사이의 값을 가지도록 정규화시키는 단계; 를 더 포함할 수 있다.
또한, 상기 압축 알고리즘은 LZ(Lempel-Ziv)77 압축 알고리즘에 해당하고, 상기 파라미터는 서치 버퍼(search buffer)의 크기 값에 해당할 수 있다.
본 개시의 다른 측면에 따르면, 압축 알고리즘의 파라미터를 추정하는 방법을 구현하기 위한 프로그램이 기록된, 컴퓨터로 판독 가능한 기록 매체에 있어서, 상기 방법은, 상기 압축 알고리즘에 의해 압축된 데이터를 입력 받는 단계;
상기 압축된 데이터를 각각이 복수 개의 비트들을 포함하는 1*M(M은 자연수)차원의 벡터들로 분할하는 단계; 상기 벡터들 각각을 m*m(m은 자연수)차원의 벡터들로 변환하여 복수의 이진 영상(binary image)들을 생성하는 단계; 상기 복수의 이진 영상들을 원소 별(element-wise)로 합하여 최종 이미지를 획득하는 단계; 및 상기 최종 이미지를 뉴럴 네트워크에 입력하여 상기 압축 알고리즘의 파라미터를 추정하는 단계; 를 포함할 수 있다.
본 개시의 또 다른 측면에 따르면, 하드웨어와 결합되어, 압축 알고리즘의 파라미터를 추정하는 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램에 있어서, 상기 방법은, 상기 압축 알고리즘에 의해 압축된 데이터를 입력 받는 단계;
상기 압축된 데이터를 각각이 복수 개의 비트들을 포함하는 1*M(M은 자연수)차원의 벡터들로 분할하는 단계; 상기 벡터들 각각을 m*m(m은 자연수)차원의 벡터들로 변환하여 복수의 이진 영상(binary image)들을 생성하는 단계; 상기 복수의 이진 영상들을 원소 별(element-wise)로 합하여 최종 이미지를 획득하는 단계; 및 상기 최종 이미지를 뉴럴 네트워크에 입력하여 상기 압축 알고리즘의 파라미터를 추정하는 단계; 를 포함할 수 있다.
본 개시의 또 다른 측면에 따르면, 파라미터 추정 장치는, 하나 이상의 명령어(instruction)를 저장하는 메모리; 및 상기 하나 이상의 명령어를 실행함으로써, 압축 알고리즘에 의해 압축된 데이터를 입력 받고, 상기 압축된 데이터를 각각이 복수 개의 비트들을 포함하는 1*M(M은 자연수)차원의 벡터들로 분할하고, 상기 벡터들 각각을 m*m(m은 자연수)차원의 벡터들로 변환하여 복수의 이진 영상(binary image)들을 생성하고, 상기 복수의 이진 영상들을 원소 별(element-wise)로 합하여 최종 이미지를 획득하고, 상기 최종 이미지를 뉴럴 네트워크에 입력하여 상기 압축 알고리즘의 파라미터를 추정하는 프로세서를 포함할 수 있다.
또한, 상기 최종 이미지는, 상기 복수 개의 비트들의 개수 및 상기 압축 알고리즘의 파라미터에 기초하여 결정될 수 있다.
또한, 상기 프로세서는, 상기 최종 이미지에 포함되어 있는 벡터들 각각의 값이 0과 1 사이의 값을 가지도록 정규화시킬 수 있다.
또한, 상기 압축 알고리즘은 LZ(Lempel-Ziv)77 압축 알고리즘에 해당하고, 상기 파라미터는 서치 버퍼(search buffer)의 크기 값에 해당할 수 있다.
도 1은 파라미터 추정 장치의 하드웨어 구성의 일 예를 도시한 블록도이다.
도 2는 컨벌루션 뉴럴 네트워크(Convolution Neural Network)의 아키텍처의 일 예를 설명하기 위한 도면이다.
도 3은 압축 알고리즘의 파라미터를 추정하는 방법의 일 예를 나타내는 흐름도이다.
도 4는 압축된 데이터로부터 최종 이미지를 획득하는 일 예를 나타내는 도면이다.
도 5는 최종 이미지의 일 예를 나타내는 도면이다.
도 6은 압축 알고리즘의 파라미터를 추정하는 방법에 적용되는 컨볼루션 뉴럴 네트워크의 일 예를 나타내는 도면이다.
이하 첨부된 도면을 참조하면서 오로지 예시를 위한 실시예들을 상세히 설명하기로 한다. 하기 설명은 실시예들을 구체화하기 위한 것일 뿐 발명의 권리 범위를 제한하거나 한정하는 것이 아님은 물론이다. 상세한 설명 및 실시예로부터 당해 기술분야의 전문가가 용이하게 유추할 수 있는 것은 권리범위에 속하는 것으로 해석된다.
본 명세서에서 사용되는 '구성된다' 또는 '포함한다' 등의 용어는 명세서 상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
또한, 본 명세서에서 사용되는 '제 1' 또는 '제 2' 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용할 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다.
본 명세서에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 실시예들은 압축 알고리즘의 파라미터를 추정하는 방법 및 장치에 관한 것으로서 이하의 실시예들이 속하는 기술 분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서는 자세한 설명을 생략한다.
도 1은 파라미터 추정 장치의 하드웨어 구성의 일 예를 도시한 블록도이다.
파라미터 추정 장치(100)는 PC(personal computer), 서버 디바이스, 모바일 디바이스, 임베디드 디바이스 등의 다양한 종류의 디바이스들로 구현될 수 있다. 나아가서, 파라미터 추정 장치(100)는 위와 같은 디바이스에 탑재되는 전용 하드웨어 가속기(HW accelerator)에 해당될 수 있고, 파라미터 추정 장치(100)는 뉴럴 네트워크 구동을 위한 전용 모듈인 NPU(neural processing unit), TPU(Tensor Processing Unit), Neural Engine 등과 같은 하드웨어 가속기일 수 있으나, 이에 제한되지 않는다.
도 1을 참고하면, 파라미터 추정 장치(100)는 프로세서(110) 및 메모리(120)를 포함한다. 도 1에 도시된 파라미터 추정 장치(100)에는 본 실시예들과 관련된 구성요소들만이 도시되어 있다. 따라서, 파라미터 추정 장치(100)에는 도 1에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음은 당해 기술분야의 통상의 기술자에게 자명하다.
프로세서(110)는 파라미터 추정 장치(100)를 실행하기 위한 전반적인 기능들을 제어하는 역할을 한다. 예를 들어, 프로세서(110)는 파라미터 추정 장치(100)내의 메모리(120)에 저장된 하나 이상의 명령어 또는 프로그램들을 실행함으로써, 파라미터 추정 장치(100)를 전반적으로 제어한다. 프로세서(110)는 파라미터 추정 장치(100) 내에 구비된 CPU(central processing unit), GPU(graphics processing unit), AP(application processor) 등으로 구현될 수 있으나, 이에 제한되지 않는다.
메모리(120)는 파라미터 추정 장치(100)내에서 처리되는 각종 데이터들을 저장하는 하드웨어로서, 예를 들어, 메모리(120)는 파라미터 추정 장치(100)에서 처리된 데이터들 및 처리될 데이터들을 저장할 수 있다. 또한, 메모리(120)는 파라미터 추정 장치(100)에 의해 구동될 애플리케이션들, 드라이버들 등을 저장할 수 있다. 메모리(120)는 DRAM(dynamic random access memory), SRAM(static random access memory) 등과 같은 RAM(random access memory), ROM(read-only memory), EEPROM(electrically erasable programmable read-only memory), CD-ROM, 블루레이 또는 다른 광학 디스크 스토리지, HDD(hard disk drive), SSD(solid state drive), 또는 플래시 메모리(120)를 포함할 수 있다.
프로세서(110)는, 뉴럴 네트워크(Neural Network)를 이용하여 압축 알고리즘의 파라미터를 추정할 수 있다. 뉴럴 네트워크는 시냅스의 결합으로 네트워크를 형성한 인공 뉴런이 학습을 통해 시냅스의 결합 세기를 변화시켜, 문제 해결 능력을 가지는 모델 전반을 의미한다.
구체적으로, 프로세서(110)는 다수의 숨겨진 계층(Hidden Layer)을 갖는 뉴럴 네트워크 구조인 딥 뉴럴 네트워크(Deep Neural Network)를 이용하여 압축 알고리즘의 파라미터를 효과적으로 추정할 수 있다.
압축 알고리즘은 예를 들어 LZ(Lempel-Ziv)77 압축 알고리즘에 해당할 수 있다. LZ77 압축 알고리즘은 무손실 압축 알고리즘에 해당하며, LZ77 압축 알고리즘의 적용 시 사용자는 2개의 파라미터들을 설정할 수 있다. 첫 번째 파라미터는 서치 버퍼 (search buffer)의 크기이고, 두 번째 파라미터는 룩어헤드 버퍼(lookahead buffer)의 크기이다.
LZ77 압축 알고리즘은 서치 버퍼와 룩어헤드 버퍼를 사용하여 데이터를 압축할 수 있다. 예를 들어, 압축되지 않은 원본 데이터의 일부 데이터는 룩어헤드 버퍼에 순차적으로 쌓이고, 압축된 데이터의 일부 데이터는 서치 버퍼에 순차적으로 쌓일 수 있다. LZ77 압축 알고리즘은 룩어헤드 버퍼와 서치 버퍼 각각에 존재하는 데이터를 서로 비교하여 두 버퍼 사이에 중복되는 데이터의 시작 위치와 중복되는 부호(code)의 개수에 관한 정보를 이진화하여 저장할 수 있다. 이 때 이진수로 표현되는 비트의 길이는 서치 버퍼의 크기에 따라 하기 수학식 1에 의해 결정될 수 있다.
Figure 112019122345371-pat00001
상기 수학식 1에서 S는 서치 버퍼의 크기고, L은 중복되는 데이터의 시작 위치와 중복되는 부호(code)의 개수에 관한 정보를 이진화하는 경우 표현되는 비트의 길이에 해당할 수 있다. 예를 들어 서치 버퍼의 크기가 S=1024=210으로 설정된 경우, L 값은 11이 될 수 있으며 중복되는 데이터의 시작 위치와 중복되는 부호(code)의 개수에 관한 정보는 11비트로 표현될 수 있다.
룩어헤드 버퍼와 서치 버퍼 각각에 존재하는 데이터 간 중복되는 데이터가 없는 경우에, LZ77 압축 알고리즘은 룩어헤드 버퍼의 가장 앞에 위치하는 부호 하나만을 이진화하여 저장할 수 있다. 이 때 부호는 ASCII 테이블을 기반으로 인코딩(encoding)되므로 8비트로 표현될 수 있다.
LZ77 압축 알고리즘의 압축 해제는 상술한 압축 과정의 역으로 수행될 수 있다. 압축 해제를 수행하기 위해서는 압축 알고리즘의 적용시 설정된 서치 버퍼의 크기에 해당하는 S를 알아야 한다. 서치 버퍼의 크기인 S를 알면, L에 해당하는 값을 알 수 있으며 이에 따라 압축 해제 시 압축된 데이터를 몇 비트씩 끊어서 읽어들일지 결정할 수 있다.
한편, 압축된 데이터에는 압축 알고리즘의 적용 시 설정된 서치 버퍼의 크기에 대한 정보를 포함하는 헤더가 존재할 수 있다. 그러나, 해커의 공격, 저장 매체의 손상, 데이터 전송 과정 중 데이터 손실 등의 이유로 헤더가 손상되는 경우에는 압축된 데이터를 압축 해제 할 수 없다는 문제점이 있다.
본 발명은 헤더 정보가 없는 경우에, 입력 받은 압축된 데이터로부터 압축 알고리즘의 적용 시 설정된 서치 버퍼의 크기를 뉴럴 네트워크를 이용하여 추정하는 방법을 제안한다.
구체적으로, 프로세서(110)는 압축된 데이터를 각각이 복수 개의 비트들을 포함하는 1 차원의 벡터들로 분할하고, 분할된 벡터들 각각을 2차원의 벡터들로 변환하여 복수의 이진 영상(binary image)들을 생성할 수 있다.
프로세서(110)는 복수의 이진 영상들에 기초하여 최종 이미지를 획득하고, 최종 이미지를 뉴럴 네트워크에 입력할 수 있다.
한편, 프로세서(110)는 1 차원의 벡터가 포함하는 비트들의 개수 및 압축 알고리즘의 파라미터의 다양한 조합 환경에서 학습 데이터를 이용하여 뉴럴 네트워크를 훈련시킬 수 있다. 학습 데이터는 1 차원의 벡터가 포함하는 비트들의 개수 및 압축 알고리즘의 파라미터의 조합에 따라 생성되는 최종 이미지와 압축 알고리즘의 적용 시 설정된 파라미터의 크기를 가리키는 라벨 값으로 구성될 수 있다.
프로세서(110)는 압축 알고리즘의 적용 시 설정된 파라미터의 크기에 따른 특성을 나타내는 최종 이미지를 뉴럴 네트워크의 입력의 형태로 하는 경우, 이미지 분류에 적합한 알고리즘인 컨벌루션 뉴럴 네트워크(Convolutional Neural Networks)를 이용할 수 있다. 이하, 도 2를 참조하여 컨벌루션 뉴럴 네트워크의 일 예를 설명한다.
도 2는 컨벌루션 뉴럴 네트워크(Convolution Neural Network)의 아키텍처의 일 예를 설명하기 위한 도면이다.
도 2를 참고하면, 컨벌루션 뉴럴 네트워크(2)는 컨벌루션 레이어 외에도 풀링 레이어(pooling layer) 및 풀리 커넥티드(fully connected) 레이어 등을 포함할 수 있다.
컨벌루션 뉴럴 네트워크(2)는 입력 이미지, 피처맵들(feature maps) 및 출력을 포함하는 복수 레이어들을 갖는 아키텍처로 구현될 수 있다. 컨벌루션 뉴럴 네트워크(2)에서 입력 이미지는 커널(kernel)이라 불리는 필터와의 컨벌루션 연산이 수행되고, 그 결과 피처맵들이 출력된다. 이때 생성된 출력 피처맵들은 입력 피처맵들로서 다시 커널과의 컨벌루션 연산이 수행되고, 새로운 피처맵들이 출력된다. 이와 같은 컨벌루션 연산이 반복적으로 수행된 결과, 최종적으로는 컨벌루션 뉴럴 네트워크(2)를 통한 입력 이미지의 특징들에 대한 인식 결과가 출력될 수 있다.
예를 들어, 도 2의 컨벌루션 뉴럴 네트워크(2)에 32x32 픽셀 크기의 이미지가 입력된 경우, 입력 이미지는 5x5 크기를 갖는 커널과의 컨벌루션 연산을 통해 28x28 픽셀 크기를 갖는 6개의 피처맵들로 출력될 수 있다. 이후에, 28x28 픽셀 크기를 갖는 6개의 피처맵들은 풀링 레이어에서 sub-sampling(pooling)을 통해 14x14 크기를 갖는 6개의 피처맵들로 출력될 수 있다. 이후에도, 14x14 피처맵들은 커널과의 반복적인 컨벌루션 연산을 통해 크기가 줄어들면서, 최종적으로는 1x1 픽셀 크기의 특징들이 출력될 수 있다.
컨벌루션 뉴럴 네트워크(2)는 여러 레이어들에서 컨벌루션 연산 및 서브-샘플링(또는 풀링) 연산을 반복적으로 수행함으로써 입력 이미지로부터 이미지 전체를 대표할 수 있는 강인한 특징들을 필터링하여 출력하고, 출력된 최종 특징들을 통해 입력 이미지의 인식 결과를 도출할 수 있다.
컨벌루션 뉴럴 네트워크(2)에서 컨벌루션 레이어에서의 컨벌루션 연산 및 풀링 레이어에서의 서브-샘플링(또는 풀링) 연산으로 의미있는 특징이 추출된 경우, 해당 특징에 대한 인식 또는 분류 동작은 풀리 커넥티드 레이어에서 수행될 수 있다.
한편, 컨벌루션 뉴럴 네트워크(2)를 구성하는 각 레이어의 출력은 활성화 함수의 결과값일 수 있으며, 활성화 함수는 예를 들어 ReLU(rectified linear unit) 함수 또는 소프트 맥스(soft max) 함수가 사용될 수 있다.
본 발명에서, 컨벌루션 뉴럴 네트워크(2)의 입력 이미지로 압축된 데이터로부터 획득한 최종 이미지가 입력될 수 있으며 컨벌루션 뉴럴 네트워크(2)를 구성하는 마지막 레이어의 활성 함수로 소프트 맥스 함수를 사용하여 최종 이미지에 해당하는 파라미터의 크기를 추정할 수 있으나, 컨벌루션 뉴럴 네트워크(2)의 구성은 다양한 변형이 가능하고 이에 한정되지는 않는다.
도 3은 압축 알고리즘의 파라미터를 추정하는 방법의 일 예를 나타내는 흐름도이다.
300 단계에서, 파라미터 추정 장치(100)는 압축 알고리즘에 의해 압축된 데이터를 입력 받을 수 있다. 압축 알고리즘은 LZ77 압축 알고리즘에 해당할 수 있으나 이에 제한되는 것은 아니다. 압축된 데이터를 압축 해제하려는 경우, 압축 알고리즘의 적용시 설정된 서치 버퍼의 크기를 알아야 한다.
도 4는 압축된 데이터로부터 최종 이미지를 획득하는 일 예를 나타내는 도면이다.
도 4를 참조하면, LZ77 압축 알고리즘에 의해 압축된 데이터(400)는 복수 개의 비트들을 포함할 수 있다.
다시 도 3을 참조하면, 310 단계에서 파라미터 추정 장치(100)는 압축된 데이터를 각각이 복수 개의 비트들을 포함하는 1*M(M은 자연수)차원의 벡터들로 분할할 수 있다.
도 4를 참조하면, 파라미터 추정 장치(100)는 압축된 데이터(400)를 각각이 M개의 비트들을 포함하는 1*M 차원의 벡터(410)들로 분할할 수 있다. 이 때, 1*M 차원의 벡터(410)는 하기 수학식 2와 같이 표현될 수 있다.
Figure 112019122345371-pat00002
상기 수학식 2에서 K(i)는 i번째 1*M 차원의 벡터(410)에 해당할 수 있다. bj(i)(j∈{1,2...M})는 1*M 차원의 벡터(410)에 포함된 비트들이며, 0 또는 1에 해당할 수 있다.
분할 과정을 통해서 생성된 1*M 차원의 벡터(410)들의 개수는 총 N개일 수 있다. 압축된 데이터(400)가 포함하는 비트들의 총 개수가 M의 배수가 아닌 경우에는, N번째 1*M 차원의 벡터(410)를 생성한 후 남는 비트들의 개수가 M보다 작을 수 있다. 이러한 경우에는 남은 비트들을 무시할 수 있다.
다시 도 3을 참조하면, 320 단계에서, 파라미터 추정 장치(100)는 벡터들 각각을 m*m(m은 자연수)차원의 벡터들로 변환하여 복수의 이진 영상(binary image)들을 생성할 수 있다.
파라미터 추정 장치(100)는 생성된 N개의 1*M 차원의 벡터(410)들 각각이 2차원의 배열을 가지도록 구조를 변형할 수 있다. 이 때, 이차원 배열은 m*m 차원의 벡터(430)에 해당할 수 있으며, 하기 수학식 3과 같이 표현된다.
Figure 112019122345371-pat00003
상기 수학식 3에서 B(i)는 i번째 1*M 차원의 벡터(410)를 이차원 배열 구조로 변형하였을 때 얻어지는 m*m 차원의 벡터(430)에 해당할 수 있다. 도 4를 참조하면, m*m 차원의 벡터(430)는 이진 영상(binary image)에 해당할 수 있다.
따라서, N개의 1*M 차원의 벡터(410)들로부터 N개의 이진 영상들이 생성될 수 있다.
330 단계에서, 파라미터 추정 장치(100)는 복수의 이진 영상들을 합하여 최종 이미지를 획득할 수 있다.
예를 들어, 파라미터 추정 장치(100)는 N개의 1*M 차원의 벡터(410)들로부터 생성된 N개의 이진 영상들을 하기 수학식 4와 같이 더할 수 있다.
Figure 112019122345371-pat00004
상기, 수학식 4에서
Figure 112019122345371-pat00005
은 복수의 이진 영상들 각각에 해당하는 m*m(m은 자연수)차원의 벡터들의 동일 위치에 있는 요소(element)들끼리 더하는 요소 별 합 연산자일 수 있다. Z는 N개의 이진 영상들을 모두 합하여 생성되는 이진 영상(430)에 해당할 수 있다.
또한, 파라미터 추정 장치(100)는 생성된 이진 영상(430) Z를 하기 수학식 5에 의해 정규화시킬 수 있다.
Figure 112019122345371-pat00006
상기 수학식 5에서, I는 이진 영상(430) Z를 정규화 시켰을 때 얻어지는 최종 이미지(440)에 해당한다. 정규화를 통해 최종 이미지(440) I에 해당하는 벡터에 포함된 값들 각각은 0과 1 사이의 값을 가질 수 있다. w는 이진 영상(430) Z에 해당하는 벡터에 포함된 값들 중에서 가장 작은 값을 의미하고, x는 이진 영상(430) Z에 해당하는 벡터에 포함된 값들 중에서 가장 큰 값을 의미할 수 있다.
도 5는 최종 이미지의 일 예를 나타내는 도면이다.
도 5는 압축 알고리즘의 적용 시 설정된 파라미터의 크기에 따라 다양한 형태를 갖는 최종 이미지들의 일 예를 나타낸다. 좀 더 구체적으로, 최종 이미지들은 파라미터 추정 장치(100)가 압축된 데이터를 각각이 복수 개의 비트들을 포함하는 1*M(M은 자연수)차원의 벡터들로 분할하는 경우 1*M차원의 벡터에 포함된 비트들의 개수 및 압축 알고리즘의 적용 시 설정된 파라미터의 크기의 조합에 따라 다양한 형태를 가질 수 있다.
다시 도 3을 참조하면, 340 단계에서, 파라미터 추정 장치(100)는 최종 이미지를 뉴럴 네트워크에 입력하여 압축 알고리즘의 파라미터를 추정할 수 있다. 예를 들어, 파라미터 추정 장치(100)는 LZ77 압축 알고리즘의 적용시 설정된 서치 버퍼의 크기 값을 추정할 수 있다.
도 6은 압축 알고리즘의 파라미터를 추정하는 방법에 적용되는 컨볼루션 뉴럴 네트워크의 일 예를 나타내는 도면이다.
도 6을 참조하면, 압축된 데이터로부터 생성한 최종 이미지를 입력으로 하여, 압축 알고리즘의 적용 시 설정된 서치 버퍼의 크기를 추정하는 컨볼루션 뉴럴 네트워크의 일 예가 도시되어 있다.
도 6에서 컨볼루션 뉴럴 네트워크에 입력되는 최종 이미지는 압축된 데이터를 각각이 900 개의 비트들을 포함하는 1*900 차원의 벡터들로 분할한 경우에 획득되는 이미지에 해당된다. 따라서, 입력되는 최종 이미지는 30*30 차원의 벡터에 해당할 수 있다.
컨볼루션 뉴럴 네트워크는 3개의 컨볼루션 레이어(convolutional layer) 및 1개의 완전 연결 레이어(fully connected layer)로 구성될 수 있다.
첫 번째 컨볼루션 레이어에서는, 입력된 최종 이미지와 5X5의 크기를 갖는 서로 다른 4개의 커널 간의 컨볼루션 연산을 수행하여 피처맵들을 생성할 수 있다. 이때, 생성되는 피처맵들의 개수는 사용된 필터의 개수와 동일할 수 있다. 생성된 4개의 피처맵들 각각에 활성화 함수(activation function)를 적용하여 활성화 맵 (activation map)을 생성할 수 있다. 활성화 함수는 ReLU 함수(Rectified Linear Unit function)에 해당할 수 있으나 이에 제한되는 것은 아니며, 계단 함수(step function) 또는 시그모이드 함수(sigmoid function) 등에 해당할 수도 있다. 한편, ReLU 함수는 하기 수학식 6과 같이 표현할 수 있다.
Figure 112019122345371-pat00007
또한, 생성된 4개의 활성화 맵들 각각에 대해서 2*2의 크기를 갖는 커널을 이용하여 풀링(pooling)을 수행할 수 있다. 컨벌루션의 연산 결과인 활성화 맵의 데이터의 크기를 줄이기 위하여 풀링을 수행할 수 있으며, 풀링 연산 시 커널이 위치하는 피처맵 내의 값들에서 특정 값을 뽑아낼 수 있다. 정보를 단순화하기 위한 풀링의 예로, 최대 풀링(max-pooling)이 있다. 이 경우, 풀링 연산 시 커널이 위치하는 피처맵 내의 값들에서 최대 값을 뽑아낼 수 있다.
구체적으로, 최대 풀링 연산은 2*2 크기의 커널을 활성화 맵 위에서 지그재그(zigzag)로 옮겨가며, 2*2 커널 내 존재하는 4개의 픽셀들 중 가장 큰 값을 대표값으로 뽑아낼 수 있다. 결과적으로, 활성화 맵의 크기가 30*30에서 15*15 로 줄어들 수 있다.
두 번째 컨볼루션 레이어에서는 15*15 크기의 활성화 맵 4개에 대해서 5*5의 크기를 갖는 서로 다른 8개의 필터를 이용해 컨볼루션 연산을 수행할 수 있다. 그 결과 생성된 생성된 8개의 특징맵들 각각에 ReLU 함수를 적용하여 활성화 맵을 생성할 수 있다. 생성된 8개의 활성화 맵 각각에 대해서 2*2 의 크기를 갖는 필터를 이용하여 맥스 풀링을 수행할 수 있다. 맥스 풀링을 수행한 활성화 맵의 크기는 15*15 에서 8*8 로 줄어들 수 있다.
세 번째 컨볼루션 레이어에서는 8*8 크기의 활성화 맵 8개에 대해서 5*5 의 크기를 갖는 서로 다른 8개의 필터를 이용해 컨볼루션 연산을 수행하여 특징맵을 생성할 수 있다. 생성된 8개의 특징맵들 각각에 ReLU 함수를 적용하여 활성화 맵을 생성할 수 있다. 최종적으로 8*8 크기의 활성화 맵 8개가 생성되며, 이를 512(=8*8**8)개의 1차원 벡터 형태로 변환할 수 있다.
한편, 세 번째 컨볼루션 레이어와 완전 연결 레이어 사이에 드랍 아웃 (dropout) 레이어를 추가할 수도 있다. 드랍 아웃 레이어는 뉴럴 네트워크가 학습 과정 중에 학습용 데이터에 오버피팅(overfitting)되는 문제를 막기 위한 것이다.
완전 연결 레이어에서는 생성된 512개의 노드들을 F개의 출력 노드들과 완전 연결시킬 수 있다. 이 때 출력 노드의 개수 F는 컨볼루션 뉴럴 네트워크가 추정할 수 있는 서로 다른 서치 버퍼 크기의 개수에 해당할 수 있다.
도 6에서 F는 4로 설정되었으며, 따라서 컨볼루션 뉴럴 네트워크가 추정할 수 있는 서로 다른 서치 버퍼 크기의 개수는 4이다. 예를 들어, 서로 다른 서치 버퍼의 크기는 각각 1024, 2048, 4096 및 8192일 수 있다. 이 때, 서치 버퍼의 크기 1024는 클래스 0, 서치 버퍼의 크기 2048는 클래스 1, 서치 버퍼의 크기 4096는 클래스 2, 서치 버퍼의 크기 8192는 클래스 3으로 설정할 수 있다. 그리고 컨볼루션 뉴럴 네트워크의 학습 과정에서 각 서치 버퍼의 크기에 해당하는 클래스들은 [1, 0, 0 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]과 같이 원핫 벡터(one-hot vector)로 인코딩되어 사용될 수 있다.
완전 연결 레이어에서 출력되는 활성화 값(activation values)들은 소프트맥스 함수(softmax function)로 정규화될 수 있다. 소프트맥스 함수는 하기 수학식 7과 같다.
Figure 112019122345371-pat00008
상기 수학식 7에서
Figure 112019122345371-pat00009
는 클래스 p에 대응되는 정규화된 활성화 값이며,
Figure 112019122345371-pat00010
yp는 클래스 p에 대응되는 정규화되기 전의 활성화 값이다..
한편 컨볼루션 뉴럴 네트워크를 학습시키기 위해 손실 함수(loss function)를 설정할 수 있다. 손실 함수는 평균 제곱 오차(mean squared error) 및 교차 엔트로피 오차 (cross entropy error) 중 어느 하나에 해당할 수 있으나 이에 제한되는 것은 아니다. 교차 엔트로피 오차는 하기 수학식 8과 같이 나타낼 수 있다.
Figure 112019122345371-pat00011
수학식 8에서 E는 교차 엔트로피 오차 값이고, T는 클래스의 총 개수이다. Yt는 클래스를 원핫 벡터로 표현하였을 때, 벡터 내 t번째 요소의 값을 의미할 수 있다.
컨볼루션 뉴럴 네트워크는 학습 과정에서 손실 함수의 값을 가능한 작게 하는 매개변수 값을 찾을 수 있다. 이 때, 컨볼루션 뉴럴 네트워크는 매개변수의 미분 값을 계산하고, 계산한 미분 값에 기초하여 매개변수 값을 갱신하는 과정을 반복할 수 있다.
상술한 방식으로 학습된 컨볼루션 뉴럴 네트워크는 최종 이미지를 입력 받아 서치 버퍼 크기 값에 해당하는 클래스를 출력할 수 있다. 출력된 클래스로부터 대응하는 서치 버퍼의 크기를 알 수 있으며, 이를 이용하여 압축된 데이터를 압축 해제함으로써 압축 전 원본 데이터를 복원할 수 있다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 본 발명의 실시예에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (10)

  1. 압축 알고리즘의 파라미터를 추정하는 방법에 있어서,
    상기 압축 알고리즘에 의해 압축된 데이터를 입력 받는 단계;
    상기 압축된 데이터를 각각이 복수 개의 비트들을 포함하는 1*M(M은 자연수)차원의 벡터들로 분할하는 단계;
    상기 벡터들 각각을 m*m(m은 자연수)차원의 벡터들로 변환하여 복수의 이진 영상(binary image)들을 생성하는 단계;
    상기 복수의 이진 영상들을 원소 별(element-wise)로 합하여 최종 이미지를 획득하는 단계; 및
    상기 최종 이미지를 뉴럴 네트워크에 입력하여 상기 압축 알고리즘의 파라미터를 추정하는 단계; 를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 최종 이미지는,
    상기 복수 개의 비트들의 개수 및 상기 압축 알고리즘의 파라미터에 기초하여 결정되는 방법.
  3. 제 1 항에 있어서,
    상기 획득하는 단계는,
    상기 최종 이미지에 해당하는 벡터에 포함된 값들 각각이 0과 1 사이의 값을 가지도록 정규화시키는 단계;를 더 포함하는 방법.
  4. 제 1 항에 있어서,
    상기 압축 알고리즘은 LZ(Lempel-Ziv)77 압축 알고리즘에 해당하고, 상기 파라미터는 서치 버퍼(search buffer)의 크기 값에 해당하는 방법.
  5. 압축 알고리즘의 파라미터를 추정하는 방법을 구현하기 위한 프로그램이 기록된, 컴퓨터 판독 가능한 기록 매체에 있어서,
    상기 방법은,
    상기 압축 알고리즘에 의해 압축된 데이터를 입력 받는 단계;
    상기 압축된 데이터를 각각이 복수 개의 비트들을 포함하는 1*M(M은 자연수)차원의 벡터들로 분할하는 단계;
    상기 벡터들 각각을 m*m(m은 자연수)차원의 벡터들로 변환하여 복수의 이진 영상(binary image)들을 생성하는 단계;
    상기 복수의 이진 영상들을 원소 별(element-wise)로 합하여 최종 이미지를 획득하는 단계; 및
    상기 최종 이미지를 뉴럴 네트워크에 입력하여 상기 압축 알고리즘의 파라미터를 추정하는 단계; 를 포함하는, 컴퓨터 판독 가능한 기록 매체.
  6. 하드웨어와 결합되어, 압축 알고리즘의 파라미터를 추정하는 방법을 실행시키기 위하여 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램에 있어서,
    상기 방법은,
    상기 압축 알고리즘에 의해 압축된 데이터를 입력 받는 단계;
    상기 압축된 데이터를 각각이 복수 개의 비트들을 포함하는 1*M(M은 자연수)차원의 벡터들로 분할하는 단계;
    상기 벡터들 각각을 m*m(m은 자연수)차원의 벡터들로 변환하여 복수의 이진 영상(binary image)들을 생성하는 단계;
    상기 복수의 이진 영상들을 원소 별(element-wise)로 합하여 최종 이미지를 획득하는 단계; 및
    상기 최종 이미지를 뉴럴 네트워크에 입력하여 상기 압축 알고리즘의 파라미터를 추정하는 단계; 를 포함하는, 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램.
  7. 하나 이상의 명령어(instruction)를 저장하는 메모리; 및
    상기 하나 이상의 명령어를 실행함으로써, 압축 알고리즘에 의해 압축된 데이터를 입력 받고, 상기 압축된 데이터를 각각이 복수 개의 비트들을 포함하는 1*M(M은 자연수)차원의 벡터들로 분할하고, 상기 벡터들 각각을 m*m(m은 자연수)차원의 벡터들로 변환하여 복수의 이진 영상(binary image)들을 생성하고, 상기 복수의 이진 영상들을 원소 별(element-wise)로 합하여 최종 이미지를 획득하고, 상기 최종 이미지를 뉴럴 네트워크에 입력하여 상기 압축 알고리즘의 파라미터를 추정하는 프로세서를 포함하는 파라미터 추정 장치.
  8. 제 7 항에 있어서,
    상기 최종 이미지는,
    상기 복수 개의 비트들의 개수 및 상기 압축 알고리즘의 파라미터에 기초하여 결정되는 파라미터 추정 장치.
  9. 제 7 항에 있어서,
    상기 프로세서는,
    상기 최종 이미지에 포함되어 있는 벡터들 각각의 값이 0과 1 사이의 값을 가지도록 정규화시키는 파라미터 추정 장치.
  10. 제 7 항에 있어서,
    상기 압축 알고리즘은 LZ(Lempel-Ziv)77 압축 알고리즘에 해당하고, 상기 파라미터는 서치 버퍼(search buffer)의 크기 값에 해당하는 파라미터 추정 장치.
KR1020190154346A 2019-11-27 2019-11-27 압축 알고리즘의 파라미터를 추정하는 방법 및 장치 KR102242904B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190154346A KR102242904B1 (ko) 2019-11-27 2019-11-27 압축 알고리즘의 파라미터를 추정하는 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190154346A KR102242904B1 (ko) 2019-11-27 2019-11-27 압축 알고리즘의 파라미터를 추정하는 방법 및 장치

Publications (1)

Publication Number Publication Date
KR102242904B1 true KR102242904B1 (ko) 2021-04-21

Family

ID=75744305

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190154346A KR102242904B1 (ko) 2019-11-27 2019-11-27 압축 알고리즘의 파라미터를 추정하는 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102242904B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102308416B1 (ko) * 2020-04-20 2021-10-01 한양대학교 산학협력단 동영상 코덱 판별 방법 및 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190273508A1 (en) * 2018-03-02 2019-09-05 Microsoft Technology Licensing, Llc Use of data prefixes to increase compression ratios

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190273508A1 (en) * 2018-03-02 2019-09-05 Microsoft Technology Licensing, Llc Use of data prefixes to increase compression ratios

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
딥 러빙 기반의 이미지와 비디오 압축 기술 분석 (방송공학회논문지, 2018년 5월) *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102308416B1 (ko) * 2020-04-20 2021-10-01 한양대학교 산학협력단 동영상 코덱 판별 방법 및 장치

Similar Documents

Publication Publication Date Title
US10740865B2 (en) Image processing apparatus and method using multi-channel feature map
KR102332490B1 (ko) 심층 신경망용 압축 방법, 칩, 전자 장치 및 매체
EP3483767B1 (en) Device for detecting variant malicious code on basis of neural network learning, method therefor, and computer-readable recording medium in which program for executing same method is recorded
US20180053091A1 (en) System and method for model compression of neural networks for use in embedded platforms
US8731317B2 (en) Image classification employing image vectors compressed using vector quantization
Nagaraj et al. Competent ultra data compression by enhanced features excerption using deep learning techniques
US20140254936A1 (en) Local feature based image compression
KR20210135465A (ko) 훈련된 심층 신경망의 압축 장치가 구현된 컴퓨터 시스템
US20210287083A1 (en) System and method for improving convolutional neural network-based machine learning models
KR20190128980A (ko) 데이터 압축 및 복원을 위한 전자 장치 및 그 압축 방법
KR102242904B1 (ko) 압축 알고리즘의 파라미터를 추정하는 방법 및 장치
CN114071141A (zh) 一种图像处理方法及其设备
CN113139618B (zh) 一种基于集成防御的鲁棒性增强的分类方法及装置
CN117036832B (zh) 一种基于随机多尺度分块的图像分类方法、装置及介质
CN113869234A (zh) 人脸表情识别方法、装置、设备及存储介质
CN113360911A (zh) 恶意代码同源分析方法、装置、计算机设备和存储介质
CN111723912A (zh) 一种神经网络解耦方法
KR102317205B1 (ko) 압축된 데이터를 복원하는 방법 및 장치
Wang et al. Coarse-to-fine image dehashing using deep pyramidal residual learning
EP4237977B1 (en) Method for detection of malware
Thakker et al. Lossy Image Compression-A Comparison Between Wavelet Transform, Principal Component Analysis, K-Means and Autoencoders
Nahavandi et al. A novel adaptive compression technique for dealing with corrupt bands and high levels of band correlations in hyperspectral images based on binary hybrid GA-PSO for big data compression
KR20210038027A (ko) 신경망 압축 훈련 방법 및 압축된 신경망을 이용하는 방법
CN115471875B (zh) 一种多码率的行人识别视觉特征编码压缩方法和装置
US20230069961A1 (en) Information processing method, information processing system, and information processing program

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant