KR20220042455A - 마이크로-구조화된 가중치 프루닝 및 가중치 통합을 이용한 신경 네트워크 모델 압축을 위한 방법 및 장치 - Google Patents

마이크로-구조화된 가중치 프루닝 및 가중치 통합을 이용한 신경 네트워크 모델 압축을 위한 방법 및 장치 Download PDF

Info

Publication number
KR20220042455A
KR20220042455A KR1020227007843A KR20227007843A KR20220042455A KR 20220042455 A KR20220042455 A KR 20220042455A KR 1020227007843 A KR1020227007843 A KR 1020227007843A KR 20227007843 A KR20227007843 A KR 20227007843A KR 20220042455 A KR20220042455 A KR 20220042455A
Authority
KR
South Korea
Prior art keywords
input
neural network
mask
weights
pruning
Prior art date
Application number
KR1020227007843A
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 텐센트 아메리카 엘엘씨
Publication of KR20220042455A publication Critical patent/KR20220042455A/ko

Links

Images

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
    • 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
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • 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
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Machine Translation (AREA)
  • Image Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

신경 네트워크 모델 압축의 방법은, 적어도 하나의 프로세서에 의해 수행되며, 입력 신경 네트워크 및 입력 마스크를 수신하는 단계, 및 심층 신경 네트워크를 이용하여 입력 신경 네트워크의 파라미터들을 감소시키는 단계를 포함하며, 상기 심층 신경 네트워크는 입력 마스크에 의해 마스킹되는 심층 신경 네트워크의 입력 가중치들의 복수의 블록들로부터, 프루닝될 프루닝 마이크로-구조 블록들을 선택하고, 선택된 프루닝 마이크로-구조 블록들에 기초하여 입력 가중치들을 프루닝하고, 입력 마스크에 의해 마스킹된 입력 가중치들의 복수의 블록들로부터, 통합될 통합 마이크로-구조 블록들을 선택하고, 그리고 심층 신경 네트워크의 프루닝된 및 통합된 입력 가중치들을 획득하기 위해 선택된 통합 마이크로-구조 블록들에 기초하여, 프루닝된 입력 가중치들의 복수의 블록들 중 하나 이상에서의 다수의 가중치들을 통합함으로써 훈련된다.

Description

마이크로-구조화된 가중치 프루닝 및 가중치 통합을 이용한 신경 네트워크 모델 압축을 위한 방법 및 장치
관련 출원들에 대한 상호 참조
본 출원은 미국 특허청에, 2020년 6월 17일에 출원된 미국 가특허 출원번호 제63/040,216호, 2020년 6월 17일에 출원된 미국 가특허 출원번호 제63/040,238호, 및 2020년 6월 23일에 출원된 미국 가특허 출원번호 제63/043,082호에 대해 우선권 주장하는, 2021년 5월 13일에 출원된 미국 특허출원 번호 제17/319,313호에 대해 우선권의 이익을 주장하며, 이의 개시내용들이 본원에 이들의 전체로 참조로 포함된다.
시맨틱 분류, 타깃 검출/인식, 타깃 트래킹, 비디오 품질 향상, 등과 같은 광범위한 비디오 애플리케이션들에서의 심층 신경 네트워크들(DNNs)의 성공은 DNN 모델들을 압축하는 것을 필요로 한다. 따라서, 동화상 전문가 그룹(MPEG)은 저장 및 계산 둘 모두를 절감하기 위해 DNN 모델들을 인코딩하는데 사용되는 신경 네트워크 표준(NNR)의 코딩된 표현에 대해 적극적으로 작업하고 있다.
실시형태들에 따르면, 신경 네트워크 모델 압축의 방법은 적어도 하나의 프로세서에 의해 수행되며, 입력 신경 네트워크 및 입력 마스크를 수신하는 단계; 및 심층 신경 네트워크를 이용하여, 입력 신경 네트워크의 파라미터들을 감소시키는 단계를 포함하되, 상기 심층 신경 네트워크는 입력 마스크에 의해 마스킹되는 심층 신경 네트워크의 입력 가중치들의 복수의 블록들로부터, 프루닝될 프루닝 마이크로-구조 블록들을 선택하고, 선택된 프루닝 마이크로-구조 블록들에 기초하여 입력 가중치들을 프루닝하고, 입력 마스크에 의해 마스킹된 입력 가중치들의 복수의 블록들로부터, 통합될 통합 마이크로-구조 블록들을 선택하고, 그리고 심층 신경 네트워크의 프루닝된 및 통합된 입력 가중치들을 획득하기 위해, 선택된 통합 마이크로-구조 블록들에 기초하여, 프루닝된 입력 가중치들의 복수의 블록들 중 하나 이상에서의 다수의 가중치들을 통합함으로써 훈련된다. 본 방법은 입력 신경 네트워크 및 심층 신경 네트워크의 프루닝된 및 통합된 입력 가중치들에 기초하여, 감소된 파라미터들을 갖는 출력 신경 네트워크를 획득하는 단계를 더 포함한다.
실시형태들에 따르면, 신경 네트워크 모델 압축을 위한 장치는 프로그램 코드를 저장하도록 구성된 적어도 하나의 메모리, 및 프로그램 코드를 판독하고 프로그램 코드에 의해 명령되는 대로 동작하도록 구성된 적어도 하나의 프로세서를 포함한다. 프로그램 코드는 적어도 하나의 프로세서로 하여금, 입력 신경 네트워크 및 입력 마스크를 수신 가능하게 하도록 구성된 수신 코드; 및 적어도 하나의 프로세서로 하여금 심층 신경 네트워크를 이용하여 입력 신경 네트워크의 파라미터들을 감소 가능하게 하도록 구성된 감소 코드를 포함하되, 상기 심층 신경 네트워크는 입력 마스크에 의해 마스킹되는 심층 신경 네트워크의 입력 가중치들의 복수의 블록들로부터, 프루닝될 프루닝 마이크로-구조 블록들을 선택하고, 선택된 프루닝 마이크로-구조 블록들에 기초하여 입력 가중치들을 프루닝하고, 입력 마스크에 의해 마스킹된 입력 가중치들의 복수의 블록들로부터, 통합될 통합 마이크로-구조 블록들을 선택하고, 그리고 심층 신경 네트워크의 프루닝된 및 통합된 입력 가중치들을 획득하기 위해, 선택된 통합 마이크로-구조 블록들에 기초하여, 프루닝된 입력 가중치들의 복수의 블록들 중 하나 이상에서의 다수의 가중치들을 통합함으로써 훈련된다. 프로그램 코드는 적어도 하나의 프로세서로 하여금, 입력 신경 네트워크 및 심층 신경 네트워크의 프루닝된 및 통합된 입력 가중치들에 기초하여, 감소된 파라미터들을 갖는 출력 신경 네트워크를 출력 가능하게 하도록 구성된 획득 코드를 더 포함한다.
실시형태들에 따르면, 비일시적 컴퓨터-판독가능 매체는 신경 네트워크 모델 압축을 위해 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 프로세서로 하여금, 입력 신경 네트워크 및 입력 마스크를 수신 가능하게 하고, 그리고 심층 신경 네트워크를 이용하여 입력 신경 네트워크의 파라미터들을 감소 가능하게 하는 명령들을 저장하며, 상기 심층 신경 네트워크는 입력 마스크에 의해 마스킹되는 심층 신경 네트워크의 입력 가중치들의 복수의 블록들로부터, 프루닝될 프루닝 마이크로-구조 블록들을 선택하고, 선택된 프루닝 마이크로-구조 블록들에 기초하여 입력 가중치들을 프루닝하고, 입력 마스크에 의해 마스킹된 입력 가중치들의 복수의 블록들로부터, 통합될 통합 마이크로-구조 블록들을 선택하고, 그리고 심층 신경 네트워크의 프루닝된 및 통합된 입력 가중치들을 획득하기 위해 선택된 통합 마이크로-구조 블록들에 기초하여, 프루닝된 입력 가중치들의 복수의 블록들 중 하나 이상에서의 다수의 가중치들을 통합함으로써 훈련된다. 명령들은, 적어도 하나의 프로세서에 의해 실행될 때, 추가로, 적어도 하나의 프로세서로 하여금, 입력 신경 네트워크 및 심층 신경 네트워크의 프루닝된 및 통합된 입력 가중치들에 기초하여, 감소된 파라미터들을 갖는 출력 신경 네트워크를 획득 가능하게 한다.
도 1은 실시형태들에 따른, 본원에서 설명되는 방법들, 장치들 및 시스템들이 구현될 수도 있는 환경의 다이어그램이다.
도 2는 도 1의 하나 이상의 디바이스들의 예시적인 컴포넌트들의 블록도이다.
도 3은 실시형태들에 따른, 신경 네트워크 모델 압축을 위한 시스템의 기능 블록도이다.
도 4a는 실시형태들에 따른, 마이크로-구조화된 가중치 프루닝을 이용한 신경 네트워크 모델 압축을 위한 훈련 장치의 기능 블록도이다.
도 4b는 다른 실시형태들에 따른, 마이크로-구조화된 가중치 프루닝을 이용한 신경 네트워크 모델 압축을 위한 훈련 장치의 기능 블록도이다.
도 4c는 또 다른 실시형태들에 따른, 가중치 통합을 이용한 신경 네트워크 모델 압축을 위한 훈련 장치의 기능 블록도이다.
도 4d는 또 다른 실시형태들에 따른, 마이크로-구조화된 가중치 프루닝 및 가중치 통합을 이용한 신경 네트워크 모델 압축을 위한 훈련 장치의 기능 블록도이다.
도 4e는 또 다른 실시형태들에 따른, 마이크로-구조화된 가중치 프루닝 및 가중치 통합을 이용한 신경 네트워크 모델 압축을 위한 훈련 장치의 기능 블록도이다.
도 5는 실시형태들에 따른, 마이크로-구조화된 가중치 프루닝 및 가중치 통합을 이용한 신경 네트워크 모델 압축의 방법의 플로우차트이다.
도 6은 실시형태들에 따른, 마이크로-구조화된 가중치 프루닝 및 가중치 통합을 이용한 신경 네트워크 모델 압축을 위한 장치의 블록도이다.
본 개시내용은 신경 네트워크 모델 압축에 관한 것이다. 더욱 구체적으로는, 본원에서 설명되는 방법들 및 장치들은 마이크로-구조화된 가중치 프루닝 및 가중치 통합을 이용한 신경 네트워크 모델 압축에 관한 것이다.
본원에서 설명되는 실시형태들은 반복 네트워크 재훈련/미세조정(finetuning) 프레임워크에서의 마이크로-구조화된 가중치 프루닝 정규화를 이용하여 DNN 모델을 압축하는 방법 및 장치를 포함한다. 프루닝 손실은 반복 재훈련/미세조정 프로세스를 통해서 원래 네트워크 훈련 타깃과 공동으로 최적화된다.
본원에서 설명하는 실시형태들은 반복 네트워크 재훈련/미세조정 프레임워크에서의 구조화된 통합 정규화를 이용하여 DNN 모델을 압축하는 방법 및 장치를 더 포함한다. 가중치 통합 손실은 압축율 손실, 통합 왜곡 손실, 및 계산 속도 손실을 포함한다. 가중치 통합 손실은 반복 재훈련/미세조정 프로세스를 통해서 원래 네트워크 훈련 타깃과 공동으로 최적화된다.
본원에서 설명하는 실시형태들은 반복 네트워크 재훈련/미세조정 프레임워크에서의 마이크로-구조화된 조인트 가중치 프루닝 및 가중치 통합 정규화를 이용하여 DNN 모델을 압축하는 방법 및 장치를 더 포함한다. 프루닝 손실 및 통합 손실은 반복 재훈련/미세조정 프로세스를 통해서 원래 네트워크 훈련 타깃과 공동으로 최적화된다.
컴팩트 DNN 모델을 학습하는 여러 접근법들이 존재한다. 타깃은 중요하지 않은 가중치 계수들을 제거하는 것이며, 가정은 이들 가중치들을 제거함으로써, 가중치 계수들의 값이 더 작을 수록 덜 중요하고 그리고 예측 성능에 대한 영향이 더 적다는 것이다. 이 목표를 달성하기 위해 여러 네트워크 프루닝 방법들이 제안되었다. 예를 들어, 비구조화된 가중치 프루닝 방법들은 희소성-촉진 정규화 항들을 네트워크 훈련 타깃에 추가하고 비구조적으로 분산된 제로-값 가중치들을 획득하며, 이는 모델 사이즈를 감소시킬 수 있지만 추론 시간을 감소시킬 수 없다. 구조화된 가중치 프루닝 방법들은 로우들 또는 칼럼들과 같은, 프루닝될 전체 가중치 구조들을 의도적으로 시행한다. 제거된 로우들 또는 칼럼들은 추론 계산에 참여하지 않을 것이며, 모델 사이즈 및 추론 시간 둘 모두가 감소될 수 있다. 그러나, 로우들 및 칼럼들과 같은 전체 가중치 구조들을 제거하는 것은 원래 DNN 모델의 큰 성능 하락을 초래할 수도 있다.
여러 네트워크 프루닝 방법들은 희소성-촉진 정규화 항들을 네트워크 훈련 타깃에 추가한다. 비구조화된 가중치 프루닝 방법들은 희소성-촉진 정규화 항들을 네트워크 훈련 타깃에 추가하고 비구조적으로 분산된 제로-값 가중치들을 획득한다. 구조화된 가중치 프루닝 방법들은 로우들 또는 칼럼들과 같은, 프루닝될 선택된 가중치 구조들을 의도적으로 시행한다. DNN 모델들을 압축하는 관점에서, 컴팩트 네트워크 모델을 학습한 후, 가중치 계수들은 양자화에 이어 엔트로피 코딩에 의해 추가로 압축될 수 있다. 이러한 추가적인 압축 프로세스들은 모바일 디바이스들, 칩들, 등에 대한 모델 배치에 사용되는 DNN 모델의 스토리지 사이즈를 현저하게 감소시킬 수 있다.
본원에서 설명되는 실시형태들은 원래 DNN 모델의 예측 성능을 거의 희생하지 않으면서 모델 사이즈를 감소시킬 뿐만 아니라 추론 계산을 가속하는 것을 목표로 하는 마이크로-구조화된 가중치 프루닝을 위한 방법 및 장치를 포함한다. 반복 네트워크 재훈련/정련 프레임워크가 원래 훈련 타깃 및 가중치 프루닝 손실을 공동으로 최적화하는데 사용된다. 가중치 계수들이 기본 하드웨어 설계와 동조하는 작은 마이크로-구조들에 따라 프루닝되므로, 모델 사이즈가 크게 감소될 수 있으며, 원래 타깃 예측 성능이 크게 보존될 수 있으며, 추론 계산이 크게 가속될 수 있다. 본 방법 및 장치는 원래 사전 훈련된 밀집 DNN 모델을 압축하기 위해 적용될 수 있다. 이들은 또한 다른 비구조화된 또는 구조화된 프루닝 접근법들에 의해 사전-프루닝된 희소 DNN 모델을 추가로 압축하기 위해 추가적인 프로세싱 모듈로서 사용될 수 있다.
본원에서 설명하는 실시형태들은 이후 압축 프로세스에서의 압축 효율을 향상시키는 것을 목표로 하는 구조화된 가중치 통합 정규화를 위한 방법 및 장치를 더 포함한다. 반복 네트워크 재훈련/정련 프레임워크가 압축율 손실, 통합 왜곡 손실, 및 계산 속도 손실을 포함하는 가중치 통합 손실 및 원래 훈련 타깃을 공동으로 최적화하는데 사용되므로, 학습된 네트워크 가중치 계수들은 원래 타깃 성능을 유지하며, 추가적인 압축에 적합하며, 학습된 가중치 계수들을 사용하여 계산 속도를 증대할 수 있다. 본 방법 및 장치는 원래 사전 훈련된 DNN 모델을 압축하는데 적용될 수 있다. 이들은 또한 임의의 프루닝된 DNN 모델을 추가로 압축하기 위해 추가적인 프로세싱 모듈로서 사용될 수 있다.
본원에서 설명하는 실시형태들은 이후 압축 프로세스에서의 압축 효율을 향상시킬 뿐만 아니라 추론 계산을 가속하는 것을 목표로 하는 조인트(joint) 마이크로-구조화된 가중치 프루닝 및 가중치 통합을 위한 방법 및 장치를 포함한다. 반복 네트워크 재훈련/정련 프레임워크가 원래 훈련 타깃 및 가중치 프루닝 손실 및 가중치 통합 손실을 공동으로 최적화하기 위해 사용된다. 가중치 계수들은 작은 마이크로-구조들에 따라 프루닝된 또는 통합되며, 학습된 가중치 계수들은 원래 타깃 성능을 유지하며, 추가적인 압축에 적합하며, 학습된 가중치 계수들을 이용하여 계산 속도를 증가시킬 수 있다. 본 방법 및 장치는 원래 사전 훈련된 밀집 DNN 모델을 압축하기 위해 적용될 수 있다. 이들은 또한 다른 비구조화된 또는 구조화된 프루닝 접근법들에 의해 사전-프루닝된 희소 DNN 모델을 추가적으로 압축하기 위해 추가적인 프로세싱 모듈로서 사용될 수 있다.
도 1은 실시형태들에 따른, 본원에서 설명되는 방법들, 장치들 및 시스템들이 구현될 수도 있는 환경(100)의 다이어그램이다.
도 1에 나타낸 바와 같이, 환경(100)은 사용자 디바이스(110), 플랫폼(120), 및 네트워크(130)를 포함할 수도 있다. 환경(100)의 디바이스들은 유선 접속들, 무선 접속들, 또는 유선 접속과 무선 접속의 조합을 통해서 상호접속할 수도 있다.
사용자 디바이스(110)는 플랫폼(120)과 연관된 정보를 수신, 발생, 저장, 프로세싱, 및/또는 제공 가능한 하나 이상의 디바이스들을 포함한다. 예를 들어, 사용자 디바이스(110)는 컴퓨팅 디바이스(예컨대, 데스크탑 컴퓨터, 랩탑 컴퓨터, 태블릿 컴퓨터, 핸드헬드 컴퓨터, 스마트 스피커, 서버, 등), 모바일 폰(예컨대, 스마트 폰, 무선 전화기, 등), 착용형 디바이스(예컨대, 한 쌍의 스마트 안경 또는 스마트 시계), 또는 유사한 디바이스를 포함할 수도 있다. 일부 구현예들에서, 사용자 디바이스(110)는 플랫폼(120)으로부터 정보를 수신하고/하거나 플랫폼(120)으로 정보를 송신할 수도 있다.
플랫폼(120)은 본원에서 다른 어딘가에서 설명된 바와 같은 하나 이상의 디바이스들을 포함한다. 일부 구현예들에서, 플랫폼(120)은 클라우드 서버 또는 클라우드 서버들의 그룹을 포함할 수도 있다. 일부 구현예들에서, 플랫폼(120)은 소프트웨어 컴포넌트들이 교체될 수 있도록 모듈식으로 설계될 수도 있다. 이와 같이, 플랫폼(120)은 상이한 용도들을 위해 용이하게 및/또는 빨리 재구성될 수도 있다.
일부 구현예들에서, 나타낸 바와 같이, 플랫폼(120)은 클라우드 컴퓨팅 환경(122)에서 호스팅될 수도 있다. 특히, 본원에서 설명되는 구현예들은 클라우드 컴퓨팅 환경(122)에서 호스팅되는 것으로 플랫폼(120)을 설명하지만, 일부 구현예들에서, 플랫폼(120)은 클라우드-기반이 아닐 수도 있거나 (즉, 클라우드 컴퓨팅 환경 외부에서 구현될 수도 있거나) 또는 부분적으로 클라우드-기반일 수도 있다.
클라우드 컴퓨팅 환경(122)은 플랫폼(120)을 호스팅하는 환경을 포함한다. 클라우드 컴퓨팅 환경(122)은 플랫폼(120)을 호스팅하는 시스템(들) 및/또는 디바이스(들)의 물리적인 위치 및 구성의 최종 사용자(예컨대, 사용자 디바이스(110)) 지식을 필요로 하지 않는 계산, 소프트웨어, 데이터 액세스, 저장, 등의 서비스들을 제공할 수도 있다. 나타낸 바와 같이, 클라우드 컴퓨팅 환경(122)은 컴퓨팅 리소스들(124)의 그룹(일괄하여, "컴퓨팅 리소스들(124)"로서 및 개별적으로 "컴퓨팅 리소스(124)"로서 지칭됨)을 포함할 수도 있다.
컴퓨팅 리소스(124)는 하나 이상의 개인용 컴퓨터들, 워크스테이션 컴퓨터들, 서버 디바이스들, 또는 다른 유형들의 계산 및/또는 통신 디바이스들을 포함한다. 일부 구현예들에서, 컴퓨팅 리소스(124)는 플랫폼(120)을 호스팅할 수도 있다. 클라우드 리소스들은 컴퓨팅 리소스(124)에서 실행하는 계산 인스턴스들, 컴퓨팅 리소스(124)에서 제공되는 저장 디바이스들, 컴퓨팅 리소스(124)에 의해 제공되는 데이터 전송 디바이스들, 등을 포함할 수도 있다. 일부 구현예들에서, 컴퓨팅 리소스(124)는 유선 접속들, 무선 접속들, 또는 유선 접속과 무선 접속의 조합을 통해서 다른 컴퓨팅 리소스들(124)과 통신할 수도 있다.
도 1에 추가로 나타낸 바와 같이, 컴퓨팅 리소스(124)는 하나 이상의 애플리케이션들("앱들")(124-1), 하나 이상의 가상 머신들("VMs")(124-2), 가상화된 스토리지("VSs")(124-3), 하나 이상의 하이퍼바이저들("HYPs")(124-4), 또는 기타 등등과 같은, 클라우드 리소스들의 그룹을 포함한다.
애플리케이션(124-1)은 사용자 디바이스(110) 및/또는 플랫폼(120)에 제공되거나 이에 의해 액세스될 수도 있는 하나 이상의 소프트웨어 애플리케이션들을 포함한다. 애플리케이션(124-1)은 사용자 디바이스(110) 상에 소프트웨어 애플리케이션들을 설치 및 실행할 필요성을 제거할 수도 있다. 예를 들어, 애플리케이션(124-1)은 플랫폼(120)과 연관된 소프트웨어 및/또는 클라우드 컴퓨팅 환경(122)을 통해서 제공 가능한 임의의 다른 소프트웨어를 포함할 수도 있다. 일부 구현예들에서, 하나의 애플리케이션(124-1)은 가상 머신(124-2)을 통해서, 정보를 하나 이상의 다른 애플리케이션들(124-1)로/로부터, 전송/수신할 수도 있다.
가상 머신(124-2)은 물리적인 머신과 같은, 프로그램들을 실행하는 머신(예컨대, 컴퓨터)의 소프트웨어 구현예를 포함한다. 가상 머신(124-2)은 가상 머신(124-2)에 의한 임의의 실제 머신에 대한 용도 및 대응의 정도에 따라, 시스템 가상 머신 또는 프로세스 가상 머신일 수도 있다. 시스템 가상 머신은 완전한 운영 시스템("OS")의 실행을 지원하는 완전한 시스템 플랫폼을 제공할 수도 있다. 프로세스 가상 머신은 단일 프로그램을 실행할 수도 있으며, 단일 프로세스를 지원할 수도 있다. 일부 구현예들에서, 가상 머신(124-2)은 사용자(예컨대, 사용자 디바이스(110))를 대신하여 실행할 수도 있으며, 데이터 관리, 동기화, 또는 장기 데이터 전송들과 같은 클라우드 컴퓨팅 환경(122)의 기반구조를 관리할 수도 있다.
가상화된 스토리지(124-3)는 컴퓨팅 리소스(124)의 저장 시스템들 또는 디바이스들 내에서 가상화 기법들을 이용하는 하나 이상의 저장 시스템들 및/또는 하나 이상의 디바이스들을 포함한다. 일부 구현예들에서, 저장 시스템의 상황 내에서, 가상화들의 유형들은 블록 가상화 및 파일 가상화를 포함할 수도 있다. 블록 가상화는 저장 시스템이 물리 스토리지 또는 이종 구조에 관계없이 액세스될 수도 있도록 물리 스토리지로부터의 논리 스토리지의 추상화(또는, 분리)를 지칭할 수도 있다. 분리는 저장 시스템의 관리자들에게 관리자들이 최종 사용자들을 위해 스토리지를 관리하는 방법에서의 유연성을 허용할 수도 있다. 파일 가상화는 파일 레벨에서 액세스된 데이터와 파일들이 물리적으로 저장된 위치 사이의 의존성들을 제거할 수도 있다. 이는 스토리지 사용, 서버 통합, 및/또는 무중단 파일 마이그레이션들의 성능의 최적화를 가능하게 할 수도 있다.
하이퍼바이저(124-4)는 다수의 운영 시스템들(예컨대, "게스트 운영 시스템들")로 하여금 컴퓨팅 리소스(124)와 같은 호스트 컴퓨터 상에서 동시에 실행 가능하게 하는 하드웨어 가상화 기법들을 제공할 수도 있다. 하이퍼바이저(124-4)는 가상 운영 플랫폼을 게스트 운영 시스템들에 제공할 수도 있으며, 게스트 운영 시스템들의 실행을 관리할 수도 있다. 다양한 운영 시스템들의 다수의 인스턴스들은 가상화된 하드웨어 리소스들을 공유할 수도 있다.
네트워크(130)는 하나 이상의 유선 및/또는 무선 네트워크들을 포함한다. 예를 들어, 네트워크(130)는 셀룰러 네트워크(예컨대, 5세대(5G) 네트워크, LTE(Long-Term Evolution) 네트워크, 3세대(3G) 네트워크, 코드분할 다중접속(CDMA) 네트워크, 등), 공중 지상 모바일 네트워크(PLMN), 근거리 네트워크(LAN), 광역 네트워크(WAN), 도시권 네트워크(MAN), 전화 네트워크(예컨대, 공중 교환 전화 네트워크(PSTN)), 사설 네트워크, 애드혹 네트워크, 인트라넷, 인터넷, 광섬유-기반 네트워크, 또는 기타 등등, 및/또는 이들의 조합 또는 다른 유형들의 네트워크들을 포함할 수도 있다.
도 1에 나타낸 디바이스들 및 네트워크들의 개수 및 배열은 예로서 제공된다. 실제는, 추가적인 디바이스들 및/또는 네트워크들, 더 적은 디바이스들 및/또는 네트워크들, 상이한 디바이스들 및/또는 네트워크들, 또는 도 1에 나타낸 것들과는 상이하게 배열된 디바이스들 및/또는 네트워크들일 수도 있다. 더욱이, 도 1에 나타낸 2개 이상의 디바이스들은 단일 디바이스 내에 구현될 수도 있거나, 또는 도 1에 나타낸 단일 디바이스는 다수의, 분산된 디바이스들로서 구현될 수도 있다. 추가적으로, 또는 대안적으로, 환경(100)의 디바이스들(예컨대, 하나 이상의 디바이스들)의 세트는 환경(100)의 디바이스들의 다른 세트에 의해 수행되는 것으로 설명된 하나 이상의 기능들을 수행할 수도 있다.
도 2는 도 1의 하나 이상의 디바이스들의 예시적인 컴포넌트들의 블록도이다.
디바이스(200)는 사용자 디바이스(110) 및/또는 플랫폼(120)에 대응할 수도 있다. 도 2에 나타낸 바와 같이, 디바이스(200)는 버스(210), 프로세서(220), 메모리(230), 저장 컴포넌트(240), 입력 컴포넌트(250), 출력 컴포넌트(260), 및 통신 인터페이스(270)를 포함할 수도 있다.
버스(210)는 디바이스(200)의 컴포넌트들 간에 통신을 가능하게 하는 컴포넌트를 포함한다. 프로세서(220)는 하드웨어, 펌웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현된다. 프로세서(220)는 중앙 처리 유닛(CPU), 그래픽 프로세싱 유닛(GPU), 가속 프로세싱 유닛(APU), 마이크로프로세서, 마이크로제어기, 디지털 신호 프로세서(DSP), 필드-프로그래밍가능 게이트 어레이(FPGA), 주문형 집적 회로(ASIC), 또는 다른 유형의 프로세싱 컴포넌트이다. 일부 구현예들에서, 프로세서(220)는 기능을 수행하도록 프로그래밍될 수 있는 하나 이상의 프로세서들을 포함한다. 메모리(230)는 프로세서(220)에 의한 사용을 위한 정보 및/또는 명령들을 저장하는, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 및/또는 다른 유형의 동적 또는 정적 저장 디바이스(예컨대, 플래시 메모리, 자기 메모리, 및/또는 광학 메모리)를 포함한다.
저장 컴포넌트(240)는 디바이스(200)의 동작 및 사용에 관련된 정보 및/또는 소프트웨어를 저장한다. 예를 들어, 저장 컴포넌트(240)는 하드 디스크(예컨대, 자기 디스크, 광 디스크, 자기-광학 디스크, 및/또는 솔리드 스테이트 디스크), 컴팩트 디스크(CD), 디지털 다기능 디스크(DVD), 플로피 디스크, 카트리지, 자기 테이프, 및/또는 다른 유형의 비일시적 컴퓨터-판독가능 매체를, 대응하는 드라이브와 함께, 포함할 수도 있다.
입력 컴포넌트(250)는 예컨대, 사용자 입력(예컨대, 터치 스크린 디스플레이, 키보드, 키패드, 마우스, 버튼, 스위치, 및/또는 마이크로폰)을 통해서, 디바이스(200)로 하여금, 정보를, 수신 가능하게 하는 컴포넌트를 포함한다. 추가적으로, 또는 대안적으로, 입력 컴포넌트(250)는 정보를 감지하는 센서(예컨대, 위성 위치확인 시스템(GPS) 컴포넌트, 가속도계, 자이로스코프, 및/또는 액추에이터)를 포함할 수도 있다. 출력 컴포넌트(260)는 디바이스(200)(예컨대, 디스플레이, 스피커, 및/또는 하나 이상의 발광 다이오드들(LEDs))로부터의 출력 정보를 제공하는 컴포넌트를 포함한다.
통신 인터페이스(270)는 디바이스(200)로 하여금, 예컨대, 유선 접속, 무선 접속, 또는 유선 접속과 무선 접속의 조합을 통해서 다른 디바이스들과 통신 가능하게 하는 트랜시버-형 컴포넌트(예컨대, 트랜시버 및/또는 별개의 수신기 및 송신기)를 포함한다. 통신 인터페이스(270)는 디바이스(200)로 하여금 다른 디바이스로부터 정보를 수신 가능하게 하고/하거나 정보를 다른 디바이스에 제공 가능하게 할 수도 있다. 예를 들어, 통신 인터페이스(270)는 이더넷 인터페이스, 광 인터페이스, 동축 인터페이스, 적외선 인터페이스, 무선 주파수(RF) 인터페이스, 범용 시리얼 버스(USB) 인터페이스, Wi-Fi 인터페이스, 셀룰러 네트워크 인터페이스, 또는 기타 등등을 포함할 수도 있다.
디바이스(200)는 본원에서 설명되는 하나 이상의 프로세스들을 수행할 수도 있다. 디바이스(200)는 프로세서(220)가 메모리(230) 및/또는 저장 컴포넌트(240)와 같은 비일시적 컴퓨터-판독가능 매체에 의해 저장된 소프트웨어 명령들을 실행하는 것에 응답하여 이들 프로세스들을 수행할 수도 있다. 컴퓨터-판독가능 매체는 비일시적 메모리 디바이스로서 본원에서 정의된다. 메모리 디바이스는 단일 물리 저장 디바이스 내 메모리 공간 또는 다수의 물리 저장 디바이스들에 걸쳐서 분산된 메모리 공간을 포함한다.
소프트웨어 명령들은 다른 컴퓨터-판독가능 매체로부터 또는 다른 디바이스로부터 통신 인터페이스(270)를 통해서 메모리(230) 및/또는 저장 컴포넌트(240)로 판독될 수도 있다. 실행될 때, 메모리(230) 및/또는 저장 컴포넌트(240)에 저장된 소프트웨어 명령들은 프로세서(220)로 하여금 본원에서 설명되는 하나 이상의 프로세스들을 수행 가능하게 할 수도 있다. 추가적으로, 또는 대안적으로, 하드와이어드 회로부가 본원에서 설명되는 하나 이상의 프로세스들을 수행하기 위해 소프트웨어 명령들을 대신하여 또는 조합하여 사용될 수도 있다. 따라서, 본원에서 설명되는 구현예들은 하드웨어 회로부와 소프트웨어의 임의의 특정의 조합에 제한되지 않는다.
도 2에 나타낸 컴포넌트들의 개수 및 배열은 예로서 제공된다. 실제는, 디바이스(200)는 추가적인 컴포넌트들, 더 적은 컴포넌트들, 상이한 컴포넌트들, 또는 도 2에 나타낸 것들과는 상이하게 배열된 컴포넌트들을 포함할 수도 있다. 추가적으로, 또는 대안적으로, 디바이스(200)의 컴포넌트들(예컨대, 하나 이상의 컴포넌트들)의 세트는 디바이스(200)의 컴포넌트들의 다른 세트에 의해 수행되는 것으로 설명된 하나 이상의 기능들을 수행할 수도 있다.
마이크로-구조화된 가중치 프루닝 및 가중치 통합을 이용한 신경 네트워크 모델 압축을 위한 방법들 및 장치들을 이제 자세하게 설명한다.
도 3은 실시형태들에 따른, 신경 네트워크 모델 압축을 위한 시스템(300)의 기능 블록도이다.
도 3에 나타낸 바와 같이, 시스템(300)은 파라미터 감소 모듈(310), 파라미터 근사 모듈(320), 복원 모듈(330), 인코더(340), 및 디코더(350)를 포함한다.
파라미터 감소 모듈(310)은 입력 신경 네트워크의 파라미터들의 세트를 감소시켜, 출력 신경 네트워크를 획득한다. 신경 네트워크는 심층 학습 프레임워크에 의해 규정된 파라미터들 및 아키텍처를 포함할 수도 있다.
예를 들어, 파라미터 감소 모듈(310)은 희소화(가중치들을 제로로 설정)하고/하거나 신경 네트워크의 접속들을 프루닝할 수도 있다. 다른 예에서, 파라미터 감소 모듈(310)은 더 작은 파라미터 텐서들의 세트로의 신경 네트워크의 파라미터 텐서들에 대한 매트릭스 분해를 수행할 수도 있다. 파라미터 감소 모듈(310)은 이들 방법들을 캐스케이드 방식으로 수행할 수도 있으며, 예를 들어, 가중치들을 먼저 희소화하고 이후 결과적인 매트릭스를 분해할 수도 있다.
파라미터 근사 모듈(320)은 파라미터 감소 모듈(310)로부터 획득된 출력 신경 네트워크로부터 추출된 파라미터 텐서들에 대해 파라미터 근사 기법들을 적용한다. 예를 들어, 본 기법들은 양자화, 변환 및 예측 중 임의의 하나 또는 임의의 조합을 포함할 수도 있다. 파라미터 근사 모듈(320)은 파라미터 근사 모듈(320)에 의해 수정되지 않은 제1 파라미터 텐서들, 파라미터 근사 모듈(320)에 의해 수정되거나 또는 근사화된 제2 파라미터 텐서들, 및 수정된 제2 파라미터 텐서들로부터 파라미터 근사 모듈(320)에 의해 수정되지 않은 원래 파라미터 텐서들을 복원하는데 사용될 개별 메타데이터를 출력한다.
복원 모듈(330)은 파라미터 근사 모듈(320) 및/또는 디코더(350)로부터 획득된 개별 메타데이터를 이용하여, 파라미터 근사 모듈(320) 및/또는 디코더(350)로부터 획득된 수정된 제2 파라미터 텐서들로부터 원래 파라미터 텐서들을 복원한다. 복원 모듈(330)은 복원된 원래 파라미터 텐서들 및 제1 파라미터 텐서들을 이용하여 출력 신경 네트워크를 복원할 수도 있다.
인코더(340)는 파라미터 근사 모듈(320)로부터 획득된 제1 파라미터 텐서들, 제2 파라미터 텐서들 및 개별 메타데이터에 대해 엔트로피 인코딩을 수행할 수도 있다. 이 정보는 디코더(350)에 대한 비트스트림으로 인코딩될 수도 있다.
디코더(350)는 인코더(340)로부터 획득되는 비트스트림을 디코딩하여, 제1 파라미터 텐서들, 제2 파라미터 텐서들 및 개별 메타데이터를 획득할 수도 있다.
시스템(300)은 플랫폼(120)에서 구현될 수도 있으며, 도 3의 하나 이상의 모듈들은 사용자 디바이스(110)와 같은 플랫폼(120)과 분리되거나 또는 포함하는 디바이스 또는 디바이스들의 그룹에 의해 수행될 수도 있다.
파라미터 감소 모듈(310) 또는 파라미터 근사 모듈(320)은 다음 훈련 장치들에 의해 훈련되는 DNN을 포함할 수도 있다.
도 4a는 실시형태들에 따른, 마이크로-구조화된 가중치 프루닝을 이용한 신경 네트워크 모델 압축을 위한 훈련 장치(400A)의 기능 블록도이다. 도 4b는 다른 실시형태들에 따른, 마이크로-구조화된 가중치 프루닝을 이용한 신경 네트워크 모델 압축을 위한 훈련 장치(400B)의 기능 블록도이다.
도 4a에 나타낸 바와 같이, 훈련 장치(400A)는 마이크로-구조 선택 모듈(405), 가중치 프루닝 모듈(410), 네트워크 순방향 계산 모듈(415), 타깃 손실 계산 모듈(420), 기울기 계산 모듈(425) 및 가중치 업데이트 모듈(430)을 포함한다.
도 4b에 나타낸 바와 같이, 훈련 장치(400B)는 마이크로-구조 선택 모듈(405), 가중치 프루닝 모듈(410), 네트워크 순방향 계산 모듈(415), 타깃 손실 계산 모듈(420), 기울기 계산 모듈(425) 및 가중치 업데이트 모듈(430)을 포함한다. 훈련 장치(400B)는 마스크 계산 모듈(435)을 더 포함한다.
Figure pct00001
={(x,y)}가 데이터 세트를 나타내며, 여기서, 타깃 y는 입력 x에 할당된다. Θ={w}가 (예컨대, 파라미터 감소 모듈(310) 또는 파라미터 근사 모듈(320)의) DNN의 가중치 계수들의 세트를 나타낸다. 네트워크 훈련의 타깃은 타깃 손실 £(
Figure pct00002
|Θ)가 최소화될 수 있도록 가중치 계수들 Θ의 최적의 세트를 학습하는 것이다. 예를 들어, 이전 네트워크 프루닝 접근법들에서, 타깃 손실 £T(
Figure pct00003
|Θ)는 2개의 부분들, 경험적 데이터 손실
Figure pct00004
(
Figure pct00005
|Θ) 및 희소성-촉진 정규화 손실 £R(Θ)을 가지며:
T(
Figure pct00006
|Θ) =
Figure pct00007
(
Figure pct00008
| Θ) + λRR(Θ), (1)
여기서, λR≥0은 데이터 손실 및 정규화 손실의 기여들을 균형 있게 조정하는 하이퍼파라미터이다. λR=0일 때, 단지 타깃 손실 £T(
Figure pct00009
|Θ)은 단지 경험적 데이터 손실만을 고려하고, 사전-훈련된 가중치 계수들은 조밀하다.
사전-훈련된 가중치 계수들 Θ는 추가적인 모델 압축 및 추론 가속을 달성하기 위해 가중치 계수들의 최적의 세트가 학습될 수 있는 다른 네트워크 훈련 프로세스를 추가로 거칠 수 있다. 실시형태들은 이 목표를 달성하기 위한 마이크로-구조화된 프루닝 방법을 포함한다.
구체적으로 설명하면, 마이크로-구조화된 가중치 프루닝 손실 £S(
Figure pct00010
|Θ)이 정의되고, 원래 타깃 손실과 함께 최적화되며:
£(
Figure pct00011
|Θ) = £T(
Figure pct00012
|Θ) + λSS(Θ), (2)
여기서, λS≥0은 원래 훈련 타깃 및 가중치 프루닝 타깃의 기여들을 균형 있게 조정하는 하이퍼파라미터이다. 수식(2)의 £(
Figure pct00013
|Θ)를 최적화함으로써, 추가적인 압축의 유효성을 크게 도울 수 있는 가중치 계수들의 최적의 세트가 획득될 수 있다. 또한, 마이크로-구조화된 가중치 프루닝 손실은 컨볼루션 연산이 GEMM 매트릭스 곱셈 프로세스로서 수행되는 방법의 기본 프로세스를 고려하여, 계산을 크게 가속할 수 있는 최적화된 가중치 계수들을 발생시킨다. 정규화를 이용하는 경우(λR>0일 때) 또는 정규화를 이용하지 않는 경우(λR=0일 때), 가중치 프루닝 손실이 타깃 손실에 대한 추가적인 정규화 항으로서 간주될 수 있다는 점에 주목할 가치가 있다. 또한, 본 방법은 임의의 정규화 손실 £R(Θ)에 유연하게 적용될 수 있다.
학습 유효성 및 학습 효율 둘 모두에 대해, 반복 최적화 프로세스가 수행된다. 제1 단계에서, 원하는 마이크로 구조를 만족시키는 가중치 계수들의 부분들이 고정되며, 그리고 이후, 제2 단계에서, 가중치 계수들의 비-고정된 부분들이 훈련 손실을 역전파함으로써 업데이트된다. 이들 2개의 단계들을 반복적으로 수행함으로써, 점점 더 많은 가중치들이 점진적으로 고정될 수 있으며, 조인트 손실이 효과적으로 점진적으로 최적화될 수 있다.
더욱이, 실시형태들에서, 각각의 계층은 개별적으로 압축되며, 따라서, £S(
Figure pct00014
|Θ)은 다음과 같이 추가로 쓸 수 있으며:
Figure pct00015
(3)
여기서, Ls(Wj)는 j-번째 계층에 대해 정의된 프루닝 손실이고, N은 이 훈련 프로세스에 관련된 계층들의 총 개수이고, Wj는 j-번째 계층의 가중치 계수들을 나타낸다. 또, LS(Wj)가 각각의 계층에 대해 독립적으로 계산되므로, 스크립트 j는 보편성의 손실 없이 생략될 수도 있다.
각각의 네트워크 계층에 대해, 그의 가중치 계수들 W는 사이즈(ci, k1, k2, k3, co)를 가진 5-차원(5D) 텐서이다. 계층의 입력은 사이즈(hi,wi,di,ci)의 4-차원(4D) 텐서 A이고, 계층의 출력은 사이즈(ho,wo,do,co)의 4D 텐서 B이다. 사이즈들 ci, k1, k2, k3, co, hi, wi, di, ho, wo, do는 1이상인 정수들이다. 사이즈들 ci, k1, k2, k3, co, hi, wi, di, ho, wo, do 중 임의의 것이 숫자 1을 취할 때, 대응하는 텐서는 더 낮은 차원으로 감소된다. 각각의 텐서에서의 각각의 아이템은 부동 숫자이다. M은 W와 동일한 사이즈의 5D 2진 마스크를 나타내고, 여기서, M에서의 각각의 아이템은 대응하는 가중치 계수가 사전-프루닝된 프로세스에서 프루닝/유지되는지 여부를 표시하는 2진수 0/1이다. M은 W가 이전에 구조화된 또는 비구조화된 프루닝 방법들을 이용하여 프루닝된 DNN 모델로부터 유래하는 경우에 대처하기 위해 W와 연관되도록 도입되며, 여기서, 네트워크 내 뉴런들 사이의 일부 접속들은 계산으로부터 제거된다. W가 원래 비프루닝된 밀집 모델로부터 유래할 때, M에서의 모든 아이템들은 값 1을 취한다. 출력 B는 A, M 및 W에 기초하여 컨볼루션 연산
Figure pct00016
을 통해서 계산된다:
Figure pct00017
Figure pct00018
Figure pct00019
(4)
파라미터들 hi, wi 및 di(h0, wo 및 do)은 입력 텐서 A(출력 텐서 B)의 높이, 가중치 및 심도이다. 파라미터 ci(co)는 입력(출력) 채널의 수이다. 파라미터들 k1, k2 및 k3는 각각 높이, 가중치 및 심도 축들에 대응하는 컨볼루션 커널의 사이즈이다. 즉, 각각의 출력 채널 v=1,…,co에 대해, 수식(4)에서 설명된 연산은 입력 A와 컨볼루션하는 사이즈(ci,k1,k2,k3)의 4D 가중치 텐서 Wv로서 볼 수 있다.
수식(4)에서의 합산 연산의 순서는 변경될 수 있으며, 동일한 출력 B를 획득하기 위해 입력 A, 가중치 W(및 마스크 M)의 형상들의 상이한 구성들을 발생시킨다. 실시형태들에서, 2개의 구성들이 취해진다. (1) 5D 가중치 텐서가 사이즈
Figure pct00020
의 3D 텐서로 재형성되며, 여기서,
Figure pct00021
이다. 예를 들어, 구성은
Figure pct00022
이다. (2) 5D 가중치 텐서가 사이즈
Figure pct00023
의 2D 매트릭스로 재형성되며, 여기서,
Figure pct00024
이다. 예를 들어, 일부 실시형태들은
Figure pct00025
, 또는
Figure pct00026
이다.
가중치 계수들의 원하는 마이크로-구조는 학습된 가중치 계수들을 이용하는 추론 계산이 가속되도록 컨볼루션 연산이 구현되는 방법의 기본 GEMM 매트릭스 곱셈 프로세스와 동조된다. 실시형태들에서, 가중치 계수들에 대한 블록-방식 마이크로-구조들이 3D 재형성된(reshaped) 가중치 텐서 또는 2D 재형성된 가중치 매트릭스에서 각각의 계층에 사용된다. 구체적으로 설명하면, 재형성된 3D 가중치 텐서의 경우, 사이즈(gi,go,gk)의 블록들로 파티셔닝되며, 재형성된 2D 가중치 매트릭스의 경우, 사이즈(gi,go)의 블록들로 파티셔닝된다. 프루닝 동작은 2D 또는 3D 블록들 내에서 발생한다, 즉, 블록 내 프루닝된 가중치들은 모두 제로들로 설정된다. 블록의 프루닝 손실은 이러한 프루닝 동작에 의해 도입되는 에러를 측정하여 계산될 수 있다. 이 마이크로-구조가 주어지면, 반복 동안, 프루닝될 가중치 계수들의 부분은 프루닝 손실에 기초하여 결정된다. 이후, 제2 단계에서, 프루닝된 가중치들이 고정되고, 정상 신경 네트워크 훈련 프로세스가 수행되며, 나머지 비-고정된 가중치 계수들이 역-전파 메커니즘을 통해서 업데이트된다.
도 4a 및 도 4b는 반복 재훈련/미세조정 프로세스의 실시형태들을 나타내며, 수식(2)의 조인트 손실을 점진적으로 최적화하기 위해 대안적인 2개의 단계들 둘 모두를 반복적으로 교대한다. 가중치 계수들 {W} 및 마스크 {M}을 이용한 사전-훈련된 DNN 모델이 주어지면, 이는 프루닝된 희소 모델 또는 비-프루닝된 비-희소 모델일 수 있으며, 제1 단계에서, 마이크로-구조 선택 모듈(405)은 먼저 각각의 계층의 가중치 계수들 W(및 대응하는 마스크 M)를 원하는 3D 텐서 또는 2D 매트릭스로 재형성한다. 이후, 각각의 계층에 대해, 마이크로-구조 선택 모듈(405)은 가중치들이 프루닝 마이크로-구조 선택 프로세스를 통해서 프루닝될 프루닝 마이크로-구조들 {bs} 또는 프루닝 마이크로-구조 블록들(PMB)의 세트를 결정한다. 프루닝 마이크로-구조들 {bs}을 결정하는 다수의 방법들이 있다. 실시형태들에서, 가중치 계수 W 및 마스크 M을 가진 각각의 계층에 대해, W에서의 각각의 블록 b의 경우, 프루닝 손실 Ls(b)(예컨대, b에서의 절대 가중치들의 합계)가 계산된다. 프루닝 비 p가 주어지면, 이 계층의 블록들은 Ls(b)에 따라 오름차순(accending order)으로 순위 지정되고, 상위 p% 블록들은 프루닝될 {bs}로서 선택된다. 다른 실시형태들에서, 가중치 계수 W 및 마스크 M을 가진 각각의 계층에 대해, 각각의 블록 b의 프루닝 손실 Ls(b)는 위와 동일한 방법으로 계산된다. 프루닝 비 p가 주어지면, 모든 계층들의 모든 블록들은 Ls(b)에 따라 오름차순으로 순위 지정되고, 상위 p% 블록들은 프루닝될 {bs}로서 선택된다.
프루닝 마이크로-구조의 세트를 획득한 후, 타깃은 수식(2)에서 기술된 조인트 손실을 반복적으로 최소화함으로써, 업데이트된 최적의 가중치 계수들 W* 및 대응하는 가중치 마스크 M*의 세트를 찾는 것으로 전환한다. 도 4a에 의해 예시된 제1 실시형태에서, t-번째 반복에 대해, 현재의 가중치 계수들 W(t-1)이 있다. 또한, 마이크로-구조 프루닝 마스크 P(t-1)은 훈련 프로세스 전체에 걸쳐서 유지된다. P(t-1)은 W(t-1)과 동일한 형상을 가지며, 대응하는 가중치 계수가 프루닝되는지 여부를 기록한다. 이후, 가중치 프루닝 모듈(410)은 가중치 프루닝 프로세스를 통해서 프루닝된 가중치 계수들 WP(t-1)을 계산하며, 여기서, P(t-1)에 의해 마스킹된 선택된 프루닝 마이크로-구조들이 프루닝되어, 업데이트된 가중치 마스크 MP(t-1)을 발생시킨다.
이후, 제2 단계에서, 가중치 업데이트 모듈(430)은 P(t-1)에 의해 마스킹된 가중치 계수들을 마이크로-구조 프루닝되는 것으로 고정하고, 그리고 이후 신경 네트워크 훈련 프로세스를 통해 WP(t-1)의 나머지 비고정된 가중치 계수들을 업데이트하여, 업데이트된 W(t) 및 M(t)를 발생시킨다. 실시형태들에서, 사전-훈련된 프루닝 마스크 M에 의해 마스킹된 사전-프루닝된 가중치 계수들은 이 네트워크 훈련 프로세스 동안 강제로 고정된다(즉, 제로로 유지됨). 다른 실시형태에서, 사전-프루닝된 가중치들에 대한 이러한 제한이 없으며, 사전-프루닝된 가중치가 훈련 프로세스 동안 0 이외의 일부 값으로 재설정될 수 있으므로, 더 나은 예측 성능과 연관된 더 적은 희소 모델을 발생시켜, 원래 사전 훈련된 모델보다 휠씬 더 좋을 수 있다.
구체적으로 설명하면,
Figure pct00027
={(x,y)}는 훈련 데이터세트를 나타내며, 여기서,
Figure pct00028
는 사전-훈련된 가중치 계수들 W가 획득되는 것에 기반한 원래 데이터세트
Figure pct00029
0={(x0,y0)}와 동일할 수 있다.
Figure pct00030
는 또한
Figure pct00031
0와는 상이한 데이터세트일 수 있지만, 원래 데이터세트
Figure pct00032
와 동일한 데이터 분포일 수 있다. 제2 단계에서, 네트워크 순방향 계산 모듈(415)은 현재의 가중치 계수들 WP(t-1) 및 마스크 MP(t-1)을 이용하는 네트워크 순방향 계산 프로세스를 통해서 현재의 네트워크를 통해 각각의 입력 x를 통과시켜, 추정된 출력
Figure pct00033
를 발생시킨다. 실측 주석 y 및 추정된 출력
Figure pct00034
에 기초하여, 타깃 손실 계산 모듈(420)은 계산 타깃 손실 프로세스를 통해 수식(2)의 타깃 훈련 손실 £T(
Figure pct00035
|Θ)를 계산한다. 이후, 기울기 계산 모듈(425)은 타깃 손실 G(WP(t-1))의 기울기를 계산한다. tensorflow 또는 pytorch와 같은 심층 학습 프레임워크들에 의해 사용되는 자동 기울기 컴퓨팅 방법이 G(WP(t-1))을 계산하는데 사용될 수 있다. 기울기 G(WP(t-1)) 및 마이크로-구조 프루닝 마스크 P(t-1)에 기초하여, 가중치 업데이트 모듈(430)은 역전파 및 가중치 업데이트 프로세스를 이용한 역-전파를 통해서 WP(t-1)의 비-고정된 가중치 계수들을 업데이트할 수 있다. 재훈련 프로세스는 또한 반복 프로세스 그 자체이다. 예컨대, 타깃 손실이 수렴할 때까지, WP(t-1)의 비-고정된 부분들을 업데이트하도록 다수의 반복들이 취해진다. 이후, 시스템이 다음 반복 t로 진행하고, 새로운 프루닝 비 p(t)가 주어지면, 프루닝 마이크로-구조들의 새로운 세트(뿐만 아니라, 새로운 마이크로-구조 프루닝 마스크 P(t))는 프루닝 마이크로-구조 선택 프로세스를 통해서 결정된다.
도 4b에 의해 예시되는 훈련 프로세스의 제2 실시형태에서, 업데이트된 최적의 가중치 계수들 W* 및 대응하는 가중치 마스크 M*의 세트가 다른 반복 프로세스에 의해 발견된다. t-번째 반복에 대해, 현재의 가중치 계수들 W(t-1) 및 마스크 M(t-1)이 있다. 또한, 마스크 계산 모듈(435)은 프루닝 마스크 계산 프로세스를 통해서 마이크로-구조 프루닝 마스크 P(t-1)을 계산한다. P(t-1)은 W(t-1)과 동일한 형상을 가지며, 대응하는 가중치 계수가 프루닝되는지 여부를 기록한다. 이후, 가중치 프루닝 모듈(410)은 가중치 프루닝 프로세스를 통해 프루닝된 가중치 계수들 WP(t-1)을 계산하며, 여기서, 마스킹된 선택된 프루닝 마이크로-구조들이 P(t-1)에 의해 프루닝되어, 업데이트된 가중치 마스크 MP(t-1)을 발생시킨다.
이후, 제2 단계에서, 가중치 업데이트 모듈(430)은 P(t-1)에 의해 마스킹된 가중치 계수들을 마이크로-구조 프루닝되는 것으로 고정하고, 그리고 이후 신경 네트워크 훈련 프로세스를 통해 W(t-1)의 나머지 비고정된 가중치 계수들을 업데이트하여, 업데이트된 W(t)를 발생시킨다. 도 4a의 제1 실시형태와 유사하게, 훈련 데이터세트
Figure pct00036
={(x,y)}가 주어지면, 네트워크 순방향 계산 모듈(415)은 현재의 가중치 계수들 W(t-1) 및 마스크 M(t-1)을 이용하는 네트워크 순방향 계산 프로세스를 통해서 현재의 네트워크를 통해 각각의 입력 x를 통과시켜, 추정된 출력
Figure pct00037
를 발생시킨다. 실측 주석 y 및 추정된 출력
Figure pct00038
에 기초하여, 타깃 손실 계산 모듈(420)은 계산 조인트 손실 프로세스를 통해 수식(2)의 타깃 훈련 손실 £T(
Figure pct00039
|Θ)을 포함하는 조인트 훈련 손실 £J(
Figure pct00040
|Θ) 및 잔차 손실 £res(W(t-1))을 계산한다:
J(
Figure pct00041
|Θ) = £T(
Figure pct00042
|Θ) + λresres(W(t-1)). (5)
res(W(t-1))은 현재의 가중치들 W(t-1)과 타깃 프루닝된 가중치들 WP(t-1) 사이의 차이를 측정한다. 예를 들어, L1 놈이 사용될 수 있다:
res(W(t-1)) = ||W(t-1))-WP(t-1)|| (6)
이후, 기울기 계산 모듈(425)은 조인트 손실 G(W(t-1))의 기울기를 계산한다. tensorflow 또는 pytorch와 같은 심층 학습 프레임워크들에 의해 사용되는 자동 기울기 컴퓨팅 방법이 G(W(t-1))을 계산하는데 사용될 수 있다. 기울기 G(W(t-1)) 및 마이크로-구조 프루닝 마스크 P(t-1)에 기초하여, 가중치 업데이트 모듈(430)은 역전파 및 가중치 업데이트 프로세스를 이용하는 역-전파를 통해 W(t-1)의 비-고정된 가중치 계수들을 업데이트한다. 재훈련 프로세스는 또한 반복 프로세스 그 자체이다. W(t-1)의 비-고정된 부분들을 업데이트하기 위해, 예컨대, 타깃 손실이 수렴할 때까지 다수의 반복들이 취해진다. 이후, 시스템이 다음 반복 t로 진행하고, 프루닝 비 p(t)가 주어지면, 프루닝 마이크로-구조들의 새로운 세트(뿐만 아니라, 새로운 마이크로-구조 프루닝 마스크 P(t))는 프루닝 마이크로-구조 선택 프로세스를 통해서 결정된다. 도 4a의 이전 실시형태와 유사하게, 이 훈련 프로세스 동안, 사전 훈련된 사전-프루닝 마스크 M에 의해 마스킹된 가중치 계수들은 강제로 제로로 유지될 수 있거나, 또는 다시 비-제로 값을 갖도록 설정될 수도 있다.
이 전체 반복 프로세스 동안, T-번째 반복에서, 프루닝된 가중치 계수들 WP(T)는 가중치 프루닝 프로세스를 통해 계산될 수 있으며, 여기서, 마스킹된 선택된 프루닝 마이크로-구조들이 P(T)에 의해 프루닝되어, 업데이트된 가중치 마스크 MP(T)를 발생시킨다. 이 WP(T) 및 MP(T)는 최종 업데이트된 모델 W* 및 M*를 발생시키는데 사용될 수 있다. 예를 들어, W*=WP(T), 및 M*=M·MP(T)이다.
실시형태들에서, 하이퍼파라미터 p(t)는 t가 증가함에 따라 반복들 동안 그의 값을 증가시킬 수도 있으므로, 전체 반복 학습 프로세스 전체에 걸쳐서 점점 더 많은 가중치 계수들이 프루닝되고 고정될 것이다.
마이크로-구조화된 프루닝 방법은 모델 사이즈를 감소시키고, 최적화된 가중치 계수들을 사용하기 위한 계산 속도를 증가시키고, 원래 DNN 모델의 예측 성능을 유지하는 것을 타깃으로 한다. 이는, 추가적인 압축 효과들을 달성하기 위해, 사전-훈련된 밀집 모델, 또는 이전에 구조화된 또는 비구조화된 프루닝 방법들에 의해 프루닝된 사전-훈련된 희소 모델에 적용될 수 있다.
반복 재훈련 프로세스를 통해서, 본 방법은 원래 예측 타깃의 성능을 효과적으로 유지하고 압축 및 계산 효율을 추구할 수 있다. 반복 재훈련 프로세스는 또한 상이한 시간들에서 상이한 손실을 유도하는 유연성을 제공하여, 시스템이 최적화 프로세스 동안 상이한 타깃에 초점을 맞추도록 한다.
본 방법은 상이한 데이터 형태들을 가진 데이터세트들에 적용될 수 있다. 입력/출력 데이터는 실제 비디오 세그먼트들, 이미지들, 또는 추출된 특징 맵들일 수 있는 4D 텐서들이다.
도 4c는 또 다른 실시형태들에 따른, 가중치 통합을 이용한 신경 네트워크 모델 압축을 위한 훈련 장치(400C)의 기능 블록도이다.
도 4c에 나타낸 바와 같이, 훈련 장치(400C)는 재형성(reshaping) 모듈(440), 가중치 통합 모듈(445), 네트워크 순방향 계산 모듈(415), 타깃 손실 계산 모듈(420), 기울기 계산 모듈(425) 및 가중치 업데이트 모듈(450)을 포함한다.
희소성-촉진 정규화 손실은 전체 가중치 계수들에 걸쳐서 정규화를 배치하고, 결과적인 희소 가중치들은 추론 효율 또는 계산 가속과 약한 관계를 갖는다. 다른 관점으로부터, 프루닝 이후, 희소 가중치들이 추가적인 모델 압축의 효율을 향상시킬 수 있는 가중치 계수들의 최적의 세트가 학습될 수 있는 다른 네트워크 훈련 프로세스를 추가로 거칠 수 있다.
가중치 통합 손실 £U(
Figure pct00043
|Θ)는 원래 타깃 손실과 함께 최적화되며:
£(
Figure pct00044
|Θ) = £T(
Figure pct00045
|Θ) + λUU(Θ), (7)
여기서, λU≥0은 원래 훈련 타깃 및 가중치 통합의 기여들을 균형 있게 조정하는 하이퍼파라미터이다. 수식(7)의 £(
Figure pct00046
|Θ)을 공동으로 최적화함으로써, 추가적인 압축의 유효성을 크게 도울 수 있는 가중치 계수들의 최적의 세트가 획득된다. 또한, 가중치 통합 손실은 컨볼루션 연산이 GEMM 매트릭스 곱셈 프로세스로서 수행되는 방법의 기본 프로세스를 고려하여, 계산을 크게 가속할 수 있는 최적화된 가중치 계수들을 발생시킨다. 정규화를 이용하는 경우(λR>0일 때) 또는 정규화를 이용하지 않는 경우(λR=0일 때), 가중치 통합 손실이 타깃 손실에 대한 추가적인 정규화 항으로서 간주될 수 있다는 점에 주목할 가치가 있다. 또한, 본 방법은 임의의 정규화 손실 £R(Θ)에 유연하게 적용될 수 있다.
실시형태들에서, 가중치 통합 손실 £U(Θ)은 압축율 손실 £C(Θ), 통합 왜곡 손실 £I(Θ), 및 계산 속도 손실 £S(Θ)을 더 포함하며:
U(Θ) = £I(Θ) + λCC(Θ) + λSS(Θ), (8)
이들 손실 용어들의 상세한 설명들은 이후 세션들에서 설명된다. 학습 유효성 및 학습 효율 둘 모두에 대해, 반복 최적화 프로세스가 수행된다. 제1 단계에서, 원하는 구조를 만족시키는 가중치 계수들의 부분들이 고정되고, 그리고 이후, 제2 단계에서, 가중치 계수들의 비-고정된 부분들이 훈련 손실을 역전파함으로써 업데이트된다. 이들 2개의 단계들을 반복적으로 수행함으로써, 점점 더 많은 가중치들이 점진적으로 고정될 수 있으며, 조인트 손실이 효과적으로 점진적으로 최적화될 수 있다.
더욱이, 실시형태들에서, 각각의 계층은 개별적으로 압축되며, £U(
Figure pct00047
|Θ)는 다음과 같이 추가로 쓸 수 있으며:
Figure pct00048
(9)
여기서, LU(Wj)는 j-번째 계층에 대해 정의된 통합 손실이고; N은 양자화 손실이 측정된 계층들의 총 개수이고; Wj는 j-번째 계층의 가중치 계수들을 나타낸다. 또, LU(Wj)가 각각의 계층에 대해 독립적으로 계산되므로, 본 개시내용의 나머지에서, 스크립트 j는 보편성의 손실 없이 생략될 수도 있다.
각각의 네트워크 계층에 대해, 그의 가중치 계수들 W는 사이즈(ci, k1, k2, k3, co)를 가진 5-차원(5D) 텐서이다. 계층의 입력은 사이즈(hi,wi,di,ci)의 4-차원(4D) 텐서 A이며, 계층의 출력은 사이즈(ho,wo,do,co)의 4D 텐서 B이다. 사이즈들 ci, k1, k2, k3, co, hi, wi, di, ho, wo, do는 1이상인 정수들이다. 사이즈들 ci, k1, k2, k3, co, hi, wi, di, ho, wo, do 중 임의의 것이 숫자 1을 취할 때, 대응하는 텐서는 더 낮은 차원으로 감소된다. 각각의 텐서에서의 각각의 아이템은 부동 숫자이다. M은 W와 동일한 사이즈의 5D 2진 마스크를 나타내며, 여기서, M에서의 각각의 아이템은 대응하는 가중치 계수가 프루닝/유지되는지 여부를 표시하는 2진수 0/1이다. M은 W가 프루닝된 DNN 모델로부터 유래하는 경우에 대처하기 위해 W와 연관되도록 도입되며, 여기서 네트워크에서의 뉴런들 사이의 일부 접속들이 계산으로부터 제거된다. W가 원래 비프루닝된 사전 훈련된 모델로부터 유래할 때, M에서의 모든 아이템들은 값 1을 취한다. 출력 B는 A, M 및 W에 기초하여 컨볼루션 연산
Figure pct00049
을 통해서 계산된다:
Figure pct00050
Figure pct00051
Figure pct00052
(10)
파라미터들 hi, wi 및 di(h0, wo 및 do)는 입력 텐서 A(출력 텐서 B)의 높이, 가중치 및 심도이다. 파라미터 ci(co)는 입력(출력) 채널의 수이다. 파라미터들 k1, k2 및 k3는 각각 높이, 가중치 및 심도 축들에 대응하는 컨볼루션 커널의 사이즈이다. 즉, 각각의 출력 채널 v=1,…,co에 대해, 수식(10)에서 기술된 연산은 입력 A와 컨볼루션하는 사이즈(ci,k1,k2,k3)의 4D 가중치 텐서 Wv로서 간주될 수 있다.
수식(10)에서의 합산 연산의 순서는 변경될 수 있으며, 실시형태들에서, 수식(10)의 동작은 다음과 같이 수행된다. 5D 가중치 텐서가 사이즈
Figure pct00053
의 2D 매트릭스로 재형성되며, 여기서,
Figure pct00054
이다. 예를 들어, 일부 실시형태들은
Figure pct00055
, 또는
Figure pct00056
이다.
가중치 계수들의 원하는 구조는 2개의 양태들을 고려하여 설계된다. 첫째, 가중치 계수들의 구조는 학습된 가중치 계수들을 이용하는 추론 계산이 가속되도록 컨볼루션 연산이 구현되는 방법의 기본 GEMM 매트릭스 곱셈 프로세스와 동조된다. 둘째, 가중치 계수들의 구조는 추가적인 압축을 위해 양자화 및 엔트로피 코딩 효율을 향상시키는 것을 도울 수 있다. 실시형태들에서, 가중치 계수들에 대한 블록-방식 구조는 2D 재형성된 가중치 매트릭스에서 각각의 계층에 사용된다. 구체적으로 설명하면, 2D 매트릭스는 사이즈(gi,go)의 블록들로 파티셔닝되고, 블록 내 모든 계수들이 통합된다. 블록 내 통합된 가중치들은 사전-정의된 통합 규칙을 따르도록 설정되며, 예컨대, 모든 값들은 하나의 값이 고효율을 산출하는 양자화 프로세스에서 전체 블록을 나타내는데 사용될 수 있도록 동일하게 설정된다. 가중치들을 통합하는 다수의 규칙들이 있을 수 있으며, 각각은 이 규칙을 취함으로써 도입되는 에러를 측정하는 통합 왜곡 손실과 연관된다. 예를 들어, 가중치들을 동일한 것으로 설정하는 대신, 가중치들은 이들의 원래 부호들을 유지하면서 동일한 절대값을 갖도록 설정된다. 이 설계된 구조가 주어지면, 반복 동안, 가중치 계수들의 부분은 통합 왜곡 손실, 추정된 압축율 손실, 및 추정된 속도 손실을 고려하여 고정되도록 결정된다. 이후, 제2 단계에서, 정상 신경 네트워크 훈련 프로세스가 수행되며, 나머지 비-고정된 가중치 계수들이 역-전파 메커니즘을 통해서 업데이트된다.
도 4c는 반복 재훈련/미세조정 프로세스의 전체 프레임워크를 나타내며, 이는 수식(7)의 조인트 손실을 점진적으로 최적화하기 위해 2개의 단계들을 반복적으로 교대한다. 가중치 계수들 W 및 마스크 M을 갖는 사전-훈련된 DNN 모델이 주어지면, 이는 프루닝된 희소 모델 또는 비-프루닝된 비-희소 모델일 수 있으며, 제1 단계에서, 재형성 모듈(440)은 통합 방법 선택 프로세스를 통해서 가중치 통합 방법들 u*을 결정한다. 이 프로세스에서, 재형성 모듈(440)은 가중치 계수들 W(및 대응하는 마스크 M)를 사이즈
Figure pct00057
의 2D 매트릭스로 재형성하고, 그리고 이후 재형성된 2D 가중치 매트릭스 W를 사이즈(gi,go)의 블록들로 파티셔닝한다. 가중치 통합은 블록들 내부에서 발생한다. 각각의 블록 b에 대해, 가중치 통합기가 블록 내 가중치 계수들을 통합하기 위해 사용된다. b에서의 가중치 계수들을 통합하는 상이한 방법들이 있을 수 있다. 예를 들어, 가중치 통합기는 b에서의 모든 가중치들을 동일하게 예컨대, b에서의 모든 가중치들의 평균으로 설정할 수 있다. 이러한 경우, b에서의 가중치 계수들의 LN 놈(예컨대, b에서의 가중치들의 분산으로서의 L2 놈)은 전체 블록을 나타내기 위해 평균을 사용하는 통합 왜곡 손실 £I(b)를 반영한다. 또한, 가중치 통합기는 원래 부호들을 유지하면서 동일한 절대값을 갖도록 모든 가중치들을 설정할 수 있다. 이러한 경우, b에서의 절대 가중치들의 LN 놈이 LI(b)를 측정하는데 사용될 수 있다. 다시 말해서, 가중치 통합 방법 u가 주어지면, 가중치 통합기는 연관된 통합 왜곡 손실 LI(u,b)와 함께 방법 u를 이용하여 b에서의 가중치들을 통합할 수 있다.
이와 유사하게, 수식(8)의 압축율 손실 £C(u,b)는 방법 u를 이용하여 b에서의 가중치들을 통합하는 압축 효율을 반영한다. 예를 들어, 모든 가중치들이 동일하게 설정될 때, 오직 하나의 숫자가 전체 블록을 나타내는데 사용되며, 압축율은 rcompression = gi·go이다. £C(u,b)는 1/rcompression로서 정의될 수 있다.
수식(8)에서의 속도 손실 £S(u,b)은 통합된 가중치 계수들을 이용하는 계산에서의 곱셈 연산의 횟수의 함수인 방법 u와 함께 b에서의 통합된 가중치 계수들을 이용한 추정된 계산 속도를 반영한다.
지금까지, 그리고, 가중치 통합기에 의해 b에서의 가중치들을 통합하는 각각의 가능한 방법 u에 있어서, 수식(8)의 가중치 통합 손실 £U(u,b)는 £I(u,b), £C(u,b), £S(u,b)에 기초하여 계산된다. 최적의 가중치 통합 방법 u*가 가장 작은 가중치 통합 손실 £U*(u,b)로 선택될 수 있다.
일단 가중치 통합 방법 u*가 모든 블록 b에 대해 결정되면, 타깃은 수식(7)에서 기술된 조인트 손실을 반복적으로 최소화함으로써, 업데이트된 최적의 가중치 계수들 W* 및 대응하는 가중치 마스크 M*의 세트를 찾는 것으로 전환한다. 구체적으로 설명하면, t-번째 반복에 대해, 현재의 가중치 계수들 W(t-1) 및 마스크 M(t-1)이 있다. 또한, 가중치 통합 마스크 Q(t-1)은 훈련 프로세스 전체에 걸쳐서 유지된다. 가중치 통합 마스크 Q(t-1)은 W(t-1)과 동일한 형상을 가지며, 이는 대응하는 가중치 계수가 통합되는지 여부를 기록한다. 이후, 가중치 통합 모듈(445)은 가중치 통합 프로세스를 통해서, 통합된 가중치 계수들 WU(t-1) 및 새로운 통합 마스크 Q(t-1)을 계산한다. 가중치 통합 프로세스에서, 블록들은 이들의 통합 손실 £U(u*,b)에 기초하여 오름차순으로 순위 지정된다. 하이퍼파라미터 q가 주어지면, 상위 q% 블록들은 통합되도록 선택된다. 그리고, 가중치 통합기는 대응하는 결정된 방법 u*을 이용하여, 선택된 블록들 b에서의 블록들을 통합하여, 통합된 가중치 WU(t-1) 및 가중치 마스크 MU(t-1)을 발생시킨다. 통합 마스크 Q(t-1)에서의 대응하는 엔트리는 통합되는 것으로 표시된다. 실시형태들에서, MU(t-1)은 M(t-1)과는 상이하며, 여기서, 프루닝된 및 비프루닝된 가중치 계수들 둘 모두를 갖는 블록에 대해, 원래 프루닝된 가중치 계수들은 가중치 통합기에 의해 다시 비-제로 값을 갖도록 설정될 것이며, MU(t-1)에서의 대응하는 아이템은 변경될 것이다. 다른 실시형태에서, MU(t-1)은 M(t-1)와 동일하며, 여기서, 프루닝된 및 비프루닝된 가중치 계수들 둘 모두를 갖는 블록들에 대해, 단지 비프루닝된 가중치들은 리셋될 것이며, 반면 프루닝된 가중치들은 제로로 유지한다.
이후, 제2 단계에서, 가중치 업데이트 모듈(450)은 Q(t-1)에 표시된 가중치 계수들을 통합된 것으로 고정하고, 그리고 이후 신경 네트워크 훈련 프로세스를 통해서 W(t-1)의 나머지 비고정된 가중치 계수들을 업데이트하여, 업데이트된 W(t) 및 M(t)를 발생시킨다.
Figure pct00058
={(x,y)}는 훈련 데이터세트를 나타내며, 여기서,
Figure pct00059
는 사전-훈련된 가중치 계수들 W가 획득되는 것에 기반한 원래 데이터세트
Figure pct00060
0={(x0,y0)}와 동일할 수 있다.
Figure pct00061
는 또한
Figure pct00062
0와는 상이한 데이터세트일 수 있지만, 원래 데이터세트
Figure pct00063
와 동일한 데이터 분포일 수 있다. 제2 단계에서, 네트워크 순방향 계산 모듈(415)은 현재의 가중치 계수들 WU(t-1) 및 마스크 MU(t-1)을 이용하는 네트워크 순방향 계산 프로세스를 통해서 현재의 네트워크를 통해 각각의 입력 x를 통과시켜, 추정된 출력
Figure pct00064
를 발생시킨다. 실측 주석 y 및 추정된 출력
Figure pct00065
에 기초하여, 타깃 손실 계산 모듈(420)은 계산 타깃 손실 프로세스를 통해서 수식(7)에서의 타깃 훈련 손실 £T(
Figure pct00066
|Θ)를 계산한다. 이후, 기울기 계산 모듈(425)은 타깃 손실 G(WU(t-1))의 기울기를 계산한다. tensorflow 또는 pytorch와 같은 심층 학습 프레임워크들에 의해 사용되는 자동 기울기 컴퓨팅 방법이 G(WU(t-1))을 계산하는데 사용될 수 있다. 기울기 G(WU(t-1)) 및 통합 마스크 Q(t-1)에 기초하여, 가중치 업데이트 모듈(450)은 역전파 및 가중치 업데이트 프로세스를 이용하는 역-전파를 통해 WU(t-1) 및 대응하는 마스크 MU(t-1)의 비-고정된 가중치 계수들을 업데이트한다. 재훈련 프로세스는 또한 반복 프로세스 그 자체이다. WU(t-1) 및 대응하는 M(t-1)의 비-고정된 부분들을 업데이트하기 위해, 예컨대, 타깃 손실이 수렴할 때까지, 다수의 반복들이 취해진다. 이후, 시스템이 다음 반복 t로 진행하고, 여기서, 새로운 하이퍼파라미터 q(t)가 주어지면, WU(t-1) 및 u*에 기초하여, 새로운 통합된 가중치 계수들 WU(t), 마스크 MU(t), 및 대응하는 통합 마스크 Q(t)가 가중치 통합 프로세스를 통해서 계산될 수 있다.
실시형태들에서, 하이퍼파라미터 q(t)는 t가 증가함에 따라 각각의 반복 동안 그의 값을 증가시키므로, 전체 반복 학습 프로세스를 통해서 점점 더 많은 가중치 계수들이 통합 및 고정될 것이다.
통합 정규화는 학습된 가중치 계수들의 추가적인 압축의 효율을 향상시키고, 최적화된 가중치 계수들을 이용하는 계산 속도를 증가시키는 것을 타깃으로 한다. 이는 DNN 모델 사이즈를 현저하게 감소시키고 추론 계산의 속도를 증가시킬 수 있다.
반복 재훈련 프로세스를 통해서, 본 방법은 원래 훈련 타깃의 성능을 효과적으로 유지하고 압축 및 계산 효율을 추구할 수 있다. 반복 재훈련 프로세스는 또한 상이한 시간들에서 상이한 손실을 유도하는 유연성을 제공하여, 시스템이 최적화 프로세스 동안 상이한 타깃에 초점을 맞추도록 한다.
본 방법은 상이한 데이터 형태들을 가진 데이터세트들에 적용될 수 있다. 입력/출력 데이터는 실제 비디오 세그먼트들, 이미지들, 또는 추출된 특징 맵들일 수 있는 4D 텐서들이다.
도 4d는 또 다른 실시형태들에 따른, 마이크로-구조화된 가중치 프루닝 및 가중치 통합을 이용한 신경 네트워크 모델 압축을 위한 훈련 장치(400D)의 기능 블록도이다. 도 4e는 또 다른 실시형태들에 따른, 마이크로-구조화된 가중치 프루닝 및 가중치 통합을 이용한 신경 네트워크 모델 압축을 위한 훈련 장치(400E)의 기능 블록도이다.
도 4d에 나타낸 바와 같이, 훈련 장치(400D)는 마이크로-구조 선택 모듈(455), 가중치 프루닝/통합 모듈(460), 네트워크 순방향 계산 모듈(415), 타깃 손실 계산 모듈(420), 기울기 계산 모듈(425) 및 가중치 업데이트 모듈(465)을 포함한다.
도 4e에 나타낸 바와 같이, 훈련 장치(400E)는 마이크로-구조 선택 모듈(455), 가중치 프루닝/통합 모듈(460), 네트워크 순방향 계산 모듈(415), 타깃 손실 계산 모듈(420), 기울기 계산 모듈(425) 및 가중치 업데이트 모듈(465)을 포함한다. 훈련 장치(400E)는 마스크 계산 모듈(470)을 더 포함한다.
다른 관점에서, 사전-훈련된 가중치 계수들 Θ는 추가적인 모델 압축 및 추론 가속의 효율을 향상시키기 위해 가중치 계수들의 최적의 세트가 학습될 수 있는 다른 네트워크 훈련 프로세스를 추가로 거칠 수 있다. 본 개시내용은 이 목표를 달성하기 위한 마이크로-구조화된 프루닝 및 통합 방법을 설명한다.
구체적으로 설명하면, 원래 타깃 손실과 함께 최적화되는, 마이크로-구조화된 가중치 프루닝 손실 £S(
Figure pct00067
|Θ) 및 마이크로-구조화된 가중치 통합 손실 £U(
Figure pct00068
|Θ)가 정의되며:
£(
Figure pct00069
|Θ) = £T(
Figure pct00070
|Θ) + λUU(Θ) + λSS(Θ), (11)
여기서, λS≥0 및 λU≥0는 원래 훈련 타깃, 가중치 통합 타깃, 및 가중치 프루닝 타깃의 기여들을 균형 있게 조정하는 하이퍼파라미터들이다. 수식(11)의 £(
Figure pct00071
|Θ)을 공동으로 최적화함으로써, 추가적인 압축의 유효성을 크게 도울 수 있는 가중치 계수들의 최적의 세트가 획득된다. 또한, 가중치 통합 손실은 컨볼루션 연산이 GEMM 매트릭스 곱셈 프로세스로서 수행되는 방법의 기본 프로세스를 고려하여, 계산을 크게 가속할 수 있는 최적화된 가중치 계수들을 발생시킨다. 정규화를 이용하는 경우(λR>0일 때) 또는 정규화를 이용하지 않는 경우(λR=0일 때), 가중치 프루닝 및 가중치 통합 손실이 타깃 손실에 대한 추가적인 정규화 항으로서 간주될 수 있다는 점에 주목할 가치가 있다. 또한, 본 방법은 임의의 정규화 손실 £R(Θ)에 유연하게 적용될 수 있다.
학습 유효성 및 학습 효율 둘 모두에 대해, 반복 최적화 프로세스가 수행된다. 제1 단계에서, 원하는 구조를 만족시키는 가중치 계수들의 부분들이 고정되고, 그리고 이후, 제2 단계에서, 가중치 계수들의 비-고정된 부분들이 훈련 손실을 역전파함으로써 업데이트된다. 이들 2개의 단계들을 반복적으로 수행함으로써, 점점 더 많은 가중치들이 점진적으로 고정될 수 있으며, 조인트 손실이 효과적으로 점진적으로 최적화될 수 있다.
더욱이, 실시형태들에서, 각각의 계층은 개별적으로 압축되며, £U(
Figure pct00072
|Θ) 및 £S(
Figure pct00073
|Θ)는 다음과 같이 추가로 쓸 수 있으며:
Figure pct00074
(12)
여기서, LU(Wj)는 j-번째 계층에 대해 정의된 통합 손실이고; Ls(Wj)는 j-번째 계층에 대해 정의된 프루닝 손실이며, N은 이 훈련 프로세스에 관련된 계층들의 총 개수이다, 및 Wj는 j-번째 계층의 가중치 계수들을 나타낸다. 또, LU(Wj) 및 Ls(Wj)가 각각의 계층에 대해 독립적으로 계산되므로, 본 개시내용의 나머지에서, 스크립트 j는 보편성의 손실 없이 생략된다.
각각의 네트워크 계층에 대해, 그의 가중치 계수들 W는 사이즈(ci, k1, k2, k3, co)를 가진 5-차원(5D) 텐서이다. 계층의 입력은 사이즈(hi,wi,di,ci)의 4-차원(4D) 텐서 A이고, 계층의 출력은 사이즈(ho,wo,do,co)의 4D 텐서 B이다. 사이즈들 ci, k1, k2, k3, co, hi, wi, di, ho, wo, do는 1이상인 정수들이다. 사이즈들 ci, k1, k2, k3, co, hi, wi, di, ho, wo, do 중 임의의 것이 숫자 1을 취할 때, 대응하는 텐서는 더 낮은 차원으로 감소된다. 각각의 텐서에서의 각각의 아이템은 부동 숫자이다. M은 W와 동일한 사이즈의 5D 2진 마스크를 나타내며, 여기서, M에서의 각각의 아이템은 대응하는 가중치 계수가 사전-프루닝된 프로세스에서 프루닝/유지되는지 여부를 표시하는 2진수 0/1이다. M은 W가 프루닝된 DNN 모델로부터 유래하는 경우에 대처하기 위해 W와 연관되도록 도입되며, 여기서 네트워크에서의 뉴런들 사이의 일부 접속들이 계산으로부터 제거된다. W가 원래 비프루닝된 밀집 모델로부터 유래할 때, M에서의 모든 아이템들은 값 1을 취한다. 출력 B는 A, M 및 W에 기초하여 컨볼루션 연산
Figure pct00075
을 통해서 계산된다:
Figure pct00076
Figure pct00077
Figure pct00078
(13)
파라미터들 hi, wi 및 di(h0, wo 및 do)는 입력 텐서 A(출력 텐서 B)의 높이, 가중치 및 심도이다. 파라미터 ci(co)는 입력(출력) 채널의 수이다. 파라미터들 k1, k2 및 k3는 각각 높이, 가중치 및 심도 축들에 대응하는 컨볼루션 커널의 사이즈. 즉, 각각의 출력 채널 v=1,…,co에 대해, 수식(13)에서 기술된 연산은 입력 A와 컨볼루션하는 사이즈(ci,k1,k2,k3)의 4D 가중치 텐서 Wv로서 간주될 수 있다.
수식(13)에서의 합산 연산의 순서는 변경될 수 있으며, 동일한 출력 B를 획득하기 위해 입력 A, 가중치 W(및 마스크 M)의 형상들의 상이한 구성들을 발생시킨다. 실시형태들에서, 2개의 구성들이 취해진다. (1) 5D 가중치 텐서가 사이즈
Figure pct00079
의 3D 텐서로 재형성되며, 여기서,
Figure pct00080
이다. 예를 들어, 구성은
Figure pct00081
이다. (2) 5D 가중치 텐서가 사이즈
Figure pct00082
의 2D 매트릭스로 재형성되며, 여기서,
Figure pct00083
이다. 예를 들어, 일부 구성들은
Figure pct00084
, 또는
Figure pct00085
이다.
가중치 계수들의 원하는 마이크로-구조는 2개의 양태들을 고려하여 설계된다. 첫째, 가중치 계수들의 마이크로-구조는 학습된 가중치 계수들을 이용하는 추론 계산이 가속되도록 컨볼루션 연산이 구현되는 방법의 기본 GEMM 매트릭스 곱셈 프로세스와 동조된다. 둘째, 가중치 계수들의 마이크로-구조는 추가적인 압축을 위해 양자화 및 엔트로피 코딩 효율을 향상시키는 것을 도울 수 있다. 실시형태들에서, 가중치 계수들에 대한 블록-방식 마이크로-구조들이 3D 재형성된 가중치 텐서 또는 2D 재형성된 가중치 매트릭스에서 각각의 계층에 사용된다. 구체적으로 설명하면, 재형성된 3D 가중치 텐서의 경우, 사이즈(gi,go,gk)의 블록들로 파티셔닝되며, 블록 내 모든 계수들이 프루닝되거나 또는 통합된다. 재형성된 2D 가중치 매트릭스의 경우, 사이즈(gi,go)의 블록들로 파티셔닝되며, 블록 내 모든 계수들이 프루닝되거나 또는 통합된다. 블록에서의 프루닝된 가중치들은 모두 제로들로 설정된다. 블록의 프루닝 손실은 이러한 프루닝 동작에 의해 도입되는 에러를 측정하여 계산될 수 있다. 블록에서의 통합된 가중치들은 사전-정의된 통합 규칙을 따르도록 설정되며, 예컨대, 모든 값들은 하나의 값이 고효율을 산출하는 양자화 프로세스에서 전체 블록을 나타내는데 사용될 수 있도록, 동일하게 설정된다. 가중치들을 통합하는 다수의 규칙들이 있을 수 있으며, 각각은 이 규칙을 취함으로써 도입되는 에러를 측정하는 통합 왜곡 손실과 연관된다. 예를 들어, 가중치들을 동일한 것으로 설정하는 대신, 가중치들은 이들의 원래 부호들을 유지하면서 동일한 절대값을 갖도록 설정된다. 이 마이크로-구조가 주어지면, 반복 동안, 프루닝 또는 통합될 가중치 계수들의 부분은 프루닝 손실 및 통합 손실을 고려하여 결정된다. 이후, 제2 단계에서, 프루닝된 및 통합된 가중치들이 고정되고, 정상 신경 네트워크 훈련 프로세스가 수행되며, 나머지 비-고정된 가중치 계수들이 역-전파 메커니즘을 통해서 업데이트된다.
도 4d 및 도 4e는 반복 재훈련/미세조정 프로세스의 2개의 실시형태들이며, 수식(11)의 조인트 손실을 점진적으로 최적화하기 위해 대안적인 2개의 단계들 둘 모두를 반복적으로 교대한다. 가중치 계수들 {W} 및 마스크 {M}을 가진 사전-훈련된 DNN 모델이 주어지면, 이는 프루닝된 희소 모델 또는 비-프루닝된 비-희소 모델일 수 있으며, 제1 단계에서, 실시형태들 둘 모두는 각각의 계층의 가중치 계수들 W(및 대응하는 마스크 M)를 원하는 3D 텐서 또는 2D 매트릭스로 먼저 재형성한다. 이후, 각각의 계층에 대해, 마이크로-구조 선택 모듈(455)은 가중치들이 프루닝될 프루닝 마이크로-구조들 {bs} 또는 PMB의 세트를 결정하고, 전체 가중치들이 통합될 통합 마이크로-구조들 {bu} 또는 통합 마이크로-구조 블록들(UMB)의 세트가 프루닝 및 통합 마이크로-구조 선택 프로세스를 통해서 결정된다. 프루닝 마이크로-구조들 {bs} 및 통합 마이크로-구조들 {bu}을 결정하는 다수의 방법들이 있으며, 4개의 방법들이 여기에 열거된다. 방법 1에서, 가중치 계수 W 및 마스크 M을 가진 각각의 계층에 대해, W에서의 각각의 블록 b의 경우, 가중치 통합기가 (예컨대, 원래 부호들을 유지하면서 동일한 절대값을 갖도록 모든 가중치들을 설정함으로써) 블록 내 가중치 계수들을 통합하는데 사용된다. 이후, 대응하는 통합 손실 Lu(b)가 통합 왜곡을 측정하기 위해 계산된다(예컨대, b에서의 절대 가중치들의 LN 놈). 통합 손실 Lu(W)는 W에서의 모든 블록들에 대한 Lu(b)의 합계로서 계산될 수 있다. 이 통합 손실 Lu(W)에 기초하여, DNN 모델의 모든 계층들은 Lu(W)에 따라 오름차순으로 순위 지정된다. 이후, 통합 비 u가 주어지면, 마이크로-구조 블록들이 통합될 최상부 계층들(즉, {bu}는 선택된 계층에 대한 모든 블록들을 포함함)이 선택되므로, 실제 통합 비
Figure pct00086
(선택된 계층들의 통합된 마이크로-구조 블록들의 총 개수 대 전체 DNN 모델의 마이크로-구조 블록들의 총 개수의 비로 측정됨)가 u%에 가장 가깝지만 여전히 u%보다 더 작다. 이후, 나머지 계층들의 각각에 대해, 각각의 마이크로-구조 블록 b에 있어서, 프루닝 손실 Ls(b)(예컨대, b에서의 절대 가중치들의 합계)가 계산된다. 프루닝 비 p가 주어지면, 이 계층의 블록들은 Ls(b)에 따라 오름차순으로 순위 지정되고, 상위 p% 블록들은 프루닝될 {bs}로서 선택된다. 이 계층의 나머지 블록들에 대해, 선택적인 추가적인 단계가 취해질 수 있으며, 여기서, 이 계층의 나머지 블록들은 통합 손실 Lu(b)에 기초하여 오름차순으로 순위 지정되며, 상위
Figure pct00087
%를 통합될 {bu}로서 선택한다.
방법 2에서, 가중치 계수 W 및 마스크 M을 가진 각각의 계층에 대해, 통합 손실 Lu(b) 및 Lu(W)는 방법 1과 유사한 방법으로 계산된다. 이후, 통합 비 u가 주어지면, 마이크로-구조 블록들이 방법 1과 유사한 방법으로 통합될 최상부 계층들. 이후, 나머지 계층들의 프루닝 손실 Ls(b)가 방법 1과 동일한 방법으로 계산된다. 프루닝 비 p가 주어지면, 모든 나머지 계층들의 모든 블록들은 Ls(b)에 따라 오름차순으로 순위 지정되고, 상위 p% 블록들은 프루닝되도록 선택된다. 나머지 계층들의 나머지 블록들에 대해, 선택적인 추가적인 단계가 취해지며, 여기서, 나머지 계층들의 나머지 블록들은 통합 손실 Lu(b)에 기초하여 오름차순으로 순위 지정되며, 상위
Figure pct00088
%를 통합될 {bu}로서 선택한다.
방법 3에서, 가중치 계수들 W 및 마스크 M을 가진 각각의 계층에 대해, W에서의 각각의 블록 b의 경우, 통합 손실 Lu(b) 및 프루닝 손실 Ls(b)는 방법 1과 동일한 방법으로 계산된다. 프루닝 비 p 및 통합 비 u가 주어지면, 이 계층의 블록들은 Ls(b)에 따라 오름차순으로 순위 지정되고, 상위 p% 블록들은 프루닝될 {bs}로서 선택된다. 이 계층의 나머지 블록들에 대해, 이들은 통합 손실 Lu(b)에 기초하여 오름차순으로 순위 지정되며, 그리고 이후 상위 u%를 통합될 {bu}로서 선택한다.
방법 4에서, 가중치 계수들 W 및 마스크 M을 가진 각각의 계층에 대해, W에서의 각각의 블록 b의 경우, 통합 손실 Lu(b) 및 프루닝 손실 Ls(b)는 방법 1과 동일한 방법으로 계산된다. 프루닝 비 p 및 통합 비 u가 주어지면, 모든 블록들은 DNN 모델의 모든 계층들에서 Ls(b)에 따라 오름차순으로 순위 지정되며, 상위 p% 블록들은 프루닝되도록 선택된다. 전체 모델의 나머지 블록들에 대해, 이들은 통합 손실 Lu(b)에 기초하여 오름차순으로 순위 지정되며, 그리고 이후 통합될 상위 u%를 선택한다.
프루닝 마이크로-구조의 세트 및 통합 마이크로-구조의 세트를 획득한 후, 타깃은 수식(11)에서 기술된 조인트 손실을 반복적으로 최소화함으로써, 업데이트된 최적의 가중치 계수들 W* 및 대응하는 가중치 마스크 M*의 세트를 찾아 선택되는 것으로 전환한다. 도 4d에 의해 예시된 제1 실시형태에서, t-번째 반복에 대해, 현재의 가중치 계수들 W(t-1)이 있다. 또한, 마이크로-구조 통합 마스크 U(t-1) 및 마이크로-구조 프루닝 마스크 P(t-1)은 훈련 프로세스 전체에 걸쳐서 유지된다. U(t-1) 및 P(t-1) 둘 모두는 W(t-1)과 동일한 형상을 가지며, 대응하는 가중치 계수가 통합되거나 또는 프루닝되는지 여부를 각각 기록한다. 이후, 가중치 프루닝/통합 모듈(460)은 가중치 프루닝 및 통합 프로세스를 통해서 프루닝된 및 통합된 가중치 계수들 WPU(t-1)을 계산하며, 여기서, P(t-1)에 의해 마스킹된 선택된 프루닝 마이크로-구조들이 프루닝되고, 마스킹된 선택된 통합 마이크로-구조들에서의 가중치들이 U(t-1)에 의해 통합되어, 업데이트된 가중치 마스크 MPU(t-1)을 발생시킨다. 실시형태들에서, MPU(t-1)은 사전-훈련 프루닝 마스크 M과 상이하며, 여기서, 사전-프루닝된 및 비사전-프루닝된 가중치 계수들 둘 모두를 갖는 블록에 대해, 원래 프루닝된 가중치 계수들이 가중치 통합기에 의해 다시 비-제로 값을 갖도록 설정될 것이며, MPU(t-1)에서의 대응하는 아이템이 변경될 것이다. 다른 실시형태에서, MPU(t-1)은 M과 동일하며, 여기서, 프루닝된 및 비프루닝된 가중치 계수들 둘 모두를 갖는 블록들에 대해, 단지 비프루닝된 가중치들이 리셋될 것이지만, 프루닝된 가중치들은 제로로 유지한다.
이후, 제2 단계에서, 가중치 업데이트 모듈(465)은 U(t-1) 및 P(t-1)에 의해 표시된 가중치 계수들을 마이크로-구조적으로 통합되거나 또는 마이크로-구조 프루닝되는 것으로 고정하고, 그리고 이후 신경 네트워크 훈련 프로세스를 통해 W(t-1)의 나머지 비고정된 가중치 계수들을 업데이트하여, 업데이트된 W(t) 및 M(t)를 발생시킨다.
구체적으로 설명하면,
Figure pct00089
={(x,y)}는 훈련 데이터세트를 나타내며, 여기서,
Figure pct00090
는 사전-훈련된 가중치 계수들 W가 획득되는 것에 기초하는 원래 데이터세트
Figure pct00091
0={(x0,y0)}와 동일할 수 있다.
Figure pct00092
는 또한
Figure pct00093
0와는 상이한 데이터세트일 수 있지만, 원래 데이터세트
Figure pct00094
와 동일한 데이터 분포일 수 있다. 제2 단계에서, 네트워크 순방향 계산 모듈(415)은 현재의 가중치 계수들 WU(t-1) 및 마스크 M를 이용하는 네트워크 순방향 계산 프로세스를 통해서 현재의 네트워크를 통해 각각의 입력 x를 통과시켜, 추정된 출력
Figure pct00095
를 발생시킨다. 실측 주석 y 및 추정된 출력
Figure pct00096
에 기초하여, 타깃 손실 계산 모듈(420)은 계산 타깃 손실 프로세스를 통해서 수식(11)에서의 타깃 훈련 손실 £T(
Figure pct00097
|Θ)를 계산한다. 이후, 기울기 계산 모듈(425)은 타깃 손실 G(WU(t-1))의 기울기를 계산한다. tensorflow 또는 pytorch와 같은 심층 학습 프레임워크들에 의해 사용되는 자동 기울기 컴퓨팅 방법이 G(WU(t-1))을 계산하는데 사용될 수 있다. 기울기 G(WU(t-1)) 및 마이크로-구조 통합 마스크 U(t-1) 및 마이크로-구조 프루닝 마스크 P(t-1)에 기초하여, 가중치 업데이트 모듈(465)은 역전파 및 가중치 업데이트 프로세스를 이용하는 역-전파를 통해 WU(t-1)의 비-고정된 가중치 계수들을 업데이트한다. 재훈련 프로세스는 또한 반복 프로세스 그 자체이다. WU(t-1)의 비-고정된 부분들을 업데이트하기 위해, 예컨대, 타깃 손실이 수렴할 때까지, 다수의 반복들이 취해진다. 이후, 시스템이 다음 반복 t로 진행하며, 여기서, 새로운 통합 비 u(t) 및 프루닝 비 p(t)가 주어지면, 통합 마이크로-구조들 및 프루닝 마이크로-구조들의 새로운 세트(뿐만 아니라, 새로운 마이크로-구조 통합 마스크 U(t) 및 마이크로-구조 프루닝 마스크 P(t))는 프루닝 및 통합 마이크로-구조 선택 프로세스를 통해서 결정된다.
도 4e에 의해 예시된 훈련 프로세스의 제2 실시형태에서, 업데이트된 최적의 가중치 계수들 W* 및 대응하는 가중치 마스크 M*의 세트는 다른 반복 프로세스에 의해 발견된다. t-번째 반복에 대해, 현재의 가중치 계수들 W(t-1) 및 마스크 M이 있다. 또한, 마스크 계산 모듈(470)은 프루닝 및 통합 마스크 계산 프로세스를 통해서 마이크로-구조 통합 마스크 U(t-1) 및 마이크로-구조 프루닝 마스크 P(t-1)을 계산한다. U(t-1) 및 P(t-1) 둘 모두는 W(t-1)와 동일한 형상을 가지며, 대응하는 가중치 계수가 통합되거나 또는 프루닝되는지 여부를 각각 기록한다. 이후, 가중치 프루닝/통합 모듈(460)은 가중치 프루닝 및 통합 프로세스를 통해, 프루닝된 및 통합된 가중치 계수들 WPU(t-1)을 계산하며, 여기서, P(t-1)에 의해 마스킹된 선택된 프루닝 마이크로-구조들이 프루닝되고, 마스킹된 선택된 통합 마이크로-구조들에서의 가중치들이 U(t-1)에 의해 통합되어, 업데이트된 가중치 마스크 MPU(t-1)을 발생시킨다.
이후, 제2 단계에서, 가중치 업데이트 모듈(465)은 U(t-1) 및 P(t-1)에 의해 표시되는 가중치 계수들을 마이크로-구조적으로 통합되거나 또는 마이크로-구조 프루닝되는 것으로 고정하고, 그리고 이후 신경 네트워크 훈련 프로세스를 통해 W(t-1)의 나머지 비고정된 가중치 계수들을 업데이트하여, 업데이트된 W(t)를 발생시킨다. 도 4d의 제1 실시형태와 유사하게, 훈련 데이터세트
Figure pct00098
={(x,y)}가 주어지면, 네트워크 순방향 계산 모듈(415)은 현재의 가중치 계수들 W(t-1) 및 마스크 M(t-1)을 이용하는 네트워크 순방향 계산 프로세스를 통해서 현재의 네트워크를 통해 각각의 입력 x를 통과시켜, 추정된 출력
Figure pct00099
를 발생시킨다. 실측 주석 y 및 추정된 출력
Figure pct00100
에 기초하여, 타깃 손실 계산 모듈(420)은 수식(5)에서 설명된 바와 같이, 계산 조인트 손실 프로세스를 통해, 수식(11)에서의 타깃 훈련 손실 £T(
Figure pct00101
|Θ)을 포함하는 조인트 훈련 손실 £J(
Figure pct00102
|Θ) 및 잔차 손실 £res(W(t-1))을 계산한다.
res(W(t-1))은 현재의 가중치들 W(t-1)과 타깃 프루닝된 및 통합된 가중치들 WPU(t-1) 사이의 차이를 측정한다. 예를 들어, L1 놈이 사용될 수 있다:
res(W(t-1)) = ||W(t-1))-WPU(t-1)|| (14)
이후, 기울기 계산 모듈(425)은 조인트 손실 G(W(t-1))의 기울기를 계산한다. tensorflow 또는 pytorch와 같은 심층 학습 프레임워크들에 의해 사용되는 자동 기울기 컴퓨팅 방법이 G(W(t-1))을 계산하는데 사용될 수 있다. 기울기 G(W(t-1)) 및 마이크로-구조 통합 마스크 U(t-1) 및 마이크로-구조 프루닝 마스크 P(t-1)에 기초하여, 가중치 업데이트 모듈(465)은 역전파 및 가중치 업데이트 프로세스를 이용하는 역-전파를 통해 W(t-1)의 비-고정된 가중치 계수들을 업데이트한다. 재훈련 프로세스는 또한 반복 프로세스 그 자체이다. W(t-1)의 비-고정된 부분들을 업데이트하기 위해, 예컨대, 타깃 손실이 수렴할 때까지, 다수의 반복들이 취해진다. 이후, 시스템이 다음 반복 t로 진행하며, 여기서, 통합 비 u(t) 및 프루닝 비 p(t)가 주어지면, 통합 마이크로-구조들 및 프루닝 마이크로-구조들의 새로운 세트(뿐만 아니라, 새로운 마이크로-구조 통합 마스크 U(t) 및 마이크로-구조 프루닝 마스크 P(t))는 프루닝 및 통합 마이크로-구조 선택 프로세스를 통해서 결정된다.
이 전체 반복 프로세스 동안, T-번째 반복에서, 프루닝된 및 통합된 가중치 계수들 WPU(T)는 가중치 프루닝 및 통합 프로세스를 통해서 계산될 수 있으며, 여기서, P(T)에 의해 마스킹된 선택된 프루닝 마이크로-구조들이 프루닝되고, 마스킹된 선택된 통합 마이크로-구조들에서의 가중치들이 U(T)에 의해 통합되어, 업데이트된 가중치 마스크 MPU(T)를 발생시킨다. 도 4d의 이전 실시형태와 유사하게, MPU(T)는 사전-프루닝 마스크 M과 동일할 수 있으며, 여기서, 프루닝된 및 비프루닝된 가중치 계수들 둘 모두를 갖는 블록에 대해, 원래 프루닝된 가중치 계수들이 가중치 통합기에 의해 다시 비-제로 값을 갖도록 설정될 것이며, MPU(T)에서의 대응하는 아이템이 변경될 것이다. 또한, MPU(T)는 M과 동일할 수 있으며, 여기서, 프루닝된 및 비프루닝된 가중치 계수들 둘 모두를 갖는 블록들에 대해, 단지 비프루닝된 가중치들이 리셋될 것이지만, 프루닝된 가중치들은 제로로 유지한다. 이 WPU(T) 및 MPU(T)는 최종 업데이트된 모델 W* 및 M*을 발생시키는데 사용될 수 있다. 예를 들어, W*=WPU(T), 및 M*=M·MPU(T)이다.
실시형태들에서, 하이퍼파라미터들 u(t) 및 p(t)는 t가 증가함에 따라 반복들 동안 이들의 값들을 증가시킬 수도 있으므로, 점점 더 많은 가중치 계수들이 전체 반복 학습 프로세스 전체에 걸쳐서 프루닝되고 통합되고 고정될 것이다.
통합 정규화는 학습된 가중치 계수들의 추가적인 압축의 효율을 향상시키고, 최적화된 가중치 계수들을 이용하는 계산 속도를 증가시키는 것을 타깃으로 한다. 이는 DNN 모델 사이즈를 현저하게 감소시키고 추론 계산의 속도를 증가시킬 수 있다.
반복 재훈련 프로세스를 통해서, 본 방법은 원래 훈련 타깃의 성능을 효과적으로 유지하고 압축 및 계산 효율을 추구할 수 있다. 반복 재훈련 프로세스는 또한 상이한 시간들에서 상이한 손실을 유도하는 유연성을 제공하여, 시스템이 최적화 프로세스 동안 상이한 타깃에 초점을 맞추도록 한다.
본 방법은 상이한 데이터 형태들을 가진 데이터세트들에 적용될 수 있다. 입력/출력 데이터는 실제 비디오 세그먼트들, 이미지들, 또는 추출된 특징 맵들일 수 있는 4D 텐서들이다.
도 5는 실시형태들에 따른, 훈련 마이크로-구조화된 가중치 프루닝 및 가중치 통합을 이용한 신경 네트워크 모델 압축의 방법(500)의 플로우차트이다.
일부 구현예들에서, 도 5의 하나 이상의 프로세스 블록들은 플랫폼(120)에 의해 수행될 수도 있다. 일부 구현예들에서, 도 5의 하나 이상의 프로세스 블록들은 사용자 디바이스(110)와 같은 플랫폼(120)과 분리되거나 또는 이를 포함하는 다른 디바이스 또는 디바이스들의 그룹에 의해 수행될 수도 있다.
방법(500)은 입력 신경 네트워크의 파라미터들을 감소시키는데 사용되는 심층 신경 네트워크를 훈련하여 출력 신경 네트워크를 획득하기 위해 수행된다.
도 5에 나타낸 바와 같이, 동작 510에서, 방법(500)은 입력 마스크에 의해 마스킹되는 심층 신경 네트워크의 입력 가중치들의 복수의 블록들로부터, 프루닝될 프루닝 마이크로-구조 블록들을 선택하는 단계를 포함한다.
동작 520에서, 방법(500)은 선택된 프루닝 마이크로-구조 블록들에 기초하여 입력 가중치들을 프루닝하는 단계를 포함한다.
동작 530에서, 방법(500)은 선택된 프루닝 마이크로-구조 블록들에 기초하여 입력 마스크 및 입력 가중치들의 각각이 프루닝되는지 여부를 표시하는 프루닝 마스크를 업데이트하는 단계를 포함한다.
동작 540에서, 방법(500)은 심층 신경 네트워크의 손실을 최소화하기 위해 업데이트된 프루닝 마스크에 기초하여, 프루닝된 입력 가중치들 및 업데이트된 입력 마스크를 업데이트하는 단계를 포함한다.
프루닝된 입력 가중치들 및 업데이트된 입력 마스크를 업데이트 하는 것은 제2 훈련 신경 네트워크를 추정하기 위해, 입력 가중치들이 업데이트된 입력 마스크에 의해 프루닝되고 마스킹된 심층 신경 네트워크를 이용하여 제1 훈련 신경 네트워크의 파라미터들을 감소시키는 단계, 추정된 제2 훈련 신경 네트워크 및 실측 신경 네트워크(ground-truth neural network)에 기초하여 심층 신경 네트워크의 손실을 결정하는 단계, 프루닝된 입력 가중치들에 기초하여, 결정된 손실의 기울기를 결정하는 단계, 및 결정된 손실을 최소화하기 위해, 결정된 기울기 및 업데이트된 프루닝 마스크에 기초하여, 프루닝된 입력 가중치들 및 업데이트된 입력 마스크를 업데이트하는 단계를 포함할 수도 있다.
심층 신경 네트워크는 입력 마스크에 의해 마스킹된 입력 가중치들을 재형성하고, 재형성된 입력 가중치들을 입력 가중치들의 복수의 블록들로 파티셔닝하고, 입력 가중치들 중, 재형성된 입력 가중치들이 파티셔닝된 복수의 블록들 중 하나 이상에서의 다수의 가중치들을 통합하고, 복수의 블록들 중 하나 이상에서의 통합된 다수의 가중치들에 기초하여 입력 마스크 및 입력 가중치들의 각각이 통합되는지 여부를 표시하는 통합 마스크를 업데이트하고, 그리고 심층 신경 네트워크의 손실을 최소화하기 위해, 업데이트된 통합 마스크에 기초하여, 업데이트된 입력 마스크 및 복수의 블록들 중 하나 이상에서의 다수의 가중치들이 통합된 입력 가중치들을 업데이트함으로써, 추가로 훈련될 수도 있다.
업데이트된 입력 마스크 및 입력 가중치들을 업데이트하는 것은 제2 훈련 신경 네트워크를 추정하기 위해, 입력 가중치들이 업데이트된 입력 마스크에 의해 통합되고 마스킹된 심층 신경 네트워크를 이용하여 제1 훈련 신경 네트워크의 파라미터들을 감소시키는 단계, 추정된 제2 훈련 신경 네트워크 및 실측 신경 네트워크에 기초하여 심층 신경 네트워크의 손실을 결정하는 단계, 복수의 블록들 중 하나 이상에서의 다수의 가중치들이 통합된 입력 가중치들에 기초하여, 결정된 손실의 기울기를 결정하는 단계, 및 결정된 손실을 최소화하기 위해, 결정된 기울기 및 업데이트된 통합 마스크에 기초하여, 프루닝된 입력 가중치들 및 업데이트된 입력 마스크를 업데이트하는 단계를 포함할 수도 있다.
심층 신경 네트워크는 입력 마스크에 의해 마스킹된 입력 가중치들의 복수의 블록들로부터, 통합될 통합 마이크로-구조 블록들을 선택하고, 심층 신경 네트워크의 프루닝된 및 통합된 입력 가중치들을 획득하기 위해, 선택된 통합 마이크로-구조 블록들에 기초하여, 프루닝된 입력 가중치들의 복수의 블록들 중 하나 이상에서의 다수의 가중치들을 통합하고, 그리고 복수의 블록들 중 하나 이상에서의 통합된 다수의 가중치들에 기초하여, 입력 가중치들의 각각이 통합되는지 여부를 표시하는 통합 마스크를 업데이트함으로써, 추가로 훈련될 수도 있다. 입력 마스크를 업데이트하는 단계는 프루닝-통합 마스크를 획득하기 위해, 선택된 프루닝 마이크로-구조 블록들 및 선택된 통합 마이크로-구조 블록들에 기초하여, 입력 마스크를 업데이트하는 단계를 포함할 수도 있다. 프루닝된 입력 가중치들 및 업데이트된 입력 마스크를 업데이트하는 단계는 심층 신경 네트워크의 손실을 최소화하기 위해, 업데이트된 프루닝 마스크 및 업데이트된 통합 마스크에 기초하여, 프루닝된 및 통합된 입력 가중치들 및 프루닝-통합 마스크를 업데이트하는 단계를 포함할 수도 있다.
프루닝된 및 통합된 입력 가중치들 및 프루닝-통합 마스크를 업데이트하는 것은 제2 훈련 신경 네트워크를 추정하기 위해, 프루닝된 및 통합된 입력 가중치들이 프루닝-통합 마스크에 의해 마스킹된 심층 신경 네트워크를 이용하여, 제1 훈련 신경 네트워크의 파라미터들을 감소시키는 단계, 추정된 제2 훈련 신경 네트워크 및 실측 신경 네트워크에 기초하여, 심층 신경 네트워크의 손실을 결정하는 단계, 복수의 블록들 중 하나 이상에서의 다수의 가중치들이 통합된 입력 가중치들에 기초하여, 결정된 손실의 기울기를 결정하는 단계, 및 결정된 손실을 최소화하기 위해, 결정된 기울기, 업데이트된 프루닝 마스크 및 업데이트된 통합 마스크에 기초하여, 프루닝된 및 통합된 입력 가중치들 및 프루닝-통합 마스크를 업데이트하는 단계를 포함할 수도 있다.
프루닝 마이크로-구조 블록들은 각각의 반복에 대해 프루닝될 입력 가중치들의 미리 결정된 프루닝 비에 기초하여, 입력 마스크에 의해 마스킹된 입력 가중치들의 복수의 블록들로부터 선택될 수도 있다.
도 6은 실시형태들에 따른, 훈련 마이크로-구조화된 가중치 프루닝 및 가중치 통합을 이용한 신경 네트워크 모델 압축을 위한 장치(600)의 다이어그램이다.
도 6에 나타낸 바와 같이, 장치(600)는 선택 코드(610), 프루닝 코드(620), 제1 업데이팅 코드(630) 및 제2 업데이팅 코드(640)를 포함한다.
장치(600)는 출력 신경 네트워크를 획득하기 위해 입력 신경 네트워크의 파라미터들을 감소시키는데 사용되는 심층 신경 네트워크를 훈련한다.
선택 코드(610)는 적어도 하나의 프로세서로 하여금, 입력 마스크에 의해 마스킹되는 심층 신경 네트워크의 입력 가중치들의 복수의 블록들로부터, 프루닝될 프루닝 마이크로-구조 블록들을 선택 가능하게 하도록 구성된다.
프루닝 코드(620)는 적어도 하나의 프로세서로 하여금, 선택된 프루닝 마이크로-구조 블록들에 기초하여, 입력 가중치들을 프루닝 가능하게 하도록 구성된다.
제1 업데이팅 코드(630)는 적어도 하나의 프로세서로 하여금, 선택된 프루닝 마이크로-구조 블록들에 기초하여, 입력 마스크 및 입력 가중치들의 각각이 프루닝되는지 여부를 표시하는 프루닝 마스크를 업데이트 가능하게 하도록 구성된다.
제2 업데이팅 코드(640)는 적어도 하나의 프로세서로 하여금, 심층 신경 네트워크의 손실을 최소화하기 위해, 업데이트된 프루닝 마스크에 기초하여, 프루닝된 입력 가중치들 및 업데이트된 입력 마스크를 업데이트 가능하게 하도록 구성된다.
제2 업데이팅 코드(640)는 적어도 하나의 프로세서로 하여금, 제2 훈련 신경 네트워크를 추정하기 위해, 입력 가중치들이 업데이트된 입력 마스크에 의해 프루닝되고 마스킹된 심층 신경 네트워크를 이용하여 제1 훈련 신경 네트워크의 파라미터들을 감소 가능하게 하고, 추정된 제2 훈련 신경 네트워크 및 실측 신경 네트워크에 기초하여 심층 신경 네트워크의 손실을 결정 가능하게 하고, 프루닝된 입력 가중치들에 기초하여, 결정된 손실의 기울기를 결정 가능하게 하고, 그리고 결정된 손실을 최소화하기 위해, 결정된 기울기 및 업데이트된 프루닝 마스크에 기초하여, 프루닝된 입력 가중치들 및 업데이트된 입력 마스크를 업데이트 가능하게 하도록 추가로 구성될 수도 있다.
심층 신경 네트워크는 입력 마스크에 의해 마스킹된 입력 가중치들을 재형성하고, 재형성된 입력 가중치들을 입력 가중치들의 복수의 블록들로 파티셔닝하고, 입력 가중치들 중, 재형성된 입력 가중치들이 파티셔닝된 복수의 블록들 중 하나 이상에서의 다수의 가중치들을 통합하고, 복수의 블록들 중 하나 이상에서의 통합된 다수의 가중치들에 기초하여, 입력 마스크 및 입력 가중치들의 각각이 통합되는지 여부를 표시하는 통합 마스크를 업데이트하고, 그리고 심층 신경 네트워크의 손실을 최소화하기 위해, 업데이트된 통합 마스크에 기초하여, 업데이트된 입력 마스크 및 복수의 블록들 중 하나 이상에서의 다수의 가중치들이 통합된 입력 가중치들을 업데이트함으로써, 추가로 훈련될 수도 있다.
제2 업데이팅 코드(640)는 적어도 하나의 프로세서로 하여금, 제2 훈련 신경 네트워크를 추정하기 위해, 입력 가중치들이 업데이트된 입력 마스크에 의해 통합되고 마스킹된 심층 신경 네트워크를 이용하여, 제1 훈련 신경 네트워크의 파라미터들을 감소 가능하게 하고, 추정된 제2 훈련 신경 네트워크 및 실측 신경 네트워크에 기초하여 심층 신경 네트워크의 손실을 결정 가능하게 하고, 복수의 블록들 중 하나 이상에서의 다수의 가중치들이 통합된 입력 가중치들에 기초하여, 결정된 손실의 기울기를 결정 가능하게 하고, 그리고 결정된 손실을 최소화하기 위해, 결정된 기울기 및 업데이트된 통합 마스크에 기초하여, 프루닝된 입력 가중치들 및 업데이트된 입력 마스크를 업데이트 가능하게 하도록 추가로 구성될 수도 있다.
심층 신경 네트워크는 입력 마스크에 의해 마스킹된 입력 가중치들의 복수의 블록들로부터, 통합될 통합 마이크로-구조 블록들을 선택하고, 심층 신경 네트워크의 프루닝된 및 통합된 입력 가중치들을 획득하기 위해, 선택된 통합 마이크로-구조 블록들에 기초하여, 프루닝된 입력 가중치들의 복수의 블록들 중 하나 이상에서의 다수의 가중치들을 통합하고, 그리고 복수의 블록들 중 하나 이상에서의 통합된 다수의 가중치들에 기초하여, 입력 가중치들의 각각이 통합되는지 여부를 표시하는 통합 마스크를 업데이트함으로써, 추가로 훈련될 수도 있다. 입력 마스크를 업데이트하는 단계는 프루닝-통합 마스크를 획득하기 위해, 선택된 프루닝 마이크로-구조 블록들 및 선택된 통합 마이크로-구조 블록들에 기초하여, 입력 마스크를 업데이트하는 단계를 포함할 수도 있다. 프루닝된 입력 가중치들 및 업데이트된 입력 마스크를 업데이트하는 단계는 심층 신경 네트워크의 손실을 최소화하기 위해, 업데이트된 프루닝 마스크 및 업데이트된 통합 마스크에 기초하여, 프루닝된 및 통합된 입력 가중치들 및 프루닝-통합 마스크를 업데이트하는 단계를 포함할 수도 있다.
제2 업데이팅 코드(640)는 적어도 하나의 프로세서로 하여금, 제2 훈련 신경 네트워크를 추정하기 위해, 프루닝된 및 통합된 입력 가중치들이 프루닝-통합 마스크에 의해 마스킹된 심층 신경 네트워크를 이용하여, 제1 훈련 신경 네트워크의 파라미터들을 감소 가능하게 하고, 추정된 제2 훈련 신경 네트워크 및 실측 신경 네트워크에 기초하여 심층 신경 네트워크의 손실을 결정 가능하게 하고, 복수의 블록들 중 하나 이상에서의 다수의 가중치들이 통합된 입력 가중치들에 기초하여, 결정된 손실의 기울기를 결정 가능하게 하고, 그리고 결정된 손실을 최소화하기 위해, 결정된 기울기, 업데이트된 프루닝 마스크 및 업데이트된 통합 마스크에 기초하여, 프루닝된 및 통합된 입력 가중치들 및 프루닝-통합 마스크를 업데이트 가능하게 하도록 추가로 구성될 수도 있다.
프루닝 마이크로-구조 블록들은 각각의 반복에 대해 프루닝될 입력 가중치들의 미리 결정된 프루닝 비에 기초하여, 입력 마스크에 의해 마스킹된 입력 가중치들의 복수의 블록들로부터 선택될 수도 있다.
전술한 개시물은 예시 및 설명을 제공하지만, 포괄적이거나 또는 구현예들을 개시된 정확한 형태로 한정하려는 것은 아니다. 변경들 및 변형들이 상기 개시물에 비추어 가능하거나 또는 구현예들의 실시로부터 획득될 수도 있다.
본원에서 사용될 때, 용어 컴포넌트는 하드웨어, 펌웨어, 또는 하드웨어와 소프트웨어의 조합으로서 넓게 해석되도록 의도된다.
본원에서 설명되는, 시스템들 및/또는 방법들이 상이한 유형들의 하드웨어, 펌웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수도 있음은 명백할 것이다. 이들 시스템들 및/또는 방법들을 구현하는데 사용되는 실제 특수화된 제어 하드웨어 또는 소프트웨어 코드는 구현예들을 제한하지 않는다. 따라서, 시스템들 및/또는 방법들의 동작 및 거동은 특정의 소프트웨어 코드에 대한 참조 없이 본원에서 설명되었지만-소프트웨어 및 하드웨어가 본원의 설명에 기초하여 시스템들 및/또는 방법들을 구현하도록 설계될 수도 있는 것으로 이해해야 한다.
특징들의 조합들이 청구범위에 인용되거나 및/또는 명세서에 개시되지만, 이들 조합들은 가능한 구현예들의 개시를 제한하도록 의도되지 않는다. 실제로, 이들 특징들 중 다수가 청구범위에서 구체적으로 인용되거나 및/또는 명세서에서 개시되지 않은 방법들로 결합될 수도 있다. 아래에 열거된 각각의 종속항은 오직 하나의 청구항에만 직접 종속할 수도 있지만, 가능한 구현예들의 개시는 청구항 세트에서의 모든 다른 청구항과 함께 각각의 종속항을 포함한다.
본원에서 사용되는 엘리먼트, 행위, 또는 명령은 중요하거나 또는 필수적인 것으로, 명시적으로 설명되지 않는 한, 해석되지 않을 수도 있다. 또한, 본원에서 사용될 때, 단수표현은 하나 이상의 아이템들을 포함하도록 의도되며, "하나 이상의"와 상호교환가능하게 사용될 수도 있다. 더욱이, 본원에서 사용될 때, 용어 "세트"는 하나 이상의 아이템들(예컨대, 관련된 아이템들, 비관련된 아이템들, 관련된 아이템과 비관련된 아이템의 조합, 등)을 포함하도록 의도되며, "하나 이상의"와 상호교환가능하게 사용될 수도 있다. 오직 하나의 아이템만이 의도되는 경우, 용어 "하나의" 또는 유사한 언어가 사용된다. 또한, 본원에서 사용될 때, 용어들 "갖는다", "가진다", "갖는", 또는 기타 등등은 제한없는 용어들로 의도된다. 또, 어구 "에 기초하여"는 명시적으로 달리 언급되지 않는 한, "에 적어도 부분적으로 기초하여"를 의미하도록 의도된다.

Claims (20)

  1. 신경 네트워크 모델 압축의 방법으로서,
    상기 방법은 적어도 하나의 프로세서에 의해 수행되며,
    상기 방법은,
    입력 신경 네트워크 및 입력 마스크를 수신하는 단계;
    심층 신경 네트워크를 이용하여, 상기 입력 신경 네트워크의 파라미터들을 감소시키는 단계 - 상기 심층 신경 네트워크는
    상기 입력 마스크에 의해 마스킹되는 상기 심층 신경 네트워크의 입력 가중치들의 복수의 블록들로부터, 프루닝될 프루닝 마이크로-구조 블록들을 선택하고;
    선택된 상기 프루닝 마이크로-구조 블록들에 기초하여 상기 입력 가중치들을 프루닝하고;
    상기 입력 마스크에 의해 마스킹된 상기 입력 가중치들의 상기 복수의 블록들로부터, 통합될 통합 마이크로-구조 블록들을 선택하고; 그리고
    상기 심층 신경 네트워크의 프루닝된 및 통합된 입력 가중치들을 획득하기 위해, 상기 선택된 통합 마이크로-구조 블록들에 기초하여, 상기 프루닝된 입력 가중치들의 상기 복수의 블록들 중 하나 이상에서의 다수의 가중치들을 통합함으로써 훈련됨-; 및
    상기 입력 신경 네트워크 및 상기 심층 신경 네트워크의 상기 프루닝된 및 통합된 입력 가중치들에 기초하여, 감소된 파라미터들을 가진 출력 신경 네트워크를 획득하는 단계를 포함하는, 신경 네트워크 모델 압축의 방법.
  2. 제1항에 있어서,
    상기 심층 신경 네트워크는,
    선택된 상기 프루닝 마이크로-구조 블록들에 기초하여, 상기 입력 마스크 및 상기 입력 가중치들의 각각이 프루닝되는지 여부를 표시하는 프루닝 마스크를 업데이트하고; 그리고
    상기 심층 신경 네트워크의 손실을 최소화하기 위해, 업데이트된 상기 프루닝 마스크에 기초하여, 상기 프루닝된 입력 가중치들 및 상기 업데이트된 입력 마스크를 업데이트함으로써, 추가로 훈련되는, 신경 네트워크 모델 압축의 방법.
  3. 제1항에 있어서,
    상기 심층 신경 네트워크는,
    상기 입력 마스크에 의해 마스킹된 상기 입력 가중치들을 재형성하고;
    재형성된 상기 입력 가중치들을 상기 입력 가중치들의 상기 복수의 블록들로 파티셔닝하고;
    상기 입력 가중치들 중, 상기 재형성된 입력 가중치들이 파티셔닝되는 상기 복수의 블록들 중 하나 이상에서의 다수의 가중치들을 통합하고;
    상기 복수의 블록들 중 하나 이상에서의 통합된 상기 다수의 가중치들에 기초하여, 상기 입력 마스크, 및 상기 입력 가중치들의 각각이 통합되는지 여부를 표시하는 통합 마스크를 업데이트하고; 그리고
    상기 심층 신경 네트워크의 손실을 최소화하기 위해, 업데이트된 상기 통합 마스크에 기초하여, 업데이트된 상기 입력 마스크 및 상기 복수의 블록들 중 하나 이상에서의 상기 다수의 가중치들이 통합된 상기 입력 가중치들을 업데이트함으로써, 추가로 훈련되는, 신경 네트워크 모델 압축의 방법.
  4. 제3항에 있어서,
    상기 업데이트된 입력 마스크 및 상기 입력 가중치들을 업데이트하는 것은,
    제2 훈련 신경 네트워크를 추정하기 위해, 상기 입력 가중치들이 상기 업데이트된 입력 마스크에 의해 통합되고 마스킹된 상기 심층 신경 네트워크를 이용하여, 제1 훈련 신경 네트워크의 파라미터들을 감소시키는 단계;
    추정된 상기 제2 훈련 신경 네트워크 및 실측 신경 네트워크(ground-truth neural network)에 기초하여 상기 심층 신경 네트워크의 손실을 결정하는 단계;
    상기 복수의 블록들 중 하나 이상에서의 상기 다수의 가중치들이 통합된 상기 입력 가중치들에 기초하여, 결정된 상기 손실의 기울기를 결정하는 단계; 및
    상기 결정된 손실을 최소화하기 위해, 결정된 상기 기울기 및 상기 업데이트된 통합 마스크에 기초하여, 상기 프루닝된 입력 가중치들 및 상기 업데이트된 입력 마스크를 업데이트하는 단계를 포함하는, 신경 네트워크 모델 압축의 방법.
  5. 제2항에 있어서,
    상기 심층 신경 네트워크는 상기 복수의 블록들 중 하나 이상에서의 통합된 상기 다수의 가중치들에 기초하여, 상기 입력 가중치들의 각각이 통합되는지 여부를 표시하는 통합 마스크를 업데이트함으로써 추가로 훈련되며,
    상기 입력 마스크를 업데이트하는 단계는 프루닝-통합 마스크를 획득하기 위해, 상기 선택된 프루닝 마이크로-구조 블록들 및 상기 선택된 통합 마이크로-구조 블록들에 기초하여, 상기 입력 마스크를 업데이트하는 단계를 포함하며,
    상기 프루닝된 입력 가중치들 및 상기 업데이트된 입력 마스크를 업데이트하는 단계는 상기 심층 신경 네트워크의 손실을 최소화하기 위해, 상기 업데이트된 프루닝 마스크 및 상기 업데이트된 통합 마스크에 기초하여, 상기 프루닝된 및 통합된 입력 가중치들 및 상기 프루닝-통합 마스크를 업데이트하는 단계를 포함하는, 신경 네트워크 모델 압축의 방법.
  6. 제5항에 있어서,
    상기 프루닝된 및 통합된 입력 가중치들 및 상기 프루닝-통합 마스크를 업데이트하는 것은,
    제2 훈련 신경 네트워크를 추정하기 위해, 상기 프루닝된 및 통합된 입력 가중치들이 상기 프루닝-통합 마스크에 의해 마스킹되는 상기 심층 신경 네트워크를 이용하여, 제1 훈련 신경 네트워크의 파라미터들을 감소시키는 단계;
    추정된 상기 제2 훈련 신경 네트워크 및 실측 신경 네트워크에 기초하여, 상기 심층 신경 네트워크의 손실을 결정하는 단계;
    상기 복수의 블록들 중 하나 이상에서의 상기 다수의 가중치들이 통합된 상기 입력 가중치들에 기초하여, 결정된 상기 손실의 기울기를 결정하는 단계; 및
    상기 결정된 손실을 최소화하기 위해, 결정된 상기 기울기, 상기 업데이트된 프루닝 마스크 및 상기 업데이트된 통합 마스크에 기초하여, 상기 프루닝된 및 통합된 입력 가중치들 및 상기 프루닝-통합 마스크를 업데이트하는 단계를 포함하는, 신경 네트워크 모델 압축의 방법.
  7. 제1항에 있어서,
    상기 프루닝 마이크로-구조 블록들은 각각의 반복에 대해 프루닝될 상기 입력 가중치들의 미리 결정된 프루닝 비에 기초하여, 상기 입력 마스크에 의해 마스킹된 상기 입력 가중치들의 상기 복수의 블록들로부터 선택되는, 신경 네트워크 모델 압축의 방법.
  8. 신경 네트워크 모델 압축을 위한 장치로서,
    상기 장치는,
    프로그램 코드를 저장하도록 구성된 적어도 하나의 메모리; 및
    상기 프로그램 코드를 판독하고 상기 프로그램 코드에 의해 명령되는 대로 동작하도록 구성된 적어도 하나의 프로세서를 포함하며,
    상기 프로그램 코드는,
    상기 적어도 하나의 프로세서로 하여금, 입력 신경 네트워크 및 입력 마스크를 수신 가능하게 하도록 구성된 수신 코드;
    상기 적어도 하나의 프로세서로 하여금, 심층 신경 네트워크를 이용하여 상기 입력 신경 네트워크의 파라미터들을 감소 가능하게 하도록 구성된 감소 코드 - 상기 심층 신경 네트워크는,
    상기 입력 마스크에 의해 마스킹되는 상기 심층 신경 네트워크의 입력 가중치들의 복수의 블록들로부터, 프루닝될 프루닝 마이크로-구조 블록들을 선택하고;
    선택된 상기 프루닝 마이크로-구조 블록들에 기초하여 상기 입력 가중치들을 프루닝하고;
    상기 입력 마스크에 의해 마스킹된 상기 입력 가중치들의 상기 복수의 블록들로부터, 통합될 통합 마이크로-구조 블록들을 선택하고; 그리고
    상기 심층 신경 네트워크의 프루닝된 및 통합된 입력 가중치들을 획득하기 위해, 상기 선택된 통합 마이크로-구조 블록들에 기초하여, 상기 프루닝된 입력 가중치들의 상기 복수의 블록들 중 하나 이상에서의 다수의 가중치들을 통합함으로써 훈련됨-; 및
    상기 적어도 하나의 프로세서로 하여금, 상기 입력 신경 네트워크 및 상기 심층 신경 네트워크의 상기 프루닝된 및 통합된 입력 가중치들에 기초하여, 감소된 파라미터들을 가진 출력 신경 네트워크를 출력 가능하게 하도록 구성된 획득 코드를 포함하는, 신경 네트워크 모델 압축을 위한 장치.
  9. 제8항에 있어서,
    상기 심층 신경 네트워크는,
    선택된 상기 프루닝 마이크로-구조 블록들에 기초하여, 상기 입력 마스크 및 상기 입력 가중치들의 각각이 프루닝되는지 여부를 표시하는 프루닝 마스크를 업데이트하고; 그리고
    상기 심층 신경 네트워크의 손실을 최소화하기 위해, 업데이트된 상기 프루닝 마스크에 기초하여, 상기 프루닝된 입력 가중치들 및 상기 업데이트된 입력 마스크를 업데이트함으로써, 추가로 훈련되는, 신경 네트워크 모델 압축을 위한 장치.
  10. 제8항에 있어서,
    상기 심층 신경 네트워크는,
    상기 입력 마스크에 의해 마스킹된 상기 입력 가중치들을 재형성하고;
    재형성된 상기 입력 가중치들을 상기 입력 가중치들의 상기 복수의 블록들로 파티셔닝하고;
    상기 입력 가중치들 중, 상기 재형성된 입력 가중치들이 파티셔닝되는 상기 복수의 블록들 중 하나 이상에서의 다수의 가중치들을 통합하고;
    상기 복수의 블록들 중 하나 이상에서의 통합된 상기 다수의 가중치들에 기초하여, 상기 입력 마스크 및 상기 입력 가중치들의 각각이 통합되는지 여부를 표시하는 통합 마스크를 업데이트하고; 그리고
    상기 심층 신경 네트워크의 손실을 최소화하기 위해, 업데이트된 상기 통합 마스크에 기초하여, 업데이트된 상기 입력 마스크 및 상기 복수의 블록들 중 하나 이상에서의 상기 다수의 가중치들이 통합된 상기 입력 가중치들을 업데이트함으로써, 추가로 훈련되는, 신경 네트워크 모델 압축을 위한 장치.
  11. 제10항에 있어서,
    상기 업데이트된 입력 마스크 및 상기 입력 가중치들을 업데이트하는 것은,
    제2 훈련 신경 네트워크를 추정하기 위해, 상기 입력 가중치들이 상기 업데이트된 입력 마스크에 의해 통합되고 마스킹된 상기 심층 신경 네트워크를 이용하여, 제1 훈련 신경 네트워크의 파라미터들을 감소시키는 단계;
    추정된 상기 제2 훈련 신경 네트워크 및 실측 신경 네트워크에 기초하여 상기 심층 신경 네트워크의 손실을 결정하는 단계;
    상기 복수의 블록들 중 하나 이상에서의 상기 다수의 가중치들이 통합된 상기 입력 가중치들에 기초하여, 결정된 상기 손실의 기울기를 결정하는 단계; 및
    상기 결정된 손실을 최소화하기 위해, 결정된 상기 기울기 및 상기 업데이트된 통합 마스크에 기초하여, 상기 프루닝된 입력 가중치들 및 상기 업데이트된 입력 마스크를 업데이트하는 단계를 포함하는, 신경 네트워크 모델 압축을 위한 장치.
  12. 제9항에 있어서,
    상기 심층 신경 네트워크는 상기 복수의 블록들 중 하나 이상에서의 통합된 상기 다수의 가중치들에 기초하여, 상기 입력 가중치들의 각각이 통합되는지 여부를 표시하는 통합 마스크를 업데이트함으로써 추가로 훈련되며,
    상기 입력 마스크를 업데이트하는 단계는 프루닝-통합 마스크를 획득하기 위해, 상기 선택된 프루닝 마이크로-구조 블록들 및 상기 선택된 통합 마이크로-구조 블록들에 기초하여, 상기 입력 마스크를 업데이트하는 단계를 포함하며,
    상기 프루닝된 입력 가중치들 및 상기 업데이트된 입력 마스크를 업데이트하는 단계는 상기 심층 신경 네트워크의 손실을 최소화하기 위해, 상기 업데이트된 프루닝 마스크 및 상기 업데이트된 통합 마스크에 기초하여, 상기 프루닝된 및 통합된 입력 가중치들 및 상기 프루닝-통합 마스크를 업데이트하는 단계를 포함하는, 신경 네트워크 모델 압축을 위한 장치.
  13. 제12항에 있어서,
    상기 프루닝된 및 통합된 입력 가중치들 및 상기 프루닝-통합 마스크를 업데이트하는 것은,
    제2 훈련 신경 네트워크를 추정하기 위해, 상기 프루닝된 및 통합된 입력 가중치들이 상기 프루닝-통합 마스크에 의해 마스킹되는 상기 심층 신경 네트워크를 이용하여, 제1 훈련 신경 네트워크의 파라미터들을 감소시키는 단계;
    추정된 상기 제2 훈련 신경 네트워크 및 실측 신경 네트워크에 기초하여 상기 심층 신경 네트워크의 손실을 결정하는 단계;
    상기 복수의 블록들 중 하나 이상에서의 상기 다수의 가중치들이 통합된 상기 입력 가중치들에 기초하여, 결정된 상기 손실의 기울기를 결정하는 단계; 및
    상기 결정된 손실을 최소화하기 위해, 결정된 상기 기울기, 상기 업데이트된 프루닝 마스크 및 상기 업데이트된 통합 마스크에 기초하여, 상기 프루닝된 및 통합된 입력 가중치들 및 상기 프루닝-통합 마스크를 업데이트하는 단계를 포함하는, 신경 네트워크 모델 압축을 위한 장치.
  14. 제8항에 있어서,
    상기 프루닝 마이크로-구조 블록들은 각각의 반복에 대해 프루닝될 상기 입력 가중치들의 미리 결정된 프루닝 비에 기초하여, 상기 입력 마스크에 의해 마스킹된 상기 입력 가중치들의 상기 복수의 블록들로부터 선택되는, 신경 네트워크 모델 압축을 위한 장치.
  15. 명령들을 저장하는 비일시적 컴퓨터-판독가능 매체로서,
    상기 명령들은, 신경 네트워크 모델 압축을 위해 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금,
    입력 신경 네트워크 및 입력 마스크를 수신 가능하게 하고;
    심층 신경 네트워크를 이용하여 상기 입력 신경 네트워크의 파라미터들을 감소 가능하게 하고 - 상기 심층 신경 네트워크는
    상기 입력 마스크에 의해 마스킹되는 상기 심층 신경 네트워크의 입력 가중치들의 복수의 블록들로부터, 프루닝될 프루닝 마이크로-구조 블록들을 선택하고;
    선택된 상기 프루닝 마이크로-구조 블록들에 기초하여 상기 입력 가중치들을 프루닝하고;
    상기 입력 마스크에 의해 마스킹된 상기 입력 가중치들의 상기 복수의 블록들로부터, 통합될 통합 마이크로-구조 블록들을 선택하고; 그리고
    상기 심층 신경 네트워크의 프루닝된 및 통합된 입력 가중치들을 획득하기 위해, 상기 선택된 통합 마이크로-구조 블록들에 기초하여, 상기 프루닝된 입력 가중치들의 상기 복수의 블록들 중 하나 이상에서의 다수의 가중치들을 통합함으로써 훈련됨-; 및
    상기 입력 신경 네트워크 및 상기 심층 신경 네트워크의 상기 프루닝된 및 통합된 입력 가중치들에 기초하여, 감소된 파라미터들을 가진 출력 신경 네트워크를 획득 가능하게 하는, 비일시적 컴퓨터-판독가능 매체.
  16. 제15항에 있어서,
    상기 심층 신경 네트워크는,
    선택된 상기 프루닝 마이크로-구조 블록들에 기초하여, 상기 입력 마스크 및 상기 입력 가중치들의 각각이 프루닝되는지 여부를 표시하는 프루닝 마스크를 업데이트하고; 그리고
    상기 심층 신경 네트워크의 손실을 최소화하기 위해, 업데이트된 상기 프루닝 마스크에 기초하여, 상기 프루닝된 입력 가중치들 및 상기 업데이트된 입력 마스크를 업데이트함으로써, 추가로 훈련되는, 비일시적 컴퓨터-판독가능 매체.
  17. 제15항에 있어서,
    상기 심층 신경 네트워크는,
    상기 입력 마스크에 의해 마스킹된 상기 입력 가중치들을 재형성하고;
    재형성된 상기 입력 가중치들을 상기 입력 가중치들의 상기 복수의 블록들로 파티셔닝하고;
    상기 입력 가중치들 중, 상기 재형성된 입력 가중치들이 파티셔닝되는 상기 복수의 블록들 중 하나 이상에서의 다수의 가중치들을 통합하고;
    상기 복수의 블록들 중 하나 이상에서의 통합된 상기 다수의 가중치들에 기초하여, 상기 입력 마스크 및 상기 입력 가중치들의 각각이 통합되는지 여부를 표시하는 통합 마스크를 업데이트하고; 그리고
    상기 심층 신경 네트워크의 손실을 최소화하기 위해, 업데이트된 상기 통합 마스크에 기초하여, 업데이트된 상기 입력 마스크 및 상기 복수의 블록들 중 하나 이상에서의 상기 다수의 가중치들이 통합된 상기 입력 가중치들을 업데이트함으로써, 추가로 훈련되는, 비일시적 컴퓨터-판독가능 매체.
  18. 제17항에 있어서,
    상기 업데이트된 입력 마스크 및 상기 입력 가중치들을 업데이트하는 것은,
    제2 훈련 신경 네트워크를 추정하기 위해, 상기 입력 가중치들이 상기 업데이트된 입력 마스크에 의해 통합되고 마스킹된 상기 심층 신경 네트워크를 이용하여, 제1 훈련 신경 네트워크의 파라미터들을 감소시키는 단계;
    추정된 상기 제2 훈련 신경 네트워크 및 실측 신경 네트워크에 기초하여 상기 심층 신경 네트워크의 손실을 결정하는 단계;
    상기 복수의 블록들 중 하나 이상에서의 상기 다수의 가중치들이 통합된 상기 입력 가중치들에 기초하여, 결정된 상기 손실의 기울기를 결정하는 단계; 및
    상기 결정된 손실을 최소화하기 위해, 결정된 상기 기울기 및 상기 업데이트된 통합 마스크에 기초하여, 상기 프루닝된 입력 가중치들 및 상기 업데이트된 입력 마스크를 업데이트하는 단계를 포함하는, 비일시적 컴퓨터-판독가능 매체.
  19. 제16항에 있어서,
    상기 심층 신경 네트워크는 상기 복수의 블록들 중 하나 이상에서의 통합된 상기 다수의 가중치들에 기초하여, 상기 입력 가중치들의 각각이 통합되는지 여부를 표시하는 통합 마스크를 업데이트함으로써 추가로 훈련되며,
    상기 입력 마스크를 업데이트하는 단계는 프루닝-통합 마스크를 획득하기 위해, 상기 선택된 프루닝 마이크로-구조 블록들 및 상기 선택된 통합 마이크로-구조 블록들에 기초하여, 상기 입력 마스크를 업데이트하는 단계를 포함하며,
    상기 프루닝된 입력 가중치들 및 상기 업데이트된 입력 마스크를 업데이트하는 단계는 상기 심층 신경 네트워크의 손실을 최소화하기 위해, 상기 업데이트된 프루닝 마스크 및 상기 업데이트된 통합 마스크에 기초하여, 상기 프루닝된 및 통합된 입력 가중치들 및 상기 프루닝-통합 마스크를 업데이트하는 단계를 포함하는, 비일시적 컴퓨터-판독가능 매체.
  20. 제19항에 있어서,
    상기 프루닝된 및 통합된 입력 가중치들 및 상기 프루닝-통합 마스크를 업데이트하는 것은,
    제2 훈련 신경 네트워크를 추정하기 위해, 상기 프루닝된 및 통합된 입력 가중치들이 상기 프루닝-통합 마스크에 의해 마스킹되는 상기 심층 신경 네트워크를 이용하여, 제1 훈련 신경 네트워크의 파라미터들을 감소시키는 단계;
    추정된 상기 제2 훈련 신경 네트워크 및 실측 신경 네트워크에 기초하여 상기 심층 신경 네트워크의 손실을 결정하는 단계;
    상기 복수의 블록들 중 하나 이상에서의 상기 다수의 가중치들이 통합된 상기 입력 가중치들에 기초하여, 결정된 상기 손실의 기울기를 결정하는 단계; 및
    상기 결정된 손실을 최소화하기 위해, 결정된 상기 기울기, 상기 업데이트된 프루닝 마스크 및 상기 업데이트된 통합 마스크에 기초하여, 상기 프루닝된 및 통합된 입력 가중치들 및 상기 프루닝-통합 마스크를 업데이트하는 단계를 포함하는, 비일시적 컴퓨터-판독가능 매체.
KR1020227007843A 2020-06-17 2021-06-15 마이크로-구조화된 가중치 프루닝 및 가중치 통합을 이용한 신경 네트워크 모델 압축을 위한 방법 및 장치 KR20220042455A (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US202063040238P 2020-06-17 2020-06-17
US202063040216P 2020-06-17 2020-06-17
US63/040,216 2020-06-17
US63/040,238 2020-06-17
US202063043082P 2020-06-23 2020-06-23
US63/043,082 2020-06-23
US17/319,313 US20210397963A1 (en) 2020-06-17 2021-05-13 Method and apparatus for neural network model compression with micro-structured weight pruning and weight unification
US17/319,313 2021-05-13
PCT/US2021/037425 WO2021257558A1 (en) 2020-06-17 2021-06-15 Method and apparatus for neural network model compression with micro-structured weight pruning and weight unification

Publications (1)

Publication Number Publication Date
KR20220042455A true KR20220042455A (ko) 2022-04-05

Family

ID=79023683

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227007843A KR20220042455A (ko) 2020-06-17 2021-06-15 마이크로-구조화된 가중치 프루닝 및 가중치 통합을 이용한 신경 네트워크 모델 압축을 위한 방법 및 장치

Country Status (6)

Country Link
US (1) US20210397963A1 (ko)
EP (1) EP4022527A4 (ko)
JP (1) JP7321372B2 (ko)
KR (1) KR20220042455A (ko)
CN (1) CN114616575A (ko)
WO (1) WO2021257558A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11580194B2 (en) * 2017-11-01 2023-02-14 Nec Corporation Information processing apparatus, information processing method, and program
KR102500341B1 (ko) * 2022-02-10 2023-02-16 주식회사 노타 신경망 모델에 대한 정보를 제공하는 방법 및 이를 수행하는 전자 장치
CN114581676B (zh) 2022-03-01 2023-09-26 北京百度网讯科技有限公司 特征图像的处理方法、装置和存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11651223B2 (en) * 2017-10-27 2023-05-16 Baidu Usa Llc Systems and methods for block-sparse recurrent neural networks
US20190197406A1 (en) * 2017-12-22 2019-06-27 Microsoft Technology Licensing, Llc Neural entropy enhanced machine learning
US20190362235A1 (en) * 2018-05-23 2019-11-28 Xiaofan Xu Hybrid neural network pruning

Also Published As

Publication number Publication date
WO2021257558A1 (en) 2021-12-23
JP2022552729A (ja) 2022-12-19
EP4022527A1 (en) 2022-07-06
JP7321372B2 (ja) 2023-08-04
US20210397963A1 (en) 2021-12-23
CN114616575A (zh) 2022-06-10
EP4022527A4 (en) 2022-11-16

Similar Documents

Publication Publication Date Title
US20210397963A1 (en) Method and apparatus for neural network model compression with micro-structured weight pruning and weight unification
JP7418570B2 (ja) スタック可能ネスト化モデル構造を用いたマルチレート・ニューラルイメージ圧縮のための方法および装置
US20210406691A1 (en) Method and apparatus for multi-rate neural image compression with micro-structured masks
JP7420942B2 (ja) 敵対的生成器を用いたレート適応ニューラル画像圧縮のための方法及び装置
Huai et al. Latency-constrained DNN architecture learning for edge systems using zerorized batch normalization
JP2023526180A (ja) 滑らかな品質制御による適応ニューラル画像圧縮のための代替の入力最適化
WO2021231218A1 (en) Method and apparatus for feature substitution for end-to-end image compression
JP7425870B2 (ja) 積み重ね可能な入れ子モデル構造及びマイクロ構造化された重み統一によるマルチレートニューラル画像圧縮のための方法及び装置
JP7342265B2 (ja) μ構造化ネストマスク及び重み単一化によるマルチレートニューラル画像圧縮モデルを圧縮及び加速するための方法及び装置
US20230186081A1 (en) System, method, and computer program for iterative content adaptive online training in neural image compression
JP7471730B2 (ja) メタ学習によるレート制御を用いた適応ニューラル画像圧縮のための方法、装置及びプログラム
JP7434605B2 (ja) メタ学習によるスムーズな品質制御を用いた適応ニューラル画像圧縮のための方法、装置、非一時的コンピュータ可読媒体、およびコンピュータプログラム
JP7408835B2 (ja) マルチタスクニューラルネットワークを使用するマルチ品質ループフィルタによるビデオ処理の方法、装置及びコンピュータプログラム
US11803988B2 (en) Method and apparatus for adaptive image compression with flexible hyperprior model by meta learning
US20230186526A1 (en) System, method, and computer program for content adaptive online training for multiple blocks based on certain patterns