KR20200089588A - 전자 장치 및 이의 제어 방법 - Google Patents

전자 장치 및 이의 제어 방법 Download PDF

Info

Publication number
KR20200089588A
KR20200089588A KR1020190118918A KR20190118918A KR20200089588A KR 20200089588 A KR20200089588 A KR 20200089588A KR 1020190118918 A KR1020190118918 A KR 1020190118918A KR 20190118918 A KR20190118918 A KR 20190118918A KR 20200089588 A KR20200089588 A KR 20200089588A
Authority
KR
South Korea
Prior art keywords
function
layer
value
parameter
learnable
Prior art date
Application number
KR1020190118918A
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 삼성전자주식회사
Priority to US17/286,982 priority Critical patent/US20210383190A1/en
Priority to PCT/KR2019/016235 priority patent/WO2020149511A1/ko
Priority to EP19910158.5A priority patent/EP3852017A4/en
Publication of KR20200089588A publication Critical patent/KR20200089588A/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
    • G06N20/00Machine learning

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

전자 장치 및 이의 제어 방법이 제공된다. 본 전자 장치는 적어도 하나의 인스트럭션(instruction)을 저장하는 메모리 및 메모리와 연결되어 상기 전자 장치를 제어하는 프로세서를 포함하고, 프로세서는 적어도 하나의 인스트럭션을 실행함으로써, 복수의 레이어를 포함하는 인공 신경망(Neural Network) 중 제1 레이어에 학습 가능한 함수를 포함하는 제2 레이어를 부가(append)하고, 인공 신경망을 학습시켜 제2 레이어에 포함되어 있는 파라미터 값을 갱신하고, 상기 학습 가능한 함수에 상기 갱신된 파라미터 값을 입력하여 함수 값을 획득하고, 상기 획득한 함수 값을 바탕으로 상기 제1 레이어에 포함된 복수의 채널 중 적어도 하나의 채널을 제거하여 제3 레이어로 갱신할 수 있다.

Description

전자 장치 및 이의 제어 방법{ELECTRONIC DEVICE AND METHOD FOR CONTROLLING THE ELECTRONIC DEVICE THEREOF}
본 개시는 전자 장치 및 이의 제어 방법에 관한 것으로서, 더욱 상세하게는 인공 신경망에 학습 가능한 함수를 포함하는 레이어를 부가하여 인공 신경망의 크기를 감소하는 기능을 수행하는 전자 장치 및 이의 제어 방법에 관한 것이다.
최근 인공 신경망은 기계 번역, 음성 인식, 영상 분류 등 다양한 분야에서 폭넓게 활용되고 있다. 인공 신경망의 활용 폭이 점차 넓어지고 정밀한 계산을 요구하게 되자, 인공 신경망의 크기 및 필요 계산량은 기하 급수적으로 증가하게 되었다. 온 디바이스 플랫폼(On-Device Platform)(예를 들어, 스마트 폰, IoT(Internet of Things) 장치 등)상에 큰 사이즈의 인공 신경망 모델을 저장하는데 한계가 있는 바, 인공 신경망의 크기 및 계산 량을 감소시키면서 계산의 정확도는 유지하는 기술이 연구 및 개발되고 있다. 대표적인 기술 중 하나는 인공 신경망의 레이어의 채널 크기를 줄이는 채널 프루닝(Channel Pruning) 기술이다.
기존에는, 합성곱 인공 신경망(Convolutional Neural Network)에 포함된 레이어의 각 채널의 가중치의 절대값 합을 계산하고, 절대값의 합이 작은 채널부터 순차적으로 잘라내는 채널 프루닝 기술이 활용되었다. 다만, 해당 기술은 가중치의 절대값의 합이 가장 작은 채널이 인공 신경망에서 가장 중요하지 않은 채널이 아닌 경우가 발생할 수 있다는 한계가 존재하였다.
또한, 기존에는 인공 신경망의 레이어의 채널 조합을 모두 비교해서 최적의 조합을 찾는 채널 프루닝 기술이 활용되었다. 다만, 해당 기술은 인공 신경망의 레이어의 모든 채널을 비교하려면 기하급수적인 비교 연산이 수행되어야 한다는 한계가 존재하였다.
또한, 기존에는 레이어의 각 채널에 0과 1사이의 실수 값을 가지는 학습된 가중치를 곱하고, 작은 값을 가지는 채널을 제거하는 소프트 게이팅(Soft Gating) 기술이 활용되었다. 다만, 해당 기술의 경우 가중치가 0과 1사이의 중간값을 가지고 있어 가중치 학습이 완전하지 않으므로 가중치에 정규화(Regularization) 또는 어닐링(Annealing) 알고리즘을 추가 적용해야 한다는 한계가 존재하였다.
또한, 기존에는 각 채널이 제거될 지에 대한 확률 분포 파라미터를 학습하는 Variational Method 기술이 활용되었으나, 채널이 제거될지 여부가 확률에 의존하므로 반복적으로 마스크를 샘플링해야 한다는 한계가 존재하였다.
본 개시는 상술한 필요성에 따라 안출된 것으로서, 본 개시는 인공 신경망의 레이어에 학습 가능한 함수를 포함하는 레이어를 부가하고, 학습 가능한 함수 및 학습된 파라미터를 이용하여 기존 레이어를 경량화하는 전자 장치 및 이의 제어 방법을 제공함에 있다.
상술한 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 전자 장치는 적어도 하나의 인스트럭션(instruction)을 저장하는 메모리 및 상기 메모리와 연결되어 상기 전자 장치를 제어하는 프로세서를 포함하고, 상기 프로세서는, 상기 적어도 하나의 인스트럭션을 실행함으로써 복수의 레이어를 포함하는 인공 신경망(Neural Network) 중 제1 레이어에 학습 가능한 함수를 포함하는 제2 레이어를 부가(append)하고, 상기 인공 신경망을 학습시켜 상기 제2 레이어에 포함되어 있는 파라미터 값을 갱신하고, 상기 학습 가능한 함수에 상기 갱신된 파라미터 값을 입력하여 함수 값을 획득하고, 상기 획득한 함수 값을 바탕으로 상기 제1 레이어에 포함된 복수의 채널 중 적어도 하나의 채널을 제거하여 제3 레이어로 갱신할 수 있다.
한편, 상술한 목적을 달성하기 위한 실시 예에 따른 전자 장치의 제어 방법은 복수의 레이어를 포함하는 인공 신경망(Neural Network) 중 제1 레이어에 학습 가능한 함수를 포함하는 제2 레이어를 부가(append)하는 단계, 상기 인공 신경망을 학습시켜 상기 제2 레이어에 포함되어 있는 파라미터 값을 갱신하는 단계, 상기 학습 가능한 함수에 상기 갱신된 파라미터 값을 입력하여 함수 값을 획득하는 단계 및 상기 획득한 함수 값을 바탕으로 상기 제1 레이어에 포함된 복수의 채널 중 적어도 하나의 채널을 제거하여 제3 레이어로 갱신하는 단계를 포함할 수 있다.
상술한 바와 같이 본 개시의 다양한 실시 예에 의해, 전자 장치는 모든 채널의 조합을 비교하지 않고도 학습 가능한 함수를 포함하는 레이어를 인공 신경망의 레이어에 부가하여 프루닝을 수행함으로써 인공 신경망의 크기 감소 및 계산의 정확도를 유지할 수 있다. 따라서, 사용자는 프루닝을 수행하는 전자 장치를 통해 압축된 인공 신경망을 다양한 분야에서 효율적으로 활용할 수 있다.
도 1a는 본 개시의 일 실시 예에 따른, 전자 장치의 제어 방법을 설명하기 위한 도면,
도 1b는 본 개시의 일 실시 예에 다른, 전자 장치가 인공 신경망에 프루닝을 수행하였을 때 획득한 결과를 설명하기 위한 도면,
도 2a는 본 개시의 일 실시 예에 따른, 전자 장치의 구성을 간략히 도시한 블록도,
도 2b는 본 개시의 일 실시 예에 따른, 전자 장치의 구성을 상세히 도시한 블록도,
도 3은 본 개시의 일 실시 예에 따른, 인공 신경망의 학습 방법을 설명하기 위한 도면,
도 4는 본 개시의 일 실시 예에 따른, 전자 장치의 제2 레이어에 포함된 학습 가능한 함수를 설명하기 위한 도면,
도 5는 본 개시의 일 실시 예에 따른, 전자 장치와 관련된 실험 결과를 설명하기 위한 도면,
도 6은 본 개시의 일 실시 예에 따른, 전자 장치의 제어 방법을 설명하기 위한 도면이다.
이하에서는 도면을 참조하여 본 개시의 다양한 실시 예에 대해 설명하기로 한다.
도 1a은 본 개시의 일 실시 예에 따른 전자 장치(100)의 제어 방법을 설명하기 위한 도면이다. 도 1a에 도시된 바와 같이 전자 장치(100)는 복수의 레이어를 포함하는 인공 신경망을 저장할 수 있다. 레이어는 인공 신경망의 각 단계를 의미할 수 있다. 인공 신경망에 포함된 복수의 레이어는 복수의 가중치(weight values)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 복수의 가중치의 연산을 통해 레이어의 연산을 수행할 수 있다. 구체적으로, 인공 신경망은 여러 개의 레이어의 조합으로 구성될 수 있으며, 레이어는 복수개의 가중치로 표현될 수 있다.. 그리고, 커널(kernel)은 하나의 레이어에 포함된 가중치의 집합이다. 일 실시 예로, 커널은 다차원 행렬인 텐서(tensor)로 구현될 수 있다. 그리고, 채널(channel)은 커널이 텐서로 구현되었을 때 마지막 차원을 의미할 수 있다. 따라서, 채널은 특정 레이어의 출력값을 나타내는 텐서의 마지막 차원과도 일치할 수 있다.
그리고, 인공 신경망의 예로는, CNN (Convolutional Neural Network), DNN (Deep Neural Network), RNN (Recurrent Neural Network), RBM (Restricted Boltzmann Machine), DBN (Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 및 심층 Q-네트워크 (Deep Q-Networks)이 있으며, 본 개시에서의 신경망은 명시한 경우를 제외하고 전술한 예에 한정되지 않는다.
전자 장치(100)는 인공 신경망을 압축하기 위하여 인공 신경망에 포함된 복수의 레이어 중 제1 레이어에 학습 가능한 함수(30)를 포함하는 제2 레이어를 부가할 수 있다. 일 실시 예에 따른, 전자 장치(100)는 인공 신경망에 포함된 모든 레이어에 학습 가능한 함수를 포함하는 레이어를 부가할 수 있다. 또 다른 실시 예로, 사용자 명령에 따라 복수의 레이어 중 제1 레이어가 선택되면, 전자 장치(100)는 선택된 제1 레이어에 제2 레이어를 부가할 수 있다.
한편, 제2 레이어는 학습 가능한 함수(30) 및 파라미터(Wl,1, Wl,2 … Wl,n)(20)를 포함할 수 있다. 도 1a에 도시된 파라미터 Wl,i는 제1 레이어의 i 번째 채널에 대응되는 함수 값을 도출하는 파라미터를 의미한다. 학습 가능한 함수(30)는 실수 범위로 정의된 파라미터(20) 값이 입력될 때 비 자명한(non-trivial) 미분 값을 가지는 함수 일 수 있다. 구체적으로, 학습 가능한 함수(30)는 0 또는 1을 출력하는 제1 함수에 미분 가능한 제2 함수를 더한 함수이고, 제2 함수는 미분 가능한 함수와 기설정된 기울기(gradient)를 가지는 함수를 곱한 함수일 수 있다. 제1 함수는 단위 계단 함수(Unit Step Function) 일 수 있으며 제2 함수는 톱니파 함수(Sawtooth Function)일 수 있으나 이는 일 실시 예에 불과하며 제2 함수는 출력 값의 범위가 한정된 미분 가능한 함수로 구현될 수 있다.
그리고, 전자 장치(100)는 임의의 파라미터 값을 학습 가능한 함수(30)에 입력하여 제1 함수의 출력 값과 동일한 0 또는 1을 획득할 수 있다. 일 실시 예로, 전자 장치(100)는 음수의 파라미터 값을 학습 가능한 함수(30)에 입력하여 함수 값 0을 획득할 수 있으며, 양수의 파라미터 값을 학습 가능한 함수(30)에 입력하여 함수 값 1을 획득할 수 있다. 다만, 이는 일 실시 예이며 전자 장치(100)는 음수 또는 양수 파라미터 값을 학습 가능한 함수(30)에 입력하여 각각 0 또는 1과 임계값 범위 내의 차이가 있는 값을 획득할 수 있다. 학습 가능한 함수(30)와 관련된 수학적 특성 및 증명은 추후 도 4를 참조하며 구체적으로 설명하도록 한다.
한편, 전자 장치(100)는 인공 신경망을 학습시켜 제2 레이어에 포함된 파라미터(20)를 갱신시킬 수 있다. 구체적으로, 전자 장치(100)는 제2 레이어의 학습 가능한 함수(30)에 파라미터(20)를 입력했을 때 획득한 함수 값과 제1 레이어의 출력 데이터(10) 와 곱하여 제2 레이어의 출력 데이터(40)를 획득할 수 있다.
일 실시예로, 학습 가능한 함수(30)를 통해 획득한 함수 값이 0인 경우, 전자 장치(100)는 0인 함수 값과 학습 가능한 함수(30)에 입력된 파라미터(20)에 대응되는 제1 레이어의 출력 데이터(10)의 채널과 곱 연산을 수행할 수 있다. 따라서, 도 1a에 도시된 바와 같이, 제2 레이어의 출력 데이터(40)는 제1 레이어의 출력 데이터(10) 중 일부 채널(50-1, 50-2)이 0으로 마스킹(masking)된 데이터일 수 있다.
한편, 각 레이어의 출력 데이터(10,40)는 다차원 매트릭스 형태의 텐서로 구현될 수 있으나 이는 일 실시예에 불과하며 다양한 형태(예를 들어, 벡터 등)로 구현될 수 있다.
그리고, 전자 장치(100)는 제2 레이어의 출력 데이터(40)를 바탕으로 인공 신경망의 출력 값과 전자 장치(100)가 획득하고자 하는 출력 값의 차이에 대한 손실 함수(loss function)를 생성하고, 생성한 손실 함수의 최소 함수 값(즉, 최소 손실 값)을 출력하는 파라미터를 획득할 수 있다. 일 실시 예로, 전자 장치(100)는 손실 함수에 확률적 경사 하강법 알고리즘을 적용하여 손실 값이 최소가 되는 파라미터(20) 값을 획득하여 갱신할 수 있다. 확률적 경사 하강법 알고리즘은 손실 함수에서 최소 함수 값(손실 값)을 출력할 수 있는 파라미터 값을 획득할 수 있는 알고리즘이다. 다만, 전자 장치(100)는 확률적 경사 하강법 알고리즘뿐만 아니라 다양한 알고리즘(예를 들어, 모멘텀(Momentum) 알고리즘, adagrad 알고리즘, adam 알고리즘 등)을 손실 함수에 적용하여 최소 함수 값을 출력할 수 있는 파라미터 값을 획득할 수 있다. 그리고, 전자 장치(100)는 제2 레이어에 포함되어 있는 파라미터를 손실 함수의 최소 함수 값을 출력하는 파라미터로 갱신할 수 있다.
한편, 손실 함수(loss function)는 인공 신경망 연산의 정확도를 최대화 하기 위한 손실 함수에 압축 후에 얻게 될 레이어의 크기 혹은 연산 복잡도를 나타내는 추가적인 손실 함수를 더한 함수 일 수 있다. 일 실시 예로, 레이어의 크기를 나타내는 손실 함수는 제 2레이어에 포함되어 있는 학습 가능한 함수(30)의 출력 값의 합으로 계산될 수 있으며, 레이어의 연산 복잡도를 나타내는 손실 함수는 제 2레이어에 포함되어 있는 학습 가능한 함수(30)의 출력 값의 합과 제 1레이어의 입력 값의 크기의 곱으로 계산될 수 있다. 또 다른 실시 예로, 추가적인 손실 함수는 레이어의 크기 혹은 연산 복잡도를 나타내는 손실 함수의 가중치 합으로 구현될 수 있다.
한편, 전자 장치(100)는 갱신된 파라미터(20)를 학습 가능한 함수(30)에 입력하여 함수 값을 획득하고, 획득한 함수 값을 바탕으로 제 1레이어에 포함된 복수의 채널 중 적어도 하나의 채널을 제거하여 제3 레이어로 갱신할 수 있다. 구체적으로, 파라미터 중 Wl,i를 학습 가능한 함수(30)에 입력하여 함수 값을 획득한 경우, 전자 장치(100)는 획득한 함수 값(0 또는 1)에 따라 제1 레이어의 i번째 채널을 제거할지 여부를 판단할 수 있다. 파라미터 중 Wl,i를 학습 가능한 함수(30)에 입력하여 0인 함수 값을 획득하면, 전자 장치(100)는 제1 레이어(10)의 i번째 채널을 제거할 수 있다. 파라미터 중 Wl,i를 학습 가능한 함수(30)에 입력하여 0이 출력되었다는 것은 제1 레이어의 i번째 채널은 인공 신경망의 전체 계산의 중요하지 않은 채널임을 의미할 수 있으며 전자 장치(100)에 의해 제거될 수 있다. 따라서, 인공 신경망의 전체적인 크기 및 계산량이 감소하는 동시에 계산의 정확도는 유지할 수 있다. 한편, 파라미터 중 Wl,i를 학습 가능한 함수(30)에 입력하여 1인 함수 값을 획득하면, 전자 장치(100)는 제1 레이어의 i번째 채널을 유지할 수 있다.
그리고, 전자 장치(100)는 제2 레이어를 제거하고, 함수 값을 바탕으로 제1 레이어에 포함된 복수의 채널 중 적어도 하나의 채널이 제거된 제3 레이어로 갱신할 수 있다. 다만, 이는 일 실시 예일 뿐, 전자 장치(100)는 먼저 제1 레이어를 제3 레이어로 갱신한 뒤에 제2 레이어를 제거할 수도 있다.
일 실시 예로, 도 1b의 (a)에 도시된 바와 같이, 전자 장치(100)는 제1 레이어에 제2 레이어를 부가하여 프루닝을 수행하므로써 제1 레이어를 채널의 수가 감소된 제3 레이어로 갱신할 수 있다. 구체적으로, 전자 장치(100)는 학습 가능한 함수에서 출력된 함수 값을 바탕으로 제1 레이어에 포함된 채널 일부(60-1, 60-2)를 제거하여 제1 레이어를 제3 레이어로 갱신할 수 있다.
한편, 본 개시의 일 실시 예로, 전자 장치(100)는 학습 가능한 함수(30)에 갱신된 파라미터(20) 값을 입력하여 함수 값을 획득하고, 획득한 함수 값을 바탕으로 제1 커널의 가중치를 변경하고, 제1 레이어의 제1 커널을 변경된 가중치를 포함하는 제2 커널로 갱신할 수 있다.
구체적으로, 전자 장치(100)는 제 1레이어의 커널의 가중치의 개수만큼의 학습 가능한 파라미터(50)을 가지는 제 2레이어를 부가하고 인공 신경망을 학습시켜 파라미터를 갱신시킬 수 있다. 그리고, 전자 장치(100)는 학습 가능한 함수(30)에 갱신된 파라미터를 입력하여 획득한 함수 값에 따라 제1 레이어의 제1 커널의 가중치를 0으로 변경할지 여부를 판단할 수 있다. 예를 들어, 제1 레이어의 제1 커널이 3차원 3x3x64(즉, 3X3 형태의 필터가 64 개의 채널로 구현된 형태) 행렬 형태로 구현되어 있는 경우, 전자 장치(100)는 제 1커널에 포함되어 있는 가중치와 1대 1로 대응될 수 있는 3x3x64의 행렬 형태의 학습 가능한 파라미터(20)를 포함하는 제 2레이어를 제 1레이어에 부가할 수 있다. 그리고, 전자 장치(100)는 인공 신경망을 학습시켜 파라미터를 갱신할 수 있다. 그리고, 갱신된 파라미터를 학습가능한 함수(30)에 입력하여 획득한 함수 값이 0인 경우, 전자 장치(100)는 학습 가능한 함수에 입력한 파라미터에 대응되는 제1 레이어의 제1 커널의 가중치를 0으로 변경할 수 있다. 예를 들면, 0인 함수 값을 출력될 때의 파라미터가 제1 커널의 (3,3,20)위치의 가중치와 대응되는 경우, 전자 장치(100)는 제1 커널의 (3,3,20) 위치의 가중치를 0으로 변경할 수 있다. 그리고, 획득한 함수 값이 1인 경우, 전자 장치(100)는 학습 가능한 함수(30)에 입력한 파라미터에 대응되는 제1 레이어의 제 1커널의 가중치는 그대로 유지할 수 있다. 따라서, 전자 장치(100)는 제1 레이어의 제1 커널의 가중치 중 일부를 0으로 변경하여 전체 인공 신경망의 연산량을 감소시킬 수 있다.
일 실시 예로, 도 1b의 (b)에 도시된 바와 같이, 전자 장치(100)는 제1 레이어에 제2 레이어를 부가하여 프루닝을 수행하므로써 제1 레이어의 제1 커널에 포함된 가중치 중 일부를 0으로 변경하여, 제1 커널을 변경된 가중치를 포함하는 제2 커널(70)로 갱신할 수 있다.
한편, 또 다른 실시 예로, 전자 장치(100)는 학습 가능한 함수에 갱신된 파라미터를 입력하여 획득한 함수 값을 바탕으로 레이어의 일부 채널을 제거하여 인공 신경망을 경량화하거나 레이어의 개별적 커널의 가중치를 0으로 변경하여 연산량을 감소시킬 수 있을 뿐 아니라, 특정 레이어를 제거하여 인공 신경망을 경량화할 수 있다.
구체적으로, 전자 장치(100)는 학습 가능한 함수(30)에 갱신된 파라미터(20)를 입력하여 획득한 함수 값을 바탕으로 인공 신경망에 포함되어 있는 복수의 레이어 중 적어도 하나의 레이어를 제거할 수 있다. 예를 들면, 0인 함수 값을 출력했을 때 학습 가능한 함수에 입력하였던 파라미터가 제1 레이어에 대응되는 경우, 전자 장치(100)는 인공 신경망의 제1 레이어를 제거할 수 있다. 그리고, 1인 함수 값을 출력했을 때 학습 가능한 함수에 입력하였던 파라미터가 제1 레이어에 대응되는 경우, 전자 장치(100)는 인공 신경망의 제1 레이어를 그대로 유지할 수 있다.
일 실시 예로, 도 1b의 (c)에 도시된 바와 같이, 전자 장치(100)는 인공 신경망에 포함된 각 레이어에 학습 가능한 함수(30)를 포함하는 제2 레이어를 부가하여 프루닝을 수행하므로써 복수의 레이어 중 일부를 제거할 수 있다. 예를 들면, 학습 가능한 함수(30)를 통해 획득한 함수 값이 0이고 학습 가능한 함수(30)에 입력된 파라미터가 제1 및 제3 레이어에 대응되는 경우, 전자 장치(100)는 제1 및 제3 레이어를 제거하여 인공 신경망을 경량화할 수 있다.
도 2a는 본 개시의 일 실시 예에 따른, 전자 장치(100)의 구성을 간략히 도시한 도면이다. 도 2a에 도시된 바와 같이, 전자 장치(100)는 메모리(110) 및 프로세서(120)를 포함할 수 있다. 도 2a에 도시된 구성들은 본 개시의 실시 예들을 구현하기 위한 예시도이며, 통상의 기술자에게 자명한 수준의 적절한 하드웨어/소프트웨어 구성들이 전자 장치(100)에 추가로 포함될 수 있다.
메모리(110)는 전자 장치(100)의 적어도 하나의 다른 구성요소에 관계된 인스트럭션(Instruction) 또는 데이터를 저장할 수 있다. 특히, 메모리(110-)는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 등으로 구현될 수 있다. 메모리(110)는 프로세서(120)에 의해 액세스되며, 프로세서(120)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다. 본 개시에서 메모리라는 용어는 메모리(110), 프로세서(120) 내 롬(미도시), 램(미도시) 또는 전자 장치(100)에 장착되는 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱)를 포함할 수 있다.
특히, 메모리(110)는 복수의 레이어를 포함하는 인공 신경망을 저장할 수 있으며, 각 레이어에 포함되어 있는 커널 및 파라미터를 저장할 수 있다. 그리고, 메모리(110)는 각 레이어의 출력 데이터 및 전체 인공 신경망의 출력 데이터를 저장할 수 있다.
프로세서(120)는 메모리(110)와 전기적으로 연결되어 전자 장치(100)의 전반적인 동작 및 기능을 제어할 수 있다. 특히, 프로세서(120)는 메모리(110)에 저장되어 있는 적어도 하나의 인스트럭션을 실행함으로써, 복수의 레이어를 포함하는 인공 신경망중 제1 레이어에 학습 가능한 함수를 포함하는 제2 레이어를 부가하고, 인공 신경망을 학습시켜 제2 레이어에 포함되어 있는 파라미터 값을 갱신하고, 학습 가능한 함수에 갱신된 파라미터 값을 입력하여 함수 값을 획득하고, 획득한 함수 값을 바탕으로 상기 제1 레이어에 포함된 복수의 채널 중 적어도 하나의 채널을 제거하여 제3 레이어로 갱신할 수 있다.
특히, 프로세서(120)는 인공 신경망의 크기를 줄이기 위하여 인공 신경망에 포함된 모든 레이어에 학습 가능한 함수를 포함하는 레이어를 부가할 수 있다. 다만, 이는 일 실시 예이며 특정 레이어를 선택한 사용자 명령이 입력부(130)를 통해 입력되면, 프로세서(120)는 선택된 레이어에만 학습 가능한 함수를 부가할 수 있다. 그리고, 학습 가능한 함수는 0 또는 1을 출력하는 제1 함수에 미분 가능한 제2 함수를 더한 함수이고, 제2 함수는 미분 가능한 함수와 기설정된 기울기(gradient)를 가지는 함수를 곱한 함수 일 수 있다. 함수의 수식적 특성 및 증명은 도 4를 참조하여 구체적으로 설명하도록 한다.
그리고, 프로세서(120)는 인공 신경망을 학습시켜 제2 레이어에 포함되어 있는 파라미터 값을 갱신할 수 있다. 일 실시 예로, 프로세서(120)는 제2 레이어에 포함된 학습 가능한 함수의 함수 값과 제1 레이어의 출력 데이터를 채널 별로 곱하여 제2 레이어의 출력 데이터를 획득할 수 있다. 예를 들면, 제2 레이어에 포함된 파라미터가 (Wl,1, Wl,2 … Wl,n)인 경우, 프로세서(120)는 학습 가능한 함수에 (Wl,1, Wl,2 … Wl,n)을 입력하여 함수 값을 획득하고, 획득한 함수 값을 제1 레이어의 제1 채널, 제2 채널 … 제n 채널에 곱하여 제2 레이어의 출력 데이터를 획득할 수 있다. 그리고, 프로세서(120)는 획득한 제2 레이어의 출력 데이터를 바탕으로 손실 함수를 생성할 수 있다. 그리고, 프로세서(120)는 손실 함수에 확률적 경사 하강법 알고리즘을 적용하여 함수 값(손실 값)을 최소로 하는 파라미터 값을 획득하고, 기존의 파라미터 값을 획득한 파라미터 값으로 갱신할 수 있다. 다만, 확률적 경사 하강법 알고리즘은 일 실시 예에 불과하며 전자 장치(100)는 다양한 알고리즘(예를 들어, 모멘텀(Momentum) 알고리즘, adagrad 알고리즘, adam 알고리즘 등)을 손실함수에 적용하여 최소 함수 값을 갖도록 하는 파라미터 값을 획득할 수 있다.
그리고, 프로세서(120)는 학습 가능한 함수에 갱신된 파라미터 값을 입력하여 함수 값을 획득할 수 있다. 예를 들면, 갱신된 파라미터 값이 음수인 경우, 프로세서(120)는 학습 가능한 함수에 음수인 파라미터 값을 입력하여 0인 함수 값을 획득할 수 있다. 또한, 갱신된 파라미터 값이 양수인 경우, 프로세서(120)는 학습 가능한 함수에 양수인 파라미터 값을 입력하여 1인 함수 값을 획득할 수 있다. 다만, 이는 일 실시 예이며 프로세서(120)는 음수 또는 양수인 파라미터 값을 학습 가능한 함수에 입력하여 각각 0 또는 1에 임계값 범위 내의 차이가 있는 값을 획득할 수 있다.
또한, 프로세서(120)는 획득한 함수 값을 바탕으로 제1 레이어에 포함된 복수의 채널 중 적어도 하나의 채널을 제거하여 제1 레이어를 제3 레이어로 갱신할 수 있다. 구체적으로, 획득한 함수 값이 0인 경우, 프로세서(120)는 학습 가능한 함수에 입력한 파라미터에 대응되는 제1 레이어의 커널을 제거할 수 있다. 예를 들면, 0인 함수 값을 획득하였을 때 입력한 파라미터가 Wl,1인 경우, 프로세서(120)는 제1 레이어의 제1 채널을 삭제할 수 있다. 그리고, 1인 함수 값을 획득하였을 때 입력한 파라미터가 Wl,2인 경우, 프로세서(120)는 제1 레이어의 제2 채널은 그대로 유지할 수 있다. 그리고, 프로세서(120)는 제1 레이어를 함수 값을 바탕으로 채널을 제거 또는 유지한 제3 레이어로 갱신할 수 있다.
한편, 프로세서(120)는 제2 레이어를 제거하고, 함수 값을 바탕으로 제1 레이어에 포함된 복수의 채널 중 적어도 하나의 채널을 제거하여 제3 레이어로 갱신할 수 있으나 이는 일 실시 예이며 제3 레이어로 갱신한 뒤에 제2 레이어를 제거할 수 있다.
한편, 프로세서(120)는 학습 가능한 함수에 갱신된 파라미터 값을 입력하여 함수 값을 획득하고, 획득한 함수 값을 바탕으로 상기 제1 레이어의 제1 커널의 가중치를 변경하고, 제1 레이어의 제1 커널을 변경된 가중치를 포함하는 제2 커널로 갱신할 수 있다. 일 실시 예로, 제1 레이어의 제1 커널이 3X3X64 행렬로 구현될 때 획득한 함수 값이 0인 경우, 프로세서(120)는 학습 가능한 함수에 입력한 파라미터에 대응되는 제1 레이어의 제1 커널의 가중치를 0으로 변경할 수 있다. 예를 들면, 0인 함수 값이 출력될 때의 파라미터가 제1 커널의 (3,3,20)위치의 가중치와 대응되는 경우, 프로세서(120)는 제1 커널의 (3,3,20) 위치의 가중치를 0으로 변경할 수 있다. 그리고, 1인 함수 값이 출력될 때의 파라미터가 제1 커널의 (3,3,20)위치의 가중치와 대응되는 경우, 프로세서(120)는 제1 커널의 (3,3,20)위치의 가중치를 그대로 유지할 수 있다.
한편, 프로세서(120)는 하나 또는 복수의 프로세서로 구성될 수 있다. 이때, 하나 또는 복수의 프로세서(120)는 CPU(Central Processing Unit), AP(Application Processor) 등과 같은 범용 프로세서, GPU(graphics-processing Unit), VPU (Visual Processing Unit) 등과 같은 그래픽 전용 프로세서 또는 NPU(Neural Processing Unit)와 같은 인공지능 전용 프로세서일 수 있다.
하나 또는 복수의 프로세서는, 메모리(110)에 저장된 기정의된 동작 규칙 또는 인공지능 모델에 따라, 입력 데이터를 처리하도록 제어한다. 기정의된 동작 규칙 또는 인공지능 모델은 학습을 통해 만들어진 것을 특징으로 한다.
여기서, 학습을 통해 만들어진다는 것은, 다수의 학습 데이터들에 학습 알고리즘을 적용함으로써, 원하는 특성의 기정의된 동작 규칙 또는 인공지능 모델이 만들어짐을 의미한다. 이러한 학습은 본 개시에 따른 인공지능이 수행되는 기기 자체에서 이루어질 수도 있고, 별도의 서버/시스템을 통해 이루어 질 수도 있다.
학습 알고리즘은, 다수의 학습 데이터들을 이용하여 소정의 대상 기기(예컨대, 로봇)을 훈련시켜 소정의 대상 기기 스스로 결정을 내리거나 예측을 할 수 있도록 하는 방법이다. 학습 알고리즘의 예로는, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)이 있으며, 본 개시에서의 학습 알고리즘은 명시한 경우를 제외하고 전술한 예에 한정되지 않는다.
도 2b는 본 개시의 일 실시 예에 따른, 전자 장치(100)의 구성을 상세히 도시한 블록도이다. 도 2b에 도시한 바와 같이, 전자 장치(100)는 메모리(110), 프로세서(120), 입력부(130), 통신부(140), 디스플레이(150) 및 오디오 출력부(160)를 포함할 수 있다. 한편, 메모리(110) 및 프로세서(120)는 도 2a에서 설명하였으므로, 중복되는 설명은 생략하기로 한다.
입력부(130)는 다양한 사용자 입력을 수신하여 프로세서(120)로 전달할 수 있다. 특히, 입력부(130)는 터치 센서, (디지털) 펜 센서, 압력 센서, 키, 또는 마이크를 포함할 수 있다. 터치 센서는, 예를 들면, 정전식, 감압식, 적외선 방식, 또는 초음파 방식 중 적어도 하나의 방식을 사용할 수 있다. (디지털) 펜 센서는, 예를 들면, 터치 패널의 일부이거나, 별도의 인식용 쉬트를 포함할 수 있다.
일 실시 예로, 입력부(130)를 통해 인공 신경망에 포함된 복수의 레이어 중 채널의 수를 줄이고자 하는 제1 레이어를 선택하는 사용자 명령을 수신하여 프로세서(120)로 전달할 수 있다.
통신부(140)는 다양한 통신 방식을 통해 외부의 장치와 통신을 수행할 수 있다. 통신부(140)가 외부 장치와 통신 연결되는 것은 제3 기기(예로, 중계기, 허브, 엑세스 포인트, 서버 또는 게이트웨이 등)를 거쳐서 통신하는 것을 포함할 수 있다.
한편, 통신부(140)는 외부 장치와 통신을 수행하기 위해 다양한 통신 모듈을 포함할 수 있다. 일 예로, 통신부(140)는 무선 통신 모듈을 포함할 수 있으며, 예를 들면, LTE, LTE-A(LTE Advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband), 또는 GSM(Global System for Mobile Communications) 등 중 적어도 하나를 사용하는 셀룰러 통신 모듈을 포함할 수 있다. 또 다른 예로, 무선 통신 모듈은, 예를 들면, WiFi(wireless fidelity), 블루투스, 블루투스 저전력(BLE), 지그비(Zigbee), 중 적어도 하나를 포함할 수 있다.
디스플레이(150)는 프로세서(120)의 제어에 따라 다양한 정보를 표시할 수 있다. 특히, 디스플레이(150)는 프로세서(140) 제어에 따라 제1 레이어가 제3 레이어로 갱신되었다는 인디케이터를 표시할 수 있다.
그리고, 디스플레이(150)는 터치 패널과 함께 터치 스크린으로도 구현될 수 있다. 그러나 상술한 구현으로 한정되는 것은 아니며, 디스플레이(150)는 전자 장치(100)의 유형에 따라 다르게 구현될 수 있다.
오디오 출력부(160)는 오디오 처리부(미도시)에 의해 디코딩이나 증폭, 노이즈 필터링과 같은 다양한 처리 작업이 수행된 각종 오디오 데이터뿐만 아니라 각종 알림 음이나 음성 메시지를 출력하는 구성이다. 일 실시 예로, 오디오 출력부(160)는 제1 레이어가 제3 레이어로 갱신되었다는 알림음을 출력할 수 있다.
오디오 출력부(160)는 스피커(160)로 구현될 수 있으나 이는 일 실시 예에 불과할 뿐, 오디오 데이터를 출력할 수 있는 다른 출력 단자로 구현될 수도 있다.
도 3은 본 개시의 일 실시 예에 따른, 전자 장치(100)에 저장된 복수의 레이어를 포함하는 인공 신경망의 학습 방법을 설명하기 위한 도면이다.
일 실시 예로, 사용자 혹은 외부 장치로부터 훈련용 입력 데이터 (310)를 입력받으면, 전자 장치(100)는 입력 데이터(310)를 제1 레이어(320)에 입력하여 출력 데이터 (330)를 획득할 수 있다. 입력 데이터(310)는 영상 데이터 혹은 음성 데이터 일 수 있으나 이에 한정되는 것은 아니다. 그리고, 출력 데이터(330)는 제1 레이어(320)의 커널과 입력 데이터(310) 간에 합성 곱(convolution) 연산이 수행되어 획득된 특징 맵(feature map)일 수 있다. 한편, 도 3에 도시된 입력 데이터(310) 및 출력 데이터(330)는 다차원 매트릭스 형태의 텐서로 구현될 수 있으나 이는 일 실시예에 불과하며 다양한 형태(예를 들어, 벡터 등)로 구현될 수 있다.
전자 장치(100)는 학습 가능한 함수(380)에 학습 가능한 파라미터(370)를 입력하여 획득한 함수 값과 출력 데이터(330)를 채널 별로 곱하여 마스킹된 출력 데이터(340)를 획득할 수 있다. 예를 들어, i번째 출렉 데이터와 곱해질 함수 값의 파라미터(W1,i)가 음수인 경우, 전자 장치(100)는 학습 가능한 함수에 음수인 파라미터 값을 입력하여 0인 함수 값을 획득하고, 획득한 0인 함수 값을 i 번째 출력 데이터와 곱할 수 있다. i번째 출력 데이터와 곱해질 함수 값의 파라미터(W1,i)가 양수인 경우, 전자 장치(100)는 학습 가능한 함수에 양수인 파라미터 값을 입력하여 1인 함수 값을 획득하고, 획득한 1인 함수 값을 i 번째 출력 데이터와 곱할 수 있다. 따라서, 전자 장치(100)는 함수 값인 0 또는 1을 출력 데이터(330)의 채널 별로 곱하여 마스킹된 출력 텐서(340)를 획득할 수 있다. 한편, 학습 가능한 함수(380) 및 학습 가능한 파라미터(370)는 제1 레이어에 부가된 제2 레이어에 포함될 수 있다.
그리고, 학습 가능한 함수(380)는 예를 들어 0 또는 1을 출력하거나 -1 또는 1을 출력하는 등 이산화 값을 출력하는 제1 함수에 미분 가능한 제2 함수를 더한 함수이고, 제2 함수는 미분 가능한 함수와 기설정된 기울기(gradient)를 가지는 함수를 곱한 함수일 수 있다. 학습 가능한 함수와 관련된 수학적 특성 및 증명은 도 4를 참조하여 구체적으로 설명하도록 한다.
그리고, 일 실시 예로 전자 장치(100)는 마스킹된 출력 데이터(340)를 바탕으로 손실 함수를 획득하고, 손실 함수에 확률적 경사 하강법 알고리즘을 적용하여 함수 값(손실 값)이 최소가 되게 하는 파라미터를 획득할 수 있다. 확률적 경사 하강법 알고리즘을 통하여 손실 함수에서 최소 함수 값을 갖게 하는 파라미터를 획득하는 방법은 공지의 기술이므로 자세한 방식은 생략하도록 한다. 그리고, 전자 장치(100)는 기존의 파라미터를 새로 획득한 파라미터로 갱신(360)할 수 있다.
그리고, 추가적인 입력 데이터(310)가 입력되면, 전자 장치(100)는 제1 레이어에 입력 데이터를 입력하여 출력 데이터를 획득하고, 제2 레이어에 포함된 학습 가능한 함수에 획득하여 갱신된 파라미터(370)를 입력하여 획득한 함수 값을 출력 데이터에 채널 별로 곱하여 마스킹된 출력 데이터를 획득할 수 있다. 그 이후 상술한 바와 같이 마스킹된 출력 데이터를 바탕으로 손실 함수를 획득하고, 손실 함수에 확률적 경사 하강법 알고리즘을 적용하여 손실 함수 값을 최소로 하게 하는 파라미터 값을 획득할 수 있다. 그리고, 전자 장치(100)는 기존의 파라미터를 획득한 파라미터로 갱신할 수 있다. 즉, 전자 장치(100)는 도 3에 도시된 바와 같이 인공 신경망을 학습하고 파라미터 값을 갱신할 수 있다.
도 4는 본 개시의 일 실시 예에 따른, 전자 장치의 제2 레이어에 포함된 학습 가능한 함수를 설명하기 위한 도면이다.
제2 레이어에 포함된 학습 가능한 함수(450)는 0 또는 1을 출력하는 제1 함수(410)에 미분 가능한 제2 함수(420)를 더한 함수이다. 도 4에 도시된 바와 같이 제1 함수(410)는 음수인 파라미터 값을 입력하면 0을 출력하고, 양수인 파라미터 값을 입력하면 1을 출력하는 단위 계단 함수일 수 있다. 다만, 이는 일 실시 예에 불과하며 제1 함수(410)는 0 또는 1을 출력하는 다른 함수로 구현될 수 있다.
일 실시 예로, 제1 함수(410)가 단위 계단 함수로 구현된 경우, 임의의 파라미터 값에 대해 미분 값이 0이므로, 전자 장치(100)는 미분을 활용하는 확률적 경사 하강법 알고리즘을 손실 함수에 적용하여 파라미터를 학습시킬 수 없다. 따라서, 단위 계단 함수에 미분 가능한 제2 함수(420)를 더할 수 있다. 제2 함수(420)는 미분 가능한 함수(430)와 기설정된 기울기를 가지는 함수(또는, derivative shape)(440)를 곱한 함수일 수 있다. 미분 가능한 함수(430)는 출력 값의 범위가 한정된 양의 미분값을 가지는 함수로 구현될 수 있으며 일 실시 예로 톱니파 함수를 포함할 수 있다. 일 실시 예로, 미분 가능한 함수(430)가 톱니파 함수로 구현된 미분 가능한 함수인 제2 함수(430)는 수학식 1과 같다.
Figure pat00001
수학식 1의 M은 기설정된 양의 정수이며 수학식 1의 임의의 w(파라미터)에 대한 기울기 값은 1이다.
학습 가능한 함수(450)를
Figure pat00002
라고 정의하고 기설정된 기울기를 가지는 함수(440)를
Figure pat00003
라고 정의할 경우, 학습 가능한 함수는 수학식 2와 같다.
Figure pat00004
그리고, 학습 가능한 함수(450)가 수학식 2와 같이 구현 될 때 M의 값이 임계 값(예를 들면, 10^5)을 초과할 경우, 학습 가능한 함수(450)는 임의의 w(파라미터)에 대해 제1 함수와 동일하거나 임계값 범위 내의 오차가 발생하는 함 수값을 출력할 수 있다. 또한, 학습 가능한 함수는 기설정된 기울기를 가지는 함수(440)와 동일 또는 임계값 범위 내의 오차가 발생하는 기울기 값을 출력할 수 있다.
M이 임계값을 초과할 경우, 학습 가능한 함수(450)가 임의의 w(파라미터)에 대해 제1 함수와 동일 또는 임계 값 범위 내의 오차가 발생하는 함수 값을 출력할 수 있다는 특성의 증명은 수학식 3과 같다.
Figure pat00005
M이 임계값을 초과할 경우, 학습 가능한 함수(450)가 임의의 w(파라미터)에 대해 기설정된 기울기를 가지는 함수와 동일 또는 임계값 범위 내의 오차가 발생하는 기울기 값을 출력한다는 특성의 증명은 수학식 4과 같다.
Figure pat00006
본 개시의 일 실시 예에 따른, 제2 함수의 M값은 임계값을 초과하므로, 학습 가능한 함수(450)는 임의의 w(파라미터)에 대해 제1 함수와 동일 또는 임계값 범위 내의 오차가 발생하는 함수 값을 출력하고, 기설정된 기울기를 가지는 함수(440)와 동일 또는 임계값 범위 내의 오차가 발생하는 기울기 값을 출력할 수 있다. 따라서, 음수인 또는 양수인 파라미터를 학습 가능한 함수(450)에 입력할 경우, 전자 장치(100)는 각각 0 또는 1인 함수 값을 출력하거나, 0 또는 1과 임계값 범위 내의 오차가 발생하는 함수 값을 출력할 수 있다. 그리고, 학습 가능한 함수(450)의 미분 값은 0이 아니므로 인공 신경망에 확률적 경사 하강법을 적용하여 학습시켜 제2 레이어에 포함된 파라미터 값을 갱신할 수 있다.
도 5는 본 개시의 일 실시 예에 따른, 전자 장치(100)와 관련된 실험 결과를 설명하기 위한 도면이다. 구체적으로, 도 5는 본 개시에서 전자 장치(100)가 제1 레이어를 압축하는 방식과 다른 방식의 실험 결과(압축률 및 압축 이후 계산의 정확도)를 비교하기 위한 도면이다. 압축률(FLOPs(Floating Point Operations))는 기존의 인공 신경망의 계산량과 학습 가능한 제2 레이어를 부가하여 압축한 인공 신경망의 계산량을 나눈 비율이다. 따라서, 압축률 값이 클수록 인공 신경망이 많이 압축되었음을 의미한다.
도 5는 전자 장치(100)가 CIFAR-10 데이터 셋(Data set)에서 ResNet-56(v2)인 인공 신경망 구조를 다양한 방식으로 압축했을 때의 실험 결과이다. (가) 방식은 인공 신경망에 포함된 레이어의 커널을 채널 별로 가중치의 절대값의 합을 획득하고, 절대값의 합이 작은 채널의 커널부터 제거하여 인공 신경망을 압축하는 방식이다. (나) 방식은 레이어의 각 채널에 0과 1사이의 실수 값을 가지는 학습된 가중치를 곱하고, 작은 값을 가지는 채널을 제거하여 인공 신경망을 압축하는 방식이다. (다) 방식은 상술한 전자 장치(100)의 제어 방법으로 인공 신경망을 압축하는 방식이다.
도 5에 도시된 바와 같이 (가) 방식의 인공 신경망 압축률은 1.21배이나 (다) 방식의 경우 압축률이 2배이다. 그리고, (나) 방식은 인공 신경망 압축률은 2배로 (다) 방식의 압축률과 동일하거나 오차 범위 내이나 인공 신경망 압축 후 계산의 정확도에서 차이가 존재한다. (나) 방식의 경우, 인공 신경망 압축 후 계산의 정확도가 1%만큼 감소하였으나 (다) 방식의 경우 0.46% 정도 감소하였다. 즉, 도 5의 (a)의 실험 결과를 통해 (다) 방식은 (가), (나) 방식에 비해 각각 인공 신경망의 압축률 및 압축 후 계산 정확도가 높다는 것을 알 수 있다.
도 6은 본 개시의 일 실시 예에 따른, 전자 장치(100)의 제어 방법을 설명하기 위한 순서도이다.
우선, 전자 장치(100)는 복수의 레이어를 포함하는 인공 신경망 중 제1 레이어에 학습 가능한 함수를 포함하는 제2 레이어를 연결할 수 있다(S610). 일 실시 예로, 전자 장치(100)는 학습 가능한 함수를 포함하는 레이어를 인공 신경망에 포함된 레이어 모두에 각각 연결할 수 있다. 또 다른 실시 예로, 채널의 크기를 감소하고자 하는 레이어를 선택하는 사용자 명령이 입력되면, 전자 장치(100)는 선택된 레이어에 학습 가능한 함수를 포함하는 레이어를 연결할 수 있다. 학습 가능한 함수는 0 또는 1을 출력하는 제1 함수에 미분 가능한 제2 함수를 더한 함수이고, 제2 함수는 미분 가능한 함수와 기설정된 기울기(gradient)를 가지는 함수를 곱한 함수이다. 함수의 수학적 특성에 대해서는 도 4를 참조하여 설명하였으므로 중복되는 설명은 생략하도록 한다.
전자 장치(100)는 인공 신경망을 학습시켜 제2 레이어에 포함되어 있는 파라미터 값을 갱신할 수 있다(S620). 구체적으로, 전자 장치(100)는 제1 레이어의 출력 데이터에 함수 값을 채널 별로 곱하여 제2 레이어의 출력 데이터를 획득하고, 획득한 제2 레이어의 출력 데이터를 바탕으로 손실 함수를 생성하고, 생성된 손실 함수의 최소 함수 값을 출력하는 파라미터를 획득할 수 있다. 예를 들면, 전자 장치(100)는 손실 함수에 확률적 경사 하강법을 적용하여 손실 함수의 최소 함수 값을 출력하는 파라미터를 획득하고, 기존의 파라미터를 획득한 파라미터로 갱신할 수 있다.
그리고, 전자 장치(100)는 학습 가능한 함수에 갱신된 파라미터 값을 입력하여 함수 값을 획득할 수 있다(S630). 그리고, 전자 장치(100)는 획득한 함수 값을 바탕으로 제1 레이어에 포함된 복수의 채널 중 적어도 하나의 채널을 제거하여 제3 레이어로 갱신할 수 있다(S640). 일 실시 예로, 갱신된 파라미터 값이 음수인 경우, 전자 장치(100)는 학습 가능한 함수에 음수인 파라미터 값을 입력하여 함수 값 0을 획득하고, 파라미터에 대응되는 제1 레이어의 커널을 제거할 수 있다. 예를 들면, 학습 가능한 함수에 입력한 음수인 파라미터가 W1,i인 경우, 전자 장치(100)는 함수 값 0을 획득하고 제1 레이어의 i번째 채널을 제거할 수 있다. 만약, 학습 가능한 함수에 입력한 양수인 파라미터가 W1,i인 경우, 전자 장치(100)는 함수 값 1을 획득하고 제1 레이어의 i번째 채널은 그대로 유지할 수 있다.
그리고, 전자 장치(100)는 제1 레이어에 부가된 제2 레이어를 제거하고, 함수 값을 바탕으로 제1 레이어에 포함된 복수의 채널 중 적어도 하나의 채널을 제거함으로써, 제1 레이어로부터 채널 프루닝된 제3 레이어을 획득할 수 있다. 다만, 이는 일 실시 예이며 제1 레이어를 제3 레이어로 갱신한 뒤에 제2 레이어를 제거할 수 있다.
한편, 본 개시의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 개시에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 실시 예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 개시에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
본 개시에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
본 개시에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제 3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 개시에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 부프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
본 개시의 다양한 실시 예들에 따른 전자 장치는, 예를 들면, 스마트폰, 태블릿 PC, 데스크탑 PC, 랩탑 PC, 넷북 컴퓨터, 서버, PDA, 의료기기, 또는 웨어러블 장치 중 적어도 하나를 포함할 수 있다. 어떤 실시 예들에서, 전자 장치는, 예를 들면, 텔레비전, 냉장고, 에어컨, 공기 청정기, 셋톱 박스, 미디어 박스(예: 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM) 중 적어도 하나를 포함할 수 있다.
한편, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다. 이하에서는 도면을 참조하여 본 개시에 대해 더욱 상세히 설명하도록 한다.
본 개시의 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(예: 전자 장치(100))를 포함할 수 있다. 상기 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 상기 프로세서의 제어하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
일 실시 예에 따르면, 본 개시에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
110: 메모리 120: 프로세서
130: 입력부 140: 통신부
150: 디스플레이 160: 오디오 출력부

Claims (20)

  1. 전자 장치에 있어서,
    적어도 하나의 인스트럭션(instruction)을 저장하는 메모리; 및
    상기 메모리와 연결되어 상기 전자 장치를 제어하는 프로세서;를 포함하고,
    상기 프로세서는, 상기 적어도 하나의 인스트럭션을 실행함으로써,
    복수의 레이어를 포함하는 인공 신경망(Neural Network) 중 제1 레이어에 학습 가능한 함수를 포함하는 제2 레이어를 부가(append)하고,
    상기 인공 신경망을 학습시켜 상기 제2 레이어에 포함되어 있는 파라미터 값을 갱신하고,
    상기 학습 가능한 함수에 상기 갱신된 파라미터 값을 입력하여 함수 값을 획득하고,
    상기 획득한 함수 값을 바탕으로 상기 제1 레이어에 포함된 복수의 채널 중 적어도 하나의 채널을 제거하여 상기 제1 레이어를 제3 레이어로 갱신하는 전자 장치.
  2. 제1항에 있어서,
    상기 학습 가능한 함수는 0 또는 1을 출력하는 제1 함수에 미분 가능한 제2 함수를 더한 함수이고,
    상기 제2 함수는 미분 가능한 함수와 기설정된 기울기(gradient)를 가지는 함수를 곱한 함수인 것을 특징으로 하는 전자 장치.
  3. 제1항에 있어서,
    상기 프로세서는,
    상기 제1 레이어의 출력 데이터에 상기 함수 값을 채널 별(channel-wise)로 곱하여 상기 제2 레이어의 출력 데이터를 획득하고,
    상기 제1 레이어의 출력 데이터 및 상기 제2 레이어의 출력 데이터를 바탕으로 손실 함수(loss function)을 생성하고,
    상기 손실 함수의 최소 함수 값을 출력하는 파라미터를 획득하는 전자 장치.
  4. 제3항에 있어서,
    상기 프로세서는,
    상기 손실 함수에 확률적 경사 하강법(Stochastic Gradient Descent)을 적용하여 상기 손실 함수의 최소 함수 값을 출력하는 파라미터를 획득하는 전자 장치
  5. 제3항에 있어서,
    상기 프로세서는,
    상기 제2 레이어에 포함되어 있는 파라미터를 상기 손실 함수의 최소 함수 값을 출력하는 파라미터로 갱신하는 전자 장치.
  6. 제5항에 있어서,
    상기 프로세서는,
    상기 갱신된 파라미터 값이 음수인 경우, 상기 학습 가능한 함수에 상기 음수인 파라미터 값을 입력하여 함수 값 0을 획득하고,
    상기 갱신된 파라미터 값이 양수인 경우, 상기 학습 가능한 함수에 상기 양수인 파라미터 값을 입력하여 함수 값 1을 획득하는 전자 장치.
  7. 제5항에 있어서,
    상기 프로세서는,
    상기 획득한 함수 값이 0인 경우, 상기 학습 가능한 함수에 입력한 파라미터에 대응되는 상기 제1 레이어의 채널은 제거하고,
    상기 획득한 함수 값이 1인 경우, 상기 학습 가능한 함수에 입력한 파라미터에 대응되는 상기 제1 레이어의 채널은 유지하는 전자 장치.
  8. 제1항에 있어서,
    상기 프로세서는,
    상기 제2 레이어를 제거하고 상기 획득한 함수 값을 바탕으로 상기 제1 레이어의 채널을 제거하여 제3 레이어로 갱신하는 전자 장치.
  9. 제1항에 있어서,
    상기 프로세서는,
    상기 학습 가능한 함수에 상기 갱신된 파라미터 값을 입력하여 함수 값을 획득하고,
    획득한 함수 값을 바탕으로 상기 제1 레이어의 제1 커널의 가중치를 변경하고,
    상기 제1 레이어의 제1 커널을 상기 변경된 가중치를 포함하는 제2 커널로 갱신하는 전자 장치.
  10. 제9항에 있어서,
    상기 프로세서는,
    상기 획득한 함수 값이 0인 경우, 상기 학습 가능한 함수에 입력한 파라미터에 대응되는 상기 제1 레이어의 제1 커널의 가중치를 0으로 변경하고,
    상기 획득한 함수 값이 1인 경우, 상기 학습 가능한 함수에 입력한 파라미터에 대응되는 상기 제1 레이어의 제1 커널의 가중치는 그대로 유지하는 전자 장치.
  11. 전자 장치의 제어 방법에 있어서,
    복수의 레이어를 포함하는 인공 신경망(Neural Network) 중 제1 레이어에 학습 가능한 함수를 포함하는 제2 레이어를 부가(append)하는 단계;
    상기 인공 신경망을 학습시켜 상기 제2 레이어에 포함되어 있는 파라미터 값을 갱신하는 단계;
    상기 학습 가능한 함수에 상기 갱신된 파라미터 값을 입력하여 함수 값을 획득하는 단계; 및
    상기 획득한 함수 값을 바탕으로 상기 제1 레이어에 포함된 복수의 채널 중 적어도 하나의 채널을 제거하여 제3 레이어로 갱신하는 단계;를 포함하는 전자 장치의 제어 방법.
  12. 제11항에 있어서,
    상기 학습 가능한 함수는 0 또는 1을 출력하는 제1 함수에 미분 가능한 제2 함수를 더한 함수이고,
    상기 제2 함수는 미분 가능한 함수와 기설정된 기울기(gradient)를 가지는 함수를 곱한 함수인 것을 특징으로 하는 전자 장치.
  13. 제11항에 있어서,
    상기 파라미터 값을 갱신하는 단계는,
    상기 제1 레이어의 출력 데이터에 상기 함수 값을 채널 별(channel-wise)로 곱하여 상기 제2 레이어의 출력 데이터를 획득하는 단계;
    상기 제1 레이어의 출력 데이터 및 상기 제2 레이어의 출력 데이터를 바탕으로 손실 함수(loss function)을 생성하는 단계; 및
    상기 손실 함수의 최소 함수 값을 출력하는 파라미터를 획득하는 단계;를 포함하는 전자 장치의 제어 방법.
  14. 제13항에 있어서,
    상기 파라미터 값을 갱신하는 단계는,
    상기 손실 함수에 확률적 경사 하강법(Stochastic Gradient Descent)을 적용하여 상기 손실 함수의 최소 함수 값을 출력하는 파라미터를 획득하는 단계;를 포함하는 전자 장치의 제어 방법.
  15. 제13항에 있어서,
    상기 파라미터 값을 갱신하는 단계는,
    상기 제2 레이어에 포함되어 있는 파라미터를 상기 손실 함수의 최소 함수 값을 출력하는 파라미터로 갱신하는 단계;를 포함하는 전자 장치의 제어 방법.
  16. 제15항에 있어서,
    상기 제3 레이어를 갱신하는 단계는,
    상기 갱신된 파라미터 값이 음수인 경우, 상기 학습 가능한 함수에 상기 음수인 파라미터 값을 입력하여 함수 값 0을 획득하고,
    상기 갱신된 파라미터 값이 양수인 경우, 상기 학습 가능한 함수에 상기 양수인 파라미터 값을 입력하여 함수 값 1을 획득하는 단계;를 포함하는 전자 장치의 제어 방법.
  17. 제16항에 있어서,
    상기 제3 레이어를 갱신하는 단계는,
    상기 획득한 함수 값이 0인 경우, 상기 학습 가능한 함수에 입력한 파라미터에 대응되는 상기 제1 레이어의 채널은 제거하고,
    상기 획득한 함수 값이 1인 경우, 상기 학습 가능한 함수에 입력한 파라미터에 대응되는 상기 제1 레이어의 채널은 유지하는 단계;를 포함하는 전자 장치의 제어 방법.
  18. 제11항에 있어서,
    상기 제3 레이어를 갱신하는 단계는,
    상기 제2 레이어를 제거하고 상기 획득한 함수 값을 바탕으로 상기 제1 레이어의 채널을 제거하여 제3 레이어로 갱신하는 단계;를 포함하는 전자 장치의 제어 방법.
  19. 제11항에 있어서,
    상기 제3 레이어를 갱신하는 단계는,
    상기 학습 가능한 함수에 상기 갱신된 파라미터 값을 입력하여 함수 값을 획득하는 단계;
    획득한 함수 값을 바탕으로 상기 제1 레이어의 제1 커널의 가중치를 변경하는 단계; 및
    상기 제1 레이어의 제1 커널을 상기 변경된 가중치를 포함하는 제2 커널로 갱신하는 단계;를 포함하는 전자 장치의 제어 방법.
  20. 제19항에 있어서,
    상기 제3 레이어를 갱신하는 단계는,
    상기 획득한 함수 값이 0인 경우, 상기 학습 가능한 함수에 입력한 파라미터에 대응되는 상기 제1 레이어의 제1 커널의 가중치를 0으로 변경하고,
    상기 획득한 함수 값이 1인 경우, 상기 학습 가능한 함수에 입력한 파라미터에 대응되는 상기 제1 레이어의 제1 커널의 가중치는 그대로 유지하는 단계;를 포함하는 전자 장치의 제어 방법
KR1020190118918A 2019-01-17 2019-09-26 전자 장치 및 이의 제어 방법 KR20200089588A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US17/286,982 US20210383190A1 (en) 2019-01-17 2019-11-25 Electronic device and control method therefor
PCT/KR2019/016235 WO2020149511A1 (ko) 2019-01-17 2019-11-25 전자 장치 및 이의 제어 방법
EP19910158.5A EP3852017A4 (en) 2019-01-17 2019-11-25 ELECTRONIC DEVICE AND ITS CONTROL PROCESS

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962793497P 2019-01-17 2019-01-17
US62/793,497 2019-01-17

Publications (1)

Publication Number Publication Date
KR20200089588A true KR20200089588A (ko) 2020-07-27

Family

ID=71893866

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190118918A KR20200089588A (ko) 2019-01-17 2019-09-26 전자 장치 및 이의 제어 방법

Country Status (3)

Country Link
US (1) US20210383190A1 (ko)
EP (1) EP3852017A4 (ko)
KR (1) KR20200089588A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102373483B1 (ko) * 2020-11-19 2022-03-11 엘아이지넥스원 주식회사 딥러닝을 이용한 고속 영상 블러 제거 방법 및 장치
KR102390553B1 (ko) * 2020-11-24 2022-04-27 한국과학기술원 연합 학습 방법 및 시스템
WO2022139217A1 (ko) * 2020-12-24 2022-06-30 삼성전자주식회사 전자 장치 및 이의 제어 방법
US11948485B2 (en) 2020-12-24 2024-04-02 Samsung Electronics Co., Ltd. Electronic apparatus and method for controlling thereof

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111082893B (zh) * 2018-10-19 2024-04-26 华为技术有限公司 数据发送的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11321604B2 (en) * 2017-06-21 2022-05-03 Arm Ltd. Systems and devices for compressing neural network parameters

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102373483B1 (ko) * 2020-11-19 2022-03-11 엘아이지넥스원 주식회사 딥러닝을 이용한 고속 영상 블러 제거 방법 및 장치
KR102390553B1 (ko) * 2020-11-24 2022-04-27 한국과학기술원 연합 학습 방법 및 시스템
WO2022139217A1 (ko) * 2020-12-24 2022-06-30 삼성전자주식회사 전자 장치 및 이의 제어 방법
US11948485B2 (en) 2020-12-24 2024-04-02 Samsung Electronics Co., Ltd. Electronic apparatus and method for controlling thereof

Also Published As

Publication number Publication date
EP3852017A4 (en) 2021-12-22
US20210383190A1 (en) 2021-12-09
EP3852017A1 (en) 2021-07-21

Similar Documents

Publication Publication Date Title
CN110880036B (zh) 神经网络压缩方法、装置、计算机设备及存储介质
KR20200089588A (ko) 전자 장치 및 이의 제어 방법
US11948066B2 (en) Processing sequences using convolutional neural networks
CN112289342B (zh) 使用神经网络生成音频
CN109844773B (zh) 使用卷积神经网络处理序列
US10032463B1 (en) Speech processing with learned representation of user interaction history
KR20210029785A (ko) 활성화 희소화를 포함하는 신경 네트워크 가속 및 임베딩 압축 시스템 및 방법
WO2019037700A1 (zh) 语音情感检测方法、装置、计算机设备及存储介质
CN108229667A (zh) 基于人工神经网络类别的修剪
CN111523640B (zh) 神经网络模型的训练方法和装置
KR20190028320A (ko) 컨볼루션 신경망의 가지-치기 및 재훈련 방법
CN112418292B (zh) 一种图像质量评价的方法、装置、计算机设备及存储介质
KR20200126675A (ko) 전자 장치 및 이의 제어 방법
WO2019146189A1 (ja) ニューラルネットワークのランク最適化装置および最適化方法
US20190034781A1 (en) Network coefficient compression device, network coefficient compression method, and computer program product
CN111357051B (zh) 语音情感识别方法、智能装置和计算机可读存储介质
KR20210136706A (ko) 전자 장치 및 이의 제어 방법
KR20180103671A (ko) 언어 모델을 압축하기 위한 전자 장치, 추천 워드를 제공하기 위한 전자 장치 및 그 동작 방법들
KR20210152569A (ko) 이미지 처리 방법, 이미지 처리 장치, 전자 기기 및 저장 매체
JP2022158735A (ja) 学習装置、学習方法、学習プログラム、探索装置、探索方法及び探索プログラム
JP2020020872A (ja) 識別器、学習済モデル、学習方法
KR20210078133A (ko) 간투어 검출 모델을 훈련시키기 위한 훈련 데이터 생성 방법 및 장치
CN116188878A (zh) 基于神经网络结构微调的图像分类方法、装置和存储介质
KR20200027080A (ko) 전자 장치 및 그 제어 방법
KR102072239B1 (ko) 매니폴드 제약 조건에 기반한 심층 신경망 압축 방법 및 그 장치

Legal Events

Date Code Title Description
A201 Request for examination