KR20190004429A - Method and apparatus for determining training of unknown data related to neural networks - Google Patents
Method and apparatus for determining training of unknown data related to neural networks Download PDFInfo
- Publication number
- KR20190004429A KR20190004429A KR1020170084646A KR20170084646A KR20190004429A KR 20190004429 A KR20190004429 A KR 20190004429A KR 1020170084646 A KR1020170084646 A KR 1020170084646A KR 20170084646 A KR20170084646 A KR 20170084646A KR 20190004429 A KR20190004429 A KR 20190004429A
- Authority
- KR
- South Korea
- Prior art keywords
- neural network
- network model
- learning
- input value
- clustering
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
Abstract
Description
본 발명은 신경망 모델(Neural Networks)에서 미지의 데이터에 대한 재학습 여부 결정 방법, 장치 및 프로그램에 관한 것이다. The present invention relates to a method, apparatus, and program for determining whether or not to re-learn unknown data in a neural network.
신경망 모델(Neural Network model)은 생물학에서의 뉴런 구조로부터 착안된 지도 학습(supervised learning) 알고리즘이다. 신경망 모델의 기본적인 작동 원리는 여러 개의 뉴런들을 상호 연결하여 입력값에 대한 최적의 출력값을 예측하는 것이다. 통계적인 관점에서 보면 신경망 모델은 입력 변수의 선형 결합에 비선형 함수를 취하는 사영추적회귀로 볼 수 있다. Neural Network model is a supervised learning algorithm based on neuron structure in biology. The basic working principle of the neural network model is to interconnect several neurons to predict the optimal output value for the input values. From a statistical point of view, the neural network model can be viewed as a projective tracking regression that takes a nonlinear function in the linear combination of input variables.
도 1은 다층 신경망 모델(딥러닝 또는 심층 신경망 모델)의 구조를 도시한 모식도이다. 도 1에 도시된 바와 같이 다층 신경망 모델은 입력층(input layer), 은닉층(hidden layer), 출력층(output layer)으로 구성된다. 입력층은 각 입력변수에 대응되는 노드로 구성되며, 노드의 수는 입력변수의 개수와 같다. 은닉층은 입력층으로부터 전달되는 변수값들의 선형 결합을 시그모이드 함수와 같은 비선형 함수로 처리하여 출력층 또는 다른 은닉층에 전달하는 역할을 한다(최근에는 Back propagation에서 chain rule을 적용하면서 error가 앞단의 layer에서 희석되는 vanishing gradient 문제가 발생되어 시그모이드 함수 대신, ReLU를 일반적으로 이용한다). 출력층은 출력 변수에 대응되는 노드로서 분류 모형에서는 클래스의 수만큼 출력 노드가 생성된다. 1 is a schematic diagram showing the structure of a multilayer neural network model (deep running or a deep neural network model). As shown in FIG. 1, a multi-layer neural network model is composed of an input layer, a hidden layer, and an output layer. The input layer consists of nodes corresponding to each input variable, and the number of nodes is equal to the number of input variables. The hidden layer processes the linear combination of the variable values transmitted from the input layer into a nonlinear function such as a sigmoid function and transmits it to the output layer or other hidden layer (in recent years, applying the chain rule in Back propagation, A dilution vanishing gradient problem occurs, and ReLU is generally used instead of the sigmoid function). The output layer is a node corresponding to the output variable. In the classification model, output nodes are generated by the number of classes.
도 2는 노드에서의 계산 과정을 도시한 모식도이다. 도 2에 도시된 바와 같이, 각각의 노드에서는 실제로 연산이 일어나는데, 이 연산 과정은 인간의 신경망을 구성하는 뉴런에서 일어나는 과정을 모사하도록 수학적으로 설계되어있다. 노드는 일정 크기 이상의 자극을 받으면 반응을 하는데, 그 반응의 크기는 바이어스(bias) 값을 제외하고 입력 값과 노드의 계수(또는 가중치, weights)를 곱한 값과 대략 비례한다. 일반적으로 노드는 여러 개의 입력을 받으며 입력의 개수만큼 계수를 가지고 있다. 따라서 이 계수를 조절함으로써 여러 입력에 다른 가중치를 부여할 수 있다. 최종적으로 곱한 값들은 전부 더해지고 그 합은 활성 함수(activation function)의 입력으로 들어가게 된다. 활성 함수의 결과가 노드의 출력에 해당하며 이 출력값이 궁극적으로 분류나 회귀 분석에 쓰이게 된다. 신경망 모델의 각 층은 적어도 하나의 노드로 이루어져 있으며 입력값에 따라 각 노드의 활성화/비활성화 여부가 결정된다. 입력 데이터는 첫 번째 층(입력층, input layer)의 입력이 되며 그 이후엔 각 층의 출력이 다시 다음 층의 입력이 된다. 모든 계수는 학습 과정에서 계속 조금씩 변하는데, 결과적으로 각 노드가 어떤 입력을 중요하게 여기는지를 반영한다. 그리고 신경망 모델의 '학습(training)'은 이 계수를 업데이트하는 과정이다.2 is a schematic diagram showing a calculation process in a node. As shown in FIG. 2, an actual computation takes place at each node, and this computation process is mathematically designed to simulate the processes occurring in neurons constituting a human neural network. A node responds when it receives a stimulus of a certain size or more. The magnitude of the response is approximately proportional to the input value multiplied by the coefficient (or weight) of the node, excluding the bias value. In general, a node receives multiple inputs and has coefficients as many as the number of inputs. Thus, we can assign different weights to different inputs by adjusting this coefficient. The final multiplied values are all added and the sum is input to the activation function. The result of the active function corresponds to the output of the node, which is ultimately used for classification and regression analysis. Each layer of the neural network model is made up of at least one node, and the activation / deactivation of each node is determined according to the input value. The input data is the input of the first layer (input layer), after which the output of each layer is again the input of the next layer. All the coefficients change little by little in the learning process, and as a result they reflect which inputs each node regards as important. And 'training' of the neural network model is the process of updating this coefficient.
다층 신경망 모델, 즉 딥러닝에서 가장 문제되는 것은 과적합(overfitting) 문제이다. 과적합(Overfitting)은 주어진 데이터의 양에 비해 모델의 복잡도(complexity)가 높으면 발생하게 된다. 안타깝게도 신경망(neural network)이 깊어질수록 모델의 복잡도는 exponential하게 증가하게 된다. 그렇기 때문에 거의 무한한 표현형을 학습할 수 있는 deep network가 좋다는 것을 다들 알고 있음에도 불구하고, 너무나 과적합(overfitting)이 심하게 발생하기 때문에 Marvin Minsky 교수의 1969년 Perceptrons 이론에 의해 neural network 연구가 멈추게 된 것이다. 하지만, 2007~2008년 즈음하여 과적합을 막기 위한 새로운 initialization 방법인 RBM(Restricted Boltzmann Machine)과 CNN(Convolutional Neural Network)이 제안되면서, 다시 딥러닝 연구가 활발하게 진행되었다. The most problematic of the multi-layer neural network model, deep run, is the overfitting problem. Overfitting occurs when the complexity of the model is higher than the amount of data given. Unfortunately, as the neural network deepens, the complexity of the model increases exponentially. This is why the neural network study by Marvin Minsky's 1969 Perceptrons theory was stopped because, although everyone knows that a deep network that can learn almost infinite phenotype is good, overfitting is so severe. However, as the new initialization methods RBM (Restricted Boltzmann Machine) and CNN (Convolutional Neural Network) were proposed to prevent over-integration during 2007 ~ 2008, deep research was actively conducted again.
특히, RBM은 DBN(Deep Belief Network)을 구성하는 요소로 이용되고, unsupervised RBM(restricted Boltzmann machine)을 통해 학습시킬 feedforward neural network의 각 층을 효과적으로 사전훈련(pre-training)하여 과적합(overfitting)을 방지할 수 있는 수준의 initialize point를 잡았고, 이를 다시 supervised back propagation를 사용하는 형태로 학습을 진행한다.In particular, the RBM is used as a component of the DBN (Deep Belief Network) and is effectively pre-training each layer of the feedforward neural network to be learned through an unsupervised RBM (overbitting) , And then proceeds to the learning using supervised back propagation.
하지만, NIPS 2006에 발표된 Bengio 교수 연구팀의 Greedy layer-wise training of deep networks 연구와 NIPS 2007에 발표된 Hinton 교수 연구팀의 A fast learning algorithm for deep belief nets 두 논문을 통해 제안되었던 RBM과 DBN 같은 unsupervised pretraining method들은 최근 실무에서 사용되지는 않는다. 지금은 데이터가 충분히 많을 경우 이런 방식으로 weight를 initialization하는 것보다 random initialization의 성능이 훨씬 우수하다는 것이 알려져 있기 때문이다. Random initialization의 일환으로 Drop-out이라는 개념이 소개되었고, 최근에는 대부분이 Drop-out 방식을 이용하고 있다. In this paper, we propose a novel fast learning algorithm for deep nervous system (RNBM), which is based on NIPS 2006, methods are not used in recent work. It is now known that the performance of random initialization is much better than initializing the weight in this way if the data is large enough. As a part of random initialization, the concept of drop-out has been introduced, and most of them are using drop-out method recently.
도 3은 Drop-out 방식을 도시한 모식도이다. 도 3에 도시된 바와 같이, Drop-out 방식은 매 학습시 은닉층에서 모든 neuron을 사용하는 것이 아니라 50% 정도의 neuron을 사용한다. 하나의 딥러닝에서 여러 개의 작은 neural network이 앙상블(ensemble)되어진 효과가 있고, 앙상블은 과적합이 크게 줄어든다고 알려져 있다. 또한, 비슷한 weight를 갖는 뉴런들이 줄어들게 되어서 중복된 판단을 하는 뉴런들이 줄어들게 되어 뉴런을 효율적으로 사용가능한 장점이 있다.3 is a schematic diagram showing a drop-out method. As shown in FIG. 3, in the drop-out method, neurons of about 50% are used instead of all neurons in the hidden layer in each learning. In one deep run, several small neural networks have been ensembled, and ensembles are known to greatly reduce over-sum. In addition, neurons with similar weights are reduced, which reduces the number of overlapping neurons, which makes it possible to use neurons efficiently.
또한, 최근에는 ReLU(Rectified Linear Unit) 라는 활성함수(activation function)로 느린 학습시간과 과적합 문제 등을 해결하고 있다. 도 4는 ReLU 활성함수를 도시한 그래프이다. 도 4에 도시된 바와 같이, 기존의 sigmoid 함수는 기울기 하강(Gradient Descent)를 여러 층으로 해나갈 때마다 error가 소멸되는 문제가 발생한다. 여러 층을 지나 극한으로 갈수록 sigmoid 함수는 Gradient(기울기)가 작아져서 weight가 업데이트되지 않는 문제가 발생하는 것이다. 그런데 활성함수로 ReLU 함수를 사용시, 기울기가 0 또는 1로 학습되는 경우에 100%로 error가 전파되어 이러한 문제가 해소되게 된다. ReLU 함수는 sigmoid 처럼 [0,1]로 제한되는 것이 아니고 그 범위가 무제한이기 때문에 좀 더 확실한 표현력을 가진다고 볼 수 있다. 또한, 각 노드의 출력값 중 필요 없는 값들이 많다. 이럴 때, sigmoid 함수 사용시 모든 값에 대한 계산을 해야하는데, ReLU 함수는 상당 부분의 연산량을 줄일 수 있어 컴퓨팅 속도가 개선되는 효과가 발생된다. ReLU 함수에 의해 정규화(Regularization)가 향상될 수 있다.In addition, recently, an activation function called ReLU (Rectified Linear Unit) has solved the problem of slow learning time and over sum. 4 is a graph showing the ReLU activation function. As shown in FIG. 4, the existing sigmoid function has a problem that the error disappears every time the gradient descent is made into several layers. As we go through the layers, the sigmoid function has a problem that the weight is not updated because the gradient becomes smaller. However, when the ReLU function is used as the activation function, the error propagates to 100% when the slope is 0 or 1, and this problem is solved. The ReLU function is not limited to [0,1] like sigmoid, but it has more definite expressiveness because its range is unlimited. Also, there are many unnecessary values among the output values of each node. In this case, when using the sigmoid function, it is necessary to calculate all the values, and the ReLU function can reduce a large amount of computation, thereby improving the computing speed. Regularization can be improved by the ReLU function.
하지만, ANN에서 back propagation을 수행할 때(BPN, back propagation neural network), 분류되지 않은 미지의 데이터를 전부 다시 트레이닝 세트로 활용하게 되면 parameter learning 과정에서 모델이 왜곡될 가능성이 많아지게 된다. 이는 global minimum을 찾지 못하고 지역 최소해(local minima)에 빠지는 문제와 별개로, 신경망 모델이 지나치게 랜덤한 트레이닝 데이터에 overfitting 되면서 모델의 weight 자체가 잘못 학습되는 것이 문제이다. 이러한 문제는 특히, 시계열적으로 정제되지 않은 데이터가 입력되어서 사용자별로 신경망 모델을 학습시켜야 하는 경우에 문제되며, RBM, CNN, Drop-out, ReLU의 방식으로는 완전히 해결될 수 없다.However, when back propagation is performed in ANN (BPN, back propagation neural network), if the unclassified unknown data is used as a training set again, there is a high possibility that the model is distorted in the parameter learning process. Apart from the problem of not finding the global minimum and falling into the local minima, the problem is that the neural network model is overfitting the overly random training data and the model's weight itself is mis-learned. This problem is particularly troublesome when data not inputted in a time-series manner are inputted and it is necessary to learn a neural network model for each user, and can not be completely solved by the method of RBM, CNN, drop-out, and ReLU.
예를 들어, 복수 개의 행과 열을 지니는 평면으로 분포된 압력센서에 의해 사용자의 앉은 자세를 판별하는 경우에는 사용자들 마다 자세가 달라서, 특정 미지의 압력분포 데이터가 cut off value에 의해 명확히 분류되기 어려운 입력값(압력분포 데이터)을 나타내는 경우가 많다. 특히, 사용자가 앉는 동안 시계열적으로 압력분포 데이터가 신경망 모델에 입력되게 되어서, 정제되지 않은 상태의 압력분포 데이터도 상당히 입력되어 학습될 가능성이 있다. 이러한 미지의 압력분포 데이터까지 back propagation하는 경우, 모델의 예측 가능성이 현저히 떨어질 수 있다.For example, when determining the sitting position of a user by means of a pressure sensor distributed in a plane having a plurality of rows and columns, the posture differs for each user, so that the unknown unknown pressure distribution data is clearly classified by the cut off value (Pressure distribution data) in many cases. Particularly, while the user sits, the pressure distribution data is input to the neural network model in a time-wise manner, so that the pressure distribution data in the non-purified state may be input and learned considerably. If back propagation up to these unknown pressure distribution data, the predictability of the model can be significantly reduced.
또한, 복수개의 행과 열을 지니는 평면으로 분포된 압력센서에 의해 사용자의 앉은 자세를 판별하는 경우에는 압력분포 데이터가 신경망 모델을 지나서 출력되는 자세 정보가 사용자마다 다르게 나타나도록 학습되어야 한다. 즉, 같은 압력분포 데이터를 보이더라도, 사용자 A의 경우에는 구부정한 자세일 수 있고, 사용자 B의 경우에는 바른 자세일 수 있는 것이다. 이는 사용자마다 체형과 자세가 다르기 때문이다.In the case of determining the sitting position of a user by means of a pressure sensor distributed in a plane having a plurality of rows and columns, it is necessary to learn that the attitude information that the pressure distribution data is output past the neural network model varies from user to user. That is, even if the same pressure distribution data is shown, it can be a bent posture in the case of the user A and a correct posture in the case of the user B. This is because each user has different body shape and posture.
또는, CNN이 주로 이용되는 이미지 분석, RNN(Recurrent Neural Network)이 주로 이용되는 자연어 분석, 이미지 캡션, 자동 번역의 경우에도, back propagation이 자주 이용된다. 하지만, 명확하게 분류되기 어려운 입력값이 재학습에 이용되면서 모델의 성능을 저해하는 경우가 많이 있다.Back propagation is also frequently used in image analysis, in which CNN is mainly used, natural language analysis in which RNN (Recurrent Neural Network) is mainly used, image captioning, and automatic translation. However, input values that are difficult to classify clearly are used for re-learning, which often hinders the performance of the model.
따라서 본 발명은 상기 제시된 문제점을 개선하기 위하여 창안되었다.Accordingly, the present invention has been made to solve the above-described problems.
본 발명의 목적은, 신경망 모델에서 입력값을 이용하여 신경망 모델을 재학습시켜서 가중치 업데이트 시키는 경우, 클러스터링과 같은 unsupervised learning을 이용하여 신경망 모델의 역전파 알고리즘(back propagation)과 같은 재학습에 이용할 입력값을 선정하고, 해당 입력값이 속하는 클러스터의 중심값(centroid)를 업데이트하여 신경망 모델의 성능을 향상시키는 신경망 모델에서 입력값에 대한 재학습 여부 결정 방법, 장치 및 프로그램을 제공하는데에 있다.It is an object of the present invention to provide a neural network model in which an input to be used for re-learning such as back propagation of a neural network model by using unsupervised learning such as clustering when the neural network model is re- And a program for determining whether to re-learn an input value in a neural network model that improves the performance of a neural network model by updating a center value (centroid) of a cluster to which the input value belongs.
이하 본 발명의 목적을 달성하기 위한 구체적 수단에 대하여 설명한다.Hereinafter, specific means for achieving the object of the present invention will be described.
본 발명의 목적은, 컴퓨팅 장치에 의해 수행되는 신경망 모델에서 입력값에 대한 재학습 여부 결정 방법에 있어서, 상기 컴퓨팅 장치가, 기학습된 신경망 모델의 학습에 이용된 트레이닝 세트에 대한 클러스터링을 수행하는 트레이닝 세트 클러스터링 단계; 상기 컴퓨팅 장치가, 상기 신경망 모델에 입력되는 입력값을 상기 트레이닝 세트의 클러스터링 분포에 플로팅(plotting)하는 입력값 플로팅 단계; 상기 컴퓨팅 장치가, 상기 입력값이 상기 트레이닝 세트의 클러스터링 분포 중 하나인 특정 클러스터에 포함되는지 여부를 판단하는 입력값 분류 단계; 상기 컴퓨팅 장치가, 상기 입력값과 상기 특정 클러스터의 중심값(centroid) 사이의 거리 또는 상기 입력값이 상기 특정 클러스터에 포함될 확률을 토대로 상기 입력값의 재학습 여부 또는 재학습 가중치를 결정하는 입력값 재학습 여부 결정 단계; 및 상기 컴퓨팅 장치가, 상기 입력값 재학습 여부 결정 단계에서 결정된 상기 입력값의 재학습 여부 또는 재학습 가중치를 기초로 상기 신경망 모델을 재학습을 수행하는 신경망 모델 재학습 단계;를 포함하는, 신경망 모델에서 입력값에 대한 재학습 여부 결정 방법을 제공하여 달성될 수 있다.It is an object of the present invention to provide a method for determining whether or not to re-learn an input value in a neural network model performed by a computing device, wherein the computing device performs clustering on a training set used for learning of the learned neural network model A training set clustering step; An input value plotting step of the computing device plotting an input value input to the neural network model to a clustering distribution of the training set; An input value classification step of the computing device determining whether the input value is included in a specific cluster that is one of the clustering distributions of the training set; Wherein the computing device is configured to determine whether to re-learn the input value or re-learn weight based on a distance between the input value and a centroid of the specific cluster or a probability that the input value is included in the specific cluster Determining whether to re-learn; And a neural network model re-learning step in which the computing device performs re-learning of the neural network model based on re-learning of the input value or re-learning weight determined in the input value re-learning decision step. It can be achieved by providing a method for determining whether to re-learn input values in a model.
또한, 상기 신경망 모델 재학습 단계 이후에, 상기 컴퓨팅 장치가, 상기 입력값 재학습 여부 결정 단계에서 결정된 상기 입력값의 재학습 여부 또는 재학습 가중치를 기초로 상기 특정 클러스터의 중심값(centroid)를 업데이트하는 클러스터 중심값 업데이트 단계;를 더 포함할 수 있다.After the neural network model re-learning step, the computing device calculates a center value (centroid) of the specific cluster based on whether to re-learn the input value determined in the input value re- And updating the cluster center value.
또한, 상기 트레이닝 세트 클러스터링 단계 및 상기 입력값 플로팅 단계에서는, K-means, spectral clustering 또는 N-cut을 통한 linear mapping 또는 Auto encoder 기반의 non-linear mapping을 수행하여 클러스터링하는 것을 특징으로 할 수 있다.In the training set clustering step and the input value floating step, linear mapping through K-means, spectral clustering or N-cut or non-linear mapping based on an auto encoder is performed to perform clustering.
본 발명의 다른 목적은, 입력값을 수신하는 수신부; 상기 수신부에서 상기 입력값을 수신하고, 기학습된 신경망 모델을 포함하며, 상기 신경망 모델에 수신된 상기 입력값을 적용하여 출력값을 계산하는 신경망 모델 컴퓨팅 프로세서; 상기 수신부에서 상기 입력값을 수신하고, 상기 입력값 중 상기 신경망 모델의 학습에 이용된 트레이닝 세트를 클러스터링하여 클러스터링 정보를 생성하는 클러스터링 프로세서; 상기 클러스터링 프로세서에서 상기 클러스터링 정보를 수신하고, 상기 수신부에서 수신되는 상기 입력값이 상기 클러스터링 정보의 특정 클러스터의 중심값(centeroid)과의 거리 또는 특정 클러스터에 포함될 확률을 기초로 상기 입력값의 재학습 여부 또는 상기 입력값에 적용되는 재학습 가중치를 결정하는 재학습 여부 결정 프로세서; 및 상기 재학습 여부 결정 프로세서에서 상기 입력값의 재학습 여부 또는 상기 재학습 가중치를 수신하고, 상기 신경망 모델 컴퓨팅 프로세서의 상기 신경망 모델을 재학습하여 상기 신경망 모델 컴퓨팅 프로세서의 상기 신경망 모델을 업데이트하는 재학습 프로세서;를 포함하는 신경망 모델에서 입력값에 대한 재학습 여부 결정장치를 제공하여 달성될 수 있다.Another object of the present invention is to provide a communication apparatus, A neural network model computing processor for receiving the input value from the receiver and including a learned neural network model and calculating an output value by applying the input value received in the neural network model; A clustering processor for receiving the input values from the receiver and clustering training sets used for learning of the neural network model among the input values to generate clustering information; Wherein the clustering processor receives the clustering information and re-learns the input value based on a probability that the input value received at the receiving unit is included in a specific cluster or a distance from a center value of a specific cluster of the clustering information, Whether or not a re-learning weight is applied to the input value; And a re-learning decision processor for receiving the re-learning of the input value or the re-learning weight, and re-learning the neural network model of the neural network model computing processor to update the neural network model of the neural network model computing processor Learning of the input value in the neural network model including the learning process.
또한, 상기 재학습 프로세서는, 상기 클러스터링 정보의 특정 클러스터의 중심값(centeroid)을 업데이트하는 것을 특징으로 할 수 있다.Further, the re-learning processor may update a center value of a specific cluster of the clustering information.
또한, 상기 클러스터링 프로세서는, K-means, spectral clustering 또는 N-cut을 통한 linear mapping 또는 Auto encoder 기반의 non-linear mapping을 수행하여 클러스터링하는 것을 특징으로 할 수 있다.The clustering processor may perform clustering by performing linear mapping using K-means, spectral clustering or N-cut, or non-linear mapping based on an auto encoder.
본 발명의 다른 목적은, 신경망 모델에서 입력값에 대한 재학습 여부 결정 방법을 컴퓨터 상에서 수행하는 기록매체에 저장된 프로그램에 있어서, 기학습된 신경망 모델의 학습에 이용된 트레이닝 세트에 대한 클러스터링을 수행하는 트레이닝 세트 클러스터링 단계; 상기 신경망 모델에 입력되는 입력값을 상기 트레이닝 세트의 클러스터링 분포에 플로팅(plotting)하는 입력값 플로팅 단계; 상기 입력값이 상기 트레이닝 세트의 클러스터링 분포 중 하나인 특정 클러스터에 포함되는지 여부를 판단하는 입력값 분류 단계; 상기 입력값과 상기 특정 클러스터의 중심값(centroid) 사이의 거리 또는 상기 입력값이 상기 특정 클러스터에 포함될 확률을 토대로 상기 입력값의 재학습 여부 또는 재학습 가중치를 결정하는 입력값 재학습 여부 결정 단계; 및 상기 입력값 재학습 여부 결정 단계에서 결정된 상기 입력값의 재학습 여부 또는 재학습 가중치를 기초로 상기 신경망 모델을 재학습을 수행하는 신경망 모델 재학습 단계;를 컴퓨터 상에서 수행하는 기록매체에 저장된 프로그램을 제공하여 달성할 수 있다.It is another object of the present invention to provide a program stored on a recording medium for performing a method for determining whether or not to re-learn an input value in a neural network model, the method comprising the steps of: clustering a training set used for learning of a neural network model A training set clustering step; Plotting an input value input to the neural network model to a clustering distribution of the training set; An input value classification step of determining whether the input value is included in a specific cluster which is one of clustering distributions of the training set; Determining whether to re-learn or re-learn weight of the input value based on a distance between the input value and a centroid of the specific cluster or a probability that the input value is included in the specific cluster; ; And a neural network model re-learning step of re-learning the neural network model based on re-learning of the input value or re-learning weight determined in the input value re-learning decision step, Can be achieved.
상기한 바와 같이, 본 발명에 의하면 이하와 같은 효과가 있다.As described above, the present invention has the following effects.
첫째, 본 발명의 일실시예에 따르면, 시계열적으로 정제되지 않은 데이터가 입력되는 경우에도, 사용자별로 신경망 모델을 학습시킬 수 있는 효과가 발생된다.First, according to an embodiment of the present invention, even if data not input in time series are inputted, a neural network model can be learned for each user.
둘째, 본 발명의 일실시예에 따르면, 신경망 모델이 지나치게 랜덤한 트레이닝 데이터에 overfitting 되면서 모델의 weight 자체가 잘못 학습되는 것을 방지할 수 있는 효과가 있다.Second, according to an embodiment of the present invention, the neural network model is overfitted with excessively random training data, thereby preventing the weight of the model from being erroneously learned.
셋째, 본 발명의 일실시예에 따르면, 재학습되기로 결정된 입력값이 속하는 클러스터의 중심값(centroid)를 업데이트하여 신경망 모델의 성능을 개인에 맞게 향상시킬 수 있는 효과가 있다.Third, according to an embodiment of the present invention, the center value of the cluster to which the input value determined to be re-learned belongs can be updated to improve the performance of the neural network model.
넷째, 본 발명의 일실시예에 따르면, 사용자의 자중에 의한 압력분포 만으로 사용자의 자세를 예측하거나 분류할 수 있게 되므로, 뎁스 카메라나 3D 스캐너 등의 별도의 외부 장비가 없어도 자세를 실시간으로 분석할 수 있게 되는 효과가 발생된다.Fourthly, according to the embodiment of the present invention, since the posture of the user can be predicted or classified only by the pressure distribution due to the weight of the user, the posture can be analyzed in real time without any external equipment such as a depth camera or a 3D scanner The effect is generated.
본 명세서에 첨부되는 다음의 도면들은 본 발명의 바람직한 실시예를 예시하는 것이며, 발명의 상세한 설명과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되어서는 아니 된다.
도 1은 다층 신경망 모델(딥러닝 또는 심층 신경망 모델)의 구조를 도시한 모식도,
도 2는 노드에서의 계산 과정을 도시한 모식도,
도 3은 Drop-out 방식을 도시한 모식도,
도 4는 ReLU 활성함수를 도시한 그래프,
도 5는 본 발명의 일실시예에 따른 신경망 모델에서 입력값에 대한 재학습 여부 결정 방법을 도시한 것,
도 6은 본 발명의 일실시예에 따른 S14 단계에서 입력값에 대한 재학습 여부를 결정하는 예시를 도시한 것,
도 7은 본 발명의 일실시예에 따른 S15 단계에서 트레이닝 세트의 클러스터 중심의 업데이트를 도시한 예시,
도 8은 신경망 모델에서 입력값에 대한 재학습 여부 결정 장치를 도시한 모식도,
도 9는 본 발명의 일실시예에 따른 압력분포 정보를 이용한 자세 분류 시스템을 도시한 것,
도 10은 본 발명의 일실시예에 따른 자세 분류 시스템의 사용자 클라이언트에 디스플레이 되는 화면의 예,
도 11은 본 발명의 일실시예에 따른 압력분포 정보를 이용한 자세 분류 방법을 도시한 흐름도,
도 12는 본 발명의 일실시예에 따른 압력분포 정보를 이용한 자세 분류 방법의 실험결과 그래프,
도 13은 기존의 재학습 방법의 압력분포 정보를 이용한 자세 분류 방법의 실험 결과 그래프,
도 14는 본 발명의 일실시예에 따른 압력분포 정보를 이용한 자세 분류 방법과 기존 방법의 평균 정확도 비교 그래프,
도 15는 본 발명의 일실시예에 따른 압력분포 정보를 이용한 자세 분류 장치의 인공신경망 모델을 도시한 흐름도이다.BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings, which are included to provide a further understanding of the invention and are incorporated in and constitute a part of this application, illustrate preferred embodiments of the invention and, together with the description, And shall not be interpreted.
1 is a schematic diagram showing the structure of a multilayer neural network model (deep running or a deep neural network model)
2 is a schematic diagram illustrating a calculation process in a node,
3 is a schematic diagram showing a drop-out method,
Figure 4 is a graph showing the < RTI ID = 0.0 > ReLU <
FIG. 5 illustrates a method for determining re-learning of an input value in a neural network model according to an embodiment of the present invention,
6 is a diagram illustrating an example of determining whether to re-learn input values in step S14 according to an embodiment of the present invention,
FIG. 7 is an illustration showing cluster-based updates of a training set at step S15 according to an embodiment of the present invention,
8 is a schematic diagram showing a device for determining whether to re-learn input values in a neural network model,
9 is a view showing a posture classification system using pressure distribution information according to an embodiment of the present invention,
FIG. 10 illustrates an example of a screen displayed on a user client of a posture classification system according to an embodiment of the present invention,
11 is a flowchart illustrating a posture classification method using pressure distribution information according to an embodiment of the present invention.
12 is a graph showing an experimental result of a posture classification method using pressure distribution information according to an embodiment of the present invention,
FIG. 13 is a graph showing an experimental result of a posture classification method using pressure distribution information of the existing re-
FIG. 14 is a graph showing the average accuracy of a conventional method and a posture classification method using pressure distribution information according to an embodiment of the present invention.
15 is a flowchart illustrating an artificial neural network model of a posture classifying apparatus using pressure distribution information according to an embodiment of the present invention.
이하 첨부된 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 쉽게 실시할 수 있는 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예에 대한 동작원리를 상세하게 설명함에 있어서 관련된 공지기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following detailed description of the operation principle of the preferred embodiment of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may unnecessarily obscure the subject matter of the present invention.
또한, 도면 전체에 걸쳐 유사한 기능 및 작용을 하는 부분에 대해서는 동일한 도면 부호를 사용한다. 명세서 전체에서, 특정 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고, 간접적으로 연결되어 있는 경우도 포함한다. 또한, 특정 구성요소를 포함한다는 것은 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다.The same reference numerals are used for portions having similar functions and functions throughout the drawings. In the specification, when a specific portion is connected to another portion, it includes not only a direct connection but also a case where the other portion is indirectly connected with another element in between. In addition, the inclusion of a specific constituent element does not exclude other constituent elements unless specifically stated otherwise, but may include other constituent elements.
아래의 상세한 설명에서는 사용자의 클라이언트에서 신경망 모델에 입력값을 넣어 컴퓨팅을 수행하는 것을 전제로 기재되었다. 하지만, 본 발명의 범위는 이에 한정되지 않는다. 본 발명은 입력값의 생성 디바이스로부터 사용자의 클라이언트에서 입력값을 받고(예를 들면, 근거리 통신), 사용자 클라이언트에서 컴퓨팅 서버로 입력값을 송신하여 컴퓨팅 서버에서 입력값을 신경망 모델에 넣어 컴퓨팅하도록 구성될 수도 있다. 즉, 컴퓨팅의 주체는 사용자 클라이언트가 될 수도 있고, 컴퓨팅 서버가 될수도 있으므로, 이를 본 명에서에서는 컴퓨팅 장치로 통일한다.In the following detailed description, it is assumed that the user's client performs computation by inputting the input value to the neural network model. However, the scope of the present invention is not limited thereto. The present invention is configured to receive an input value from a user's client (e.g., near field communication) from an input value generation device, send an input value from a user client to a computing server, . In other words, the subject of computing may be a user client or a computing server, so that it is unified into a computing device in the present invention.
신경망 모델에서 In the neural network model 입력값에In the input value 대한 재학습 여부 결정 방법 How to decide whether to re-learn
본 발명의 일실시예에 따른 신경망 모델에서 입력값에 대한 재학습 여부 결정 방법과 관련하여, 도 5는 본 발명의 일실시예에 따른 신경망 모델에서 입력값에 대한 재학습 여부 결정 방법을 도시한 것이다. 도 5에 도시된 바와 같이, 본 발명의 일실시예에 따른 신경망 모델에서 입력값에 대한 재학습 여부 결정 방법은 신경망 모델 학습 단계, 입력값 입력 단계, 출력값 출력 단계, 입력값 분류 단계, 입력값 재학습 여부 결정 단계, 입력값 재학습 단계를 포함할 수 있다. 본 발명의 일실시예에 따른 신경망 모델에서 입력값에 대한 재학습 여부 결정 방법은 컴퓨팅 서버 또는 클라이언트에서 수행될 수 있다.5 is a flowchart illustrating a method for determining re-learning of an input value in a neural network model according to an embodiment of the present invention, will be. 5, a method for determining whether to re-learn an input value in a neural network model according to an embodiment of the present invention includes a neural network model learning step, an input value input step, an output value output step, an input value classification step, A re-learning decision step, and an input value re-learning step. In the neural network model according to an embodiment of the present invention, a method of determining whether to re-learn input values can be performed in a computing server or a client.
신경망 모델 학습 단계(S10)는 속성값에 대한 레이블링(labeling, 또는 tagging)이 완료된 트레이닝 세트(training data set)를 이용하여 신경망 모델의 가중치를 학습시키는 단계이다. 이때, 신경망 모델은 기존의 ANN(artificial neural network)뿐만 아니라 CNN, RNN 등을 포함할 수 있다. 특히, 본 발명의 일실시예에 따른 신경망 모델은 분류 모델일 수 있다.The neural network model learning step S10 is a step of learning a weight value of a neural network model using a training data set in which labeling or tagging of an attribute value is completed. At this time, the neural network model may include CNN, RNN, etc. as well as an existing artificial neural network (ANN). In particular, the neural network model according to an embodiment of the present invention may be a classification model.
입력값 입력 단계(S11)는 신경망 모델의 입력층(input layer)에 테스트 세트이거나 실제 데이터 세트인 특정 입력값을 입력하는 단계이다. The input value input step S11 is a step of inputting a specific input value, which is a test set or an actual data set, to an input layer of a neural network model.
출력값 출력 단계(S12)는 신경망 모델에 S11에서 입력된 특정 입력값이 은닉층(hidden layer)를 지나 출력층(output layer)에서 출력되는 단계이다. S12에서는 특정 입력값이 신경망 모델에 의해 가중되면서 기설정된 속성들에 대한 특정 속성값을 갖는 행렬 또는 벡터 형태의 출력값으로 출력될 수 있다.The output value output step S12 is a step in which a specific input value input in the neural network model S11 is output from an output layer through a hidden layer. In S12, a specific input value is weighted by the neural network model and output as a matrix or vector output value having a specific attribute value for predetermined attributes.
입력값 분류 단계(S13)는 S10의 트레이닝 세트를 클러스터링 등의 방법으로 분류하고, S11의 입력값을 플로팅(plotting)하는 단계이다. 이때, 클러스터링 이전에 트레이닝 세트와 입력값에 대해 2~3개의 속성으로 PCA 분석을 선행적으로 수행하거나, K-means, spectral clustering, N-cut을 통한 linear mapping, Auto encoder 기반의 non-linear mapping를 수행하여 클러스터링할 수 있다. The input value classifying step S13 is a step of classifying the training set of S10 by clustering or the like and plotting the input value of S11. In this case, prior to clustering, PCA analysis may be performed with two or three attributes for training set and input values, or K-means, spectral clustering, linear mapping through N-cut, non-linear mapping To perform clustering.
입력값 분류 단계(S13)는 구체적으로 트레이닝 세트 클러스터링 단계, 입력값 플로팅 단계, 입력값 분류 단계로 수행될 수 있다. 트레이닝 세트 클러스터링 단계는 사용자 클라이언트나 서버와 같은 컴퓨팅 장치가 기학습된 신경망 모델의 학습에 이용된 트레이닝 세트에 대한 클러스터링을 수행하는 단계이다. 입력값 플로팅 단계는 사용자 클라이언트나 서버와 같은 컴퓨팅 장치가 상기 신경망 모델에 입력되는 입력값을 상기 트레이닝 세트의 클러스터링 분포에 플로팅(plotting)하는 단계이다. 입력값 분류 단계는 사용자 클라이언트나 서버와 같은 컴퓨팅 장치가 입력값이 트레이닝 세트의 클러스터링 분포 중 하나인 특정 클러스터에 포함되는지 여부를 판단하는 단계이다. The input value classification step S13 may be specifically performed by a training set clustering step, an input value floating step, and an input value classification step. The training set clustering step is a step in which a computing device such as a user client or a server performs clustering on a training set used for learning of a learned neural network model. The input value plotting step is a step in which a computing device, such as a user client or a server, plots the input value input to the neural network model to the clustering distribution of the training set. The input value classification step is a step of determining whether a computing device such as a user client or server is included in a specific cluster whose input value is one of the clustering distributions of the training set.
트레이닝 세트의 클러스터링은 거리 기반 또는 확률(혹은 확률분포) 기반으로 수행할 수 있다. S13에서 이용될 수 있는 거리 기반의 클러스터링으로는 K-means 클러스터링이 대표적이다. K-means는 같은 클러스터에 속한 데이터는 서로 '가깝다' 라고 가정한다. 이때 각각의 클러스터마다 '중심'이 하나씩 존재하고, 각각의 데이터가 그 중심과 '얼마나 가까운가'를 cost로 정의한다. K-means는 이렇게 정의된 cost를 가장 줄이는 클러스터를 찾는 알고리즘이다. 수식으로 적으면 다음 수학식 1과 같다.Clustering of training sets can be performed on a distance-based or probability (or probability distribution) basis. K-means clustering is representative of distance-based clustering that can be used in S13. The K-means assumes that the data belonging to the same cluster are close to each other. In this case, there is one 'center' for each cluster, and the cost of each data is defined as 'how close' to the center. K-means is an algorithm that finds clusters that minimize the cost. Expressed as a formula, the following equation (1) is obtained.
수학식 1은 데이터는 n개 있으며 클러스터는 k개 있는 경우이다. 이때, bj는 j 번째 클러스터의 '중심'을 의미하며, wij는 i 번째 데이터가 j 번째 클러스터에 속하면 1, 아니면 0을 가지는 binary variable이다. 또한, 뒤에 붙는 조건은 반드시 각 데이터 별로 한 개의 클러스터에 assign이 되어야 한다는 constraint이다. K-means 알고리즘은 이렇게 b와 w를 alternative하게 계속 update하면서 b와 w가 더 이상 바뀌지 않을 때까지 계산을 반복하는 알고리즘이다. 안타깝게도 K-means는 global optimum에 수렴하지 않고 local한 optimum에 수렴하므로 initialization에 매우 취약하다는 단점이 존재한다. 그래서 신경망 모델의 데이터 전처리를 위해 k-means 클러스터링이 이용되지 않는 경향이 있다. 하지만, 본 발명의 일실시예에 따른 입력값에 대한 재학습 여부 결정 방법에서는 입력값을 unsupervised learning에 의해 전처리하는 과정으로 클러스터링을 이용하는 것이 아니라, 입력값에 대해 재학습 여부를 결정하는데 클러스터링을 이용하므로 local minimum으로도 신경망 모델의 성능 향상에 도움을 줄 수 있다.In Equation (1), there are n data and k clusters. In this case, b j denotes the 'center' of the j-th cluster, w ij denotes a binary variable having 1 or 0 if the i-th data belongs to the j-th cluster. Also, the condition to be followed is a constraint that must be assigned to one cluster for each data. The K-means algorithm is an algorithm that repeatedly updates b and w until the b and w are not changed any more. Unfortunately, the K-means does not converge to the global optimum but converges to the local optimum, which is very vulnerable to initialization. Therefore, k-means clustering tends not to be used for data preprocessing of the neural network model. However, in the method of determining whether to re-learn input values according to an embodiment of the present invention, the input value is not preprocessed by unsupervised learning, and instead of using clustering, clustering is used to determine whether to re- Therefore, it can improve the performance of neural network model with local minimum.
S13에서 이용될 수 있는 확률 혹은 확률 분포 기반의 클러스터링에는 GMM(Gaussian Mixture Model)이 대표적이다. Gaussian Mixture Model, Mixture of Gaussian, GMM, 혹은 MoG는 데이터가 'Gaussian'의 'Mixture'로 구성이 되어있다고 가정한다. 보통 GMM이라고 많이 부르며, 가장 optimal한 GMM을 찾는 알고리즘을 의미한다. 즉, 데이터가 k개의 Gaussian으로 구성되어 있다고 했을 때, 가장 데이터를 잘 설명하는 k개의 평균과 covariance를 찾는 알고리즘이다. 아래 표 1은 3개의 Gaussian으로 구성되어있다고 가정하고 그 Gaussian 분포들을 찾은 결과이다. GMM (Gaussian Mixture Model) is representative for probability or probability distribution based clustering that can be used in S13. Gaussian Mixture Model, Mixture of Gaussian, GMM, or MoG assumes that the data is composed of 'Mixture' of 'Gaussian'. It is usually called GMM, which means the algorithm that finds the most optimal GMM. That is, if the data consists of k Gaussian, it is an algorithm that finds k average and covariance that best describe the data. Table 1 below shows the result of finding Gaussian distributions assuming that it consists of three Gaussian.
GMM의 performance measure는 log likelihood function이다. 즉, 주어진 parameter에 대해 데이터 X의 확률을 가장 크게 만드는 parameter를 찾는 것이 목표가 된다. log likelihood는 ln p(X|θ)로 정의가 된다. parameter θ는 각각의 Gaussian의 평균 μj, covariance Σj, 그리고 각각의 데이터가 각각의 Gaussian에 속할 확률 πj로 구성된다. 따라서 주어진 μj,Σj에 대한 xi의 multinomial Gaussian distribution을 N(xi|μj,Σj)라고 정의한다면 log likelihood function은 다음 수학식 2와 같이 기술할 수 있다.The performance measure of the GMM is the log likelihood function. That is, the goal is to find a parameter that maximizes the probability of data X for a given parameter. log likelihood is defined as ln p (X | θ). The parameter θ consists of the mean μj, covariance Σj of each Gaussian, and the probability πj that each data belongs to each Gaussian. Therefore, if the multinomial Gaussian distribution of xi for a given μj, Σj is defined as N (xi | μj, Σj), then the log likelihood function can be written as:
GMM을 풀기 위해서 사용되는 알고리즘 중 가장 유명한 알고리즘으로는 EM 알고리즘이 존재한다. GMM을 풀기 위한 EM 알고리즘은, 먼저 각각의 데이터가 어느 클러스터에 속할지에 대한 정보(예를 들어, z)를 업데이트 하여 expectation을 계산하고, 다음으로 업데이트 된 정보들을 사용해 나머지 값들로 가장 log likelihood를 최대화하는 parameter들을 (μ,Σ,π를) 찾아낸다. 알고리즘을 돌리면 iteration이 지날 때 마다 점점 좋은 값을 찾아준다. The most famous algorithm among the algorithms used to solve GMM is the EM algorithm. The EM algorithm for solving the GMM first computes expectation by updating information (for example, z) about which cluster each data belongs to, and then uses the updated information to calculate the log likelihood Find the parameters to maximize (μ, Σ, π). When you run the algorithm, it finds a better value every time the iteration passes.
입력값 재학습 여부 결정 단계(S14)는 S13에서 분류된 각각의 클러스터에 입력값이 포함될 수 있는지 아닌지에 대해 결정하고, 입력값이 특정 클러스터에 포함되는 경우 이를 다시 트레이닝 세트로 입력하며, 입력값이 특정 클러스터에 포함되지 않는 경우 이를 버리는(vanish) 단계이다. 즉, 특정 클러스터의 중심값(centroid)에서의 거리 또는 확률(혹은 확률 분포)을 토대로 해당 입력값의 재학습 여부를 결정하는 단계이다. 이때, 재학습 여부의 결정에서는 K-means 클러스터링의 경우에는 거리 기반으로 특정 cut off value를 설정하여 출력값이 특정 클러스터에 포함되는지 여부를 결정할 수 있고, GMM(Gaussian Mixture Model)의 경우에는 확률 분포 기반으로 특정 σ에 해당되는지 여부를 통해 입력값이 특정 클러스터에 포함되는지 여부를 결정할 수 있다.The input value re-learning decision step S14 decides whether or not an input value can be included in each of the clusters classified in step S13. If the input value is included in a specific cluster, the input value is input again to the training set, Is not included in the specific cluster, it is a step of vanishing it. That is, it is a step of determining whether to re-learn the input value based on the distance or the probability (or probability distribution) at the centroid of a specific cluster. In the case of K-means clustering, it is possible to determine whether the output value is included in a specific cluster by setting a specific cut-off value based on the distance. In the case of GMM (Gaussian Mixture Model) Whether or not the input value is included in a specific cluster.
도 6은 본 발명의 일실시예에 따른 S14 단계에서 입력값에 대한 재학습 여부를 결정하는 예시를 도시한 것이다. 도 6에 도시된 바와 같이, 클러스터링 된 트레이닝 세트의 특정 클러스터에 입력값이 해당되는지 여부를 통해 입력값에 대한 재학습 여부를 결정하게 된다. 예를 들어, 도 6에서 입력값 a는 클러스터 A에 포함되는 것으로 분류될 수 있으므로 재학습하기로 결정되고, 입력값 b는 클러스터 A, B 어디에도 분류되지 않으므로 재학습하지 않기로 결정된다.FIG. 6 illustrates an example of determining whether to re-learn input values in step S14 according to an embodiment of the present invention. As shown in FIG. 6, it is determined whether or not the input value is re-learned based on whether an input value corresponds to a specific cluster of the clustered training set. For example, in Fig. 6, the input value a is determined to be re-learned because it can be classified as being included in the cluster A, and the input value b is not classified into any of the clusters A and B, so that it is decided not to re-learn.
입력값 재학습 단계(S15)는 S14에서 재학습하기로 결정된 입력값에 대해 해당 신경망 모델에 대해 Back propagation 등의 방법으로 재학습을 수행하는 단계이다. 본 발명의 일실시예에 따르면 S15에 의해 재학습하기로 결정된 입력값은 S10의 트레이닝 세트에 포함되게 되며, S13의 각각의 클러스터의 중심(centroid)은 업데이트되게 된다. S14, S15를 통한 클러스터 중심의 업데이트에 의해 재학습이 반복(iteration)될수록 특정 클러스터의 속성이 각각의 사용자에 맞게 강화(다른 사용자의 데이터와 구별)되는 효과가 발생된다. 이는 이하의 실시예에서 사용자 맞춤형 신경망 모델의 구축에 도움을 준다. The input value re-learning step S15 is a step for re-learning the input value determined to be re-learned in S14 by a back propagation method or the like for the neural network model. According to one embodiment of the present invention, the input values determined to be re-learned by S15 are included in the training set of S10, and the centroid of each cluster of S13 is updated. As the re-learning is iterated by the update of the cluster center through S14 and S15, the effect of enhancing the attributes of the specific cluster (differentiated from the data of other users) is generated for each user. This helps to build a customized neural network model in the following embodiments.
도 7은 본 발명의 일실시예에 따른 S15 단계에서 트레이닝 세트의 클러스터 중심의 업데이트를 도시한 예시이다. 도 7에 도시된 바와 같이, 재학습하기로 한 입력값에 의해 클러스터의 중심이 업데이트되어, iteration을 수행할수록 신경망 모델의 성능 향상이 발생될 수 있다.7 is an illustration showing an update of the cluster center of a training set in step S15 according to an embodiment of the present invention. As shown in FIG. 7, as the center of the cluster is updated by the input value to be re-learned, the performance of the neural network model may be improved as the iteration is performed.
본 발명의 일실시예에 따른 신경망 모델에서 입력값에 대한 재학습 여부 결정 방법은, 컴퓨팅 장치에 의해 수행될 수 있도록 기록매체에 저장되는 컴퓨터 프로그램으로 구성될 수 있다. A method for determining whether to re-learn input values in a neural network model according to an embodiment of the present invention may be configured as a computer program stored in a recording medium so as to be performed by a computing device.
본 발명의 다른 실시예에 따른 신경망 모델에서 입력값에 대한 재학습 여부 결정 방법은, S14 단계에서 입력값의 특정 클러스터의 중심값(centeroid)과의 거리 또는 확률에 따라 입력값이 특정 클러스터에 속하는지에 대해 재학습 가중치라는 값을 정의하고, 재학습 가중치를 입력값에 적용하여 재학습하는 방식으로 수행될 수 있다. 이러한 본 발명의 다른 실시예에 따르면 입력값에 재학습 가중치를 부여하여 모두 트레이닝 세트에 넣어서 재학습하게 된다. 본 발명의 일실시예에 따라 특정 클러스터에 포함되지 않는 입력값을 버리는(vanash)하는 것은 본 발명의 다른 실시예에서는 입력값에 0의 재학습 가중치를 부여하는 것으로 대응될 수 있다. In the neural network model according to another embodiment of the present invention, the input value may belong to a specific cluster according to the distance or probability between the input value and the center value of a specific cluster in step S14. A re-learning weight is defined for the re-learning weight, and a re-learning weight is applied to the input value to re-learn. According to another embodiment of the present invention, re-learning weights are given to input values, and all of the input values are re-learned by putting them into a training set. Vanishing an input value that is not included in a particular cluster according to one embodiment of the present invention may correspond to assigning a re-learning weighting of zero to the input value in another embodiment of the present invention.
신경망 모델에서 In the neural network model 입력값에In the input value 대한 재학습 여부 결정 장치 A device for deciding whether to re-learn
본 발명의 일실시예에 따른 신경망 모델에서 입력값에 대한 재학습 여부 결정 장치와 관련하여, 도 8은 신경망 모델에서 입력값에 대한 재학습 여부 결정 장치를 도시한 모식도이다. 도 8에 도시된 바와 같이, 신경망 모델에서 입력값에 대한 재학습 여부 결정 장치(10)는 수신부(100)와 프로세서를 포함할 수 있다. FIG. 8 is a schematic diagram showing an apparatus for determining re-learning of input values in a neural network model according to an apparatus for determining re-learning of input values in a neural network model according to an embodiment of the present invention. As shown in FIG. 8, in the neural network model, the device for determining whether to re-learn an
본 발명의 일실시예에 따른 신경망 모델에서 입력값에 대한 재학습 여부 결정 장치(10)는 다양한 종류의 컴퓨팅 장치가 포함될 수 있다. 예를 들어, 본 발명의 일실시예에 따른 신경망 모델에서 입력값에 대한 재학습 여부 결정 장치(10)는 서버 또는 클라이언트일 수 있다. 이 경우, 트레이닝 세트로서 수신되는 입력값에 대해 CNN, RNN 등을 포함하는 ANN을 이용하여 학습할 수 있고, 이를 기초로 하여 추후 테스트 세트로서 수신되는 입력값을 신경망 모델에 적용하여 모델의 성능을 검증할 수 있다. 이후, 실제 데이터 세트인 입력값을 신경망 모델에 적용하면 이에 맞는 출력값이 출력되게 된다.In the neural network model according to an embodiment of the present invention, an apparatus for determining re-learning of input values 10 may include various types of computing devices. For example, in the neural network model according to an embodiment of the present invention, the device for determining whether to re-learn the input values 10 may be a server or a client. In this case, the input value received as the training set can be learned using the ANN including CNN, RNN, etc. Based on this, the input value received as a later test set is applied to the neural network model, Can be verified. Then, when an input value that is an actual data set is applied to a neural network model, an output value corresponding to the input value is output.
수신부(100)는 스칼라값 또는 벡터값 등으로 구성된 입력값을 트레이닝 세트, 테스트 세트 또는 실제 데이터 세트로서 획득할 수 있다. 수신부(100)는 다양한 통신 기술로 구현 가능하며, 신경망 모델로 입력되는 입력값을 수신할 수 있다. The receiving
프로세서는 샘플링 프로세서(101), 신경망 모델 컴퓨팅 프로세서(102), 신경망 모델 트레이닝 프로세서(103), 데이터 전처리 프로세서(104), 클러스터링 프로세서(105), 재학습 여부 결정 프로세서(106), 재학습 프로세서(107), 저장 프로세서(108)를 포함할 수 있다. The processor includes a
샘플링 프로세서(101)는 입력값 중 적어도 일부를 샘플링하여 트레이닝 세트 및 테스트 세트로 구분하는 구성이다. The
신경망 모델 컴퓨팅 프로세서(102)는 샘플링 프로세서(101)에서 테스트 세트로 구분된 입력값을 기학습된 신경망 모델에 입력하여 출력값을 도출하는 구성이다. 또한, 신경망 모델 컴퓨팅 프로세서(102)는 수신부(100)에서 실제 데이터 세트가 입력값으로 입력되는 경우, 기학습된 신경망 모델에 입력값을 적용하여 출력값을 계산하는 구성이다. The neural network
신경망 모델 트레이닝 프로세서(103)는 샘플링 프로세서(101)에서 트레이닝 세트로 구분된 데이터 세트나, 신경망 모델 컴퓨팅 프로세서(102)에 입력된 입력값 중 재학습하기로 결정된 입력값을 포함하는 트레이닝 세트를 이용하여 신경망 모델의 가중치를 업데이트, 학습하는 구성이다. The neural network
데이터 전처리 프로세서(104)는, 상기 입력값이 획득되면 입력값을 행렬 형태의 데이터로 변환하거나 변환하도록 지원하는 프로세스를 수행할 수 있다. The
클러스터링 프로세서(105)는, 트레이닝 세트를 클러스터링하여 테스트 세트나 실제 데이터 세트의 입력값이 특정 클러스터에 포함되는지를 판단하기 위한 구성이다. The
재학습 여부 결정 프로세서(106)는, 입력값이 특정 클러스터에 포함되는 경우 해당 입력값을 재학습하기로 결정하고, 입력값이 특정 클러스터에 포함되지 않는 경우 해당 입력값을 재학습하지 않기로 결정하는 구성이다. 본 발명의 다른 실시예에 따르면, 재학습 여부 결정 프로세서(106)는 입력값이 특정 클러스터에 얼마나 가까운지에 따라 가중치를 부여하여 해당 입력값을 재학습하도록 구성될 수 있다.The re-learning
재학습 프로세서(107)는, 재학습하기로 결정된 입력값을 다시 트레이닝 세트로 넣어, back propagation 등의 모델 학습 방법으로 신경망 모델의 가중치를 업데이트하고, 해당 입력값이 포함되는 클러스터의 중심을 업데이트하는 구성이다. The re-learning
저장 프로세서(108)는, 재학습하지 않기로 결정된 입력값을 서버에 저장하는 구성이다.The
이하에서는 압력분포 정보를 이용한 압력 센싱 장치 및 방법을 토대로 본 발명의 일실시예에 따른 신경망 모델에서 입력값에 대한 재학습 여부 결정 장치를 설명하도록 한다. 본 발명의 범위는 압력분포 정보를 이용한 자세 분류에 한정되지 않고, 이미지 정보를 이용한 이미지 캡션 및 검색, 자연어 분석 등과 같은 ANN으로 해결되는 일반적인 application에 적용되는 것을 포함할 수 있다.Hereinafter, an apparatus for determining re-learning of input values in a neural network model according to an embodiment of the present invention will be described based on a pressure sensing apparatus and method using pressure distribution information. The scope of the present invention is not limited to the posture classification using the pressure distribution information, but may include those applied to general applications solved by ANN such as image caption and search using image information, natural language analysis, and the like.
압력분포 정보를 이용한 자세 분류 시스템 및 장치Posture classification system and apparatus using pressure distribution information
도 9는 본 발명의 일실시예에 따른 압력분포 정보를 이용한 자세 분류 시스템을 도시한 것이다. 도 9에 도시된 바와 같이 압력분포 정보를 이용한 자세 분류 시스템은 압력 센싱 장치(1, 압력분포 센서, 송수신부(100), 전원부 포함), 서버(6), DB(7), 사용자 클라이언트(8)를 포함할 수 있다.FIG. 9 illustrates a posture classification system using pressure distribution information according to an embodiment of the present invention. 9, the posture classification system using the pressure distribution information includes a pressure sensing device 1 (including a pressure distribution sensor, a
압력 센싱 장치(1)는 사용자의 착석위치에 장착되어 사용자가 압력 센싱 장치 위에 앉았을 때, 압력분포를 센싱하여 출력하는 구성이다. 압력 센싱 장치(1)는 압력분포 센서(2), 송신부(3), 전원부(4), 제어부(5)를 포함할 수 있다. The
압력분포 센서(2)는 사용자의 착석 위치에 평면 또는 곡면으로 구성되는 복수개의 압전센서 또는 압력센서가 격자 형태로 분포된 구성을 의미할 수 있다. 압력분포 센서(2)에서는 각각의 압전센서 또는 압력센서에서 생성된 압력값이 컨버팅되어 이미지 또는 행렬 데이터로 형성된 압력분포 정보가 생성될 수 있다. The
송신부(3)는 압력분포 센서(2)에서 생성된 압력분포 정보를 제어부(5)가 요청한 특정 시간 간격에 따라 서버(6) 또는 사용자 클라이언트(8)에 송신하는 구성이다. 송신부(3)가 압력분포 정보를 사용자 클라이언트(8)로 송신하는 경우에는 BLE 등의 근거리 통신으로 송신할 수 있다.The transmitting
전원부(4)는 압력분포 센서(2), 송신부(3), 제어부(5)에 전원을 공급하는 구성이다. The
제어부(5)는 압력분포 센서(2)의 센싱 duration, 송신부(3)의 압력분포 정보 송신 등을 제어하는 구성이다.The
서버(6)는 압력 센싱 장치(1)에서 직접, 또는 사용자 클라이언트(8)를 통해 압력분포 정보를 수신하고, 사용자 클라이언트(8)에서 특정 압력분포 정보에 대한 레이블(label) 정보를 수신하여 트레이닝 세트를 구성하며, 해당 트레이닝 세트를 이용하여 신경망 모델을 학습하고, 해당 신경망 모델을 이용하여 사용자의 자세 정보를 분류하여 사용자 클라이언트(8)에 출력하는 구성이다.The
DB(7)는 서버(6)와 연결되어, 압력 센싱 장치(1)에서 수신되는 압력분포 정보를 시계열 순으로 저장하고, 사용자 클라이언트(8)에서 입력되는 레이블 정보를 해당 압력분포 정보에 연결하여 저장하는 구성이다.The
사용자 클라이언트(8)는 서버(6)와 연결되어, 서버(6)에서 압력분포 정보를 수신하거나, 특정 압력분포 정보에 대해 레이블 정보(현재 어떤 자세로 앉아 있는지)를 입력하여 서버(6)로 송신하고, 서버(6)에서 분류된 사용자의 자세 정보를 송신받아 디스플레이하는 구성이다. 본 발명의 일실시예에 따라 사용자 클라이언트(8)가 서버(6)와 압력 센싱 장치(1)의 Access Point 역할을 수행하는 경우에는, 압력분포 정보를 압력 센싱 장치(1)에서 직접 수신할 수 있고, 수신된 압력분포 정보를 서버(6)에 송신하여 신경망 모델을 이용해 사용자의 자세 정보를 분류, 예측할 수 있다. 또는, 사용자 클라이언트(8)의 컴퓨팅 파워가 충분한 경우, 사용자 클라이언트(8)에서 직접 신경망 모델을 컴퓨팅할 수 있다.The
도 10은 본 발명의 일실시예에 따른 자세 분류 시스템의 사용자 클라이언트에 디스플레이 되는 화면의 예를 도시한 것이다. 도 10에 도시된 바와 같이, 수신된 압력분포 정보(30)를 인코딩하여 디스플레이하거나, 분류된 사용자의 자세 정보(31)를 송신받아 디스플레이 할 수 있다. FIG. 10 illustrates an example of a screen displayed on a user client of a posture classification system according to an embodiment of the present invention. As shown in FIG. 10, the received
압력분포 정보를 이용한 자세 분류 방법Posture classification method using pressure distribution information
도 11은 본 발명의 일실시예에 따른 압력분포 정보를 이용한 자세 분류 방법을 도시한 흐름도이다. 도 11의 흐름도는 압력분포 정보의 생성은 압력 센싱 장치(1)에서 이루어지고, 신경망 모델의 컴퓨팅은 사용자 클라이언트(8)에서 이루어지고, 재학습 여부 결정 및 클러스터 업데이트는 서버(6)에서 이루어지는 경우를 도시하고 있다. 도 11에 도시된 바와 같이, 본 발명의 일실시예에 따른 압력분포 정보를 이용한 자세 분류 방법은, 압력분포 정보 생성단계(S20), 압력분포 정보 송신 단계(S21), 자세 정보 출력 단계(S22), 출력된 자세 정보 송신 단계(S23), 압력분포 정보 플로팅 단계(S24), 재학습 여부 결정 단계(S25), 재학습 단계(S26), 가중치 업데이트 단계(S27), 클러스터 업데이트 단계(S28)를 포함할 수 있다. 11 is a flowchart illustrating a posture classification method using pressure distribution information according to an embodiment of the present invention. 11, the generation of the pressure distribution information is performed in the
압력분포 정보 생성단계(S20)는 압력 센싱 장치(1)에서 사용자의 착석에 따른 압력분포 정보를 생성하는 단계이다. The pressure distribution information generation step S20 is a step of generating pressure distribution information according to seating of the user in the
압력분포 정보 송신 단계(S21)는 압력 센싱 장치(1)에서 사용자 클라이언트(8)에 압력분포 정보를 근거리 통신을 이용하여 송신하는 단계이다. The pressure distribution information transmission step S21 is a step of transmitting the pressure distribution information from the
자세 정보 출력 단계(S22)는 사용자 클라이언트(8)에서 수신한 압력분포 정보를 테스트 세트로 하여 기학습된 신경망 모델을 적용하고, 자세 정보를 출력하는 단계이다.The attitude information output step S22 is a step of applying the learned neural network model using the pressure distribution information received by the
압력분포 정보 송신 단계(S23)는 사용자 클라이언트(8)에서 압력분포 정보를 서버(6)에 송신하는 단계이다. The pressure distribution information transmission step (S23) is a step of transmitting pressure distribution information to the server (6) by the user client (8).
압력분포 정보 플로팅 단계(S24)는 서버(6)에서 거리 또는 확률 기반으로 클러스터링 된 트레이닝 세트의 클러스터 정보에 수신된 압력분포 정보를 플로팅하는 단계이다.The pressure distribution information floating step S24 is a step of plotting the received pressure distribution information on the cluster information of the clustered training set on the basis of the distance or probability in the
재학습 여부 결정 단계(S25)는 서버(6)에서 압력분포 정보가 특정 클러스터에 포함되는지 여부를 통해 재학습 여부를 결정하는 단계이다. The re-learning decision step S25 is a step of determining whether to re-learn whether or not the pressure distribution information is included in a specific cluster in the
재학습 단계(S26)는 서버(6)에서 재학습하기로 결정한 압력분포 정보에 대해 Back propagation 등의 방법으로 신경망 모델의 가중치를 재학습하는 단계이다. The re-learning step S26 is a step of re-learning the weight of the neural network model by back propagation or the like on the pressure distribution information determined by the
가중치 업데이트 단계(S27)는 서버(6)에서 재학습되어 업데이트된 신경망 모델의 가중치를 사용자 클라이언트(8)에 송신하는 단계이다. The weight updating step S27 is a step of re-learning in the
클러스터 업데이트 단계(S28)는 서버(6)가 재학습하기로 결정한 압력분포 정보를 이용하여 트레이닝 세트의 클러스터 정보에서 클러스터의 중심(centroid)를 업데이트하는 단계이다.The cluster update step S28 is a step of updating the centroid of the cluster in the cluster information of the training set using the pressure distribution information determined by the
본 발명의 다른 실시예에 따르면, S25에서 압력분포 정보에 재학습 가중치가 결정될 수 있다. 재학습 가중치는 해당 압력분포 정보가 특정 클러스터의 중심값(centroid)에 얼마나 떨어져있는지(거리 또는 확률)로 결정되도록 정의될 수 있다. 또한, 본 발명의 다른 실시예에 따르면 S26에서 압력분포 정보에 재학습 가중치가 적용된 상태에서 신경망 모델의 가중치를 재학습될 수 있다. 예를 들어, 특정 입력값이 특정 클러스터에 포함되면 1의 가중치로 신경망 모델의 재학습에 영향을 주고, 특정 입력값이 특정 클러스터에 포함되지 않으면 0의 가중치로 신경망 모델 재학습에 영향을 주도록 구성될 수 있다.According to another embodiment of the present invention, re-learning weights may be determined in the pressure distribution information at S25. The re-learning weight may be defined to be determined by how far the pressure distribution information is from the centroid of a particular cluster (distance or probability). According to another embodiment of the present invention, the weight of the neural network model can be re-learned in a state where the re-learning weight is applied to the pressure distribution information at S26. For example, if a particular input value is included in a particular cluster, it affects the re-learning of the neural network model with a weight of 1, and if the specific input value is not included in a particular cluster, .
도 12는 본 발명의 일실시예에 따른 압력분포 정보를 이용한 자세 분류 방법의 실험결과 그래프를 도시한 것이다. 도 12에서 X축은 evolution, Y축은 accuracy(%)를 나타내고 있다. 도 12는 64개의 압력센서를 설치한 의자에 9개의 자세를 학습한 모델을 이용한 실험예이고, evolution n에서의 입력값을 이용하여 본 발명의 일실시예에 따라 모델에 재학습을 시킨 뒤, evolution n+1을 실험한 것이다. 도 12에 도시된 바와 같이, 본 발명의 일실시예에 따르면 evolution 3 이후부터 모든 자세에서 80% 이상의 분류 정확도가 나오는 것을 확인할 수 있다.12 is a graph showing an experimental result of a posture classification method using pressure distribution information according to an embodiment of the present invention. In Fig. 12, the X-axis shows the evolution and the Y-axis shows the accuracy (%). 12 is an experimental example using a model in which nine postures are learned in a chair provided with 64 pressure sensors. The model is re-learned according to an embodiment of the present invention using input values in evolution n,
도 13은 기존의 재학습 방법의 압력분포 정보를 이용한 자세 분류 방법의 실험 결과 그래프이다. 도 13에 도시된 바와 같이, 본 발명의 일실시예에 따른 재학습 여부 결정이 없이 노이즈를 포함한 데이터 전부를 재학습하는 경우, evolution 6 이후부터 모든 자세에서 80% 이상의 분류 정확도가 나오는 것을 확인할 수 있다. 13 is a graph of an experimental result of a posture classification method using pressure distribution information of the existing re-learning method. As shown in FIG. 13, when all of the data including noise is re-learned without determining whether or not to re-learn according to the embodiment of the present invention, it is confirmed that classification accuracy of 80% have.
도 14는 본 발명의 일실시예에 따른 압력분포 정보를 이용한 자세 분류 방법과 기존 방법의 평균 정확도 비교 그래프이다. 도 14에서 "noised"는 기존의 방법을 의미하고, "cleaned"는 본 발명의 일실시예에 따라 재학습 여부 결정 단계를 포함하는 방법을 의미한다. 도 14에 도시된 바와 같이, 본 발명의 일실시예에 따른 경우의 모델이 훨씬 더 빠른 정확도 상승을 보여주는 것을 확인할 수 있다. 즉, 본 발명의 일실시예에 따른 경우가 기존보다 더 적은 evolution data로도 더 좋은 성능을 내는 모델을 만들 수 있다는 점을 확인할 수 있다. 도 14에 따르면 본 발명의 일실시예에 따르는 경우 evolution 1 이후부터 평균 80%의 정확도가 보장되고, 기존의 방법에 따르는 경우 evolution 3 이후부터 평균 80%의 정확도가 보장되는 것을 확인할 수 있다. FIG. 14 is a graph showing the average accuracy of the conventional method and the posture classification method using the pressure distribution information according to an embodiment of the present invention. In Fig. 14, "noised " means an existing method, and" cleaned " means a method including determining whether to re-learn according to an embodiment of the present invention. As shown in FIG. 14, it can be seen that the model according to an embodiment of the present invention shows a much faster accuracy rise. That is, according to the embodiment of the present invention, it can be seen that a model with better performance can be created even with less evolution data. According to FIG. 14, according to an embodiment of the present invention, an average of 80% is guaranteed from
[인공신경망 모델][Artificial Neural Network Model]
도 15는 본 발명의 일실시예에 따른 압력분포 정보를 이용한 자세 분류 장치의 인공신경망 모델을 도시한 흐름도이다. 도 15에 도시된 바와 같이, 본 발명의 일실시예에 따른 압력분포 정보를 이용한 자세 분류 장치는 크게 클러스터 중심 파이프라인(20), 재학습 여부 결정 장치(10), 인공신경망 파이프라인(21)을 포함할 수 있다. 15 is a flowchart illustrating an artificial neural network model of a posture classifying apparatus using pressure distribution information according to an embodiment of the present invention. 15, the attitude classifying apparatus using pressure distribution information according to an embodiment of the present invention mainly includes a
클러스터 중심 파이프라인(20)은 교정 모듈(203)과 클러스터 중심 업데이트 모듈(204)을 포함할 수 있고, 레이블드 데이터(200, labeled data)와 세미 레이블드 데이터(201, semi-labeled data)를 수신하여 encoder(210)의 초기화/decoder(213)의 업데이트 및 클러스터 중심 초기화 및 업데이트를 수행하는 파이프라인이다. The cluster
레이블드 데이터(200)는 자세 정보와 이미 매칭된 압력분포 정보를 의미한다. 인공신경망 파이프라인(21)을 supervised learning 시키기 위한 데이터 세트이다. The labeled
세미 레이블드 데이터(201)는 특정 사용자가 자신의 자세와 압력분포 정보를 매칭한 데이터이다. 본 발명의 일실시예에 따르면 세미 레이블드 데이터(201)는 특정 사용자가 클러스터 중심 파이프라인(20)에 입력하는 캘리브레이션 데이터(calibration data)일 수 있고, 최종적으로 분류되는 자세 정보의 일부에 대해 사용자에 의해 레이블링 될 수 있다.
교정 모듈(203)은 레이블드 데이터(200)와 세미 레이블드 데이터(201)의 분포상 차이를 최소화하는 방향으로 레이블드 데이터(200) 또는 세미 레이블드 데이터(201)를 교정(calibration)하여 교정 정보를 생성하는 모듈이다. 교정 모듈(203)은 레이블드 데이터와 세미 레이블드 데이터의 차이를 최소화하는 방향으로 레이블드 데이터(200) 또는 세미 레이블드 데이터(201)를 교정(calibration)하여 생성된 교정 정보를 토대로 encoder(210)의 가중치를 초기화하며 클러스터 중심 업데이트 모듈(204)의 클러스터 중심을 초기화하게 된다. 본 발명의 일실시예에 따르면 교정 모듈(203)에 의해 클러스터링 중심 파이프라인(20)과 인공신경망 파이프라인(21)이 각각 세미 레이블드 데이터(201)에 의해 사용자에게 맞춤형으로 초기화될 수 있는 효과가 발생된다. The calibration module 203 calibrates the labeled
클러스터 중심 업데이트 모듈(204)은 교정 모듈(203)에서 생성된 교정 정보를 토대로 레이블드 데이터(200)의 클러스터 중심(cluster centroid)을 초기화하고, 재학습 여부 결정장치(10)에서 재학습하기로 결정된 언레이블드 데이터(202)를 토대로 레이블드 데이터(200)의 클러스터 중심을 업데이트하며, 업데이트된 레이블드 데이터의 클러스터 중심을 토대로 인공신경망 파이프라인을 업데이트(재학습)하는 모듈이다. The cluster center update module 204 initializes the cluster centroid of the labeled
인공신경망 파이프라인(21)은 사용자에 의해 입력되는 언레이블드 데이터(202, unlabeled data)를 수신하여 기학습된 인공신경망을 지나 해당 언레이블드 데이터(202)를 기반으로 분류된 자세 정보를 자세 출력 데이터(214)로 출력(추론, inference)하는 파이프라인을 의미한다. 본 발명의 일실시예에 따른 인공신경망 파이프라인(21)은 인코더(210, encoder), 잠재변수부(211, Latent variable), 특징추출부(212, extracted feature), 디코더(213, decoder)를 포함할 수 있다. The artificial neural network pipeline 21 receives the unlabeled data 202 input by the user and passes posture information classified based on the unlabeled data 202 past the learned artificial neural network Quot; refers to a pipeline that outputs (inference) to output data 214. An artificial neural network pipeline 21 according to an embodiment of the present invention includes an
언레이블드 데이터(202)는 사용자에 의해 입력되는 자세 정보와 매칭 또는 자세 정보로 분류되지 않은 압력분포 정보를 의미할 수 있다. Unlabeled data 202 may refer to attitude information input by the user and pressure distribution information that is not classified as matching or attitude information.
인코더(210)는 Convolution Neural Network과 같은 인공 신경망의 인코더를 의미할 수 있다.
잠재변수부(211)는 인코더(210)의 결과에서 특징추출부에서 빠진 임의의 노이즈 (정규분포화된)를 의미할 수 있다.The latent variable part 211 may mean any noise (normally distributed) missing from the feature extraction part in the result of the
특징추출부(212)는 인코더(210)에 의해 출력되는 분류된 특징인 자세 정보를 의미할 수 있고 이는 사용자에게 자세 구별을 알려주는 역할을 할 수 있다.The feature extracting unit 212 may represent posture information that is classified by the
디코더(213)는 잠재변수와 추출된 자세와 관련된 특징 정보를 토대로 압력분포 데이터를 새롭게 생성하거나 재현하기 위해 디코딩하는 Convolution Neural Network을 의미할 수 있다.
자세 생성 데이터(214)는 인공신경망 파이프라인(21)에 있는 특징추출부를 훈련시키기 위한 가상의 사용자 자세 압력분포를 의미할 수 있다.The posture generation data 214 may refer to a virtual user posture pressure distribution for training the feature extraction unit in the artificial neural network pipeline 21.
재학습 여부 결정장치(10)는 언레이블드 데이터(202), 잠재변수부(211)의 잠재변수, 특징추출부(212)의 자세 정보, 클러스터 중심 업데이트 모듈(204)의 클러스터 중심을 토대로 언레이블드 데이터(202)의 재학습 여부를 결정하는 장치이다. 본 발명의 일실시예에 따른 재학습 여부 결정장치(10)에 의해 재학습되기로 결정된 입력값이 속하는 클러스터의 중심값(centroid)를 업데이트하여 신경망 모델의 성능을 개인에 맞게 향상시킬 수 있는 효과가 있다.The
이상에서 설명한 바와 같이, 본 발명이 속하는 기술 분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 상술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상세한 설명보다는 후술하는 청구범위에 의하여 나타내어지며, 청구범위의 의미 및 범위 그리고 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함하는 것으로 해석되어야 한다.As described above, those skilled in the art will appreciate that the present invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. It is therefore to be understood that the above-described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the present invention is defined by the appended claims rather than the detailed description, and all changes or modifications derived from the meaning and scope of the claims and their equivalents should be construed as being included within the scope of the present invention.
1: 압력 센싱 장치
2: 압력분포 센서
3: 송수신부
4: 전원부
5: 제어부
6: 서버
7: DB
8: 사용자 클라이언트
10: 신경망 모델에서 입력값에 대한 재학습 여부 결정 장치
20: 클러스터 중심 파이프라인
21: 인공신경망 파이프라인
100: 수신부
101: 샘플링 프로세서
102: 신경망 모델 테스트 프로세서
103: 신경망 모델 트레이닝 프로세서
104: 데이터 전처리 프로세서
105: 클러스터링 프로세서
106: 재학습 여부 결정 프로세서
107: 재학습 프로세서
108: 저장 프로세서
200: 레이블드 데이터
201: 세미 레이블드 데이터
202: 언레이블드 데이터
203: 교정 모듈
204: 클러스터 중심 업데이트 모듈
210: 인코더
211: 잠재변수부
212: 특징추출부
213: 디코더
214: 자세 생성 데이터1: Pressure sensing device
2: Pressure distribution sensor
3: Transmitting /
4:
5:
6: Server
7: DB
8: User Client
10: Determination of re-learning of input values in a neural network model
20: Cluster-centric pipeline
21: Artificial neural network pipeline
100:
101: Sampling processor
102: Neural Network Model Test Processor
103: Neural Network Model Training Processor
104: Data preprocessing processor
105: Clustering Processor
106: Re-learning decision processor
107: re-learning processor
108: storage processor
200: Labeled data
201: Semi-labeled data
202: Unlabeled data
203: calibration module
204: Cluster-centric update module
210: Encoder
211: Potential variable part
212: Feature extraction unit
213: decoder
214: posture creation data
Claims (5)
상기 컴퓨팅 장치가, 기학습된 신경망 모델의 학습에 이용된 트레이닝 세트에 대한 클러스터링을 수행하는 트레이닝 세트 클러스터링 단계;
상기 컴퓨팅 장치가, 상기 신경망 모델에 입력되는 입력값을 상기 트레이닝 세트의 클러스터링 분포에 플로팅(plotting)하는 입력값 플로팅 단계;
상기 컴퓨팅 장치가, 상기 입력값이 상기 트레이닝 세트의 클러스터링 분포 중 하나인 특정 클러스터에 포함되는지 여부를 판단하는 입력값 분류 단계;
상기 컴퓨팅 장치가, 상기 입력값과 상기 특정 클러스터의 중심값(centroid) 사이의 거리 또는 상기 입력값이 상기 특정 클러스터에 포함될 확률을 토대로 상기 입력값의 재학습 여부 또는 재학습 가중치를 결정하는 입력값 재학습 여부 결정 단계; 및
상기 컴퓨팅 장치가, 상기 입력값 재학습 여부 결정 단계에서 결정된 상기 입력값의 재학습 여부 또는 재학습 가중치를 기초로 상기 신경망 모델을 재학습을 수행하는 신경망 모델 재학습 단계;
를 포함하는,
신경망 모델에서 입력값에 대한 재학습 여부 결정 방법.
A method for determining whether to re-learn an input value in a neural network model performed by a computing device,
A training set clustering step in which the computing device performs clustering on a training set used for learning of a neural network model learned;
An input value plotting step of the computing device plotting an input value input to the neural network model to a clustering distribution of the training set;
An input value classification step of the computing device determining whether the input value is included in a specific cluster that is one of the clustering distributions of the training set;
Wherein the computing device is configured to determine whether to re-learn the input value or re-learn weight based on a distance between the input value and a centroid of the specific cluster or a probability that the input value is included in the specific cluster Determining whether to re-learn; And
The neural network model re-learning step of the computing apparatus re-learning the neural network model based on re-learning of the input value or re-learning weight determined in the input value re-learning decision step;
/ RTI >
A method for determining whether to re - learn input values in a neural network model.
상기 신경망 모델 재학습 단계 이후에,
상기 컴퓨팅 장치가, 상기 입력값 재학습 여부 결정 단계에서 결정된 상기 입력값의 재학습 여부 또는 재학습 가중치를 기초로 상기 특정 클러스터의 중심값(centroid)를 업데이트하는 클러스터 중심값 업데이트 단계;
를 더 포함하는,
신경망 모델에서 입력값에 대한 재학습 여부 결정 방법.
The method according to claim 1,
After the neural network model re-learning step,
Updating the cluster centroid value of the specific cluster based on whether the input value is re-learned or re-learned weight determined in the step of determining whether to re-learn the input value;
≪ / RTI >
A method for determining whether to re - learn input values in a neural network model.
상기 트레이닝 세트 클러스터링 단계 및 상기 입력값 플로팅 단계에서는, K-means, spectral clustering 또는 N-cut을 통한 linear mapping 또는 Auto encoder 기반의 non-linear mapping을 수행하여 클러스터링하는 것을 특징으로 하는, 신경망 모델에서 입력값에 대한 재학습 여부 결정방법.
The method according to claim 1,
Wherein the training set clustering step and the input value plotting step are performed by performing linear mapping through K-means, spectral clustering or N-cut or non-linear mapping based on an auto encoder to perform clustering. How to determine whether to re-learn the value.
상기 수신부에서 상기 입력값을 수신하고, 기학습된 신경망 모델을 포함하며, 상기 신경망 모델에 수신된 상기 입력값을 적용하여 출력값을 계산하는 신경망 모델 컴퓨팅 프로세서;
상기 수신부에서 상기 입력값을 수신하고, 상기 입력값 중 상기 신경망 모델의 학습에 이용된 트레이닝 세트를 클러스터링하여 클러스터링 정보를 생성하는 클러스터링 프로세서;
상기 클러스터링 프로세서에서 상기 클러스터링 정보를 수신하고, 상기 수신부에서 수신되는 상기 입력값이 상기 클러스터링 정보의 특정 클러스터의 중심값(centeroid)과의 거리 또는 특정 클러스터에 포함될 확률을 기초로 상기 입력값의 재학습 여부 또는 상기 입력값에 적용되는 재학습 가중치를 결정하는 재학습 여부 결정 프로세서; 및
상기 재학습 여부 결정 프로세서에서 상기 입력값의 재학습 여부 또는 상기 재학습 가중치를 수신하고, 상기 신경망 모델 컴퓨팅 프로세서의 상기 신경망 모델을 재학습하여 상기 신경망 모델 컴퓨팅 프로세서의 상기 신경망 모델을 업데이트하는 재학습 프로세서;
를 포함하는,
신경망 모델에서 입력값에 대한 재학습 여부 결정장치.
A receiving unit for receiving an input value;
A neural network model computing processor for receiving the input value from the receiver and including a learned neural network model and calculating an output value by applying the input value received in the neural network model;
A clustering processor for receiving the input values from the receiver and clustering training sets used for learning of the neural network model among the input values to generate clustering information;
Wherein the clustering processor receives the clustering information and re-learns the input value based on a probability that the input value received at the receiving unit is included in a specific cluster or a distance from a center value of a specific cluster of the clustering information, Whether or not a re-learning weight is applied to the input value; And
Wherein the re-learning decision processor receives the re-learning of the input value or the re-learning weight and re-learns the neural network model of the neural network model computing processor to update the neural network model of the neural network model computing processor A processor;
/ RTI >
An apparatus for determining re - learning of input values in a neural network model.
상기 재학습 프로세서는, 상기 클러스터링 정보의 특정 클러스터의 중심값(centeroid)을 업데이트하는 것을 특징으로 하는,
신경망 모델에서 입력값에 대한 재학습 여부 결정장치.
5. The method of claim 4,
Wherein the re-learning processor updates a center value of a specific cluster of the clustering information.
An apparatus for determining re - learning of input values in a neural network model.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170084646A KR102031982B1 (en) | 2017-07-04 | 2017-07-04 | A posture classifying apparatus for pressure distribution information using determination of re-learning of unlabeled data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170084646A KR102031982B1 (en) | 2017-07-04 | 2017-07-04 | A posture classifying apparatus for pressure distribution information using determination of re-learning of unlabeled data |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190004429A true KR20190004429A (en) | 2019-01-14 |
KR102031982B1 KR102031982B1 (en) | 2019-10-14 |
Family
ID=65027825
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170084646A KR102031982B1 (en) | 2017-07-04 | 2017-07-04 | A posture classifying apparatus for pressure distribution information using determination of re-learning of unlabeled data |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102031982B1 (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109979161A (en) * | 2019-03-08 | 2019-07-05 | 河海大学常州校区 | A kind of tumble detection method for human body based on convolution loop neural network |
WO2020231188A1 (en) * | 2019-05-13 | 2020-11-19 | 삼성전자주식회사 | Classification result verifying method and classification result learning method which use verification neural network, and computing device for performing methods |
CN112328804A (en) * | 2020-10-26 | 2021-02-05 | 北京黑岩方碑网络科技有限公司 | Method, apparatus and storage medium for determining learning situation |
WO2021125431A1 (en) * | 2019-12-19 | 2021-06-24 | 주식회사 노타 | Method and device for initializing deep learning model via distributed equalization |
WO2022114653A1 (en) * | 2020-11-26 | 2022-06-02 | (주)심플랫폼 | Data boundary deriving system and method |
KR20220096274A (en) * | 2020-12-30 | 2022-07-07 | 동서대학교 산학협력단 | Machine learning-based attitude determination system using pressure sensor |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230155658A (en) | 2022-05-03 | 2023-11-13 | 동국대학교 산학협력단 | Active learning apparatus for time-series calssification and method thereof |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06103257A (en) * | 1992-09-17 | 1994-04-15 | Yamatake Honeywell Co Ltd | Exception processor for exemplification learning system |
KR20160034814A (en) | 2014-09-22 | 2016-03-30 | 삼성전자주식회사 | Client device with neural network and system including the same |
-
2017
- 2017-07-04 KR KR1020170084646A patent/KR102031982B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06103257A (en) * | 1992-09-17 | 1994-04-15 | Yamatake Honeywell Co Ltd | Exception processor for exemplification learning system |
KR20160034814A (en) | 2014-09-22 | 2016-03-30 | 삼성전자주식회사 | Client device with neural network and system including the same |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109979161A (en) * | 2019-03-08 | 2019-07-05 | 河海大学常州校区 | A kind of tumble detection method for human body based on convolution loop neural network |
WO2020231188A1 (en) * | 2019-05-13 | 2020-11-19 | 삼성전자주식회사 | Classification result verifying method and classification result learning method which use verification neural network, and computing device for performing methods |
WO2021125431A1 (en) * | 2019-12-19 | 2021-06-24 | 주식회사 노타 | Method and device for initializing deep learning model via distributed equalization |
CN112328804A (en) * | 2020-10-26 | 2021-02-05 | 北京黑岩方碑网络科技有限公司 | Method, apparatus and storage medium for determining learning situation |
WO2022114653A1 (en) * | 2020-11-26 | 2022-06-02 | (주)심플랫폼 | Data boundary deriving system and method |
KR20220073307A (en) * | 2020-11-26 | 2022-06-03 | (주)심플랫폼 | A System and Method for Deriving Data Boundary |
KR20220096274A (en) * | 2020-12-30 | 2022-07-07 | 동서대학교 산학협력단 | Machine learning-based attitude determination system using pressure sensor |
Also Published As
Publication number | Publication date |
---|---|
KR102031982B1 (en) | 2019-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20190004429A (en) | Method and apparatus for determining training of unknown data related to neural networks | |
Taymouri et al. | Predictive business process monitoring via generative adversarial nets: the case of next event prediction | |
US11030486B2 (en) | Image classification through label progression | |
JP7317717B2 (en) | Systems and methods that enable memory-bound continuous learning in artificial intelligence and deep learning, operating applications continuously across network computing edges | |
Gao et al. | Deep gate recurrent neural network | |
Pandey et al. | Variational methods for conditional multimodal deep learning | |
CN111079639B (en) | Method, device, equipment and storage medium for constructing garbage image classification model | |
US20210192357A1 (en) | Gradient adversarial training of neural networks | |
US20190012581A1 (en) | Method and an apparatus for evaluating generative machine learning model | |
Li et al. | Deep independently recurrent neural network (indrnn) | |
CN111523621A (en) | Image recognition method and device, computer equipment and storage medium | |
CN116635866A (en) | Method and system for mining minority class data samples to train a neural network | |
WO2020159890A1 (en) | Method for few-shot unsupervised image-to-image translation | |
Shen et al. | A general associative memory based on self-organizing incremental neural network | |
WO2019018533A1 (en) | Neuro-bayesian architecture for implementing artificial general intelligence | |
US20200272812A1 (en) | Human body part segmentation with real and synthetic images | |
CN115552481A (en) | System and method for fine tuning image classification neural network | |
Ansar et al. | Robust hand gesture tracking and recognition for healthcare via Recurent neural network | |
WO2018092957A1 (en) | Method, device and program for determining for re-learning with respect to input value in neural network model | |
Berlin et al. | R-STDP based spiking neural network for human action recognition | |
US11526757B2 (en) | Systems and methods for deep learning with small training sets | |
KR20190061381A (en) | Method and apparatus for hardware variable automation | |
KR101880547B1 (en) | Method for extracting a feature vector of video using similarity measure | |
Dawood et al. | Robot behaviour learning using topological gaussian adaptive resonance hidden markov model | |
Krishnaveni et al. | An assertive framework for automatic tamil sign language recognition system using computational intelligence |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |