KR20190003612A - 완전연결층 신경망 역방향 트레이닝 실행용 장치와 방법 - Google Patents

완전연결층 신경망 역방향 트레이닝 실행용 장치와 방법 Download PDF

Info

Publication number
KR20190003612A
KR20190003612A KR1020187033950A KR20187033950A KR20190003612A KR 20190003612 A KR20190003612 A KR 20190003612A KR 1020187033950 A KR1020187033950 A KR 1020187033950A KR 20187033950 A KR20187033950 A KR 20187033950A KR 20190003612 A KR20190003612 A KR 20190003612A
Authority
KR
South Korea
Prior art keywords
module
storage unit
slope
weight
vector
Prior art date
Application number
KR1020187033950A
Other languages
English (en)
Other versions
KR102470264B1 (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 KR20190003612A publication Critical patent/KR20190003612A/ko
Application granted granted Critical
Publication of KR102470264B1 publication Critical patent/KR102470264B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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
    • 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
    • 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)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Feedback Control In General (AREA)
  • Image Analysis (AREA)

Abstract

본 발명은 인공 신경망 완전연결층 역방향 트레이닝 실행용 장치에 관한 것으로, 더욱 상세하게는 명령 저장 유닛(1), 컨트롤러 유닛(2), 데이터 엑세스 유닛(3), 인터커넥트 모듈(4), 1차 연산 모듈(5)과 복수개 2차 연산 모듈(6)을 포함하는 것을 특징으로 하는 인공 신경망 완전연결층 역방향 트레이닝 실행용 장치에 관한 것이다. 상기 장치를 사용하면 인공 신경망 완전연결층의 역방향 트레이닝을 실현할 수 있다. 각 층에 있어서, 먼저 입력 기울기 벡터에 대하여 가중 합산을 진행하여 본 층의 출력 기울기 벡터를 계산한다. 상기 출력 기울기 벡터에 다음 층의 정방향 연산 시 활성 함수의 미분값을 곱하여 다음 층의 입력 기울기 벡터를 얻을 수 있다. 입력 기울기 벡터와 정방향 연산 시의 입력 뉴런을 대위곱셈하여 본 층 가중치의 기울기를 얻은 후, 취득한 본 층 가중치의 기울기에 의거하여 본 층의 가중치를 갱신할 수 있다.

Description

완전연결층 신경망 역방향 트레이닝 실행용 장치와 방법
본 발명은 전체적으로 인공 신경망에 관한 것으로, 더욱 상세하게는 인공 신경망 완전연결층 역방향 트레이닝 실행용 장치와 방법에 관한 것이다.
인공 신경망은 패턴 인식, 이미지 처리, 함수 접근과 최적화 계산 등 분야에서 광범위하게 응용되고 있다. 다층 인공망은 최근 몇 년 동안 비교적 높은 식별 정확도와 비교적 우수한 병렬 가능성으로 인해 학술계와 산업계에서 갈수록 많은 주목을 받고 있다.
인공 신경망 완전연결층은 흔히 볼 수 있는 인공 신경망이고, 대뇌 속의 신경망과 마찬가지로 인공 신경망 완전연결층은 일부 서로 연결된 노드로 구성된다. 도 1에서 도시하는 바와 같이, 각각의 동그라미는 하나의 뉴런을 나타내고, 각각의 화살표는 2개 뉴런 사이의 연결을 나타내는데 가중치라고 부르기도 하며, 모든 입력과 출력 간은 서로 연결된다.
뉴런의 계산 공식은 간단하게 설명하면 y=f(∑i n=oW i*X i+b)이다. 여기에서, x는 출력 뉴런과 연결되는 모든 입력 뉴런을 나타내고, w는 x와 출력 뉴런 사이에 대응하는 가중치를 나타내며, b는 하나의 상수다. f(x)는 하나의 비선형 함수이며 통상적으로 활성 함수라 불리고, 통상적으로 사용하는 함수는
Figure pct00001
등과 같다.
인공 신경망 완전연결층 역방향 트레이닝(reversal training)을 지원하는 종래의 방법은 범용 프로세서를 사용하는 것이다. 상기 방법은 범용 레지스터 파일과 범용 기능 부품을 통하여 범용 명령을 실행하여 상기 알고리즘을 지원한다. 상기 방법의 단점 중 하나는 단일 범용 프로세서가 연산 성능이 비교적 낮아 복수개의 범용 프로세서를 병렬 실행할 경우 범용 프로세서 간 상호 통신도 성능 병목 현상을 만든다. 또한 범용 프로세서는 인공 신경망 완전연결층 역방향 연산을 긴 열 연산 및 메모리 엑세스 명령 시퀀스로 디코딩하기 때문에 프로세스 전단 디코딩에 비교적 큰 전력이 소모된다.
인공 신경망 완전연결층 역방향 트레이닝을 지원하는 또 다른 종래의 방법은 그래픽 처리 유닛(GPU)을 사용하는 것이다. 상기 방법은 범용 레지스터 파일과 범용 스트림 프로세서를 통하여 범용 SIMD 명령을 실행함으로써 상기 알고리즘을 지원한다. GPU는 그래픽 이미지 연산 및 과학 계산을 전문적으로 실행하는 설비이기 때문에, 인공 신경망 완전연결층 역방향 트레이닝을 전문적으로 지원할 수 없어 여전히 대량의 전단 디코딩 작업이 있어야 인공 신경망 완전연결층 연산을 실행할 수 있으므로 대량의 추가적 비용이 든다. 또한 GPU는 비교적 작은 온칩(on-chip) 캐시만 있기 때문에 인공 신경망 완전연결층 모델 데이터(가중치)를 반복적으로 칩 외부에서 운반해야 하므로 오프칩(off-chip) 대역폭이 주요 성능의 병목 현상을 일으키며, 동시에 엄청난 전력이 소모된다.
본 발명은 한편으로 인공 신경망 완전연결층 역방향 트레이닝 실행용 장치에 관한 것으로서, 명령 저장 유닛, 컨트롤러 유닛, 데이터 엑세스 유닛, 인터커넥트 모듈, 1차 연산 모듈과 복수개 2차 연산 모듈을 포함한다. 여기에서,
명령 저장 유닛은 명령을 저장하는 데 사용되고;
컨트롤러 유닛은 명령 저장 유닛으로부터 명령을 판독하고 상기 명령을 인터커넥트 모듈, 1차 연산 모듈과 상기 복수개 2차 연산 모듈의 행위를 제어하는 제어 신호로 디코딩하는 데 사용되며;
데이터 엑세스 유닛은 외부 주소 공간과 상기 장치 간의 데이터 또는 명령을 판독 및 기록하는 데 사용되고;
각 층 인공 신경망 역방향 트레이닝 계산 시작 단계에서 1차 연산 모듈은 인터커넥트 모듈을 통해 모든 1차 연산 모듈에게 본 층의 입력 기울기 벡터를 전송하는데 사용되며;
각 2차 연산 모듈은 입력 기울기 벡터 중 대응되는 일부 스칼라 원소와 가중치 행렬의 대응 열을 곱한 적을 계산해 출력 기울기 벡터 부분합을 획득하는 데 사용되고;
2차 연산 모듈의 계산 과정이 완료된 후 인터커넥트 모듈은 단계적으로 각 2차 연산 모듈의 출력 기울기 벡터 부분합을 합병해 본 층의 출력 기울기 벡터를 획득하는 데 사용되며;
1차 연산 모듈은 각 층의 계산 과정에서 본 층의 출력 기울기 벡터를 이용해 후속 계산을 완성하는 데 사용된다.
본 발명은 다른 한편으로 상기 장치를 사용하는 단층 인공 신경망 완전연결층 역방향 트레이닝 방법을 제공한다.
본 발명은 또 다른 한편으로 상기 장치를 사용하는 다층 인공 신경망 완전연결층 역방향 트레이닝 방법을 제공한다.
본 발명은 데이터 처리, 로봇, 컴퓨터, 프린터, 스캐너, 전화, 태블릿 PC, 스마트 단말기, 휴대폰, 주행기록기, 네비게이터, 센서, 웹캠, 클라우드 서버, 사진기, 촬영기, 프로젝터, 손목시계, 이어폰, 휴대용 저장장치, 웨어러블 설비 등 각종 전자제품; 비행기, 선박, 차량 등 각종 교통수단; 텔레비전, 에어컨, 전자레인지, 냉장고, 전기밥솥, 가습기, 세탁기, 전등, 가스레인지, 주방환풍기 등 각종 가정용 전기기구; 자기공명영상촬영기,B형 초음파, 심전도기 등 각종 의료설비를 포함하지만 이에 한정되지 않는 분야에 응용할 수 있다.
이하에서는, 본 발명의 도면을 통해 발명 및 본 발명의 장점을 더욱 상세하게 설명한다.
도 1은 인공 신경망 완전연결층의 구조도이고;
도 2는 본 발명 실시예에 따른 인공 신경망 완전연결층 역방향 트레이닝 실행용 장치의 전체 구조에 대한 블록 다이어그램이고;
도 3은 본 발명 실시예에 따른 인공 신경망 완전연결층 역방향 트레이닝 실행용 장치 중 H트리 모듈(인터커넥트 모듈의 한 구현 방식)의 구조도이고;
도 4는 본 발명 실시예에 따른 인공 신경망 완전연결층 역방향 트레이닝 실행용 장치 중 1차 연산 모듈의 구조에 대한 블록 다이어그램이고;
도 5는 본 발명 실시예에 따른 인공 신경망 완전연결층 역방향 트레이닝 실행용 장치 중 2차 연산 모듈의 구조에 대한 블록 다이어그램이고;
도 6은 본 발명 실시예에 따른 인공 신경망 완전연결층 역방향 트레이닝 과정의 블록 다이어그램이고;
도 7은 본 발명 실시예에 따른 인공 신경망 완전연결층 역방향 트레이닝의 흐름도다.
모든 도면은 동등한 장치, 부품, 유닛 등에 동등한 도면 기호를 사용해 표시한다.
이하에서는, 본 발명의 예시적인 실시형태들을 도면과 결합해 보다 상세히 설명한다. 본 발명의 기타 측면, 장점 및 특징은 본 발명이 속한 기술분야의 당업자라면 쉽게 이해할 수 있을 것이다.
본 발명에 있어서, 전문용어 "포함”과 "함유” 및 그 파생어의 뜻은 포괄하며 제한적이지 않다는 것이고, 전문용어 "또는”은 "및/또는”의 뜻으로서 포함성을 가진다.
본 발명의 설명에 있어서, 이하의 내용은 본 발명 원리의 각종 실시예를 설명하기 위한 것에 불과하므로 어떠한 방식으로든 본 발명의 보호범위를 제한하지 않는다. 이하의 첨부 도면을 참조하여 특허청구범위 및 그 균등물로 한정되는 본 발명의 예시적 실시예를 전면적으로 이해하도록 한다. 이하의 설명에는 이해를 돕기 위하여 다양한 구체적인 세부사항을 포함하나, 이러한 세부사항은 예시적인 것에 불과하다. 따라서 본 발명이 속한 기술분야의 당업자는 본 발명의 범위와 정신에 위배되지 않는 상황에서 본 발명에서 설명한 실시예에 대하여 변경과 수식을 진행할 수 있다는 것을 이해하여야 한다. 그 외, 명확함과 간결함을 위하여 공지된 기능과 구조에 대한 설명은 생략하였다. 또한 첨부 도면에서 일관되게 동일한 참고 숫자는 유사한 기능과 조작에 사용하였다.
본 발명 실시예에 따른 인공 신경망 완전연결층의 역방향 트레이닝은 각 층이 먼저 입력 기울기 벡터를 가중 합산해 본 층의 출력 기울기 벡터를 계산한다. 상기 출력 기울기 벡터에 다음 층 정방향 연산 시 활성 함수의 미분값을 곱해 다음 층의 입력 기울기 벡터를 획득한다. 입력 기울기 벡터를 정방향 연산 시 입력 뉴런과 대위 곱셈해 본 층 가중치의 기울기를 획득한 다음, 이어서 획득한 본 층 가중치의 기울기에 의거하여 본 층의 가중치를 갱신한다.
도 2는 본 발명 실시예에 따른 인공 신경망 완전연결층 역방향 트레이닝 실행용 장치의 전체 구조에 대한 블록 다이어그램이다. 도 2에서 도시하는 바와 같이, 상기 장치는 명령 저장 유닛(1), 컨트롤러 유닛(2), 데이터 엑세스 유닛(3), 인터커넥트 모듈(4), 1차 연산 모듈(5)과 복수개 2차 연산 모듈(6)이 포함된다. 명령 저장 유닛(1), 컨트롤러 유닛(2), 데이터 엑세스 유닛(3), 인터커넥트 모듈(4), 1차 연산 모듈(5)과 복수개 2차 연산 모듈(6)은 모두 하드웨어 회로(예를 들어 FPGA, CGRA, 전용 집적회로 ASIC, 아날로그 회로와 멤리스터 등을 포함하지만 이에 한정되지 않음)를 통해 구현한다.
명령 저장 유닛(1)은 데이터 엑세스 유닛(3)을 통해 명령을 판독해 입력하고 판독해 입력한 명령을 저장한다.
컨트롤러 유닛(2)은 명령 저장 유닛(1)에서 명령을 판독하고, 명령을 기타 모듈 행위를 제어하는 제어 신호로 디코딩해 예를 들어 데이터 엑세스 유닛(3), 1차 연산 모듈(5)과 2차 연산 유닛(6) 등 기타 모듈에 발송한다.
데이터 엑세스 유닛(3)은 외부 주소 공간을 엑세스함으로써 직접 장치 내부의 각 저장 유닛에서 데이터를 판독해 기록하고 데이터의 로딩과 저장을 완료한다.
인터커넥트 모듈(4)은 1차 연산 모듈과 2차 연산 모듈을 연결하는 데 사용해 다른 인터커넥트 위상(예를 들어 트리 구조, 링 구조, 메쉬 구조, 단계적 인터커넥트, 버스 구조 등)을 구현할 수 있다.
도 3은 인터커넥트 모듈(4)의 실시방식인 H 트리 모듈을 도시한다. 인터커넥트 모듈(4)은 1차 연산 모듈(5)과 복수개 2차 연산 모듈(6) 간의 데이터 경로를 구성하고, H트리 구조를 가진다. H 트리는 복수개 노드로 구성된 이진 트리 경로인데, 각 노드는 상위 데이터를 동등하게 하위의 2 개 노드로 송출하고, 하위 2 개 노드가 반환한 데이터를 합병해 상위 노드에게 반환한다. 예를 들어, 인공 신경망 완전연결층 역방향 연산 과정에서 하위 2 개 노드가 반환한 벡터는 현재 노드에서 하나의 벡터로 덧셈해 상위 노드에게 반환한다. 각 인공 신경망 완전연결층 계산 시작 단계에서 1차 연산 모듈(5) 내의 입력 기울기는 인터커넥트 모듈(4)을 통해 각 2차 연산 모듈(6)에게 송출하며; 2차 연산 모듈(6)의 계산 과정이 완료된 후 각 2차 연산 모듈이 출력한 출력 기울기 벡터 부분합은 인터커넥트 모듈(4)에서 단계적으로 둘씩 합병해, 즉, 모든 출력 기울기 벡터 부분합을 덧셈해 최후 출력 기울기 벡터로 삼는다.
도 4는 본 발명 실시예에 따른 인공 신경망 완전연결층 역방향 트레이닝 실행용 장치 중 1차 연산 모듈(5)의 구조에 대한 블록 다이어그램이다. 도 4에서 도시하는 바와 같이, 1차 연산 모듈(5)은 제1 연산 유닛(51), 제1 데이터 종속성 판정 유닛(52)과 제1 뉴런 저장 유닛(53)을 포함한다.
제1 뉴런 저장 유닛(53)은 1차 연산 모듈(5)이 계산 과정에서 사용하는 입력 데이터와 출력 데이터를 저장하는 데 사용된다. 제1 연산 유닛(51)은 인공 신경망 완전연결층 역방향 트레이닝에서의 가중치 갱신 기울기 합산과 도함수 획득 등 연산이 포함된 1차 연산 모듈의 각 연산 기능을 완료하는 데 사용된다. 제1 데이터 종속성 판정 유닛(52)은 제1 연산 유닛(51)이 제1 뉴런 저장 유닛(53)의 포트를 판독해 기록하는 동시에, 뉴런 저장 유닛(53) 중 데이터의 판독 및 기록 일치성을 보장하는데 사용된다. 보다 상세하게, 데이터 종속성 판정 유닛(52)은 아직 실행하지 않은 제어 신호와 실행 중인 제어 신호의 데이터 간에 종속 관계가 존재하는 여부를 판단함으로써 존재하지 않으면 상기 제어 신호가 즉시 발송하는 것을 허용하고 아니면 해당 제어 신호가 종속하는 모든 제어 신호가 전부 실행 완료된 후에야 상기 제어 신호의 발송을 허락한다. 예를 들어 제1 데이터 종속성 판정 유닛(52)으로 발송되는 모든 제어 신호는 모두 제1 데이터 종속성 판정 유닛(52) 내부의 제어 신호 큐(instruction queue)에 저장되고, 상기 큐에서 상기 제어신호의 데이터 판독 범위가 만약 큐 위치 앞쪽에 가까운 제어 신호 및 데이터 기록 범위와 충돌이 일어나는 경우, 상기 제어 신호는 반드시 종속되는 기록 제어 신호가 실행된 후에야 실행해야 한다. 제1 데이터 종속성 판정 유닛(52) 또한 제1 뉴런 저장 유닛(53)이 판독한 입력 기술기 벡터가 인터커넥트 모듈(4)을 통해 2차 연산 모듈(6)로 발송되도록 하는 것과 2차 연산 모듈(6)의 출력 데이터가 인터커넥트 모듈(4)을 통해 직접 연산 유닛(51)에게 발송되도록 하는 것을 책임진다. 컨트롤러 유닛(2)이 출력한 명령은 제1 연산 유닛(51)과 제1 종속성 판정 유닛(52)에게 발송해 그의 행위를 제어한다.
도 5는 본 발명 실시예에 따른 인공 신경망 완전연결층 역방향 트레이닝 실행용 장치 중 2차 연산 모듈(6)의 구조에 대한 블록 다이어그램이다. 도 5에서 도시하는 바와 같이, 각 2차 연산 모듈(6)은 제2 연산 유닛(61), 제2 데이터 종속성 판정 유닛(62), 제2 뉴런 저장 유닛(63), 가중치 저장 유닛(64)과 가중치 갱신 기울기 저장 유닛(65)을 포함한다.
제2 연산 유닛(61)은 컨트롤러 유닛(2)이 송출하는 제어 신호를 수신해 산수 논리 연산을 진행하는 데 사용되고;
제2 데이터 종속성 판정 유닛(62)은 계산 과정에서 제2 뉴런 저장 유닛(63)의 판독 및 기록 조작을 책임지고 제2 뉴런 저장 유닛의 판독 및 기록 일치성을 보장하는 데 사용된다. 보다 상세하게, 제2 데이터 종속성 판정 유닛(62)은 아직 실행하지 않은 제어 신호와 실행 중인 제어 신호의 데이터 간에 종속 관계가 존재하는 여부를 판단함으로써 존재하지 않으면 상기 제어 신호의 즉시 발송을 허락하고 아니면 상기 제어 신호가 종속하는 모든 제어 신호가 전부 실행 완료된 후에야 상기 제어 신호의 발송을 허락한다. 예를 들어 제2 데이터 종속성 판정 유닛(62)으로 발송되는 모든 제어 신호는 모두 제2 데이터 종속성 판정 유닛(62) 내부의 제어 신호 큐(instruction queue)에 저장되고, 상기 큐에서 상기 제어신호의 데이터 판독 범위가 만약 큐 위치 앞쪽에 가까운 제어 신호 및 데이터 기록 범위와 충돌이 일어나는 경우, 상기 제어 신호는 반드시 종속되는 기록 제어 신호가 실행된 후에야 실행해야 한다.
제2 뉴런 저장 유닛(63)은 입력 기울기 벡터 데이터 중 상기 2차 연산 모듈(6)과 대응되는 스칼라 데이터와 상기 2차 연산 모듈(6)이 계산해 획득한 출력 기울기 벡터 부분합을 저장하는 데 사용된다.
가중치 저장 유닛(64)은 상기 2차 연산 모듈(6)이 계산 과정에서 필요하는 가중치 데이터를 저장하는 데 사용된다. 각 2차 연산 모듈은 가중치 행렬 중 상기 2차 연산 모듈(6)이 저장하는 스칼라 데이터와 대응되는 열을 저장한다.
가중치 갱신 기울기 저장 유닛(65)은 상응되는 2차 연산 모듈이 가중치를 갱신하는 과정에서 필요하는 가중치 갱신 기울기 데이터를 저장하는 데 사용된다. 각 2차 연산 모듈(6)이 저장하는 가중치 갱신 기울기 데이터는 그가 저정한 가중치 데이터와 대응된다.
2차 연산 모듈(6)은 인공 신경망 완전연결층 역방향 트레이닝이 출력 기울기 벡터를 계산하는 과정에서 병렬이 가능한 전반부분과 가중치의 갱신을 구현하는 데 사용된다. 역방향 트레이닝의 출력 기울기 벡터 계산 주요 과정은 out_gradient=w*in_gradient인데, 여기에서, 가중치 행렬 w과 입력 기울기 벡터 in_gradient의 곱셈은 상관없는 병렬 계산 서브태스크로 나눌 수 있고, out_gradient와 in_gradient는 열 벡터며, 각 2차 연산 모듈이 in_gradient를 계산하는 과정에서 대응되는 일부 스칼라 원소와 가중치 행렬 w이 대응하는 열을 곱셈해 취득한 각 출력 벡터는 모두 최후 결과의 하나의 누적 대기 부분합이고, 상기 부분합은 인터커넥트 모듈(4)에서 합병해 최후 결과를 획득한다 따라서, 계산 과정은 병렬된 계산 부분과 후속 합병의 과정으로 변하였다. 각 2차 연산 모듈(6)은 출력 기울기 벡터의 부분합을 계산하고, 모든 부분합은 인터커넥트 모듈(4)에서 합병 조작을 완료해 최후의 출력 기울기 벡터를 획득한다. 각 2차 연산 모듈(6)은 또한 각 층의 출력 뉴런과 출력 기울기에 의거하여 가중치 기울기를 계산함으로서 본 2차 연산 모듈(6)이 저장한 가중치를 갱신한다. 정방향 연산과 역방향 트레이닝은 인공 신경망 알고리즘의 2 개 주요 과정으로서, 인공 신경망은 네트워크 중의 가중치를 트레이닝(갱신)해야 하는데, 우선은 입력 벡터가 현재 가중치에서 구성한 네트워크 중의 정방향 출력을 계산하는데 이는 정방향 과정이며, 이어서 출력 수치와 입력 벡터 자체의 주석 수치 간 차 수치에 의거하여 역방향에 따라 단계적으로 각 층의 가중치를 트레이닝(갱신)한다. 정방향 계산 과정에서 각 층의 출력 벡터와 활성 함수의 미분값을 저장한다. 상기 데이터는 역방향 트레이닝 과정에 필요한 것으로서, 역방향 트레이닝이 시작될 때 상기 데이터의 존재성이 보장되어야 한다. 정방향 연산에서 각 층의 출력 수치는 역방향 연산이 시작될 때 이미 존재하는 데이터로서, 데이터 엑세스 유닛(3)을 통해 1차 연산 모듈 내에 저장되고 인터커넥트 모듈을 통해 2차 연산 모듈로 발송한다. 1차 연산 모듈(5)은 출력 기울기 벡터에 근거하여 후속 계산을 진행하고, 예를 들어 출력 기울기 벡터에 정방향 연산 시 활성 함수의 도함수를 곱셈하여 다음 층의 입력 기울기 수치를 획득하다. 정방향 연산 시 활성 함수의 도함수는 역방향 연산이 시작될 때 이미 존재하는 데이터로서, 데이터 엑세스 유닛을 통해 1차 연산 모듈 내에 저장된다.
본 발명에 따른 실시예는 상기 장치에서 인공 신경망 완전연결층 역방향 트레이닝을 실행하는 명령 집합을 더 제공한다. 명령 집합은 CONFIG 명령, COMPUTE 명령, IO 명령, NOP 명령, JUMP 명령과 MOVE 명령을 포함한다. 여기에서,
CONFIG명령은 각층 인공 신경망 완전연결층 계산 시작 전에 현재 층 계산에 필요한 각종 상수를 배치한다.
COMPUTE 명령은 각층 인공 신경망 완전연결층의 산술 논리 계산을 완료한다.
IO 명령은 외부 주소 공간에서 계산에 필요한 입력 데이터를 판독하여 입력하고, 계산 완료 후 데이터를 외부 공간에 저장한다.
NOP 명령은 현재 장치 내부 모든 제어 신호 캐시 큐(queue) 내에 담긴 제어 신호를 정리하여 NOP 명령 전의 모든 제어 신호가 전부 완료되도록 보장한다. NOP 명령 자체에는 어떠한 조작도 포함되지 않는다.
JUMP 명령은 컨트롤러가 명령 저장 유닛에서 판독하는 다음 명령 주소의 점프를 제어해 제어 흐름의 점프를 구현하는 데 사용된다.
MOVE명령은 장치 내부 주소 공간의 특정 주소 데이터를 장치 내부 주소 공간의 다른 주소로 옮기는 것을 책임지며, 상기 과정은 연산 유닛에 독립적이고 실행 과정 중 연산 유닛의 자원을 점용하지 않는다.
도 6은 본 발명 실시예에 따른 인공 신경망 완전연결층 역방향 트레이닝 과정의 블록 다이어그램이다. 출력 기울기 벡터 계산 과정은 out_gradient=w*in_gradient이다. 여기에서, 가중치 행렬 w과 출력 기울기 벡터 in_gradient의 행렬 벡터 곱셈은 상관없는 병렬 계산 서브태스크로 나눌 수 있고, 각 2차 연산 모듈(6)은 출력 기울기 벡터의 부분합을 계산하며, 모든 부분합은 인터커넥트 모듈(4)에서 합병해 최후의 출력 기울기 벡터를 획득한다. 도 6에서 이전 층의 출력 기울기 벡터 input gradient[input gradient0, [input gradient1, [input gradient2, [input gradient3]에 대응되는 활성 함수 도함수[f'(out0), f'(out1), f'(out2), f'(out3)]를 곱셈해 본 층의 입력 기울기 벡터 in_gradient를 획득하고 다시 가중치 행렬 w[w00, w10, w20, w30]와 곱셈해 출력 기울기 벡터 output gradient[output gradient0, output gradient1, output gradient2, output gradient3]를 획득한다.
보다 상세하게, 도6에서 도시하는 바와 같이, input gradient(도 6 중의 [input gradient0,...,input gradient3])는 n+1 번째 층의 출력 기울기 벡터인데, 상기 벡터는 우선 정방향 연산 과정 중 n번째 층의 미분값(도 6 중의 [f'(out0),..., f'(out3)]과 곱해 n번째 층의 입력 기울기 벡터를 획득하고, 상기 과정은 1차 연산 모듈(5)에서 완성하며, 인터커넥트 모듈(4)이 2차 연산 모듈(6)로 발송해 2차 연산 모듈(6)의 뉴런 저장 유닛(63) 내에 임시 저장한다. 이어서, 입력 기울기 벡터를 가중치 행렬과 곱해 n번째 층의 출력 기울기 벡터를 획득한다. 이 과정에서 i번째 2차 연산 모듈은 입력 기울기 벡터 중 i번째 스칼라와 가중치 행렬 중 열 벡터[w_i0,..., w_iN]의 곱셈을 계산하고 획득한 출력 벡터는 인터커넥트 모듈(4)에서 합병 조작을 진행해 최후의 출력 기울기 벡터output gradient(도 6 중의 [output gradient0,...,output gradient3])를 획득한다.
가중치 갱신 기울기 계산 과정은 아래와 같다. X가 n번째 층의 출력 뉴런 벡터라 가정하는 경우, 1차 연산 모듈(5)은 인터커넥트 모듈(4)을 통해 상기 출력 뉴런을 각 2차 연산 모듈로 전송하고, 1차 연산 모듈(5)은 또한 인터커넥트 모듈(4)을 통해 n+1 번째 층의 출력 기울기 벡터 in_gradient를 각 2차 연산 모듈(6)로 전송하며; 각 2차 연산 모듈(6)은 출력 기울기 벡터 in_gradient 중 상기 2차 연산 모듈(6)과 대응되는 스칼라 데이터를 출력 뉴런 벡터 x와 곱해 본 2차 연산 모듈의 n 번째 층의 초기 가중치 갱신 기울기 벡터 dw_original를 획득한다. 모든 층의 초기 가중치 갱신 기울기 벡터를 계산한 후 가중치의 기울기 범위를 한정하기 위하여 1차 연산 모듈은 초기 가중치 갱신 기울기를 연산할 수 있다. 우선 하나의 양수 상수 clip_gradient를 설정하고; 이어서 모든 층의 초기 가중치 갱신 기울기의 제곱과 sumsq_diff를 계산하며; 이어서 sumsq_diff의 평방근을 산출해 12norm_diff를 획득한다. 12norm_diff가 clip_gradient보다 크면 하나의 스케일 팩터, 즉, scale_factor=clip_gradient/12norm_diff를 획득하고, 모든 초기 가중치 갱신 기울기 dw_original는 모두 각각 이 스케일 팩터 scale_factor를 곱해 가중치 갱신 기울기 dw를 획득한다.
Scale_dw를 획득한 후, w와 dw 및 지난번 가중치를 갱신할 때 사용한 가중치 갱신 기울기 dw'를 사용하고 명령이 설정한 학습율 α, 운동량 m와 가중치 감쇠 계수 η에 의거하여 가중치 w를 갱신한다. 전형적인 가중치 갱신 방식은 w=η*w+α*(dw+m*dw')이고, 또 다른 전형적인 가중치 갱신 방식은 w=w+α*dw이다.
본 발명 실시예에 따라 각 2차 연산 모듈은 w, dw와 dw'중 상기 2차 연산 모듈에 대응하는 열 벡터를 저장한다.
도 7은 일 실시예에 따른 단층 인공 신경망 완전연결층 역방향 트레이닝의 흐름도다.
상기 흐름도는 본 발명의 장치와 명령 집합을 이용해 도 6에 도시된 단층 인공 신경망 완전연결층 역방향 트레이닝을 구현하는 과정을 도시하였다.
단계 S1: 명령 저장 유닛(1)의 첫 주소에 하나의 IO 명령을 사전 저장한다.
단계 S2: 연산을 시작하며, 컨트롤러 유닛(2)이 명령 저장 유닛(1)의 첫 주소에서 상기 IO 명령을 판독하고, 디코딩한 제어 명령에 의거하여 데이터 엑세스 유닛(3)은 외부 주소 공간에서 상기 단층 인공 신경망 완전연결층 역방향 트레이닝과 관련되는 모든 명령을 판독하며, 이를 명령 저장 유닛(1) 내에 저장한다.
단계 S3: 컨트롤러 유닛(2)은 이어서 명령 저장 유닛에서 다음 IO명령을 판독하여 입력하고, 디코딩한 제어 명령에 의거하여 데이터 엑세스 유닛(3)은 외부 주소 공간에서 1차 연산 모듈(5)이 필요하는 모든 데이터를 1차 연산 모듈(5)의 제1 뉴런 저장 유닛(53)까지 판독하며, 상기 데이터는 기존에 정방향 연산을 진행할 때의 입력 뉴런과 활성 함수 미분값 및 입력 기울기 벡터를 포함한다.
단계 S4: 컨트롤러 유닛(2)은 이어서 명령 저장 유닛에서 다음 IO명령을 판독하여 입력하고, 디코딩한 제어 신호에 의거하여 데이터 엑세스 유닛(3)은 외부 주소 공간에서 2차 연산 모듈(6)이 필요하는 모든 가중치 데이터와 가중치 갱신 기울기 데이터를 판독하며, 각각 상응되는 2차 연산 모듈(6)의 가중치 저장 유닛(64)과 가중치 갱신 기울기 저장 유닛(65)에 저장한다.
단계S5: 컨트롤러 유닛(2)은 이어서 명령 저장 유닛에서 다음 CONFIG 명령을 판독하여 입력하고, 디코딩한 제어 신호에 의거하여 제1, 제2 연산 유닛은 본 층 인공 신경망 계산이 필요하는 각종 상수, 본 층 계산의 정밀도 설정, 가중치 갱신 시의 학습율 등을 포함한 연산 유닛 내부 레지스터의 수치를 배치한다.
단계 S6: 컨트롤러 유닛(2)은 이어서 명령 저장 유닛에서 다음 COMPUTE명령을 판독하여 입력하고, 디코딩한 제어 신호에 의거하여 1차 연산 모듈(5)은 인터커넥트 모듈(4)을 통하여 입력 기울기 벡터와 정방향 연산하는 입력 뉴런을 각 2차 연산 모듈(6)로 발송하고 상기 입력 기울기 벡터와 정방향 연산하는 입력 뉴런을 2차 연산 모듈(6)의 제2 뉴런 저장 유닛(63)에 저장한다.
단계 S7: COMPUTE 명령이 디코딩한 제어 신호에 의거하여 2차 연산 모듈(6)의 제2 연산 유닛(61)은 가중치 저장 유닛(64)에서 가중치 벡터(즉, 상기 2차 연산 모듈이 저장한 가중치 행렬의 일부 열)를 판독하고, 가중치 벡터와 입력 기울기 벡터의 벡터에 스칼라를 곱하는 연산을 완료해 출력 벡터 부분합을 인터커넥트 모듈(4)을 통해 반환하며; 이와 동시에 2차 연산 모듈은 입력 기울기 벡터와 입력 뉴런을 곱해 가중치 갱신 기울기를 얻어 가중치 갱신 기울기 저장 유닛(65)에 저장한다.
단계 S8: 인터커넥트 모듈(4)에 있어서, 각 2차 연산 모듈(6)이 반환한 출력 기울기 부분합은 인터커넥트 모듈의 합병 조작을 통해 완벽한 출력 기울기 벡터를 획득한다.
단계 S9: 1차 연산 모듈(5)은 인터커넥트 모듈(4)이 반환한 수치를 획득하고, COMPUTE명령이 디코딩한 제어 신호에 의거하여 제1 저장 유닛(53)에서 정방향 연산하는 활성 함수 미분값을 판독하며, 미분값에 반환한 출력 벡터를 곱해 다음 층 역방향 트레이닝의 입력 기울기 벡터를 획득하고, 이를 제2 뉴런 저장 유닛(53)에 기록한다.
단계 S10: 컨트롤러 유닛(2)은 이어서 명령 저장 유닛에서 다음COMPUTE 명령을 판독하여 입력하고, 디코딩한 제어 신호에 의거하여 2차 연산 모듈(6)은 가중치 저장 유닛(64)에서 가중치 w를 판독하며, 가중치 갱신 기울기 저장 유닛에서 금번 가중치 갱신 기울기 dw와 지난번 가중치 갱신에 사용한 가중치 갱신 기울기 dw'를 판독하고, 명령이 설정한 학습율 α, 운동량 m와 가중치 감쇠 계수 л에 의거하여 가중치 w를 갱신한다.
단계 S11: 컨트롤러 유닛은 이어서 명령 저장 유닛에서 다음 IO 명령을 판독하여 입력하고, 디코딩한 제어 신호에 의거하여 데이터 엑세스 유닛(3)은 제1 뉴런 저장 유닛(53) 중의 출력 기울기 벡터를 외부 주소 공간 지정 주소에 저장함으로써 연산을 종료한다.
다층 인공 신경망 완전연결층은 그 구현 과정이 단층 인공 신경망 완전연결층과 유사하고, 이전 층 인공 신경망 실행을 완료한 후 다음 층의 연산 명령은 1차 연산 모듈이 계산한 출력 뉴런 벡터를 다음 층 트레이닝의 입력 기울기 벡터로 삼아 상기 계산 과정을 진행하며, 명령 중의 가중치 주소와 가중치 갱신 기울기 주소 또한 본 층에 대응되는 주소로 변경될 수 있다.
인공 신경망 완전연결층 역방향 트레이닝 실행용 장치와 명령 집합을 채택하여 CPU와 GPU의 연산 성능 부족과 전단 디코딩 비용이 큰 문제를 해결하였다. 또한, 다층 인공 신경망 완전연결층 역방향 트레이닝연산에 대한 지원을 효과적으로 향상시킨다.
다층 인공 신경망 완전연결층 역방향 트레이닝 전용 온칩 메모리를 채택하여 입력 뉴런과 가중치 데이터의 재사용성을 충분히 발굴하며, 반복적으로 메모리가 이러한 데이터를 판독하는 것을 방지하고 메모리 엑세스 대역폭을 낮추며 메모리 대역폭이 다층 인공 신경망 완전연결층 역방향 트레이닝 성능 병목이 되는 현상을 방지한다.
앞서 도면에서 기재한 진행과정 또는 방법에는 하드웨어(예를 들어 회로, 전용 논리 등), 펌웨어, 소프트웨어(예를 들어 구체화된 비일시적 컴퓨터 판독 가능 매체의 소프트웨어)를 포함할 수 있으며, 또는 양자 조합의 처리 논리(processing logic)로 실행할 수 있다. 비록 상기 내용이 특정 순서 조작에 따라 진행과정 또는 방법을 설명하기는 하나, 상기에서 설명한 특정 조작은 다른 순서로 실행할 수 있다. 그 외 병렬하여 비(非)순서적으로 일부 조작을 실행할 수 있다.
상기 발명의 설명에서는 특정한 예시적 실시예를 참조하여 본 발명의 각 실시예를 설명하였다. 각 실시예에 대하여 진행할 수 있는 각종 수식은 상기 첨부한 특허청구범위에 있어서 본 발명의 더욱 광범위한 정신과 범위에 위배되지 않는다. 이에 상응하여, 발명의 설명과 첨부 도면은 설명을 위한 것이므로 본 발명을 한정하지 않는다.

Claims (11)

  1. 명령 저장 유닛, 컨트롤러 유닛, 데이터 엑세스 유닛, 인터커넥트 모듈, 1차 연산 모듈과 복수개 2차 연산 모듈을 포함하되;
    명령 저장 유닛은 명령을 저장하는 데 사용되고;
    컨트롤러 유닛은 명령 저장 유닛으로부터 명령을 판독하고 상기 명령을 인터커넥트 모듈, 1차 연산 모듈과 상기 복수개 2차 연산 모듈의 행위를 제어하는 제어 신호로 디코딩하는 데 사용되며;
    데이터 엑세스 유닛은 외부 주소 공간과 상기 장치 간의 데이터 또는 명령을 판독 및 기록하는 데 사용되고;
    각 층 인공 신경망 완전연결층 역방향 트레이닝 계산 시작 단계에서 1차 연산 모듈은 인터커넥트 모듈을 통해 모든 2차 연산 모듈에게 본 층의 입력 기울기 벡터를 전송하는데 사용되며;
    각 2차 연산 모듈은 입력 기울기 벡터 중 대응되는 일부 스칼라 원소와 가중치 행렬의 대응 열을 곱한 적을 계산해 출력 기울기 벡터 부분합을 획득하는 데 사용되고;
    2차 연산 모듈의 계산 과정이 완료된 후 인터커넥트 모듈은 단계적으로 각 2차 연산 모듈의 출력 기울기 벡터 부분합을 합병해 본 층의 출력 기울기 벡터를 획득하는 데 사용되며;
    1차 연산 모듈은 각 층의 계산 과정에서 본 층의 출력 기울기 벡터를 이용해 후속 계산을 완성하는 데 사용되는 것을 특징으로 하는 인공 신경망 완전결합층 역방향 트레이닝 실행용 장치.
  2. 제1항에 있어서,
    1차 연산 모듈은 각 층의 출력 기울기 벡터와 다음 층의 활성 함수 도출 수치를 대위 곱셈해 다음 층의 입력 기울기 벡터로 삼는 것을 특징으로 하는 인공 신경망 완전결합층 역방향 트레이닝 실행용 장치.
  3. 제1항에 있어서,
    1차 연산 모듈은 제1 연산 모듈, 제1 데이터 종속성 판정 유닛과 제1 뉴런 저장 유닛을 포함하되;
    제1 뉴런 저장 유닛은 1차 연산 모듈이 계산 과정에서 사용하는 입력 데이터와 출력 데이터를 저장하는 데 사용되고;
    제1 연산 유닛은 1차 연산 모듈의 각종 연산 기능을 완료하는 데 사용되며;
    제1 데이터 종속성 판정 유닛은 제1 연산 유닛이 제1 뉴런 저장 유닛의 포트를 판독해 기록하고, 제1 뉴런 저장 유닛 중 양자화 또는 연속성 데이터의 판독 및 기록 일치성을 보장하며, 제1 뉴런 저장 유닛에서 입력 기울기 벡터를 판독하고 인터커넥트 모듈을 통해 각 2차 연산 모듈에게 발송하는 데 사용되고;
    인터커넥트 모듈에서 발송된 출력 기울기 벡터가 제1 연산 유닛에 발송되는 것을 특징으로 하는 인공 신경망 완전결합층 역방향 트레이닝 실행용 장치.
  4. 제1항에 있어서,
    각 2차 연산 모듈은 제2 연산 유닛, 제2 데이터 종속성 판정 유닛, 제2 뉴런 저장 유닛, 가중치 저장 유닛과 가중치 갱신 기울기 저장 유닛을 포함하되;
    제2 연산 유닛은 컨트롤러 유닛이 송출하는 제어 신호를 수신해 산수 논리 연산을 진행하는 데 사용되고;
    제2 데이터 종속성 판정 유닛은 계산 과정에서 제2 뉴런 저장 유닛, 가중치 저장 유닛과 가중치 갱신 기울기 저장 유닛의 판독 및 기록 조작을 책임지고 제2 뉴런 저장 유닛, 가중치 저장 유닛과 가중치 갱신 기울기 저장 유닛의 판독 및 기록 일치성을 보장하는 데 사용되며;
    제2 뉴런 저장 유닛은 입력 기울기 벡터 데이터 중 상기 2차 연산 모듈과 대응되는 스칼라 데이터와 상기 2차 연산 모듈이 계산해 획득한 출력 기울기 벡터 부분합을 저장하는 데 사용되고;
    가중치 저장 유닛은 가중치 행렬 중 상기 2차 연산 모듈이 저장한 상기 스칼라 데이터와 대응되는 열을 저장하는 데 사용되며;
    가중치 갱신 기울기 저장 유닛은 상기 2차 연산 모듈이 가중치를 갱신하는 과정에서 필요하는 가중치 갱신 기울기 데이터를 저장하는 데 사용되고 각 2차 연산 모듈이 저장하는 가중치 갱신 기울기 데이터는 그가 저정한 가중치 데이터와 대응되는 것을 특징으로 하는 인공 신경망 완전결합층 역방향 트레이닝 실행용 장치.
  5. 제4항에 있어서,
    가중치 갱신 기울기 계산 과정에서, Χ가 n번째 층의 출력 뉴런 벡터라 가정하는 경우, 1차 연산 모듈은 인터커넥트 모듈을 통해 상기 출력 뉴런을 각 2차 연산 모듈로 전송하고, 1차 연산 모듈은 또한 인터커넥트 모듈 통해 n+1 번째 층의 출력 기울기 벡터 in_gradient를 각 2차 연산 모듈로 전송하며;
    각 2차 연산 모듈은 출력 기울기 벡터 in_gradient 중 상기 2차 연산 모듈과 대응되는 스칼라 데이터를 출력 뉴런 벡터 x와 곱해 본 2차 연산 모듈의 n 번째 층의 초기 가중치 갱신 기울기 벡터 dw_original를 획득하는 것을 특징으로 하는 인공 신경망 완전결합층 역방향 트레이닝 실행용 장치.
  6. 제5항에 있어서,
    모든 층의 초기 가중치 갱신 기울기 벡터를 계산한 후 1차 연산 모듈은 초기 가중치 갱신 기울기를 연산하고, 우선 하나의 양수 상수 clip_gradient를 설정하며; 이어서 모든 층의 초기 가중치 갱신 기울기의 제곱과 sumsq_diff를 계산하고, 이어서 sumsq_diff의 평방근을 산출해 12norm_diff를 획득하며;
    12norm_diff가 clip_gradient보다 크면 하나의 스케일 팩터 scale_factor=clip_gradient/12norm_diff를 획득하고, 모든 초기 가중치 갱신 기울기 dw_original는 모두 각각 이 스케일 팩터 scale_factor를 곱해 가중치 갱신 기울기 dw를 획득하는 것을 특징으로 하는 인공 신경망 완전결합층 역방향 트레이닝 실행용 장치.
  7. 제6항에 있어서,
    scale_dw를 획득한 후, w와 dw 및 지난번 가중치를 갱신할 때 사용한 가중치 갱신 기울기 dw'를 사용하고 명령이 설정한 학습율 α, 운동량 m와 가중치 감쇠 계수 η에 의거하여 가중치 w를 갱신하는 것을 특징으로 하는 인공 신경망 완전결합층 역방향 트레이닝 실행용 장치.
  8. 제7항에 있어서,
    가중치 갱신 방식은 w=η*w+α*(dw+m*dw')이거나 또는 w=w+α*dw인 것을 특징으로 하는 인공 신경망 완전결합층 역방향 트레이닝 실행용 장치.
  9. 제7항에 있어서,
    각 2차 연산 모듈은 w, dw와 dw' 중 상기 2차 연산 모듈에 대응되는 열 벡터를 저장하는 것을 특징으로 하는 인공 신경망 완전결합층 역방향 트레이닝 실행용 장치.
  10. 명령 저장 유닛의 첫 주소에 하나의 IO 명령을 사전 저장하는 단계 S1;
    연산을 시작하며, 컨트롤러 유닛이 명령 저장 유닛의 첫 주소에서 상기 IO 명령을 판독하고, 디코딩한 제어 명령에 의거하여 데이터 엑세스 유닛은 외부 주소 공간에서 상기 단층 인공 신경망 완전연결층 역방향 트레이닝과 관련되는 모든 명령을 판독하며, 이를 명령 저장 유닛 내에 저장하는 단계 S2;
    컨트롤러 유닛은 이어서 명령 저장 유닛에서 다음 IO명령을 판독하여 입력하고, 디코딩한 제어 명령에 의거하여 데이터 엑세스 유닛은 외부 주소 공간에서 1차 연산 모듈이 필요하는 모든 데이터를 1차 연산 모듈의 제1 뉴런 저장 유닛까지 판독하며, 상기 데이터는 기존에 정방향 연산을 진행할 때의 입력 뉴런과 활성 함수 미분값 및 입력 기울기 벡터를 포함하는 단계 S3;
    컨트롤러 유닛은 이어서 명령 저장 유닛에서 다음 IO명령을 판독하여 입력하고, 디코딩한 제어 신호에 의거하여 데이터 엑세스 유닛은 외부 주소 공간에서 2차 연산 모듈이 필요하는 모든 가중치 데이터와 가중치 갱신 기울기 데이터를 판독하며, 각각 상응되는 2차 연산 모듈의 가중치 저장 유닛과 가중치 갱신 기울기 저장 유닛에 저장하는 단계 S4;
    컨트롤러 유닛은 이어서 명령 저장 유닛에서 다음 CONFIG 명령을 판독하여 입력하고, 디코딩한 제어 신호에 의거하여 제1, 제2 연산 유닛은 본 층 인공 신경망 계산이 필요하는 각종 상수, 본 층 계산의 정밀도 설정, 가중치 갱신 시의 학습율 등을 포함한 연산 유닛 내부 레지스터의 수치를 배치하는 단계S5;
    컨트롤러 유닛은 이어서 명령 저장 유닛에서 다음 COMPUTE명령을 판독하여 입력하고, 디코딩한 제어 신호에 의거하여 1차 연산 모듈은 먼저 인터커넥트 모듈을 통하여 입력 기울기 벡터와 정방향 연산하는 입력 뉴런을 각 2차 연산 모듈로 발송하고 상기 입력 기울기 벡터와 정방향 연산하는 입력 뉴런을 2차 연산 모듈의 제2 뉴런 저장 유닛에 저장하는 단계 S6;
    COMPUTE 명령이 디코딩한 제어 신호에 의거하여 2차 연산 모듈의 제2 연산 유닛은 가중치 저장 유닛(64)에서 가중치 벡터를 판독하고, 가중치 벡터와 입력 기울기 벡터의 벡터에 스칼라는 곱하는 연산을 완료해 출력 벡터 부분합을 인터커넥트 모듈을 통해 반환하며; 이와 동시에 2차 연산 모듈은 입력 기울기 벡터와 입력 뉴런을 곱해 가중치 갱신 기울기를 얻어 가중치 갱신 기울기 저장 유닛(65)에 저장하는 단계 S7;
    인터커넥트 모듈에 있어서, 각 2차 연산 모듈이 반환한 출력 기울기 부분합은 인터커넥트 모듈의 합병 조작을 통해 완벽한 출력 기울기 벡터를 획득하는 단계 S8;
    1차 연산 모듈은 인터커넥트 모듈이 반환한 수치를 획득하고, COMPUTE명령이 디코딩한 제어 신호에 의거하여 뉴런 저장 유닛에서 정방향 연산하는 활성 함수 미분값을 판독하며, 미분값과 반환한 출력 벡터를 곱해 다음 층 역방향 트레이닝의 입력 기울기 벡터를 획득하고, 이를 제1 뉴런 저장 유닛에 기록하는 단계S9;
    컨트롤러 유닛은 이어서 명령 저장 유닛에서 다음 COMPUTE 명령을 판독하여 입력하고, 디코딩한 제어 신호에 의거하여 2차 저장 모듈은 가중치 저장 유닛에서 가중치 w를 판독하며, 가중치 갱신 기울기 저장 유닛에서 금번 가중치 갱신 기울기 dw와 지난번 가중치 갱신에 사용한 가중치 갱신 기울기 dw'를 판독하고, 명령이 설정한 학습율 α, 운동량 m과 가중치 감쇠 계수 η에 의거하여 가중치 w를 갱신하는 단계 S10; 및
    컨트롤러 유닛은 이어서 명령 저장 유닛에서 다음 IO 명령을 판독하여 입력하고, 디코딩한 제어 신호에 의거하여 데이터 엑세스 유닛은 제1 뉴런 저장 유닛중의 출력 기울기 벡터를 외부 주소 공간 지정 주소에 저장함으로써 연산을 종료하는 단계 S11;
    를 포함하는 것을 특징으로 하는 단층 인공 신경망 완전결합층 역방향 트레이닝 실행 방법.
  11. 각 층에 대해 청구항10에 따른 방법을 실행하고;
    이전 층 인공 신경망 완전연결층이 실행 완료한 후 다음 층의 연산 명령은 1차 연산 모듈이 계산한 출력 기울기 벡터를 다음 층 트레이닝의 입력 기울기 벡터로 삼아 청구항10에 따른 방법을 실행하며, 명령 중의 가중치 주소와 가중치 갱신 기울기 주소 또한 본 층에 대응되는 주소로 변경하는 것을 특징으로 하는 다층 인공 신경망 완전연결층 역방향 트레이닝 실행 방법.
KR1020187033950A 2016-04-29 2016-05-05 완전연결층 신경망 역방향 트레이닝 실행용 장치와 방법 KR102470264B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201610285062.0A CN107341541B (zh) 2016-04-29 2016-04-29 一种用于执行全连接层神经网络训练的装置和方法
CN201610285062.0 2016-04-29
PCT/CN2016/081114 WO2017185394A1 (zh) 2016-04-29 2016-05-05 一种用于执行全连接层神经网络反向训练的装置和方法

Publications (2)

Publication Number Publication Date
KR20190003612A true KR20190003612A (ko) 2019-01-09
KR102470264B1 KR102470264B1 (ko) 2022-11-23

Family

ID=60160559

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187033950A KR102470264B1 (ko) 2016-04-29 2016-05-05 완전연결층 신경망 역방향 트레이닝 실행용 장치와 방법

Country Status (5)

Country Link
US (1) US20190065958A1 (ko)
EP (1) EP3451242A4 (ko)
KR (1) KR102470264B1 (ko)
CN (2) CN109376861B (ko)
WO (1) WO2017185394A1 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180053086A1 (en) * 2016-08-22 2018-02-22 Kneron Inc. Artificial neuron and controlling method thereof
CN108108662B (zh) * 2017-11-24 2021-05-25 深圳市华尊科技股份有限公司 深度神经网络识别模型及识别方法
CN111242294B (zh) * 2017-12-14 2023-08-25 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN108108189B (zh) * 2017-12-15 2020-10-30 安徽寒武纪信息科技有限公司 一种计算方法及相关产品
CN108053029B (zh) * 2017-12-27 2021-08-27 上海闪易半导体有限公司 一种基于存储阵列的神经网络的训练方法
CN110163334B (zh) * 2018-02-11 2020-10-09 上海寒武纪信息科技有限公司 集成电路芯片装置及相关产品
CN110163349B (zh) * 2018-02-12 2021-03-23 上海寒武纪信息科技有限公司 一种网络模型的计算方法及装置
US11169803B2 (en) 2018-02-13 2021-11-09 Shanghai Cambricon Information Technology Co., Ltd. Computing device and method
EP3617959B1 (en) * 2018-02-13 2021-08-04 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
CN111368987B (zh) * 2018-12-25 2023-03-24 上海寒武纪信息科技有限公司 一种神经网络计算装置和方法
CN110147872B (zh) * 2018-05-18 2020-07-17 中科寒武纪科技股份有限公司 编码存储装置及方法、处理器及训练方法
CN110728364A (zh) * 2018-07-17 2020-01-24 上海寒武纪信息科技有限公司 一种运算装置和运算方法
US11423284B2 (en) * 2018-09-07 2022-08-23 Black Sesame Technologies, Inc Subgraph tile fusion in a convolutional neural network
CN109165738B (zh) * 2018-09-19 2021-09-14 北京市商汤科技开发有限公司 神经网络模型的优化方法及装置、电子设备和存储介质
CN109447258B (zh) * 2018-09-19 2021-09-14 北京市商汤科技开发有限公司 神经网络模型的优化方法及装置、电子设备和存储介质
CN110968404B (zh) * 2018-09-30 2023-04-28 阿里巴巴集团控股有限公司 一种设备数据处理方法及装置
CN110059797B (zh) * 2018-10-10 2020-03-10 中科寒武纪科技股份有限公司 一种计算装置及相关产品
CN109657788A (zh) * 2018-12-18 2019-04-19 北京中科寒武纪科技有限公司 数据处理方法、装置及相关产品
CN111368986B (zh) * 2018-12-25 2023-03-10 上海寒武纪信息科技有限公司 一种神经网络计算装置和方法
CN109740739B (zh) * 2018-12-29 2020-04-24 中科寒武纪科技股份有限公司 神经网络计算装置、神经网络计算方法及相关产品
CN111722937B (zh) * 2019-03-21 2024-05-10 阿里巴巴集团控股有限公司 深度学习权重更新方法、装置
WO2020192582A1 (zh) * 2019-03-26 2020-10-01 上海寒武纪信息科技有限公司 神经网络运算模块及方法
JP7370158B2 (ja) * 2019-04-03 2023-10-27 株式会社Preferred Networks 情報処理装置および情報処理方法
CN110032450B (zh) * 2019-04-17 2021-04-20 中山大学 一种基于固态盘扩展内存的大规模深度学习方法及系统
CN113222101A (zh) * 2020-02-05 2021-08-06 北京百度网讯科技有限公司 深度学习处理装置、方法、设备和存储介质
CN112329941B (zh) * 2020-11-04 2022-04-12 支付宝(杭州)信息技术有限公司 深度学习模型的更新方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5517596A (en) * 1991-05-17 1996-05-14 International Business Machines Corporation Learning machine synapse processor system apparatus
CN103996069B (zh) * 2013-02-20 2018-04-03 百度在线网络技术(北京)有限公司 一种基于多gpu的bpnn训练方法和装置
CN103150596B (zh) * 2013-02-22 2015-12-23 百度在线网络技术(北京)有限公司 一种反向传播神经网络dnn的训练系统
CN105488565A (zh) * 2015-11-17 2016-04-13 中国科学院计算技术研究所 加速深度神经网络算法的加速芯片的运算装置及方法
CN107545303B (zh) * 2016-01-20 2021-09-07 中科寒武纪科技股份有限公司 用于稀疏人工神经网络的计算装置和运算方法
CN106991478B (zh) * 2016-01-20 2020-05-08 中科寒武纪科技股份有限公司 用于执行人工神经网络反向训练的装置和方法
WO2017185248A1 (zh) * 2016-04-27 2017-11-02 北京中科寒武纪科技有限公司 用于执行人工神经网络自学习运算的装置和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Ramón J. Aliaga et al., System-on-Chip Implementation of Neural Network Training on FPGA, International Journal On Advances in Systems and Measurements, vol 2 no 1, 44-55pages (2009.)* *

Also Published As

Publication number Publication date
WO2017185394A1 (zh) 2017-11-02
CN107341541B (zh) 2021-01-29
US20190065958A1 (en) 2019-02-28
CN109376861A (zh) 2019-02-22
EP3451242A4 (en) 2019-12-25
EP3451242A1 (en) 2019-03-06
KR102470264B1 (ko) 2022-11-23
CN107341541A (zh) 2017-11-10
CN109376861B (zh) 2020-04-24

Similar Documents

Publication Publication Date Title
KR20190003612A (ko) 완전연결층 신경망 역방향 트레이닝 실행용 장치와 방법
US11922132B2 (en) Information processing method and terminal device
KR102544275B1 (ko) 콘볼루션 신경망 트레이닝 실행용 장치와 방법
KR102402111B1 (ko) 콘볼루션 신경망 정방향 연산 실행용 장치와 방법
CN111860811B (zh) 一种用于执行人工神经网络全连接层正向运算的装置和方法
CN110188870B (zh) 用于执行人工神经网络自学习运算的装置和方法
CN109284825B (zh) 用于执行lstm运算的装置和方法
KR102175044B1 (ko) 인공 신경망 역방향 트레이닝 실행용 장치와 방법
US10872290B2 (en) Neural network processor with direct memory access and hardware acceleration circuits
KR20180102059A (ko) 인공 신경망 정방향 연산 실행용 장치와 방법
EP3564863B1 (en) Apparatus for executing lstm neural network operation, and operational method
WO2017185347A1 (zh) 用于执行循环神经网络和lstm运算的装置和方法
US20210133854A1 (en) Information processing method and terminal device
WO2017185248A1 (zh) 用于执行人工神经网络自学习运算的装置和方法
CN109711540B (zh) 一种计算装置及板卡
CN111860814B (zh) 一种用于执行batch normalization运算的装置和方法

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right