KR20180092810A - 신경망 프루닝 및 재훈련을 위한 자동 임계값들 - Google Patents

신경망 프루닝 및 재훈련을 위한 자동 임계값들 Download PDF

Info

Publication number
KR20180092810A
KR20180092810A KR1020170175812A KR20170175812A KR20180092810A KR 20180092810 A KR20180092810 A KR 20180092810A KR 1020170175812 A KR1020170175812 A KR 1020170175812A KR 20170175812 A KR20170175812 A KR 20170175812A KR 20180092810 A KR20180092810 A KR 20180092810A
Authority
KR
South Korea
Prior art keywords
pruning
neural network
layer
layers
threshold
Prior art date
Application number
KR1020170175812A
Other languages
English (en)
Other versions
KR102566480B1 (ko
Inventor
쩡핑 지
웨이크필드 존 브라더스
일리아 오브시안니코브
심은수
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20180092810A publication Critical patent/KR20180092810A/ko
Application granted granted Critical
Publication of KR102566480B1 publication Critical patent/KR102566480B1/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
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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

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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Image Analysis (AREA)
  • Feedback Control In General (AREA)

Abstract

실시 예는: 임계 값을 사용하여 다수의 레이어들을 갖는 신경망의 레이어를 프루닝 하는 단계; 및 프루닝된 레이어의 프루닝 오류가 프루닝 오류 허용에 도달할 때까지, 상이한 임계 값을 사용하는 신경망의 레이어의 프루닝을 반복하는 단계를 포함하는 방법을 포함한다.

Description

신경망 프루닝 및 재훈련을 위한 자동 임계값들{AUTOMATIC THRESHOLDS FOR NEURAL NETWORK PRUNING AND RETRAINING}
이 개시는 신경망들의 프루닝 및 재훈련과 관련되고, 특히, 자동 임계값들을 사용하는 신경망들의 프루닝 및 재훈련과 관련된다.
딥러닝(Deep learning) 아키텍쳐들, 특히 콘볼루션 심층 신경망들(convolutional deep neural networks)은 인공 지능(Artificial Intelligence; AI) 및 컴퓨터 비전(computer vision) 영역들에서 사용되어 왔다. 이러한 아키텍처들은 시각적 객체 인식, 탐지 및 분할을 포함한 작업들 상의 결과들을 생성하는 것으로 나타났다.
하지만, 이러한 아키텍처들은 많은 수의 파라미터들을 가질 수 있으며, 높은 컴퓨터의 계산 부하들 및 증가된 전력 소비라는 결과를 낳는다.
실시 예는: 임계 값을 사용하여 다수의 레이어들을 갖는 신경망의 레이어를 프루닝 하는 단계; 및 프루닝된 레이어의 프루닝 오류가 프루닝 오류 허용에 도달할 때까지, 상이한 임계 값을 사용하는 신경망의 레이어의 프루닝을 반복하는 단계를 포함하는 방법을 포함한다.
실시 예는: 자동적으로 결정된 임계 값들을 사용하여 신경망의 복수의 레이어를 프루닝 하는 단계; 및 프루닝 후에 남은 가중치들만을 사용하여 신경망을 재훈련하는 단계를 포함하는 방법을 포함한다.
실시 예는: 메모리; 및 메모리와 결합되고, 임계 값을 사용하여 가수의 레이어들을 갖는 신경망의 레이어를 프루닝하고; 프루닝된 레이어의 프루닝 오류가 프루닝 오류 허용에 도달할 때까지 상이한 임계 값을 사용하여 신경망의 레이어의 프루닝을 반복하도록 구성되는 프로세서를 포함하는 시스템을 포함한다.
본 명세서에서 설명된 프루닝은 선택 기술 또는 프루닝 임계 값들을 미리 선택하기 위한 규칙들을 요구하지 않고 수행될 수 있다. 즉, 미리 정해진 임계 값들의 다수의 반복들은 수행될 필요가 없고, 규칙들을 생성하기 위한 경험칙 정보는 필요하지 않을 수 있지만 유사한 및/또는 더 좋은 결과들은 달성될 수 있다.
도 1a 및 도 1b는 몇몇의 실시 예들에 따라 임계 값을 자동적으로 결정하기 위한 기술들의 흐름도들 이다.
도 2는 몇몇의 실시 예들에 따른 재훈련 동작의 흐름도 이다.
도 3a 및 도 3b는 몇몇의 실시 예들에 따른 재훈련 동작의 흐름도이다.
도 4는 몇몇의 실시 예들에 따른 임계 값, 프루닝, 및 재훈련의 자동적인 결정의 기술의 흐름도 이다.
도 5는 몇몇의 실시 예들에 따른 재훈련 동작을 도시하는 그래프들의 세트 이다.
도 6은 몇몇의 실시 예들에 따른 프루닝 및 재훈련 후의 다양한 신경망들의 결과들을 포함하는 차트 이다.
도 7a 내지 도 7c는 몇몇의 실시 예들에 따른 신경망들의 프루닝의 다양한 기술들의 결과들을 포함하는 차트 이다.
도 8은 몇몇의 실시 예들에 따른 시스템이다.
실시 예들은 신경망들의 프루닝 및 재훈련과 관련되고, 특히, 자동 임계 값들을 사용하는 신경망들의 프루닝 및 재훈련과 관련된다. 이하 설명은 해당 기술의 당업자가 실시 예들을 만들고 사용하도록 제공되고, 특허 출원 및 그 요구 사항들의 맥락에서 제공된다. 본 명세서에 기재된 실시 예들 및 일반적인 원리들 및 특징들에 대한 다양한 변형들이 쉽게 명백해질 것이다. 실시 예들은 특정 구현 예에서 제공된 특정 방법, 장치 및 시스템의 측면에서 주로 설명된다. 실시 예들은 특정 구현들에서 제공된 특정 방법들, 장치들 및 시스템들의 용어들로 주로 설명된다.
하지만, 방법들, 장치들 및 시스템들은 다른 구현들에서 효과적으로 작동할 것이다. “실시 예”, “일 실시 예”, 및 “다른 실시 예”와 같은 구들은 다수의 실시 예들 뿐만 아니라 동일한 또는 상이한 실시 예들을 지칭할 수 있다. 실시 예들은 특정 구성요소들을 갖는 시스템들 및/또는 장치들과 관련하여 설명될 것이다. 하지만, 시스템들 및/또는 장치들은 도시된 것들 보다 많거나 적은 구성 요소들을 포함 할 수 있으며, 구성 요소들의 배열 및 유형의 변형들은 본 개시의 범위로부터 벗어나지 않고 이루어질 수 있다. 실시 예들은 또한 특정 동작들을 갖는 특정 방법들의 맥락에서 설명될 것이다. 하지만, 방법들 및 시스템들은 실시 예들과 상반되지 않는, 상이한 및/또는 추가적인 동작들, 및 다른 순서들의 및/또는 병렬적인 동작들을 갖는 다른 방법들에 따라 동작 할 수 있다. 그러므로, 실시 예들은 도시된 특정 실시 예들에 한정되는 것으로 의도되지 않고, 본 명세서에 설명된 원리들 및 특징들과 일치하는 가장 넓은 범위에 따른다.
실시 예들은 특정 구성 요소를 갖는 특정 시스템들 또는 장치들의 맥락으로 설명된다. 해당 기술의 당업자는 실시 예들이 다른 및/또는 추가적인 구성 요소들 및/또는 다른 특징들을 갖는 시스템들 또는 장치들의 사용과 일치 함을 쉽게 인식 할 것이다. 방법들, 장치들 및 시스템들은 하나의 구성요소의 맥락으로도 설명될 수 있다. 하지만, 해당 기술의 당업자는 방법들 및 시스템들이 다수의 구성요소들을 갖는 아키텍처들의 사용과 일치한다는 것을 쉽게 인식 할 것이다.
일반적으로 본 명세서에서, 특히 첨부된 청구항들(예컨대, 첨부된 청구항들의 구조들)에서 사용되는 용어들은 일반적으로 “개방형” 용어들(예컨대, 용어 “포함하는”는 “포함하지만 제한되지 않는”로 해석되어야 하고, 용어 “갖는”은 “적어도 갖는”으로 해석되어야 하고, 용어 “포함하다”는 “포함하지만 제한되지 않는다”로 해석되어야 한다, 기타 등등)로서 의도된다. 도입된 청구항의 기재의 구체적인 수가 의도된다면, 그러한 의도는 명시적으로 청구항에 기재되고, 그러한 기재 없는 한 그러한 의도는 존재하지 않는다는 것 또한 해당 기술의 당업자에 의해 이해 될 것이다. 예로서, 이해를 돕기 위해, 이하 첨부된 청구항들은 "적어도 하나" 및 "하나 이상"이라는 도입 문구의 사용을 포함 할 수 있다. 하지만, 그러한 문구들의 사용은, 동일한 청구항이 도입 문구 “하나 이상” 또는 “적어도 하나”, 및 “하나”와 같은(예로서, “하나”는 “적어도 하나” 또는 “하나 이상”으로 해석되어야 한다.) 부정관사를 포함할 때 조차도, 부정관사 “하나”애 의한 청구항의 기재가 그러한 도입된 청구항 기재를 포함하는 어느 특정한 청구항을 오직 하나의 그러한 기재를 포함하는 예시들로 한정한다는 것을 암시하는 것으로 이해되어서는 안 된다; 청구항 기재를 도입하는 데 사용되는 정관사들의 사용에 대해서도 마찬가지 이다. 또한, “A, B, 및 C 등 중 적어도 하나”와 유사한 관습적인 표현이 사용되는 이러한 예시들에서, 일반적으로 이러한 문장 구조는, 해당 기술의 통상의 기술자가 그 관습적인 표현을 이해할 것 이라는 의미에서 의도된다(예로서, “A, B, 및 C 중 적어도 하나를 갖는 시스템”은 A 혼자, B 혼자, C 동자, A 및 B 함께, A 및 C 함께, B 및 C 함께, 및/또는 A, B, 및 C 함께 갖는 시스템들 등을 포함하지만, 이에 한정되지 않는다). 발명의 설명, 청구항들 또는 도면들에서 두 개 이상의 대안적인 용어들을 제시하는 사실상의 임의의 이원적인 단어 및/또는 어구가 용어들, 용어들 중 하나, 또는 두 용어들 모두를 포함하는 가능성들을 고려하도록 이해되어야 한다는 것 또한 해당 기술의 사람들에 의해 이해 될 것이다. 예를 들어, “A 또는 B” 문구는 “A” 또는 “B” 또는 “A 및 B”의 가능성들을 포함하도록 이해될 것이다.
몇몇의 실시 예들에서, 딥 러닝 신경망들과 같은, 신경망들은 감소된 파라미터 크기로 만들어질 수 있다. 결과적으로, 신경망 하드웨어 상의 부하를 줄일 수 있는 반면, 이미지 인식 작업을 위한 성능의 수준은 유지될 수 있다. 몇몇의 실시 예들에서, 신경망들의 파라미터 크기를 줄이기 위해, 신경망들은, 다수의 파라미터들이 0이 되도록 만들기 위해, 프루닝(pruning) 될 수 있다. 하지만, 원래의 성능을 유지하는 동안에 각각의 신경망들의 레이어가 가능한 한 네트워크들을 프루닝 하도록, 좋은 임계 값을 설정하는 것에서 문제가 발생한다. 다수의 레이어들로 구성된 신경망들에 대해, 특히 한 계층의 임계 값이 다른 임계 값들에 종속적일 수 있다는 것을 고려하면, 임계 값을 찾기 위한 브루트 포스는 실용적이지 않을 수 있다. 또한, 프루닝은 원래의 성능을 회복하기 위해 네트워크의 재훈련을 요구할 수 있다. 이 프루닝 처리는 효율적이라고 확인되기 위해 상당한 시간이 소요할 수 있다. 본 명세서에서 설명되듯이, 다양한 실시 예들에서, 네트워크를 재훈련 하기 위한 방법들과 함께 임계 값들의 자동 선택은 파라미터들을 줄이기 위해 신경망을 프루닝 하는 데 사용될 수 있다.
도 1a는 몇몇의 실시 예들에 따라 임계 값을 자동적으로 결정하기 위한 기술의 흐름도 이다. 100에서, 신경망의 레이어를 프루닝하기 위한 임계 값은 초기화 된다. 몇몇의 실시 예들에서, 임계 값은, 0 또는 1과 같은, 값들의 범위의 최 극단의 값으로 초기화 될 수 있다. 다른 실시 예들에서, 임계 값은 0.2 및 0.5 등과 같은 구체적인 값으로 초기화 될 수 있다. 다른 실시 예들에서, 임계 값은 임의의 값으로 설정될 수 있다. 다른 실시 예들에서, 임계 값은 경험칙들을 사용하여 결정될 수 있다. 몇몇의 실시 예들에서, 임계 값은, 유사한 상황의 레이어, 또는 유사한 또는 동일한 유형의 레이어와 같은 다른 레이어에 대해 자동적으로 결정된 값으로 설정될 수 있다. 몇몇의 실시 예들에서, 초기 임계 값은 신경망의 모든 레이어들에 대해 동일할 수 있다; 하지만, 다른 실시 예들에서, 임계 값은 몇몇 레이어들 또는 각각의 레이어들에 대해 상이할 수 있다.
102에서, 신경망의 레이어는 임계 값을 이용하여 프루닝 될 수 있다. 예로서, 임계 값은 레이어의 몇몇 가중치들을 0이 되도록 설정하는데 사용될 수 있다. 104에서, 프루닝 오류(Pruning error; PE)가 프루닝된 레이어에 대해 계산될 수 있다. 프루닝 오류는 프루닝 전 및 프루닝 후의 가중치들의 함수일 수 있다.
106에서, 프루닝 오류(PE)는 프루닝 오류 허용(Pruning error allowance; PEA)과 비교될 수 있다. 몇몇의 실시 예들에서, 프루닝 오류는, 프루닝 오류가 프루닝 오류 허용과 동일한 경우, 프루닝 오류 허용에 이를 수 있다. 하지만, 다른 실시 예들에서, 프루닝 오류는, 프루닝 오류가 프루닝 오류 허용을 포함하는 범위 내에 있는 경우, 프루닝 오류 허용에 이를 수 있다. 또는, 프루닝 오류 허용은 허용 가능한 프루닝 오류들의 범위일 수 있다. 예로서, 비교적 작은 수는 특정한 프루닝 오류 허용 초과 및 미만의 범위를 정의하는데 사용될 수 있다. 프루닝 오류 및 프루닝 오류 허용 사이의 차이의 크기가 비교적 작은 수보다 작으면, 프루닝 오류는 프루닝 오류 허용내에 있는 것으로 간주된다.
프루닝 오류가 프루닝 오류 허용에 이르지 못하면, 임계 값은 108에서 변경된다. 임계 값을 변경하는 것은 다양한 방법들로 수행될 수 있다. 예로서, 임계 값은 고정된 양 만큼 변경될 수 있다. 다른 실시 예들에서, 임계 값은 프루닝 오류와 프루닝 에서 허용의 차이에 기초한 양 만큼 변경될 수 있다. 다른 실시 예들에서, 임계 값은 현재 임계 값에 기초한 양 만큼 변경될 수 있다. 다른 실시 예들에서, 바이너리 서치 또는 다른 유형들의 서치들과 같은 서치 기술이 다른 임계 값을 선택하는 데 사용될 수 있다. 임계 값을 변경하기 위한 기술은 모든 레이어들에 대해 동일한 기술일 수 있으나, 모든 레이어들에 대해 동일한 기술일 필요는 없다.
어떻게 변경되는 지와는 무관하게, 108에서 임계 값이 변경된 후, 102에서 레이어를 프루닝 하고 104에서 프루닝 오류를 계산하는 과정이 반복한다. 프루닝 오류는 프루닝 오류가 프루닝 오류 허용에 이르렀는지를 판별하기 위해, 프루닝 오류 허용과 다시 비교된다. 따라서, 신경망의 레이어의 프루닝은, 프루닝 오류가 프루닝 오류 허용에 이를 때까지 상이한 임계 값들을 사용하여 반복된다.
도 1b는 몇몇의 실시 예들에 따라 임계 값을 자동적으로 결정하기 위한 기술의 흐름도 이다. 이 실시 예에서, 프루닝 기술은 도 1a의 프루닝 기술과 유사하다. 유사한 동작들의 설명은 생략될 것이다. 101에서, 몇몇 실시 예들에서, 프루닝 오류 허용은 초기화 된다. 다른 실시 에들에서, 0이 아닌 가중치들의 비율 또는 비율들의 범위는 초기화 될 수 있다. 다른 실시 예들에서, 임계 값, 프루닝 오류 허용, 및 0이 아닌 가중치들의 비율 또는 비율들의 범위의 조합은 초기화 될 수 있다. 프루닝 오류 허용 및/또는 0이 아닌 가중치들의 비율 또는 비율들의 범위는 임계 값들을 초기화 하기 위한 이상 설명된 것들과 유사한 기술들을 사용하여 초기화 될 수 있다.
110 에서, 프루닝 에러가 프루닝 오류 허용에 도달한 후, 0이 아닌 가중치들의 비율이 제안:'계산되고 0이 아닌 가중치들의 허용 가능한 비율 또는 비율들의 범위로 설정(comparted) 된다. 이 실시 예에서, 프루닝된 가중치들의 수는 비율로서 표시된다; 하지만, 다른 실시 예들에서 프루닝된 가중치들의 수는 상이하게 표시될 수 있다. 0이 아닌 가중치들의 비율이 예시로서 사용되는 반면, 다른 실시 예들에서, 프루닝된 가중치들의 비율 이 사용되거나 대응하는 범위 또는 값으로 설정 될 수 있다.
112에서, 프루닝된 가중치들의 비율이 레이어에 대한 범위 내에 있지 않은 경우, 프루닝 오류 허용은 변경 된다. 프루닝 오류 허용은 108에서 임계 값을 변경하는 것과 관련하여, 이상 설명된 기술들을 사용함으로써 변경될 수 있다. 임계 값을 변경하는 데 사용되는 동일한 또는 상이한 기술은 프루닝 오류 허용을 변경하는 데 사용될 수도 있다. 프루닝 오류 허용은 변경하기 위한 기술은 모든 레이어들에 대해 동일한 기술일 수 있지만, 모든 레이어들에 대해 동일한 기술일 필요는 없다.
프루닝 오류 허용이 변경된 후, 레이어는 102에서 다시 프루닝 될 수 있다. 이어지는 동작들은 프루닝 된 가중치들의 비율이 허용 가능한 양의 범위 내에 있을 때까지 수행될 수 있다. 114에서, 다음 레이어는 유사하게 처리될 수 있다. 따라서, 처리는 신경망의 각각의 레이어에 대해 반복될 수 있다.
몇몇 실시 예들에 따른 기술을 이용하는 것은 하나의 임계 값 및/또는 하나의 프루닝 오류 허용이 신경망의 모든 레이어들을 프루닝 하도록 할 수 있다. 하지만, 각각의 레이어는 결국 특정 레이어에 기초한 자동적으로 결정된 임계 값을 가질 것 이다. 고정된 임계 값이 2개에서 모든 레이어들에 대해 사용되는 경우, 임계 값은 하나 이상의 레이어들에 대해 최적이 아닐 수 있다. 또한, 몇몇 실시 예들에 따른 프루닝 기술이 개별적인 레이어들에 집중됨으로써, 임계 값은 그 레이어에 대해 특별하게 결정될 수 있다.
몇몇의 실시 예들에서, 0이 아닌 가중치들의 비율은 신경망을 프루닝하는 데 사용되는 하나의 제어 또는 하나의 제어의 유형일 수 있다. 이상 설명된 바와 같이, 프루닝 오류 허용은 0이 아닌 가중치들의 비율이 원하는 범위 내에 있을 때까지 변경될 것이다. 유사하게, 임계 값은 프루닝 오류가 프루닝 오류 허용에 도달할 때까지 변경될 것이다. 그러므로, 0이 아닌 가중치들의 비율을 설정함으로써, 프루닝 오류 허용 및 임계 값은 원하는 비율에 도달하도록 변경될 것이다.
몇몇의 실시 예들에서, 프루닝 오류 허용 및/또는 임계 값은 초기화 될 수도 있을 것이다. 예로서, 프루닝 오류 허용은 동작들의 결과를 0이 아닌 가중치들의 범위의 특정 측면 또는 해당 범위 내의 특정 위치에 바이어스(bias) 하도록 초기화 될 수 있다.
몇몇의 실시 예들에서, 임계 값은 아래와 같이 결정될 수 있다. 프루닝 오류 “ε*”가 초기화 된다. 각각의 레이어 “l”에 대해, 임계 값 “Tl”은 이상 설명된 기술을 사용하여 초기화 된다. 임계 값 “Tl”을 사용하여, 레이어 “l”의 각각의 가중치 “wi”는 프루닝 된다. 수학식 1은 가중치들이 프루닝되는 방법의 예시 이다.
Figure pat00001
몇몇 실시 예들에서, 임계 값 “Tl”은 스케일 팩터에 의해 스케일링될 수 있다. 여기서, 임계 값 “Tl”은 σ(w)에 의해 스케일링 될 수 있다. σ(w)는 레이어 내의 모든 가중치들의 표준 편차이다. 하지만, 다른 실시 예들에서, 임계 값 “Tl”은 상이한 스케일 팩터에 의해 스케일링 될 수 있다.
레이어가 일단 프루닝 되면, 프루닝 오류 “ε”가 계산될 수 있다. 수학식 2는 프루닝 오류가 계산되는 방법의 예시 이다.
Figure pat00002
여기에서, wpruned는 프루닝된 가중치들의 벡터이고, w는 프루닝 전 원래의 가중치들의 벡터이다. D(w)는 w의 총 길이 이다. 따라서, 결과적인 프루닝 오류 “ε”는 오류의 양 및 프루닝 된 가중치들의 수에 기초한다.
프루닝 오류 “ε”는 프루닝 오류 허용 “ε*”과 비교될 수 있다. 수학식 3은 비교의 예시 이다.
Figure pat00003
여기에서, θ는 프루닝 오류 허용 “ε*” 상에 센터링된 범위를 정의하는 수 이다. 몇몇의 실시 예들에서, θ는 0이다; 하지만, 다른 실시 예들에서, θ는 비교적 작은 수 이다. 다른 실시 예들에서, θ는 범위의 크기를 정의하는 수 이다.
프루닝 오류 “ε”가 프루닝 오류 허용 “ε*”로부터 θ보다 작은 경우, 프루닝 오류 “ε”는 프루닝 오류 허용 “ε*”에 도달한다. 그렇지 않은 경우, 임계 값 “Tl”은 수학식 4에 설명된 바와 같이 변경될 수 있다.
Figure pat00004
여기에서, ζ는 이것에 의해 임계 값 “Tl”이 변경될 수 있는 상수 이다. 이상 설명되었듯이, 다른 실시 예들에서, 임계 값 “Tl”은 상이한 방식으로 변경될 수 있다. 예로서, ζ는 각각의 반복에 대해 2 배수로 계속해서 감소하는 값일 수 있다. 그럼에도 불구하고, 일단 임계 값 “Tl”이 변경되면, 업데이트 된 임계 값 “Tl” 및 이어지는 단계들을 사용하는 프루닝은 이상 설명된 바와 같이 수행 될 수 있다.
프루닝 오류 “ε”가 프루닝 오류 허용 “ε*”에 도달하면, 0이 아닌 가중치들의 비율이 확인 될 수 있다. 수학식 5는 비율 “p”를 계산하는 것의 예시 이다.
Figure pat00005
비율 “p”는 이후 허용 가능한 비율들의 범위와 비교될 수 있다. 몇몇의 실시 예들에서, 허용 가능한 비율들의 범위는 동일할 수 있다; 하지만, 다른 몇몇 실시 예들에서, 범위들을 상이할 수 있다. 특히, 범위는 레이어의 유형에 따라 다를 수 있다. 예로서, 비율 “p”의 범위는, 완전히 연결된 레이어들과 같은 다른 레이어들에 대해 범위가 0.04와 0.2 사이인 반면, 콘볼루션 유형의 레이어들에 대해 0.2와 0.9 사이일 수 있다.
비율 “p”가 레이어에 대한 범위의 하한 보다 작은 경우, 프루닝 오류 허용 “ε*”은 수학식 6에서와 같이 감소한다. 유사하게, 비율 “p”가 레이어에 대한 범위의 상한 보다 큰 경우, 프루닝 오류 허용 “ε*”은 수학식 7에서와 같이 증가한다.
Figure pat00006
Figure pat00007
프루닝 오류 허용 “ε*”이 변경된 후, 이상 설명된 프루닝은, 프루닝 오류 ” ε”가 새로운 프루닝 오류 허용 “ε*”에 도달할 때까지 반복될 수 있다. 몇몇의 실시 예들에서, 임계 값 “Tl”은 이전 반복으로부터 유지될 수 있다; 하지만, 다른 실시 예들에서, 임계 값 “Tl”은 원래의 초기 값으로 초기화 되거나, 초기화 알고리즘에 따라 초기화되는 것 등과 같이, 다를 수 있다. 예로서, 다음 반복을 위한 임계 값 “Tl”은 과거의 임계 값 “Tl”에 기초한 값으로 초기화 되지만, 새로운 프루닝 오류 허용 “ε*”에 도달하기 위한 프루닝 반복들의 수를 감소시킬 것으로 기대되는 방향으로 조정될 수 있다.
이상 설명된 기술들은, 비율 “p”가 레이어에 대한 허용 가능한 범위 내에 있을 때까지 반복할 수 있다. 동작들은 신경망의 다른 레이어들에 대해 반복될 수 있다. 몇몇의 실시 예들에서, 프루닝 오류 허용 “ε*” 및 초기 임계 값 “Tl”과 같은, 다양한 값들은 이전에 프루닝된 레이어에 의존하거나 의존하지 않고 선택될 수 있다. 예로서, 두 개의 유사하게 배치된 레이어들에 대해, 늦게 프루닝된 레이어는, 일찍 프루닝된 레이어로부터 결과적인 프루닝 오류 허용 “ε*” 및 임계 값 “Tl”을 사용할 수 있다.
따라서, 본 명세서에서 설명된 기술들에 따라 프루닝됨으로써, 몇몇의 실시 예들에서, 각각의 레이어에 대한 프루닝 임계 값은 자동적으로 결정될 수 있다. 즉, 임계 값은, 남아 있는 0이 아닌 가중치들의 특정 범위 및/또는 프루닝 된 레이어에 대한 특정 프루닝 오류 허용을 만족시키도록 결정될 수 있다. 임계 값은, 특정 레이어에 따라, 모든 레이어들을 포함하는 하나 이상의 레이어들에 대해 상이할 수 있다.
도 2는 몇몇의 실시 예들에 따른 재훈련 동작의 흐름도 이다. 200에서, 다양한 파라미터들이 초기화 될 수 있다. 예로서, 기본 학습률, 반복들의 횟수에 대한 카운터들 등이 초기화 될 수 있다.
202에서, 신경망의 레이어들은 자동적으로 결정된 임계 값들을 이용하여 프루닝 될 수 있다. 특히, 레이어들에 대한 임계 값들은 이상 설명된 바와 같이 자동적으로 생성될 수 있다. 몇몇의 실시 예들에서, 레이어들 모두는 프루닝 될 수 있다; 하지만, 이하 더욱 구체적으로 설명될 것과 같이, 몇몇의 실시 예들에서, 모든 레이어들 보다 적은 레이어들이 프루닝 될 수 있다.
프루닝의 결과로서, 0이 아닌 가중치들의 신경망이 남을 수 있다. 204에서, 신경망은 이러한 0이 아닌 가중치들을 사용하여 재훈련될 수 있다. 프루닝과 재훈련의 동작들은 원하는 반복들의 횟수가 완료될 때까지 반복된다. 예로서, 206에서, 반복들의 횟수는 원하는 횟수와 비교될 수 있다. 반복들의 횟수가 바람직한 횟수에 도달하지 못한 경우, 프루닝 및 재훈련은 반복될 수 있다.
도 3a 및 도 3b는 몇몇의 실시 예들에 따른 재훈련 동작의 흐름도이다. 도 3a를 참조하면, 300에서, 다양한 파라미터들은 이상 설명된 200의 파라미터들과 유사하게 초기화 될 수 있다. 302에서, 콘볼루션 유형(CONV) 레이어들은 그 레이어들에 대한 자동적으로 결정된 임계 값들을 사용하여 프루닝 된다. 콘볼루션 유형 레이어들이 예시로서 사용되었음에도 불구하고, 다른 실시 예들에서, 모든 레이어들 보다 적은 레이어들을 포함하는 상이한 유형 또는 다른 서브세트가 프루닝 될 수 있다.
304에서, 신경망은 0이 아닌 가중치들을 사용하여 재훈련된다. 다른 실시 예들에서, 재훈련은 특정 개수의 반복들 동안 계속된다. 다른 실시 예들에서, 재훈련은 훈련 샘플들 세트 모두를 커버할 때까지 계속된다.
306에서, 반복들의 횟수는 임게 값과 비교된다. 반복들의 횟수가 임계 값 보다 작은 경우, 302 및 304의 프루닝 및 재훈련이 반복된다. 특히, 304의 재훈련 후에, 302의 프루닝이 수행될 때, 먼저 수행된 프루닝 동작에서 이전에 살아남은 몇몇의 0이 아닌 가중치들은 관련된 레이어에 대한 프루닝 임계 값 아래로 떨어질 수 있다. 따라서, 이러한 가중치들은 0으로 설정되고 남은 0이 아닌 가중치들은 304에서 재훈련 된다.
반복들의 횟수가 306에서의 임계 값에 도달한 경우, 302에서 프루닝된 레이어들과 상이한 유형을 갖는 신경망의 레이어들의 세트가 308에서 고정된다. 즉, 고정된 레이어들은 304에서 이어지는 재훈련 동안 재훈련되지 않는다. 몇몇의 실시 예들에서, 완전히 연결되고(Fully Connected; FC), 입력된(input; IP) 레이어들은 고정된다. 302에서의 프루닝 및 304에서의 재훈련은, 302에서 반복들의 원하는 횟수가 완료될 때까지 반복될 수 있다.
도 3b를 참조하면, 도 3a의 302에서 프루닝된 레이어들이 고정될 수 있다. 이 예시에서, 콘볼루션 유형의 레이어들은 302에서 프루닝되는 레이어들 이다. 그러므로, 콘볼루션 타입의 레이어들은 312에서 고정된다.
308에서 고정된 레이어들은, 314에서, 레이어들과 관련되는 자동적으로 결정된 임계 값들을 사용하여 프루닝 된다. 이 예시에서, 레이어들은 308에서 고정된 레이어들인 FC/IP 레이어들이다.
316에서, 재훈련을 위한 드롭 아웃 비(dropout rate)는 프루닝 비에 기초하여 조정될 수 있다. 특히, 프루닝 비가 가중치들의 감소된 수를 반영함에 따라, 드롭 아웃 비는 더 적은 수의 0이 아닌 가중치들을 수용하기 위해 대응하여 변경될 수 있다.
318에서, 신경망은 재훈련된다. 하지만, 콘볼루션 유형의 레이어들은 321에서 고정된다. 그러므로 이러한 레이어들은 재훈련되지 않는다. 320에서, 반복들의 횟수가 완료되지 않은 경우, 314 및 318의 프루닝 및 재훈련은 반복된다.
몇몇의 실시 예들에서, 도 3a의 300에서의 초기화 이외의, 도 3a의 나머지 동작들은 수행되지 않을 수 있다. 즉, 동작들은, 콘볼루션 유형의 레이어들이 고정된 312에서 시작할 수 있다. 몇몇의 실시 예들에서, 콘볼루션 유형의 레이어들은, 레이어들을 고정하기 전에 각각의 자동적으로 결정된 임계 값들을 이용하여 프루닝 될 수 있다.
레이어들의 특정 유형들이, 프루닝, 재훈련, 및 고정되는 것들의 예시들로서 사용되었지만, 다른 실시 예들에서, 유형들은 상이할 수 있다. 또한, 몇몇의 실시 예들에서, 302에서 프루닝 되고 312에서 고정된 레이어들의 제 1 세트 및 308에서 고정되고 314에서 프루닝된 레이어들의 제 2 세트는 레이어들의 전체 세트를 형성할 수 있다. 하지만, 다른 실시 예들에서, 레이어들의 다른 세트들의 프루닝, 재훈련, 및 고정은 제 1 또는 제 2 세트들을 위해 사용된 기술을 따르지 않을 수 있다. 예로서, 레이어들의 제 3 세트는 302에서 프루닝되지만 312에서 고정되지 않을 수 있다.
도 4는 몇몇의 실시 예들에 따른 임계 값, 프루닝, 및 재훈련을 자동적으로 결정하는 기술의 흐름도 이다. 몇몇의 실시 예들에서, 400에서 프루닝 임계 값들은 자동적으로 결정된다. 임계 값들은 이상 설명된 바와 같이 자동적으로 결정될 수 있다. 402에서, 이러한 자동적으로 결정된 임계 값들은 신경망을 프루닝하고 재훈련하는 데 사용될 수 있다. 몇몇 실시 예들에서, 400에서 임계 값들은 다수의 반복들을 통해 자동적으로 결정될 수 있다. 이러한 반복들이 완료된 후에, 402 에서, 결과적인 임계 값들이 반복적으로 신경망을 프루닝하고 재훈련 하는데 사용된다.
도 5는 몇몇의 실시 예들에 따른 재훈련 동작을 도시하는 그래프들의 세트 이다. 이러한 그래프들은 GoogLeNet 신경망의 프루닝 및 재훈련을 도시한다. 특히, 그래프들은 손실, top-1 정확도, 및 top-2 정확도의 변화를 도시한다. 여기에서, 두 프루닝 동작들, 즉, 제 1 훈련 반복들 전의 첫번째 프루닝 동작과 훈련 반복들들의 양이 수행된 뒤의 두 번째 프루닝 동작이 도시 된다. 두 프루닝 동작들이 도시되지만, 프루닝 동작들의 임의의 횟수가 수행될 수 있다.
도 6은 몇몇의 실시 예들에 따른 프루닝 및 재훈련 후의 다양한 신경망들의 결과들을 포함하는 차트 이다. 특히, 가중치 파라미터들의 크기의 변화, top-1 정확도, 및 top-5 정확도가 다양한 신경망들 및 이러한 네트워크들의 프루닝된 버전들과 관련하여 설명된다. 여기, AlecNet, VGG16, SqueezeNet, GoogLeNet, 그리고 AlexNet 와 VGG16의 프루닝된 버전들이 나열되어 있다. 특히 프루닝된 GoogLeNet 항목들은 본 명세서에서 설명된 바와 같이 프루닝된 GoogLeNet을 위한 훈련 및 추론 네트워크들을 보여준다. 설명된 바와 같이, 본 명세서에서 설명된 바와 같이 프루닝된 GoogLeNet은 더 높은 정확도를 전달할 수 있는 신경망에 대한 가중치 파라미터들의 가장 작은 크기를 갖는다. 특히, 프루닝된 훈련 및 추론 신경망들은 둘 다 모두 가장 작은 크기의 가중치 파라미터들로 89%가 넘는 top-5 정확도를 달성할 수 있다.
도 7a 내지 도 7c는 몇몇의 실시 예들에 따른 신경망들을 프루닝하는 다양한 기술들의 결과들을 포함하는 차트 이다. 이 차드들은 GoogLeNet 신경망의 레이어들 및 서브 레이어들, 및 다양한 프루닝 기술들의 결과들을 나열한다. 프루닝 후의 결과적인 총 가중치들 및 top-1 및 top-5 성능을 포함하여, 미리 정해진(prefixed) 임계 값들의 두 예시들이 도시된다. 다른 예시는 경험칙들을 사용하여 생성된 임계 값들의 결과를 도시한다. 최종적으로, 마지막 예시는 본 명세서에서 설명된 실시 예에 따른 프루닝의 결과들을 도시 한다. 결과들은 본 명세서에 설명된 바와 같이 프루닝이 미리 정해진 임계 값들 보다 적은 가중치들로 프루닝 되지 않은 네트워크와 비교할 수 있는 정확도를 달성 할 수 있음을 보여준다. 경험칙들에 의해 생성된 임계 값들과 관련하여, 본 명세서에서 설명된 프루닝은 유사한 총 가중치들로 유사한 또는 더 큰 정확도를 달성했다. 하지만, 본 명세서에서 설명된 프루닝은 프루닝 임계 값들을 미리 선택하기 위한 선택 기술 또는 규칙들을 요구하지 않고 수행될 수 있다. 즉, 미리 정해진 임계 값들의 다수의 반복들은 수행될 필요가 없고, 규칙들을 생성하기 위한 경험칙 정보는 필요하지 않을 수 있지만 유사한 및/또는 더 좋은 결과들은 달성될 수 있다.
도 8은 몇몇의 실시 예들에 따른 시스템이다. 시스템(800)은 프로세서(802) 및 메모리(840)를 포함한다. 프로세서(802)는 범용 프로세서, 디지털 신호 프로세서(Digital Signal Processor; DSP), ASIC(Application Specific Integrated Circuit), 마이크로컨트롤러(microcontroller), 프로그램 가능 논리 소자(programmable logic device), 분리 회로(discrete circuit)들, 이러한 장치들의 조합 등일 수 있다. 프로세서(802)는 레지스터들, 캐시 메모리, 프로세싱 코어들 등과 같은 내부 구성요소들을 포함할 수 있고, 주소 및 데이터 버스 인터페이스들, 인터럽트(interrupt) 인터페이스들 등의 외부 인터페이스들도 포함할 수 있다. 시스템(800)에 오직 하나의 프로세서(802)만 도시되어 있으나, 다수의 프로세서들(802)이 존재할 수 있다. 또한, 논리 칩셋들, 허브들, 메모리 컨트롤러들, 통신 인터페이스들 등과 같은 다른 인터페이스 장치들이 프로세서(802)를 내부 또는 외부 구성요소들과 연결시키기 위한 시스템(800)의 부분일 수 있다.
메모리(804)는 데이터를 저장할 수 있는 어떠한 장치일 수 있다. 여기에서, 하나의 메모리(804)가 시스템(800)에 대해 도시된다; 하지만, 상이한 유형들의 메모리들을 포함하는 임의의 개수의 메모리들(804)이 시스템들(800)에 포함될 수 있다. 메모리들(804)의 예시들은 DRAM(Dynamic Random Access Memory), DDR SRAM(Double Data Rate Synchronous Dynamic Random Access Memory), 플래시, STT-MRAM(Spin-Transfer Torque Magentoresistive Random Access Memory), 또는 PRAM(Phase-change RAM)과 같은 불휘발성 메모리, 자기 또는 광학 매체 등을 포함한다.
메모리(804)는, 프로세서(802)에서 실행될 때 시스템(800)이 본 명세서에 설명된 임의의 또는 모든 기술들을 실행하도록 하는 코드를 저장하도록 구성될 수 있다. 몇몇의 실시 예들에서, 시스템(800)은 신경망, 초기 임계 값들, 초기 프루닝 오류 허용들, 허용 가능한 프루닝 비율 범위들 등과 같은 입력들(806)을 수신하도록 구성될 수 있다. 출력(808)은 자동적으로 결정된 임계 값들, 프루닝되고 재훈련된 신경망, 또는 이상 설명된 다른 결과적인 정보를 포함할 수 있다.
방법들 및 시스템들이 특정 실시 예들에 따라 설명되었지만, 해당 기술의 당업자는 개시된 실시 예들에 대한 많은 변형들 이 가능하다는 것을 쉽게 인지할 것이고, 그러므로 임의의 변형들이 본 명세서에 개시된 방법들 및 시스템들의 사상 및 범위 내에서 고려되어야만 한다. 따라서, 많은 변형들이 해당 기술의 당업자에 의해 첨부된 청구항들의 사상 및 범위로부터 분리되지 않고 이루어질 수 있다.

Claims (10)

  1. 임계 값을 사용하여 다수의 레이어들을 갖는 신경망의 레이어를 프루닝 하는 단계; 및
    상기 프루닝된 수준의 프루닝 오류가 프루닝 오류 허용에 도달할 때까지 상이한 임계 값을 사용하여 상기 신경망의 상기 레이어의 상기 프루닝을 반복하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 신경망의 상기 레이어들 각각에 대해:
    상기 프루닝 오류 허용을 초기화 하는 단계;
    상기 임계 값을 초기화 하는 단계; 및
    상기 레이어에 대한 프루닝된 가중치들의 비율이 상기 레이어에 대한 범위 내에 있을 때까지:
    상기 레이어에 대한 상기 프루닝된 상기 가중치들의 상기 비율이 상기 레이어에 대한 상기 범위 내에 있을 때까지:
    상기 임계 값을 사용하여 상기 신경망의 상기 레이어를 프루닝하는 단계;
    상기 프루닝된 레이어의 상기 프루닝 오류를 계산하는 단계; 및
    상기 프루닝 오류를 상기 프루닝 오류 허용과 비교하는 단계; 및
    상기 비교에 응답하여 상기 임꼐 값을 변경하는 단계를 반복하는 단계;
    상기 프루닝된 레이어의 프루닝된 가중치들의 상기 비율을 계산하는 단계;
    프루닝된 가중치들의 상기 비율에 응답하여 상기 프루닝 오류 허용을 변경하는 단계를 반복하는 단계를 더 포함하는 방법.
  3. 제 1 항에 있어서,
    상기 레이어에 대한 프루닝된 가중치들의 비율이 상기 레이어에 대한 범위 내에 있을 때까지, 상이한 프루닝 오류 허용을 사용하는 상기 레이어의 상기 프루닝의 상기 반복을 반복하는 단계를 더 포함하는 방법.
  4. 제 1 항에 있어서,
    상기 신경망의 상기 레이어를 프루닝 하는 단계는, 가중치의 크기가 상기 임계 값 보다 적은 경우, 상기 가중치를 0으로 설정하는 단계를 포함하는 방법.
  5. 제 1 항에 있어서,
    상기 신경망의 상기 레이어를 프루닝 하는 단계는, 가중치의 크기가 스케일 팩터에 의해 스케일링된 상기 임계 값보다 적은 경우, 상기 가중치를 0으로 설정하는 단계를 포함하는 방법.
  6. 제 1 항에 있어서,
    상이한 임계 값을 생성하기 위해,
    상기 프루닝 오류가 상기 프루닝 오류 허용 보다 적은 경우, 상기 임계 값을 증가시키는 단계; 및
    상기 프루닝 오류가 상기 프루닝 오류 허용 보다 큰 경우, 상기 임계 값을 감소시키는 단계를 더 포함하는 방법.
  7. 제 1 항에 있어서,
    상기 프루된 레이어의 상기 프루닝 오류가 상기 프루닝 오류 허용에 도달한 후, 상기 임계 값을 사용하여 상기 신경망을 반복적으로 프루닝하고 재훈련하는 단계를 더 포함하는 방법.
  8. 자동적으로 결정된 임계 값들을 사용하여 신경망의 복수의 레이어를 프루닝 하는 단계; 및
    프루닝 후 남은 가중치들만을 사용하여 상기 신경망을 재훈련하는 단계를 반복하는 단계를 포함하는 방법
  9. 제 8 항에 있어서,
    상기 신경망의 상기 레이어들의 상기 프루닝은 자동적으로 결정된 임계 값들을 사용하는 제 1 유형을 갖는 상기 신경망의 프루닝 레이어들을 포함하는 방법.
  10. 제 9 항에 있어서,
    상기 제 1 유형과 상이한 제 2 유형을 갖는 상기 신경망의 레이어들의 가중치들을 고정하는 단계;
    상기 제 1 유형을 갖는 상기 레이어들의 상기 프루닝을 하는 단계, 및
    프루닝 후에 남은 가중치들만을 사용하여 상기 신경만을 재훈련하는 단계를 반복하는 단계;
    상기 제 1 유형을 갖는 상기 신경망의 레이어들의 가중치들을 고정하는 단계; 및
    상기 제 2 유형을 갖는 상기 신경망의 상기 레이어들을 프루닝 하는 단계, 및
    프루닝 후에 남은 가중치들만을 사용하여 상기 신경망을 재훈련하는 단계를 반복하는 단계를 포함하는 방법.
KR1020170175812A 2017-02-10 2017-12-20 신경망 프루닝 및 재훈련을 위한 자동 임계값들 KR102566480B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762457806P 2017-02-10 2017-02-10
US62/457,806 2017-02-10
US15/488,430 2017-04-14
US15/488,430 US10832135B2 (en) 2017-02-10 2017-04-14 Automatic thresholds for neural network pruning and retraining

Publications (2)

Publication Number Publication Date
KR20180092810A true KR20180092810A (ko) 2018-08-20
KR102566480B1 KR102566480B1 (ko) 2023-08-11

Family

ID=63104667

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170175812A KR102566480B1 (ko) 2017-02-10 2017-12-20 신경망 프루닝 및 재훈련을 위한 자동 임계값들

Country Status (3)

Country Link
US (2) US10832135B2 (ko)
KR (1) KR102566480B1 (ko)
CN (1) CN108416423B (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020091139A1 (ko) * 2018-10-31 2020-05-07 주식회사 노타 시뮬레이션-가이드된 반복적 프루닝을 사용하는 효율적인 네트워크 압축
KR20200078865A (ko) * 2018-12-24 2020-07-02 아주대학교산학협력단 신경망의 프루닝-재훈련 장치 및 방법
KR20220125115A (ko) * 2021-03-04 2022-09-14 삼성전자주식회사 희소화를 이용한 뉴럴 네트워크 연산 방법 및 장치

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10832135B2 (en) 2017-02-10 2020-11-10 Samsung Electronics Co., Ltd. Automatic thresholds for neural network pruning and retraining
KR102413028B1 (ko) * 2017-08-16 2022-06-23 에스케이하이닉스 주식회사 중첩 신경망을 프루닝하는 방법 및 장치
KR20190051697A (ko) 2017-11-07 2019-05-15 삼성전자주식회사 뉴럴 네트워크의 디컨벌루션 연산을 수행하는 장치 및 방법
US10776662B2 (en) * 2017-11-09 2020-09-15 Disney Enterprises, Inc. Weakly-supervised spatial context networks to recognize features within an image
KR20190099927A (ko) * 2018-02-20 2019-08-28 삼성전자주식회사 심층 신경망의 학습을 수행시키는 방법 및 그에 대한 장치
JP6831347B2 (ja) * 2018-04-05 2021-02-17 日本電信電話株式会社 学習装置、学習方法および学習プログラム
US20190378013A1 (en) * 2018-06-06 2019-12-12 Kneron Inc. Self-tuning model compression methodology for reconfiguring deep neural network and electronic device
US11010132B2 (en) * 2018-09-28 2021-05-18 Tenstorrent Inc. Processing core with data associative adaptive rounding
US11281974B2 (en) * 2018-10-25 2022-03-22 GM Global Technology Operations LLC Activation zero-bypass and weight pruning in neural networks for vehicle perception systems
US11663001B2 (en) * 2018-11-19 2023-05-30 Advanced Micro Devices, Inc. Family of lossy sparse load SIMD instructions
KR20200066953A (ko) 2018-12-03 2020-06-11 삼성전자주식회사 Pim을 채용하는 반도체 메모리 장치 및 그 동작 방법
CN109800859B (zh) * 2018-12-25 2021-01-12 深圳云天励飞技术有限公司 一种神经网络批归一化的优化方法及装置
CN109948795B (zh) * 2019-03-11 2021-12-14 驭势科技(北京)有限公司 一种确定网络结构精度和延时优化点的方法和装置
JP7150651B2 (ja) * 2019-03-22 2022-10-11 株式会社日立ソリューションズ・テクノロジー ニューラルネットワークのモデル縮約装置
CN110276452A (zh) * 2019-06-28 2019-09-24 北京中星微电子有限公司 神经网络模型的剪枝方法、装置、设备和人工智能芯片
CN110599458A (zh) * 2019-08-14 2019-12-20 深圳市勘察研究院有限公司 基于卷积神经网络的地下管网检测评估云***
CN111553480B (zh) * 2020-07-10 2021-01-01 腾讯科技(深圳)有限公司 图像数据处理方法、装置、计算机可读介质及电子设备
KR20220045424A (ko) * 2020-10-05 2022-04-12 삼성전자주식회사 인공 신경망을 압축하는 방법 및 장치
CN112949662B (zh) * 2021-05-13 2021-11-16 北京市商汤科技开发有限公司 一种图像处理方法、装置、计算机设备以及存储介质
JP2023063944A (ja) * 2021-10-25 2023-05-10 富士通株式会社 機械学習プログラム、機械学習方法、及び、情報処理装置
US20230153625A1 (en) * 2021-11-17 2023-05-18 Samsung Electronics Co., Ltd. System and method for torque-based structured pruning for deep neural networks
KR102663160B1 (ko) * 2023-09-07 2024-05-07 주식회사 노타 효율적인 생성형 인공지능 모델의 압축을 위한 프루닝 방법 및 시스템

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5636326A (en) * 1992-09-04 1997-06-03 Ricoh Corporation Method for operating an optimal weight pruning apparatus for designing artificial neural networks
US5787408A (en) * 1996-08-23 1998-07-28 The United States Of America As Represented By The Secretary Of The Navy System and method for determining node functionality in artificial neural networks
KR20040099092A (ko) * 2002-03-26 2004-11-26 카운슬 오브 사이언티픽 앤드 인더스트리얼 리서치 계기 노이즈 및 측정 오차의 존재 하의 인공 신경망모델의 향상된 성능
US20150106310A1 (en) * 2013-10-16 2015-04-16 University Of Tennessee Research Foundation Method and apparatus for constructing a neuroscience-inspired artificial neural network
KR20160143548A (ko) * 2015-06-04 2016-12-14 삼성전자주식회사 인공 신경 네트워크를 자동으로 조정하는 방법 및 장치

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324532B1 (en) 1997-02-07 2001-11-27 Sarnoff Corporation Method and apparatus for training a neural network to detect objects in an image
NZ503882A (en) * 2000-04-10 2002-11-26 Univ Otago Artificial intelligence system comprising a neural network with an adaptive component arranged to aggregate rule nodes
US7031948B2 (en) * 2001-10-05 2006-04-18 Lee Shih-Jong J Regulation of hierarchic decisions in intelligent systems
US7370021B2 (en) * 2002-03-15 2008-05-06 Pacific Edge Biotechnology Ltd. Medical applications of adaptive learning systems using gene expression data
EP1504412B1 (en) * 2002-04-19 2018-04-11 CA, Inc. Processing mixed numeric and/or non-numeric data
EP1504373A4 (en) * 2002-04-29 2007-02-28 Kilian Stoffel SEQUENCE MINER
US20080172214A1 (en) * 2004-08-26 2008-07-17 Strategic Health Decisions, Inc. System For Optimizing Treatment Strategies Using a Patient-Specific Rating System
US8700552B2 (en) * 2011-11-28 2014-04-15 Microsoft Corporation Exploiting sparseness in training deep neural networks
CN103136247B (zh) * 2011-11-29 2015-12-02 阿里巴巴集团控股有限公司 属性数据区间划分方法及装置
US20140006471A1 (en) * 2012-06-27 2014-01-02 Horia Margarit Dynamic asynchronous modular feed-forward architecture, system, and method
US9730643B2 (en) * 2013-10-17 2017-08-15 Siemens Healthcare Gmbh Method and system for anatomical object detection using marginal space deep neural networks
WO2016010601A2 (en) * 2014-04-23 2016-01-21 The Florida State University Research Foundation, Inc. Adaptive nonlinear model predictive control using a neural network and input sampling
US9672474B2 (en) * 2014-06-30 2017-06-06 Amazon Technologies, Inc. Concurrent binning of machine learning data
US10650805B2 (en) 2014-09-11 2020-05-12 Nuance Communications, Inc. Method for scoring in an automatic speech recognition system
US10417525B2 (en) * 2014-09-22 2019-09-17 Samsung Electronics Co., Ltd. Object recognition with reduced neural network weight precision
US9633306B2 (en) * 2015-05-07 2017-04-25 Siemens Healthcare Gmbh Method and system for approximating deep neural networks for anatomical object detection
US10460230B2 (en) * 2015-06-04 2019-10-29 Samsung Electronics Co., Ltd. Reducing computations in a neural network
CN105352907A (zh) * 2015-11-27 2016-02-24 南京信息工程大学 基于径向基网络温度补偿的红外气体传感器及检测方法
CN105512725B (zh) * 2015-12-14 2018-08-28 杭州朗和科技有限公司 一种神经网络的训练方法和设备
US20180082181A1 (en) * 2016-05-13 2018-03-22 Samsung Electronics, Co. Ltd. Neural Network Reordering, Weight Compression, and Processing
CN106295800B (zh) * 2016-07-28 2019-03-05 北京工业大学 一种基于递归自组织rbf神经网络的出水总氮tn智能检测方法
US10832135B2 (en) * 2017-02-10 2020-11-10 Samsung Electronics Co., Ltd. Automatic thresholds for neural network pruning and retraining

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5636326A (en) * 1992-09-04 1997-06-03 Ricoh Corporation Method for operating an optimal weight pruning apparatus for designing artificial neural networks
US5787408A (en) * 1996-08-23 1998-07-28 The United States Of America As Represented By The Secretary Of The Navy System and method for determining node functionality in artificial neural networks
KR20040099092A (ko) * 2002-03-26 2004-11-26 카운슬 오브 사이언티픽 앤드 인더스트리얼 리서치 계기 노이즈 및 측정 오차의 존재 하의 인공 신경망모델의 향상된 성능
US20150106310A1 (en) * 2013-10-16 2015-04-16 University Of Tennessee Research Foundation Method and apparatus for constructing a neuroscience-inspired artificial neural network
KR20160143548A (ko) * 2015-06-04 2016-12-14 삼성전자주식회사 인공 신경 네트워크를 자동으로 조정하는 방법 및 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
US 10,460,230 B2(John W. Brothers) "REDUCING COMPUTATIONS IN A NEURAL NETWORK" (2016.02.03)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020091139A1 (ko) * 2018-10-31 2020-05-07 주식회사 노타 시뮬레이션-가이드된 반복적 프루닝을 사용하는 효율적인 네트워크 압축
KR20200078865A (ko) * 2018-12-24 2020-07-02 아주대학교산학협력단 신경망의 프루닝-재훈련 장치 및 방법
KR20220125115A (ko) * 2021-03-04 2022-09-14 삼성전자주식회사 희소화를 이용한 뉴럴 네트워크 연산 방법 및 장치

Also Published As

Publication number Publication date
US10832135B2 (en) 2020-11-10
US20200410357A1 (en) 2020-12-31
CN108416423B (zh) 2024-01-12
KR102566480B1 (ko) 2023-08-11
CN108416423A (zh) 2018-08-17
US20180232640A1 (en) 2018-08-16
US12008474B2 (en) 2024-06-11

Similar Documents

Publication Publication Date Title
KR20180092810A (ko) 신경망 프루닝 및 재훈련을 위한 자동 임계값들
US20210157992A1 (en) Information processing method and terminal device
US10460230B2 (en) Reducing computations in a neural network
US20180260711A1 (en) Calculating device and method for a sparsely connected artificial neural network
KR102410820B1 (ko) 뉴럴 네트워크를 이용한 인식 방법 및 장치 및 상기 뉴럴 네트워크를 트레이닝하는 방법 및 장치
CN108701250B (zh) 数据定点化方法和装置
US20190370664A1 (en) Operation method
CN112085186A (zh) 一种神经网络的量化参数确定方法及相关产品
US11010664B2 (en) Augmenting neural networks with hierarchical external memory
CN110622178A (zh) 学习神经网络结构
CN110084357B (zh) 经由选择性修剪来加速长短期记忆网络
WO2017031172A1 (en) Order statistic techniques for neural networks
US11915141B2 (en) Apparatus and method for training deep neural network using error propagation, weight gradient updating, and feed-forward processing
US20220236909A1 (en) Neural Network Computing Chip and Computing Method
US20190080226A1 (en) Method of designing neural network system
TWI806987B (zh) 用於訓練神經網路的方法及神經網路訓練系統
US20180293486A1 (en) Conditional graph execution based on prior simplified graph execution
US20210097393A1 (en) Method of structured network pruning and sparsity speed-up
CN113841165A (zh) 用于训练人工神经网络的***和方法
CN115860100A (zh) 一种神经网络模型训练方法、装置及计算设备
WO2020005599A1 (en) Trend prediction based on neural network
US10997497B2 (en) Calculation device for and calculation method of performing convolution
WO2020142251A1 (en) Prediction for time series data using a space partitioning data structure
JP7360595B2 (ja) 情報処理装置
KR20230069763A (ko) 신경망 네트워크의 셀프 어텐션 연산을 가속하는 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant