KR20200132660A - 가우시안 가치 분포에 기초하여 현재 상태에 대한 행동을 선택하는 뉴럴 네트워크 장치 및 이를 이용하는 행동 선택 방법 - Google Patents

가우시안 가치 분포에 기초하여 현재 상태에 대한 행동을 선택하는 뉴럴 네트워크 장치 및 이를 이용하는 행동 선택 방법 Download PDF

Info

Publication number
KR20200132660A
KR20200132660A KR1020200013731A KR20200013731A KR20200132660A KR 20200132660 A KR20200132660 A KR 20200132660A KR 1020200013731 A KR1020200013731 A KR 1020200013731A KR 20200013731 A KR20200013731 A KR 20200013731A KR 20200132660 A KR20200132660 A KR 20200132660A
Authority
KR
South Korea
Prior art keywords
value
value distribution
gaussian
current state
distribution
Prior art date
Application number
KR1020200013731A
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 CN202010411270.7A priority Critical patent/CN112200309A/zh
Priority to US16/875,170 priority patent/US20200364567A1/en
Publication of KR20200132660A publication Critical patent/KR20200132660A/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/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
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • 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/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Operations Research (AREA)
  • Probability & Statistics with Applications (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)

Abstract

가치 리턴에 기초하여 현재 상태에 대한 행동을 선택하는 뉴럴 네트워크 장치 및 이를 이용하는 행동 선택 방법이 개시된다. 본 개시에 따른 적어도 하나의 프로세서에 의해 수행되는, 딥 러닝을 이용하여 행동을 선택하는 방법은, 현재 상태를 입력으로서 수신하는 단계, 상기 현재 상태에 대해 수행할 수 있는 복수의 행동들 각각에 대한 가치 분포를 산출하는 단계 및 상기 가치 분포를 이용하여 상기 복수의 행동들 중 최적의 행동을 선택하는 단계를 포함하고, 상기 가치 분포는 가우시안 분포를 따르는 적어도 하나의 가우시안 그래프를 포함하는 것을 특징으로 할 수 있다.

Description

가우시안 가치 분포에 기초하여 현재 상태에 대한 행동을 선택하는 뉴럴 네트워크 장치 및 이를 이용하는 행동 선택 방법{NEURAL NETWORK DEVICE SELECTING ACTION FOR CURRENT STATE BASED ON GAUSSIAN VALUE DISTRIBUTION AND ACTION SELECTING METHOD USING THE SAME}
본 개시의 기술적 사상은 뉴럴 네트워크 장치에 관한 것으로서, 자세하게는 가치 리턴에 기초하여 현재 상태에 대한 행동을 선택하는 뉴럴 네트워크 장치 및 이를 이용하는 행동 선택 방법에 관한 것이다.
뉴럴 네트워크(neural network)는 생물학적 뇌를 모델링한 컴퓨터 과학적 아키텍쳐(computational architecture)를 참조한다. 최근 뉴럴 네트워크(neural network) 기술이 발전함에 따라, 다양한 종류의 전자 시스템에서 하나 이상의 뉴럴 네트워크 모델을 이용한 뉴럴 네트워크 장치를 사용하여 입력 데이터를 분석하고 유효한 정보를 추출하는 연구가 활발히 진행되고 있다.
머신 러닝(Machine Learning)은 뉴럴 네트워크를 이용한 인공 지능의 한 분야로서, 컴퓨터에 데이터를 입력하여 학습하게 함으로써 새로운 지식을 생성하는 기술을 의미한다. 특히, 머신 러닝 기술의 하나인 뉴럴 네트워크 분야에서 두드러진 발전이 이루어졌으며, 그 결과로서 딥러닝(Deep Learning)이 탄생하였다.
딥러닝은 인공 신경망에 기반을 둔 머신 러닝 기술의 한 종류로, 인공 신경망이 다층 구조로 설계되어 깊어지더라도 학습을 위한 데이터들을 비지도 학습(Unsupervised Learning) 전처리함으로써 학습 효율을 향상시킬 수 있다. 특히, 딥러닝은 인터넷에 의한 빅데이터 및 이를 처리하기 위한 컴퓨팅 능력의 향상으로 최근 비약적인 발전을 보이고 있다.
본 개시의 기술적 사상이 해결하고자 하는 과제는 가치 리턴에 기초하여 현재 상태에 대한 최적의 행동을 선택하는 뉴럴 네트워크 장치 및 이를 이용한 행동 선택 방법을 제공하는데 있다.
본 개시의 기술적 사상이 해결하고자 하는 또 다른 과제는 최적의 행동을 선택하기 위한 커널 웨이트를 결정하는 뉴럴 네트워크 장치 및 이를 이용한 행동 선택 방법을 제공하는데 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 적어도 하나의 프로세서에 의해 수행되는, 딥 러닝을 이용하여 행동을 선택하는 방법은, 현재 상태를 입력으로서 수신하는 단계, 상기 현재 상태에 대해 수행할 수 있는 복수의 행동들 각각에 대한 가치 분포를 산출하는 단계 및 상기 가치 분포를 이용하여 상기 복수의 행동들 중 최적의 행동을 선택하는 단계를 포함하고, 상기 가치 분포는 가우시안 분포를 따르는 적어도 하나의 가우시안 그래프를 포함하는 것을 특징으로 할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 적어도 하나의 프로세서에 의해 수행되는, 딥 러닝을 이용하여 행동을 선택하는 방법은, 현재 상태를 입력으로서 수신하는 단계, 웨이트 커널을 이용하여 상기 현재 상태에 대응하는 입력 피처맵에 대한 컨볼루션 연산을 수행하는 단계 및 상기 현재 상태에 대응하는 제1 가치 분포와 상기 현재 상태에 대한 계산 값에 대응하는 제2 가치 분포의 거리 차이를 최소화하기 위한 상기 웨이트 커널을 설정하는 단계를 포함하고, 상기 제1 가치 분포는 상기 현재 상태의 가치 리턴들에 대응하는 복수의 제1 가우시안 그래프들로 구성되고, 상기 제2 가치 분포는 상기 현재 상태의 다음 상태의 가치 리턴들과 상기 복수의 행동들의 가치 리턴들의 합에 대응하는 복수의 제2 가우시안 그래프들로 구성되는 것을 특징으로 할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 뉴럴 네트워크 장치는 현재 상태를 수신하고, 딥 러닝 모델을 이용하여 상기 현재 상태에 대해 수행할 수 있는 복수의 행동들 각각에 대한 가치 분포를 산출하는 딥 러닝 모듈 및 상기 가치 분포를 이용하여 상기 복수의 행동들 중 최적의 행동을 선택하는 포스트 프로세싱 모듈;를 포함하고, 상기 가치 분포는 가우시안 분포를 따르는 적어도 하나의 가우시안 그래프를 포함하는 것을 특징으로 할 수 있다.
본 개시의 기술적 사상에 따른 뉴럴 네트워크 프로세서는 현재 상태에 대한 행동 별로 적어도 하나의 가우시안 그래프로 구성되는 가치 분포를 산출하고, 산출된 가치 분포를 이용하여 최적의 행동을 선택함으로써 행동을 선택하는데 필요한 가치 리턴에 대한 계산 값이 감소할 수 있고, 효율적인 행동 선택이 가능할 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 전자 시스템을 나타내는 블록도이다.
도 2는 본 개시의 예시적 실시예에 따른 전자 시스템을 나타내는 블록도이다.
도 3은 본 개시의 예시적 실시예에 따른 뉴럴 네트워크 장치를 나타내는 블록도이다.
도 4는 본 개시의 예시적 실시예에 따른 뉴럴 네트워크 장치의 동작 방법을 나타내는 순서도이다.
도 5는 본 개시의 예시적 실시예에 따른 뉴럴 네트워크를 나타내는 도면이다.
도 6a 및 도 6b는 본 개시의 예시적 실시예에 따른 뉴럴 네트워크의 컨볼루션 연산을 설명하기 위한 도면이다.
도 7은 본 개시의 예시적 실시예에 따른 뉴럴 네트워크를 나타내는 도면이다.
도 8은 본 개시의 예시적 실시예에 따른 뉴럴 네트워크 장치의 동작 방법을 나타내는 순서도이다.
도 9는 본 개시의 예시적 실시예에 따른 뉴럴 네트워크 장치의 동작을 나타내는 도면이다.
도 10은 본 개시의 예시적 실시예에 따른 뉴럴 네트워크 장치의 동작 방법을 나타내는 순서도이다.
도 11은 본 개시의 예시적 실시예에 따른 뉴럴 네트워크 장치의 동작을 나타내는 도면이다.
도 12는 본 개시의 예시적 실시예에 따른 전자 시스템의 동작 방법을 나타내는 순서도이다.
도 13은 본 개시의 예시적 실시예에 따른 뉴럴 네트워크 장치를 나타내는 블록도이다.
도 14는 본 개시의 예시적 실시예에 따른 어플리케이션 프로세서를 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 개시의 실시예에 대해 상세히 설명한다.
도 1은 본 개시의 예시적 실시예에 따른 전자 시스템을 나타내는 블록도이다.
도 1을 참조하면, 전자 시스템(10)은 뉴럴 네트워크를 기초로 입력 데이터를 실시간으로 분석하여 유효한 정보를 추출하고, 추출된 정보를 기초로 상황을 판단하거나 전자 시스템(10)이 탐재되는 전자 장치의 구성들을 제어할 수 있다. 예를 들어, 전자 시스템(10)은 드론(drone), 첨단 운전자 보조 시스템(Advanced Drivers Assistance System; ADAS), 로봇 장치, 스마트 TV, 스마트 폰, 의료 장치, 모바일 장치, 영상 표시 장치, 계측 장치, IoT(Internet of Things) 장치 등에 적용될 수 있으며, 이외에도 다양한 종류의 전자 장치 중 하나에 탑재될 수 있다.
전자 시스템(10)은 적어도 하나의 IP 블록(Intellectual Property) 및 뉴럴 네트워크 장치(100)를 포함할 수 있다. 예를 들어, 전자 시스템(10)은 제1 IP 블록(IP1) 내지 제3 IP 블록(IP3) 및 뉴럴 네트워크 장치(100)를 포함할 수 있다.
전자 시스템(10)은 다양한 종류의 IP 블록들을 포함할 수 있다. 예를 들어, IP 블록들은 프로세싱 유닛(processing unit), 프로세싱 유닛에 포함된 복수의 코어들(cores), MFC(Multi-Format Codec), 비디오 모듈(예컨대, 카메라 인터페이스, JPEG(Joint Photographic Experts Group) 프로세서, 비디오 프로세서, 또는 믹서 등), 3D 그래픽 코어, 오디오 시스템, 드라이버, 디스플레이 드라이버, 휘발성 메모리, 비휘발성 메모리(non-volatile memory), 메모리 컨트롤러(memory controller), 입출력 인터페이스 블록(input and output interface block), 또는 캐시 메모리(cache memory) 등을 포함할 수 있다. 제1 IP 블록(IP1) 내지 제3 IP 블록(IP3) 각각은 상기 다양한 종류의 IP 블록들 중 적어도 하나를 포함할 수 있다.
IP들을 연결하기 위한 기술에는 시스템 버스(System Bus)를 기반으로 한 연결 방식이 있다. 예를 들어, 표준 버스 규격으로서, ARM(Advanced RISC Machine) 사의 AMBA(Advanced Microcontroller Bus Architecture) 프로토콜이 적용될 수 있다. AMBA 프로토콜의 버스 타입에는 AHB(Advanced High-Performance Bus), APB(Advanced Peripheral Bus), AXI(Advanced eXtensible Interface), AXI4, ACE(AXI Coherency Extensions) 등이 포함될 수 있다. 전술된 버스 타입들 중 AXI는 IP들 사이의 인터페이스 프로토콜로서, 다중 아웃스탠딩 어드레스(multiple outstanding address) 기능과 데이터 인터리빙(data interleaving) 기능 등을 제공할 수 있다. 이외에도, 소닉사(SONICs Inc.)의 uNetwork 나 IBM사의 CoreConnect, OCP-IP의 오픈 코어 프로토콜(Open Core Protocol) 등 다른 타입의 프로토콜이 시스템 버스에 적용되어도 무방할 것이다.
뉴럴 네트워크 장치(100)는 뉴럴 네트워크를 생성하거나, 뉴럴 네트워크를 훈련(train, 또는 학습(learn))하거나, 수신되는 입력 데이터를 기초로 연산을 수행하고, 수행 결과를 기초로 정보 신호(information signal)를 생성하거나, 뉴럴 네트워크를 재훈련(retrain)할 수 있다. 뉴럴 네트워크의 모델들은 GoogleNet, AlexNet, VGG Network 등과 같은 CNN(Convolution Neural Network), R-CNN(Region with Convolution Neural Network), RPN(Region Proposal Network), RNN(Recurrent Neural Network), S-DNN(Stacking-based deep Neural Network), S-SDNN(State-Space Dynamic Neural Network), Deconvolution Network, DBN(Deep Belief Network), RBM(Restrcted Boltzman Machine), Fully Convolutional Network, LSTM(Long Short-Term Memory) Network, Classification Network, DQN(Deep Q-Network), Distribution Reinforcement Learning 등 다양한 종류의 모델들을 포함할 수 있으나 이에 제한되지는 않는다. 뉴럴 네트워크 장치(100)는 뉴럴 네트워크의 모델들에 따른 연산을 수행하기 위한 하나 이상의 프로세서를 포함할 수 있다. 또한, 뉴럴 네트워크 장치(100)는 뉴럴 네트워크의 모델들에 대응되는 프로그램들을 저장하기 위한 별도의 메모리를 포함할 수도 있다. 뉴럴 네트워크 장치(100)는 뉴럴 네트워크 처리 장치(neural network processing device), 뉴럴 네트워크 집적 회로(neural network integrated circuit), 뉴럴 네트워크 처리 유닛(Neural network Processing Unit; NPU) 또는 딥 러닝 장치(Deep Learning Device) 등으로 달리 호칭될 수 있다.
뉴럴 네트워크 장치(100)는 시스템 버스를 통해 적어도 하나의 IP 블록으로부터 다양한 종류의 입력 데이터를 수신할 수 있고, 입력 데이터를 기초로 정보 신호를 생성할 수 있다. 예를 들어, 뉴럴 네트워크 장치(100)는 입력 데이터에 뉴럴 네트워크 연산을 수행함으로써 정보 신호를 생성해낼 수 있으며, 뉴럴 네트워크 연산은 컨볼루션 연산을 포함할 수 있다. 뉴럴 네트워크 장치(100)의 컨볼루션 연산에 관해서는 도 6a 및 도 6b를 참조해 보다 자세히 설명된다.
뉴럴 네트워크 장치(100)가 생성하는 정보 신호는 음성 인식 신호, 사물 인식 신호, 영상 인식 신호, 생체 정보 인식 신호 등과 같은 다양한 종류의 인식 신호들 중 적어도 하나를 포함할 수 있다. 예를 들어, 뉴럴 네트워크 장치(100)는 비디오 스트림에 포함되는 프레임 데이터를 입력 데이터로서 수신하고, 프레임 데이터로부터 프레임 데이터가 나타내는 이미지에 포함된 사물에 대한 인식 신호를 생성할 수 있다. 하지만, 이에 제한되는 것은 아니며, 뉴럴 네트워크 장치(100)는 다양한 종류의 입력 데이터를 수신할 수 있고, 입력 데이터에 따른 인식 신호를 생성할 수 있다.
본 개시의 예시적 실시예에 따른 전자 시스템(10)는, 입력으로 수신한 현재 상태에 대응하는 복수의 행동들 중에서 최적의 행동을 선택하기 위해 가치 분포를 이용할 수 있고, 가치 분포는 적어도 하나의 가우시안 그래프로 구성될 수 있다. 또한, 가치 분포를 구성하는 적어도 하나의 가우시안 그래프는 가치 웨이트, 가치 평균 및 가치 표준 편차로 정의될 수 있고, 전자 시스템(10)은 뉴럴 네트워크 장치(100)의 딥 러닝 학습 결과로서 가치 웨이트, 가치 평균 및 가치 표준 편차를 출력할 수 있고, 이를 이용하여 최적의 행동을 선택할 수 있다.
도 2는 본 개시의 예시적 실시예에 따른 전자 시스템을 나타내는 블록도이다. 상세하게는, 도 2는 도 1에 개시된 전자 시스템(10)의, 보다 구체적인 예시적 실시예를 나타낸다. 도 2의 전자 시스템(10)에 관해 도 1과 중복되는 설명은 생략한다.
도 2를 참조하면, 전자 시스템(10)은 뉴럴 네트워크 장치(100), RAM(Random Access Memory; 200), 프로세서(300), 메모리(400) 및 센서 모듈(500)을 포함할 수 있다. 뉴럴 네트워크 장치(100)은 도 1의 뉴럴 네트워크 장치(100)에 대응되는 구성일 수 있다.
RAM(200)은 프로그램들, 데이터, 또는 명령들(instructions)을 일시적으로 저장할 수 있다. 예컨대, 메모리(400)에 저장된 프로그램들 및/또는 데이터는 프로세서(300)의 제어 또는 부팅 코드에 따라 RAM(200)에 일시적으로 로딩될 수 있다. RAM(200)은 DRAM(Dynamic RAM) 또는 SRAM(Static RAM) 등의 메모리를 이용해 구현될 수 있다.
프로세서(300)는 전자 시스템(10)의 전반적인 동작을 제어할 수 있으며, 일 예로서 프로세서(300)는 중앙 프로세싱 유닛(Central Processing Unit; CPU)일 수 있다. 프로세서(300)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. 프로세서(300)는 RAM(200) 및 메모리(400)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다. 예를 들어, 프로세서(300)는 메모리(400)에 저장된 프로그램들을 실행함으로써 전자 시스템(10)의 기능들을 제어할 수 있다.
메모리(400)는 데이터를 저장하기 위한 저장 장소로서, 예를 들어, OS(Operating System), 각종 프로그램들 및 각종 데이터를 저장할 수 있다. 메모리(400)는 DRAM일 수 있으나, 이에 한정되는 것은 아니다. 메모리(400)는 휘발성 메모리(volatile memory) 또는 비휘발성 메모리(non-volatile memory) 중 적어도 하나를 포함할 수 있다. 비휘발성 메모리는 ROM(Read Only Memory), PROM(Programmable ROM), EPROM(Electrically Programmable ROM), EEPROM(Electrically Erasable and Programmable ROM), 플래시 메모리, PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), FRAM(Ferroelectric RAM) 등을 포함할 수 있다. 휘발성 메모리는 DRAM(Dynamic RAM), SRAM(Static RAM), SDRAM(Synchronous DRAM), PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), FeRAM(Ferroelectric RAM) 등을 포함할 수 있다. 또한 일 실시예에 있어서, 메모리(400)는 HDD(Hard Disk Drive), SSD(Solid State Drive), CF(Compact Flash), SD(Secure Digital), Micro-SD(Micro Secure Digital), Mini-SD(Mini Secure Digital), xD(extreme digital) 또는 Memory Stick 중 적어도 하나를 포함할 수도 있다.
센서 모듈(500)은 전자 시스템(10) 주변의 정보를 수집할 수 있다. 센서 모듈(500)은 전자 시스템(10) 외부로부터 이미지 신호를 센싱 또는 수신할 수 있고, 센싱 또는 수신된 이미지 신호를 이미지 데이터, 즉 이미지 프레임으로 변환할 수 있다. 이를 위해, 센서 모듈(500)은 센싱 장치, 예컨대 촬상 장치, 이미지 센서, 라이더(LIDAR; light detection and ranging) 센서, 초음파 센서, 적외선 센서 등 다양한 종류의 센싱 장치들 중 적어도 하나를 포함하거나, 또는 상기 장치로부터 센싱 신호를 수신할 수 있다. 일 실시예에서, 센서 모듈(500)은 이미지 프레임을 뉴럴 네트워크 장치(100)에 제공할 수 있다. 예를 들어, 센서 모듈(500)은 이미지 센서를 포함할 수 있으며, 전자 시스템(10)의 외부 환경을 촬영함으로써 비디오 스트림을 생성하고, 비디오 스트림의 연속되는 이미지 프레임들을 뉴럴 네트워크 장치(100)에 순차적으로 제공할 수 있다.
본 개시의 예시적 실시예에 따른 전자 시스템(10)는, 입력으로 수신한 현재 상태에 대응하는 복수의 행동들 중에서 최적의 행동을 선택하기 위해 가치 분포를 이용할 수 있고, 가치 분포는 적어도 하나의 가우시안 그래프로 구성될 수 있다. 또한, 가치 분포를 구성하는 적어도 하나의 가우시안 그래프는 가치 웨이트, 가치 평균 및 가치 표준 편차로 정의될 수 있고, 전자 시스템(10)은 뉴럴 네트워크 장치(100)의 딥 러닝 학습 결과로서 가치 웨이트, 가치 평균 및 가치 표준 편차를 출력할 수 있고, 이를 이용하여 최적의 행동을 선택할 수 있다.
도 3은 본 개시의 예시적 실시예에 따른 뉴럴 네트워크 장치를 나타내는 블록도이다.
도 3을 참조하면, 뉴럴 네트워크 장치(100)는 딥 러닝 모듈(120) 및 포스트 프로세싱 모듈(140)을 포함할 수 있다.
딥 러닝 모듈(120)은 입력 피처맵(IFM)으로서 현재 상태(CS)를 데이터의 형태로 수신할 수 있고, 현재 상태(CS)에 대한 딥 러닝 학습을 수행함으로써 제1 가치 분포(QG1) 내지 제n 가치 분포(QGn)를 생성할 수 있다. 일 실시예에서, 딥 러닝 모듈(120)은 현재 상태(CS)에 대해 수행할 수 있는 복수의 행동들(Act1~Actn) 각각에 대한 가치 분포들(QG1~QGn)을 생성할 수 있다. 일 실시예에서, 딥 러닝 모듈(120)은 분포 강화 학습(Distributional Reinfocement Learning)을 이용해서 복수의 행동들(Act1~Actn) 각각에 대한 가치 분포들(QG1~QGn)을 생성할 수 있다.
강화 학습은 현재 상태(CS)에서 어떤 행동을 취하는 것이 최적인지를 학습하는 기계 학습 방법을 의미할 수 있다. 행동을 취할 때마다 외부 환경에서 보상(Reward)이 주어지는데, 이러한 보상을 최대화 하는 방향으로 학습이 진행될 수 있다. 상기 보상은 가치 리턴의 형태로 계산가능하고, 분포 강화 학습 방법론에 따르면, 가치 리턴은 가치 분포의 형태로 구현될 수 있다.
강화 학습에서는 당장의 보상값이 조금은 적더라도, 나중에 얻을 값을 포함한 보상값의 총 합이 최대화되도록 행동을 선택해야 하며, 게다가 행동하는 사용자는 어떤 행동을 해야 저 보상값의 합이 최대화되는지 모르기 때문에, 미래를 고려하면서 가장 좋은 선택이 뭔지 행동을 여러 방식으로 수행하며 고민해야 한다.
본 개시의 일 실시예에서, 딥 러닝 모듈(120)은 현재 상태(CS)에 대한 복수의 행동들(Act1~Actn) 각각에 대한 가치 분포들을 평균 값, 웨이트 값 및 표준 편차 값으로 정의되는 적어도 하나의 가우시안 그래프들로 구성시킬 수 있고, 딥 러닝 모듈(120)은 가치 분포를, 가우시안 그래프들의 평균 값, 웨이트 값 및 표준 편차 값으로 표현시킴으로써 딥 러닝 모듈(120)의 결과 값을 한정된 네트워크 파라미터로 표현할 수 있다.
본 명세서에서, 가치 분포를 구성하는 가우시안 그래프들의 평균 값을 가치 평균 값(Value Mean)으로 칭하고, 가우시안 그래프들의 웨이트 값을 확률 웨이트(Probability Weight)로 칭하고, 가우시안 그래프들의 표준 편차 값을 가치 표준 편차(Value Variance)로 칭한다.
딥 러닝 모듈(120)은 생성한 제1 가치 분포(QG1) 내지 제n 가치 분포(QGn)를 포스트 프로세싱 모듈(140)에 출력할 수 있다. 일 실시예에서, 딥 러닝 모듈(120)은 제1 가치 분포(QG1) 내지 제n 가치 분포(QGn)을 구성하는 네트워크 파라미터들, 즉, 복수의 가우시안 그래프들에 대한 가치 평균 값, 확률 웨이트 및 가치 표준 편차를 포스트 프로세싱 모듈(140)에 출력할 수 있다.
딥 러닝 모듈(120)은 컨볼루션 모듈(122) 및 완전 연결(Fully Connection) 모듈(124)을 포함할 수 있다. 컨볼루션 모듈(122)은 웨이트 커널(WK)을 수신하고, 웨이트 커널(WK) 및 입력 피처맵(IFM)으로서 수신한 현재 상태(CS)에 대한 컨볼루션 연산을 수행함으로써 출력 피처맵을 생성할 수 있다.
본 개시의 일 실시예에서, 뉴럴 네트워크 장치(100)는 가치 리턴을 최적화하기 위한 웨이트 커널(WK)을 가치 분포(QG1~QGn)의 실제 값과 계산 값 간의 거리 정보를 기초로 결정할 수 있다. 이에 관해서는 도 12에서 후술한다.
완전 연결 모듈(124)은 복수의 행동들(Act1~Actn) 각각을 출력 피처맵의 각각 요소들과 완전 연결 시킴으로써 가치 분포들(QG1~QGn)을 생성할 수 있다. 완전 연결이란, 컨볼루션 결과 생성된 출력 피처맵의 각 구성과 복수의 행동들(Act1~Actn) 각각의, 모든 연결에 대응하는 연산을 수행하는 것으로써, 결과적으로 완전 연결을 통해 복수의 행동들(Act1~Actn) 각각에 대한 출력 피처맵의 모든 구성에 대응하는 연산 값이 가치 리턴 값으로서 출력될 수 있다.
본 개시의 일 실시예에 따르면, 완전 연결 모듈(124)은 상기 가치 리턴 값으로써 가치 분포를 구성하는 적어도 하나의 가우시안 그래프를 출력할 수 있다. 또한, 일 실시예에서, 완전 연결 모듈(124)은 상기 가치 리턴 값으로써 상기 적어도 하나의 가우시안 그래프 각각에 대응하는 가치 평균 값, 확률 웨이트 및 가치 표준 편차를 출력할 수 있다.
포스트 프로세싱 모듈(140)은 제1 가치 분포(QG1) 내지 제n 가치 분포(QGn)에 대응하는 네트워크 파라미터들을 수신하고, 제1 가치 분포(QG1) 내지 제n 가치 분포(QGn)를 기초로 복수의 행동들(Act1~Actn) 중 최적의 행동(Act_sel)을 선택할 수 있다. 본 개시의 일 실시예에서, 포스트 프로세싱 모듈(140)은 네트워크 파라미터들을 기초로 제1 가치 분포(QG1) 내지 제n 가치 분포(QGn)의 평균 값을 계산하고, 평균 값이 가장 큰 가치 분포에 대응하는 행동을 최적의 행동(Act_sel)으로 선택할 수 있다. 일 예시에서, 복수의 가치 분포들(QG1~QGn) 각각은 x축으로서 가치 값(q), y축으로서 가치 값에 따른 확률값(p(q))을 가질 수 있고, 상기 평균 값(average value, AV)는 아래 수학식 1과 같을 수 있다.
Figure pat00001
도 4는 본 개시의 예시적 실시예에 따른 뉴럴 네트워크 장치의 동작 방법을 나타내는 순서도이다.
도 3 및 도 4를 참조하면, 뉴럴 네트워크 장치(100)는 입력으로 현재 상태(CS)를 수신할 수 있다(S10). 뉴럴 네트워크 장치(100)는 현재 상태(CS)에 대해 수행할 수 있는 복수의 행동들(Act1~Actn) 각각에 대한 가치 분포(QG1~QGn)를 산출할 수 있다.
일 실시예에서, 뉴럴 네트워크 장치(100)는 분포 강화 학습을 이용하여 복수의 행동들(Act1~Actn) 각각에 대해, 가치 평균 값, 확률 웨이트 및 가치 표준 편차로 정의되는 적어도 하나의 가우시안 그래프들로 구성되는 가치 분포들(QG1~QGn)을 산출할 수 있다.
뉴럴 네트워크 장치(100)는 가치 분포들(QG1~QGn)을 이용하여 복수의 행동들(Act1~Actn) 중 최적의 행동을 선택할 수 있다(S30). 일 실시예에서, 뉴럴 네트워크 장치(100)는 가치 분포들(QG1~QGn) 각각에 대한 평균을 계산하고, 평균이 가장 큰 가치 분포에 대응하는 행동을 최적의 행동으로 선택할 수 있다.
도 5는 본 개시의 예시적 실시예에 따른 뉴럴 네트워크를 나타내는 도면이다. 상세하게는, 도 5는 뉴럴 네트워크 구조의 일 예로서, 컨볼루션 뉴럴 네트워크의 구조를 나타낸다.
도 5를 참조하면, 뉴럴 네트워크(NN)는 복수의 레이어들(L1 내지 Ln)을 포함할 수 있다. 복수의 레이어들(L1 내지 Ln) 각각은 선형 레이어 또는 비선형 레이어일 수 있으며, 일 실시예에 있어서, 적어도 하나의 선형 레이어 및 적어도 하나의 비선형 레이어가 결합되어 하나의 레이어로 지칭될 수도 있다. 예시적으로, 선형 레이어는 컨볼루션 레이어(convolution layer) 및 완전 연결 레이어(fully connected layer)를 포함할 수 있으며, 비선형 레이어는 풀링(pooling layer) 및 활성 레이어(activation layer)를 포함할 수 있다.
예시적으로, 제1 레이어(L1)는 컨볼루션 레이어이고, 제2 레이어(L2)는 풀링 레이어이고, 제n 레이어(Ln)는 출력 레이어로서 완전 연결 레이어일 수 있다. 뉴럴 네트워크(NN)는 활성 레이어를 더 포함할 수 있으며, 다른 종류의 연산을 수행하는 레이어를 더 포함할 수 있다.
복수의 레이어들(L1 내지 Ln) 각각은 입력되는 데이터(예컨대, 이미지 프레임) 또는 이전 레이어에서 생성된 피처맵을 입력 피처맵으로서 수신하고, 입력 피처맵을 연산함으로써 가치 리턴(QR)를 생성할 수 있다. 일 실시예에서, 가치 리턴(QR)은 적어도 하나의 가우시안 그래프를 포함하는 가치 분포, 또는 상기 적어도 하나의 가우시안 그래프에 대응하는 네트워크 파라미터들(예를 들면, 가치 평균 값, 확률 웨이트, 가치 표준편차)일 수 있다.
피처맵은 입력 데이터의 다양한 특징이 표현된 데이터를 의미한다. 피처맵들(FM1, FM2, FMn)은 예컨대 2차원 매트릭스 또는 3차원 매트릭스(또는 텐서(tensor)) 형태를 가질 수 있다. 일 실시예에서, 입력되는 제1 피처맵(FM1)은 현재 상태에 대응하는 데이터일 수 있다. 피처맵들(FM1, FM2, FMn)은 너비(W)(또는 칼럼), 높이(H)(또는 로우) 및 깊이(D)를 가지며, 이는 좌표상의 x축, y축 및 z축에 각각 대응될 수 있다. 이 때, 깊이(D)는 채널 수로 지칭될 수 있다.
제1 레이어(L1)는 제1 피처맵(FM1)을 웨이트 커널(WK)과 컨볼루션함으로써 제2 피처맵(FM2)을 생성할 수 있다. 웨이트 커널(WK)은 제1 피처맵(FM1)을 필터링할 수 있으며, 필터 또는 맵으로도 지칭될 수 있다. 웨이트 커널(WK)의 깊이, 즉 채널 개수는 제1 피처맵(FM1)의 깊이, 즉 채널 개수와 동일하며, 웨이트 커널(WK)과 제1 피처맵(FM1)의 동일한 채널끼리 컨볼루션 될 수 있다. 웨이트 커널(WK)이 제1 피처맵(FM1)을 슬라이딩 윈도우로 하여 횡단하는 방식으로 시프트 될 수 있다. 시프트되는 양은 "스트라이드(stride) 길이" 또는 "스트라이드"로 지칭될 수 있다.
각 시프트 동안, 웨이트 커널(WK)에 포함되는 웨이트 값들 각각이 제1 피처맵(FM1)과 중첩되는 영역에서의 모든 픽셀 데이터들과 곱해지고 더해질 수 있다. 웨이트 커널(WK)에 포함되는 웨이트 값들 각각이 제1 피처맵(FM1)과 중첩되는 영역에서의 제1 피처맵(FM1)의 데이터들을 추출 데이터라 칭할 수 있다. 제1 피처맵(FM1)과 웨이트 커널(WK)이 컨볼루션 됨에 따라, 제2 피처맵(FM2)의 하나의 채널이 생성될 수 있다. 도 3에는 하나의 웨이트 커널(WK)이 표시되었으나, 실질적으로는 복수의 웨이트 맵들이 제1 피처맵(FM1)과 컨볼루션 되어, 제2 피처맵(FM2)의 복수의 채널들이 생성될 수 있다. 다시 말해, 제2 피처맵(FM2)의 채널의 수는 웨이트 맵의 개수에 대응될 수 있다.
제2 레이어(L2)는 풀링을 통해 제2 피처맵(FM2)의 공간적 크기(spatial size)를 변경함으로써, 제3 피처맵(FM3)을 생성할 수 있다. 풀링은 샘플링 또는 다운-샘플링으로 지칭될 수 있다. 2차원의 풀링 윈도우(PW)가 풀링 윈도우(PW)의 사이즈 단위로 제2 피처맵(FM2) 상에서 시프트 되고, 풀링 윈도우(PW)와 중첩되는 영역의 픽셀 데이터들 중 최대값(또는 픽셀 데이터들의 평균값)이 선택될 수 있다. 이에 따라, 제2 피처맵(FM2)으로부터 공간적 사이즈가 변경된 제3 피처맵(FM3)이 생성될 수 있다. 제3 피처맵(FM3)의 채널과 제2 피처맵(FM2)의 채널 개수는 동일하다. 일 실시예에서, 제3 피처맵(FM3)은 도 3에서 상술한, 컨볼루션이 완료된 출력 피처맵에 대응될 수 잇다.
제n 레이어(Ln)는 제n 피처맵(FMn)의 피처들을 조합함으로써 입력 데이터의 클래스(class)(CL)를 분류할 수 있다. 또한, 제n 레이어(Ln)는 클래스에 대응되는 가치 리턴(QR)를 생성할 수 있다. 실시예에 있어서, 입력 데이터는 현재 상태에 대응하는 데이터에 대응될 수 있으며, 제n 레이어(Ln)는 이전 레이어로부터 제공되는 제n 피처맵(FMn)을 복수의 행동들에 대응하는 클래스들을 추출함으로써 최적의 행동을 판별하기 위한 가치 리턴(QR)을 생성할 수 있다. 제n 레이어(Ln)는 도 3에서 상술한 완전 연결 모듈(도 3, 124)에 의해 수행될 수 있다.
본 개시의 일 실시예에 따르면, 가치 리턴(QR)은 복수의 행동들 각각에 대응하는 가치의 확률 분포로 표현될 수 있다. 본 명세서에서, 상술한 바와 같이 현재 상태(Current State)-행동(Action) 페어(pair) 별 가능한 가치 리턴에 대한 확률 분포를 산출하는 뉴럴 네트워크를 가치 분포 네트워크로 정의할 수 있고, 일 실시예에서, 가치 분포 네트워크는 가치 리턴에 대한 확률 분포를 정의하는 네트워크 파라미터를 딥 러닝 결과로서 출력할 수 있다.
도 6a 및 도 6b는 본 개시의 예시적 실시예에 따른 뉴럴 네트워크의 컨볼루션 연산을 설명하기 위한 도면이다.
도 6a를 참조하면, 입력 피처맵들(201)은 D개의 채널들을 포함하고, 각 채널의 입력 피처맵은 H행 W열의 크기를 가질 수 있다(D, H, W는 자연수). 커널들(202) 각각은 R행 S열의 크기를 갖고, 커널들(202)은 입력 피처맵들(201)의 채널 수(또는 깊이)(D) 에 대응되는 개수의 채널들을 포함할 수 있다(R, S는 자연수). 출력 피처맵들(203)은 입력 피처맵들(201)과 커널들(202) 간의 3차원 컨볼루션 연산을 통해 생성될 수 있고, 컨볼루션 연산에 따라 Y개의 채널들을 포함할 수 있다.
하나의 입력 피처맵과 하나의 커널 간의 컨볼루션 연산을 통해 출력 피처맵이 생성되는 과정은 도 6b를 참조해 설명될 수 있으며, 도 5b에서 설명되는 2차원 컨볼루션 연산이 전체 채널들의 입력 피처맵들(201)과 전체 채널들의 커널들(202) 간에 수행됨으로써, 전체 채널들의 출력 피처맵들(203)이 생성될 수 있다.
도 6b를 참조하면, 설명의 편의를 위해, 입력 피처맵(210)은 6x6 크기(size)를 가지고, 원본 커널(220)은 3x3 크기를 가지고, 출력 피처맵(230)은 4x4 크기인 것으로 가정하나, 이에 제한되지 않으며 뉴럴 네트워크는 다양한 크기의 피처맵들 및 커널들로 구현될 수 있다. 또한, 입력 피처맵(210), 원본 커널(220) 및 출력 피처맵(230)에 정의된 값들은 모두 예시적인 값들일 뿐이고, 본 개시에 따른 실시예들이 이에 제한되지 않는다.
원본 커널(220)은 입력 피처 맵(210)에서 3x3 크기의 윈도우 단위로 슬라이딩하면서 컨볼루션 연산을 수행할 수 있다. 컨볼루션 연산은 입력 피처 맵(210)의 어느 윈도우의 각 피처 데이터 및 원본 커널(220)에서 대응되는 위치의 각 웨이트 값들 간의 곱셈을 함으로써 획득된 값들을 모두 합산함에 따라 출력 피처 맵(230)의 각 피처 데이터를 구하는 연산을 나타낼 수 있다. 웨이트 값들과 곱해지는 상기 입력 피처 맵(210)의 윈도우에 포함된 데이터들을 입력 피처 맵(210)으로부터 추출된 추출 데이터라 칭할 수 있다. 구체적으로, 원본 커널(220)은 먼저 입력 피처 맵(210)의 제1 추출 데이터(211)와 컨볼루션 연산을 수행할 수 있다. 즉, 제1 추출 데이터(211)의 각 피처 데이터 1, 2, 3, 4, 5, 6, 7, 8, 9는 각각 대응되는 원본 커널(220)의 웨이트 값인 -1, -3, 4, 7, -2, -1, -5, 3, 1과 곱해지고, 그 결과로서 -1, -6, 12, 28, -10, -6, -35, 24, 9가 획득될 수 있다. 다음으로, 획득된 값들 -1, -6, 12, 28, -10, -6, -35, 24, 9를 모두 더한 결과인 15가 계산되고, 출력 피처 맵(230)의 1행 1열의 피처 데이터(231)는 15로 결정될 수 있다. 여기서 출력 피처 맵(230)의 1행 1열의 피처 데이터(231)는 제1 추출 데이터(211)에 대응된다. 마찬가지 방식으로, 입력 피처 맵(210)의 제2 추출 데이터(212)와 원본 커널(220) 간의 컨볼루션 연산이 수행됨으로써 출력 피처 맵(230)의 1행 2열의 피처 데이터(232)인 4가 결정될 수 있다. 최종적으로, 입력 피처 맵(210)의 마지막 추출 데이터인 제16 추출 데이터(213)와 원본 커널(220) 간의 컨볼루션 연산이 수행됨으로써 출력 피처 맵(230)의 4행 4열의 피처 데이터(233)인 11이 결정될 수 있다.
다시 말해, 하나의 입력 피처 맵(210)과 하나의 원본 커널(220) 간의 컨볼루션 연산은 입력 피처 맵(210)의 추출 데이터 및 원본 커널(220)의 대응되는 웨이트 값들의 곱셈 및 곱셈 결과들의 합산을 반복적으로 수행함으로써 처리될 수 있고, 컨볼루션 연산의 결과로서 출력 피처 맵(230)이 생성될 수 있다.
도 7은 본 개시의 예시적 실시예에 따른 뉴럴 네트워크를 나타내는 도면이다.
도 7을 참조하면, 뉴럴 네트워크(NN)는 컨볼루션 레이어(CL), 완전 연결 레이어(FCL) 및 포스트 프로세싱 레이어(PPL)를 포함할 수 있다. 컨볼루션 레이어(CL)는 현재 상태에 대응하는 입력 피처맵(IFM)을 수신하고, 웨이트 커널(WK)과의 컨볼루션 연산을 통해 출력 피처맵(OFM)을 생성할 수 있다. 컨볼루션 레이어(CL)는 도 5에서 상술한 풀링 레이어를 더 포함할 수 있고, 컨볼루션 레이어(CL)의 동작은 도 5 내지 도 6b에서 상술하였는 바 그 설명은 생략한다.
완전 연결 레이어(FCL)는 출력 피처맵(OFM)의 구성들과 복수의 행동들(Act1~Act5)을 완전 연결함으로써 복수의 행동들(Act1~Act5) 각각에 대한 가치 분포들(QG1~QG5)을 산출할 수 있고, 이에 대응하는 네트워크 파라미터들(NP1~NP5)을 생성할 수 있다. 본 개시의 일 실시예에서, 가치 분포들(QG1~QG5) 각각은 적어도 하나의 가우시안 그래프로 구성될 수 있고, 네트워크 파라미터들(NP1~NP5)은 적어도 하나의 가우시안 그래프를 나타내는 파라미터를 포함할 수 있다. 일 예시에서, 네트워크 파라미터들(NP1~NP5)은 상기 적어도 하나의 가우시안 그래프에 대한 가치 평균 값, 확률 웨이트 및 가치 표준 편차를 포함할 수 있다.
포스트 프로세싱 레이어(PPL)는 복수의 네트워크 파라미터들(NP1~NP5)을 기초로 최적의 행동을 결정할 수 있다. 일 실시예에서, 포스트 프로세싱 레이어(PPL)는 복수의 네트워크 파라미터들(NP1~NP5)을 기초로 복수의 가치 분포들(QG1~QG5) 각각에 대한 평균 값을 구할 수 있고, 평균 값이 가장 큰 가치 분포(도 7의 예시에선, 제3 가치 분포(QG3))에 대응하는 행동을 최적의 행동으로 결정할 수 있다. 도 7의 예시에서는, 최적의 행동으로써 제3 행동(Act3)이 결정될 수 있다.
도 8은 본 개시의 예시적 실시예에 따른 뉴럴 네트워크 장치의 동작 방법을 나타내는 순서도이다. 상세하게는, 도 8은 도 4의 가치 분포를 산출하는 방법(S20)를 상세하게 나타낸 도면이다.
도 3 및 도 8을 참조하면, 딥 러닝 모듈(120)는 가치 분포 네트워크를 이용하여 복수의 행동들 각각에 대한 가치 분포를 구성하는 복수의 가우시안 그래프들을 산출할 수 있다(S110). 가치 분포 네트워크는 행동 별 가치 리턴이 갖는 확률 분포를 나타내는 가치 분포를 딥 러닝의 결과물로서 출력할 수 있고, 본 개시의 일 실시예에서, 딥 러닝 모듈(120)는 가치 분포를 복수의 가우시안 그래프들로 구성되도록 산출할 수 있다.
딥 러닝 모듈(120)은 복수의 가우시안 그래프들에 대한 네트워크 파라미터를 딥 러닝(또는 기계 학습)의 결과로서 출력할 수 있다(S120). 본 개시의 일 실시예에서, 딥 러닝 모듈(120)은 네트워크 파라미터로서 복수의 가우시안 그래프들 각각에 대한 가치 평균 값, 확률 웨이트 및 가치 표준 편차를 출력할 수 있다.
도 9는 본 개시의 예시적 실시예에 따른 뉴럴 네트워크 장치의 동작을 나타내는 도면이다. 상세하게는, 도 9는 딥 러닝 결과물로서 가치 분포를 산출하는 방법을 나타낸다. 도 9의 그래프들에서, 가로축은 각 행동이 갖는 가치(Value)를 나타내고, 세로축은 각 가치를 가질 확률(Probablity)를 나타낸다.
도 3 및 도 9를 참조하면, 딥 러닝 모듈(120)은 가치 분포 네트워크를 이용하여 현재 상태에 대한 제1 행동의 결과물로서 가치 분포(QG)를 산출할 수 있다. 가치 분포(QG)는 제1 가우시안 그래프(GG1) 내지 제3 가우시안 그래프(GG3)를 병합함으로써 형성될 수 있다.
제1 가우시안 그래프(GG1)는 제1 가치 평균 값(Wt1)을 중심으로 대칭을 이룰 수 있다. 또한, 제1 가우시안 그래프(GG1)는 제1 가치 표준편차(Var1)에 대응되도록 좌우로 퍼질 수 있고, 제1 확률 웨이트(Wt1)에 대응되는 최대 값을 가질 수 있다.
제2 가우시안 그래프(GG2)는 제2 가치 평균 값(Wt2)을 중심으로 대칭을 이룰 수 있다. 또한, 제2 가우시안 그래프(GG2)는 제2 가치 표준편차(Var2)에 대응되도록 좌우로 퍼질 수 있고, 제2 확률 웨이트(Wt2)에 대응되는 최대 값을 가질 수 있다.
제3 가우시안 그래프(GG3)는 제3 가치 평균 값(Wt3)을 중심으로 대칭을 이룰 수 있다. 또한, 제3 가우시안 그래프(GG3)는 제3 가치 표준편차(Var3)에 대응되도록 좌우로 퍼질 수 있고, 제3 확률 웨이트(Wt3)에 대응되는 최대 값을 가질 수 있다.
가치 분포(QG)는 제1 가우시안 그래프(GG1) 내지 제3 가우시안 그래프(GG3)를 병합함으로써 형성되므로, 제1 가우시안 그래프(GG1) 내지 제3 가우시안 그래프(GG3)에 대한 네트워크 파라미터들로 가치 분포(QG)는 정의될 수 있다. 일 예시에서, 딥 러닝 모듈(120)은 가치 분포 네트워크를 통해 가치 분포(QG)를 산출하고, 그 결과 값으로 가치 분포(QG)를 정의하기 위한 제1 가치 평균 값(Wt1) 내지 제3 가치 평균 값(Wt3), 제1 가치 표준 편차(Var1) 내지 제3 가치 표준 편차(Var3) 및 제1 확률 웨이트(Wt1) 내지 제3 확률 웨이트(Wt3)를 출력할 수 있다.
포스트 프로세싱 모듈(140)는 수신한 제1 가치 평균 값(Wt1) 내지 제3 가치 평균 값(Wt3), 제1 가치 표준 편차(Var1) 내지 제3 가치 표준 편차(Var3) 및 제1 확률 웨이트(Wt1) 내지 제3 확률 웨이트(Wt3)를 이용하여 행동 별 가치 리턴을 계산할 수 있다.
도 9에서는 가치 분포(QG)가 세 개의 가우시안 그래프들(GG1~GG3)로 구성되는 실시예가 도시되었으나, 이는 일 예시일 뿐이고, 가치 분포(QG)는 세 개보다 많거나 적은 가우시안 그래프로 구성될 수 있다.
도 10은 본 개시의 예시적 실시예에 따른 뉴럴 네트워크 장치의 동작 방법을 나타내는 순서도이다. 상세하게는, 도 10은 도 4의 최적의 행동을 선택하는 방법(S30)를 상세하게 나타낸 도면이다.
도 3 및 도 10을 참조하면, 포스트 프로세싱 모듈(140)는 복수의 가치 분포들 별 평균 값을 계산할 수 있다(S210). 상기 평균 값은 각 가치 분포에 대응되는 행동의 가치 리턴에 대응될 수 있다. 일 실시예에서, 포스트 프로세싱 모듈(140)은 복수의 가치 분포들에 대응하는 네트워크 파라미터들을 수신하고, 수신한 네트워크 파라미터들을 이용하여 가치 분포 별 평균 값을 계산할 수 있다.
본 개시의 기술적 사상에 따르면, 가치 분포가 복수의 가우시안 그래프들로 구성됨에 따라서, 가치 평균 값, 확률 웨이트 및 가치 평균 분포를 수신하고, 이를 이용하여 가치 리턴을 계산할 수 있다.
포스트 프로세싱 모듈(140)은 계산한 평균 값이 가장 큰 가치 분포에 대응하는 행동을 최적의 행동으로 선택할 수 있다(S220).
도 11은 본 개시의 예시적 실시예에 따른 뉴럴 네트워크 장치의 동작을 나타내는 도면이다. 상세하게는, 도 11은 최적의 행동을 선택하는 방법을 나타낸다. 도 11의 그래프들에서, 가로축은 각 행동이 갖는 가치(Value)를 나타내고, 세로축은 각 가치를 가질 확률(Probablity)를 나타낸다.
도 3 및 도 11을 참조하면, 뉴럴 네트워크 장치(100)는 제1 행동에 대응하는 제1 가치 분포(QG1), 제2 행동에 대응하는 제2 가치 분포(QG2) 및 제3 행동에 대응하는 제3 가치 분포(QG3)를 산출할 수 있다. 일 예시에서, 제1 가치 분포(QG1), 제2 가치 분포(QG2) 및 제3 가치 분포(QG3) 각각은 세 개의 가우시안 그래프들로 구성될 수 있고, 뉴럴 네트워크 장치(100)는 세 개의 가우시안 그래프들에 대응하는 네트워크 파라미터들을 이용하여 제1 가치 분포(QG1), 제2 가치 분포(QG2) 및 제3 가치 분포(QG3)를 산출할 수 있다.
뉴럴 네트워크 장치(100)는 제1 가치 분포(QG1)에 대한 평균 값을 구함으로써 제1 가치 리턴 값(QR1)을 계산할 수 있다. 일 예시에서, 제1 가치 리턴 값(QR1)은 제1 가치 분포(QG1)에 대해 상술한 수학식 1을 적용한 값일 수 있다. 본 개시의 일 실시예에 따르면, 뉴럴 네트워크 장치(100)는 제1 가치 분포(QG1)를 구성하는 복수의 가우시안 그래프들에 대한 평균 값을 더함으로써 제1 가치 리턴 값(QR1)을 계산할 수 있다.
유사한 방식으로, 뉴럴 네트워크 장치(100)는 제2 가치 분포(QG2)에 대응하는 제2 가치 리턴 값(QR2) 및 제3 가치 분포(QG3)에 대응하는 제3 가치 리턴 값(QR3)을 계산할 수 있다.
뉴럴 네트워크 장치(100)는 제1 가치 리턴 값(QR1) 내지 제3 가치 리턴 값(QR3)을 기초로 최적의 행동을 결정할 수 있다. 일 예시에서, 뉴럴 네트워크 장치(100)는 제1 가치 리턴 값(QR1) 내지 제3 가치 리턴 값(QR3) 중 가장 큰 값을 갖는 가치 분포에 대응하는 행동을 최적의 행동으로 결정할 수 있다.
도 11의 예시에서, 제1 가치 리턴 값(QR1)이 제2 가치 리턴 값(QR2) 및 제3 가치 리턴 값(QR3)에 비해 큰 값을 가질 수 있고, 뉴럴 네트워크 장치(100)는 제1 가치 리턴 값(QR1)에 대응되는 제1 행동을 최적의 행동(Act_sel)으로서 출력할 수 있다.
도 13은 본 개시의 예시적 실시예에 따른 전자 시스템의 동작 방법을 나타내는 순서도이다. 상세하게는, 도 13은 적응적으로 웨이트 커널을 결정하는 동작을 나타낸다.
도 2 및 도 13을 참조하면, 전자 시스템(10)은 현재 상태에 대응하는 제1 가치 분포와 현재 상태에 대한 계산 값에 대응하는 제2 가치 분포를 산출할 수 있다(S310). 일 예시에서, 제1 가치 분포는 현재 상태 이후의 모든 가치 리턴들의 합을 나타내는 그래프이고, 제2 가치 분포는 현재 상태에 대한 가능한 모든 행동들의 예상 가치 리턴과, 다음 상태 이후의 모든 가치 리턴들의 합을 나타내는 그래프일 수 있다.
전자 시스템(10)은 미리 결정된 공식을 이용하여 제1 가치 분포와 제2 가치 분포 사이의 거리를 계산할 수 있다(S320). 일 실시예에서, 전자 시스템(10)은 가우시안 혼합(Mixture of Gaussians, MoG) 분포로 제1 가치 분포 및 제2 가치 분포를 매개변수화하며, 거리척도로 아래 수학식 2와 같이 정의된 Jensen-Tsallis distance(JTD)를 사용하여 제1 가치 분포와 제2 가치 분포 사이의 거리를 계산할 수 있다.
Figure pat00002
여기에서,
Figure pat00003
는 가치(r)에 따른 제1 가치 분포고,
Figure pat00004
는 가치(r)에 따른 제2 가치 분포를 나타낼 수 있다. 또한, R은 가능한 가치 값들의 집합일 수 있다.
전자 시스템(10)은 제1 가치 분포와 제2 가치 분포 사이의 거리를 최소화하기 위한 웨이트 커널을 결정할 수 있다(S330). 일 실시예에서, 전자 시스템은 상술한 수학식 2의 결과 값을 최소화하기 위한 웨이트 커널을 적응적으로 결정할 수 있다.
본 개시의 일 실시예에 따르면, 가치 분포는 복수의 가우시안 그래프들로 구성되므로, 복수의 가우시안 그래프들의 한정된 네트워크 파라미터를 이용하여 수학식 2에 따른 가치 분포 간 거리를 계산할 수 있다.
도 13은 본 개시의 예시적 실시예에 따른 뉴럴 네트워크 장치를 나타내는 블록도이다. 도 3과 중복되는 내용은 생략한다.
도 13을 참조하면, 뉴럴 네트워크 장치(100a)는 딥 러닝 모듈(120a) 및 포스트 프로세싱 모듈(140a)을 포함하고, 딥 러닝 모듈(120a)은 컨볼루션 모듈(122a) 및 완전 연결 모듈(124a)를 포함할 수 있다. 컨볼루션 모듈(122a) 및 포스트 프로세싱 모듈(140a)은 도 3의 컨볼루션 모듈(122) 및 포스트 프로세싱 모듈(140)와 동일하거나 유사할 수 있는바 그 설명은 생략한다.
완전 연결 모듈(124a)은 가우시안 그래프 개수(GGN)를 수신하고, 가우시안 그래프 개수(GGN)에 대응하여 복수의 가치 분포들(QG1~QGn)을 산출할 수 있다. 일 예시에서, 복수의 가치 분포들(QG1~QGn)은 적어도 하나의 가우시안 그래프들로 구성될 수 있고, 가우시안 그래프 개수(GGN)는 복수의 가치 분포들(QG1~QGn)을 구성하는 적어도 하나의 가우시안 그래프들의 개수에 대한 정보를 포함할 수 있다.
완전 연결 모듈(124a)은 가우시안 그래프 개수(GGN)에 기초하여 가치 분포를 구성하는 가우시안 그래프들의 개수를 결정하고, 결정된 개수에 기초하여 복수의 네트워크 파라미터들을 출력할 수 있다.
본 개시의 일 실시예에 따르면, 가우시안 그래프의 개수를 적응적으로 조절함으로써 계산량과 가치 리턴의 정확도를 적응적으로 조절할 수 있다.
도 14는 본 개시의 예시적 실시예에 따른 어플리케이션 프로세서를 나타내는 블록도이다. 어플리케이션 프로세서(1000)는 반도체 칩으로서 시스템 온 칩(SoC)으로 구현될 수 있다.
도 14를 참조하면, 어플리케이션 프로세서(1000)는 프로세서(1010) 및 동작 메모리(1020)를 포함할 수 있다. 또한, 도 14에는 도시되지 않았으나, 어플리케이션 프로세서(1000)는 시스템 버스에 연결되는 하나 이상의 IP(Intellectual Property) 모듈들을 더 포함할 수도 있다. 동작 메모리(1020)는 어플리케이션 프로세서(1000)가 채용되는 시스템의 동작과 관련된 각종 프로그램 및 명령어 등의 소프트웨어를 저장할 수 있으며, 일 예로서 운영 체제(1021), 딥 러닝 모듈(1022) 및 포스트 프로세싱 모듈(1023)을 포함할 수 있다. 딥 러닝 모듈(1022) 및 포스트 프로세싱 모듈(1023)은 도 1 내지 도 13에서 전술한 실시예에 따른 동작을 수행하기 위한 명령어 셋으로 구성될 수 있다.
일 실시예에서, 프로세서(1010)는 동작 메모리(1020)에 로딩된 딥 러닝 모듈(1022) 및 포스트 프로세싱 모듈(1023)에 포함된 명령어 셋을 로딩함으로써 도 1 내지 도 13에서 전술한 실시예에 따른 동작들을 수행할 수 있다. 일 실시예에서, 프로세서(1010)는 딥 러닝 모듈(1022)에 포함된 명령어 셋을 로딩함으로써 현재 상태에서 수행할 수 있는 동작별 가치 분포를 가우시안 그래프로 구성하여 산출할 수 잇고, 포스트 프로세싱 모듈(1023)에 포함된 명령어 셋을 로딩함으로써 가치 분포들 중 가치 리턴이 가장 높은 가치 분포에 대응되는 행동을 최적의 행동으로 결정할 수 있다.
한편, 도 14에는 하나의 프로세서(1010)가 도시되었으나, 어플리케이션 프로세서(1000)는 다수의 프로세서들을 포함할 수도 있다. 이 때, 다수의 프로세서들 중 일부는 일반 프로세서에 해당하고, 다른 일부는 뉴럴 네트워크 모델의 실행을 위한 전용 프로세서일 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 적어도 하나의 프로세서에 의해 수행되는, 딥 러닝을 이용하여 행동을 선택하는 방법에 있어서,
    현재 상태를 입력으로서 수신하는 단계;
    상기 현재 상태에 대해 수행할 수 있는 복수의 행동들 각각에 대한 가치 분포를 산출하는 단계;및
    상기 가치 분포를 이용하여 상기 복수의 행동들 중 최적의 행동을 선택하는 단계;를 포함하고,
    상기 가치 분포는 가우시안 분포를 따르는 적어도 하나의 가우시안 그래프를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 가치 분포를 산출하는 단계는,
    가치 분포 네트워크를 이용함으로써 상기 적어도 하나의 가우시안 그래프를 산출하는 단계;를 포함하고,
    상기 가치 분포 네트워크는 현재 상태(Current State)-행동(Action) 페어(pair) 별 가능한 가치 리턴에 대한 확률 분포를 정의하는 복수의 네트워크 파라미터들을 출력하도록 구성된 분포 신경망이고,
    상기 가치 리턴은 상기 현재 상태에 대해서 상기 행동을 수행한 결과 나타나는 가치의 추정치인 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 복수의 네트워크 파라미터들은 상기 적어도 하나의 가우시안 그래프 각각에 대한 확률 웨이트(Probability Weight), 가치 평균 값(Value Mean) 및 가치 표준 편차(Value Variance)를 포함하는 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    상기 가치 분포를 산출하는 단계는,
    상기 가치 분포를 생성하기 위한 가우시안 그래프의 개수를 수신하는 단계;
    수신한 상기 가우시안 그래프의 개수에 기초하여 가치 분포 네트워크를 이용하여 복수의 가우시안 그래프들을 산출하는 단계;및
    산출된 상기 복수의 가우시안 그래프들을 중첩시킴으로써 상기 가치 분포를 생성하는 단계;를 포함하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 복수의 행동들 중 최적의 행동을 선택하는 단계는,
    상기 복수의 행동들 각각에 대한 가치 분포 별 평균을 계산하는 단계;
    상기 평균이 가장 큰 가치 분포에 대응하는 행동을 최적의 행동으로 결정하는 단계;를 포함하는 것을 특징으로 하는 방법.
  6. 제1항에 있어서,
    상기 가치 분포를 산출하는 단계는,
    웨이트 커널을 이용하여 상기 현재 상태에 대응하는 입력 피처맵에 대한 컨볼루션 연산을 수행하는 단계;및
    상기 컨볼루션 연산 생성되는 출력 피처맵의 구성들과 상기 복수의 행동들 각각에 대한 완전 연결을 통해 복수의 가우시안 그래프들을 생성하는 단계;를 포함하는 것을 특징으로 하는 방법.
  7. 제6항에 있어서,
    상기 현재 상태에 대응하는 제1 가치 분포와 상기 현재 상태에 대한 계산 값에 대응하는 제2 가치 분포의 거리 차이를 최소화하기 위한 상기 웨이트 커널을 설정하는 단계;를 더 포함하는 것을 특징으로 하는 방법.
  8. 제7항에 있어서,
    상기 제1 가치 분포는 상기 현재 상태의 가치 리턴들에 대응하는 복수의 제1 가우시안 그래프들로 구성되고,
    상기 제2 가치 분포는 상기 현재 상태의 다음 상태의 가치 리턴들과 상기 복수의 행동들의 가치 리턴들의 합에 대응하는 복수의 제2 가우시안 그래프들로 구성되는 것을 특징으로 하는 방법.
  9. 제8항에 있어서,
    상기 웨이트 커널을 설정하는 단계는,
    미리 결정된 거리 계산 공식에 기초하여 상기 복수의 제1 가우시안 그래프들과 상기 복수의 제2 가우시안 그래프들 사이의 거리를 계산하는 단계;및
    상기 거리를 최소화하기 위한 상기 웨이트 커널을 결정하는 단계;를 포함하는 것을 특징으로 하는 방법.
  10. 현재 상태를 수신하고, 딥 러닝 모델을 이용하여 상기 현재 상태에 대해 수행할 수 있는 복수의 행동들 각각에 대한 가치 분포를 산출하는 딥 러닝 모듈;및
    상기 가치 분포를 이용하여 상기 복수의 행동들 중 최적의 행동을 선택하는 포스트 프로세싱 모듈;를 포함하고,
    상기 가치 분포는 가우시안 분포를 따르는 적어도 하나의 가우시안 그래프를 포함하는 것을 특징으로 하는 뉴럴 네트워크 장치.
KR1020200013731A 2019-05-17 2020-02-05 가우시안 가치 분포에 기초하여 현재 상태에 대한 행동을 선택하는 뉴럴 네트워크 장치 및 이를 이용하는 행동 선택 방법 KR20200132660A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010411270.7A CN112200309A (zh) 2019-05-17 2020-05-15 选择对应于当前状态的动作的神经网络设备及其方法
US16/875,170 US20200364567A1 (en) 2019-05-17 2020-05-15 Neural network device for selecting action corresponding to current state based on gaussian value distribution and action selecting method using the neural network device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190058376 2019-05-17
KR20190058376 2019-05-17

Publications (1)

Publication Number Publication Date
KR20200132660A true KR20200132660A (ko) 2020-11-25

Family

ID=73645429

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200013731A KR20200132660A (ko) 2019-05-17 2020-02-05 가우시안 가치 분포에 기초하여 현재 상태에 대한 행동을 선택하는 뉴럴 네트워크 장치 및 이를 이용하는 행동 선택 방법

Country Status (2)

Country Link
KR (1) KR20200132660A (ko)
CN (1) CN112200309A (ko)

Also Published As

Publication number Publication date
CN112200309A (zh) 2021-01-08

Similar Documents

Publication Publication Date Title
US11074474B2 (en) Apparatus for performing neural network operation and method of operating the same
US10861225B2 (en) Neural network processing for multi-object 3D modeling
US20200364567A1 (en) Neural network device for selecting action corresponding to current state based on gaussian value distribution and action selecting method using the neural network device
US20200118249A1 (en) Device configured to perform neural network operation and method of operating same
US20200133989A1 (en) Neural network processor and convolution operation method thereof
US11562046B2 (en) Neural network processor using dyadic weight matrix and operation method thereof
US20230289601A1 (en) Integrated circuit that extracts data, neural network processor including the integrated circuit, and neural network
US20210319823A1 (en) Deep Learning Accelerator and Random Access Memory with a Camera Interface
KR20200129458A (ko) 인공 신경망 모델을 트레이닝하는 컴퓨팅 장치, 인공 신경망 모델을 트레이닝하는 방법 및 이를 저장하는 메모리 시스템
CN111199278A (zh) 包括算术电路的存储器器件和包括该器件的神经网络系统
US11829862B2 (en) Method and device with neural network implementation
US11664818B2 (en) Neural network processor for compressing featuremap data and computing system including the same
CN111833363B (zh) 图像边缘和显著性检测方法及装置
KR20200132660A (ko) 가우시안 가치 분포에 기초하여 현재 상태에 대한 행동을 선택하는 뉴럴 네트워크 장치 및 이를 이용하는 행동 선택 방법
US20230025626A1 (en) Method and apparatus for generating process simulation models
KR20200062014A (ko) 다이어딕 매트릭스 형태의 웨이트를 이용해 뉴럴 네트워크를 가속하는 장치 및 그것의 동작 방법
US20220188612A1 (en) Npu device performing convolution operation based on the number of channels and operating method thereof
CN115242990A (zh) 图像传感器模块和操作图像传感器模块的方法
TWI834729B (zh) 神經網路處理器及其卷積操作方法
US11943557B2 (en) Image sensor module, image processing system, and operating method of image sensor module
KR102669255B1 (ko) 다중 초점 영상을 이용한 올인포커스 영상 생성 방법 및 장치
CN115952835A (zh) 数据处理方法、可读介质和电子设备
KR20240025827A (ko) Imc(in memory computing) 프로세서 및 imc 프로세서의 동작 방법
KR20220004436A (ko) 뉴럴 네트워크 프로세서를 구비하는 이미지 프로세싱 장치 및 이의 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination