[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR102558300B1 - 신경망 및 신경망 트레이닝 방법 - Google Patents

신경망 및 신경망 트레이닝 방법 Download PDF

Info

Publication number
KR102558300B1
KR102558300B1 KR1020197000226A KR20197000226A KR102558300B1 KR 102558300 B1 KR102558300 B1 KR 102558300B1 KR 1020197000226 A KR1020197000226 A KR 1020197000226A KR 20197000226 A KR20197000226 A KR 20197000226A KR 102558300 B1 KR102558300 B1 KR 102558300B1
Authority
KR
South Korea
Prior art keywords
matrix
training
correction
neuron
weight
Prior art date
Application number
KR1020197000226A
Other languages
English (en)
Other versions
KR20190016539A (ko
Inventor
드미트리 페치안시
Original Assignee
프로그레스, 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US15/178,137 external-priority patent/US9619749B2/en
Priority claimed from US15/449,614 external-priority patent/US10423694B2/en
Application filed by 프로그레스, 인코포레이티드 filed Critical 프로그레스, 인코포레이티드
Publication of KR20190016539A publication Critical patent/KR20190016539A/ko
Application granted granted Critical
Publication of KR102558300B1 publication Critical patent/KR102558300B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Software Systems (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)
  • Image Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)

Abstract

신경망은 입력 신호들을 수신하기 위한 입력들, 및 입력들에 연결되고 어레이로 조직화된 보정 가중치들을 갖는 시냅스들을 포함한다. 트레이닝 이미지들은 망의 트레이닝 과정동안 입력들에 의해 어레이로 수신되거나 코딩된다. 망은 또한 각각 하나의 시냅스를 통해 적어도 하나의 입력과 연결된 출력을 가지며 각각의 뉴런에 연결된 각 시냅스에서 선택된 보정 가중치를 합산하여 뉴런 합계 어레이를 생성하는 뉴런을 포함한다. 또한, 망은 어레이에서 원하는 이미지들을 수신하고, 원하는 출력 값 어레이로부터 뉴런 합 어레이 편차를 결정하며, 편차 어레이를 생성하는 컨트롤러를 포함한다. 컨트롤러는 편차 어레이를 사용하여 보정 가중치 어레이를 변경한다. 뉴런 합 어레이를 결정하기 위해 변경된 보정 가중치를 더하면 대상 편차가 줄어들고 동시 망 트레인닝을 위한 트레이닝된 보정 가중치 어레이가 생성된다.

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호의 이익을 주장하며, 그 전체 내용은 참고 문헌으로 유사하게 포함된다.
본 개시는 인공 신경망 및 트레이닝 방법에 관한 것이다.
기계 학습에서, "신경망"이라는 용어는 일반적으로 소프트웨어 및/또는 컴퓨터 아키텍처, 즉 그것을 실행하는데 필요한 하드웨어 및 소프트웨어를 포함하는 컴퓨터 시스템 또는 마이크로프로세서의 전체 디자인 또는 구조를 지칭한다. 인공 신경망들은 동물의 중추 신경계라고 알려진, 특히 뇌의 생물학적 신경 네트워크에서 영감을 얻은 통계적 학습 알고리즘 계열이다. 인공 신경망들은 주로 많은 입력에 의존할 수 있는 일반적으로 알려지지 않은 기능을 추정하거나 근사하는데 사용된다. 이러한 신경망들은 컴퓨터 비전 및 음성 인식을 포함하여 일반적인 규칙 기반 프로그래밍을 사용하여 해결하기 어려운 다양한 작업에 사용되었다.
인공 신경망들은 일반적으로 입력들로부터 값들을 계산할 수 있는 "뉴런들"의 시스템들로서 표현되고, 그 적응적 특성의 결과로서 패턴 인식뿐만 아니라 기계 학습을 할 수 있다. 각 뉴런은 종종 시냅스 가중치들(synaptic weights)을 갖는 시냅스들을 통해 여러 입력들과 연결된다.
신경망들은 통상적인 소프트웨어 및 하드웨어로서 프로그램되지 않고, 다만 트레이닝된다. 이러한 트레이닝은 통상적으로 충분한 수의 대표적인 예시들의 분석을 통해 그리고 시냅스 가중치의 통계적인 또는 알고리즘적 선택에 의해, 주어진 입력 이미지들 세트가 주어진 출력 이미지들 세트에 대응되도록 수행된다. 전통적인 신경망들의 공통적인 비판은 상당한 시간 및 다른 리소스들이 그들의 트레이닝에 자주 필요하다는 것이다.
다양한 인공 신경망들이 후술하는 미국 특허 4,979,124; 5,479,575; 5,493,688; 5,566,273; 5,682,503; 5,870,729; 7,577,631; 및 7,814,038에서 개시된다.
본 개시는 인공 신경망 및 트레이닝 방법을 제공한다.
일 실시예에서, 신경망은 트레이닝 이미지들을 수신하도록 구성된 신경망에 대한 다수의 입력들을 포함한다. 트레이닝 이미지들은 다수의 입력들에 의해 신경망의 트레이닝동안, 즉, 다수의 입력들에 의해 수신된 후에, 트레이닝 입력 값 어레이로서 수신되거나 또는 트레이닝 입력 값 어레이로서 코딩된 것의 하나이다. 신경망은 또한 다수의 시냅스들을 포함한다. 각각의 시냅스는 다수의 입력들 중 하나에 연결되고 그리고 다수의 보정 가중치들을 포함한다. 각각의 보정 가중치가 가중치 값에 의해 정의되고, 그리고 다수의 시냅스들의 보정 가중치들이 보정 가중치 어레이로 조직화된다.
신경망은 부가적으로 다수의 뉴런들을 포함한다. 각각의 뉴런이 적어도 하나의 출력을 갖고 그리고 다수의 시냅스들 중 적어도 하나를 통해 다수의 입력들 중 적어도 하나와 연결된다. 각각의 뉴런이 각각의 뉴런에 연결된 대응하는 각각의 시냅스의 보정 가중치들의 가중치 값들을 합산하도록 구성됨으로써, 다수의 뉴런들이 뉴런 합 어레이를 생성한다. 신경망은 또한 원하는 출력 값 어레이로 조직화된 원하는 이미지들을 수신하도록 구성된 컨트롤러를 포함한다.
컨트롤러는 또한 원하는 출력 값 어레이로부터 뉴런 합 어레이의 편차를 결정하며 그리고 편차 어레이를 생성하도록 구성된다. 컨트롤러는 부가적으로 결정된 편차 어레이를 이용하여 보정 가중치 어레이를 변경하도록 구성된다. 뉴런 합 어레이를 결정하기 위해 변경된 보정 가중치 값들을 합산하면 원하는 출력 값으로부터 뉴런 합 어레이의 편차를 감소시키고, 즉, 트레이닝 도중 뉴런망에 의해 생성된 오류를 보상하고, 트레이닝된 보정 가중치 어레이를 생성하여, 신경망의 동시 및 병렬 트레이닝을 용이하게 한다.
트레이닝된 신경망에서, 신경망에 대한 다수의 입력들은 입력 이미지들을 수신하도록 구성될 수 있다. 이러한 입력 이미지들은 신경망에 의해 이미지들의 인식동안 입력 값 어레이로서 수신되거나 또는 입력 값 어레이로서 코딩되는 것중 하나일 수 있다. 각각의 시냅스는 트레이닝된 보정 가중치 어레이 중 다수의 트레이닝된 보정 가중치들을 포함할 수 있다. 부가적으로, 각각의 뉴런은 각각의 뉴런에 연결된 각각의 시냅스에 대응하는 트레이닝된 보정 가중치들 중 가중치 값들을 가산하도록 구성될 수 있음으로써, 다수의 뉴런들이 인식된 이미지들 어레이를 생성하여, 이러한 입력 이미지들의 인식을 제공한다.
신경망은 또한 분배기들의 세트를 포함할 수 있다. 이러한 실시예에서, 분배기들의 세트는 각각의 트레이닝 이미지들 그리고 각각의 트레이닝 입력 값 어레이와 입력 값 어레이로서 입력 이미지들을 코딩하도록 구성될 수 있다. 이러한 분배기들의 세트는 각각의 트레이닝 이미지들 및 입력 이미지들을 수신하기 위해 다수의 입력들에 동작 가능하게 연결될 수 있다.
컨트롤러는 부가적으로 원하는 출력 값 어레이로부터 뉴런 합 어레이의 타겟 편차의 어레이로 프로그래밍될 수 있다. 또한, 컨트롤러는 원하는 출력 값 어레이로부터 뉴런 합 어레이의 편차가 타겟 편차 어레이의 수용 가능한 범위 내에 있을 때, 신경망의 트레이닝을 완료하도록 구성될 수 있다.
트레이닝 입력 값 어레이, 입력 값 어레이, 보정 가중치 어레이, 뉴런 합 어레이, 원하는 출력 값 어레이, 편차 어레이, 트레이닝된 보정 가중치 어레이, 인식된 이미지 어레이, 및 타겟 편차 어레이는, 각각, 트레이닝 입력 값 매트릭스, 입력 값 매트릭스, 보정 가중치 매트릭스, 뉴런 합 매트릭스, 원하는 출력 값 매트릭스, 편차 매트릭스, 트레이닝된 보정 가중치 매트릭스, 인식된 이미지 매트릭스 및 타겟 편차 매트릭스로 조직화될 수 있다.
신경망은 부가적으로 다수의 데이터 프로세서들을 포함할 수 있다. 이러한 실시예에서, 컨트롤러는 부가적으로 각각의 입력 값, 트레이닝 입력 값, 보정 가중치, 뉴런 합 및 원하는 출력 값 매트릭스들 중 적어도 하나를 각각의 서브-매트릭스들로 분할하고 그리고 서브-매트릭스로 별도의 병렬 수학 연산을 위해 다수의 결과적인 서브-매트릭스들이 다수의 데이터 프로세서들과 통신하도록 구성될 수 있다. 이러한 분할 즉, 임의의 대상 매트릭스들을 각각의 서브-매트릭스들로 분할하는 것은 동시 또는 병렬 데이터 프로세싱을 용이하게 하고 입력 값 매트릭스의 이미지 인식 및 신경망의 트레이닝 중 하나의 속도를 향상시킨다. 이러한 동시 또는 병렬 데이터 프로세싱은 또한 신경망의 확장성을 허용한다.
컨트롤러는 트레이닝 입력 값 매트릭스 및 보정 가중치 매트릭스에 대수 매트릭스 연산을 적용하여 보정 가중치 매트릭스를 변경할 수 있음으로써, 신경망을 트레이닝한다.
수학적 매트릭스 연산은 트레이닝 입력 값과 보정 가중치 매트릭스들의 수학적 곱의 결정을 포함할 수 있음으로써, 현재의 트레이닝 시기 가중치 매트릭스를 형성한다.
컨트롤러는 또한 뉴런 합들의 편차 매트릭스를 생성하기 위해 원하는 출력 값 매트릭스로부터 뉴런 합 매트릭스를 감산할 수 있다. 부가적으로, 컨트롤러는 뉴런 입력 당 편차 매트릭스를 생성하기 위해 뉴런 합들의 편차 매트릭스를 각각의 뉴런에 연결된 입력들의 수로 나누도록 구성될 수 있다.
컨트롤러는 각각의 보정 가중치가 신경망에서 하나의 트레이닝 시기동안 사용된 횟수를 결정하도록 구성될 수 있다. 컨트롤러는 부가적으로 각각의 보정 가중치가 하나의 트레이닝 시기동안 사용된 결정된 횟수를 사용하여 하나의 트레이닝 시기에 대한 평균 편차 매트릭스를 형성하도록 구성될 수 있다. 또한, 컨트롤러는 하나의 트레이닝 시기에 대한 평균 편차 매트릭스를 보정 가중치 매트릭스에 가산하도록 구성될 수 있어, 트레이닝된 보정 가중치 매트릭스를 생성하고 하나의 트레이닝 시기를 완료한다.
이러한 신경망을 동작시키는, 즉 트레이닝 및 이미지 인식을 위한 방법이 또한 개시된다.
또한, 인공 신경망을 동작시키기 위한 비 일시적 컴퓨터 판독 가능 저장 장치 및 인공 신경망을 동작시키기 위한 장치가 개시된다.
다른 실시예에서, 신경망은 다수의 망 입력들을 포함함으로써, 각 입력이 입력 값을 갖는 입력 신호를 수신하도록 구성된다. 신경망은 또한 다수의 시냅스를 포함하되, 각 시냅스는 다수의 입력들 중 하나에 연결되고 그리고 다수의 보정 가중치를 포함하되, 각각의 보정 가중치는 각각의 가중치를 유지하는 메모리 소자에 의해 설정된다. 신경망은 부가적으로 분배기들의 세트를 포함한다. 각각의 분배기는 각각의 입력 신호를 수신하기 위해 다수의 입력들 중 하나에 동작 가능하게 연결되고, 입력 값과 상관하여 다수의 보정 가중치들로부터 하나 이상의 보정 가중치들을 선택하도록 구성된다. 신경망은 또한 뉴런들의 세트를 포함한다. 각각의 뉴런은 적어도 하나의 출력을 가지며, 다수의 시냅스들 중 하나의 시냅스를 통해 다수의 입력들 중 적어도 하나와 연결되고, 각각의 뉴런에 연결된 각각의 시냅스로부터 선택된 보정 가중치들 중 가중치 값을 가산하도록 구성되어, 뉴런 합을 생성한다. 각 뉴런의 출력은 신경망의 작동 출력 신호를 설정하기 위해 각각의 뉴런 합을 제공한다.
신경망은 또한 값을 갖는 원하는 출력 신호를 수신하고, 원하는 출력 신호 값으로부터의 뉴런 합의 편차를 결정하고, 결정된 값을 사용하여 대응하는 메모리 소자에 의해 설정된 각각의 보정 가중치를 변경(수정)하도록 구성된 가중치 보정 계산기를 포함할 수 있다. 이러한 경우에, 뉴런 합을 결정하기 위해 변경된 보정 가중치 값들을 가산하는 것은 원하는 출력 신호 값으로부터 뉴런 합의 편차를 최소화하여 트레이닝된 신경망을 생성하기 위한 것이다.
트레이닝된 신경망은 값 및 대응하는 부가적인 원하는 출력 신호를 갖는 보충 입력 신호만을 사용하여 보충 트레이닝을 수신하도록 구성될 수 있다.
신경망의 트레이닝 동안 또는 보충 트레이닝 이전에, 다수의 시냅스들 각각은 각각의 메모리 소자들에 의해 설정된 하나 이상의 추가적인 보정 가중치들을 수용하도록 구성될 수 있다.
신경망은 신경망의 트레이닝 동안 또는 후에 각각의 시냅스들로부터 각각의 메모리 소자에 의해 설정된 하나 이상의 보정 가중치를 제거하도록 구성될 수 있다. 이러한 보정 가중치의 제거는 신경망이 신경망을 동작시키는데 필요한 다수의 메모리 소자만을 보유하게 할 수 있다.
신경망은 신경망의 트레이닝 전 또는 도중에 추가 입력, 추가 시냅스 및 추가 뉴런 중 적어도 하나를 수용하여 신경망의 동작 파라미터를 확장하도록 구성될 수 있다.
신경망은 신경망의 트레이닝 전, 도중 또는 후에 입력, 시냅스 및 뉴런 중 적어도 하나를 제거하도록 구성될 수 있다. 망에 의해 사용되지 않는 신경망 소자(요소)를 제거하는 그러한 능력은 망의 출력 품질 손실없이 구조를 단순화하고 신경망의 동작 파라미터를 수정하도록 의도된다.
각각의 메모리 소자는 각각의 가중치를 정의하도록 구성된 전기적 및/또는 자기적 특성을 특징으로 하는 전기 디바이스에 의해 설정될 수있다. 이러한 특성은 저항, 임피던스, 용량, 자기장, 인덕션, 전계 강도 등일 수 있다. 각 디바이스의 각각의 전기적 및/또는 자기적 특성은 신경망의 트레이닝동안 변화되도록 구성될 수 있다. 또한, 보정 가중치 계산기는 대응하는 전기 디바이스의 전기적 및 자기 적 특성 각각을 변화시킴으로써 각각의 보정 가중치 값을 변경할 수 있다.
전기 디바이스는 저항, 메미스터, 멤리스터, 트랜지스터, 캐패시터, 전계효과트랜지스터, 광의존성 저항(LDR) 또는 자기의존성 저항(MDR)과 같은 광소자 저항 중 하나로서 구성될 수 있다.
각각의 메모리 소자는 전기 저항들 블록에 의해 설정될 수 있으며, 각각의 보정 가중치를 설정할 수 있도록 결정된 편차를 사용하여 블록으로부터 하나 이상의 전기 저항들을 선택하도록 구성된 선택기 디바이스를 포함한다.
전기 저항들의 블록은 전기 커패시터들을 추가로 포함할 수 있다. 즉, 각각의 메모리 소자는 전기 저항들 및 전기 커패시터들을 모두 갖는 블록에 의해 형성 될 수 있다. 선택기 디바이스는 각각의 가중치를 설정하도록 결정된 편차를 사용하여 커패시터들을 선택하도록 추가로 구성될 수 있다.
신경망은 아날로그, 디지털 및 디지털-아날로그 망 중 하나로 구성될 수 있다. 이러한 망에서, 다수의 입력들, 다수의 시냅스들, 메모리 소자들, 분배기들의 세트, 뉴런들의 세트, 가중치 보정 계산기 및 원하는 출력 신호 중 적어도 하나는 아날로그, 디지털 및 디지털-아날로그 형식으로 구성된다.
신경망이 아날로그 망으로 구성된 경우, 각각의 뉴런은 전기적 와이어, 또는 직렬 또는 병렬 버스와 같은, 직렬 및 병렬 통신 채널중 하나에 의해 설정될 수 있다.
가중치 보정 계산기는 차동 증폭기들의 세트로서 설정될 수 있다. 또한, 각각의 차동 증폭기는 각각의 보정 신호를 생성하도록 구성 될 수 있다.
각각의 분배기는 수신된 입력 신호에 응답하여 다수의 보정 가중치들로부터 하나 이상의 보정 가중치들을 선택하도록 구성된 디멀티플렉서 일 수 있다.
각각의 분배기는 수신된 입력 신호를 이진 코드로 변환하고 이진 코드와 관련하여 다수의 보정 가중치들로부터 하나 이상의 보정 가중치를 선택하도록 구성 될 수 있다.
신경망은 메모리를 갖는 전자 디바이스에 프로그래밍될 수 있되, 각각의 메모리 소자는 전자 디바이스의 메모리에 저장된다.
유틸리티 신경망을 동작시키는 방법이 또한 개시된다. 방법은 트레이닝 중에 별도의 유사 신경망에 의해 설정된 변경된 보정 가중치를 사용하여 유틸리티 신경망을 통해 데이터를 처리하는 단계를 포함한다. 방법은 또한 별도의 유사 신경망에 의해 설정된 변경된 보정 가중치 값들을 사용하여 유틸리티 신경망의 동작 출력 신호를 설정하는 단계를 포함한다.
유틸리티 신경망에 의해 변경된 보정 가중치 값들의 사용을 위해, 별도의 유사 신경망은 트레이닝 입력 값을 갖는 트레이닝 입력 신호를 신경망으로의 입력을 통해 수신하는 단계; 트레이닝 입력 신호를 입력에 작동 가능하게 연결된 분배기에 전달하는 단계; 다수의 보정 가중치들로부터 하나 이상의 보정 가중치를, 트레이닝 입력 값에 관련하여, 분배기를 통하여 선택하되, 보정 가중치 각각은 가중치 값에 의해 정의되고 입력에 연결된 시냅스 상에 위치하는, 단계; 뉴런 합을 생성하도록 시냅스를 통해 입력과 연결된 뉴런을 통해 적어도 하나의 출력을 갖는 선택된 보정 가중치의 가중치를 가산하는 단계; 가중치 보정 계산기를 통해 값을 갖는 원하는 출력 신호를 수신하는 단계; 가중치 보정 계산기를 통해, 원하는 출력 신호 값으로부터 뉴런 합의 편차를 결정하는 단계; 및 변경된 보정 가중치 값들을 설정하기 위해 결정된 편차를 사용하여 각각의 보정 가중치 값들을, 가중치 보정 계산기를 통해, 변경하여, 뉴런 합을 결정하기 위해 변경된 보정 가중치 값들을 합산하여 원하는 출력 값으로부터 뉴런 합의 편차를 최소화하여, 신경망을 트레이닝하는, 단계에 의해 트레이닝된다.
유틸리티 신경망 및 트레이닝된 개별 유사 신경망은 다수의 입력들, 보정 가중치들, 분배기들, 뉴런들 및 시냅스들을 포함하는 매칭 신경망을 포함할 수 있다.
유틸리티 신경망 및 트레이닝된 개별 아날로그 신경망 각각에서, 각각의 보정 가중치는 각각의 가중치를 유지하는 메모리 소자에 의해 설정될 수 있다.
도 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에 도시된 바와 같이, 종래의 인공 신경망(10)은 전형적으로 입력 디바이스들(12), 시냅스 가중치(16)를 갖는 시냅스들(14), 가산기(20)와 활성 함수 디바이스(22)를 포함하는 뉴런들(18), 뉴런 출력들(24) 및 가중치 보정 계산기(26)를 포함한다. 각 뉴런(18)은 두 개 이상의 입력 디바이스들(12)에 대해 시냅스들(14)을 통해 연결된다. 시냅스 가중치(16)의 값들은 통상적으로 전기적 저항, 전도도, 전압, 전하, 자성 특성, 또는 다른 파라미터들을 사용하여 표현된다.
전통적인 신경망(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)의 세트로서 출력 각 출력 이미지를 형성한다.
뉴런 출력 신호들(∑Fi...∑F)에 의해 정의된 획득된 뉴런 출력 이미지는 미리 설정된 원하는 출력 이미지들(Oi-On)과 가중치 보정 계산기(26)에 의해 비교된다. 획득된 뉴런 출력 이미지 ∑Fn 과 원하는 출력 이미지 On 사이의 결정된 차이에 근거하여, 시냅스 가중치(16)를 변경하는 보정 신호들이 미리 프로그램된 알고리즘을 이용하여 형성된다. 보정이 모든 시냅스 가중치(16)에 대해 이루어진 이후, 입력 신호(Ii-Im)의 세트는 신경망(10)에 재도입되고, 새로운 보정이 이루어진다. 위의 사이클은 획득된 뉴런 출력 이미지 ∑Fn 과 원하는 출력 이미지 On 의 사이의 차이가 어떤 미리 결정된 에러에 비해 작은 것으로 결정될 때까지 반복된다. 모든 개별적인 이미지를 갖는 망 트레이닝의 하나의 사이클은 통상적으로 "트레이닝 시기(training epoch)"로서 통상적으로 식별된다. 일반적으로, 각 트레이닝 시기에서, 에러의 크기는 감소된다. 그러나, 입력 및 출력의 수 뿐만 아니라 개별적인 입력(Ii-Im)의 수에 따라, 전통적인 신경망(10)의 트레이닝은 많은 수의 트레이닝 시기를 필요로 할 수 있고, 일부 경우에서, 수십만번 만큼 클 수 있다.
홉필드 네트워크(Hopfield network), 제한된 볼츠만 머신(Restricted Boltzmann Machine), 방사기저함수 네트워크(Radial basis function network) 및 순환형 신경망(recurrent neural network)을 포함하는 다양한 전통적인 신경망이 존재한다. 분류 및 클러스터링의 특정한 태스크들은 특정한 타입의 신경망, 네크워크 입력 트레이닝 정보로서 오직 입력 이미지만을 사용하고, 특정 입력 이미지에 대응하는 원하는 출력 이미지는 최대값을 갖는 출력 신호를 갖는 단일 위닝 뉴런(winning neuron)에 기초한 트레이닝 과정 동안 직접 형성되는 자기조직화 맵(Self-Organizing Maps) 을 필요로 한다.
위에서 언급한 것처럼, 신경망(10)과 같은 존재하는 전통적인 신경망들의 주요 관심사들 중 하나는 그 성공적인 트레이닝이 많은 소요 시간을 필요로 할 수 있다는 것이다. 전통적인 네트워크들의 일부 추가적인 관심사는 컴퓨팅 리소스들의 많은 소모일 수 있고, 이것은 결과적으로 강력한 컴퓨터들을 필요하게끔 유도한다. 추가적인 관심사들은 네트워크의 전체적인 재교육이 없이는 네트워크의 크기를 증가시키기 불가능함, "네트워크 마비(network paralysis)" 및 "극솟값(local minimum)에서의 프리징(freezing)"과 같은 이러한 현상들에 대한 성향이고, 이것은 특정한 신경망이 특정한 시퀀스에서 특정한 이미지들의 세트로 트레이닝될 수 있는지를 예측하기 불가능하게 만든다. 또한, 트레이닝 동안 도입되는 특정한 이미지들의 시퀀싱과 관련한 한정들이 있을 수 있고, 트레이닝 이미지들의 도입의 순서를 변경하는 것은 이미 학습된 네트워크의 추가적인 트레이닝을 수행하는 것에 대한 불가능 뿐만 아니라 네트워크 프리즈로 이어질 수 있다.
유사한 도면 부호들은 유사한 구성을 언급하는 나머지 도면들을 참조하면, 도 2는 프로그래시브 신경망, 따라서 "프로그래시브 네트워크", 또는 "p-net"(100)의 개략도를 나타낸다. P-net(100)은 다수의 또는 p-net의 입력들(102)의 세트를 포함한다. 각 입력(102)은 입력 신호(104)를 수신하도록 구성되고, 입력 신호들은 도 2에서 I1, I2 … Im 로서 표시된다. 각 입력 신호 I1, I2 … Im 는 예를 들어, 크기, 주파수, 위상, 신호 편광각, 또는 입력 이미지(106)의 다른 부분들과의 관련성과 같은 입력 이미지(106)의 일부 특성(들)의 값을 나타낸다. 각 입력 신호(104)는 입력값을 갖고, 다수의 입력 신호(104)와 함께 일반적으로 입력 이미지(106)를 설명한다.
각 입력값은 -∞ 와 +∞의 사이에 있는 값 범위 내에 있을 수 있고, 디지털 및/또는 아날로그 형태로 설정될 수 있다. 입력값의 범위는 트레이닝 이미지들의 세트에 종속할 수 있다. 가장 단순한 경우에서, 입력값들의 범위는 모든 트레이닝 이미지들을 위한 입력값들의 가장 작은 값과 가장 큰 값의 사이의 차이일 수 있다. 실제적인 이유로서, 입력값들의 범위는 너무 높은 것으로 여겨지는 입력값들을 제거함으로써 한정될 수 있다. 예를 들어, 입력값들의 범위의 이러한 한정은 중요도 샘플링(importance sampling)과 같은 분산 감소(variance reduction)를 위한 알려진 통계적인 방법들을 통해 수행될 수 있다. 입력 값들의 범위를 한정하는 다른 예는 특정한 최소값에 대해 미리 설정된 최소 레벨에 비해 낮은 모든 신호들의 지정과 특정한 최대값에 대해 미리 설정된 최대 레벨을 초과하는 모든 신호들의 지정일 수 있다.
p-net(100)은 또한 다수의 또는 시냅스들(118)의 세트를 포함할 수 있다. 각 시냅스(118)는 도 2에 도시된 바와 같이 다수의 입력들(102) 중 하나와 연결되고 다수의 보정 가중치(112)를 포함하고, 시냅스 가중치(108)를 또한 포함할 수 있다. 각 보정 가중치(112)는 각 가중치값(112)에 의해 정의된다. P-net(100)은 또한 분배기(114)의 세트를 포함한다. 각 분배기(114)는 각 입력 신호(104)를 수신하기 위해 다수의 입력들(102)의 하나와 동작적으로 연결된다. 추가적으로, 각 분배기(114)는 입력값과 관련해서 다수의 보정 가중치들(112)로부터 하나 이상의 보정 가중치들을 선택하도록 구성된다.
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)에서처럼 할당될 수 있고, 미리 설정된 템플릿 등으로부터 선택된 미리 설정된 수학적 함수의 도움으로 계산될 수 있다.
p-net(100)은 또한 가중치 보정 계산기(122)를 포함한다. 가중치 보정 계산기(122)는 신호값을 갖고 출력 이미지(126)의 부분을 표시하는 원하는, 예를 들어, 미리 설정된 출력 신호(124)를 수신하도록 구성된다. 가중치 보정 계산기(122)는 또한 트레이닝 에러로도 알려진 원하는 출력 신호(124)의 값으로부터 뉴런 합(120)의 편차(128)를 결정하고, 결정된 편차(128)를 사용하여 각 보정 가중치 값을 변경하도록 구성된다. 따라서, 뉴런 합(120)을 결정하기 위한 변경된 보정 가중치 값들을 합하는 것은 원하는 출력 신호(124)의 값으로부터 대상 뉴런 합의 편차를 최소화하고, 그 결과로서, p-net(100)을 트레이닝하기에 효과적이다.
도 1에 대해 언급된 전통적인 네트워크(10)로 유추하면, 편차(128)는 결정된 뉴런 합(120)와 원하는 출력 신호(124)의 값의 사이에서 트레이닝 에러로서 설명될 수 있다. 도 1과 관련하여 논의된 전통적인 신경망(10)과 비교하여, p-net(100)에서 입력 신호(104)의 입력 값들은 단지 일반적인 네트워크 설정의 과정에서만 변하고, p-net의 트레이닝동안 변하지 않는다. 입력 값을 변경하는 대신, p-net(100)의 트레이닝은 보정 가중치(112)의 값(112)을 변경하여 제공된다. 추가적으로, 비록 각 뉴런(116)이 합 함수를 포함하나, 뉴런은 보정 가중치 값들을 합산하고, 뉴런(116)은 필요하지 않으며, 또한 실제로, 전통적인 신경망(10)에서 활성 함수 디바이스(22)에 의해 제공되는 것과 같은 활성 함수의 부재에 의해 특징된다.
전통적인 신경망(10)에서, 트레이닝 중 가중치 보정은 시냅스 가중치(16)를 변경함에 의해 수행되나, 반면, p-net(100)에서 대응되는 가중치 보정은 도 2에서 도시된 것처럼, 보정 가중치 값(112)을 변경함에 의해 제공된다. 각 보정 가중치(112)는 전체 또는 일부 시냅스들(118) 상에 위치된 가중치 보정 블록들(110)에 포함될 수 있다. 신경망 컴퓨터 에뮬레이션에서, 각 시냅시스 및 보정 가중치는 예를 들어 메모리 셀과 같은 디지털 디바이스 및/또는 아날로그 디바이스에 의해 표시될 수 있다. 신경망 소프트웨어 에뮬레이션에서, 보정 가중치(112)의 값들은 적절하게 프로그램된 알고리즘을 통해 제공될 수 있고, 반면 하드웨어 에뮬레이션에서, 메모리 컨트롤을 위해 알려진 방법들이 사용될 수 있다.
p-net(100)에서, 원하는 출력 신호(124)로부터 뉴런 합(120)의 편차(128)는 그 사이에서 수학적으로 계산된 차이로서 표시될 수 있다. 추가적으로, 각 변경된 보정 가중치(112)의 작성은 뉴런 합(120)을 작성하기 위해 사용된 각 보정 가중치에 대한 계산된 차이의 분배를 포함할 수 있다. 이러한 실시예에서, 각 변경된 보정 가중치(110)의 작성은 뉴런 합(120)이 작은 수의 시기 내에서 원하는 출력 신호 값 상에 수렴하도록 허용할 것이고, 단지 하나의 시기만 필요로 하는 일부 경우에서, p-net(100)을 빠르게 트레이닝하는 것을 허용할 것이다. 특정 경우에서, 뉴런 합(120)을 작성하는데 사용되는 보정 가중치(112)의 사이에서의 수학적 차이의 분배는 각 뉴런 합(120)을 작성하기 위해 사용된 각 보정 가중치의 사이에서 결정된 차이를 동일하게 나누는 것을 포함할 수 있다.
분리된 실시예에서, 원하는 출력 신호 값으로부터의 뉴런 합(120)의 편차(128)의 결정은 이에따라 편차 계수를 작성하기 위해 뉴런 합에 의해 원하는 출력 신호 값을 나누는 것을 포함할 수 있다. 이러한 특정한 경우에서, 각 변형된 보정 가중치(112)의 변형은 편차 계수에 의해 뉴런 합(120)을 작성하는데 사용된 각 보정 가중치의 곱을 포함한다. 각 분배기(114)는 추가적으로 다수의 보정 가중치(112)에 대해 다수의 영향 계수들(134)을 할당하도록 구성될 수 있다. 본 실시예에서, 각 영향 계수(134)는 각 뉴런 합(120)을 작성하기 위해 일부 미리 결정된 비율에서 다수의 보정 가중치들(112)의 하나를 할당할 수 있다. 각각의 보정 가중치(112)와 대응을 위해, 각 영향 계수(134)는 도면들에서 도시된 바와 같이 "Ci,d,n" 명명이 할당될 수 있다.
특정 시냅스(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)의 미리 결정된 비율은 통계적 분포에 따라 정의될 수 있다.
뉴런 합(120)을 작성하는 것은 입력값(102)에 따라 각 보정 가중치(112)에 각 영향 계수(134)들을 초기적으로 할당하고, 그리고 나서 각 채택된 보정 가중치(112)의 값에 의해 대상 영향 계수들을 곱하는 것을 포함할 수 있다. 그리고 나서, 그에 연결된 모든 시냅스들(118)에 대해 각 뉴런(116)을 통해 보정 가중치(112) 및 할당된 영향 계수(134)의 개별적인 곱들을 합한다.
가중치 보정 계산기(122)는 각 변경된 보정 가중치(112)를 작성하기 위해 각 영향 계수(134)들을 적용하도록 구성될 수 있다. 특히, 가중치 보정 계산기(122)는 각 영향 계수(134)에 의해 정해진 비율에 따라 뉴런 합(120)을 작성하기 위해 사용된 각 보정 가중치(112)에 대해 뉴런 합(120)과 원하는 출력 신호(124)의 사이의 계산된 수학적 차이의 비율을 적용할 수 있다. 추가적으로, 뉴런 합(120)을 작성하기 위해 사용된 보정 가중치들(112) 사이에서 나누어진 수학적 차이는 각 영향 계수(134)에 의해 더 나누어질 수 있다. 그 이후, 각 영향 계수(134)에 의해 뉴런 합(120)의 나누어진 결과는 원하는 출력 신호값 상에 뉴런 합(120)을 수렴시키기 위해 보정 가중치(112)에 더해질 수 있다.
p-net(100)의 전형적인 형성은 p-net의 트레이닝이 시작되기 전에 발생할 수 있다. 그러나, 개별적인 실시예에서, 트레이닝하는 동안 p-net(100)이 초기 보정 가중치가 없는 입력 신호(104)를 수신하면, 적절한 보정 가중치(112)가 작성될 수 있다. 이러한 경우, 특정 분배기(114)는 특정 입력 신호(104)를 위한 적절한 간격 "d"을 결정할 것이고, 초기값들을 갖는 보정 가중치(112)의 그룹은 특정 입력(102), 특정 간격 "d" 및 모든 각 뉴런들(116)에 대해 작성될 것이다. 추가적으로, 대응하는 영향 계수(134)는 각각 새로 작성된 보정 가중치(112)에 할당될 수 있다.
각 보정 가중치(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 에서 +∞의 범위에서 수치값을 가질 수 있다.
입력 신호(104)의 범위를 간격 d0, di ... dm으로 나누는 것의 다양한 가능성이 도 5에 도시된다. 특정 간격 분포는 예를 들어, 동일한 크기의 모든 간격 "d"를 지정하는 것에 의해 달성될 수 있는 것처럼 균일하거나, 선형적일 수 있다. 미리 결정된 최하 레벨에 비해 낮은 입력 신호 값을 갖는 모든 입력 신호들(104)은 0 값을 갖도록 고려될 수 있고, 미리 결정된 최상 레벨에 비해 큰 입력 신호 값을 갖는 모든 입력 신호들은 도 5에서 도시된 바와 같이 이러한 최대 레벨을 할당받을 수 있다. 특정 간격 분포는 또한 대칭, 비대칭 또는 무제한과 같이 비균일 또는 비선형적일 수 있다. 간격 "d"의 비선형적 분포는 입력 신호들(104)의 범위가 비실제적으로 큰 것으로 고려되는 때 유용할 수 있고, 범위의 특정 부분은 범위의 처음, 중간 또는 끝에서와 같이 가장 치명적인 것으로 고려되는 입력 신호들을 포함할 수 있다. 특정 간격 분포는 또한 무작위 함수에 의해 설명될 수 있다. 모든 선행하는 예시들은 비제한적인 것으로서, 간격 분포의 다른 변형들도 역시 가능하다.
입력 신호(104)의 선택된 범위 내의 간격 "d"의 수는 p-net(100)을 최적화하도록 증가될 수 있다. 이러한 p-net(100)의 최적화는 예를 들어, 입력 이미지(106)를 트레이닝하는 것의 복잡성에서 증가가 있는 때 바람직하다. 예를 들어, 더 많은 수의 간격은 단색 이미지들과 비교할 때 다색 이미지들에 대해 필요로 할 수 있고, 더 많은 수의 간격들은 단순한 그래픽들에 비해 복잡한 장식에 대해 필요로 할 수 있다. 증가된 수의 간격들은 트레이닝 이미지의 보다 큰 전체 수를 위해서 뿐만 아니라, 윤곽에 의해 설명되는 이미지들과 비교할 때 복잡한 색상 구배를 갖는 이미지의 정확한 인식을 위해 필요할 수 있다. 간격 "d"의 수에서 감소는 노이즈의 높은 크기, 트레이닝 이미지에서 큰 분산 및 컴퓨팅 리소스들에서 과도한 소모의 경우 역시 필요할 수 있다.
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과 연관될 수 있다.
주어진 입력(102)과 연결된 각 시냅스(118)의 모든 보정 가중치(112)에 대해, 분배기(114)는 특정 입력 신호에 관련된 간격 "d"와 부합하여 영향 계수(134)의 값을 할당할 수 있다. 분배기(114)는 또한 정현, 정규, 대수 분포 곡선, 또는 무작위 분포 함수와 같은 영향 계수(134)(도 6에 도시됨)의 값들의 미리 결정된 분포와 부합하는 영향 계수(134)의 값들을 할당할 수 있다. 많은 경우에서, 각 시냅스(118)에 관련된 특정 입력 신호(102)에 대한 영향 계수(134) 또는 Ci,d,n의 합 또는 적분은 1(one)의 값을 가질 것이다.
가장 단순한 경우에서, 입력 신호값에 가장 근접하게 대응하는 보정 가중치(112)는 영향 계수(134)(Ci,d,n)에 대해 1(one)의 값을 할당받을 수 있고, 반면 다른 간격들에 대한 보정 가중치는 0(zero)의 값을 받을 수 있다.
p-net(100)은 전형적인 신경망(10)과 비교할 때, p-net의 트레이닝 동안 소요 시간 및 다른 리소스들의 사용의 절감에 포커스된다. 비록 p-net(100)의 부분으로서 여기서 기재된 구성들의 일부는 전통적인 신경망에서의 그것과 유사한 특정 명칭 또는 식별자가 지정되었지만, 특정 명칭들은 명확성을 위해 사용되었고, 전통적인 신경망에서 그 상대로부터 다르게 적용될 수 있다. 예를 들어, 입력 신호들(Ii-Im)의 크기를 컨트롤하기 위한 시냅스 가중치(16)는 전통적인 신경망(10)의 전반적인 설정의 과정 동안 설립되고 전통적인 네트워크의 트레이닝 동안 변경된다. 반면, p-net(100)의 트레이닝은 보정 가중치(112)를 변경하는 것에 의해 수행되고, 반면 시냅스 가중치(108)는 트레이닝 동안 변하지 않는다. 추가적으로, 위에서 논의한 것처럼, 각 뉴런(116)은 합하거나 부가하는 구성을 포함하나, 전통적인 신경망(10)에 대해 통상적인 활성 함수 디바이스(22)는 포함하지 않는다.
전반적으로, p-net(100)은 각 뉴런(116)과 특정 뉴런과 대상 뉴런에 연결된 모든 각 시냅스(118) 및 보정 가중치(112)를 포함하는 모든 연결 시냅스들(118)을 포함하는 뉴런 유닛(119)을 트레이닝함으로써 트레이닝된다. 따라서, p-net(100)의 트레이닝은 각 뉴런(116)에 대해 기여하는 보정 가중치(112)를 변경하는 것을 포함한다. 보정 가중치(112)에 대한 변경은 이하에서 상세히 설명될 방법(200)에 포함된 그룹-트레이닝 알고리즘에 기반하여 발생한다. 설명된 알고리즘에서, 예를 들어, 편차(128)와 같은 트레이닝 에러는 보정값이 각 뉴런(116)에 의해 획득된 합을 결정하는데 사용된 가중치(112)의 각각에 대해 결정되고 할당되는 것에 근거하여 각 뉴런에 대해 결정된다. 트레이닝 동안 이러한 보정의 도입은 대상 뉴런(116)에 대한 편차(128)를 0으로 줄이도록 의도된다. 추가적인 이미지들을 구비한 트레이닝 동안, 이전에 사용된 이미지들에 관련된 새로운 에러들이 다시 발생할 수 있다. 이러한 추가적인 에러들을 제거하기 위해, 한 트레이닝 시기의 완료 이후, p-net(100)의 모든 트레이닝 이미지들에 대한 에러들이 계산될 수 있고, 민약 이러한 에러들이 미리 결정된 값들 보다 크다면, 하나 이상의 추가적인 트레이닝 시기들이 에러가 타겟 또는 미리 설정된 값 보다 작게 될 때까지 이루어진다.
도 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"를 채택할 수 있다.
프레임(204)의 이후, 방법은 프레임(206)으로 진행하고, 방법은 분배기(114)를 통해, 입력 값과 관련하여, 대상 입력(102)에 연결된 시냅스(118) 상에 위치한 다수의 보정 가중치들로부터 하나 이상의 보정 가중치(112)를 선택하는 것을 포함한다. 앞서 설명한 것처럼, 각 보정 가중치(112)는 그 각각의 가중치 값에 의해 정의된다. 프레임(206에서, 방법은 추가적으로 분배기(114)를 통해, 다수의 영향 계수들(134)을 다수의 보정 가중치(112)로 할당하는 것을 포함할 수 있다. 프레임(206)에서 방법은 뉴런 합(120)을 작성하기 위해 미리 결정된 비율에서 다수의 보정 가중치(112) 중 하나에 대해 각 영향 계수(134)를 할당하는 것을 포함할 수도 있다. 또한, 프레임(206)에서 방법은 뉴런(116)을 통해, 그에 연결된 모든 시냅스들(118)에 대해 영향 계수(134)를 할당하는 것을 포함할 수 있다. 추가적으로, 프레임(206)에서 방법은 각 영향 계수(134)에 의해 정해진 비율에 따라 뉴런 합(120)을 작성하기 위해 사용된 각 보정 가중치(112)에 대해 결정된 차이의 비율을 가중치 보정 계산기(122)를 통해 적용하는 것을 포함할 수 있다.
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과 같이 식별될 수 있다.
프레임(206)에 후속하여, 방법은 프레임(208)으로 진행한다. 프레임(208)에서, 방법은 뉴런 합(120)을 작성하기 위해 시냅스(118)를 통해 입력(102)에 연결된 특정 뉴런(116)에 의해 선택된 보정 가중치(112)의 가중치 값들을 합하는 것을 포함할 수 있다. p-net(100)의 구조에 대해 앞서 설명한 것처럼, 각 뉴런(116)은 적어도 하나의 출력(117)을 포함한다. 프레임(208)의 이후, 방법은 프레임(210)으로 진행하고, 방법은 신호값을 갖는 원하는 출력 신호(124)를 가중치 보정 계산기(122)를 통해 수신하는 것을 포함한다. 프레임(210)에 후속하여, 방법은 방법이 원하는 출력 신호(124)의 값으로부터 뉴런 합(120)의 편차(128)를 가중치 보정 계산기(122)를 통해 결정하는 것을 포함하는 프레임(212)으로 진행한다.
p-net(100)의 설명에서 앞서 설명한 것처럼, 원하는 출력 신호 값으로부터 뉴런 합(120)의 편차(128)의 결정은 그 사이에서 수학적 차이를 결정하는 것을 포함할 수 있다. 추가적으로, 각 보정 가중치(112)의 변형은 뉴런 합(120)을 작성하도록 사용된 각 보정 가중치에 대해 수학적 차이를 배분하는 것을 포함할 수 있다. 대안으로, 수학적 차이의 배분은 뉴런 합(120)을 작성하기 위해 사용된 각 보정 가중치(112)의 사이에서 결정된 차이를 동일하게 나누는 것을 포함할 수 있다. 다른 개별적인 실시예에서, 편차(128)의 결정은 또한 그에 따라 편차 계수를 작성하기 위해 뉴런 합(120)에 의해 원하는 출력 신호(124)의 값을 나누는 것을 포함할 수 있다. 또한, 이러한 경우에서, 각 보정 가중치(112)의 변형은 편차 계수를 작성하기 위해 뉴런 합(120)을 작성하는데 사용된 각 보정 가중치(112)를 곱하는 것을 포함할 수 있다.
프레임(212)의 이후, 방법은 프레임(214)으로 진행한다. 프레임(214)에서 방법은 결정된 편차(128)를 사용하여 각 보정 가중치 값을 가중치 보정 계산기(122)를 통해 변형하는 것을 포함한다. 변형된 보정 가중치 값은 이후 합산되거나 합해지고, 그리고 새로운 뉴런 합(120)을 결정하는데 사용될 수 있다. 합산되어 변형된 보정 가중치 값은 원하는 출력 신호(124)의 값으로부터 뉴런 합(120)의 편차를 최소화하기 위해 제공하고 따라서 p-net(100)을 트레이닝할 수 있다. 프레임(214)에 후속하여, 방법(200)은 원하는 출력 신호(124)의 값으로부터 뉴런 합(120)의 편차가 충분히 최소화될 때까지 추가적인 트레이닝 시기를 수행하기 위해 프레임(202)으로 돌아갈 수 있다. 다시 말해서, 추가적인 트레이닝 시기들이 원하는 출력 신호(124) 상의 뉴런 합(120)이 미리 결정된 편차 또는 에러 값 내로 수렴하도록 수행될 수 있고, p-net(100)은 트레이닝된 것으로 고려되고 새로운 이미지들과 동작을 위해 준비할 수 있다.
전반적으로, 입력 이미지(106)는 p-net(100)의 트레이닝을 위해 준비될 필요가 있다. 트레이닝을 위한 p-net(100)의 준비는 전반적으로 입력 이미지들(106), 다수의 경우, 대상 입력 이미지들에 대응하는 원하는 출력 이미지들(126)을 포함하는 트레이닝 이미지들의 세트의 형성으로 시작된다. p-net(100)의 트레이닝을 위해 입력 신호들 I1, I2 … Im 에 의해 정의된 입력 이미지들(106)(도 2에 도시)는 예를 들어, 사람 이미지 또는 다른 객체들의 인식, 특정 행동의 인식, 클러스터링 또는 데이터 분류, 통계학적 데이터의 분석, 패턴 인식, 예측, 또는 특정 과정들의 컨트롤과 같이 p-net이 다루도록 할당된 태스크들과 부합하여 선택된다. 따라서, 입력 이미지(106)는 예를 들어, jpeg, gif, 또는 pptx 포맷을 사용하여 컴퓨터에 도입되기 적합한 어느 형태, 테이블, 차트, 다이어그램과 그래픽, 다양한 문서 포맷 또는 기호들의 세트의 형태로 표시될 수 있다.
p-net(100)의 트레이닝을 위한 준비는 예를 들어, 모든 이미지들을 동일한 수의 신호들을 갖는 포맷으로, 또는 사진의 경우, 동일한 수의 화소로 변환하는 것과 같이, p-net(100)에 의해 대상 이미지의 프로세싱을 위해 편리한 그 통일화를 위해 선택된 입력 이미지(106)의 변환을 포함할 수 있다. 색상 이미지들은 예를 들어, 세 개의 기본 색상의 조합으로서 표현될 수 있다. 이미지 변환은 예를 들어, 공간에서 이미지를 들어내고, 기호, 숫자, 또는 메모를 추가하는 것뿐만 아니라, 해상도, 밝기, 명암, 색상, 관점, 시각, 초점거리 및 초점, 이미지의 시각적 특징을 변경하는 특성의 변환을 포함할 수 있다.
간격들의 개수의 선택 이후, 특정 입력 이미지는 즉, 실제 신호값들이 각 대상 개별적 신호들이 속한 간격들의 숫자로서 기록될 수 있는 간격 포맷의 입력 이미지로 컨버팅될 수 있다. 이러한 절차는 특정 이미지에 대해 각 트레이닝 시기에서 수행될 수 있다. 그러나, 이미지는 간격 숫자들의 세트로서 한번 형성될 수도 있다. 예를 들어, 도 7에서 초기 이미지는 사진으로서 표시되고, 반면 "디지털 포맷의 이미지"의 테이블에서 동일한 이미지는 디지털 코드의 형태로 표시되며, "간격 포맷의 이미지" 테이블에서 이미지는 간격 숫자의 세트로서 표시되며, 개별적인 간격은 디지털 코드의 각 10개 값들을 위해 할당된다.
설명된 것처럼 p-net(100)의 설명된 구조와 트레이닝 알고리즘 또는 방법(200)은 p-net의 계속되거나 반복되는 트레이닝을 허용하고, 따라서, 트레이닝 과정의 시작에서 입력 이미지(106)의 트레이닝의 완료된 세트를 형성할 필요가 없다. 상대적으로 작은 트레이닝 이미지들의 시작 세트를 형성하는 것이 가능하고, 이러한 시작 세트는 필요한만큼 확장될 수 있다. 입력 이미지들(106)은 예를 들어, 한 사람의 사진의 세트, 고양이의 사진의 세트, 또는 자동차의 사진의 세트와 같이 구분되는 카테고리로 나뉠 수 있고, 각 카테고리는 사람의 이름이나 특정 라벨과 같은 단일 출력 이미지에 대응한다. 원하는 출력 이미지(126)는 필드 또는 디지털의 테이블을 나타내고, 각 포인트는 -∞에서 +∞까지 특정 수치값에 대응한다. 원하는 출력 이미지(126)의 각 포인트는 p-net(100)의 뉴런들의 하나의 출력에 대응한다. 원하는 출력 이미지(126)는 이미지, 텍스트, 공식, 바코드와 같은 기호의 세트 또는 소리의 디지털 또는 아날로그 코드로 인코딩될 수 있다.
가장 간단한 경우에서, 각 입력 이미지(106)는 출력 이미지에 대응할 수 있고, 대상 입력 이미지를 인코딩할 수 있다. 이러한 출력 이미지의 포인트들의 하나는 예를 들어 100%인 최대 가능한 값을 할당받을 수 있고, 모든 다른 포인트들은 예를 들어 0의 최소 가능한 값을 할당받을 수 있다. 이러한 경우, 후속하는 트레이닝에서, 트레이닝 이미지들과 유사한 가능성의 형태에서 다양한 이미지들의 확률적 인식이 가능하게 될 것이다. 도 8은 사각형과 원의 두 이미지들의 인식에 대해 트레이닝된 p-net(100)이 각 그림이 합이 반드시 100%는 아닌 확률로서 표현된 각 그림의 일부 구성들을 포함한 사진을 인식할 수 있는지 예를 도시한다. 트레이닝을 위해 사용된 다른 이미지들의 사이에서 유사도의 확률을 정의하는 것에 의해 패턴 인식의 과정는 특정 이미지를 분류하는데 사용될 수 있다.
정확도를 개선하고 에러를 배제하기 위해, 코딩이 하나의 출력 보다는 여러 뉴럴 출력의 세트를 사용하여 수행될 수 있다(이하 참조). 가장 단순한 경우에서, 출력 이미지들이 트레이닝에 앞서 준비될 수 있다. 그러나, 트레이닝 동안 p-net(100)에 의해 형성되는 출력 이미지들을 갖는 것 역시 가능하다.
p-net(100)에서, 입력 및 출력 이미지들을 인버팅하는 가능성도 역시 있다. 다시 말해서, 입력 이미지(106)는 디지털 또는 아날로그 값들의 필드 또는 테이블의 형태로 있을 수 있고, 각 포인트는 p-net의 하나의 입력에 대응하며, 반면, 출력 이미지는 예를 들어, jpeg, gif, pptx 포맷을 사용하여 컴퓨터에 도입되기 적합한 어느 형태, 테이블, 차트, 다이어그램과 그래픽, 다양한 문서 포맷 또는 기호들의 세트의 형태로 표시될 수 있다. 결과적인 p-net(100)은 이미지의 관련된 검색, 음악적 표현, 수식 또는 데이터 세트 뿐만 아니라 시스템을 보존하는데 상당히 적합할 수 있다.
입력 이미지(106)의 준비에 후속하여, 통상적으로 p-net(100)은 형성될 필요가 있고 및/또는 존재하는 p-net의 파라미터들은 특정 태스크(들)를 핸들링하기 위해 설정되어야 한다. p-net(100)의 형성은 후속하는 목적을 포함할 수 있다.
● 입력 및 출력의 개수에 의해 정의되는 p-net(100)의 차원(dimensions);
● 모든 입력들에 대한 시냅스 가중치(108);
● 보정 가중치(112)의 개수
● 입력 신호(104)의 다른 값들을 위한 보정 가중치 영향 계수들(Ci,d,n)의 분포; 및
● 원하는 트레이닝의 정확도
입력의 개수는 입력 이미지(106)의 크기에 기초하여 결정된다. 예를 들어, 다수의 화소들이 사진에 사용될 수 있고, 반면 출력의 선택된 개수는 원하는 출력 이미지(126)의 크기에 의존할 수 있다. 일부 경우에서, 출력의 선택된 개수는 트레이닝 이미지의 카테고리의 개수에 의존할 수 있다.
개별적인 시냅스 가중치(108)의 값들은 -∞에서 +∞의 범위에 있을 수 있다. 0 보다 작은 시냅스 가중치(108)는 신호 증폭을 나타낼 수 있고, 특정 입력으로부터 또는 예를 들어, 많은 수의 다른 개별 또는 객체들을 포함하는 사진에서 사람 얼굴의 더 효과적인 인식을 위해 특정 이미지로부터 영향을 향상시키는데 사용될 수 있다. 반면, 0보다 큰 시냅스 가중치(108)의 값들은 신호 감쇄를 나타내는데 사용될 수 있고, p-net(100)의 필요한 계산의 수를 줄이고 동작 속도를 증가시키기 위해 사용될 수 있다. 전반적으로, 시냅스 가중치(108)가 커질수록, 보다 감쇄된 신호가 대응하는 뉴런으로 전송된다. 만약 모든 입력들에 대해 대응하는 모든 시냅스 가중치(108)가 동일하고 뉴런들이 모든 입력들에 동일하게 연결된다면, 신경망은 범용적으로 될 것이고, 사전에 이미지의 특성에 대해 거의 알려져 있지 않은 때와 같이 통상적인 태스크들에 대해 가장 효과적으로 될 것이다. 그러나, 이러한 구조는 트레이닝 및 동작 동안 요구되는 계산의 수가 점차적으로 증가하게 될 것이다.
도 9는 입력과 각 뉴런들의 연관이 통계학적 정규 분포와 부합하여 줄어드는 p-net(100)의 일 실시예를 도시한다. 시냅스 가중치(108)의 고르지 않은 분포는 전체 입력 신호가 특정 입력에 대해 타겟 또는 "중앙" 뉴런에 전달되는 것을 유도할 것이고, 따라서 대상 시냅스 가중치에 대해 0의 값을 할당한다. 추가적으로, 시냅스 가중치의 고르지 않은 분포는 다른 뉴런들이 예를 들어, 정규(normal), 대수-정규(log-normal), 정현(sinusoidal) 또는 다른 분포를 사용하여 감소된 입력 신호값들을 수신하도록 유도할 수 있다. 감소된 입력 신호값들을 수신하는 시냅스 가중치(108)의 값들은 "중앙" 뉴런으로부터 그 거리의 증가를 따라 함께 증가할 수 있다. 이러한 경우에서, 계산의 개수는 줄어들 수 있고 p-net의 동작은 속도가 빨라질 수 있다. 이러한 네트워크에서, 완전하게 연결되고 불완전하게 연결된 것으로 알려진 신경망들의 조합은 예를 들어 사람 얼굴 또는 영화의 연속적인 프레임과 같은 강한 내부 패턴들을 갖는 이미지들의 분석을 위해 대단히 효과적일 수 있다.
도 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)의 완성은 또한 트레이닝이 계속되는 동안 가능할 수도 있다.
p-net(100)이 미리 형성되면, 특정 시냅스 상의 선택된 보정 가중치의 개수는 입력 신호들의 범위 내의 간격들의 개수와 동일할 수 있다. 추가적으로, 보정 가중치들은 개별적인 간격의 모양에 대응한 신호들로서 p-net(100)의 형성 이후 작성될 수 있다. 전통적인 신경망(10)과 유사하게, p-net(100)의 파라미터의 선택과 설정은 목적된 실험의 일련을 통해 제공된다. 이러한 실험은 (1) 모든 입력들에서 동일한 시냅스 가중치(108)를 갖는 p-net의 형성 및 (2) 선택된 이미지를 위한 입력 신호값들의 평가와 간격들의 개수의 초기적 선택을 포함할 수 있다. 예를 들어, 바이너리(하나의 색상) 이미지의 인식을 위해, 단지 2개의 간격을 갖는 것으로 충분할 수 있고; 8비트 이미지의 질적인 인식을 위해 최대 256개의 간격들이 사용될 수 있고; 복잡한 통계적 의존성의 근사치는 수십 또는 심지어 수백개의 간격을 필요로할 수 있고; 큰 데이터베이스를 위해 간격들의 개수는 수천일 수 있다.
p-net(100)의 트레이닝의 과정에서, 입력 신호들의 값들은 특정 간격들의 사이에서 분포됨에 따라 통합(rounded)될 수 있다. 따라서, 간격의 개수에 의해 나누어진 범위의 폭보다 큰 입력 신호들의 정확도는 요구되지 않을 수 있다. 예를 들어, 입력 값 범위가 100 유닛에 대해 설정되고 간격의 개수가 10이면, ± 5 이상의 정확도는 요구되지 않을 것이다. 이러한 실험은 (3) 특정 입력 신호를 위해 간격에 대응하는 보정 가중치를 위해 1과 동일하게 설정될 수 있고, 반면 모든 잔존하는 보정 가중치들을 위한 보정 가중치 영향은 0으로 설정될 수 있는 입력 신호들의 값의 전체 범위를 통한 간격들의 균일한 분포와 보정 가중치 영향 계수들 Ci,d,n을 위한 가장 단순한 분포의 선택을 포함할 수 있다. 이러한 실험은 추가적으로 (4) 미리 결정된 정확도로 하나, 그 이상, 또는 전체 준비된 트레이닝 이미지들을 갖는 트레이닝 p-net(100)를 포함할 수 있다.
미리 결정된 정확도를 위한 p-net(100)의 트레이닝 시간은 실험에 의해 설정될 수 있다. 만약 p-net(100)의 정확도 및 트레이닝 시간이 충분하다면, 선택된 설정들은 유지되거나 변경될 수 있고, 반면 검색은 보다 효과적인 분산을 위해 계속된다. 만약, 요구된 정확도가 달성되지 않았다면, 취적화 목적을 위해 특정 변형의 영향이 평가될 것이고, 이것은 그때 하나 또는 그룹으로 수행될 수 있다. 이러한 변형의 평가는 간격들의 개수를 증가시키거나 줄이는 변경; 보정 가중치 영향 계수 (Ci,d,n)의 분포 타입을 변경하고, 정규, 파워, 대수 또는 대수 정규 분포를 사용하는 것처럼 간격들의 비정규 분포로 분산을 테스팅; 및 예를 들어 비정규 분포에 대한 전이와 같이 시냅스 가중치(108)의 값을 변경하는 것을 포함할 수 있다.
만약, 정확한 결과를 위해 요구되는 트레이닝 시간이 과도한 것 같다면, 증가된 수의 간격들을 갖는 트레이닝은 트레이닝 시간 상에 그 효과에 대해 평가될 수 있다. 만약, 그 결과, 트레이닝 시간이 감소되면, 간격들의 개수에서 증가는 바람직한 트레이닝 시간이 필요한 정확도의 손실없이 획득될 때까지 반복될 수 있다. 만약, 트레이닝 시간이 간격들의 증가하는 개수에 따라 줄어드는 대신 증가한다면, 추가적인 트레이닝은 줄어든 개수의 간격들로 수행될 것이다. 만약, 간격들의 줄어든 개수가 줄어든 트레이닝 시간을 유도한다면, 간격들의 개수는 바람직한 트레이닝 시간이 획득될 때까지 더 감소할 수 있다.
p-net(100) 설정의 형성은 미리 결정된 트레이닝 시간 및 트레이닝 정확도의 실험적 결정으로 트레이닝을 통할 수 있다. 파라미터들은 위에서 설명한 것들과 유사한 실험적 변경을 통해 개선될 수 있다. 다양한 p-net을 갖는 실제 실행은 설정 선택의 절차는 전반적으로 간단하고 시간을 소모하지 않음을 보여주고 있다.
도 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으로 설정될 수 있다.
아래의 관계에서 “n”으로서 식별된 각 뉴런(116)에 대해, 뉴런 출력 합 ∑1, ∑2.. .∑n은 아래 관계에서 Wi,d,n로서 식별된 각 보정 가중치(112)를 특정 뉴런에 대해 기여하는 모든 시냅스들(118)에 대해 대응하는 보정 가중치 영향 계수 Ci,d,n를 곱하고, 획득된 값들을 모두 더함에 의해 형성된다.
Wi,d,n x Ci,d,n의 곱은 예를 들어, 분배기(114)와 같은 저장된 가중치를 갖는 다양한 디바이스들에 의해 또는 뉴런(116)에 의해 직접 수행될 수 있다. 합들은 뉴런 출력(117)을 통해 가중치 보정 계산기(122)로 전달된다. 원하는 출력 이미지(126)를 설명하는 원하는 출력 신호들 O1, O2 … On은 역시 계산기(122)로 공급된다.
위에서 논의한 것처럼, 가중치 보정 계산기(122)는 출력 신호 O1, O2 … On 를 갖는 뉴런 출력 합 ∑1,∑2 ... ∑n의 비교에 의해 보정 가중치의 변형된 값들을 계산하기 위한 연산 디바이스이다. 도 11은 뉴런 출력 합 ∑1에 대해 기여하는 보정 가중치 Wi,d,1의 세트가 대응하는 보정 가중치 영향 계수 Ci,d,1에 의해 곱해지고 이러한 곱들이 뉴런 출력 합 ∑1에 의해 더해지는 것을 보여준다.
트레이닝이 시작함에 따라, 예를 들어, 제 1 시기 동안, 보정 가중치 Wi,d,1는 트레이닝에 대해 사용된 입력 이미지(106)에 대응하지 않으며, 따라서, 뉴런 출력 합들 ∑1는 대응하는 원하는 출력 이미지(126)와 동일하지 않다. 최초 보정 가중치 Wi,d,1에 기초하여, 가중치 보정 시스템은 뉴런 출력 합 ∑1에 기여하는 모든 보정 가중치들(Wi,d,1)을 변경하기 위해 사용되는 보정값 Δ1을 계산한다. P-net(100)은 특정된 뉴런(116)에 기여하는 모든 보정 가중치들 Wi,d,n에 대한 집단적인 보정 신호들의 그 형성과 사용에 대해 다양한 옵션들과 변형들을 허용한다.
이하에는 집단적인 보정 신호들의 형성과 사용에 대한 2개의 예시적이고 비제한적인 변형들이 있다. 변형 1 - 원하는 출력 신호와 획득된 출력 합들의 차이에 기초하여 보정 신호들의 형성 및 사용은 다음과 같다:
● 수식에 따라 뉴런 “n”에 기여하는 모든 보정 가중치들에 대해 동일한 보정값 Δn의 계산
*
여기서,
On - 뉴런 출력 합 ∑n에 대응하는 원하는 출력 신호
S - 뉴런 “n”에 연결된 시냅스들의 개수
● 수식에 따라 뉴런 “n”에 기여하는 모든 보정 가중치 Wi,d,n의 변경
변형 2 - 획득된 출력 합에 대한 원하는 출력 신호의 비에 기초한 보정 신호들의 형성 및 사용은 다음과 같다:
● 수식에 따라 뉴런 “n”에 기여하는 모든 보정 가중치들에 대해 동일한 보정값 Δn의 계산
● 수식에 따라 뉴런 “n”에 기여하는 모든 보정 가중치들 Wi,d,n의 변형
어떠한 적용가능한 변형에 의한 보정 가중치들 Wi,d,n의 변형은 원하는 출력 신호의 값 상에 그 출력 합이 수렴함에 의해 각 뉴런(116)에 대한 트레이닝 에러를 줄이기 위해 의도된다. 이러한 방식에서, 특정 이미지에 대한 트레이닝 에러는 이러한 것이 0과 동일하거나 가까워질 때까지 줄어들 수 있다.
트레이닝 동안 보정 가중치 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의 개수가 기여할수록, 특정 이미지에 대한 더 적은 트레이닝이 다른 이미지들에 대한 트레이닝에 영향을 미치게 된다.
전반적으로 각 트레이닝 시기는 전체 트레이닝 이미지들을 위한 전체 트레이닝 에러 및/또는 로컬 트레이닝 에러들의 대체적인 수렴으로 종료한다. 에러들은 예를 들어, 평균 제곱 오차(Mean Squared Error (MSE)), 평균 절대 오차(Mean Absolute Error (MAE)), 또는 표준 평균 오차 평균(Standard Error Mean (SEM))과 같은 알려진 통계적 방법을 사용하여 평가될 수 있다. 만약 전체 에러 또는 로컬 에러들의 일부가 너무 크면, 추가적인 트레이닝 시기가 에러가 미리 결정된 에러 값에 비해 작도록 줄어들 때까지 이루어질 수 있다. 트레이닝(도 8에 도시)을 위해 사용된 다른 이미지들 사이의 유사도의 퍼센티지를 정의하는 이미지 인식의 이전에 언급한 과정은 그 자체로 이전에 정의된 카테고리를 따라 이미지의 분류를 하는 과정이다.
예를 들어, 이미지들을 이전에 특정되지 않았던 특성 분류 또는 그룹으로 나누는 것과 같이 클러스터링을 위해, 방법(200)의 기초적 트레이닝 알고리즘은 수정된 자가-조직 지도(Organizing Maps (SOM)) 접근으로 수정될 수 있다. 특정 입력 이미지에 대응하는 원하는 출력 이미지(126)는 출력 뉴런 합(120)의 최대값으로 위닝 뉴런들의 세트에 기초한 p-net(100)을 트레이닝하는 과정에서 직접 형성될 수 있다. 도 22는 어떻게 방법(200)의 기초 알고리즘의 사용이 출력 뉴런 합들의 프라이머리 세트를 작성하는지를 도시하고, 세트는 또한 컨버팅되어 여러 더 큰 합들이 그들의 값을 유지하거나 또는 증가하며, 반면 모든 다른 합들은 0과 동일하게 고려된다. 이러한 출력 뉴런 합들의 변환된 세트는 원하는 출력 이미지(126)로서 받아들여진다.
위에서 설명한 것처럼 형성된, 원하는 출력 이미지(126)의 세트는 클러스터들 또는 그룹들을 포함한다. 그러한 원하는 출력 이미지(126)의 세트는 선형적으로 불가분의 이미지들의 클러스터링을 허용하며, 이것은 전통적인 네트워크(10)과 차별된다. 도 13은 설명된 접근법이 복합적인 가상의 이미지 "고양이-자동차"를 클러스터링하는 것을 보조하는 방법을 보여주며, 이미지들의 다른 구성들은 다른 클러스터들-고양이들과 자동차들에 대해 할당된다. 원하는 출력 이미지들(126)의 세트는 예를 들어 클러스터링의 결과로서 형성된 기준에 기초하여 다른 분류, 통계적 분석, 이미지 선택을 만들기 위해 사용될 수 있다. 또한, p-net(100)에 의해 작성된 원하는 출력 이미지들(126)은 다른 또는 추가적인 p-net을 위한 입력 이미지로서 사용될 수 있고, 대상 p-net(100)을 위해 설명된 라인들을 따라 역시 형성될 수 있다. 따라서, 형성된 원하는 출력 이미지들(126)은 다층(multi-layer) p-net의 후속 층을 위해 사용될 수 있다.
전통적인 신경망(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)에 의해 작성될 수 있다.
예를 들어, 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)의 추가적인 트레이닝이 제공될 수 있다.
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"로 나눔으로써 제공될 수 있다.
최근 경우에서, p-net(100)은 이미지, 패턴 및 이미지 또는 이미지들의 세트들에 내재된 연관성을 인식하는 그 능력을 보장하기 위해 트레이닝될 수 있다. 가장 간단한 경우에서 인식 과정는 방법(200)의 부분으로서 개시된 기초 알고리즘에 따른 트레이닝 과정의 제 1 단계들을 반복한다. 특히,
● 직접 인식은 포맷 이미지들에 대해 트레이닝을 하기 위해 사용된 동일한 룰에 따라 이미지의 포맷팅으로 시작한다;
● 이미지는 트레이닝된 p-net(100)의 입력으로 보내지고, 분배기들은 트레이닝 동안 설정되었던 입력 신호의 값들에 대응되는 보정 가중치 Wi,d,n을 할당하고, 뉴런들은 도 8에 도시된 것처럼, 각 뉴런 합을 작성한다.
● 만약 출력 이미지(126)를 표시하는 결과 출력 합들이 p-net(100)이 트레이닝된 이미지들의 하나와 완전하게 충족하면, 객체의 정확한 인식이 존재한다; 그리고
● 만약 출력 이미지(126)가 p-net(100)이 트레이닝된 여러 이미지들과 부분적으로 충족하면, 결과는 퍼센티지로서 다른 이미지들과 매칭율을 보여준다. 도 13은 고양이와 차량의 이미지들의 조합에 기초하여 만들어진 복잡한 이미지의 인식 과정동안, 출력 이미지(126)는 특정 이미지 조합을 나타내고, 조합에 대한 각 최초 이미지들의 기여의 퍼센티지를 나타낸다.
예를 들어, 만약 특정 사람의 여러 사진이 트레이닝에 사용되었다면, 인식된 이미지는 첫번째 사진에 대해 90%, 두번째 사진에 대해 60%, 그리고 세번째 사진에 대해 35%로 대응할 수 있다. 인식된 이미지는 다른 사람 또는 심지어 동물들의 사진들에 대해 특정한 확률로 대응할 수 있고, 이것은 사진들 간에 일부 유사성이 있음을 의미한다. 그러나, 이러한 유사성의 확률은 더 낮기 쉽다. 이러한 가능성에 기초하여, 예를 들어, 베이즈의 정리(Bayes' theorem)에 근거하여 인식의 신뢰성이 결정될 수 있다.
p-net(100)으로, 또한 알고리즘적 및 신경망 인식 방법들의 장점들을 조합한 멀티-스테이지 인식을 구현하는 것이 가능하다. 이러한 멀티-스테이지 인식은 다음을 포함할 수 있다.
● 여기서 "기초 입력들"로 지정된, 입력들의 전체가 아닌 단지 1%-10%를 이용하는 것을 통해 미리 트레이닝된 네트워크에 의해 이미지의 초기 인식. 이러한 입력들의 비율을 균일하게, 무작위로 또는 어떤 다른 분포 함수에 의해 p-net(100) 내에서 분포될 수 있다. 예를 들어, 사진에서 사람의 인식은 다수의 다른 객체를 포함할 수 있다;
● 더 자세한 인식을 위해 가장 유용한 정보를 주는 객체들 또는 객체들의 부분을 선택하는 것. 이러한 선택은 알고리즘적 방법에서처럼 메모리 내에서 미리 설정된 특정 객체들의 구조에 따라 제공되거나 또는 색상의 구배, 밝기 및/또는 이미지의 깊이에 따라 제공된다. 예를 들어, 초상화의 인식에서, 후속하는 인식 영역들이 선택될 수 있다: 문신, 차량 번호 또는 가옥 번호 등과 같은 어떠한 특정 구성들 뿐만 아니라 눈, 입의 가장자리, 코 형상은 또한 유사 접근을 사용하여 선택되고 인식될 수 있다; 그리고
● 선택된 이미지들의 상세한 인식은 필요한다면 역시 가능하다.
p-net(100)과 그 트레이닝의 컴퓨터 에뮬레이션의 형성은 어느 프로그래밍 언어를 사용하여서도 위의 언급에 기초하여 제공될 수 있다. 예를 들어, 객체 지향 프로그래밍이 사용될 수 있고, 여기서 시냅스 가중치(108), 보정 가중치(112), 분배기(114) 및 뉴런들(116)은 프로그래밍 객체들 또는 객체들의 분류를 나타내며, 관련성은 링크나 메시지를 통한 객체 분류를 통해 세워지고, 상호작용의 알고리즘은 객체들의 사이와 객체 분류들의 사이에서 설정된다.
p-net(100)의 형성과 트레이닝 소프트웨어 에뮬레이션은 다음을 포함할 수 있다:
1. p-net(100)의 형성과 트레이닝의 준비, 특히:
● 특정 태스크와 부합하는 디지털 형태로 트레이닝 입력 이미지들의 세트의 컨버전;
● 예를 들어, 주파수, 크기, 위상 또는 좌표와 같은 트레이닝을 위해 사용되기 위한 입력 신호들의 파라미터들의 선택을 포함하는 결과적인 디지털 이미지들의 분석; 그리고
● 트레이닝 신호를 위한 범위, 대상 범위 내의 간격들의 수, 보정 가중치 영향 계수 Ci,d,n의 분포를 설정
2. p-net 소프트웨어 에뮬레이션의 형성은 이하를 포함한다.
● p-net(100)의 입력들의 세트의 형성. 예를 들어, 입력들의 개수는 트레이닝 입력 이미지에서 신호들의 개수와 같을 수 있다;
● 뉴런들의 형성, 각 뉴런은 추가하는 디바이스를 나타낸다;
● 시냅스 가중치를 갖는 시냅스의 세트의 형성, 각 시냅스는 하나의 p-net과 하나의 뉴런에 연결된다;
● 각 시냅스에서 가중치 보정 블록들의 형성, 가중치 보정 블록들은 분배기들과 보정 가중치들을 포함하고, 각 보정 가중치는 다음의 특징을 갖는다:
○ 보정 가중치 입력 인덱스(i);
○ 보정 가중치 뉴런 인덱스(n);
○ 보정 가중치 간격 인덱스(d); 그리고
○ 보정 가중치 초기값(Wi,d,n).
● 간격들과 보정 가중치들의 사이에서 연관을 지정
3. 다음을 포함하여 하나의 출력 이미지로 각 뉴런을 트레이닝:
● 다음을 포함하는 보정 가중치 영향 계수 Ci,d,n를 지정:
○ 각 입력에 의해 수신된 트레이닝 입력 이미지의 입력 신호에 대응하는 간격을 결정; 그리고
○ 모든 시냅스들에 대한 모든 보정 가중치들에 보정 가중치 영향 계수 Ci,d,n의 크기를 결정.
● 대응하는 보정 가중치 영향 계수 Ci,d,n에 의해 곱해진 뉴런에 기여하는 모든 시냅스 가중치들의 보정 가중치값 Wi,d,n을 더하는 것에 의해 각 뉴런 "n"에 대한 뉴런 출력 합(∑n)을 계산:
● 대응하는 원하는 출력 신호 On으로부터 뉴런 출력 합 ∑n의 뺄셈을 통해 트레이닝 에러(Tn)의 편차를 계산:
● 뉴런 "n"에 연결된 시냅스들 "S"의 개수에 의해 트레이닝 에러를 나눔으로써 뉴런 "n"에 기여하는 모든 보정 가중치들에 대한 균등한 보정값(Δn)을 계산:
● 대응하는 보정 가중치 영향 계수들 Ci,d,n에 의해 나누어진 보정값 Δn을 각 보정 가중치에 더함으로써 각 뉴런에 기여하는 모든 보정 가중치들 Wi,d,n을 변형:
균등한 보정값 (Δn)을 계산하고 뉴런 "n"에 기여하는 모든 보정 가중치에 대한 보정 가중치 Wi,d,n를 변형하는 다른 방법은 다음을 포함할 수 있다.
● 뉴런 출력 합 ∑n에 의해 원하는 출력 이미지 On의 신호를 나눔
● 보정 값 Δn에 의해 보정 가중치들을 곱함에 의해 뉴런에 기여하는 보정 가중치들 Wi,d,n을 변형:
4. 다음을 포함하여 모든 트레이닝 이미지들을 이용하여 p-net(100)을 트레이닝:
● 하나의 트레이닝 시기에서 포함된 모든 선택된 트레이닝 이미지들에 대해 위에서 설명한 과정을 반복; 그리고
● 특정 트레이닝 시기의 에러 또는 에러들을 결정하고, 이러한 에러(들)을 미리 결정된 허용 가능한 에러 레벨과 비교하고, 트레이닝 에러들이 미리 결정된 허용 가능한 에러 레벨보다 작게 될 때까지 트레이닝 시기들을 반복하는 것.
객체 지향 프로그래밍을 이용한 p-net(100)의 소프트웨어 에뮬레이션의 실제 예시는 이하에서 설명되고 도 1-21에서 도시된다.
뉴런유닛(NeuronUnit) 객체 분류의 형성은 다음의 형성을 포함할 수 있다:
● 시냅스 분류의 객체들의 세트
● 변수를 나타내는 뉴런(116), 추가는 트레이닝 동안 수행된다; 그리고
● 변수를 나타내는 계산기(122), 바람직한 뉴런 합(120)의 값은 저장되고 보정 값 Δn의 계산은 트레이닝 과정 동안 수행된다.
p-net(100)을 제공하는 분류 뉴런유닛(Class NeuronUnit)은 다음을 포함할 수 있다:
● 뉴런 합(120)의 형성;
● 원하는 합들의 설정;
● 보정값 Δn 의 계산; 그리고
● 계산된 보정값 Δn을 보정 가중치 Wi,n,d에 더함.
객체 분류 시냅스(object class Synapse)의 형성은 다음을 포함할 수 있다:
● 보정 가중치 Wi,n,d의 설정; 그리고
● 시냅스(118)에 연결된 입력을 나타내는 포인터.
분류 시냅스(Class Synapse)는 다음의 기능을 수행할 수 있다:
● 보정 가중치 Wi,n,d의 초기화;
● 계수 Ci,d,n 에 의해 가중치 Wi,n,d를 곱하고; 그리고
● 가중치 Wi,n,d의 보정
분류 입력신호(class InputSignal)의 형성은 다음을 포함할 수 있다:
● 특정 입력(102)에 연결된 시냅스들(118) 상의 인덱스들의 설정
● 입력 신호(104)의 값을 포함하는 변수
● 가능한 최소 및 최대 입력 신호의 값들
● 간격 "d"의 수; 그리고
● 간격 길이.
분류 입력신호(Class InputSignal)는 다음의 기능을 제공할 수 있다.
● 다음을 포함하는 p-net(100)의 형성
○ 입력(102)과 시냅스들(118)의 사이의 링크 추가 및 제거; 그리고
○ 특정 입력(102)의 시냅스들(118)을 위한 간격 "d"의 수를 설정
● 최소 및 최대 입력 신호들(104)의 파라미터들의 설정
● p-net(100)의 동작에 대한 기여:
○ 입력 신호(104)를 설정; 및
○ 보정 가중치 임팩트 Ci,d,n 의 상수들을 설정
객체 분류들의 세트를 포함하는 객체 분류 PNET(object class PNet)의 형성:
● 뉴런유닛(NeuronUnit); 그리고
● 입력신호(InputSignal)
분류 PNET은 다음의 기능을 제공함:
● 입력신호 분류의 객체의 수를 설정;
● 뉴런유닛 분류의 객체의 수를 설정; 그리고
● 객체들 뉴런유닛과 입력신호의 함수의 그룹 요청
트레이닝 과정 동안 사이클들이 형성될 수 있고:
● 사이클이 시작하기 전에 0과 동일한 뉴런 출력 합이 형성되고
● 특정 뉴런유닛에 대해 기여하는 모든 시냅스들이 검토되고, 각 시냅스(118)에 대해:
○ 입력 신호(102)에 기초하여, 분배기는 보정 가중치 영향 계수들 Ci,d,n의 설정을 형성한다;
○ 시냅스들(118)의 모든 가중치들 Wi,n,d이 검토되고, 각 가중치에 대해:
■ 가중치 Wi,n,d의 값이 대응하는 보정 가중치 영향 계수 Ci,d,n에 의해 곱해진다;
■ 곱의 결과가 뉴런 출력 합을 형성하기 위해 더해진다;
● 보정값 Δn이 계산된다;
● 예를 들어, Δn / Ci,d,n와 같이, 보정값 Δn이 보정 가중치 영향 계수 Ci,d,n에 의해 나누어진다.
● 특정 뉴런유닛에 대해 기여하는 모든 시냅스들(118)이 검토된다. 각 시냅스(118)에 대해, 대상 시냅스의 모든 가중치 Wi,n,d가 검토되고, 모든 가중치에 대해 그 값은 대응되는 보정값 Δn에 대해 변경된다.
p-net(100)의 추가적인 트레이닝의 이전에 언급된 가능성은 트레이닝 과정이 속도를 빠르게 하고 그 정확도를 개선하는 것을 가능하게 하는 이미지의 인식을 통한 트레이닝과 조합을 허용한다. 서로 약간 다른 필름의 연속적인 프레임들 상에서의 트레이닝과 같이 순차적으로 변경하는 이미지들의 세트 상의 p-net(100)을 트레이닝 할 때, 추가적인 트레이닝은 다음을 포함할 수 있다:
● 제 1 이미지로 트레이닝
● 다음 이미지의 인식 및 새로운 이미지와 네트워크가 초기적으로 트레이닝된 이미지 사이의 유사도의 퍼센티지를 식별. 추가적인 트레이닝은 인식 에러가 미리 결정된 값 보다 작다면 필요하지 않다; 그리고
● 인식 에러가 미리 결정된 값을 초과하면, 추가적인 트레이닝이 제공된다.
위의 기본적인 트레이닝 알고리즘에 의한 p-net(100)의 트레이닝은 이미지 인식의 문제들을 해결하기에 효과적이지만, 오버랩핑되는 이미지들에 기인한 데이터의 손실 또는 변형을 배제하지 못한다. 따라서, 메모리 목적을 위한, 비록 가능하지만, p-net(100)의 사용은 완전히 신뢰적이지 않을 수 있다. 본 실시예는 정보의 손실 또는 변형에 반해 보호를 제공하는 p-net(100)의 트레이닝을 설명한다. 추가적인 제한은 모든 보정 가중치 Wi,n,d가 단지 한번에 트레이닝될 수 있는 것을 필요로하는 기초 네트워크 트레이닝 알고리즘으로 도입될 수 있다. 제 1 트레이닝 사이클의 이후, 가중치 Wi,n,d는 고정되거나 상수로 남아있는다. 이것은 각 보정 가중치에 대해 추가적인 접근 인덱스 "a"를 입력함에 의해 달성될 수 있고, 이것은 트레이닝 과정 동안 대상 보정 가중치 Wi,n,d 에 대한 접근들의 수를 나타내는 앞서 설명한 인덱스이다.
앞서 언급한 것처럼, 각 보정 가중치는 "a"가 트레이닝 과정 동안 대상 가중치에 대한 접근의 수인 명칭 Wi,n,d,a 으로 채택될 수 있다. 예를 들어, 고정되지 않은 가장 단순한 경우에서, 가중치, a=0, 반면 언급한 기초 알고리즘에 의해 변경되거나 고정된 가중치에 대해서는 a = 1. 게다가, 기초 알고리즘을 적용하는 동안, 고정된 값 a =1을 갖는 보정 가중치 Wi,n,d,a는 보정이 이루어지는 가중치들로부터 배제될 수 있다. 이러한 경우, 수식 [5], [6] 및 [7]은 아래와 같이 변형될 수 있다.
기초 알고리즘 고정된 가중치들을 갖는 트레이닝 알고리즘
동일한 보정 값
- 변형 1

S0 - 대상 뉴런에 대해 기여하고 인덱스 a=0을 갖는 모든 보정 가중치들 Wi,n,d,a의 합 Ci,d,n,a
변형된 보정 가중치
- 변형 1

Wi,n,d,0은 대상 뉴런에 대해 기여하고 인덱스 a=0을 갖는 가중치들이고, Ci,d,n,0는 대상 뉴런에 대해 기여하고 인덱스 a=0을 갖는 보정 가중치들에 대한 보정 가중치 영향 계수들
변형된 보정 가중치
- 변형 2
앞의 제한은 앞에서 트레이닝된 보정 가중치 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%로 줄어들 수 있다.
미리 결정된 접근의 수에 도달한 이후, 인덱스 "a"에 의해 의미되는 것처럼, 예를 들어 a=5일 때, 가중치 Wi,n,d,a의 추가적인 변경은 금지될 수 있다. 이러한 접근은 단일한 p-net(100) 내에서 높은 지능 및 정보의 조합을 제공할 수 있다. 네트워크 에러 계산 메커니즘을 사용하여, 허용되는 에러들의 레벨이 설정될 수 있어서 미리 결정된 정확도 범위 내에서 손실을 갖는 정보가 보호될 수 있고, 정확도 범위는 특정 태스크에 따라 할당될 수 있다. 다시 말하면, 시각 이미지로 동작하는 p-net(100)에 대해, 에러는 육안에 의해 포착될 수 없는 레벨로 설정될 수 있고, 이것은 "저장 용량에서의 증가의 중대한 "요인"을 제공한다. 앞의 것은 예를 들어, 영화와 같은 시각적 정보의 높은 효율적 저장의 작성을 가능하게 할 수 있다.
선택적으로 컴퓨터 메모리를 청소하는 능력은 p-net(100)의 연속된 하이레벨 기능에 대해 가치가 있을 수 있다. 이러한 메모리의 선택적인 청소는 저장된 정보의 나머지의 손실이나 변형없이 특정 이미지를 제고함에 의해 이루어질 수 있다. 이러한 청소는 이하와 같이 제공될 수 있다.
● 예를 들어, 네트워크 상에 이미지를 도입하거나 각 이미지의 사용된 보정 가중치들의 리스트를 컴파일링함에 의해 이미지 형성에 참여한 모든 보정 가중치들 Wi,n,d,a 의 식별;
● 각 보정 가중치들 Wi,n,d,a에 대해 인덱스 "a"를 축소; 그리고
● 인덱스 "a"가 0으로 축소된 때 대상 가중치에 대해 보정 가중치들 Wi,n,d,a 를 0 또는 가능한 값들의 범위의 중간에 근접한 임의의 값으로 대체.
인덱스 "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)은 효과적인 노이즈 플터로서 제공될 수 있다.
정보의 손실이 없는 p-net(100) 트레이닝의 설명한 실시예들은 높은 용량 및 신뢰성을 갖는 p-net 메모리를 작성하는 것을 허용한다. 이러한 메모리는 심지어 "캐시 메모리" 시스템에 비해 더 높은 속도를 제공하는 대용량의 고속 컴퓨터 메모리로서 사용될 수 있으나, "캐시 메모리" 시스템을 갖는 종래와 같이 컴퓨터 비용과 복잡도를 증가시키지 않을 것이다. 공개된 데이터에 따라, 일반적으로, 신경망으로 영화를 녹화하는 동안, 메모리는 녹화 품질의 중대한 손실 없이 수십 또는 수백번 압축될 수 있다. 다시 말하면, 신경망은 매우 효과적인 기록 프로그램으로서 동작할 수 있다. p-net(100)의 고속 트레이닝 능력을 갖는 신경망의 이러한 능력을 조합하는 것은 고속 데이터 전송 시스템, 고용량을 갖는 메모리, 예를 들어 코덱스(codex)와 같은 고속 해독 프로그램 멀티미디어 파일의 작성을 허용할 것이다.
p-net(100)에서 데이터가 보정 가중치들 Wi,n,d,a의 세트로서 저장되는 사실에 기인하여, 존재하는 방법들을 통하고 동일한 네트워크 및 키의 사용을 하지 않는 코드 레코딩, 디코딩 또는 p-net에 대한 미인가된 접근은 허용되지 않는다. 따라서, p-net(100)은 데이터 보호의 상당한 정도를 제공할 수 있다. 또한, 종래의 컴퓨터 메모리와 달리, 다른 구성들은 잃어버린 기능들을 보상하기 때문에 p-net(100)의 개별적인 저장 소자들에 대한 손상은 중요하지 않은 해로운 효과를 나타낸다. 이미지 인식 과정에서, 사용된 이미지의 내재된 패턴들은 하나 이상의 구성들에 대한 손상의 결과로서 실제적으로 왜곡되지 않는다. 앞의 것은 컴퓨터의 신뢰성을 획기적으로 향상시키고, 평상시 컨디션이 결함이 있는 것으로 고려될 수 있는 특정 메모리 블록을 사용하는 것을 허용한다. 또한, 이러한 메모리의 타입은 p-net(100)에서 치명적인 바이트들에 대해 영구적인 어드레스들의 부재로 인해 해커 공격에 대해 덜 취약하고, 다양한 컴퓨터 바이러스들에 의한 이러한 시스템의 공격에 대해 영향을 받지 않도록 할 수 있다.
트레이닝에서 사용된 다른 이미지들 사이의 유사도의 퍼센티지의 결정을 갖는 이미지 인식의 이전에 언급된 과정은 위에서 언급한 것처럼 이전에 정의된 카테고리들에 따라 이미지 분류의 과정으로서 채택될 수 있다. 미리 정의되지 않은 속성 또는 그룹으로 이미지들을 분배하는 클러스터링을 위해 기초적인 트레이닝 과정은 변경될 수 있다. 본 실시예는 다음을 포함할 수 있다:
● 준비된 출력 이미지들을 포함하지 않고 트레이닝에 대한 입력 이미지들의 세트의 준비
● 기초 알고리즘에 따라 이루어진 대로 뉴런 출력 합들의 형성을 갖는 네트워크의 형성 및 트레이닝
● 예를 들어, 코호넨 네트워크(Kohonen network)와 유사하게 조직화될 수 있는 위너 출력(winner output), 위너 출력들의 그룹과 같은 최대 출력 합을 갖는 출력의 출력 이미지를 도출하는 선택
● 위너 출력 또는 위너 출력들의 그룹에서 최대 값을 수신하는 원하는 출력 이미지의 작성. 이와 동시에:
○ 선택된 위너 출력들의 수가 예를 들어 1 내지 10의 범위에서 미리 결정되거나, 위너 출력들이 "최대 뉴런 합의 N%보다 작은 것이 없는" 률에 따라 선택될 수 있고, 여기서 "N"은 예를 들어 90-100%일 수 있고; 그리고
○ 모든 다른 출력들은 0과 동일하게 설정될 수 있다.
● 작성된 원하는 출력 이미지를 사용한 기초 알고리즘에 따른 트레이닝, 도 13; 그리고
● 다른 위너들 또는 위너 그룹의 각 이미지에 대한 형성과 함께 다른 이미지에 대한 모든 절차들을 반복.
위의 방식에서 형성된 원하는 출력 이미지들의 세트는 다수의 입력 이미지들이 자연스럽게 분리되도록 클러스터들 또는 그룹들로 설명하는데 사용될 수 있다. 이러한 원하는 출력 이미지들의 세트는 수립된 기준에 따라 및 통계적 분석에서 이미지들을 선택하는 것과 같이 다양한 분류들을 작성하는데 사용될 수 있다. 앞의 것은 또한 앞서 언급한 입력 및 출력 이미지들의 전환을 위해 사용될 수 있다. 다시 말하면, 원하는 출력 이미지들은 예를 들어, 추가적인 네트워크와 같은 다른 것을 위해 입력 이미지들로서 사용될 수 있고, 추가적인 네트워크의 출력은 컴퓨터 입력을 위해 적합한 어떠한 형태로 표현된 이미지일 수 있다.
p-net(100)에서, 설명된 앞의 알고리즘으로 트레이닝의 단일 사이클의 이후, 원하는 출력 이미지들은 작은 출력 합 변화로 작성될 수 있고, 이것은 트레이닝 과정을 느리게 할 수 있고 또한 그 정확도를 줄일 수 있다. 도 21에 도시된 것처럼, p-net(100)의 트레이닝을 개선하기 위해, 포인트들의 초기 변화는 인위적으로 증가하거나 연장될 수 있어서, 포인트들의 크기의 변화는 예를 들어 -50에서 +50까지 가능한 출력값들의 전체 범위를 커버할 수 있다. 이러한 포인트들의 초기 변화의 연장은 선형이거나 비선형일 수 있다.
상황은 예를 들어, 노이즈의 징후와 같이 특정 출력의 최대값이 이상점(outlier)이거나 또는 실수인 경우, 영향을 받을 수 있다. 이러한 것들은 작은 신호들의 크기에 의해 둘러싸인 최대값의 출현에 의해 분명해질 수 있다. 위닝 출력들이 선택된 때, 작은 신호값들은 위너로서 다른 큰 신호들에 의해 둘러싸인 가장 큰 신호들을 선택하는 것을 통해 무시될 수 있다. 이러한 목적을 위해, 중요도 표집(importance sampling)과 같은 분산 축소의 알려진 통계적 기법들이 사용될 수 있다. 이러한 접근은 기본적이고 가치있는 패턴들을 유지하면서 노이즈를 제거하는 것을 허용할 수 있다. 위너 그룹들의 작성은 예를 들어 도 13에서 도시된 것처럼, 하나의 이상의 클러스터에 관련된 이미지와 같은 선형적으로 불가분인 이미지들의 클러스터링을 가능하게 한다. 앞의 것은 정확도에서의 중대한 개선을 제공할 수 있고 클러스터링 에러들의 수를 줄일 수 있다.
p-net(100)의 과정에서 보정해야 할 통상적인 에러들은 다음과 같다:
신경망의 통상적인 에러 p-net(100) 보정의 방법
트레이닝 이미지의 선택에서의 에러. 예를 들어, 사람 이미지의 세트가 고양이의 이미지를 포함함. 대응되는 원하는 출력 이미지를 지우거나 그 입증(demonstration)을 제한
트레이닝 동안 보정되지 않은 네트워크 에러. 예를 들어, 네트워크가 객체의 일부 특징들을 나눌 수 없기 때문에 특정 이미지가 부정확하게 인식됨(선형적 불가분의 영향) 에러가 감지된 이후 p-net(100)의 추가적인 트레이닝; 추가적인 원하는 출력 이미지의 도입
네트워크 정보 용량의 한계에 도달함에 기인하여 정확도가 감소 P-net(100) 확장
에러 보정은 또한 외부 트레이너와 함께 트레이닝할 때 상술한 알고리즘의 도움으로 가능하다.
p-net(100)의 하드웨어 부분은 디지털, 아날로그 또는 결합된 디지털-아날로그 마이크로칩으로 구비될 수 있다. 대표적인 p-net(100) 마이크로칩은 정보의 저장 및 처리 모두에 사용될 수 있다. p-net(100) 마이크로칩은 다양한 가변 저항들, 전계효과트랜지스터들, 멤리스터들, 커패시터들, 스위칭 소자들, 전압 발생기들, 비선형 광-셀들 등을 기반으로 할 수 있다. 가변 저항들은 시냅스 가중치들(108) 및/또는 보정 가중치들(112)로서 이용될 수 있다. 다수의 이러한 저항들은 병렬, 직렬 또는 직렬 병렬로 연결될 수 있다. 각각의 저항들이 병렬로 연결된 경우, 신호는 전류 값에 의해 코딩될 수 있는데, 이는 전류의 자동화된 아날로그 합산을 용이하게 할 수 있다. 양성 또는 음성 신호들을 얻기 위해, 흥분성 및 억제성인 두 세트의 저항들이 각 시냅스 상에 제공될 수 있다. 그러한 하드웨어 구조에서, 억제성 신호들은 흥분성 신호로부터 감산될 수 있다.
각각의 보정 가중치(112)는 멤리스터형 디바이스(멤리스터)로서 구현될 수 있다. 당업자에게 이해되는 바와 같이, 멤리스터는 회로 내의 전류 또는 전위 또는 전하에 의해 제어되는 저항을 갖는 가변 저항이다. 적절한 멤리스터 기능은 실제 멤리스터 디바이스, 그것의 소프트웨어 또는 물리적 에뮬레이션을 통해 수행될 수 있다. 저전압 전위에서의 p-net(100)의 동작에서, 멤리스터는 간단한 저항으로서 동작할 수 있다. 트레인 모드 동안, 멤리스터의 저항은, 예를 들어, 강한 전압 펄스에 의해 변화될 수 있다. 멤리스터의 값 변화(저항의 증가 또는 감소)는 전압의 극성에 따라 달라질 수 있지만, 값 변화의 크기는 전압 펄스의 크기에 따라 달라질 수 있다.
도 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)의 일부 또는 전부를 나타내는 신호 값을 갖는다.
p-net(100A)의 트레이닝동안, 가중치 보정 계산기(122)는 출력 이미지(126)의 일부 또는 전체를 나타내는 원하는 출력 신호(124)를 수신하고, 원하는 출력 신호(124)의 값으로부터 뉴런 합(120)의 편차(128)를 결정하고, 그리고 결정된 편차를 사용하여 대응하는 메모리 소자에 의해 설정된 각각의 보정 가중치를 변경한다. 또한, 뉴런 합을 결정하기 위해 대응하는 메모리 소자들(150)에 의해 설정된 보정 가중치들(112)의 변경된 보정 가중치 값들을 합산하면 원하는 출력 신호 값 (124)으로부터 뉴런 합(120)의 편차를 최소화시킬 것이다. 원하는 출력 신호 값(124)으로부터 뉴런 합(120)의 편차를 최소화하는 것이 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)의 수를 확장하는데 사용될 수 있다.
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)은 초기 트레이닝 또는 보충 트레이닝 이전, 도중 또는 후에 각각의 추가 뉴런 출력들(117) 및 시냅스들(118)과 함께 임의의 수의 사용되지 않은 입력들(102), 뉴런들(116)을 제거하도록 추가로 구성 될 수 있다. 이와 같이 사용되지 않는 p-net(100A)의 요소를 제거하는 능력은 구조를 단순화하고 p-net의 출력 품질 저하없이 p-net의 동작 파라미터를 변경하는 즉, p-net을 압축(condense )하는 것을 목적으로 한다.
도 26에 도시된 바와 같이, 저항, 임피던스, 용량, 자기장, 인덕션, 또는 전계 강도와 같은 각각의 보정 가중치(112)의 가중치 값을 정의하도록 구성된 전기적 및/또는 자기적 특성을 특징으로 하는 전기 부품 또는 디바이스(160)에 의해 각각의 메모리 소자(150)가 설정될 수 있다. 이러한 전기 디바이스(160)는, 예를 들어, 멤리스터(도 26 내지도 28에 도시됨), 저항(도 29 내지 도 32에 도시됨), 트랜지스터, 커패시터(도 29 내지 도 32에 도시됨), 전계효과트랜지스터, 광저항 또는 광 의존성 저항(LDR), 자성의존성저항(MDR), 또는 메미스터(memistor)를 포함할 수있다. 당업자에 의해 이해되는 바와 같이, 메미스터는 논리 동작을 수행하고 정보를 저장할 수 있는 메모리를 갖는 저항이며, 일반적으로 멤리스터의 3단자 구현이다.
메모리 소자(150)의 이러한 실시예에서, 각각의 전기 디바이스(160)의 각각의 전기적 및/또는 자기적 특성은 p-net(100A)의 트레이닝 동안 변경되도록 구성될 수 있다. 또한, 메모리 소자(150)의 전기 디바이스(160) 실시예를 사용하는 p-net(100A)에서, 가중치 보정 계산기(122)는 p-net(100A)에 의해 채용된 대응하는 디바이스들의 각각의 전기적 및/또는 자기적 특성을 변화시킴으로써 각각의 보정 가중치들(112)의 값들을 변경할 수 있다. 각각의 전기 디바이스(160)는 또한 전술한 바와 같이 p-net(100A)의 트레이닝동안 변경된 각각의 보정 가중치(112)의 값에 대응하는 전기적 및/또는 자기적 특성을 유지 또는 보유하도록 구성될 수 있으며, 트레이닝 이후 p-net의 동작 중에 사용될 수 있다.
적절한 멤리스터의 특정 실시예들은 소프트웨어 또는 전기 회로 기능적 표현물 또는 그의 균등물 뿐만 아니라 디바이스의 공지된 물리적 표현물일 수 있다. 도 26-28은 그러한 물리적 멤리스터들을 사용하는 대표적인 p-net(100A)의 실시예를 도시한 것이다. 도 26에 도시된 바와 같이, 각각의 입력(102)은 아날로그 입력 신호(104)를 수신하도록 구성되되, 이미지 센서, 감광 소자들 또는 마이크로폰들, 디지털-아날로그 컨버터 등과 같은 외부 소스로부의 입력 신호들은 전압들 V1, V2 ... Vm으로 표현된다. 모든 입력 신호들(104)은 함께 대응하는 입력 이미지(106)를 일반적으로 기술한다.
각각의 메모리 소자(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)을 선택하도록 부가적으로 구성될 수 있다.
도 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)을 포함한다.
도 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)을 도시한다.
아날로그 또는 아날로그-디지털 망으로서 구성된 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) 상의 전위를 통해 제공되는 경우, 대표적인 통신 채널은 병렬 버스일 수 있다.
보정 가중치(112)의 아날로그 실시예가 도 26-32에 도시되어있다. 각각의 아날로그 보정 가중치(112)는 특정 보정 가중치의 각 가중치를 유지하고 순방향 신호들 (입력에서 출력으로) 또는 역방향 신호들 (출력에서 입력으로) 상에 작용하여 변경하는 메모리 소자(150), 또는 제어 신호를 통해 흐르는 추가적인 제어 신호에 의해 정의된다. 또한, 각각의 아날로그 보정 가중치(112)는, 예를 들어, 이미지 인식 동안 p-net(100A)의 실제 동작 동안 그 각각의 가중치를 유지할 수 있다. 또한, 각각의 아날로그 보정 가중치(112)의 값은 순방향 신호들 또는 역방향 신호들 또는 추가 제어 신호 중 어느 하나를 통해 p-net(100A)의 트레이닝 중에 변경될 수 있다. 결과적으로, p-net(100A)의 아날로그 실시예는 다양한 컴퓨터 애플리케이션의 지원을 허용하는 마이크로칩의 생성을 가능하게 할 수 있다. 또한, 전체 p-net(100A)은 마이크로 칩, 비디오 카드 등과 같은 메모리를 갖는 전자 디바이스에 프로그래밍될 수 있다. 따라서, 각 메모리 소자(150)의 적절한 실시예는 또한 대상 전자 디바이스의 메모리에 저장될 것이다.
상기와 일치하여, 아날로그 p-net(100A) 내의 각각의 전기 디바이스(160)는 p-net의 트레이닝 후에 각각의 보정 가중치(112)의 변경된 값에 대응하는 전기적 및/또는 자기적 특성을 복원하도록 구성될 수 있다. 가중치 보정 계산기(122)는 원하는 출력 신호(124)의 값으로부터 뉴런 합(120)의 결정된 편차(128)를 나타내는 하나 이상의 보정 신호를 생성하도록 구성될 수 있다. 또한, 생성된 보정 신호들 각각은 적어도 하나의 전기 디바이스의 전기적 및/또는 자기적 특성, 즉 변경되는 각각의 디바이스에 사용되는 개별 보정 신호를, 변경하는데 사용될 수 있다. 또한, 가중치 보정 계산기(122)는 각각의 전기 디바이스(160)의 전기적 및/또는 자기적 특성을 변화시키는 데 사용되는 단일 보정 신호를 생성하도록 구성될 수 있다. 즉, 변경되는 모든 전기 디바이스에 대해 하나의 보정 신호가 사용될 수 있다.
가중치 보정 계산기(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을 트레이닝시키는데 필요한 시간의 상당한 감소를 가능하게한다.
p-net(100A)의 각각의 분배기(114)는 단일 입력 신호(104)를 취하여 하나 이상의 다중 데이터-출력-라인들을 선택하는 아날로그, 디지털 또는 아날로그-디지털 디바이스로서 구성될 수 있는데, 이는 단일 입력, 즉, 디멀티플렉서(176)에 연결된다. 이러한 디멀티플렉서(176)는 수신된 입력 신호(104)에 응답하여 다수의 보정 가중치들로부터 하나 이상의 보정 가중치(112)를 선택하도록 구성될 수 있다. 각각의 분배기(114)는 수신된 입력을 바이너리 코드로 변환하고 바이너리 코드와 관련하여 다수의 보정 가중치들로부터 하나 이상의 보정 가중치들(112)을 선택하도록 구성될 수 있다.
도 33은 (도 25에 도시된) 유틸리티 신경망(100B)을 동작시키는 방법(300)을 도시한다. 방법(300)은 도 2 내지 22 및 24 내지 32에 관한 상기 개시 내용에 따라 동작한다. 방법(300)은 프레임(302)에서 시작하며, 이 방법은 유틸리티 신경망(100B)을 제공하는 단계를 포함한다. 프레임(302) 이후, 방법은 프레임(304)으로 진행한다. 프레임(304)에서, 방법은 트레이닝 동안 p-net(100A)과 같은 별도의 유사 신경망에 의해 설정된 보정 가중치(112)의 변경된 값을 사용하여 유틸리티 신경망(100B)을 통한 데이터 프로세싱을 포함한다. 유사한 p-net(100A)의 트레이닝은 도 24와 관련하여 전술한 바와 같은 보충 트레이닝을 포함할 수 있다.
유틸리티 신경망(100B) 및 트레이닝된 별도의 p-net(100A)는, 예를 들어 도 25에 나타낸 바와 같이 매칭 신경망 구조를 가짐으로써 유사하게 만들어질 수 있어서, 유틸리티 신경망(100B)은 유틸리티 신경망을 트레이닝하도록 가중치 보정 계산기(122) 및 대응 능력을 배제할 수 있다. 따라서, 매칭 신경망 구조는 동일한 개수의 입력들(102), 보정 가중들(112), 분배기들(114), 뉴런들(116), 뉴런 출력들 (117) 및 시냅스들(118)을 포함할 수 있다.
환언하면, 보정된 보정 가중치들(112)을 설정함으로써 트레이닝될 p-net(100A)의 능력인 가장 큰 기능적 차이를 갖는, 망의 동작 파라미터들을 설정하는 모든 특징에 대해 p-net(100A)과 유틸리티 신경망(110B)은 실질적으로 동일할 수 있다. 유사 p-net(100A) 및 유틸리티 신경망(100B)은 각각 예를 들면 아날로그 및/또는 디지털 포맷뿐만 아니라 하드웨어 및/또는 소프트웨어의 다양한 형태로 구별되는 구성들로 구현될 수 있어, 유틸리티 신경망 및 유사한 p-net이 다른 캐리어들로 대표된다. 그러한 경우에, 트랜스레이터(도시되지 않음)는 변경된 보정 가중치(112)로 데이터를 변환하거나 해석하기 위해 사용될 수 있다.
유틸리티 신경망(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)의 몇몇 특성 (들)의 값을 나타낸다.
프레임(304)에서 방법은 프레임(306)으로 진행한다. 프레임(306)에서 방법은 도 25와 관련하여 설명된 바와 같이 변경된 보정 가중치(112)를 사용하여 동작 출력 신호(152)를 설정하는 단계를 포함한다. 따라서, 유틸리티 신경망(100B)을 통한 입력 이미지(106)와 같은 입력 데이터의 프로세싱은 그러한 데이터의 인식 및 유틸리티 신경망의 연산 출력 신호(152)와 함께 완성될 수 있다. 그런 다음 유틸리티 신경망(100B)의 동작 출력 신호(152)는 방법을 완료하기 위해 유틸리티 신경망 자체 또는 프레임(308)의 일부로서 유틸리티 망의 오퍼레이터에 의해 해석되거나 디코딩될 수 있다. p-net(100A)에서 변경된 보정 가중치들(112)의 설정은 도 23과 관련하여 기술된 바와 같이 p-net(100)를 트레이닝하는 방법(200)에 따라 달성될 수 있다.
도 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)로서 코드화(코딩)된다.
다른 실시예들과 유사하게, 도 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)이 부재함으로써 특징될 수 있다.
이전에 기술된 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 일 수도 있다.
도 34 및 도 35에 도시된 바와 같이, p-net(100B)는 또한 p-net(100B)의 트레이닝을 조절하도록 구성된 컨트롤러(122A)를 포함하며, 이하에서 상세히 설명되는 동작을 실행하기 위한 수단이다. 컨트롤러(122A)는 다른 실시예들에 대해 전술한 가중치 보정 계산기(122)를 포함할 수 있다. 이하에서 상세하게 설명되는 태스크를 적절하게 수행하기 위해, 컨트롤러(122A)는 적어도 일부가 실재적이고 일시적이지 않은 메모리를 포함한다. 컨트롤러(122A)의 메모리는 컴퓨터 판독 가능 데이터 또는 처리 명령을 제공하는데 참여하는 기록 가능한 매체일 수 있다. 그러한 매체는 비 휘발성 매체 및 휘발성 매체를 포함 하나 이에 한정되지 않는 많은 형태를 취할 수 있다. 컨트롤러(122A)용 비 휘발성 매체는 예를 들어 광 또는 자기 디스크 및 다른 영구 메모리를 포함할 수 있다. 휘발성 매체는 예를 들어 주 메모리를 구성 할 수 있는 DRAM(dynamic random access memory)을 포함할 수 있다. 이러한 명령은 컴퓨터의 프로세서에 연결된 시스템 버스를 포함하는 동축 케이블, 구리 와이어 및 광섬유를 포함하는 하나 이상의 전송 매체에 의해 전송될 수 있다.
컨트롤러(122A)의 메모리는 또한 적절한 매체, 예를 들어 자기 또는 광학 매체를 포함할 수 있다. 컨트롤러(122A)는 고속 클록, 필수 아날로그-디지털(A/D) 및/또는 디지털-아날로그(D/A) 회로, 필요한 입력/출력 회로 및 디바이스들(I/O)은 물론 적절한 신호 컨디셔닝 및/또는 버퍼 회로를 포함할 수 있다. 컨트롤러(122A)에 의해 요구되거나 이에 의해 액세스 가능한 알고리즘은 메모리에 저장되고 자동적으로 실행되어 이하에 상세히 설명된 요구되는 기능을 제공할 수 있다.
컨트롤러(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) 대신에 트레이닝된 보정 가중치 매트릭스를 사용하여 수행될 수 있으며, 이는 이하에서 상세히 설명될 것이다.
컨트롤러(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)에 프로그래밍 될 수 있다.
트레이닝 입력 값 어레이(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)에서 발생되는 것으로 이해되어야 한다.
아래의 예에서 설명의 편의를 위해 특정 매트릭스가 임의의 수의 열과 행으로 표시된다. 예를 들어, 트레이닝 이미지는 입력 트레이닝 매트릭스 |I|에서 수신 및/또는 조직될 수 있다 :
입력 1 입력 2 입력 3
이미지 1 I11 I21 I31
이미지 2 I12 I22 I32
이미지 3 I13 I23 I33
이어서, 트레이닝 입력 이미지 매트릭스 컨트롤러(122A)를 통해 트레이닝 입력 값 매트릭스(141)로 변환될 수 있고, 이는 매트릭스 |C|로 표현된다. 각 매트릭스 |C|는 입력 "I"의 수에 해당하는 수의 열을 갖지만 특정 수의 간격들 "i"와 이미지들의 수에 해당하는 행 수를 고려한다.
매트릭스 |C|에서, 간격들 "i"는 트레이닝 중에 사용될 특정 보정 가중치(112)로 식별된다. 간격들 "i"에 대응하는 열에서, 신호의 값들은 특정 신호가 특정 간격에서 사용될 것이라는 것을 나타내기 위해 일(1)로 대체될 수 있는 반면, 대상 신호에 대한 다른 간격에서는 신호의 값이 특정 간격이 고려되지 않음을 나타 내기 위해 영(0)으로 대체된다.
예시적인 보정 가중치 매트릭스(146)은 아래에 도시된 매트릭스 |W|로서 형성될 수 있다:
간격들 출력 1 출력 2 출력 3
입력 1 i1 W 111 W 112 W 113
i2 W 121 W 122 W 123
i3 W 131 W 132 W 133
i4 W 141 W 142 W 143
입력 2 i1 W 211 W 212 W 213
i2 W 221 W 222 W 223
i3 W 231 W 232 W 233
i4 W 241 W 242 W 243
입력 3 i1 W 311 W 312 W 313
i2 W 321 W 322 W 323
i3 W 331 W 332 W 333
i4 W 341 W 342 W 343
뉴런 합 매트릭스(143)는 아래 도시된 매트릭스 |Σ|로 표현될 수 있다:
원하는 출력값 매트릭스(144)은 아래 도시된 매트릭스 |O|로서 형성될 수 있다:
출력 1 출력 2 출력 3
이미지 1 O11 O12 O13
이미지 2 O21 O22 O23
이미지 3 O31 O32 O33
뉴런 합 매트릭스(143)의 편차(128)는 아래 매트릭스 |E|로 표현되는 편차 매트릭스(148)를 생성할 수 있도록 원하는 출력값 매트릭스(144)로부터 결정될 수 있다:
아래 매트릭스 |W|로 표시되는 보정 가중치 매트릭스(142)는, 결정된 편차 매트릭스(145)를 이용하여 변경될 수 있는데, 이는 변경된 보정 가중치(112) 값을 가산하여 뉴런 합 매트릭스(143)를 결정하도록 하여 매트릭스 |W trained |로서 표시되는, 트레이닝된 보정 가중치 매트릭스(146)를 생성하도록 원하는 출력 값 매트릭스(144)로부터 뉴런 합 매트릭스(143)의 편차를 최소화한다. 매트릭스 |W trained |는 식 |W trained | = |W| + |∇W| 에 따라 유도된다(여기서, 인자 |∇W|는 이하에서 상세히 기술될 것이다):
간격들 출력 1 출력 2 출력 3
입력 1 i1 W 111 + ∇W 111 W 112 + ∇W 112 W 113 + ∇W 113
i2 W 121 + ∇W 121 W 122 + ∇W 122 W 123 + ∇W 123
i3 W 131 + ∇W 131 W 132 + ∇W 132 W 133 + ∇W 133
i4 W 141 + ∇W 141 W 142 + ∇W 142 W 143 + ∇W 143
입력 2 i1 W 211 + ∇W 211 W 212 + ∇W 212 W 213 + ∇W 213
i2 W 221 + ∇W 221 W 222 + ∇W 222 W 223 + ∇W 223
i3 W 231 + ∇W 231 W 232 + ∇W 232 W 233 + ∇W 233
i4 W 241 + ∇W 241 W 242 + ∇W 242 W 243 + ∇W 243
입력 3 i1 W 311 + ∇W 311 W 312 + ∇W 312 W 313 + ∇W 313
i2 W 321 + ∇W 321 W 322 + ∇W 322 W 323 + ∇W 323
i3 W 331 + ∇W 331 W 332 + ∇W 332 W 333 + ∇W 333
i4 W 341 + ∇W 341 W 342 + ∇W 342 W 343 + ∇W 343
전술한 바와 같이, 트레이닝된 보정 가중치 어레이(134A) 및 트레이닝된 보정 가중치 매트릭스(146)의 형성은 p-net(100B)의 동시 트레이닝을 용이하게 한다.
트레이닝된 p-net(100C)를 이용하는 이미지 인식(도 36에 도시됨)의 실시예에서, 입력 이미지들(106)의 배치의 동시 인식은 전술한 매트릭스 동작을 이용하여 제공될 수 있다. 특히, 트레이닝된 p-net(100C)은 2차원 n × k 매트릭스 |W|로 표현될 수 있는 보정 가중치 어레이이며, 여기서 "n"은 뉴런(116)의 수이고, "k"는 특정 뉴런에서 보정 가중치(112)의 수이다. 매트릭스 |W|는 일반적으로 다음과 같이 나타낼 수 있다:
W 11 W 12 W 13 ... W 1k
W 21 W 22 W 23 ... W 2k
W 31 W 32 W 33 ... W 3k
W 41 W 42 W 43 ... W 4k
... ... ... ... ...
W n1 W n2 W n3 ... W nk
일괄 입력 이미지들(106)의 동시 인식을 위해, 인식될 입력 이미지들은 vxk 매트릭스 |Ir|로서 나타낼 수 있으며, 여기서 "v"는 인식 가능한 이미지들의 수이고, "k"는 특정 뉴런(116)에서 보정 가중치(112)의 수이다. 인식을 위한 입력 이미지들(106)의 매트릭스 |Ir|은 일반적으로 다음과 같이 표현될 수 있다.
Ir 11 Ir 21 Ir 31 ... Ir v1
Ir 12 Ir 22 Ir 32 ... Ir v2
Ir 13 Ir 23 Ir 33 ... Ir v3
Ir 14 Ir 24 Ir 34 ... Ir v4
... ... ... ... ...
Ir 1k Ir 2k Ir 3k ... Ir vk
매트릭스 |Ir|에서, 매트릭스의 각 행은 인식 대상이 되는 단일 이미지이다.
일괄 입력 이미지들(106)의 동시 인식은
아래와 같은 심볼 "|Y|"로 표시되는 인식된 이미지 매트릭스(147)을 생성하기 위해, 전치 매트릭스 |I| T에 의한 매트릭스 |W|의 승산에 의해 제공될 수 있다:
매트릭스 |Y|는 n x v의 차원을 갖는다. 매트릭스 |Y|의 각 열은 트레이닝된 p-net(100C)에 의해 획득된 단일 출력 또는 인식된 이미지이다. 매트릭스 |Y|는 일반적으로 다음과 같이 묘사될 수 있다:
Y 11 Y 12 Y 13 ... Y 1v
Y 21 Y 22 Y 23 ... Y 2v
Y 31 Y 32 Y 33 ... Y 3v
Y 41 Y 42 Y 43 ... Y 4v
... ... ... ... ...
Y n1 Y n2 Y n3 ... Y nv
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)의 일부로서 또는 그곳으로부터 멀리 떨어져서 배열될 수 있으며, 분리되어 병렬로 작동하도록 구성될 수 있다.
컨트롤러(122A)는 트레이닝 입력 값 매트릭스(141A) 및 보정 가중치 매트릭스에 대수 매트릭스 연산을 적용하여 보정 가중치 매트릭스(142)를 변경함으로써 p-net(100B)을 트레이닝시킨다.
이러한 수학적 매트릭스 연산은 입력 값 매트릭스(141A)와 보정 가중치 매트릭스(146)의 수학적 곱의 결정을 포함할 수 있음으로써 현재의 트레이닝 시기 가중치 매트릭스(151)를 형성한다.
컨트롤러(122A)는 위에서 설명된 매트릭스 |E|로 도시된 뉴런 합들(153)의 편차 매트릭스를 생성하기 위해 원하는 출력 값 매트릭스(144)로부터 뉴런 합 매트릭스(143)를 감산하도록 구성될 수도 있다.
또한, 컨트롤러(122A)는, 다음과 같이, 심볼 "|ΔW|"로 아래에 표시되는, 뉴런 입력(155) 당 편차 매트릭스를 생성하기 위해, 각각의 뉴런(116)에 연결된, 아래에서 문자 "m"으로 식별되는, 시냅시스들(118)의 개수에 의해 뉴런 합들(153) 편차 매트릭스가 나눠지도록 구성될 수 있다.
컨트롤러(122A)는 심볼 "|S|"로 아래에 식에서 표현된 p-net(100B)의 하나의 트레이닝 시기 동안 각 보정 가중치(112)가 사용된 횟수를 결정하도록 부가적으로 구성될 수 있다. 아래에서 볼 수 있듯이, 매트릭스 |S|는 트레이닝 입력 값 매트릭스(141A)에 단위 벡터를 곱하여 얻어진다:
컨트롤러(122A)는 각각의 보정 가중치가 하나의 트레이닝 시기 동안 사용된 결정된 횟수를 사용하여 하나의 트레이닝 시기에 대해 아래에 심볼 "|∇W|"로 표시되는, 평균 편차 매트릭스(157)를 형성하도록 더 구성될 수 있다.
또한, 컨트롤러(122A)는 보정 가중치 매트릭스(142)에 하나의 트레이닝 시기에 대한 평균 편차 매트릭스(157)을 가산하도록 구성될 수 있음으로써, 아래에 |W trained |로 표시된, 트레이닝된 보정 가중치 매트릭스(146)를 생성하고, 그리고 아래에 도시된 바와 같이 하나의 트레이닝 시기를 완료한다.
간격들 출력 1 출력 2 출력 3
입력1 i1 W 111 + ∇W 111 W 112 +∇W 112 W 113 + ∇W 113
i2 W 121 +∇W 121 W 122 + ∇W 122 W 123 + ∇W 123
i3 W 131 + ∇W 131 W 132 + ∇W 132 W 133 + ∇W 133
i4 W 141 + ∇W 141 W 142 + ∇W 142 W 143 + ∇W 143
입력 2 i1 W 211 + ∇W 211 W 212 + ∇W 212 W 213 + ∇W 213
i2 W 221 + ∇W 221 W 222 + ∇W 222 W 223 + ∇W 223
i3 W 231 + ∇W 231 W 232 + ∇W 232 W 233 + ∇W 233
i4 W 241 + ∇W 241 W 242 + ∇W 242 W 243 + ∇W 243
입력 3 i1 W 311 + ∇W 311 W 312 + ∇W 312 W 313 + ∇W 313
i2 W 321 + ∇W 321 W 322 + ∇W 322 W 323 + ∇W 323
i3 W 331 + ∇W 331 W 332 + ∇W 332 W 333 + ∇W 333
i4 W 341 + ∇W 341 W 342 + ∇W 342 W 343 + ∇W 343
도 37은 도 34-36과 관련하여 전술한 바와 같이 p-net(100B)를 동작시키는 방법(400)을 도시한다. 방법(400)은 프로세서(150)와 같은 하나 이상의 데이터 프로세서를 사용하여 감독된 트레이닝을 구현하는데 사용되는 컴퓨터 시스템 또는 컴퓨터 시스템과 같은 디바이스의 동작을 향상시키도록 구성된다. 방법(400)은 p-net(100B)을 동작시키기 위한 일시적 컴퓨터 판독 가능 저장 디바이스로 프로그램될 수 있으며, 상기 방법을 수행하도록 실행 가능한 명령들로 인코딩될 수 있다.
방법(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)를 생성한다.
프레임(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)를 트레이닝시킨다.
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)의 트레이닝 속도의 향상을 용이하게 한다.
프레임(412)에서, 방법은 또한, 컨트롤러(122A)를 통해, 대수 매트릭스 연산을 트레이닝 입력 값 매트릭스(141) 및 보정 가중치 매트릭스에 적용함으로써 보정 가중치 매트릭스(142)를 변경하는 단계를 포함할 수 있고, 따라서 p-net(100B)를 트레이닝한다. 이러한 수학적 매트릭스 연산은 트레이닝 입력 값 매트릭스(141) 및 보정 가중치 매트릭스(142)의 수학적 곱을 결정하는 단계를 포함하고 따라서 현재 트레이닝 시기 가중치 매트릭스(151)을 형성한다. 프레임(412)에서, 이 방법은, 컨트롤러(122A)를 통해, 뉴런 합들(153)의 편차 매트릭스를 생성하기 위해 원하는 출력값 매트릭스(144)로부터 뉴런 합 매트릭스(143)을 감산하는 단계를 추가로 포함할 수 있다. 또한, 프레임(412)에서, 이 방법은, 컨트롤러(122A)를 통해, 뉴런 입력(155) 당 편차 매트릭스를 생성하기 위해 뉴런 합들(153)의 편차 매트릭스를 각각의 뉴런(116)에 연결된 입력들의 갯수로 나누는 단계를 포함할 수 있다.
또한, 프레임(412)에서, 방법은, 컨트롤러(122A)를 통해, 각각의 보정 가중치(112)가 p-net(100B)의 하나의 트레이닝 시기 동안 사용된 횟수를 결정하는 단계를 포함할 수 있다. 또한, 이 방법은, 컨트롤러(122A)를 통해, 각각의 보정 가중치(112)가 특정 트레이닝 시기 동안 사용된 결정된 횟수를 사용하여 하나의 트레이닝 시기에 대한 평균 편차 매트릭스(157)를 형성하는 단계를 포함할 수 있다. 예를 들어, 이러한 동작은, 하나의 트레이닝 시기 동안 사용된 각각의 보정 가중치(112)에 대한 평균 편차를 얻기 위해, 각각의 보정 가중치가 특정 트레이닝 시기 동안 사용된 결정된 횟수로 뉴런 입력 당 편차 매트릭스를, 요소별로(element-by-element), 나누는 단계를 포함함으로써, 하나의 트레이닝 시기에 대한 평균 편차 매트릭스(157)를 형성한다.
또한, 예를 들어, 산술 평균, 기하 평균, 조화 평균, 제곱 평균 제곱근 등을 사용하여 하나의 트레이닝 시기에 대한 평균 편차 매트릭스(157)를 형성하도록, 프레임(412)에서 다른 매트릭스 기반 연산이 사용될 수 있다. 또한, 프레임(412)에서, 이 방법은, 컨트롤러(122A)를 통해, 하나의 트레이닝 시기에 대한 평균 편차 매트릭스(157)를 보정 가중치 매트릭스(142)에 추가하는 단계를 포함할 수 있음으로써, 트레이닝된 가중치 매트릭스(146)를 생성하고 특정 트레이닝 시기를 완료한다. 따라서, 매트릭스 연산들이 모든 보정 가중치들(112)에 병렬로 적용되도록 함으로써, 방법(400)은 동시 발생을 용이하게 하고, 따라서 트레이닝된 p-net(100C)를 생성하는데 있어서의 p-net(100B)의 향상된 속도의 트레이닝을 제공한다.
프레임(412) 다음에, 방법(400)은 편차 어레이(132)가 충분히 최소화될 때까지 추가적인 트레이닝 시기를 수행하도록 프레임(402)으로 복귀하는 단계를 포함할 수 있다. 환언하면, 부가적인 트레이닝 시기들은 소정의 편차 또는 에러 값 내에서 원하는 출력값 어레이(126A) 상의 뉴런 합 어레이(120A)를 수렴하도록 수행될 수 있고, 이에 따라 p-net(100B)은 트레이닝되어 새로운 입력 이미지(106)로 동작할 준비가 되어 있는 것으로 간주 될 수 있다. 따라서, 프레임(412) 이후에, 본 방법은 트레이닝된 p-net(100C)(도 36에 도시됨)를 사용하여 이미지 인식을 위한 프레임(414)으로 진행할 수 있다.
트레이닝된 p-net(100C)를 이용한 이미지 인식의 실시예에서, 프레임(414)에서, 방법(400)은 다수의 입력들(102)을 통해 입력 이미지들(106)를 수신하는 단계를 포함한다. p-net(100C)의 구조와 관련하여 전술한 바와 같이, 입력 이미지들(106)은 입력 값 어레이(107A)로서 수신되거나 또는 p-net(100C)에 의해 이미지들을 인식하는 동안 입력 값 어레이로서 코드화될 수 있다. 프레임(414)의 다음에, 프레임(416)에서, 본 방법은 트레이닝된 보정 가중치 어레이(134A)의 다수의 트레이닝된 보정 가중치(112A)를 각 시냅스(118)에 부여하는(attributing) 단계를 포함한다. 프레임(416) 이후에, 본 방법은 프레임(418)로 진행한다.
프레임(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)로서 각각 조직화될 수 있다.
프레임(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)에서 종결될 수 있다.
상세한 설명 및 도면들(drawings) 또는 도면들(figures)은 본 발명의 내용을 뒷받침하고 설명하는 것이지만, 본 발명의 범위는 청구 범위에 의해서만 정의된다. 청구된 개시를 수행하기 위한 최상의 모드들 및 다른 실시예들 중 일부가 상세히 설명되었지만, 첨부된 청구항들에 정의된 개시를 실시하기 위한 다양한 대안적인 설계들 및 실시예들이 존재한다. 또한, 도면들에 도시된 실시예들 또는 본 명세서에서 언급된 다양한 실시예의 특성들은 반드시 서로 독립적인 실시예들로서 이해될 필요는 없다. 오히려, 일 실시예의 예들 중 하나에 설명된 각각의 특성이 다른 실시예들로부터의 하나 또는 다수의 다른 바람직한 특성들과 결합될 수 있어, 단어들 또는 도면들을 참조하여 기술되지 않은 다른 실시 예들을 초래할 수 있다. 따라서, 이러한 다른 실시 예들은 첨부된 청구 범위의 범주 내에 있다.

Claims (24)

  1. 트레이닝 이미지들을 수신하도록 구성되되, 트레이닝 이미지들은 신경망의 트레이닝동안 트레이닝 입력 값 어레이로서 수신되고 그리고 트레이닝 입력 값 어레이로서 코딩된 것의 하나인, 신경망에 대한 다수의 입력들;
    각각의 시냅스가 다수의 입력들 중 하나에 연결되고 그리고 다수의 보정 가중치들을 포함하며, 그리고 각각의 보정 가중치가 가중치 값에 의해 정의되고, 그리고 다수의 시냅스들의 보정 가중치들이 보정 가중치 어레이로 조직화되는, 다수의 시냅스들;
    각각의 뉴런이 적어도 하나의 출력을 갖고 그리고 다수의 시냅스들 중 적어도 하나를 통해 다수의 입력들 중 적어도 하나와 연결되며, 그리고 각각의 뉴런이 각각의 뉴런에 연결된 대응하는 각각의 시냅스의 보정 가중치들의 가중치 값들을 합산하도록 구성됨으로써, 다수의 뉴런들이 뉴런 합 어레이를 생성하도록 하는, 다수의 뉴런들; 및
    원하는 출력 값 어레이로 조직화된 원하는 이미지들을 수신하고;
    원하는 출력 값 어레이로부터 뉴런 합 어레이의 편차를 결정하며 그리고 편차 어레이를 생성하고; 그리고
    결정된 편차 어레이를 이용하여 보정 가중치 어레이에서 각각의 보정 가중치 값들을 변경함으로써, 뉴런 합 어레이를 결정하기 위해 변경된 보정 가중치 값들을 합산하면 트레이닝된 보정 가중치 어레이를 생성하도록 원하는 출력 값으로부터 뉴런 합 어레이의 편차를 감소시켜 신경망의 동시 트레이닝을 용이하게 하는 컨트롤러를 포함하되,
    트레이닝 입력 값 어레이, 보정 가중치 어레이, 뉴런 합 어레이, 원하는 출력 값 어레이, 편차 어레이, 및 트레이닝된 보정 가중치 어레이는, 각각, 트레이닝 입력 값 매트릭스, 보정 가중치 매트릭스, 뉴런 합 매트릭스, 원하는 출력 값 매트릭스, 편차 매트릭스, 및 트레이닝된 보정 가중치 매트릭스로 조직화되는, 컴퓨터 구현 신경망.
  2. 제1항에 있어서,
    트레이닝된 신경망에서:
    신경망에 대한 다수의 입력들은 입력 이미지들을 수신하도록 구성되되, 입력 이미지들은 신경망에 의해 이미지들의 인식동안 입력 값 매트릭스로서 수신되고 그리고 입력 값 매트릭스로서 코딩되는 것중 하나이고;
    각각의 시냅스는 트레이닝된 보정 가중치 매트릭스 중 다수의 트레이닝된 보정 가중치들을 포함하며; 그리고
    각각의 뉴런은 각각의 뉴런에 연결된 각각의 시냅스에 대응하는 트레이닝된 보정 가중치들 중 가중치 값들을 가산하도록 구성됨으로써, 다수의 뉴런들이 인식된 이미지들 매트릭스를 생성하여, 입력 이미지들의 인식을 제공하는, 컴퓨터 구현 신경망.
  3. 제2항에 있어서,
    분배기들의 세트를 더 포함하되, 분배기들의 세트는 각각의 트레이닝 이미지들 그리고 각각의 트레이닝 입력 값 매트릭스와 입력 값 매트릭스로서 입력 이미지들을 코딩하도록 구성되고, 분배기들의 세트는 각각의 트레이닝 이미지들 및 입력 이미지들을 수신하기 위해 다수의 입력들에 동작 가능하게 연결되는, 컴퓨터 구현 신경망.
  4. 제2항에 있어서,
    컨트롤러는 원하는 출력 값 매트릭스로부터 뉴런 합 매트릭스의 타겟 편차 매트릭스로 부가적으로 프로그래밍되고, 그리고 컨트롤러는 원하는 출력 값 매트릭스로부터 뉴런 합 매트릭스의 편차가 타겟 편차 매트릭스의 수용 가능한 범위 내에 있을 때, 신경망의 트레이닝을 완료하도록 추가로 구성되는, 컴퓨터 구현 신경망.
  5. 제4항에 있어서,
    다수의 데이터 프로세서들을 더 포함하되, 컨트롤러는 각각의 입력 값, 트레이닝 입력 값, 보정 가중치, 뉴런 합 및 원하는 출력 값 매트릭스들 중 적어도 하나를 각각의 서브-매트릭스들로 분할하고 그리고 서브-매트릭스로 별도의 병렬 수학 연산을 위해 다수의 결과적인 서브-매트릭스들이 다수의 데이터 프로세서들과 통신하도록 추가로 구성되어, 동시 데이터 프로세싱을 용이하게 하고 입력 값 매트릭스의 이미지 인식 및 신경망의 트레이닝 중 하나의 속도를 향상시키는, 컴퓨터 구현 신경망.
  6. 제4항에 있어서,
    컨트롤러는 트레이닝 입력 값 매트릭스 및 보정 가중치 매트릭스에 대수 매트릭스 연산을 적용함으로써 보정 가중치 매트릭스를 변경하여, 신경망을 트레이닝하는, 컴퓨터 구현 신경망.
  7. 제6항에 있어서,
    수학적 매트릭스 연산은 트레이닝 입력 값과 보정 가중치 매트릭스들의 수학적 곱의 결정을 포함하여, 현재의 트레이닝 시기 가중치 매트릭스를 형성하는, 컴퓨터 구현 신경망.
  8. 제7항에 있어서,
    컨트롤러는 뉴런 합들의 편차 매트릭스를 생성하기 위해 원하는 출력 값 매트릭스로부터 뉴런 합 매트릭스를 감산하고; 그리고
    뉴런 입력 당 편차 매트릭스를 생성하기 위해 뉴런 합들의 편차 매트릭스를 각각의 뉴런에 연결된 입력들의 수로 나누도록, 추가적으로 구성된, 컴퓨터 구현 신경망.
  9. 제8항에 있어서,
    컨트롤러는 각각의 보정 가중치가 신경망에서 하나의 트레이닝 시기동안 사용된 횟수를 결정하고;
    각각의 보정 가중치가 하나의 트레이닝 시기동안 사용된 결정된 횟수를 사용하여 하나의 트레이닝 시기에 대한 평균 편차 매트릭스를 형성하며; 그리고
    하나의 트레이닝 시기에 대한 평균 편차 매트릭스를 보정 가중치 매트릭스에 가산하도록 추가적으로 구성되어, 트레이닝된 보정 가중치 매트릭스를 생성하고 하나의 트레이닝 시기를 완료하는, 컴퓨터 구현 신경망.
  10. 신경망에 대한 다수의 입력들을 통해 트레이닝 이미지들을 수신하되, 트레이닝 이미지들은 신경망의 트레이닝동안 트레이닝 입력 값 매트릭스로서 수신되고 그리고 트레이닝 입력 값 매트릭스로서 코딩된 것의 하나인, 단계;
    보정 가중치 매트릭스에서 다수의 시냅스들의 보정 가중치들을 조직화하되, 각각의 시냅스가 다수의 입력들 중 하나에 연결되고 그리고 다수의 보정 가중치들을 포함하며, 그리고 각각의 보정 가중치가 가중치 값에 의해 정의되는, 단계;
    다수의 뉴런들을 통해 뉴런 합 매트릭스를 생성하되, 각각의 뉴런이 적어도 하나의 출력을 갖고 그리고 다수의 시냅스들 중 적어도 하나를 통해 다수의 입력들 중 적어도 하나와 연결되며, 그리고 각각의 뉴런이 각각의 뉴런에 연결된 대응하는 각각의 시냅스의 보정 가중치들의 가중치 값을 합산하도록 구성된, 단계;
    컨트롤러가, 원하는 출력 값 매트릭스로 조직화된 원하는 이미지들을 수신하는 단계;
    컨트롤러가, 원하는 출력 값 매트릭스로부터 뉴런 합 매트릭스의 편차를 결정하고 그리고 편차 매트릭스를 생성하는 단계; 및
    컨트롤러가, 결정된 편차 매트릭스를 이용하여 보정 가중치 매트릭스에서 각각의 보정 가중치 값들을 변경함으로써, 뉴런 합 매트릭스를 결정하기 위해 변경된 보정 가중치 값들을 합산하면 트레이닝된 보정 가중치 매트릭스를 생성하도록 원하는 출력 값으로부터 뉴런 합 매트릭스의 편차를 감소시켜 신경망의 동시 트레이닝을 용이하게 하는, 단계를 포함하는, 컴퓨터 구현 신경망을 동작시키는 방법.
  11. 제10항에 있어서,
    트레이닝된 신경망에서:
    신경망에 대한 다수의 입력들을 통해 입력 이미지들을 수신하되, 입력 이미지들은 신경망에 의해 이미지들의 인식동안 입력 값 매트릭스로서 수신되고 그리고 입력 값 매트릭스로서 코딩되는 것중 하나이고;
    각각의 시냅스에 트레이닝된 보정 가중치 매트릭스 중 다수의 트레이닝된 보정 가중치들을 부여하되, 각각의 트레이닝된 보정 가중치는 보정치 값으로 정의되며; 및
    각각의 뉴런에 연결된 각각의 시냅스에 대응하는 트레이닝된 보정 가중치들의 가중치 값들을 가산함으로써, 다수의 뉴런들이 인식된 이미지들 매트릭스를 생성하여, 입력 이미지들의 인식을 제공하는, 컴퓨터 구현 신경망을 동작시키는 방법.
  12. 제11항에 있어서,
    분배기들의 세트를 통하여,
    각각의 트레이닝 입력 값 매트릭스 및 입력 값 매트릭스로서 트레이닝 이미지들 및 입력 이미지들의 각각을 코딩하는 단계를 더 포함하되, 분배기들의 세트는 각각의 트레이닝 이미지들 및 입력 이미지들을 수신하기 위해 다수의 입력들에 동작 가능하게 연결되는, 컴퓨터 구현 신경망을 동작시키는 방법.
  13. 제11항에 있어서,
    컨트롤러는 원하는 출력 값 매트릭스로부터 뉴런 합 매트릭스의 타겟 편차 매트릭스로 부가적으로 프로그래밍되고, 그리고 방법은, 컨트롤러를 통하여, 원하는 출력 값 매트릭스로부터 뉴런 합 매트릭스의 편차가 타겟 편차 매트릭스의 수용 가능한 범위 내에 있을 때, 신경망의 트레이닝을 완료하는 단계를 더 포함하는, 컴퓨터 구현 신경망을 동작시키는 방법.
  14. 제13항에 있어서,
    신경망은 부가적으로 다수의 데이터 프로세서들을 더 포함하고, 방법은, 컨트롤러가, 각각의 입력 값, 트레이닝 입력 값, 보정 가중치, 뉴런 합 및 원하는 출력 값 매트릭스들 중 적어도 하나를 각각의 서브-매트릭스들로 분할하는 단계, 그리고 서브-매트릭스로 별도의 병렬 수학 연산을 위해 다수의 결과적인 서브-매트릭스들이 다수의 데이터 프로세서들과 통신하는 단계를 더 포함하여, 동시 데이터 프로세싱을 용이하게 하고 입력 값 매트릭스의 이미지 인식 및 신경망의 트레이닝 중 하나의 속도를 향상시키는, 컴퓨터 구현 신경망을 동작시키는 방법.
  15. 제13항에 있어서,
    컨트롤러가, 트레이닝 입력 값 매트릭스 및 보정 가중치 매트릭스에 대수 매트릭스 연산을 적용함으로써 보정 가중치 매트릭스를 변경하는 단계를 더 포함하여, 신경망을 트레이닝하는, 컴퓨터 구현 신경망을 동작시키는 방법.
  16. 제15항에 있어서,
    수학적 매트릭스 연산을 적용하는 것은 트레이닝 입력 값과 보정 가중치 매트릭스들의 수학적 곱을 결정함을 포함하여, 현재의 트레이닝 시기 가중치 매트릭스를 형성하는, 컴퓨터 구현 신경망을 동작시키는 방법.
  17. 제16항에 있어서,
    컨트롤러가, 뉴런 합들의 편차 매트릭스를 생성하기 위해 원하는 출력 값 매트릭스로부터 뉴런 합 매트릭스를 감산하는 단계; 그리고
    컨트롤러가, 뉴런 입력 당 편차 매트릭스를 생성하기 위해 뉴런 합들의 편차 매트릭스를 각각의 뉴런에 연결된 입력들의 수로 나누는 단계를 더 포함하는, 컴퓨터 구현 신경망을 동작시키는 방법.
  18. 제17항에 있어서,
    컨트롤러가, 각각의 보정 가중치가 신경망에서 하나의 트레이닝 시기동안 사용된 횟수를 결정하는 단계;
    컨트롤러가, 각각의 보정 가중치가 하나의 트레이닝 시기동안 사용된 결정된 횟수를 사용하여 하나의 트레이닝 시기에 대한 평균 편차 매트릭스를 형성하는 단계; 및
    컨트롤러가, 하나의 트레이닝 시기에 대한 평균 편차 매트릭스를 보정 가중치 매트릭스에 가산하는 단계를 더 포함하여, 트레이닝된 보정 가중치 매트릭스를 생성하고 하나의 트레이닝 시기를 완료하는, 컴퓨터 구현 신경망을 동작시키는 방법.
  19. 인공 신경망을 동작시키는 비 일시적 컴퓨터 판독 가능 저장 장치로서, 저장 장치가 실행 가능한 명령들로 인코딩되어,
    신경망에 대한 다수의 입력들을 통해 트레이닝 이미지들을 수신하되, 트레이닝 이미지들은 신경망의 트레이닝동안 트레이닝 입력 값 매트릭스로서 수신되고 그리고 트레이닝 입력 값 매트릭스로서 코딩된 것의 하나이고;
    보정 가중치 매트릭스에서 다수의 시냅스들의 보정 가중치들을 조직화하되, 각각의 시냅스가 다수의 입력들 중 하나에 연결되고 그리고 다수의 보정 가중치들을 포함하며, 그리고 각각의 보정 가중치가 가중치 값에 의해 정의되고;
    다수의 뉴런들을 통해 뉴런 합 매트릭스를 생성하되, 각각의 뉴런이 적어도 하나의 출력을 갖고 그리고 다수의 시냅스들 중 적어도 하나를 통해 다수의 입력들 중 적어도 하나와 연결되며, 그리고 각각의 뉴런이 각각의 뉴런에 연결된 대응하는 각각의 시냅스의 보정 가중치들의 가중치 값을 합산하도록 구성되고;
    원하는 출력 값 매트릭스로 조직화된 원하는 이미지들을 수신하며;
    원하는 출력 값 매트릭스로부터 뉴런 합 매트릭스의 편차를 결정하고 그리고 편차 매트릭스를 생성하며;
    결정된 편차 매트릭스를 이용하여 보정 가중치 매트릭스에서 각각의 보정 가중치 값들을 변경함으로써, 뉴런 합 매트릭스를 결정하기 위해 변경된 보정 가중치 값들을 합산하면 트레이닝된 보정 가중치 매트릭스를 생성하도록 원하는 출력 값으로부터 뉴런 합 매트릭스의 편차를 감소시켜 신경망의 동시 트레이닝을 용이하게 하는, 인공 신경망을 동작시키는 비 일시적 컴퓨터 판독 가능 저장 장치.
  20. 제19항에 있어서,
    저장 장치가 실행 가능한 명령들로 더 인코딩되어,
    신경망에 대한 다수의 입력들을 통해 입력 이미지들을 수신하되, 입력 이미지들은 신경망에 의해 이미지들의 인식동안 입력 값 매트릭스로서 수신되고 그리고 입력 값 매트릭스로서 코딩되는 것중 하나이고;
    각각의 시냅스에 트레이닝된 보정 가중치 매트릭스 중 다수의 트레이닝된 보정 가중치들을 부여하되, 각각의 트레이닝된 보정 가중치는 보정치 값으로 정의되며; 그리고
    각각의 뉴런에 연결된 각각의 시냅스에 대응하는 트레이닝된 보정 가중치들의 가중치 값들을 가산함으로써, 다수의 뉴런들이 인식된 이미지들 매트릭스를 생성하여, 입력 이미지들의 인식을 제공하는, 인공 신경망을 동작시키는 비 일시적 컴퓨터 판독 가능 저장 장치.
  21. 신경망에 대한 다수의 입력들을 통해 트레이닝 이미지들을 수신하되, 트레이닝 이미지들은 신경망의 트레이닝동안 트레이닝 입력 값 매트릭스로서 수신되고 그리고 트레이닝 입력 값 매트릭스로서 코딩된 것의 하나인, 수단;
    보정 가중치 매트릭스에서 다수의 시냅스들의 보정 가중치들을 조직화하되, 각각의 시냅스가 다수의 입력들 중 하나에 연결되고 그리고 다수의 보정 가중치들을 포함하며, 그리고 각각의 보정 가중치가 가중치 값에 의해 정의되는, 수단;
    다수의 뉴런들을 통해 뉴런 합 매트릭스를 생성하되, 각각의 뉴런이 적어도 하나의 출력을 갖고 그리고 다수의 시냅스들 중 적어도 하나를 통해 다수의 입력들 중 적어도 하나와 연결되며, 그리고 각각의 뉴런이 각각의 뉴런에 연결된 대응하는 각각의 시냅스의 보정 가중치들의 가중치 값을 합산하도록 구성된, 수단;
    원하는 출력 값 매트릭스로 조직화된 원하는 이미지들을 수신하는 수단;
    원하는 출력 값 매트릭스로부터 뉴런 합 매트릭스의 편차를 결정하고 그리고 편차 매트릭스를 생성하는 수단; 및
    결정된 편차 매트릭스를 이용하여 보정 가중치 매트릭스에서 각각의 보정 가중치 값들을 변경함으로써, 뉴런 합 매트릭스를 결정하기 위해 변경된 보정 가중치 값들을 합산하면 트레이닝된 보정 가중치 매트릭스를 생성하도록 원하는 출력 값으로부터 뉴런 합 매트릭스의 편차를 감소시켜 신경망의 동시 트레이닝을 용이하게 하는, 수단을 포함하는, 인공 신경망을 동작시키기 위한 장치.
  22. 제21항에 있어서,
    트레이닝된 신경망에서:
    신경망에 대한 다수의 입력들을 통해 입력 이미지들을 수신하되, 입력 이미지들은 신경망에 의해 이미지들의 인식동안 입력 값 매트릭스로서 수신되고 그리고 입력 값 매트릭스로서 코딩되는 것중 하나인, 수단;
    각각의 시냅스에 트레이닝된 보정 가중치 매트릭스 중 다수의 트레이닝된 보정 가중치들을 부여하되, 각각의 트레이닝된 보정 가중치는 보정치 값으로 정의되는, 수단; 및
    각각의 뉴런에 연결된 각각의 시냅스에 대응하는 트레이닝된 보정 가중치들의 가중치 값들을 가산함으로써, 다수의 뉴런들이 인식된 이미지들 매트릭스를 생성하여, 입력 이미지들의 인식을 제공하는, 수단인, 인공 신경망을 동작시키기 위한 장치.
  23. 삭제
  24. 삭제
KR1020197000226A 2016-06-09 2017-06-09 신경망 및 신경망 트레이닝 방법 KR102558300B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US15/178,137 US9619749B2 (en) 2014-03-06 2016-06-09 Neural network and method of neural network training
US15/178,137 2016-06-09
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 KR20190016539A (ko) 2019-02-18
KR102558300B1 true KR102558300B1 (ko) 2023-07-21

Family

ID=60579026

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197000226A KR102558300B1 (ko) 2016-06-09 2017-06-09 신경망 및 신경망 트레이닝 방법

Country Status (5)

Country Link
EP (1) EP3469521A4 (ko)
JP (1) JP7041078B2 (ko)
KR (1) KR102558300B1 (ko)
CN (1) CN109416758A (ko)
WO (1) WO2017214507A1 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018202095A1 (de) * 2018-02-12 2019-08-14 Robert Bosch Gmbh Verfahren und Vorrichtung zum Überprüfen einer Neuronenfunktion in einem neuronalen Netzwerk
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 (zh) * 2019-03-29 2021-04-13 云南电网有限责任公司电力科学研究院 一种绝缘多角度倾斜划伤电缆受潮实验评估方法及装置
CN110111234B (zh) * 2019-04-11 2023-12-15 上海集成电路研发中心有限公司 一种基于神经网络的图像处理系统架构
CN110135557B (zh) * 2019-04-11 2023-06-02 上海集成电路研发中心有限公司 一种图像处理系统的神经网络拓扑架构
CN110046513B (zh) * 2019-04-11 2023-01-03 长安大学 基于Hopfield混沌神经网络的明文关联图像加密方法
KR102675806B1 (ko) 2019-05-03 2024-06-18 삼성전자주식회사 영상 처리 장치 및 그 영상 처리 방법
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
KR102410166B1 (ko) * 2019-11-27 2022-06-20 고려대학교 산학협력단 이종 곱셈-누셈 유닛을 이용하는 심층 신경망의 가속기
CN111461308B (zh) * 2020-04-14 2023-06-30 中国人民解放军国防科技大学 忆阻神经网络及权值训练方法
JP7493398B2 (ja) 2020-07-03 2024-05-31 日本放送協会 変換装置、学習装置、およびプログラム
CN111815640B (zh) * 2020-07-21 2022-05-03 江苏经贸职业技术学院 一种基于忆阻器的rbf神经网络医学图像分割算法
CN112215344A (zh) * 2020-09-30 2021-01-12 清华大学 神经网络电路的校正方法以及设计方法
US20220138579A1 (en) * 2020-11-02 2022-05-05 International Business Machines Corporation Weight repetition on rpu crossbar arrays
CN113570048B (zh) * 2021-06-17 2022-05-31 南方科技大学 基于电路仿真的忆阻器阵列神经网络的构建及优化方法
KR102514652B1 (ko) * 2021-11-19 2023-03-29 서울대학교산학협력단 뉴로모픽 소자를 위한 가중치 전사 장치 및 이를 이용한 가중치 전사 방법
CN115358389B (zh) * 2022-09-01 2024-08-20 清华大学 神经网络的训练误差降低方法、装置、电子设备及介质
WO2024206841A1 (en) * 2023-03-31 2024-10-03 President And Fellows Of Harvard College Systems and methods for differentiable optical processors

Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101980290B (zh) * 2010-10-29 2012-06-20 西安电子科技大学 抗噪声环境多聚焦图像融合方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
D. Pescianschi 외 3인, "Analog and Digital Modeling of a Scalable Neural Network", Int'l Conf. Artificial Intelligence(ICAI'15) Vol.II (2015.07)*

Also Published As

Publication number Publication date
EP3469521A4 (en) 2020-02-26
WO2017214507A1 (en) 2017-12-14
EP3469521A1 (en) 2019-04-17
KR20190016539A (ko) 2019-02-18
CN109416758A (zh) 2019-03-01
JP2019519045A (ja) 2019-07-04
JP7041078B2 (ja) 2022-03-23

Similar Documents

Publication Publication Date Title
KR102558300B1 (ko) 신경망 및 신경망 트레이닝 방법
US9619749B2 (en) Neural network and method of neural network training
KR102166105B1 (ko) 신경망 및 신경망 트레이닝의 방법
US11837324B2 (en) Deep learning-based aberrant splicing detection
KR102139740B1 (ko) 전자 장치 및 학습 모델 최적화 방법
TWI655587B (zh) 神經網路及神經網路訓練的方法
WO2020019236A1 (en) Loss-error-aware quantization of a low-bit neural network
CN105960647B (zh) 紧凑人脸表示
CN114330736A (zh) 具有噪声对比先验的潜在变量生成性模型
Fatahi et al. Towards an spiking deep belief network for face recognition application
Du et al. Efficient network construction through structural plasticity
JP2021193565A (ja) ニューラルネットワークを具現化する装置及びその動作方法
Pereira et al. Vae-bridge: Variational autoencoder filter for bayesian ridge imputation of missing data
JP2023544170A (ja) ニューラルネットワークモデルのためのバンクバランストスパース活性化特徴マップ
CN114766024A (zh) 用于修剪神经网络的方法和设备
CN110543888B (zh) 一种基于群集递归神经网络的图像分类方法
CN115422357A (zh) 文本分类方法、装置、计算机设备和存储介质
Wang Efficient Adaptation of Deep Vision Models
CN114372560A (zh) 一种神经网络训练方法、装置、设备及存储介质
Shen et al. Consistency of neural networks with regularization
US10423694B2 (en) Neural network and method of neural network training
US20240161245A1 (en) Image optimization
WO2023084759A1 (ja) 画像処理装置、画像処理方法、及びプログラム
Hauser Training capsules as a routing-weighted product of expert neurons
CN115482544A (zh) 自适应拟合模型训练方法、装置、计算机设备及存储介质

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