KR20220139248A - 신경망 레이어 폴딩 - Google Patents

신경망 레이어 폴딩 Download PDF

Info

Publication number
KR20220139248A
KR20220139248A KR1020220043636A KR20220043636A KR20220139248A KR 20220139248 A KR20220139248 A KR 20220139248A KR 1020220043636 A KR1020220043636 A KR 1020220043636A KR 20220043636 A KR20220043636 A KR 20220043636A KR 20220139248 A KR20220139248 A KR 20220139248A
Authority
KR
South Korea
Prior art keywords
neural network
function
activation function
affine
activation
Prior art date
Application number
KR1020220043636A
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 KR20220139248A publication Critical patent/KR20220139248A/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/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/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/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/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • G06N3/0481
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound

Landscapes

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

Abstract

본 개시는 신경망에서 뉴런 또는 레이어의 수를 감소시키기 위한 신경망 감소 기술을 설명한다. 방법, 장치, 비일시적 컴퓨터 판독 가능 매체 및 시스템의 실시예는 트레이닝된 신경망을 수신하고 특정 비선형 활성화 유닛을 식별 함수로 대체하도록 구성된다. 다음으로, 선형 블록은 비선형 활성화 유닛이 항등 함수로 대체된 위치에서 단일 블록을 형성하도록 폴드될 수 있다. 이러한 기술은 신경망의 레이어 수를 줄일 수 있으며, 이는 신경망 아키텍처의 전력 및 계산 효율성을 최적화할 수 있다(예를 들어, 네트워크 모델의 정확도에 과도하게 영향을 주지 않고).

Description

신경망 레이어 폴딩{NEURAL NETWORK LAYER FOLDING}
본 개시의 기술적 사상은 신경망 설계에 관한 것으로서, 구체적으로는 신경망 레이어 폴딩에 관한 것이다. 본 개시는 2021년 4월 7일에 출원된 미국 가출원 제 63/171,757호의 이익을 주장하며, 전문이 참조로 통합된다.
다음은 일반적으로 신경망 설계에 관한 것이며, 보다 구체적으로 신경망 레이어 폴딩을 통한 신경망 감소에 관한 것이다.
신경망은 명시적으로 프로그래밍되지 않고 알려진 데이터에 대한 반복을 통해 특정 패턴을 학습할 수 있는 컴퓨터 알고리즘 유형이다. 신경망은 입력 노드, 은닉 노드 및 출력 노드를 포함하는 인지 모델을 의미할 수 있다. 신경망 내에서, 노드들(예를 들어, 뉴런으로 지칭될 수 있음)은 상호 연결되고 입력 데이터를 처리하기 위해 집합적으로 작동할 수 있다. 네트워크의 노드는 이전 노드의 출력을 기반으로 노드가 활성화 되었는지 여부를 계산하는 활성화 기능을 가질 수 있다. 시스템 트레이닝에는 입력 값을 제공하고 결과가 원하는 출력 세트에 근접할 때까지 엣지 가중치 및 활성화(activation) 함수를 (알고리즘적으로 또는 무작위로) 수정하는 작업이 포함될 수 있다.
신경망의 깊이는 신경망 내의 레이어의 수를 의미할 수 있고, 신경망의 크기는 레이어의 수를 곱한 레이어별 노드(또는 뉴런)의 수를 의미할 수 있다. 신경망의 깊이 및/또는 크기가 증가함에 따라 신경망에서 수행하는 작업의 수도 증가할 수 있다(예를 들어, 장치 전력 소비, 계산 효율성 등에 영향을 미칠 수 있음). 예를 들어, 일부 신경망은 여러 개(예를 들어, 30, 40 등)의 레이어와 수십억(예를 들어, 150억 개 이상) 개의 작업이 필요할 수 있는 수백만 개의 노드를 포함할 수 있다.
컴퓨터, 스마트폰, 태블릿, 웨어러블과 같은 장치에서 인공 지능(AI)의 사용은 더욱 광범위하고 보편화되었다. 효율적이고 고성능인 신경망 처리는 모든 AI 애플리케이션에 매우 중요하며 특히 모바일 장치와 같이 처리 및 저장 용량이 제한된 장치에 AI가 배포되는 경우 더욱 그러하다. 일부 예들에서, 장치들은 감소된 전력 소비로 증가된 처리 성능으로 특수 작업을 수행하기 위한 특수 하드웨어 가속기를 구현할 수 있다.
이와 같이 신경망의 개발은 일반적으로 설계 단계(예를 들어, NAS(Neural Architecture Search)), 트레이닝 단계, 압축 단계, 컴파일 단계를 포함할 수 있다. 압축 단계 기술에는 프루닝(pruning), 양자화(quantization), 지식 증류(knowledge distillation) 등이 포함될 수 있다. 경우에 따라 이러한 기술은 신경망의 크기나 깊이를 줄여 신경망에서 수행되는 작업의 수를 줄일 수 있다. 따라서, 효율적인 신경망 개발 기술이 당업계에서 요구되고 있다.
본 개시의 기술적 사상은, 전술된 문제를 해소하기 위한 방법을 제공한다.
본 개시는 신경망에서 뉴런 또는 레이어의 수를 감소시키기 위한 신경망 감소 기술을 설명한다. 방법, 장치, 비일시적 컴퓨터 판독 가능 매체 및 시스템의 실시예는 트레이닝된 신경망을 수신하고 특정 비선형 활성화 유닛을 식별 함수로 대체하도록 구성된다. 다음으로, 선형 블록은 비선형 활성화 유닛이 항등 함수(identity function)로 대체된 위치에서 단일 블록을 형성하기 위해 축소(collapse)되거나 폴드(fold)될 수 있다. 이러한 기술은 신경망의 레이어 수를 줄일 수 있으며, 이는 신경망 아키텍처의 전력 및 계산 효율성을 최적화할 수 있다(예를 들어, 네트워크 모델의 정확도에 과도하게 영향을 주지 않고).
레이어 폴딩을 통한 신경망 감소를 위한 방법, 장치, 비일시적 컴퓨터 판독 가능 매체 및 시스템이 설명된다. 방법, 장치, 비일시적 컴퓨터 판독 가능 매체, 및 시스템의 하나 이상의 실시예는 아핀(affine) 함수 및 비선형 활성화 함수를 포함하는 신경망을 수신하거나 식별하는 단계, 비선형 활성화 함수를 선형성 매개변수를 포함하는 매개변수화된 활성화 함수로 대체하는 단계, 보조 손실 항(auxiliary loss term)에 기초한 근사 아핀 활성화 함수를 얻기 위해 매개변수화된 활성화 함수의 선형성 매개변수를 반복적으로 조정하는 단계, 감소된 신경망을 얻기 위해 근사 아핀 활성화 함수와 신경망의 아핀 함수를 결합하여 신경망을 감소시키는 단계를 포함한다.
레이어 폴딩을 통한 신경망 감소 장치, 시스템 및 방법이 설명된다. 방법, 장치, 비일시적 컴퓨터 판독 가능 매체, 및 시스템의 하나 이상의 실시예는 비선형 활성화 함수를 선형성 매개변수를 포함하는 매개변수화된 활성화 함수로 대체함으로써 아핀 함수 및 비선형 활성화 함수를 포함하는 신경망을 수정하도록 구성된 매개변수화 컴포넌트, 보조 손실 항에 기초하여 근사 아핀 활성화 함수를 획득하기 위해 매개변수화된 활성화 함수의 선형성 매개변수를 반복적으로 조정하도록 구성된 트레이닝 컴포넌트 및 감소된 신경망을 획득하기 위해 근사 아핀 활성화 함수를 신경망의 아핀 함수와 결합하도록 구성된 감소 컴포넌트를 포함한다.
레이어 폴딩을 통한 신경망 감소를 위한 방법, 장치, 비일시적 컴퓨터 판독 가능 매체 및 시스템이 설명된다. 방법, 장치, 비일시적 컴퓨터 판독 가능 매체, 및 시스템의 하나 이상의 실시예는 아핀 함수 및 비선형 활성화 함수를 포함하는 신경망을 식별하는 단계, 비선형 활성화 함수를 선형성 매개변수를 포함하는 매개변수화된 활성화 함수로 대체하는 단계, 매개변수화된 활성화 함수의 선형성 매개변수에 대해 선택된 값에 기초하여 보조 손실 항을 계산하는 단계, 여기서 보조 손실 항은 선형성 매개변수가 1의 값에 접근하도록 조장함, 근사 아핀 활성화 함수를 획득하기 위해 보조 손실 항에 기초하여 매개변수화된 활성화 함수의 선형성 매개변수에 대한 값을 반복적으로 업데이트하는 단계 및 감소된 신경망을 얻기 위해 근사 아핀 활성화 함수를 신경망의 아핀 함수와 결합하는 단계를 포함한다.
도 1은 본 개시의 실시예들에 따른 신경망 설계 시스템의 예를 나타낸다.
도 2는 본 개시의 실시예들에 따른 신경망을 설계하기 위한 프로세스의 예를 나타낸다.
도 3은 본 개시의 실시예들에 따른 신경망 설계 장치의 예를 나타낸다.
도 4는 본 개시의 실시예들에 따른 신경망을 설계하기 위한 프로세스의 예를 나타낸다.
도 5 내지 도 6은 본 개시의 실시예들에 따른 레이어 폴딩을 통한 신경망 감소를 위한 프로세스의 예들을 나타낸다.
도 7a 및 7b는 본 개시의 실시예들에 따른 예시적인 활성화 함수 다이어그램들을 나타낸다.
도 8은 본 개시의 실시예들에 따른 3x3 컨볼루션 다이어그램의 예를 나타낸다.
도 9는 본 개시의 실시예들에 따른 신경망을 설계하기 위한 프로세스의 예를 나타낸다.
도 10은 본 개시의 실시예들에 따른 레이어 폴딩을 통한 신경망 감소를 위한 프로세스의 예를 나타낸다.
도 11 내지 도 15는 본 개시의 실시예들에 따른 신경망 레이어 폴딩 프로세스의 예들을 나타낸다.
컴퓨터, 스마트폰, 태블릿 및 웨어러블과 같은 장치에서 효율적이고 고성능의 신경망 처리가 중요해지고 있다. CPUs(Central Processing Units), GPUs(Graphics Processing Units) 및 NPUs(Neural Processing Units)와 같은 일반적인 연산 장치는 특정 하드웨어를 사용하여 작업을 수행할 수 있다. SNP(Specific Neural Processor)는 신경망 처리에 사용될 수 있으며, 여기서 SNP는 특정 네트워크(예를 들어, CNN(Convolutional Neural Network), ANN(Artificial Neural Network) 등)를 실행할 수 있다. 일부 예에서, 항상 전원이 켜져 있고 전력이 낮거나 대기 시간이 짧은 애플리케이션은 SNP를 사용할 수 있다. 신경망 아키텍처는 신경망의 기능, 구성 및 구현을 설명하는 일련의 규칙 및 방법이다. 아키텍처는 기능, 성능 및 재정적 설계 제약 조건을 충족하는 컴퓨터를 만들기 위해 하드웨어 구성 요소를 선택하고 상호 연결하는 것을 의미할 수 있다.
신경망은 명시적으로 프로그래밍되지 않고 알려진 데이터에 대한 반복을 통해 특정 패턴을 학습할 수 있는 컴퓨터 알고리즘 유형이다. 신경망은 입력 노드, 은닉 노드 및 출력 노드를 포함하는 인지 모델(예를 들어, 인간 두뇌에서 영감을 받은 모델)을 참조할 수 있다. 네트워크의 노드는 이전 노드의 출력을 기반으로 노드가 활성화되었는지 여부를 계산하는 활성화 기능을 가질 수 있다. 시스템 트레이닝에는 입력 값을 제공하고 결과가 원하는 출력 세트에 근접할 때까지 엣지 가중치 및 활성화 함수를 (알고리즘적으로 또는 무작위로) 수정하는 작업이 포함될 수 있다.
신경망 아키텍처는 신경망 모델의 정확도를 향상시키기 위해 수많은 레이어를 포함할 수 있다. 그 결과 신경망 연산 횟수, 전력 소모량, 전체 연산 지연 시간이 증가할 수 있다. 따라서, 네트워크 모델의 정확성에 과도하게 영향을 미치지 않으면서 신경망 아키텍처를 최적화하기 위한 시스템 및 방법이 당업계에 필요하다. 예를 들어, 신경망의 개발은 일반적으로 설계 단계(예를 들어, NAS(Neural Architecture Search)), 트레이닝 단계, 압축 단계 및 컴파일 단계를 포함할 수 있다. 압축 단계 기술은 프루닝(pruning), 양자화(quantization), 지식 증류(knowledge distillation) 등을 포함할 수 있으며 신경망의 레이어 수를 축소하거나 감소시키기 위해 구현될 수 있습다. "신경망 감소"라는 용어는 감소된 신경망의 출력이 원래 신경망의 출력에 근접하도록 함수의 매개변수를 제거하여 신경망을 수정하는 과정을 의미한다.
본 개시는 신경망의 레이어들 사이의 특정 활성화 함수를 제거함으로써 신경망 아키텍처를 최적화하거나 감소시키기 위한 시스템 및 방법을 설명한다. 예를 들어, 프루닝 기술을 사용하여 레이어를 직접 제거하는 대신(또는 이에 더하여), 레이어 간의 활성화 할수는 신경망 아키텍처를 줄이기 위해 여기에 설명된 실시예에 따라 효율적으로 축소되거나 폴드될 수 있다. 예를 들어, 신경망의 많은 연산은 비선형 활성화 함수(예를 들어, ReLU(Rectified Linear Unit) 함수 또는 ReLU 블록)로 분리된 선형 함수를 포함할 수 있다. 네트워크에서 활성화 함수를 제거하면 동등한 선형 레이어로 효율적으로 "축소"될 수 있는 선형(예를 들어, 아핀) 작업의 구성이 생성된다. 따라서 활성화(비선형성)를 제거하는 것은 레이어를 제거하는 것과 같다.
본 개시 내용의 하나 이상의 실시예는 트레이닝된 신경망에서 특정 비선형 레이어를 식별하고 제거한다. 예를 들어 활성화 함수를 그룹으로 결합하여 더 큰 레이어 덩어리를 결합할 수 있다. 제거된 비선형 레이어에 인접한 여러 선형 레이어를 단일 레이어로 결합하여 네트워크 크기를 줄일 수 있다. 또한 학습 가능한 활성화 매개변수는 최종 폴드된 레이어 크기를 줄이기 위해 커널 마스크 매개변수와 공유될 수 있다. 네트워크 아키텍처의 감소는 네트워크 모델의 전력을 향상시키고 대기 시간을 줄이며 스마트 장치(예를 들어, 전화, 시계, 로봇 등)에 구현될 수 있다.
본 개시의 실시예는 신경망 설계 시스템의 맥락에서 사용될 수 있다. 예를 들어, 본 개시에 따른 신경망 설계 장치는 트레이닝된 신경망을 여기에서 설명된 기술에 따라 신경망을 감소시킬 수 있다. 신경망 설계 및 신경망 감소 맥락에서 본 발명의 개념을 적용한 예는 도 1 및 도 2를 참조하여 제공된다. 예시적인 신경망 설계 시스템의 아키텍처에 관한 세부사항은 도 3 및 도 4를 참조하여 제공된다. 신경망 감소를 위한 프로세스의 예는 도 5 내지 도 10을 참조하여 제공된다. 감소된(예를 들어, 축소된 또는 폴드된) 신경망의 하나 이상의 실시예가 도 11 내지 15를 참조하여 설명된다.
신경망 설계 시스템
도 1은 본 개시의 실시예들에 따른 신경망 설계 시스템의 예를 나타낸다. 도시된 예는 사용자(100), 사용자 장치(105), 클라우드(110), 신경망 설계 장치(115), 및 엣지 장치(120)를 포함한다. 신경망 설계 장치(115)는 트레이닝된 신경망을 수신할 수 있고(예를 들어, 클라우드(110)를 통해 사용자 장치(105)로부터), 신경망 설계 장치(115)는 본 명세서에 설명된 신경망 레이어 폴딩 기술을 수행하고 감소된 신경망(예를 들어, 여기서 감소된 신경망은 그러한 감소된 신경망의 보다 효율적인 애플리케이션을 위해 엣지 장치(120) 상에서 구현될 수 있다)을 출력할 수 있다.
신경망은 다양한 컴퓨팅 및 처리 시스템에서 사용될 수 있다. 예를 들어, CNNs(Convolutional Neural Network)은 물체 감지, 이미지 분류, 분할 등을 포함하는 컴퓨터 비전 애플리케이션에서 활용된다. 본 명세서에서 설명된 기술에 따르면, 신경망은 신경망 설계 시스템 내에서 개발될 수 있으며, 여기서 최적화된 신경망은 엣지 장치(120)(예를 들어, 전화, 증강 및 가상 현실 기술 세트, 스마트 시계, 로봇 등)에서 구현될 수 있다. 예를 들어, 신경망 개발 흐름은 설계 단계(예를 들어, NAS), 트레이닝 단계, 압축 단계 및 컴파일 단계를 포함할 수 있다. 도 1의 예에서, 트레이닝된 신경망은 사용자(100)에 의해 설계될 수 있고, 여기서 사용자(100)는 트레이닝된 신경망을 사용자 장치(105)를 통해 신경망 설계 장치(115)에 전달할 수 있다. 압축 단계 동안, 신경망 설계 장치(115)는 본 명세서에 추가로 설명되는 실시예에 따라 트레이닝된 신경망을 더 줄일 수 있다.
신경망이 컴파일되면, 신경망은 엣지 장치(120)에서 구현될 수 있다. 엣지 장치(120)는 전력이 제한될 수 있고 이러한 엣지 장치(120)의 성능(예를 들어, 계산 지연, 신경망 정확도 등의 측면에서)은 궁극적인 사용자 경험 측면에서 중요할 수 있다. 따라서 신경망의 전력 소모와 계산 시간은 신경망 개발 과정에서 중요한 설계 제약 조건이 된다. 본 개시의 실시예에 따른 방법은 신경망 처리 및 기능을 개선하고 기계 학습, 컴퓨터 비전, 이미지 처리 등을 포함하는 엣지 장치(120) 애플리케이션에서 신경망 전력 소비 및/또는 시간 지연을 최적화할 수 있다.
본 명세서에서 사용되는 바와 같이, 감소된 신경망은 일반적으로 하나 이상의 노드(또는 하나 이상의 레이어)가 폴드되어 있거나 트레이닝된 신경망으로부터 제거된 신경망 아키텍처를 지칭할 수 있다. 일부 경우에, 감소된 신경망은 특정 계산 작업에 대한 신경망 성능에 크게 영향을 미치지 않으면서 감소된 수의 계산이 수행될 수 있는 신경망의 최적화된 버전에 대응할 수 있다. 본 명세서에 기술된 하나 이상의 실시예에서, 감소된 신경망은 실질적으로 동등한 단일 선형 레이어로 축소되거나 폴드될 수 있는 선형(아핀) 연산의 구성을 생성하기 위해 트레이닝된 신경망으로부터 활성화 함수를 제거하는 것을 포함하거나 참조한다.
사용자 장치(105) 및/또는 엣지 장치(120)는 각각 개인용 컴퓨터, 랩톱 컴퓨터, 메인프레임 컴퓨터, 팜탑 컴퓨터, 개인 비서, 모바일 장치 또는 임의의 다른 적절한 처리 장치와 같은 컴퓨팅 장치를 포함하거나 참조할 수 있다. 사용자 장치(105)는 일반적으로 (예를 들어, 사용자(100) 세트 디자인 제약에 기초하여) 신경망 아키텍처를 생성 및 개발하는 데 사용되는 장치를 지칭할 수 있다. 엣지 장치(120)는 일반적으로 신경망 애플리케이션을 구현하는데 사용되는 장치를 의미할 수 있다. 일부 경우에, 사용자 장치(105) 및 엣지 장치(120)는 동일한 장치일 수 있다.
일부 경우에, 엣지 장치(120)는 NPU를 포함할 수 있다. NPU는 기계 학습 알고리즘의 가속화를 전문으로 하는 마이크로프로세서이다. 예를 들어 NPU는 ANN 또는 RF(Random Forests)와 같은 예측 모델에서 작동할 수 있다. 일부 실시예에서, NPU는 CPU에서 수행하는 것과 같은 범용 컴퓨팅에 적합하지 않은 방식으로 설계된다. 추가적으로 또는 대안적으로, NPU에 대한 소프트웨어 지원은 범용 컴퓨팅을 위해 개발되지 않을 수 있다.
클라우드(110)는 데이터 저장 및 컴퓨팅 파워와 같은 컴퓨터 시스템 리소스의 주문형 가용성을 제공하도록 구성된 컴퓨터 네트워크이다. 일부 예에서, 클라우드(110)는 사용자(100)에 의한 능동적 관리 없이 리소스를 제공할 수 있다. 클라우드(110)라는 용어는 때때로 인터넷을 통해 많은 사용자(100)가 이용할 수 있는 데이터 센터를 설명하는 데 사용된다. 일부 대규모 클라우드 네트워크에는 중앙 서버로부터 여러 위치에 분산된 기능이 있다. 서버는 사용자(100)와 직접 또는 밀접하게 연결되어 있는 경우 엣지 서버로 지정된다. 경우에 따라 클라우드(110)는 단일 조직으로 제한된다. 다른 실시 예에서, 클라우드(110)는 많은 조직에서 이용 가능하다. 일부 실시예에서, 클라우드(110)는 다수의 엣지 라우터 및 코어 라우터를 포함하는 멀티-레이어 통신 네트워크를 포함할 수 있다. 다른 실시 예에서, 클라우드(110)는 단일 물리적 위치에 있는 스위치의 로컬 컬렉션에 기초할 수 있다.
일부 예들에서, 신경망 설계 장치(115)는 서버의 하나 이상의 측면들을 포함할 수 있다. 서버는 하나 이상의 다양한 네트워크를 통해 연결된 사용자(100)에게 하나 이상의 기능을 제공할 수 있다. 일부 실시예에서, 서버는 서버의 모든 측면을 제어하는 마이크로프로세서가 포함된 단일 마이크로프로세서 보드를 포함한다. 일부 경우에, 서버는 HTTP(hypertext transfer protocol), SMTP(simple mail transfer protocol)를 통해 하나 이상의 네트워크에서 다른 장치 또는 사용자(100)와 데이터를 교환하기 위해 마이크로프로세서 및 프로토콜을 사용하지만, FTP(file transfer protocol), SNMP(simple network management protocol) 도 사용될 수 있다. 일부 실시예에서, 서버가 HTML(Hypertext Markup Language) 형식의 파일(예를 들어, 웹 페이지 표시용)을 보내고 받도록 구성된다. 다양한 실시예에서, 서버는 범용 컴퓨팅 장치, 개인용 컴퓨터, 랩톱 컴퓨터, 메인프레임 컴퓨터, 슈퍼컴퓨터, 또는 임의의 다른 적절한 처리 장치를 포함한다.
데이터베이스는 조직화된 데이터 컬렉션이다. 예를 들어 데이터베이스는 스키마(schema)라고 하는 지정된 형식으로 데이터를 저장한다. 데이터베이스는 단일 데이터베이스, 분산 데이터베이스, 다중 분산 데이터베이스 또는 비상 백업 데이터베이스로 구성될 수 있다. 일부 실시예에서, 데이터베이스 컨트롤러는 데이터베이스의 데이터 저장 및 처리를 관리할 수 있다. 일부 실시예에서, 사용자(100)는 데이터베이스 컨트롤러와 상호작용한다. 다른 실시예에서, 데이터베이스 컨트롤러가 사용자(100)의 상호 작용 없이 자동으로 작동할 수 있다.
일부 예들에서, 도 1은 ANN 설계 시스템의 하나 이상의 측면들을 예시할 수 있다. ANN은 인간 두뇌의 뉴런에 대략 해당하는 다수의 연결된 노드(즉, 인공 뉴런)를 포함하는 하드웨어 또는 소프트웨어 구성요소이다. 각 연결 또는 엣지는 한 노드에서 다른 노드로 신호를 전송한다(뇌의 물리적 시냅스처럼). 노드는 신호를 수신하면, 신호를 처리한 다음 처리된 신호를 연결된 다른 노드로 전송한다. 일부 실시예에서, 노드 사이의 신호는 실수를 포함하고 각 노드의 출력은 입력 합계의 함수로 계산된다. 각 노드와 엣지는 신호가 처리되고 전송되는 방법을 결정하는 하나 이상의 노드 가중치와 관련된다. 트레이닝 과정에서 이러한 가중치는 결과의 정확도를 향상시키기 위해 조정된다(즉, 현재 결과와 타겟 결과 간의 차이에 어떤 식으로든 대응하는 손실 함수를 최소화함으로써). 엣지의 가중치는 노드 간에 전송되는 신호의 강도를 높이거나 낮춘다. 일부 실시예에서, 노드는 신호가 전혀 전송되지 않는 임계값을 가질 수 있다. 일부 예에서 노드는 레이어로 집성된다. 다른 레이어는 입력에 대해 다른 변환을 수행한다. 초기 레이어는 입력 레이어라고 알려져 있고 마지막 레이어는 출력 레이어로 알려져 있다. 일부 실시예에서, 신호가 특정 레이어를 여러 번 통과한다.
일부 실시 예들에서, 도 1은 CNN(convolutional neural network) 설계 시스템의 하나 이상의 측면들을 예시할 수 있다. CNN은 컴퓨터 비전 또는 이미지 분류 시스템에서 일반적으로 사용되는 신경망 클래스이다. 일부 실시예에서, CNN은 최소한의 사전 처리로 디지털 이미지를 처리할 수 있다. CNN은 컨볼루션(또는 상호 상관) 은닉 레이어를 사용하는 것에 의해 특징지어질 수 있다. 이 레이어는 결과를 다음 레이어에 보내기 전에 입력에 컨볼루션 연산을 적용한다. 각 컨볼루션 노드는 제한된 입력 필드(즉, 수용 필드)에 대한 데이터를 처리할 수 있다. CNN의 포워드 패스 동안 각 레이어의 필터는 입력 볼륨에 걸쳐 컨볼루션되어 필터와 입력 간의 내적을 계산할 수 있다. 트레이닝 과정에서 필터는 입력 내에서 특정 기능을 감지할 때 활성화되도록 수정될 수 있다.
일부 실시 예들에서, 도 1은 MLP(multilayer perceptron) 신경망 설계 시스템의 하나 이상의 측면들을 나타낼 수 있다. MLP는 일반적으로 여러 층의 퍼셉트론으로 구성된 피드 포워드 신경망이다. 각 컴포넌트 퍼셉트론 레이어는 입력 레이어, 하나 이상의 은닉 레이어 및 출력 레이어를 포함할 수 있다. 각 노드는 비선형 활성화 함수를 포함할 수 있다. MLP는 역전파(즉, 매개변수에 대한 손실 함수의 기울기 계산)를 사용하여 트레이닝될 수 있다.
도 2는 본 개시의 실시예들에 따른 신경망을 설계하기 위한 프로세스의 예를 나타낸다. 일부 실시 예들에서, 이러한 동작들은 장치의 기능적 요소들을 제어하기 위해 코드들의 세트를 실행하는 프로세서를 포함하는 시스템에 의해 수행된다. 추가적으로 또는 대안적으로, 특정 프로세스는 특수 목적 하드웨어를 사용하여 수행된다. 일반적으로, 이러한 동작은 본 개시내용의 측면에 따라 설명된 방법 및 프로세스에 따라 수행된다. 일부 실시예에서, 본 명세서에 설명된 작업이 다양한 하위 단계로 구성되거나 다른 작업과 함께 수행된다.
신경망의 개발에는 설계 단계와 트레이닝, 압축 및 컴파일 단계가 포함된다. 본 개시는 신경망의 레이어의 수를 감소시킴으로써 신경망을 감소시키는 시스템 및 방법을 설명한다. 본 개시의 하나 이상의 실시예는 트레이닝된 신경망(예를 들어, 사용자 및 사용자 장치가 NAS를 통해 개발한 신경망)을 수신하는 단계 및 식별 함수로 대체될 수 있는 비선형 활성화 유닛을 학습하는 단계를 포함한다. 다음으로, 선형 블록은 비선형 유닛(예를 들어, 비선형 활성화 함수)가 항등 함수로 대체된 위치에서 단일 블록을 형성하도록 폴드될 수 있다.
예를 들어, 동작 200에서, 시스템은 트레이닝된 신경망을 제공한다. 일부 예에서 신경망 설계는 알고리즘(예를 들어, NAS)을 사용하여 수동으로 또는 자동으로 수행된다. 일부 실시예에서, 이 단계의 동작은 도 1를 참조하여 설명된 바와 같이 사용자 장치를 참조하거나 사용자 장치에 의해 수행될 수 있다. 일부 실시예에서, 이 단계의 동작은 도 1을 참조하여 설명된 바와 같이 사용자 및/또는 사용자 장치를 참조하거나 이에 의해 수행될 수 있다.
동작 205에서 시스템은 레이어를 압축하고 신경망을 감소시킨다. 압축 단계는 다양한 알고리즘(예를 들어, 프루닝, 양자화, 지식 증류 등)의 조합이다. 이러한 기술 중 임의의 기술은 독립형 기술로 사용되거나 신경망을 줄이기 위해 서로 조합하여 사용될 수 있다. 예를 들어, 일부 구현에서, 본 발명의 하나 이상의 실시예는 압축 단계에서 기술 또는 알고리즘을 보완하거나 대체한다. 일부 실시예에서, 이 단계의 동작은 도 1을 참조하여 설명된 바와 같이 신경망 설계 장치를 참조하거나 이에 의해 수행될 수 있다. 또한, 동작 205 의 하나 이상의 측면이 예를 들어, 도 4 및 6을 참조하여 본 명세서에서 추가로 설명되고 예시된다.
동작 210에서 시스템은 감소 신경망을 적용한다. 일부 실시예에서, 이 단계의 동작은 도 1를 참조하여 설명된 바와 같이 엣지 장치를 참조하거나 엣지 장치에 의해 수행될 수 있다. 예를 들어, 일부 엣지 장치는 감소된 신경망의 구현으로부터 이익을 얻을 수 있다(예를 들어, 감소된 전력 소비, 감소된 계산 지연 등을 통해 감소된 신경망을 구현할 때 엣지 장치 성능을 향상시키기 위해).
시스템 아키텍처
도 3은 본 개시의 실시예들에 따른 신경망 설계 장치의 예를 나타낸다. 도시된 예는 프로세서 유닛(300), 메모리 유닛(305), 매개변수화 컴포넌트(310), 트레이닝 컴포넌트(315), 감소 컴포넌트(320), 및 사용자 인터페이스(325)를 포함한다.
프로세서 유닛(300)은 지능형 하드웨어 장치(예를 들어, 범용 처리 컴포넌트, DSP(Digital Signal Processor), CPU, GPU, 마이크로컨트롤러, ASIC(Application Specific Integrated Circuit), FPGA(field programmable gate array), 프로그램 가능 논리 장치, 이산 게이트 또는 트랜지스터 논리 컴포넌트, 이산 하드웨어 컴포넌트, 또는 이들의 임의의 조합)일 수 있다. 일부 실시예에서, 프로세서 유닛(300)은 메모리 컨트롤러를 사용하여 메모리 어레이를 동작시키도록 구성된다. 다른 실시예에서, 메모리 컨트롤러는 프로세서 유닛(300)에 통합된다. 일부 실시예에서, 프로세서 유닛(300)은 다양한 기능을 수행하기 위해 메모리에 저장된 컴퓨터 판독가능 명령어를 실행하도록 구성된다. 일부 실시예에서, 프로세서 유닛(300)은 모뎀 처리, 기저대역 처리, 디지털 신호 처리, 또는 송신 처리를 위한 특수 목적 컴포넌트를 포함한다.
메모리 유닛(305)(예를 들어, 또는 메모리 장치)의 예는 RAM(random access memory), ROM(read-only memory), 또는 하드 디스크를 포함한다. 메모리 유닛(305)의 예는 솔리드 스테이트 메모리 및 하드 디스크 드라이브를 포함한다. 일부 실시예에서, 메모리 유닛(305)은 프로세서가 행될 때 본 개시에 설명된 다양한 기능을 수행하게 하는 명령어를 포함하는 컴퓨터 판독가능, 컴퓨터 실행가능 소프트웨어를 저장하는 데 사용된다. 일부 실시예에서, 메모리 유닛(305)은 무엇보다도 주변 컴포넌트 또는 장치와의 상호작용과 같은 기본 하드웨어 또는 소프트웨어 동작을 제어하는 기본 입/출력 시스템(BIOS)을 포함한다. 일부 실시예에서, 메모리 컨트롤러는 메모리 셀을 작동시킨다. 예를 들어, 메모리 컨트롤러는 행 디코더, 열 디코더, 또는 둘 다를 포함할 수 있다. 일부 실시예에서, 메모리 유닛(305) 내의 메모리 셀은 논리 상태의 형태로 정보를 저장한다.
사용자 인터페이스(325)는 사용자가 장치와 상호작용하는 것을 가능하게 할 수 있다. 일부 실시예에서, 사용자 인터페이스(325)는 외부 스피커 시스템과 같은 오디오 장치, 디스플레이 화면과 같은 외부 디스플레이 장치, 또는 입력 장치(예를 들어, 사용자 인터페이스(325)와 직접 또는 입력/출력(IO) 컨트롤러 모듈을 통해 인터페이스되는 원격 제어 장치)를 포함할 수 있다. 일부 실시예에서, 사용자 인터페이스(325)는 GUI(graphical user interface)(325)일 수 있다.
일부 실시예에 따르면, 매개변수화 컴포넌트(310)는 아핀 함수 및 비선형 활성화 함수를 포함하는 신경망을 수신한다. 일부 실시예에서, 매개변수화 컴포넌트(310)는 비선형 활성화 함수를 선형성 매개변수를 포함하는 매개변수화된 활성화 함수로 대체한다. 일부 실시예에서, 매개변수화된 활성화 함수는 비선형 활성화 함수, 선형성 매개변수와 비선형 활성화 함수의 곱의 가법 역수, 및 선형성 매개변수와 타겟 아핀 함수의 곱을 포함한다. 일부 실시예에서, 매개변수화된 활성화 함수는 비선형 활성화 함수, 선형성 매개변수와 비선형 활성화 함수의 곱, 및 추가 매개변수와 타겟 아핀 함수의 곱을 포함한다. 일부 실시예에서, 매개변수화 컴포넌트(310)는 비선형 활성화 함수들의 세트를 동일한 선형성 매개변수를 갖는 매개변수화된 활성화 함수들의 세트로 대체한다. 일부 실시예에서, 비선형 활성화 함수는 하나 이상의 ReLU 블록을 포함하고, 매개변수화된 활성화 함수는 하나 이상의 매개변수 ReLU 블록을 포함한다.
일부 실시예에 따르면, 매개변수화 컴포넌트(310)는 비선형 활성화 함수를 선형성 매개변수를 포함하는 매개변수화된 활성화 함수로 대체함으로써 아핀 함수 및 비선형 활성화 함수를 포함하는 신경망을 수정하도록 구성된다.
일부 실시예에 따르면, 매개변수화 컴포넌트(310)는 아핀 함수 및 비선형 활성화 함수를 포함하는 신경망을 수신한다. 일부 실시예에서, 매개변수화 컴포넌트(310)는 비선형 활성화 함수를 선형성 매개변수를 포함하는 매개변수화된 활성화 함수로 대체한다. 일부 실시예에서, 매개변수화 컴포넌트(310)는 매개변수화된 활성화 함수의 선형성 매개변수에 대해 선택된 값에 기초하여 보조 손실 항을 계산하고, 여기서 보조 손실 항은 선형성 매개변수가 1의 값에 접근하도록 조장한다.
매개변수화 컴포넌트(310)는 도 4를 참조하여 설명된 대응하는 요소의 일 예이거나 그 측면을 포함한다.
일부 실시예에 따르면, 트레이닝 컴포넌트(315)는 보조 손실 항에 기초하여 근사 아핀 활성화 함수를 획득하기 위해 매개변수화된 활성화 함수의 선형성 매개변수를 반복적으로 조정한다. 일부 실시예에서, 선형성 매개변수를 반복적으로 조정하는 것은 선형성 매개변수에 대한 값을 선택하고, 선택된 값에 따라 보조 손실 항을 계산하고, 보조 손실 항에 따라 선형성 매개변수에 대한 값을 업데이트하는 것을 포함한다. 일부 실시예에서, 보조 손실 항은 선형성 매개변수가 매개변수화된 활성화 함수가 타겟 아핀 함수에 접근하게 하는 값에 접근하도록 조장한다.
일부 실시예들에 따르면, 트레이닝 컴포넌트(315)는 보조 손실 항에 기초하여 근사 아핀 활성화 함수를 획득하기 위해 매개변수화된 활성화 함수의 선형성 매개변수를 반복적으로 조정하도록 구성된다. 일부 실시예들에서, 트레이닝 컴포넌트(315)는 선형성 매개변수에 대한 값을 선택하고, 선택된 값에 기초하여 보조 손실 항을 계산하고, 보조 손실 항에 기초하여 선형성 매개변수에 대한 값을 업데이트하도록 추가로 구성된다.
일부 실시예에 따르면, 트레이닝 컴포넌트(315)는 근사 아핀 활성화 함수를 획득하기 위해 보조 손실 항에 기초하여 매개변수화된 활성화 함수의 선형성 매개변수에 대한 값을 반복적으로 업데이트한다.
트레이닝 컴포넌트(315)는 도 4를 참조하여 설명된 대응하는 요소의 일 예이거나 그 측면을 포함한다.
일부 실시예에 따르면, 감소 컴포넌트(320)는 근사 아핀 활성화 함수를 신경망의 아핀 함수와 결합하여 감소된 신경망을 획득한다. 일부 예에서, 근사 아핀 활성화 함수를 신경망의 아핀 함수와 결합하는 것은 근사 아핀 활성화 함수 이전에 제1 아핀 함수 및 근사 아핀 활성화 함수 이후에 제2 아핀 함수와 근사 아핀 활성화 함수를 결합하는 것을 포함한다. 일부 실시예에서 근사 아핀 활성화 함수와 신경망의 아핀 함수를 결합하는 것은 신경망의 스킵 연결을 제거하는 것을 포함한다. 일부 실시예들에서, 감소 컴포넌트(320)는 비선형 활성화 함수들의 세트를 아핀 함수들의 세트와 결합하여 감소된 신경망을 획득한다. 일부 실시예에서, 비선형 활성화 함수 세트는 동일한 스킵 연결에 의해 우회된다. 일부 실시예에서, 비선형 활성화 함수 세트는 컨볼루션 신경망의 커널 경계를 포함한다. 일부 실시예들에서, 감소 컴포넌트(320)는 보조 손실 항을 포함하지 않는 손실 함수에 기초하여 감소된 신경망을 정제한다. 일부 실시예들에서, 신경망은 CNN을 포함하고, 감소된 신경망은 감소된 수의 레이어를 갖는 CNN을 포함한다. 일부 실시예들에서, 감소된 신경망은 감소된 수의 레이어를 갖는 CNN을 포함한다.
일부 실시예에 따르면, 감소 컴포넌트(320)는 감소된 신경망을 획득하기 위해 근사 아핀 활성화 함수를 신경망의 아핀 함수와 결합하도록 구성된다. 일부 실시예에서, 감소 컴포넌트(320)는 근사 아핀 활성화 함수 이전의 제1 아핀 함수 및 근사 아핀 활성화 함수 이후의 제2 아핀 함수와 근사 아핀 활성화 함수를 결합하도록 추가로 구성된다. 일부 실시예에서, 감소 컴포넌트(320)는 비선형 활성화 함수 세트를 동일한 선형성 매개변수를 갖는 매개변수화된 활성화 함수 세트로 대체하고 비선형 활성화 함수 세트를 결합하여 감소된 신경망을 얻도록 더 구성된다.
일부 실시예에 따르면, 감소 컴포넌트(320)는 근사 아핀 활성화 함수를 신경망의 아핀 함수와 결합하여 감소된 신경망을 획득한다. 일부 실시예들에서, 감소 컴포넌트(320)는 보조 손실 항을 포함하지 않는 손실 함수에 기초하여 감소된 신경망을 정제한다.
감소 컴포넌트(320)는 도 4를 참조하여 설명된 대응하는 요소의 일 예이거나 그 측면을 포함한다.
도 4는 본 개시의 실시예들에 따른 신경망을 설계하기 위한 프로세스의 예를 나타낸다. 도시된 예는 매개변수화 컴포넌트(400), 트레이닝 컴포넌트(405), 및 감소 컴포넌트(410)를 포함한다. 매개변수화 컴포넌트(400)는 도 3을 참조하여 설명된 대응하는 요소의 일 예이거나 그 측면을 포함한다. 트레이닝 컴포넌트(405)는 도 3을 참조하여 설명된 대응하는 요소의 일 예이거나 그 측면을 포함한다. 감소 컴포넌트(410)는 도 3을 참조하여 설명된 대응하는 요소의 일 예이거나 그 측면을 포함한다.
본 개시는 신경망 체인에서 레이어의 수를 줄이기 위한 레이어 폴딩의 사용을 설명한다. 본 개시의 하나 이상의 실시예는 적절한(예를 들어, 비선형 또는 비아핀) 활성화 함수를 제거함으로써 단일 블록으로 인접한 선형 레이어의 조합을 포함한다. 활성화 함수를 그룹으로 결합하고 동일한 매개변수를 공유하여 여러 레이어를 결합할 수 있다. 또한 학습 가능한 활성화 매개변수는 커널 마스크 매개변수와 공유되어 최종 폴드된 레이어의 크기를 줄인다.
레이어 폴딩을 통한 신경망 축소 장치가 설명된다. 장치의 하나 이상의 실시예는 매개변수화 컴포넌트(400), 트레이닝 컴포넌트(405), 및 감소 컴포넌트(410)(예를 들어, 신경망 감소 컴포넌트)를 포함한다. 일부 실시예에서, 매개변수화 컴포넌트(400)는 비선형 활성화 함수를 선형성 매개변수를 포함하는 매개변수화된 활성화 함수로 대체함으로써 아핀 함수 및 비선형 활성화 함수를 포함하는 신경망을 수정하도록 구성될 수 있다. 일부 실시예에서, 트레이닝 컴포넌트(405)는 보조 손실 항에 기초하여 근사 아핀 활성화 함수를 획득하기 위해 매개변수화된 활성화 함수의 선형성 매개변수를 반복적으로 조정하도록 구성된다. 일부 실시예에서, 감소 컴포넌트(410)는 근사 아핀 활성화 함수를 신경망의 아핀 함수와 결합하여 감소된 신경망을 획득하도록 구성된다.
레이어 폴딩을 통한 신경망 감소 시스템 또한 설명된다. 시스템은 비선형 활성화 함수를 선형성 매개변수를 포함하는 매개변수화된 활성화 함수로 대체함으로써 아핀 함수 및 비선형 활성화 함수를 포함하는 신경망을 수정하도록 구성된 매개변수화 컴포넌트, 보조 손실 항에 기초하여 근사 아핀 활성화 함수를 얻기 위해 매개변수화된 활성화 함수의 선형성 매개변수를 반복적으로 조정하도록 구성된 트레이닝 컴포넌트 및 감소된 신경망을 획득하기 위해 근사 아핀 활성화 함수와 신경망의 아핀 함수를 결합하도록 구성된 감소 컴포넌트로 구성될 수 있다.
레이어 폴딩을 통한 신경망 감소 장치의 사용 방법도 설명된다. 방법은 비선형 활성화 함수를 선형성 매개변수를 포함하는 매개변수화된 활성화 함수로 대체함으로써 아핀 함수 및 비선형 활성화 함수를 포함하는 신경망을 수정하도록 구성된 매개변수화 컴포넌트를 사용하는 단계, 보조 손실 항에 기초하여 근사 아핀 활성화 함수를 얻기 위해 매개변수화된 활성화 함수의 선형성 매개변수를 반복적으로 조정하도록 구성된 트레이닝 컴포넌트를 사용하는 단계 및 감소된 신경망을 획득하기 위해 근사 아핀 활성화 함수와 신경망의 아핀 함수를 결합하도록 구성된 감소 컴포넌트를 사용하는 단계로 구성될 수 있다.
일부 실시예에서, 트레이닝 컴포넌트는 선형성 매개변수에 대한 값을 선택하고, 선택된 값에 기초하여 보조 손실 항을 계산하고, 보조 손실 항에 기초하여 선형성 매개변수에 대한 값을 업데이트하도록 더 구성된다. 일부 실시예들에서, 감소 컴포넌트는 근사 아핀 활성화 함수 이전의 제1 아핀 함수 및 근사 아핀 활성화 함수 이후의 제2 아핀 함수와 근사 아핀 활성화 함수를 결합하도록 더 구성된다. 일부 실시예에서, 감소 컴포넌트는 복수의 비선형 활성화 함수를 동일한 선형성 매개변수를 갖는 복수의 매개변수화된 활성화 함수로 대체하고 복수의 비선형 활성화 함수를 결합하여 감소된 신경망을 얻도록 더 구성된다.
신경망 감소 프로세스
도 5는 본 개시의 실시예들에 따른 레이어 폴딩을 통한 신경망 감소를 위한 프로세스의 예를 나타낸다. 일부 실시 예들에서, 이러한 동작들은 장치의 기능적 요소들을 제어하기 위해 코드들의 세트를 실행하는 프로세서를 포함하는 시스템에 의해 수행된다. 추가적으로 또는 대안적으로, 특정 프로세스는 특수 목적 하드웨어를 사용하여 수행된다. 일반적으로, 이러한 동작은 본 개시내용의 측면에 따라 설명된 방법 및 프로세스에 따라 수행된다. 일부 실시예에서, 본 명세서에 설명된 작업이 다양한 하위 단계로 구성되거나 다른 작업과 함께 수행된다.
레이어 폴딩을 통한 신경망 축소 방법이 설명된다. 방법의 하나 이상의 실시예는 아핀 함수 및 비선형 활성화 함수를 포함하는 신경망을 식별하는 단계, 비선형 활성화 함수를 선형 매개변수를 포함하는 매개변수화된 활성화 함수로 대체하는 단계, 및 보조 손실 항에 기초하여 근사 아핀 활성화 함수를 획득하기 위해 매개변수화된 활성화 함수의 선형성 매개변수를 반복적으로 조정하는 단계를 포함한다. 설명된 방법의 하나 이상의 실시예는 감소된 신경망을 획득하기 위해 근사 아핀 활성화 함수를 신경망의 아핀 함수와 결합하는 단계를 더 포함한다.
동작 500에서, 시스템은 아핀 함수 및 비선형 활성화 함수를 포함하는 신경망을 수신한다. 일부 실시예에서, 이 단계의 동작은 도 3 및 4를 참조하여 설명된 바와 같이 매개변수화 컴포넌트를 참조하거나 이에 의해 수행될 수 있다.
동작 505에서, 시스템은 비선형 활성화 함수를 선형성 매개변수를 포함하는 매개변수화된 활성화 함수로 대체한다. 일부 실시예에서, 이 단계의 동작은 도 3 및 4를 참조하여 설명된 바와 같이 매개변수화 컴포넌트를 참조하거나 이에 의해 수행될 수 있다.
동작 510에서, 시스템은 보조 손실 항에 기초하여 근사 아핀 활성화 함수를 획득하기 위해 매개변수화된 활성화 함수의 선형성 매개변수를 반복적으로 조정한다. 일부 실시예에서, 이 단계의 동작은 도 1 내지 도 4를 참조하여 설명된 트레이닝 컴포넌트를 참조하거나 이에 의해 수행될 수 있다.
동작 515에서, 시스템은 감소된 신경망을 얻기 위해 근사 아핀 활성화 함수를 신경망의 아핀 함수와 결합한다. 일부 실시예에서, 이 단계의 동작은 도 3 내지 도 4를 참조하여 설명된 감소 컴포넌트를 참조하거나 이에 의해 수행될 수 있다.
레이어 폴딩을 통한 신경망 축소 장치가 설명된다. 장치는 프로세서, 프로세서와 전자 통신하는 메모리, 및 메모리에 저장된 명령을 포함한다. 명령어는 프로세서가 아핀 함수 및 비선형 활성화 함수를 포함하는 신경망을 식별하는 단계, 비선형 활성화 함수를 선형 매개변수를 포함하는 매개변수화된 활성화 함수로 대체하는 단계, 보조 손실 항에 기초하여 근사 아핀 활성화 함수를 얻기 위해 매개변수화된 활성화 함수의 선형성 매개변수를 반복적으로 조정하는 단계 및 감소된 신경망을 획득하기 위해 근사 아핀 활성화 함수를 신경망의 아핀 함수와 결합하는 단계를 수행하도록 작동 가능하다.
레이어 폴딩을 통한 신경망 감소를 위한 코드를 저장하는 비일시적 컴퓨터 판독 가능 매체가 설명된다. 일부 실시예에서, 코드는 다음 단계들을 수행하기 위해 프로세서에 의해 실행 가능한 명령을 포함한다: 아핀 함수 및 비선형 활성화 함수를 포함하는 신경망을 식별하는 단계, 비선형 활성화 함수를 선형 매개변수를 포함하는 매개변수화된 활성화 함수로 대체하는 단계, 보조 손실 항에 기초하여 근사 아핀 활성화 함수를 얻기 위해 매개변수화된 활성화 함수의 선형성 매개변수를 반복적으로 조정하는 단계 및 감소된 신경망을 획득하기 위해 근사 아핀 활성화 함수를 신경망의 아핀 함수와 결합하는 단계.
레이어 폴딩을 통한 신경망 감소 시스템도 설명된다. 시스템의 하나 이상의 실시예는 아핀 함수 및 비선형 활성화 함수를 포함하는 신경망을 식별하는 단계, 비선형 활성화 함수를 선형 매개변수를 포함하는 매개변수화된 활성화 함수로 대체하는 단계, 보조 손실 항에 기초하여 근사 아핀 활성화 함수를 얻기 위해 매개변수화된 활성화 함수의 선형성 매개변수를 반복적으로 조정하는 단계 및 감소된 신경망을 획득하기 위해 근사 아핀 활성화 함수를 신경망의 아핀 함수와 결합하는 단계를 포함한다.
일부 실시예에서, 매개변수화된 활성화 함수는 비선형 활성화 함수, 선형성 매개변수와 비선형 활성화 함수의 곱의 가법 역수, 및 선형성 매개변수와 타겟 아핀 함수의 곱을 포함한다. 일부 실시예에서, 매개변수화된 활성화 함수는 비선형 활성화 함수, 선형성 매개변수와 비선형 활성화 함수의 곱, 및 추가 매개변수와 타겟 아핀 함수의 곱을 포함한다.
일부 실시예들에서, 선형성 매개변수를 반복적으로 조정하는 단계는 선형성 매개변수에 대한 값을 선택하고, 선택된 값에 기초하여 보조 손실 항을 계산하고, 보조 손실 항에 기초하여 선형성 매개변수에 대한 값을 업데이트하는 단계를 포함한다. 일부 실시예에서, 보조 손실 항은 선형성 매개변수가 매개변수화된 활성화 함수가 타겟 아핀 함수에 접근하게 하는 값에 접근하도록 조장한다. 일부 예에서, 근사 아핀 활성화 함수를 신경망의 아핀 함수와 결합하는 단계는 근사 아핀 활성화 함수 이전에 제1 아핀 함수 및 근사 아핀 활성화 함수 이후에 제2 아핀 함수와 근사 아핀 활성화 함수를 결합하는 단계를 포함한다.
일부 실시예에서 근사 아핀 활성화 함수를 신경망의 아핀 함수와 결합하는 단계는 신경망의 스킵 연결을 제거하는 단계를 포함한다. 방법, 장치, 비일시적 컴퓨터 판독 가능 매체, 및 시스템의 일부 예는 복수의 비선형 활성화 함수를 동일한 선형성 매개변수를 갖는 복수의 매개변수화된 활성화 함수로 대체하는 단계를 더 포함한다. 일부 실시예는 감소된 신경망을 획득하기 위해 복수의 비선형 활성화 함수를 복수의 아핀 함수와 결합하는 단계를 더 포함한다. 일부 실시예들에서, 복수의 비선형 활성화 함수들은 동일한 스킵 연결에 의해 우회된다.
일부 실시예에서, 복수의 비선형 활성화 함수는 컨볼루션 신경망의 커널 경계를 포함한다. 방법, 장치, 비일시적 컴퓨터 판독가능 매체, 및 시스템의 일부 예는 보조 손실 항을 포함하지 않는 손실 함수에 기초하여 감소된 신경망을 정제하는 단계를 더 포함한다. 일부 실시예에서, 비선형 활성화 함수는 하나 이상의 ReLU 블록을 포함하고, 매개변수화된 활성화 함수는 하나 이상의 매개변수 ReLU 블록을 포함한다.
일부 실시예들에서, 신경망은 CNN을 포함하고 감소된 신경망은 감소된 수의 레이어를 갖는 CNN을 포함한다. 일부 실시예들에서, 감소된 신경망은 감소된 수의 레이어를 갖는 CNN을 포함한다.
도 6은 본 개시의 실시예들에 따른 레이어 폴딩을 통한 신경망 감소를 위한 프로세스의 예를 나타낸다. 본 개시는 신경망의 레이어들 사이의 특정 활성화 함수를 제거함으로써 신경망 아키텍처를 최적화하기 위한 시스템 및 방법을 설명한다. 즉, 프루닝 기술을 사용하여 레이어를 직접 제거하는 대신(또는 이에 더하여), 레이어 간의 활성화 함수는 신경망 아키텍처를 줄이기 위해 여기에 설명된 기술에 따라 효율적으로 폴드될 수 있다.
예를 들어, 신경망은 레이어라고 하는 일련의 동작으로 입력 데이터(또는 신호)를 처리할 수 있다. 신경망은 선형 및 비선형 레이어를 포함할 수 있다. 일부 실시예에서, 레이어는 아핀 또는 비아핀으로 지칭될 수 있으며, 여기서 선형 레이어는 아핀 레이어의 서브세트일 수 있고 비선형 레이어는 비아핀 레이어의 서브세트일 수 있다. 예를 들어, 아핀 함수는 변환이 있는 선형 함수를 포함하거나 참조할 수 있다(예를 들어, 선형 함수는 원점을 수정할 수 있고, 변환은 함수를 다른 위치에 매핑할 수 있다). 즉, 아핀 함수가 원점을 고정하면 아핀 함수는 선형 함수일 수 있다. 또한, 신경망의 일부 레이어는 선형 함수(또는 아핀 함수)와 비선형 활성화 함수를 포함할 수 있다.
도 6의 예에서, 본 명세서에 기재된 기술에 따르면, 비선형 활성화 함수(예를 들어, 비아핀 활성화 함수)는 매개변수화된 활성화 함수(예를 들어, 선형성 매개변수를 포함하는 매개변수화된 활성화 함수)로 대체될 수 있다. 매개변수화된 활성화 함수의 선형성 매개변수는 (예를 들어, 도 7a 및 도 7b를 참조하여 본 명세서에서 더 상세하게 설명되는 바와 같이, 보조 손실 항에 기초하여) 근사 아핀 활성화 함수를 얻도록 트레이닝(예를 들어, 반복적으로 조정됨)될 수 있다. 근사 아핀 활성화 함수는 그 다음 감소된 신경망을 얻기 위해 신경망의 아핀 함수와 결합될 수 있다.
일부 실시예에서, 트레이닝된 신경망의 측면을 축소할지 여부에 대한 결정은 엣지 장치의 감소된 신경망 구현에 따라 달라질 수 있다. 예를 들어 엣지 장치 설계 제약(예를 들어, 전력 제약, 하드웨어 제약 등), 감소된 신경망에 대한 엣지 장치 사용 사례 등은 신경망 폴딩 단계에서, 예를 들어, 어떤 활성화 함수가 축소되거나 폴드되었는지 결정할 때 고려될 수 있다.
예를 들어, 도 6은 본 개시의 실시예들에 따른 레이어 폴딩을 통한 신경망 감소를 위한 프로세스의 예를 나타낸다. 일부 실시 예들에서, 이러한 동작들은 장치의 기능적 요소들을 제어하기 위해 코드들의 세트를 실행하는 프로세서를 포함하는 시스템에 의해 수행된다. 추가적으로 또는 대안적으로, 특정 프로세스는 특수 목적 하드웨어를 사용하여 수행된다. 일반적으로, 이러한 동작은 본 개시내용의 측면에 따라 설명된 방법 및 프로세스에 따라 수행된다. 일부 실시예에서, 본 명세서에 설명된 작업이 다양한 하위 단계로 구성되거나 다른 작업과 함께 수행된다.
일부 실시예들에서, 신경망(예를 들어, 트레이닝된 신경망)은 (예를 들어, 주어진 신경망 구현에 대한 NAS에 기초하여) 아핀 함수 및 비선형 활성화 함수의 조합을 포함할 수 있다. 600에서, 적어도 하나의 비선형 활성화 함수는 선형성 매개변수를 포함하는 매개변수화된 활성화 함수로 대체된다. 605에서, 근사 아핀 활성화 함수를 얻기 위해 매개변수화된 활성화 함수의 선형성 매개변수가 조정될 수 있다(예를 들어, 트레이닝되고, 반복적으로 조정되는 등) 본 명세서에 설명된 하나 이상의 실시예에서, 매개변수화된 활성화 함수의 선형성 매개변수는 보조 손실 항에 기초하여 근사 아핀 활성화 함수를 획득하도록 조정될 수 있다. 610에서, 획득된 근사 아핀 활성화 함수는 감소된 신경망을 획득하기 위해 신경망의 아핀 함수와 결합된다.
본 명세서에 기술된 바와 같이, 유사한 프로세스는 본 개시내용의 범위를 벗어나지 않고 유추에 의해, 예를 들어, 선형 함수 및 비선형 활성화 함수, 선형 함수 및 비아핀 활성화 함수, 아핀 함수 및 비아핀 활성화 함수 등을 포함하는 신경망에 적용될 수 있다.
도 7a 및 7b는 본 개시의 실시예들에 따른 예시적인 활성화 함수 다이어그램들을 나타낸다. 도시된 예에는 ReLU 함수(700) 및 매개변수 ReLU 함수(705)를 포함한다. 도 7a 및 도 7b에 기술된 하나 이상의 측면에 따르면, 도 9의 흐름도는 본 개시에에 기술된 층 폴딩 기술의 추가 세부사항을 예시할 수 있다. 도 7a 및 도 7b는 1을 향해 α를 트레이닝함으로써 항등 함수에 조장되는 활성화 함수 A를 예시할 수 있다(예를 들어, 여기서 α가 1을 향하면 새로운 활성화 함수(New_Activation)가 항등 함수(예를 들어, 또는 근사 아핀 활성화 함수)를 향하게 된다)).
본 개시내용의 하나 이상의 실시예는 트레이닝에 의해 활성화 함수를 제거한다. 기존 활성화 함수는 다음 형식으로 변환될 수 있다.
Figure pat00001
여기서 A는원래 활성화 함수이고 Identity - out =in이고 α는 트레이닝 가능한 매개변수이다(0으로 초기화됨). 다음으로, 네트워크는 α(~1) 및 보조 손실을 사용하여 트레이닝되어 활성화 함수가 항등 함수로 변환된다. 또한 항등 활성화 함수가 제거되고 주변 선형 레이어가 폴드될 수 있다. 네트워크 성능을 높이기 위해 축소 후에도 트레이닝이 계속된다. 예를 들어, ReLU가 활성화로 사용되는 경우 ReLU 블록(예를 들어, ReLU 함수(700))은 매개변수의 ReLU(예를 들어, 매개변수의 ReLU 함수(705))로 변환된다. ReLU 함수(700) 및 매개변수의 ReLU 함수(705)는 수학적으로 다음과 같이 정의할 수 있다.
Figure pat00002
Figure pat00003
이 예에서는 (1-α2)의 보조 손실이 사용된다.
신경망에서 활성화 함수는 노드의 합산된 가중 입력을 노드의 활성화 또는 출력으로 변환하는 데 사용될 수 있다. ReLU 레이어는 정류된 선형 활성화 함수를 구현할 수 있으며, 이는 양수이면 입력을 직접 출력하고 그렇지 않으면 0을 출력하는 조각별 선형 함수를 포함한다. 수정된 선형 활성화 함수는 많은 유형의 신경망에 대한 기본 활성화 함수로 사용될 수 있다. 수정된 선형 활성화 함수를 사용하면 오류 역전파와 함께 확률적 경사 하강법을 사용하여 심층 신경망을 트레이닝할 수 있다. 수정된 선형 활성화 함수는 선형 함수와 유사하게 작동할 수 있지만 트레이닝할 데이터의 복잡한 관계를 가능하게 할 수 있다. 수정된 선형 활성화 함수는 포화를 피하기 위해 활성화 합 입력에 더 많은 감도를 제공할 수도 있다. 정류 선형 활성화 함수를 구현하는 노드 또는 장치는 정류 선형 활성화 장치 또는 줄여서 ReLU라고 언급될 수 있다. 은닉 레이어에 대해 정류기 기능을 사용하는 네트워크를 정류 네트워크라고 할 수 있다.
도 8은 본 개시의 실시예들에 따른 3x3 컨볼루션 다이어그램의 예를 나타낸다. 도 8에 설명된 하나 이상의 측면들에 따르면, 도 15의 예시적인 감소 신경망은 본 개시에 설명된 레이어 폴딩 기술의 추가 세부사항을 예시할 수 있다. 도 8은 α가 1에 접근함에 따라 항등 함수에 접근하는 3x3 컨볼루션 다이어그램의 예를 나타낸다.
폴딩은 3x3 크기의 커널에 적용할 수 있는 컨볼루션 신경망의 네트워크 감소를 위한 대체 최적화이다. 3x3 컨볼루션의 커널은 커널의 경계에 (1-α)를 곱하여 1x1 컨볼루션이 되도록 강제로 폴드되었고, 여기서 α는 활성화 매개변수의 α와 공유된다.
α가 1일 때 활성화 함수가 제거된다. 따라서 커널 경계에 (1-α)를 곱할 때 결과적인 1x1 컨볼루션은 커널 크기를 늘리지 않고 다음 컨볼루션으로 폴드될 수 있다.
도 9는 본 개시의 실시예들에 따른 신경망을 설계하기 위한 프로세스의 예를 나타낸다. 도 9의 예는 도 7a 및 7b를 참조하여 설명된 하나 이상의 측면들을 구현하기 위한 흐름도를 예시한다. 예를 들어, 활성화 함수 A는 선형성 매개변수를 포함하는 매개변수화된 활성화 함수로 대체될 수 있다. 선형성 매개변수는 그 다음 (예를 들어, (1-α에 기초하여) 근사 아핀 활성화 함수를 얻기 위해 트레이닝(예를 들어, 반복적으로 조정)될 수 있다. 이와 같이, α 값이 1에 가까운 활성화 함수(예를 들어, 비선형 활성화 함수)가 제거될 수 있고, 제거된 활성화 함수 위치(예를 덜어, 옆 또는 주변)의 선형 레이어가 결합될 수 있다(예를 들어, 폴드되어).
본 개시는 정확도의 감소 없이 트레이닝된 신경망의 레이어를 제거하는 방법을 설명한다. 기본 레이어 폴딩 및 전체 축소는 네트워크 성능을 높이고(즉, FLOP 수 감소) 다양한 하드웨어 아키텍처에서 전력 소비와 대기 시간을 줄인다. 본 개시의 하나 이상의 실시예는 독립형 솔루션으로서 또는 압축 및 네트워크 감소 기술(예를 들어, 프루닝 및 양자화)과 조합하여 사용될 수 있는 방법을 포함한다. 이 방법은 많은 첨단 신경망 아키텍처에 대한 솔루션을 제공하여 엣지 장치에서 전력 소비 및 실행 지연을 줄인다. 본 발명의 실시예는 신경망의 개발 주기를 줄이고 수동 네트워크 최적화를 줄이거나 제거할 수 있는 방법을 포함한다.
예를 들어, 도 9는 본 개시의 측면들에 따른 레이어 폴딩을 통한 신경망 감소를 위한 프로세스의 예를 도시한다. 일부 실시 예들에서, 이러한 동작들은 장치의 기능적 요소들을 제어하기 위해 코드들의 세트를 실행하는 프로세서를 포함하는 시스템에 의해 수행된다. 추가적으로 또는 대안적으로, 특정 프로세스는 특수 목적 하드웨어를 사용하여 수행된다. 일반적으로, 이러한 동작은 본 개시내용의 측면에 따라 설명된 방법 및 프로세스에 따라 수행된다. 일부 실시예에서, 본 명세서에 설명된 작업이 다양한 하위 단계로 구성되거나 다른 작업과 함께 수행된다.
일부 예들에서, 신경망(예를 들어, 트레이닝된 신경망)은 (예를 들어, 주어진 신경망 구현을 위한 NAS에 기초하여) 아핀 함수, 선형 함수, 비아핀 활성화 함수, 비선형 활성화 함수 등의 조합을 포함할 수 있다. 900에서, 적어도 하나의 활성화 함수 A(예를 들어, 적어도 하나의 비아핀 또는 비선형 활성화 함수)가 선형성 매개변수(예를 들어,
Figure pat00004
)를 포함하는 매개변수화된 활성화 함수로 대체된다.
905에서, 매개변수화된 활성화 함수의 선형성 매개변수는 근사 아핀 활성화 함수(예를 들어, 근사 항등 함수)를 획득하도록 트레이닝(예를 들어, α를 밀어 0에 가까워지거나 α를 밀어 1에 가까워짐)될 수 있다.
910에서, 1에 가까운 α 값을 갖는 활성화(예를 들어, New_Activation)는 (예를 들어, 식 (1)에서 New_Activation은 근사 항등 함수인 경우) 제거될(또는 폴드될) 수 있다. 915에서, 활성화 함수가 제거된 장소(예를 들어, 레이어의 선형 함수)의 선형 레이어가 결합(예를 들어, 폴드)될 수 있다. 920에서, 일부 실시예에서, 감소된 신경망은 감소된 신경망을 업데이트하도록(예를 들어, 추가로 감소 또는 축소하기 위해) 추가로 트레이닝될 수 있다.
도 10은 본 개시의 실시예들에 따른 레이어 폴딩을 통한 신경망 감소를 위한 프로세스의 예를 나타낸다. 일부 실시 예들에서, 이러한 동작들은 장치의 기능적 요소들을 제어하기 위해 코드들의 세트를 실행하는 프로세서를 포함하는 시스템에 의해 수행된다. 추가적으로 또는 대안적으로, 특정 프로세스는 특수 목적 하드웨어를 사용하여 수행된다. 일반적으로, 이러한 동작은 본 개시내용의 측면에 따라 설명된 방법 및 프로세스에 따라 수행된다. 일부 실시예에서, 본 명세서에 설명된 작업이 다양한 하위 단계로 구성되거나 다른 작업과 함께 수행된다.
레이어 폴딩을 통한 신경망 축소 방법이 설명된다. 방법의 하나 이상의 실시예는 아핀 함수 및 비선형 활성화 함수를 포함하는 신경망을 식별하는 단계 및 비선형 활성화 함수를 선형성 매개변수를 포함하는 매개변수화된 활성화 함수로 대체하는 단계를 포함한다. 설명된 방법의 하나 이상의 실시예는 매개변수화된 활성화 함수의 선형성 매개변수에 대해 선택된 값에 기초하여 보조 손실 항을 계산하는 단계, 여기서 보조 손실 항은 선형성 매개변수가 1의 값에 접근하도록 조장함, 및 보조 손실 항에 기초하여 매개변수화된 활성화 함수의 선형성 매개변수에 대한 값을 반복적으로 업데이트하여 근사 아핀 활성화 함수를 획득하는 단계를 포함한다. 설명된 방법의 하나 이상의 실시예는 감소된 신경망을 획득하기 위해 근사 아핀 활성화 함수를 신경망의 아핀 함수와 결합하는 단계를 더 포함한다.
동작 1000에서, 시스템은 아핀 함수 및 비선형 활성화 함수를 포함하는 신경망을 수신한다. 일부 실시예에서, 이 단계의 동작은 도 3 및 4를 참조하여 설명된 바와 같이 매개변수화 컴포넌트를 참조하거나 이에 의해 수행될 수 있다.
동작 1005에서, 시스템은 비선형 활성화 함수를 선형성 매개변수를 포함하는 매개변수화된 활성화 함수로 대체한다. 일부 실시예에서, 이 단계의 동작은 도 3 및 4를 참조하여 설명된 바와 같이 매개변수화 컴포넌트를 참조하거나 이에 의해 수행될 수 있다.
동작(1010)에서, 시스템은 매개변수화된 활성화 함수의 선형성 매개변수에 대해 선택된 값에 기초하여 보조 손실 항을 계산하고, 여기서 보조 손실 항은 선형성 매개변수가 1의 값에 접근하도록 조장한다. 일부 실시예에서, 이 단계의 동작은 도 3 및 4를 참조하여 설명된 바와 같이 매개변수화 컴포넌트를 참조하거나 이에 의해 수행될 수 있다.
동작 1015에서, 시스템은 근사 아핀 활성화 함수를 얻기 위해 보조 손실 항에 기초하여 매개변수화된 활성화 함수의 선형성 매개변수에 대한 값을 반복적으로 업데이트한다. 일부 실시예에서, 이 단계의 동작은 도 1 내지 도 4를 참조하여 설명된 트레이닝 컴포넌트를 참조하거나 이에 의해 수행될 수 있다.
동작 1020에서, 시스템은 감소된 신경망을 얻기 위해 근사 아핀 활성화 함수를 신경망의 아핀 함수와 결합한다. 일부 실시예에서, 이 단계의 동작은 도 3 내지 도 4를 참조하여 설명된 감소 컴포넌트를 참조하거나 이에 의해 수행될 수 있다.
레이어 폴딩을 통한 신경망 축소 장치가 설명된다. 장치는 프로세서, 프로세서와 전자 통신하는 메모리, 및 메모리에 저장된 명령을 포함한다. 명령은 프로세서가 다음 단계를 수행하도록 작동 가능하다: 아핀 함수 및 비선형 활성화 함수를 포함하는 신경망을 식별하는 단계, 비선형 활성화 함수를 선형성 매개변수를 포함하는 매개변수화된 활성화 함수로 대체하는 단계, 매개변수화된 활성화 함수의 선형성 매개변수에 대해 선택된 값에 기초하여 보조 손실 항을 계산하는 단계, 여기서 보조 손실 항은 선형성 매개변수가 1의 값에 접근하도록 조장함, 근사 아핀 활성화 함수를 획득하기 위해 보조 손실 항에 기초하여 매개변수화된 활성화 함수의 선형성 매개변수에 대한 값을 반복적으로 업데이트하는 단계, 및 감소된 신경망을 획득하기 위해 근사 아핀 활성화 함수를 신경망의 아핀 함수와 결합하는 단계.
레이어 폴딩을 통한 신경망 감소를 위한 코드를 저장하는 비일시적 컴퓨터 판독 가능 매체가 설명된다. 일부 예에서, 코드는 다음 단계를 수행하기 위해 프로세서에 의해 실행 가능한 명령어를 포함한다: 아핀 함수 및 비선형 활성화 함수를 포함하는 신경망을 식별하는 단계, 비선형 활성화 함수를 선형성 매개변수를 포함하는 매개변수화된 활성화 함수로 대체하는 단계, 매개변수화된 활성화 함수의 선형성 매개변수에 대해 선택된 값에 기초하여 보조 손실 항을 계산하는 단계, 여기서 보조 손실 항은 선형성 매개변수가 1의 값에 접근하도록 조장함, 근사 아핀 활성화 함수를 획득하기 위해 보조 손실 항에 기초하여 매개변수화된 활성화 함수의 선형성 매개변수에 대한 값을 반복적으로 업데이트하는 단계 및 감소된 신경망을 얻기 위해 근사 아핀 활성화 함수를 신경망의 아핀 함수와 결합하는 단계.
레이어 폴딩을 통한 신경망 감소 시스템도 설명된다. 시스템의 하나 이상의 실시예는 다음의 단계들을 포함한다: 아핀 함수 및 비선형 활성화 함수를 포함하는 신경망을 식별하는 단계, 비선형 활성화 함수를 선형 매개변수를 포함하는 매개변수화된 활성화 함수로 대체하는 단계, 매개변수화된 활성화 함수의 선형성 매개변수에 대해 선택된 값에 기초하여 보조 손실 항을 계산하는 단계, 여기서 보조 손실 항은 선형성 매개변수가 1의 값에 접근하도록 조장함, 근사 아핀 활성화 함수를 획득하기 위해 보조 손실 항에 기초하여 매개변수화된 활성화 함수의 선형성 매개변수에 대한 값을 반복적으로 업데이트하는 단계, 및 감소된 신경망을 획득하기 위해 근사 아핀 활성화 함수를 신경망의 아핀 함수와 결합하는 단계.
방법, 장치, 비일시적 컴퓨터 판독가능 매체, 및 시스템의 일부 예는 보조 손실 항을 포함하지 않는 손실 함수에 기초하여 감소된 신경망을 정제하는 단계를 더 포함한다.
감소된 신경망
도 11은 본 개시의 실시예들에 따른 신경망 레이어 폴딩 프로세스의 예를 나타낸다. 도시된 예는 선형 함수(1100), 활성화 함수(1105) 및 폴드된 선형 함수(1110)를 포함한다. 선형 함수(1100)는 도 13을 참조하여 설명된 대응하는 요소의 예이거나 그 측면을 포함한다. 활성화 함수(1105)는 도 13 및 도 15를 참조하여 설명된 대응하는 요소의 일 예 또는 그 측면을 포함한다. 폴드된 선형 함수(1110)는 도 13을 참조하여 설명된 대응하는 요소의 일 예 또는 그 측면을 포함한다.
신경망은 데이터 처리의 한 형태이며, 여기서 입력 데이터 또는 신호는 일련의 동작으로 처리되고, 그룹화되고, 레이어로 만들어진다. 각 레이어는 연산 세트, 연산 순서 및 가중치라고 하는 연산 계수에 의해 매개변수화된다. 신경망은 아키텍처와 가중치로 구성된다. 레이어는 선형(예를 들어, 아핀) 및 비선형(예를 들어, 비아핀)일 수 있다. 선형 레이어에는 컨볼루션 레이어, 배치 정규화 레이어, 잔여 연결 레이어, 스케일링 레이어, 완전 연결 레이어 등이 포함된다. 비선형 레이어는 활성화(예를 들어, ReLU, 누출 ReLU, 시그모이드, 접선 쌍곡선 등), 풀링 등이며 선형 레이어 사이에 배치된다.
일부 실시예들에서, 레이어는 함수(예를 들어, 선형 함수) 및 활성화 함수를 지칭할 수 있다. 예를 들어, 10개의 레이어 신경망은 레이어 사이에 10개의 활성화 함수가 있는 10개의 선형 레이어가 있는 신경망을 의미할 수 있다. 일부 실시예에서, 일부 활성화 함수는 은닉 노드라고 언급될 수 있다.
도 11의 예에서, 본 개시의 하나 이상의 실시예는 신경망을 압축하기 위해 레이어 간(예를 들어, 선형 함수(1100)를 포함할 수 있는 레이어 사이)의 활성화(예를 들어, 활성화 함수 1105)를 제거한다.
신경망의 일부 연산은 비선형 활성화(예를 들어, ReLU)에 의해 분리된 선형 함수(1100)이다. 결과적으로, 네트워크로부터 활성화 함수(1105)를 제거하는 것은 등가의 단일 선형 레이어로(예를 들어, 폴드된 선형 함수(1110)로) 폴드될 수 있는 선형(즉, 아핀) 연산의 구성 요소들을 생성한다. 따라서 활성화(예를 들어, 비선형 활성화 함수)를 제거하는 것은 신경망의 레이어를 제거하거나 줄일 수 있다.
도 12는 본 개시의 실시예들에 따른 신경망 레이어 폴딩 프로세스의 예를 나타낸다. 도시된 예는 컨볼루션 함수(1200)(예를 들어, 3x3 컨볼루션 함수(1200)), ReLU 함수(1205), 배치 정규화 함수(1210), 및 폴드된 컨볼루션 함수(1215)(예를 들어, 5x5 컨볼루션 함수(1215))를 포함한다. 컨볼루션 함수(1200) 및 폴드된 컨볼루션 함수(1215)는 도 14 및 15를 참조하여 설명된 대응하는 요소의 예시이거나, 각각이 그 측면를 포함한다. ReLU 함수(1205)는 도 14를 참조하여 설명된 대응하는 요소의 일 예이거나 그 측면을 포함한다.
컨볼루션 신경망에서 여러 컨볼루션을 단일 컨볼루션으로 축소하면 새 컨볼루션이 대체된 컨볼루션의 동일한 시야를 유지해야 하므로 커널 크기가 증가한다. 예를 들어, 2개의 후속 3x3 컨볼루션에서 각 출력 픽셀의 전체 시야는 픽셀 주위에 5x5 픽셀의 직사각형이다. 따라서 단일 컨볼루션으로 축소하려면 커널 크기가 5x5여야 한다. 더 많은 레이어가 폴드될수록 커널이 커진다. 1x1 컨볼루션의 존재는 최종 커널 크기를 증가시키지 않는다.
배치(batch) 정규화는 신경망 내에서 내부 공변량 이동을 해결하기 위해 사용될 수 있다. 트레이닝하는 동안 이전 레이어의 매개변수가 변경됨에 따라 현재 레이어에 대한 입력 분포가 그에 따라 변경된다. 따라서 현재 레이어는 새로운 분포에 지속적으로 재조정될 수 있다. 이것은 은닉 레이어의 작은 변화가 네트워크 내에서 전파될 때 증폭될 수 있기 때문에 특히 심층 네트워크에서 발생할 수 있다. 이로 인해 더 깊은 은닉 레이어에서 상당한 이동이 발생할 수 있다. 배치 정규화는 트레이닝 속도를 높이고 보다 안정적인 모델을 생성하기 위해 원치 않는 이동을 줄일 수 있다. 일부 실시예에서, 배치 정규화를 통합하는 네트워크는 기울기가 사라지거나 폭증하지 않고 더 높은 학습률을 사용할 수 있다. 또한 배치 정규화는 일반화하기 쉽도록 네트워크를 정규화할 수 있다. 따라서 일부 실시예에서, 과적합을 완화하기 위해 드롭아웃을 사용하는 것이 불필요할 수 있다. 네트워크는 또한 다른 초기화 방식과 학습률에 대해 더 강력해질 수 있다. 배치 정규화는 각 레이어 입력의 평균과 분산을 고정하여 달성될 수 있다. 일부 실시예에서, 전체 트레이닝 세트에 대해 정규화가 수행될 수 있다. 다른 실시예에서, 트레이닝 프로세스에서 각 미니-배치에 대해 정규화가 제한된다.
도 13는 본 개시의 실시예들에 따른 신경망 레이어 폴딩 프로세스의 예를 나타낸다. 도시된 예는 선형 함수(1300), 활성화 함수(1305) 및 폴드된 선형 함수(1310)를 포함한다. 선형 함수(1300)는 도 11을 참조하여 설명된 대응하는 요소의 예이거나, 그 측면을 포함한다. 활성화 함수(1305)는 도 11 및 15를 참조하여 설명된 대응하는 요소의 예이거나, 그 측면을 포함한다. 폴드된 선형 함수(1310)는 도 11을 참조하여 설명된 대응하는 요소의 일 예 또는 그 측면을 포함한다.
도 13은 트레이닝된 신경망이 3개의 레이어(예를 들어, 각각 100개의 매개변수의 3개의 레이어)를 포함하는 예를 나타낸다. 본 명세서에 설명된 기술은 3개의 레이어(예를 들어, 100개의 매개변수의)를 각각 1개의 레이어(예를 들어, 100개의 매개변수의)로 축소하도록 구현될 수 있다.
도 14는 본 개시의 실시예들에 따른 신경망 레이어 폴딩 프로세스의 예를 나타낸다. 도시된 예는 컨볼루션 함수(1400)(예를 들어, 1x1 컨볼루션 함수(1400)), ReLU 함수(1405), 깊이별 컨볼루션 함수(1410)(예를 들어, 3x3 깊이별 컨볼루션 함수(1410)), 및 폴드된 컨볼루션 함수(1415)(예를 들어, 3x3 컨볼루션 함수(1415))를 포함한다. 컨볼루션 함수(1400)는 도 12 및 도 15를 참조하여 설명된 대응하는 요소의 예이거나, 그 측면을 포함한다. ReLU 함수(1405)는 도 12를 참조하여 설명된 대응하는 요소의 예이거나, 그 측면을 포함한다. 깊이별 컨볼루션 함수(1410)는 도 15를 참조하여 설명된 대응하는 요소의 예이거나, 그 측면을 포함한다. 폴드된 컨볼루션 함수(1415)는 도 12 및 도 15를 참조하여 설명된 대응하는 요소의 일 예이거나 그 측면을 포함한다.
일부 실시예에서, 트레이닝 가능한 매개변수 α가 다른 활성화 함수 간에 공유되어 활성화 함수가 제거되거나 그룹으로 유지된다. 예를 들어, 역병목 블록은 현대 아키텍처에서 사용되는 두드러진 블록이다. 역 병목 블록은 3개의 회선으로 구성된다. 즉, 확장 1x1 다음에 활성화, 깊이별 3x3 다음에 또 다른 활성화 및 프로젝트 1x1. ReLU 활성화(예를 들어, ReLU 함수 1405)는 동시에 항등 함수가 되고 활성화 함수가 동일한 트레이닝 가능한 매개변수 α를 공유하는 경우 제거된다. 블록에서 ReLU 활성화(예를 들어, ReLU 함수 1405)를 제거하면 3개의 컨볼루션이 단일 3x3 컨볼루션(예를 들어, 3x3 컨볼루션 함수 1415)으로 축소된다. 결과적인 단일 3x3 컨볼루션 함수(1415)는 전체 컨볼루션이다.
도 15는 본 개시의 실시예들에 따른 신경망 레이어 폴딩 프로세스의 예를 나타낸다. 도시된 예는 컨볼루션 함수(1500)(예를 들어, 1x1 컨볼루션 함수(1500)), 활성화 함수(1505), 깊이별 컨볼루션 함수(1510)(예를 들어, 3x3 깊이별 컨볼루션 함수(1510)), 및 폴드된 컨볼루션 함수(1515)(예를 들어, 폴드된 1x1 컨볼루션 함수))를 포함한다. 컨볼루션 함수(1500)는 도 12 및 14를 참조하여 설명된 대응하는 요소의 예이거나, 그 측면을 포함한다. 활성화 함수(1505)는 도 11 및 도 13을 참조하여 설명된 대응하는 요소의 예이거나, 그 측면을 포함한다. 깊이별 컨볼루션 함수(1510)는 도 14를 참조하여 설명된 대응하는 요소의 예이거나, 그 측면을 포함한다. 폴드된 컨볼루션 함수(1515)는 도 12 및 도 14를 참조하여 설명된 대응하는 요소의 예이거나, 그 측면을 포함한다.
본 개시에 설명된 설명 및 도면은 예시적인 구성을 나타내며 청구 범위 내의 모든 구현을 나타내지는 않는다. 예를 들어, 동작 및 단계는 재배열, 결합 또는 수정될 수 있다. 또한, 구조 및 장치는 구성 요소간의 관계를 나타내고 설명된 개념을 모호하게 하는 것을 방지하기 위해 블록도의 형태로 표시될 수 있다. 유사한 구성 요소 또는 기능은 동일한 이름을 가질 수 있지만 다른 도면에 해당하는 다른 참조 번호를 가질 수 있다.
본 개시내용에 대한 일부 수정은 통상의 기술자에게 용이하게 명백할 수 있고, 본 개시에 정의된 원리는 본 개시내용의 범위를 벗어나지 않고 다른 변형에 적용될 수 있다. 따라서, 본 개시내용은 본 명세서에 기재된 예시 및 설계에 제한되지 않고, 본 명세서에 개시된 원리 및 신규 특징과 일치하는 가장 넓은 범위가 부여되어야 한다.
설명된 시스템 및 방법은 범용 프로세서, DSP(digital signal processor), ASIC(application specific integrated circuit), FPGA(field programmable gate array) 또는 기타 프로그램 가능 논리 장치, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 구성 요소, 또는 이들의 조합을 포함하는 장치에 의해 구현되거나 수행될 수 있다. 범용 프로세서는 마이크로프로세서, 기존 프로세서, 컨트롤러, 마이크로컨트롤러 또는 상태 기계일 수 있다. 프로세서는 또한 컴퓨팅 장치의 조합(예를 들어, DSP와 마이크로프로세서의 조합, 다중 마이크로프로세서, DSP 코어와 연결된 하나 이상의 마이크로프로세서, 또는 기타 그러한 구성)으로 구현될 수 있다. 따라서, 본 개시에 설명된 기능은 하드웨어 또는 소프트웨어로 구현될 수 있고 프로세서, 펌웨어, 또는 이들의 임의의 조합에 의해 실행될 수 있다. 프로세서에 의해 실행되는 소프트웨어로 구현되는 경우, 그 기능은 컴퓨터로 읽을 수 있는 매체에 명령어 또는 코드의 형태로 저장될 수 있다.
컴퓨터 판독 가능 매체는 코드 또는 데이터의 전송을 용이하게 하는 임의의 매체를 포함하는 비일시적 컴퓨터 저장 매체 및 통신 매체를 모두 포함한다. 비일시적 저장 매체는 컴퓨터에서 액세스할 수 있는 모든 사용 가능한 매체일 수 있다. 예를 들어, 비일시적 컴퓨터 판독 가능 매체는 RAM(Random Access Memory), ROM(Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), CD(Compact Disk) 또는 기타 광 디스크 스토리지, 자기 데이터 또는 코드를 운반하거나 저장하기 위한 디스크 스토리지 또는 기타 비일시적 매체를 포함할 수 있다.
또한, 연결 구성 요소는 컴퓨터 판독 가능 매체라고 하는 것이 적절할 수 있다. 예를 들어, 코드 또는 데이터가 동축 케이블, 광섬유 케이블, 트위스트 페어, DSL(digital subscriber line) 또는 적외선, 라디오 또는 마이크로파 신호와 같은 무선 기술을 사용하여 웹사이트, 서버 또는 기타 원격 소스에서 전송되는 경우, 동축 케이블, 광섬유 케이블, 연선, DSL 또는 무선 기술이 매체의 정의에 포함된다. 매체의 조합도 컴퓨터 판독 가능한 매체의 범위에 포함된다.
본 개시 및 다음의 청구범위에서, 단어 "또는"은 예를 들어 X, Y 또는 Z의 목록이 X 또는 Y 또는 Z 또는 XY 또는 XZ 또는 YZ 또는 XYZ를 의미하도록 포함하는 목록을 나타낸다. 또한 "기초하여"이라는 문구는 닫힌 조건 집합을 나타내는 데 사용되지 않는다. 예를 들어, "조건 A에 기초하여"으로 설명된 단계는 조건 A와 조건 B 모두에 기초할 수 있다. 다시 말해서 "~에 기초한"이라는 문구는 "적어도 부분적으로 ~에 기초한"을 의미하는 것으로 해석되어야 한다. 또한 "a" 또는 "an"이라는 단어는 "적어도 하나"를 나타낸다.

Claims (20)

  1. 아핀 함수 및 비선형 활성화 함수를 포함하는 신경망을 식별하는 단계;
    상기 비선형 활성화 함수를 선형성 매개변수를 포함하는 매개변수화된 활성화 함수로 대체하는 단계;
    보조 손실 항에 기초하여 근사 아핀 활성화 함수를 획득하기 위해 상기 매개변수화된 활성화 함수의 상기 선형성 매개변수를 반복적으로 조정하는 단계; 및
    상기 근사 아핀 활성화 함수와 상기 신경망의 상기 아핀 함수를 결합하여 감소된 신경망을 얻음으로써 상기 신경망을 감소시키는 단계를 포함하는 신경망 설계 방법.
  2. 청구항 1에 있어서,
    상기 매개변수화된 활성화 함수는,
    상기 비선형 활성화 함수, 상기 선형성 매개변수와 상기 비선형 활성화 함수의 곱의 가법 역원, 상기 선형성 매개변수와 타겟 아핀 함수의 곱을 포함하는 방법.
  3. 청구항 1에 있어서,
    상기 매개변수화된 활성화 함수는,
    상기 비선형 활성화 함수, 상기 선형성 매개변수와 상기 비선형 활성화 함수의 곱, 추가 매개변수와 타겟 아핀 함수의 곱을 포함하는 방법.
  4. 청구항 1에 있어서,
    상기 선형성 매개변수를 반복적으로 조정하는 단계는,
    상기 선형성 매개변수에 대한 값을 선택하고, 상기 선택된 값에 기초하여 상기 보조 손실 항을 계산하고, 상기 보조 손실 항에 기초하여 상기 선형성 매개변수에 대한 상기 값을 업데이트하는 단계를 포함하는 방법.
  5. 청구항 1에 있어서,
    상기 보조 손실 항은,
    상기 선형성 매개변수가 상기 매개변수화된 활성화 함수가 타겟 아핀 함수에 접근하도록 하는 값에 접근하도록 조장하는 방법.
  6. 청구항 1에 있어서,
    상기 근사 아핀 활성화 함수를 상기 신경망의 상기 아핀 함수와 결합하는 단계는,
    상기 근사 아핀 활성화 함수 이전의 제1 아핀 함수 및 상기 근사 아핀 활성화 함수 이후의 제2 아핀 함수와 상기 근사 아핀 활성화 함수를 결합하는 단계를 포함하는 방법.
  7. 청구항 1에 있어서,
    상기 근사 아핀 활성화 함수와 상기 신경망의 상기 아핀 함수를 결합하는 단계는,
    상기 신경망의 스킵 연결을 제거하는 단계를 포함하는 방법.
  8. 청구항 1에 있어서,
    복수의 비선형 활성화 함수를 동일한 선형성 매개변수를 갖는 복수의 매개변수화된 활성화 함수로 대체하는 단계; 및
    상기 감소된 신경망을 획득하기 위해 상기 복수의 비선형 활성화 함수를 복수의 아핀 함수와 결합하는 단계를 더 포함하는 방법.
  9. 청구항 8에 있어서,
    상기 복수의 비선형 활성화 함수는,
    동일한 스킵 연결에 의해 우회되는 방법.
  10. 청구항 8에 있어서,
    상기 복수의 비선형 활성화 함수는,
    컨볼루션 신경망의 커널 경계를 포함하는 방법.
  11. 청구항 1에 있어서,
    상기 보조 손실 항을 포함하지 않는 손실 함수에 기초하여 상기 감소된 신경망을 정제하는 단계를 더 포함하는 방법.
  12. 청구항 1에 있어서,
    상기 비선형 활성화 함수는,
    하나 이상의 ReLU(Rectified Linear Unit) 블록을 포함하고
    상기 매개변수화된 활성화 함수는,
    하나 이상의 매개변수의 ReLU 블록을 포함하는 방법.
  13. 청구항 1에 있어서,
    상기 신경망은,
    CNN(Convolutional Neural Network)을 포함하고
    상기 감소된 신경망은,
    레이어 수가 감소한 상기 CNN을 포함하는 방법.
  14. 청구항 13에 있이서,
    상기 감소된 신경망은,
    감소된 레이어 수를 갖는 상기 CNN을 포함하는 방법.
  15. 비선형 활성화 함수를 선형성 매개변수를 포함하는 매개변수화된 활성화 함수로 대체함으로써 아핀 함수 및 상기 비선형 활성화 함수를 포함하는 신경망을 수정하도록 구성된 매개변수화 컴포넌트;
    보조 손실 항에 기초하여 근사 아핀 활성화 함수를 획득하기 위해 상기 매개변수화된 활성화 함수의 상기 선형성 매개변수를 반복적으로 조정하도록 구성된 트레이닝 컴포넌트; 및
    감소된 신경망을 획득하기 위해 상기 근사 아핀 활성화 함수를 상기 신경망의 상기 아핀 함수와 결합하도록 구성된 감소 컴포넌트를 포함하는 신경망 설계 장치.
  16. 청구항 15에 있어서,
    상기 트레이닝 컴포넌트는,
    선형성 매개변수에 대한 값을 선택하고, 상기 선택된 값에 기초하여 상기 보조 손실 항을 계산하고, 상기 보조 손실 항에 기초하여 상기 선형성 매개변수에 대한 상기 값을 업데이트하도록 더 구성되는 장치.
  17. 청구항 15에 있어서,
    상기 감소 컴포넌트는,
    상기 근사 아핀 활성화 함수 이전의 제1 아핀 함수 및 상기 근사 아핀 활성화 함수 이후의 제2 아핀 함수와 상기 근사 아핀 활성화 함수를 결합하도록 더 구성되는 장치.
  18. 청구항 15에 있어서,
    상기 감소 컴포넌트는,
    복수의 비선형 활성화 함수를 동일한 선형성 매개변수를 갖는 복수의 매개변수화된 활성화 함수로 대체하고, 상기 복수의 비선형 활성화 함수를 결합하여, 상기 감소된 신경망을 얻도록 더 구성되는 장치.
  19. 아핀 함수 및 비선형 활성화 함수를 포함하는 신경망을 식별하는 단계;
    상기 비선형 활성화 함수를 선형성 매개변수를 포함하는 매개변수화된 활성화 함수로 대체하는 단계;
    상기 매개변수화된 활성화 함수의 상기 선형성 매개변수에 대해 선택된 값에 기초하여 보조 손실 항을 계산하는 단계;
    근사 아핀 활성화 함수를 획득하기 위해 상기 보조 손실 항에 기초하여 상기 매개변수화된 활성화 함수의 상기 선형성 매개변수에 대한 상기 값을 반복적으로 업데이트하는 단계; 및
    감소된 신경망을 얻기 위해 상기 근사 아핀 활성화 함수를 상기 신경망의 상기 아핀 함수와 결합하는 단계를 포함하고,
    상기 보조 손실 항은 선형성 매개변수가 1의 값에 접근하도록 조장하는 신경망 설계 방법.
  20. 청구항 19에 있어서,
    상기 보조 손실 항을 포함하지 않는 손실 함수에 기초하여 상기 감소된 신경망을 정제하는 단계를 포함하는 방법.
KR1020220043636A 2021-04-07 2022-04-07 신경망 레이어 폴딩 KR20220139248A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163171757P 2021-04-07 2021-04-07
US63/171,757 2021-04-07
US17/399,374 2021-08-11
US17/399,374 US20220327386A1 (en) 2021-04-07 2021-08-11 Neural network layer folding

Publications (1)

Publication Number Publication Date
KR20220139248A true KR20220139248A (ko) 2022-10-14

Family

ID=83509435

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220043636A KR20220139248A (ko) 2021-04-07 2022-04-07 신경망 레이어 폴딩

Country Status (2)

Country Link
US (1) US20220327386A1 (ko)
KR (1) KR20220139248A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12045272B2 (en) * 2021-07-08 2024-07-23 Adobe Inc. Auto-creation of custom models for text summarization

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7151788B2 (ja) * 2018-12-28 2022-10-12 日本電気株式会社 ニューラルネットワーク学習装置、方法およびプログラム
US11068786B1 (en) * 2020-12-17 2021-07-20 Moffett Technologies Co., Limited System and method for domain specific neural network pruning

Also Published As

Publication number Publication date
US20220327386A1 (en) 2022-10-13

Similar Documents

Publication Publication Date Title
CN107622302B (zh) 用于卷积神经网络的超像素方法
Deng et al. GXNOR-Net: Training deep neural networks with ternary weights and activations without full-precision memory under a unified discretization framework
US11423288B2 (en) Neuromorphic synthesizer
WO2022156561A1 (zh) 一种自然语言处理方法以及装置
CN110674936A (zh) 一种神经网络处理方法、装置、计算机设备及存储介质
CN111797589B (zh) 一种文本处理网络、神经网络训练的方法以及相关设备
CN112740236A (zh) 在深度神经网络中利用激活稀疏性
CN116415654A (zh) 一种数据处理方法及相关设备
CN107944545B (zh) 应用于神经网络的计算方法及计算装置
US20210073644A1 (en) Compression of machine learning models
WO2023231794A1 (zh) 一种神经网络参数量化方法和装置
CN111310684A (zh) 一种模型训练方法、装置、电子设备及存储介质
WO2024212648A1 (zh) 一种分类模型的训练方法及相关装置
CN110428422B (zh) 超像素采样网络
Mukhopadhyay et al. Systematic realization of a fully connected deep and convolutional neural network architecture on a field programmable gate array
KR20220139248A (ko) 신경망 레이어 폴딩
Ma et al. Accelerating deep neural network filter pruning with mask-aware convolutional computations on modern CPUs
Tareen et al. Convolutional neural networks for beginners
CN116457842A (zh) 用于高效视频处理的跳跃卷积
CN116420174A (zh) 用于卷积神经网络的全尺度卷积
WO2023249821A1 (en) Adapters for quantization
CN113869517A (zh) 一种基于深度学习模型的推理方法
WO2022251602A9 (en) Systems and methods for machine-learned models having convolution and attention
Graham et al. Applying Neural Networks to a Fractal Inverse Problem
US20230419087A1 (en) Adapters for quantization