KR102413028B1 - 중첩 신경망을 프루닝하는 방법 및 장치 - Google Patents
중첩 신경망을 프루닝하는 방법 및 장치 Download PDFInfo
- Publication number
- KR102413028B1 KR102413028B1 KR1020170103569A KR20170103569A KR102413028B1 KR 102413028 B1 KR102413028 B1 KR 102413028B1 KR 1020170103569 A KR1020170103569 A KR 1020170103569A KR 20170103569 A KR20170103569 A KR 20170103569A KR 102413028 B1 KR102413028 B1 KR 102413028B1
- Authority
- KR
- South Korea
- Prior art keywords
- weight
- neural network
- threshold
- layer
- value
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
- G06F17/13—Differential equations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
- G06N3/065—Analogue means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/046—Forward inferencing; Production systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Operations Research (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
Abstract
본 기술에 의한 신경망의 프루닝 방법은 신경망에 포함된 다수의 레이어에 대해서 임계점을 초기화하는 임계점 초기화 단계; 다수의 레이어 중 임계점을 수정할 레이어를 선택하는 레이어 선택 단계; 선택된 레이어에 대해서 임계점을 조절하는 임계점 조절 단계; 및 신경망에 포함된 시냅스의 가중치를 조절하는 가중치 조절 단계를 포함한다.
Description
본 발명은 학습이 완료된 중첩 신경망(CONVOLUTIONAL NEURAL NETWORK: CNN)을 프루닝하는 방법과 장치에 관한 것이다.
이미지 인식, 자율 주행 자동차 등의 인공 지능 분야에서 중첩 신경망이 널리 이용되고 있다.
중첩 신경망은 입력 레이어, 출력 레이어, 및 그 사이의 하나 또는 둘 이상의 내부 레이어를 포함한다.
출력 레이어는 하나 또는 둘 이상의 뉴런을 포함하며 입력 레이어 및 내부 레이어는 각각 다수의 뉴런을 포함한다.
인접한 레이어에 포함된 뉴런들은 시냅스를 통해 다양하게 연결되며 각각의 시냅스에는 가중치가 주어진다.
입력 레이어에 포함된 뉴런들은 예를 들어 인식 대상이 되는 이미지와 같이 입력 신호에 따라 그 값이 정해진다.
내부 레이어와 출력 레이어에 포함된 뉴런들의 값은 그 이전 레이어에 포함된 뉴런과 시냅스에 따라 값이 연산된다.
이와 같이 연결된 중첩 신경망은 트레이닝 동작을 통해 시냅스의 가중치가 결정된다.
훈련이 완료된 중첩 신경망을 이용하여 이미지 인식을 수행하는 추론 동작을 예로 들면 입력 이미지는 입력 레이어의 다수의 뉴런들의 값을 결정하고 이후 다수의 연산을 통해 내부 레이어를 거쳐 출력 레이어의 뉴런에 인식 결과가 출력된다.
이와 같이 중첩 신경망을 이용한 추론 동작에서는 모든 뉴런에 대해서 연산 동작을 수행해야 하므로 매우 큰 계산 성능을 필요로 하는 문제가 있다.
S. Han, J. Pool, J. Tran, W. J. Dally, "Learning both weights and connections for efficient neural networks", Proceedings of Advances in Neural Information Processing Systems, 2015.
본 발명은 추론의 정확성을 유지하면서 계산의 복잡성을 줄일 수 있도록 중첩 신경망을 프루닝하는 방법과 이를 수행하는 장치를 제공한다.
본 발명의 일 실시예에 의한 신경망의 프루닝 방법은 신경망에 포함된 다수의 레이어에 대해서 임계점을 초기화하는 임계점 초기화 단계; 다수의 레이어 중 임계점을 수정할 레이어를 선택하는 레이어 선택 단계; 선택된 레이어에 대해서 임계점을 조절하는 임계점 조절 단계; 및 신경망에 포함된 시냅스의 가중치를 조절하는 가중치 조절 단계를 포함한다.
본 발명의 일 실시예에 의한 프루닝 장치는 덧셈과 곱셈을 포함하는 컨벌루션 연산을 수행하는 연산부; 연산부에 입력되는 입력 신호를 생성하는 입력 신호 생성부; 프루닝 대상이 되는 신경망에 포함되는 다수의 레이어 중 임계점을 조절할 레이어를 선택하고 선택된 레이어에 대해서 임계점을 조절하는 임계점 조절부; 신경망에 포함되는 다수의 시냅스의 가중치를 조절하는 가중치 조절부; 및 임계점 조절부 및 가중치 조절부를 제어하여 신경망에 대한 프루닝 동작을 제어하는 제어부를 포함한다.
본 기술에 의한 프루닝 방법과 장치를 통해 추론의 정확성을 유지하면서 계산의 복잡도를 현저하게 줄일 수 있다.
도 1은 본 발명의 일 실시예에 의한 프루닝 방법을 통해 프루닝된 신경망을 나타내는 도면.
도 2는 본 발명의 일 실시예에 의한 프루닝 방법을 설명하는 순서도.
도 3은 도 2에서 임계점을 수정할 레이어를 선택하는 과정을 구체적으로 나타낸 순서도.
도 4는 도 2에서 시냅스의 가중치를 수정하는 과정을 구체적으로 나타내는 순서도.
도 5는 도 4의 방법을 설명하는 신경망을 나타낸 그래프.
도 6은 본 발명에 의한 프루닝 효과를 설명하는 그래프.
도 7은 본 발명의 일 실시예에 의한 프루닝 장치를 나타낸 블록도.
도 2는 본 발명의 일 실시예에 의한 프루닝 방법을 설명하는 순서도.
도 3은 도 2에서 임계점을 수정할 레이어를 선택하는 과정을 구체적으로 나타낸 순서도.
도 4는 도 2에서 시냅스의 가중치를 수정하는 과정을 구체적으로 나타내는 순서도.
도 5는 도 4의 방법을 설명하는 신경망을 나타낸 그래프.
도 6은 본 발명에 의한 프루닝 효과를 설명하는 그래프.
도 7은 본 발명의 일 실시예에 의한 프루닝 장치를 나타낸 블록도.
이하에서는 첨부한 도면을 참조하여 본 발명의 실시예를 개시한다.
도 1은 본 발명의 일 실시예에 의한 프루닝 방법을 통해 프루닝된 네트워크를 나타내는 도면이다.
본 실시예에서 중첩 신경망은 입력 레이어, 출력 레이어 및 둘 사이의 제 1 내부 레이어 및 제 2 내부 레이어를 포함한다.
각 레이어는 하나 또는 둘 이상의 뉴런을 포함하며 인접한 레이어에 포함된 뉴런들은 시냅스를 통해 연결된다.
본 발명에 의한 프루닝 방법이 적용되는 중첩 신경망은 트레이닝이 완료된 상태로서 각각의 시냅스는 모두 트레이닝 결과 일정한 값의 가중치를 가진다.
출력 레이어는 하나 또는 둘 이상의 뉴런을 포함하며 그 값은 최종적인 추론 결과를 나타낸다.
이에 따라 본 발명에서 프루닝 대상이 되는 레이어는 입력 레이어와 내부 레이어이다.
본 발명에서 프루닝은 각 레이어마다 임계점을 설정하는 동작을 의미한다.
본 발명에서 각 레이어에 할당된 임계점은 해당 레이어의 뉴런을 활성 뉴런과 비활성 뉴런으로 구분하는 역할을 한다.
예를 들어 뉴런의 값이 임계점 이하의 크기를 가지는 경우 해당 뉴런은 비활성 뉴런으로 구분되고 그 값은 0으로 설정되고 그렇지 않은 경우 해당 뉴런은 활성 뉴런으로 구분되어 본래의 값을 유지한다.
도 1에서 비활성 뉴런에서 출발하는 시냅스는 점선으로 표시되고 활성 뉴런에서 출발하는 시냅스는 실선으로 표시되었다.
비활성 뉴런은 그 값이 0으로 간주되므로 그 다음 레이어에 포함된 뉴런의 값들을 결정하는데 영향을 주지 않는다.
따라서 다음 단계의 레이어의 각 뉴런의 값들을 계산하는 과정에서 이전 레이어에서 비활성 뉴런과 연결된 시냅스들은 무시할 수 있고 이에 따라 계산의 복잡도가 완화될 수 있다.
본 발명에서는 레이어 별로 임계점을 수정한 후 신경망에 포함된 전체 시냅스의 가중치를 조절하는 동작을 추가로 수행한다.
이를 통해 계산의 복잡도를 낮추면서 추론의 정확도를 높이게 된다.
도 2는 본 발명의 일 실시예에 의한 프루닝 방법을 설명하는 순서도이다.
본 실시예에 의한 프루닝 방법은 트레이닝이 완료되어 모든 시냅스의 가중치가 결정된 중첩 신경망에 대해서 프루닝을 수행한다.
이에 따라 도 2의 순서도는 이러한 중첩 신경망이 준비된 것을 가정한다.
먼저 레이어별로 임계점을 초기화한다(S100).
이때 레이어는 입력 레이어와 내부 레이어를 포함한다.
임계점은 프루닝 과정에서 뉴런을 활성 또는 비활성으로 결정하는 기준이 된다.
예를 들어 뉴런의 크기가 임계점 이하면 비활성 뉴런이 되고 그렇지 않은 경우 활성 뉴런이 된다.
비활성 뉴런으로 지정된 뉴런은 그 값이 0으로 조정된다.
다음으로 임계점을 수정할 레이어를 선택한다(S200).
본 실시예에서는 입력 레이어와 내부 레이어 중에서 임계점을 조절할 레이어를 선택하여 해당 레이어에 대해서 임계점을 조절한다.
이때 계산량이 감소하는 정도, 추론 결과의 정확도가 감소하는 정도를 함께 고려할 수 있다.
이에 대해서는 도 3을 참조하여 구체적으로 설명한다.
도 3의 동작을 위하여 일정한 크기의 테스트 세트를 사용할 수 있다.
본 발명의 발명자는 이미지 인식을 위한 중첩 신경망을 사용하였으며 테스트 세트로서 5만개의 이미지를 사용하였다.
먼저 인덱스(N)를 1로 초기화한다(S210).
다음으로 N번째 레이어에 대해서 임계점을 조절한다(S220).
임계점을 조절하는 정도는 실시예에 따라 달라질 수 있으나 일반적으로 임계점의 크기가 증가하는 방향으로 조절된다.
예를 들어 첫 번째 레이어는 입력 레이어, 두 번째 레이어는 제 1 내부 레이어가 될 수 있다.
N 번째 레이어에 대해서 임계점을 조절한 후 계산량의 감소율과 정확도의 감소율을 측정한다(S230).
이때 계산량의 감소율과 정확도의 감소율은 모든 레이어에 대해서 임계점을 조절하지 않은 본래의 신경망에 대해서 테스트 세트를 적용하였을 때를 기준으로 측정할 수 있다.
이후 인덱스(N)가 레이어 개수-1과 같은지 판단한다(S240).
레이어 개수 -1은 전체 레이어에서 출력 레이어를 제외한 나머지 레이어들의 개수에 해당한다.
인덱스가 레이어 개수 -1이 아니면 인덱스를 증가시키고(S250) 단계(S220)로 돌아가 전술한 동작을 반복한다.
이에 따라 각각의 레이어에 대해서 임계점을 수정했을 때의 정확도 감소율과 계산량 감소율이 결정된다.
단계(S240)에서 인덱스(N)가 레이어 개수-1과 동일하면 단계(S260)로 진행한다.
예를 들어 (계산량 감소율/정확도 감소율)이 최대인 레이어를 선택할 수 있다.
(계산량 감소율/정확도 감소율)은 정확도 감소율이 적을수록 그리고 계산량 감소율이 클수록 더 큰 값을 가진다.
본 실시예에서는 (계산량 감소율/정확도 감소율)를 최대로 만드는 레이어를 선택한다.
도 2로 돌아가 단계(S200)에서 임계점을 수정할 레이어가 선택되면 해당 레이어에 대해서 임계점을 수정한다(S300).
이후 신경망의 전체 시냅스에 대해서 가중치를 조절한다(S400).
단계(S300)에서 어느 한 레이어의 임계점이 조절되면 정확도가 감소하는 것이 일반적이다.
단계(S400)에서는 정확도의 감소 정도가 완화되도록 즉 정확도가 증가하도록 전체 시냅스를 대상으로 가중치를 조절한다.
단계(S400)에서 전체 시냅스의 가중치를 조절하는 단계는 도 4와 도 5를 참조하여 구체적으로 설명한다.
먼저 손실 함수를 계산하고 인덱스(N)를 1로 초기화한다(S410).
도 5는 도 4의 방법을 설명하는 신경망을 나타낸 그래프이다.
도 5의 신경망에는 도 1의 신경망에 손실 레이어를 더 포함한다.
손실 레이어는 하나의 뉴런을 포함하며 그 값은 손실 함수의 값(L)에 해당한다.
출력 레이어의 뉴런들의 값들은 벡터로 표현할 수 있다.
이때 입력 데이터를 신경망에 입력하여 실제로 출력되는 벡터를 출력 벡터라하고, 입력 데이터에 따라 바람직하게 출력되어야 할 벡터를 진리 벡터라고 지칭한다.
이 경우 손실 함수는 출력 벡터와 진리 벡터 사이의 거리를 변수로 하는 함수로 표현될 수 있다.
일 실시예에서 손실 함수는 출력 벡터와 진리 벡터 사이의 거리 그 자체일 수 있다. 출력 함수는 실시예에 따라 다양하게 정의될 수 있다.
이후 N번째 시냅스에 대한 손실 함수의 편미분값을 계산한다(S420).
도 5에서는 제 2 내부 레이어의 첫 번째 뉴런을 a31, 출력 레이어의 첫 번째 뉴런을 a41로 표시하고 둘 사이의 시냅스의 가중치를 w311로 표현한다. 다른 뉴런들과 시냅스들에 대해서도 유사한 규칙으로 변수를 부여한다.
이때 뉴런 a41, a42에 대한 손실 함수(L)의 편미분은 다음과 같이 계산될 수 있다.
또한 가중치 w311에 대한 손실 함수(L)의 편미분은 다음과 같이 계산될 수 있다.
수학식 2, 수학식 3의 값은 뉴런(a31, 32)의 값과 수학식 1의 편미분 값으로 부터 계산될 수 있다.
도 5에서 뉴런(a32)은 비활성 뉴런이므로 그 값이 0으로 주어진다.
나머지 시냅스들의 가중치에 대한 손실 함수(L)의 편미분 값은 위와 같은 수학식을 확장함으로써 연산될 수 있다.
이러한 연산은 수치 해석 방식으로 수행되어 그 값을 도출할 수 있다.
이후 단계(S420)에서 도출된 편미분 값을 참조하여 시냅스의 가중치를 조절한다.
예를 들어 시냅스의 가중치(w311)는 편미분 값을 참조하여 다음과 같이 새로운 가중치(w311')로 조절될 수 있다.
수학식 4에서 α는 비례 상수이다.
수학식 4는 가중치를 조절하는 일 실시예를 나타낸 것으로서 구체적인 수식은 실시예에 따라 달라질 수 있다.
단계(S450)에서 인덱스(N)를 시냅스 개수와 비교하여 시냅스 개수와 다르다면 인덱스를 증가시키고(S240) 해당 시냅스에 대해서 전술한 단계들의 동작을 반복한다.
단계(450)에서 인덱스(N)가 시냅스 개수와 동일하다면 모든 시냅스에 대하여 가중치가 조절된 상태이므로 종료한다.
도 2로 돌아가 단계(S400)에서 임계점을 수정되면 프루닝 비율을 목표값과 비교하여 프루닝 비율이 목표값 이상이면 종료하고, 그렇지 않으면 단계(S200)로 돌아가 전술한 동작을 반복한다.
이때 프루닝 비율은 전체 뉴런의 개수에 대한 비활성 뉴런의 개수의 비율로 산정될 수 있다.
목표값이 클수록 더 많은 비활성 뉴런이 발생하도록 임계점이 조절될 것이며 이에 따라 계산 속도는 더욱 향상되는것이 일반적이다.
다만 비활성 뉴런이 증가함에 따라 정확도 감소율이 증가할 수 있다.
실시예에 따라 요구되는 정확도 감소율과 계산 속도는 달라질 수 있다.
이에 따라 본 발명을 적용하는 경우 요구되는 정확도 감소율 및 계산 속도를 고려하여 목표값을 조절할 수 있을 것이다.
도 6은 본 발명에 의한 프루닝 효과를 설명하는 그래프이다.
도 6은 다음 표 1을 그래프로 표시한 것으로서 본 발명의 일 실시예에 의한 프루닝 방법이 적용된 신경망에서 연산 속도 향상비와 정확도 감소율 사이의 관계를 나타낸 것이다.
실험에 사용한 중첩 신경망은 Alexnet이고, 프루닝을 위하여 5만장의 이미지 데이터를 사용하였다.
속도 향상비(배) | 정확도 감소율(%) |
1 | 0 |
2.2 | 0 |
2.4 | 0 |
2.5 | 0 |
2.7 | 0.2 |
2.9 | 0.45 |
3 | 0.58 |
4 | 1.8 |
5 | 3 |
6 | 4.2 |
7 | 5.4 |
8 | 6.6 |
9 | 7.8 |
10 | 9 |
도시된 바와 같이 속도 향상비가 2.5배까지 정확도 감소율은 0%로서 정확도는 실질적으로 동일하게 유지되었으며 그 이후 속도 향상비가 10배까지 증가함에 따라 정확도 감소율이 9%까지 상승하였다.
도 7은 본 발명의 일 실시예에 의한 프루닝 장치를 나타낸 블록도이다.
본 발명의 일 실시예에 의한 프루닝 장치는 제어부(110), 입력 신호 생성부(120), 연산부(130), 임계점 조절부(140),가중치 조절부(150)를 포함한다.
본 발명의 일 실시예에 의한 장치는 메모리 장치(160)를 더 포함할 수 있다.
제어부(110)는 전술한 프루닝 동작을 전반적으로 제어한다.
이를 위하여 제어부(110)는 임계점 조절부(140) 및 가중치 조절부(150)를 제어할 수 있다.
제어부(110)는 프루닝 동작 도중에 필요한 연산 동작을 제어할 수도 있다. 이를 위하여 제어부(110)는 입력 신호 생성부(120)와 연산부(130)를 제어할 수 있다.
입력 신호 생성부(120)는 연산 대상이 되는 입력 데이터를 생성한다. 예를 들어 입력 데이터로부터 입력 레이어의 뉴런 값들을 생성한다.
연산부(130)는 입력 데이터를 이용하여 연산을 수행한다. 이때 연산은 다수의 덧셈과 곱셈 연산을 포함하는 컨벌루션 연산을 포함할 수 있다.
예를 들어 연산부(130)는 입력 레이어의 뉴런 값들과 신경망에 포함된 시냅스들의 가중치들을 이용하여 출력 레이어의 뉴런 값들을 결정할 수 있다.
임계점 조절부(140)는 도 2의 단계(S200, S300)를 수행할 수 있다.
즉, 임계점 조절부(140)는 레이어별로 임계점을 조절하여 임계점을 조절한 레이어를 선택하고 선택된 레이어에 대해서 임계점을 조절할 수 있다.
구체적인 동작은 도 3에서 설명한 것과 실질적으로 동일하다.
이때 임계점이 조절된 중첩 신경망에서의 연산은 임계점 조절부(140)를 참조하여 연산부(130)에서 수행될 수 있다.
정확도 감소율, 계산량 감소율 등의 지표는 임계점 조절부(140)에서 측정할 수 있다.
이를 위하여 임계점 조절부(140)는 입력 신호 생성부(120)와 연산부(130)와 통신하여 임계점 조절 동작에 필요한 신호를 송수신할 수 있다.
가중치 조절부(150)는 도 2의 단계(S400)에 대응하는 동작을 수행할 수 있다.
즉, 가중치 조절부(150)는 가중치에 대한 손실 함수의 편미분 값으로부터 가중치의 값을 조절할 수 있다.
이러한 일련의 동작은 덧셈과 곱셈의 조합으로 구성되므로 가중치 조절부(150)는 입력 신호 생성부(120)와 연산부(130)를 제어하여 해당 동작을 수행할 수 있다.
메모리 장치(160)는 연산에 필요한 데이터를 저장한다.
예를 들어 프루닝 대상이 되는 중첩 신경망의 초기 가중치, 테스트 세트에 포함된 입력 데이터, 기타 연산 중간에 사용되는 임시 데이터 등을 저장할 수 있다.
이상의 개시는 본 발명의 설명을 위한 것으로서 본 발명의 권리범위가 이상의 개시로 제한되는 것은 아니다. 본 발명의 권리범위는 특허청구범위에 문언적으로 기재된 범위와 그 균등범위로 결정될 수 있다.
100: 프루닝 장치
110: 프루닝 제어부
120: 입력 신호 생성부
130: 연산부
140: 임계점 조절부
150: 가중치 조절부
160: 메모리 장치
110: 프루닝 제어부
120: 입력 신호 생성부
130: 연산부
140: 임계점 조절부
150: 가중치 조절부
160: 메모리 장치
Claims (18)
- 신경망에 포함된 다수의 레이어에 대해서 임계점을 초기화하는 임계점 초기화 단계;
상기 다수의 레이어 중 임계점을 수정할 레이어를 선택하는 레이어 선택 단계;
상기 선택된 레이어에 대해서 임계점을 조절하는 임계점 조절 단계; 및
상기 신경망에 포함된 시냅스의 가중치를 조절하는 가중치 조절 단계
를 포함하되,
상기 레이어 선택 단계는
상기 다수의 레이어 중 어느 하나에 대해서 임계점을 조절하고 입력 데이터에 대해서 출력된 결과로부터 계산량 감소율과 정확도 감소율을 측정하는 감소율 측정 단계; 및
상기 감소율 측정 단계를 상기 다수의 레이어 각각에 대해서 수행하고 이를 통해 얻어진 계산량 감소율과 정확도 감소율을 참고하여 상기 다수의 레이어 중 어느 하나의 레이어를 결정하는 레이어 결정 단계
를 포함하는 신경망의 프루닝 방법. - 청구항 1에 있어서, 상기 신경망은 중첩 신경망이고 상기 다수의 레이어는 입력 레이어와 내부 레이어를 포함하는 신경망의 프루닝 방법.
- 청구항 1에 있어서, 임계점보다 작은 값을 가지는 뉴런은 그 값을 0으로 간주하는 신경망의 프루닝 방법.
- 청구항 3에 있어서, 상기 가중치 조절 단계를 수행한 결과 값이 0인 것으로 간주된 비활성 뉴런의 비율이 목표값 미만인지 판단하는 단계를 더 포함하는 신경망의 프루닝 방법.
- 청구항 4에 있어서, 상기 비활성 뉴런의 비율이 상기 목표값 미만으로 판단된 경우 상기 레이어 선택 단계, 상기 임계점 조절 단계, 상기 가중치 조절 단계를 추가로 수행하는 신경망의 프루닝 방법.
- 삭제
- 청구항 1에 있어서, 상기 레이어 결정 단계는 (계산량 감소율/정확도 감소율)을 최대로 하는 레이어를 결정하는 신경망의 프루닝 방법.
- 청구항 1에 있어서, 상기 가중치 조절 단계는
상기 신경망에 입력된 데이터로부터 출력된 출력 벡터로부터 손실 함수를 계산하는 손실 함수 계산 단계;
시냅스의 가중치에 대한 편미분값을 계산하는 편미분 계산 단계; 및
상기 시냅스의 가중치의 현재값과 상기 편미분값을 이용하여 상기 시냅스의 가중치를 조절하는 조절 단계
를 포함하는 신경망의 프루닝 방법. - 청구항 8에 있어서, 상기 손실 함수는 상기 출력 벡터와 상기 신경망에 입력된 데이터에 대응하는 진리 벡터 사이의 거리를 변수로 포함하는 신경망의 프루닝 방법.
- 청구항 8에 있어서, 상기 편미분 계산 단계는
상위 레이어의 뉴런 값과 상기 상위 레이어의 뉴런에서 출발하는 시냅스의 가중치에 대한 편미분값으로부터 하위 레이어의 뉴런에서 상기 상위 레이어의 뉴런으로 연결되는 시냅스의 가중치에 대한 편미분값을 결정하는 신경망의 프루닝 방법. - 청구항 8에 있어서, 상기 조절 단계는 상기 시냅스의 가중치에 대한 편미분값이 양인 경우 상기 가중치를 더 작게 조절하고 상기 시냅스의 가중치에 대한 편미분값이 음인 경우 상기 가중치를 더 크게 조절하는 신경망의 프루닝 방법.
- 덧셈과 곱셈을 포함하는 컨벌루션 연산을 수행하는 연산부;
상기 연산부에 입력되는 입력 신호를 생성하는 입력 신호 생성부;
프루닝 대상이 되는 신경망에 포함되는 다수의 레이어 중 임계점을 조절할 레이어를 선택하고 선택된 레이어에 대해서 임계점을 조절하는 임계점 조절부;
상기 신경망에 포함되는 다수의 시냅스의 가중치를 조절하는 가중치 조절부; 및
상기 임계점 조절부 및 상기 가중치 조절부를 제어하여 상기 신경망에 대한 프루닝 동작을 제어하는 제어부
를 포함하되,
상기 임계점 조절부는 임계점을 조절한 경우 정확도의 감소율과 계산량의 감소율에 따라 상기 다수의 레이어 중 하나를 선택하는 신경망의 프루닝 장치. - 청구항 12에 있어서, 상기 신경망의 시냅스의 가중치의 초기값 또는 상기 임계점 조절부에서 사용할 입력 데이터를 저장하는 메모리 장치를 더 포함하는 프루닝 장치.
- 청구항 12에 있어서, 상기 제어부는 상기 임계점 조절부를 제어하여 상기 다수의 레이어 중 어느 하나에 대한 임계점을 조절한 후 상기 가중치 조절부를 제어하여 상기 다수의 시냅스의 가중치를 조절하는 프루닝 장치.
- 청구항 12에 있어서, 상기 제어부는 임계점보다 작은 값을 가지는 뉴런의 값을 0으로 간주하도록 상기 임계점 조절부 또는 상기 연산부를 제어하는 프루닝 장치.
- 청구항 15에 있어서, 상기 제어부는 임계점보다 작은 값을 가지는 뉴런의 개수의 비가 목표값 보다 큰 경우 상기 임계점 조절부와 상기 가중치 조절부를 추가로 동작시키는 프루닝 장치.
- 삭제
- 청구항 12에 있어서, 상기 가중치 조절부는 손실 함수를 계산하고 상기 손실 함수의 시냅스의 가중치에 대한 편미분값으로부터 상기 시냅스의 가중치의 값을 조절하는 프루닝 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170103569A KR102413028B1 (ko) | 2017-08-16 | 2017-08-16 | 중첩 신경망을 프루닝하는 방법 및 장치 |
US16/022,391 US11397894B2 (en) | 2017-08-16 | 2018-06-28 | Method and device for pruning a neural network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170103569A KR102413028B1 (ko) | 2017-08-16 | 2017-08-16 | 중첩 신경망을 프루닝하는 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190018885A KR20190018885A (ko) | 2019-02-26 |
KR102413028B1 true KR102413028B1 (ko) | 2022-06-23 |
Family
ID=65360556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170103569A KR102413028B1 (ko) | 2017-08-16 | 2017-08-16 | 중첩 신경망을 프루닝하는 방법 및 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11397894B2 (ko) |
KR (1) | KR102413028B1 (ko) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112513886B (zh) * | 2018-08-03 | 2024-03-22 | 索尼公司 | 信息处理方法、信息处理装置和信息处理程序 |
CN111738401A (zh) * | 2019-03-25 | 2020-10-02 | 北京三星通信技术研究有限公司 | 模型优化方法、分组压缩方法、相应的装置、设备 |
KR20200139909A (ko) | 2019-06-05 | 2020-12-15 | 삼성전자주식회사 | 전자 장치 및 그의 연산 수행 방법 |
CN110472736B (zh) * | 2019-08-26 | 2022-04-22 | 联想(北京)有限公司 | 一种裁剪神经网络模型的方法和电子设备 |
KR20210032140A (ko) | 2019-09-16 | 2021-03-24 | 삼성전자주식회사 | 뉴럴 네트워크에 대한 프루닝을 수행하는 방법 및 장치 |
KR102358508B1 (ko) | 2020-01-20 | 2022-02-04 | 성균관대학교산학협력단 | 업데이트 횟수에 기초한 프루닝 방법 및 장치 |
CN113313240B (zh) * | 2021-08-02 | 2021-10-15 | 成都时识科技有限公司 | 计算设备及电子设备 |
KR102552478B1 (ko) * | 2021-09-07 | 2023-07-11 | 주식회사 노타 | 레이어 별 경량화를 통한 딥러닝 모델 최적화 방법 및 시스템 |
JP2023063944A (ja) | 2021-10-25 | 2023-05-10 | 富士通株式会社 | 機械学習プログラム、機械学習方法、及び、情報処理装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140040532A1 (en) | 2012-08-06 | 2014-02-06 | Advanced Micro Devices, Inc. | Stacked memory device with helper processor |
CN104067523B (zh) * | 2013-01-17 | 2018-03-09 | 华为技术有限公司 | 一种数据包处理方法和装置 |
CN104376380B (zh) * | 2014-11-17 | 2017-07-21 | 北京工业大学 | 一种基于递归自组织神经网络的氨氮浓度预测方法 |
US9786036B2 (en) | 2015-04-28 | 2017-10-10 | Qualcomm Incorporated | Reducing image resolution in deep convolutional networks |
US11423311B2 (en) * | 2015-06-04 | 2022-08-23 | Samsung Electronics Co., Ltd. | Automatic tuning of artificial neural networks |
US10515312B1 (en) * | 2015-12-30 | 2019-12-24 | Amazon Technologies, Inc. | Neural network model compaction using selective unit removal |
US10832123B2 (en) * | 2016-08-12 | 2020-11-10 | Xilinx Technology Beijing Limited | Compression of deep neural networks with proper use of mask |
WO2018058509A1 (en) * | 2016-09-30 | 2018-04-05 | Intel Corporation | Dynamic neural network surgery |
US10832135B2 (en) * | 2017-02-10 | 2020-11-10 | Samsung Electronics Co., Ltd. | Automatic thresholds for neural network pruning and retraining |
US20190050735A1 (en) * | 2017-08-11 | 2019-02-14 | Samsung Electronics Co., Ltd. | Methods and algorithms of reducing computation for deep neural networks via pruning |
-
2017
- 2017-08-16 KR KR1020170103569A patent/KR102413028B1/ko active IP Right Grant
-
2018
- 2018-06-28 US US16/022,391 patent/US11397894B2/en active Active
Non-Patent Citations (2)
Title |
---|
Hengyuan Hu et al., Network Trimming: A Data-Driven Neuron Pruning Approach towards Efficient Deep Architectures, arXiv:1607.03250v1 (2016. 7. 12.)* |
조윤환 등., DNN에서 효율적인 학습을 위한 활성화 함수에 대한 고찰, 대한전자공학회 학술대회, 800-803pages (2016. 11.)* |
Also Published As
Publication number | Publication date |
---|---|
US20190057308A1 (en) | 2019-02-21 |
KR20190018885A (ko) | 2019-02-26 |
US11397894B2 (en) | 2022-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102413028B1 (ko) | 중첩 신경망을 프루닝하는 방법 및 장치 | |
US10984308B2 (en) | Compression method for deep neural networks with load balance | |
US10460236B2 (en) | Neural network learning device | |
US11676026B2 (en) | Using back propagation computation as data | |
CN110033081A (zh) | 一种确定学习率的方法和装置 | |
CN109146076A (zh) | 模型生成方法及装置、数据处理方法及装置 | |
US20150006444A1 (en) | Method and system for obtaining improved structure of a target neural network | |
US20220036189A1 (en) | Methods, systems, and media for random semi-structured row-wise pruning in neural networks | |
CN111758104B (zh) | 适合于硬件实现的神经网络参数优化方法、神经网络计算方法和装置 | |
WO2020009912A1 (en) | Forward propagation of secondary objective for deep learning | |
US11704555B2 (en) | Batch normalization layer fusion and quantization method for model inference in AI neural network engine | |
US20180293486A1 (en) | Conditional graph execution based on prior simplified graph execution | |
KR102247896B1 (ko) | 학습된 파라미터의 형태변환을 이용한 컨벌루션 신경망 파라미터 최적화 방법, 컨벌루션 신경망 연산방법 및 그 장치 | |
WO2020009881A1 (en) | Analyzing and correcting vulnerabillites in neural networks | |
CN114698395A (zh) | 神经网络模型的量化方法和装置、数据处理的方法和装置 | |
CN111260056B (zh) | 一种网络模型蒸馏方法及装置 | |
US11475311B2 (en) | Neural network instruction streaming | |
TWI664585B (zh) | 使用浮點標號位元表示的神經網路訓練方法 | |
RU2727080C2 (ru) | Построение нейронной сети на основе нейронов с функциональным преобразованием произвольного вида для входных сигналов | |
CN114298291A (zh) | 一种模型量化处理系统及一种模型量化处理方法 | |
KR20210157826A (ko) | 심층 신경망 구조 학습 및 경량화 방법 | |
US20230162037A1 (en) | Machine learning method and pruning method | |
JP2023167633A (ja) | 情報処理装置、情報処理方法、プログラム、及び記憶媒体 | |
EP0635152B1 (en) | Neural network/fuzzy conversion device | |
US20240086678A1 (en) | Method and information processing apparatus for performing transfer learning while suppressing occurrence of catastrophic forgetting |
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 |