KR20190016539A - Neural network and neural network training method - Google Patents
Neural network and neural network training method Download PDFInfo
- Publication number
- KR20190016539A KR20190016539A KR1020197000226A KR20197000226A KR20190016539A KR 20190016539 A KR20190016539 A KR 20190016539A KR 1020197000226 A KR1020197000226 A KR 1020197000226A KR 20197000226 A KR20197000226 A KR 20197000226A KR 20190016539 A KR20190016539 A KR 20190016539A
- Authority
- KR
- South Korea
- Prior art keywords
- training
- array
- neuron
- matrix
- weight
- Prior art date
Links
Images
Classifications
-
- G06N3/0635—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
- G06N3/065—Analogue means
-
- 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
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Neurology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Image Analysis (AREA)
Abstract
신경망은 입력 신호들을 수신하기 위한 입력들, 및 입력들에 연결되고 어레이로 조직화된 보정 가중치들을 갖는 시냅스들을 포함한다. 트레이닝 이미지들은 망의 트레이닝 과정동안 입력들에 의해 어레이로 수신되거나 코딩된다. 망은 또한 각각 하나의 시냅스를 통해 적어도 하나의 입력과 연결된 출력을 가지며 각각의 뉴런에 연결된 각 시냅스에서 선택된 보정 가중치를 합산하여 뉴런 합계 어레이를 생성하는 뉴런을 포함한다. 또한, 망은 어레이에서 원하는 이미지들을 수신하고, 원하는 출력 값 어레이로부터 뉴런 합 어레이 편차를 결정하며, 편차 어레이를 생성하는 컨트롤러를 포함한다. 컨트롤러는 편차 어레이를 사용하여 보정 가중치 어레이를 변경한다. 뉴런 합 어레이를 결정하기 위해 변경된 보정 가중치를 더하면 대상 편차가 줄어들고 동시 망 트레인닝을 위한 트레이닝된 보정 가중치 어레이가 생성된다.The neural network includes inputs for receiving input signals, and synapses connected to inputs and having correction weights organized in an array. The training images are received or coded into the array by inputs during the training process of the network. The network also includes neurons that each have an output coupled to at least one input through one synapse and that sum the selected calibration weights at each synapse connected to each neuron to produce a neuron sum array. The network also includes a controller that receives the desired images in the array, determines a neuron sum array deviation from the desired output value array, and generates a deviation array. The controller uses the deviation array to change the calibration weight arrays. Adding the modified calibration weights to determine the neuron sum array reduces the target deviations and generates a training calibration weight array for simultaneous network training.
Description
본 출원은 2017년 3월 3일자로 출원된 미국 실용신안 출원 제15/449614호 및 2016년6월 9일자로 출원된 미국 실용신안 출원 제15/178,137호의 이익을 주장하며, 이들 각각은 2015년 9월 23일에 출원된 미국 우회 실용신안출원 제14/ 862,337호의 일부 계속 출원이고, 이는 2015년 3월 6일에 출원된 국제출원번호 PCT/US2015/19236로서, 이는 2014년 3월 6일에 출원된 미국가출원 제 61/949,210호와 2015년 1월 22일에 출원된 미국 가출원 제62/106,389호의 이익을 주장하고, 또한 2015년 6월 9일자로 출원된 미국 가출원 제62/173,163호의 이익을 주장하며, 그 전체 내용은 참고 문헌으로 유사하게 포함된다.This application claims benefit of U.S. Utility Model Application No. 15/449614, filed March 3, 2017, and U.S. Utility Model Application No. 15 / 178,137, filed June 9, 2016, This application is a continuation-in-part of U.S. Patent Application No. 14 / 862,337, filed Sep. 23, 2008, International Application No. PCT / US2015 / 19236, filed on March 6, 2015, U.S. Provisional Application No. 61 / 949,210 filed on January 22, 2015, and U.S. Provisional Application No. 62 / 106,389 filed on January 22, 2015, as well as the benefit of U.S. Provisional Application No. 62 / 173,163 filed on June 9, 2015 , The entire contents of which are also incorporated by reference.
본 개시는 인공 신경망 및 트레이닝 방법에 관한 것이다.This disclosure relates to artificial neural networks and training methods.
기계 학습에서, "신경망"이라는 용어는 일반적으로 소프트웨어 및/또는 컴퓨터 아키텍처, 즉 그것을 실행하는데 필요한 하드웨어 및 소프트웨어를 포함하는 컴퓨터 시스템 또는 마이크로프로세서의 전체 디자인 또는 구조를 지칭한다. 인공 신경망들은 동물의 중추 신경계라고 알려진, 특히 뇌의 생물학적 신경 네트워크에서 영감을 얻은 통계적 학습 알고리즘 계열이다. 인공 신경망들은 주로 많은 입력에 의존할 수 있는 일반적으로 알려지지 않은 기능을 추정하거나 근사하는데 사용된다. 이러한 신경망들은 컴퓨터 비전 및 음성 인식을 포함하여 일반적인 규칙 기반 프로그래밍을 사용하여 해결하기 어려운 다양한 작업에 사용되었다.In machine learning, the term " neural network " generally refers to the entire design or structure of a computer system or microprocessor including software and / or computer architecture, i. Artificial neural networks are a family of statistical learning algorithms known as the animal's central nervous system, particularly inspired by the brain's biological neural network. Artificial neural networks are often used to estimate or approximate generally unknown functions that can rely on many inputs. These neural networks have been used for a variety of tasks that are difficult to solve using general rule-based programming, including computer vision and speech recognition.
인공 신경망들은 일반적으로 입력들로부터 값들을 계산할 수 있는 "뉴런들"의 시스템들로서 표현되고, 그 적응적 특성의 결과로서 패턴 인식뿐만 아니라 기계 학습을 할 수 있다. 각 뉴런은 종종 시냅스 가중치들(synaptic weights)을 갖는 시냅스들을 통해 여러 입력들과 연결된다.Artificial neural networks are generally represented as systems of " neurons " that can calculate values from inputs, and machine learning as well as pattern recognition as a result of their adaptive nature. Each neuron is often associated with multiple inputs through synapses with synaptic weights.
신경망들은 통상적인 소프트웨어 및 하드웨어로서 프로그램되지 않고, 다만 트레이닝된다. 이러한 트레이닝은 통상적으로 충분한 수의 대표적인 예시들의 분석을 통해 그리고 시냅스 가중치의 통계적인 또는 알고리즘적 선택에 의해, 주어진 입력 이미지들 세트가 주어진 출력 이미지들 세트에 대응되도록 수행된다. 전통적인 신경망들의 공통적인 비판은 상당한 시간 및 다른 리소스들이 그들의 트레이닝에 자주 필요하다는 것이다.Neural networks are not programmed as conventional software and hardware, but are just trained. This training is typically performed by analyzing a sufficient number of representative examples and by statistical or algorithmic selection of synaptic weights such that a given set of input images corresponds to a given set of output images. A common criticism of traditional neural networks is that significant time and other resources are often needed for their training.
다양한 인공 신경망들이 후술하는 미국 특허 4,979,124; 5,479,575; 5,493,688; 5,566,273; 5,682,503; 5,870,729; 7,577,631; 및 7,814,038에서 개시된다.Various artificial neural networks are described in U.S. Patent Nos. 4,979,124; 5,479,575; 5,493,688; 5,566,273; 5,682,503; 5,870,729; 7,577,631; And 7,814,038.
본 개시는 인공 신경망 및 트레이닝 방법을 제공한다.The present disclosure provides artificial neural networks and training methods.
일 실시예에서, 신경망은 트레이닝 이미지들을 수신하도록 구성된 신경망에 대한 다수의 입력들을 포함한다. 트레이닝 이미지들은 다수의 입력들에 의해 신경망의 트레이닝동안, 즉, 다수의 입력들에 의해 수신된 후에, 트레이닝 입력 값 어레이로서 수신되거나 또는 트레이닝 입력 값 어레이로서 코딩된 것의 하나이다. 신경망은 또한 다수의 시냅스들을 포함한다. 각각의 시냅스는 다수의 입력들 중 하나에 연결되고 그리고 다수의 보정 가중치들을 포함한다. 각각의 보정 가중치가 가중치 값에 의해 정의되고, 그리고 다수의 시냅스들의 보정 가중치들이 보정 가중치 어레이로 조직화된다.In one embodiment, the neural network includes a plurality of inputs to a neural network configured to receive training images. Training images are either received as a training input value array or coded as a training input value array during training of the neural network by multiple inputs, i.e. after being received by multiple inputs. Neural networks also include multiple synapses. Each synapse is coupled to one of a plurality of inputs and includes a plurality of calibration weights. Each calibration weight is defined by a weight value, and the calibration weights of the plurality of synapses are organized into a calibration weight array.
신경망은 부가적으로 다수의 뉴런들을 포함한다. 각각의 뉴런이 적어도 하나의 출력을 갖고 그리고 다수의 시냅스들 중 적어도 하나를 통해 다수의 입력들 중 적어도 하나와 연결된다. 각각의 뉴런이 각각의 뉴런에 연결된 대응하는 각각의 시냅스의 보정 가중치들의 가중치 값들을 합산하도록 구성됨으로써, 다수의 뉴런들이 뉴런 합 어레이를 생성한다. 신경망은 또한 원하는 출력 값 어레이로 조직화된 원하는 이미지들을 수신하도록 구성된 컨트롤러를 포함한다.The neural network additionally includes a plurality of neurons. Each neuron has at least one output and is coupled to at least one of the plurality of inputs through at least one of the plurality of synapses. Each neuron is configured to sum the weight values of the correction weights of the corresponding respective synapses connected to each neuron so that multiple neurons produce a neuron sum array. The neural network also includes a controller configured to receive the desired images organized into a desired output value array.
컨트롤러는 또한 원하는 출력 값 어레이로부터 뉴런 합 어레이의 편차를 결정하며 그리고 편차 어레이를 생성하도록 구성된다. 컨트롤러는 부가적으로 결정된 편차 어레이를 이용하여 보정 가중치 어레이를 변경하도록 구성된다. 뉴런 합 어레이를 결정하기 위해 변경된 보정 가중치 값들을 합산하면 원하는 출력 값으로부터 뉴런 합 어레이의 편차를 감소시키고, 즉, 트레이닝 도중 뉴런망에 의해 생성된 오류를 보상하고, 트레이닝된 보정 가중치 어레이를 생성하여, 신경망의 동시 및 병렬 트레이닝을 용이하게 한다.The controller is also configured to determine a deviation of the neuron sum array from the desired output value array and to generate a deviation array. The controller is configured to change the calibration weight arrays using the additionally determined deviation arrays. Summing the modified calibration weight values to determine the neuron sum array reduces the deviation of the neuron sum array from the desired output value, i. E., Compensates for errors generated by the neural network during training, and generates a training calibration weight array , Facilitating simultaneous and parallel training of neural networks.
트레이닝된 신경망에서, 신경망에 대한 다수의 입력들은 입력 이미지들을 수신하도록 구성될 수 있다. 이러한 입력 이미지들은 신경망에 의해 이미지들의 인식동안 입력 값 어레이로서 수신되거나 또는 입력 값 어레이로서 코딩되는 것중 하나일 수 있다. 각각의 시냅스는 트레이닝된 보정 가중치 어레이 중 다수의 트레이닝된 보정 가중치들을 포함할 수 있다. 부가적으로, 각각의 뉴런은 각각의 뉴런에 연결된 각각의 시냅스에 대응하는 트레이닝된 보정 가중치들 중 가중치 값들을 가산하도록 구성될 수 있음으로써, 다수의 뉴런들이 인식된 이미지들 어레이를 생성하여, 이러한 입력 이미지들의 인식을 제공한다.In the trained neural network, multiple inputs to the neural network may be configured to receive input images. These input images may be either received as an input value array or coded as an input value array during recognition of the images by the neural network. Each synapse may include a plurality of training calibration weights among the training calibration weight arrays. Additionally, each neuron may be configured to add weighted values of the training calibration weights corresponding to each synapse connected to each neuron, thereby generating a plurality of neurons of the recognized images array, Provides recognition of input images.
신경망은 또한 분배기들의 세트를 포함할 수 있다. 이러한 실시예에서, 분배기들의 세트는 각각의 트레이닝 이미지들 그리고 각각의 트레이닝 입력 값 어레이와 입력 값 어레이로서 입력 이미지들을 코딩하도록 구성될 수 있다. 이러한 분배기들의 세트는 각각의 트레이닝 이미지들 및 입력 이미지들을 수신하기 위해 다수의 입력들에 동작 가능하게 연결될 수 있다.The neural network may also include a set of distributors. In this embodiment, a set of distributors may be configured to code the input images as respective training images and each training input value array and input value array. A set of such distributors may be operatively connected to a plurality of inputs to receive respective training images and input images.
컨트롤러는 부가적으로 원하는 출력 값 어레이로부터 뉴런 합 어레이의 타겟 편차의 어레이로 프로그래밍될 수 있다. 또한, 컨트롤러는 원하는 출력 값 어레이로부터 뉴런 합 어레이의 편차가 타겟 편차 어레이의 수용 가능한 범위 내에 있을 때, 신경망의 트레이닝을 완료하도록 구성될 수 있다.The controller can additionally be programmed from the desired output value array to an array of target deviations of the neuron sum array. The controller may also be configured to complete the training of the neural network when the deviation of the neuron sum array from the desired output value array is within an acceptable range of the target deviation array.
트레이닝 입력 값 어레이, 입력 값 어레이, 보정 가중치 어레이, 뉴런 합 어레이, 원하는 출력 값 어레이, 편차 어레이, 트레이닝된 보정 가중치 어레이, 인식된 이미지 어레이, 및 타겟 편차 어레이는, 각각, 트레이닝 입력 값 매트릭스, 입력 값 매트릭스, 보정 가중치 매트릭스, 뉴런 합 매트릭스, 원하는 출력 값 매트릭스, 편차 매트릭스, 트레이닝된 보정 가중치 매트릭스, 인식된 이미지 매트릭스 및 타겟 편차 매트릭스로 조직화될 수 있다.The training input value arrays, the input value arrays, the correction weight arrays, the neuron sum arrays, the desired output value arrays, the deviation arrays, the training correction weight arrays, the recognized image arrays, Value matrix, a correction weight matrix, a neuron sum matrix, a desired output value matrix, a deviation matrix, a trained correction weight matrix, a recognized image matrix, and a target deviation matrix.
신경망은 부가적으로 다수의 데이터 프로세서들을 포함할 수 있다. 이러한 실시예에서, 컨트롤러는 부가적으로 각각의 입력 값, 트레이닝 입력 값, 보정 가중치, 뉴런 합 및 원하는 출력 값 매트릭스들 중 적어도 하나를 각각의 서브-매트릭스들로 분할하고 그리고 서브-매트릭스로 별도의 병렬 수학 연산을 위해 다수의 결과적인 서브-매트릭스들이 다수의 데이터 프로세서들과 통신하도록 구성될 수 있다. 이러한 분할 즉, 임의의 대상 매트릭스들을 각각의 서브-매트릭스들로 분할하는 것은 동시 또는 병렬 데이터 프로세싱을 용이하게 하고 입력 값 매트릭스의 이미지 인식 및 신경망의 트레이닝 중 하나의 속도를 향상시킨다. 이러한 동시 또는 병렬 데이터 프로세싱은 또한 신경망의 확장성을 허용한다.The neural network may additionally comprise a plurality of data processors. In this embodiment, the controller additionally divides at least one of each input value, the training input value, the correction weight, the neuron sum, and the desired output value matrix into respective sub-matrices, Multiple resultant sub-matrices for parallel mathematical operations may be configured to communicate with multiple data processors. This partitioning, i.e., splitting any object matrices into respective sub-matrices, facilitates simultaneous or parallel data processing and enhances the speed of one of the image recognition of the input value matrix and the training of the neural network. This simultaneous or parallel data processing also allows the scalability of the neural network.
컨트롤러는 트레이닝 입력 값 매트릭스 및 보정 가중치 매트릭스에 대수 매트릭스 연산을 적용하여 보정 가중치 매트릭스를 변경할 수 있음으로써, 신경망을 트레이닝한다.The controller trains the neural network by applying a logarithmic matrix operation to the training input value matrix and the correction weight matrix to change the correction weight matrix.
수학적 매트릭스 연산은 트레이닝 입력 값과 보정 가중치 매트릭스들의 수학적 곱의 결정을 포함할 수 있음으로써, 현재의 트레이닝 시기 가중치 매트릭스를 형성한다.The mathematical matrix operation may comprise determining a mathematical product of the training input values and the correction weighting matrices to form a current training time weighting matrix.
컨트롤러는 또한 뉴런 합들의 편차 매트릭스를 생성하기 위해 원하는 출력 값 매트릭스로부터 뉴런 합 매트릭스를 감산할 수 있다. 부가적으로, 컨트롤러는 뉴런 입력 당 편차 매트릭스를 생성하기 위해 뉴런 합들의 편차 매트릭스를 각각의 뉴런에 연결된 입력들의 수로 나누도록 구성될 수 있다.The controller may also subtract the neuron sum matrix from the desired output value matrix to produce a deviation matrix of neuron sums. Additionally, the controller may be configured to divide the deviation matrix of neuron sums by the number of inputs connected to each neuron to produce a deviation matrix per neuron input.
컨트롤러는 각각의 보정 가중치가 신경망에서 하나의 트레이닝 시기동안 사용된 횟수를 결정하도록 구성될 수 있다. 컨트롤러는 부가적으로 각각의 보정 가중치가 하나의 트레이닝 시기동안 사용된 결정된 횟수를 사용하여 하나의 트레이닝 시기에 대한 평균 편차 매트릭스를 형성하도록 구성될 수 있다. 또한, 컨트롤러는 하나의 트레이닝 시기에 대한 평균 편차 매트릭스를 보정 가중치 매트릭스에 가산하도록 구성될 수 있어, 트레이닝된 보정 가중치 매트릭스를 생성하고 하나의 트레이닝 시기를 완료한다.The controller may be configured to determine the number of times each calibration weight is used during one training period in the neural network. The controller may be further configured to form an average deviation matrix for one training period using the determined number of times each calibration weight is used during one training period. The controller can also be configured to add an average deviation matrix for one training period to a correction weighting matrix to generate a trained correction weighting matrix and complete one training period.
이러한 신경망을 동작시키는, 즉 트레이닝 및 이미지 인식을 위한 방법이 또한 개시된다.Methods for operating such neural networks, i.e., training and image recognition, are also disclosed.
또한, 인공 신경망을 동작시키기 위한 비 일시적 컴퓨터 판독 가능 저장 장치 및 인공 신경망을 동작시키기 위한 장치가 개시된다.Also disclosed are non-transitory computer readable storage devices for operating an artificial neural network and apparatus for operating an artificial neural network.
다른 실시예에서, 신경망은 다수의 망 입력들을 포함함으로써, 각 입력이 입력 값을 갖는 입력 신호를 수신하도록 구성된다. 신경망은 또한 다수의 시냅스를 포함하되, 각 시냅스는 다수의 입력들 중 하나에 연결되고 그리고 다수의 보정 가중치를 포함하되, 각각의 보정 가중치는 각각의 가중치를 유지하는 메모리 소자에 의해 설정된다. 신경망은 부가적으로 분배기들의 세트를 포함한다. 각각의 분배기는 각각의 입력 신호를 수신하기 위해 다수의 입력들 중 하나에 동작 가능하게 연결되고, 입력 값과 상관하여 다수의 보정 가중치들로부터 하나 이상의 보정 가중치들을 선택하도록 구성된다. 신경망은 또한 뉴런들의 세트를 포함한다. 각각의 뉴런은 적어도 하나의 출력을 가지며, 다수의 시냅스들 중 하나의 시냅스를 통해 다수의 입력들 중 적어도 하나와 연결되고, 각각의 뉴런에 연결된 각각의 시냅스로부터 선택된 보정 가중치들 중 가중치 값을 가산하도록 구성되어, 뉴런 합을 생성한다. 각 뉴런의 출력은 신경망의 작동 출력 신호를 설정하기 위해 각각의 뉴런 합을 제공한다.In another embodiment, the neural network includes a plurality of network inputs, such that each input is configured to receive an input signal having an input value. The neural network also includes a plurality of synapses, each synapse being connected to one of a plurality of inputs and including a plurality of calibration weights, wherein each calibration weight is set by a memory element that maintains a respective weight. The neural network additionally includes a set of distributors. Each divider is operatively connected to one of a plurality of inputs to receive a respective input signal and is configured to select one or more correction weights from a plurality of correction weights in correlation with an input value. The neural network also includes a set of neurons. Each neuron has at least one output and is connected to at least one of a plurality of inputs via a synapse of one of the plurality of synapses and adds a weight value of the selected calibration weights from each synapse connected to each neuron To generate a neuron sum. The output of each neuron provides the sum of each neuron to set the operating output signal of the neural network.
신경망은 또한 값을 갖는 원하는 출력 신호를 수신하고, 원하는 출력 신호 값으로부터의 뉴런 합의 편차를 결정하고, 결정된 값을 사용하여 대응하는 메모리 소자에 의해 설정된 각각의 보정 가중치를 변경(수정)하도록 구성된 가중치 보정 계산기를 포함할 수 있다. 이러한 경우에, 뉴런 합을 결정하기 위해 변경된 보정 가중치 값들을 가산하는 것은 원하는 출력 신호 값으로부터 뉴런 합의 편차를 최소화하여 트레이닝된 신경망을 생성하기 위한 것이다.The neural network also receives a desired output signal having a value, determines a deviation of the neuron sum from the desired output signal value, and uses a determined value to calculate a weight value A calibration calculator may be included. In this case, adding the modified correction weight values to determine the neuron sum is to generate the trained neural network by minimizing the deviation of the neuron sum from the desired output signal value.
트레이닝된 신경망은 값 및 대응하는 부가적인 원하는 출력 신호를 갖는 보충 입력 신호만을 사용하여 보충 트레이닝을 수신하도록 구성될 수 있다.The trained neural network may be configured to receive supplemental training using only the supplemental input signal having a value and a corresponding additional desired output signal.
신경망의 트레이닝 동안 또는 보충 트레이닝 이전에, 다수의 시냅스들 각각은 각각의 메모리 소자들에 의해 설정된 하나 이상의 추가적인 보정 가중치들을 수용하도록 구성될 수 있다.During training of the neural network or prior to supplementary training, each of the plurality of synapses may be configured to receive one or more additional calibration weights set by respective memory elements.
신경망은 신경망의 트레이닝 동안 또는 후에 각각의 시냅스들로부터 각각의 메모리 소자에 의해 설정된 하나 이상의 보정 가중치를 제거하도록 구성될 수 있다. 이러한 보정 가중치의 제거는 신경망이 신경망을 동작시키는데 필요한 다수의 메모리 소자만을 보유하게 할 수 있다.The neural network may be configured to remove one or more calibration weights set by each memory element from respective synapses during or after training of the neural network. The removal of such calibration weights may cause the neural network to have only a plurality of memory elements required to operate the neural network.
신경망은 신경망의 트레이닝 전 또는 도중에 추가 입력, 추가 시냅스 및 추가 뉴런 중 적어도 하나를 수용하여 신경망의 동작 파라미터를 확장하도록 구성될 수 있다.The neural network may be configured to accommodate at least one of additional inputs, additional synapses, and additional neurons before or during training of the neural network to extend the operating parameters of the neural network.
신경망은 신경망의 트레이닝 전, 도중 또는 후에 입력, 시냅스 및 뉴런 중 적어도 하나를 제거하도록 구성될 수 있다. 망에 의해 사용되지 않는 신경망 소자(요소)를 제거하는 그러한 능력은 망의 출력 품질 손실없이 구조를 단순화하고 신경망의 동작 파라미터를 수정하도록 의도된다.The neural network may be configured to remove at least one of inputs, synapses and neurons before, during or after training of the neural network. Such ability to remove neural network elements (elements) not used by the network is intended to simplify the structure without modifying the output quality of the network and to modify the operating parameters of the neural network.
각각의 메모리 소자는 각각의 가중치를 정의하도록 구성된 전기적 및/또는 자기적 특성을 특징으로 하는 전기 디바이스에 의해 설정될 수있다. 이러한 특성은 저항, 임피던스, 용량, 자기장, 인덕션, 전계 강도 등일 수 있다. 각 디바이스의 각각의 전기적 및/또는 자기적 특성은 신경망의 트레이닝동안 변화되도록 구성될 수 있다. 또한, 보정 가중치 계산기는 대응하는 전기 디바이스의 전기적 및 자기 적 특성 각각을 변화시킴으로써 각각의 보정 가중치 값을 변경할 수 있다.Each memory element may be set by an electrical device characterized by electrical and / or magnetic characteristics configured to define respective weights. These characteristics can be resistance, impedance, capacitance, magnetic field, induction, field strength, and the like. The electrical and / or magnetic properties of each of the devices may be configured to vary during training of the neural network. In addition, the correction weight calculator can change each correction weight value by varying each of the electrical and magnetic characteristics of the corresponding electrical device.
전기 디바이스는 저항, 메미스터, 멤리스터, 트랜지스터, 캐패시터, 전계효과트랜지스터, 광의존성 저항(LDR) 또는 자기의존성 저항(MDR)과 같은 광소자 저항 중 하나로서 구성될 수 있다.The electrical device may be configured as one of a resistor, a resistor, a memory, a transistor, a capacitor, a field effect transistor, a photoresistor such as a light dependent resistor (LDR) or a magnetoresistance resistor (MDR).
각각의 메모리 소자는 전기 저항들 블록에 의해 설정될 수 있으며, 각각의 보정 가중치를 설정할 수 있도록 결정된 편차를 사용하여 블록으로부터 하나 이상의 전기 저항들을 선택하도록 구성된 선택기 디바이스를 포함한다.Each memory element may be set by a block of electrical resistors and includes a selector device configured to select one or more electrical resistors from the block using the determined deviation so as to set a respective calibration weight.
전기 저항들의 블록은 전기 커패시터들을 추가로 포함할 수 있다. 즉, 각각의 메모리 소자는 전기 저항들 및 전기 커패시터들을 모두 갖는 블록에 의해 형성 될 수 있다. 선택기 디바이스는 각각의 가중치를 설정하도록 결정된 편차를 사용하여 커패시터들을 선택하도록 추가로 구성될 수 있다.The block of electrical resistors may further comprise electrical capacitors. That is, each memory element may be formed by a block having both electrical resistors and electrical capacitors. The selector device may be further configured to select the capacitors using a deviation determined to set each weight.
신경망은 아날로그, 디지털 및 디지털-아날로그 망 중 하나로 구성될 수 있다. 이러한 망에서, 다수의 입력들, 다수의 시냅스들, 메모리 소자들, 분배기들의 세트, 뉴런들의 세트, 가중치 보정 계산기 및 원하는 출력 신호 중 적어도 하나는 아날로그, 디지털 및 디지털-아날로그 형식으로 구성된다.The neural network may be composed of one of analog, digital and digital-analog networks. In such a network, at least one of a plurality of inputs, a plurality of synapses, memory elements, a set of distributors, a set of neurons, a weight correction calculator and a desired output signal are configured in analog, digital and digital-analog formats.
신경망이 아날로그 망으로 구성된 경우, 각각의 뉴런은 전기적 와이어, 또는 직렬 또는 병렬 버스와 같은, 직렬 및 병렬 통신 채널중 하나에 의해 설정될 수 있다.When the neural network is composed of analog networks, each neuron may be set by one of serial and parallel communication channels, such as an electrical wire, or a serial or parallel bus.
가중치 보정 계산기는 차동 증폭기들의 세트로서 설정될 수 있다. 또한, 각각의 차동 증폭기는 각각의 보정 신호를 생성하도록 구성 될 수 있다.The weight correction calculator may be set as a set of differential amplifiers. Further, each of the differential amplifiers may be configured to generate a respective correction signal.
각각의 분배기는 수신된 입력 신호에 응답하여 다수의 보정 가중치들로부터 하나 이상의 보정 가중치들을 선택하도록 구성된 디멀티플렉서 일 수 있다.Each divider may be a demultiplexer configured to select one or more correction weights from a plurality of correction weights in response to a received input signal.
각각의 분배기는 수신된 입력 신호를 이진 코드로 변환하고 이진 코드와 관련하여 다수의 보정 가중치들로부터 하나 이상의 보정 가중치를 선택하도록 구성 될 수 있다.Each divider may be configured to convert the received input signal to a binary code and to select one or more correction weights from a plurality of correction weights in association with the binary code.
신경망은 메모리를 갖는 전자 디바이스에 프로그래밍될 수 있되, 각각의 메모리 소자는 전자 디바이스의 메모리에 저장된다.The neural network may be programmed into an electronic device having a memory, wherein each memory device is stored in a memory of the electronic device.
유틸리티 신경망을 동작시키는 방법이 또한 개시된다. 방법은 트레이닝 중에 별도의 유사 신경망에 의해 설정된 변경된 보정 가중치를 사용하여 유틸리티 신경망을 통해 데이터를 처리하는 단계를 포함한다. 방법은 또한 별도의 유사 신경망에 의해 설정된 변경된 보정 가중치 값들을 사용하여 유틸리티 신경망의 동작 출력 신호를 설정하는 단계를 포함한다.A method of operating a utility neural network is also disclosed. The method includes processing data through the utility neural network using modified calibration weights set by separate pseudo neural networks during training. The method also includes setting an operational output signal of the utility neural network using modified calibration weight values set by a separate pseudo-neural network.
유틸리티 신경망에 의해 변경된 보정 가중치 값들의 사용을 위해, 별도의 유사 신경망은 트레이닝 입력 값을 갖는 트레이닝 입력 신호를 신경망으로의 입력을 통해 수신하는 단계; 트레이닝 입력 신호를 입력에 작동 가능하게 연결된 분배기에 전달하는 단계; 다수의 보정 가중치들로부터 하나 이상의 보정 가중치를, 트레이닝 입력 값에 관련하여, 분배기를 통하여 선택하되, 보정 가중치 각각은 가중치 값에 의해 정의되고 입력에 연결된 시냅스 상에 위치하는, 단계; 뉴런 합을 생성하도록 시냅스를 통해 입력과 연결된 뉴런을 통해 적어도 하나의 출력을 갖는 선택된 보정 가중치의 가중치를 가산하는 단계; 가중치 보정 계산기를 통해 값을 갖는 원하는 출력 신호를 수신하는 단계; 가중치 보정 계산기를 통해, 원하는 출력 신호 값으로부터 뉴런 합의 편차를 결정하는 단계; 및 변경된 보정 가중치 값들을 설정하기 위해 결정된 편차를 사용하여 각각의 보정 가중치 값들을, 가중치 보정 계산기를 통해, 변경하여, 뉴런 합을 결정하기 위해 변경된 보정 가중치 값들을 합산하여 원하는 출력 값으로부터 뉴런 합의 편차를 최소화하여, 신경망을 트레이닝하는, 단계에 의해 트레이닝된다.For use of modified calibration weight values by the utility neural network, a separate pseudo-neural network may include receiving a training input signal having a training input value through an input to the neural network; Transmitting a training input signal to a distributor operatively connected to the input; Selecting one or more calibration weights from a plurality of calibration weights, with respect to a training input value, via a divider, each calibration weight being located on a synapse defined by a weight value and connected to an input; Adding a weight of a selected calibration weight having at least one output through a neuron connected to the input via a synapse to produce a neuron sum; Receiving a desired output signal having a value via a weight correction calculator; Determining, via a weight correction calculator, a deviation of the neuron sum from a desired output signal value; And modifying each of the calibration weight values through the weight calibration calculator using the determined deviation to set the modified calibration weight values to sum the modified calibration weight values to determine the neuron sum to obtain a deviation of the neuron sum from the desired output value , And training the neural network.
유틸리티 신경망 및 트레이닝된 개별 유사 신경망은 다수의 입력들, 보정 가중치들, 분배기들, 뉴런들 및 시냅스들을 포함하는 매칭 신경망을 포함할 수 있다.The utility neural network and the trained individual pseudo neural network may include matching neural networks including multiple inputs, calibration weights, distributors, neurons, and synapses.
유틸리티 신경망 및 트레이닝된 개별 아날로그 신경망 각각에서, 각각의 보정 가중치는 각각의 가중치를 유지하는 메모리 소자에 의해 설정될 수 있다.In each of the utility neural network and the trained individual analog neural network, each calibration weight may be set by a memory element that maintains a respective weight.
도 1은 종래의 고전적인 인공 신경망의 개략도이다.
도 2는 다수의 시냅스들들, 분배기들 세트, 및 각 시냅스와 연관된 다수의 보정 가중치들을 갖는 “프로그래시브 신경망”(p-net)의 개략도이다.
도 3a는 다수의 시냅스들과 각 분배기의 업스트림에 위치한 하나의 시냅스 가중치를 갖는 도 2에서 도시된 p-net의 부분의 개략도이다.
도 3b는 다수의 시냅스들과 다수의 보정 가중치들의 각각의 다운스트림에 위치한 시냅스 가중치들 세트를 갖는 도 2에 도시된 p-net의 부분의 개략도이다.
도 3c는 다수의 시냅스들과 각 분배기의 업스트림에 위치한 하나의 시냅스 가중치와 다수의 보정 가중치들의 각각의 다운 스트림에 위치한 시냅스 가중치들의 세트를 갖는 도 2에 도시된 p-net의 부분의 개략도이다.
도 4a는 특정한 입력의 모든 시냅스들을 위한 단일 분배기와 각 분배기의 업스트림에 위치된 하나의 시냅스 가중치를 갖는 도 2에 도시된 p-net의 부분의 개략도이다.
도 4b는 특정한 입력의 모든 시냅스들을 위한 단일 분배기와 다수의 보정 가중치들의 각각의 다운스트림에 위치한 시냅스 가중치들의 세트를 갖는 도 2에 도시된 p-net의 부분의 개략도이다.
도 4c는 특정한 입력의 모든 시냅스들을 위한 단일 분배기를 갖고, 각 분배기의 업스트립에 위치한 하나의 시냅스 가중치와 다수의 보정 가중치들의 각각의 다운스트림에 위치한 시냅스 가중치들의 세트를 갖는 도 2에 도시된 p-net의 부분의 개략도이다.
도 5는 도 2에 도시된 p-net의 개별적인 간격들로 입력 신호값 범위를 나눈 것을 도시한 것이다.
도 6a는 도 2에 도시된 p-net에서 보정 가중치들의 영향 계수값들에 대한 분포의 일 실시예의 개략도이다.
도 6b는 도 2에서 도시된 p-net에서 보정 가중치들의 영향 계수값들에 대한 분포의 다른 실시예의 개략도이다.
도 6c는 도 2에 도시된 p-net에서 보정 가중치들의 영향 계수값들에 대한 분포의 또 다른 실시예의 개략도이다.
도 7은 디지털 코드의 형태에서 이미지를 대표하는 하나의 대응되는 테이블과 각 간격들의 세트로서 동일한 이미지를 대표하는 다른 대응되는 테이블 뿐만 아니라 도 2에 도시된 p-net을 위한 입력 이미지의 개략도이다.
도 8은 두 개의 구별되는 이미지들의 인식을 위해 트레이닝된 p-net의 일 실시예의 도시이고, p-net은 각 이미지의 일부 구성들을 포함하는 사진응 인식하도록 구성된다.
도 9는 "중앙" 뉴런 근처의 시냅스 가중치들의 분포의 예시를 갖는 도 2에서 도시된 p-net의 일 실시예의 개략도이다.
도 10은 보정 가중치들의 사이에서 트레이닝 편차의 균일한 분포를 나타내는 도 2에 도시된 p-net의 일 실시예의 개략도이다.
도 11은 p-net 트레이닝 동안 보정 가중치들의 변형을 채택하는 도 2에 도시된 p-net의 일 실시예의 개략도이다.
도 12는 베이직 알고리즘이 출력 뉴런 합들의 일차적인 세트를 작성하고, 작성된 세트가 보유되거나 증가된 값들을 갖는 여러 "승자" 합들을 작성하는데 사용되고, 남아있는 합들의 공헌이 무효화된 도 2에 도시된 p-net의 일 실시예의 예시이다.
도 13은 다수의 이미지의 원소들을 갖는 복합 이미지를 인식하는 도 2에 도시된 p-net의 일 실시예의 예시이다.
도 14는 통일 모델링 언어(Unified Modeling Language (UML))를 사용하는 도 2에 도시된 p-net을 위한 객체 지향 프로그래밍을 위한 모델의 개략도이다.
도 15는 도 2에 도시된 p-net의 일반적인 형성 시퀀스의 개략도이다.
도 16은 도 2에 도시된 p-net의 형성을 위한 데이터의 대표적인 분석 및 준비의 개략도이다.
도 17은 트레이닝 및 p-net 적용 동안 입력 데이터를 갖는 도 2에 도시된 p-net의 대표적인 입력 작성 허용 상호작용(input creation permitting interaction)의 개략도이다.
도 18은 도 2에 도시된 p-net을 위한 뉴런 유닛들의 대표적인 작성의 개략도이다.
도 19는 뉴런 유닛들과 연결된 각 시냅스의 대표적인 작성의 개략도이다.
도 20은 도 2에 도시된 p-net을 트레이닝하는 것의 개략도이다.
도 21은 도 2에 도시된 p-net에서 뉴런 유닛 트레이닝의 개략도이다.
도 22는 도 2에 도시된 p-net의 트레이닝 동안 뉴런 합들의 확장의 개략도이다.
도 23은 도 2-22에서 도시된 신경망을 트레이닝하는데 사용되는 방법의 흐름도이다.
도 24는 메모리 소자에 의해 확립된 다수의 교정 가중치들 각각을 갖는 p- net의 특정 실시예의 개략도로서, p-net은 네트워크 트레이닝 과정에서 설명된다.
도 25는 메모리 소자에 의해 확립된 다수의 교정 가중치들 각각을 갖는 p- net의 특정 실시예의 개략도로서, p-net은 이미지 인식 과정에서 설명된다.
도 26은 트레이닝의 제1단계 동안 멤리스터들을 사용하는 대표적인 p-net의 개략도이다.
도 27은 트레이닝의 제2단계 동안 멤리스터들을 사용하는 대표적인 p-net의 개략도이다.
도 28은 대표적인 p-net에서 멤리스터들의 쌍둥이 병렬 분기들의 개략도이다.
도 29는 저항들을 사용하는 대표적인 p-net의 개략도이다.
도 30은 p-net에서 저항으로 구성된 메모리 소자의 일 실시예의 개략도이다.
도 31은 p-net에서 저항으로 구성된 메모리 소자의 다른 실시예의 개략도이다.
도 32는 p-net에서 가변 임피던스로 구성된 메모리 소자의 다른 실시예의 개략도이다.
도 33은 도 2-22 및 도 24-32에 도시된 신경망을 동작시키는데 사용되는 방법의 흐름도이다.
도 34는 본 개시에 따른, 다수의 시냅스들 및 각각의 시냅스와 관련된 다수의 보정 가중치들을 갖는 "프로그래시브 신경망"(p-net)의 예시이다.
도 35는 본 개시에 따른, 트레이닝 과정에서의 p-net의 예시이다.
도 36은 본 개시에 따른, 이미지 인식 과정에서의 p-net의 예시이다.
도 37은 도 34-36에 도시된 신경망을 동작시키는 방법의 흐름도이다.1 is a schematic diagram of a conventional artificial neural network.
2 is a schematic diagram of a " progressive neural network " (p-net) having multiple synapses, a set of distributors, and multiple calibration weights associated with each synapse.
FIG. 3A is a schematic diagram of a portion of p-net shown in FIG. 2 with multiple synapses and one synaptic weight located upstream of each splitter.
Figure 3B is a schematic diagram of a portion of p-net shown in Figure 2 with a set of synaptic weights located downstream of each of a plurality of synapses and a plurality of correction weights.
3C is a schematic diagram of a portion of p-net shown in FIG. 2 having a plurality of synapses and a set of synaptic weights located downstream of each of a plurality of calibration weights and one synapse weight located upstream of each distributor.
4A is a schematic diagram of a portion of p-net shown in Fig. 2 having a single splitter for all synapses of a particular input and one synapse weight located upstream of each splitter.
Figure 4b is a schematic diagram of a portion of p-net shown in Figure 2 with a single distributor for all synapses of a particular input and a set of synaptic weights located downstream of each of a plurality of calibration weights.
FIG. 4C shows a set of synapse weights having a single distributor for all synapses of a particular input and having a set of synaptic weights located downstream of each of a plurality of calibration weights and one synapse weight located in the up- -net. < / RTI >
FIG. 5 illustrates dividing the input signal value range into individual intervals of p-net shown in FIG.
6A is a schematic diagram of one embodiment of a distribution for the influence coefficient values of correction weights at p-net shown in FIG. 2. FIG.
FIG. 6B is a schematic diagram of another embodiment of the distribution of the influence coefficient values of the correction weights at p-net shown in FIG. 2. FIG.
FIG. 6C is a schematic diagram of another embodiment of the distribution of the influence coefficient values of the correction weights at p-net shown in FIG. 2. FIG.
Figure 7 is a schematic diagram of an input image for p-net shown in Figure 2 as well as one corresponding table representing the image in the form of digital code and another corresponding table representing the same image as a set of each interval.
FIG. 8 is a view of one embodiment of p-net trained for recognition of two distinct images, and p-net is configured to recognize a photograph that includes some of the components of each image.
Figure 9 is a schematic diagram of one embodiment of p-net shown in Figure 2 with an example of distribution of synapse weights near a " center " neuron.
Figure 10 is a schematic diagram of one embodiment of p-net shown in Figure 2 showing a uniform distribution of training deviations between correction weights.
Figure 11 is a schematic diagram of one embodiment of p-net shown in Figure 2 employing a modification of correction weights during p-net training.
Figure 12 shows a block diagram of the basic algorithm shown in Figure 2 in which the basic algorithm is used to create a primary set of output neuron sums and the created set is used to create multiple "winner" sums, with retained or incremented values, p-net. < / RTI >
Figure 13 is an illustration of one embodiment of the p-net shown in Figure 2 that recognizes a composite image with multiple image elements.
Figure 14 is a schematic diagram of a model for object-oriented programming for p-net shown in Figure 2 using Unified Modeling Language (UML).
Figure 15 is a schematic diagram of a typical formation sequence of p-net shown in Figure 2;
Figure 16 is a schematic diagram of representative analysis and preparation of data for the formation of the p-net shown in Figure 2;
17 is a schematic diagram of a representative input creation permitting interaction of p-net shown in Fig. 2 with input data during training and p-net application.
Figure 18 is a schematic diagram of an exemplary creation of neuron units for p-net shown in Figure 2;
Figure 19 is a schematic diagram of an exemplary creation of each synapse connected to neuron units.
Figure 20 is a schematic diagram of training the p-net shown in Figure 2;
21 is a schematic diagram of neuron unit training in p-net shown in FIG. 2. FIG.
22 is a schematic diagram of the expansion of neuron sums during training of p-net shown in FIG. 2. FIG.
23 is a flow chart of a method used to train the neural network shown in Figs. 2-22.
24 is a schematic diagram of a particular embodiment of p-net with each of a plurality of calibration weights established by a memory element, wherein p-net is described in a network training procedure.
25 is a schematic diagram of a particular embodiment of p-net having each of a plurality of calibration weights established by a memory element, wherein p-net is described in the image recognition process.
26 is a schematic diagram of an exemplary p-net using memristors during the first stage of training.
Figure 27 is a schematic illustration of an exemplary p-net using memristors during the second stage of training.
28 is a schematic diagram of twin parallel branches of memristors in a representative p-net.
29 is a schematic diagram of an exemplary p-net using resistors.
30 is a schematic diagram of one embodiment of a memory element made up of resistors in p-net.
31 is a schematic diagram of another embodiment of a memory element made up of resistors in p-net.
32 is a schematic diagram of another embodiment of a memory device configured with a variable impedance in p-net.
33 is a flow chart of a method used to operate the neural network shown in Figs. 2-22 and Figs. 24-32.
34 is an illustration of a " progressive neural network " (p-net) having multiple synapses and multiple correction weights associated with each synapse, in accordance with the present disclosure.
35 is an illustration of p-net in the training process, in accordance with the present disclosure;
Figure 36 is an illustration of p-net in the image recognition process, in accordance with the present disclosure;
37 is a flowchart of a method of operating the neural network shown in Figs. 34-36.
도 1에 도시된 바와 같이, 종래의 인공 신경망(10)은 전형적으로 입력 디바이스들(12), 시냅스 가중치(16)를 갖는 시냅스들(14), 가산기(20)와 활성 함수 디바이스(22)를 포함하는 뉴런들(18), 뉴런 출력들(24) 및 가중치 보정 계산기(26)를 포함한다. 각 뉴런(18)은 두 개 이상의 입력 디바이스들(12)에 대해 시냅스들(14)을 통해 연결된다. 시냅스 가중치(16)의 값들은 통상적으로 전기적 저항, 전도도, 전압, 전하, 자성 특성, 또는 다른 파라미터들을 사용하여 표현된다.1, a conventional artificial
전통적인 신경망(10)의 통제된 트레이닝(supervised training)은 일반적으로 트레이닝쌍(28)의 세트의 적용에 기초한다. 각 트레이닝쌍(28)은 통상적으로 입력 이미지(28-1)와 감시 신호(supervisory signal)로도 알려진 원하는 출력 이미지(28-2)로 구성된다. 전통적인 신경망(10)의 트레이닝은 일반적으로 다음과 같이 제공된다. 입력 신호들(Ii-Im)의 세트의 형태인 입력 이미지가 입력 디바이스(12)로 들어가고, 초기 가중치(Wi)로 시냅스 가중치(16)로 이동된다. 입력 신호의 값은 가중치에 의해, 통상적으로 각 가중치에 의해 각 신호(Ii-Im)을 곱하거나 나눔으로써 변경된다. 시냅스 가중치(16)로부터, 변경된 입력 신호들은 각 뉴런(18)으로 이동된다. 각 뉴런(18)은 대상 뉴런(subject neuron)(18)에 관련된 시냅스(14)의 그룹으로부터 신호들의 세트를 수신한다. 뉴런(18)에 포함된 가산기(20)는 가중치에 의해 변경되고 대상 뉴런에 의해 수신된 모든 입력 신호들을 합한다. 활성 함수 디바이스(22)는 각 결과적인 뉴런 합을 수신하고, 수학적 함수(들)에 따라 합을 변경하여, 뉴런 출력 신호들(∑Fi...∑F)의 세트로서 출력 각 출력 이미지를 형성한다.The supervised training of the conventional
뉴런 출력 신호들(∑Fi...∑F)에 의해 정의된 획득된 뉴런 출력 이미지는 미리 설정된 원하는 출력 이미지들(Oi-On)과 가중치 보정 계산기(26)에 의해 비교된다. 획득된 뉴런 출력 이미지 ∑Fn 과 원하는 출력 이미지 On 사이의 결정된 차이에 근거하여, 시냅스 가중치(16)를 변경하는 보정 신호들이 미리 프로그램된 알고리즘을 이용하여 형성된다. 보정이 모든 시냅스 가중치(16)에 대해 이루어진 이후, 입력 신호(Ii-Im)의 세트는 신경망(10)에 재도입되고, 새로운 보정이 이루어진다. 위의 사이클은 획득된 뉴런 출력 이미지 ∑Fn 과 원하는 출력 이미지 On 의 사이의 차이가 어떤 미리 결정된 에러에 비해 작은 것으로 결정될 때까지 반복된다. 모든 개별적인 이미지를 갖는 망 트레이닝의 하나의 사이클은 통상적으로 "트레이닝 시기(training epoch)"로서 통상적으로 식별된다. 일반적으로, 각 트레이닝 시기에서, 에러의 크기는 감소된다. 그러나, 입력 및 출력의 수 뿐만 아니라 개별적인 입력(Ii-Im)의 수에 따라, 전통적인 신경망(10)의 트레이닝은 많은 수의 트레이닝 시기를 필요로 할 수 있고, 일부 경우에서, 수십만번 만큼 클 수 있다.The obtained neuron output image defined by the neuron output signals [Sigma] Fi ... [Sigma] F is compared by the
홉필드 네트워크(Hopfield network), 제한된 볼츠만 머신(Restricted Boltzmann Machine), 방사기저함수 네트워크(Radial basis function network) 및 순환형 신경망(recurrent neural network)을 포함하는 다양한 전통적인 신경망이 존재한다. 분류 및 클러스터링의 특정한 태스크들은 특정한 타입의 신경망, 네크워크 입력 트레이닝 정보로서 오직 입력 이미지만을 사용하고, 특정 입력 이미지에 대응하는 원하는 출력 이미지는 최대값을 갖는 출력 신호를 갖는 단일 위닝 뉴런(winning neuron)에 기초한 트레이닝 과정 동안 직접 형성되는 자기조직화 맵(Self-Organizing Maps) 을 필요로 한다.There are a variety of conventional neural networks including Hopfield networks, Restricted Boltzmann machines, Radial basis function networks, and recurrent neural networks. Certain tasks of classification and clustering use only one input image as a particular type of neural network, network input training information, and a desired output image corresponding to a particular input image has a single winning neuron with an output signal having a maximum value Self-organizing maps that are formed directly during the training process.
위에서 언급한 것처럼, 신경망(10)과 같은 존재하는 전통적인 신경망들의 주요 관심사들 중 하나는 그 성공적인 트레이닝이 많은 소요 시간을 필요로 할 수 있다는 것이다. 전통적인 네트워크들의 일부 추가적인 관심사는 컴퓨팅 리소스들의 많은 소모일 수 있고, 이것은 결과적으로 강력한 컴퓨터들을 필요하게끔 유도한다. 추가적인 관심사들은 네트워크의 전체적인 재교육이 없이는 네트워크의 크기를 증가시키기 불가능함, "네트워크 마비(network paralysis)" 및 "극솟값(local minimum)에서의 프리징(freezing)"과 같은 이러한 현상들에 대한 성향이고, 이것은 특정한 신경망이 특정한 시퀀스에서 특정한 이미지들의 세트로 트레이닝될 수 있는지를 예측하기 불가능하게 만든다. 또한, 트레이닝 동안 도입되는 특정한 이미지들의 시퀀싱과 관련한 한정들이 있을 수 있고, 트레이닝 이미지들의 도입의 순서를 변경하는 것은 이미 학습된 네트워크의 추가적인 트레이닝을 수행하는 것에 대한 불가능 뿐만 아니라 네트워크 프리즈로 이어질 수 있다.As mentioned above, one of the main concerns of existing conventional neural networks, such as the
유사한 도면 부호들은 유사한 구성을 언급하는 나머지 도면들을 참조하면, 도 2는 프로그래시브 신경망, 따라서 "프로그래시브 네트워크", 또는 "p-net"(100)의 개략도를 나타낸다. P-net(100)은 다수의 또는 p-net의 입력들(102)의 세트를 포함한다. 각 입력(102)은 입력 신호(104)를 수신하도록 구성되고, 입력 신호들은 도 2에서 I1, I2 … Im 로서 표시된다. 각 입력 신호 I1, I2 … Im 는 예를 들어, 크기, 주파수, 위상, 신호 편광각, 또는 입력 이미지(106)의 다른 부분들과의 관련성과 같은 입력 이미지(106)의 일부 특성(들)의 값을 나타낸다. 각 입력 신호(104)는 입력값을 갖고, 다수의 입력 신호(104)와 함께 일반적으로 입력 이미지(106)를 설명한다.2 shows a schematic diagram of a progressive neural network, and thus a " progressive network " or " p-net " 100. P-
각 입력값은 -∞ 와 +∞의 사이에 있는 값 범위 내에 있을 수 있고, 디지털 및/또는 아날로그 형태로 설정될 수 있다. 입력값의 범위는 트레이닝 이미지들의 세트에 종속할 수 있다. 가장 단순한 경우에서, 입력값들의 범위는 모든 트레이닝 이미지들을 위한 입력값들의 가장 작은 값과 가장 큰 값의 사이의 차이일 수 있다. 실제적인 이유로서, 입력값들의 범위는 너무 높은 것으로 여겨지는 입력값들을 제거함으로써 한정될 수 있다. 예를 들어, 입력값들의 범위의 이러한 한정은 중요도 샘플링(importance sampling)과 같은 분산 감소(variance reduction)를 위한 알려진 통계적인 방법들을 통해 수행될 수 있다. 입력 값들의 범위를 한정하는 다른 예는 특정한 최소값에 대해 미리 설정된 최소 레벨에 비해 낮은 모든 신호들의 지정과 특정한 최대값에 대해 미리 설정된 최대 레벨을 초과하는 모든 신호들의 지정일 수 있다.Each input value can be in the range of values between -∞ and + ∞, and can be set to digital and / or analog form. The range of input values may depend on a set of training images. In the simplest case, the range of input values may be the difference between the smallest and largest values of the input values for all training images. For practical reasons, the range of input values may be defined by removing input values that are considered too high. For example, this limitation of the range of input values can be performed through known statistical methods for variance reduction, such as importance sampling. Another example of defining a range of input values may be designation of all signals that are low relative to a predetermined minimum level for a particular minimum value and designation of all signals that exceed a predetermined maximum level for a particular maximum value.
p-net(100)은 또한 다수의 또는 시냅스들(118)의 세트를 포함할 수 있다. 각 시냅스(118)는 도 2에 도시된 바와 같이 다수의 입력들(102) 중 하나와 연결되고 다수의 보정 가중치(112)를 포함하고, 시냅스 가중치(108)를 또한 포함할 수 있다. 각 보정 가중치(112)는 각 가중치값(112)에 의해 정의된다. P-net(100)은 또한 분배기(114)의 세트를 포함한다. 각 분배기(114)는 각 입력 신호(104)를 수신하기 위해 다수의 입력들(102)의 하나와 동작적으로 연결된다. 추가적으로, 각 분배기(114)는 입력값과 관련해서 다수의 보정 가중치들(112)로부터 하나 이상의 보정 가중치들을 선택하도록 구성된다.The p-
p-net(100)은 추가적으로 뉴런들(116)의 세트를 포함한다. 각 뉴런(116)은 적어도 하나의 출력(117)을 갖고 하나의 시냅스(118)를 통해 다수의 입력들(102) 중 적어도 하나와 연결된다. 각 뉴런(116)은 각 뉴런(116)에 대해 연결된 각 시냅스(118)로부터 선택된 보정 가중치(112)의 보정 가중치 값들을 합산하거나 합하도록 구성되고, 따라서 ∑n 으로 지정된 뉴런 합(120)을 작성하고 출력한다. 분리된 분배기(114)는 도 3a, 3b, 3c에서 도시된 것처럼 특정한 입력(102)의 각 시냅스(118)를 위해 사용될 수 있거나, 또는 도 4a, 4b 및 4c에서 도시된 것처럼 단일 분배기가 모든 이러한 시냅스들을 위해 사용될 수 있다. p-net(100)의 형성 또는 설정 동안, 모든 보정 가중치들(112)은 초기값들을 할당받고, 이것은 p-net 트레이닝의 과정 동안 변경될 수 있다. 보정 가중치(112)의 초기값은 예를 들어, 가중치들이 무작위로 선택될 수 있는 전통적인 신경망(10)에서처럼 할당될 수 있고, 미리 설정된 템플릿 등으로부터 선택된 미리 설정된 수학적 함수의 도움으로 계산될 수 있다.The p-
p-net(100)은 또한 가중치 보정 계산기(122)를 포함한다. 가중치 보정 계산기(122)는 신호값을 갖고 출력 이미지(126)의 부분을 표시하는 원하는, 예를 들어, 미리 설정된 출력 신호(124)를 수신하도록 구성된다. 가중치 보정 계산기(122)는 또한 트레이닝 에러로도 알려진 원하는 출력 신호(124)의 값으로부터 뉴런 합(120)의 편차(128)를 결정하고, 결정된 편차(128)를 사용하여 각 보정 가중치 값을 변경하도록 구성된다. 따라서, 뉴런 합(120)을 결정하기 위한 변경된 보정 가중치 값들을 합하는 것은 원하는 출력 신호(124)의 값으로부터 대상 뉴런 합의 편차를 최소화하고, 그 결과로서, p-net(100)을 트레이닝하기에 효과적이다.The p-
도 1에 대해 언급된 전통적인 네트워크(10)로 유추하면, 편차(128)는 결정된 뉴런 합(120)와 원하는 출력 신호(124)의 값의 사이에서 트레이닝 에러로서 설명될 수 있다. 도 1과 관련하여 논의된 전통적인 신경망(10)과 비교하여, p-net(100)에서 입력 신호(104)의 입력 값들은 단지 일반적인 네트워크 설정의 과정에서만 변하고, p-net의 트레이닝동안 변하지 않는다. 입력 값을 변경하는 대신, p-net(100)의 트레이닝은 보정 가중치(112)의 값(112)을 변경하여 제공된다. 추가적으로, 비록 각 뉴런(116)이 합 함수를 포함하나, 뉴런은 보정 가중치 값들을 합산하고, 뉴런(116)은 필요하지 않으며, 또한 실제로, 전통적인 신경망(10)에서 활성 함수 디바이스(22)에 의해 제공되는 것과 같은 활성 함수의 부재에 의해 특징된다.Analogy to the
전통적인 신경망(10)에서, 트레이닝 중 가중치 보정은 시냅스 가중치(16)를 변경함에 의해 수행되나, 반면, p-net(100)에서 대응되는 가중치 보정은 도 2에서 도시된 것처럼, 보정 가중치 값(112)을 변경함에 의해 제공된다. 각 보정 가중치(112)는 전체 또는 일부 시냅스들(118) 상에 위치된 가중치 보정 블록들(110)에 포함될 수 있다. 신경망 컴퓨터 에뮬레이션에서, 각 시냅시스 및 보정 가중치는 예를 들어 메모리 셀과 같은 디지털 디바이스 및/또는 아날로그 디바이스에 의해 표시될 수 있다. 신경망 소프트웨어 에뮬레이션에서, 보정 가중치(112)의 값들은 적절하게 프로그램된 알고리즘을 통해 제공될 수 있고, 반면 하드웨어 에뮬레이션에서, 메모리 컨트롤을 위해 알려진 방법들이 사용될 수 있다.In the conventional
p-net(100)에서, 원하는 출력 신호(124)로부터 뉴런 합(120)의 편차(128)는 그 사이에서 수학적으로 계산된 차이로서 표시될 수 있다. 추가적으로, 각 변경된 보정 가중치(112)의 작성은 뉴런 합(120)을 작성하기 위해 사용된 각 보정 가중치에 대한 계산된 차이의 분배를 포함할 수 있다. 이러한 실시예에서, 각 변경된 보정 가중치(110)의 작성은 뉴런 합(120)이 작은 수의 시기 내에서 원하는 출력 신호 값 상에 수렴하도록 허용할 것이고, 단지 하나의 시기만 필요로 하는 일부 경우에서, p-net(100)을 빠르게 트레이닝하는 것을 허용할 것이다. 특정 경우에서, 뉴런 합(120)을 작성하는데 사용되는 보정 가중치(112)의 사이에서의 수학적 차이의 분배는 각 뉴런 합(120)을 작성하기 위해 사용된 각 보정 가중치의 사이에서 결정된 차이를 동일하게 나누는 것을 포함할 수 있다.In p-
분리된 실시예에서, 원하는 출력 신호 값으로부터의 뉴런 합(120)의 편차(128)의 결정은 이에따라 편차 계수를 작성하기 위해 뉴런 합에 의해 원하는 출력 신호 값을 나누는 것을 포함할 수 있다. 이러한 특정한 경우에서, 각 변형된 보정 가중치(112)의 변형은 편차 계수에 의해 뉴런 합(120)을 작성하는데 사용된 각 보정 가중치의 곱을 포함한다. 각 분배기(114)는 추가적으로 다수의 보정 가중치(112)에 대해 다수의 영향 계수들(134)을 할당하도록 구성될 수 있다. 본 실시예에서, 각 영향 계수(134)는 각 뉴런 합(120)을 작성하기 위해 일부 미리 결정된 비율에서 다수의 보정 가중치들(112)의 하나를 할당할 수 있다. 각각의 보정 가중치(112)와 대응을 위해, 각 영향 계수(134)는 도면들에서 도시된 바와 같이 "Ci,d,n" 명명이 할당될 수 있다.In a separate embodiment, the determination of the
특정 시냅스(118)에 대응되는 다수의 영향 계수들(134) 각각은 각 영향 분포 함수(136)에 의해 정의된다. 영향 분포 함수(136)는 모든 영향 계수들(134)에 대해 또는 단지 특정 시냅스(118)에 대응되는 다수의 영향 계수들(134)에 대해 동일할 수 있다. 다수의 입력 값들의 각각은 간격들 또는 간격 분포 함수(140)에 따라 서브 디비전 "d"로 나누어진 값 범위(138)로 수신될 수 있어서, 각 입력값은 각 간격 "d" 내에 수신되고, 각 보정 가중치는 이러한 간격들의 하나에 대응한다. 각 분배기(114)는 각 간격 "d"를 선택하고 선택된 각 간격 "d"에 대해 대응하는 보정 가중치(112)와 예를 들어 Wi,d + i,n 또는 Wi,d - i,n와 같이 선택된 각 간격에 인접한 간격에 대응되는 적어도 하나의 보정 가중치에 각각의 다수의 영향 계수들(134)을 할당한다. 다른 비제한적인 예에서, 영향 계수(134)의 미리 결정된 비율은 통계적 분포에 따라 정의될 수 있다.Each of the plurality of
뉴런 합(120)을 작성하는 것은 입력값(102)에 따라 각 보정 가중치(112)에 각 영향 계수(134)들을 초기적으로 할당하고, 그리고 나서 각 채택된 보정 가중치(112)의 값에 의해 대상 영향 계수들을 곱하는 것을 포함할 수 있다. 그리고 나서, 그에 연결된 모든 시냅스들(118)에 대해 각 뉴런(116)을 통해 보정 가중치(112) 및 할당된 영향 계수(134)의 개별적인 곱들을 합한다.Creating the
가중치 보정 계산기(122)는 각 변경된 보정 가중치(112)를 작성하기 위해 각 영향 계수(134)들을 적용하도록 구성될 수 있다. 특히, 가중치 보정 계산기(122)는 각 영향 계수(134)에 의해 정해진 비율에 따라 뉴런 합(120)을 작성하기 위해 사용된 각 보정 가중치(112)에 대해 뉴런 합(120)과 원하는 출력 신호(124)의 사이의 계산된 수학적 차이의 비율을 적용할 수 있다. 추가적으로, 뉴런 합(120)을 작성하기 위해 사용된 보정 가중치들(112) 사이에서 나누어진 수학적 차이는 각 영향 계수(134)에 의해 더 나누어질 수 있다. 그 이후, 각 영향 계수(134)에 의해 뉴런 합(120)의 나누어진 결과는 원하는 출력 신호값 상에 뉴런 합(120)을 수렴시키기 위해 보정 가중치(112)에 더해질 수 있다.The
p-net(100)의 전형적인 형성은 p-net의 트레이닝이 시작되기 전에 발생할 수 있다. 그러나, 개별적인 실시예에서, 트레이닝하는 동안 p-net(100)이 초기 보정 가중치가 없는 입력 신호(104)를 수신하면, 적절한 보정 가중치(112)가 작성될 수 있다. 이러한 경우, 특정 분배기(114)는 특정 입력 신호(104)를 위한 적절한 간격 "d"을 결정할 것이고, 초기값들을 갖는 보정 가중치(112)의 그룹은 특정 입력(102), 특정 간격 "d" 및 모든 각 뉴런들(116)에 대해 작성될 것이다. 추가적으로, 대응하는 영향 계수(134)는 각각 새로 작성된 보정 가중치(112)에 할당될 수 있다.Typical formation of p-
각 보정 가중치(112)는 p-net(100) 상에 각 보정 가중치의 위치를 식별하기 위해 구성된 인덱스들의 세트에 의해 정의될 수 있다. 인덱스들의 세트는 특히 특정 입력(102)에 대응하는 보정 가중치(112)를 식별하기 위한 입력 인덱스 "i", 각 보정 가중치에 대해 앞서 언급한 선택된 간격을 명시하기 위한 간격 인덱스 "d", 명명 "Wi,d,n"을 갖는 특정 뉴런(116)에 대응하는 보정 가중치(112)를 명시하기 위해 구성된 뉴런 인덱스 "n"을 포함할 수 있다. 따라서, 특정 입력(102)에 대해 대응하는 각 보정 가중치(112)는 대상 위치를 지정하기 위해 첨자가 있는 특정 인덱스 "i"를 할당받는다. 유사하게, 특정 뉴런(116) 및 각 시냅스(118)에 대응하는 각 보정 가중치 "W'는 p-net(100) 상에 보정 가중치의 대상 위치를 지정하기 위해 첨자가 있는 특정 인덱스들 "n" 및 "d"를 할당받는다. 인덱스들의 세트는 또한 p-net(100)의 트레이닝 동안 각 보정 가중치(112)가 입력 신호(104)에 의해 액세스된 횟수를 총계하도록 구성된 액세스 인덱스 "a"를 포함할 수 있다. 액세스 인덱스 "a"는 명명 "Wi,d,n,a"을 채택함에 의해 각 보정 가중치의 현재 상태를 더 지정하거나 정의하는데 사용될 수 있다. "i", "d", "n" 및 "a"의 각 인덱스는 0 에서 +∞의 범위에서 수치값을 가질 수 있다.Each
입력 신호(104)의 범위를 간격 d0, di ... dm으로 나누는 것의 다양한 가능성이 도 5에 도시된다. 특정 간격 분포는 예를 들어, 동일한 크기의 모든 간격 "d"를 지정하는 것에 의해 달성될 수 있는 것처럼 균일하거나, 선형적일 수 있다. 미리 결정된 최하 레벨에 비해 낮은 입력 신호 값을 갖는 모든 입력 신호들(104)은 0 값을 갖도록 고려될 수 있고, 미리 결정된 최상 레벨에 비해 큰 입력 신호 값을 갖는 모든 입력 신호들은 도 5에서 도시된 바와 같이 이러한 최대 레벨을 할당받을 수 있다. 특정 간격 분포는 또한 대칭, 비대칭 또는 무제한과 같이 비균일 또는 비선형적일 수 있다. 간격 "d"의 비선형적 분포는 입력 신호들(104)의 범위가 비실제적으로 큰 것으로 고려되는 때 유용할 수 있고, 범위의 특정 부분은 범위의 처음, 중간 또는 끝에서와 같이 가장 치명적인 것으로 고려되는 입력 신호들을 포함할 수 있다. 특정 간격 분포는 또한 무작위 함수에 의해 설명될 수 있다. 모든 선행하는 예시들은 비제한적인 것으로서, 간격 분포의 다른 변형들도 역시 가능하다.Various possibilities of dividing the range of the
입력 신호(104)의 선택된 범위 내의 간격 "d"의 수는 p-net(100)을 최적화하도록 증가될 수 있다. 이러한 p-net(100)의 최적화는 예를 들어, 입력 이미지(106)를 트레이닝하는 것의 복잡성에서 증가가 있는 때 바람직하다. 예를 들어, 더 많은 수의 간격은 단색 이미지들과 비교할 때 다색 이미지들에 대해 필요로 할 수 있고, 더 많은 수의 간격들은 단순한 그래픽들에 비해 복잡한 장식에 대해 필요로 할 수 있다. 증가된 수의 간격들은 트레이닝 이미지의 보다 큰 전체 수를 위해서 뿐만 아니라, 윤곽에 의해 설명되는 이미지들과 비교할 때 복잡한 색상 구배를 갖는 이미지의 정확한 인식을 위해 필요할 수 있다. 간격 "d"의 수에서 감소는 노이즈의 높은 크기, 트레이닝 이미지에서 큰 분산 및 컴퓨팅 리소스들에서 과도한 소모의 경우 역시 필요할 수 있다.The number of intervals " d " within the selected range of input signals 104 may be increased to optimize p-net (100). This optimization of p-net (100) is desirable, for example, when there is an increase in the complexity of training the input image (106). For example, a larger number of intervals may be needed for multicolor images as compared to monochrome images, and a greater number of spacings may be needed for complex decorations than simple graphics. An increased number of intervals may be required not only for a larger total number of training images, but also for accurate recognition of images with complex color gradients when compared to the images described by the contours. The reduction in the number of intervals " d " may also be necessary in the case of high magnitudes of noise, large variances in training images and excessive consumption in computing resources.
p-net(100)에 의해 다루어지는 태스크 또는 정보의 종류에 따라, 예를 들어, 화상 또는 텍스트 데이터, 다양한 속성의 센서로부터의 데이터, 다양한 수의 간격들 및 그 분포의 타입이 할당될 수 있다. 각 입력 신호값 간격 "d"에 대해, 인덱스 "d"를 갖는 특정 시냅스의 대응하는 보정 가중치가 할당될 수 있다. 따라서, 특정 간격 "d"는 특정한 입력에 대해 관련하여 인덱스 "i", 특정 간격에 대해 관련된 인덱스 "d" 및 0부터 n까지 인덱스 "n"에 대한 모든 값들을 갖는 모든 보정 가중치(112)를 포함할 것이다. p-net(100)의 트레이닝의 과정에서, 분배기(114)는 각 입력 신호 값을 정의하고 따라서 대응하는 간격 "d"에 대해 대상 입력 신호(104)를 연관시킨다. 예를 들어, 0부터 100까지의 입력 신호들의 범위 내에 10개의 동일한 간격들 "d"가 있다면, 30과 40의 사이에서 값을 갖는 입력 신호는 예를 들어 "d"=3인 간격 3과 연관될 수 있다. Depending on the type of task or information handled by p-
주어진 입력(102)과 연결된 각 시냅스(118)의 모든 보정 가중치(112)에 대해, 분배기(114)는 특정 입력 신호에 관련된 간격 "d"와 부합하여 영향 계수(134)의 값을 할당할 수 있다. 분배기(114)는 또한 정현, 정규, 대수 분포 곡선, 또는 무작위 분포 함수와 같은 영향 계수(134)(도 6에 도시됨)의 값들의 미리 결정된 분포와 부합하는 영향 계수(134)의 값들을 할당할 수 있다. 많은 경우에서, 각 시냅스(118)에 관련된 특정 입력 신호(102)에 대한 영향 계수(134) 또는 Ci,d,n의 합 또는 적분은 1(one)의 값을 가질 것이다.For all
가장 단순한 경우에서, 입력 신호값에 가장 근접하게 대응하는 보정 가중치(112)는 영향 계수(134)(Ci,d,n)에 대해 1(one)의 값을 할당받을 수 있고, 반면 다른 간격들에 대한 보정 가중치는 0(zero)의 값을 받을 수 있다.In the simplest case, the
p-net(100)은 전형적인 신경망(10)과 비교할 때, p-net의 트레이닝 동안 소요 시간 및 다른 리소스들의 사용의 절감에 포커스된다. 비록 p-net(100)의 부분으로서 여기서 기재된 구성들의 일부는 전통적인 신경망에서의 그것과 유사한 특정 명칭 또는 식별자가 지정되었지만, 특정 명칭들은 명확성을 위해 사용되었고, 전통적인 신경망에서 그 상대로부터 다르게 적용될 수 있다. 예를 들어, 입력 신호들(Ii-Im)의 크기를 컨트롤하기 위한 시냅스 가중치(16)는 전통적인 신경망(10)의 전반적인 설정의 과정 동안 설립되고 전통적인 네트워크의 트레이닝 동안 변경된다. 반면, p-net(100)의 트레이닝은 보정 가중치(112)를 변경하는 것에 의해 수행되고, 반면 시냅스 가중치(108)는 트레이닝 동안 변하지 않는다. 추가적으로, 위에서 논의한 것처럼, 각 뉴런(116)은 합하거나 부가하는 구성을 포함하나, 전통적인 신경망(10)에 대해 통상적인 활성 함수 디바이스(22)는 포함하지 않는다.The p-
전반적으로, p-net(100)은 각 뉴런(116)과 특정 뉴런과 대상 뉴런에 연결된 모든 각 시냅스(118) 및 보정 가중치(112)를 포함하는 모든 연결 시냅스들(118)을 포함하는 뉴런 유닛(119)을 트레이닝함으로써 트레이닝된다. 따라서, p-net(100)의 트레이닝은 각 뉴런(116)에 대해 기여하는 보정 가중치(112)를 변경하는 것을 포함한다. 보정 가중치(112)에 대한 변경은 이하에서 상세히 설명될 방법(200)에 포함된 그룹-트레이닝 알고리즘에 기반하여 발생한다. 설명된 알고리즘에서, 예를 들어, 편차(128)와 같은 트레이닝 에러는 보정값이 각 뉴런(116)에 의해 획득된 합을 결정하는데 사용된 가중치(112)의 각각에 대해 결정되고 할당되는 것에 근거하여 각 뉴런에 대해 결정된다. 트레이닝 동안 이러한 보정의 도입은 대상 뉴런(116)에 대한 편차(128)를 0으로 줄이도록 의도된다. 추가적인 이미지들을 구비한 트레이닝 동안, 이전에 사용된 이미지들에 관련된 새로운 에러들이 다시 발생할 수 있다. 이러한 추가적인 에러들을 제거하기 위해, 한 트레이닝 시기의 완료 이후, p-net(100)의 모든 트레이닝 이미지들에 대한 에러들이 계산될 수 있고, 민약 이러한 에러들이 미리 결정된 값들 보다 크다면, 하나 이상의 추가적인 트레이닝 시기들이 에러가 타겟 또는 미리 설정된 값 보다 작게 될 때까지 이루어진다.Overall, the p-
도 2-22와 관련하여 앞에서 설명한 것과 같이, 도 23은 p-net(100)을 트레이닝하는 방법(200)을 도시한다. 방법(200)은 방법이 입력 값을 갖는 입력 신호(104)를 입력(102)을 통해 수신하는 것을 포함하는 프레임(202)에서 시작된다. 프레임(202)을 뒤이어, 방법은 프레임(204)으로 진행한다. 프레임(204)에서, 방법은 입력(102)에 동작적으로 연결된 분배기(114)에 대해 입력 신호(104)를 전달하는 것을 포함한다. 프레임(202) 또는 프레임(204)에서, 방법(200)은 인덱스들의 세트에 의해 각 보정 가중치(112)를 정의하는 것을 포함할 수 있다. p-net(100)의 구조에 대해 앞서 설명한 것처럼, 인덱스들의 세트는 입력(102)에 대응하는 보정 가중치(112)를 식별하기 위해 구성된 입력 인덱스 "i"를 포함할 수 있다. 인덱스들의 세트는 또한 각 보정 가중치(112)에 대해 선택된 간격을 특정하기 위해 구성된 간격 인덱스 "d", 및 "Wi,d,n"으로서 특정 뉴런(116)에 대응하는 보정 가중치(112)를 특정하기 위해 구성된 뉴런 인덱스 "n"을 포함할 수 있다. 인덱스들의 세트는 추가적으로 각 보정 가중치(112)가 p-net(100)의 트레이닝 동안 입력 신호(104)에 의해 접근된 횟수를 총계하도록 구성된 액세스 인덱스 "a"를 포함할 수 있다. 따라서, 각 보정 가중치의 현재 상태는 명명 "Wi,d,n,a"를 채택할 수 있다.As previously described in connection with FIGS. 2-22, FIG. 23 illustrates a
프레임(204)의 이후, 방법은 프레임(206)으로 진행하고, 방법은 분배기(114)를 통해, 입력 값과 관련하여, 대상 입력(102)에 연결된 시냅스(118) 상에 위치한 다수의 보정 가중치들로부터 하나 이상의 보정 가중치(112)를 선택하는 것을 포함한다. 앞서 설명한 것처럼, 각 보정 가중치(112)는 그 각각의 가중치 값에 의해 정의된다. 프레임(206에서, 방법은 추가적으로 분배기(114)를 통해, 다수의 영향 계수들(134)을 다수의 보정 가중치(112)로 할당하는 것을 포함할 수 있다. 프레임(206)에서 방법은 뉴런 합(120)을 작성하기 위해 미리 결정된 비율에서 다수의 보정 가중치(112) 중 하나에 대해 각 영향 계수(134)를 할당하는 것을 포함할 수도 있다. 또한, 프레임(206)에서 방법은 뉴런(116)을 통해, 그에 연결된 모든 시냅스들(118)에 대해 영향 계수(134)를 할당하는 것을 포함할 수 있다. 추가적으로, 프레임(206)에서 방법은 각 영향 계수(134)에 의해 정해진 비율에 따라 뉴런 합(120)을 작성하기 위해 사용된 각 보정 가중치(112)에 대해 결정된 차이의 비율을 가중치 보정 계산기(122)를 통해 적용하는 것을 포함할 수 있다.After the
p-net(100)의 구조에 대해 앞서 설명한 것처럼, 다수의 영향 계수들(134)은 영향 분포 함수(136)에 의해 정의될 수 있다. 이러한 경우에서, 방법은 추가적으로 간격 분포 함수(140)에 따라 간격 "d"로 나누어진 값 범위(138)로 입력값을 수신하는 것을 포함할 수 있어서, 입력값은 각 간격 내에 수신되고, 각 보정 가중치(112)는 간격들의 하나에 대응한다. 또한, 방법은 각 간격 "d"를 선택하고 다수의 영향 계수들(134)을 선택된 각 간격 "d"에 대응하는 보정 가중치(112)와 선택된 각 간격 "d"에 대해 인접한 간격에 대응하는 적어도 하나의 보정 가중치에 할당하기 위해 분배기(114)를 통해 수신된 입력값을 사용하는 것을 포함할 수 있다. p-net(100)의 구조에 대해 앞에서 설명한 것처럼, 선택된 각 간격 "d"에 인접한 간격에 대응하는 보정 가중치(112)는 예를 들어 Wi,d+i,n 또는 Wi,d i,n과 같이 식별될 수 있다.As described above for the structure of p-
프레임(206)에 후속하여, 방법은 프레임(208)으로 진행한다. 프레임(208)에서, 방법은 뉴런 합(120)을 작성하기 위해 시냅스(118)를 통해 입력(102)에 연결된 특정 뉴런(116)에 의해 선택된 보정 가중치(112)의 가중치 값들을 합하는 것을 포함할 수 있다. p-net(100)의 구조에 대해 앞서 설명한 것처럼, 각 뉴런(116)은 적어도 하나의 출력(117)을 포함한다. 프레임(208)의 이후, 방법은 프레임(210)으로 진행하고, 방법은 신호값을 갖는 원하는 출력 신호(124)를 가중치 보정 계산기(122)를 통해 수신하는 것을 포함한다. 프레임(210)에 후속하여, 방법은 방법이 원하는 출력 신호(124)의 값으로부터 뉴런 합(120)의 편차(128)를 가중치 보정 계산기(122)를 통해 결정하는 것을 포함하는 프레임(212)으로 진행한다.Following
p-net(100)의 설명에서 앞서 설명한 것처럼, 원하는 출력 신호 값으로부터 뉴런 합(120)의 편차(128)의 결정은 그 사이에서 수학적 차이를 결정하는 것을 포함할 수 있다. 추가적으로, 각 보정 가중치(112)의 변형은 뉴런 합(120)을 작성하도록 사용된 각 보정 가중치에 대해 수학적 차이를 배분하는 것을 포함할 수 있다. 대안으로, 수학적 차이의 배분은 뉴런 합(120)을 작성하기 위해 사용된 각 보정 가중치(112)의 사이에서 결정된 차이를 동일하게 나누는 것을 포함할 수 있다. 다른 개별적인 실시예에서, 편차(128)의 결정은 또한 그에 따라 편차 계수를 작성하기 위해 뉴런 합(120)에 의해 원하는 출력 신호(124)의 값을 나누는 것을 포함할 수 있다. 또한, 이러한 경우에서, 각 보정 가중치(112)의 변형은 편차 계수를 작성하기 위해 뉴런 합(120)을 작성하는데 사용된 각 보정 가중치(112)를 곱하는 것을 포함할 수 있다.The determination of the
프레임(212)의 이후, 방법은 프레임(214)으로 진행한다. 프레임(214)에서 방법은 결정된 편차(128)를 사용하여 각 보정 가중치 값을 가중치 보정 계산기(122)를 통해 변형하는 것을 포함한다. 변형된 보정 가중치 값은 이후 합산되거나 합해지고, 그리고 새로운 뉴런 합(120)을 결정하는데 사용될 수 있다. 합산되어 변형된 보정 가중치 값은 원하는 출력 신호(124)의 값으로부터 뉴런 합(120)의 편차를 최소화하기 위해 제공하고 따라서 p-net(100)을 트레이닝할 수 있다. 프레임(214)에 후속하여, 방법(200)은 원하는 출력 신호(124)의 값으로부터 뉴런 합(120)의 편차가 충분히 최소화될 때까지 추가적인 트레이닝 시기를 수행하기 위해 프레임(202)으로 돌아갈 수 있다. 다시 말해서, 추가적인 트레이닝 시기들이 원하는 출력 신호(124) 상의 뉴런 합(120)이 미리 결정된 편차 또는 에러 값 내로 수렴하도록 수행될 수 있고, p-net(100)은 트레이닝된 것으로 고려되고 새로운 이미지들과 동작을 위해 준비할 수 있다.After the
전반적으로, 입력 이미지(106)는 p-net(100)의 트레이닝을 위해 준비될 필요가 있다. 트레이닝을 위한 p-net(100)의 준비는 전반적으로 입력 이미지들(106), 다수의 경우, 대상 입력 이미지들에 대응하는 원하는 출력 이미지들(126)을 포함하는 트레이닝 이미지들의 세트의 형성으로 시작된다. p-net(100)의 트레이닝을 위해 입력 신호들 I1, I2 … Im 에 의해 정의된 입력 이미지들(106)(도 2에 도시)는 예를 들어, 사람 이미지 또는 다른 객체들의 인식, 특정 행동의 인식, 클러스터링 또는 데이터 분류, 통계학적 데이터의 분석, 패턴 인식, 예측, 또는 특정 과정들의 컨트롤과 같이 p-net이 다루도록 할당된 태스크들과 부합하여 선택된다. 따라서, 입력 이미지(106)는 예를 들어, jpeg, gif, 또는 pptx 포맷을 사용하여 컴퓨터에 도입되기 적합한 어느 형태, 테이블, 차트, 다이어그램과 그래픽, 다양한 문서 포맷 또는 기호들의 세트의 형태로 표시될 수 있다.Overall, the
p-net(100)의 트레이닝을 위한 준비는 예를 들어, 모든 이미지들을 동일한 수의 신호들을 갖는 포맷으로, 또는 사진의 경우, 동일한 수의 화소로 변환하는 것과 같이, p-net(100)에 의해 대상 이미지의 프로세싱을 위해 편리한 그 통일화를 위해 선택된 입력 이미지(106)의 변환을 포함할 수 있다. 색상 이미지들은 예를 들어, 세 개의 기본 색상의 조합으로서 표현될 수 있다. 이미지 변환은 예를 들어, 공간에서 이미지를 들어내고, 기호, 숫자, 또는 메모를 추가하는 것뿐만 아니라, 해상도, 밝기, 명암, 색상, 관점, 시각, 초점거리 및 초점, 이미지의 시각적 특징을 변경하는 특성의 변환을 포함할 수 있다.The preparation for training of p-
간격들의 개수의 선택 이후, 특정 입력 이미지는 즉, 실제 신호값들이 각 대상 개별적 신호들이 속한 간격들의 숫자로서 기록될 수 있는 간격 포맷의 입력 이미지로 컨버팅될 수 있다. 이러한 절차는 특정 이미지에 대해 각 트레이닝 시기에서 수행될 수 있다. 그러나, 이미지는 간격 숫자들의 세트로서 한번 형성될 수도 있다. 예를 들어, 도 7에서 초기 이미지는 사진으로서 표시되고, 반면 "디지털 포맷의 이미지"의 테이블에서 동일한 이미지는 디지털 코드의 형태로 표시되며, "간격 포맷의 이미지" 테이블에서 이미지는 간격 숫자의 세트로서 표시되며, 개별적인 간격은 디지털 코드의 각 10개 값들을 위해 할당된다.After the selection of the number of intervals, a particular input image may be converted to an input image in an interval format in which the actual signal values can be recorded as the number of intervals at which each target individual signal belongs. This procedure can be performed at each training time for a specific image. However, the image may be formed once as a set of interval numbers. For example, in Fig. 7, the initial image is displayed as a photograph while the same image in the table of " images in digital format " is displayed in the form of a digital code, And individual intervals are assigned for each of the ten values of the digital code.
설명된 것처럼 p-net(100)의 설명된 구조와 트레이닝 알고리즘 또는 방법(200)은 p-net의 계속되거나 반복되는 트레이닝을 허용하고, 따라서, 트레이닝 과정의 시작에서 입력 이미지(106)의 트레이닝의 완료된 세트를 형성할 필요가 없다. 상대적으로 작은 트레이닝 이미지들의 시작 세트를 형성하는 것이 가능하고, 이러한 시작 세트는 필요한만큼 확장될 수 있다. 입력 이미지들(106)은 예를 들어, 한 사람의 사진의 세트, 고양이의 사진의 세트, 또는 자동차의 사진의 세트와 같이 구분되는 카테고리로 나뉠 수 있고, 각 카테고리는 사람의 이름이나 특정 라벨과 같은 단일 출력 이미지에 대응한다. 원하는 출력 이미지(126)는 필드 또는 디지털의 테이블을 나타내고, 각 포인트는 -∞에서 +∞까지 특정 수치값에 대응한다. 원하는 출력 이미지(126)의 각 포인트는 p-net(100)의 뉴런들의 하나의 출력에 대응한다. 원하는 출력 이미지(126)는 이미지, 텍스트, 공식, 바코드와 같은 기호의 세트 또는 소리의 디지털 또는 아날로그 코드로 인코딩될 수 있다.As described, the described structure and training algorithm or
가장 간단한 경우에서, 각 입력 이미지(106)는 출력 이미지에 대응할 수 있고, 대상 입력 이미지를 인코딩할 수 있다. 이러한 출력 이미지의 포인트들의 하나는 예를 들어 100%인 최대 가능한 값을 할당받을 수 있고, 모든 다른 포인트들은 예를 들어 0의 최소 가능한 값을 할당받을 수 있다. 이러한 경우, 후속하는 트레이닝에서, 트레이닝 이미지들과 유사한 가능성의 형태에서 다양한 이미지들의 확률적 인식이 가능하게 될 것이다. 도 8은 사각형과 원의 두 이미지들의 인식에 대해 트레이닝된 p-net(100)이 각 그림이 합이 반드시 100%는 아닌 확률로서 표현된 각 그림의 일부 구성들을 포함한 사진을 인식할 수 있는지 예를 도시한다. 트레이닝을 위해 사용된 다른 이미지들의 사이에서 유사도의 확률을 정의하는 것에 의해 패턴 인식의 과정는 특정 이미지를 분류하는데 사용될 수 있다.In the simplest case, each
정확도를 개선하고 에러를 배제하기 위해, 코딩이 하나의 출력 보다는 여러 뉴럴 출력의 세트를 사용하여 수행될 수 있다(이하 참조). 가장 단순한 경우에서, 출력 이미지들이 트레이닝에 앞서 준비될 수 있다. 그러나, 트레이닝 동안 p-net(100)에 의해 형성되는 출력 이미지들을 갖는 것 역시 가능하다.In order to improve accuracy and eliminate errors, coding can be performed using a set of multiple neural outputs rather than one output (see below). In the simplest case, the output images can be prepared prior to training. However, it is also possible to have output images formed by p-net 100 during training.
p-net(100)에서, 입력 및 출력 이미지들을 인버팅하는 가능성도 역시 있다. 다시 말해서, 입력 이미지(106)는 디지털 또는 아날로그 값들의 필드 또는 테이블의 형태로 있을 수 있고, 각 포인트는 p-net의 하나의 입력에 대응하며, 반면, 출력 이미지는 예를 들어, jpeg, gif, pptx 포맷을 사용하여 컴퓨터에 도입되기 적합한 어느 형태, 테이블, 차트, 다이어그램과 그래픽, 다양한 문서 포맷 또는 기호들의 세트의 형태로 표시될 수 있다. 결과적인 p-net(100)은 이미지의 관련된 검색, 음악적 표현, 수식 또는 데이터 세트 뿐만 아니라 시스템을 보존하는데 상당히 적합할 수 있다.In p-
입력 이미지(106)의 준비에 후속하여, 통상적으로 p-net(100)은 형성될 필요가 있고 및/또는 존재하는 p-net의 파라미터들은 특정 태스크(들)를 핸들링하기 위해 설정되어야 한다. p-net(100)의 형성은 후속하는 목적을 포함할 수 있다.Following the preparation of the
● 입력 및 출력의 개수에 의해 정의되는 p-net(100)의 차원(dimensions);The dimensions of p-net (100) defined by the number of inputs and outputs;
● 모든 입력들에 대한 시냅스 가중치(108);A
● 보정 가중치(112)의 개수● Number of calibration weights (112)
● 입력 신호(104)의 다른 값들을 위한 보정 가중치 영향 계수들(Ci,d,n)의 분포; 및The distribution of the correction weighting influence factors (Ci , d, n ) for different values of the
● 원하는 트레이닝의 정확도● Accuracy of desired training
입력의 개수는 입력 이미지(106)의 크기에 기초하여 결정된다. 예를 들어, 다수의 화소들이 사진에 사용될 수 있고, 반면 출력의 선택된 개수는 원하는 출력 이미지(126)의 크기에 의존할 수 있다. 일부 경우에서, 출력의 선택된 개수는 트레이닝 이미지의 카테고리의 개수에 의존할 수 있다.The number of inputs is determined based on the size of the
개별적인 시냅스 가중치(108)의 값들은 -∞에서 +∞의 범위에 있을 수 있다. 0 보다 작은 시냅스 가중치(108)는 신호 증폭을 나타낼 수 있고, 특정 입력으로부터 또는 예를 들어, 많은 수의 다른 개별 또는 객체들을 포함하는 사진에서 사람 얼굴의 더 효과적인 인식을 위해 특정 이미지로부터 영향을 향상시키는데 사용될 수 있다. 반면, 0보다 큰 시냅스 가중치(108)의 값들은 신호 감쇄를 나타내는데 사용될 수 있고, p-net(100)의 필요한 계산의 수를 줄이고 동작 속도를 증가시키기 위해 사용될 수 있다. 전반적으로, 시냅스 가중치(108)가 커질수록, 보다 감쇄된 신호가 대응하는 뉴런으로 전송된다. 만약 모든 입력들에 대해 대응하는 모든 시냅스 가중치(108)가 동일하고 뉴런들이 모든 입력들에 동일하게 연결된다면, 신경망은 범용적으로 될 것이고, 사전에 이미지의 특성에 대해 거의 알려져 있지 않은 때와 같이 통상적인 태스크들에 대해 가장 효과적으로 될 것이다. 그러나, 이러한 구조는 트레이닝 및 동작 동안 요구되는 계산의 수가 점차적으로 증가하게 될 것이다.The values of the
도 9는 입력과 각 뉴런들의 연관이 통계학적 정규 분포와 부합하여 줄어드는 p-net(100)의 일 실시예를 도시한다. 시냅스 가중치(108)의 고르지 않은 분포는 전체 입력 신호가 특정 입력에 대해 타겟 또는 "중앙" 뉴런에 전달되는 것을 유도할 것이고, 따라서 대상 시냅스 가중치에 대해 0의 값을 할당한다. 추가적으로, 시냅스 가중치의 고르지 않은 분포는 다른 뉴런들이 예를 들어, 정규(normal), 대수-정규(log-normal), 정현(sinusoidal) 또는 다른 분포를 사용하여 감소된 입력 신호값들을 수신하도록 유도할 수 있다. 감소된 입력 신호값들을 수신하는 시냅스 가중치(108)의 값들은 "중앙" 뉴런으로부터 그 거리의 증가를 따라 함께 증가할 수 있다. 이러한 경우에서, 계산의 개수는 줄어들 수 있고 p-net의 동작은 속도가 빨라질 수 있다. 이러한 네트워크에서, 완전하게 연결되고 불완전하게 연결된 것으로 알려진 신경망들의 조합은 예를 들어 사람 얼굴 또는 영화의 연속적인 프레임과 같은 강한 내부 패턴들을 갖는 이미지들의 분석을 위해 대단히 효과적일 수 있다.Figure 9 illustrates one embodiment of a p-net (100) where the input and the association of each neuron decrease in accordance with a statistical normal distribution. The uneven distribution of
도 9는 로컬 패턴의 인식을 위해 효과적인 p-net(100)의 실시예를 도시한다. 공통 패턴들의 식별을 개선하기 위해, 시냅스 가중치(108)의 값들이 작거나 0인 강한 연결의 10-20%는 그리드(grid)의 형태와 같이 결정론적인 또는 무작위적인 접근에서 전체 p-net(100)을 통해 분포될 수 있다. 특정 태스크를 다루기 위해 의도된 p-net(100)의 실제 형성은 소프트웨어 객체와 같이 시냅스, 시냅스 가중치, 분배기, 보정 가중치, 뉴런 등과 같은 p-net의 주요 구성들을 작성하는 예를 들어 객체-지향 프로그래밍 언어로 작성된 프로그램을 사용하여 수행될 수 있다. 이러한 프로그램은 지목된 객체와 그 행동을 특정하는 알고리즘 사이의 관례를 할당할 수 있다. 특히, 시냅틱 및 보정 가중치들은 그 초기값으로 설정됨과 함께 p-net(100)의 형성의 시작에서 형성될 수 있다. p-net(100)은 그 트레이닝의 시작 전에 완전하게 형성될 수 있고 예를 들어, 네트워크의 수용력이 고갈되는 때 또는 치명적인 에러의 경우 필요에 따라 이후 프레임에서 변경되거나 추가될 수 있다. p-net(100)의 완성은 또한 트레이닝이 계속되는 동안 가능할 수도 있다.Figure 9 shows an embodiment of an effective p-net (100) for local pattern recognition. In order to improve the identification of common patterns, 10-20% of strong connections with values of
p-net(100)이 미리 형성되면, 특정 시냅스 상의 선택된 보정 가중치의 개수는 입력 신호들의 범위 내의 간격들의 개수와 동일할 수 있다. 추가적으로, 보정 가중치들은 개별적인 간격의 모양에 대응한 신호들로서 p-net(100)의 형성 이후 작성될 수 있다. 전통적인 신경망(10)과 유사하게, p-net(100)의 파라미터의 선택과 설정은 목적된 실험의 일련을 통해 제공된다. 이러한 실험은 (1) 모든 입력들에서 동일한 시냅스 가중치(108)를 갖는 p-net의 형성 및 (2) 선택된 이미지를 위한 입력 신호값들의 평가와 간격들의 개수의 초기적 선택을 포함할 수 있다. 예를 들어, 바이너리(하나의 색상) 이미지의 인식을 위해, 단지 2개의 간격을 갖는 것으로 충분할 수 있고; 8비트 이미지의 질적인 인식을 위해 최대 256개의 간격들이 사용될 수 있고; 복잡한 통계적 의존성의 근사치는 수십 또는 심지어 수백개의 간격을 필요로할 수 있고; 큰 데이터베이스를 위해 간격들의 개수는 수천일 수 있다.Once p-
p-net(100)의 트레이닝의 과정에서, 입력 신호들의 값들은 특정 간격들의 사이에서 분포됨에 따라 통합(rounded)될 수 있다. 따라서, 간격의 개수에 의해 나누어진 범위의 폭보다 큰 입력 신호들의 정확도는 요구되지 않을 수 있다. 예를 들어, 입력 값 범위가 100 유닛에 대해 설정되고 간격의 개수가 10이면, ± 5 이상의 정확도는 요구되지 않을 것이다. 이러한 실험은 (3) 특정 입력 신호를 위해 간격에 대응하는 보정 가중치를 위해 1과 동일하게 설정될 수 있고, 반면 모든 잔존하는 보정 가중치들을 위한 보정 가중치 영향은 0으로 설정될 수 있는 입력 신호들의 값의 전체 범위를 통한 간격들의 균일한 분포와 보정 가중치 영향 계수들 Ci,d,n을 위한 가장 단순한 분포의 선택을 포함할 수 있다. 이러한 실험은 추가적으로 (4) 미리 결정된 정확도로 하나, 그 이상, 또는 전체 준비된 트레이닝 이미지들을 갖는 트레이닝 p-net(100)를 포함할 수 있다.In the course of training the p-
미리 결정된 정확도를 위한 p-net(100)의 트레이닝 시간은 실험에 의해 설정될 수 있다. 만약 p-net(100)의 정확도 및 트레이닝 시간이 충분하다면, 선택된 설정들은 유지되거나 변경될 수 있고, 반면 검색은 보다 효과적인 분산을 위해 계속된다. 만약, 요구된 정확도가 달성되지 않았다면, 취적화 목적을 위해 특정 변형의 영향이 평가될 것이고, 이것은 그때 하나 또는 그룹으로 수행될 수 있다. 이러한 변형의 평가는 간격들의 개수를 증가시키거나 줄이는 변경; 보정 가중치 영향 계수 (Ci,d,n)의 분포 타입을 변경하고, 정규, 파워, 대수 또는 대수 정규 분포를 사용하는 것처럼 간격들의 비정규 분포로 분산을 테스팅; 및 예를 들어 비정규 분포에 대한 전이와 같이 시냅스 가중치(108)의 값을 변경하는 것을 포함할 수 있다. The training time of p-net (100) for predetermined accuracy can be set by experiment. If the accuracy and training time of p-net (100) is sufficient, the selected settings can be maintained or changed, while the search continues for more effective distribution. If the required accuracy has not been achieved, the effect of the particular modification will be evaluated for the purpose of acquisition, which can then be performed in one or a group. The evaluation of such a modification may include changing the number of intervals to increase or decrease; Calibration Weighing Change the distribution type of the influence coefficients (C i, d, n ) and test the variance with an irregular distribution of intervals, such as using normal, power, logarithmic, or lognormal distributions; And changing the value of
만약, 정확한 결과를 위해 요구되는 트레이닝 시간이 과도한 것 같다면, 증가된 수의 간격들을 갖는 트레이닝은 트레이닝 시간 상에 그 효과에 대해 평가될 수 있다. 만약, 그 결과, 트레이닝 시간이 감소되면, 간격들의 개수에서 증가는 바람직한 트레이닝 시간이 필요한 정확도의 손실없이 획득될 때까지 반복될 수 있다. 만약, 트레이닝 시간이 간격들의 증가하는 개수에 따라 줄어드는 대신 증가한다면, 추가적인 트레이닝은 줄어든 개수의 간격들로 수행될 것이다. 만약, 간격들의 줄어든 개수가 줄어든 트레이닝 시간을 유도한다면, 간격들의 개수는 바람직한 트레이닝 시간이 획득될 때까지 더 감소할 수 있다.If the training time required for an accurate result seems excessive, training with an increased number of intervals may be evaluated for its effect on the training time. If, as a result, the training time is reduced, the increase in the number of intervals can be repeated until the desired training time is obtained without loss of the required accuracy. If the training time increases instead of decreasing with increasing number of intervals, additional training will be performed with a reduced number of intervals. If the reduced number of intervals induces a reduced training time, the number of intervals may further decrease until the desired training time is obtained.
p-net(100) 설정의 형성은 미리 결정된 트레이닝 시간 및 트레이닝 정확도의 실험적 결정으로 트레이닝을 통할 수 있다. 파라미터들은 위에서 설명한 것들과 유사한 실험적 변경을 통해 개선될 수 있다. 다양한 p-net을 갖는 실제 실행은 설정 선택의 절차는 전반적으로 간단하고 시간을 소모하지 않음을 보여주고 있다.The formation of the p-net (100) setting may be through training with an empirical determination of a predetermined training time and training accuracy. The parameters may be improved through experimental variations similar to those described above. Actual execution with various p-net shows that the procedure of setting selection is generally simple and does not waste time.
도 23에서 도시된 방법(200)의 일부로서 p-net(100)의 실제 트레이닝은 입력 이미지 신호들(I1, I2 … Im)을 그들이 시냅스(118)에 대해 전송된 곳으로부터 네트워크 입력 디바이스(102)에 대해 공급하는 것으로 시작하고, 시냅스 가중치(108)를 통과하고 분배기(또는 분배기들의 그룹)에 입력한다. 입력 신호값에 기초하여, 분배기(114)는 특정 입력 신호(104)가 대응하는 간격 “d”의 숫자를 설정하고, 각 입력(102)에 연결된 모든 시냅스들(118)의 가중치 보정 블록(110)의 모든 보정 가중치(112)에 대해 보정 가중치 영향 계수 Ci,d,n를 할당한다. 예를 들어, 만약 간격 “d”가 제 1 입력에 대해 3으로 설정될 수 있다면, W1, 3,n Ci,3,n = 1인 모든 가중치에 대해 1로 설정되고, 반면 i≠ 1이고 d≠ 3인 모든 다른 가중치들에 대해 Ci,d,n은 0으로 설정될 수 있다.The actual training of the p-net 100 as part of the
아래의 관계에서 “n”으로서 식별된 각 뉴런(116)에 대해, 뉴런 출력 합 ∑1, ∑2.. .∑n은 아래 관계에서 Wi,d,n로서 식별된 각 보정 가중치(112)를 특정 뉴런에 대해 기여하는 모든 시냅스들(118)에 대해 대응하는 보정 가중치 영향 계수 Ci,d,n를 곱하고, 획득된 값들을 모두 더함에 의해 형성된다.In relation to the bottom for each of the
Wi,d,n x Ci,d,n의 곱은 예를 들어, 분배기(114)와 같은 저장된 가중치를 갖는 다양한 디바이스들에 의해 또는 뉴런(116)에 의해 직접 수행될 수 있다. 합들은 뉴런 출력(117)을 통해 가중치 보정 계산기(122)로 전달된다. 원하는 출력 이미지(126)를 설명하는 원하는 출력 신호들 O1, O2 … On은 역시 계산기(122)로 공급된다.The product of W i, d, n x C i, d, n may be performed by various devices having stored weights, such as, for example,
위에서 논의한 것처럼, 가중치 보정 계산기(122)는 출력 신호 O1, O2 … On 를 갖는 뉴런 출력 합 ∑1,∑2 ... ∑n의 비교에 의해 보정 가중치의 변형된 값들을 계산하기 위한 연산 디바이스이다. 도 11은 뉴런 출력 합 ∑1에 대해 기여하는 보정 가중치 Wi,d,1의 세트가 대응하는 보정 가중치 영향 계수 Ci,d,1에 의해 곱해지고 이러한 곱들이 뉴런 출력 합 ∑1에 의해 더해지는 것을 보여준다.As discussed above, the
트레이닝이 시작함에 따라, 예를 들어, 제 1 시기 동안, 보정 가중치 Wi,d,1는 트레이닝에 대해 사용된 입력 이미지(106)에 대응하지 않으며, 따라서, 뉴런 출력 합들 ∑1는 대응하는 원하는 출력 이미지(126)와 동일하지 않다. 최초 보정 가중치 Wi,d,1에 기초하여, 가중치 보정 시스템은 뉴런 출력 합 ∑1에 기여하는 모든 보정 가중치들(Wi,d,1)을 변경하기 위해 사용되는 보정값 Δ1을 계산한다. P-net(100)은 특정된 뉴런(116)에 기여하는 모든 보정 가중치들 Wi,d,n에 대한 집단적인 보정 신호들의 그 형성과 사용에 대해 다양한 옵션들과 변형들을 허용한다.As the training begins, for example, during the first period, the calibration weights W i, d, 1 do not correspond to the
이하에는 집단적인 보정 신호들의 형성과 사용에 대한 2개의 예시적이고 비제한적인 변형들이 있다. 변형 1 - 원하는 출력 신호와 획득된 출력 합들의 차이에 기초하여 보정 신호들의 형성 및 사용은 다음과 같다:There are two exemplary, non-limiting variations on the formation and use of collective correction signals. Variant 1 - The formation and use of correction signals based on the difference between the desired output signal and the obtained output sums are as follows:
● 수식에 따라 뉴런 “n”에 기여하는 모든 보정 가중치들에 대해 동일한 보정값 Δn의 계산Calculation of the same correction value [Delta] n for all correction weights contributing to the neuron " n "
* *
여기서, here,
On - 뉴런 출력 합 ∑n에 대응하는 원하는 출력 신호On - the desired output signal corresponding to the neuron output sum [
S - 뉴런 “n”에 연결된 시냅스들의 개수S - the number of synapses connected to the "n" neurons
● 수식에 따라 뉴런 “n”에 기여하는 모든 보정 가중치 Wi,d,n의 변경Change of all correction weights W i, d, n contributing to neuron "n" according to the formula
변형 2 - 획득된 출력 합에 대한 원하는 출력 신호의 비에 기초한 보정 신호들의 형성 및 사용은 다음과 같다:Variation 2 - The formation and use of correction signals based on the ratio of the desired output signal to the sum of the obtained outputs is as follows:
● 수식에 따라 뉴런 “n”에 기여하는 모든 보정 가중치들에 대해 동일한 보정값 Δn의 계산 Calculation of the same correction value [Delta] n for all correction weights contributing to the neuron " n "
● 수식에 따라 뉴런 “n”에 기여하는 모든 보정 가중치들 Wi,d,n의 변형Variations of all calibration weights W i, d, n contributing to the neuron "n" according to the formula
어떠한 적용가능한 변형에 의한 보정 가중치들 Wi,d,n의 변형은 원하는 출력 신호의 값 상에 그 출력 합이 수렴함에 의해 각 뉴런(116)에 대한 트레이닝 에러를 줄이기 위해 의도된다. 이러한 방식에서, 특정 이미지에 대한 트레이닝 에러는 이러한 것이 0과 동일하거나 가까워질 때까지 줄어들 수 있다.The deformation of the correction weights W i, d, n by any applicable deformation is intended to reduce the training error for each
트레이닝 동안 보정 가중치 Wi,d,n의 예시적인 변형이 도 11에 도시된다. 보정 가중치 Wi,d,n 의 값은 트레이닝이 시작하기 전에 보정 가중치 범위로부터 0 ± 10%로 설정된 가중치 값으로 무작위 가중치 분포의 형태로 설정되고, 트레이닝 이후 최종 가중치 분포에 도달한다. 집합적 신호들의 설명된 계산은 p-net(100)에서 모든 뉴런들(116)을 위해 이루어진다. 하나의 트레이닝 이미지를 위한 설명된 트레이닝 절차는 모든 다른 트레이닝 이미지들을 위해 반복될 수 있다. 일부 보정 가중치 Wi,d,n는 여러 이미지에 참여할 수 있기 때문에, 이러한 절차는 이전에 트레이닝된 이미지들의 일부에 대해 트레이닝 에러들의 출현을 유도할 수 있다. 따라서, 다른 이미지를 트레이닝하는 것은 이전의 이미지들을 위해 형성된 보정 가중치 Wi,d,n의 분포를 부분적으로 지장을 줄 수 있다. 그러나, 각 시냅스(118)는 보정 가중치 Wi,d,n의 세트를 포함하기 때문에, 가능한 트레이닝 에러를 증가시키면서 새로운 이미지를 트레이닝하는 것은 p-net(100)이 이미 트레이닝됐던 이미지들을 삭제하지 않는다. 게다가, 더 많은 시냅스(118)가 각 뉴런(116)에 기여하고 각 시냅스에 더 많은 보정 가중치 Wi,d,n의 개수가 기여할수록, 특정 이미지에 대한 더 적은 트레이닝이 다른 이미지들에 대한 트레이닝에 영향을 미치게 된다.An exemplary variation of calibration weights W i, d, n during training is shown in FIG. The values of the calibration weights W i, d, n are set to a weight value set to 0 ± 10% from the calibration weight range before the training starts, and arrive at the final weight distribution after training. The described computation of the aggregate signals is done for all the
전반적으로 각 트레이닝 시기는 전체 트레이닝 이미지들을 위한 전체 트레이닝 에러 및/또는 로컬 트레이닝 에러들의 대체적인 수렴으로 종료한다. 에러들은 예를 들어, 평균 제곱 오차(Mean Squared Error (MSE)), 평균 절대 오차(Mean Absolute Error (MAE)), 또는 표준 평균 오차 평균(Standard Error Mean (SEM))과 같은 알려진 통계적 방법을 사용하여 평가될 수 있다. 만약 전체 에러 또는 로컬 에러들의 일부가 너무 크면, 추가적인 트레이닝 시기가 에러가 미리 결정된 에러 값에 비해 작도록 줄어들 때까지 이루어질 수 있다. 트레이닝(도 8에 도시)을 위해 사용된 다른 이미지들 사이의 유사도의 퍼센티지를 정의하는 이미지 인식의 이전에 언급한 과정은 그 자체로 이전에 정의된 카테고리를 따라 이미지의 분류를 하는 과정이다.Overall, each training period ends with a total convergence of the entire training errors and / or local training errors for the entire training images. Errors can be measured using known statistical methods, such as, for example, Mean Squared Error (MSE), Mean Absolute Error (MAE), or Standard Error Mean (SEM) . If the total error or some of the local errors are too large, the additional training time can be made until the error is reduced to be smaller than the predetermined error value. The previously mentioned process of image recognition, which defines the percentage of similarity between different images used for training (shown in FIG. 8), is itself a process of classifying images along a previously defined category.
예를 들어, 이미지들을 이전에 특정되지 않았던 특성 분류 또는 그룹으로 나누는 것과 같이 클러스터링을 위해, 방법(200)의 기초적 트레이닝 알고리즘은 수정된 자가-조직 지도(Organizing Maps (SOM)) 접근으로 수정될 수 있다. 특정 입력 이미지에 대응하는 원하는 출력 이미지(126)는 출력 뉴런 합(120)의 최대값으로 위닝 뉴런들의 세트에 기초한 p-net(100)을 트레이닝하는 과정에서 직접 형성될 수 있다. 도 22는 어떻게 방법(200)의 기초 알고리즘의 사용이 출력 뉴런 합들의 프라이머리 세트를 작성하는지를 도시하고, 세트는 또한 컨버팅되어 여러 더 큰 합들이 그들의 값을 유지하거나 또는 증가하며, 반면 모든 다른 합들은 0과 동일하게 고려된다. 이러한 출력 뉴런 합들의 변환된 세트는 원하는 출력 이미지(126)로서 받아들여진다.For example, for clustering, such as dividing images into feature classes or groups that were not previously specified, the basic training algorithm of
위에서 설명한 것처럼 형성된, 원하는 출력 이미지(126)의 세트는 클러스터들 또는 그룹들을 포함한다. 그러한 원하는 출력 이미지(126)의 세트는 선형적으로 불가분의 이미지들의 클러스터링을 허용하며, 이것은 전통적인 네트워크(10)과 차별된다. 도 13은 설명된 접근법이 복합적인 가상의 이미지 "고양이-자동차"를 클러스터링하는 것을 보조하는 방법을 보여주며, 이미지들의 다른 구성들은 다른 클러스터들-고양이들과 자동차들에 대해 할당된다. 원하는 출력 이미지들(126)의 세트는 예를 들어 클러스터링의 결과로서 형성된 기준에 기초하여 다른 분류, 통계적 분석, 이미지 선택을 만들기 위해 사용될 수 있다. 또한, p-net(100)에 의해 작성된 원하는 출력 이미지들(126)은 다른 또는 추가적인 p-net을 위한 입력 이미지로서 사용될 수 있고, 대상 p-net(100)을 위해 설명된 라인들을 따라 역시 형성될 수 있다. 따라서, 형성된 원하는 출력 이미지들(126)은 다층(multi-layer) p-net의 후속 층을 위해 사용될 수 있다.The set of desired
전통적인 신경망(10) 트레이닝은 예비적으로 준비된 입력 이미지와 원하는 출력 이미지의 쌍에 기초하여 감시된 트레이닝 방법을 통해 제공된다. 동일한 범용적 방법이 p-net(100)의 트레이닝을 위해 역시 사용되나, p-net(100)의 증가된 트레이닝 속도는 또한 외부 트레이너로 트레이닝하는 것을 허용한다. 외부 트레이너의 역할을 예를 들어, 개별적으로(by an individual) 또는 컴퓨터 프로그램에 의해 수행될 수 있다. 외부 트레이너로서 동작하는 것은 개체(individual)가 물리적 태스크를 수행하는데 포함되거나 게이밍 환경(gaming environment)에서 동작할 수 있다. p-net(100)은 특정 환경에 관한 데이터의 형태로 입력 신호를 수신하고 이에 대해 변경한다. 트레이너의 신호 반사 동작(signals reflecting actions)은 원하는 출력 이미지들(126)로서 도입되고, p-net(100)이 기초 알고리즘에 따라 트레이닝되도록 허용한다. 이러한 방식으로, 다양한 과정들의 모델링이 실시간으로 p-net(100)에 의해 작성될 수 있다.A conventional
예를 들어, p-net(100)은 도로 환경 및 드라이버의 동작에 관한 수신하는 정보에 의해 차량을 구동하도록 트레이닝될 수 있다. 비록 매우 다양한 치명적인 환경을 모델링하는 것이나, p-net(100)은 어떠한 단일 운전자에 의해 일반적으로 가능한 것에 비해 많은 다른 운전자들에 의해 트레이닝되고 보다 많은 운전 기술들을 누적할 수 있다. p-net(100)은 0.1초 또는 이보다 빨리 특정 도로 컨디션을 평가할 수 있고, 다양한 환경에서 교통 안전을 향상시킬 수 있는 "운전 경험"을 축적할 수 있다. p-net(100)은 또한 예를 들어 체스-경기 머신과 같이 컴퓨터와 협업하도록 트레이닝될 수도 있다. p-net(100)이 외부 트레이너에 의해 트레이닝되는 때, 트레이닝 모드로부터 인식 모드로 및 그 반대로 쉽게 변환하는 p-net(100)의 능력은 "실수로부터 학습"의 현실화를 가능하게 한다. 이러한 경우에서, 다수의 트레이닝된 p-net(100)은 예를 들어, 기술적 과정을 컨트롤하는 것과 같은 고유의 동작을 작성할 수 있다. 트레이너는 p-net(100)의 동작을 컨트롤하고 필요할 때 그 동작들을 수정할 수 있다. 따라서, p-net(100)의 추가적인 트레이닝이 제공될 수 있다.For example, the p-
p-net(100)의 정보 수용력은 매우 크지만, 무제한적이지는 않다. p-net(100)이 트레이닝되는 p-net(100)의 입력들, 출력들 및 간격들의 개수와 같은 세트 차원과, 이미지들의 수에서의 증가로, 특정 수의 이미지들 이후, 트레이닝 에러들의 수와 크기가 역시 증가할 것이다. 에러 작성에서 이러한 증가가 감지되는 때, 에러들의 수 및/또는 크기는 p-net(100)의 크기를 증가시키는 것에 의해 줄어들 수 있고, 이것은 p-net은 뉴런들(116)의 수와 p-net을 가로지르는 신호 간격들 "d" 또는 트레이닝 시기들의 사이에서 그 구성들에서의 수를 증가시키는 것을 허용하기 때문이다. p-net(100) 확장은 새로운 뉴런(116)을 추가하고, 새로운 입력(102)과 시냅스들(118)을 추가하고, 보정 가중치 영향 계수 Ci,d,n의 분포를 변경하고, 존재하는 간격 "d"로 나눔으로써 제공될 수 있다.The information capacity of p-net (100) is very large, but it is not unlimited. a set dimension such as the number of inputs, outputs and intervals of p-net 100 in which p-
최근 경우에서, p-net(100)은 이미지, 패턴 및 이미지 또는 이미지들의 세트들에 내재된 연관성을 인식하는 그 능력을 보장하기 위해 트레이닝될 수 있다. 가장 간단한 경우에서 인식 과정는 방법(200)의 부분으로서 개시된 기초 알고리즘에 따른 트레이닝 과정의 제 1 단계들을 반복한다. 특히,In a recent case, the p-
● 직접 인식은 포맷 이미지들에 대해 트레이닝을 하기 위해 사용된 동일한 룰에 따라 이미지의 포맷팅으로 시작한다;● Direct recognition begins with the formatting of images according to the same rules used for training on format images;
● 이미지는 트레이닝된 p-net(100)의 입력으로 보내지고, 분배기들은 트레이닝 동안 설정되었던 입력 신호의 값들에 대응되는 보정 가중치 Wi,d,n을 할당하고, 뉴런들은 도 8에 도시된 것처럼, 각 뉴런 합을 작성한다.The images are sent to the inputs of the trained p-net (100), the distributors assign calibration weights W i, d, n corresponding to the values of the input signals that were set during training, , And the sum of each neuron is created.
● 만약 출력 이미지(126)를 표시하는 결과 출력 합들이 p-net(100)이 트레이닝된 이미지들의 하나와 완전하게 충족하면, 객체의 정확한 인식이 존재한다; 그리고• If the resulting output sums representing the
● 만약 출력 이미지(126)가 p-net(100)이 트레이닝된 여러 이미지들과 부분적으로 충족하면, 결과는 퍼센티지로서 다른 이미지들과 매칭율을 보여준다. 도 13은 고양이와 차량의 이미지들의 조합에 기초하여 만들어진 복잡한 이미지의 인식 과정동안, 출력 이미지(126)는 특정 이미지 조합을 나타내고, 조합에 대한 각 최초 이미지들의 기여의 퍼센티지를 나타낸다.If the
예를 들어, 만약 특정 사람의 여러 사진이 트레이닝에 사용되었다면, 인식된 이미지는 첫번째 사진에 대해 90%, 두번째 사진에 대해 60%, 그리고 세번째 사진에 대해 35%로 대응할 수 있다. 인식된 이미지는 다른 사람 또는 심지어 동물들의 사진들에 대해 특정한 확률로 대응할 수 있고, 이것은 사진들 간에 일부 유사성이 있음을 의미한다. 그러나, 이러한 유사성의 확률은 더 낮기 쉽다. 이러한 가능성에 기초하여, 예를 들어, 베이즈의 정리(Bayes' theorem)에 근거하여 인식의 신뢰성이 결정될 수 있다.For example, if several pictures of a particular person were used for training, the recognized image could correspond to 90% for the first picture, 60% for the second picture, and 35% for the third picture. The recognized image may respond with a certain probability to the photographs of other people or even animals, which means that there is some similarity between the photographs. However, the probability of this similarity is likely to be lower. Based on this possibility, for example, the reliability of recognition can be determined based on Bayes' theorem.
p-net(100)으로, 또한 알고리즘적 및 신경망 인식 방법들의 장점들을 조합한 멀티-스테이지 인식을 구현하는 것이 가능하다. 이러한 멀티-스테이지 인식은 다음을 포함할 수 있다.With p-net (100) it is also possible to implement multi-stage recognition combining the advantages of algorithmic and neural network recognition methods. Such multi-stage recognition may include the following.
● 여기서 "기초 입력들"로 지정된, 입력들의 전체가 아닌 단지 1%-10%를 이용하는 것을 통해 미리 트레이닝된 네트워크에 의해 이미지의 초기 인식. 이러한 입력들의 비율을 균일하게, 무작위로 또는 어떤 다른 분포 함수에 의해 p-net(100) 내에서 분포될 수 있다. 예를 들어, 사진에서 사람의 인식은 다수의 다른 객체를 포함할 수 있다;● Initial recognition of the image by the network pre-trained through using only 1% -10% of the inputs, not the entirety of the inputs specified here as "base inputs". The ratio of these inputs can be distributed uniformly, randomly, or within some other distribution function within the p-net (100). For example, a person's perception in a photograph may include a number of different objects;
● 더 자세한 인식을 위해 가장 유용한 정보를 주는 객체들 또는 객체들의 부분을 선택하는 것. 이러한 선택은 알고리즘적 방법에서처럼 메모리 내에서 미리 설정된 특정 객체들의 구조에 따라 제공되거나 또는 색상의 구배, 밝기 및/또는 이미지의 깊이에 따라 제공된다. 예를 들어, 초상화의 인식에서, 후속하는 인식 영역들이 선택될 수 있다: 문신, 차량 번호 또는 가옥 번호 등과 같은 어떠한 특정 구성들 뿐만 아니라 눈, 입의 가장자리, 코 형상은 또한 유사 접근을 사용하여 선택되고 인식될 수 있다; 그리고• Selecting objects or portions of objects that provide the most useful information for further recognition. This selection is provided according to the structure of specific objects preset in the memory, such as in an algorithmic manner, or is provided according to the gradient of color, brightness and / or image depth. For example, in recognizing a portrait, subsequent recognition areas can be selected: eye, mouth edge, nose shape, as well as any specific configurations such as tattoo, vehicle number or house number, And can be recognized; And
● 선택된 이미지들의 상세한 인식은 필요한다면 역시 가능하다.● Detailed recognition of selected images is also possible if necessary.
p-net(100)과 그 트레이닝의 컴퓨터 에뮬레이션의 형성은 어느 프로그래밍 언어를 사용하여서도 위의 언급에 기초하여 제공될 수 있다. 예를 들어, 객체 지향 프로그래밍이 사용될 수 있고, 여기서 시냅스 가중치(108), 보정 가중치(112), 분배기(114) 및 뉴런들(116)은 프로그래밍 객체들 또는 객체들의 분류를 나타내며, 관련성은 링크나 메시지를 통한 객체 분류를 통해 세워지고, 상호작용의 알고리즘은 객체들의 사이와 객체 분류들의 사이에서 설정된다.The formation of the computer emulation of p-
p-net(100)의 형성과 트레이닝 소프트웨어 에뮬레이션은 다음을 포함할 수 있다:The formation of the p-
1. p-net(100)의 형성과 트레이닝의 준비, 특히:1. Preparation of p-net (100) and preparation of training, in particular:
● 특정 태스크와 부합하는 디지털 형태로 트레이닝 입력 이미지들의 세트의 컨버전;Conversion of a set of training input images in digital form consistent with a particular task;
● 예를 들어, 주파수, 크기, 위상 또는 좌표와 같은 트레이닝을 위해 사용되기 위한 입력 신호들의 파라미터들의 선택을 포함하는 결과적인 디지털 이미지들의 분석; 그리고Analysis of the resulting digital images, including selection of parameters of the input signals to be used, for example, for training, such as frequency, size, phase or coordinates; And
● 트레이닝 신호를 위한 범위, 대상 범위 내의 간격들의 수, 보정 가중치 영향 계수 Ci,d,n의 분포를 설정The range for the training signal, the number of intervals in the target range , and the distribution of the calibration weight influence coefficient C i, d, n are set
2. p-net 소프트웨어 에뮬레이션의 형성은 이하를 포함한다.2. Formation of p-net software emulation includes:
● p-net(100)의 입력들의 세트의 형성. 예를 들어, 입력들의 개수는 트레이닝 입력 이미지에서 신호들의 개수와 같을 수 있다;• Formation of a set of inputs of p-net (100). For example, the number of inputs may be equal to the number of signals in the training input image;
● 뉴런들의 형성, 각 뉴런은 추가하는 디바이스를 나타낸다;● Formation of neurons, each neuron representing a device to add;
● 시냅스 가중치를 갖는 시냅스의 세트의 형성, 각 시냅스는 하나의 p-net과 하나의 뉴런에 연결된다;• Formation of a set of synapses with synaptic weights, each synapse connected to one p-net and one neuron;
● 각 시냅스에서 가중치 보정 블록들의 형성, 가중치 보정 블록들은 분배기들과 보정 가중치들을 포함하고, 각 보정 가중치는 다음의 특징을 갖는다:Formation of weight correction blocks at each synapse, the weight correction blocks include distributors and calibration weights, and each calibration weight has the following characteristics:
○ 보정 가중치 입력 인덱스(i); Calibration weight input index (i);
○ 보정 가중치 뉴런 인덱스(n); Calibration weight neuron index (n);
○ 보정 가중치 간격 인덱스(d); 그리고 Calibration weight interval index (d); And
○ 보정 가중치 초기값(Wi,d,n).○ Calibration weight initial value (W i, d, n ).
● 간격들과 보정 가중치들의 사이에서 연관을 지정● Specify associations between intervals and calibration weights
3. 다음을 포함하여 하나의 출력 이미지로 각 뉴런을 트레이닝:3. Train each neuron with one output image, including:
● 다음을 포함하는 보정 가중치 영향 계수 Ci,d,n를 지정:● Specify the calibration weight influence factors C i, d, n , which include:
○ 각 입력에 의해 수신된 트레이닝 입력 이미지의 입력 신호에 대응하는 간격을 결정; 그리고 Determine the interval corresponding to the input signal of the training input image received by each input; And
○ 모든 시냅스들에 대한 모든 보정 가중치들에 보정 가중치 영향 계수 Ci,d,n의 크기를 결정.Determine the magnitude of the calibration weight influence coefficients C i, d, n on all calibration weights for all synapses.
● 대응하는 보정 가중치 영향 계수 Ci,d,n에 의해 곱해진 뉴런에 기여하는 모든 시냅스 가중치들의 보정 가중치값 Wi,d,n을 더하는 것에 의해 각 뉴런 "n"에 대한 뉴런 출력 합(∑n)을 계산:The neuron output sum for each neuron " n " is calculated by adding the correction weight values W i, d, n of all synapse weights contributing to the neurons multiplied by the corresponding correction weight influence coefficients C i, n):
● 대응하는 원하는 출력 신호 On으로부터 뉴런 출력 합 ∑n의 뺄셈을 통해 트레이닝 에러(Tn)의 편차를 계산:Calculate the deviation of the training error (T n ) from the corresponding desired output signal O n by subtracting the neuron output sum Σ n :
● 뉴런 "n"에 연결된 시냅스들 "S"의 개수에 의해 트레이닝 에러를 나눔으로써 뉴런 "n"에 기여하는 모든 보정 가중치들에 대한 균등한 보정값(Δn)을 계산:• Calculate an even correction (Δn) for all calibration weights contributing to neuron "n" by dividing the training error by the number of synapses "S" connected to neuron "n":
● 대응하는 보정 가중치 영향 계수들 Ci,d,n에 의해 나누어진 보정값 Δn을 각 보정 가중치에 더함으로써 각 뉴런에 기여하는 모든 보정 가중치들 Wi,d,n을 변형: D) transforming all correction weights W i, d, n contributing to each neuron by adding a correction value? N divided by corresponding correction weight influence coefficients C i, d, n to each correction weight:
균등한 보정값 (Δn)을 계산하고 뉴런 "n"에 기여하는 모든 보정 가중치에 대한 보정 가중치 Wi,d,n를 변형하는 다른 방법은 다음을 포함할 수 있다.Other methods of calculating the uniform correction value? N and modifying the correction weights W i, d, n for all the correction weights contributing to the neuron "n" may include:
● 뉴런 출력 합 ∑n에 의해 원하는 출력 이미지 On의 신호를 나눔● Divide the signal of the desired output image O n by the neuron output sum Σn
● 보정 값 Δn에 의해 보정 가중치들을 곱함에 의해 뉴런에 기여하는 보정 가중치들 Wi,d,n을 변형:Variation of the correction weights W i, d, n contributing to the neuron by multiplying the correction weights by the correction value Δn:
4. 다음을 포함하여 모든 트레이닝 이미지들을 이용하여 p-net(100)을 트레이닝:4. Train p-net (100) with all training images, including:
● 하나의 트레이닝 시기에서 포함된 모든 선택된 트레이닝 이미지들에 대해 위에서 설명한 과정을 반복; 그리고• Repeat the process described above for all selected training images included at one training time; And
● 특정 트레이닝 시기의 에러 또는 에러들을 결정하고, 이러한 에러(들)을 미리 결정된 허용 가능한 에러 레벨과 비교하고, 트레이닝 에러들이 미리 결정된 허용 가능한 에러 레벨보다 작게 될 때까지 트레이닝 시기들을 반복하는 것.Determining errors or errors at a particular training time, comparing these error (s) to a predetermined acceptable error level, and repeating training periods until the training errors are less than a predetermined acceptable error level.
객체 지향 프로그래밍을 이용한 p-net(100)의 소프트웨어 에뮬레이션의 실제 예시는 이하에서 설명되고 도 1-21에서 도시된다.A practical example of software emulation of p-
뉴런유닛(NeuronUnit) 객체 분류의 형성은 다음의 형성을 포함할 수 있다:The formation of the neuron unit object class may include the following:
● 시냅스 분류의 객체들의 세트A set of objects in the synaptic classification
● 변수를 나타내는 뉴런(116), 추가는 트레이닝 동안 수행된다; 그리고A
● 변수를 나타내는 계산기(122), 바람직한 뉴런 합(120)의 값은 저장되고 보정 값 Δn의 계산은 트레이닝 과정 동안 수행된다.The value of the
p-net(100)을 제공하는 분류 뉴런유닛(Class NeuronUnit)은 다음을 포함할 수 있다:A Class Neuron Unit providing p-net (100) may include:
● 뉴런 합(120)의 형성;The formation of a
● 원하는 합들의 설정;• setting the desired sums;
● 보정값 Δn 의 계산; 그리고 Calculation of the correction value Δn; And
● 계산된 보정값 Δn을 보정 가중치 Wi,n,d에 더함.● The calculated correction value Δn is added to the correction weights W i, n, d .
객체 분류 시냅스(object class Synapse)의 형성은 다음을 포함할 수 있다:The formation of an object class Synapse may include:
● 보정 가중치 Wi,n,d의 설정; 그리고 ● setting calibration weights W i, n, d ; And
● 시냅스(118)에 연결된 입력을 나타내는 포인터.A pointer to an input connected to synapse 118;
분류 시냅스(Class Synapse)는 다음의 기능을 수행할 수 있다:Class Synapse can perform the following functions:
● 보정 가중치 Wi,n,d의 초기화;● Initialization of calibration weights W i, n, d ;
● 계수 Ci,d,n 에 의해 가중치 Wi,n,d를 곱하고; 그리고Multiplying weights W i, n, d by coefficients C i, d, n ; And
● 가중치 Wi,n,d의 보정● Calibration of weights W i, n, d
분류 입력신호(class InputSignal)의 형성은 다음을 포함할 수 있다:The formation of a class input signal (class InputSignal) may include:
● 특정 입력(102)에 연결된 시냅스들(118) 상의 인덱스들의 설정The setting of indices on
● 입력 신호(104)의 값을 포함하는 변수A variable including the value of the
● 가능한 최소 및 최대 입력 신호의 값들● Possible values of the minimum and maximum input signals
● 간격 "d"의 수; 그리고The number of intervals "d"; And
● 간격 길이.● Interval length.
분류 입력신호(Class InputSignal)는 다음의 기능을 제공할 수 있다.The Class Input Signal (Class InputSignal) can provide the following functions.
● 다음을 포함하는 p-net(100)의 형성Formation of p-net (100), including:
○ 입력(102)과 시냅스들(118)의 사이의 링크 추가 및 제거; 그리고 Add and remove links between
○ 특정 입력(102)의 시냅스들(118)을 위한 간격 "d"의 수를 설정 Set the number of intervals " d " for
● 최소 및 최대 입력 신호들(104)의 파라미터들의 설정The setting of the parameters of the minimum and maximum input signals 104
● p-net(100)의 동작에 대한 기여:● contribution to the behavior of p-net (100):
○ 입력 신호(104)를 설정; 및 Set
○ 보정 가중치 임팩트 Ci,d,n 의 상수들을 설정○ Set the constants of calibration weight impact C i, d, n
객체 분류들의 세트를 포함하는 객체 분류 PNET(object class PNet)의 형성:Classification of objects containing a set of object classifications Formation of PNET (object class PNet)
● 뉴런유닛(NeuronUnit); 그리고 Neuron Unit; And
● 입력신호(InputSignal)● Input signal (InputSignal)
분류 PNET은 다음의 기능을 제공함:Classification PNET provides the following functions:
● 입력신호 분류의 객체의 수를 설정;● Set the number of objects in the input signal classification;
● 뉴런유닛 분류의 객체의 수를 설정; 그리고● Set the number of objects in neuron unit classification; And
● 객체들 뉴런유닛과 입력신호의 함수의 그룹 요청● Objects Neuron unit and a group request of the function of the input signal
트레이닝 과정 동안 사이클들이 형성될 수 있고:Cycles can be formed during the training process:
● 사이클이 시작하기 전에 0과 동일한 뉴런 출력 합이 형성되고• A neuron output sum equal to zero is formed before the cycle starts
● 특정 뉴런유닛에 대해 기여하는 모든 시냅스들이 검토되고, 각 시냅스(118)에 대해:All synapses contributing to a particular neuron unit are examined, and for each synapse 118:
○ 입력 신호(102)에 기초하여, 분배기는 보정 가중치 영향 계수들 Ci,d,n의 설정을 형성한다;Based on the
○ 시냅스들(118)의 모든 가중치들 Wi,n,d이 검토되고, 각 가중치에 대해:All weights W i, n, d of the
■ 가중치 Wi,n,d의 값이 대응하는 보정 가중치 영향 계수 Ci,d,n에 의해 곱해진다;The values of the weights W i, n and d are multiplied by the corresponding correction weighting influence coefficients C i, d, n ;
■ 곱의 결과가 뉴런 출력 합을 형성하기 위해 더해진다; The result of the product is added to form the neuron output sum;
● 보정값 Δn이 계산된다;The correction value [Delta] n is calculated;
● 예를 들어, Δn / Ci,d,n와 같이, 보정값 Δn이 보정 가중치 영향 계수 Ci,d,n에 의해 나누어진다. • For example, the correction value Δn is divided by the correction weighting influence coefficient C i, d, n, such as Δn / C i, d, n .
● 특정 뉴런유닛에 대해 기여하는 모든 시냅스들(118)이 검토된다. 각 시냅스(118)에 대해, 대상 시냅스의 모든 가중치 Wi,n,d가 검토되고, 모든 가중치에 대해 그 값은 대응되는 보정값 Δn에 대해 변경된다.All
p-net(100)의 추가적인 트레이닝의 이전에 언급된 가능성은 트레이닝 과정이 속도를 빠르게 하고 그 정확도를 개선하는 것을 가능하게 하는 이미지의 인식을 통한 트레이닝과 조합을 허용한다. 서로 약간 다른 필름의 연속적인 프레임들 상에서의 트레이닝과 같이 순차적으로 변경하는 이미지들의 세트 상의 p-net(100)을 트레이닝 할 때, 추가적인 트레이닝은 다음을 포함할 수 있다:The previously mentioned possibility of further training of p-
● 제 1 이미지로 트레이닝● Training with the first image
● 다음 이미지의 인식 및 새로운 이미지와 네트워크가 초기적으로 트레이닝된 이미지 사이의 유사도의 퍼센티지를 식별. 추가적인 트레이닝은 인식 에러가 미리 결정된 값 보다 작다면 필요하지 않다; 그리고● Identify the next image and identify the percentage of similarity between the new image and the network image that was initially trained. Additional training is not required if the recognition error is less than a predetermined value; And
● 인식 에러가 미리 결정된 값을 초과하면, 추가적인 트레이닝이 제공된다.If the recognition error exceeds a predetermined value, additional training is provided.
위의 기본적인 트레이닝 알고리즘에 의한 p-net(100)의 트레이닝은 이미지 인식의 문제들을 해결하기에 효과적이지만, 오버랩핑되는 이미지들에 기인한 데이터의 손실 또는 변형을 배제하지 못한다. 따라서, 메모리 목적을 위한, 비록 가능하지만, p-net(100)의 사용은 완전히 신뢰적이지 않을 수 있다. 본 실시예는 정보의 손실 또는 변형에 반해 보호를 제공하는 p-net(100)의 트레이닝을 설명한다. 추가적인 제한은 모든 보정 가중치 Wi,n,d가 단지 한번에 트레이닝될 수 있는 것을 필요로하는 기초 네트워크 트레이닝 알고리즘으로 도입될 수 있다. 제 1 트레이닝 사이클의 이후, 가중치 Wi,n,d는 고정되거나 상수로 남아있는다. 이것은 각 보정 가중치에 대해 추가적인 접근 인덱스 "a"를 입력함에 의해 달성될 수 있고, 이것은 트레이닝 과정 동안 대상 보정 가중치 Wi,n,d 에 대한 접근들의 수를 나타내는 앞서 설명한 인덱스이다.Training of the p-net (100) by the above basic training algorithm is effective in solving the problems of image recognition, but it does not preclude loss or distortion of data due to overlapping images. Thus, although possible, for memory purposes, the use of p-
앞서 언급한 것처럼, 각 보정 가중치는 "a"가 트레이닝 과정 동안 대상 가중치에 대한 접근의 수인 명칭 Wi,n,d,a 으로 채택될 수 있다. 예를 들어, 고정되지 않은 가장 단순한 경우에서, 가중치, a=0, 반면 언급한 기초 알고리즘에 의해 변경되거나 고정된 가중치에 대해서는 a = 1. 게다가, 기초 알고리즘을 적용하는 동안, 고정된 값 a =1을 갖는 보정 가중치 Wi,n,d,a는 보정이 이루어지는 가중치들로부터 배제될 수 있다. 이러한 경우, 수식 [5], [6] 및 [7]은 아래와 같이 변형될 수 있다.As mentioned earlier, each calibration weight can be adopted as a name W i, n, d, a where "a" is the number of accesses to the target weight during the training process. For example, in the simplest case that is not fixed, a = 0, while a = 1 for a weight that is changed or fixed by the mentioned basic algorithm. Moreover, during the application of the basic algorithm, The correction weights W i, n, d, a having 1 can be excluded from the weights for which the correction is made. In this case, the equations [5], [6] and [7] can be modified as follows.
- 변형 1The same correction value
-
S0 - 대상 뉴런에 대해 기여하고 인덱스 a=0을 갖는 모든 보정 가중치들 Wi,n,d,a의 합 Ci,d,n,a
S 0 - sum of all correction weights W i, n, d, a contributing to the target neuron and having index a = 0 C i, d, n, a
- 변형 1Modified calibration weights
-
Wi,n,d,0은 대상 뉴런에 대해 기여하고 인덱스 a=0을 갖는 가중치들이고, Ci,d,n,0는 대상 뉴런에 대해 기여하고 인덱스 a=0을 갖는 보정 가중치들에 대한 보정 가중치 영향 계수들
W i, n, d, 0 are the weights for the target neuron and the index a = 0, C i, d, n, 0 for the target neuron and the correction weights for index a = Calibration weight influence factors
- 변형 2Modified calibration weights
-
앞의 제한은 앞에서 트레이닝된 보정 가중치 Wi,n,d,a의 보정에 부분적으로 적용될 수 있으나, 가장 중요한 이미지를 형성하는 가중치들에만 그런 것은 아니다. 예를 들어, 단일한 사람의 초상화의 세트 상에서 트레이닝을 하는 내에서, 하나의 특정 이미지가 일차적으로 선언되고 우선권을 할당받을 수 있다. 이러한 우선권 이미지 상에서 트레이닝의 이후, 트레이닝의 과정 내에서 변경될 수 있는 모든 보정 가중치들 Wi,n,d,a 은 예를 들어 인덱스 a=1로 고정될 수 있고, 따라서, Wi,n,d,1로서 가중치를 지정할 수 있고 동일한 사람의 다른 이미지들은 변경 가능하게 남아 있을 수 있다. 이러한 우선권은 예를 들어, 암호화 키에 사용되거나 및/또는 치명적인 수치적 데이터를 포함하는 것과 같이 다른 이미지들을 포함할 수 있다.보정 가중치 Wi,n,d,a 에 대한 변경은 또한 완전하게 금지될 수 있으나, 인덱스 "a"의 성장에 대해서는 제한될 수 있다. 즉, 가중치 Wi,n,d,a의 각 후속 사용은 변경하는 그 능력을 줄이는데 사용될 수 있다. 보다 자주 특정 보정 가중치 Wi,n,d,a가 사용될수록, 각 접근별로 더 적게 가중치가 변화하고, 따라서, 후속 이미지들 상에서의 트레이닝 동안 이전의 저장된 이미지들은 더 적게 변경되고 줄어든 변형을 겪게 된다. 예를 들어, 만약 a=0이면, 가중치 Wi,n,d,a에 대한 어떠한 변화도 가능하고; a=1인 때 가중치에 대한 변화의 가능성은 가중치값의 ± 50%로 감소할 수 있으며, a=2일 때 변경의 가능성은 가중치값의 ± 25%로 줄어들 수 있다.The previous constraints can be applied in part to the correction of the previously corrected calibration weights W i, n, d, a , but not only those which form the most important image. For example, within a single person training on a set of portraits, one particular image may be declared and assigned priority. All correction weights W i, n, d, a that can be changed in the course of training after training on this priority image can be fixed, for example, with index a = 1 , d, 1 , and other images of the same person may remain changeable. Such priorities may include other images, such as, for example, used in encryption keys and / or containing fatal numerical data. Changes to correction weights W i, n, d, But may be limited for growth of the index " a ". That is, each subsequent use of the weights W i, n, d, a can be used to reduce its ability to change. The more frequently a particular calibration weight W i, n, d, or a is used, the less the weight changes for each approach, and thus the previous stored images during the training on subsequent images undergo a lesser and lesser variance . For example, if a = 0, then any changes to the weights W i, n, d, a are possible; The likelihood of a change to a weight when a = 1 can be reduced to +/- 50% of the weight value, and the probability of a change when a = 2 can be reduced to +/- 25% of the weight value.
미리 결정된 접근의 수에 도달한 이후, 인덱스 "a"에 의해 의미되는 것처럼, 예를 들어 a=5일 때, 가중치 Wi,n,d,a의 추가적인 변경은 금지될 수 있다. 이러한 접근은 단일한 p-net(100) 내에서 높은 지능 및 정보의 조합을 제공할 수 있다. 네트워크 에러 계산 메커니즘을 사용하여, 허용되는 에러들의 레벨이 설정될 수 있어서 미리 결정된 정확도 범위 내에서 손실을 갖는 정보가 보호될 수 있고, 정확도 범위는 특정 태스크에 따라 할당될 수 있다. 다시 말하면, 시각 이미지로 동작하는 p-net(100)에 대해, 에러는 육안에 의해 포착될 수 없는 레벨로 설정될 수 있고, 이것은 "저장 용량에서의 증가의 중대한 "요인"을 제공한다. 앞의 것은 예를 들어, 영화와 같은 시각적 정보의 높은 효율적 저장의 작성을 가능하게 할 수 있다.After reaching a predetermined number of accesses, additional changes of the weights W i, n, d, a may be inhibited , for example, when a = 5, as implied by the index "a". This approach can provide a combination of high intelligence and information within a single p-net (100). Using the network error calculation mechanism, the level of allowed errors can be set so that information with loss within a predetermined accuracy range can be protected, and the accuracy range can be assigned according to a particular task. In other words, for the p-net 100 operating as a visual image, the error can be set to a level that can not be captured by the naked eye, and this provides a "significant" factor of the increase in storage capacity. For example, can enable the creation of highly efficient storage of visual information such as movies.
선택적으로 컴퓨터 메모리를 청소하는 능력은 p-net(100)의 연속된 하이레벨 기능에 대해 가치가 있을 수 있다. 이러한 메모리의 선택적인 청소는 저장된 정보의 나머지의 손실이나 변형없이 특정 이미지를 제고함에 의해 이루어질 수 있다. 이러한 청소는 이하와 같이 제공될 수 있다.Optionally, the ability to clean computer memory may be worthy of a continuous high-level function of p-net (100). Selective cleaning of such memory can be accomplished by enhancing a particular image without loss or alteration of the remainder of the stored information. Such cleaning may be provided as follows.
● 예를 들어, 네트워크 상에 이미지를 도입하거나 각 이미지의 사용된 보정 가중치들의 리스트를 컴파일링함에 의해 이미지 형성에 참여한 모든 보정 가중치들 Wi,n,d,a 의 식별;Identification of all correction weights W i, n, d, a participating in image formation, for example by introducing an image on the network or compiling a list of used correction weights for each image;
● 각 보정 가중치들 Wi,n,d,a에 대해 인덱스 "a"를 축소; 그리고• reduce index "a" for each calibration weight W i, n, d, a ; And
● 인덱스 "a"가 0으로 축소된 때 대상 가중치에 대해 보정 가중치들 Wi,n,d,a 를 0 또는 가능한 값들의 범위의 중간에 근접한 임의의 값으로 대체.When the index "a" is reduced to 0, the correction weights W i, n, d, a for the target weight are replaced by 0 or any value close to the middle of the range of possible values.
인덱스 "a"의 축소의 적절한 순서 및 연속은 이미지의 시퀀스 내에서 숨겨진 강한 패턴들을 식별하도록 실험적으로 선택될 수 있다. 예를 들어, "a"가 0 값으로 도달할 때까지 트레이닝 동안 p-net(100)으로 도입된 모든 100개의 이미지들에 대해, 하나의 카운트에 의해 인덱스 "a"의 축소가 있을 수 있다. 이러한 경우, "a"의 값은 새로운 이미지들의 도입에 대응하여 증가할 수 있다. "a"의 증가와 축소 사이의 경쟁은 무작위 변경들이 메모리로부터 점차적으로 제거되는 상황을 유도할 수 있고, 여러번 사용되고 확인되어 왔던 보정 가중치들 Wi,n,d,a 은 저장될 수 있다. p-net(100)이 예를 들어, 동일하거나 유사한 환경과 같은 유사한 속성을 갖는 많은 이미지들 상에서 트레이닝되는 때, 자주 사용된 보정 가중치들 Wi,n,d,a 은 끊임없이 이러한 영역들에서 그들의 값과 정보를 확인하고 매우 안정하게 된다. 또한, 무작위 노이즈는 점차적으로 사라질 것이다. 다시 말하면, 인덱스 "a"에서 점차적인 감소를 갖는 p-net(100)은 효과적인 노이즈 플터로서 제공될 수 있다.The proper order and sequence of scaling of index " a " can be experimentally selected to identify strong patterns hidden within the sequence of images. For example, for all 100 images introduced into p-net (100) during training until " a " reaches zero, there may be a reduction of index " a " by one count. In this case, the value of " a " may increase corresponding to the introduction of new images. The competition between increasing and decreasing " a " can lead to a situation where random changes are gradually removed from the memory and the correction weights W i, n, d, a Can be stored. When the p-
정보의 손실이 없는 p-net(100) 트레이닝의 설명한 실시예들은 높은 용량 및 신뢰성을 갖는 p-net 메모리를 작성하는 것을 허용한다. 이러한 메모리는 심지어 "캐시 메모리" 시스템에 비해 더 높은 속도를 제공하는 대용량의 고속 컴퓨터 메모리로서 사용될 수 있으나, "캐시 메모리" 시스템을 갖는 종래와 같이 컴퓨터 비용과 복잡도를 증가시키지 않을 것이다. 공개된 데이터에 따라, 일반적으로, 신경망으로 영화를 녹화하는 동안, 메모리는 녹화 품질의 중대한 손실 없이 수십 또는 수백번 압축될 수 있다. 다시 말하면, 신경망은 매우 효과적인 기록 프로그램으로서 동작할 수 있다. p-net(100)의 고속 트레이닝 능력을 갖는 신경망의 이러한 능력을 조합하는 것은 고속 데이터 전송 시스템, 고용량을 갖는 메모리, 예를 들어 코덱스(codex)와 같은 고속 해독 프로그램 멀티미디어 파일의 작성을 허용할 것이다.The described embodiments of p-net (100) training without loss of information allow to create p-net memory with high capacity and reliability. Such memory may be used as a high-capacity high-speed computer memory that provides even higher speeds than a " cache memory " system, but will not increase the cost and complexity of the computer as is conventional with a " cache memory " system. Depending on the published data, in general, while recording a movie into a neural network, the memory may be compressed tens or hundreds of times without significant loss of recording quality. In other words, the neural network can operate as a very effective recording program. Combining this capability of a neural network with high-speed training capabilities of p-
p-net(100)에서 데이터가 보정 가중치들 Wi,n,d,a의 세트로서 저장되는 사실에 기인하여, 존재하는 방법들을 통하고 동일한 네트워크 및 키의 사용을 하지 않는 코드 레코딩, 디코딩 또는 p-net에 대한 미인가된 접근은 허용되지 않는다. 따라서, p-net(100)은 데이터 보호의 상당한 정도를 제공할 수 있다. 또한, 종래의 컴퓨터 메모리와 달리, 다른 구성들은 잃어버린 기능들을 보상하기 때문에 p-net(100)의 개별적인 저장 소자들에 대한 손상은 중요하지 않은 해로운 효과를 나타낸다. 이미지 인식 과정에서, 사용된 이미지의 내재된 패턴들은 하나 이상의 구성들에 대한 손상의 결과로서 실제적으로 왜곡되지 않는다. 앞의 것은 컴퓨터의 신뢰성을 획기적으로 향상시키고, 평상시 컨디션이 결함이 있는 것으로 고려될 수 있는 특정 메모리 블록을 사용하는 것을 허용한다. 또한, 이러한 메모리의 타입은 p-net(100)에서 치명적인 바이트들에 대해 영구적인 어드레스들의 부재로 인해 해커 공격에 대해 덜 취약하고, 다양한 컴퓨터 바이러스들에 의한 이러한 시스템의 공격에 대해 영향을 받지 않도록 할 수 있다.decode or decode the same network and key through existing methods, due to the fact that data is stored as a set of correction weights W i, n, d, a in p-net 100 Unauthorized access to p-net is not allowed. Thus, p-
트레이닝에서 사용된 다른 이미지들 사이의 유사도의 퍼센티지의 결정을 갖는 이미지 인식의 이전에 언급된 과정은 위에서 언급한 것처럼 이전에 정의된 카테고리들에 따라 이미지 분류의 과정으로서 채택될 수 있다. 미리 정의되지 않은 속성 또는 그룹으로 이미지들을 분배하는 클러스터링을 위해 기초적인 트레이닝 과정은 변경될 수 있다. 본 실시예는 다음을 포함할 수 있다:The previously mentioned process of image recognition having a determination of the percentage of similarity between different images used in training can be employed as a process of image classification according to previously defined categories as mentioned above. The underlying training process can be changed for clustering to distribute images into predefined attributes or groups. This embodiment may include the following:
● 준비된 출력 이미지들을 포함하지 않고 트레이닝에 대한 입력 이미지들의 세트의 준비● Preparation of a set of input images for training without containing prepared output images
● 기초 알고리즘에 따라 이루어진 대로 뉴런 출력 합들의 형성을 갖는 네트워크의 형성 및 트레이닝• Formation and training of networks with formation of neuron output sums as done according to the basic algorithm
● 예를 들어, 코호넨 네트워크(Kohonen network)와 유사하게 조직화될 수 있는 위너 출력(winner output), 위너 출력들의 그룹과 같은 최대 출력 합을 갖는 출력의 출력 이미지를 도출하는 선택• A choice of deriving an output image of the output with a maximum output sum, for example, a winner output that can be organized similar to a Kohonen network, a group of Winner outputs,
● 위너 출력 또는 위너 출력들의 그룹에서 최대 값을 수신하는 원하는 출력 이미지의 작성. 이와 동시에:● Creation of the desired output image that receives the maximum value from the group of winner output or winner output. At the same time:
○ 선택된 위너 출력들의 수가 예를 들어 1 내지 10의 범위에서 미리 결정되거나, 위너 출력들이 "최대 뉴런 합의 N%보다 작은 것이 없는" 률에 따라 선택될 수 있고, 여기서 "N"은 예를 들어 90-100%일 수 있고; 그리고 The number of selected Wiener outputs may be predetermined, for example in the range of 1 to 10, or the Wiener outputs may be selected according to the " no less than N% of maximum neuron sum "-100%; And
○ 모든 다른 출력들은 0과 동일하게 설정될 수 있다. All other outputs can be set equal to zero.
● 작성된 원하는 출력 이미지를 사용한 기초 알고리즘에 따른 트레이닝, 도 13; 그리고Training based on the basic algorithm using the created desired output image, Fig. 13; And
● 다른 위너들 또는 위너 그룹의 각 이미지에 대한 형성과 함께 다른 이미지에 대한 모든 절차들을 반복.• Repeat all procedures for other images with the formation of each image in another winner or winner group.
위의 방식에서 형성된 원하는 출력 이미지들의 세트는 다수의 입력 이미지들이 자연스럽게 분리되도록 클러스터들 또는 그룹들로 설명하는데 사용될 수 있다. 이러한 원하는 출력 이미지들의 세트는 수립된 기준에 따라 및 통계적 분석에서 이미지들을 선택하는 것과 같이 다양한 분류들을 작성하는데 사용될 수 있다. 앞의 것은 또한 앞서 언급한 입력 및 출력 이미지들의 전환을 위해 사용될 수 있다. 다시 말하면, 원하는 출력 이미지들은 예를 들어, 추가적인 네트워크와 같은 다른 것을 위해 입력 이미지들로서 사용될 수 있고, 추가적인 네트워크의 출력은 컴퓨터 입력을 위해 적합한 어떠한 형태로 표현된 이미지일 수 있다.The set of desired output images formed in the above manner can be used to describe clusters or groups such that multiple input images are separated naturally. This set of desired output images can be used to create various classifications, such as selecting images in accordance with established criteria and in statistical analysis. The foregoing can also be used for the conversion of the aforementioned input and output images. In other words, the desired output images may be used as input images, for example, for another network, and the output of the additional network may be an image expressed in any form suitable for computer input.
p-net(100)에서, 설명된 앞의 알고리즘으로 트레이닝의 단일 사이클의 이후, 원하는 출력 이미지들은 작은 출력 합 변화로 작성될 수 있고, 이것은 트레이닝 과정을 느리게 할 수 있고 또한 그 정확도를 줄일 수 있다. 도 21에 도시된 것처럼, p-net(100)의 트레이닝을 개선하기 위해, 포인트들의 초기 변화는 인위적으로 증가하거나 연장될 수 있어서, 포인트들의 크기의 변화는 예를 들어 -50에서 +50까지 가능한 출력값들의 전체 범위를 커버할 수 있다. 이러한 포인트들의 초기 변화의 연장은 선형이거나 비선형일 수 있다.In p-
상황은 예를 들어, 노이즈의 징후와 같이 특정 출력의 최대값이 이상점(outlier)이거나 또는 실수인 경우, 영향을 받을 수 있다. 이러한 것들은 작은 신호들의 크기에 의해 둘러싸인 최대값의 출현에 의해 분명해질 수 있다. 위닝 출력들이 선택된 때, 작은 신호값들은 위너로서 다른 큰 신호들에 의해 둘러싸인 가장 큰 신호들을 선택하는 것을 통해 무시될 수 있다. 이러한 목적을 위해, 중요도 표집(importance sampling)과 같은 분산 축소의 알려진 통계적 기법들이 사용될 수 있다. 이러한 접근은 기본적이고 가치있는 패턴들을 유지하면서 노이즈를 제거하는 것을 허용할 수 있다. 위너 그룹들의 작성은 예를 들어 도 13에서 도시된 것처럼, 하나의 이상의 클러스터에 관련된 이미지와 같은 선형적으로 불가분인 이미지들의 클러스터링을 가능하게 한다. 앞의 것은 정확도에서의 중대한 개선을 제공할 수 있고 클러스터링 에러들의 수를 줄일 수 있다.The situation can be affected if, for example, the maximum value of a particular output, such as a sign of noise, is outliers or a real number. These can be evidenced by the appearance of the maximum value surrounded by the magnitude of the small signals. When the winning outputs are selected, the small signal values can be ignored by selecting the largest signals surrounded by other large signals as winners. For this purpose, known statistical techniques of variance reduction, such as importance sampling, may be used. This approach can allow noise to be removed while maintaining basic and valuable patterns. Creation of winner groups enables the clustering of linearly indivisible images such as images associated with one or more clusters, for example as shown in Fig. The foregoing can provide significant improvements in accuracy and reduce the number of clustering errors.
p-net(100)의 과정에서 보정해야 할 통상적인 에러들은 다음과 같다:Typical errors that should be corrected in the process of p-net (100) are:
에러 보정은 또한 외부 트레이너와 함께 트레이닝할 때 상술한 알고리즘의 도움으로 가능하다.Error correction is also possible with the aid of the algorithm described above when training with an external trainer.
p-net(100)의 하드웨어 부분은 디지털, 아날로그 또는 결합된 디지털-아날로그 마이크로칩으로 구비될 수 있다. 대표적인 p-net(100) 마이크로칩은 정보의 저장 및 처리 모두에 사용될 수 있다. p-net(100) 마이크로칩은 다양한 가변 저항들, 전계효과트랜지스터들, 멤리스터들, 커패시터들, 스위칭 소자들, 전압 발생기들, 비선형 광-셀들 등을 기반으로 할 수 있다. 가변 저항들은 시냅스 가중치들(108) 및/또는 보정 가중치들(112)로서 이용될 수 있다. 다수의 이러한 저항들은 병렬, 직렬 또는 직렬 병렬로 연결될 수 있다. 각각의 저항들이 병렬로 연결된 경우, 신호는 전류 값에 의해 코딩될 수 있는데, 이는 전류의 자동화된 아날로그 합산을 용이하게 할 수 있다. 양성 또는 음성 신호들을 얻기 위해, 흥분성 및 억제성인 두 세트의 저항들이 각 시냅스 상에 제공될 수 있다. 그러한 하드웨어 구조에서, 억제성 신호들은 흥분성 신호로부터 감산될 수 있다.The hardware portion of the p-
각각의 보정 가중치(112)는 멤리스터형 디바이스(멤리스터)로서 구현될 수 있다. 당업자에게 이해되는 바와 같이, 멤리스터는 회로 내의 전류 또는 전위 또는 전하에 의해 제어되는 저항을 갖는 가변 저항이다. 적절한 멤리스터 기능은 실제 멤리스터 디바이스, 그것의 소프트웨어 또는 물리적 에뮬레이션을 통해 수행될 수 있다. 저전압 전위에서의 p-net(100)의 동작에서, 멤리스터는 간단한 저항으로서 동작할 수 있다. 트레인 모드 동안, 멤리스터의 저항은, 예를 들어, 강한 전압 펄스에 의해 변화될 수 있다. 멤리스터의 값 변화(저항의 증가 또는 감소)는 전압의 극성에 따라 달라질 수 있지만, 값 변화의 크기는 전압 펄스의 크기에 따라 달라질 수 있다.Each
도 24는 p-net(100A)으로 라벨링된 p-net(100)의 일 실시예를 도시하는데, 이는 후술될 특정 소자들(요소들)을 갖는 것 이외에, 앞에서 설명한 p-net(100)와 모든면에서 유사하다. p-net(100A)에서, 각각의 보정 가중치(112)는 특정 보정 가중치의 각 가중치를 유지하는 메모리 소자(150)에 의해 설정된다. p-net(100A)에서, 가중치 보정 계산기(122)는 대응하는 메모리 소자(150)에 의해 설정되는 보정 가중치들(112)의 각각의 보정 가중치를 변경(수정)하도록 구성될 수 있다. p-net(100A)의 다른 실시예와 일치하여, 보정 가중치(112)는 결정된 편차(128)를 사용하여 대응하는 메모리 소자(150)에서 설정된다. 도 25에 도시된 p-net(100A)의 동작동안, 모든 뉴런(116) 각 출력(117)은 p-net(100A)의 동작 출력 신호(152)를 설정하도록 각각의 뉴런 합(120)을 제공한다. 동작 출력 신호(152)는 동작 출력 이미지(154)의 일부 또는 전부를 나타내는 신호 값을 갖는다.24 illustrates one embodiment of p-net 100 labeled p-net 100A, which in addition to having the specific elements (elements) to be described below, It is similar in all respects. In p-net 100A, each
p-net(100A)의 트레이닝동안, 가중치 보정 계산기(122)는 출력 이미지(126)의 일부 또는 전체를 나타내는 원하는 출력 신호(124)를 수신하고, 원하는 출력 신호(124)의 값으로부터 뉴런 합(120)의 편차(128)를 결정하고, 그리고 결정된 편차를 사용하여 대응하는 메모리 소자에 의해 설정된 각각의 보정 가중치를 변경한다. 또한, 뉴런 합을 결정하기 위해 대응하는 메모리 소자들(150)에 의해 설정된 보정 가중치들(112)의 변경된 보정 가중치 값들을 합산하면 원하는 출력 신호 값 (124)으로부터 뉴런 합(120)의 편차를 최소화시킬 것이다. 원하는 출력 신호 값(124)으로부터 뉴런 합(120)의 편차를 최소화하는 것이 p-net(100A)을 트레이닝시키는데 사용된다.During training of p-net 100A,
도 24의 가상선으로 도시된 바와 같이, 임의의 개시된 실시예의 트레이닝된 p-net(100A)는 대응하는 부가적인 원하는 출력 신호(158)와 함께 값을 갖는 보조 입력 신호(156)만을 사용하여 보충 트레이닝을 수신하도록 구성될 수 있다. 즉, 이전에 트레이닝된 p-net(100A)은 원래의 입력 신호들(104) 및 p-net(100A)을 초기에 트레이닝시키는 데 사용된 원하는 출력 신호들(124)의 일부 또는 전부로 재트레이닝되지 않고 보충 트레이닝을 수신할 수 있다. p-net(100A) 내의 다수의 시냅스들(118) 각각은 각각의 메모리 소자들(150)에 의해 설정된 하나 이상의 추가 보정 가중치들(112)을 수용하도록 구성될 수 있다. 이러한 추가적인 보정 가중치들(112)은 트레이닝동안 또는 p-net(100A)의 보충 트레이닝 이전에 시냅스에 추가될 수 있다. 그러한 추가적인 보정 가중치들(112)은 p-net(100A)을 트레이닝시키고 동작시키기 위해 이용 가능한 다수의 메모리 소자(150)의 수를 확장하는데 사용될 수 있다.As shown by the phantom lines in Fig. 24, the trained p-net 100A of any disclosed embodiment is supplemented using only the
p-net(100A)은 p-net(100A)의 트레이닝동안 또는 후에 각각의 시냅스들(118)로부터 각각의 메모리 소자들(150)에 의해 설정된 하나 이상의 보정 가중치들(112)을 제거하도록 구성될 수도 있다. 일부 보정 가중치들(112)의 제거는 신경망이 신경망을 동작시키는데 필요한 수의 메모리 소자만을 보유하도록 허용할 수 있다. 보정 가중치들(112)을 제거하는 이러한 능력은 p-net을 더욱 소형화하여 트레이닝 및 후속 동작에보다 효율적으로 하기 위한 것이다. p-net(100A)은 또한 p-net의 트레이닝 이전 또는 트레이닝 중에 각각의 추가 뉴런 출력들(117) 및 추가 시냅스들(118)과 함께 추가 입력들(102), 추가 뉴런들(116)을 허용하도록 구성될 수 있음으로써, p-net의 동작 파라미터들을 확장한다. 이러한 p-net(100A) 에의 추가들은 용량, 출력의 정밀도 및 p-net에 의해 처리될 수 있는 태스크의 개수와 같은 능력을 향상시킬 수 있다.p-net 100A is configured to remove one or
p-net(100A)은 초기 트레이닝 또는 보충 트레이닝 이전, 도중 또는 후에 각각의 추가 뉴런 출력들(117) 및 시냅스들(118)과 함께 임의의 수의 사용되지 않은 입력들(102), 뉴런들(116)을 제거하도록 추가로 구성 될 수 있다. 이와 같이 사용되지 않는 p-net(100A)의 요소를 제거하는 능력은 구조를 단순화하고 p-net의 출력 품질 저하없이 p-net의 동작 파라미터를 변경하는 즉, p-net을 압축(condense )하는 것을 목적으로 한다.The p-net 100A may include any number of
도 26에 도시된 바와 같이, 저항, 임피던스, 용량, 자기장, 인덕션, 또는 전계 강도와 같은 각각의 보정 가중치(112)의 가중치 값을 정의하도록 구성된 전기적 및/또는 자기적 특성을 특징으로 하는 전기 부품 또는 디바이스(160)에 의해 각각의 메모리 소자(150)가 설정될 수 있다. 이러한 전기 디바이스(160)는, 예를 들어, 멤리스터(도 26 내지도 28에 도시됨), 저항(도 29 내지 도 32에 도시됨), 트랜지스터, 커패시터(도 29 내지 도 32에 도시됨), 전계효과트랜지스터, 광저항 또는 광 의존성 저항(LDR), 자성의존성저항(MDR), 또는 메미스터(memistor)를 포함할 수있다. 당업자에 의해 이해되는 바와 같이, 메미스터는 논리 동작을 수행하고 정보를 저장할 수 있는 메모리를 갖는 저항이며, 일반적으로 멤리스터의 3단자 구현이다.The electrical components and / or the magnetic characteristics configured to define the weight values of the
메모리 소자(150)의 이러한 실시예에서, 각각의 전기 디바이스(160)의 각각의 전기적 및/또는 자기적 특성은 p-net(100A)의 트레이닝 동안 변경되도록 구성될 수 있다. 또한, 메모리 소자(150)의 전기 디바이스(160) 실시예를 사용하는 p-net(100A)에서, 가중치 보정 계산기(122)는 p-net(100A)에 의해 채용된 대응하는 디바이스들의 각각의 전기적 및/또는 자기적 특성을 변화시킴으로써 각각의 보정 가중치들(112)의 값들을 변경할 수 있다. 각각의 전기 디바이스(160)는 또한 전술한 바와 같이 p-net(100A)의 트레이닝동안 변경된 각각의 보정 가중치(112)의 값에 대응하는 전기적 및/또는 자기적 특성을 유지 또는 보유하도록 구성될 수 있으며, 트레이닝 이후 p-net의 동작 중에 사용될 수 있다. In this embodiment of the
적절한 멤리스터의 특정 실시예들은 소프트웨어 또는 전기 회로 기능적 표현물 또는 그의 균등물 뿐만 아니라 디바이스의 공지된 물리적 표현물일 수 있다. 도 26-28은 그러한 물리적 멤리스터들을 사용하는 대표적인 p-net(100A)의 실시예를 도시한 것이다. 도 26에 도시된 바와 같이, 각각의 입력(102)은 아날로그 입력 신호(104)를 수신하도록 구성되되, 이미지 센서, 감광 소자들 또는 마이크로폰들, 디지털-아날로그 컨버터 등과 같은 외부 소스로부의 입력 신호들은 전압들 V1, V2 ... Vm으로 표현된다. 모든 입력 신호들(104)은 함께 대응하는 입력 이미지(106)를 일반적으로 기술한다.Certain embodiments of suitable memristors may be software or electrical circuit functional representations or equivalents thereof, as well as known physical representations of the device. Figures 26-28 illustrate an exemplary embodiment of p-net (100A) using such physical memristors. 26, each
각각의 메모리 소자(150)는 또한 전기 저항들(164)을 갖는 블록(162)에 의해 설정될 수 있다. 전기 저항들(164)을 갖는 이러한 블록(162)은 선택기 디바이스(166)를 포함할 수 있다. 선택기 디바이스(166)는 전술한 바와 같이 각각의 보정 가중치(112)를 설정하기 위해 원하는 출력 신호(124)의 값으로부터 뉴런 합(120)의 결정된 편차(128)를 사용하여 블록(162)으로부터 하나 이상의 전기 저항들(164)을 선택하도록 구성된다. 또한, 전기 저항들(164)을 갖는 블록(162)에 의해 설정된 각각의 메모리 소자(150)는 전기 커패시터들(168)을 또한 포함할 수 있다. 다른 말로, 각각의 메모리 소자(150)는 전기적 커패시터들(168) 뿐만 아니라 전기 저항들(164)을 갖는 블록(162)에 의해 설정될 수 있다. 이러한 경우에, 선택기 디바이스(166)는 각각의 보정 가중치(112)를 설정하기 위해 결정된 편차(128)를 사용하여, 전기 저항들(164) 뿐만 아니라 커패시터들(168)을 선택하도록 부가적으로 구성될 수 있다.Each
도 24 및 도 25에 도시된 p-net(100A)의 실시예 각각은 아날로그, 디지털 및 디지털-아날로그 신경망 중 하나로 구성될 수 있다. p-net(100A)의 그러한 실시예에서, 임의의 다수의 입력들(102), 다수의 시냅스들(118), 메모리 소자들(150), 분배기들의 세트(114), 뉴런들의 세트(116), 가중치 보정 계산기(122), 및 원하는 출력 신호들(124)은 아날로그, 디지털 및 디지털-아날로그 포맷으로 동작하도록 구성될 수 있다. 도 26은 원하는 출력 신호(124)의 값으로부터 뉴런 합(120)의 편차(128)를 결정하는 것으로 결론을 내리는 트레이닝의 제 1 단계에서의 p-net(100A)을 도시하고, 도 27은 제 2 단계에서 p-net(100A)이 전기 디바이스들(160)에 의해 설정된 보정 가중치들(112)에 대한 보정 신호들(170)의 형성으로 결론나는 것을 도시한다. 도 26에 도시된 바와 같이, 각각의 시냅스(118)는 다수의 입력들(102) 중 하나에 연결되고, 보정 가중치들(112)로서 기능하는, 멤리스터들로 도시된, 다수의 전기 디바이스들(160)을 포함한다.Each of the embodiments of p-net (100A) shown in Figs. 24 and 25 may be configured as one of analog, digital, and digital-analog neural networks. In such an embodiment of p-net 100A, any number of
도 26에 도시된 p-net(100A)는 또한 분배기들 세트(114)를 포함한다. 각각의 분배기(114)는 적절한 보정 가중치(112)를 설정하는, 멤리스터들로 구성된, 전기 디바이스들(160)의 세트를 통해 각각의 입력 신호(104)를 수신하기 위해 다수의 입력들(102) 중 하나에 동작 가능하게 연결된다. 또한, 각각의 분배기(114)는 입력 전압과 상관하여 이용 가능한 다수의 보정 가중치들로부터 멤리스터들에 의해 구현된 하나 이상의 보정 가중치들(112)을 선택하도록 구성된다. 도 28은 쌍둥이 평행 분기들로 배열된 멤리스터들로서 구성된 전기 디바이스들(160)을 사용하는 p-net(100A)을 도시한다. 상기 언급된 p-net(100A)의 구성을 위한 다른 해결책과 관련하여, 도 29-31은 p-net(100A)에서 적절한 저항을 정의하기 위한 공통 저항으로 구성된 전기 디바이스들(160)을 도시한다; 반면 도 32는 p-net(100A)에서 임피던스를 정의하도록 구성된 전기 디바이스들(160)을 도시한다.The p-net 100A shown in Fig. 26 also includes a set of
아날로그 또는 아날로그-디지털 망으로서 구성된 p-net(100A)에서, 각각의 입력(102)은 아날로그 또는 디지털 입력 신호(104)를 수신하도록 구성되되, 입력 신호들은 도 24 및 도 25에서 I1, I2 ... Im으로 표시된다. 각각의 입력 신호 I1, I2 ... Im은 입력 이미지(106)의 일부 아날로그 특성(들 값), 예를 들어, 크기, 주파수, 위상, 신호 편광 각도 등을 나타낸다. 아날로그 p-net(100A)에서, 각각의 입력 신호(104)는 입력 아날로그 값을 갖되, 함께 다수의 입력 신호들(104)은 일반적으로 아날로그 입력 이미지(106)를 나타낸다. 아날로그 망으로서 구성된 p-net(100A)에서, 각각의 뉴런(116)은 직렬 또는 병렬 통신 채널(172), 예를 들어, 전기 와이어 또는 직렬 또는 병렬 버스 중 어느 하나에 의해 설정될 수 있다. 통신 채널(172)의 대표적인 버스 실시예는 당업자가 이해하는 바와 같이, 병렬 및 비트 직렬 연결들 모두를 사용할 수 있다. 예를 들어, 대응 아날로그 신호들이 전류를 통해 제공되는 경우, 통신 채널(172)은 직렬 전류 버스일 수 있고, 대응 아날로그 신호들이 각각의 보정 가중치(112) 상의 전위를 통해 제공되는 경우, 대표적인 통신 채널은 병렬 버스일 수 있다.Analog or analog-p-net (100A) is configured as a digital network, each
보정 가중치(112)의 아날로그 실시예가 도 26-32에 도시되어있다. 각각의 아날로그 보정 가중치(112)는 특정 보정 가중치의 각 가중치를 유지하고 순방향 신호들 (입력에서 출력으로) 또는 역방향 신호들 (출력에서 입력으로) 상에 작용하여 변경하는 메모리 소자(150), 또는 제어 신호를 통해 흐르는 추가적인 제어 신호에 의해 정의된다. 또한, 각각의 아날로그 보정 가중치(112)는, 예를 들어, 이미지 인식 동안 p-net(100A)의 실제 동작 동안 그 각각의 가중치를 유지할 수 있다. 또한, 각각의 아날로그 보정 가중치(112)의 값은 순방향 신호들 또는 역방향 신호들 또는 추가 제어 신호 중 어느 하나를 통해 p-net(100A)의 트레이닝 중에 변경될 수 있다. 결과적으로, p-net(100A)의 아날로그 실시예는 다양한 컴퓨터 애플리케이션의 지원을 허용하는 마이크로칩의 생성을 가능하게 할 수 있다. 또한, 전체 p-net(100A)은 마이크로 칩, 비디오 카드 등과 같은 메모리를 갖는 전자 디바이스에 프로그래밍될 수 있다. 따라서, 각 메모리 소자(150)의 적절한 실시예는 또한 대상 전자 디바이스의 메모리에 저장될 것이다.An analog embodiment of the
상기와 일치하여, 아날로그 p-net(100A) 내의 각각의 전기 디바이스(160)는 p-net의 트레이닝 후에 각각의 보정 가중치(112)의 변경된 값에 대응하는 전기적 및/또는 자기적 특성을 복원하도록 구성될 수 있다. 가중치 보정 계산기(122)는 원하는 출력 신호(124)의 값으로부터 뉴런 합(120)의 결정된 편차(128)를 나타내는 하나 이상의 보정 신호를 생성하도록 구성될 수 있다. 또한, 생성된 보정 신호들 각각은 적어도 하나의 전기 디바이스의 전기적 및/또는 자기적 특성, 즉 변경되는 각각의 디바이스에 사용되는 개별 보정 신호를, 변경하는데 사용될 수 있다. 또한, 가중치 보정 계산기(122)는 각각의 전기 디바이스(160)의 전기적 및/또는 자기적 특성을 변화시키는 데 사용되는 단일 보정 신호를 생성하도록 구성될 수 있다. 즉, 변경되는 모든 전기 디바이스에 대해 하나의 보정 신호가 사용될 수 있다.Consistent with the above, each
가중치 보정 계산기(122)의 특정 실시예들은 프로그래밍된 소프트웨어로서 p-net(100A)에 내장되거나 또는 외부 디바이스들 또는 접근 가능한 컴퓨터 프로그램을 통해 설정될 수 있다. 예를 들어, 가중치 보정 계산기(122)는 한 세트의 차동 증폭기들(174)로서 설정될 수 있다. 전체적인 개시와 일치하여, 이러한 각각의 차동 증폭기(174)는 원하는 출력 신호(124)의 값으로부터 뉴런 합(120)의 결정된 편차(128)를 나타내는 각각의 보정 신호를 생성하도록 구성될 수 있다. 각 전기 디바이스(160)는 p-net(100A)의 트레이닝이 완료된 후에 각각의 보정 가중치(112)의 변경된 값에 대응하는 전기적 및/또는 자기적 특성을 유지하도록 구성될 수 있다. 또한, p-net(100A)는 p-net의 동작 동안, 즉 트레이닝이 완료된 후에도 유지 된 전기적 및/또는 자기적 특성을 사용하도록 구성될 수 있다. 이러한 p-net(100A)의 구조는 보정 가중치(112)의 병렬 또는 일괄 트레이닝을 용이하게 하고, 이에 의해 전술한 종래의 신경망과 비교하여 p-net을 트레이닝시키는데 필요한 시간의 상당한 감소를 가능하게한다.Certain embodiments of the
p-net(100A)의 각각의 분배기(114)는 단일 입력 신호(104)를 취하여 하나 이상의 다중 데이터-출력-라인들을 선택하는 아날로그, 디지털 또는 아날로그-디지털 디바이스로서 구성될 수 있는데, 이는 단일 입력, 즉, 디멀티플렉서(176)에 연결된다. 이러한 디멀티플렉서(176)는 수신된 입력 신호(104)에 응답하여 다수의 보정 가중치들로부터 하나 이상의 보정 가중치(112)를 선택하도록 구성될 수 있다. 각각의 분배기(114)는 수신된 입력을 바이너리 코드로 변환하고 바이너리 코드와 관련하여 다수의 보정 가중치들로부터 하나 이상의 보정 가중치들(112)을 선택하도록 구성될 수 있다.Each
도 33은 (도 25에 도시된) 유틸리티 신경망(100B)을 동작시키는 방법(300)을 도시한다. 방법(300)은 도 2 내지 22 및 24 내지 32에 관한 상기 개시 내용에 따라 동작한다. 방법(300)은 프레임(302)에서 시작하며, 이 방법은 유틸리티 신경망(100B)을 제공하는 단계를 포함한다. 프레임(302) 이후, 방법은 프레임(304)으로 진행한다. 프레임(304)에서, 방법은 트레이닝 동안 p-net(100A)과 같은 별도의 유사 신경망에 의해 설정된 보정 가중치(112)의 변경된 값을 사용하여 유틸리티 신경망(100B)을 통한 데이터 프로세싱을 포함한다. 유사한 p-net(100A)의 트레이닝은 도 24와 관련하여 전술한 바와 같은 보충 트레이닝을 포함할 수 있다.Figure 33 shows a
유틸리티 신경망(100B) 및 트레이닝된 별도의 p-net(100A)는, 예를 들어 도 25에 나타낸 바와 같이 매칭 신경망 구조를 가짐으로써 유사하게 만들어질 수 있어서, 유틸리티 신경망(100B)은 유틸리티 신경망을 트레이닝하도록 가중치 보정 계산기(122) 및 대응 능력을 배제할 수 있다. 따라서, 매칭 신경망 구조는 동일한 개수의 입력들(102), 보정 가중들(112), 분배기들(114), 뉴런들(116), 뉴런 출력들 (117) 및 시냅스들(118)을 포함할 수 있다. The utility
환언하면, 보정된 보정 가중치들(112)을 설정함으로써 트레이닝될 p-net(100A)의 능력인 가장 큰 기능적 차이를 갖는, 망의 동작 파라미터들을 설정하는 모든 특징에 대해 p-net(100A)과 유틸리티 신경망(110B)은 실질적으로 동일할 수 있다. 유사 p-net(100A) 및 유틸리티 신경망(100B)은 각각 예를 들면 아날로그 및/또는 디지털 포맷뿐만 아니라 하드웨어 및/또는 소프트웨어의 다양한 형태로 구별되는 구성들로 구현될 수 있어, 유틸리티 신경망 및 유사한 p-net이 다른 캐리어들로 대표된다. 그러한 경우에, 트랜스레이터(도시되지 않음)는 변경된 보정 가중치(112)로 데이터를 변환하거나 해석하기 위해 사용될 수 있다.In other words, p-net (100A) and p-net (100A) are used for all features that set the operating parameters of the network, with the greatest functional difference being the ability of p-net 100A to be trained by setting the corrected
유틸리티 신경망(100B) 및 트레이닝된 별도의 p-net(100A) 각각에서, 각각의 보정 가중치(112)는 메모리 소자(150)에 의해 설정될 수 있다. 구체적으로는, p-net(100A)에서, 메모리 소자(150)는 p-net의 트레이닝에 후속하는 보정 가중치(112)에 대응하는 각각의 수정된 가중치를 보유할 수 있다. 유틸리티 신경망(100B)에 제공되는 각각의 입력 이미지(106)는 도 2와 관련한 설명과 동일한 I1, I2 ... Im으로 표현된 결합 입력 신호들(104)로 표현될 수 있다. 도 2와 관련하여 추가로 논의된 바와 같이, 각각의 입력 신호 I1, I2, ..., Im은 대응 입력 이미지(106)의 몇몇 특성 (들)의 값을 나타낸다.In each of the utility
프레임(304)에서 방법은 프레임(306)으로 진행한다. 프레임(306)에서 방법은 도 25와 관련하여 설명된 바와 같이 변경된 보정 가중치(112)를 사용하여 동작 출력 신호(152)를 설정하는 단계를 포함한다. 따라서, 유틸리티 신경망(100B)을 통한 입력 이미지(106)와 같은 입력 데이터의 프로세싱은 그러한 데이터의 인식 및 유틸리티 신경망의 연산 출력 신호(152)와 함께 완성될 수 있다. 그런 다음 유틸리티 신경망(100B)의 동작 출력 신호(152)는 방법을 완료하기 위해 유틸리티 신경망 자체 또는 프레임(308)의 일부로서 유틸리티 망의 오퍼레이터에 의해 해석되거나 디코딩될 수 있다. p-net(100A)에서 변경된 보정 가중치들(112)의 설정은 도 23과 관련하여 기술된 바와 같이 p-net(100)를 트레이닝하는 방법(200)에 따라 달성될 수 있다.In
도 34 및 도 35는 p-net(100B)으로 라벨링된 p-net(100)의 일 실시예를 도시하며, 이는 후술될 특정 소자(요소)들을 갖는 것 이외에는 전술한 p-net(100)과 모든 면에서 유사하다. 또한, 도 34 및 도 35에 도시된 p-net(100B)은 어레이 구조를 사용하여 다른 이미지들의 후속 인식을 위해 선택된 이미지들로 동작하도록, 즉, 트레이닝되도록 구성된다. 본 명세서에서 사용되는 용어 "이미지"는 신경망에 의해 처리되거나 생성되도록 수신된 임의의 유형의 정보 또는 데이터를 나타내는 것으로 의도된다. 도 36에서, 트레이닝된 p-net(100B)는 도면 부호 100C를 통해 지정된다. p-net(100B)이 트레이닝되는 경우, 입력 이미지(106)는 트레이닝 이미지로서 정의되고, 트레이닝된 p-net(100C)에서는 입력 이미지(106)가 인식되도록 의도된다. p-net(100B)의 트레이닝 동안, 즉, 다수의 입력에 의해 수신된 후, 트레이닝 이미지들(106)이 트레이닝 입력 값 어레이(107)로서 다수의 입력들(102)에 의해 수신되거나, 또는 트레이닝 입력 값 어레이(107)로서 코드화(코딩)된다.Figures 34 and 35 illustrate one embodiment of a p-net 100 labeled p-net 100B, which is similar to the p-net 100 described above except that it has certain elements to be described below. It is similar in all respects. In addition, the p-net 100B shown in Figs. 34 and 35 is configured to operate, i.e., train, with images selected for subsequent recognition of other images using an array structure. As used herein, the term " image " is intended to represent any type of information or data received or processed by a neural network. 36, the trained p-net 100B is designated at 100C. When the p-net 100B is trained, the
다른 실시예들과 유사하게, 도 34-36에 도시된 p-net(100B) 및 p-net(100C) 각각은 또한 시냅스 (118)를 포함하되, 각각의 시냅스(118)는 다수의 입력들(102) 중 하나에 연결되고, 다수의 보정 가중치들(112)을 포함할 수 있고, 또한 시냅스 가중치(108)를 포함할 수 있다. 모든 시냅스(118)의 보정 가중치(112)는 즉, 보정 가중치 어레이(119A)의 형태로 구성된다. 따라서, 도 34 내지 도 36에서, 보정 가중치 어레이(119A)는 점선 박스(119A) 내의 모든 보정 가중치(112)를 포함한다. p-net(100B)은 한 세트의 분배기들(114)을 포함할 수도 있다. 이러한 실시 예에서, 각각의 분배기(114)는 각각의 입력 신호(104)를 수신하기 위해 다수의 입력들(102) 중 하나에 동작 가능하게 연결된다. 보정 가중치 어레이(119A)를 포함하는 p-net(100B)의 실시예는 또한 뉴런 유닛의 구성 요소들 중 일부를 유지하면서 별개의 뉴런 유닛(119)이 부재함으로써 특징될 수 있다.Similar to other embodiments, each of p-net 100B and p-net 100C shown in Figs. 34-36 also includes a
이전에 기술된 p-net(100) 및 p-net(100A)과 유사하게, p-net(100B)은 추가로 한 세트의 뉴런(116)을 포함하며, 이하에서 상세히 설명되는 동작들을 실행하기위한 수단이다. 각각의 뉴런(116)은 또한 적어도 하나의 출력(117)을 가지며 하나의 시냅스(118)를 통해 다수의 입력들(102) 중 적어도 하나와 연결된다. 각각의 뉴런(116)은 마찬가지로 각각의 뉴런(116)에 연결된 각 시냅스(118)로부터 선택된 보정 가중치(112)의 값을 합산하여 뉴런 합 어레이(120A)를 생성하여 출력하고, 그렇치 않으면 ∑n으로 지정된다. 본 실시예에서, 도 34 내지 도 36에 도시된 바와 같이, 별개의 분배기(114)가 주어진 입력(102)의 각 시냅스(118)에 유사하게 사용될 수 있다. 대안으로, 하나의 분배기가 모든 시냅스(도시 생략)에 대해 사용될 수 있다. p-net(100B)의 형성 또는 설정 동안, 모든 보정 가중치(112)는 초기 값으로 할당되는데, 이는 도 35에 도시된 바와 같이, p-net 트레이닝의 프로세스 동안 변경될 수 있다. 보정 가중치(112)의 초기 값은 사전 결정된 수학 함수의 도움으로 계산되고, 미리 결정된 템플리트로부터 선택되는 등 임의적으로 선택될 수 있다. 보정 가중치들(112)의 초기 값들은 각각의 보정 가중치(112)에 대해 동일하거나 별개일 수 있고 또한 0 일 수도 있다.Similar to the previously described p-
도 34 및 도 35에 도시된 바와 같이, p-net(100B)는 또한 p-net(100B)의 트레이닝을 조절하도록 구성된 컨트롤러(122A)를 포함하며, 이하에서 상세히 설명되는 동작을 실행하기 위한 수단이다. 컨트롤러(122A)는 다른 실시예들에 대해 전술한 가중치 보정 계산기(122)를 포함할 수 있다. 이하에서 상세하게 설명되는 태스크를 적절하게 수행하기 위해, 컨트롤러(122A)는 적어도 일부가 실재적이고 일시적이지 않은 메모리를 포함한다. 컨트롤러(122A)의 메모리는 컴퓨터 판독 가능 데이터 또는 처리 명령을 제공하는데 참여하는 기록 가능한 매체일 수 있다. 그러한 매체는 비 휘발성 매체 및 휘발성 매체를 포함 하나 이에 한정되지 않는 많은 형태를 취할 수 있다. 컨트롤러(122A)용 비 휘발성 매체는 예를 들어 광 또는 자기 디스크 및 다른 영구 메모리를 포함할 수 있다. 휘발성 매체는 예를 들어 주 메모리를 구성 할 수 있는 DRAM(dynamic random access memory)을 포함할 수 있다. 이러한 명령은 컴퓨터의 프로세서에 연결된 시스템 버스를 포함하는 동축 케이블, 구리 와이어 및 광섬유를 포함하는 하나 이상의 전송 매체에 의해 전송될 수 있다.34 and 35, the p-net 100B also includes a
컨트롤러(122A)의 메모리는 또한 적절한 매체, 예를 들어 자기 또는 광학 매체를 포함할 수 있다. 컨트롤러(122A)는 고속 클록, 필수 아날로그-디지털(A/D) 및/또는 디지털-아날로그(D/A) 회로, 필요한 입력/출력 회로 및 디바이스들(I/O)은 물론 적절한 신호 컨디셔닝 및/또는 버퍼 회로를 포함할 수 있다. 컨트롤러(122A)에 의해 요구되거나 이에 의해 액세스 가능한 알고리즘은 메모리에 저장되고 자동적으로 실행되어 이하에 상세히 설명된 요구되는 기능을 제공할 수 있다.The memory of the
컨트롤러(122A)는 보정 가중치들(112)을 보정 가중치 어레이(119A)로 조직하도록 프로그램될 수 있다. 컨트롤러(122A)는 또한 원하는 출력값 어레이(126A)로서 조직화된 원하는 이미지들 또는 출력 신호들(124)을 수신하도록 구성된다. 컨트롤러(122A)는 추가로 원하는 출력값 어레이로부터 뉴런 합 어레이(120A)의 편차(128)를 결정하고 편차 어레이(132)를 생성하도록 구성된다. 컨트롤러(122A)는 또한 결정된 편차 어레이(132)를 사용하여 보정 가중치 어레이(119A)를 변경하도록 구성된다. 이러한 경우에, 뉴런 합 어레이(120A)를 결정하기 위해 변경된 보정 가중치 값을 가산함으로써 트레이닝된 보정 가중치 어레이(134A)를 생성하기 위해 원하는 출력값 어레이(126A)로부터 뉴런 합 어레이(120A)의 편차(128)가 감소된다(도 36에 도시됨). 도 34 및 도 35에 도시된 보정 가중치 어레이(119A)와 유사하게, 트레이닝 된 보정 가중치 어레이(134A)는 점선 박스(134A) 내의 모든 보정 가중치들(112)을 포함한다. 또한, 도 36에 도시되고 도 34 및 도 35의 보정 가중치 어레이(119A)와 유사하게, 트레이닝된 보정 가중치 어레이(134A)는 점선 박스(119A) 내의 모든 트레이닝된 보정 가중치들(112A)을 포함하고 그것과 관련된 분배기들(114)을 포함할 수 있다. 따라서, 뉴런 합 어레이(120A)의 최소화된 편차(128)는 p-net(100B)에 의해 생성된 에러를 보상한다. 또한, 생성된 트레이닝된 보정 가중치 어레이(134A)는 p-net(100B)의 동시 또는 병렬 트레이닝을 용이하게 한다.
도 35에 도시된 트레이닝된 p-net(100C)에서, p-net에 대한 다수의 입력들 (102)은 입력 이미지들(106)을 수신하도록 구성될 수 있다. 이러한 입력 이미지들(106)는 입력 값 어레이(107A)로서 수신되거나 또는 p-net(100B)에 의한 이미지의 인식 중에 입력 값 어레이(107A)로서 코드화(코딩)될 수 있다. 각각의 시냅스(118)는 다수의 트레이닝된 보정 가중치(112A)를 포함할 수 있다. 또한, 각각의 뉴런(116)은 각각의 뉴런에 연결된 각 시냅스(118)에 대응하는 트레이닝된 보정 가중치들(112A)의 가중치 값들을 합산하도록 구성될 수 있어, 다수의 뉴런들이 인식된 이미지 어레이(136)를 생성하도록 하여, 입력 이미지들(106)의 인식을 제공한다. 분배기(114)를 포함하는 트레이닝된 p-net(100B) 및 실시예에서, 분배기는 트레이닝 및 입력 이미지들(106)을 각각의 트레이닝 입력 값 어레이(107) 및 입력 값 어레이(107A)로서 코드화하도록 구성될 수 있다. 따라서, 그러한 세트의 분배기(114)는 각각의 트레이닝 및 입력 이미지들 (106) 각각을 수신하기 위해 다수의 입력들(102)에 동작 가능하게 연결된다. 전술한 동작은 구조화된 매트릭스들, 특히 트레이닝된 보정 가중치 어레이(134A) 대신에 트레이닝된 보정 가중치 매트릭스를 사용하여 수행될 수 있으며, 이는 이하에서 상세히 설명될 것이다.In the trained p-net 100C shown in Fig. 35, a plurality of
컨트롤러(122A)는 추가로 원하는 출력값 어레이(126A)로부터 뉴런 합 어레이(120A)의 타겟 편차 또는 타겟 편차 어레이(138)의 어레이로 프로그래밍될 수 있다. 또한, 컨트롤러(122A)는 원하는 출력값 어레이(126A)로부터 뉴런 합 어레이(120A)의 편차(128)가 타겟 편차 어레이(138)의 수용 가능한 범위(139) 내에 있을 때 p-net(100B)의 트레이닝을 완료하도록 구성될 수 있다. 수용 가능한 범위(139)는 타겟 편차 어레이(138)의 최대 또는 최소값 또는 타겟 편차 어레이(138)의 평균값에 대해 참조될 수 있다. 대안으로, 컨트롤러(122A)는 편차(128)의 감소 속도 또는 트레이닝 입력 값 어레이(107)와 원하는 출력값 어레이(126A)의 수렴 속도가 소정의 속도 값(140)으로 떨어질 때 p-net(100B)의 트레이닝을 완료하도록 구성될 수 있다. 수용 범위(139) 및/또는 소정 속도 값 140)은 컨트롤러(122A)에 프로그래밍 될 수 있다.The
트레이닝 입력 값 어레이(107), 입력 값 어레이(107A), 보정 가중치 어레이(119A), 뉴런 합 어레이(120A), 원하는 출력값 어레이(126A), 편차 어레이(132), 트레이닝된 보정 가중치 어레이(134A), 인식된 이미지 어레이(136) 및 타겟 편차 어레이(138), 즉, 그것들에서의 파라미터 값들은, 각각, 트레이닝 입력 값 매트릭스(141), 입력 값 매트릭스(141A), 보정 가중치 매트릭스(142), 뉴런 합 매트릭스(143), 원하는 출력값 매트릭스(144), 편차 매트릭스(145), 트레이닝된 보정 가중치 매트릭스(146), 인식된 이미지 매트릭스(147), 및 타겟 편차 매트릭스(148)로 조직화될 수 있다. 각각의 어레이(107, 107A, 119, 120, 126, 132, 134, 136 및 138)에서, 각각의 파라미터들의 값은 예를 들어 프로세서 액세스 가능한 데이터 테이블의 형태로 구성될 수 있으며, 각각의 매트릭스들(141, 141A, 142, 143, 144, 145, 146, 147 및 148)의 값들은 그들의 결합들 뿐만 아니라 각각의 매트릭스에 대수 매트릭스 연산을 개별적으로 적용할 수 있도록 특별히 구성되어 있다. 매트릭스들(141, 141A, 142, 143, 144, 145, 146, 147 및 148)은 도면들에 구체적으로 도시되지는 않았지만, 그렇게 조직화될 때 각각의 어레이들(107, 119, 120, 126, 132, 134, 136, 및 138)에서 발생되는 것으로 이해되어야 한다.A
아래의 예에서 설명의 편의를 위해 특정 매트릭스가 임의의 수의 열과 행으로 표시된다. 예를 들어, 트레이닝 이미지는 입력 트레이닝 매트릭스 |I|에서 수신 및/또는 조직될 수 있다 :In the following example, a particular matrix is displayed in any number of columns and rows for convenience of explanation. For example, a training image may be represented by an input training matrix | I | / RTI > may be received and / or organized in:
이어서, 트레이닝 입력 이미지 매트릭스 컨트롤러(122A)를 통해 트레이닝 입력 값 매트릭스(141)로 변환될 수 있고, 이는 매트릭스 |C|로 표현된다. 각 매트릭스 |C|는 입력 "I"의 수에 해당하는 수의 열을 갖지만 특정 수의 간격들 "i"와 이미지들의 수에 해당하는 행 수를 고려한다.Then, the training input image by a matrix controller (122A) may be converted into a training
매트릭스 |C|에서, 간격들 "i"는 트레이닝 중에 사용될 특정 보정 가중치(112)로 식별된다. 간격들 "i"에 대응하는 열에서, 신호의 값들은 특정 신호가 특정 간격에서 사용될 것이라는 것을 나타내기 위해 일(1)로 대체될 수 있는 반면, 대상 신호에 대한 다른 간격에서는 신호의 값이 특정 간격이 고려되지 않음을 나타 내기 위해 영(0)으로 대체된다.Matrix | C | , The intervals " i " are identified by a
예시적인 보정 가중치 매트릭스(146)은 아래에 도시된 매트릭스 |W|로서 형성될 수 있다:An exemplary calibration weight matrix 146 is a matrix shown below: | W | / RTI >
뉴런 합 매트릭스(143)는 아래 도시된 매트릭스 |Σ|로 표현될 수 있다:Neurons sum matrix 143 is a matrix shown below | Σ | Can be expressed as:
원하는 출력값 매트릭스(144)은 아래 도시된 매트릭스 |O|로서 형성될 수 있다:Desired
뉴런 합 매트릭스(143)의 편차(128)는 아래 매트릭스 |E|로 표현되는 편차 매트릭스(148)를 생성할 수 있도록 원하는 출력값 매트릭스(144)로부터 결정될 수 있다:The
아래 매트릭스 |W|로 표시되는 보정 가중치 매트릭스(142)는, 결정된 편차 매트릭스(145)를 이용하여 변경될 수 있는데, 이는 변경된 보정 가중치(112) 값을 가산하여 뉴런 합 매트릭스(143)를 결정하도록 하여 매트릭스 |W trained |로서 표시되는, 트레이닝된 보정 가중치 매트릭스(146)를 생성하도록 원하는 출력 값 매트릭스(144)로부터 뉴런 합 매트릭스(143)의 편차를 최소화한다. 매트릭스 |W trained |는 식 |W trained | = |W| + |∇W| 에 따라 유도된다(여기서, 인자 |∇W|는 이하에서 상세히 기술될 것이다):Matrix below | W |
전술한 바와 같이, 트레이닝된 보정 가중치 어레이(134A) 및 트레이닝된 보정 가중치 매트릭스(146)의 형성은 p-net(100B)의 동시 트레이닝을 용이하게 한다.As described above, the formation of the trained
트레이닝된 p-net(100C)를 이용하는 이미지 인식(도 36에 도시됨)의 실시예에서, 입력 이미지들(106)의 배치의 동시 인식은 전술한 매트릭스 동작을 이용하여 제공될 수 있다. 특히, 트레이닝된 p-net(100C)은 2차원 n × k 매트릭스 |W|로 표현될 수 있는 보정 가중치 어레이이며, 여기서 "n"은 뉴런(116)의 수이고, "k"는 특정 뉴런에서 보정 가중치(112)의 수이다. 매트릭스 |W|는 일반적으로 다음과 같이 나타낼 수 있다:In an embodiment of image recognition (shown in FIG. 36) using a trained p-net 100C, simultaneous recognition of the placement of
일괄 입력 이미지들(106)의 동시 인식을 위해, 인식될 입력 이미지들은 vxk 매트릭스 |Ir|로서 나타낼 수 있으며, 여기서 "v"는 인식 가능한 이미지들의 수이고, "k"는 특정 뉴런(116)에서 보정 가중치(112)의 수이다. 인식을 위한 입력 이미지들(106)의 매트릭스 |Ir|은 일반적으로 다음과 같이 표현될 수 있다.For simultaneous recognition of the
매트릭스 |Ir|에서, 매트릭스의 각 행은 인식 대상이 되는 단일 이미지이다.Matrix | Ir | , Each row of the matrix is a single image to be recognized.
일괄 입력 이미지들(106)의 동시 인식은 The simultaneous recognition of the
아래와 같은 심볼 "|Y|"로 표시되는 인식된 이미지 매트릭스(147)을 생성하기 위해, 전치 매트릭스 |I| T에 의한 매트릭스 |W|의 승산에 의해 제공될 수 있다:Following symbol "| Y |" to produce an image matrix 147 is represented by the recognized, pre-matrix | I | Matrix by T | W | Lt; / RTI > may be provided by multiplication of < RTI ID =
매트릭스 |Y|는 n x v의 차원을 갖는다. 매트릭스 |Y|의 각 열은 트레이닝된 p-net(100C)에 의해 획득된 단일 출력 또는 인식된 이미지이다. 매트릭스 |Y|는 일반적으로 다음과 같이 묘사될 수 있다:Matrix | Y | Has a dimension of nxv. Matrix | Y | Each row of which is a single output or a recognized image obtained by the trained p-net (100C). Matrix | Y | Can generally be described as: < RTI ID = 0.0 >
p-net(100B 및 100C) 각각은 컨트롤러(122A)의 서브-유닛일 수 있는 데이터 프로세서(150)를 추가로 포함할 수 있다. 이러한 실시예에서, 컨트롤러(122A)는 추가적으로 각각의 트레이닝 입력 값 매트릭스(141), 입력 값 매트릭스(141A), 보정 가중치 매트릭스(142), 뉴런 합 매트릭스(143) 및 원하는 출력값 매트릭스(144) 중 적어도 하나를 각각의 서브-매트릭스로 분할하거나 잘라내도록(partition or cut-up) 구성될 수 있다. 또한, 컨트롤러(122A)는 다수의 결과 서브-매트릭스 또는 서브-매트릭스를 데이터 프로세서(150)와 통신하여 별도의 수학적 연산을 수행하도록 구성될 수 있다. 대상 매트릭스들(141, 142, 143 및 144) 중 임의의 것을 각각의 서브-매트릭스로 분할함으로써, 동시 또는 병렬 데이터 프로세싱 및 입력 값 매트릭스(141A)의 이미지 인식 또는 p-net(100B)의 트레이닝중 어느 하나의 속도 증가를 용이하게 한다. 이러한 동시 또는 병렬 데이터 프로세싱은 또한 p-net(100B 또는 100C)의 확장성(scalability)를 허용함으로써, 즉, 특정 프로세서상에서 대수 조작을 받는 각각의 매트릭스의 크기를 제한 및/또는 예시된 프로세서(150)와 같은 다수의 프로세서들 사이에서 매트릭스를 분해함으로써, p-net의 크기를 변화시키는 능력을 제공한다. 도 34 내지 도 36에 도시된 바와 같이, p-net(100B 및 100C)의 이러한 실시예에서, 컨트롤러(122A)와 통신하는 다수의 데이터 프로세서(150)가 컨트롤러(122A)의 일부로서 또는 그곳으로부터 멀리 떨어져서 배열될 수 있으며, 분리되어 병렬로 작동하도록 구성될 수 있다.Each of p-net 100B and 100C may further include a
컨트롤러(122A)는 트레이닝 입력 값 매트릭스(141A) 및 보정 가중치 매트릭스에 대수 매트릭스 연산을 적용하여 보정 가중치 매트릭스(142)를 변경함으로써 p-net(100B)을 트레이닝시킨다.The
이러한 수학적 매트릭스 연산은 입력 값 매트릭스(141A)와 보정 가중치 매트릭스(146)의 수학적 곱의 결정을 포함할 수 있음으로써 현재의 트레이닝 시기 가중치 매트릭스(151)를 형성한다.This mathematical matrix operation may comprise determining the mathematical product of the input value matrix 141A and the correction weight matrix 146 to form the current training
컨트롤러(122A)는 위에서 설명된 매트릭스 |E|로 도시된 뉴런 합들(153)의 편차 매트릭스를 생성하기 위해 원하는 출력 값 매트릭스(144)로부터 뉴런 합 매트릭스(143)를 감산하도록 구성될 수도 있다.Controller (122A) is the matrix described above | E | May be configured to subtract a neuron sum matrix 143 from a desired
또한, 컨트롤러(122A)는, 다음과 같이, 심볼 "|ΔW|"로 아래에 표시되는, 뉴런 입력(155) 당 편차 매트릭스를 생성하기 위해, 각각의 뉴런(116)에 연결된, 아래에서 문자 "m"으로 식별되는, 시냅시스들(118)의 개수에 의해 뉴런 합들(153) 편차 매트릭스가 나눠지도록 구성될 수 있다.The controller (122A), as follows, the symbol "| ΔW |" in order to generate,
컨트롤러(122A)는 심볼 "|S|"로 아래에 식에서 표현된 p-net(100B)의 하나의 트레이닝 시기 동안 각 보정 가중치(112)가 사용된 횟수를 결정하도록 부가적으로 구성될 수 있다. 아래에서 볼 수 있듯이, 매트릭스 |S|는 트레이닝 입력 값 매트릭스(141A)에 단위 벡터를 곱하여 얻어진다:The
컨트롤러(122A)는 각각의 보정 가중치가 하나의 트레이닝 시기 동안 사용된 결정된 횟수를 사용하여 하나의 트레이닝 시기에 대해 아래에 심볼 "|∇W|"로 표시되는, 평균 편차 매트릭스(157)를 형성하도록 더 구성될 수 있다.The
또한, 컨트롤러(122A)는 보정 가중치 매트릭스(142)에 하나의 트레이닝 시기에 대한 평균 편차 매트릭스(157)을 가산하도록 구성될 수 있음으로써, 아래에 |W trained |로 표시된, 트레이닝된 보정 가중치 매트릭스(146)를 생성하고, 그리고 아래에 도시된 바와 같이 하나의 트레이닝 시기를 완료한다.The controller (122A) is as may be configured to adding the
도 37은 도 34-36과 관련하여 전술한 바와 같이 p-net(100B)를 동작시키는 방법(400)을 도시한다. 방법(400)은 프로세서(150)와 같은 하나 이상의 데이터 프로세서를 사용하여 감독된 트레이닝을 구현하는데 사용되는 컴퓨터 시스템 또는 컴퓨터 시스템과 같은 디바이스의 동작을 향상시키도록 구성된다. 방법(400)은 p-net(100B)을 동작시키기 위한 일시적 컴퓨터 판독 가능 저장 디바이스로 프로그램될 수 있으며, 상기 방법을 수행하도록 실행 가능한 명령들로 인코딩될 수 있다.FIG. 37 shows a
방법(400)은 프레임(402)에서 시작하는데, 이 방법은, 다수의 입력들(102)을 통해, 트레이닝 이미지들(106)을 수신하는 단계를 포함한다. 도 34 및 도 35에 도시된 p-net(100B)의 구조와 관련하여 상술한 바와 같이, 트레이닝 이미지들(106)은 대상 트레이닝 단계의 시작 이전에 트레이닝 입력 값 어레이(107)로서 수신되거나 또는 실제 트레이닝 단계 동안 트레이닝 입력 값 어레이로서 코드화될 수 있다. 프레임(402) 다음에, 방법은 프레임(404)으로 진행한다. 프레임(404)에서, 이 방법은 보정 가중치 어레이(119A)에서 다수의 시냅스들(118)의 보정 가중치(112)를 조직하는 단계를 포함한다. p-net(100B)의 구조와 관련하여 상술한 바와 같이, 각각의 시냅스(118)는 다수의 입력들(102) 중 하나에 연결되고 다수의 보정 가중치들(112)을 포함한다.
프레임(404) 후에, 방법은 프레임(406)으로 진행하는데, 이 방법은 다수의 뉴런(116)을 통해 뉴런 합 어레이(120A)를 생성하는 단계를 포함한다. p-net(100B)의 구조와 관련하여 상술한 바와 같이, 각 뉴런(116)은 적어도 하나의 출력(117)을 가지며, 다수의 시냅스들(118) 중 하나를 통해 다수의 입력들(102) 중 적어도 하나와 연결된다. 또한, 각각의 뉴런(116)은 각각의 뉴런에 연결된 각 시냅스(118)에 대응하는 보정 가중치들(112)의 가중치 값들을 합산하도록 구성된다. 프레임(406) 이후에, 프레임(408)에서, 방법은, 컨트롤러(122A)를 통해, 원하는 출력값 어레이(126A)로 조직화된 원하는 이미지(124)를 수신하는 단계를 포함한다. 프레임(408) 후에, 방법은 프레임(410)으로 진행하고, 이 방법은, 컨트롤러(122A)를 통해, 원하는 출력값 어레이(126A)로부터 뉴런 합 어레이(120A)의 편차(128)를 결정하는 단계를 포함하고 그리고 따라서 편차 어레이(132)를 생성한다.After
프레임(410) 이후에, 방법은 프레임(412)으로 진행한다. 프레임(412)에서, 이 방법은 결정된 편차 어레이(132)를 사용하여 보정 가중치 어레이(119A)를, 컨트롤러(122A)를 통해, 변경하는 단계를 포함한다. 변경된 보정 가중치 어레이(119A)의 변경된 보정 가중치 값은 이후에 가산되거나 합산되어 새로운 뉴런 합 어레이(120A)를 결정하는데 사용될 수 있다. 변경된 보정 가중치 어레이(119A)의 합산된 변경된 보정 가중치 값들은 원하는 출력값 어레이(126A)로부터의 뉴런 합 어레이(120A)의 편차를 감소시키거나 최소화하고 트레이닝된 보정 가중치 어레이(134A)를 생성하는 역할을 한다. 편차 어레이(132)는, p-net(100C)의 구조와 관련하여 상술한 바와 같이, 원하는 출력값 어레이(126A)로부터의 뉴런 합 어레이(120A)의 편차(128)가 타겟 편차(138) 어레이의 수용 가능한 범위(139) 내에 있을 때 충분히 최소화된 것으로 결정될 수 있다. 트레이닝된 보정 가중치 어레이(134A)는 편차 어레이(132)를 사용하여 결정된 트레이닝된 보정 가중치(112A)를 포함하고, 이에 의해 p-net(100B)를 트레이닝시킨다.After
p-net(100B)의 구조와 관련하여 상술한 바와 같이, 트레이닝 입력 값 어레이(107), 보정 가중치 어레이(119A), 뉴런 합 어레이(120A), 원하는 출력값 어레이(126A), 편차 어레이(132), 트레이닝된 보정 가중치 어레이(134A) 및 타겟 편차 어레이(138)는 각각 트레이닝 입력 값 매트릭스(141), 보정 가중치 매트릭스(142), 뉴런 합 매트릭스(143), 원하는 출력값 매트릭스(144), 편차 매트릭스(145), 트레이닝된 보정 가중치 매트릭스(146) 및 타겟 편차 매트릭스(148)로 조직화될 수 있다. 프레임(412)에서, 이 방법은, 컨트롤러(122A)를 통하여, 각각의 트레이닝 입력 값 매트릭스(141), 입력 값 매트릭스(141A), 보정 가중치 매트릭스(142), 뉴런 합 매트릭스(143) 및 원하는 출력값 매트릭스(144) 중 적어도 하나를 분할하는 단계를 포함할 수 있다. 이러한 결과적인 서브-매트릭스는 별도의 수학적 연산을 위해 데이터 프로세서(150)에 전달되어 동시 데이터 처리 및 p-net(100B)의 트레이닝 속도의 향상을 용이하게 한다.a
프레임(412)에서, 방법은 또한, 컨트롤러(122A)를 통해, 대수 매트릭스 연산을 트레이닝 입력 값 매트릭스(141) 및 보정 가중치 매트릭스에 적용함으로써 보정 가중치 매트릭스(142)를 변경하는 단계를 포함할 수 있고, 따라서 p-net(100B)를 트레이닝한다. 이러한 수학적 매트릭스 연산은 트레이닝 입력 값 매트릭스(141) 및 보정 가중치 매트릭스(142)의 수학적 곱을 결정하는 단계를 포함하고 따라서 현재 트레이닝 시기 가중치 매트릭스(151)을 형성한다. 프레임(412)에서, 이 방법은, 컨트롤러(122A)를 통해, 뉴런 합들(153)의 편차 매트릭스를 생성하기 위해 원하는 출력값 매트릭스(144)로부터 뉴런 합 매트릭스(143)을 감산하는 단계를 추가로 포함할 수 있다. 또한, 프레임(412)에서, 이 방법은, 컨트롤러(122A)를 통해, 뉴런 입력(155) 당 편차 매트릭스를 생성하기 위해 뉴런 합들(153)의 편차 매트릭스를 각각의 뉴런(116)에 연결된 입력들의 갯수로 나누는 단계를 포함할 수 있다.In
또한, 프레임(412)에서, 방법은, 컨트롤러(122A)를 통해, 각각의 보정 가중치(112)가 p-net(100B)의 하나의 트레이닝 시기 동안 사용된 횟수를 결정하는 단계를 포함할 수 있다. 또한, 이 방법은, 컨트롤러(122A)를 통해, 각각의 보정 가중치(112)가 특정 트레이닝 시기 동안 사용된 결정된 횟수를 사용하여 하나의 트레이닝 시기에 대한 평균 편차 매트릭스(157)를 형성하는 단계를 포함할 수 있다. 예를 들어, 이러한 동작은, 하나의 트레이닝 시기 동안 사용된 각각의 보정 가중치(112)에 대한 평균 편차를 얻기 위해, 각각의 보정 가중치가 특정 트레이닝 시기 동안 사용된 결정된 횟수로 뉴런 입력 당 편차 매트릭스를, 요소별로(element-by-element), 나누는 단계를 포함함으로써, 하나의 트레이닝 시기에 대한 평균 편차 매트릭스(157)를 형성한다.In addition, in
또한, 예를 들어, 산술 평균, 기하 평균, 조화 평균, 제곱 평균 제곱근 등을 사용하여 하나의 트레이닝 시기에 대한 평균 편차 매트릭스(157)를 형성하도록, 프레임(412)에서 다른 매트릭스 기반 연산이 사용될 수 있다. 또한, 프레임(412)에서, 이 방법은, 컨트롤러(122A)를 통해, 하나의 트레이닝 시기에 대한 평균 편차 매트릭스(157)를 보정 가중치 매트릭스(142)에 추가하는 단계를 포함할 수 있음으로써, 트레이닝된 가중치 매트릭스(146)를 생성하고 특정 트레이닝 시기를 완료한다. 따라서, 매트릭스 연산들이 모든 보정 가중치들(112)에 병렬로 적용되도록 함으로써, 방법(400)은 동시 발생을 용이하게 하고, 따라서 트레이닝된 p-net(100C)를 생성하는데 있어서의 p-net(100B)의 향상된 속도의 트레이닝을 제공한다.Also, other matrix based operations may be used in
프레임(412) 다음에, 방법(400)은 편차 어레이(132)가 충분히 최소화될 때까지 추가적인 트레이닝 시기를 수행하도록 프레임(402)으로 복귀하는 단계를 포함할 수 있다. 환언하면, 부가적인 트레이닝 시기들은 소정의 편차 또는 에러 값 내에서 원하는 출력값 어레이(126A) 상의 뉴런 합 어레이(120A)를 수렴하도록 수행될 수 있고, 이에 따라 p-net(100B)은 트레이닝되어 새로운 입력 이미지(106)로 동작할 준비가 되어 있는 것으로 간주 될 수 있다. 따라서, 프레임(412) 이후에, 본 방법은 트레이닝된 p-net(100C)(도 36에 도시됨)를 사용하여 이미지 인식을 위한 프레임(414)으로 진행할 수 있다.After
트레이닝된 p-net(100C)를 이용한 이미지 인식의 실시예에서, 프레임(414)에서, 방법(400)은 다수의 입력들(102)을 통해 입력 이미지들(106)를 수신하는 단계를 포함한다. p-net(100C)의 구조와 관련하여 전술한 바와 같이, 입력 이미지들(106)은 입력 값 어레이(107A)로서 수신되거나 또는 p-net(100C)에 의해 이미지들을 인식하는 동안 입력 값 어레이로서 코드화될 수 있다. 프레임(414)의 다음에, 프레임(416)에서, 본 방법은 트레이닝된 보정 가중치 어레이(134A)의 다수의 트레이닝된 보정 가중치(112A)를 각 시냅스(118)에 부여하는(attributing) 단계를 포함한다. 프레임(416) 이후에, 본 방법은 프레임(418)로 진행한다.In an embodiment of image recognition with trained p-net 100C, at
프레임(418)에서, 방법은 각각의 뉴런(116)에 연결된 각 시냅스(118)에 대응하는 트레이닝된 보정 가중치(112A)의 가중치 값들을 가산하는 단계를 포함한다. p-net(100B)의 구조와 관련하여 상술한 바와 같이, 트레니닝된 보정 가중치들(112A)의 가중치 값들의 그러한 합산은 다수의 뉴런(116)이 인식된 이미지 어레이(136)를 생성하게 하고, 이에 의해 입력 이미지들(106)의 인식을 제공한다. p-net(100C)의 구조와 관련하여 전술한 바와 같이, 트레이닝에 사용된 매트릭스들(141, 142, 143, 144, 145, 146 및 148)에 추가적으로, 입력 값 어레이(107A) 및 인식된 이미지들 어레이(136)는 입력 값 매트릭스(141A) 및 인식된 이미지들 매트릭스(147)로서 각각 조직화될 수 있다.In
프레임(418)에서, 본 방법은 또한, 컨트롤러(122A)를 통해, 입력 값 매트릭스(141A)와 같은 사용된 매트릭스들 중 임의의 매트릭스를 각각의 서브-매트릭스들로 분할하는 단계를 포함할 수 있다. 이러한 결과적인 서브-매트릭스들은 별도의 수학 연산을 수행하기 위해 데이터 프로세서(150)와 통신할 수 있음으로써, 동시 데이터 처리 및 p-net(100C)의 이미지 인식 속도의 향상을 촉진한다. 프레임들(202-212)에서 방법(400)의 트레이닝 부분에 부여되는 효과 매트릭스 동작과 유사하게, 대수 매트릭스 연산들이 트레이닝된 p-net(100C)의 매트릭스들 또는 서브-매트릭스들에 병렬로 적용될 때 프레임(214-218)의 이미지 인식 영역은 향상된 속도 이득을 갖는다. 따라서, 매트릭스 연산들이 모든 트레이닝된 보정 가중치(112A)에 병렬로 적용되도록 함으로써, 본 방법(400)은 동시 수행, 따라서 p-net(100C)을 사용한 향상된 속도, 이미지 인식을 용이하게 한다. 프레임(418) 다음에, 달성된 이미지 인식이 불충분하게 정밀하다고 판단되면, 도 34 내지 도 36을 참조하여 설명한 바와 같이, 방법은 추가적인 트레이닝을 위해 프레임(402)으로 복귀하거나, 또는 방법은 프레임(420)에서 종결될 수 있다.In
상세한 설명 및 도면들(drawings) 또는 도면들(figures)은 본 발명의 내용을 뒷받침하고 설명하는 것이지만, 본 발명의 범위는 청구 범위에 의해서만 정의된다. 청구된 개시를 수행하기 위한 최상의 모드들 및 다른 실시예들 중 일부가 상세히 설명되었지만, 첨부된 청구항들에 정의된 개시를 실시하기 위한 다양한 대안적인 설계들 및 실시예들이 존재한다. 또한, 도면들에 도시된 실시예들 또는 본 명세서에서 언급된 다양한 실시예의 특성들은 반드시 서로 독립적인 실시예들로서 이해될 필요는 없다. 오히려, 일 실시예의 예들 중 하나에 설명된 각각의 특성이 다른 실시예들로부터의 하나 또는 다수의 다른 바람직한 특성들과 결합될 수 있어, 단어들 또는 도면들을 참조하여 기술되지 않은 다른 실시 예들을 초래할 수 있다. 따라서, 이러한 다른 실시 예들은 첨부된 청구 범위의 범주 내에 있다.The description and drawings or figures serve to support and explain the subject matter of the invention, but the scope of the invention is defined only by the claims. While some of the best modes and other embodiments for carrying out the claimed invention have been described in detail, various alternative designs and embodiments exist for practicing the disclosure defined in the appended claims. In addition, the embodiments shown in the drawings or the features of the various embodiments referred to herein need not necessarily be understood as mutually independent embodiments. Rather, each feature described in one of the examples of embodiments may be combined with one or many other desired features from other embodiments, resulting in other embodiments not described with respect to words or figures . Accordingly, these other embodiments are within the scope of the appended claims.
Claims (24)
각각의 시냅스가 다수의 입력들 중 하나에 연결되고 그리고 다수의 보정 가중치들을 포함하며, 그리고 각각의 보정 가중치가 가중치 값에 의해 정의되고, 그리고 다수의 시냅스들의 보정 가중치들이 보정 가중치 어레이로 조직화되는, 다수의 시냅스들;
각각의 뉴런이 적어도 하나의 출력을 갖고 그리고 다수의 시냅스들 중 적어도 하나를 통해 다수의 입력들 중 적어도 하나와 연결되며, 그리고 각각의 뉴런이 각각의 뉴런에 연결된 대응하는 각각의 시냅스의 보정 가중치들의 가중치 값들을 합산하도록 구성됨으로써, 다수의 뉴런들이 뉴런 합 어레이를 생성하도록 하는, 다수의 뉴런들; 및
원하는 출력 값 어레이로 조직화된 원하는 이미지들을 수신하고;
원하는 출력 값 어레이로부터 뉴런 합 어레이의 편차를 결정하며 그리고 편차 어레이를 생성하고; 그리고
결정된 편차 어레이를 이용하여 보정 가중치 어레이를 변경함으로써, 뉴런 합 어레이를 결정하기 위해 변경된 보정 가중치 값들을 합산하면 트레이닝된 보정 가중치 어레이를 생성하도록 원하는 출력 값으로부터 뉴런 합 어레이의 편차를 감소시켜 신경망의 동시 트레이닝을 용이하게 하는, 컨트롤러를 포함하는, 신경망.A plurality of inputs to the neural network configured to receive training images, wherein the training images are received as a training input value array during training of the neural network and coded as a training input value array;
Wherein each synapse is connected to one of a plurality of inputs and comprises a plurality of calibration weights and wherein each calibration weight is defined by a weight value and the calibration weights of the plurality of synapses are organized into a calibration weight array, Multiple synapses;
Each neuron having at least one output and being coupled to at least one of a plurality of inputs via at least one of the plurality of synapses and wherein each neuron is associated with at least one of a plurality of synaptic calibration weights A plurality of neurons configured to sum the weight values, thereby causing a plurality of neurons to generate a neuron sum array; And
Receive desired images organized in a desired output value array;
Determine deviations of the neuron sum array from the desired output value arrays and generate a deviation array; And
By summing the modified calibration weight values to determine the neuron sum array by varying the calibration weight arrays using the determined deviation arrays, the deviation of the neuron sum array from the desired output value is reduced to produce a training calibration weight array, A neural network comprising a controller, which facilitates training.
트레이닝된 신경망에서:
신경망에 대한 다수의 입력들은 입력 이미지들을 수신하도록 구성되되, 입력 이미지들은 신경망에 의해 이미지들의 인식동안 입력 값 어레이로서 수신되고 그리고 입력 값 어레이로서 코딩되는 것중 하나이고;
각각의 시냅스는 트레이닝된 보정 가중치 어레이 중 다수의 트레이닝된 보정 가중치들을 포함하며; 그리고
각각의 뉴런은 각각의 뉴런에 연결된 각각의 시냅스에 대응하는 트레이닝된 보정 가중치들 중 가중치 값들을 가산하도록 구성됨으로써, 다수의 뉴런들이 인식된 이미지들 어레이를 생성하여, 입력 이미지들의 인식을 제공하는, 신경망.The method according to claim 1,
In the trained neural network:
Wherein the plurality of inputs to the neural network are configured to receive input images wherein the input images are received as an input value array and coded as an input value array during recognition of images by a neural network;
Each synapse comprising a plurality of trained calibration weights of the trained calibration weight arrays; And
Each neuron being configured to add weighted values among training calibrated weights corresponding to each synapse connected to a respective neuron such that a plurality of neurons generate an array of recognized images to provide recognition of the input images, Neural network.
분배기들의 세트를 더 포함하되, 분배기들의 세트는 각각의 트레이닝 이미지들 그리고 각각의 트레이닝 입력 값 어레이와 입력 값 어레이로서 입력 이미지들을 코딩하도록 구성되고, 분배기들의 세트는 각각의 트레이닝 이미지들 및 입력 이미지들을 수신하기 위해 다수의 입력들에 동작 가능하게 연결되는, 신경망.3. The method of claim 2,
Wherein the set of distributors is configured to code the input images as respective training images and each training input value array and input value array, wherein the set of distributors is configured to code each of the training images and the input images A neural network operatively connected to a plurality of inputs for receiving.
컨트롤러는 원하는 출력 값 어레이로부터 뉴런 합 어레이의 타겟 편차의 어레이로 부가적으로 프로그래밍되고, 그리고 컨트롤러는 원하는 출력 값 어레이로부터 뉴런 합 어레이의 편차가 타겟 편차 어레이의 수용 가능한 범위 내에 있을 때, 신경망의 트레이닝을 완료하도록 추가로 구성되는, 신경망.The method according to claim 1,
The controller is additionally programmed from the desired output value array into an array of target deviations of the neuron sum array and the controller is configured to perform the training of the neural network when the deviation of the neuron sum array from the desired output value array is within an acceptable range of the target deviation array Wherein the neural network is further configured to complete the neural network.
트레이닝 입력 값 어레이, 입력 값 어레이, 보정 가중치 어레이, 뉴런 합 어레이, 원하는 출력 값 어레이, 편차 어레이, 트레이닝된 보정 가중치 어레이, 인식된 이미지 어레이, 및 타겟 편차 어레이는, 각각, 트레이닝 입력 값 매트릭스, 입력 값 매트릭스, 보정 가중치 매트릭스, 뉴런 합 매트릭스, 원하는 출력 값 매트릭스, 편차 매트릭스, 트레이닝된 보정 가중치 매트릭스, 인식된 이미지 매트릭스 및 타겟 편차 매트릭스로 조직화되는, 신경망.3. The method of claim 2,
The training input value arrays, the input value arrays, the correction weight arrays, the neuron sum arrays, the desired output value arrays, the deviation arrays, the training correction weight arrays, the recognized image arrays, A neural network organized into a value matrix, a correction weight matrix, a neuron sum matrix, a desired output value matrix, a deviation matrix, a trained correction weight matrix, a recognized image matrix, and a target deviation matrix.
다수의 데이터 프로세서들을 더 포함하되, 컨트롤러는 각각의 입력 값, 트레이닝 입력 값, 보정 가중치, 뉴런 합 및 원하는 출력 값 매트릭스들 중 적어도 하나를 각각의 서브-매트릭스들로 분할하고 그리고 서브-매트릭스로 별도의 병렬 수학 연산을 위해 다수의 결과적인 서브-매트릭스들이 다수의 데이터 프로세서들과 통신하도록 추가로 구성되어, 동시 데이터 프로세싱을 용이하게 하고 입력 값 매트릭스의 이미지 인식 및 신경망의 트레이닝 중 하나의 속도를 향상시키는, 신경망.6. The method of claim 5,
Further comprising a plurality of data processors, wherein the controller divides at least one of each input value, a training input value, a correction weight, a neuron sum, and a desired output value matrix into respective sub-matrices and separately Matrices for communicating with a plurality of data processors for parallel mathematical operation of the input matrix to facilitate simultaneous data processing and to improve the speed of one of the image recognition of the input value matrix and the training of the neural network Let, neural network.
컨트롤러는 트레이닝 입력 값 매트릭스 및 보정 가중치 매트릭스에 대수 매트릭스 연산을 적용함으로써 보정 가중치 매트릭스를 변경하여, 신경망을 트레이닝하는, 신경망.6. The method of claim 5,
Wherein the controller trains the neural network by changing the calibration weight matrix by applying a logarithmic matrix operation to the training input value matrix and the correction weight matrix.
수학적 매트릭스 연산은 트레이닝 입력 값과 보정 가중치 매트릭스들의 수학적 곱의 결정을 포함하여, 현재의 트레이닝 시기 가중치 매트릭스를 형성하는, 신경망.8. The method of claim 7,
Wherein the mathematical matrix operation comprises determining a mathematical product of the training input values and the correction weight matrices to form a current training time weight matrix.
컨트롤러는 뉴런 합들의 편차 매트릭스를 생성하기 위해 원하는 출력 값 매트릭스로부터 뉴런 합 매트릭스를 감산하고; 그리고
뉴런 입력 당 편차 매트릭스를 생성하기 위해 뉴런 합들의 편차 매트릭스를 각각의 뉴런에 연결된 입력들의 수로 나누도록, 추가적으로 구성된, 신경망.9. The method of claim 8,
The controller subtracts the neuron sum matrix from the desired output value matrix to produce a deviation matrix of neuron sums; And
Further dividing the deviation matrix of neuron sums by the number of inputs connected to each neuron to produce a deviation matrix per neuron input.
컨트롤러는 각각의 보정 가중치가 신경망에서 하나의 트레이닝 시기동안 사용된 횟수를 결정하고;
각각의 보정 가중치가 하나의 트레이닝 시기동안 사용된 결정된 횟수를 사용하여 하나의 트레이닝 시기에 대한 평균 편차 매트릭스를 형성하며; 그리고
하나의 트레이닝 시기에 대한 평균 편차 매트릭스를 보정 가중치 매트릭스에 가산하도록 추가적으로 구성되어, 트레이닝된 보정 가중치 매트릭스를 생성하고 하나의 트레이닝 시기를 완료하는, 신경망.10. The method of claim 9,
The controller determines the number of times each calibration weight is used during one training period in the neural network;
Each of the correction weights forming a mean deviation matrix for one training period using a determined number of times during one training period; And
Further comprising: adding an average deviation matrix for one training period to a correction weighting matrix to generate a trained correction weighting matrix and complete one training period.
보정 가중치 어레이에서 다수의 시냅스들의 보정 가중치들을 조직화하되, 각각의 시냅스가 다수의 입력들 중 하나에 연결되고 그리고 다수의 보정 가중치들을 포함하며, 그리고 각각의 보정 가중치가 가중치 값에 의해 정의되는, 단계;
다수의 뉴런들을 통해 뉴런 합 어레이를 생성하되, 각각의 뉴런이 적어도 하나의 출력을 갖고 그리고 다수의 시냅스들 중 적어도 하나를 통해 다수의 입력들 중 적어도 하나와 연결되며, 그리고 각각의 뉴런이 각각의 뉴런에 연결된 대응하는 각각의 시냅스의 보정 가중치들의 가중치 값을 합산하도록 구성된, 단계;
컨트롤러를 통해, 원하는 출력 값 어레이로 조직화된 원하는 이미지들을 수신하는 단계;
컨트롤러를 통해, 원하는 출력 값 어레이로부터 뉴런 합 어레이의 편차를 결정하고 그리고 편차 어레이를 생성하는 단계; 및
컨트롤러를 통해, 결정된 편차 어레이를 이용하여 보정 가중치 어레이를 변경함으로써, 뉴런 합 어레이를 결정하기 위해 변경된 보정 가중치 값들을 합산하면 트레이닝된 보정 가중치 어레이를 생성하도록 원하는 출력 값으로부터 뉴런 합 어레이의 편차를 감소시켜 신경망의 동시 트레이닝을 용이하게 하는, 단계를 포함하는, 신경망을 동작시키는 방법.Receiving training images through a plurality of inputs to a neural network, wherein the training images are received as a training input value array during training of a neural network and coded as a training input value array;
Wherein the calibration weights of the plurality of synapses in the calibration weight array are organized, wherein each synapse is connected to one of a plurality of inputs and comprises a plurality of calibration weights, and wherein each calibration weight is defined by a weight value, ;
Generating a neuron sum array through a plurality of neurons wherein each neuron has at least one output and is coupled to at least one of a plurality of inputs through at least one of the plurality of synapses, And to sum the weight values of the correction weights of each corresponding synapse connected to the neuron;
Receiving, through the controller, desired images organized into a desired output value array;
Determining, via the controller, a deviation of the neuron sum array from the desired output value array and generating a deviation array; And
By summing the modified calibration weight values to determine the neuron sum array by changing the calibration weight arrays using the determined deviation arrays through the controller, the deviation of the neuron sum arrays from the desired output values is reduced to produce a training correction weight arrays Thereby facilitating simultaneous training of the neural network.
트레이닝된 신경망에서:
신경망에 대한 다수의 입력들을 통해 입력 이미지들을 수신하되, 입력 이미지들은 신경망에 의해 이미지들의 인식동안 입력 값 어레이로서 수신되고 그리고 입력 값 어레이로서 코딩되는 것중 하나이고;
각각의 시냅스에 트레이닝된 보정 가중치 어레이 중 다수의 트레이닝된 보정 가중치들을 부여하되, 각각의 트레이닝된 보정 가중치는 보정치 값으로 정의되며; 및
각각의 뉴런에 연결된 각각의 시냅스에 대응하는 트레이닝된 보정 가중치들의 가중치 값들을 가산함으로써, 다수의 뉴런들이 인식된 이미지들 어레이를 생성하여, 입력 이미지들의 인식을 제공하는, 신경망을 동작시키는 방법.12. The method of claim 11,
In the trained neural network:
Receiving input images through a plurality of inputs to a neural network wherein input images are received as an input value array and coded as an input value array during recognition of images by a neural network;
Providing a plurality of training calibration weights of the calibration weight arrays trained at each synapse, wherein each trained calibration weight is defined as a correction value; And
Wherein the plurality of neurons generate an array of recognized images to provide recognition of the input images by adding weighted values of the training correction weights corresponding to each synapse connected to each neuron.
분배기들의 세트를 통하여,
각각의 트레이닝 입력 값 어레이 및 입력 값 어레이로서 트레이닝 이미지들 및 입력 이미지들의 각각을 코딩하는 단계를 더 포함하되, 분배기들의 세트는 각각의 트레이닝 이미지들 및 입력 이미지들을 수신하기 위해 다수의 입력들에 동작 가능하게 연결되는, 신경망을 동작시키는 방법.13. The method of claim 12,
Through a set of distributors,
Further comprising coding each training image and input images as an array of training input values and an array of input values, each set of distributors being operable to operate on a plurality of inputs to receive respective training images and input images, Lt; RTI ID = 0.0 > a < / RTI > neural network.
컨트롤러는 원하는 출력 값 어레이로부터 뉴런 합 어레이의 타겟 편차의 어레이로 부가적으로 프로그래밍되고, 그리고 방법은, 컨트롤러를 통하여, 원하는 출력 값 어레이로부터 뉴런 합 어레이의 편차가 타겟 편차 어레이의 수용 가능한 범위 내에 있을 때, 신경망의 트레이닝을 완료하는 단계를 더 포함하는, 신경망을 동작시키는 방법.12. The method of claim 11,
The controller is additionally programmed from the desired output value array to an array of target deviations of the neuron sums array and the method further comprises the steps of controlling the deviation of the neuron sums array from the desired output value arrays through the controller to within an acceptable range of the target deviation arrays Further comprising the step of completing the training of the neural network.
트레이닝 입력 값 어레이, 입력 값 어레이, 보정 가중치 어레이, 뉴런 합 어레이, 원하는 출력 값 어레이, 편차 어레이, 트레이닝된 보정 가중치 어레이, 인식된 이미지 어레이, 및 타겟 편차 어레이는, 각각, 트레이닝 입력 값 매트릭스, 입력 값 매트릭스, 보정 가중치 매트릭스, 뉴런 합 매트릭스, 원하는 출력 값 매트릭스, 편차 매트릭스, 트레이닝된 보정 가중치 매트릭스, 인식된 이미지 매트릭스 및 타겟 편차 매트릭스로 조직화하는 단계를 더 포함하는, 신경망을 동작시키는 방법.13. The method of claim 12,
The training input value arrays, the input value arrays, the correction weight arrays, the neuron sum arrays, the desired output value arrays, the deviation arrays, the training correction weight arrays, the recognized image arrays, Further comprising organizing the value matrix, the correction weight matrix, the neuron sum matrix, the desired output value matrix, the deviation matrix, the trained correction weight matrix, the recognized image matrix and the target deviation matrix.
신경망은 부가적으로 다수의 데이터 프로세서들을 더 포함하고, 방법은, 컨트롤러를 통하여, 각각의 입력 값, 트레이닝 입력 값, 보정 가중치, 뉴런 합 및 원하는 출력 값 매트릭스들 중 적어도 하나를 각각의 서브-매트릭스들로 분할하는 단계, 그리고 서브-매트릭스로 별도의 병렬 수학 연산을 위해 다수의 결과적인 서브-매트릭스들이 다수의 데이터 프로세서들과 통신하는 단계를 더 포함하여, 동시 데이터 프로세싱을 용이하게 하고 입력 값 매트릭스의 이미지 인식 및 신경망의 트레이닝 중 하나의 속도를 향상시키는, 신경망을 동작시키는 방법.16. The method of claim 15,
The neural network additionally comprises a plurality of data processors, and the method further comprises, via the controller, at least one of each input value, a training input value, a correction weight, a neuron sum and a desired output value matrix, And communicating with the plurality of data processors a plurality of resultant sub-matrices for separate parallel mathematical operations in a sub-matrix, thereby facilitating simultaneous data processing and further comprising the steps of: Wherein the method further comprises the step of:
컨트롤러에 의해, 트레이닝 입력 값 매트릭스 및 보정 가중치 매트릭스에 대수 매트릭스 연산을 적용함으로써 보정 가중치 매트릭스를 변경하는 단계를 더 포함하여, 신경망을 트레이닝하는, 신경망을 동작시키는 방법.16. The method of claim 15,
Further comprising modifying, by the controller, a calibration weight matrix by applying an algebraic matrix operation to the training input value matrix and the calibration weight matrix, thereby training the neural network.
수학적 매트릭스 연산을 적용하는 것은 트레이닝 입력 값과 보정 가중치 매트릭스들의 수학적 곱을 결정함을 포함하여, 현재의 트레이닝 시기 가중치 매트릭스를 형성하는, 신경망을 동작시키는 방법.18. The method of claim 17,
Applying a mathematical matrix operation comprises determining a mathematical product of the training input values and the correction weight matrices to form a current training time weight matrix.
컨트롤러를 통하여, 뉴런 합들의 편차 매트릭스를 생성하기 위해 원하는 출력 값 매트릭스로부터 뉴런 합 매트릭스를 감산하는 단계; 그리고
컨트롤러를 통하여, 뉴런 입력 당 편차 매트릭스를 생성하기 위해 뉴런 합들의 편차 매트릭스를 각각의 뉴런에 연결된 입력들의 수로 나누는 단계를 더 포함하는, 신경망을 동작시키는 방법.19. The method of claim 18,
Subtracting a neuron sum matrix from a desired output value matrix to produce a deviation matrix of neuron sums through the controller; And
Further comprising dividing the deviation matrix of neuron sums by the number of inputs connected to each neuron to produce a deviation matrix per neuron input through the controller.
컨트롤러를 통하여, 각각의 보정 가중치가 신경망에서 하나의 트레이닝 시기동안 사용된 횟수를 결정하는 단계;
컨트롤러를 통하여, 각각의 보정 가중치가 하나의 트레이닝 시기동안 사용된 결정된 횟수를 사용하여 하나의 트레이닝 시기에 대한 평균 편차 매트릭스를 형성하는 단계; 및
컨트롤러를 통하여, 하나의 트레이닝 시기에 대한 평균 편차 매트릭스를 보정 가중치 매트릭스에 가산하는 단계를 더 포함하여, 트레이닝된 보정 가중치 매트릭스를 생성하고 하나의 트레이닝 시기를 완료하는, 신경망을 동작시키는 방법.20. The method of claim 19,
Determining, via the controller, the number of times each calibration weight is used during one training period in the neural network;
Generating, via the controller, an average deviation matrix for one training period using a determined number of times each calibration weight is used during one training period; And
Further comprising the step of adding, via a controller, an average deviation matrix for one training period to a correction weight matrix, thereby generating a training correction weight matrix and completing one training period.
신경망에 대한 다수의 입력들을 통해 트레이닝 이미지들을 수신하되, 트레이닝 이미지들은 신경망의 트레이닝동안 트레이닝 입력 값 어레이로서 수신되고 그리고 트레이닝 입력 값 어레이로서 코딩된 것의 하나이고;
보정 가중치 어레이에서 다수의 시냅스들의 보정 가중치들을 조직화하되, 각각의 시냅스가 다수의 입력들 중 하나에 연결되고 그리고 다수의 보정 가중치들을 포함하며, 그리고 각각의 보정 가중치가 가중치 값에 의해 정의되고;
다수의 뉴런들을 통해 뉴런 합 어레이를 생성하되, 각각의 뉴런이 적어도 하나의 출력을 갖고 그리고 다수의 시냅스들 중 적어도 하나를 통해 다수의 입력들 중 적어도 하나와 연결되며, 그리고 각각의 뉴런이 각각의 뉴런에 연결된 대응하는 각각의 시냅스의 보정 가중치들의 가중치 값을 합산하도록 구성되고;
원하는 출력 값 어레이로 조직화된 원하는 이미지들을 수신하며;
원하는 출력 값 어레이로부터 뉴런 합 어레이의 편차를 결정하고 그리고 편차 어레이를 생성하며;
결정된 편차 어레이를 이용하여 보정 가중치 어레이를 변경함으로써, 뉴런 합 어레이를 결정하기 위해 변경된 보정 가중치 값들을 합산하면 트레이닝된 보정 가중치 어레이를 생성하도록 원하는 출력 값으로부터 뉴런 합 어레이의 편차를 감소시켜 신경망의 동시 트레이닝을 용이하게 하는, 인공 신경망을 동작시키는 비 일시적 컴퓨터 판독 가능 저장 장치.A non-transitory computer readable storage device for operating an artificial neural network, the storage device being encoded with executable instructions,
Receiving training images through a plurality of inputs to a neural network, wherein training images are received as a training input value array during training of a neural network and coded as a training input value array;
Organizing calibration weights of a plurality of synapses in a calibration weighting array, each synapse connected to one of a plurality of inputs and comprising a plurality of calibration weights, and wherein each calibration weight is defined by a weight value;
Generating a neuron sum array through a plurality of neurons wherein each neuron has at least one output and is coupled to at least one of a plurality of inputs through at least one of the plurality of synapses, And to sum the weights of the correction weights of each corresponding synapse connected to the neuron;
Receive desired images organized in a desired output value array;
Determine deviations of the neuron sum array from the desired output value arrays and generate a deviation array;
By summing the modified calibration weight values to determine the neuron sum array by varying the calibration weight arrays using the determined deviation arrays, the deviation of the neuron sum array from the desired output value is reduced to produce a training calibration weight array, A non-transitory computer readable storage device operable to operate an artificial neural network that facilitates training.
저장 장치가 실행 가능한 명령들로 더 인코딩되어,
신경망에 대한 다수의 입력들을 통해 입력 이미지들을 수신하되, 입력 이미지들은 신경망에 의해 이미지들의 인식동안 입력 값 어레이로서 수신되고 그리고 입력 값 어레이로서 코딩되는 것중 하나이고;
각각의 시냅스에 트레이닝된 보정 가중치 어레이 중 다수의 트레이닝된 보정 가중치들을 부여하되, 각각의 트레이닝된 보정 가중치는 보정치 값으로 정의되며; 그리고
각각의 뉴런에 연결된 각각의 시냅스에 대응하는 트레이닝된 보정 가중치들의 가중치 값들을 가산함으로써, 다수의 뉴런들이 인식된 이미지들 어레이를 생성하여, 입력 이미지들의 인식을 제공하는, 인공 신경망을 동작시키는 비 일시적 컴퓨터 판독 가능 저장 장치.22. The method of claim 21,
The storage device is further encoded with executable instructions,
Receiving input images through a plurality of inputs to a neural network wherein input images are received as an input value array and coded as an input value array during recognition of images by a neural network;
Providing a plurality of training calibration weights of the calibration weight arrays trained at each synapse, wherein each trained calibration weight is defined as a correction value; And
By adding weighted values of the training correction weights corresponding to each synapse connected to each neuron, a plurality of neurons generate an array of recognized images to provide recognition of the input images, Computer readable storage device.
보정 가중치 어레이에서 다수의 시냅스들의 보정 가중치들을 조직화하되, 각각의 시냅스가 다수의 입력들 중 하나에 연결되고 그리고 다수의 보정 가중치들을 포함하며, 그리고 각각의 보정 가중치가 가중치 값에 의해 정의되는, 수단;
다수의 뉴런들을 통해 뉴런 합 어레이를 생성하되, 각각의 뉴런이 적어도 하나의 출력을 갖고 그리고 다수의 시냅스들 중 적어도 하나를 통해 다수의 입력들 중 적어도 하나와 연결되며, 그리고 각각의 뉴런이 각각의 뉴런에 연결된 대응하는 각각의 시냅스의 보정 가중치들의 가중치 값을 합산하도록 구성된, 수단;
원하는 출력 값 어레이로 조직화된 원하는 이미지들을 수신하는 수단;
원하는 출력 값 어레이로부터 뉴런 합 어레이의 편차를 결정하고 그리고 편차 어레이를 생성하는 수단; 및
결정된 편차 어레이를 이용하여 보정 가중치 어레이를 변경함으로써, 뉴런 합 어레이를 결정하기 위해 변경된 보정 가중치 값들을 합산하면 트레이닝된 보정 가중치 어레이를 생성하도록 원하는 출력 값으로부터 뉴런 합 어레이의 편차를 감소시켜 신경망의 동시 트레이닝을 용이하게 하는, 수단을 포함하는, 인공 신경망을 동작시키기 위한 장치.Means for receiving training images through a plurality of inputs to the neural network, wherein the training images are received as a training input value array during training of the neural network and coded as a training input value array;
Wherein the calibration weights of the plurality of synapses in the calibration weight array are organized, wherein each synapse is connected to one of a plurality of inputs and comprises a plurality of calibration weights, and wherein each calibration weight is defined by a weight value, ;
Generating a neuron sum array through a plurality of neurons wherein each neuron has at least one output and is coupled to at least one of a plurality of inputs through at least one of the plurality of synapses, Means for summing weights of the correction weights of each corresponding synapse connected to the neuron;
Means for receiving desired images organized in a desired output value array;
Means for determining a deviation of a neuron sum array from a desired output value array and generating a deviation array; And
By summing the modified calibration weight values to determine the neuron sum array by varying the calibration weight arrays using the determined deviation arrays, the deviation of the neuron sum array from the desired output value is reduced to produce a training calibration weight array, And means for facilitating the training of the neural network.
트레이닝된 신경망에서:
신경망에 대한 다수의 입력들을 통해 입력 이미지들을 수신하되, 입력 이미지들은 신경망에 의해 이미지들의 인식동안 입력 값 어레이로서 수신되고 그리고 입력 값 어레이로서 코딩되는 것중 하나인, 수단;
각각의 시냅스에 트레이닝된 보정 가중치 어레이 중 다수의 트레이닝된 보정 가중치들을 부여하되, 각각의 트레이닝된 보정 가중치는 보정치 값으로 정의되는, 수단; 및
각각의 뉴런에 연결된 각각의 시냅스에 대응하는 트레이닝된 보정 가중치들의 가중치 값들을 가산함으로써, 다수의 뉴런들이 인식된 이미지들 어레이를 생성하여, 입력 이미지들의 인식을 제공하는, 수단인, 인공 신경망을 동작시키기 위한 장치.24. The method of claim 23,
In the trained neural network:
Means for receiving input images through a plurality of inputs to a neural network, wherein the input images are one of being received as an input value array during recognition of images by a neural network and coded as an input value array;
Means for providing a plurality of training calibration weights of the calibration weight arrays trained at each synapse, wherein each training calibration weight is defined as a correction value; And
Means for generating a plurality of recognized neurons arrays of recognized images to provide recognition of input images by adding weighted values of the training corrected weights corresponding to each synapse connected to each neuron, .
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/178,137 | 2016-06-09 | ||
US15/178,137 US9619749B2 (en) | 2014-03-06 | 2016-06-09 | Neural network and method of neural network training |
US15/449,614 | 2017-03-03 | ||
US15/449,614 US10423694B2 (en) | 2014-03-06 | 2017-03-03 | Neural network and method of neural network training |
PCT/US2017/036758 WO2017214507A1 (en) | 2016-06-09 | 2017-06-09 | Neural network and method of neural network training |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190016539A true KR20190016539A (en) | 2019-02-18 |
KR102558300B1 KR102558300B1 (en) | 2023-07-21 |
Family
ID=60579026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020197000226A KR102558300B1 (en) | 2016-06-09 | 2017-06-09 | Neural Networks and How to Train Neural Networks |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP3469521A4 (en) |
JP (1) | JP7041078B2 (en) |
KR (1) | KR102558300B1 (en) |
CN (1) | CN109416758A (en) |
WO (1) | WO2017214507A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020226317A1 (en) * | 2019-05-03 | 2020-11-12 | Samsung Electronics Co., Ltd. | Image processing apparatus and image processing method thereof |
KR20210065625A (en) * | 2019-11-27 | 2021-06-04 | 고려대학교 산학협력단 | Deep neural network accelerator using heterogeneous multiply-accumulate unit |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11454968B2 (en) * | 2018-02-28 | 2022-09-27 | Micron Technology, Inc. | Artificial neural network integrity verification |
US11562231B2 (en) * | 2018-09-03 | 2023-01-24 | Tesla, Inc. | Neural networks for embedded devices |
US11640522B2 (en) | 2018-12-13 | 2023-05-02 | Tybalt, Llc | Computational efficiency improvements for artificial neural networks |
CN109799439B (en) * | 2019-03-29 | 2021-04-13 | 云南电网有限责任公司电力科学研究院 | Insulating multi-angle inclined scratch cable wetting experiment evaluation method and device |
CN110111234B (en) * | 2019-04-11 | 2023-12-15 | 上海集成电路研发中心有限公司 | Image processing system architecture based on neural network |
CN110135557B (en) * | 2019-04-11 | 2023-06-02 | 上海集成电路研发中心有限公司 | Neural network topology architecture of image processing system |
CN110046513B (en) * | 2019-04-11 | 2023-01-03 | 长安大学 | Plaintext associated image encryption method based on Hopfield chaotic neural network |
US11361218B2 (en) * | 2019-05-31 | 2022-06-14 | International Business Machines Corporation | Noise and signal management for RPU array |
US11714999B2 (en) | 2019-11-15 | 2023-08-01 | International Business Machines Corporation | Neuromorphic device with crossbar array structure storing both weights and neuronal states of neural networks |
CN111461308B (en) * | 2020-04-14 | 2023-06-30 | 中国人民解放军国防科技大学 | Memristor neural network and weight training method |
JP7493398B2 (en) | 2020-07-03 | 2024-05-31 | 日本放送協会 | Conversion device, learning device, and program |
CN111815640B (en) * | 2020-07-21 | 2022-05-03 | 江苏经贸职业技术学院 | Memristor-based RBF neural network medical image segmentation algorithm |
CN112215344A (en) * | 2020-09-30 | 2021-01-12 | 清华大学 | Correction method and design method of neural network circuit |
US20220138579A1 (en) * | 2020-11-02 | 2022-05-05 | International Business Machines Corporation | Weight repetition on rpu crossbar arrays |
CN113570048B (en) * | 2021-06-17 | 2022-05-31 | 南方科技大学 | Circuit simulation-based memristor array neural network construction and optimization method |
KR102514652B1 (en) * | 2021-11-19 | 2023-03-29 | 서울대학교산학협력단 | Weight transfer apparatus for neuromorphic devices and weight transfer method using the same |
CN115358389A (en) * | 2022-09-01 | 2022-11-18 | 清华大学 | Neural network training error reduction method, neural network training error reduction device, electronic device, and medium |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5600843A (en) * | 1989-09-20 | 1997-02-04 | Fujitsu Limited | Ring systolic array system for synchronously performing matrix/neuron computation using data transferred through cyclic shift register connected in cascade of trays |
US20160012330A1 (en) * | 2014-03-06 | 2016-01-14 | Progress, Inc. | Neural network and method of neural network training |
US10248675B2 (en) * | 2013-10-16 | 2019-04-02 | University Of Tennessee Research Foundation | Method and apparatus for providing real-time monitoring of an artifical neural network |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101980290B (en) * | 2010-10-29 | 2012-06-20 | 西安电子科技大学 | Method for fusing multi-focus images in anti-noise environment |
-
2017
- 2017-06-09 JP JP2018564317A patent/JP7041078B2/en active Active
- 2017-06-09 KR KR1020197000226A patent/KR102558300B1/en active IP Right Grant
- 2017-06-09 WO PCT/US2017/036758 patent/WO2017214507A1/en unknown
- 2017-06-09 CN CN201780035716.7A patent/CN109416758A/en active Pending
- 2017-06-09 EP EP17811082.1A patent/EP3469521A4/en not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5600843A (en) * | 1989-09-20 | 1997-02-04 | Fujitsu Limited | Ring systolic array system for synchronously performing matrix/neuron computation using data transferred through cyclic shift register connected in cascade of trays |
US10248675B2 (en) * | 2013-10-16 | 2019-04-02 | University Of Tennessee Research Foundation | Method and apparatus for providing real-time monitoring of an artifical neural network |
US20160012330A1 (en) * | 2014-03-06 | 2016-01-14 | Progress, Inc. | Neural network and method of neural network training |
US9390373B2 (en) * | 2014-03-06 | 2016-07-12 | Progress, Inc. | Neural network and method of neural network training |
Non-Patent Citations (1)
Title |
---|
D. Pescianschi 외 3인, "Analog and Digital Modeling of a Scalable Neural Network", Int'l Conf. Artificial Intelligence(ICAI'15) Vol.II (2015.07)* * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020226317A1 (en) * | 2019-05-03 | 2020-11-12 | Samsung Electronics Co., Ltd. | Image processing apparatus and image processing method thereof |
US11315222B2 (en) | 2019-05-03 | 2022-04-26 | Samsung Electronics Co., Ltd. | Image processing apparatus and image processing method thereof |
KR20210065625A (en) * | 2019-11-27 | 2021-06-04 | 고려대학교 산학협력단 | Deep neural network accelerator using heterogeneous multiply-accumulate unit |
Also Published As
Publication number | Publication date |
---|---|
JP7041078B2 (en) | 2022-03-23 |
EP3469521A4 (en) | 2020-02-26 |
EP3469521A1 (en) | 2019-04-17 |
JP2019519045A (en) | 2019-07-04 |
KR102558300B1 (en) | 2023-07-21 |
WO2017214507A1 (en) | 2017-12-14 |
CN109416758A (en) | 2019-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102558300B1 (en) | Neural Networks and How to Train Neural Networks | |
KR102166105B1 (en) | Neural network and method of neural network training | |
US9619749B2 (en) | Neural network and method of neural network training | |
TWI655587B (en) | Neural network and method of neural network training | |
US10311326B2 (en) | Systems and methods for improved image textures | |
KR102545128B1 (en) | Client device with neural network and system including the same | |
RU2586864C2 (en) | Method and arrangement for local rule of training competition, which leads to a sparse connectivity | |
JP2019032808A (en) | Mechanical learning method and device | |
KR20170031695A (en) | Decomposing convolution operation in neural networks | |
Tang et al. | Memory dynamics in attractor networks with saliency weights | |
CN114330736A (en) | Latent variable generative model with noise contrast prior | |
Du et al. | Efficient network construction through structural plasticity | |
Pereira et al. | Vae-bridge: Variational autoencoder filter for bayesian ridge imputation of missing data | |
KR20220026917A (en) | Image converting apparatus for adapting from synthetic domain to real domain and method thereof | |
CN114766024A (en) | Method and apparatus for pruning neural networks | |
Reddy et al. | Effect of image colourspace on performance of convolution neural networks | |
Zhang et al. | Supplementary meta-learning: Towards a dynamic model for deep neural networks | |
CN113077383A (en) | Model training method and model training device | |
Wang | Efficient Adaptation of Deep Vision Models | |
Shen et al. | Consistency of neural networks with regularization | |
Jia et al. | Studying on improved spiking neural network in handwritten digital recognition | |
Ivanova | OPTIMIZING SIMULATION MODELS OF AN ARTIFICIAL NEURAL NETWORK FOR DIGITAL RECOGNITION. | |
EP4040342A1 (en) | Deep neutral network structure learning and simplifying method | |
Eddine et al. | New classification technique using neural networks and genetic algorithms | |
Vodianyk et al. | Evolving Node Transfer Functions in Deep Neural Networks for Pattern Recognition |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |