KR102365270B1 - 희소 신경망 생성 방법 및 이를 위한 시스템 - Google Patents

희소 신경망 생성 방법 및 이를 위한 시스템 Download PDF

Info

Publication number
KR102365270B1
KR102365270B1 KR1020190149777A KR20190149777A KR102365270B1 KR 102365270 B1 KR102365270 B1 KR 102365270B1 KR 1020190149777 A KR1020190149777 A KR 1020190149777A KR 20190149777 A KR20190149777 A KR 20190149777A KR 102365270 B1 KR102365270 B1 KR 102365270B1
Authority
KR
South Korea
Prior art keywords
neural network
weights
learning
threshold value
predetermined threshold
Prior art date
Application number
KR1020190149777A
Other languages
English (en)
Other versions
KR20210061800A (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 연세대학교 산학협력단
Priority to KR1020190149777A priority Critical patent/KR102365270B1/ko
Publication of KR20210061800A publication Critical patent/KR20210061800A/ko
Application granted granted Critical
Publication of KR102365270B1 publication Critical patent/KR102365270B1/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

Abstract

본 발명의 일 실시예에 따른 희소 신경망 생성 방법은, 입력 데이터 및 소정의 문턱 값을 이용하여 신경망 노드들 간의 가중치들에 대한 학습을 수행하는 단계; 상기 가중치들 중에서 문턱 값보다 작은 크기를 갖는 가중치를 제거하는 단계; 및 상기 제거 단계에서 생존한 가중치들로 구성된 희소 신경망을 획득하는 단계를 포함한다.

Description

희소 신경망 생성 방법 및 이를 위한 시스템 {METHOD OF GENERATING SPARSE NEURAL NETWORKS AND SYSTEM THEREFOR}
본 발명은 신경망 생성에 관한 것으로서, 더욱 상세하게는, 희소 신경망 생성 방법 및 이를 위한 시스템에 관한 것이다.
최근 다양한 분야에서 인공지능을 이용한 분석 및 인식 기술로서 심층 신경망(Deep Neural Network) 기법의 하나인 컨볼루션 신경망(Convolutional Neural Network, 이하 CNN)이 활발하게 이용되고 있다. 신경망 구조는 사물 인식이나 필기체 인식과 같은 다양한 객체 인지 분야에서 뛰어난 성능을 보이고 있다. 특히, 컨볼루션 신경망(CNN)은 객체 인식에 매우 효과적인 성능을 제공하고 있다.
이러한 컨볼루션 신경망에서 사용되는 가중치 파라미터의 수는 매우 많으며, 노드들 간의 연결 수가 매우 많이 때문에 연산에 필요한 메모리의 사이즈가 커야만 한다. 컨볼루션 신경망은 실질적으로 높은 대역폭의 메모리를 요구하기 때문에 모바일 시스템이나 임베디드 시스템에서 구현하기에 용이하지 아니하는 단점을 갖는다. 또한, 컨볼루션 신경망은 빠른 처리를 위해 높은 계산량을 요구하기 때문에 내부 연산기의 규모가 커지는 단점을 갖는다.
따라서, 이러한 신경망 알고리즘의 연산 복잡도를 줄이고 인식 시간을 단축하기 위하여는, 신경망 시스템에서 사용되는 가중치 파라미터의 수를 줄이는 방법이 반드시 필요한 실정이다.
본 발명이 해결하고자 하는 과제는 신경망 시스템에서 사용되는 가중치의 수를 감소시킴으로써 신경망 알고리즘의 연산 복잡도를 줄일 수 있는 희소 신경망 생성 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 과제는 가중치의 수를 감소시키기 위한 재학습을 필요로 하지 아니함으로써 최종 신경망 생성 시간을 단축시킬 수 있는 희소 신경망 생성을 위한 시스템을 제공하는 것이다.
상기 과제를 해결하기 위한 본 발명의 일 실시예에 따른 희소 신경망 생성 방법은, 입력 데이터 및 소정의 문턱 값을 이용하여 신경망 노드들 간의 가중치들에 대한 학습을 수행하는 단계; 상기 가중치들 중에서 문턱값보다 작은 크기를 갖는 가중치를 제거하는 단계; 및 상기 제거 단계에서 생존한 가중치들로 구성된 희소 신경망을 획득하는 단계를 포함할 수 있다.
상기 가중치들에 대한 학습을 수행하는 단계는, 상기 소정의 문턱 값을 이용한 학습에 의하여 상기 가중치들의 크기가 서로 상이하게 결정될 수 있다.
일 실시예에서, 상기 가중치들에 대한 학습을 수행하는 단계는, 적어도 한 번 이상의 학습을 진행됨에 따라 상기 가중치들이 변동될 수 있다.
또한, 상기 가중치를 제거하는 단계는, 상기 학습이 완료된 상기 가중치들 중 상기 소정의 문턱 값에 이르지 못하는 가중치에 의한 연결을 제거할 수 있거나, 상기 학습이 완료된 상기 가중치들 중 임의의 문턱 값에 이르지 못하는 가중치에 의한 연결을 제거할 수 있다.
일 실시예에서, 상기 획득된 희소 신경망은 상기 소정의 문턱 값을 이용한 재학습을 필요로 하지 아니할 수 있고, 상기 소정의 문턱 값은 신경망의 손실 함수, 상기 희소 신경망 생성 시스템의 상기 희소 신경망 구성을 위한 용량에 대한 정보, 및 상기 신경망 구성을 위하여 필요한 연산량 중 적어도 어느 하나 이상을 고려하여 설정될 수 있다.
상기 학습이 완료된 상기 가중치 각각에 대하여 임의의 문턱 값을 적용하여 상기 임의의 문턱 값에 이르지 못하는 가중치를 제거할 수 있다.
상기 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 희소 신경망 생성 시스템은, 신경망 정보를 포함하는 입력 데이터를 수신하는 입력 데이터 수신부; 상기 입력 데이터를 학습시키기 위한 소정의 문턱 값을 설정하는 문턱값 설정부; 상기 입력 데이터 및 상기 문턱값을 이용하여 상기 신경망 사이를 연결하는 가중치들을 수정하는 신경망 학습부; 및 상기 수정된 가중치들 중 임의의 문턱 값에 이르지 못하는 가중치를 제거함으로써 희소 신경망을 획득하는 신경망 생성부를 포함할 수 있다.
상기 신경망 학습부는 상기 소정의 문턱 값을 이용하여 학습됨으로써, 상기 가중치들의 크기가 서로 상이하게 결정될 수 있고, 상기 신경망 학습부는 적어도 한 번 이상의 학습이 진행됨에 따라 상기 가중치들이 변동될 수 있다.
일 실시예에서, 상기 신경망 생성부는 상기 학습이 완료된 상기 가중치들 중 상기 소정의 문턱 값에 이르지 못하는 가중치에 의한 연결을 제거할 수 있거나, 상기 신경망 생성부는 상기 학습이 완료된 상기 가중치들 중 임의의 문턱 값에 이르지 못하는 가중치에 의한 연결을 제거할 수 있다.
일 실시예에서, 상기 획득된 희소 신경망은 상기 소정의 문턱 값을 이용하는 재학습을 필요로 하지 아니할 수 있다. 또한, 상기 소정의 문턱 값은 신경망의 손실 함수, 상기 신경망 시스템의 상기 신경망 구성을 위한 용량에 대한 정보, 및 상기 신경망 구성을 위하여 필요한 연산량 중 적어도 어느 하나 이상을 고려하여 설정될 수 있다.
상기 신경망 생성부는 상기 학습이 완료된 상기 가중치 각각에 대하여 임의의 문턱 값을 적용하여 상기 임의의 문턱 값에 이르지 못하는 가중치를 제거할 수 있다.
본 발명의 실시예에 따르면, 가중치에 대한 문턱 값을 입력 데이터의 학습시 함께 학습시키고, 학습된 가중치들을 상기 문턱 값과 비교하여 일부 가중치를 제거함으로써 가중치의 수를 감소시키기 위한 재학습 단계를 필요로 하지 아니함으로써 최종 신경망 생성 시간을 단축시킬 수 있는 희소 신경망 생성 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 과제는 입력 데이터와 가중치에 대한 문턱 값을 함께 학습시킴으로써, 신경망 시스템에서 사용되는 가중치의 수를 감소시키고 신경망 알고리즘의 연산 복잡도를 줄일 수 있는 희소 신경망 생성 시스템을 제공하는 것이다.
도 1은 본 발명의 일 실시예에 따른 희소 신경망 시스템을 보여주는 블록도이다.
도 2a 및 도 2b는 일반적인 컨볼루션 신경망의 연산 절차 및 가중치의 수를 나타내는 것이다.
도 3은 일반적인 희소 신경망 생성 방법을 설명하는 도면이다.
도 4는 본 발명의 일 실시예에 따른 희소 신경망 생성 방법을 설명하는 도면이다.
도 5는 본 발명의 일 실시예에 따른 희소 신경망 생성 시스템을 나타내는 블록도이다.
도 6은 본 발명의 일 실시예에 따른 희소 신경망 생성 방법을 나타내는 순서도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
본 발명의 실시예들은 당해 기술 분야에서 통상의 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위하여 제공되는 것이며, 하기 실시예는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 하기 실시예에 한정되는 것은 아니다. 오히려, 이들 실시예는 본 개시를 더욱 충실하고 완전하게 하고, 당업자에게 본 발명의 사상을 완전하게 전달하기 위하여 제공되는 것이다.
이하, 본 발명의 실시예들은 본 발명의 이상적인 실시예들을 개략적으로 도시하는 도면들을 참조하여 설명된다. 도면들에 있어서, 예를 들면, 부재들의 크기와 형상은 설명의 편의와 명확성을 위하여 과장될 수 있으며, 실제 구현시, 도시된 형상의 변형들이 예상될 수 있다. 따라서, 본 발명의 실시예는 본 명세서에 도시된 부재 또는 영역의 특정 형상에 제한된 것으로 해석되어서는 아니 된다.
본 발명의 실시예에 따른 희소 신경망 생성 방법 및 이를 위한 시스템은 딥러닝을 이용하여 학습할 수 있다. 여기서, 딥러닝(Deep Learning) 기술은, 컴퓨터가 사람처럼 생각하고 배울 수 있도록 하는 인공지능(AI) 기술로서, 인공신경망 이론을 기반으로 복잡한 비선형 문제를 기계가 스스로 학습하여 해결할 수 있도록 한다. 딥러닝은 인간의 두뇌가 수많은 데이터 속에서 패턴을 발견한 뒤 사물을 구분하는 정보처리 방식을 모방해 컴퓨터가 사물을 분별하도록 기계를 학습시키는 기술이다. 딥러닝 기술을 적용하면 사람이 모든 판단 기준을 정해주지 않아도 컴퓨터가 스스로 인지추론 할 수 있게 되고, 음성이미지 인식과 사진 분석 등에 광범위하게 활용하는 것이 가능하다.
즉, 딥러닝은 여러 비선형 변환기법의 조합을 통해 높은 수준의 추상화(abstractions, 다량의 데이터나 복잡한 자료들 속에서 핵심적인 내용 또는 기능을 요약하는 작업)을 시도하는 기계학습(machine learning) 알고리즘의 집합으로 정의되며, 큰 틀에서 사람의 사고방식을 컴퓨터에게 가르치는 기계학습의 한 분야라고 이야기할 수 있다.
어떠한 데이터가 있을 때 이를 컴퓨터가 알아들을 수 있는 형태(예를 들어, 이미지의 경우는 픽셀정보를 열벡터로 표현하는 등)로 표현(representation)하고 이를 학습에 적용하기 위해 많은 연구가 진행되고 있다. 또한, 이러한 노력의 결과로 deep neural networks, convolutional deep neural networks, deep belief networks 와 같은 다양한 딥러닝 기법들이 컴퓨터 비젼, 음성인식, 자연어처리, 음성/신호처리 등의 분야에 적용되어 최첨단의 결과들을 보여주고 있다.
특히, 컴퓨터 비전의 주요 분야인 영상 인식 및 사물 인식 분야에서의 딥러닝 기술의 중요성이 대두되고 있는데, 자동 음성인식 분야의 자동 음성 번역 및 이해 분야로의 확장과 마찬가지로, 이미지 분류 분야는 자동 영상 캡셔닝(captioning)이라는 더욱 도전적인 분야로 확장되고 있다. 자동 영상 캡셔닝은 딥러닝을 핵심 기반 기술로 사용하는 분야로서, 적용 사례로는 360°카메라 화면을 이해할 수 있도록 딥러닝을 통해 학습된 자동차 탑재용 컴퓨터 등이 있다.
또한, 컨볼루션 신경망(convolutional neural networks, CNN)은 2차원 영상 처리에 특화되어 인식문제에 주로 사용되어 왔고, 기본적인 핵심 특징으로 첫 번째는 국소 수용 면(local receptive field)을 두어 영상 일부를 표현하는 특징(feature) 추출에 중점을 두었고, 두 번째는 이러한 특징을 나타내는 가중치들을 영상 전 영역에서 공유할 수 있게 하였다는 점에서 막대한 수의 매개변수를 줄이고 영상 위치에 상관없이 특징을 공유할 수 있게 되는 장점이 있다.
세 번째 특징은 하나의 계층을 쌓고 노드 수를 줄여 상위 계층을 만드는 과정을 반복하면서 상위 계층으로 갈수록 일반화가 이루어지게 된다. 최근 딥러닝이 많은 관심을 받게 되면서 convolutional RBM(Restricted Boltzmann Machine)을 계층화한 convolutional deep belief networks, deep CNN과 같이 CNN을 deep 구조화하는 연구들이 진행되어 왔으며 영상 내 객체 인식 및 분류 문제에서 뛰어난 성능을 보이고 있다.
또한, 일반적으로 컨볼루션(Convolution) 연산은 두 함수 간의 상관관계를 검출하기 위한 연산을 나타낸다. 컨볼루션 신경망(CNN)이라는 용어는 특정 피처(Feature)를 지시하는 커널(Kernel) 과의 컨볼루션 연산을 수행하고, 연산의 결과를 반복하여 이미지의 패턴을 결정하는 과정 또는 시스템을 통칭할 수 있다.
도 1은 본 발명의 일 실시예에 따른 희소 신경망 시스템을 보여주는 블록도이다. 도 1을 참조하면, 희소 신경망 시스템(1000)은 외부 메모리(2000)로부터 제공되는 이미지와 같은 입력 데이터를 처리하여 출력값을 생성할 수 있다.
입력 데이터는 이미지 센서를 통하여 제공되는 정지 영상이나 동영상과 같은 이미지, 가속도 센서 및 GPS 센서를 포함하는 복수 개의 센서를 통하여 제공되는 위치 정보, 계좌 정보 및 금액 정보를 포함하는 금융 정보, 전화번호 및 성명을 포함하는 개인 정보 중 어느 하나 이상일 수 있으나, 본 발명에서는 이에 한정되지 아니한다. 예를 들어, 입력 데이터가 이미지인 경우, 입력 이미지는 유무선 통신 수단을 통하여 전달된 영상일 수 있다. 입력 이미지는 디지털화된 이미지 데이터의 2차원 어레이를 나타낼 수 있다.
입력 이미지는 희소 신경망 시스템(1000)의 학습(Training)을 위해 제공되는 샘플 영상들일 수 있으며, 출력값은 희소 신경망 시스템(1000)이 입력 데이터인 이미지를 처리한 결과 값일 수 있다. 출력값은 희소 신경망 시스템(1000)의 학습 동작이나 추정 동작에서 입력된 데이터에 대한 판단 결과값일 수 있다. 일 실시예에서, 출력값은 희소 신경망 시스템(1000)이 입력 데이터 내부에 포함된 것으로 검출한 패턴이나 식별 정보일 수도 있다.
도 1을 참조하면, 희소 신경망 시스템(1000)은 입력 버퍼(100), 연산 유닛(200), 가중치 버퍼(300), 출력 버퍼(500), 및 제어 유닛(600)을 포함할 수 있다.
입력 버퍼(100)는 이미지와 같은 입력 데이터의 데이터 값들이 로드될 수 있다. 입력 버퍼(100)의 사이즈는 컨볼루션 연산을 위한 커널(Kernel)의 사이즈에 따라 가변될 수 있다. 예를 들어, 커널의 사이즈가 KxK인 경우, 입력 버퍼(100)에는 연산 유닛(200)에 의한 커널과의 컨볼루션 연산(또는, 커널링)을 순차적으로 수행하기 위한 충분한 크기의 입력 데이터가 로드되어야 할 것이다. 입력 데이터의 입력 버퍼(100)로의 로드는 제어 유닛(600)에 의하여 제어될 수 있다.
연산 유닛(200)은 입력 버퍼(100), 가중치 버퍼(300), 및 출력 버퍼(500)를 사용하여 컨볼루션 연산, 풀링 연산과 같은 연산을 수행할 수 있다. 일 실시예에서, 연산 유닛(200)은 입력 데이터에 대한 커널과의 곱셉 및 가산을 반복적으로 처리하는 커널링(Kerneling)을 수행할 수 있다. 연산 유닛(200)은 복수의 커널링이나 풀링 연산을 병렬로 처리하기 위한 병력 처리 코어들을 포함할 수 있다. 이 경우, 연산 유닛(200)은 입력 버퍼(100)로부터 제공되는 입력 데이터 뿐만 아니라, 가중치들에 대한 문턱 값들도 함께 이용하여 상기 연산들을 수행할 수 있다.
커널(Kernel)은 입력 버퍼(100) 또는 가중치 버퍼(300)로부터 제공될 수 있다. 커널과 입력 데이터의 중첩 위치의 제반 데이터를 곱하고, 그 결과들을 합하는 과정을 이하에서는 커널링이라 지칭한다. 커널들 각각은 특정 피처 식별자(Feature Identifier)로 간주될 수 있다. 이러한 커널링은 입력 데이터와 다양한 피처 식별자에 대응하는 커널들에 대하여 수행될 수 있다. 상기 커널링은 컨볼루션 계층(Convolution layer)에서 수행될 수 있고, 그 결과값으로 복수의 채널들에 대응하는 피처 맵(Feature Map)들이 생성될 수 있다.
일 실시예에서, 연산 유닛(200)은 컨볼루션 계층에 의하여 생성되는 피처 맵들을 다운 샘플링으로 처리할 수 있다. 컨볼루션 연산에 의해 생성되는 피처 맵들의 사이즈는 상대적으로 크기 때문에 연산 유닛(200)은 풀링을 수행하여 피처 맵들의 사이즈를 줄일 수 있다. 각각의 커널링이나 풀링 연산의 결과 값들은 출력 버퍼(500)에 저장되고, 컨볼루션 루프 수가 증가할 때마다 또는 풀링 연산이 발생할 때마다 업데이트될 수 있다.
가중치 버퍼(300)는 연산 유닛(200)에서 수행되는 커널링, 바이어스(Bias) 가산, 활성화(Relu), 및 풀링(Pooling)에 필요한 가중치들을 연산 유닛(200)에 제공할 수 있다. 또한, 학습 단계에서 입력 데이터 및 문턱 값을 이용하여 학습된 가중치들은 가중치 버퍼(300)에 저장될 수 있다.
문턱값 버퍼(400)는 희소 신경망을 생성하기 위하여 최종적으로 가중치들이 도달하여야 하는 문턱 값(Threshold Value)가 입력될 수 있다. 상기 문턱 값은 전체 레이어에 동일하게 입력되거나, 각 레이어별로 또는 각 가중치 원소마다 다르게 할당될 수 있다. 또한, 문턱값 버퍼(400)는 이후 신경망 학습 중 변동되는 문턱 값을 입력받을 수 있다.
출력 버퍼(500)는 연산 유닛(200)에 의하여 실행되는 커널링이나 풀링의 결과값를 로드할 수 있다. 출력 버퍼(500)에 로드된 결과값들은 복수의 커널들에 의한 각 컨볼루션 루프의 실행 결과에 따라 업데이트될 수 있다.
제어 유닛(600)은 본 발명의 일 실시예에 따른 컨볼루션 연산, 풀링 연산, 활성화 연산과 같은 프로세스들이 수행되도록 연산 유닛(200)을 제어할 수 있다. 제어 유닛(600)은 입력 데이터 또는 피처 맵과 커널을 이용한 컨볼루션 연산을 수행할 수 있다. 제어 유닛(600)은 학습 연산이나 실제 런타임 연산에서 가중치의 파라미터들을 제거하는 가중치 제거 단계를 수행하도록 연산 유닛(200)을 제어할 수 있다. 또한, 제어 유닛(600)은 제거되지 아니한 가중치들 중에서 레이어별로 동일하거나 비슷한 값의 가중치를 대표 가중치로 맵핑할 수 있다. 이러한 레이어별로 동일하거나 유사한 가중치들은 대표 가중치로 공유하는 경우, 외부 메모리(2000)와의 데이터 교환을 위한 대역폭 요구량을 크게 감소시킬 수 있다.
이상에서 본 발명의 일 실시예에 따른 희소 신경망 시스템(1000)의 구성을 설명하였다. 상술한 입력 데이터 및 문턱 값을 이용한 학습과 문턱 값에 이르지 못하는 가중치들의 제거 단계를 통하여, 희소 신경망 시스템(1000)이 관리하여야 하는 가중치의 수가 획기적으로 감소될 수 있다. 가중치 수의 감소에 따라 희소 신경망 시스템(1000)을 구성하기 위하여 요구되는 메모리 사이즈나 메모리 채널의 대역폭이 감소될 수 있다. 또한, 메모리 사이즈 또는 채널 대역폭의 감소는 모바일 장치에서의 컨볼루션 신경망의 하드웨어적인 구현 가능성을 향상시킬 수 있다.
도 2a 및 도 2b는 일반적인 신경망의 연산 프로세스 및 가중치의 수를 나타내는 것이다. 도 2a는 입력 데이터를 처리하기 위한 컨볼루션 신경망의 레이어들을 보여주는 것이며, 도 2b는 도 2a에 도시된 각각의 레이어에서 사용되는 가중치들의 수를 보여주는 것이다.
도 2a를 참조하면, 학습이나 사물 인식과 같은 동작에서 수행되는 컨볼루션 연산이나 풀링 연산, 그리고 활성화 연산 등에는 매우 많은 수의 가중치들이 입력되고, 새롭게 생성되고, 업데이트되어야 한다. 입력 데이터는 컨볼루션 계층과 그 결과를 다운 샘플링하기 위한 풀링 계층에 의해서 처리될 수 있다. 일 실시예에서, 입력 데이터는 먼저 커널과의 컨볼루션 연산을 수행하는 제 1 컨볼루션 계층이 적용될 수 있다.
예를 들면, 커널과 중첩되는 입력 데이터의 데이터가 커널에 정의된 데이터와 곱해진다. 그리고 곱해진 모든 값은 합산되어 하나의 피처값으로 생성되고, 제 1 피처 맵의 한 포인트를 구성하게 될 수 있다. 이러한 커널링 연산은 커널이 순차적으로 쉬프트되면서 반복적으로 수행될 수 있다.
이후, 제 1 피처 맵의 사이즈를 줄이기 위한 다운 샘플링이 수행될 수 있다. 제 1 피처 맵의 데이터는 커널의 수나 입력 데이터의 사이즈에 따라 처리의 부담이 되는 사이즈일 수 있다. 그러므로, 제 1 풀링 계층에서는 연산 결과에 크게 영향을 주지 않는 범위에서 제 1 피처 맵의 사이즈를 줄이기 위한 다운 샘플링이 수행될 수 있다. 이러한 프로세스의 결과로 제 1 피처 맵은 감소된 사이즈의 제 2 피처 맵으로 생성될 수 있다. 컨볼루션 연산이 수행되는 컨볼루션 계층과 다운 샘플링 연산이 수행되는 풀링 계층은 필요에 따라 반복될 수 있다.
이후, 완전 연결 계층에서는 완전 연결망(Fully Connected Networks, FCN) 동작을 수행할 수 있다. 완전 연결망 동작에서는 커널이 사용되지 않는다. 그러나, 전체 입력 노드와 전체 출력 노드가 모두 연결 관계를 유지할 수 있다. 그러므로, 완전 연결 계층에서의 가중치 수는 상당히 크다.
도 2a 및 도 2b를 참조하면, 입력 데이터에 대한 제 1 컨볼루션 계층에서 34.944 개인 가중치의 수는, 이후 컨볼루션 계층 및 풀링 계층을 거치면서 37,752,832 개까지 늘어남을 확인할 수 있다. 입력 데이터를 처리하기 위해서는 가중치가 총 61,598,776 개 사용될 수 있다.
만일 입력 데이터를 처리하기 위한 계층들에서 사용되는 파라미터의 수를 줄이는 경우, 자연스럽게 노드의 연결 수도 줄어들게 되어 연산량을 줄일 수 있음을 알 수 있다. 파라미터는 크게 가중치(weight) 및 바이어스(bias)로 구분될 수 있다. 이 중 바이어스의 수는 가중치의 수보다 상대적으로 작기 때문에, 가중치를 줄이는 방식을 사용하면 높은 압축 효과를 제공할 수 있다.
도 3은 일반적인 희소 신경망 생성 방법을 설명하는 도면이다.
도 3을 참조하면, 희소 신경망을 생성하기 위하여 신경망 생성 시스템은 먼저 입력 데이터들을 이용하여 일반적인 신경망 학습을 수행한 오리지널 신경망이 생성될 수 있다(a 단계). 일반적인 신경망 학습(pretrain)은 신경망의 모든 노드가 존재하는 상태에서 신경망 학습이 진행될 수 있다. 오리지널 신경망은 예를 들면, 7개의 노드들 각각의 연결 관계가 도시될 수 있다.
노드들 사이에는 노드별 각각 2개의 가중치로 나타낼 수 있는 연결들이 존재할 수 있다. 이러한 오리지널 신경망의 노드들 간의 가중치들은 학습된 파라미터로 생성될 수 있다. 이 경우 학습된 파라미터의 분포는 정규 분포와 유사한 형태를 갖는 것으로 알려져 있다.
이후, 노드들 사이를 연결하는 가중치들 중 일부를 제거하기 위하여 가중치에 대한 문턱 값을 설정할 수 있다(b 단계). 이 경우, 설정되는 문턱 값은 제거될 가중치의 전체 가중치에 대한 비율 및 이로 인한 메모리 용량의 감소량을 고려하여 결정될 수 있다. 또한, 상기 문턱 값은 향후 오리지널 신경망의 재학습 이후 메모리 용량의 감소 정도를 확인하여 목표하는 감소량에 도달하지 아니하는 경우, 조정되어 재적용될 수 있다. 노드들 사이를 연결하는 가중치들 중 상기 문턱 값에 이르지 못하는 가중치들은 제거될 수 있다(pruning). 이러한 문턱 값 설정 및 이에 따른 가중치 제거 단계는 입력 데이터의 학습과는 별개의 단계로 진행될 수 있다.
상기 문턱 값에 의하여 일부 가중치들이 제거된 신경망은 재학습될 수 있다(c 단계). 재학습 단계는 처음 학습되지 아니한 문턱 값이 재학습에서 이용되는 것이 아니라, b 단계에서 문턱 값에 도달하지 못해 삭제된 가중치들에 반영된 노드들 사이의 연결 상태가 재학습에서 이용될 수 있다. 상기 재학습 단계는 상기 프루닝(pruning) 후 생성된 희소 신경망이 프루닝 이전의 신경망의 정확도 또는 허용가능한 정확도를 가질 때까지 여러 차례 반복되면서 원하는 정확도를 갖는 희소 신경망을 생성하여야만 한다.
이러한 일반적인 희소 신경망 생성 방법은 미리 학습된 조밀한 신경망을 필요로 하고, 가중치를 제거하기 위한 신경망의 정확도와 유사한 원하는 정확도를 얻기 위하여는 다양한 문턱 값을 이용하여 재프루닝을 실시하여야 한다. 또한, 프루닝 이후 재학습 과정을 통하여 최종 정확도 성능을 확인할 수 있으므로, 시행착오 과정이 반복적으로 필요하므로 시간과 리소스의 소모가 증가될 수 있다. 그러므로, 본 발명에서는 학습 과정 중 직접적으로 희소 정도를 조절할 수 부차적인 프루닝 과정을 필요로 하지 않는 희소 신경망을 생성하는 방법 및 이를 위한 시스템을 제안하고자 한다.
도 4는 본 발명의 일 실시예에 따른 희소 신경망 생성 방법을 설명하는 도면이다.
도 4를 참조하면, 일반적인 구조의 신경망에 입력 데이터와 동시에 문턱 값 변수(variable)를 할당하여 학습을 수행할 수 있다. 상기 문턱 값 변수의 할당은 신경망의 손실 함수(Loss Function) 항에 적절한 상수값을 할당함으로써 할당될 수 있다. 일 실시예에서, 상기 문턱 값 변수는 신경망의 손실 함수, 최종 희소 신경망을 생성하기 위하여 필요한 연산량, 및 메모리 용량의 크기 중 적어도 어느 하나를 감안하여 결정될 수 있으며, 상기 문턱 값 변수는 신경망의 학습 동안 변동될 수 있고, 상기 변동된 문턱 값 변수는 신경망의 학습에 이용될 수 있다.
상기 학습은 Gradient Descent Optimization 과 같은 일반적인 학습 방법에 의하여 수행될 수 있다. 이 경우, 신경망은 입력 데이터와 문턱 값을 이용하여 학습이 수행하며, 노드들 사이의 가중치 파라미터는 문턱 값을 변수로 하여 학습됨으로써 가중치 값이 조정될 수 있다. 학습이 종료된 신경망의 노드들은 각각 상이한 가중치에 의하여 연결될 수 있으며, 가중치들 중 상기 문턱 값을 넘지 못하는 일부 가중치들을 제거함으로써, 최종 희소 신경망(final sparse network)를 획득할 수 있다.
도 5는 본 발명의 일 실시예에 따른 희소 신경망 생성 시스템을 나타내는 블록도이고, 도 6은 본 발명의 일 실시예에 따른 희소 신경망 생성 방법을 나타내는 순서도이다.
도 5 및 도 6을 참조하면, 본 발명의 희소 신경망 방법 및 이를 위한 시스템은 입력 데이터와 문턱 값의 동시 학습에 의하여 희소 신경망 생성 과정 중 가중치가 조절됨으로써 높은 파라미터 감소 효과를 제공할 수 있다.
일 실시예에서, 입력 데이터 수신부(10)는 신경망을 구성하는 데이터를 수신할 수 있고, 문턱값 설정부(15)는 연산량 및 메모리 감소를 위한 가중치에 대한 문턱값을 설정할 수 있다. 이후, 신경망 학습부(20)에서는 학습이 되지 않은 초기의 신경망에 입력 데이터 뿐만 아니라 소정의 문턱 값을 함께 입력받아 학습을 수행할 수 있다(S10). 상기 학습을 수행하는 단계에서 상기 소정의 문턱 값을 이용하는 학습에 의해 상기 가중치들의 크기는 서로 상이하게 결정될 수 있으며, 상기 학습 수행 중 임의의 학습 단계에서의 상기 가중치들은 계속하여 수정될 수 있다. 또한, 상기 학습을 수행하는 동안 상기 문턱 값도 계속하여 변동될 수 있다.
즉, 상기 학습을 수행하는 단계는 적어도 한 번 이상의 학습이 진행됨에 따라 상기 가중치들은 변동될 수 있다. 또한, 상기 문턱 값은 최종 희소 신경망 구성을 위하여 필요한 연산량 및 메모리 용량 중 어느 하나 이상의 정보를 고려하여 설정될 수 있다. 일 실시예에서, 상기 문턱 값은 레이어 각각에 대하여 다르게 설정될 수 있고, 가중치 원소마다 각각 다르게 설정될 수도 있다.
이후, 희소 신경망 생성부(30)는 상기 학습이 완료된 신경망의 가중치들 중 임의의 값에 이르지 못하는 가중치에 의한 연결을 제거할 수 있다(S20). 상기 임의의 값은 문턱값 설정부(15)에서 설정되어 학습시 이용된 문턱값 일 수 있다. 또는, 상기 임의의 값은 상기 문턱값과 관련 없이 학습이 완료된 상태에서의 가중치들의 수를 감소시키기 위하여 결정된 별도의 값일 수 있다. 일 실시예에서, 상기 임의의 값은 가중치 전체에 대하여 적용될 수 있고, 각 레이어마다 상이하게 적용될 수도 있으며, 가중치 원소마다 상이하게 적용될 수도 있다.
희소 신경망 생성부(30)는 상기 임의의 값에 이르지 못하는 가중치에 의한 연결을 제거하여 최종 희소 신경망을 획득할 수 있다(S30). 상기 최종 희소 신경망은 상기 학습을 수행하는 단계 중 임의의 단계에서 희소 정도(sparsity) 뿐만 아니라 정확도(accuracy)를 확인하고, 학습 중의 수정을 통하여 최종 정확도를 조절함으로써 획득될 수 있다. 따라서, 입력 데이터의 학습 완료 이후 문턱 값을 이용하여 가중치를 제거하는 일반적인 희소 신경망 생성 방법에서 필수적인 재학습 단계를 필요로 하지 아니하므로 희소 신경망 생성을 위한 시간을 단축시킬 수 있다.
본 발명의 일 실시예에 따른 희소 신경망 생성 방법 및 이를 위한 시스템은, 미리 학습시켜 놓은(pretrained) 신경망 모델을 필요로 하지 아니하며, 학습이 완료된 이후 소정의 문턱 값을 이용한 재학습 또는 재프루닝 단계를 필요로 하지 아니할 수 있다. 일 실시예에서, 학습 중 잘린 가중치는 학습이 계속되는 중, 동적 프루닝으로 인하여 필요에 의해 다시 연결될 수 있으므로 동일한 정확도를 갖는 신경망 모델 중 희소 정도를 증가시킬 수 있다. 재학습이 없이 임의의 학습 진행 단계에서 현재의 희소 정도(sparsity)를 직접 확인할 수도 있다.
일반적인 신경망 생성을 위한 학습 방법에서는 희소 정도를 조절하기 위하여 하이퍼 파라미터(hyper parameter), 문턱 값, 학습 일정 계획과 같은 다양한 변수에 의해 희소 정도를 조절한다. 그러나, 본 발명의 일 실시예에 따른 희소 신경망 생성 방법 및 이를 위한 시스템에서 희소 신경망의 희소 정도는 손실 함수에 포함되는 문턱 값, 즉, 상수 값 하나에 의하여만 영향을 받을 수 있다. 그러므로, 기존의 일반적인 방법 대비 매우 적은 시행착오(trial and error) 를 통하여 효율적으로 희소 신경망을 학습할 수 있게 된다.
이상에서 설명한 본 발명이 전술한 실시예 및 첨부된 도면에 한정되지 않으며, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러가지 치환, 변형 및 변경이 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.

Claims (16)

  1. 입력 데이터 및 소정의 문턱 값을 이용하여 신경망 노드들 간의 가중치들에 대한 학습을 수행하는 단계;
    상기 가중치들 중에서 상기 소정의 문턱 값보다 작은 크기를 갖는 가중치를 제거하는 단계; 및
    상기 제거 단계에서 생존한 가중치들로 구성된 희소 신경망을 획득하는 단계를 포함하고,
    상기 획득된 희소 신경망은 상기 소정의 문턱 값을 이용한 재학습을 필요로 하지 아니하며,
    상기 획득된 희소 신경망은 상기 제거된 가중치들에 반영된 노드들 사이의 연결 상태를 기반으로 재학습된 희소 신경망 생성 방법.
  2. 제 1 항에 있어서,
    상기 가중치들에 대한 학습을 수행하는 단계는,
    상기 소정의 문턱 값을 변수로 하여 상기 노드들 간의 가중치 파라미터가 학습됨으로써 상기 가중치들의 크기가 서로 상이하게 결정되고,
    상기 소정의 문턱 값은 신경망의 손실 함수 항에 할당되는 희소 신경망 생성 방법.
  3. 제 1 항에 있어서,
    상기 가중치들에 대한 학습을 수행하는 단계는,
    적어도 한 번 이상의 학습을 진행됨에 따라 상기 가중치들이 변동되는 희소 신경망 생성 방법.
  4. 제 1 항에 있어서,
    상기 가중치를 제거하는 단계는,
    상기 학습이 완료된 상기 가중치들 중 상기 소정의 문턱 값에 이르지 못하는 가중치에 의한 연결을 제거하는 희소 신경망 생성 방법.
  5. 제 1 항에 있어서,
    상기 가중치를 제거하는 단계는,
    상기 학습이 완료된 상기 가중치들 중 임의의 문턱 값에 이르지 못하는 가중치에 의한 연결을 제거하는 희소 신경망 생성 방법.
  6. 삭제
  7. 제 1 항에 있어서,
    상기 소정의 문턱 값은 상기 신경망의 손실 함수, 상기 신경망 구성을 위한 용량에 대한 정보, 및 상기 신경망 구성을 위하여 필요한 연산량 중 적어도 어느 하나 이상을 고려하여 설정되는 희소 신경망 생성 방법.
  8. 제 1 항에 있어서,
    상기 가중치를 제거하는 단계는,
    상기 학습이 완료된 상기 가중치 각각에 대하여 임의의 문턱 값을 적용하여 상기 임의의 문턱 값에 이르지 못하는 가중치를 제거하는 희소 신경망 생성 방법.
  9. 신경망 정보를 포함하는 입력 데이터를 수신하는 입력 데이터 수신부;
    상기 입력 데이터를 학습시키기 위한 소정의 문턱 값을 설정하는 문턱값 설정부;
    상기 입력 데이터 및 상기 소정의 문턱 값을 이용하여 상기 신경망 사이를 연결하는 가중치들을 수정하는 신경망 학습부; 및
    상기 수정된 가중치들 중 상기 소정의 문턱 값에 이르지 못하는 가중치를 제거함으로써 희소 신경망을 획득하는 신경망 생성부를 포함하고,
    상기 획득된 희소 신경망은 상기 소정의 문턱 값을 이용하는 재학습을 필요로 하지 아니하며,
    상기 획득된 희소 신경망은 상기 제거된 가중치들에 반영된 노드들 사이의 연결 상태를 기반으로 재학습된 희소 신경망 생성 시스템.
  10. 제 9 항에 있어서,
    상기 신경망 학습부는 상기 소정의 문턱 값을 이용하여 학습됨으로써, 상기 가중치들의 크기가 서로 상이하게 결정되는 희소 신경망 생성 시스템.
  11. 제 9 항에 있어서,
    상기 신경망 학습부는 적어도 한 번 이상의 학습이 진행됨에 따라 상기 가중치들이 변동되는 희소 신경망 생성 시스템.
  12. 제 9 항에 있어서,
    상기 신경망 생성부는 상기 학습이 완료된 상기 가중치들 중 상기 소정의 문턱 값에 이르지 못하는 가중치에 의한 연결을 제거하는 희소 신경망 생성 시스템.
  13. 제 9 항에 있어서,
    상기 신경망 생성부는 상기 학습이 완료된 상기 가중치들 중 임의의 문턱 값에 이르지 못하는 가중치에 의한 연결을 제거하는 희소 신경망 생성 시스템.
  14. 삭제
  15. 제 9 항에 있어서,
    상기 소정의 문턱 값은 상기 희소 신경망 시스템의 손실 함수, 상기 희소 신경망 구성을 위한 용량에 대한 정보, 및 상기 희소 신경망 구성을 위하여 필요한 연산량 중 적어도 어느 하나 이상을 고려하여 설정되는 희소 신경망 생성 시스템.
  16. 제 9 항에 있어서,
    상기 신경망 생성부는 상기 학습이 완료된 상기 가중치 각각에 대하여 임의의 문턱 값을 적용하여 상기 임의의 문턱 값에 이르지 못하는 가중치를 제거하는 희소 신경망 생성 시스템.
KR1020190149777A 2019-11-20 2019-11-20 희소 신경망 생성 방법 및 이를 위한 시스템 KR102365270B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190149777A KR102365270B1 (ko) 2019-11-20 2019-11-20 희소 신경망 생성 방법 및 이를 위한 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190149777A KR102365270B1 (ko) 2019-11-20 2019-11-20 희소 신경망 생성 방법 및 이를 위한 시스템

Publications (2)

Publication Number Publication Date
KR20210061800A KR20210061800A (ko) 2021-05-28
KR102365270B1 true KR102365270B1 (ko) 2022-02-18

Family

ID=76140425

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190149777A KR102365270B1 (ko) 2019-11-20 2019-11-20 희소 신경망 생성 방법 및 이를 위한 시스템

Country Status (1)

Country Link
KR (1) KR102365270B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102583938B1 (ko) * 2021-08-18 2023-09-26 연세대학교 산학협력단 Lstm 가속을 위한 게이트-단위 가지치기 방법 및 장치

Also Published As

Publication number Publication date
KR20210061800A (ko) 2021-05-28

Similar Documents

Publication Publication Date Title
KR102641116B1 (ko) 데이터 증강에 기초한 인식 모델 트레이닝 방법 및 장치, 이미지 인식 방법 및 장치
US20180096249A1 (en) Convolutional neural network system using adaptive pruning and weight sharing and operation method thereof
KR102582194B1 (ko) 선택적 역전파
CN107533754B (zh) 在深度卷积网络中降低图像分辨率
CN107273936B (zh) 一种gan图像处理方法及系统
US20210182666A1 (en) Weight data storage method and neural network processor based on the method
CN111797983A (zh) 一种神经网络构建方法以及装置
TW201627923A (zh) 模型壓縮和微調
KR20160034814A (ko) 뉴럴 네트워크를 수반한 클라이언트 장치 및 그것을 포함하는 시스템
JP6977886B2 (ja) 機械学習方法、機械学習装置、及び機械学習プログラム
CN111783937A (zh) 一种神经网络构建方法以及系统
CN111680781B (zh) 神经网络处理方法、装置、电子设备及存储介质
US20180082179A1 (en) Systems and methods for deep learning with small training sets
WO2019146189A1 (ja) ニューラルネットワークのランク最適化装置および最適化方法
CN111428854A (zh) 一种结构搜索方法及结构搜索装置
CN111242176B (zh) 计算机视觉任务的处理方法、装置及电子系统
KR20200100302A (ko) 신경망 기반의 데이터 처리 방법, 신경망 트레이닝 방법 및 그 장치들
KR102365270B1 (ko) 희소 신경망 생성 방법 및 이를 위한 시스템
TWI824485B (zh) 最佳化神經網路模型的方法
CN115018039A (zh) 一种神经网络蒸馏方法、目标检测方法以及装置
CN112884648A (zh) 多类模糊图像超分辨率重建的方法和系统
KR20210060146A (ko) 딥 뉴럴 네트워크 모델을 이용한 데이터 처리 방법 및 장치, 딥 뉴럴 네트워크 모델을 학습시키는 학습 방법 및 장치
CN111079900B (zh) 一种基于自适应连接神经网络的图像处理方法及装置
Zhang et al. Af-dndf: Asynchronous federated learning of deep neural decision forests
CN108376283B (zh) 用于神经网络的池化装置和池化方法

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant