KR20180063189A - 선택적 역전파 - Google Patents

선택적 역전파 Download PDF

Info

Publication number
KR20180063189A
KR20180063189A KR1020187012033A KR20187012033A KR20180063189A KR 20180063189 A KR20180063189 A KR 20180063189A KR 1020187012033 A KR1020187012033 A KR 1020187012033A KR 20187012033 A KR20187012033 A KR 20187012033A KR 20180063189 A KR20180063189 A KR 20180063189A
Authority
KR
South Korea
Prior art keywords
class
instances
training
sampling
slope
Prior art date
Application number
KR1020187012033A
Other languages
English (en)
Other versions
KR102582194B1 (ko
Inventor
레건 블라이스 토월
데이비드 조나단 줄리안
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20180063189A publication Critical patent/KR20180063189A/ko
Application granted granted Critical
Publication of KR102582194B1 publication Critical patent/KR102582194B1/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/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • G06N3/0472
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks

Abstract

머신 학습 모델에 대한 클래스들 사이의 트레이닝 데이터의 밸런스가 수정된다. 기울기 스테이지에서 조정들이 행해지고, 선택적 역전파를 이용하여 비용 함수를 수정하여 데이터 세트들에서의 클래스 예 빈도에 기초하여 기울기를 조정 또는 선택적으로 적용한다. 기울기를 수정하는 팩터는 현재 클래스의 예들의 수에 대한 최소 멤버들을 갖는 클래스의 예들의 수의 비율에 기초하여 결정된다. 현재 클래스와 연관된 기울기는 위에서 결정된 팩터에 기초하여 수정된다.

Description

선택적 역전파
관련 출원의 상호 참조
본 출원은 2015년 9월 29일 출원되고 발명의 명칭이 "SELECTIVE BACKPROPAGATION"인 미국 가특허 출원 번호 제 62/234,559 호의 이익을 주장하며 그 개시 내용을 전체적으로 본원에서는 참조로서 포함한다.
기술분야
본 개시의 특정 양태들은 일반적으로 머신 학습에 관한 것이고, 보다 구체적으로는, 머신 학습 모델에 대한 클래스들 사이에서 트레이닝 데이터의 밸런스를 수정하는 것에 관한 것이다.
인공 뉴런들 (예를 들어, 뉴런 모델들) 의 상호접속된 그룹을 포함할 수도 있는 인공 신경 네트워크는 계산 디바이스이거나 또는 계산 디바이스에 의해 수행되는 방법을 표현한다.
컨볼루션 신경 네트워크들은 피드-포워드 인공 신경 네트워크의 유형이다. 컨볼루션 신경 네트워크들은 각각이 개개의 필드를 갖고, 입력 공간을 총괄적으로 타일화하는 뉴런들의 집합들을 포함할 수도 있다. 컨볼루션 신경 네트워크들 (Convolutional neural networks; CNNs) 은 다수의 애플리케이션들을 갖는다. 특히, CNN들은 패턴 인식 및 분류의 영역에 널리 이용되어 왔다.
딥 러닝 아키텍처, 이를 테면, 딥 빌리프 네트워크들 및 딥 컨볼루션 네트워크들은 계층화된 신경 네트워크들 아키텍처들이며, 여기에서 뉴런들의 제 1 계층의 출력은 뉴런들의 제 2 계층에 대한 입력으로 되며, 뉴런들의 제 2 계층의 출력은 뉴런들의 제 3 계층에 대한 입력으로 되며, 이하 동일하게 이루어진다. 딥 신경 네트워크들은 피처들의 계층구조를 인식하도록 트레이닝될 수도 있고, 따라서 이들은 오브젝트 인식 애플리케이션들에 점점 더 이용되고 있다. 컨볼루선 신경 네트워크들과 유사하게, 이들 딥 러닝 아키텍처에서의 계산은 프로세싱 노드들의 모집단에 걸쳐 분산될 수도 있고, 이 노드들은 하나 이상의 계산 체인들로 구성될 수도 있다. 이들 다층화된 아키텍처들은 한번에 한 계층씩 트레이닝되며, 역전파를 이용하여 미세조정될 수도 있다.
다른 모델들이 또한 오브젝트 인식에 이용가능하다. 예를 들어, 지원 벡터 머신들 (support vector machines; SVMs) 은 분류에 적용될 수 있는 학습 툴들이다. 지원 벡터 머신들은 데이터를 카테고리화하는 분리 하이퍼플레인 (예를 들어, 결정 바운더리) 를 포함한다. 하이퍼플레인은 지도 학습에 의해 정의된다. 원하는 하이퍼플레인은 트레이닝 데이터의 마진을 증가시킨다. 즉, 하이퍼플레인은 트레이닝 예들까지의 가장 최소의 거리를 가져야 한다.
이들 솔루션들은 다수의 분류 벤치마크들에 대해 우수한 결과들을 가져오지만, 이들 계산 복잡도는 확률적으로 매우 높을 수 있다. 추가적으로, 모델들의 트레이닝이 도전과제가 될 수도 있다.
일 양태에서, 머신 학습 모델을 위한 클래스들 사이에서 데이터를 트레이닝하는 밸런스를 수정하는 방법이 개시된다. 본 방법은 현재 클래스의 예들의 수에 대한, 최소 멤버들을 갖는 클래스의 예들의 수의 비율에 기초하여, 모델을 트레이닝하는 동안 역전파 프로세스의 기울기들을 수정하는 단계를 포함한다.
다른 양태는 머신 학습 모델에 대한 클래스들 사이에서 트레이닝 데이터의 밸런스를 수정하기 위한 장치를 개시한다. 본 장치는 현재 클래스의 예들의 수에 대한, 최소 멤버들을 갖는 클래스의 예들의 수의 비율에 기초하여, 기울기를 수정하기 위한 팩터를 결정하기 위한 수단을 포함한다. 본 장치는 또한 결정된 팩터에 기초하여 현재 클래스와 연관된 기울기를 수정하기 위한 수단을 포함한다.
다른 양태는 메모리 및 메모리에 커플링된 적어도 하나의 프로세서를 포함하는 무선 통신을 개시한다. 프로세서(들)은 현재 클래스의 예들의 수에 대한, 최소 멤버들을 갖는 클래스의 예들의 수의 비율에 기초하여, 모델을 트레이닝하는 동안 역전파 프로세스의 기울기들을 수정하도록 구성된다.
다른 양태는 비일시적 프로그램 코드가 기록된 비일시적 컴퓨터 판독가능 매체를 개시하며, 비일시적 프로그램 코드는 프로세서(들)에 의해 실행될 때, 프로세서(들)로 하여금, 현재 클래스의 예들의 수에 대한, 최소 멤버들을 갖는 클래스의 예들의 수의 비율에 기초하여, 모델을 트레이닝하는 동안 역전파 프로세스의 기울기들을 수정하는 동작들을 수행하게 한다.
본 개시의 부가적인 특징들과 이점들은 하기에 설명될 것이다. 당업자라면, 본 개시가 본 개시의 동일한 목적을 수행하기 위한 다른 구조들을 수정하거나 설계하는 기초로서 쉽게 활용될 수도 있음을 이해해야 한다. 당업자라면, 이러한 등가의 구성들이 하기의 특허청구범위에서 설명되는 본 개시의 교시들을 벗어나지 않는다는 것을 알 수 있을 것이다. 동작의 구성 및 방법들 양쪽에 관한 본 개시의 특징으로 여겨지는 신규의 특징들은, 다른 목적들 및 이점들과 함께, 첨부된 도면과 연계한 하기의 설명으로부터 더욱 명확해질 것이다. 그러나, 각 도면은 도해 및 설명의 목적으로만 제공된 것이며 본 개시의 제한들의 정의로서 의도된 것은 아님을 명확히 이해해야 한다.
본 개시의 특징들, 속성, 및 이점들은 유사한 도면 부호들이 전체에 걸쳐 대응적으로 식별되어 있는 도면들과 연계할 때 하기에 제시된 상세한 설명으로부터 보다 명백해질 것이다.
도 1 은 본 개시의 특정 양태들에 따라 범용 프로세서를 포함하는 시스템-온-칩 (system-on-a-chip; SOC) 을 이용한 신경 네트워크를 설계하는 예시적 구현을 예시한다.
도 2 는 본 개시의 양태들에 따른 시스템의 예시적 구현을 예시한다.
도 3a 는 본 개시의 양태들에 따른 신경 네트워크를 예시하는 다이어그램이다.
도 3b 는 본 개시의 양태들에 따른 예시적인 딥 컨볼루션 네트워크 (deep convolutional network; DCN) 를 예시하는 블록도이다.
도 4 는 본 개시의 양태들에 따라 인공 지능 (artificial intelligence; AI) 기능들을 모듈화할 수도 있는 예시적인 소프트웨어 아키텍처를 예시하는 블록도이다.
도 5 는 본 개시의 양태들에 따라 스마트폰 상에서의 AI 애플리케이션의 런타임 동작을 예시하는 블록도이다.
도 6 은 본 개시의 양태들에 따라 트레이닝 데이터를 밸런싱하는 방법을 예시한다.
도 7 은 본 개시의 양태들에 따라 트레이닝 데이터를 밸런싱하는 전체적인 예를 예시한다.
도 8 은 본 개시의 양태들에 따라 트레이닝 데이터를 밸런싱하는 방법을 예시한다.
첨부된 도면들과 연계하여 하기에 설명되는 상세한 설명은, 여러 구성들의 설명으로서 의도된 것이며 본원에서 설명되는 개념들이 실시될 수도 있는 구성들만을 나타내도록 의도된 것은 아니다. 상세한 설명은 여러 개념들의 철저한 이해를 제공하기 위한 목적으로 특정 상세들을 포함한다. 그러나, 이들 개념들이 이들 특정 상세들 없이 실시될 수도 있음이 당업자에게는 명백할 것이다. 일부 사례들에서, 이러한 개념들을 모호하게 하는 것을 방지하기 위해 공지의 구조들 및 컴포넌트들이 블록도의 형태로 도시된다.
독립적으로 또는 본 개시물의 임의의 다른 양태들과 결합하여 구현될지 또는 독립적으로 구현될지에 따라, 본 교시들에 기초하여, 당업자들은 본 개시의 범위가 본 개시의 임의의 양태를 포괄하고자 함을 이해해야 할 것이다. 예를 들어, 전술된 임의의 수의 양태들을 이용하여 장치가 구현될 수도 있거나 방법이 실시될 수도 있다. 또한, 본 개시의 범위는 본원에 제시된 개시의 다양한 양태들에 더해 또는 양태들 이외의 다른 구조, 기능성, 또는 구조와 기능성을 이용하여 실시되는 그러한 장치 또는 방법을 포괄하고자 한다. 개시된 개시의 임의의 양태는 청구항의 하나 이상의 요소들에 의해 구체화될 수도 있음을 이해해야 한다.
단어 "예시적인" 은 "예, 사례 또는 예시의 역할을 하는 것" 을 의미하는 것으로 본원에서 이용된다. "예시적인" 것으로 본원에서 설명된 임의의 양태는 반드시 다른 양태들에 비해 바람직하거나 유리한 것으로 반드시 간주되는 것은 아니다.
비록 특정 양태들이 본원에서 설명되지만, 이들 양태들의 많은 변형예들 및 치환예들이 본 개시의 범위 내에 속한다. 비록 바람직한 양태들의 일부 이득들 및 이점들이 언급되었지만, 본 개시의 범위는 특정 이득들, 이용들, 또는 목적들로 제한되기 위한 것이 아니다. 다만, 본 개시들의 양태들은 상이한 기술들, 시스템 구성들, 네트워크들, 및 프로토콜들에 널리 적용되고자 하며, 본 개시의 양태들 중 일부는 도면들에서 그리고 다음의 바람직한 양태들의 설명에서 예로서 예시된다. 상세한 설명 및 도면들은 제한하는 것이기 보다는 단지 본 개시의 예시일 뿐이며, 본 개시의 범위는 첨부된 청구항들 및 그의 균등물들에 의해 정의된다.
선택적 역전파
본 개시의 양태들은 머신 학습 모델에서의 클래스들 사이의 트레이닝 데이터의 밸런스를 수정하는 것을 지향한다. 구체적으로, 트레이닝 데이터를 조작하고 입력 스테이지에서 각각의 클래스에 대한 예들의 수를 조정하기 보다는, 본 개시의 양태들은 구배 스테이지에서의 조정들을 지향한다. 본 개시의 여러 양태들에서, 선택적 역전파를 이용하여 비용 함수를 수정하여 데이터 세트에서의 클래스 예 빈도에 기초하여 기울기들을 조정 또는 선택적으로 적용한다. 구체적으로, 기울기들은 각각의 클래스에 대한 예들의 실제 또는 예상된 빈도에 기초하여 조정될 수도 있다.
도 1 은 본 개시의 특정 양태들에 따른 범용 프로세서 (CPU) 또는 멀티-코어 범용 프로세서들 (CPUs) (102) 과 같은 적어도 하나의 프로세서를 포함할 수도 있는, 시스템-온-칩 (SOC) (100) 을 이용하여 상술한 선택적 역전파의 예시적 구현을 예시한다. 변수들 (예를 들어, 신경 신호들, 모델 가중치들), 계산 디바이스와 연관된 시스템 파라미터들 (예를 들어, 가중치들을 갖는 신경 네트워크), 지연들, 주파수 빈 정보, 및 태스크 정보는 신경 프로세싱 유닛 (NPU)(108) 과 연관된 메모리 블록에, CPU (102) 와 연관된 메모리 블록에, 그래픽 프로세싱 유닛 (graphics processing unit; GPU)(104) 과 연관된 메모리 블록에, 디지털 신호 프로세서 (digital signal processor; DSP)(106) 와 연관된 메모리 블록에, 전용 메모리 블록 (118) 에 저장될 수도 있거나 또는 다수의 블록들에 걸쳐 분산될 수도 있다. 범용 프로세서 (102) 에서 실행되는 명령들은 CPU (102) 와 연관된 프로그램 메모리로부터 로딩될 수도 있거나 전용 메모리 블록 (118) 으로부터 로딩될 수도 있다.
SOC (100) 는 또한 GPU (104), DSP (106), 제 4 세대 롱 텀 에볼루션 (4G LTE) 접속성, 비허가 Wi-Fi 접속성, USB 접속성, 블루투스 접속성 등을 포함할 수도 있는 접속성 블록 (110), 및 예를 들어, 제스처들을 검출 및 인식할 수도 있는 멀티미디어 프로세서 (112) 와 같은 특정의 기능들로 맞추어진 추가적인 프로세싱 블록들을 포함할 수도 있다. 일 구현에서, NPU 는 CPU, DSP, 및/또는 GPU 에서 구현된다. SOC (100) 는 또한 센서 프로세서 (114), 이미지 신호 프로세서들 (ISP들), 및/또는 글로벌 위치확인 시스템을 포함할 수도 있는 네비게이션 (120) 을 포함할 수도 있다.
SOC (100) 는 ARM 명령 세트에 기초할 수도 있다. 본 개시의 양태에서, 범용 프로세서 (102) 로 로딩된 명령들은 머신 학습 모델을 트레이닝하는 동안 역전파 프로세스의 기울기들을 수정하는 코드를 포함할 수도 있다. 수정은 현재 클래스의 예들의 수에 대한, 최소 멤버들을 갖는 클래스의 예들의 수의 비율에 기초한다. 수정은 현재 클래스와 연관된 기울기에 적용된다.
도 2 는 본 개시의 특정 양태들에 따른 시스템 (200) 의 예시적 구현을 예시한다. 도 2 에 예시된 바와 같이, 시스템 (200) 은 본원에 설명된 방법들의 여러 동작들을 수행할 수도 있는 다수의 로컬 프로세싱 유닛들 (202) 을 가질 수도 있다. 각각의 로컬 프로세싱 유닛 (202) 은 신경 네트워크의 파라미터들을 저장할 수도 있는 로컬 상태 메모리 (204) 및 로컬 파라미터 메모리 (206) 를 포함할 수도 있다. 또한, 로컬 프로세싱 유닛 (202) 은 로컬 모델 프로그램을 저장하기 위한 로컬 (뉴런) 모델 프로그램 (local model program; LMP) 메모리 (208), 로컬 학습 프로그램을 저장하기 위한 로컬 학습 프로그램 (local learning program; LLP) 메모리 (210), 및 로컬 접속 메모리 (212) 를 가질 수도 있다. 또한, 도 2 에 예시된 바와 같이, 각각의 로컬 프로세싱 유닛 (202) 은 로컬 프로세싱 유닛의 로컬 메모리들을 위한 구성들을 제공하기 위한 구성 프로세서 유닛 (214) 과, 그리고 로컬 프로세싱 유닛들 (202) 사이에 라우팅을 제공하는 라우팅 접속 프로세싱 유닛 (216) 과 인터페이스할 수도 있다.
딥 러닝 아키텍처들은 각각의 계층에서 추상화의 연속적으로 더 높은 레벨들에서 입력들을 표현하기 위해 학습에 의한 오브젝트 인식 태스크를 수행하고, 이것에 의해 입력 데이터의 유용한 특징 표현을 구축할 수도 있다. 이러한 방식으로, 딥 러닝은 전통적인 머신 학습의 주요한 병목효과를 해결한다. 딥 러닝의 도래 이전에, 오브젝트 인식 문제에 대한 머신 학습 접근법은 아마도 쉘로우 (shallow) 분류기와 결합하여, 인간 조작된 (human engineered) 피처들에 크게 의존할 수도 있다. 쉘로우 분류기는 예를 들어 2-클래스 선형 분류기일 수도 있으며, 여기서 피처 벡터 성분들의 가중된 합은 입력이 어느 클래스에 속하는지를 예측하기 위해 임계값과 비교될 수도 있다. 인간 조작된 피처들은 도메인 전문 기술을 갖는 엔지니어들에 의해 특정의 문제 도메인으로 맞추어진 템플릿들 또는 커널들일 수도 있다. 딥 러닝 아키텍처들은 대조적으로, 트레이닝을 통해서만 인간 엔지니어가 설계할지도 모르는 것과 유사한 피처들을 표현하는 것을 학습할 수도 있다. 더욱이, 딥 네트워크는 인간이 고려하지 못했을 수도 있는 새로운 유형들의 피처들을 표현 및 인식하는 것을 학습할 수도 있다.
딥 러닝 아키텍처는 피처들의 계층 구조를 학습할 수도 있다. 예를 들어, 시각적 데이터가 제시되면, 제 1 계층은 입력 스트림에서 에지들과 같은 비교적 간단한 피처들을 인식하는 것을 학습할 수도 있다. 다른 예에서, 청각적 데이터가 제시되는 경우, 제 1 계층은 특정의 주파수들에서의 스펙트럼 파워를 인식하는 것을 학습할 수도 있다. 제 2 계층은, 제 1 계층의 출력을 입력으로서 취하여, 시각적 데이터에 대한 단순 형상들 또는 청각적 데이터에 대한 사운드들의 조합들과 같은 피처들의 조합들을 인식하는 것을 학습할 수도 있다. 예를 들어, 상위 계층들은 시각적 데이터에서 복잡한 형상들 또는 청각적 데이터에서 단어들을 표현하는 것을 학습할 수도 있다. 더 상위의 계층들은 공통 시각적 오브젝트들 또는 발화된 어구들을 인식하는 것을 학습할 수도 있다.
딥 러닝 아키텍처들은 자연의 계층적 구조를 갖는 문제들에 적용될 때 특히 잘 수행될 수도 있다. 예를 들어, 자동차들의 분류는 처음에 바퀴들, 전면 유리들, 및 다른 피처들을 인식하는 것을 학습하는 것으로부터 이익을 얻을 수도 있다. 이들 피처들은 차량들, 트럭들, 및 비행기들을 인식하기 위해 상이한 방식들로 상위 계층들에서 결합될 수도 있다.
신경 네트워크들은 다양한 접속성 패턴들로 설계될 수도 있다. 피드-포워드 네트워크들에서, 정보는 하위 계층으로부터 상위 계층으로 전달되며, 주어진 계층에서의 각각의 뉴런은 상위 계층들에서의 뉴런들로 통신한다. 계층 구조 표현은 상술된 바와 같이 피드-포워드 네트워크의 연속적인 계층들에서 구축될 수도 있다. 신경 네트워크들은 또한 회귀 또는 피드백 (또한 탑-다운 (top-down) 으로도 지칭됨) 접속들을 가질 수도 있다. 회귀 접속에서, 주어진 계층에서의 뉴런으로부터의 출력은 동일한 계층에서의 다른 뉴런으로 통신될 수도 있다. 회귀 아키텍처는 순차적으로 신경 네트워크로 전달되는 입력 데이터 청크들 중 하나 보다 많은 청크에 걸쳐 있는 패턴들을 인식하는데 있어서 유용할 수도 있다. 주어진 계층에서의 뉴런으로부터 하위 계층에서의 뉴런으로의 접속은 피드백 (또는 탑-다운) 접속으로 불린다. 다수의 피드백 접속들을 갖는 네트워크는 하이 레벨 개념의 인식이 입력의 특정의 로우 레벨 피처들을 판별하는데 도움을 줄 수도 있는 경우에 유용할 수도 있다.
도 3a 를 참조하여 보면, 신경 네트워크의 계층들 사이의 접속들은 완전히 접속되거나 (302) 또는 국부적으로 접속될 수도 있다 (304). 완전히 접속된 네트워크 (302) 에서, 제 1 계층에서의 뉴런은 제 2 계층에서의 모든 뉴런에 그 출력을 통신할 수도 있어, 제 2 계층에서의 각각의 뉴런이 제 1 계층에서의 모든 뉴런으로부터의 입력을 수신하게 한다. 대안적으로, 국부적으로 접속된 네트워크 (304) 에서는, 제 1 계층에서의 뉴런은 제 2 계층에서의 제한된 수의 뉴런들에 접속될 수도 있다. 컨볼루션 네트워크 (306) 는 국부적으로 접속될 수도 있고, 또한, 제 2 계층에서의 각각의 뉴런에 대한 입력들과 연관된 접속 스트렝스 (strength) 들(예를 들어, 308) 이 공유되도록 구성된다. 보다 일반적으로, 네트워크의 국부적으로 접속된 계층은 계층에서의 각각의 뉴런이 동일하거나 유사한 접속 패턴을 갖지만, 상이한 값들을 가질 수도 있는 접속 스트렝스들을 갖도록 구성될 수도 있다. 주어진 영역에서의 상위 계층 뉴런들이 네트워크에 대한 총 입력의 제한된 부분의 특성들로 트레이닝을 통해 튜닝되는 입력들을 수신할 수도 있기 때문에, 국부적으로 접속된 접속 패턴은 상위 계층에서 공간적으로 별개의 수신 필드들을 발생시킬 수도 있다.
국부적으로 접속된 신경 네트워크들은 입력들의 공간적 로케이션들이 의미있는 문제들에 매우 적합될 수도 있다. 예를 들어, 차량-탑재 카메라로부터 시각적 피처들을 인식하도록 설계된 네트워크 (300) 는 상이한 특성들을 갖는 하이 계층 뉴런들을, 이미지의 하위 대 상위 부분과의 그들의 연관에 따라 전개할 수도 있다. 예를 들어, 이미지의 하위 부분과 연관된 뉴런들은 차선 표시들을 인식하는 것을 학습할 수도 있는 반면, 이미지의 상위 부분과 연관된 뉴런들은 교통 신호등, 교통 표지판 등을 인식하는 것을 학습할 수도 있다.
딥 컨볼루션 네트워크 (DCN) 는 지도 학습으로 트레이닝될 수도 있다. 트레이닝 동안, DCN 에는 속도 제한 표지판 (326) 의 크롭핑된 이미지와 같은 이미지가 제시될 수도 있고, "포워드 패스 (forward pass)" 는 그 후 출력 (322) 를 생성하기 위해 연산될 수도 있다. 출력 (322) 은 "표지판", "60", 및 "100" 과 같은 피처들에 대응하는 값들의 벡터일 수도 있다. 네트워크 설계자는 DCN 이 출력 피처 벡터, 예를 들어 트레이닝되었던 네트워크 (300) 에 대한 출력 (322) 에서 도시된 바와 같은 "표지판" 및 "60" 에 대응하는 것들에서 뉴런들의 일부에 대해 높은 스코어를 출력하기를 원할 수도 있다. 트레이닝 전에, DCN 에 의해 생성된 출력은 정확하지 않기 쉽고, 따라서 에러가 실제의 출력과 목표 출력 사이에 계산될 수도 있다. DCN 의 가중치들은 그 후 DCN 의 출력 스코어들이 타겟과 더 가깝게 정렬되도록 조정될 수도 있다.
가중치들을 조정하기 위해, 학습 알고리즘은 가중치들에 대한 기울기 벡터를 연산할 수도 있다. 기울기는 가중치가 약간 조정되었을 경우의 에러가 증가하거나 감소하였을 양을 나타낼 수도 있다. 상부 (top) 계층에서, 기울기는 페널티메이트 (penultimate) 계층에서의 활성화된 뉴런 및 출력 계층에서의 뉴런을 접속하는 가중치의 값에 직접 대응할 수도 있다. 하위 계층들에서, 기울기는 가중치들의 값에 그리고 상위 계층들의 연산된 에러 기울기들에 의존할 수도 있다. 가중치들은 그 후 에러를 감소시키기 위해 조정될 수도 있다. 가중치들을 조정하는 이러한 방식은 이것이 신경 네트워크를 통한 "백워드 패스" 를 수반하기 때문에 "역전파 (back propagation)" 로 지칭될 수도 있다.
실제로, 가중치들의 에러 기울기는 계산된 기울기가 실제의 에러 기울기에 근사화하도록 적은 수의 예들에 대해 계산될 수도 있다. 이 근사화 방법은 확률론적 기울기 하강으로 지칭될 수도 있다. 확률론적 기울기 하강은 전체 시스템의 달성가능한 에러 레이트가 감소하는 것을 중단할 때까지 또는 에러 레이트가 목표 레벨에 도달할 때까지 반복될 수도 있다.
학습 후, DCN 에는 새로운 이미지들 (326) 이 제시될 수도 있고, 네트워크를 통한 포워드 패스는 DCN 의 추론 또는 예측에 고려될 수도 있는 출력 (322) 을 발생시킬 수도 있다.
딥 빌리프 네트워크들 (DBNs) 은 은닉 노드들의 다수의 계층들을 포함하는 확률 모델이다. DBN들은 트레이닝 데이터 세트들의 계층구조 표현을 추출하는 데 이용될 수도 있다. DBN 은 제한된 볼츠만 머신들 (RBMs) 의 계층들을 적층하는 것에 의해 획득될 수도 있다. RBM 은 입력들의 세트에 대한 확률 분포를 학습할 수 있는 일종의 인공 신경 네트워크이다. RBM들은 각각의 입력이 카테고리화되어야 하는 클래스에 대한 정보의 부재시 확률 분포를 학습할 수 있기 때문에 RBM들은 비지도 학습에 종종 이용된다. 하이브리드 비지도 및 지도 패러다임을 사용하여 DBN 의 하부 RBM들은 비지도 방식으로 트레이닝될 수 있으며, 피처 추출기로 역할을 할 수도 있고 상단 RBM 은 지도 방식으로 (이전 계층 및 목표 클래스들로부터의 입력들의 조인트 분포 상에서) 트레이닝될 수도 있고 분류기로서 역할을 할 수도 있다.
딥 컨볼루션 네트워크들 (DCNs) 은 컨볼루션 네트워크의 네트워크들이고, 추가적인 풀링 및 정규화 계층들로 구성된다. DCN들은 많은 작업들에서 최첨단 성능을 실현시켰다. DCN들은 입력 및 출력 타겟 양쪽이 많은 예시자들로 알려져 있고 기울기 강하 방법들의 사용에 의해 네트워크의 가중치들을 수정하는데 사용되는 지도 학습을 사용하여 트레이닝될 수도 있다.
DCN들은 피드-포워드 네트워크들일 수도 있다. 또한, 전술한 바와 같이, DCN 의 제 1 계층의 뉴런으로부터 다음 상위 계층의 뉴런들의 그룹으로의 접속들은 제 1 계층의 뉴런들을 따라 공유된다. DCN들의 피드 포워드 및 공유된 접속들은 고속 프로세싱을 위해 활용될 수 있다. DCN 의 계산 부담은 예를 들어, 회귀 또는 피드백 접속을 포함하는 유사한 사이즈의 신경 네트워크의 계산 부담보다 훨씬 적을 수 있다.
컨벌루션 네트워크의 각각의 계층의 프로세싱은 공간적 불변 템플릿 또는 베이시스 프로젝션으로 고려될 수 있다. 입력이 컬러 이미지의 적색, 녹색 및 청색 채널과 같은 다수의 채널들로 먼저 분해되면, 그 입력에 대해 트레이닝된 컨볼루션 네트워크는 3차원인 것으로서 고려될 수도 있고, 2 개의 공간 차원은 이미지의 축을 따르고, 세번째 차원은 컬러 정보를 캡처한다. 컨볼루션 접속들의 출력들은, 후속 계층 (318 및 320) 에서의 피처 맵을 형성하도록 고려될 수도 있고, 피처 맵 (예를 들어, 320) 의 각각의 엘리먼트는 이전 계층 (예를 들어, 318) 에서의 뉴런들의 범위로부터 그리고 다수의 채널들 각각으로부터 입력을 수신한다. 피처 맵에서의 값들은 정류, max (0, x) 와 같은 비선형성으로 추가 프로세싱될 수 있다. 인접 뉴런들의 값들은 다운 샘플링에 대응하는, 추가 풀링될 수 있으며 추가적인 국부적 불변성 및 차원 감소를 제공할 수도 있다. 화이트닝에 대응하는 정규화는 피처 맵에서 뉴런들 사이의 측면 억제를 통해 적용될 수도 있다.
딥 러닝 아키텍처들의 성능은 더 많은 라벨링된 데이터 포인트들이 이용가능함에 따라 또는 계산적 파워가 증가함에 따라 증가할 수 있다. 현대의 딥 신경 네트워크들은 단지 15 년전에 전형적인 연구자가 이용할 수 있었던 것보다 수천 배나 많은 계산 자원들로 루틴하게 트레이닝된다. 새로운 아키텍처들 및 트레이닝 패러다임은 딥 러닝의 성능을 한층 더 증대시킬 수도 있다. 정류된 선형 유닛들은 소멸하는 기울기로서 알려진 트레이닝 문제를 감소시킬 수도 있다. 새로운 트레이닝 기법들은 오버피팅을 감소시킬 수도 있고, 이에 따라 더 큰 모델이 양호한 일반화를 실현하는 것을 가능하게 할 수도 있다. 캡슐화 기법들은 주어진 수신 필드에서 데이터를 추상화할 수도 있고 전반적인 성능을 더욱 증대할 수 있다.
도 3b 는 예시적인 딥 컨벌루션 네트워크 (350) 를 예시하는 블록도이다. 딥 컨볼루션 네트워크 (350) 는 접속성 및 가중치 공유에 기초하여 다수의 상이한 유형의 계층들을 포함할 수 있다. 도 3b 에 도시된 바와 같이, 예시적인 딥 컨벌루션 네트워크 (350) 는 다수의 컨벌루션 블록들 (예를 들어, C1 및 C2) 을 포함한다. 각각의 컨볼루션 블록들은 컨볼루션 계층, 정규화 계층 (LNorm) 및 풀링 계층으로 구성될 수 있다. 컨볼루션 계층들은 하나 이상의 컨볼루션 필터들을 포함할 수 있으며, 이는 피처 맵을 생성하기 위해 입력 데이터에 적용될 수 있다. 비록 2 개의 컨볼루션 블록들만이 도시되어 있지만, 본 발명은 이에 제한되지 않고 대신에, 임의의 수의 컨볼루션 블록들이 설계 선호도에 따라 딥 컨벌루션 네트워크 (350) 에 포함될 수 있다. 정규화 계층은 컨볼루션 필터들의 출력을 정규화하는데 이용될 수도 있다. 예를 들어, 정규화 계층은 화이트닝 또는 측면 억제를 제공할 수 있다. 풀링 계층은 국부적 불변성 및 차원 감소를 위해 공간에 걸쳐 다운 샘플링 애그리게이션을 제공할 수 있다.
예를 들어, 딥 컨볼루션 네트워크의 병렬 필터 뱅크들은 선택적으로 ARM 명령 세트에 기초하여 SOC (100) 의 CPU (102) 또는 GPU (104) 상에 로딩되어 고성능 및 저전력 소비를 실현할 수도 있다. 대안의 실시형태들에서, 병렬 필터 뱅크들은 SOC (100) 의 DSP (106) 또는 ISP (116) 상에 로딩될 수 있다. 또한, DCN 은 센서들 (114) 및 네비게이션 (120) 에 전용된 프로세싱 블록과 같이 SOC 상에 존재할 수 있는 다른 프로세싱 블록들에 액세스할 수 있다.
또한 딥 컨볼루션 네트워크 (350) 는 하나 이상의 완전히 접속된 계층들 (예를 들어, FC1 및 FC2) 을 포함할 수 있다. 딥 컨볼루션 네트워크 (350) 는 로지스틱 회귀 (LR) 계층을 더 포함할 수 있다. 딥 컨볼루션 네트워크 (350) 의 각 계층 사이에는 업데이트될 가중치 (미도시) 가 있다. 각 계층의 출력은 제 1 컨볼루션 블록 (C1) 에 제공된 입력 데이터 (즉, 이미지, 오디오, 비디오, 센서 데이터 및/또는 다른 입력 데이터) 로부터 계층구조적 피처 표현들을 학습하기 위해 딥 컨볼루션 네트워크 (350) 에서 후속 계층의 입력으로서의 역할을 할 수 있다.
도 4 는 인공 지능 (AI) 기능들을 모듈화할 수 있는 예시적인 소프트웨어 아키텍처 (400) 를 예시하는 블록도이다. 아키텍처를 사용하여, 애플리케이션들 (402) 은 SOC (420)(예를 들어, CPU (422), DSP (424), GPU (426) 및/또는 NPU (428)) 의 다양한 프로세싱 블록들로 하여금 애플리케이션 (402) 의 런타임 동작 동안 계산을 지원하는 것을 수행하게 할 수도 있다.
AI 애플리케이션 (402) 은, 예를 들어, 디바이스가 현재 동작하는 로케이션을 나타내는 장면의 검출 및 인식을 제공할 수 있는 사용자 공간 (404) 에 정의된 함수들을 호출하도록 구성될 수 있다. AI 애플리케이션 (402) 은 예를 들어, 인식된 장면이 사무실, 강당, 레스토랑, 또는 호수와 같은 실외 설정인지 여부에 따라 다르게 마이크 및 카메라를 구성할 수 있다. AI 애플리케이션 (402) 은 현재 장면의 추정값을 제공하기 위해 장면검출 (SceneDetect) 애플리케이션 프로그래밍 인터페이스 (API) (406) 에 정의된 라이브러리와 연관된 컴파일된 프로그램 코드에 요청할 수 있다. 이 요청은 궁극적으로 예를 들어 비디오 및 포지셔닝 데이터에 기초하여 장면 추정을 제공하도록 구성된 딥 신경 네트워크의 출력에 의존할 수도 있다.
런타임 프레임워크 (Runtime Framework) 의 컴파일된 코드일 수 있는 런타임 엔진 (408) 은 AI 애플리케이션 (402) 에 추가로 액세스가능할 수도 있다. AI 애플리케이션 (402) 은 예를 들어, 런타임 엔진으로 하여금 특정 시간 간격에서 또는 애플리케이션의 사용자 인터페이스에 의해 검출된 이벤트에 의해 트리거링된 장면 추정을 요청하게 할 수도 있다. 장면을 추정하게 할 때, 런타임 엔진은 이어서 SOC (420) 상에서 실행되는 리눅스 커널 (412) 과 같은 오퍼레이팅 시스템 (410) 에 신호를 전송할 수 있다. 이어서, 오퍼레이팅 시스템 (410) 은 CPU (422), DSP (424), GPU (426), NPU (428), 또는 이들의 일부 조합에 대해 연산이 수행되게 할 수도 있다. CPU (422) 는 오퍼레이팅 시스템에 의해 직접 액세스될 수 있고, 다른 프로세싱 블록들은 DSP (424), GPU (426) 또는 NPU (428) 에 대한 드라이버 (414-418) 와 같은 드라이버를 통해 액세스될 수도 있다. 예시적인 예에서, 딥 신경 네트워크는 CPU (422) 및 GPU (426) 와 같은 프로세싱 블록들의 조합 상에서 실행하도록 구성될 수 있거나, 존재한다면 NPU (428) 상에서 실행될 수 있다.
도 5 는 스마트 폰 (502) 상의 AI 애플리케이션의 런타임 동작 (500) 을 나타내는 블록도이다. AI 애플리케이션은 이미지 (506) 의 포맷을 변환하고 그 다음 이미지 (508) 를 크롭 및/또는 리사이징하기 위해 (예를 들어, 자바 프로그래밍 언어를 사용하여) 구성될 수 있는 프리프로세스 모듈 (504) 을 포함할 수 있다. 프리프로세싱된 이미지는 시각적 입력에 기초하여 장면을 검출하고 분류하기 위해 (예를 들어, C 프로그래밍 언어를 사용하여) 구성될 수 있는 장면검출 (SceneDetect) 백엔드 엔진 (512) 을 포함하는 분류 애플리케이션 (510) 에 전달될 수 있다. SceneDetect 백엔드 엔진 (512) 은 스케일링 (516) 및 크롭핑 (518) 에 의해 이미지를 추가로 프리프로세싱 (514) 하도록 구성될 수 있다. 예를 들어, 결과 이미지가 224 픽셀 x 224 픽셀이도록 이미지가 스케일링 및 크롭핑될 수도 있다. 이들 차원들은 신경 네트워크의 입력 차원에 매핑될 수 있다. 신경 네트워크는 SOC (100) 의 다양한 프로세싱 블록들이 딥 신경 네트워크로 이미지 픽셀들을 추가로 프로세싱하게 하도록 딥 신경 네트워크 블록 (520) 에 의해 구성될 수도 있다. 그 후, 딥 신경 네트워크의 결과들은 임계화 (522) 되고 분류 애플리케이션 (510) 의 지수적 평활화 블록 (524) 을 통과할 수도 있다. 그 다음, 평활화된 결과들은 스마트 폰 (502) 의 설정 및/또는 디스플레이의 변경을 야기할 수 있다.
일 구성에서, 머신 학습 모델은 머신 학습 모델을 트레이닝하는 동안 역전파 프로세스의 기울기들을 수정하도록 구성된다. 모델은 수정하기 위한 수단 및/또는 결정하기 위한 수단을 포함한다. 일 양태에서, 수정 수단 및/또는 결정 수단은 범용 프로세서 (102), 범용 프로세서 (102) 와 연관된 프로그램 메모리, 메모리 블록 (118), 로컬 프로세싱 유닛 (202) 및/또는 열거된 기능들을 수행하도록 구성된 라우팅 접속 프로세싱 유닛 (216) 일 수도 있다. 다른 구성에서, 전술한 수단은 전술한 수단에 의해 열거된 기능을 수행하도록 구성된 임의의 모듈 또는 임의의 장치일 수 있다.
다른 양태에서, 수정 수단은 기울기를 스케일링하기 위한 수단을 포함할 수도 있다. 선택적으로, 수정 수단은 기울기를 선택적으로 적용하기 위한 수단을 포함할 수도 있다.
본 개시의 특정 양태들에 따르면, 각각의 로컬 프로세싱 유닛 (202) 은 모델의 소망하는 하나 이상의 기능성 피처들에 기초하여 모델의 파라미터들을 결정하고, 그리고 결정된 파라미터들이 또한 적응, 튜닝 및 업데이트될 때 소망하는 기능성 피처들 측을 향해 하나 이상의 기능성 피처들을 전개하도록 구성될 수도 있다.
많은 머신 학습 프로세스들에서, 비용 함수는 학습된 분류 함수의 출력과 원하는 출력 사이에 에러를 정량화하는데 이용된다. 머신 학습 프로세스의 목적은 비용 함수를 최소화하도록 학습된 분류 함수의 파라미터들을 변경하는 것이다. 분류 문제들에서, 분류 함수는 종종, 그 입력에 함수를 적용하는 것에 의해 실현된 예측된 클래스 라벨들 및 일부 입력과 연관된 실제 클래스 라벨들의 로그-확률 패널티 함수이다. 트레이닝은 학습된 분류 함수의 파라미터들을 변경하는 프로세스이다. 트레이닝 동안, 예의 입력들 및 이들과 연관된 라벨들은 머신 학습 프로세스에 제시된다. 프로세스는 현재 학습된 분류 함수 파라미터들이 주어지면 예측된 라벨을 구하고, 일부 업데이트 학습 룰에 따라 비용 함수를 평가하고, 학습된 분류 함수의 파라미터들을 변경한다.
트레이닝 프로세스 동안에, 임밸런스된 트레이닝 데이터의 사용은 분류기(들)을 바이어스할 수도 있다. 룰들, 이를 테면, "학습 룰들" 은 각각의 클래스 라벨의 대략 동일 수의 예들이 존재하도록 트레이닝 데이터를 밸런싱하려는 시도로서 이용될 수도 있다. 트레이닝 데이터가 하나의 클래스의 많은 수의 예들 및 다른 클래스의 적은 수의 예들을 포함하면, 분류 함수의 파라미터들은 더 많은 수의 예들을 갖는 클래스를 향하여 바이어싱되는 방식으로 보다 종종 업데이트된다. 극단적으로, 제 1 클래스의 백만개의 예들 및 제 2 클래스의 오직 하나의 예만을 갖는 바이너리 분류기를 트레이닝중에 있다면, 분류기는 항상 제 1 클래스를 단순하게 예측하는 것에 의해 매우 양호하게 수행할 것이다. 다른 예에서, 개 인식기가 트레이닝중일 수도 있다. 이 예에서, 트레이닝 데이터는 총 천개의 예들을 포함하고, 여기에서, 990 개의 예들은 개이고, 10 개의 예들은 고양이다. 분류기는 개들로서 이미지들을 분류하도록 학습할 수도 있고, 이는 트레이닝 세트에 대한 높은 정밀도로 높은 기억력을 가져올 것이다. 그러나, 분류기가 대부분 어떠한 것도 학습하지 않았을 경향이 높다.
통상적으로, 클래스들 사이의 트레이닝 데이터의 "밸런싱"은 각각의 클래스에 대한 트레이닝 예들의 상대 빈도들이, 트레이닝에 이용되지 않은 새로운 예들에 분류기를 적용할 때 발생할 것으로 예상하는 상대 빈도에 매칭하는 것을 보장하는 것에 의해 해결된다. 그러나, 이 접근 방식은 몇가지 결함들을 갖는다. 먼저, 장래의 데이터세트에서의 클래스 예들의 상대 빈도들은 알려져 있는 것으로 추정한다. 그러나, 이것이 항상 결정하기 쉬운 것은 아니다. 두번째로, 트레이닝 데이터는 각각의 클래스에 대해 너무 많거나 너무 적은 예들을 포함할 수도 있다. 트레이닝 예들을 밸런싱하기 위해 데이터는 버려지거나 또는 반복된다. 데이터를 버리는 것에 의해, 상당한 트레이닝 데이터는 일부 클래스들에 대해 배제될 수도 있고, 이는 분류기들이 그 클래스와 연관된 입력 변동들을 완전하게 표현하는 것을 금지할 수도 있다. 간단한 방식으로 데이터를 반복하는 것에 의해, 훨씬 많은 디스크 공간이 데이터를 스테이지하는데 이용된다. 특히, 목표가 데이터 모두를 이용하기 위한 것이면, 모든 클래스가 완전한 밸런스를 위하여 최소공배수까지 반복될 것이다. 또한, 각각의 예가 2 이상의 라벨들에 대해 양으로서 라벨링될 수도 있는 멀티라벨 데이터에 대해, 모든 라벨들에 걸친 밸런싱은 복잡한 스케줄링 훈련 (exercise) 으로 되고, 단순 반복은 만족스럽지 못할 수도 있다.
본 개시의 양태들은 머신 학습 모델에서의 클래스들 사이의 트레이닝 데이터를 밸런싱하는 것을 지향한다. 구체적으로, 트레이닝 데이터를 조작하고 입력 스테이지에서 각각의 클래스에 대한 예들의 수를 조정하기 보다는, 본 개시의 양태들은 구배 스테이지에서의 조정들을 지향한다.
또한, 에러들의 백워드 전파로서 지칭되는 역전파는 비용 함수의 기울기들을 연산하는데 이용될 수도 있다. 특히, 역전파는 에러가 0 에 가깝게 감소되기 위해 가중치들을 조정하는 방법을 결정하는 것을 포함한다. 본 개시의 여러 양태들에서, 선택적 역전파를 이용하여, 데이터 세트에서의 클래스 예 빈도에 기초하여 기울기들을 조정 또는 선택적으로 적용하기 위한 임의의 주어진 비용 함수에 대한 수정이다. 이미지들이 입력된 후 역전파를 수행하도록 기울기가 적용될 예정이면, 기울기들은 각각의 클래스에 대한 예들의 빈도에 기초하여 조정될 수도 있다.
일 양태에서, 조정은 트레이닝 데이터 세트에서의 모든 예들의 수에 대한, 트레이닝 데이터 세트 (
Figure pct00001
) 에서 예들의 최소 수의 비율인 상대 클래스 빈도 (fc) 에 관련된다 (Nc 는 예를 들어, 현재 클래스의 예들의 수에 대한 최소 멤버들을 가진 클래스의 예들의 수이다). 상대 클래스 빈도 (또한, 빈도 팩터로 지칭됨) 는 다음과 같이 표현될 수도 있다:
Figure pct00002
(1)
예들의 최소 수는 실제 또는 예상 수에 기초할 수도 있다. 또한, 트레이닝 데이터에서의 모든 예들의 수는 예들의 예상되는 수의 실제 수에 기초할 수도 있다. 개 인식기가 트레이닝되고 있는 고양이/개 예시로 되돌아가면, 개의 예는 990 개이고 고양이의 예는 10 개이다. 개들의 각각의 클래스에 대한 빈도 팩터는 10/990 이고, 여기에서, 10 은 예들의 최소 수이고 990 은 이들 클래스의 예들의 수이다. 고양이에 대한 각각의 클래스에 대한 비율은 10/10 이다. 조정 팩터 (예를 들어, 상대 클래스 빈도) 는 최소 수의 예들을 갖는 클래스에 대해 값 "1" 이고, 다른 모든 클래스에 대해 1 보다 작을 수도 있다.
빈도 팩터가 결정되면, 역전파 기울기가 수정된다. 수정은 각각의 클래스에 대한 기울기를 스케일링하는 것을 포함할 수도 있다. 스케일링은 다음과 같이 표현될 수도 있다:
Figure pct00003
(2)
스케일링 구현에서, 기울기는 빈도 팩터 (예를 들어, 상대 클래스 빈도) 로 곱해질 수도 있다. 기울기는 특정 파라미터에 대해 에러의 파생물 (derivative) 이다. 특정 클래스의 많은 예들이 존재하는 예에서, 기울기의 분수값만이 그 클래스의 과잉학습을 방지하도록 각각의 시간마다 적용된다. 로우에서 10 개의 개들의 예들이 존재하는 개/고양이 예에서, 기울기의 1/10 만이 적용된다. 본 목표는 고양이보다 개의 예들이 더 많이 보여졌기 때문에 모델이 과잉 학습하고 모든 이미지들을 개로서 라벨링하는 것을 방지하는 것이다. 특정 클래스의 모든 가중치에 있어서 모든 기울기들에 스케일링이 동등하게 적용된다.
수정은 또한 이미지들로부터 샘플링하는 팩터를 이용하는 것을 포함할 수도 있다. 샘플링은 다음과 같이 표현될 수도 있다:
Figure pct00004
(3)
여기에서, 기울기는 분류 예들의 샘플링에 기초하여 선택적으로 적용된다. 일 예에서, 샘플링은 랜덤하게 적용된다. 스케일링 팩터의 값은 샘플들이 드로잉되는 Bernoulli 분포의 확률 파라미터로서 이용될 수도 있다. 이 분포로부터의 샘플링은 0들 또는 1들을 발생시키며, 하나의 1 을 샘플링하는 확률은 첫번째 방법에서 설명되는 스케일링 팩터와 같다. 최소 수의 예들을 갖는 클래스에 대해, 샘플링은 하나의 1 을 발생시킨다. 동전 던지기가 하나의 1 을 발생시킬 때, 그 클래스에 대한 에러 기울기는 역전파된다. 동전 던지기가 하나의 0 을 발생시킬 때, 그 클래스에 대한 기울기는 역전파되지 않고 0 으로 효율적으로 설정된다. 즉, 이미지들은 많은 예들이 존재할 때 종종 기울기를 오직 되전송만하도록 기울기 스테이지에서 샘플링된다. 최소 수의 예들이 있을 때, 이는 매 시간 되전송된다. 이는 예들의 등화를 제공하며, 등화로부터 분류기는 입력을 조정하기 보다는 기울기를 조정하는 것에 의해 학습된다. 일 양태에서, 이미지를 포워드 전파하기 전에, 그 클래스가 현재 에포크 (epoch) 에 대한 그 이미지를 이용하도록 설정되는지의 여부가 체크된다. 각각의 에포크에 대해, 세트들이 개편될 수 있다.
샘플링은 개별적 기반으로, 에포크 기반으로 또는 트레이닝 코퍼스 기반으로 적용될 수도 있다. 위에 제시된 바와 같이, 개별적 기반에서, 트레이닝 에포크 동안 제시되는 다른 이미지들과 무관하게, 각각의 이미지에 대한 Bernoulli 분포로부터 랜덤한 출력이 생성될 수도 있다. 일부 에포크들은 샘플링의 랜덤한 특성에 기인하여, 각각의 클래스에 대한 예들의 원하는 수보다 많거나 적게 보여질 수도 있다.
에포크 기반에 대해, 스케일 팩터는 모든 클래스 예들로부터 각각의 클래스에 대해 랜덤하게 선택된다. 고정된 수의 예들은 각각의 에포크 동안 각각의 클래스에 대해 이용된다. 예를 들어, 열 (10) 개의 예들이 각각의 클래스에 대해 선택될 수도 있다. 이들 예들만이 특정 에포크 동안 역전파된다.
트레이닝 코퍼스 기반에 대해, 분류기에 아직 제시되지 않았던 클래스들로부터 각각의 클래스에 대한 각각의 에포크에 대해 빈도 팩터가 랜덤하게 선택된다. 예들은 대체 없이 샘플링된다. 다음 예시적 예들에서는, 1000 개의 개 예들이 있고, 각각의 에포크에서, 10 개의 샘플들이 랜덤하게 선택된다. 제 1 에포크에서, 10 개의 샘플들이 총 1000 개의 예들로부터 선택된다. 다음 에포크에서, 이전에 선택된 10 개 예들이 제거되고 10 개 예들이 나머지 990 개 예들로부터 선택된다. 이는 모든 예들이 소진될 때까지 계속되며, 이는 동일한 수의 예들이 각각의 에포크 동안 각각의 클래스에 대해 이용되고 모든 이용가능 예들이 트레이닝 과정 동안 이용되는 것을 보장한다. 다음 번에 데이터 전반에 걸친 사이클링 동안, 동일한 순서가 유지될 수 있거나 또는 대안으로서, 다른 순서가 이용될 수 있다. 다른 구성에서, 예들은 대체 없이 샘플링된다.
많은 경우들에서, 전체 트레이닝 코퍼스는 트레이닝 시작 전에 이용가능하고, fc 팩터들은 트레이닝 세션에 걸쳐 정적이고, 트레이닝이 시작하기 전에 각각의 클래스에 대해 계산될 수도 있다. 그러나, 트레이닝이 시작한 후 클래스들이 추가되거나 또는 트레이닝 예들이 트레이닝 동안 애드혹 제공되는 경우, fc 팩터들은 시간에 따라 변경될 수 있거나 트레이닝 시작시 미지의 상태일 수도 있다. 이 상황에서, 각각의 클래스 (Nc) 에 대한 예들의 수의 실행 카운트는 각각의 예가 제시된 후 유지 및 업데이트될 수 있다. 이 후, fc 팩터는, 특정 클래스 (c) 에 대해 Nc 로의 각각의 업데이트 후에 온더 플라이 (on the fly) 방식으로 계산된다.
다른 양태에서, 각각의 클래스에 대하여 네트워크에서의 변화량을 등화시키고 각각의 클래스가 상대적으로 동등하게 분류기에 의해 쉽게 추정되는 것을 보장하기 위해 클래스의 상대 빈도 (예를 들어, 빈도 팩터) 가 이용된다. 상대 빈도 클래스는 데이터 세트에서 클래스들의 균일한 분포를 촉진한다. 다른 클래스 보다 더 많은 일부 클래스들이 있다는 알려진 예상이 있으면, 빈도 팩터는 조정될 수도 있다. 예를 들어, 실세계에서 개보다 더 많은 고양이가 있지만 트레이닝 데이터가 개들에 대해 1000 개의 예들 및 고양이에 대해 10 개의 예들을 포함하고 있는 것으로 알려져 있다면, 빈도 팩터는 실세계 예상에 대해 고려하도록 조정될 수도 있다. 실세계에서 개들보다 고양이들이 10배 더 쉽게 보여질 수 있다고 알려지면, 빈도 팩터는 고양이들에 대해 10 의 팩터로 곱해지고 개들에 대해 1 의 팩터로 곱해질 수도 있다. 본질적으로, 빈도 팩터 (Fc) 는 실세계에서 존재하는 것의 균일한 예상을 목표로 학습 스테이지에서 조작될 수도 있다. 빈도 팩터는 다음과 같이 조정될 수도 있다:
Figure pct00005
(4)
여기에서 p(c) 는 실세계 (또는 "야생") 에서 특정 클래스를 관측할 예상되는 확률이다.
도 6 은 머신 학습 모델에 대한 클래스들 사이에서 트레이닝 데이터를 밸런싱하기 위한 방법 (600) 을 예시한다. 블록 602 에서, 프로세스는 현재 클래스의 예들의 수에 대한 최소 멤버들을 갖는 클래스의 예들의 수의 비율에 기초하여, 기울기를 수정하기 위한 팩터를 결정한다. 최소 멤버들은 실제 또는 예상된 멤버들의 수에 기초할 수도 있다. 마찬가지로, 현재 클래스의 예들의 수는 예들의 실제 또는 예상된 수에 기초할 수도 있다. 블록 604 에서, 프로세스는 결정된 팩터에 기초하여 현재 클래스와 연관된 기울기를 수정한다.
도 7 은 머신 학습 모델에 대한 클래스들 사이에서 트레이닝 데이터를 밸런싱하기 위한 전체적인 방법 (700) 을 예시한다. 블록 702 에서, 트레이닝 데이터가 평가된다. 블록 704 에서, 클래스에서의 예들의 빈도가 결정된다. 블록 706 에서, 기울기가 결정된 빈도에 기초하여 업데이트된다. 업데이트는 블록 710 에서 각각의 클래스에 대해 기울기에 대한 스케일링 팩터를 적용하는 것에 의해 수행될 수도 있다. 대안으로서, 업데이트는 블록 708 에서 클래스 예들의 샘플에 기초하여 기울기를 선택적으로 적용하는 것에 의해 수행될 수도 있다. 선택적 샘플링 업데이트는 블록 712 에서 개별적 기반으로 수행될 수도 있거나, 블록 714 에서 에포크 기반으로 수행될 수도 있거나 또는 블록 716 에서 트레이닝 코퍼스 기반으로 수행될 수도 있다.
도 8 은 본 개시의 양태들에 따라 트레이닝 데이터를 밸런싱하는 방법 (800) 을 예시한다. 블록 802 에서, 프로세스는 모델을 트레이닝하는 동안 역전파 프로세스의 기울기들을 수정한다. 수정은 현재 클래스의 예들의 수에 대한 최소 멤버들을 갖는 클래스의 예들의 수의 비율에 기초한다.
일부 양태들에서, 방법들 (600, 700, 및 800) 은 SOC (100)(도 1) 또는 시스템 (200)(도 2) 에 의해 수행될 수도 있다. 즉, 방법들 (1100 및 1200) 의 엘리먼트들 각각은 예를 들어, 비제한적으로, SOC (100) 또는 시스템 (200) 에 의해 수행될 수도 있거나, 하나 이상의 프로세서들 (예를 들어, CPU (102) 및 로컬 프로세싱 유닛 (202)) 및/또는 본원에 포함된 다른 컴포넌트들에 의해 수행될 수도 있다. 일부 양태들에서, 방법들 (600 및 700) 은 SOC (420)(도 4) 또는 하나 이상의 프로세서들 (예를 들어, CPU (422)) 에 의해 및/또는 본원에 포함된 다른 컴포넌트들에 의해 수행될 수도 있다.
위에서 설명된 방법들의 다양한 동작들은 대응하는 기능들을 수행할 수 있는 임의의 적절한 수단으로 수행될 수도 있다. 수단은 주문형 집적 회로 (ASIC), 또는 프로세서를 포함하여 다양한 하드웨어 및/또는 소프트웨어 컴포넌트(들) 및/또는 모듈(들)을 포함하지만, 이들에 한정되지 않는다. 일반적으로, 도면들에 예시되는 동작들이 있는 경우, 이러한 동작들은 대응하는 상대 수단 + 동일한 번호를 갖는 기능 컴포넌트들을 가질 수도 있다.
본원에서 이용되는 바와 같이, 용어 "결정하는"은 매우 다양한 액션들을 포괄한다. 예를 들어, "결정하는"은 계산하는, 연산, 프로세싱, 도출하는, 조사하는, 검색하는(예를 들어, 테이블, 데이터베이스, 또는 다른 데이터 구조에서 검색하는), 확인하는 등을 포함할 수도 있다. 또한, "결정하는"은 수신하는 (예를 들면, 정보를 수신하는), 액세스하는 (메모리의 데이터에 액세스하는) 등을 포함할 수 있다. 또한, "결정하는"은 해결하는, 선택하는, 고르는, 확립하는 등을 포함할 수 있다.
본원에서 이용되는 바와 같이, 아이템들의 리스트 중 "그 중 적어도 하나" 를 지칭하는 구절은 단일 멤버들을 포함한, 이들 아이템들의 임의의 조합을 지칭한다. 예로서, "a, b, 또는 c: 중 적어도 하나" 는 a, b, c, a-b, a-c, b-c, 및 a-b-c 를 포함하도록 의도된다.
본원 개시와 연계하여 설명된 여러 예시적인 논리 블록들, 모듈들, 및 회로들은 본원에서 개시된 기능들을 수행하도록 디자인된 범용 프로세서, 디지털 신호 프로세서 (DSP), 주문형 반도체 (ASIC), 필드 프로그래머블 게이트 어레이 (FPGA) 또는 다른 프로그래머블 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 이들의 임의의 조합에 의해 구현되거나 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있으나, 대안으로서, 프로세서는 임의의 상업적으로 이용가능한 프로세서, 제어기, 마이크로컨트롤러, 또는 상태 머신일 수도 있다. 프로세서는 또한 연산 디바이스들의 조합, 예를 들면, DSP와 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 연계한 하나 이상의 마이크로프로세서들, 또는 임의의 다른 그러한 구성으로 구현될 수도 있다.
본 개시와 연계하여 설명된 방법의 단계들 또는 알고리즘은 하드웨어에서, 프로세서에 의해 실행되는 소프트웨어 모듈에서, 또는 이들 양쪽의 조합에서 직접 구현될 수도 있다. 소프트웨어 모듈은 공지된 임의의 형태의 저장 매체 내에 있을 수도 있다. 이용될 수도 저장 매체들의 일부 예들은, 랜덤 액세스 메모리 (RAM), 판독 전용 메모리 (ROM), 플래시 메모리, EPROM (erasable programmable read-only memory) 메모리, EEPROM (electrically erasable programmable read-only memory) 메모리, 레지스터들, 하드 디스크, 탈착가능 디스크, CD-ROM 등을 포함한다. 소프트웨어 모듈을 단일 명령 또는 다수의 명령들을 포함할 수도 있고, 수개의 상이한 코드 세그먼트들 상에서, 상이한 프로그램들 간에 그리고 다수의 저장 매체에 걸쳐 분포될 수도 있다. 저장 매체는 프로세서에 커플링되어, 프로세가 저장 매체로부터 정보를 판독하거나 저장 매체에 정보를 기록할 수 있다. 대안으로서, 저장 매체는 프로세서와 일체형일 수도 있다.
본원에서 개시된 방법들은 상술된 방법을 달성하기 위한 하나 이상의 단계들 또는 액션들을 포함한다. 방법 단계들 및/또는 액션들은 청구항들의 범위를 벗어나지 않으면서 서로 상호 교환될 수도 있다. 다시 말해, 단계들 또는 액션들에 대한 특정 순서가 명시되지 않는 한, 특정 단계들 및/또는 액션들의 순서 및/또는 이용은 청구항들의 범위로부터 벗어남이 없이 수정될 수도 있다.
설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 하드웨어로 구현되면, 예시적인 하드웨어 구성은 디바이스에서의 프로세싱 시스템을 포함할 수도 있다. 프로세싱 시스템은 버스 아키텍처로 구현될 수도 있다. 버스는 프로세싱 시스템의 특정 애플리케이션 및 전체 설계 제약들에 의존하는 임의의 수의 상호접속 버스들 및 브리지들을 포함할 수도 있다. 버스는 프로세서, 머신 판독가능 매체 및 버스 인터페이스를 포함한 여러 회로들을 함께 링크할 수도 있다. 버스 인터페이스는 네트워크 어댑터를, 무엇보다도, 버스를 통하여 프로세싱 시스템에 접속하는데 이용될 수도 있다. 네트워크 어댑터는 신호 프로세싱 기능들을 구현하는데 이용될 수도 있다. 특정 양태들에서, 사용자 인터페이스 (예를 들어, 키패드, 디스플레이, 마우스, 조이스틱 등) 가 또한 버스에 접속될 수도 있다. 버스는 또한 각종 다른 회로들, 예컨대, 타이밍 소스들, 주변기기들, 레귤레이터들, 및 전력 관리 회로들을 링크할 수도 있으며, 이는 공지되어 있으므로, 더 이상 설명되지 않을 것이다.
프로세서는 머신 판독가능 매체 상에 저장된 소프트웨어의 실행을 포함하는 범용 프로세싱 및 버스를 관리하는 것을 담당할 수도 있다. 프로세서는 하나 이상의 범용 및/또는 특수 목적 프로세서들로 구현될 수도 있다. 예들은 마이크로프로세서들, 마이크로컨트롤러들, DSP 프로세서들, 및 소프트웨어를 실행할 수 있는 다른 회로부를 포함한다. 소프트웨어는, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 기술 언어 또는 그 외의 것으로 지칭되는 간에 명령들, 데이터 또는 이들의 임의의 조합을 의미하도록 널리 간주되어야 한다. 머신 판독가능 매체는 예를 들어, RAM (Random Access Memory), 플래시 메모리, ROM (Read Only Memory), PROM (Programmable Read-Only Memory), EPROM (Erasable Programmable Read-Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), 레지스터들, 자기 디스크들, 광 디스크들, 하드 드라이브들, 또는 임의의 다른 적절한 저장 매체, 또는 이들의 임의의 조합을 포함할 수도 있다. 머신 판독가능 매체는 컴퓨터 프로그램 제품에서 구현될 수도 있다. 컴퓨터 프로그램 제품은 패키징 재료들을 포함할 수도 있다.
하드웨어 구현에서, 머신 판독가능 매체는 프로세서와는 별개로 프로세싱 시스템의 부분일 수도 있다. 그러나, 당해 기술 분야의 당업자가 쉽게 이해할 바와 같이, 머신 판독가능 매체, 또는 이들의 임의의 부분은 프로세싱 시스템 외부에 있을 수도 있다. 예를 들어, 머신 판독가능 매체는 송신 라인, 데이터에 의해 변조된 반송파, 및/또는 디바이스로부터 분리된 컴퓨터 제품을 포함할 수도 있고, 이들 모두는 버스 인터페이스를 통하여 프로세서에 의해 액세스될 수도 있다. 대안으로서, 또는 추가적으로, 머신 판독가능 매체 또는 이들의 임의의 부분은 프로세서 내에 통합될 수도 있고, 이러한 경우는 캐시 및/또는 일반 레지스터 파일들과 함께 있을 수도 있다. 설명된 여러 컴포넌트들이 특정 로케이션, 이를 테면, 로컬 컴포넌트를 갖는 것으로서 설명될 수도 있지만, 이들은 또한 여러 방식들로 이를 테면, 특정 컴포넌트들이 분산된 컴퓨터 시스템의 부분으로서 구성되는 것으로서 구성될 수도 있다.
프로세싱 시스템은 프로세서 기능을 제공하는 하나 이상의 마이크로프로세서들, 및 머신 판독가능 매체의 적어도 일부분을 제공하는 외부 메모리를 구비한 범용 프로세싱 시스템으로서 구성될 수도 있고, 모두는 외부 버스 아키텍처를 통하여 다른 지원 회로부와 함께 링크된다. 대안으로서, 프로세싱 시스템은 본원에 설명된 뉴런 모델들 및 신경 시스템의 모델들을 구현하기 위한 하나 이상의 뉴로모픽 프로세서들을 포함할 수도 있다. 다른 대안으로서, 프로세싱 시스템은 프로세서, 버스 인터페이스, 사용자 인터페이스, 지원 회로부 및 단일 칩 내에 통합된 머신 판독가능 매체의 적어도 일부분를 구비한 ASIC (Application Specific Integrated Circuit) 에 의해 또는 하나 이상의 FPGA들 (Field Programmable Gate Arrays), PLD들 (Programmable Logic Devices), 제어기들, 상태 머신들, 게이트 로직, 이산 하드웨어 컴포넌트들 또는 임의의 다른 적절한 회로부 또는 본 개시물 전반에 걸쳐 설명된 여러 기능을 수행할 수 있는 회로들의 임의의 조합에 의해 구현될 수도 있다. 당해 기술 분야의 당업자는 전체 시스템 상에 부여되는 전체 설계 제약들 및 특정 애플리케이션에 따라 그 설명된 기능성을 최상으로 구현하는 방법을 알고 있을 것이다.
머신 판독가능 매체는 복수의 소프트웨어 모듈들을 포함할 수도 있다. 소프트웨어 모듈들은 프로세서에 의해 실행될 때 프로세싱 시스템으로 하여금 각종 기능들을 수행하게 하는 명령들을 포함한다. 소프트웨어 모듈들은 송신 모듈 및 수신 모듈을 포함할 수도 있다. 각각의 소프트웨어 모듈은 단일 스토리지 디바이스에 상주할 수도 있거나 또는 다수의 저장 디바이스들에 걸쳐 분산될 수도 있다. 예를 들어, 소프트웨어 모듈은 트리거링 이벤트를 발생할 때 하드 드라이브로부터 RAM 내에 로딩될 수도 있다. 소프트웨어 모듈의 실행 동안, 프로세서는 액세스 속도를 증가시키기 위해 캐시 내에 명령들의 일부를 로딩할 수도 있다. 그 후, 하나 이상의 캐시 라인들은 프로세서에 의한 실행을 위해 일반 레지스터 파일 내에 로딩될 수도 있다. 아래의 소프트웨어 모듈의 기능을 언급할 때, 이러한 기능은 소프트웨어로부터의 명령들을 실행할 때 프로세서에 의해 구현되는 것으로 이해된다. 또한, 본 개시의 양태들은 프로세서, 컴퓨터, 머신 또는 이러한 양태들을 구현하는 다른 시스템의 기능에 대한 개선들을 가져온다는 것을 알아야 한다.
소프트웨어로 구현되면, 상기 기능들은 하나 이상의 명령들 또는 코드로서 컴퓨터 판독 가능한 매체 상에 저장되거나 또는 전송될 수도 있다. 컴퓨터 판독가능 매체들은 한 장소에서 다른 장소로 컴퓨터 프로그램의 전송을 가능하게 하는 임의의 매체를 포함하여, 통신 매체들 및 컴퓨터 저장 매체들 양쪽 모두를 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수도 있다. 비제한적인 예로서, 이러한 컴퓨터 판독 가능한 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 스토리지 디바이스들, 또는 요구되는 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 이송 또는 저장하기 위해 사용될 수 있으며 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속은 컴퓨터 판독가능한 매체라고 적절히 지칭된다. 예를 들면, 소프트웨어가 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 회선 (DSL), 또는 적외선 (IR), 무선, 및 마이크로파와 같은 무선 기술들을 사용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 전송되면, 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들은 매체의 정의 내에 포함된다. 본원에서 이용된 바와 같이, 디스크 (disk) 와 디스크 (disc) 는, 컴팩트 디스크 (CD), 레이저 디스크, 광학 디스크, 디지털 다기능 디스크 (DVD), 플로피디스크 및 Blu-ray® 디스크를 포함하며, 여기서 디스크 (disk) 는 통상 자기적으로 데이터를 재생하고, 디스크 (disc) 는 레이저를 이용하여 광학적으로 데이터를 재생한다. 따라서, 일부 양태들에서 컴퓨터 판독가능 매체들은 비일시적 컴퓨터 판독가능 매체들 (예를 들어, 유형의 매체들) 을 포함할 수도 있다. 또한, 다른 양태들에 있어서 컴퓨터 판독가능 매체들은 일시적 판독가능 매체들(예를 들어, 신호)을 포함할 수도 있다. 위의 조합들도 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다.
따라서, 소정의 양태들은 본원에 제시된 동작들을 수행하는 컴퓨터 프로그램 제품을 포함할 수도 있다. 예를 들어, 이러한 컴퓨터 프로그램 제품은 저장된 (및/또는 인코딩된) 명령들을 갖는 컴퓨터 판독가능 매체를 포함할 수도 있으며, 명령들은 본원에 설명된 동작들을 수행하기 위해 하나 이상의 프로세서들에 의해 실행가능할 수도 있다. 소정의 양태들에 있어서, 컴퓨터 프로그램 제품은 패키징 재료를 포함할 수도 있다.
또한, 본원에 설명된 방법들 및 기법들을 수행하는 모듈들 및/또는 다른 적절한 수단은 필요에 따라 사용자 단말 및/또는 기지국에 의해 다운로드 및/또는 획득될 수도 있다. 예를 들면, 본원에서 설명된 방법들을 수행하기 위한 수단의 전송을 용이하게 하기 위한 서버에 디바이스가 커플링될 수도 있다. 대안으로, 본원에 설명된 다양한 방법들이 저장 수단 (예를 들어, RAM, ROM, 물리적 컴팩트 디스크 (CD) 나 플로피 디스크와 같은 물리적 저장 매체 등) 을 통해 제공될 수도 있어, 사용자 단말 및/또는 기지국은 디바이스에 커플링할 시에 또는 디바이스에 저장 수단을 제공할 시에 다양한 방법들을 획득할 수 있다. 또한, 본원에서 설명된 상기 방법들 및 기술들을 디바이스에 제공하기 위한 임의의 다른 적절한 기술들이 활용될 수 있다.
하기의 특허청구범위는 상기 설명된 정확한 구성 및 컴포넌트들로 제한되는 것이 아님을 이해해야 한다. 특허청구범위의 범위를 벗어나지 않으면서, 본원에서서 설명된 시스템들, 방법들 및 장치들의 배치, 동작 및 세부사항들에서 다양한 수정예들, 변경예들 및 변형예들이 행해질 수도 있다.

Claims (20)

  1. 머신 학습 모델에 대한 클래스들 사이의 트레이닝 데이터의 밸런스를 수정하는 방법으로서,
    현재 클래스의 예들의 수에 대한 최소 멤버들을 갖는 클래스의 예들의 수의 비율에 기초하여, 모델을 트레이닝하는 동안 역전파 프로세스의 기울기들을 수정하는 단계를 포함하는, 머신 학습 모델에 대한 클래스들 사이의 트레이닝 데이터의 밸런스를 수정하는 방법.
  2. 제 1 항에 있어서,
    상기 수정하는 단계는 상기 기울기를 스케일링하는 단계를 포함하는, 머신 학습 모델에 대한 클래스들 사이의 트레이닝 데이터의 밸런스를 수정하는 방법.
  3. 제 1 항에 있어서,
    상기 수정하는 단계는 클래스 예들의 샘플링에 적어도 부분적으로 기초하여 상기 기울기를 선택적으로 적용하는 단계를 포함하는, 머신 학습 모델에 대한 클래스들 사이의 트레이닝 데이터의 밸런스를 수정하는 방법.
  4. 제 3 항에 있어서,
    상기 클래스의 샘플링은 각각의 트레이닝 에포크로부터 예들의 고정된 수를 선택하는 것에 의해 발생하는, 머신 학습 모델에 대한 클래스들 사이의 트레이닝 데이터의 밸런스를 수정하는 방법.
  5. 제 1 항에 있어서,
    상기 샘플링은 트레이닝 에포크에서 예들의 대체 없이 발생하는, 머신 학습 모델에 대한 클래스들 사이의 트레이닝 데이터의 밸런스를 수정하는 방법.
  6. 머신 학습 모델에 대한 클래스들 사이의 트레이닝 데이터의 밸런스를 수정하는 장치로서,
    현재 클래스의 예들의 수에 대한 최소 멤버들을 갖는 클래스의 예들의 수의 비율에 적어도 부분적으로 기초하여, 기울기를 수정하기 위한 팩터를 결정하기 위한 수단; 및
    결정된 상기 팩터에 기초하여 상기 현재 클래스와 연관된 기울기를 수정하기 위한 수단을 포함하는, 머신 학습 모델에 대한 클래스들 사이의 트레이닝 데이터의 밸런스를 수정하는 장치.
  7. 제 6 항에 있어서,
    상기 수정하기 위한 수단은 상기 기울기를 스케일링하기 위한 수단을 포함하는, 머신 학습 모델에 대한 클래스들 사이의 트레이닝 데이터의 밸런스를 수정하는 장치.
  8. 제 6 항에 있어서,
    상기 수정하기 위한 수단은 클래스 예들의 샘플링에 적어도 부분적으로 기초하여 상기 기울기를 선택적으로 적용하기 위한 수단을 포함하는, 머신 학습 모델에 대한 클래스들 사이의 트레이닝 데이터의 밸런스를 수정하는 장치.
  9. 제 8 항에 있어서,
    상기 클래스의 샘플링은 각각의 트레이닝 에포크로부터 예들의 고정된 수를 선택하는 것에 의해 발생하는, 머신 학습 모델에 대한 클래스들 사이의 트레이닝 데이터의 밸런스를 수정하는 장치.
  10. 제 6 항에 있어서,
    상기 샘플링은 트레이닝 에포크에서 예들의 대체 없이 발생하는, 머신 학습 모델에 대한 클래스들 사이의 트레이닝 데이터의 밸런스를 수정하는 장치.
  11. 머신 학습 모델에 대한 클래스들 사이의 트레이닝 데이터의 밸런스를 수정하는 장치로서,
    메모리; 및
    상기 메모리에 커플링된 적어도 하나의 프로세서를 포함하고,
    상기 적어도 하나의 프로세서는 현재 클래스의 예들의 수에 대한 최소 멤버들을 갖는 클래스의 예들의 수의 비율에 적어도 부분적으로 기초하여, 모델을 트레이닝하는 동안 역전파 프로세스의 기울기들을 수정하도록 구성되는, 머신 학습 모델에 대한 클래스들 사이의 트레이닝 데이터의 밸런스를 수정하는 장치.
  12. 제 11 항에 있어서,
    상기 적어도 하나의 프로세서는 상기 기울기를 스케일링하는 것에 의해 수정하도록 구성되는, 머신 학습 모델에 대한 클래스들 사이의 트레이닝 데이터의 밸런스를 수정하는 장치.
  13. 제 11 항에 있어서,
    상기 적어도 하나의 프로세서는 클래스 예들의 샘플링에 적어도 부분적으로 기초하여 상기 기울기를 선택적으로 적용하는 것에 의해 수정하도록 구성되는, 머신 학습 모델에 대한 클래스들 사이의 트레이닝 데이터의 밸런스를 수정하는 장치.
  14. 제 13 항에 있어서,
    상기 클래스의 샘플링은 각각의 트레이닝 에포크로부터 예들의 고정된 수를 선택하는 것에 의해 발생하는, 머신 학습 모델에 대한 클래스들 사이의 트레이닝 데이터의 밸런스를 수정하는 장치.
  15. 제 11 항에 있어서,
    상기 샘플링은 트레이닝 에포크에서 예들의 대체 없이 발생하는, 머신 학습 모델에 대한 클래스들 사이의 트레이닝 데이터의 밸런스를 수정하는 장치.
  16. 머신 학습 모델에 대한 클래스들 사이의 트레이닝 데이터의 밸런스를 수정하기 위한 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 비일시적 컴퓨터 판독가능 저장 매체에는 프로그램 코드가 기록되어 있고,
    상기 프로그램 코드는:
    현재 클래스의 예들의 수에 대한 최소 멤버들을 갖는 클래스의 예들의 수의 비율에 적어도 부분적으로 기초하여, 모델을 트레이닝하는 동안 역전파 프로세스의 기울기들을 수정하는 프로그램 코드를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  17. 제 16 항에 있어서,
    상기 수정하는 프로그램 코드는 상기 기울기를 스케일링하는 프로그램 코드를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  18. 제 16 항에 있어서,
    상기 수정하는 프로그램 코드는 클래스 예들의 샘플링에 적어도 부분적으로 기초하여 상기 기울기를 선택적으로 적용하는 프로그램 코드를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  19. 제 18 항에 있어서,
    상기 클래스의 샘플링은 각각의 트레이닝 에포크로부터 예들의 고정된 수를 선택하는 것에 의해 발생하는, 비일시적 컴퓨터 판독가능 저장 매체.
  20. 제 16 항에 있어서,
    상기 샘플링은 트레이닝 에포크에서 예들의 대체 없이 발생하는, 비일시적 컴퓨터 판독가능 저장 매체.
KR1020187012033A 2015-09-29 2016-09-07 선택적 역전파 KR102582194B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562234559P 2015-09-29 2015-09-29
US62/234,559 2015-09-29
US15/081,780 2016-03-25
US15/081,780 US20170091619A1 (en) 2015-09-29 2016-03-25 Selective backpropagation
PCT/US2016/050539 WO2017058479A1 (en) 2015-09-29 2016-09-07 Selective backpropagation

Publications (2)

Publication Number Publication Date
KR20180063189A true KR20180063189A (ko) 2018-06-11
KR102582194B1 KR102582194B1 (ko) 2023-09-22

Family

ID=58407414

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187012033A KR102582194B1 (ko) 2015-09-29 2016-09-07 선택적 역전파

Country Status (7)

Country Link
US (1) US20170091619A1 (ko)
EP (1) EP3357003A1 (ko)
JP (1) JP6859332B2 (ko)
KR (1) KR102582194B1 (ko)
CN (1) CN108140142A (ko)
BR (1) BR112018006288A2 (ko)
WO (1) WO2017058479A1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11250335B2 (en) * 2015-10-26 2022-02-15 NetraDyne, Inc. Joint processing for embedded data inference
US10970605B2 (en) * 2017-01-03 2021-04-06 Samsung Electronics Co., Ltd. Electronic apparatus and method of operating the same
US11003989B2 (en) 2017-04-27 2021-05-11 Futurewei Technologies, Inc. Non-convex optimization by gradient-accelerated simulated annealing
CN107229968B (zh) * 2017-05-24 2021-06-29 北京小米移动软件有限公司 梯度参数确定方法、装置及计算机可读存储介质
US11517768B2 (en) * 2017-07-25 2022-12-06 Elekta, Inc. Systems and methods for determining radiation therapy machine parameter settings
US11556794B2 (en) * 2017-08-31 2023-01-17 International Business Machines Corporation Facilitating neural networks
WO2019070300A1 (en) * 2017-10-06 2019-04-11 Google Llc SYSTEMS AND METHODS FOR IMAGE SWITCHING
US11615129B2 (en) * 2017-11-28 2023-03-28 International Business Machines Corporation Electronic message text classification framework selection
US11475306B2 (en) 2018-03-22 2022-10-18 Amazon Technologies, Inc. Processing for multiple input data sets
US11461631B2 (en) * 2018-03-22 2022-10-04 Amazon Technologies, Inc. Scheduling neural network computations based on memory capacity
US20190303176A1 (en) * 2018-03-29 2019-10-03 Qualcomm Incorporated Using Machine Learning to Optimize Memory Usage
US11281999B2 (en) * 2019-05-14 2022-03-22 International Business Machines Corporation Armonk, New York Predictive accuracy of classifiers using balanced training sets
JP7295710B2 (ja) * 2019-06-07 2023-06-21 ジオテクノロジーズ株式会社 学習用画像データ生成装置
US11836624B2 (en) 2019-08-26 2023-12-05 D5Ai Llc Deep learning with judgment
US20210065054A1 (en) * 2019-09-03 2021-03-04 Koninklijke Philips N.V. Prioritizing tasks of domain experts for machine learning model training
US20210089924A1 (en) * 2019-09-24 2021-03-25 Nec Laboratories America, Inc Learning weighted-average neighbor embeddings
JP7268924B2 (ja) * 2019-11-14 2023-05-08 株式会社アクセル 推論システム、推論装置、推論方法及び推論プログラム
US11077320B1 (en) 2020-02-07 2021-08-03 Elekta, Inc. Adversarial prediction of radiotherapy treatment plans
WO2023069973A1 (en) * 2021-10-19 2023-04-27 Emory University Selective backpropagation through time

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5142135B2 (ja) * 2007-11-13 2013-02-13 インターナショナル・ビジネス・マシーンズ・コーポレーション データを分類する技術
CN103763350A (zh) * 2014-01-02 2014-04-30 北京邮电大学 基于误差反向传播神经网络的web服务选择方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Sang-Hoon Oh, Error back-propagation algorithm for classification of imbalanced data , Neurocomputing 74, 1058-1061pages (2011.)* *

Also Published As

Publication number Publication date
WO2017058479A1 (en) 2017-04-06
BR112018006288A2 (pt) 2018-10-16
CN108140142A (zh) 2018-06-08
EP3357003A1 (en) 2018-08-08
JP2018533138A (ja) 2018-11-08
JP6859332B2 (ja) 2021-04-14
KR102582194B1 (ko) 2023-09-22
US20170091619A1 (en) 2017-03-30

Similar Documents

Publication Publication Date Title
KR102582194B1 (ko) 선택적 역전파
KR102595399B1 (ko) 미지의 클래스들의 검출 및 미지의 클래스들에 대한 분류기들의 초기화
US10275719B2 (en) Hyper-parameter selection for deep convolutional networks
JP6862426B2 (ja) トレーニングされた機械学習モデルのパフォーマンスを改善するための方法
JP6732795B2 (ja) 深層畳み込みネットワークにおいて画像解像度を低減すること
JP6743124B2 (ja) 画像中のオブジェクト検出のためのコンテキストベースの事前分布
US11334789B2 (en) Feature selection for retraining classifiers
JP7037478B2 (ja) 分類のための強制的なスパース性
KR20170140214A (ko) 신경망을 위한 훈련 기준으로서의 필터 특이성
US20160283864A1 (en) Sequential image sampling and storage of fine-tuned features
JP2018525734A (ja) ニューラルネットワークにおける転移学習
JP2018506785A (ja) モデル圧縮および微調整
KR20170140228A (ko) 바이어스 항을 통한 딥 신경망들에서의 톱-다운 정보의 병합
KR20180036709A (ko) 미디어 분류
KR20230088714A (ko) 개인화된 뉴럴 네트워크 프루닝
EP4162405A1 (en) Federated mixture models

Legal Events

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