KR101887558B1 - 컨볼루션 신경망 모델의 트레이닝 방법 및 장치 - Google Patents

컨볼루션 신경망 모델의 트레이닝 방법 및 장치 Download PDF

Info

Publication number
KR101887558B1
KR101887558B1 KR1020177018163A KR20177018163A KR101887558B1 KR 101887558 B1 KR101887558 B1 KR 101887558B1 KR 1020177018163 A KR1020177018163 A KR 1020177018163A KR 20177018163 A KR20177018163 A KR 20177018163A KR 101887558 B1 KR101887558 B1 KR 101887558B1
Authority
KR
South Korea
Prior art keywords
image
training
convolution layer
level
convolution
Prior art date
Application number
KR1020177018163A
Other languages
English (en)
Other versions
KR20170091140A (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 KR20170091140A publication Critical patent/KR20170091140A/ko
Application granted granted Critical
Publication of KR101887558B1 publication Critical patent/KR101887558B1/ko

Links

Images

Classifications

    • G06K9/66
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06K9/481
    • G06K9/6267
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/32Normalisation of the pattern dimensions
    • 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/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • G06V10/469Contour-based spatial representations, e.g. vector-coding
    • 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/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • 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/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/19Recognition using electronic means
    • G06V30/192Recognition using electronic means using simultaneous comparisons or correlations of the image signals with a plurality of references
    • G06V30/194References adjustable by an adaptive method, e.g. learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Abstract

이미지 인식 분야에 관련된 CNN 모델의 트레이닝 방법 및 장치가 개시된다. 방법은, 제2 특성 이미지를 획득하기 위해 트레이닝 이미지에 컨볼루션 연산, 최대 풀링 연산 및 수평 풀링 연산을 각각 수행하는 단계; 제2 특성 이미지에 따라서 특성 벡터를 결정하는 단계; 카테고리 확률 벡터를 획득하기 위해 특성 벡터를 프로세싱하는 단계; 카테고리 확률 벡터 및 초기 카테고리에 기초하여 카테고리 에러를 계산하는 단계; 카테고리 에러에 기초하여 모델 파라미터를 조정하는 단계; 조정된 모델 파라미터에 기초하여 모델 파라미터 조정 프로세스를 계속하고, 반복의 횟수가 미리 설정된 횟수에 도달하면 모델 파라미터를 잘 트레이닝된 CNN 모델의 모델 파라미터로서 사용하는 단계를 포함한다. 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지에 컨볼루션 연산 및 최대 풀링 연산을 수행한 후, 수평 풀링 연산이수행된다. 수평 풀링 연산은 특성 이미지로부터 이미지 수평 방향 특성을 식별하는 특성 이미지를 추출할 수 있으므로, 잘 트레이닝된 CNN 모델은 임의의 크기의 이미지를 인식할 수 있고, 따라서 잘 트레이닝된 CNN 모델의 이미지 인식에 있어서의 적용 범위가 확대된다.

Description

컨볼루션 신경망 모델의 트레이닝 방법 및 장치{TRAINING METHOD AND APPARATUS FOR CONVOLUTIONAL NEURAL NETWORK MODEL}
본 출원은 2015년 4월 2일에 중국특허청(SIPO)에 출원된 중국특허출원 제2015101540270호의 "컨볼루션 신경망(CNN) 모델의 트레이닝 방법 및 장치"를 기초로 출원되었으며 이에 대해 우선권을 주장하고, 이것의 전체 내용이 참조로서 본 명세서에 포함된다.
본 명세서는 전반적으로 이미지 인식 분야에 관한 것으로서, 더 구체적으로 CNN(Convolutional Neural Network) 모델의 트레이닝 방법 및 장치에 관한 것이다.
이미지 인식 분야에서, CNN 모델은 일반적으로 인식되는 이미지의 분류를 결정하는데 사용된다. 인식되는 이미지의 분류가 CNN 모델을 통해 인식되기 전에, CNN 모델은 우선 트레이닝 될 필요가 있다.
CNN 모델의 트레이닝은 일반적으로 이하의 방법으로 구현된다. 우선, 트레이닝되는 CNN 모델의 모델 파라미터가 초기화되고, 여기서 모델 파라미터는 각각의 컨볼루션 레이어(convolution layer)의 초기 컨볼루션 커널(convolution kernels), 각각의 컨볼루션 레이어의 초기 바이어스 행렬(bias matrixes), 및 완전 연결 레이어(fully connected layer)의 초기 가중치 행렬(weight matrix) 및 초기 바이어스 벡터(bias vector)를 포함한다. 그리고, 고정된 높이 및 고정된 폭을 가진 프로세싱될 영역이 미리 선택된 트레이닝 이미지 각각으로부터 획득되고, 여기서 고정된 높이 및 고정된 폭은 인식되는 이미지의 분류에 매칭되고, 인식되는 이미지는 트레이닝되는 CNN 모델에 의해 프로세싱될 수 있는 이미지로서 미리 설정된 것이다. 트레이닝 이미지의 각각에 대응하는 프로세싱되는 영역은 트레이닝되는 CNN 모델에 입력된다. 그 후, 각각의 컨볼루션 레이어에서, 컨볼루션 연산 및 최대 풀링(pooling) 연산이 각각의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬를 사용하여 프로세싱되는 각 영역에서 수행되어, 각각의 컨볼루션 레이어 에서 처리되는 각 영역의 특성 이미지를 획득한다. 그리고, 각 특성 이미지는, 완전 연결 레이어의 초기 가중치 행렬 및 초기 바이어스 벡터를 사용하여 프로세싱되는 각 영역의 분류 확률을 획득하기 위해 프로세싱된다. 그리고, 트레이닝 이미지 각각의 분류 확률 및 초기 분류에 따라서 분류 에러가 계산된다. 분류 에러의 평균이 모든 트레이닝 이미지의 분류 에러에 따라서 계산된다. 그리고, 트레이닝되는 CNN 모델의 모델 파라미터는 분류 에러의 평균을 사용하여 조정된다. 상술한 각각의 단계는, 조정된 모델 파라미터와 개별적인 트레이닝 이미지를 사용하여 지정된 횟수 만큼 반복된다. 마지막으로, 반복의 횟수가 지정된 수에 도달할 때 획득된 모델 파라미터가 트레이닝된 CNN 모델의 모델 파라미터로서 결정된다.
본 명세서의 구현 과정에서, 출원인은 관련 기술이 적어도 아래와 같은 문제를 가진다는 것을 발견했다.
CNN 모델의 트레이닝 프로세스에서는 미리 선택된 트레이닝 이미지로부터 고정된 높이 및 고정된 폭을 가진 프로세싱되는 영역을 획득하는 것이 필요하므로, 트레이닝된 CNN은 고정된 높이 및 고정된 폭을 가진 이미지만을 인식할 수 있고, 이는 트레이닝된 CNN 모델의 이미지 인식에 특정 제한을 발생시키며 또한 제한된 적용 범위를 야기한다.
본 명세서의 실시예는, 종래 기술의 문제를 해결하기 위한 CNN 모델의 트레이닝 방법 및 장치를 제공한다. 기술적 해결방법이 아래와 같이 구현된다.
제1 측면에서, CNN 모델의 트레이닝 방법이 제공되고, 이 방법은
트레이닝되는 CNN 모델의 초기 모델 파라미터를 획득하는 단계 - 상기 초기 모델 파라미터는 각 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬과, 완전 연결 레이어의 초기 가중치 행렬 및 초기 바이어스 벡터를 포함함 -;
복수의 트레이닝 이미지를 획득하는 단계;
각 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬을 사용하여, 각 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제1 특성 이미지를 획득하기 위해, 각 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각에 컨볼루션 연산 및 최대 풀링 연산을 수행하는 단계;
적어도 하나의 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제2 특성 이미지를 획득하기 위해, 적어도 하나의 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제1 특성 이미지에 수평 풀링 연산을 수행하는 단계;
적어도 하나의 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제2 특성 이미지에 따라서 상기 트레이닝 이미지 각각의 특성 벡터를 결정하는 단계;
상기 초기 가중치 행렬 및 상기 초기 바이어스 벡터에 따라서 상기 트레이닝 이미지 각각의 분류 확률 벡터를 획득하기 위해 각각의 특성 벡터를 프로세싱하는 단계;
상기 트레이닝 이미지 각각의 초기 분류 및 상기 분류 확률 벡터에 따라서 분류 에러를 계산하는 단계;
상기 분류 에러에 기초하여 상기 트레이닝되는 CNN 모델의 모델 파라미터를 조정하는 단계;
조정된 모델 파라미터 및 상기 복수의 트레이닝 이미지에 기초하여, 반복의 횟수가 미리 결정된 수에 도달할 때까지, 모델 파라미터의 조정 프로세스를 계속하는 단계; 및
상기 반복의 횟수가 미리 결정된 수에 도달할 때 획득되는 모델 파라미터를 트레이닝된 CNN 모델의 모델 파라미터로서 결정하는 단계를 포함할 수 있다.
제2 측면에서, CNN 모델의 트레이닝 디바이스를 제공하고, 이 디바이스는
트레이닝되는 CNN 모델의 초기 모델 파라미터를 획득하도록 구성된 제1 획득 모듈 - 상기 초기 모델 파라미터는 각 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬과, 완전 연결 레이어의 초기 가중치 행렬 및 초기 바이어스 벡터를 포함함 -;
복수의 트레이닝 이미지를 획득하도록 구성된 제2 획득 모듈;
각 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬을 사용하여, 각 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제1 특성 이미지를 획득하기 위해, 각 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각에 컨볼루션 연산 및 최대 풀링 연산을 수행하도록 구성된 특성 추출 모듈;
적어도 하나의 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제2 특성 이미지를 획득하기 위해, 적어도 하나의 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제1 특성 이미지에 수평 풀링 연산을 수행하도록 구성된 수평 풀링 모듈;
적어도 하나의 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제2 특성 이미지에 따라서 상기 트레이닝 이미지 각각의 특성 벡터를 결정하도록 구성된 제1 결정 모듈;
상기 초기 가중치 행렬 및 상기 초기 바이어스 벡터에 따라서 상기 트레이닝 이미지 각각의 분류 확률 벡터를 획득하기 위해 각각의 특성 벡터를 프로세싱하도록 구성된 프로세싱 모듈;
상기 트레이닝 이미지 각각의 초기 분류 및 상기 분류 확률 벡터에 따라서 분류 에러를 계산하기 위한 계산 모듈;
상기 분류 에러에 기초하여 상기 트레이닝되는 CNN 모델의 모델 파라미터를 조정하도록 구성된 조정 모듈;
조정된 모델 파라미터 및 상기 복수의 트레이닝 이미지에 기초하여, 반복의 횟수가 미리 결정된 수에 도달할 때까지, 모델 파라미터의 조정 프로세스를 계속하도록 구성된 반복 모듈; 및
상기 반복의 횟수가 미리 결정된 수에 도달할 때 획득되는 모델 파라미터를 트레이닝된 CNN 모델의 모델 파라미터로서 결정하도록 구성된 제2 결정 모듈을 포함할 수 있다.
제3 측면에서, 서버가 제공되고, 이 서버는
하나 이상의 프로세서,
상기 하나 이상의 프로세서에 연결된 메모리를 포함할 수 있고,
상기 메모리는, 상기 하나 이상의 프로세서에 대해 실행가능한 명령을 저장하도록 구성되고,
상기 하나 이상의 프로세서는 상기 메모리에 저장된 명령을 실행하여, 제1 측면에서 제공된 CNN 모델의 트레이닝 방법을 실행하도록 구성된다.
본 명세서의 실시예에 의해 제공되는 기술적 해결방법은 이하의 유용한 효과를 발생시킨다.
각 레벨의 컨볼루션 레이어에서 트레이닝 이미지에 컨볼루션 연산 및 최대 풀링 연산이 수행된 후, 수평 풀링 연산이 최대 풀링 연산에 의해 획득된 특성 이미지에 추가적으로 수행된다. 수평 풀링 연산 동안, 특성 이미지의 수평 방향에서의 특성을 식별하는 특성 이미지가 특성 이미지로부터 추가적으로 추출될 수 있고, 이에 의해 트레이닝된 CNN 모델이 이미지 분류 인식 동안 인식되는 이미지의 수평 방향에서의 크기 제한을 깰 수 있게 하고 임의의 크기를 가진 인식되는 이미지를 인식할 수 있게 하며, 이에 의해 트레이닝된 CNN 모델의 이미지 인식 적용 범위가 상대적으로 커질 수 있다.
본 명세서의 실시예에서 기술적 해결방법을 보다 명확하게 설명하기 위하여, 실시예의 설명에 필요한 첨부된 도면을 이하에서 간략하게 소개한다. 명백하게, 이하에서 설명되는 첨부된 도면은 오직 본 명세서의 일부 실시예일 뿐이고, 본 기술분야의 통상의 기술자는 창의적 노력 없이 첨부된 도면에 따라서 다른 수반되는 도면을 더 얻을 수 있을 것이다.
도 1은 본 명세서의 실시예에 따른 CNN 모델을 트레이닝하는 방법을 나타내는 흐름도이다.
도 2는 본 명세서의 다른 실시예에 따른 CNN 모델을 트레이닝하는 방법을 나타내는 흐름도이다.
도 3은 본 명세서의 다른 실시예에 따른 트레이닝되는 CNN 모델을 도시하는 개략도이다.
도 4는 본 명세서의 다른 실시예에 따른 수평 풀링 연산의 프로세스를 도시하는 개략도이다.
도 5는 본 명세서의 다른 실시예에 따른 CNN 모델을 트레이닝하는 방법을 도시하는 흐름도이다.
도 6은 본 명세서의 다른 실시예에 따른 CNN 모델을 트레이닝하기 위한 디바이스의 구조의 개략도이다.
도 7은 본 명세서의 다른 실시예에 따른 단말의 구조의 개략도이다.
도 8은 본 명세서의 다른 실시예에 따른 서버의 구조의 개략도이다.
본 명세서의 목적, 기술적 해결방법 및 이점을 보다 명확하게 하기 위해, 본 명세서의 구현이 첨부된 도면을 참조하여 이하에서 자세하게 추가적으로 설명된다.
도 1은 본 명세서의 실시예에 따른 CNN 모델을 트레이닝하는 방법을 나타내는 흐름도이다. 도 1에 도시된 바와 같이, 본 명세서의 실시예에 의해 제공되는 방법의 흐름은 이하의 단계를 포함한다.
단계 101에서, 트레이닝되는 CNN 모델의 초기 모델 파라미터가 획득되고, 여기서 초기 모델 파라미터는 각 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬과, 완전 연결 레이어의 초기 가중치 행렬 및 초기 바이어스 벡터를 포함한다.
단계 102에서, 복수의 트레이닝 이미지를 획득한다.
다른 실시예에서, 복수의 트레이닝 이미지를 획득하는 단계는,
복수의 초기 트레이닝 이미지를 획득하는 것;
초기 트레이닝 이미지 각각에 대해, 초기 트레이닝 이미지의 폭-높이 비율을 유지하며, 지정 높이를 가진 제1 이미지를 획득하기 위해 초기 트레이닝 이미지를 프로세싱하는 것; 및
지정 폭을 가진 제2 이미지를 획득하기 위해 제1 이미지를 프로세싱하고, 지정 높이와 지정 폭을 가진 이미지를 초기 트레이닝 이미지에 대응하는 트레이닝 이미지로 결정하는 것을 포함한다.
다른 실시예에서, 지정 폭을 가진 제2 이미지를 획득하기 위해 제1 이미지를 프로세싱하는 것은,
제1 이미지의 폭이 지정 폭보다 작은 경우, 지정된 그레이-스케일(gray-scale) 값을 가진 픽셀로 제1 이미지의 좌우 측면을 균일하게 채우고, 제1 이미지의 폭이 지정 폭에 도달할 때 제2 이미지를 획득하는 것; 및
제1 이미지의 폭이 지정 폭보다 큰 경우, 제1 이미지의 좌우 측면 상의 픽셀을 균일하게 잘라내고, 제1 이미지의 폭이 지정 폭에 도달할 때 제2 이미지를 획득하는 것을 포함한다.
다른 실시예에서, 복수의 트레이닝 이미지를 획득하는 단계는,
복수의 초기 트레이닝 이미지를 획득하는 것; 및
초기 트레이닝 이미지 각각에 대해, 초기 트레이닝 이미지의 폭-높이 비율을 유지하며, 지정 높이를 가진 이미지를 획득하기 위해 초기 트레이닝 이미지를 프로세싱하고, 그리고 지정 높이에 대응하는 폭을 초기 트레이닝 이미지의 폭으로서 결정하는 것을 포함한다.
다른 실시예에서, 복수의 트레이닝 이미지는 비인공 장면(natural scene)의 이미지이고, 비인공 장면의 이미지는 상이한 언어의 문자를 포함하고, 트레이닝되는 CNN 모델은 언어 인식 분류기(classifier)이다.
단계 103에서, 각 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬을 사용하여, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지를 획득하기 위해, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각에 컨볼루션 연산 및 최대 풀링 연산이 수행된다.
다른 실시예에서, 각 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬을 사용하여, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지를 획득하기 위해, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각에 컨볼루션 연산 및 최대 풀링 연산을 수행하는 단계는,
트레이닝 이미지 각각에 대해, 이전 레벨의 컨볼루션 레이어에서의 제1 특성 이미지를 현재 컨볼루션 레이어에 입력하고, 그리고 현재 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬을 사용하여, 현재 컨볼루션 레이어의 컨볼루션 이미지를 획득하기 위해 이전 레벨의 컨볼루션 레이어에서의 제1 특성 이미지에 컨볼루션 연산을 수행하는 것 - 현재 컨볼루션 레이어가 제1 레벨의 컨볼루션 레이어인 경우, 이전 레벨의 컨볼루션 레이어에서의 제1 특성 이미지는 트레이닝 이미지임 - ; 및
현재 컨볼루션 레이어에서 트레이닝 이미지의 제1 특성 이미지를 획득하기 위해 최대 풀링 연산을 현재 컨볼루션 레이어의 컨볼루션 이미지에 수행한 후, 마지막 레벨의 컨볼루션 레이어에서 제1 특성 이미지를 획득하기 위해 마지막 레벨의 컨볼루션 레이어에서 컨볼루션 연산 및 최대 풀링 연산이 수행될 때까지, 계속해서 현재 컨볼루션 레이어의 제1 특성 이미지를 다음 레벨의 컨볼루션 레이어에 전송하고 그리고 다음 레벨의 컨볼루션 레이어에서 컨볼루션 연산 및 최대 풀링 연산을 수행하는 것을 포함한다.
단계 104에서, 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하기 위해, 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에 수평 풀링(horizontal pooling) 연산이 수행된다.
다른 실시예에서, 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하기 위해, 레벨들 중 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에 수평 풀링 연산을 수행하는 단계는,
각 레벨의 컨볼루션 레이어에서 각각의 트레이닝 이미지의 제1 특성 이미지에 대해, 제1 특성 이미지는 미리 설정된 수의 이미지들을 포함하고, 컨볼루션 레이어의 제1 특성 이미지의 각각의 이미지의 각각의 열(row)의 엘리먼트(elements) 중 최대 값을 추출하는 것 - 미리 설정된 수는 컨볼루션 레이어의 컨볼루션 커널의 수 또는 바이어스 행렬의 수와 동일함 - ;
각각의 이미지의 픽셀의 배열에 따라서, 각각의 이미지의 모든 열로부터 추출된 최대 값들을 1차원 벡터로 배열하는 것; 및
컨볼루션 레이어의 제2 특성 이미지를 획득하기 위해, 컨볼루션 레이어의 제1 특성 이미지의 모든 이미지들의 1차원 벡터를 결합하는 것을 포함한다.
단계 105에서, 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지에 따라서 트레이닝 이미지 각각의 특성 벡터(feature vector)가 결정된다.
다른 실시예에서, 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지에 따라서 트레이닝 이미지 각각의 특성 벡터를 결정하는 단계는,
트레이닝 이미지 각각에 대해, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지의 제2 특성 이미지의 모든 열의 엘리먼트를 처음부터 끝까지 연결하여 트레이닝 이미지의 특성 벡터를 획득하는 것을 포함한다.
단계 106에서, 초기 가중치 행렬 및 초기 바이어스 벡터에 따라서 트레이닝 이미지 각각의 분류 확률 벡터를 획득하기 위해 각각의 특성 벡터가 프로세싱된다.
단계 107에서, 트레이닝 이미지 각각의 초기 분류 및 분류 확률 벡터에 따라서 분류 에러가 계산된다.
다른 실시예에서, 트레이닝 이미지 각각의 초기 분류 및 분류 확률 벡터에 따라서 분류 에러를 계산하는 단계는,
트레이닝 이미지 각각의 초기 분류를 획득하는 것;
공식 Loss = -lnylabel 을 사용하여 트레이닝 이미지 각각의 초기 분류 및 분류 확률 벡터에 따라서 트레이닝 이미지 각각의 분류 에러를 계산하는 것 - Loss는 트레이닝 이미지 각각의 분류 에러를 나타내고, label은 트레이닝 이미지 각각의 초기 분류를 나타내며, yi 는 트레이닝 이미지 각각의 분류 확률 벡터의 엘리먼트를 나타내고, ylabel 은 초기 분류에 대응하는 분류 확률을 나타냄 - ; 및
모든 트레이닝 이미지의 분류 에러의 평균을 계산하고, 모든 트레이닝 이미지의 분류 에러의 평균을 분류 에러로서 결정하는 것을 포함한다.
단계 108에서, 분류 에러에 기초하여 트레이닝되는 CNN 모델의 모델 파라미터가 조정된다.
단계 109에서, 조정된 모델 파라미터 및 복수의 트레이닝 이미지에 기초하여, 반복의 횟수가 미리 결정된 수에 도달할 때까지, 모델 파라미터의 조정 프로세스가 계속된다.
단계 110에서, 반복의 횟수가 미리 결정된 수에 도달할 때 획득되는 모델 파라미터를 트레이닝된 CNN 모델의 모델 파라미터로서 결정한다.
본 명세서의 실시예에 의해 제공되는 방법에 따르면, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지에 컨볼루션 연산 및 최대 풀링 연산이 수행되고 나서, 수평 풀링 연산이, 최대 풀링 연산에 의해 획득된 특성 이미지에 추가로 수행된다. 수평 풀링 연산 동안, 특성 이미지의 수평 방향에서의 특성을 식별하는 특성 이미지가 특성 이미지로부터 추가로 추출될 수 있고, 이는 트레이닝된 CNN 모델이 이미지 분류 식별 동안 인식되는 이미지의 수평 방향에서의 크기 제한을 깰 수 있게 해주고 임의의 크기를 가진 인식되는 이미지를 인식할 수 있게 해준다. 이에 의해 트레이닝된 CNN 모델의 이미지 인식 적용 범위가 상대적으로 더 넓어진다.
다른 실시예에서, 트레이닝되는 CNN 모델은 4개의 레벨의 컨볼루션 레이어 및 2개의 완전 연결 레이어를 포함하고, 각 레벨의 컨볼루션 레이어는 컨볼루션 커널 및 바이어스 행렬을 동일한 개수 또는 상이한 개수로 포함한다.
적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하기 위해, 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에 수평 풀링 연산을 수행하는 단계는,
제2 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하고, 제3 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하고, 제4 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하기 위해, 제2 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에, 제3 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에, 그리고 제4 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에 개별적으로 수평 풀링 연산을 수행하는 것을 포함한다.
적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지에 따라서 트레이닝 이미지 각각의 특성 벡터를 결정하는 단계는,
트레이닝 이미지 각각에 대해, 제2 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지, 제3 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지, 및 제4 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지에 따라서 트레이닝 이미지의 특성 벡터를 결정하는 것을 포함한다.
모든 추가적인 기술적 해결방법이 본 명세서의 추가적인 실시예에 자유롭게 결합될 수 있고, 이것은 하나씩 상세히 설명되지는 않을 것이다.
도 1에 대응하는 실시예의 내용과 관련하여, 도 2는 본 명세서의 다른 실시예에 따른 CNN 모델의 트레이닝 방볍을 나타내는 흐름도이다. 도 2에 도시된 본 명세서의 실시예에 의해 제공되는 방법의 흐름은 이하의 단계를 포함한다.
단계 201에서, 트레이닝되는 CNN 모델의 초기 모델 파라미터가 획득되고, 여기서 초기 모델 파라미터는 각 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬과, 완전 연결 레이어의 초기 가중치 행렬 및 초기 바이어스 벡터를 포함한다.
구체적으로, CNN 모델의 트레이닝 프로세스는 트레이닝되는 CNN 모델의 모델 파라미터를 결정하는 프로세스이다. 모델 파리미터가 결정되면, 초기 모델 파라미터는 트레이닝되는 CNN 모델에 대해 초기화될 수 있다. 초기 모델 파라미터는 후속 트레이닝 프로세스에 의해 연속적으로 최적화된다. 그리고 최적화에 의해 획득된 최적 모델 파라미터가 트레이닝된 CNN 모델의 모델 파라미터로서 결정된다. 따라서 트레이닝되는 CNN 모델이 트레이닝 될 때, 트레이닝되는 CNN 모델의 초기 모델 파라미터가 우선 획득되어야한다.
트레이닝되는 CNN 모델이 일반적으로 적어도 2개의 컨볼루션 레이어 및 적어도 하나의 완전 연결 레이어를 포함하는 경우, 각 레벨의 컨볼루션 레이어는 복수의 컨볼루션 커널 및 복수의 바이어스 행렬을 포함하며, 각 레벨의 완전 연결 레이어는 복수의 가중치 행렬 및 복수의 바이어스 벡터를 포함한다. 따라서 획득된 모델 파라미터는 각 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널, 각 레벨의 컨볼루션 레이어의 초기 바이어스 행렬, 완전 연결 레이어의 초기 가중치 행렬 및 완전히 연결 레이어의 초기 바이어스 벡터를 포함한다.
트레이닝되는 CNN 모델의 컨볼루션 레이어의 개수 및 완전 연결 레이어의 개수는 본 명세서의 실시예에서 구체적으로 제한되지 않고, 구체적 구현에서의 필요에 따라 설정될 수 있다. 예를 들어, 도 3은 트레이닝되는 CNN 모델을 도시하는 개략도를 나타낸다. 도 3에 도시된 트레이닝되는 CNN 모델은 4개 레벨의 컨볼루션 레이어 및 2개 레벨의 완전 연결 레이어를 포함한다.
추가로, 각 레벨의 컨볼루션 레이어의 컨볼루션 커널의 개수 및 바이어스 행렬의 개수와 완전 연결 레이어의 각 레벨의 가중치 행렬 및 바이어스 벡터의 개수는 본 명세서의 실시예에서 구체적으로 제한되지 않는다. 이에 더하여, 각 컨볼루션 커널 및 바이어스 행렬의 차원과 각 가중치 행렬 및 각 바이어스 벡터의 차원 또한 본 명세서의 실시예에서 제한되지 않는다. 구체적인 구현에서, 각 레벨의 컨볼루션 레이어의 컨볼루션 커널 및 바이어스 행렬의 개수 및 차원과 완전 연결 레이어의 각 레벨의 가중치 행렬 및 바이어스 벡터의 개수 및 차원은 모두 경험적인 값으로 채용될 수 있다.
예를 들어, 제1 레벨의 컨볼루션 레이어는 5×5 크기의 컨볼루션 커널 C1을 96개,
Figure 112017063009189-pct00001
, 포함할 수 있고, 그리고 5×5 크기의 바이어스 행렬 B1을 96개,
Figure 112017063009189-pct00002
, 포함할 수 있다.
상술한 내용과 관련하여, 트레이닝되는 CNN 모델의 초기 모델 파라미터가 획득될 때, 초기 모델 파라미터의 엘리먼트의 각각의 값으로서, 지정 수치 값 범위로부터 값이 랜덤하게 선택될 수 있다. 예를 들어, 각각의 초기 컨볼루션 커널, 초기 가중치 행렬, 초기 바이어스 행렬 및 초기 바이어스 벡터의 각각의 엘리먼트에 대해, 랜덤 수가 [-r, r] 범위에서 선택될 수 있다. 여기서, r은 초기 모델 파라미터의 임계값이고, 이것은 경험적인 값일 수 있다. 예를 들어 r은 0.001이다.
단계 202에서, 복수의 트레이닝 이미지가 획득된다.
트레이닝 이미지의 분류는 트레이닝되는 CNN 모델의 인식의 타입에 관련된다. 예를 들어, 트레이닝되는 CNN 모델이 상이한 언어를 인식할 수 있는 모델이면, 트레이닝 이미지는 상이한 언어의 문자 또는 문자열을 포함하는 이미지 일 수 있다. 트레이닝되는 CNN 모델이 색을 인식하는 모델이면, 트레이닝 이미지는 상이한 색 등을 포함하는 이미지이다.
추가적으로, 글로벌 경제 환경의 계속적인 발전에 의해, 국가, 기업 및 개인의 초국가적인 의사소통 및 협동의 빈도가 크게 증가하였다. 이러한 경우, 외국의 레스토랑에서의 주문, 국제 컨퍼런스의 참석, 외국 웹사이트의 검색과 같이, 불가피하게 여러 언어를 사용하는 정보를 사용하거나 이해하는 것이 요구되는 다양한 상황을 개인은 일반적으로 마주할 수 있다. 이것은 여러 언어를 사용한 정보를 처리하고 이해하는 기술이 매우 중요해지고 긴급하게 필요해진다는 것을 의미한다. 구체적으로, 이러한 기술은 복잡한 비인공 장면으로부터 얻어지는 단어의 언어 분류의 자동 인식을 요구한다. 비인공 장면의 단어의 언어 분류의 인식은 매우 어려운 과제이다. 거기에는 몇몇 주요 문제점이 있다. 하나의 문제점은 비인공 장면의 단어 정보의 폰트, 색 및 레이아웃 방식이 일반적으로 거대하고, 그리고 단어의 배경은 더 복잡하며 더 많은 노이즈 정보를 포함한다는 점이다. 다른 문제점은 상이한 언어의 알파벳이 완전히 동일하거나 또는 매우 유사한 몇몇 문자를 포함한다는 점으로, 예를 들어 영어와 러시아어에는 동일한 형상의 몇몇 문자들이 있다. 따라서, 단어의 외양으로만 언어 분류를 인식하는 것은 어렵다. 마지막 문제점은 고정된 폭-높이 비율을 가진 사진을 위한 많은 분류기들이 비인공 장면의 전혀 일관성이 없는 폭-높이 비율을 가진 단어 사진들에 적용 불가능하다는 점이다.
상술한 내용과 관련하여, 비인공 장면의 상이한 언어의 문자를 포함하는 이미지를 인식할 수 있는 CNN 모델이 개시되고, 그리고 이 CNN 모델은 비인공 장면의 이미지에서 문자의 언어 분류의 인식을 빠르게 실현할 수 있다. 따라서, 본 명세서의 실시예에서, 트레이닝 이미지는 비인공 장면의 이미지일 수 있고, 그리고 비인공 장면의 이미지는 상이한 언어의 문자를 포함한다. 이러한 토대 위에, 트레이닝되는 CNN 모델은 언어 인식 분류기일 수 있다.
이에 더하여, 트레이닝 이미지의 크기는 본 명세서의 실시예에서 구체적으로 제한되지는 않고, 구체적인 구현에서 트레이닝 이미지의 분류를 참고하여 결정될 수 있다. 예를 들어, 비인공 장면의 상이한 언어의 문자를 포함하는 이미지는 일반적으로 수평 방향에서 큰 차이가 있고 수직 방향에서는 상대적으로 유사하다. 즉, 이러한 이미지의 특성은 수평 방향에서 일반적으로 반영된다. 따라서, 본 명세서의 실시예에서, 트레이닝 이미지 각각에 대해, 그 높이의 지정 값이 제한될 수 있는 반면 그 폭의 값은 제한되지 않는다.
구체적으로, 본 명세서의 실시예에서, 모든 트레이닝 이미지는 동일한 높이 및 폭을 가질 수 있고, 즉, 모든 트레이닝 이미지는 지정 높이 및 지정 폭을 갖는다. 이에 더하여, 모든 트레이닝 이미지는 동일한 높이를 가지나 상이한 폭을 가질 수도 있다. 예를 들어, 모든 트레이닝 이미지는 지정 높이를 가지나 상이한 폭을 가진다. 지정 높이는 제1 개수의 픽셀이고, 그리고 지정 폭은 제2 개수의 픽셀이다. 구체적으로, 제1 개수는 경험적 값이고, 예를 들어 제1 개수는 32일 수 있다. 제2 개수는 미리 설정된 범위 내에서 선택된 랜덤 수일 수 있다. 이에 더하여, 제2 개수의 값은 이미지의 분류에 연관될 수 있다. 예를 들어, 비인공 장면의 상이한 언어의 문자를 포함하는 이미지의 문자는 일반적으로 수평 방향으로 분포되어 있고, 따라서 이들의 폭은 일반적으로 높이보다 크며, 이에 기초하면, 제1 개수는 제2 개수보다 일반적으로 작다. 이 부분의 내용으로부터, 미리 결정된 범위는 48 부터 256일 수 있다.
트레이닝 이미지의 크기 분류와 관련하여, 복수의 트레이닝 이미지가 획득될 때, 이하의 2가지 방법이 제한 없이 사용된다.
제1 방법에서, 모든 트레이닝 이미지는 지정 높이 및 지정 폭을 갖는다.
이 방법에서, 복수의 초기 트레이닝 이미지는 우선 획득될 수 있고, 그리고 복수의 초기 트레이닝 이미지의 각각에 대해, 초기 트레이닝 이미지의 폭-높이 비율이 유지되며, 그리고 초기 트레이닝 이미지가 지정 높이를 가진 제1 이미지로 프로세싱되고; 그 후 제1 이미지는 지정 폭을 가진 제2 이미지로 프로세싱된다. 이때, 초기 트레이닝 이미지에 대응하고 지정 높이와 지정 폭을 가진 트레이닝 이미지가 획득될 수 있다. 모든 초기 트레이닝 이미지는 동일한 방식으로 프로세싱되고, 그 후 복수의 트레이닝 이미지가 획득될 수 있다.
예를 들어, 64 픽셀*120 픽셀의 크기를 가진 특정 초기 트레이닝 이미지에 대해, 지정 높이가 32 픽셀을 포함하는 경우, 초기 트레이닝 이미지는 32 픽셀*60 픽셀의 크기를 갖는 트레이닝 이미지를 획득하도록 프로세싱될 수 있다.
이러한 방법에서, 지정 폭을 가진 제2 이미지를 획득하기 위해 제1 이미지가 프로세싱 될 때, 제1 이미지의 폭은 지정 폭보다 클 수도 있고 그리고 제1 이미지의 폭은 지정 폭보다 작을 수도 있다. 2가지 경우에 대해, 지정 폭을 가진 이미지를 획득하기 위한 아래의 2가지 프로세싱 방법이 있을 수 있다.
제1 이미지의 폭이 지정 폭보다 작은 제1 경우, 제1 이미지의 폭이 지정 폭에 도달할 때까지, 제1 이미지의 좌우 측면은 지정된 그레이-스케일 값을 가진 픽셀로 균일하게 채워진다.
지정된 그레이-스케일 값으로 사용되는 구체적 수치는 필요에 따라 또는 경험에 의해 설정될 수 있다. 예를 들어 지정된 그레이-스케일 값은 0일 수 있다.
예를 들어, 지정 폭이 120 픽셀이고 특정 제1 이미지의 폭이 116 픽셀이면, 제1 이미지의 좌 측면은 지정된 그레이-스케일 값을 가진 2 픽셀로 채워질 수 있고, 그리고 제1 이미지의 우 측면은 지정된 그레이-스케일 값을 가진 2 픽셀로 채워질 수 있다.
제1 이미지의 폭이 지정 폭보다 큰 제2 경우, 제1 이미지의 좌우 측면은 제1 이미지의 폭이 지정 폭에 도달할 때까지 균일하게 절단될(cropped) 수 있다.
예를 들어, 지정 폭이 120 픽셀이고 특정 제1 이미지의 폭이 124 픽셀이면, 2 픽셀이 제1 이미지의 좌 측면으로부터 절단될 수 있고, 그리고 2 픽셀이 제1 이미지의 우 측면으로부터 절단될 수 있다.
CNN 모델이 이러한 방식으로 획득된 복수의 트레이닝 이미지를 사용하여 트레이닝될 때, 모든 트레이닝 이미지가 동일한 높이 및 폭을 갖는 것이 보장될 수 있다. 이러한 경우, 트레이닝되는 CNN 모델이 트레이닝 될 때, 복수의 프로세스는 컴퓨터에서 설정될 수 있고, 각각의 프로세스는 트레이닝 이미지를 프로세싱하도록 제어될 수 있고, 따라서 CNN 모델이 트레이닝되는 속도가 증가 될 수 있다.
제2 방식에서는, 모든 트레이닝 이미지는 지정 높이를 갖지만, 각각의 트레이닝 이미지의 폭은 제한되지 않는다.
이러한 방식에서, 복수의 초기 트레이닝 이미지는 우선 획득될 수 있고, 그리고 복수의 초기 트레이닝 이미지의 각각의 초기 트레이닝 이미지에 대해서, 초기 트레이닝 이미지의 폭-높이 비율이 유지되며, 초기 트레이닝 이미지가 지정 높이를 가진 이미지를 획득하기 위해 프로세싱되고, 그리고 지정 높이에 대응하는 폭이 초기 트레이닝 이미지의 폭으로서 결정된다. 모든 초기 트레이닝 이미지는 동일한 방식으로 프로세싱되고, 그 후 복수의 트레이닝 이미지가 획득될 수 있다.
예를 들어, 특정 초기 트레이닝 이미지에 대해, 지정 높이를 가진 이미지를 획득하기 위해 특정 초기 트레이닝 이미지가 프로세싱될 때, 지정 높이에 대응하는 폭이 120 픽셀이면, 이러한 방식에서 획득된 트레이닝 이미지의 높이가 지정된 높이이고, 폭은 120 필셀이다.
CNN 모델이 이러한 방식으로 획득된 복수의 트레이닝 이미지를 사용하여 트레이닝될 때, 트레이닝 이미지는 동일한 지정 높이를 갖으나 상이한 폭을 갖는다. 여기서, 트레이닝되는 CNN 모델이 트레이닝 될 때, 트레이닝된 CNN 모델은 상대적으로 더 높은 인식 정확도를 갖는게 보장될 수 있다.
트레이닝되는 CNN 모델이 복수의 획득된 트레이닝 이미지를 사용하여 구체적으로 트레이닝될 때, 제1 방식에서 획득된 복수의 트레이닝 이미지가 사용될 수 있고, 이에 의해 트레이닝된 CNN 모델의 빠른 습득을 구현할 수 있으며, 또는 제2 방식에서 획득된 복수의 트레이닝 이미지가 사용될 수 있고, 이에 의해 트레이닝된 CNN 모델이 상대적으로 높은 인식 정확도를 갖는 것을 보장할 수 있다. 이에 더하여, CNN 모델은 제1 방식 및 제2 방식 모두에서 획득된 트레이닝 이미지를 사용하여 또한 트레이닝될 수 있고, 이에 의해 CNN 모델의 트레이닝 속도를 증가시키고 동시에 트레이닝된 CNN 모델이 상대적으로 높은 인식 정확도를 갖는 것을 보장할 수 있다.
단계 203에서, 각 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬을 사용하여, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지를 획득하기 위해, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각에 컨볼루션 연산 및 최대 풀링 연산이 수행된다.
컨볼루션 연산 및 최대 풀링 연산에 의해, 이미지의 상이한 레벨의 특성이 보다 더 깊게 추출될 수 있다. 따라서, 트레이닝되는 CNN 모델이 트레이닝될 때, 트레이닝 이미지의 특성을 획득하기 위해, 컨볼루션 연산 및 최대 풀링 연산이 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지에 수행될 수 있다.
컨볼루션 연산이 수행될 때, 각 레벨의 컨볼루션 레이어의 컨볼루션 커널 및 바이어스 행렬을 사용해야 한다. 최대 풀링 연산이 수행될 때, 컨볼루션에 의해 획들된 컨볼루션 이미지를 참조한다. 하나의 컨볼루션 이미지는 상이한 컨볼루션 레이어 각각에서의 컨볼루션 연산에 의해 획들될 수 있고, 그리고 하나의 특성 이미지는 각 컨볼루션 이미지에 대한 최대 풀링 연산에 의해 획득될 수 있다. 따라서, 본 명세서의 실시예에서, 각 레벨의 컨볼루션 레이어에서의 컨볼루션 연산에 의해 획득되는 이미지는 각 레벨의 컨볼루션 레이어의 컨볼루션 이미지로 지칭되고, 각 레벨의 컨볼루션 레이어의 컨볼루션 이미지에 대한 최대 풀링 연산으로 획득된 이미지는 각 레벨의 컨볼루션 레이어의 제1 특성 이미지로 지칭된다.
상술한 내용과 관련하여, 각 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬을 사용하여, 각 레벨의 컨볼루션 레이어의 각각의 트레이닝 이미지의 제1 특성 이미지를 획득하기 위해, 각각의 트레이닝 이미지에 컨볼루션 연산 및 최대 풀링 연산을 수행하는 단계는 이하의 단계 2031 내지 단계 2033을 포함하지만, 이에 한정되지는 않는다.
단계 2031에서, 트레이닝 이미지 각각에 대해, 이전 레벨의 컨볼루션 레이어에서의 제1 특성 이미지를 현재 컨볼루션 레이어에 입력하고, 그리고 현재 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬을 사용하여, 현재 컨볼루션 레이어의 컨볼루션 이미지를 획득하기 위해 이전 레벨의 컨볼루션 레이어에서의 제1 특성 이미지에 컨볼루션 연산이 수행된다. 현재 컨볼루션 레이어가 제1 레벨의 컨볼루션 레이어인 경우, 이전 레벨의 컨볼루션 레이어에서의 제1 특성 이미지는 트레이닝 이미지이다.
구체적으로, 트레이닝 이미지 각각에 대해, 만약 현재 컨볼루션 레이어가 제1 레벨의 컨볼루션 레이어라면, 트레이닝 이미지는 제1 레벨의 컨볼루션 레이어에 우선 전송될 수 있고, 그리고 제1 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬을 사용하여 제1 레벨의 컨볼루션 레이어의 컨볼루션 이미지를 획득하기 위해 트레이닝 이미지에 컨볼루션 연산이 수행된다. 이에 더해, 제1 레벨의 컨볼루션 레이어의 제1 특성 이미지를 획득하기 위해 제1 레벨의 컨볼루션 레이어의 컨볼루션 이미지에 최대 풀링 연산이 수행된다. 제1 레벨의 컨볼루션 레이어의 제1 특성 이미지는 제2 레벨의 컨볼루션 레이어에 전송되고, 그리고 제2 레벨의 컨볼루션 레이어에서 컨볼루션 연산 및 최대 풀링 연산이 수행된다.
현재 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬을 사용하여 이전 레벨의 컨볼루션 레이어의 제1 특성 이미지에 컨볼루션 연산이 수행되면, 컨볼루션 연산은 현재 컨볼루션 레이어의 각각의 컨볼루션 커널을 사용하는 것에 의해 이전 레벨의 컨볼루션 레이어의 제1 특성 이미지에 수행될 수 있고, 그리고 이전 레벨의 컨볼루션 레이어의 제1 특성 이미지에서의 현재 컨볼루션 레이어의 각각의 컨볼루션 커널의 슬라이딩 스텝 길이(sliding step length)는 1이다.
구체적으로, 만약 현재 컨볼루션 레이어가 예를 들어 제1 레벨의 컨볼루션 레이어라면, 제1 레벨의 컨볼루션 레이어의 특정 컨볼루션 커널을 사용하는 것에 의해 컨볼루션 연산이 트레이닝 이미지에 수행될 때, 이하의 공식
Figure 112017063009189-pct00003
이 사용될 수 있고, 여기서 D1 i는 제1 레벨의 컨볼루션 레이어의 컨볼루션 커널의 i번째 컨볼루션 커널 C1 i를 사용하여 트레이닝 이미지 I에 컨볼루션 연산을 수행하여 획득되는, 제1 레벨의 컨볼루션 레이어의 컨볼루션 이미지를 나타내고, 그리고 B1 i는 제1 레벨의 컨볼루션 레이어의 바이어스 행렬 B1의 i번째 바이어스 행렬을 나타낸다.
추가적으로, 컨볼루션 연산의 특성을 고려하면, 컨볼루션 연산이 수행되는 경우, 컨볼루션 연산은 이미지의 가장자리의 픽셀에는 수행되지 않을 수 있고, 이에 의해 컨볼루션 연산에 의해 획득되는 컨볼루션 이미지의 크기는 변경될 수 있다. 이러한 경우를 회피하기 위해, 각 레벨의 컨볼루션 레이어에 컨볼루션 연산을 수행하기 전에. 컨볼루션 연산이 수행될 이미지에 픽셀 채우기가 또한 수행될 수 있고, 따라서 컨볼루션 연산이 수행될 이미지의 크기가 컨볼루션 연산이 수행된 후에도 변경되지 않고 유지될 수 있다.
구체적으로, 컨볼루션 연산이 수행될 이미지가 채워질 때, 컨볼루션 연산이 수행될 이미지의 주변이 "0"과 같은 미리 설정된 그레이-스케일 값을 사용하여 채워질 수 있다. 채움이 수행되는 간격은 컨볼루션 커널의 차원과 연관된다. 컨볼루션 커널의 차원이 n이면, 채움이 수행되는 스텝 길이는 (n-1)/2이다. 예를 들어, 컨볼루션 커널이 3*3이면, 채움이 수행되는 스텝 길이는 1 픽셀이다.
이 단계에서 컨볼루션 연산이 수행되는 이미지는 각 레벨의 컨볼루션 레이어에 입력되는 이미지이다. 예를 들어, 현재 컨볼루션 레이어가 제1 레벨의 컨볼루션 레이어라면, 컨볼루션 연산이 수행되는 이미지는 트레이닝 이미지이다. 현재 컨볼루션 레이어가 제1 레벨의 컨볼루션 레이어가 아니라면, 컨볼루션 연산이 수행되는 이미지는 이전 레벨의 컨볼루션 레이어의 제1 특성 이미지이다.
단계 2032에서, 현재 컨볼루션 레이어의 트레이닝 이미지의 제1 특성 이미지를 획득하기 위해 현재 컨볼루션 레이어의 컨볼루션 이미지에 최대 풀링 연산이 수행된다. 현재 컨볼루션 레이어의 제1 특성 이미지가 그리고 나서 다음 레벨의 컨볼루션 레이어에 전송된다.
구체적으로, 현재 컨볼루션 레이어의 컨볼루션 이미지에 최대 풀링 연산이 수행될 때, 3×3 슬라이딩 박스와 같은 지정 크기를 가진 슬라이딩 박스가 현재 컨볼루션 레이어의 각각의 컨볼루션 이미지를 좌로부터 우로 위에서부터 아래로 슬라이딩하는데 사용될 수 있고, 슬라이딩 스텝 길이는 미리 설정된 개수의 픽셀로서, 예를 들어 미리 설정된 개수의 픽셀은 2 픽셀이다. 슬라이딩 박스가 각각의 컨볼루션 이미지에서 슬라이딩될 때, 슬라이딩 박스에 포함된 모든 엘리먼트 중 0보다 작은 엘리먼트는 0으로 설정된다. 그리고, 모든 엘리먼트 중 최대의 엘리먼트가 추출되고, 그리고 슬라이딩 시퀀스에 따라서 새로운 이미지가 재구성된다. 연산의 종료 후에, 현재 컨볼루션 레이어의 제1 특성 이미지가 획득된다.
현재 컨볼루션 레이어의 제1 특성 이미지의 높이 및 폭은 최대 풀링 연산의 특성에 따라서 계산될 수 있고, 그리고 이하의 공식
Figure 112017063009189-pct00004
에 의해 표현될 수 있으며, 여기서 floor는 올림과 버림 함수를 나타낸다. 예를 들어 floor(2.5)=2이다. w는 현재 컨볼루션 레이어의 제1 특성 이미지의 길이 또는 폭을 나타내고, m은 슬라이딩 박스의 길이 또는 폭에 포함된 픽셀의 개수이고, l은 슬라이딩 스텝 길이이고, 그리고 wo는 현재 컨볼루션 레이어의 컨볼루션 이미지의 길이 또는 폭이다. 예를 들어, 현재 컨볼루션 레이어의 컨볼루션 이미지의 크기가 32×w0이고, 슬라이딩 박스가 3*3이고, 슬라이딩 스텝 길이가 2이면, 현재 컨볼루션 레이어의, 최대 풀링 연산에 의해 획득된 제1 특성 이미지의 크기는 15×w1,
Figure 112017063009189-pct00005
이다.
단계 2033에서, 마지막 레벨의 컨볼루션 레이어에서 제1 특성 이미지를 획득하기 위해 마지막 레벨의 컨볼루션 레이어에서 컨볼루션 연산 및 최대 풀링 연산이 수행될 때까지, 다음 레벨의 컨볼루션 레이어에서 컨볼루션 연산 및 최대 풀링 연산이 현재 컨볼루션 레이어의 제1 특성 이미지에 수행된다.
각 레벨의 컨볼루션 레이어에 컨볼루션 연산 및 최대 풀링 연산을 수행하는 원칙은 단계 2031 및 단계 2032의 원칙과 일치한다. 자세한 내용은 단계 2031 및 단계 2032의 내용을 참고하고, 자세한 설명이 여기서 상술되지는 않을 것이다.
단계 204에서, 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하기 위해, 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에 수평 풀링 연산이 수행된다.
수평 풀링 연산이 수행될 때, 수평 풀링 연산은 모든 컨볼루션 레이어에서 제1 특성 이미지에 수행될 수 있고, 그리고 수평 풀링 연산은 또한 몇몇의 컨볼루션 레이어에서 제1 특성 이미지에 수행될 수도 있다. 예를 들어 트레이닝되는 CNN 모델이 4개의 레벨의 컨볼루션 레이어를 포함하면, 수평 풀링 연산은 제2 레벨의 컨볼루션 레이어, 제3 레벨의 컨볼루션 레이어 및 제4 레벨의 컨볼루션 레이어에서만 수행될 수 있다.
구체적으로, 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하기 위해, 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에 수평 풀링 연산이 수행되는 단계는 이하의 단계 2041 내지 단계 2043을 포함하지만 이에 한정되지는 않는다.
단계 2041에서, 각 레벨의 컨볼루션 레이어에서 각각의 트레이닝 이미지의 제1 특성 이미지에 대해, 컨볼루션 레이어의 제1 특성 이미지의 각각의 이미지의 각각의 열(row)의 엘리먼트 중 최대 값이 추출된다. 제1 특성 이미지는 미리 설정된 수의 이미지들을 포함하고, 미리 설정된 수는 컨볼루션 레이어의 컨볼루션 커널의 수 및 바이어스 행렬의 수와 동일하다.
예를 들어, 수평 풀링 연산이 제2 레벨의 컨볼루션 레이어에서 제1 특성 이미지에 수행될 때, 제2 레벨의 컨볼루션 레이어의 제1 특성 이미지가 R2라면, 제2 레벨의 컨볼루션 레이어에서 제2 특성 이미지 H1를 획득하기 위해 R2에 수평 풀링 연산을 수행하는 프로세스는 아래와 같다:
R2의 i번째 특성 이미지 R2 i가 높이 및 폭으로 각각 7 및 w2를 갖는 이미지라면, R2 i의 각각의 열의 모든 엘리먼트의 최대값이 추출된다.
단계 2042에서, 각각의 이미지의 픽셀의 배열에 따라서, 각각의 이미지의 모든 열로부터 추출된 최대 값들이 1차원 벡터로 배열된다.
단계 2041의 예시와 결합하면, 각 이미지의 픽셀의 위-아래(top-down) 배열에 따라서, 각각의 열의 최대 값들이 길이 7의 1차원 벡터로 배열된다. 도 4는 제2 레벨의 컨볼루션 레이어에서 제1 특성 이미지의 특정 이미지에 수평 풀링 연산이 수행되는 프로세스를 도시한 개략도이다.
단계 2043에서, 컨볼루션 레이어의 제2 특성 이미지를 획득하기 위해, 컨볼루션 레이어의 제1 특성 이미지의 모든 이미지들의 1차원 벡터가 결합된다.
단계 2041의 예시와 결합하면, R2가 256개 이미지를 포함하면, R2의 256개 이미지의 전부에 상술한 연산이 반복적으로 수행된 후, 길이 7의 256개의 1차원 벡터가 획득된다. 각각의 1차원 벡터는 열벡터로 간주되고, 1차원 벡터는 높이 및 폭이 각각 7 및 256인 이미지 H1로 순서대로 결합된다. H1는 제2 레벨의 컨볼루션 레이어에서, R2에 대한 수평 풀링 연산에 의해 획득된 제2 특성 이미지이다.
도 3에 도시된 트레이닝되는 CNN 모델과 결합하면, 트레이닝되는 CNN 모델은 4개의 레벨의 컨볼루션 레이어 및 2개의 완전 연결 레이어를 포함하고, 각 레벨의 컨볼루션 레이어는 컨볼루션 커널 및 바이어스 행렬을 동일한 개수 또는 상이한 개수로 포함한다. 이에 기초하면, 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하기 위해, 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에 수평 풀링 연산이 수행될 때, 수평 풀링 연산은, 제2 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하고, 제3 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하고, 제4 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하기 위해, 제2 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에, 제3 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에, 그리고 제4 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에 개별적으로 수행된다.
단계 205에서, 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지에 따라서 트레이닝 이미지 각각의 특성 벡터가 결정된다.
구체적으로, 트레이닝 이미지 각각에 대해, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지의 제2 특성 이미지를 캐스케이딩(cacading)하고 그리고 각 레벨의 컨볼루션 레이어에서 제2 특성 이미지의 모든 열의 엘리먼트를 처음부터 끝까지 연결하는 것에 의해 트레이닝 이미지의 특성 벡터가 획득된다.
도 3에 도시된 트레이닝되는 CNN 모델과 결합하면, 트레이닝 이미지 각각에 대해, 제2 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지, 제3 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지, 및 제4 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지에 따라서 트레이닝 이미지의 특성 벡터가 결정될 수 있다.
구체적으로, 특정 트레이닝 이미지에 대해, 제2 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지, 제3 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지, 및 제4 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지가 캐스케이드될 수 있고, 그리고 제2 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지, 제3 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지, 및 제4 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지에서의 모든 열의 엘리먼트가 처음부터 끝까지 연결되어 트레이닝 이미지의 특성 벡터가 획득될 수 있다.
예를 들어, 제2 레벨의 컨볼루션 레이어에서 트레이닝 이미지의 제2 특성 이미지가 H1이고, 제3 레벨의 컨볼루션 레이어에서의 제2 특성 이미지가 H2이고, 제4 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지가 H3인 경우, H1의 모든 열에서의 엘리먼트가 처음부터 끝까지 제1의 1차원 벡터를 획득하기 위해 연결되고, H2의 모든 열에서의 엘리먼트가 처음부터 끝까지 제2의 1차원 벡터를 획득하기 위해 연결되고, H3의 모든 열에서의 엘리먼트가 처음부터 끝까지 제3의 1차원 벡터를 획득하기 위해 연결된다. 제1의 1차원 벡터, 제2의 1차원 벡터, 및 제3의 1차원 벡터는, 트레이닝 벡터의 특성 벡터를 획득하기 위해 추가적으로 처음부터 끝까지 연결된다.
단계 206에서, 초기 가중치 행렬 및 초기 바이어스 벡터에 따라서 트레이닝 이미지 각각의 분류 확률 벡터를 획득하기 위해 각각의 특성 벡터가 프로세싱된다.
구체적으로 트레이닝 이미지의 특성 벡터가 완전 연결 레이어에 입력될 수 있고, 특성 벡터는 완전 연결 레이어의 가중치 행렬로 곱해지고, 그리고 곱셈의 결과가 완전 연결 레이어의 바이어스 벡터에 가산되고, 이에 의해 트레이닝 이미지의 분류 확률 벡터가 획득된다.
분류 확률 벡터는 1차원 벡터이고, 분류 확률 벡터의 엘리먼트의 개수는 트레이닝되는 CNN 모델에 의해 인식될 수 있는 이미지 분류의 개수에 연관된다. 예를 들어 이미지의 10개의 분류가 트레이닝 이미지를 사용하여 인식될 수 있으면, 분류 확률 벡터는 10개의 엘리먼트를 포함한다. 엘리먼트의 각각은 트레이닝 이미지가 특정 분류에 속할 확률을 나타낸다.
단계 207에서, 트레이닝 이미지 각각의 초기 분류 및 분류 확률 벡터에 따라서 분류 에러가 계산된다.
트레이닝 이미지 각각의 초기 분류 및 분류 확률 벡터에 따라서 분류 에러가 계산되는 단계는 이하의 단계 2701 내지 단계 2073을 포함하지만 이에 한정되지는 않는다.
단계 2071에서 트레이닝 이미지 각각의 초기 분류가 획득된다.
트레이닝 이미지 각각에 대해, 그 초기 분류가 알려져 있다. 초기 분류는 수동으로 추출되고 기록될 수 있다. 이에 기초하여, 트레이닝 이미지 각각의 초기 분류는 기록된 데이터에 따라서 직접 획득될 수 있다.
단계 2072에서, 공식 Loss = -lnylabel 을 사용하여 트레이닝 이미지 각각의 초기 분류 및 분류 확률 벡터에 따라서 트레이닝 이미지 각각의 분류 에러가 계산되고, 여기서 Loss는 트레이닝 이미지 각각의 분류 에러를 나타내고, label은 트레이닝 이미지 각각의 초기 분류를 나타내며, yi 는 트레이닝 이미지 각각의 분류 확률 벡터의 엘리먼트를 나타내고, ylabel 은 초기 분류에 대응하는 분류 확률을 나타낸다. 예를 들어, 초기 트레이닝 이미지가 제1 분류의 이미지이면, ylabel 은 y1, 즉 분류 확률 벡터의 제1 엘리먼트이다.
단계 2073에서, 모든 트레이닝 이미지의 분류 에러의 평균이 계산되고, 모든 트레이닝 이미지의 분류 에러의 평균이 분류 에러로서 결정된다.
물론, 분류 에러를 계산하는 프로세스는, 예로서 모든 트레이닝 이미지의 분류 에러의 평균을 취하는 것으로 설명되었다. 구체적인 구현에서, 분류 에러가 계산될 때, 다른 방법이 또한 사용될 수 있고, 본 명세서의 실시예에 구체적으로 한정되는 것은 아니다.
단계 208에서, 분류 에러에 기초하여 트레이닝되는 CNN 모델의 모델 파라미터가 조정된다.
구체적으로, 트레이닝되는 CNN 모델의 모델 파라미터가 조정될 때, 확률 기울기 하강(Stochastic Gradient Descent: SGD) 알고리즘이 트레이닝되는 CNN 모델에 분류 에러를 역으로 다시 전송하기 위해 제한 없이 사용될 수 있고, 이에 의해 트레이닝되는 CNN의 모델 파라미터의 모든 엘리먼트가 업데이트된다.
SGD 알고리즘을 사용하여, 트레이닝되는 CNN의 모델 파라미터의 모든 엘리먼트를 업데이트하기 위해, 트레이닝되는 CNN 모델에 분류 에러를 역으로 다시 전송하는 구체적인 구현 프로세스는 본 명세서의 실시예에서 구체적으로 한정되지는 않는다.
단계 209에서, 조정된 모델 파라미터 및 복수의 트레이닝 이미지에 기초하여, 반복의 횟수가 미리 결정된 수에 도달할 때까지, 모델 파라미터의 조정 프로세스가 계속된다.
구체적으로, 반복 회차의 수가, 즉 반복의 횟수가 미리 설정된 수에 도달할 때까지, 단계 203 내지 단계 208이 단계 202에서 획득된 복수의 트레이닝 이미지를 사용하여 반복되고 조정된 모델 파라미터가 단계 208에서 획득된다.
미리 설정된 수의 수치값의 구체적 범위는 본 명세서의 실시예에서 구체적으로 한정되지 않는다, 트레이닝되는 CNN 모델을 상대적으로 더욱 정확하게 하기 위해, 미리 설정된 값은 상대적으로 더 클 수 있다. 구체적인 구현에서, 미리 설정된 수는 경험적인 값일 수 있고, 예를 들어 300,000이다.
단계 201에서, 반복의 횟수가 미리 결정된 수에 도달할 때 획득되는 모델 파라미터를 트레이닝된 CNN 모델의 모델 파라미터로서 결정한다.
예를 들어 미리 설정된 수가 300,000이면, 반복의 횟수가 300,000에 도달할 때 획득된 모델 파라미터가 트레이닝된 CNN 모델의 모델 파라미터로서 결정된다.
단계 211에서, 인식되는 이미지가 트레이닝된 CNN 모델에 입력되고, 인식되는 이미지의 분류 확률 벡터가 계산되며, 그리고 분류 확률 벡터의 엘리먼트 중, 거의 1에 근접하는 엘리먼트에 대응하는 분류가 인식되는 이미지의 분류로서 결정된다.
구체적으로, 분류 확률 벡터가 10개의 엘리먼트를 포함하는 경우, 각각의 엘리먼트는 분류에 대응하고, 그리고 분류 확률 벡터의 제2 엘리먼트가 거의 1에 근접하면, 인식되는 이미지는 제2 분류에 속한다.
본 명세서의 실시예 의해 제공되는 방법에 따르면, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지에 컨볼루션 연산 및 최대 풀링 연산이 수행된 후, 최대 풀링 연산에 의해 획득되는 특성 이미지에 수평 풀링 연산이 추가로 수행된다. 수평 풀링 연산 동안, 특성 이미지의 수평 방향에서의 특성을 식별하는 특성 이미지가 특성 이미지로부터 추가로 추출될 수 있고, 이는 트레이닝된 CNN 모델이 이미지 분류 식별 동안 인식되는 이미지의 수평 방향에서의 크기 제한을 깰 수 있게 해주고 임의의 크기를 가진 인식되는 이미지를 인식할 수 있게 해준다. 이에 의해 트레이닝된 CNN 모델의 이미지 인식 적용 범위가 상대적으로 더 넓어진다.
도 1 또는 도 2에 대응하는 실시예의 내용과 도 3에 도시된 트레이닝되는 모델을 나타내는 개략도를 참고하여, 본 명세서의 실시예에 의해 제공되는 방법이, 트레이닝되는 CNN 모델이 4개의 레벨의 컨볼루션 레이어 및 2개의 완전 연결 레이어를 포함하는 경우를 본 명세서의 실시예의 예시로 하여 설명된다. 이에 더하여, 본 명세서의 실시예어서, 제2 레벨의 컨볼루션 레이어의 제1 특성 이미지, 제3 레벨의 컨볼루션 레이어의 제1 특성 이미지 및 제4 레벨의 컨볼루션 레이어의 제1 특성 이미지에 수행되 수평 풀링 연산이 설명된다. 도 5에 도시된 바와 같이, 본 명세서의 실시예에서 제공되는 방법의 흐름은 이하의 단계를 포함한다.
단계 501에서, 트레이닝되는 CNN 모델의 초기 모델 파라미터가 획득되고, 여기서 초기 모델 파라미터는 제1 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬, 제2 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬, 제3 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬. 제4 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬, 제1 레벨의 완전 연결 레이어의 초기 가중치 행렬 및 초기 바이어스 벡터, 그리고 제2 레벨의 완전 연결 레이어의 초기 가중치 행렬 및 초기 바이어스 벡터를 포함한다.
각 레벨의 컨볼루션 레이어는 컨볼루션 커널 및 바이어스 행렬을 동일한 개수 또는 상이한 개수로 포함할 수 있고, 그리고 각 레벨의 완전 연결 레이어는 가중치 행렬 및 바이어스 벡터를 동일한 개수 또는 상이한 개수로 포함할 수 있다. 각 레벨의 컨볼루션 레이어의 컨볼루션 커널 및 바이어스 행렬의 개수와 각 레벨의 완전 연결 레이어의 가중치 행렬 및 바이어스 벡터의 개수는 본 명세서의 실시예에서 구체적으로 제한되지는 않는다. 이에 더하여, 각 컨볼루션 커널 및 바이어스 행렬의 차원과 각 가중치 행렬 및 각 바이어스 벡터의 차원 또한 본 명세서의 실시예에서 구체적으로 제한되지는 않는다. 구체적인 구현에서, 각 레벨의 컨볼루션 레이어의 컨볼루션 커널 및 바이어스 행렬의 개수 및 차원과 완전 연결 레이어의 각 레벨의 가중치 행렬 및 바이어스 벡터의 개수 및 차원은 경험적인 값으로 채용될 수 있다.
이에 더하여, 본 명세서의 실시예에서, 초기 모델 파라미터의 각 레벨의 컨볼루션 레이어의 컨볼루션 커널, 바이어스 행렬, 가중치 행렬 및 바이어스 벡터는 초기 컨볼루션 커널, 초기 바이어스 행렬, 초기 가중치 행렬 및 초기 바이어스 벡터로 지칭된다. 따라서 트레이닝되는 CNN 모델이 트레이닝될 때, 각 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널, 각 레벨의 컨볼루션 레이어의 초기 바이어스 행렬, 완전 연결 레이어의 초기 가중치 행렬 및 완전 연결 레이어의 초기 바이어스 벡터가 획득된다.
본 명세서의 실시예에 관한 설명을 용이하게 하기 위해, 본 명세서에의 실시예에 의해 제공되는 방법이, 제1 레벨의 컨볼루션 레이어가 5×5 크기의 컨볼루션 커널 C1을 96개,
Figure 112017063009189-pct00006
, 포함하고 5×5 크기의 바이어스 행렬 B1을 96개,
Figure 112017063009189-pct00007
, 포함하며, 제2 레벨의 컨볼루션 레이어가 5×5 크기의 컨볼루션 커널 C2을 256개,
Figure 112017063009189-pct00008
, 포함하고 5×5 크기의 바이어스 행렬 B2을 256개,
Figure 112017063009189-pct00009
, 포함하며, 제3 레벨의 컨볼루션 레이어가 3×3 크기의 컨볼루션 커널 C3을 384개,
Figure 112017063009189-pct00010
, 포함하고 3×3 크기의 바이어스 행렬 B3을 384개,
Figure 112017063009189-pct00011
, 포함하며, 제4 레벨의 컨볼루션 레이어가 3×3 크기의 컨볼루션 커널 C4을 512개,
Figure 112017063009189-pct00012
, 포함하고 3×3 크기의 바이어스 행렬 B34을 512개,
Figure 112017063009189-pct00013
, 포함하며, 제1 레벨의 완전 연결 레이어가 3,456×1,024 크기의 가중치 행렬 W1을 포함하고 길이 1,024의 바이어스 벡터 B5를 포함하며, 그리고 제2 레벨의 완전 연결 레이어가 1,024×10 크기의 가중치 행렬 W2을 포함하고 길이 10의 바이어스 벡터 B6를 포함하는 경우를 예시로 하여 설명된다.
트레이닝되는 CNN 모델의 초기 모델 파라미터가 획득될 때, 초기 모델 파라미터의 엘리먼트의 각각의 값으로서, 지정 수치값 범위로부터 값이 랜덤하게 선택될 수 있다. 예를 들어, 각각의 초기 컨볼루션 커널, 초기 가중치 행렬, 초기 바이어스 행렬 및 초기 바이어스 벡터의 각각의 엘리먼트에 대해, 랜덤 수가 [-r, r] 범위에서 선택될 수 있다. 여기서, r은 초기 모델 파라미터의 임계값이고, 이것은 경험적인 값일 수 있다. 예를 들어 r은 0.001이다.
단계 502에서, 트레이닝 이미지 I가 획득되고, 트레이닝 이미지 I는 지정 높이를 가진다.
트레이닝 이미지 I는 복수의 트레이닝 이미지 중 하나의 트레이닝 이미지이다. 설명을 용이하게 하기 위해, 트레이닝되는 CNN 모델의 트레이닝 프로세스가, 트레이닝 이미지 I를 프로세싱하는 것을 본 명세서의 후속적인 구현의 예시로서 하여 설명된다.
이에 더하여, 트레이닝 이미지 I는 지정 높이 및 지정 폭을 갖는다. 구체적으로, 지정 높이는 제1 개수의 픽셀이고, 그리고 지정 폭은 제2 개수의 픽셀이다. 구체적으로, 제1 개수는 경험적 값이고, 예를 들어 제1 개수는 32일 수 있다. 제2 개수는 미리 설정된 범위 내에서 선택된 랜덤 수일 수 있고, 미리 설정된 범위는 48 내지 256이다. 설명을 용이하게 하기 위해, 트레이닝 이미지의 크기가 본 명세서의 이하의 실시예에서 예를 들어 32*wo이고, 32는 제1 개수이고 wo는 제2 개수이다.
단계 503에서, 제1 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬을 사용하여, 제1 레벨의 컨볼루션 레이어에서 트레이닝 이미지 I의 제1 특성 이미지 R1을 획득하기 위해, 제1 레벨의 컨볼루션 레이어에서 트레이닝 이미지 컨볼루션 연산 및 최대 풀링 연산이 수행된다.
제1 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬을 사용하여, 제1 레벨의 컨볼루션 레이어에서 트레이닝 이미지 I의 제1 특성 이미지 R1을 획득하기 위해, 트레이닝 이미지 컨볼루션 연산 및 최대 풀링 연산을 수행하는 단계는 단계 502에 각각의 초기 모델 파라미터를 참조하여 이하에서 구체적으로 설명된다. 구체적으로 제1 레벨의 컨볼루션 레이에어서 트레이닝 이미지 I의 제1 특성 이미지 R1을 획득하는 프로세스는 아래와 같이 구현된다.
단계 5031에서, 트레이닝 이미지 I는 채워진 트레이닝 이미지 Itr을 획득하기 위해 채워진다.
이 단계는 선택적인 단계이다. 이 단계에 의해, 제1 레벨의 컨볼루션 레이어에서의 컨볼루션 연산에 의해 획득되는 제1 레벨의 컨볼루션 레이어의 컨볼루션 이미지는 트레이닝 이미지 I와 동일한 크기를 갖는 것이 보장될 수 있다. 채움의 프로세싱은 단계 203에 설명되어 있고, 단계 302의 내용을 구체적으로 참고할 수 있으며 여기서 다시 상세히 설명되지는 않는다.
예를 들어, 트레이닝 이미지 I의 크기가 32×wo이고, 트레이닝 이미지 I의 주변이 엘리먼트 "0"으로 균일하게 채워질 수 있고, 여기서 채움 스텝 길이가 2이면, 높이 및 폭이 각각 36 픽셀 및 wo+4 픽셀인 트레이닝 이미지 Itr가 획득된다.
단계 5032에서, 제1 레벨의 컨볼루션 레이어의 컨볼루션 커널과 바이어스 행렬을 사용하여, 제1 레벨의 컨볼루션 레이어의 컨볼루션 이미지 D1을 획득하기 위해, 제1 레벨의 컨볼루션 레이어에서 채워진 트레이닝 이미지 Itr에 컨볼루션 연산이 수행된다.
구체적으로, 단계 502와 결합하여, C1의 각각의 컨볼루션 커널을 사용하여 컨볼루션 연산이 채워진 트레이닝 이미지 Itr에 수행될 수 있고, 채워진 트레이닝 이미지 Itr 상의 각 컨볼루션 커널의 슬라이딩 스텝 길이는 1이고, 즉
Figure 112017063009189-pct00014
이고, 여기서 D1 i는 제1 레벨의 컨볼루션 레이어의 컨볼루션 커널의 i번째 컨볼루션 커널 C1 i를 사용하여 채워진 트레이닝 이미지 Itr에 컨볼루션 연산을 수행하여 획득되는, 제1 레벨의 컨볼루션 레이어의 컨볼루션 이미지를 나타내고, 그리고 B1 i는 제1 레벨의 컨볼루션 레이어의 바이어스 행렬 B1의 i번째 바이어스 행렬을 나타낸다. 이미지에 대한 컨볼루션 연산의 특성에 따라서, 제1 레벨의 컨볼루션 레이어의 컨볼루션 이미지
Figure 112017063009189-pct00015
가 획득될 수 있고, 여기서 D1 i의 크기는 32×wo이다.
단계 5033에서, 제1 레벨의 컨볼루션 레이어에서 제1 특성 이미지 R1을 획득하기 위해 제1 레벨의 컨볼루션 레이어의 컨볼루션 이미지 D1에 최대 풀링 연산이 수행된다.
최대 풀링 연산의 구체적인 내용은 단계 203에 상세하게 설명되어 있고, 단계 203의 내용이 구체적으로 참조될 수 있으며 여기서 상세하게 설명되지는 않는다.
예를 들어, 단계 502의 예시와 결합하여, 3×3 슬라이딩 박스가 제1 레벨의 컨볼루션 레이어의 컨볼루션 이미지 D1를 좌로부터 우로 위에서부터 아래로 슬라이딩하는데 사용될 수 있고, 슬라이딩 스텝 길이는 2이다. 슬라이딩 박스가 각각의 컨볼루션 이미지에서 슬라이딩될 때, 슬라이딩 박스의 9개의 엘리먼트 중 0보다 작은 엘리먼트는 0으로 설정되고, 9개의 엘리먼트 중 최대의 엘리먼트가 추출되고, 그리고 슬라이딩 시퀀스에 따라서 새로운 이미지가 재구성된다. 연산의 종료 후에, 제1 레벨의 컨볼루션 레이어의 제1 특성 이미지 R1,
Figure 112017063009189-pct00016
,이 획득된다. 최대 풀링 연산의 특성에 따르면, R1의 크기는 15×w1이고, 여기서
Figure 112017063009189-pct00017
이고, floor는 올림과 버림 함수를 나타낸다. 예를 들어 floor(2.5)=2이다. 이에 더하여 공식에서 분자의 "3"은 슬라이딩 박스의 차원의 크기를 나타내고, 분모의 "2"는 슬라이딩 스텝 길이를 나타낸다.
여기서 3×3은 오직 예시이고, 구체적인 구현에서 슬라이딩 박스의 크기는 또한 다른 수치 값으로 될 수 있음이 주의되어야 한다. 슬라이딩 박스의 크기는 본 명세서의 실시예에서 한정되지는 않는다.
단계 504에서, 제2 레벨의 컨볼루션 레이어의 컨볼루션 커널 및 바이어스 행렬을 사용하여, 제2 레벨의 컨볼루션 레이어의 제1 특성 이미지 R2를 획득하기 위해, 제2 레벨의 컨볼루션 레이어에서, 제1 레벨의 컨볼루션 레이어의 제1 특성 이미지 R1에 컨볼루션 연산 및 최대 풀링 연산이 수행된다.
제2 레벨의 컨볼루션 레이어의 컨볼루션 커널 및 바이어스 행렬을 사용하여, 제2 레벨의 컨볼루션 레이어에서, 제1 레벨의 컨볼루션 레이어의 제1 특성 이미지 R1에 컨볼루션 연산 및 최대 풀링 연산이 수행되는 단계는 각각의 초기 모델 파라미터를 참조하여 이하에서 구체적으로 설명될 것이다. 구체적으로 제2 레벨의 컨볼루션 레이어의 제1 특성 이미지 R2를 획득하는 프로세스는 아래와 같이 구현된다.
단계 5041에서, 제1 레벨의 컨볼루션 레이어의 제1 특성 이미지 R1은 채워진 트레이닝 이미지 Rp1을 획득하기 위해 채워진다.
본 단계의 원리는 단계 5031의 원리와 일치하며, 단계 5031의 내용이 구체적으로 참조될 수 있다. 이 단계는 선택적인 단계이다. 이 단계에 의해, 컨볼루션 연산에 의해 획득되는 이미지가 제1 레벨의 컨볼루션 레이어의 제1 특성 이미지 R1과 동일한 크기를 갖는 것이 보장될 수 있다.
예를 들어, 단계 502의 예시와 결합하여, 채움 스텝 길이가 2이고 그러나 이에 제한되지는 않으며, 채워진 이미지 Rp1
Figure 112017063009189-pct00018
이고, Rp1 i의 높이 및 폭이 각각 19 및 w1+4 이다.
단계 5042에서, 제2 레벨의 컨볼루션 레이어의 컨볼루션 커널과 바이어스 행렬을 사용하여, 제2 레벨의 컨볼루션 레이어의 컨볼루션 이미지 D2를 획득하기 위해, 제2 레벨의 컨볼루션 레이어에서 채워진 이미지 Rp1에 컨볼루션 연산이 수행된다.
본 단계의 원리는 단계 5032의 원리와 일치하며, 단계 5032의 내용이 구체적으로 참조될 수 있으며 여기서 상세하게 설명되지는 않는다.
구체적으로, 상술한 단계의 예시와 결합하여, C2의 각각의 컨볼루션 커널을 사용하여 컨볼루션 연산이 Rp1의 각각의 이미지에 수행될 수 있고, 이미지 상의 각 컨볼루션 커널의 슬라이딩 스텝 길이는 1이고, 그리고 제2 레벨의 컨볼루션 레이어의 각각의 컨볼루션 이미지 D2 i를 획득하기 위해 컨볼루션 결과들이 더해진다. 즉
Figure 112017063009189-pct00019
이고, 여기서 D2 i는 제2 레벨의 컨볼루션 레이어의 i번째 획득된 컨볼루션 이미지를 나타내고, C2 i는 C2 중 i번째 컨볼루션 커널을 나타내며, B2 i는 B2의 i번째 바이어스 행렬을 나타내고, Rp1 j는 Rp1의 j번째 이미지를 나타낸다. 컨볼루션 연산의 특성에 따라서,
Figure 112017063009189-pct00020
이고, 여기서 D2 i는 i번째 컨볼루션 커널 C2 i를 사용하여 Rp1에 컨볼루션 연산을 수행하는 것에 의해 획득되는 컨볼루션 이미지를 나타내고, D2 i의 크기는 15×w1이다.
단계 5043에서, 제2 레벨의 컨볼루션 레이어에서 제1 특성 이미지 R2를 획득하기 위해 제2 레벨의 컨볼루션 레이어의 컨볼루션 이미지 D2에 최대 풀링 연산이 수행된다.
본 단계의 원칙은 단계 5033과 일치하고, 단계 5033의 내용이 구체적으로 참조될 수 있다. 구체적으로,
Figure 112017063009189-pct00021
이고, R2 i의 크기는 7×w2이고, 그리고
Figure 112017063009189-pct00022
이다.
단계 5044에서, 제2 레벨의 컨볼루션 레이어의 제2 특성 이미지 H1을 획득하기 위해 제2 레벨의 컨볼루션 레이어에서 제1 특성 이미지 R2에 수평 풀링 연산이 수행된다.
구체적으로, R2의 i번째 특성 이미지 R2 i가 높이 및 폭으로 각각 7 및 w2를 갖는 이미지이고, R2 i의 각각의 열의 모든 엘리먼트의 최대 값이 추출되며, 최대 값은 길이 7의 1차원 벡터로 순서대로 연결된다.
R2의 256개 특성 이미지의 전부에 연산이 반복적으로 수행된 후, 길이 7의 256개의 1차원 벡터가 획득된다. 각각의 1차원 벡터는 열벡터로 간주되고, 1차원 벡터는 높이 및 폭이 각각 7 및 256인 이미지 H1로 순서대로 결합된다. H1는 제2 레벨의 컨볼루션 레이어에서, R2에 대한 수평 풀링 연산에 의해 획득된 제2 특성 이미지이다.
단계 505에서, 제3 레벨의 컨볼루션 레이어의 컨볼루션 커널 및 바이어스 행렬을 사용하여, 제3 레벨의 컨볼루션 레이어의 제1 특성 이미지 R3를 획득하기 위해, 제3 레벨의 컨볼루션 레이어에서, 제2 레벨의 컨볼루션 레이어의 제1 특성 이미지 R2에 컨볼루션 연산 및 최대 풀링 연산이 수행된다.
제3 레벨의 컨볼루션 레이어의 컨볼루션 커널 및 바이어스 행렬을 사용하여, 제3 레벨의 컨볼루션 레이어에서, 제2 레벨의 컨볼루션 레이어의 제1 특성 이미지 R2에 컨볼루션 연산 및 최대 풀링 연산이 수행되는 단계는 단계 502의 각각의 초기 모델 파라미터를 참조하여 이하에서 구체적으로 설명될 것이다. 구체적으로 제3 레벨의 컨볼루션 레이어의 제1 특성 이미지 R3를 획득하는 프로세스는 아래와 같이 구현된다.
단계 5051에서, 제2 레벨의 컨볼루션 레이어의 제1 특성 이미지 R2는 채워진 트레이닝 이미지 Rp2을 획득하기 위해 채워진다.
본 단계의 원리는 단계 5031의 원리와 일치하며, 단계 5031의 내용이 구체적으로 참조될 수 있다. 이 단계는 선택적인 단계이다. 이 단계에 의해, 컨볼루션 연산에 의해 획득되는 이미지가 제2 레벨의 컨볼루션 레이어의 제1 특성 이미지 R2와 동일한 크기를 갖는 것이 보장될 수 있다.
구체적으로, 채움 길이가 1이고 그러나 이에 제한되지는 않으며, 새로운 이미지 Rp2
Figure 112017063009189-pct00023
이고, Rp2 i의 높이 및 폭이 각각 9 및 w2+2 이다.
단계 5052에서, 제3 레벨의 컨볼루션 레이어의 컨볼루션 커널과 바이어스 행렬을 사용하여, 제3 레벨의 컨볼루션 레이어의 컨볼루션 이미지 D3를 획득하기 위해, 제3 레벨의 컨볼루션 레이어에서 채워진 이미지 Rp2에 컨볼루션 연산이 수행된다.
본 단계의 원리는 단계 5032의 원리와 일치하며, 단계 5032의 내용이 구체적으로 참조될 수 있으며 여기서 상세하게 설명되지는 않는다.
채워진 이미지 Rp2 상의 각 컨볼루션 커널의 슬라이딩 스텝 길이는 1이고, 즉
Figure 112017063009189-pct00024
이고, 여기서 D3 i는 제3 레벨의 컨볼루션 레이어의 i번째 획득된 컨볼루션 이미지를 나타내고, C3 i는 C3 중 i번째 컨볼루션 커널을 나타내며, B3 i는 B3의 i번째 바이어스 행렬을 나타내고, Rp2 j는 Rp2의 j번째 이미지를 나타낸다. 컨볼루션 연산의 특성에 따라서,
Figure 112017063009189-pct00025
이고, 여기서 D3 i는 i번째 컨볼루션 커널 C3 i를 사용하여 Rp2에 컨볼루션 연산을 수행하는 것에 의해 획득되는 컨볼루션 이미지를 나타내고, D3 i의 크기는 7×w2이다.
단계 5053에서, 제3 레벨의 컨볼루션 레이어에서 제1 특성 이미지 R3를 획득하기 위해 제3 레벨의 컨볼루션 레이어의 컨볼루션 이미지 D3에 최대 풀링 연산이 수행된다.
본 단계의 원칙은 단계 5033과 일치하고, 단계 5033의 내용이 구체적으로 참조될 수 있다. 구체적으로,
Figure 112017063009189-pct00026
이고, R3 i의 크기는 3×w3이고, 그리고
Figure 112017063009189-pct00027
이다.
단계 5054에서, 제3 레벨의 컨볼루션 레이어의 제2 특성 이미지 H2를 획득하기 위해 제3 레벨의 컨볼루션 레이어에서 제1 특성 이미지 R3에 수평 풀링 연산이 수행된다.
본 단계의 원리는 단계 5044의 원리와 일치하며, 단계 5044의 내용이 구체적으로 참조될 수 있다.
구체적으로, 높이 및 폭이 각각 3 및 384인 이미지 H2를 획득하기 위해, 제3 레벨의 컨볼루션 레이어에서 제1 특성 이미지 R3에 수평 풀링 연산이 수행될 수 있다. H2는 R3에 대한 수평 풀링 연산의 출력이다.
단계 506에서, 제4 레벨의 컨볼루션 레이어의 컨볼루션 커널 및 바이어스 행렬을 사용하여, 제4 레벨의 컨볼루션 레이어의 제1 특성 이미지 R4를 획득하기 위해, 제4 레벨의 컨볼루션 레이어에서, 제3 레벨의 컨볼루션 레이어의 제1 특성 이미지 R3에 컨볼루션 연산 및 최대 풀링 연산이 수행된다.
제4 레벨의 컨볼루션 레이어의 컨볼루션 커널 및 바이어스 행렬을 사용하여, 제4 레벨의 컨볼루션 레이어에서, 제3 레벨의 컨볼루션 레이어의 제1 특성 이미지 R3에 컨볼루션 연산 및 최대 풀링 연산이 수행되는 단계는 단계 502의 각각의 초기 모델 파라미터를 참조하여 이하에서 구체적으로 설명될 것이다. 구체적으로 제4 레벨의 컨볼루션 레이어의 제1 특성 이미지 R4를 획득하는 프로세스는 아래와 같이 구현된다.
단계 5061에서, 제4 레벨의 컨볼루션 레이어의 컨볼루션 커널과 바이어스 행렬을 사용하여, 제4 레벨의 컨볼루션 레이어의 컨볼루션 이미지 D4를 획득하기 위해, 제4 레벨의 컨볼루션 레이어에서 제3 레벨의 컨볼루션 레이어의 제1 특성 이미지 R3에 컨볼루션 연산이 수행된다.
R3 상의 컨볼루션 커널의 슬라이딩 스텝 길이는 1이고, 즉
Figure 112017063009189-pct00028
이고, 여기서 D4 i는 제4 레벨의 컨볼루션 레이어의 i번째 획득된 컨볼루션 이미지를 나타내고, C4 i는 C4 중 i번째 컨볼루션 커널을 나타내며, B4 i는 B4의 i번째 바이어스 행렬을 나타내고, R3 j는 R3의 j번째 이미지를 나타낸다. 컨볼루션 연산의 특성에 따라서,
Figure 112017063009189-pct00029
이고, 여기서 D4 i는 i번째 컨볼루션 커널 C4 i를 사용하여 R3에 컨볼루션 연산을 수행하는 것에 의해 획득되는 컨볼루션 이미지를 나타내고, D4 i의 크기는 1×(w3-2)이다.
단계 5062에서, 제4 레벨의 컨볼루션 레이어의 제2 특성 이미지 H3를 획득하기 위해 제4 레벨의 컨볼루션 레이어에서 제1 특성 이미지 R4에 수평 풀링 연산이 수행된다.
본 단계의 원리는 단계 5044의 원리와 일치하며, 단계 5044의 내용이 구체적으로 참조될 수 있다.
구체적으로, R4의 i번째 특성 이미지 R4 i가 길이 w3-2를 갖는 벡터이고, R4 i의 모든 엘리먼트의 최대 값이 추출된다. R4의 512개 특성 이미지의 전부에 연산이 반복적으로 수행된 후, 512개 숫자가 획득되고, 이 숫자는 길이 512의 벡터 H3로 순서대로 연결된다. H3는 R3에 대한 수평 풀링 연산의 출력이다.
단계 507에서, 제2 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지 H1, 제3 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지 H2, 및 제4 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지 H3에 따라서 트레이닝 이미지 I의 특성 벡터 Fc1이 결정된다.
구체적으로, H1 및 H2의 열 벡터가 처음부터 끝까지 연결되는 것에 의해서, H1 및 H2의 열 벡터가 캐스케이드 될 수 있고, 그리고 캐스케이드된 결과가 1차원 벡터 Fc1를 획득하기 위해 벡터 H3과 더 캐스케이드된다. 벡터 Fc1는 트레이닝 이미지 I의 특성 벡터로서 결정된다.
상술한 단계 각각의 예시들을 결합하면, H1의 크기는 7×256이고, H2의 크기는 3×384이고, H3의 길이는 512이고, 따라서 Fc1의 길이는 3,456이다.
단계 508에서, 특성 벡터 Fc1가 제1 레벨의 완전 연결 벡터의 입력으로서 결정되고, 그리고 Fc1는 제1 레벨의 완전 연결 벡터의 가중치 행렬 및 바이어스 벡터를 사용하여 제1 레벨의 완전 연결 벡터의 출력 Fc2를 계산하기 위해 프로세싱된다.
단계 502의 내용을 참조하면, 제1 레벨의 완전 연결 레이어의 출력 Fc2는 제1 레벨의 완전 연결 레이어의 가중치 행렬 W1 및 바이어스 벡터 B5를 사용하고 이하의 공식
Figure 112017063009189-pct00030
를 사용하여 계산될 수 있다.
단계 508의 내용을 참조하면, Fc2의 길이는 1,024이다. 상술한 단계 각각에서 획득되는 결과는 도 3의 구체적 수치 값을 참조할 수 있다. 물론 도 3의 수치 값은 오직 예시일 뿐이고, 본 명세서의 실시예를 제한하는 것으로 의도되지는 않는다.
단계 509에서, 제1 레벨의 완전 연결 레이어의 출력이 제2 레벨의 완전 연결 레이어에 입력되고, 트레이닝 이미지 I의 분류 확률 벡터 Y가 제2 레벨의 완전 연결 레이어의 가중치 행렬 및 바이어스 벡터를 사용하여 계산되고, 그리고 분류 에러 Loss가 트레이닝 이미지 I의 초기 분류 label 및 분류 확률 벡터 Y에 따라서 계산된다.
본 단계의 원칙식은 단계 206 및 단계 207에 구체적으로 설명되어 있고, 단계 206 및 단계 207의 내용을 구체적으로 참조할 수 있고 여기서 상세히 설명되지는 않는다.
구체적으로, 예시와 결합하여, 제1 레벨의 완전 연결 레이어의 출력 Fc2는 제2 레벨의 완전 연결 레이어의 입력으로 결정될 수 있다. 단계 502의 내용으로부터, 제2 레벨의 완전 연결 레이어의 가중치 행렬은 W2이고, 바이어스 벡터는 B6이고, 트레이닝 이미지 I의 분류 확률 벡터 Y는
Figure 112017063009189-pct00031
Figure 112017063009189-pct00032
로 계산되고, 여기서 Yi는 입력 이미지 I가 i번째 분류인 확률을 나타내고, n은 트레이닝되는 CNN 모델에 의해 인식될 수 있는 이미지 분류의 개수를 나타낸다. 도 3에서는 트레이닝되는 CNN 모델이 10개의 이미지 분류를 인식할 수 있는 경우만이 오직 예시로서 설명되었다.
이에 더해, 분류 에러 Loss가 트레이닝 이미지 I의 초기 분류 label 및 분류 확률 벡터 Y에 따라서 계산되는 연산은 아래의 공식을 사용하여 구현될 수 있다.
Figure 112017063009189-pct00033
예를 들어, 트레이닝 이미지 I의 초기 분류가 제1 분류라면, label = 1이다.
단계 510에서, 단계 502 내지 단계 509가 트레이닝 이미지 각각에 대해 반복적으로 수행되고, 모든 트레이닝 이미지의 분류 에러의 평균
Figure 112017063009189-pct00034
가 계산되고, 그리고 분류 에러의 평균은 분류 에러로서 결정된다.
단계 511에서, 트레이닝되는 CNN 모델의 모델 파라미터는 분류 에러에 기초하여 조정된다.
본 단계의 원칙은 단계 208에서 구체적으로 설명되어 있고, 단계 208의 내용이 구체적으로 참조될 수 있으며 여기서 상세히 설명되지 않는다.
구체적으로, 분류 에러를 SGD 알고리즘을 사용하여 트레이닝되는 CNN 모델에 역으로 다시 전송할 때, SGD 알고리즘의 습득 레이트(learning rate)는 0.01이 사용될 수 있고, 단계 510에서 계산되는 분류 에러의 평균
Figure 112017063009189-pct00035
는 트레이닝되는 CNN로 다시 역으로 전송되어 컨볼루션 커널 C1, C2, C3 및 C4, 바이어스 행렬 B1, B2, B3 및 B4, 가중치 행렬 W1 및 W2, 바이어스 벡터 B5 및 B6의 모든 엘리먼트를 업데이트한다.
단계 512에서, 단계 502 내지 단계 511이 미리 설정된 수 N만큼 반복적으도 수행되고, 반복이 미리 설정된 수 N에 도달할 때 획득되는 모델 파라미터가 트레이닝된 CNN 모델의 모델 파라미터로서 결정된다.
N의 수치 값의 특정 범위는 본 명세서의 실시예에서 구체적으로 한정되지는 않는다. 트레이닝된 CNN 모델을 상대적으로 더 정확하게 하기 위해, N의 값은 상대적으로 더 커질 수 있다. 구체적인 구현에서 N은 경험적인 값일 수 있다. 예를 들어 N은 300,000이다. 반복의 횟수가 300,000에 도달할 때 획득된 모델 파라미터가 트레이닝된 CNN 모델의 모델 파라미터로서 결정된다.
테스트는, 트레이닝되는 CNN 모델이 4개 레벨의 컨볼루션 레이어를 포함하고 수평 풀링 연산이 제2 레벨의 컨볼루션 레이어, 제3 레벨의 컨볼루션 레이어 및 제4 레벨의 컨볼루션 레이어에서 수행되는 경우, 단계 501 내지 단계 512에 의해 트레이닝된 CNN 모델이 상대적으로 더 높은 정확성을 가지고, 이에 의해 CNN 모델의 트레이닝 정확도가 증가할 수 있음을 보여준다.
본 명세서의 실시예에 의해 제공되는 방법에 따르면, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지에 컨볼루션 연산 및 최대 풀링 연산이 수행되고 나서, 수평 풀링 연산이, 최대 풀링 연산에 의해 획득된 특성 이미지에 추가로 수행된다. 수평 풀링 연산 동안, 특성 이미지의 수평 방향에서의 특성을 식별하는 특성 이미지가 특성 이미지로부터 추가로 추출될 수 있고, 이는 트레이닝된 CNN 모델이 이미지 분류 식별 동안 인식되는 이미지의 수평 방향에서의 크기 제한을 깰 수 있게 해주고 임의의 크기를 가진 인식되는 이미지를 인식할 수 있게 해준다. 이에 의해 트레이닝된 CNN 모델의 이미지 인식 적용 범위가 상대적으로 더 넓어진다.
도 6은 본 명세서의 다른 실시에에 따른, CNN 모델의 트레이닝 디바이스의 구조의 개략도이다. CNN 모델의 트레이닝 디바이스는, 도 1, 도 2 및 도 5 중 어느 하나에 대응하는 실시예에 의해 제공되는 CNN 모델의 트레이닝 방법을 실행하도록 구성될 수 있다.
제1 획득 모듈(601)은 트레이닝되는 CNN 모델의 초기 모델 파라미터를 획득하도록 구성되고, 초기 모델 파라미터는 각 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬과, 완전 연결 레이어의 초기 가중치 행렬 및 초기 바이어스 벡터를 포함한다.
제2 획득 모듈(602)은 복수의 트레이닝 이미지를 획득하도록 구성된다.
특성 추출 모듈(603)은 각 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬을 사용하여, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지를 획득하기 위해, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각에 컨볼루션 연산 및 최대 풀링 연산을 수행하도록 구성된다.
수평 풀링 모듈(604)은 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하기 위해, 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에 수평 풀링 연산을 수행하도록 구성된다.
제1 결정 모듈(605)은 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지에 따라서 트레이닝 이미지 각각의 특성 벡터를 결정하도록 구성된다.
프로세싱 모듈(606)은 초기 가중치 행렬 및 초기 바이어스 벡터에 따라서 트레이닝 이미지 각각의 분류 확률 벡터를 획득하기 위해 각각의 특성 벡터를 프로세싱하도록 구성된다.
계산 모듈(607)은 트레이닝 이미지 각각의 초기 분류 및 분류 확률 벡터에 따라서 분류 에러를 계산하도록 구성된다.
조정 모듈(608)은 분류 에러에 기초하여 트레이닝되는 CNN 모델의 모델 파라미터를 조정하도록 구성된다.
반복 모듈(609)은 조정된 모델 파라미터 및 복수의 트레이닝 이미지에 기초하여, 반복의 횟수가 미리 결정된 수에 도달할 때까지, 모델 파라미터의 조정 프로세스를 계속하도록 구성된다.
제2 결정 모듈(610)은 반복의 횟수가 미리 결정된 수에 도달할 때 획득되는 모델 파라미터를 트레이닝된 CNN 모델의 모델 파라미터로서 결정하도록 구성된다.
본 명세서의 실시예에 의해 제공되는 디바이스에 따르면, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지에 컨볼루션 연산 및 최대 풀링 연산이 수행되고 나서, 수평 풀링 연산이, 최대 풀링 연산에 의해 획득된 특성 이미지에 추가로 수행된다. 수평 풀링 연산 동안, 특성 이미지의 수평 방향에서의 특성을 식별하는 특성 이미지가 특성 이미지로부터 추가로 추출될 수 있고, 이는 트레이닝된 CNN 모델이 이미지 분류 식별 동안 인식되는 이미지의 수평 방향에서의 크기 제한을 깰 수 있게 해주고 임의의 크기를 가진 인식되는 이미지를 인식할 수 있게 해준다. 이에 의해 트레이닝된 CNN 모델의 이미지 인식 적용 범위가 상대적으로 더 넓어진다.
다른 실시예에서, 제2 획득 모듈(602)은 이하의 유닛을 포함한다.
제1 획득 유닛은 복수의 초기 트레이닝 이미지를 획득하도록 구성된다.
제1 프로세싱 유닛은 초기 트레이닝 이미지 각각에 대해, 초기 트레이닝 이미지의 폭-높이 비율을 유지하며, 지정 높이를 가진 제1 이미지를 획득하기 위해 초기 트레이닝 이미지를 프로세싱하도록 구성된다.
제2 프로세싱 유닛은 지정 폭을 가진 제2 이미지를 획득하기 위해 제1 이미지를 프로세싱하도록 구성된다.
제1 결정 유닛은 지정 높이와 지정 폭을 가진 이미지를 초기 트레이닝 이미지에 대응하는 트레이닝 이미지로 결정하도록 구성된다.
다른 실시예에서, 제2 획득 모듈(602)은 이하의 유닛을 포함한다.
제2 획득 유닛은 복수의 초기 트레이닝 이미지를 획득하도록 구성된다.
제3 프로세싱 유닛은 초기 트레이닝 이미지 각각에 대해, 초기 트레이닝 이미지의 폭-높이 비율을 유지하며, 지정 높이를 가진 이미지를 획득하기 위해 초기 트레이닝 이미지를 프로세싱하고, 그리고 지정 높이에 대응하는 폭을 초기 트레이닝 이미지의 폭으로서 결정하도록 구성된다.
다른 실시예에서 제1 프로세싱 유닛은 이하의 서브유닛을 포함한다.
프로세싱 서브유닛은, 초기 폭을 획득하기 위해 트레이닝 이미지 각각을 지정 높이를 가진 이미지로 프로세싱하도록 구성된다.
채움 서브유닛은, 초기 폭이 지정 폭보다 작은 경우, 초기 폭이 지정 폭에 도달할 때까지 지정된 그레이-스케일(gray-scale) 값을 가진 픽셀로 프로세싱되는 초기 트레이닝 이미지의 좌우 측면을 균일하게 채우도록 구성된다.
절단 서브유닛은, 초기 폭이 지정 폭보다 큰 경우, 초기 폭이 지정 폭에 도달할 때까지 프로세싱되는 초기 트레이닝 이미지의 좌우 측면 상의 픽셀을 균일하게 잘라내도록 구성된다.
다른 실시예에서 특성 추출 모듈(603)은 이하의 유닛을 포함한다.
컨볼루션 유닛은, 트레이닝 이미지 각각에 대해, 이전 레벨의 컨볼루션 레이어에서의 제1 특성 이미지를 현재 컨볼루션 레이어에 입력하고, 그리고 현재 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬을 사용하여, 현재 컨볼루션 레이어의 컨볼루션 이미지를 획득하기 위해 이전 레벨의 컨볼루션 레이어에서의 제1 특성 이미지에 컨볼루션 연산을 수행하도록 구성된다. 현재 컨볼루션 레이어가 제1 레벨의 컨볼루션 레이어인 경우, 이전 레벨의 컨볼루션 레이어에서의 제1 특성 이미지는 트레이닝 이미지이다.
최대 풀링 유닛은, 현재 컨볼루션 레이어에서 트레이닝 이미지의 제1 특성 이미지를 획득하기 위해 최대 풀링 연산을 현재 컨볼루션 레이어의 컨볼루션 이미지에 수행하도록 구성된다.
전송 유닛은, 마지막 레벨의 컨볼루션 레이어에서 제1 특성 이미지를 획득하기 위해 마지막 레벨의 컨볼루션 레이어에서 컨볼루션 연산 및 최대 풀링 연산이 수행될 때까지, 현재 컨볼루션 레이어의 제1 특성 이미지를 다음 레벨의 컨볼루션 레이어에 전송하는 것을 계속하고 그리고 다음 레벨의 컨볼루션 레이어에서 컨볼루션 연산 및 최대 풀링 연산을 수행하도록 구성된다.
다른 실시예에서, 수평 풀링 모듈(604)은 이하의 유닛을 포함한다.
추출 유닛은 각 레벨의 컨볼루션 레이어에서 각각의 트레이닝 이미지의 제1 특성 이미지에 대해, 제1 특성 이미지는 미리 설정된 수의 이미지들을 포함하고, 컨볼루션 레이어의 제1 특성 이미지의 각각의 이미지의 각각의 열의 엘리먼트 중 최대 값을 추출하도록 구성된고, 여기서 미리 설정된 수는 컨볼루션 레이어의 컨볼루션 커널의 수 또는 바이어스 행렬의 수와 동일하다.
배열 유닛은 각각의 이미지의 픽셀의 배열에 따라서, 각각의 이미지의 모든 열로부터 추출된 최대 값들을 1차원 벡터로 배열하도록 구성된다.
결합 유닛은 컨볼루션 레이어의 제2 특성 이미지를 획득하기 위해, 컨볼루션 레이어의 제1 특성 이미지의 모든 이미지들의 1차원 벡터를 결합하도록 구성된다.
다른 실시예에서, 제1 결정 모듈(605)은, 트레이닝 이미지 각각에 대해, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지의 제2 특성 이미지의 모든 열의 엘리먼트들을 앞에서 뒤로 연결하여 트레이닝 이미지의 특성 벡터를 획득하도록 구성된다.
다른 실시예에서, 계산 모듈(607)은 이하의 유닛을 포함한다.
획득 유닛은 트레이닝 이미지 각각의 초기 분류를 획득하도록 구성된다.
제1 계산 유닛은, 공식
Loss = -lnylabel
을 사용하여 트레이닝 이미지 각각의 초기 분류 및 분류 확률 벡터에 따라서 트레이닝 이미지 각각의 분류 에러를 계산하도록 구성된다. Loss는 트레이닝 이미지 각각의 분류 에러를 나타내고, label은 트레이닝 이미지 각각의 초기 분류를 나타내며, y i 는 트레이닝 이미지 각각의 분류 확률 벡터의 엘리먼트를 나타내고, y label 은 초기 분류에 대응하는 분류 확률을 나타낸다.
제2 계산 유닛은, 모든 트레이닝 이미지의 분류 에러의 평균을 계산하고, 모든 트레이닝 이미지의 분류 에러의 평균을 분류 에러로서 결정하도록 구성된다.
다른 실시예에서, 복수의 트레이닝 이미지는 비인공 장면의 이미지이고, 비인공 장면의 이미지는 상이한 언어의 문자를 포함하고, 트레이닝되는 CNN 모델은 언어 인식 분류기이다.
다른 실시예에서, 트레이닝되는 CNN 모델은 4개의 레벨의 컨볼루션 레이어 및 2개의 완전 연결 레이어를 포함하고, 각 레벨의 컨볼루션 레이어는 컨볼루션 커널 및 바이어스 행렬을 동일한 개수 또는 상이한 개수로 포함한다.
이 다른 실시예에서, 수평 풀링 모듈은, 제2 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하고, 제3 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하고, 제4 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하기 위해, 제2 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에, 제3 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에, 그리고 제4 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에 개별적으로 수평 풀링 연산을 수행하도록 구성된다.
이 다른 실시예에서, 제1 결정 모듈은, 트레이닝 이미지 각각에 대해, 제2 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지, 제3 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지, 및 제4 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지에 따라서 트레이닝 이미지의 특성 벡터를 결정하도록 구성된다.
모든 추가적인 기술적 해결방법이 본 명세서의 추가적인 실시예에 자유롭게 결합될 수 있고, 이것은 하나씩 상세히 설명되지는 않을 것이다.
도 7은 본 명세서의 다른 실시예와 연관된 단말기의 구조의 개략도이이고, 이 단말기는 도 1, 도 2 또는 도 4에 대응하는 실시예에 의해 제공되는 CNN 모델의 트레이닝 방법을 구현하도록 구성될 수 있다. 단말기의 자세한 내용은 아래와 같다.
단말기(700)는 무선 주파수(radio frequency, RF) 회로(110), 하나 이상의 컴퓨터-판독가능 저장 매체를 포함하는 메모리(120), 입력 유닛(130), 디스플레이 유닛(140), 센서(150), 오디오 회로(160), 와이파이(WiFi) 모듈(170), 하나 이상의 프로세싱 코어를 포함하는 프로세서(180) 및 전원(190)과 같은 구성요소(part)을 포함할 수 있다. 본 기술분야의 통상의 기술자는 도 7에 도시된 단말기의 구조가 그 단말기를 제한하기 위한 것이 아니고, 도면에 도시된 구성요소에 비해 더 많거나 또는 더 적은 구성요소를 포함할 수 있으며 또는 일부 구성요소가 결합될 수 있고 또는 구성요소가 상이한 방식으로 배열될 수 있다는 것을 알 수 있다.
RF 회로(110)는 정보 전송 및 수신 또는 통신 프로세스에서 신호를 수신하거나 송신하도록 구성될 수 있고, 구체적으로 기지국의 다운링크 정보를 수신한 후 프로세싱을 위해 하나 이상의 프로세서(180)로 전송하고, 그리고 기지국으로 관련 업링크 데이터를 송신하도록 구성될 수 있다. 일반적으로, RF 회로(110)는 안테나, 적어도 하나의 증폭기, 튜너(tuner), 하나 이상의 발진기, 가입자 식별 모듈(SIM) 카드, 송수신기, 커플러(coupler), 저소음 증폭기(low noise amplifier, LNA), 송수신 전환기(duplexer) 등을 포함하나 이에 제한되지는 않는다. 이에 더하여 RF 회로(110)는 무선 통신 방식으로 네트워크 및 다른 장치와 통신할 수 있다. 무선 통신은, GSM(Global System of Mobile Communication), GPRS(General Packet Radio Service), CDMA(Code Division Multiple Access), WCDMA(Wideband Code Division Multiple Access), LTE(Long Term Evolution), e-메일, SMS(Short Messaging Service) 등을 포함하는 임의의 통신 표준 또는 프로토콜을 채용할 수 있으나 이에 제한되지는 않는다.
메모리(120)는 소프트웨어 프로그램 및 모듈을 저장하도록 구성되고, 프로세서(180)는 메모리(120)에 저장된 소프트웨어 프로그램 및 모듈을 구동하여 다양한 기능적 어플리케이션 및 데이터 프로세싱을 실시한다. 메모리(120)가 프로그램 저장 영역 및 데이터 저장 영역을 주로 포함하고, 여기서 프로그램 저장 영역은 운영 시스템, 적어도 하나의 기능(예를 들어 사운드 재생 기능 및 이미지 재생 기능)에 의해 요구되는 어플리케이션 프로그램 등을 저장할 수 있고, 데이터 저장 영역은 단말기(700)의 사용에 의해 생성되는 데이터(예를 들어 오디오 데이터 및 전화번호부) 등을 저장할 수 있다. 이에 더하여, 메모리(120)가 고속 랜덤 액세스 메모리를 포함할 수 있고, 또한, 적어도 하나의 디스크 메모리와 같은 비-휘발성 메모리, 플래시 메모리, 또는 다른 휘발성 솔리드-스테이트 메모리를 포함할 수 있다. 그에 따라, 메모리(120)는, 프로세서(180) 및 입력 유닛(130)의 메모리(120)로의 접근을 제공하기 위해서 메모리 제어기를 더 포함할 수 있다.
입력 유닛(130)은 입력되는 디지털 또는 문자 정보를 수신하도록, 그리고 사용자 셋팅 및 기능 제어와 관련된 키보드, 마우스, 조이스틱, 광학적, 또는 트랙 볼 신호 입력을 생성하도록 구성될 수 있다. 구체적으로, 입력 유닛(130)이 터치-감지형 표면(131) 및 다른 입력 장치(132)를 포함할 수 있다. 터치 디스플레이 스크린 또는 터치 패널로서 또한 지칭될 수 있는 터치-감지형 표면(131)이 (손가락 또는 스타일러스와 같은 임의의 적합한 물체의 이용에 의하여, 터치-감지형 표면(131) 상에서 또는 그 근처에서 실행되는 사용자의 연산과 같은) 터치-감지형 표면 상에서의 또는 그 근처에서의 사용자의 터치 연산을 수집할 수 있고, 미리 설정된 프로그램에 따라서 대응하는 연결 장치를 구동시킨다. 선택적으로, 터치-감지형 표면(131)이 2개의 부분: 터치 검출 디바이스 및 터치 제어기를 포함할 수 있다. 터치 검출 디바이스는 사용자의 터치 방향을 검출하고, 터치 연산에 의해서 생성된 신호를 검출하며, 그러한 신호를 터치 제어기로 전달한다. 터치 제어기는 터치 검출 디바이스로부터 터치 정보를 수신하고, 터치 정보를 터치 좌표로 변환하고, 터치 좌표를 프로세서(180)로 송신하며, 그리고 프로세서(180)로부터 송신된 명령을 수신하고 실행할 수 있다. 이에 더하여, 터치-감지형 표면(131)이 저항, 용량, 적외선, 표면 음파 유형 등을 사용하여 구현될 수 있다. 터치-감지형 표면(131)에 더하여, 입력 유닛(130)이 다른 입력 장치(132)를 더 포함할 수 있다. 구체적으로, 다른 입력 장치(132)가, 물리적 키보드, (부피 제어 키(volume control key) 또는 온/오프 키와 같은) 기능적 키, 트랙 볼, 마우스, 조이스틱 등 중에서 하나 이상을 포함할 수 있으나 이에 제한되지는 않는다.
디스플레이 유닛(140)은 사용자에 의해서 입력된 정보 또는 사용자를 위해서 제공되는 정보, 그리고 단말기(700)의 여러 가지 그래픽 사용자 인터페이스를 디스플레이하도록 구성될 수 있고, 이러한 그래픽 사용자 인터페이스는 그래프, 문장, 아이콘, 비디오 및 그 임의의 조합에 의해서 형성될 수 있다. 디스플레이 유닛(140)이 디스플레이 패널(141)을 포함할 수 있고, 디스플레이 패널(141)은 선택적으로 액정 디스플레이(LCD), 유기 발광 다이오드(OLED) 등의 형태로 구성될 수 있다. 또한, 터치-감지형 표면(131)이 디스플레이 패널(141)을 커버할 수 있고, 터치-감지형 표면(131) 상에서의 또는 그 근처에서의 터치 연산이 검출된 후에, 터치 이벤트의 분류를 결정하기 위해 터치 연산은 프로세서(180)로 전달된다. 그리고, 프로세서(180)는 터치 이벤트의 분류에 따라서 디스플레이 패널(141) 상으로 대응하는 시각적 출력을 제공한다. 비록, 도 7의 터치-감지형 표면(131) 및 디스플레이 패널(141)이 2개의 독립된 부분으로서 입력 및 출력 기능을 구현하지만, 일부 실시예에서, 터치-감지형 표면(131) 및 디스플레이 패널(141)이 통합되어 입력 및 출력 기능을 구현할 수 있다.
단말기(700)는, 광학적 센서, 모션 센서, 및 다른 센서와 같은, 적어도 하나의 센서(150)를 더 포함할 수 있다. 구체적으로, 광학적 센서가 주위 광 센서 및 근접도 센서를 포함할 수 있다. 주위 광 센서는, 주위 광의 밝기에 따라서 디스플레이 패널(141)의 휘도를 조정할 수 있고, 근접도 센서는, 단말기(700)가 귀로 이동될 때, 디스플레이 패널(141) 및/또는 백라이트를 오프로 전환시킬 수 있다. 모션 센서로서, 중력 가속도 센서가 (일반적으로 3개의 축 상의) 각 방향을 따른 가속도의 크기를 검출할 수 있고, 정지 상태에서 중력의 크기 및 방향을 검출할 수 있으며, 단말기의 적용 상태(예를 들어 수평 및 수직 스크린 스위칭, 관련 게임 및 자기계 상태 교정), 진동 인지와 관련된 기능(예를 들어 만보계 및 두드림) 등을 식별하도록 구성될 수 있다. 그리고 단말기(700) 내에서 구성될 수 있는, 자이로스코프, 기압계, 습도계, 온도계 및 적외선 센서와 같은 다른 센서를 여기서 상세히 설명하지는 않는다.
오디오 회로(160), 스피커(161), 및 마이크로폰(162)이 사용자와 단말기(700) 사이의 오디오 인터페이스를 제공할 수 있다. 오디오 회로(160)가 수신된 오디오 데이터로부터 변환시킨 전기 신호를 스피커(161)로 송신할 수 있고, 스피커(161)는 전기 신호를 출력을 위한 소리 신호로 변환시킨다. 다른 한편으로, 마이크로폰(162)은 수집된 소리 신호를 전기 신호로 변환시키고, 오디오 회로(160)는 전기 신호를 수신하여 오디오 데이터로 변환시키고 오디오 데이터를 프로세서(180)로 출력하며, 프로세서(180)는 오디오 데이터를 프로세싱하고 RF 회로(110)를 이용하는 것에 의해서 오디오 데이터를, 예를 들어, 다른 단말기로 송신하거나, 추가적인 프로세싱을 위해서 메모리(120)로 출력한다. 오디오 회로(160)는, 외부 이어폰 및 단말기(1500) 사이의 통신을 제공하기 위해서, 이어플러그 홀을 더 포함할 수 있다.
와이파이는 단거리 무선 전송 기술이다. 단말기(700)는, WiFi 모듈(170)을 통해 사용자가 e-메일을 수신 및 송신하고, 웹페이지를 브라우징하고, 스트리밍 미디어에 접근하는 것 등을 할 수 있게 해주고 사용자에게 무선 광대역 인터넷 접속을 제공한다. 비록 도 7이 WiFi 모듈(170)을 도시하지만, WiFi 모듈이 단말기(700)의 필수적인 구성요소가 아니고, 필요에 의해 본 명세서 내용의 본질의 범위를 변화시키지 않으면서 WiFi 모듈이 생략될 수 있다는 것이 이해되어야 한다.
프로세서(180)는, 단말기(700)의 제어 중심으로서, 다양한 인터페이스 및 라인을 이용하여 전체 단말기의 각 부분에 연결된다. 메모리(120) 내에 저장된 소프트웨어 프로그램 및/또는 모듈을 구동 또는 실행하는 것, 그리고 메모리(120) 내에 저장된 데이터를 불러오는 것에 의해서, 프로세서(180)는 단말기(700)의 여러 기능 및 데이터 프로세싱을 실시하고, 그에 의해서 전체 단말기를 모니터링할 수 있다. 선택적으로, 프로세서(180)가 하나 이상의 프로세싱 코어를 포함할 수 있다. 바람직하게, 프로세서(180)가 어플리케이션 프로세서와 변조 및 복조 프로세서를 포함할 수 있다. 어플리케이션 프로세서는 운영 시스템, 사용자 인터페이스, 어플리케이션 프로그램 등을 주로 프로세싱하고, 변조 및 복조 프로세서는 무선 통신을 주로 프로세싱한다. 전술한 변조 및 복조 프로세서가 또한 프로세서(180) 내에 포함되지 않을 수 있다는 것을 이해할 수 있을 것이다.
단말기(700)는, 구성요소로 전력을 공급하기 위한 전원(900)(예를 들어, 배터리)을 더 포함할 수 있고, 바람직하게, 전원은 전력 관리 시스템을 통해 프로세서(180)에 논리적으로 연결될 수 있고, 그에 의해서 전력 관리 시스템을 통한 충전 및 방전 관리, 전력 소비 관리 등의 기능을 실시할 수 있다. 전원(190)이 직류 또는 교류 전원, 재충전 시스템, 정전 검출 회로, 전원 변환기 또는 인버터, 전원 상태 표시부 및 임의의 다른 구성요소 중 하나 이상을 더 포함할 수 있다.
비록 도면에 도시되지는 않았지만, 단말기(700)는, 여기서 상세히 설명되지는 않을, 카메라, 블루투스 모듈 등을 더 포함할 수 있다. 구체적으로, 이러한 실시예에서, 단말기의 디스플레이 유닛이 터치 스크린 디스플레이이고, 단말기는 메모리 및 하나 이상의 프로그램을 더 포함하고, 여기서 하나 이상의 프로그램은 메모리 내에 저장되고 하나 이상의 프로세서에 의해서 실행되도록 구성된다. 하나 이상의 프로그램이 이하의 연산을 실시하도록 구성된 명령어를 포함한다:
트레이닝되는 CNN 모델의 초기 모델 파라미터를 획득되는 연산 - 초기 모델 파라미터는 각 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬과, 완전 연결 레이어의 초기 가중치 행렬 및 초기 바이어스 벡터를 포함함 -;
복수의 트레이닝 이미지를 획득하는 연산;
각 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬을 사용하여, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지를 획득하기 위해, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각에 컨볼루션 연산 및 최대 풀링 연산을 수행하는 연산;
적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하기 위해, 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에 수평 풀링 연산을 수행하는 연산;
적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지에 따라서 트레이닝 이미지 각각의 특성 벡터를 결정하는 연산;
초기 가중치 행렬 및 초기 바이어스 벡터에 따라서 트레이닝 이미지 각각의 분류 확률 벡터를 획득하기 위해 각각의 특성 벡터를 프로세싱하는 연산;
트레이닝 이미지 각각의 초기 분류 및 분류 확률 벡터에 따라서 분류 에러를 계산하는 연산;
분류 에러에 기초하여 트레이닝되는 CNN 모델의 모델 파라미터를 조정하는 연산;
조정된 모델 파라미터 및 복수의 트레이닝 이미지에 기초하여, 반복의 횟수가 미리 결정된 수에 도달할 때까지, 모델 파라미터의 조정 프로세스를 계속하는 연산; 및
반복의 횟수가 미리 결정된 수에 도달할 때 획득되는 모델 파라미터를 트레이닝된 CNN 모델의 모델 파라미터로서 결정하는 연산.
전술한 내용이 제1의 가능한 구현이라고 가정하면, 제1의 가능한 구현을 기반으로 제공되는 제2의 가능한 구현에서, 단말기의 메모리는 복수의 트레이닝 이미지를 획득하는 이하의 연산을 실시하도록 구성된 명령어를 더 포함한다:
복수의 초기 트레이닝 이미지를 획득하는 연산;
초기 트레이닝 이미지 각각에 대해, 초기 트레이닝 이미지의 폭-높이 비율을 유지하며, 지정 높이를 가진 제1 이미지를 획득하기 위해 초기 트레이닝 이미지를 프로세싱하는 연산; 및
지정 폭을 가진 제2 이미지를 획득하기 위해 제1 이미지를 프로세싱하고, 지정 높이와 지정 폭을 가진 이미지를 초기 트레이닝 이미지에 대응하는 트레이닝 이미지로 결정하는 연산.
제1의 가능한 구현을 기초로 제공되는 제3의 가능한 구현에서, 단말기의 메모리는 복수의 트레이닝 이미지를 획득하는 이하의 연산을 실행하기 위한 명령어를 더 포함한다:
복수의 초기 트레이닝 이미지를 획득하는 연산; 및
초기 트레이닝 이미지 각각에 대해, 초기 트레이닝 이미지의 폭-높이 비율을 유지하며, 지정 높이를 가진 이미지를 획득하기 위해 초기 트레이닝 이미지를 프로세싱하고, 그리고 지정 높이에 대응하는 폭을 초기 트레이닝 이미지의 폭으로서 결정하는 연산.
제2의 가능한 구현을 기초로 제공되는 제4의 가능한 구현에서, 단말기의 메모리는 지정 폭을 가진 제2 이미지를 획득하기 위해 제1 이미지를 프로세싱하는 이하의 연산을 실행하기 위한 명령어를 더 포함한다:
제1 이미지의 폭이 지정 폭보다 작은 경우, 지정된 그레이-스케일(gray-scale) 값을 가진 픽셀로 제1 이미지의 좌우 측면을 균일하게 채우고, 제1 이미지의 폭이 지정 폭에 도달할 때 제2 이미지를 획득하는 연산; 및
제1 이미지의 폭이 지정 폭보다 큰 경우, 제1 이미지의 좌우 측면 상의 픽셀을 균일하게 잘라내고, 제1 이미지의 폭이 지정 폭에 도달할 때 제2 이미지를 획득하는 연산.
제1의 가능한 구현을 기초로 제공되는 제5의 가능한 구현에서, 단말기의 메모리는 각 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬을 사용하여, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지를 획득하기 위해, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각에 컨볼루션 연산 및 최대 풀링 연산을 수행하는 이하의 연산을 실행하기 위한 명령어를 더 포함한다:
트레이닝 이미지 각각에 대해, 이전 레벨의 컨볼루션 레이어에서의 제1 특성 이미지를 현재 컨볼루션 레이어에 입력하고, 그리고 현재 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬을 사용하여, 현재 컨볼루션 레이어의 컨볼루션 이미지를 획득하기 위해 이전 레벨의 컨볼루션 레이어에서의 제1 특성 이미지에 컨볼루션 연산을 수행하는 연산 - 현재 컨볼루션 레이어가 제1 레벨의 컨볼루션 레이어인 경우, 이전 레벨의 컨볼루션 레이어에서의 제1 특성 이미지는 트레이닝 이미지임 - ; 및
현재 컨볼루션 레이어에서 트레이닝 이미지의 제1 특성 이미지를 획득하기 위해 최대 풀링 연산을 현재 컨볼루션 레이어의 컨볼루션 이미지에 수행한 후, 마지막 레벨의 컨볼루션 레이어에서 제1 특성 이미지를 획득하기 위해 마지막 레벨의 컨볼루션 레이어에서 컨볼루션 연산 및 최대 풀링 연산이 수행될 때까지, 계속해서 현재 컨볼루션 레이어의 제1 특성 이미지를 다음 레벨의 컨볼루션 레이어에 전송하고 그리고 다음 레벨의 컨볼루션 레이어에서 컨볼루션 연산 및 최대 풀링 연산을 수행하는 연산.
제1의 가능한 구현을 기초로 제공되는 제6의 가능한 구현에서, 단말기의 메모리는 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하기 위해, 레벨들 중 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에 수평 풀링 연산을 수행하는 이하의 연산을 실행하기 위한 명령어를 더 포함한다:
각 레벨의 컨볼루션 레이어에서 각각의 트레이닝 이미지의 제1 특성 이미지에 대해, 제1 특성 이미지는 미리 설정된 수의 이미지들을 포함하고, 컨볼루션 레이어의 제1 특성 이미지의 각각의 이미지의 각각의 열(row)의 엘리먼트들(elements) 중 최대 값을 추출하는 연산 - 미리 설정된 수는 컨볼루션 레이어의 컨볼루션 커널의 수 또는 바이어스 행렬의 수와 동일함 - ;
각각의 이미지의 픽셀의 배열에 따라서, 각각의 이미지의 모든 열로부터 추출된 최대 값들을 1차원 벡터로 배열하는 연산; 및
컨볼루션 레이어의 제2 특성 이미지를 획득하기 위해, 컨볼루션 레이어의 제1 특성 이미지의 모든 이미지들의 1차원 벡터를 결합하는 연산.
제6의 가능한 구현을 기초로 제공되는 제7의 가능한 구현에서, 단말기의 메모리는 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지에 따라서 트레이닝 이미지 각각의 특성 벡터를 결정하는 이하의 연산을 실행하기 위한 명령어를 더 포함한다:
트레이닝 이미지 각각에 대해, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지의 제2 특성 이미지의 모든 열의 엘리먼트들을 앞에서 뒤로 연결하여 트레이닝 이미지의 특성 벡터를 획득하는 연산.
제1의 가능한 구현을 기초로 제공되는 제8의 가능한 구현에서, 단말기의 메모리는 트레이닝 이미지 각각의 초기 분류 및 분류 확률 벡터에 따라서 분류 에러를 계산하는 이하의 연산을 실행하기 위한 명령어를 더 포함한다:
트레이닝 이미지 각각의 초기 분류를 획득하는 연산;
공식 Loss = -lnylabel 을 사용하여 트레이닝 이미지 각각의 초기 분류 및 분류 확률 벡터에 따라서 트레이닝 이미지 각각의 분류 에러를 계산하는 연산 - Loss는 트레이닝 이미지 각각의 분류 에러를 나타내고, label은 트레이닝 이미지 각각의 초기 분류를 나타내며, yi 는 트레이닝 이미지 각각의 분류 확률 벡터의 엘리먼트를 나타내고, ylabel 은 초기 분류에 대응하는 분류 확률을 나타냄 - ; 및
모든 트레이닝 이미지의 분류 에러의 평균을 계산하고, 모든 트레이닝 이미지의 분류 에러의 평균을 분류 에러로서 결정하는 연산.
제1 내지 제8의 가능한 구현을 기초로 제공되는 제9의 가능한 구현에서, 단말기의 메모리는, 복수의 트레이닝 이미지는 비인공 장면의 이미지이고, 비인공 장면의 이미지는 상이한 언어의 문자를 포함하고, 트레이닝되는 CNN 모델은 언어 인식 분류기인 연산을 실행하기 위한 명령어를 더 포함한다.
제1 내지 제8의 가능한 구현을 기초로 제공되는 제10의 가능한 구현에서, 트레이닝되는 CNN 모델은 4개의 레벨의 컨볼루션 레이어 및 2개의 완전 연결 레이어를 포함하고, 각 레벨의 컨볼루션 레이어는 컨볼루션 커널 및 바이어스 행렬을 동일한 개수 또는 상이한 개수로 포함하고, 단말기의 메모리는 이하의 연산을 실행하기 위한 명령어를 더 포함한다:
적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하기 위해, 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에 수평 풀링 연산을 수행하는 연산은,
제2 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하고, 제3 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하고, 제4 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하기 위해, 제2 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에, 제3 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에, 그리고 제4 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에 개별적으로 수평 풀링 연산을 수행하는 연산을 포함하고; 그리고
적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지에 따라서 트레이닝 이미지 각각의 특성 벡터를 결정하는 연산은,
트레이닝 이미지 각각에 대해, 제2 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지, 제3 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지, 및 제4 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지에 따라서 트레이닝 이미지의 특성 벡터를 결정하는 연산을 포함한다.
본 명세서의 실시예에 의해 제공되는 단말기에 따르면, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지에 컨볼루션 연산 및 최대 풀링 연산이 수행되고 나서, 수평 풀링 연산이, 최대 풀링 연산에 의해 획득된 특성 이미지에 추가로 수행된다. 수평 풀링 연산 동안, 특성 이미지의 수평 방향에서의 특성을 식별하는 특성 이미지가 특성 이미지로부터 추가로 추출될 수 있고, 이는 트레이닝된 CNN 모델이 이미지 분류 식별 동안 인식되는 이미지의 수평 방향에서의 크기 제한을 깰 수 있게 해주고 임의의 크기를 가진 인식되는 이미지를 인식할 수 있게 해준다. 이에 의해 트레이닝된 CNN 모델의 이미지 인식 적용 범위가 상대적으로 더 넓어진다.
본 명세서의 실시예는 컴퓨터-판독가능 저장 매체를 제공하고, 컴퓨터-판독가능 저장 매체는 상술한 실시예의 메모리 내에 포함되는 컴퓨터-판독가능 저장 매체이거나 또는 개별적으로 존재하고 단말기 내에 설치되지 않는 컴퓨터-판독가능 저장 매체일 수 있다. 컴퓨터-판독가능 저장 매체가 하나 이상의 프로그램을 저장하고, 하나 이상의 프로그램 CNN 모델의 트레이닝 방법을 실행하기 위한 하나 이상의 프로세서에 대해 구셩되고, 이 방법은:
트레이닝되는 CNN 모델의 초기 모델 파라미터를 획득되는 단계 - 초기 모델 파라미터는 각 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬과, 완전 연결 레이어의 초기 가중치 행렬 및 초기 바이어스 벡터를 포함함 -;
복수의 트레이닝 이미지를 획득하는 단계;
각 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬을 사용하여, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지를 획득하기 위해, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각에 컨볼루션 연산 및 최대 풀링 연산을 수행하는 단계;
적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하기 위해, 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에 수평 풀링 연산을 수행하는 단계;
적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지에 따라서 트레이닝 이미지 각각의 특성 벡터를 결정하는 단계;
초기 가중치 행렬 및 초기 바이어스 벡터에 따라서 트레이닝 이미지 각각의 분류 확률 벡터를 획득하기 위해 각각의 특성 벡터를 프로세싱하는 단계;
트레이닝 이미지 각각의 초기 분류 및 분류 확률 벡터에 따라서 분류 에러를 계산하는 단계;
분류 에러에 기초하여 트레이닝되는 CNN 모델의 모델 파라미터를 조정하는 단계;
조정된 모델 파라미터 및 복수의 트레이닝 이미지에 기초하여, 반복의 횟수가 미리 결정된 수에 도달할 때까지, 모델 파라미터의 조정 프로세스를 계속하는 단계; 및
반복의 횟수가 미리 결정된 수에 도달할 때 획득되는 모델 파라미터를 트레이닝된 CNN 모델의 모델 파라미터로서 결정하는 단계
를 포함한다.
전술한 내용이 제1의 가능한 구현이라고 가정하면, 제1의 가능한 구현을 기반으로 제공되는 제2의 가능한 구현에서, 단말기의 메모리는 복수의 트레이닝 이미지를 획득하는 이하의 연산을 실시하도록 구성된 명령어를 더 포함한다:
복수의 초기 트레이닝 이미지를 획득하는 연산;
초기 트레이닝 이미지 각각에 대해, 초기 트레이닝 이미지의 폭-높이 비율을 유지하며, 지정 높이를 가진 제1 이미지를 획득하기 위해 초기 트레이닝 이미지를 프로세싱하는 연산; 및
지정 폭을 가진 제2 이미지를 획득하기 위해 제1 이미지를 프로세싱하고, 지정 높이와 지정 폭을 가진 이미지를 초기 트레이닝 이미지에 대응하는 트레이닝 이미지로 결정하는 연산.
제1의 가능한 구현을 기초로 제공되는 제3의 가능한 구현에서, 단말기의 메모리는 복수의 트레이닝 이미지를 획득하는 이하의 연산을 실행하기 위한 명령어를 더 포함한다:
복수의 초기 트레이닝 이미지를 획득하는 연산; 및
초기 트레이닝 이미지 각각에 대해, 초기 트레이닝 이미지의 폭-높이 비율을 유지하며, 지정 높이를 가진 이미지를 획득하기 위해 초기 트레이닝 이미지를 프로세싱하고, 그리고 지정 높이에 대응하는 폭을 초기 트레이닝 이미지의 폭으로서 결정하는 연산.
제2의 가능한 구현을 기초로 제공되는 제4의 가능한 구현에서, 단말기의 메모리는 지정 폭을 가진 제2 이미지를 획득하기 위해 제1 이미지를 프로세싱하는 이하의 연산을 실행하기 위한 명령어를 더 포함한다:
제1 이미지의 폭이 지정 폭보다 작은 경우, 지정된 그레이-스케일(gray-scale) 값을 가진 픽셀로 제1 이미지의 좌우 측면을 균일하게 채우고, 제1 이미지의 폭이 지정 폭에 도달할 때 제2 이미지를 획득하는 연산; 및
제1 이미지의 폭이 지정 폭보다 큰 경우, 제1 이미지의 좌우 측면 상의 픽셀을 균일하게 잘라내고, 제1 이미지의 폭이 지정 폭에 도달할 때 제2 이미지를 획득하는 연산.
제1의 가능한 구현을 기초로 제공되는 제5의 가능한 구현에서, 단말기의 메모리는 각 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬을 사용하여, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지를 획득하기 위해, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각에 컨볼루션 연산 및 최대 풀링 연산을 수행하는 이하의 연산을 실행하기 위한 명령어를 더 포함한다:
트레이닝 이미지 각각에 대해, 이전 레벨의 컨볼루션 레이어에서의 제1 특성 이미지를 현재 컨볼루션 레이어에 입력하고, 그리고 현재 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬을 사용하여, 현재 컨볼루션 레이어의 컨볼루션 이미지를 획득하기 위해 이전 레벨의 컨볼루션 레이어에서의 제1 특성 이미지에 컨볼루션 연산을 수행하는 연산 - 현재 컨볼루션 레이어가 제1 레벨의 컨볼루션 레이어인 경우, 이전 레벨의 컨볼루션 레이어에서의 제1 특성 이미지는 트레이닝 이미지임 - ; 및
현재 컨볼루션 레이어에서 트레이닝 이미지의 제1 특성 이미지를 획득하기 위해 최대 풀링 연산을 현재 컨볼루션 레이어의 컨볼루션 이미지에 수행한 후, 마지막 레벨의 컨볼루션 레이어에서 제1 특성 이미지를 획득하기 위해 마지막 레벨의 컨볼루션 레이어에서 컨볼루션 연산 및 최대 풀링 연산이 수행될 때까지, 계속해서 현재 컨볼루션 레이어의 제1 특성 이미지를 다음 레벨의 컨볼루션 레이어에 전송하고 그리고 다음 레벨의 컨볼루션 레이어에서 컨볼루션 연산 및 최대 풀링 연산을 수행하는 연산.
제1의 가능한 구현을 기초로 제공되는 제6의 가능한 구현에서, 단말기의 메모리는 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하기 위해, 레벨들 중 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에 수평 풀링 연산을 수행하는 이하의 연산을 실행하기 위한 명령어를 더 포함한다:
각 레벨의 컨볼루션 레이어에서 각각의 트레이닝 이미지의 제1 특성 이미지에 대해, 제1 특성 이미지는 미리 설정된 수의 이미지들을 포함하고, 컨볼루션 레이어의 제1 특성 이미지의 각각의 이미지의 각각의 열(row)의 엘리먼트들(elements) 중 최대 값을 추출하는 연산 - 미리 설정된 수는 컨볼루션 레이어의 컨볼루션 커널의 수 또는 바이어스 행렬의 수와 동일함 - ;
각각의 이미지의 픽셀의 배열에 따라서, 각각의 이미지의 모든 열로부터 추출된 최대 값들을 1차원 벡터로 배열하는 연산; 및
컨볼루션 레이어의 제2 특성 이미지를 획득하기 위해, 컨볼루션 레이어의 제1 특성 이미지의 모든 이미지들의 1차원 벡터를 결합하는 연산.
제6의 가능한 구현을 기초로 제공되는 제7의 가능한 구현에서, 단말기의 메모리는 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지에 따라서 트레이닝 이미지 각각의 특성 벡터를 결정하는 이하의 연산을 실행하기 위한 명령어를 더 포함한다:
트레이닝 이미지 각각에 대해, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지의 제2 특성 이미지의 모든 열의 엘리먼트들을 앞에서 뒤로 연결하여 트레이닝 이미지의 특성 벡터를 획득하는 연산.
제1의 가능한 구현을 기초로 제공되는 제8의 가능한 구현에서, 단말기의 메모리는 트레이닝 이미지 각각의 초기 분류 및 분류 확률 벡터에 따라서 분류 에러를 계산하는 이하의 연산을 실행하기 위한 명령어를 더 포함한다:
트레이닝 이미지 각각의 초기 분류를 획득하는 연산;
공식 Loss = -lnylabel 을 사용하여 트레이닝 이미지 각각의 초기 분류 및 분류 확률 벡터에 따라서 트레이닝 이미지 각각의 분류 에러를 계산하는 연산 - Loss는 트레이닝 이미지 각각의 분류 에러를 나타내고, label은 트레이닝 이미지 각각의 초기 분류를 나타내며, yi 는 트레이닝 이미지 각각의 분류 확률 벡터의 엘리먼트를 나타내고, ylabel 은 초기 분류에 대응하는 분류 확률을 나타냄 - ; 및
모든 트레이닝 이미지의 분류 에러의 평균을 계산하고, 모든 트레이닝 이미지의 분류 에러의 평균을 분류 에러로서 결정하는 연산.
제1 내지 제8의 가능한 구현을 기초로 제공되는 제9의 가능한 구현에서, 단말기의 메모리는, 복수의 트레이닝 이미지는 비인공 장면의 이미지이고, 비인공 장면의 이미지는 상이한 언어의 문자를 포함하고, 트레이닝되는 CNN 모델은 언어 인식 분류기인 연산을 실행하기 위한 명령어를 더 포함한다.
제1 내지 제8의 가능한 구현을 기초로 제공되는 제10의 가능한 구현에서, 트레이닝되는 CNN 모델은 4개의 레벨의 컨볼루션 레이어 및 2개의 완전 연결 레이어를 포함하고, 각 레벨의 컨볼루션 레이어는 컨볼루션 커널 및 바이어스 행렬을 동일한 개수 또는 상이한 개수로 포함하고, 단말기의 메모리는 이하의 연산을 실행하기 위한 명령어를 더 포함한다:
적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하기 위해, 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에 수평 풀링 연산을 수행하는 연산은,
제2 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하고, 제3 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하고, 제4 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하기 위해, 제2 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에, 제3 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에, 그리고 제4 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에 개별적으로 수평 풀링 연산을 수행하는 연산을 포함하고; 그리고
적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지에 따라서 트레이닝 이미지 각각의 특성 벡터를 결정하는 연산은,
트레이닝 이미지 각각에 대해, 제2 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지, 제3 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지, 및 제4 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지에 따라서 트레이닝 이미지의 특성 벡터를 결정하는 연산을 포함한다.
본 명세서의 실시예에 의해 제공되는 컴퓨터-판독가능 저장 매체에 따르면, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지에 컨볼루션 연산 및 최대 풀링 연산이 수행되고 나서, 수평 풀링 연산이, 최대 풀링 연산에 의해 획득된 특성 이미지에 추가로 수행된다. 수평 풀링 연산 동안, 특성 이미지의 수평 방향에서의 특성을 식별하는 특성 이미지가 특성 이미지로부터 추가로 추출될 수 있고, 이는 트레이닝된 CNN 모델이 이미지 분류 식별 동안 인식되는 이미지의 수평 방향에서의 크기 제한을 깰 수 있게 해주고 임의의 크기를 가진 인식되는 이미지를 인식할 수 있게 해준다. 이에 의해 트레이닝된 CNN 모델의 이미지 인식 적용 범위가 상대적으로 더 넓어진다.
본 명세서의 실시예가 그래픽 사용자 인터페이스를 제공하고, 그래픽 사용자 인터페이스는 단말기에서 사용되며, 단말기는 터치 스크린 디스플레이, 메모리, 및 하나 이상의 프로그램을 실행하기 위한 하나 이상의 프로세서를 포함한다. 그래픽 사용자 인터페이스는:
트레이닝되는 CNN 모델의 초기 모델 파라미터를 획득되는 것 - 초기 모델 파라미터는 각 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬과, 완전 연결 레이어의 초기 가중치 행렬 및 초기 바이어스 벡터를 포함함 -;
복수의 트레이닝 이미지를 획득하는 것;
각 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬을 사용하여, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지를 획득하기 위해, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각에 컨볼루션 연산 및 최대 풀링 연산을 수행하는 것;
적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하기 위해, 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에 수평 풀링 연산을 수행하는 것;
적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지에 따라서 트레이닝 이미지 각각의 특성 벡터를 결정하는 것;
초기 가중치 행렬 및 초기 바이어스 벡터에 따라서 트레이닝 이미지 각각의 분류 확률 벡터를 획득하기 위해 각각의 특성 벡터를 프로세싱하는 것;
트레이닝 이미지 각각의 초기 분류 및 분류 확률 벡터에 따라서 분류 에러를 계산하는 것;
분류 에러에 기초하여 트레이닝되는 CNN 모델의 모델 파라미터를 조정하는 것;
조정된 모델 파라미터 및 복수의 트레이닝 이미지에 기초하여, 반복의 횟수가 미리 결정된 수에 도달할 때까지, 모델 파라미터의 조정 프로세스를 계속하는 것; 및
반복의 횟수가 미리 결정된 수에 도달할 때 획득되는 모델 파라미터를 트레이닝된 CNN 모델의 모델 파라미터로서 결정하는 것을 포함한다.
전술한 내용이 제1의 가능한 구현이라고 가정하면, 제1의 가능한 구현을 기반으로 제공되는 제2의 가능한 구현에서, 단말기의 메모리는 복수의 트레이닝 이미지를 획득하는 이하의 연산을 실시하도록 구성된 명령어를 더 포함한다:
복수의 초기 트레이닝 이미지를 획득하는 연산;
초기 트레이닝 이미지 각각의 폭-높이 비율을 유지하며, 복수의 트레이닝 이미지를 획득하기 위해 지정 높이 및 지정 폭을 가진 제1 이미지로 모든 초기 트레이닝 이미지를 프로세싱하는 연산.
제1의 가능한 구현을 기초로 제공되는 제3의 가능한 구현에서, 단말기의 메모리는 복수의 트레이닝 이미지를 획득하는 이하의 연산을 실행하기 위한 명령어를 더 포함한다:
복수의 초기 트레이닝 이미지를 획득하는 연산; 및
초기 트레이닝 이미지의 폭-높이 비율을 유지하며, 지정 높이를 가진 이미지를 획득하기 위해 초기 트레이닝 이미지를 프로세싱하고, 그리고 지정 높이에 대응하는 폭을 초기 트레이닝 이미지의 폭으로서 결정하여, 복수의 트레이닝 이미지를 획득하는 연산.
본 명세서의 실시예에 의해 제공되는 그래픽 사용자 인터페이스에 따르면, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지에 컨볼루션 연산 및 최대 풀링 연산이 수행되고 나서, 수평 풀링 연산이, 최대 풀링 연산에 의해 획득된 특성 이미지에 추가로 수행된다. 수평 풀링 연산 동안, 특성 이미지의 수평 방향에서의 특성을 식별하는 특성 이미지가 특성 이미지로부터 추가로 추출될 수 있고, 이는 트레이닝된 CNN 모델이 이미지 분류 식별 동안 인식되는 이미지의 수평 방향에서의 크기 제한을 깰 수 있게 해주고 임의의 크기를 가진 인식되는 이미지를 인식할 수 있게 해준다. 이에 의해 트레이닝된 CNN 모델의 이미지 인식 적용 범위가 상대적으로 더 넓어진다.
도 1, 도 2, 및 도 5 중 어느 하나에 대응하는 실시예에 의해 제공되는 CNN 모델의 트레이닝 방법은 또한 서버에 의해 실행될 수 있다. 도 8은 예시적인 실시예에 따른 서버의 구조의 개략도이고, 서버는 도 1, 도 2, 및 도 5 중 어느 하나에 대응하는 실시예에 의해 제공되는 CNN 모델의 트레이닝 방법을 실행하도록 구성될 수 있다. 도 8을 참조하면, 서버(800)은 하나 이상의 프로세서를 포함하는 프로세싱 컴포넌트(822), 및 프로세싱 컴포넌트(822)에 의해 실행가능한, 어플리케이션 프로그램과 같은 명령어를 저정하도록 구성되는, 메모리(832)로 나타내진 메모리 리소스를 포함한다. 메모리(832)에 저장된 어플리케이션 프로그램은 명령어 세트에 각각 대응하는 모듈을 하나 이상 포함할 수 있다. 이에 더하여, 프로세싱 컴포넌트(832)는, 도 1, 도 2, 및 도 5 중 어느 하나에 대응하는 실시예에 의해 제공되는 CNN 모델의 트레이닝 방법을 실행할 수 있는 명령어를 실행하도록 구성된다.
서버(800)는 서버(800)의 전력 관리를 실행할 수 있는 전력 컴포넌트(828), 네트워크에 서버(800)를 연결시키도록 구성된 유선 또는 무선 네트워크 인터페이스(850), 및 입력/출력(I/O) 인터페이스(858)를 더 포함할 수 있다. 서버(800)는 Windows ServerTM, Mac OS XTM, UnixTM, LinuxTM 및 FreeBSDTM과 같은 메모리(832)에 저장된 운영 시스템에 기초하여 연산할 수 있다.
메모리에 저장된 하나 이상의 프로그램은 하나 이상의 프로그램에 의해 실행되도록 구성되고, 그리고 하나 이상의 프로그램은 이하의 연산을 수행하도록 구성된 명령어를 포함한다:
트레이닝되는 CNN 모델의 초기 모델 파라미터를 획득되는 연산 - 초기 모델 파라미터는 각 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬과, 완전 연결 레이어의 초기 가중치 행렬 및 초기 바이어스 벡터를 포함함 -;
복수의 트레이닝 이미지를 획득하는 연산;
각 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬을 사용하여, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지를 획득하기 위해, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각에 컨볼루션 연산 및 최대 풀링 연산을 수행하는 연산;
적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하기 위해, 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에 수평 풀링 연산을 수행하는 연산;
적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지에 따라서 트레이닝 이미지 각각의 특성 벡터를 결정하는 연산;
초기 가중치 행렬 및 초기 바이어스 벡터에 따라서 트레이닝 이미지 각각의 분류 확률 벡터를 획득하기 위해 각각의 특성 벡터를 프로세싱하는 연산;
트레이닝 이미지 각각의 초기 분류 및 분류 확률 벡터에 따라서 분류 에러를 계산하는 연산;
분류 에러에 기초하여 트레이닝되는 CNN 모델의 모델 파라미터를 조정하는 연산;
조정된 모델 파라미터 및 복수의 트레이닝 이미지에 기초하여, 반복의 횟수가 미리 결정된 수에 도달할 때까지, 모델 파라미터의 조정 프로세스를 계속하는 연산; 및
반복의 횟수가 미리 결정된 수에 도달할 때 획득되는 모델 파라미터를 트레이닝된 CNN 모델의 모델 파라미터로서 결정하는 연산.
전술한 내용이 제1의 가능한 구현이라고 가정하면, 제1의 가능한 구현을 기반으로 제공되는 제2의 가능한 구현에서, 단말기의 메모리는 복수의 트레이닝 이미지를 획득하는 이하의 연산을 실시하도록 구성된 명령어를 더 포함한다:
복수의 초기 트레이닝 이미지를 획득하는 연산;
초기 트레이닝 이미지 각각에 대해, 초기 트레이닝 이미지의 폭-높이 비율을 유지하며, 지정 높이를 가진 제1 이미지를 획득하기 위해 초기 트레이닝 이미지를 프로세싱하는 연산; 및
지정 폭을 가진 제2 이미지를 획득하기 위해 제1 이미지를 프로세싱하고, 지정 높이와 지정 폭을 가진 이미지를 초기 트레이닝 이미지에 대응하는 트레이닝 이미지로 결정하는 연산.
제1의 가능한 구현을 기초로 제공되는 제3의 가능한 구현에서, 단말기의 메모리는 복수의 트레이닝 이미지를 획득하는 이하의 연산을 실행하기 위한 명령어를 더 포함한다:
복수의 초기 트레이닝 이미지를 획득하는 연산; 및
초기 트레이닝 이미지 각각에 대해, 초기 트레이닝 이미지의 폭-높이 비율을 유지하며, 지정 높이를 가진 이미지를 획득하기 위해 초기 트레이닝 이미지를 프로세싱하고, 그리고 지정 높이에 대응하는 폭을 초기 트레이닝 이미지의 폭으로서 결정하는 연산.
제2의 가능한 구현을 기초로 제공되는 제4의 가능한 구현에서, 단말기의 메모리는 지정 폭을 가진 제2 이미지를 획득하기 위해 제1 이미지를 프로세싱하는 이하의 연산을 실행하기 위한 명령어를 더 포함한다:
제1 이미지의 폭이 지정 폭보다 작은 경우, 지정된 그레이-스케일(gray-scale) 값을 가진 픽셀로 제1 이미지의 좌우 측면을 균일하게 채우고, 제1 이미지의 폭이 지정 폭에 도달할 때 제2 이미지를 획득하는 연산; 및
제1 이미지의 폭이 지정 폭보다 큰 경우, 제1 이미지의 좌우 측면 상의 픽셀을 균일하게 잘라내고, 제1 이미지의 폭이 지정 폭에 도달할 때 제2 이미지를 획득하는 연산.
제1의 가능한 구현을 기초로 제공되는 제5의 가능한 구현에서, 단말기의 메모리는 각 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬을 사용하여, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지를 획득하기 위해, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각에 컨볼루션 연산 및 최대 풀링 연산을 수행하는 이하의 연산을 실행하기 위한 명령어를 더 포함한다:
트레이닝 이미지 각각에 대해, 이전 레벨의 컨볼루션 레이어에서의 제1 특성 이미지를 현재 컨볼루션 레이어에 입력하고, 그리고 현재 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬을 사용하여, 현재 컨볼루션 레이어의 컨볼루션 이미지를 획득하기 위해 이전 레벨의 컨볼루션 레이어에서의 제1 특성 이미지에 컨볼루션 연산을 수행하는 연산 - 현재 컨볼루션 레이어가 제1 레벨의 컨볼루션 레이어인 경우, 이전 레벨의 컨볼루션 레이어에서의 제1 특성 이미지는 트레이닝 이미지임 - ; 및
현재 컨볼루션 레이어에서 트레이닝 이미지의 제1 특성 이미지를 획득하기 위해 최대 풀링 연산을 현재 컨볼루션 레이어의 컨볼루션 이미지에 수행한 후, 마지막 레벨의 컨볼루션 레이어에서 제1 특성 이미지를 획득하기 위해 마지막 레벨의 컨볼루션 레이어에서 컨볼루션 연산 및 최대 풀링 연산이 수행될 때까지, 계속해서 현재 컨볼루션 레이어의 제1 특성 이미지를 다음 레벨의 컨볼루션 레이어에 전송하고 그리고 다음 레벨의 컨볼루션 레이어에서 컨볼루션 연산 및 최대 풀링 연산을 수행하는 연산.
제1의 가능한 구현을 기초로 제공되는 제6의 가능한 구현에서, 단말기의 메모리는 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하기 위해, 레벨들 중 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에 수평 풀링 연산을 수행하는 이하의 연산을 실행하기 위한 명령어를 더 포함한다:
각 레벨의 컨볼루션 레이어에서 각각의 트레이닝 이미지의 제1 특성 이미지에 대해, 제1 특성 이미지는 미리 설정된 수의 이미지들을 포함하고, 컨볼루션 레이어의 제1 특성 이미지의 각각의 이미지의 각각의 열(row)의 엘리먼트들(elements) 중 최대 값을 추출하는 연산 - 미리 설정된 수는 컨볼루션 레이어의 컨볼루션 커널의 수 또는 바이어스 행렬의 수와 동일함 - ;
각각의 이미지의 픽셀의 배열에 따라서, 각각의 이미지의 모든 열로부터 추출된 최대 값들을 1차원 벡터로 배열하는 연산; 및
컨볼루션 레이어의 제2 특성 이미지를 획득하기 위해, 컨볼루션 레이어의 제1 특성 이미지의 모든 이미지들의 1차원 벡터를 결합하는 연산.
제6의 가능한 구현을 기초로 제공되는 제7의 가능한 구현에서, 단말기의 메모리는 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지에 따라서 트레이닝 이미지 각각의 특성 벡터를 결정하는 이하의 연산을 실행하기 위한 명령어를 더 포함한다:
트레이닝 이미지 각각에 대해, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지의 제2 특성 이미지의 모든 열의 엘리먼트들을 앞에서 뒤로 연결하여 트레이닝 이미지의 특성 벡터를 획득하는 연산.
제1의 가능한 구현을 기초로 제공되는 제8의 가능한 구현에서, 단말기의 메모리는 트레이닝 이미지 각각의 초기 분류 및 분류 확률 벡터에 따라서 분류 에러를 계산하는 이하의 연산을 실행하기 위한 명령어를 더 포함한다:
트레이닝 이미지 각각의 초기 분류를 획득하는 연산;
공식 Loss = -lnylabel 을 사용하여 트레이닝 이미지 각각의 초기 분류 및 분류 확률 벡터에 따라서 트레이닝 이미지 각각의 분류 에러를 계산하는 연산 - Loss는 트레이닝 이미지 각각의 분류 에러를 나타내고, label은 트레이닝 이미지 각각의 초기 분류를 나타내며, yi 는 트레이닝 이미지 각각의 분류 확률 벡터의 엘리먼트를 나타내고, ylabel 은 초기 분류에 대응하는 분류 확률을 나타냄 - ; 및
모든 트레이닝 이미지의 분류 에러의 평균을 계산하고, 모든 트레이닝 이미지의 분류 에러의 평균을 분류 에러로서 결정하는 연산.
제1 내지 제8의 가능한 구현을 기초로 제공되는 제9의 가능한 구현에서, 단말기의 메모리는, 복수의 트레이닝 이미지는 비인공 장면의 이미지이고, 비인공 장면의 이미지는 상이한 언어의 문자를 포함하고, 트레이닝되는 CNN 모델은 언어 인식 분류기인 연산을 실행하기 위한 명령어를 더 포함한다.
제1 내지 제8의 가능한 구현을 기초로 제공되는 제10의 가능한 구현에서, 트레이닝되는 CNN 모델은 4개의 레벨의 컨볼루션 레이어 및 2개의 완전 연결 레이어를 포함하고, 각 레벨의 컨볼루션 레이어는 컨볼루션 커널 및 바이어스 행렬을 동일한 개수 또는 상이한 개수로 포함하고, 단말기의 메모리는 이하의 연산을 실행하기 위한 명령어를 더 포함한다:
적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하기 위해, 적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에 수평 풀링 연산을 수행하는 연산은,
제2 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하고, 제3 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하고, 제4 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지를 획득하기 위해, 제2 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에, 제3 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에, 그리고 제4 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제1 특성 이미지에 개별적으로 수평 풀링 연산을 수행하는 연산을 포함하고; 그리고
적어도 하나의 레벨의 컨볼루션 레이어에서 트레이닝 이미지 각각의 제2 특성 이미지에 따라서 트레이닝 이미지 각각의 특성 벡터를 결정하는 연산은,
트레이닝 이미지 각각에 대해, 제2 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지, 제3 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지, 및 제4 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지에 따라서 트레이닝 이미지의 특성 벡터를 결정하는 연산을 포함한다.
본 명세서의 실시예에 의해 제공되는 서버에 따르면, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지에 컨볼루션 연산 및 최대 풀링 연산이 수행되고 나서, 수평 풀링 연산이, 최대 풀링 연산에 의해 획득된 특성 이미지에 추가로 수행된다. 수평 풀링 연산 동안, 특성 이미지의 수평 방향에서의 특성을 식별하는 특성 이미지가 특성 이미지로부터 추가로 추출될 수 있고, 이는 트레이닝된 CNN 모델이 이미지 분류 식별 동안 인식되는 이미지의 수평 방향에서의 크기 제한을 깰 수 있게 해주고 임의의 크기를 가진 인식되는 이미지를 인식할 수 있게 해준다. 이에 의해 트레이닝된 CNN 모델의 이미지 인식 적용 범위가 상대적으로 더 넓어진다.
CNN 모델을 트레이닝 할 때, 실시예에 의해서 제공된 CNN 모들의 트레이닝 디바이스는 오직 예시로서 상술한 기능적 모듈 각각의 구분으로 설명된 것임을 주목하여야 할 것이다. 실제 적용예에서, 상이한 기능이 실현을 위해 상이한 기능적 모듈에 할당될 수 있고, 즉 디바이스의 내부 구성은 상술한 기능의 전부 또는 부분을 실현하기 위해 상이한 기능적 모듈에 분리될 수 있다. 이에 더하여, 실시예에서 제공된 CNN 모델의 트레이닝 디바이스, 단말기 및 서버는 CNN 모델의 트레이닝 방법의 실시예와 동일한 개념을 기초로 하고, 그 구체적인 구현 프로세서는 방법 실시예를 참고하고 여기서 상세하게 설명되지는 않는다.
본 기술분야의 통상의 기술자는 실시예의 모든 또는 일부 단계가 하드웨어에 의해서 실시될 수 있거나, 프로그램을 통해 관련 하드웨어로 지시하는 것 의해서 실시될 수 있다는 것을 이해할 것이고, 프로그램은 컴퓨터-판독가능 저장 매체에 저장될 수 있고, 상술한 저장 매체는 리드-온리 메모리, 디스크, 컴팩트 디스크 등일 수 있다.
전술한 설명은 단지 본 명세서의 바람직한 실시예이고, 본 명세서의 내용을 제한하도록 의도된 것은 아니다. 본 명세서의 사상 및 원리 내에서 이루어진 임의의 수정, 균등한 대체, 또는 개선이 본원의 보호 범위 내에 포함될 것이다.

Claims (21)

  1. 컨볼루션 신경망(Convolution Neural Network: CNN) 모델의 트레이닝 방법으로서,
    트레이닝되는 CNN 모델의 초기 모델 파라미터를 획득하는 단계 - 상기 초기 모델 파라미터는 각 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널(convolution kernel) 및 초기 바이어스 행렬(bias matrix)과, 완전 연결 레이어의 초기 가중치 행렬(wight matrix) 및 초기 바이어스 벡터(bias vector)를 포함함 -;
    복수의 트레이닝 이미지를 획득하는 단계;
    각 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬을 사용하여, 각 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제1 특성 이미지를 획득하기 위해, 각 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각에 컨볼루션 연산 및 최대 풀링(maximal pooling) 연산을 수행하는 단계;
    적어도 하나의 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제2 특성 이미지를 획득하기 위해, 적어도 하나의 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제1 특성 이미지에 수평 풀링(horizontal pooling) 연산을 수행하는 단계;
    적어도 하나의 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제2 특성 이미지에 따라서 상기 트레이닝 이미지 각각의 특성 벡터(feature vector)를 결정하는 단계;
    상기 초기 가중치 행렬 및 상기 초기 바이어스 벡터에 따라서 상기 각각의 특성 벡터를 프로세싱하여 상기 트레이닝 이미지 각각의 분류 확률 벡터를 획득하는 단계;
    상기 트레이닝 이미지 각각의 초기 분류 및 상기 분류 확률 벡터에 따라서 분류 에러를 계산하는 단계;
    상기 분류 에러에 기초하여 상기 트레이닝되는 CNN 모델의 모델 파라미터를 조정하는 단계;
    상기 조정된 모델 파라미터 및 상기 복수의 트레이닝 이미지에 기초하여, 반복의 횟수가 미리 결정된 수에 도달할 때까지, 모델 파라미터의 조정 프로세스를 계속하는 단계; 및
    상기 반복의 횟수가 미리 결정된 수에 도달할 때 획득되는 모델 파라미터를 트레이닝된 CNN 모델의 모델 파라미터로서 결정하는 단계
    를 포함하는,
    컨볼루션 신경망(CNN) 모델의 트레이닝 방법.
  2. 제1항에 있어서,
    상기 복수의 트레이닝 이미지를 획득하는 단계는,
    복수의 초기 트레이닝 이미지를 획득하는 단계;
    상기 초기 트레이닝 이미지 각각에 대해, 초기 트레이닝 이미지의 폭-높이 비율을 유지하며, 상기 초기 트레이닝 이미지를 프로세싱하여 지정(specified) 높이를 가진 제1 이미지를 획득하는 단계; 및
    상기 제1 이미지를 프로세싱하여 지정 폭을 가진 제2 이미지를 획득하고, 상기 지정 높이와 상기 지정 폭을 가진 이미지를 상기 초기 트레이닝 이미지에 대응하는 트레이닝 이미지로 결정하는 단계를 포함하는,
    컨볼루션 신경망(CNN) 모델의 트레이닝 방법.
  3. 제1항에 있어서,
    상기 복수의 트레이닝 이미지를 획득하는 단계는,
    복수의 초기 트레이닝 이미지를 획득하는 단계; 및
    상기 초기 트레이닝 이미지 각각에 대해, 초기 트레이닝 이미지의 폭-높이 비율을 유지하며, 상기 초기 트레이닝 이미지를 프로세싱하여 지정 높이를 가진 이미지를 획득하고, 그리고 상기 지정 높이에 대응하는 폭을 상기 초기 트레이닝 이미지의 폭으로서 결정하는 단계를 포함하는,
    컨볼루션 신경망(CNN) 모델의 트레이닝 방법.
  4. 제2항에 있어서,
    상기 제1 이미지를 프로세싱하여 상기 지정 폭을 가진 제2 이미지를 획득하는 것은,
    상기 제1 이미지의 폭이 상기 지정 폭보다 작은 경우, 지정된 그레이-스케일(gray-scale) 값을 가진 픽셀로 상기 제1 이미지의 좌우 측면을 균일하게 채우고, 상기 제1 이미지의 폭이 상기 지정 폭에 도달할 때 상기 제2 이미지를 획득하는 것; 및
    상기 제1 이미지의 폭이 상기 지정 폭보다 큰 경우, 상기 제1 이미지의 좌우 측면 상의 픽셀을 균일하게 잘라내고, 상기 제1 이미지의 폭이 상기 지정 폭에 도달할 때 상기 제2 이미지를 획득하는 것을 포함하는,
    컨볼루션 신경망(CNN) 모델의 트레이닝 방법.
  5. 제1항에 있어서,
    각 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬을 사용하여, 각 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제1 특성 이미지를 획득하기 위해, 각 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각에 컨볼루션 연산 및 최대 풀링 연산을 수행하는 단계는,
    상기 트레이닝 이미지 각각에 대해, 이전 레벨의 컨볼루션 레이어에서의 제1 특성 이미지를 현재 컨볼루션 레이어에 입력하고, 그리고 상기 현재 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬을 사용하여, 상기 현재 컨볼루션 레이어의 컨볼루션 이미지를 획득하기 위해 상기 이전 레벨의 컨볼루션 레이어에서의 제1 특성 이미지에 컨볼루션 연산을 수행하는 단계 - 상기 현재 컨볼루션 레이어가 제1 레벨의 컨볼루션 레이어인 경우, 상기 이전 레벨의 컨볼루션 레이어에서의 제1 특성 이미지는 트레이닝 이미지임 - ; 및
    상기 현재 컨볼루션 레이어에서 트레이닝 이미지의 제1 특성 이미지를 획득하기 위해 최대 풀링 연산을 상기 현재 컨볼루션 레이어의 컨볼루션 이미지에 수행한 후, 마지막 레벨의 컨볼루션 레이어에서 제1 특성 이미지를 획득하기 위해 상기 마지막 레벨의 컨볼루션 레이어에서 컨볼루션 연산 및 최대 풀링 연산이 수행될 때까지, 계속해서 상기 현재 컨볼루션 레이어의 제1 특성 이미지를 다음 레벨의 컨볼루션 레이어에 전송하고 그리고 상기 다음 레벨의 컨볼루션 레이어에서 컨볼루션 연산 및 최대 풀링 연산을 수행하는 단계를 포함하는,
    컨볼루션 신경망(CNN) 모델의 트레이닝 방법.
  6. 제1항에 있어서,
    적어도 하나의 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제2 특성 이미지를 획득하기 위해, 레벨들 중 적어도 하나의 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제1 특성 이미지에 수평 풀링 연산을 수행하는 단계는,
    각 레벨의 컨볼루션 레이어에서 각각의 트레이닝 이미지의 제1 특성 이미지에 대해, 제1 특성 이미지는 미리 설정된 수의 이미지들을 포함하여 이루어지고, 컨볼루션 레이어의 제1 특성 이미지의 각각의 이미지의 각각의 열(row)의 엘리먼트(elements) 중 최대 값을 추출하는 단계 - 상기 미리 설정된 수는 컨볼루션 레이어의 컨볼루션 커널의 수 또는 바이어스 행렬의 수와 동일함 - ;
    각각의 이미지의 픽셀의 배열에 따라서, 각각의 이미지의 모든 열로부터 추출된 최대 값들을 1차원 벡터로 배열하는 단계; 및
    컨볼루션 레이어의 제2 특성 이미지를 획득하기 위해, 컨볼루션 레이어의 제1 특성 이미지의 모든 이미지들의 1차원 벡터를 결합하는 단계를 포함하는,
    컨볼루션 신경망(CNN) 모델의 트레이닝 방법.
  7. 제6항에 있어서,
    적어도 하나의 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제2 특성 이미지에 따라서 상기 트레이닝 이미지 각각의 특성 벡터를 결정하는 단계는,
    상기 트레이닝 이미지 각각에 대해, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지의 제2 특성 이미지의 모든 열의 엘리먼트를 처음부터 끝까지 연결하여 상기 트레이닝 이미지의 특성 벡터를 획득하는 단계를 포함하는,
    컨볼루션 신경망(CNN) 모델의 트레이닝 방법.
  8. 제1항에 있어서,
    상기 트레이닝 이미지 각각의 초기 분류 및 상기 분류 확률 벡터에 따라서 분류 에러를 계산하는 단계는,
    상기 트레이닝 이미지 각각의 초기 분류를 획득하는 단계;
    공식 Loss = -lnylabel 을 사용하여 상기 트레이닝 이미지 각각의 초기 분류 및 상기 분류 확률 벡터에 따라서 상기 트레이닝 이미지 각각의 분류 에러를 계산하는 단계 - Loss는 상기 트레이닝 이미지 각각의 분류 에러를 나타내고, label은 상기 트레이닝 이미지 각각의 초기 분류를 나타내며, yi 는 상기 트레이닝 이미지 각각의 분류 확률 벡터의 엘리먼트를 나타내고, ylabel 은 초기 분류에 대응하는 분류 확률을 나타냄 - ; 및
    모든 트레이닝 이미지의 분류 에러의 평균을 계산하고, 모든 트레이닝 이미지의 분류 에러의 평균을 분류 에러로서 결정하는 단계를 포함하는,
    컨볼루션 신경망(CNN) 모델의 트레이닝 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 복수의 트레이닝 이미지는 비인공 장면(natural scene)의 이미지이고, 상기 비인공 장면의 이미지는 상이한 언어의 문자를 포함하고, 상기 트레이닝되는 CNN 모델은 언어 인식 분류기인,
    컨볼루션 신경망(CNN) 모델의 트레이닝 방법.
  10. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 트레이닝되는 CNN 모델은 4개의 레벨의 컨볼루션 레이어 및 2개의 완전 연결 레이어를 포함하고, 각 레벨의 컨볼루션 레이어는 컨볼루션 커널 및 바이어스 행렬을 동일한 개수 또는 상이한 개수로 포함하고;
    적어도 하나의 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제2 특성 이미지를 획득하기 위해, 적어도 하나의 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제1 특성 이미지에 수평 풀링 연산을 수행하는 단계는,
    제2 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제2 특성 이미지를 획득하고, 제3 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제2 특성 이미지를 획득하고, 제4 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제2 특성 이미지를 획득하기 위해, 상기 제2 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제1 특성 이미지에, 상기 제3 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제1 특성 이미지에, 그리고 상기 제4 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제1 특성 이미지에 개별적으로 수평 풀링 연산을 수행하는 단계를 포함하고; 그리고
    적어도 하나의 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제2 특성 이미지에 따라서 상기 트레이닝 이미지 각각의 특성 벡터를 결정하는 단계는,
    상기 트레이닝 이미지 각각에 대해, 상기 제2 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지, 상기 제3 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지, 및 상기 제4 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지에 따라서 트레이닝 이미지의 특성 벡터를 결정하는 단계를 포함하는,
    컨볼루션 신경망(CNN) 모델의 트레이닝 방법.
  11. 컨볼루션 신경망(Convolution Neural Network: CNN) 모델의 트레이닝 디바이스로서,
    트레이닝되는 CNN 모델의 초기 모델 파라미터를 획득하도록 구성된 제1 획득 모듈 - 상기 초기 모델 파라미터는 각 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬과, 완전 연결 레이어의 초기 가중치 행렬 및 초기 바이어스 벡터를 포함함 -;
    복수의 트레이닝 이미지를 획득하도록 구성된 제2 획득 모듈;
    각 레벨의 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬을 사용하여, 각 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제1 특성 이미지를 획득하기 위해, 각 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각에 컨볼루션 연산 및 최대 풀링 연산을 수행하도록 구성된 특성 추출 모듈;
    적어도 하나의 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제2 특성 이미지를 획득하기 위해, 적어도 하나의 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제1 특성 이미지에 수평 풀링 연산을 수행하도록 구성된 수평 풀링 모듈;
    적어도 하나의 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제2 특성 이미지에 따라서 상기 트레이닝 이미지 각각의 특성 벡터를 결정하도록 구성된 제1 결정 모듈;
    상기 초기 가중치 행렬 및 상기 초기 바이어스 벡터에 따라서, 상기 각각의 특성 벡터를 프로세싱하여 상기 트레이닝 이미지 각각의 분류 확률 벡터를 획득하도록 구성된 프로세싱 모듈;
    상기 트레이닝 이미지 각각의 초기 분류 및 상기 분류 확률 벡터에 따라서 분류 에러를 계산하도록 구성된 계산 모듈;
    상기 분류 에러에 기초하여 상기 트레이닝되는 CNN 모델의 모델 파라미터를 조정하도록 구성된 조정 모듈;
    조정된 모델 파라미터 및 상기 복수의 트레이닝 이미지에 기초하여, 반복의 횟수가 미리 결정된 수에 도달할 때까지, 모델 파라미터의 조정 프로세스를 계속하도록 구성된 반복 모듈; 및
    상기 반복의 횟수가 미리 결정된 수에 도달할 때 획득되는 모델 파라미터를 트레이닝된 CNN 모델의 모델 파라미터로서 결정하도록 구성된 제2 결정 모듈
    을 포함하는,
    컨볼루션 신경망(CNN) 모델의 트레이닝 디바이스.
  12. 제11항에 있어서,
    상기 제2 획득 모듈은,
    복수의 초기 트레이닝 이미지를 획득하도록 구성된 제1 획득 유닛;
    상기 초기 트레이닝 이미지 각각에 대해, 초기 트레이닝 이미지의 폭-높이 비율을 유지하며, 상기 초기 트레이닝 이미지를 프로세싱하여 지정(specified) 높이를 가진 제1 이미지를 획득하도록 구성된 제1 프로세싱 유닛;
    상기 제1 이미지를 프로세싱하여 지정 폭을 가진 제2 이미지를 획득하도록 구성된 제2 프로세싱 유닛; 및
    상기 지정 높이와 상기 지정 폭을 가진 이미지를 상기 초기 트레이닝 이미지에 대응하는 트레이닝 이미지로 결정하도록 구성된 제1 결정 유닛을 포함하는,
    컨볼루션 신경망(CNN) 모델의 트레이닝 디바이스.
  13. 제11항에 있어서,
    상기 제2 획득 모듈은,
    복수의 초기 트레이닝 이미지를 획득하도록 구성된 제2 획득 유닛; 및
    상기 초기 트레이닝 이미지 각각에 대해, 상기 초기 트레이닝 이미지를 프로세싱하여, 초기 트레이닝 이미지의 폭-높이 비율을 유지하며 지정 높이를 가진 이미지를 획득하고, 그리고 상기 지정 높이에 대응하는 폭을 상기 초기 트레이닝 이미지의 폭으로서 결정하도록 구성된 제3 프로세싱 유닛을 포함하는,
    컨볼루션 신경망(CNN) 모델의 트레이닝 디바이스.
  14. 제12항에 있어서,
    상기 제2 프로세싱 유닛은,
    상기 제1 이미지의 폭이 상기 지정 폭보다 작은 경우, 상기 제1 이미지의 폭이 상기 지정 폭에 도달할 때까지 지정된 그레이-스케일(gray-scale) 값을 가진 픽셀로 상기 제1 이미지의 좌우 측면을 균일하게 채우도록 구성된 채움 서브유닛; 및
    상기 제1 이미지의 폭이 상기 지정 폭보다 큰 경우, 상기 제1 이미지의 폭이 상기 지정 폭에 도달할 때까지 상기 제1 이미지의 좌우 측면 상의 픽셀을 균일하게 잘라내도록 구성된 절단 서브유닛을 포함하는,
    컨볼루션 신경망(CNN) 모델의 트레이닝 디바이스.
  15. 제11항에 있어서,
    상기 특성 추출 모듈은,
    상기 트레이닝 이미지 각각에 대해, 이전 레벨의 컨볼루션 레이어에서의 제1 특성 이미지를 현재 컨볼루션 레이어에 입력하고, 그리고 상기 현재 컨볼루션 레이어의 초기 컨볼루션 커널 및 초기 바이어스 행렬을 사용하여, 상기 현재 컨볼루션 레이어의 컨볼루션 이미지를 획득하기 위해 상기 이전 레벨의 컨볼루션 레이어에서의 제1 특성 이미지에 컨볼루션 연산을 수행하도록 구성된 컨볼루션 유닛 - 상기 현재 컨볼루션 레이어가 제1 레벨의 컨볼루션 레이어인 경우, 상기 이전 레벨의 컨볼루션 레이어에서의 제1 특성 이미지는 트레이닝 이미지임 - ;
    상기 현재 컨볼루션 레이어에서 트레이닝 이미지의 제1 특성 이미지를 획득하기 위해 최대 풀링 연산을 상기 현재 컨볼루션 레이어의 컨볼루션 이미지에 수행하도록 구성된 최대 풀링 유닛; 및
    마지막 레벨의 컨볼루션 레이어에서 제1 특성 이미지를 획득하기 위해 상기 마지막 레벨의 컨볼루션 레이어에서 컨볼루션 연산 및 최대 풀링 연산이 수행될 때까지, 상기 현재 컨볼루션 레이어의 제1 특성 이미지를 다음 레벨의 컨볼루션 레이어에 전송하는 것을 계속하고 그리고 상기 다음 레벨의 컨볼루션 레이어에서 컨볼루션 연산 및 최대 풀링 연산을 수행하도록 구성된 전송 유닛을 포함하는,
    컨볼루션 신경망(CNN) 모델의 트레이닝 디바이스.
  16. 제11항에 있어서,
    상기 수평 풀링 모듈은,
    각 레벨의 컨볼루션 레이어에서 각각의 트레이닝 이미지의 제1 특성 이미지에 대해, 제1 특성 이미지는 미리 설정된 수의 이미지들을 포함하고, 컨볼루션 레이어의 제1 특성 이미지의 각각의 이미지의 각각의 열(row)의 엘리먼트(elements) 중 최대 값을 추출하도록 구성된 추출 유닛 - 상기 미리 설정된 수는 컨볼루션 레이어의 컨볼루션 커널의 수 또는 바이어스 행렬의 수와 동일함 - ;
    각각의 이미지의 픽셀의 배열에 따라서, 각각의 이미지의 모든 열로부터 추출된 최대 값들을 1차원 벡터로 배열하도록 구성된 배열 유닛; 및
    컨볼루션 레이어의 제2 특성 이미지를 획득하기 위해, 컨볼루션 레이어의 제1 특성 이미지의 모든 이미지들의 1차원 벡터를 결합하도록 구성된 결합 유닛을 포함하는,
    컨볼루션 신경망(CNN) 모델의 트레이닝 디바이스.
  17. 제16항에 있어서,
    상기 제1 결정 모듈은, 상기 트레이닝 이미지 각각에 대해, 각 레벨의 컨볼루션 레이어에서 트레이닝 이미지의 제2 특성 이미지의 모든 열의 엘리먼트를 처음부터 끝까지 연결하여 상기 트레이닝 이미지의 특성 벡터를 획득하도록 구성되는,
    컨볼루션 신경망(CNN) 모델의 트레이닝 디바이스.
  18. 제11항에 있어서,
    상기 계산 모듈은,
    상기 트레이닝 이미지 각각의 초기 분류를 획득하도록 구성된 획득 유닛;
    공식 Loss = -lnylabel 을 사용하여 상기 트레이닝 이미지 각각의 초기 분류 및 분류 확률 벡터에 따라서 상기 트레이닝 이미지 각각의 분류 에러를 계산하도록 구성된 제1 계산 유닛 - Loss는 상기 트레이닝 이미지 각각의 분류 에러를 나타내고, label은 상기 트레이닝 이미지 각각의 초기 분류를 나타내며, yi 는 상기 트레이닝 이미지 각각의 분류 확률 벡터의 엘리먼트를 나타내고, ylabel 은 초기 분류에 대응하는 분류 확률을 나타냄 - ; 및
    모든 트레이닝 이미지의 분류 에러의 평균을 계산하고, 모든 트레이닝 이미지의 분류 에러의 평균을 분류 에러로서 결정하도록 구성된 제2 계산 유닛을 포함하는,
    컨볼루션 신경망(CNN) 모델의 트레이닝 디바이스.
  19. 제11항 내지 제18항 중 어느 한 항에 있어서,
    상기 복수의 트레이닝 이미지는 비인공 장면의 이미지이고, 상기 비인공 장면의 이미지는 상이한 언어의 문자를 포함하고, 상기 트레이닝되는 CNN 모델은 언어 인식 분류기인,
    컨볼루션 신경망(CNN) 모델의 트레이닝 디바이스.
  20. 제11항 내지 제18항 중 어느 한 항에 있어서,
    상기 트레이닝되는 CNN 모델은 4개의 레벨의 컨볼루션 레이어 및 2개의 완전 연결 레이어를 포함하고, 각 레벨의 컨볼루션 레이어는 컨볼루션 커널 및 바이어스 행렬을 동일한 개수 또는 상이한 개수로 포함하고;
    상기 수평 풀링 모듈은, 제2 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제2 특성 이미지를 획득하고, 제3 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제2 특성 이미지를 획득하고, 제4 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제2 특성 이미지를 획득하기 위해, 상기 제2 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제1 특성 이미지에, 상기 제3 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제1 특성 이미지에, 그리고 상기 제4 레벨의 컨볼루션 레이어에서 상기 트레이닝 이미지 각각의 제1 특성 이미지에 개별적으로 수평 풀링 연산을 수행하도록 구성되고; 그리고
    상기 제1 결정 모듈은, 상기 트레이닝 이미지 각각에 대해, 상기 제2 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지, 상기 제3 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지, 및 상기 제4 레벨의 컨볼루션 레이어에서의 트레이닝 이미지의 제2 특성 이미지에 따라서 트레이닝 이미지의 특성 벡터를 결정하도록 구성되는,
    컨볼루션 신경망(CNN) 모델의 트레이닝 디바이스.
  21. 서버로서,
    하나 이상의 프로세서,
    상기 하나 이상의 프로세서에 연결된 메모리를 포함하고,
    상기 메모리는, 상기 하나 이상의 프로세서에 대해 실행가능한 명령을 저장하도록 구성되고,
    상기 하나 이상의 프로세서는 상기 메모리에 저장된 명령을 실행하여, 제1항 내지 제8항 중 어느 한 항에 따른 컨볼루션 신경망(CNN) 모델의 트레이닝 방법을 실행하도록 구성되는,
    서버.
KR1020177018163A 2015-04-02 2016-03-25 컨볼루션 신경망 모델의 트레이닝 방법 및 장치 KR101887558B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510154027.0A CN106156807B (zh) 2015-04-02 2015-04-02 卷积神经网络模型的训练方法及装置
CN201510154027.0 2015-04-02
PCT/CN2016/077280 WO2016155564A1 (zh) 2015-04-02 2016-03-25 卷积神经网络模型的训练方法及装置

Publications (2)

Publication Number Publication Date
KR20170091140A KR20170091140A (ko) 2017-08-08
KR101887558B1 true KR101887558B1 (ko) 2018-08-10

Family

ID=57004224

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177018163A KR101887558B1 (ko) 2015-04-02 2016-03-25 컨볼루션 신경망 모델의 트레이닝 방법 및 장치

Country Status (5)

Country Link
US (2) US9977997B2 (ko)
JP (1) JP6257848B1 (ko)
KR (1) KR101887558B1 (ko)
CN (1) CN106156807B (ko)
WO (1) WO2016155564A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023219277A1 (ko) * 2022-05-09 2023-11-16 삼성전자 주식회사 영상 처리 장치 및 그 동작 방법
US11941871B2 (en) 2021-07-30 2024-03-26 Deepx Co., Ltd. Control method of image signal processor and control device for performing the same

Families Citing this family (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180027887A (ko) * 2016-09-07 2018-03-15 삼성전자주식회사 뉴럴 네트워크에 기초한 인식 장치 및 뉴럴 네트워크의 트레이닝 방법
US10366302B2 (en) * 2016-10-10 2019-07-30 Gyrfalcon Technology Inc. Hierarchical category classification scheme using multiple sets of fully-connected networks with a CNN based integrated circuit as feature extractor
KR102313773B1 (ko) 2016-11-07 2021-10-19 삼성전자주식회사 신경망 학습에 기반한 입력 처리 방법 및 이를 위한 장치
WO2018084473A1 (ko) * 2016-11-07 2018-05-11 삼성전자 주식회사 신경망 학습에 기반한 입력 처리 방법 및 이를 위한 장치
CN108122032B (zh) * 2016-11-29 2020-02-14 华为技术有限公司 一种神经网络模型训练方法、装置、芯片和系统
CN108154222B (zh) * 2016-12-02 2020-08-11 北京市商汤科技开发有限公司 深度神经网络训练方法和系统、电子设备
WO2018099473A1 (zh) * 2016-12-02 2018-06-07 北京市商汤科技开发有限公司 场景分析方法和系统、电子设备
CN106790019B (zh) * 2016-12-14 2019-10-11 北京天融信网络安全技术有限公司 基于特征自学习的加密流量识别方法及装置
CN106815835A (zh) * 2017-01-10 2017-06-09 北京邮电大学 损伤识别方法及装置
CN106682736A (zh) * 2017-01-18 2017-05-17 北京小米移动软件有限公司 图像识别方法及装置
CN106709532B (zh) * 2017-01-25 2020-03-10 京东方科技集团股份有限公司 图像处理方法和装置
CN106909901B (zh) * 2017-02-28 2020-06-05 北京京东尚科信息技术有限公司 从图像中检测物体的方法及装置
US10692000B2 (en) 2017-03-20 2020-06-23 Sap Se Training machine learning models
US10395141B2 (en) 2017-03-20 2019-08-27 Sap Se Weight initialization for machine learning models
CN110462637B (zh) * 2017-03-24 2022-07-19 华为技术有限公司 神经网络数据处理装置和方法
CN106951872B (zh) * 2017-03-24 2020-11-06 江苏大学 一种基于无监督深度模型与层次属性的行人再识别方法
US11037330B2 (en) * 2017-04-08 2021-06-15 Intel Corporation Low rank matrix compression
US11238318B2 (en) * 2017-04-13 2022-02-01 Siemens Healthcare Diagnostics Inc. Methods and apparatus for HILN characterization using convolutional neural network
CN107194464B (zh) * 2017-04-25 2021-06-01 北京小米移动软件有限公司 卷积神经网络模型的训练方法及装置
CN107229968B (zh) * 2017-05-24 2021-06-29 北京小米移动软件有限公司 梯度参数确定方法、装置及计算机可读存储介质
CN108304936B (zh) * 2017-07-12 2021-11-16 腾讯科技(深圳)有限公司 机器学习模型训练方法和装置、表情图像分类方法和装置
CN107464216A (zh) * 2017-08-03 2017-12-12 济南大学 一种基于多层卷积神经网络的医学图像超分辨率重构方法
KR101880901B1 (ko) 2017-08-09 2018-07-23 펜타시큐리티시스템 주식회사 기계 학습 방법 및 장치
US10262240B2 (en) * 2017-08-14 2019-04-16 Microsoft Technology Licensing, Llc Fast deep neural network training
CN113762252B (zh) * 2017-08-18 2023-10-24 深圳市道通智能航空技术股份有限公司 无人机智能跟随目标确定方法、无人机和遥控器
US10740607B2 (en) 2017-08-18 2020-08-11 Autel Robotics Co., Ltd. Method for determining target through intelligent following of unmanned aerial vehicle, unmanned aerial vehicle and remote control
KR101984274B1 (ko) * 2017-08-30 2019-05-30 주식회사 한화 감시 정찰용 표적 탐지 및 형상 식별 장치와 그 방법
US9953437B1 (en) * 2017-10-18 2018-04-24 StradVision, Inc. Method and device for constructing a table including information on a pooling type and testing method and testing device using the same
KR102055359B1 (ko) * 2017-10-24 2019-12-12 에스케이텔레콤 주식회사 연산 가속화가 적용된 신경망 모델의 생성 및 활용을 위한 장치 및 방법
CN109754359B (zh) 2017-11-01 2021-12-07 腾讯科技(深圳)有限公司 一种应用于卷积神经网络的池化处理的方法及系统
US10599978B2 (en) 2017-11-03 2020-03-24 International Business Machines Corporation Weighted cascading convolutional neural networks
WO2019107881A1 (ko) * 2017-11-28 2019-06-06 한국전자통신연구원 영상 변환 신경망 및 영상 역변환 신경망을 이용한 영상 처리 방법 및 장치
EP3495992A1 (en) * 2017-12-07 2019-06-12 IMRA Europe SAS Danger ranking using end to end deep neural network
CN108062547B (zh) * 2017-12-13 2021-03-09 北京小米移动软件有限公司 文字检测方法及装置
EP3499415A1 (en) * 2017-12-14 2019-06-19 Axis AB Method and image processing entity for applying a convolutional neural network to an image
CN109934836B (zh) * 2017-12-15 2023-04-18 中国科学院深圳先进技术研究院 一种图像锐化的检测方法
KR102030132B1 (ko) * 2017-12-15 2019-10-08 서강대학교산학협력단 악성 코드 검출 방법 및 시스템
CN108124487B (zh) * 2017-12-22 2023-04-04 达闼机器人股份有限公司 云端抄表方法及装置
KR102129161B1 (ko) * 2017-12-29 2020-07-01 중앙대학교 산학협력단 컨볼루션 신경망의 하이퍼파라미터를 설정하는 방법 및 이를 수행하는 단말 장치
KR102026280B1 (ko) * 2018-01-10 2019-11-26 네이버 주식회사 딥 러닝을 이용한 씬 텍스트 검출 방법 및 시스템
US11107229B2 (en) 2018-01-10 2021-08-31 Samsung Electronics Co., Ltd. Image processing method and apparatus
JP6854248B2 (ja) * 2018-01-18 2021-04-07 株式会社日立製作所 境界探索テスト支援装置および境界探索テスト支援方法
CN110119505A (zh) * 2018-02-05 2019-08-13 阿里巴巴集团控股有限公司 词向量生成方法、装置以及设备
KR102161690B1 (ko) * 2018-02-05 2020-10-05 삼성전자주식회사 전자 장치 및 그 제어 방법
CN108333959A (zh) * 2018-03-09 2018-07-27 清华大学 一种基于卷积神经网络模型的机车节能操纵方法
KR102154834B1 (ko) 2018-03-29 2020-09-10 국민대학교산학협력단 저전력 및 고속 연산을 위한 dram용 비트와이즈 컨볼루션 회로
CN108830139A (zh) * 2018-04-27 2018-11-16 北京市商汤科技开发有限公司 人体关键点的深度前后关系预测方法、装置、介质及设备
EP3794505A4 (en) * 2018-05-14 2022-05-18 Nokia Technologies OY METHOD AND DEVICE FOR IMAGE RECOGNITION
KR102183672B1 (ko) * 2018-05-25 2020-11-27 광운대학교 산학협력단 합성곱 신경망에 대한 도메인 불변 사람 분류기를 위한 연관성 학습 시스템 및 방법
JP7020312B2 (ja) * 2018-06-15 2022-02-16 日本電信電話株式会社 画像特徴学習装置、画像特徴学習方法、画像特徴抽出装置、画像特徴抽出方法、及びプログラム
US20200004815A1 (en) * 2018-06-29 2020-01-02 Microsoft Technology Licensing, Llc Text entity detection and recognition from images
KR102176695B1 (ko) * 2018-06-29 2020-11-09 포항공과대학교 산학협력단 뉴럴 네트워크 하드웨어
CN109165666A (zh) * 2018-07-05 2019-01-08 南京旷云科技有限公司 多标签图像分类方法、装置、设备及存储介质
CN110795976B (zh) 2018-08-03 2023-05-05 华为云计算技术有限公司 一种训练物体检测模型的方法、装置以及设备
CN109086878B (zh) * 2018-10-19 2019-12-17 电子科技大学 保持旋转不变性的卷积神经网络模型及其训练方法
KR20200052440A (ko) * 2018-10-29 2020-05-15 삼성전자주식회사 전자 장치 및 전자 장치의 제어 방법
CN111222624B (zh) * 2018-11-26 2022-04-29 深圳云天励飞技术股份有限公司 一种并行计算方法及装置
KR102190304B1 (ko) * 2018-11-30 2020-12-14 서울대학교 산학협력단 Gpu 연산 기반의 딥러닝을 이용한 선호 콘텐츠 추천 장치 및 그 방법
US11494645B2 (en) * 2018-12-06 2022-11-08 Egis Technology Inc. Convolutional neural network processor and data processing method thereof
CN109740534B (zh) * 2018-12-29 2021-06-25 北京旷视科技有限公司 图像处理方法、装置及处理设备
US11557107B2 (en) 2019-01-02 2023-01-17 Bank Of America Corporation Intelligent recognition and extraction of numerical data from non-numerical graphical representations
US10423860B1 (en) * 2019-01-22 2019-09-24 StradVision, Inc. Learning method and learning device for object detector based on CNN to be used for multi-camera or surround view monitoring using image concatenation and target object merging network, and testing method and testing device using the same
US10387752B1 (en) * 2019-01-22 2019-08-20 StradVision, Inc. Learning method and learning device for object detector with hardware optimization based on CNN for detection at distance or military purpose using image concatenation, and testing method and testing device using the same
US10430691B1 (en) * 2019-01-22 2019-10-01 StradVision, Inc. Learning method and learning device for object detector based on CNN, adaptable to customers' requirements such as key performance index, using target object merging network and target region estimating network, and testing method and testing device using the same to be used for multi-camera or surround view monitoring
US10402695B1 (en) * 2019-01-23 2019-09-03 StradVision, Inc. Learning method and learning device for convolutional neural network using 1×H convolution for image recognition to be used for hardware optimization, and testing method and testing device using the same
US10387753B1 (en) * 2019-01-23 2019-08-20 StradVision, Inc. Learning method and learning device for convolutional neural network using 1×1 convolution for image recognition to be used for hardware optimization, and testing method and testing device using the same
US10387754B1 (en) * 2019-01-23 2019-08-20 StradVision, Inc. Learning method and learning device for object detector based on CNN using 1×H convolution to be used for hardware optimization, and testing method and testing device using the same
CN109886279B (zh) * 2019-01-24 2023-09-29 平安科技(深圳)有限公司 图像处理方法、装置、计算机设备及存储介质
TWI761671B (zh) * 2019-04-02 2022-04-21 緯創資通股份有限公司 活體偵測方法與活體偵測系統
CN110516087B (zh) * 2019-04-23 2021-12-07 广州麦仑信息科技有限公司 一种大规模分布式全掌脉络数据的闪速搜索比对方法
EP3745153A1 (en) * 2019-05-28 2020-12-02 Koninklijke Philips N.V. A method for motion artifact detection
CN110245695A (zh) * 2019-05-30 2019-09-17 华中科技大学 一种基于卷积神经网络的tbm岩渣大小等级识别方法
KR102036785B1 (ko) * 2019-06-24 2019-11-26 김길곤 엘리베이터의 유지 및 보수의 공정을 제어하기 위한 방법 및 장치
CN110334705B (zh) * 2019-06-25 2021-08-03 华中科技大学 一种结合全局和局部信息的场景文本图像的语种识别方法
CN110276411B (zh) * 2019-06-28 2022-11-18 腾讯科技(深圳)有限公司 图像分类方法、装置、设备、存储介质和医疗电子设备
CN110349237B (zh) * 2019-07-18 2021-06-18 华中科技大学 基于卷积神经网络的快速体成像方法
CN112241740B (zh) * 2019-07-19 2024-03-26 新华三技术有限公司 一种特征提取方法及装置
CN110569781B (zh) * 2019-09-05 2022-09-09 河海大学常州校区 一种基于改进胶囊网络的时间序列分类方法
US10943353B1 (en) 2019-09-11 2021-03-09 International Business Machines Corporation Handling untrainable conditions in a network architecture search
US11023783B2 (en) * 2019-09-11 2021-06-01 International Business Machines Corporation Network architecture search with global optimization
CN110955590A (zh) * 2019-10-15 2020-04-03 北京海益同展信息科技有限公司 界面检测方法、图像处理方法、装置、电子设备及存储介质
CN110704197B (zh) * 2019-10-17 2022-12-09 北京小米移动软件有限公司 处理内存访问开销的方法、装置及介质
WO2021085785A1 (en) * 2019-10-29 2021-05-06 Samsung Electronics Co., Ltd. Electronic apparatus and method for controlling thereof
CN111178446B (zh) 2019-12-31 2023-08-04 歌尔股份有限公司 一种基于神经网络的目标分类模型的优化方法、装置
CN111353430A (zh) * 2020-02-28 2020-06-30 深圳壹账通智能科技有限公司 人脸识别方法和系统
CN111353542B (zh) * 2020-03-03 2023-09-19 腾讯科技(深圳)有限公司 图像分类模型的训练方法、装置、计算机设备和存储介质
CN111429334A (zh) * 2020-03-26 2020-07-17 光子算数(北京)科技有限责任公司 一种数据处理方法、装置、存储介质及电子设备
US11436450B2 (en) 2020-03-31 2022-09-06 The Boeing Company Systems and methods for model-based image analysis
KR102333545B1 (ko) * 2020-04-28 2021-12-01 영남대학교 산학협력단 합성곱 신경망 기반의 영상 학습 방법 및 이를 수행하기 위한 장치
CN113688840A (zh) * 2020-05-19 2021-11-23 武汉Tcl集团工业研究院有限公司 图像处理模型的生成方法、处理方法、存储介质及终端
CN111666931A (zh) * 2020-05-21 2020-09-15 平安科技(深圳)有限公司 基于混合卷积文字图像识别方法、装置、设备及存储介质
CN111860184B (zh) * 2020-06-23 2024-04-16 广东省特种设备检测研究院珠海检测院 一种自动扶梯机械故障诊断方法和系统
CN112016599B (zh) * 2020-08-13 2023-09-15 驭势科技(浙江)有限公司 用于图像检索的神经网络训练方法、装置及电子设备
CN112085128B (zh) * 2020-10-27 2022-06-07 苏州浪潮智能科技有限公司 一种基于脉动阵列的图像识别方法、装置和介质
US20220138535A1 (en) * 2020-11-04 2022-05-05 Intrinsic Innovation Llc Source-agnostic image processing
US11170581B1 (en) * 2020-11-12 2021-11-09 Intrinsic Innovation Llc Supervised domain adaptation
CN112580662A (zh) * 2020-12-09 2021-03-30 中国水产科学研究院渔业机械仪器研究所 一种基于图像特征识别鱼体方向的方法及系统
AU2021204756A1 (en) * 2021-05-21 2022-12-08 Soul Machines Transfer learning in image recognition systems
CN114035120A (zh) * 2021-11-04 2022-02-11 合肥工业大学 基于改进cnn的三电平逆变器开路故障诊断方法及系统
CN115082837B (zh) * 2022-07-27 2023-07-04 新沂市新南环保产业技术研究院有限公司 对pet瓶进行灌装纯净水的流速控制系统及其控制方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012208597A (ja) 2011-03-29 2012-10-25 Canon Inc パターン識別装置、パターン識別方法及びプログラム
CN103996056A (zh) 2014-04-08 2014-08-20 浙江工业大学 一种基于深度学习的纹身图像分类方法
US20150032449A1 (en) 2013-07-26 2015-01-29 Nuance Communications, Inc. Method and Apparatus for Using Convolutional Neural Networks in Speech Recognition
CN104463172A (zh) 2014-12-09 2015-03-25 中国科学院重庆绿色智能技术研究院 基于人脸特征点形状驱动深度模型的人脸特征提取方法
CN104463194A (zh) 2014-11-04 2015-03-25 深圳市华尊科技有限公司 一种人车分类方法及装置
CN104463241A (zh) 2014-10-31 2015-03-25 北京理工大学 一种智能交通监控系统中的车辆类型识别方法
US20160140424A1 (en) 2014-11-13 2016-05-19 Nec Laboratories America, Inc. Object-centric Fine-grained Image Classification
JP2016153984A (ja) 2015-02-20 2016-08-25 株式会社デンソーアイティーラボラトリ ニューラルネットワーク処理装置、ニューラルネットワーク処理方法、検出装置、検出方法、および、車両

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4607633B2 (ja) * 2005-03-17 2011-01-05 株式会社リコー 文字方向識別装置、画像形成装置、プログラム、記憶媒体および文字方向識別方法
US9226047B2 (en) * 2007-12-07 2015-12-29 Verimatrix, Inc. Systems and methods for performing semantic analysis of media objects
US20120213426A1 (en) * 2011-02-22 2012-08-23 The Board Of Trustees Of The Leland Stanford Junior University Method for Implementing a High-Level Image Representation for Image Analysis
US8867828B2 (en) * 2011-03-04 2014-10-21 Qualcomm Incorporated Text region detection system and method
US10074054B2 (en) * 2013-05-30 2018-09-11 President And Fellows Of Harvard College Systems and methods for Bayesian optimization using non-linear mapping of input
US9465985B2 (en) * 2013-06-09 2016-10-11 Apple Inc. Managing real-time handwriting recognition
US9495620B2 (en) * 2013-06-09 2016-11-15 Apple Inc. Multi-script handwriting recognition using a universal recognizer
EP3036714B1 (en) * 2013-08-23 2019-12-04 Harman International Industries, Incorporated Unstructured road boundary detection
WO2015112932A1 (en) * 2014-01-25 2015-07-30 Handzel Amir Aharon Automated histological diagnosis of bacterial infection using image analysis
US20150347860A1 (en) * 2014-05-30 2015-12-03 Apple Inc. Systems And Methods For Character Sequence Recognition With No Explicit Segmentation
US9251431B2 (en) * 2014-05-30 2016-02-02 Apple Inc. Object-of-interest detection and recognition with split, full-resolution image processing pipeline
CN104102919B (zh) * 2014-07-14 2017-05-24 同济大学 一种有效防止卷积神经网络过拟合的图像分类方法
JP6282193B2 (ja) * 2014-07-28 2018-02-21 クラリオン株式会社 物体検出装置
US9846977B1 (en) * 2014-09-02 2017-12-19 Metromile, Inc. Systems and methods for determining vehicle trip information
US9524450B2 (en) * 2015-03-04 2016-12-20 Accenture Global Services Limited Digital image processing using convolutional neural networks
JP6380209B2 (ja) * 2015-03-31 2018-08-29 ブラザー工業株式会社 画像処理プログラム、画像処理装置、及び、画像処理方法
US10115055B2 (en) * 2015-05-26 2018-10-30 Booking.Com B.V. Systems methods circuits and associated computer executable code for deep learning based natural language understanding
US9767381B2 (en) * 2015-09-22 2017-09-19 Xerox Corporation Similarity-based detection of prominent objects using deep CNN pooling layers as features
US10068171B2 (en) * 2015-11-12 2018-09-04 Conduent Business Services, Llc Multi-layer fusion in a convolutional neural network for image classification
US10871548B2 (en) * 2015-12-04 2020-12-22 Fazecast, Inc. Systems and methods for transient acoustic event detection, classification, and localization
US20170249339A1 (en) * 2016-02-25 2017-08-31 Shutterstock, Inc. Selected image subset based search
US10354168B2 (en) * 2016-04-11 2019-07-16 A2Ia S.A.S. Systems and methods for recognizing characters in digitized documents
US9904871B2 (en) * 2016-04-14 2018-02-27 Microsoft Technologies Licensing, LLC Deep convolutional neural network prediction of image professionalism

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012208597A (ja) 2011-03-29 2012-10-25 Canon Inc パターン識別装置、パターン識別方法及びプログラム
US20150032449A1 (en) 2013-07-26 2015-01-29 Nuance Communications, Inc. Method and Apparatus for Using Convolutional Neural Networks in Speech Recognition
CN103996056A (zh) 2014-04-08 2014-08-20 浙江工业大学 一种基于深度学习的纹身图像分类方法
CN104463241A (zh) 2014-10-31 2015-03-25 北京理工大学 一种智能交通监控系统中的车辆类型识别方法
CN104463194A (zh) 2014-11-04 2015-03-25 深圳市华尊科技有限公司 一种人车分类方法及装置
US20160140424A1 (en) 2014-11-13 2016-05-19 Nec Laboratories America, Inc. Object-centric Fine-grained Image Classification
CN104463172A (zh) 2014-12-09 2015-03-25 中国科学院重庆绿色智能技术研究院 基于人脸特征点形状驱动深度模型的人脸特征提取方法
JP2016153984A (ja) 2015-02-20 2016-08-25 株式会社デンソーアイティーラボラトリ ニューラルネットワーク処理装置、ニューラルネットワーク処理方法、検出装置、検出方法、および、車両

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11941871B2 (en) 2021-07-30 2024-03-26 Deepx Co., Ltd. Control method of image signal processor and control device for performing the same
WO2023219277A1 (ko) * 2022-05-09 2023-11-16 삼성전자 주식회사 영상 처리 장치 및 그 동작 방법

Also Published As

Publication number Publication date
US10607120B2 (en) 2020-03-31
US20170220904A1 (en) 2017-08-03
JP6257848B1 (ja) 2018-01-10
US9977997B2 (en) 2018-05-22
CN106156807B (zh) 2020-06-02
CN106156807A (zh) 2016-11-23
KR20170091140A (ko) 2017-08-08
WO2016155564A1 (zh) 2016-10-06
JP2018503152A (ja) 2018-02-01
US20180225552A1 (en) 2018-08-09

Similar Documents

Publication Publication Date Title
KR101887558B1 (ko) 컨볼루션 신경망 모델의 트레이닝 방법 및 장치
US10956771B2 (en) Image recognition method, terminal, and storage medium
CN110232696B (zh) 一种图像区域分割的方法、模型训练的方法及装置
US20210326574A1 (en) Face detection method, apparatus, and device, and storage medium
CN110110145B (zh) 描述文本生成方法及装置
EP3792869A1 (en) Video deblurring method and apparatus, and storage medium and electronic apparatus
CN109784424A (zh) 一种图像分类模型训练的方法、图像处理的方法及装置
CN110110045B (zh) 一种检索相似文本的方法、装置以及存储介质
CN110555337B (zh) 一种指示对象的检测方法、装置以及相关设备
CN110147533B (zh) 编码方法、装置、设备及存储介质
CN107133354B (zh) 图像描述信息的获取方法及装置
CN113284142B (zh) 图像检测方法、装置、计算机可读存储介质及计算机设备
CN108921941A (zh) 图像处理方法、装置、存储介质和电子设备
CN110147532B (zh) 编码方法、装置、设备及存储介质
CN109409235B (zh) 图像识别方法和装置、电子设备、计算机可读存储介质
CN110162604B (zh) 语句生成方法、装置、设备及存储介质
CN110516113B (zh) 一种视频分类的方法、视频分类模型训练的方法及装置
CN107704514A (zh) 一种照片管理方法、装置及计算机可读存储介质
CN107423663A (zh) 一种图像处理方法及终端
CN112036307A (zh) 图像处理方法及装置、电子设备和存储介质
CN115035596B (zh) 行为检测的方法及装置、电子设备和存储介质
CN110377914A (zh) 字符识别方法、装置及存储介质
CN109685802A (zh) 一种低延迟的视频分割实时预览方法
CN111310701B (zh) 手势识别方法、装置、设备及存储介质
CN106686403A (zh) 一种视频预览图生成方法、装置、服务器以及系统

Legal Events

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