KR102483639B1 - 뉴럴 네트워크 구조 확장 방법, 디멘션 리덕션 방법, 및 그 방법을 이용한 장치 - Google Patents

뉴럴 네트워크 구조 확장 방법, 디멘션 리덕션 방법, 및 그 방법을 이용한 장치 Download PDF

Info

Publication number
KR102483639B1
KR102483639B1 KR1020150102852A KR20150102852A KR102483639B1 KR 102483639 B1 KR102483639 B1 KR 102483639B1 KR 1020150102852 A KR1020150102852 A KR 1020150102852A KR 20150102852 A KR20150102852 A KR 20150102852A KR 102483639 B1 KR102483639 B1 KR 102483639B1
Authority
KR
South Korea
Prior art keywords
neural network
node
connection weights
layer
nodes
Prior art date
Application number
KR1020150102852A
Other languages
English (en)
Other versions
KR20160063965A (ko
Inventor
최희열
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20160063965A publication Critical patent/KR20160063965A/ko
Application granted granted Critical
Publication of KR102483639B1 publication Critical patent/KR102483639B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

뉴럴 네트워크 확장 방법이 개시된다. 일 실시예에 따른 뉴럴 네트워크 학습 장치는 뉴럴 네트워크에 포함된 노드들 중 적어도 하나의 노드를 선택하고, 선택된 노드가 속한 레이어에 새로운 노드를 생성하며, 선택된 노드의 연결 가중치들에 기초하여 새로운 노드의 연결 가중치들을 설정한다.

Description

뉴럴 네트워크 구조 확장 방법, 디멘션 리덕션 방법, 및 그 방법을 이용한 장치{METHOD FOR EXTENDING STRUCTURE OF NEURAL NETWORK, METHOD OF DIMENSION REDUCTION, AND APPARATUS THEREOF}
아래 실시예들은 뉴럴 네트워크 구조 확장 방법, 디멘션 리덕션 방법, 및 그 방법을 이용한 장치에 관한 것이다.
최근 들어, 입력 패턴을 특정 그룹으로 분류하는 문제를 해결하기 위하여, 인간이 지니고 있는 효율적인 패턴 인식 방법을 실제 컴퓨터에 적용시키려는 연구가 활발히 진행되고 있다. 이러한 연구 중 하나로, 인간의 생물학적 신경 세포의 특성을 수학적 표현에 의해 모델링 한 인공 뉴럴 네트워크(artificial neural network)에 대한 연구가 있다. 입력 패턴을 특정 그룹으로 분류하는 문제를 해결하기 위해, 인공 뉴럴 네트워크는 인간이 가지고 있는 학습이라는 능력을 모방한 알고리즘을 이용한다. 이 알고리즘을 통하여 인공 뉴럴 네트워크는 입력 패턴과 출력 패턴들 사이의 사상(mapping)을 생성할 수 있고, 이러한 사상을 생성하는 능력은 인공 뉴럴 네트워크의 학습 능력이라고 표현된다. 또한, 인공 뉴럴 네트워크는 학습된 결과에 기초하여 학습에 이용되지 않았던 입력 패턴에 대하여 비교적 올바른 출력을 생성할 수 있는 일반화 능력을 가진다.
일 측에 따른 뉴럴 네트워크 확장 방법은 상기 뉴럴 네트워크에 포함된 노드들 중 적어도 하나의 노드를 선택하는 단계; 상기 선택된 노드가 속한 레이어에 새로운 노드를 생성하는 단계; 및 상기 새로운 노드의 연결 가중치들을 설정하는 단계를 포함한다.
상기 뉴럴 네트워크 확장 방법은 상기 뉴럴 네트워크의 확장이 필요한지 여부를 판단하는 단계를 더 포함할 수 있다.
상기 판단하는 단계는 상기 뉴럴 네트워크의 성능을 모니터링 하는 단계; 및 상기 뉴럴 네트워크의 성능이 향상되는 정도가 미리 정해진 제1 임계치보다 작은 경우, 상기 뉴럴 네트워크의 확장이 필요하다고 판단하는 단계를 포함할 수 있다.
상기 판단하는 단계는 상기 뉴럴 네트워크의 성능을 모니터링 하는 단계; 및 상기 뉴럴 네트워크의 성능이 향상되는 정도가 미리 정해진 제1 임계치보다 작고, 상기 뉴럴 네트워크의 이전(previous) 확장 이후 상기 뉴럴 네트워크의 성능이 향상된 정도가 미리 정해진 제2 임계치보다 작은 경우, 상기 뉴럴 네트워크의 학습을 종료시키는 단계를 더 포함할 수 있다.
상기 선택하는 단계는 상기 노드들의 활성화 빈도수 정보 및 활성화 엔트로피 정보 중 적어도 하나에 기초하여 상기 적어도 하나의 노드를 선택하는 단계를 포함할 수 있다.
상기 노드들 중 미리 정해진 시간 구간에서 활성화 빈도수가 가장 큰 노드가 선택될 수 있다. 상기 노드들 중 미리 정해진 시간 구간에서 활성화 엔트로피가 미리 정해진 제3 임계치보다 작고, 활성화 빈도수가 미리 정해진 제4 임계치보다 큰 노드가 선택될 수 있다.
상기 활성화 빈도수 정보는 미리 정해진 시간 구간 내, 상기 노드들 각각이 활성화되는 빈도수를 포함할 수 있다. 상기 활성화 엔트로피 정보는 미리 정해진 시간 구간 내, 상기 노드들 각각이 활성화 상태와 비활성화 상태 사이에서 천이되는 횟수를 포함할 수 있다.
상기 생성하는 단계는 상기 레이어의 이전 레이어에 포함된 노드들과 상기 새로운 노드 사이를 연결하는 단계; 및 상기 레이어의 다음 레이어에 포함된 노드들과 상기 새로운 노드 사이를 연결하는 단계를 포함할 수 있다.
상기 뉴럴 네트워크 확장 방법은 상기 새로운 노드의 연결 가중치들을 미리 정해진 초기값으로 설정하는 단계를 더 포함할 수 있다.
상기 선택된 노드의 연결 가중치들은 상기 선택된 노드와 연결된 연결선들에 대응하는 가중치들이고, 상기 새로운 노드의 연결 가중치들은 상기 새로운 노드와 연결된 연결선들에 대응하는 가중치들일 수 있다.
상기 설정하는 단계는 상기 선택된 노드의 연결 가중치들 중 적어도 일부를 선택하는 단계; 및 상기 새로운 노드에서 상기 선택된 적어도 일부의 연결 가중치들에 대응하는 연결 가중치들을 상기 선택된 일부의 연결 가중치들로 설정하는 단계를 포함할 수 있다. 상기 설정하는 단계는 상기 선택된 노드에서 상기 선택된 적어도 일부의 연결 가중치들을 미리 정해진 초기값으로 설정하는 단계를 더 포함할 수 있다.
상기 선택된 노드의 연결 가중치들 중 적어도 일부를 선택하는 단계는 상기 선택된 노드의 연결 가중치들을 제1 그룹 및 제2 그룹으로 분할하는 단계; 및 상기 제1 그룹 및 상기 제2 그룹 중 어느 하나의 그룹에 속한 연결 가중치들을 선택하는 단계를 포함할 수 있다.
상기 선택된 노드의 연결 가중치들은 상기 제1 그룹에 속한 연결 가중치들의 합과 상기 제2 그룹에 속한 연결 가중치들의 합 사이의 차이가 미리 정해진 제5 임계치 이하가 되도록, 상기 제1 그룹 및 상기 제2 그룹으로 분할될 수 있다.
상기 설정하는 단계는 상기 새로운 노드의 입력 연결 가중치들을 상기 선택된 노드의 입력 연결 가중치들로 설정하는 단계; 상기 선택된 노드의 출력 연결 가중치들 중 일부를 선택하는 단계; 상기 새로운 노드에서 상기 선택된 일부의 출력 연결 가중치들에 대응하는 연결 가중치들을 상기 선택된 일부의 출력 연결 가중치들로 설정하는 단계; 및 상기 선택된 노드에서 상기 선택된 일부의 출력 연결 가중치들을 미리 정해진 초기값으로 설정하는 단계를 포함할 수 있다.
상기 뉴럴 네트워크 확장 방법은 상기 선택된 노드의 활성화 특성에 기초하여 상기 새로운 노드의 활성화 특성을 설정하는 단계를 더 포함할 수 있다.
상기 뉴럴 네트워크 확장 방법은 상기 새로운 노드를 포함하도록 확장된 뉴럴 네트워크를 학습시키는 단계를 더 포함할 수 있다.
초기 뉴럴 네트워크는 미리 정해진 수 이하의 노드들을 포함하는 복수의 히든 레이어들을 포함할 수 있다. 상기 선택하는 단계는 상기 복수의 히든 레이어들에 포함된 노드들 중 적어도 하나의 노드를 선택하는 단계를 포함할 수 있다.
다른 일 측에 따른 디멘션 리덕션(dimension reduction) 방법은 입력 레이어, 하나 또는 그 이상의 히든 레이어, 및 출력 레이어를 포함하는 뉴럴 네트워크를 학습시키는 단계; 상기 뉴럴 네트워크를 학습시키는 동안, 상기 히든 레이어의 확장이 필요한지 여부를 판단하는 단계; 및 상기 히든 레이어의 확장이 필요하다는 판단에 따라, 상기 히든 레이어를 확장시키는 단계를 포함한다.
상기 디멘션 리덕션 방법은 상기 뉴럴 네트워크를 학습시키기 이전에, 상기 뉴럴 네트워크를 초기화하는 단계를 더 포함할 수 있다. 상기 초기화하는 단계는 상기 입력 레이어에서 상기 입력 디멘션에 해당하는 수의 노드들을 생성하는 단계; 상기 히든 레이어에서 미리 정해진 초기값에 해당하는 적어도 하나의 노드를 생성하는 단계; 상기 출력 레이어에서 상기 입력 디멘션에 해당하는 수의 노드들을 생성하는 단계를 포함할 수 있다.
상기 판단하는 단계는 상기 입력 레이어에 입력되는 값들과 상기 출력 레이어에서 출력되는 값들 사이의 차이에 기초하여, 상기 뉴럴 네트워크의 성능을 모니터링 하는 단계; 및 상기 뉴럴 네트워크의 성능이 향상되는 정도가 미리 정해진 임계치보다 작은 경우, 상기 뉴럴 네트워크의 확장이 필요하다고 판단하는 단계를 포함할 수 있다.
상기 히든 레이어를 확장시키는 단계는 상기 히든 레이어에 포함된 노드들 중 적어도 하나의 노드를 선택하는 단계; 상기 히든 레이어에 새로운 노드를 생성하는 단계; 및 상기 선택된 노드의 연결 가중치들에 기초하여 상기 새로운 노드의 연결 가중치들을 설정하는 단계를 포함할 수 있다.
상기 선택하는 단계는 상기 노드들의 활성화 빈도수 정보 및 활성화 엔트로피 정보 중 적어도 하나에 기초하여 상기 적어도 하나의 노드를 선택하는 단계를 포함할 수 있다.
상기 설정하는 단계는 상기 선택된 노드의 연결 가중치들 중 적어도 일부를 선택하는 단계; 및 상기 새로운 노드에서 상기 선택된 적어도 일부의 연결 가중치들에 대응하는 연결 가중치들을 상기 선택된 일부의 연결 가중치들로 설정하는 단계를 포함할 수 있다. 상기 설정하는 단계는 상기 선택된 노드에서 상기 선택된 적어도 일부의 연결 가중치들을 미리 정해진 초기값으로 설정하는 단계를 더 포함할 수 있다.
상기 디멘션 리덕션 방법은 상기 확장된 히든 레이어를 포함하는 뉴럴 네트워크를 학습시키는 단계를 더 포함할 수 있다.
또 다른 일 측에 따른 뉴럴 네트워크 확장 장치는 뉴럴 네트워크를 저장하는 메모리; 및 활성화 정보에 기초하여 상기 뉴럴 네트워크의 노드를 선택하고, 상기 선택된 노드를 포함하는 레이어에 새로운 노드를 추가함으로써 상기 뉴럴 네트워크를 확장하는 프로세서를 포함한다.
상기 프로세서는 상기 선택된 노드의 연결 가중치들에 기초하여 상기 새로운 노드의 연결 가중치들을 설정할 수 있다. 상기 프로세서는 트레이닝 데이터를 이용하여 상기 확장된 뉴럴 네트워크를 학습시킴으로써 상기 새로운 노드의 연결 가중치들을 조정할 수 있다.
상기 프로세서는 트레이닝 데이터 메모리 스토리지의 트레이닝 데이터를 상기 확장된 뉴럴 네트워크에 적용하고, 상기 확장된 뉴럴 네트워크의 활성화 패턴에 기초하여 히든 레이어의 확장이 요구되는지 여부를 결정하며, 상기 히든 레이어의 확장이 요구된다는 판단에 기초하여 상기 뉴럴 네트워크의 히든 레이어 내 노드들의 수를 증가시킬 수 있다.
상기 뉴럴 네트워크 확장 장치는 입력 장치를 더 포함하고, 상기 프로세서는 출력 데이터를 획득하기 위하여, 상기 입력 장치를 이용하여 획득된 입력 데이터를 상기 뉴럴 네트워크에 적용할 수 있다.
상기 선택된 노드를 포함하는 레이어는 상기 뉴럴 네트워크의 히든 레이어를 포함할 수 있다.
도 1은 일 실시예에 따른 뉴럴 네트워크(neural network)를 설명하는 도면.
도 2는 일 실시예에 따른 뉴럴 네트워크 확장 방법을 나타낸 동작 흐름도.
도 3은 일 실시예에 따른 노드의 선택을 설명하는 도면.
도 4a 및 도 4b는 실시예들에 따른 활성화 패턴에 기초한 동작을 설명하는 도면들.
도 5는 일 실시예에 따른 새로운 노드의 생성을 설명하는 도면.
도 6 내지 도 8은 일 실시예에 따른 연결 가중치들의 설정을 설명하는 도면들.
도 9는 일 실시예에 따른 뉴럴 네트워크의 확장 이후 추가적인 학습을 설명하는 도면.
도 10은 일 실시예에 따른 뉴럴 네트워크가 확장된 이후 추가적인 학습이 수행되는 방법을 설명하는 도면.
도 11a는 일 실시예에 따른 뉴럴 네트워크를 확장하는 방법을 도시하는 동작 흐름도.
도 11b는 일 실시예에 따른 뉴럴 네트워크 확장 방법을 이용한 복수의 이터레이션들을 통한 뉴럴 네트워크의 점진적인 변화를 도시하는 도면.
도 12 및 도 13은 일 실시예에 따른 뉴럴 네트워크 확장 방법에 의하여 학습되는 뉴럴 네트워크를 설명하는 도면들.
도 14 및 도 15는 일 실시예에 따른 뉴럴 네트워크 확장 방법에 의하여 학습되는 오토 인코더를 설명하는 도면들.
도 16은 일 실시예에 따른 뉴럴 네트워크 학습 장치를 나타낸 블록도.
도 17은 일 실시예에 따른 디멘션 리덕션 장치를 나타낸 블록도.
도 18은 일 실시예에 따른 인공 뉴런을 도시한 도면.
도 19는 일 실시예에 따른 뉴럴 네트워크 확장 장치를 나타낸 블록도.
도 20은 일 실시예에 따른 확장된 뉴럴 네트워크를 이용하여 입력 데이터를 분석하는 장치를 나타낸 블록도.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일 실시예에 따른 뉴럴 네트워크(neural network)를 설명하는 도면이다. 도 1을 참조하면, 일 실시예에 따른 뉴럴 네트워크(100)는 연결선(edge)으로 연결된 많은 수의 인공 뉴런들을 이용하여 생물학적인 시스템의 계산 능력을 모방하는 인식 모델이다. 뉴럴 네트워크(100)는 소프트웨어, 하드웨어, 또는 이들의 조합으로 구현될 수 있다. 뉴럴 네트워크(100)는 인공(artificial) 뉴럴 네트워크라고 지칭될 수 있다.
뉴럴 네트워크(100)는 생물학적인 뉴런의 기능을 단순화시킨 인공 뉴런들을 이용한다. 인공 뉴런은 노드(node)라고 지칭될 수 있다. 인공 뉴런들은 연결 가중치(connection weight)를 가지는 연결선을 통해 상호 연결될 수 있다. 연결 가중치는 연결선이 갖는 특정한 값으로, 시냅스 가중치(synapse weight) 또는 연결 강도라고 지칭될 수 있다. 뉴럴 네트워크(100)는 인공 뉴런들을 통해 인간의 인지 작용이나 학습 과정을 수행할 수 있다.
도 18은 일 실시예에 따른 인공 뉴런을 설명하는 도면이다. 도 18을 참조하면, 인공 뉴런은 몸체(body)에 해당하는 노드, 노드의 입력 벡터, 및 노드와 이전 노드 사이의 에지를 형성하는 이전 인공 뉴런의 출력 벡터를 이용하여 구현될 수 있다. 하지만, 인공 뉴런의 데이터 구조에 다양한 변형이 가해질 수 있으며, 이러한 변형들은 실시예들의 범위에 속한다.
인공 뉴런은 n개의 입력 소스들로부터 입력 X1 부터 XN을 수신할 수 있다. 예를 들어, n개의 입력 소스들은 다른 인공 뉴런의 시냅스들, 센서들, 입력 데이터 스토리지, 또는 다른 데이터 소스들일 수 있다. 인공 뉴런의 몸체와 입력 X1 부터 XN을 연결하는 입력 벡터들은 개별 시냅스 가중치 W1 부터 WN을 이용하여 스케일 될 수 있다. 시냅스 가중치들은 인공 뉴런의 몸체에 의하여 수신되는 입력의 강도에 영향을 줄 수 있다. 예를 들어, 시냅스 가중치 W1이 0.8인 경우, 입력 X1은 인공 뉴런의 몸체에 도달할 때 80%로 감소될 수 있다. 수신된 입력들은 선형 합산에 의하여 결합되거나, 활성화 함수 AF(x1, x2, ..., xn)에 기초하여 수신된 입력들을 결합하기 위하여 추가적인 함수들이 적용될 수 있다. 예를 들어, 특정 입력 벡터들을 통하여 수신된 입력들은 인공 뉴런을 활성화시키는 대신 비활성화시킬 수도 있다. 활성화 함수 AF(x1, x2, ..., xn)에 기초하여, 인공 뉴런의 몸체는 결합된 입력들을 조절함으로써, 출력 "Y"를 생성할 수 있다. 일 예시에 따르면, 다음 인공 뉴런으로 출력 "Y"를 발화하기 위하여, 활성화 함수 AF(x1, x2, ..., xn)의 결과는 인공 뉴런의 임계 값을 초과해야 한다. 이 경우, 인공 뉴런은 입력 벡터들을 통하여 특정 임계 활성화 강도에 도달하기 전에는 다음 인공 뉴런으로 신호를 발화하지 않고, 비활성화 상태를 유지할 수 있다.
다시 도 1을 참조하면, 뉴럴 네트워크(100)는 복수의 레이어들을 포함할 수 있다. 예를 들어, 뉴럴 네트워크(100)는 입력 레이어(input layer)(110), 히든 레이어(hidden layer)(120), 출력 레이어(output layer)(130)을 포함한다. 입력 레이어(110)는 학습을 수행하기 위한 입력을 수신하여 히든 레이어(120)에 전달할 수 있고, 출력 레이어(130)는 히든 레이어(120)로부터 수신한 신호에 기초하여 뉴럴 네트워크(100)의 출력을 생성할 수 있다. 히든 레이어(120)는 입력 레이어(110)와 출력 레이어(130) 사이에 위치하고, 입력 레이어(110)를 통해 전달된 학습 데이터를 예측하기 쉬운 값으로 변화시킬 수 있다.
입력 레이어(110), 히든 레이어(120) 및 출력 레이어(130)는 복수 개의 노드들을 포함할 수 있다. 입력 레이어(110)에 포함된 노드는 입력 노드(input node)라고 지칭되고, 히든 레이어(120)에 포함된 노드는 히든 노드(hidden node)라고 지칭되며, 출력 레이어(130)에 포함된 노드는 출력 노드(output node)라고 지칭될 수 있다.
입력 레이어(110)에 포함된 입력 노드들과 히든 레이어(120)에 포함된 히든 노드들은 연결 가중치를 가지는 연결선들을 통해 서로 연결될 수 있다. 히든 레이어(120)에 포함된 히든 노드들과 출력 레이어(130)에 포함된 출력 노드들은 연결 가중치를 가지는 연결선들을 통해 서로 연결될 수 있다.
도면에 도시하지 않았으나, 뉴럴 네트워크는 복수 개의 히든 레이어들을 포함할 수 있다. 복수 개의 히든 레이어들을 포함하는 뉴럴 네트워크는 깊은 뉴럴 네트워크(deep neural network)라고 지칭될 수 있다. 깊은 뉴럴 네트워크를 학습시키는 것은 깊은 학습(deep learning)이라고 지칭될 수 있다.
히든 레이어(120)에 제1 히든 레이어, 제2 히든 레이어, 및 제3 히든 레이어가 포함되는 경우를 가정하면, 제1 히든 레이어에 속한 히든 노드의 출력은 제2 히든 레이어에 속한 히든 노드들에 연결될 수 있다. 제2 히든 레이어에 속한 히든 노드의 출력은 제3 히든 레이어에 속한 히든 노드들에 연결될 수 있다.
일 실시예에 따르면, 서로 다른 히든 레이어들에 속한 히든 노드들 간에 재귀적(recurrent)으로 연결될 수 있다. 이처럼 서로 다른 히든 레이어들에 속한 히든 노드들 간에 재귀적인 연결이 있는 뉴럴 네트워크(100)는 회귀 뉴럴 네트워크 (recurrent neural network)라고 지칭될 수 있다.
일 실시예에 따른 뉴럴 네트워크 학습 장치는 감독 학습(supervised learning)을 통해 뉴럴 네트워크(100)를 학습시킬 수 있다. 뉴럴 네트워크 학습 장치는 소프트웨어 모듈, 하드웨어 모듈, 또는 이들의 조합으로 구현될 수 있다. 감독 학습은 학습 데이터와 그에 대응하는 출력 데이터를 함께 뉴럴 네트워크(100)에 입력하고, 학습 데이터에 대응하는 출력 데이터가 출력되도록 연결선들의 연결 가중치를 업데이트하는 기법이다. 일 예시에 따르면, 뉴럴 네트워크 학습 장치는 새로운 노드를 추가하거나, 새로운 레이어를 추가함으로써 뉴럴 네트워크를 확장할 수 있다. 뉴럴 네트워크 학습 장치는 트레이닝 데이터에 기초하여 뉴럴 네트워크의 구조를 변경할 수 있다. 도 1은 뉴럴 네트워크의 구조를 노드 구조로 표현하였으나, 실시예들은 이러한 노드 구조에 국한되지 않는다. 메모리 스토리지에 뉴럴 네트워크를 저장하기 위하여 다양한 데이터 구조가 이용될 수 있다.
뉴럴 네트워크 학습 장치는 오류 역 전파 학습(back-propagation learning)을 통해 인공 뉴런들 사이의 연결 가중치를 업데이트할 수 있다. 오류 역 전파 학습은, 주어진 학습 데이터에 대해 포워드 계산(forward computation)을 통하여 오류를 추정한 후, 출력 레이어(130)에서 시작하여 히든 레이어(120) 및 입력 레이어(110)를 향하는 역 방향으로 추정한 오류를 전파하면서, 오류를 줄이는 방향으로 연결 가중치를 업데이트하는 방법이다. 뉴럴 네트워크(100)의 처리는 입력 레이어(110) -> 히든 레이어(120) -> 출력 레이어(130)의 방향으로 진행되지만, 오류 역 전파 학습에서 연결 가중치의 업데이트 방향은 출력 레이어(130) -> 히든 레이어(120) -> 입력 레이어(110)의 방향으로 진행될 수 있다. 하나 또는 그 이상의 프로세서는 뉴럴 네트워크를 원하는 방향으로 처리하기 위하여, 레이어 또는 일련의 계산 데이터를 저장하는 버퍼 메모리를 이용할 수 있다.
뉴럴 네트워크 학습 장치는 현재 설정된 연결 가중치들이 얼마나 최적에 가까운지를 측정하기 위한 목적 함수(objective function)를 정의하고, 목적 함수의 결과에 기초하여 연결 가중치들을 계속 변경하고, 학습을 반복적으로 수행할 수 있다. 예를 들어, 목적 함수는 뉴럴 네트워크(100)가 학습 데이터에 기초하여 실제 출력한 출력 값과 출력되기로 원하는 기대 값 사이의 오류를 계산하기 위한 오류 함수일 수 있다. 뉴럴 네트워크 학습 장치는 오류 함수의 값을 줄이는 방향으로 연결 가중치들을 업데이트할 수 있다.
아래에서 상세하게 설명하겠으나, 일 실시예에 따른 뉴럴 네트워크 학습 장치는 뉴럴 네트워크를 확장시킴으로써, 뉴럴 네트워크의 인식 성능을 향상시킬 수 있다. 이하, 뉴럴 네트워크를 확장시킨다는 표현은 뉴럴 네트워크의 구조를 확장시킨다는 표현과 동일하게 사용된다. 예를 들어, 목적 함수의 결과가 일정 수준 이상으로 좋아지지 않는 경우, 뉴럴 네트워크 학습 장치는 히든 레이어에 포함된 노드의 개수를 증가시키면서 뉴럴 네트워크를 학습시킬 수 있다.
도 2는 일 실시예에 따른 뉴럴 네트워크 구조 확장 방법을 나타낸 동작 흐름도이다. 뉴럴 네트워크는 학습 기반 인식, 학습 기반 인증, 학습 기반 분류 등 다양한 분야에서 활용될 수 있다. 뉴럴 네트워크의 구조가 복잡해질수록 (또는, 뉴럴 네트워크의 규모가 커질수록) 뉴럴 네트워크의 성능은 향상될 수 있다. 하지만, 뉴럴 네트워크의 구조가 복잡해질수록 (또는, 뉴럴 네트워크의 규모가 커질수록) 해당 뉴럴 네트워크를 학습하기 위해 필요한 연산 복잡도도 함께 증가된다. 정교한 학습을 위해서는 일정 수준 이상으로 복잡한 구조를 가지는 (또는, 일정 수준 이상으로 큰 규모를 가지는) 뉴럴 네트워크가 필요하나, 일반적인 학습 방식으로는 해당 뉴럴 네트워크의 성능을 최적화(optimization)하는 데 한계가 있다.
아래에서 설명할 실시예들은 소규모 뉴럴 네트워크를 우선 학습시키고 해당 뉴럴 네트워크의 구조를 점진적으로 확장 및 학습시키는 기술을 제공할 수 있다. 이 경우, 뉴럴 네트워크는 구조 확장 이전에 학습되었던 결과를 유지하면서, 점진적으로 더 정교하게 학습될 수 있다. 뉴럴 네트워크의 구조 확장 및 학습이 반복됨에 따라, 일정 수준 이상으로 복잡한 복잡도 또는 일정 수준 이상으로 큰 규모의 뉴럴 네트워크가 최적으로(optimally) 학습될 수 있다. 이하, 뉴럴 네트워크의 구조 확장에 대하여 상세하게 설명한다.
도 2를 참조하면, 일 실시예에 따른 뉴럴 네트워크 구조 확장 방법은 노드를 선택하는 단계(210), 새로운 노드를 생성하는 단계(220), 새로운 노드를 뉴럴 네트워크에 연결하는 단계(230), 연결 가중치를 설정하는 단계(240), 및 확장된 뉴럴 네트워크를 학습시킴으로써 새로운 노드의 연결 가중치를 조정하는 단계(250)를 포함한다.
단계(210)에서 뉴럴 네트워크에 포함된 노드들 중 적어도 하나의 노드가 선택된다. 노드의 선택을 위하여 다양한 정보가 고려될 수 있다. 예를 들어, 노드의 선택을 위하여, 노드들의 활성화 빈도수 정보 및 노드들의 활성화 엔트로피 정보 등이 고려될 수 있다. 활성화 빈도수 정보는 미리 정해진 시간 구간 내 노드들 각각이 활성화되는 빈도수를 포함할 수 있다. 활성화 엔트로피 정보는 미리 정해진 시간 구간 내 노드들 각각이 활성화 상태와 비활성화 상태 사이에서 천이되는 횟수를 포함할 수 있다.
단계(220)에서 새로운 노드가 생성된다. 새로운 노드는 단계(210)에서 선택된 노드(이하, '선택된 노드'라고 함)가 속한 레이어에 생성될 수 있다. 예를 들어, 뉴럴 네트워크에 제1 히든 레이어, 제2 히든 레이어, 및 제3 히든 레이어가 포함되고, 제2 히든 레이어에 포함된 노드가 선택될 수 있다. 이 경우, 새로운 노드는 제2 히든 레이어에 생성될 수 있다.
새로운 노드는 이전 레이어에 포함된 노드들 및 다음 레이어에 포함된 노드들과 연결된다. 예를 들어, 새로운 노드가 제2 히든 레이어에 생성되는 경우, 새로운 노드는 제1 히든 레이어에 포함된 노드들 및 제3 히든 레이어에 포함된 노드들과 연결될 수 있다.
단계(230)에서, 새로운 노드와 뉴럴 네트워크 내 노드들 사이를 연결하는 에지들이 형성됨으로써, 새로운 노드는 뉴럴 네트워크와 연결될 수 있다.
단계(240)에서 새로운 노드의 연결 가중치들이 설정된다. 새로운 노드의 연결 가중치들은 이전 레이어에 포함된 노드들과 새로운 노드를 연결하는 연결선들의 연결 가중치들 및 새로운 노드와 다음 레이어에 포함된 노드들을 연결하는 연결선들의 연결 가중치들을 포함할 수 있다.
새로운 노드의 연결 가중치들은 선택된 노드의 연결 가중치들에 기초하여 설정될 수 있다. 예를 들어, 새로운 노드의 연결 가중치들 중 일부는 선택된 노드의 연결 가중치들 중 일부와 동일하게 설정될 수 있다. 새로운 노드의 나머지 연결 가중치들은 미리 정해진 초기 값으로 설정될 수 있다. 또한, 선택된 노드의 연결 가중치들 중 새로운 노드의 연결 가중치들을 설정하는데 활용된 연결 가중치들도 미리 정해진 초기 값으로 설정될 수 있다.
단계(220)에서 새로운 노드가 생성되고 단계(230)에서 연결 가중치들이 설정되는 동작은 단계(210)에서 선택된 노드가 복사되는 것으로 이해될 수 있다. 이 때, 선택된 노드의 연결 가중치들 중 일부만 새로운 노드로 복사될 수 있다. 선택된 노드에서 복사된 연결 가중치들은 미리 정해진 초기 값으로 초기화될 수 있다. 또한, 새로운 노드에서 설정되지 않은 연결 가중치들도 미리 정해진 초기 값으로 초기화될 수 있다.
단계(250)에서 뉴럴 네트워크의 구조 확장이 이루어진 뒤 추가적으로 학습이 이루어지면서, 전술한 방식에 따라 설정된 연결 가중치들이 추가적으로 업데이트될 수 있다. 단계(210) 내지 단계(230)과 관련된 보다 상세한 사항들은 도 3 내지 도 8을 통하여 후술한다.
도 3은 일 실시예에 따른 노드의 선택을 설명하는 도면이다. 도 3을 참조하면, 일 실시예에 따른 뉴럴 네트워크 학습 장치는 뉴럴 네트워크의 구조 확장을 위하여, 히든 레이어(120)에 포함된 노드들 중 어느 하나를 선택한다.
뉴럴 네트워크 학습 장치는 히든 레이어(120)에 포함된 히든 노드들의 활성화 패턴을 모니터링 할 수 있다. 일 예로, 도 4a를 참조하면, 제1 히든 노드(121)의 활성화 패턴은 off-on-off-off-off 이고, 제2 히든 노드(122)의 활성화 패턴은 on-on-off-on-off 일 수 있다. 뉴럴 네트워크 학습 장치는 히든 노드들의 활성화 패턴들에 기초하여 활성화 빈도수 정보를 생성할 수 있다. 활성화 빈도수 정보는 모니터링 된 활성화 패턴 내 히든 노드들 각각이 활성화된 빈도수를 나타내는 정보이다. 도 4a의 예시에서, 제1 히든 노드(121)의 활성화 빈도수는 1이고, 제2 히든 노드(122)의 활성화 빈도수는 3이다.
뉴럴 네트워크 학습 장치는 미리 정해진 시간 구간에서 활성화 빈도수가 가장 큰 노드를 선택할 수 있다. 활성화 빈도수가 가장 큰 노드를 선택하는 이유는 활성화 빈도수가 가장 큰 노드가 뉴럴 네트워크 내에서 가장 부하가 많은 노드일 수 있기 때문이다. 가장 부하가 많은 노드의 부하를 경감시킴으로써 뉴럴 네트워크의 인식 성능이 향상될 수 있다. 도 4a의 예시에 따르면, 제2 히든 노드(122)의 활성화 빈도수(예를 들어, 3)가 제1 히든 노드(121)의 활성화 빈도수(예를 들어, 1)보다 크므로, 제2 히든 노드(122)가 선택될 수 있다.
다른 예로, 도 4b를 참조하면, 제1 히든 노드(121)의 활성화 패턴은 on-off-on-off-on 이고, 제2 히든 노드(122)의 활성화 패턴은 on-on-on-off-off 일 수 있다. 뉴럴 네트워크 학습 장치는 히든 노드들의 활성화 패턴들에 기초하여 활성화 빈도수 정보를 생성할 수 있다. 도 4b의 예시에서, 제1 히든 노드(121)의 활성화 빈도수와 제2 히든 노드(122)의 활성화 빈도수는 모두 3이다.
또한, 뉴럴 네트워크 학습 장치는 히든 노드들의 활성화 패턴들에 기초하여 활성화 엔트로피 정보를 생성할 수 있다. 활성화 엔트로피 정보는 모니터링 된 활성화 패턴 내 히든 노드들 각각이 활성화 상태와 비활성화 상태 사이에서 천이된 횟수를 나타내는 정보이다. 도 4b의 예시에서, 제1 히든 노드(121)의 활성화 엔트로피는 4이고, 제2 히든 노드(122)의 활성화 엔트로피는 1이다.
뉴럴 네트워크 학습 장치는 미리 정해진 시간 구간에서 활성화 엔트로피가 미리 정해진 제3 임계치보다 작고, 활성화 빈도수가 미리 정해진 제4 임계치보다 큰 노드를 선택할 수 있다. 활성화 빈도수가 일정 수준 이상이면서 활성화 엔트로피가 큰 노드는 미리 정해진 시간 구간 내에서 고른 분포로 활성화되었을 확률이 높다. 또한, 활성화 빈도수가 일정 수준 이상이면서 활성화 엔트로피가 작은 노드는 미리 정해진 시간 구간 내 특정 시간 구간에 집중적으로 활성화되었을 확률이 높다.
특정 시간 구간에 집중되는 활성화를 분산시켜 뉴럴 네트워크의 인식 성능을 향상시키기 위하여, 활성화 엔트로피가 미리 정해진 제3 임계치보다 작고 활성화 빈도수가 미리 정해진 제4 임계치보다 큰 노드가 선택될 수 있다. 예를 들어, 제3 임계치와 제4 임계치가 모두 2인 경우를 가정하면, 도 4a의 예시에서 제2 히든 노드(122)의 활성화 엔트로피(예를 들어, 1)는 제3 임계치(예를 들어, 2)보다 작고, 제2 히든 노드(122)의 활성화 빈도수(예를 들어, 3)는 제4 임계치(예를 들어, 2)보다 크므로, 제2 히든 노드(122)가 선택될 수 있다.
도 5는 일 실시예에 따른 새로운 노드의 생성을 설명하는 도면이다. 도 5를 참조하면, 일 실시예에 따른 뉴럴 네트워크 학습 장치는 선택된 노드가 속한 레이어에 새로운 노드를 생성한다. 예를 들어, 제2 히든 노드(122)가 선택된 경우를 가정하면, 뉴럴 네트워크 학습 장치는 선택된 제2 히든 노드(122)가 포함된 히든 레이어(120)에 새로운 제3 히든 노드(123)를 생성할 수 있다.
뉴럴 네트워크 학습 장치는 선택된 노드의 활성화 특성에 기초하여 새로운 노드의 활성화 특성을 설정할 수 있다. 예를 들어, 뉴럴 네트워크 학습 장치는 선택된 노드의 활성화 임계치에 기초하여 새로운 노드의 활성화 임계치를 설정할 수 있다. 또는, 뉴럴 네트워크 학습 장치는 선택된 노드의 활성화 함수에 기초하여 새로운 노드의 활성화 함수를 설정할 수 있다.
도 6 내지 도 8은 일 실시예에 따른 연결 가중치들의 설정을 설명하는 도면들이다. 일 실시예에 따른 뉴럴 네트워크 학습 장치는 선택된 노드의 연결 가중치들에 기초하여 새로운 노드의 연결 가중치들을 설정할 수 있다. 이하, 선택된 노드의 연결 가중치들 중 일부를 새로운 노드로 이동시키는 실시예를 설명하나, 선택된 노드의 연결 가중치들에 기초하여 새로운 노드의 연결 가중치들을 설정하는 방법은 다양하게 변형될 수 있다. 예를 들어, 뉴럴 네트워크 학습 장치는 선택된 노드의 연결 가중치들의 다양한 통계(statistics)에 기초하여, 새로운 노드의 연결 가중치들을 설정할 수도 있다.
도 6을 참조하면, 일 실시예에 따른 뉴럴 네트워크 학습 장치는 선택된 노드(122)의 연결 가중치들 중 일부를 선택할 수 있다. 선택된 노드(122)의 연결 가중치들은 입력 연결 가중치들과 출력 연결 가중치들을 포함한다. 뉴럴 네트워크 학습 장치는 선택된 노드(122)의 입력 연결 가중치들(611, 612, 613)을 선택할 수 있다.
다른 예로, 도면에 도시하지 않았으나, 뉴럴 네트워크 학습 장치는 입력 연결 가중치들을 복수의 입력 그룹들로 분할하고, 출력 연결 가중치들을 복수의 출력 그룹들로 분할할 수 있다. 뉴럴 네트워크 학습 장치는 복수의 입력 그룹들 중 어느 하나의 그룹을 선택하고, 복수의 출력 그룹들 중 어느 하나의 그룹을 선택할 수 있다.
예를 들어, 뉴럴 네트워크 학습 장치는 제1 입력 연결선의 제1 입력 연결 가중치(611), 제2 입력 연결선의 제2 입력 연결 가중치(612), 및 제3 입력 연결선의 제3 입력 연결 가중치(613)를 2개의 입력 그룹들로 분할할 수 있다. 2개의 입력 그룹들은 {제1 입력 연결 가중치(611), 제2 입력 연결 가중치(612)}와 {제3 입력 연결 가중치(613)}일 수 있다. 뉴럴 네트워크 학습 장치는 2개의 입력 그룹들 중 어느 하나의 입력 그룹, 예를 들어 {제3 입력 연결 가중치(613)}를 선택할 수 있다.
뉴럴 네트워크 학습 장치는 다양한 방식을 통하여 입력 연결 가중치들을 복수의 그룹들로 분할할 수 있다. 일 예로, 뉴럴 네트워크 학습 장치는 제1 그룹에 속한 연결 가중치들의 합과 제2 그룹에 속한 연결 가중치들의 합 사이의 차이가 미리 정해진 제5 임계치 이하가 되도록, 선택된 노드(122)의 연결 가중치들을 제1 그룹 및 제2 그룹으로 분할할 수 있다.
다른 예로, 뉴럴 네트워크 학습 장치는 선택된 노드(122)의 연결 가중치들을 크기 순으로 정렬할 수 있다. 선택된 노드(122)의 연결 가중치들이 총 n개인 경우, 연결 가중치들이 정렬된 정렬 리스트에 포함된 연결 가중치들은 각각 1 ~ n으로 인덱스 될 수 있다. 뉴럴 네트워크 학습 장치는 정렬 리스트 내 양 끝에 위치한 연결 가중치들(인덱스 1, 인덱스 n)을 제1 그룹으로 분류하고, 정렬 리스트 내 분류되지 않은 연결 가중치들 중 양 끝에 위치한 연결 가중치들(인덱스 2, 인덱스 n-1)을 제2 그룹으로 분류할 수 있다. 뉴럴 네트워크 학습 장치는 정렬 리스트 내 모든 원소들이 분류될 때까지 전술한 과정을 반복함으로써, 선택된 노드(122)의 연결 가중치들을 제1 그룹 및 제2 그룹으로 분할할 수 있다.
전술한 방식들은 예시적인 사항에 불과하고, 선택된 노드(122)의 연결 가중치들을 제1 그룹 및 제2 그룹으로 분할하는 방식은 다양하게 변형될 수 있다. 뿐만 아니라, 실시예들은 선택된 노드(122)의 연결 가중치들을 3개 이상의 그룹들로 분할하는 방식으로도 확장될 수 있다.
또한, 뉴럴 네트워크 학습 장치는 출력 연결 가중치들을 복수의 그룹들로 분할할 수 있다. 예를 들어, 뉴럴 네트워크 학습 장치는 제1 출력 연결선의 제1 출력 연결 가중치(621), 제2 출력 연결선의 제2 출력 연결 가중치(622), 및 제3 출력 연결선의 제3 출력 연결 가중치(623)를 2개의 출력 그룹들로 분할할 수 있다. 2개의 출력 그룹들은 {제1 출력 연결 가중치(621)}와 {제2 출력 연결 가중치(622), 제3 출력 연결 가중치(623)}일 수 있다. 뉴럴 네트워크 학습 장치는 2개의 출력 그룹들 중 어느 하나의 출력 그룹, 예를 들어 {제2 출력 연결 가중치(622), 제3 출력 연결 가중치(623)}를 선택할 수 있다.
뉴럴 네트워크 학습 장치는 분할된 그룹들 중 어느 하나의 그룹에 속한 연결 가중치들을 선택할 수 있다. 예를 들어, 뉴럴 네트워크 학습 장치는 분할된 그룹들 중 어느 하나의 그룹을 미리 정해진 방식(예를 들어, 랜덤 선택 방식 등)에 따라 선택하고, 선택된 그룹에 속한 연결 가중치들을 선택할 수 있다.
도 7을 참조하면, 일 실시예에 따른 뉴럴 네트워크 학습 장치는 새로운 노드(123)의 연결 가중치들을 설정하기 위하여, 선택된 노드(122)로부터 선택된 일부의 연결 가중치들을 새로운 노드(123)로 이용할 수 있다. 예를 들어, 뉴럴 네트워크 학습 장치는 선택된 노드(122)의 입력 연결 가중치들(611, 612, 613) 모두를 선택할 수 있다. 선택된 노드(122)의 입력 연결 가중치들(611, 612, 613)는 입력 노드들(701, 702, 703)와 선택된 노드(122)를 연결하는 연결선들의 연결 가중치들이다. 뉴럴 네트워크 학습 장치는 선택된 입력 연결 가중치들(611, 612, 613)을 새로운 노드(123)로 복사(copy)할 수 있다. 뉴럴 네트워크 학습 장치는 입력 노드들(701, 702, 703)와 새로운 노드(123)를 연결하는 연결선의 연결 가중치들(711, 712, 713)를 입력 연결 가중치들(611, 612, 613)와 동일하게 설정할 수 있다.
뉴럴 네트워크 학습 장치는 선택된 노드(122)의 출력 연결 가중치들(621, 622, 623) 중 일부를 선택할 수 있다. 예를 들어, 뉴럴 네트워크 학습 장치는 선택된 노드(122)의 출력 연결 가중치들(621, 622, 623) 중 출력 연결 가중치들(622, 623)을 선택할 수 있다. 뉴럴 네트워크 학습 장치는 선택된 출력 연결 가중치들(622, 623)을 새로운 노드(123)로 이동(move)시킬 수 있다. 뉴럴 네트워크 학습 장치는 연결 가중치(722)를 출력 연결 가중치(622)와 동일하게 설정하고, 연결 가중치(723)을 출력 연결 가중치(623)과 동일하게 설정할 수 있다. 뉴럴 네트워크 학습 장치는 연결 가중치(722)와 연결 가중치(723)을 설정한 이후, 출력 연결 가중치(622)와 출력 연결 가중치(623)을 초기화할 수 있다. 예를 들어, 뉴럴 네트워크 학습 장치는 출력 연결 가중치(622)와 출력 연결 가중치(623)을 미리 정해진 초기값으로 설정할 수 있다.
실시예들은 출력 연결 가중치들을 인덱스 단위로 이동시킴으로써, 깊은 학습에서 발생 가능한 공동 적응(co-adaptation) 문제를 회피할 수 있다. 공동 적응 문제는 복수 개의 노드들이 비슷한 출력 연결 가중치들을 가질 경우 하나의 노드처럼 학습되고 출력되어 노드의 낭비를 초래하는 문제이다. 실시예들은 출력 연결 가중치들을 인덱스 단위로 새로운 노드로 분산시킴으로써 공동 적응 문제를 회피할 수 있다.
도 8을 참조하면, 일 실시예에 따른 뉴럴 네트워크 학습 장치는 새로운 노드(123)의 나머지 연결 가중치들을 초기화할 수 있다. 나머지 연결 가중치들은 새로운 노드(123)의 연결 가중치들 중 아직 설정되지 않은 연결 가중치를 포함할 수 있다. 예를 들어, 새로운 노드(123)의 연결 가중치(721)은 나머지 연결 가중치일 수 있다. 뉴럴 네트워크 학습 장치는 연결 가중치(721)를 나머지 연결 가중치로 검출하고, 연결 가중치(721)을 미리 정해진 초기값으로 설정할 수 있다.
이상에서 설명의 편의를 위하여, 하나의 노드가 선택되고 하나의 새로운 노드가 생성되는 경우를 설명하였으나, 실시예들은 복수의 노드들이 선택되고 복수의 새로운 노드들이 생성되는 경우에도 그대로 적용될 수 있다.
선택된 노드의 연결 가중치들에 기초하여 새로운 노드의 연결 가중치들을 설정하는 방식은 다양하게 변형될 수 있다. 일 예로, 선택된 노드의 입력 연결 가중치들 중 일부와 출력 연결 가중치들 중 일부만 새로운 노드로 이동될 수 있다. 다른 예로, 선택된 노드의 출력 연결 가중치들이 전부 새로운 노드로 복사되고, 입력 연결 가중치들 중 일부만 새로운 노드로 이동될 수도 있다.
도 9는 일 실시예에 따른 뉴럴 네트워크의 구조 확장 이후 추가적인 학습을 설명하는 도면이다. 도 9를 참조하면, 일 실시예에 따른 뉴럴 네트워크 학습 장치는 새로운 노드를 포함하도록 확장된 구조의 뉴럴 네트워크(900)를 학습시킴으로써, 연결 가중치들을 업데이트할 수 있다.
뉴럴 네트워크 학습 장치는 기 학습된 뉴럴 네트워크를 재활용함으로써, 학습 시간을 감축하는 기술을 제공할 수 있다. 또한, 뉴럴 네트워크 학습 장치는 기 학습된 뉴럴 네트워크의 구조를 점진적으로 확장시켜 학습시킴으로써, 뉴럴 네트워크의 인식 성능을 점진적으로 향상시키는 기술을 제공할 수 있다.
뉴럴 네트워크 학습 장치는 레이어 별 프리 트레이닝(pre-training) 없이 깊은 학습을 수행하는 기술을 제공할 수 있다. 뉴럴 네트워크 학습 장치는 전술한 방식을 통하여 학습의 전 과정(예를 들어, 뉴럴 네트워크 내 모든 레이어)에서 분류(classification)의 목적 함수를 공유하면서, 깊은 뉴럴 네트워크를 최적화(optimize)하는 깊은 학습을 수행할 수 있다.
도 10, 도 11a, 및 도 11b는 일 실시예에 따른 뉴럴 네트워크 구조 확장 방법의 응용들을 설명하는 도면들이다. 도 10을 참조하면, 단계(1010)에서 뉴럴 네트워크가 초기화된다. 예를 들어, 뉴럴 네트워크의 초기 구조, 뉴럴 네트워크 내 초기 연결 가중치들 등이 설정될 수 있다. 단계(1020)에서 뉴럴 네트워크가 학습된다. 트레이닝 데이터는 트레이닝 데이터 스토리지로부터 획득될 수 있다. 연산들은 뉴럴 네트워크를 통하여 활성화 패턴들이 모니터 되는 동안 프로세서에 의하여 수행될 수 있다. 예를 들어, 뉴럴 네트워크는 감독 학습, 오류 역 전파 학습 등을 통하여 학습될 수 있다.
단계(1030)에서 뉴럴 네트워크의 구조 확장이 필요한지 여부가 판단될 수 있다. 일 예로, 현재까지 학습된 뉴럴 네트워크의 성능이 평가될 수 있다. 성능은 뉴럴 네트워크에 의하여 수행된 분석이 정확한지 여부를 지칭할 수 있다. 만약 현재까지 학습된 뉴럴 네트워크의 성능이 미리 정해진 임계치보다 작은 경우, 뉴럴 네트워크의 구조 확장이 필요하다고 판단될 수 있다. 뉴럴 네트워크에게 주어진 태스크(예를 들어, 인식, 인증, 분류 등)의 성능을 향상시키기 위하여, 뉴럴 네트워크 내 노드의 개수가 증가될 필요가 있기 때문이다.
다른 예로, 외부 입력에 의하여 뉴럴 네트워크의 구조 확장이 필요한지 여부가 판단될 수 있다. 만약 단계(1030)에서 구조 확장을 지시하는 입력이 수신되는 경우, 뉴럴 네트워크의 구조 확장이 필요하다고 판단될 수 있다. 구조 확장을 지시하는 입력은 사용자 인터페이스를 통하여 수신되는 등 다양한 방식으로 수신될 수 있다.
단계(1030)에서 뉴럴 네트워크의 구조 확장이 필요하다고 판단되는 경우, 단계(1040)에서 뉴럴 네트워크의 구조가 확장된다. 단계(1040)에는 도 2 내지 도 8을 통하여 전술한 사항들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 생략한다. 단계(1050)에서 확장된 구조의 뉴럴 네트워크가 추가적으로 학습된다. 단계(1030)에서 뉴럴 네트워크의 구조 확장이 필요하지 않다고 판단되는 경우, 구조 확장이나 추가 학습 없이 뉴럴 네트워크의 학습이 종료될 수 있다.
도 11a를 참조하면, 단계(1110)에서 뉴럴 네트워크가 초기화된다. 단계(1120)에서 뉴럴 네트워크가 학습되고, 단계(1130)에서 뉴럴 네트워크의 구조 확장이 필요한지 여부가 판단된다. 단계(1120) 및 단계(1130)는 학습 에폭(epoch)을 구성할 수 있다. 단계(1120)에서 단일 학습 에폭을 위한 미리 정해진 수의 트레이닝 데이터들을 이용하여 뉴럴 네트워크가 학습될 수 있다. 단계(1130)에서 해당 학습 에폭에서의 성능 향상 정도가 평가되고, 평가 결과에 기초하여 뉴럴 네트워크의 구조 확장이 필요한지 여부가 판단될 수 있다.
예를 들어, 해당 학습 에폭에서의 성능 향상이 미리 정해진 제1 임계치보다 큰 경우 현재 구조의 뉴럴 네트워크가 더 학습될 여지가 있으므로, 뉴럴 네트워크의 구조 확장이 필요하지 않다고 판단될 수 있다. 반면, 해당 학습 에폭에서의 성능 향상이 미리 정해진 제1 임계치보다 작은 경우 현재 구조의 뉴럴 네트워크의 성능이 포화된 것이므로, 뉴럴 네트워크의 구조 확장이 필요하다고 판단될 수 있다.
뉴럴 네트워크의 구조 확장이 필요하다고 판단되면, 단계(1140)에서 뉴럴 네트워크의 학습 종료 조건이 만족되는지 여부가 판단된다. 이 때, 현재 구조의 뉴럴 네트워크의 성능과 이전(previous) 구조의 뉴럴 네트워크의 성능이 비교되고, 비교 결과에 기초하여 뉴럴 네트워크의 학습 종료 조건이 만족되는지 여부가 판단될 수 있다. 이전 구조의 뉴럴 네트워크는 현재 구조의 뉴럴 네트워크로 구조 확장되기 이전의 뉴럴 네트워크를 의미한다.
예를 들어, 현재 구조의 뉴럴 네트워크의 성능과 이전 구조의 뉴럴 네트워크의 성능 사이의 차이가 미리 정해진 제2 임계치보다 큰 경우, 추가적인 구조 확장으로 인한 성능 향상을 기대할 수 있으므로, 뉴럴 네트워크의 학습 종료 조건이 만족되지 않는다고 판단될 수 있다. 반면, 현재 구조의 뉴럴 네트워크의 성능과 이전 구조의 뉴럴 네트워크의 성능 사이의 차이가 미리 정해진 제2 임계치보다 작은 경우 추가적인 구조 확장으로 인한 성능 향상을 기대할 수 없으므로, 뉴럴 네트워크의 학습 종료 조건이 만족된다고 판단될 수 있다.
뉴럴 네트워크의 학습 종료 조건이 만족되지 않은 경우, 단계(1150)에서 뉴럴 네트워크의 구조가 확장될 수 있다. 단계(1120) 내지 단계(1150)은 뉴럴 네트워크의 학습 종료 조건이 만족될 때까지 반복될 수 있다.
도 11b를 참조하면, 제1 뉴럴 네트워크(1160)가 초기화될 수 있다. 제1 학습 에폭(1161)에서 제1 뉴럴 네트워크(1160)가 학습되고, 성능 향상 정도가 평가될 수 있다. 제1 학습 에폭(1161)에서 제1 뉴럴 네트워크(1160)가 학습된 결과, 성능 향상 정도가 제1 임계치보다 클 수 있다. 이 경우, 성능 향상 평가의 결과는 'Pass'이고, 아직 구조 확장이 필요하지 않다고 판단될 수 있다. 제2 학습 에폭(1162)에서도 학습 및 성능 향상 평가가 수행될 수 있다. 제3 학습 에폭(1163)에서 제1 뉴럴 네트워크(1160)가 학습된 결과, 성능 향상 정도가 제1 임계치보다 작을 수 있다. 이 경우, 성능 향상 평가의 결과는 'Fail'이고, 구조 확장이 필요하다고 판단될 수 있다.
단계(1171)에서 제1 뉴럴 네트워크(1160)가 구조 확장 됨으로써 제2 뉴럴 네트워크(1170)가 생성된다. 복수의 학습 에폭들 각각에서 제2 뉴럴 네트워크(1170)는 학습되고, 해당 학습 에폭에서의 성능 향상 정도가 평가된다. 제4 학습 에폭(1172)에서 제2 뉴럴 네트워크(1170)가 학습된 결과, 성능 향상 정도가 제1 임계치보다 작을 수 있다. 이 경우, 성능 향상 평가의 결과는 'Fail'이고, 구조 확장이 필요하다고 판단될 수 있다.
뉴럴 네트워크의 구조 확장이 수행되기 전, 현재 구조의 뉴럴 네트워크의 성능과 이전 구조의 뉴럴 네트워크의 성능을 비교함으로써 뉴럴 네트워크의 학습 종료 조건이 만족되는지 여부가 판단될 수 있다. 뉴럴 네트워크의 구조가 충분히 커진 경우, 추가적인 구조 확장으로 인하여 뉴럴 네트워크의 성능 향상을 기대하기 어렵기 때문이다.
단계(1173)에서 제2 뉴럴 네트워크(1170)의 성능과 제1 뉴럴 네트워크(1160)의 성능이 비교된다. 비교 결과, 제2 뉴럴 네트워크(1170)의 성능과 제1 뉴럴 네트워크(1160)의 성능 사이의 차이가 제2 임계치보다 클 수 있다. 이 경우, 성능 비교의 결과는 'Pass'이고, 뉴럴 네트워크의 학습 종료 조건이 만족되지 않는다고 판단될 수 있다.
단계(1181)에서 제2 뉴럴 네트워크(1170)가 구조 확장 됨으로써 제3 뉴럴 네트워크(1180)가 생성된다. 제5 학습 에폭(1182)에서 제3 뉴럴 네트워크(1180)가 학습된 결과, 성능 향상 정도가 제1 임계치보다 작을 수 있다. 이 경우, 성능 향상 평가의 결과는 'Fail'이고, 구조 확장이 필요하다고 판단될 수 있다. 단계(1183)에서 제3 뉴럴 네트워크(1180)의 성능과 제2 뉴럴 네트워크(1170)의 성능이 비교된다. 비교 결과, 제3 뉴럴 네트워크(1180)의 성능과 제2 뉴럴 네트워크(1170)의 성능 사이의 차이가 제2 임계치보다 작을 수 있다. 다시 말해, 구조 확장을 통한 성능 향상 정도가 제2 임계치보다 작을 수 있다. 이 경우, 성능 비교의 결과는 'Fail'이고, 뉴럴 네트워크의 학습 종료 조건이 만족된다고 판단될 수 있다.
도 12 및 도 13은 일 실시예에 따른 뉴럴 네트워크 구조 확장 방법에 의하여 학습되는 뉴럴 네트워크를 설명하는 도면들이다. 도 12를 참조하면, 일 실시예에 따른 뉴럴 네트워크(1200)는 입력 레이어(1210), 복수의 히든 레이어들(1220), 및 출력 레이어(1230)를 포함한다. 복수의 히든 레이어들(1220) 각각은 미리 정해진 수 이하의 노드들을 포함하도록 초기화될 수 있다. 이러한 초기화 동작은 도 10의 단계(1010) 또는 도 11의 단계(1110)에서 수행될 수 있다.
뉴럴 네트워크(1200)는 도 10의 단계(1020) 내지 단계(1050) 또는 도 11의 단계(1120) 내지 단계(1150)을 통하여, 구조 확장되면서 학습될 수 있다. 도 10의 단계(1040) 또는 도 11의 단계(1150)에서 뉴럴 네트워크(1200)의 히든 레이어들(1220)에서 새로운 노드가 생성될 수 있다. 도 13을 참조하면, 일 실시예에 따른 학습된 뉴럴 네트워크(1300)는 구조 확장된 히든 레이어들(1320)을 포함한다.
도 14 및 도 15는 일 실시예에 따른 뉴럴 네트워크 구조 확장 방법에 의하여 학습되는 오토 인코더를 설명하는 도면들이다. 오토 인코더(auto encoder)는 디멘션 리덕션(dimension reduction)을 목적으로 하는 뉴럴 네트워크이다. 도 14를 참조하면, 일 실시예에 따른 오토 인코더(1400)는 입력 레이어(1410), 히든 레이어(1420), 및 출력 레이어(1430)를 포함한다.
입력 레이어(1410), 히든 레이어(1420), 및 출력 레이어(1430)는 오토 인코더의 입력 디멘션(input dimension)에 기초하여 초기화될 수 있다. 예를 들어, 입력 레이어(1410)에 포함되는 노드의 수는 입력 디멘션에 기초하여 결정될 수 있다. 출력 레이어(1430)에 포함되는 노드의 수는 입력 레이어(1410)에 포함되는 노드의 수와 동일하게 결정될 수 있다. 히든 레이어(1420)에 포함되는 노드의 수는 미리 정해진 초기 값(예를 들어, 2)으로 결정될 수 있다.
오토 인코더(1400) 내에서 입력 레이어(1410) -> 히든 레이어(1420)의 구조와 히든 레이어(1420) -> 출력 레이어(1430)의 구조는 서로 대칭이다. 오토 인코더(1400) 내에서 입력 레이어(1410) -> 히든 레이어(1420)는 인코딩(encoding)에 해당하고, 히든 레이어(1420) -> 출력 레이어(1430)는 디코딩(decoding)에 해당한다.
오토 인코더(1400)는 인코딩을 통하여 입력 디멘션을 리덕션 한 뒤, 디코딩을 통하여 리덕션 된 입력 디멘션을 복구하는 동작을 수행한다. 오토 인코더(1400)의 목적 함수는 입력 값들과 출력 값들이 동일할 것을 요구한다. 오토 인코더는 디멘션 리덕션을 목적으로 하므로, 히든 레이어(1420)를 위한 미리 정해진 초기 값은 입력 디멘션보다 작아야 한다. 전술한 초기화 동작은 도 10의 단계(1010) 또는 도 11의 단계(1110)에서 수행될 수 있다.
오토 인코더(1400)는 도 10의 단계(1020) 내지 단계(1050) 또는 도 11의 단계(1120) 내지 단계(1150)을 통하여, 구조 확장되면서 학습될 수 있다. 도 10의 단계(1040) 또는 도 11의 단계(1150)에서 오토 인코더(1400)의 히든 레이어들(1420)에서 새로운 노드가 생성될 수 있다.
일 실시예에 따른 디멘션 리덕션 장치는 히든 레이어(1420)에 포함된 노드의 수를 가능한 작은 수로 초기화한 뒤, 히든 레이어(1420)를 확장시켜 가면서 오토 인코더(1400)를 학습시킬 수 있다. 디멘션 리덕션 장치는 소프트웨어 모듈, 하드웨어 모듈, 또는 이들의 조합으로 구현될 수 있다.
도 15를 참조하면, 오토 인코더(1500)의 성능이 일정 수준 이상이 되면, 오토 인코더(1500)의 학습을 종료할 수 있다. 오토 인코더(1500)는 구조 확장된 히든 레이어(1520)를 포함할 수 있다. 히든 레이어(1520)에 포함된 노드의 수는 입력 디멘션이 리덕션 된 결과일 수 있다.
도면에 도시하지 않았으나, 오토 인코더도 복수의 히든 레이어들을 포함할 수 있다. 예를 들어, 오토 인코더는 입력 레이어, 제1 히든 레이어들, 중앙 히든 레이어, 제2 히든 레이어들, 및 출력 레이어를 포함할 수 있다. 오토 인코더의 기본 동작을 유지하기 위하여, 입력 레이어 -> 제1 히든 레이어들 -> 중앙 히든 레이어의 구조는 중앙 히든 레이어 -> 제2 히든 레이어들 -> 출력 레이어의 구조와 대칭을 이루어야 한다. 히든 레이어의 구조가 확장될 때, 제1 히든 레이어들과 제3 히든 레이어들은 서로 대칭을 유지할 수 있다.
도 16은 일 실시예에 따른 뉴럴 네트워크 학습 장치를 나타낸 블록도이다. 도 16을 참조하면, 일 실시예에 따른 뉴럴 네트워크 학습 장치(1600)는 선택부(1610), 생성부(1620), 연결부(1630), 설정부(1640), 및 학습부(1650)를 포함한다. 선택부(1610), 생성부(1620), 연결부(1630), 설정부(1640), 및 학습부(1650)는 하나 또는 그 이상의 프로세서와 메모리를 포함할 수 있다. 선택부(1610)는 뉴럴 네트워크의 구조 확장을 위하여, 뉴럴 네트워크에 포함된 노드들 중 적어도 하나의 노드를 선택할 수 있다. 생성부(1620)는 선택된 노드가 속한 레이어에 새로운 노드를 생성할 수 있다. 연결부(1630)는 새로운 노드를 기존 노드들로 연결할 수 있다. 설정부(1640)는 선택된 노드의 연결 가중치들에 기초하여 새로운 노드의 연결 가중치들을 설정할 수 있다. 학습부(1650)는 트레이닝 데이터를 이용하여 뉴럴 네트워크를 학습시킴으로써 새로운 노드와 기존 노드들 사이의 연결 가중치들을 조정할 수 있다. 트레이닝 데이터는 메모리 스토리지로부터 획득될 수 있다.
도 17은 일 실시예에 따른 디멘션 리덕션 장치를 나타낸 블록도이다. 도 17을 참조하면, 일 실시예에 따른 디멘션 리덕션 장치(1700)는 초기화부(1710), 판단부(1720), 및 확장부(1730)를 포함한다. 초기화부(1710), 판단부(1720), 및 확장부(1730)는 하나 또는 그 이상의 프로세서 및 메모리를 포함할 수 있다. 초기화부(1710)는 입력 디멘션에 기초하여, 뉴럴 네트워크의 입력 레이어, 히든 레이어, 및 출력 레이어를 초기화할 수 있다. 판단부(1720)는 뉴럴 네트워크를 학습시키면서, 히든 레이어의 확장이 필요한지 여부를 판단할 수 있다. 확장부(1730)는 히든 레이어의 확장이 필요하다는 판단에 따라, 히든 레이어를 확장시킬 수 있다.
도 16 및 도 17에 도시된 각 모듈들에는 도 1 내지 도 15를 통하여 전술한 사항들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 생략한다.
도 19는 일 실시예에 따른 뉴럴 네트워크를 확장하는 장치를 도시한 블록도이다. 도 1 내지 도 18을 참조하여 기술한 사항들은 도 19의 실시예에 그대로 적용될 수 있다. 따라서, 중복적인 기술은 생략한다.
도 19를 참조하면, 뉴럴 네트워크 확장 장치(1910)는 프로세서(1910), 뉴럴 네트워크 스토리지(1920), 계산 값들을 저장하는 메모리(1930), 및 트레이닝 데이터 스토리지(1940)를 포함한다. 프로세서(1910)는 단수 형태로 기재되었으나, 프로세서(1910)는 복수의 프로세서들 또는 코어들을 포함할 수 있다. 예를 들어, 프로세서(1910)는 복수의 멀티 코어 프로세서들을 포함하는 컴퓨팅 장치 내에서 동작할 수 있다. 일 예로, 멀티 코어 프로세서는 GPGPU(general purpose graphic processing unit)일 수 있다. 다른 예로, 멀티 코어 프로세서들 각각은 FPGA(field-programmable gate array)이거나, 맞춤형(customizable) 멀티 코어 프로세서일 수 있다. 또 다른 예로, 프로세서(1910)는 PCI-E(peripheral component interconnect express) 버스와 같은 내부 버스를 통하여 데이터를 교환할 수 있다. 또 다른 예로, 프로세서는 단일 코어 프로세서일 수 있다.
일 실시예에 따르면, 프로세서(1910)는 뉴럴 네트워크 스토리지(1920)에 저장된 뉴럴 네트워크를 레이어 별로 처리하기 위하여 파이프라인 알고리즘을 이용할 수 있다. 뉴럴 네트워크 스토리지(1920)는 복수의 레이어들을 포함하는 뉴럴 네트워크를 저장할 수 있다. 예를 들어, 뉴럴 네트워크는 세 개 이상의 레이어들을 포함할 수 있다. 트레이닝 데이터 스토리지(1940)에 저장된 트레이닝 데이터는 뉴럴 네트워크 스토리지(1920)에 저장된 뉴럴 네트워크의 입력 레이어에 입력을 제공할 수 있다. 예를 들어, 뉴럴 네트워크가 영어 손 글씨(hand-written English)의 패턴을 인식하도록 학습시키기 위하여, 트레이닝 데이터는 손 글씨들의 디지털 이미지들 및 그 이미지들로부터 인식되어야 하는 텍스트 문자들을 포함할 수 있다. 텍스트 문자들은 뉴럴 네트워크의 성능을 결정하는 데 이용될 수 있다. 뉴럴 네트워크가 음성을 인식하도록 학습시키기 위하여, 트레이닝 데이터는 오디오 레코딩 샘플들 또는 스피치 코퍼스(speech corpus)를 포함할 수 있다.
뉴럴 네트워크의 노드 활성화 패턴들, 및 에지들에 할당되는 연결 가중치들 등 프로세서(1910)에 의하여 수행되는 연산들은 뉴럴 네트워크가 학습되는 동안 메모리(1930)에 저장될 수 있다. 일 예에 따르면, 뉴럴 네트워크 스토리지(1920)에 저장된 뉴럴 네트워크는, 학습되는 동안, 프로세서(1910)에 의하여 새로운 노드가 추가되거나 새로운 히든 레이어가 추가됨으로써 지속적으로 업데이트 될 수 있다.
도 20은 일 실시예에 따른 확장된 뉴럴 네트워크를 이용하여 입력 데이터를 분석하는 장치를 나타낸 블록도이다. 도 1 내지 도 19를 참조하여 기술한 사항들은 도 20의 실시예에 그대로 적용될 수 있다. 따라서, 중복적인 기술은 생략한다.
뉴럴 네트워크가 충분히 학습된 이후, 확장된 뉴럴 네트워크는 입력 데이터를 처리하는 데 이용될 수 있다. 예를 들어, 프로세서(2010)는 메모리 또는 입출력 장치로부터 디지털 손 글씨와 같은 입력 데이터를 획득할 수 있다. 입출력 장치는 키보드, 디스플레이 장치, 터치 스크린, 프린터 등을 포함할 수 있고, 이들 예시에 국한되지 않는다. 프로세서(2010)는 입력 데이터를 뉴럴 네트워크 스토리지(2220)에 저장된 확장된 뉴럴 네트워크의 입력 레이어로 제공할 수 있다. 확장된 뉴럴 네트워크를 이용하여, 프로세서(2010)는 입력 데이터를 인식된 텍스트들을 포함하는 출력 데이터로 변환하는 문자 인식을 수행할 수 있다.
일 실시예에 따르면, 프로세서(2010)는 도 20에서와 같이 입력을 분석할 뿐 아니라, 뉴럴 네트워크의 디멘션을 학습시키거나, 확장하거나, 변경할 수 있다. 다른 실시예에 따르면, 뉴럴 네트워크 확장 및 데이터 분석은 두 개의 분리된 장치들에 의하여 수행될 수도 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 비록 한정된 도면에 의해 실시예들이 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (36)

  1. 컴퓨팅 장치에 의해 각 단계가 수행되는 뉴럴 네트워크 확장 방법에 있어서,
    뉴럴 네트워크를 구현하는 단계;
    상기 뉴럴 네트워크에 포함된 노드들의 활성화 패턴에 기초하여 활성화 빈도수 정보를 생성하는 단계;
    상기 활성화 빈도수 정보에 기초하여 상기 노드들 중 확장을 위한 노드를 선택하는 단계;
    상기 선택된 노드가 속한 레이어에 새로운 노드를 생성하여 상기 뉴럴 네트워크를 확장하는 단계;
    상기 선택된 노드의 연결 가중치의 선택된 부분을 사용하여, 상기 새로운 노드의 연결 가중치들을 설정하는 단계;
    미리 정해진 초기값을 이용하여 상기 새로운 노드의 연결 가중치 중 적어도 일부를 설정하는 단계; 및
    상기 설정된 새로운 노드의 가중치로 상기 확장된 뉴럴 네트워크를 구현하는 단계
    를 포함하고,
    상기 확장을 위한 노드를 선택하는 단계는,
    상기 노드들의 활성화 빈도수 정보 및 활성화 엔트로피 정보에 기초하여 상기 확장을 위한 노드를 선택하는 단계
    를 포함하고,
    상기 노드들 중 미리 정해진 시간 구간에서 활성화 엔트로피가 미리 정해진 제3 임계치보다 작고, 활성화 빈도수가 미리 정해진 제4 임계치보다 큰 노드가 선택되는,
    뉴럴 네트워크 확장 방법.
  2. 제1항에 있어서,
    상기 뉴럴 네트워크의 확장이 필요한지 여부를 판단하는 단계
    를 더 포함하는, 뉴럴 네트워크 확장 방법.
  3. 제2항에 있어서,
    상기 판단하는 단계는
    상기 뉴럴 네트워크의 성능을 모니터링 하는 단계; 및
    상기 뉴럴 네트워크의 성능이 향상되는 정도가 미리 정해진 제1 임계치보다 작은 경우, 상기 뉴럴 네트워크의 확장이 필요하다고 판단하는 단계
    를 포함하는, 뉴럴 네트워크 확장 방법.
  4. 제2항에 있어서,
    상기 판단하는 단계는
    상기 뉴럴 네트워크의 성능을 모니터링 하는 단계; 및
    상기 뉴럴 네트워크의 성능이 향상되는 정도가 미리 정해진 제1 임계치보다 작고, 상기 뉴럴 네트워크의 이전(previous) 확장 이후 상기 뉴럴 네트워크의 성능이 향상된 정도가 미리 정해진 제2 임계치보다 작은 경우, 상기 뉴럴 네트워크의 학습을 종료시키는 단계
    를 더 포함하는, 뉴럴 네트워크 확장 방법.
  5. 삭제
  6. 제1항에 있어서,
    상기 활성화 빈도수 정보는
    미리 정해진 시간 구간 내, 상기 노드들 각각이 활성화되는 빈도수를 포함하는, 뉴럴 네트워크 확장 방법.
  7. 제1항에 있어서,
    상기 활성화 엔트로피 정보는
    미리 정해진 시간 구간 내, 상기 노드들 각각이 활성화 상태와 비활성화 상태 사이에서 천이되는 횟수를 포함하는, 뉴럴 네트워크 확장 방법.
  8. 제1항에 있어서,
    상기 노드들 중 미리 정해진 시간 구간에서 활성화 빈도수가 가장 큰 노드가 선택되는, 뉴럴 네트워크 확장 방법.
  9. 삭제
  10. 제1항에 있어서,
    상기 생성하는 단계는
    상기 레이어의 이전 레이어에 포함된 노드들과 상기 새로운 노드 사이를 연결하는 단계; 및
    상기 레이어의 다음 레이어에 포함된 노드들과 상기 새로운 노드 사이를 연결하는 단계
    를 포함하는, 뉴럴 네트워크 확장 방법.
  11. 제10항에 있어서,
    상기 새로운 노드의 연결 가중치들을 미리 정해진 초기값으로 설정하는 단계
    를 더 포함하는, 뉴럴 네트워크 확장 방법.
  12. 제1항에 있어서,
    상기 선택된 노드를 포함하는 레이어는 상기 뉴럴 네트워크의 히든 레이어를 포함하는, 뉴럴 네트워크 확장 방법.
  13. 제1항에 있어서,
    상기 설정하는 단계는
    상기 선택된 노드의 연결 가중치들 중 적어도 일부를 선택하는 단계; 및
    상기 새로운 노드에서 상기 선택된 적어도 일부의 연결 가중치들에 대응하는 연결 가중치들을 상기 선택된 적어도 일부의 연결 가중치들로 설정하는 단계
    를 포함하는, 뉴럴 네트워크 확장 방법.
  14. 제13항에 있어서,
    상기 설정하는 단계는
    상기 선택된 노드에서 상기 선택된 적어도 일부의 연결 가중치들을 미리 정해진 초기값으로 설정하는 단계
    를 더 포함하는, 뉴럴 네트워크 확장 방법.
  15. 제13항에 있어서,
    상기 선택된 노드의 연결 가중치들 중 적어도 일부를 선택하는 단계는
    상기 선택된 노드의 연결 가중치들을 제1 그룹 및 제2 그룹으로 분할하는 단계; 및
    상기 제1 그룹 및 상기 제2 그룹 중 어느 하나의 그룹에 속한 연결 가중치들을 선택하는 단계
    를 포함하는, 뉴럴 네트워크 확장 방법.
  16. 제15항에 있어서,
    상기 선택된 노드의 연결 가중치들은
    상기 제1 그룹에 속한 연결 가중치들의 합과 상기 제2 그룹에 속한 연결 가중치들의 합 사이의 차이가 미리 정해진 제5 임계치 이하가 되도록, 상기 제1 그룹 및 상기 제2 그룹으로 분할되는, 뉴럴 네트워크 확장 방법.
  17. 제1항에 있어서,
    상기 설정하는 단계는
    상기 새로운 노드의 입력 연결 가중치들을 상기 선택된 노드의 입력 연결 가중치들로 설정하는 단계;
    상기 선택된 노드의 출력 연결 가중치들 중 일부를 선택하는 단계;
    상기 새로운 노드에서 상기 선택된 일부의 출력 연결 가중치들에 대응하는 연결 가중치들을 상기 선택된 일부의 출력 연결 가중치들로 설정하는 단계; 및
    상기 선택된 노드에서 상기 선택된 일부의 출력 연결 가중치들을 미리 정해진 초기값으로 설정하는 단계
    를 포함하는, 뉴럴 네트워크 확장 방법.
  18. 제1항에 있어서,
    상기 선택된 노드의 활성화 특성에 기초하여 상기 새로운 노드의 활성화 특성을 설정하는 단계
    를 더 포함하는, 뉴럴 네트워크 확장 방법.
  19. 제1항에 있어서,
    상기 새로운 노드를 포함하도록 확장된 뉴럴 네트워크를 학습시키는 단계
    를 더 포함하는, 뉴럴 네트워크 확장 방법.
  20. 제1항에 있어서,
    초기 뉴럴 네트워크는
    미리 정해진 수 이하의 노드들을 포함하는 복수의 히든 레이어들을 포함하는, 뉴럴 네트워크 확장 방법.
  21. 제20항에 있어서,
    상기 선택하는 단계는
    상기 복수의 히든 레이어들에 포함된 노드들 중 적어도 하나의 노드를 선택하는 단계
    를 포함하는, 뉴럴 네트워크 확장 방법.
  22. 컴퓨팅 장치에 의해 각 단계가 수행되는 디멘션 리덕션 방법에 있어서,
    입력 레이어, 하나 또는 그 이상의 히든 레이어, 및 출력 레이어를 포함하는 뉴럴 네트워크를 학습시키는 단계;
    상기 뉴럴 네트워크를 학습시키는 동안, 상기 히든 레이어의 확장이 필요한지 여부를 판단하는 단계;
    상기 히든 레이어의 노드들의 결정된 활성화 패턴에 기초하여 활성화 빈도 정보를 생성하는 단계; 및
    상기 히든 레이어의 확장이 필요하다는 판단에 따라, 디멘션 리덕션을 수행하는 단계
    를 포함하고,
    상기 디멘션 리덕션을 수행하는 단계는,
    상기 활성화 빈도 정보를 이용하여 상기 히든 레이어의 노드들 중 확장을 위한 노드를 선택하는 단계;
    상기 선택된 노드를 포함하는 히든 레이어에 새로운 노드를 추가하여 상기 히든 레이어를 확장하는 단계;
    상기 선택된 노드의 연결 가중치의 선택된 부분을 사용하여, 상기 새로운 노드의 연결 가중치의 선택된 부분을 설정하는 단계; 및
    미리 정해진 초기 값을 이용하여 상기 새로운 노드의 연결 가중치 중 적어도 일부를 구성하는 단계
    를 포함하고,
    상기 활성화 빈도 정보를 이용하여 상기 히든 레이어의 노드들 중 확장을 위한 노드를 선택하는 단계는,
    상기 활성화 빈도 정보 및 생성된 상기 뉴럴 네트워크의 노드들의 활성화 엔트로피 정보에 기초하여 결정하는 단계
    를 포함하고,
    상기 확장된 히든 레이어의 디멘션은 상기 입력 레이어의 디멘션보다 작은,
    디멘션 리덕션(dimension reduction) 방법.
  23. 제22항에 있어서,
    상기 뉴럴 네트워크를 학습시키기 이전에, 상기 뉴럴 네트워크를 초기화하는 단계
    를 더 포함하고,
    상기 초기화하는 단계는
    상기 입력 레이어에서 입력 디멘션에 해당하는 수의 노드들을 생성하는 단계;
    상기 히든 레이어에서 미리 정해진 초기값에 해당하는 적어도 하나의 노드를 생성하는 단계;
    상기 출력 레이어에서 상기 입력 디멘션에 해당하는 수의 노드들을 생성하는 단계
    를 포함하는, 디멘션 리덕션 방법.
  24. 제22항에 있어서,
    상기 판단하는 단계는
    상기 입력 레이어에 입력되는 값들과 상기 출력 레이어에서 출력되는 값들 사이의 차이에 기초하여, 상기 뉴럴 네트워크의 성능을 모니터링 하는 단계; 및
    상기 뉴럴 네트워크의 성능이 향상되는 정도가 미리 정해진 임계치보다 작은 경우, 상기 뉴럴 네트워크의 확장이 필요하다고 판단하는 단계
    를 포함하는, 디멘션 리덕션 방법.
  25. 삭제
  26. 삭제
  27. 제22항에 있어서,
    상기 생성하는 단계는
    상기 선택된 노드를 포함하는 히든 레이어의 선행 레이어에 포함된 노드들과 상기 새로운 노드 사이를 연결하는 단계; 및
    상기 선택된 노드를 포함하는 히든 레이어의 후행 레이어에 포함된 노드들과 상기 새로운 노드 사이를 연결하는 단계
    를 포함하는, 디멘션 리덕션 방법.
  28. 제22항에 있어서,
    상기 설정하는 단계는
    상기 선택된 노드의 연결 가중치들 중 적어도 일부를 선택하는 단계; 및
    상기 새로운 노드에서 상기 선택된 적어도 일부의 연결 가중치들에 대응하는 연결 가중치들을 상기 선택된 적어도 일부의 연결 가중치들로 설정하는 단계
    를 포함하는, 디멘션 리덕션 방법.
  29. 제28항에 있어서,
    상기 설정하는 단계는
    상기 선택된 노드에서 상기 선택된 적어도 일부의 연결 가중치들을 미리 정해진 초기값으로 설정하는 단계
    를 더 포함하는, 디멘션 리덕션 방법.
  30. 제22항에 있어서,
    상기 확장된 히든 레이어를 포함하는 뉴럴 네트워크를 학습시키는 단계
    를 더 포함하는, 디멘션 리덕션 방법.
  31. 하드웨어와 결합되어 제1항 내지 제4항, 제6항 내지 제8항, 제10항 내지 제24항 및 제27항 내지 제30항 중 어느 하나의 항의 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 판독 가능 기록 컴퓨터 프로그램.
  32. 뉴럴 네트워크를 저장하는 메모리; 및
    뉴럴 네트워크에 포함된 노드들의 활성화 빈도 정보에 기초하여 상기 뉴럴 네트워크의 확장을 위한 노드를 선택하고, 상기 선택된 노드를 포함하는 레이어에 새로운 노드를 추가함으로써 상기 뉴럴 네트워크를 확장하고,
    선택된 노드의 연결 가중치의 선택된 부분을 사용하여, 상기 새로운 노드의 연결 가중치들을 설정하고, 미리 정해진 초기값을 이용하여 상기 새로운 노드의 연결 가중치 중 적어도 일부를 설정하여, 상기 설정된 새로운 노드의 가중치로 상기 확장된 뉴럴 네트워크를 구현하는 프로세서
    를 포함하고,
    상기 확장을 위한 노드는, 상기 노드들의 활성화 빈도수 정보 및 활성화 엔트로피 정보에 기초하여 선택되고,
    상기 노드들 중 미리 정해진 시간 구간에서 활성화 엔트로피가 미리 정해진 제3 임계치보다 작고, 활성화 빈도수가 미리 정해진 제4 임계치보다 큰 노드가 선택되는,
    뉴럴 네트워크 확장 장치.
  33. 제32항에 있어서,
    상기 프로세서는
    상기 선택된 노드의 연결 가중치들에 기초하여 상기 새로운 노드의 연결 가중치들을 설정하는, 뉴럴 네트워크 확장 장치.
  34. 제32항에 있어서,
    상기 프로세서는
    트레이닝 데이터를 이용하여 상기 확장된 뉴럴 네트워크를 학습시킴으로써 상기 새로운 노드의 연결 가중치들을 조정하는, 뉴럴 네트워크 확장 장치.
  35. 제32항에 있어서,
    상기 프로세서는
    트레이닝 데이터 메모리 스토리지의 트레이닝 데이터를 상기 확장된 뉴럴 네트워크에 적용하고, 상기 확장된 뉴럴 네트워크의 활성화 패턴에 기초하여 히든 레이어의 확장이 요구되는지 여부를 결정하며, 상기 히든 레이어의 확장이 요구된다는 판단에 기초하여 상기 뉴럴 네트워크의 히든 레이어 내 노드들의 수를 증가시키는, 뉴럴 네트워크 확장 장치.
  36. 제32항에 있어서,
    입력 장치를 더 포함하고,
    상기 프로세서는
    출력 데이터를 획득하기 위하여, 상기 입력 장치를 이용하여 획득된 입력 데이터를 상기 뉴럴 네트워크에 적용하는, 뉴럴 네트워크 확장 장치.
KR1020150102852A 2014-11-27 2015-07-21 뉴럴 네트워크 구조 확장 방법, 디멘션 리덕션 방법, 및 그 방법을 이용한 장치 KR102483639B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR1020140167510 2014-11-27
KR20140167510 2014-11-27
US14/704,785 2015-05-05
US14/704,785 US10832138B2 (en) 2014-11-27 2015-05-05 Method and apparatus for extending neural network

Publications (2)

Publication Number Publication Date
KR20160063965A KR20160063965A (ko) 2016-06-07
KR102483639B1 true KR102483639B1 (ko) 2023-01-03

Family

ID=56079407

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150102852A KR102483639B1 (ko) 2014-11-27 2015-07-21 뉴럴 네트워크 구조 확장 방법, 디멘션 리덕션 방법, 및 그 방법을 이용한 장치

Country Status (4)

Country Link
US (1) US10832138B2 (ko)
JP (1) JP6605259B2 (ko)
KR (1) KR102483639B1 (ko)
CN (1) CN106203623A (ko)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10467528B2 (en) * 2015-08-11 2019-11-05 Oracle International Corporation Accelerated TR-L-BFGS algorithm for neural network
US9697833B2 (en) * 2015-08-25 2017-07-04 Nuance Communications, Inc. Audio-visual speech recognition with scattering operators
EP3360084A1 (en) 2015-11-12 2018-08-15 Google LLC Generating larger neural networks
CN108604309B (zh) * 2015-11-12 2022-06-07 渊慧科技有限公司 从动作集中选择代理执行的动作的方法、系统和存储介质
US10891540B2 (en) * 2015-12-18 2021-01-12 National Technology & Engineering Solutions Of Sandia, Llc Adaptive neural network management system
US10380185B2 (en) 2016-02-05 2019-08-13 Sas Institute Inc. Generation of job flow objects in federated areas from data structure
US10650046B2 (en) 2016-02-05 2020-05-12 Sas Institute Inc. Many task computing with distributed file system
US10346476B2 (en) 2016-02-05 2019-07-09 Sas Institute Inc. Sketch entry and interpretation of graphical user interface design
US10331495B2 (en) 2016-02-05 2019-06-25 Sas Institute Inc. Generation of directed acyclic graphs from task routines
US10650045B2 (en) 2016-02-05 2020-05-12 Sas Institute Inc. Staged training of neural networks for improved time series prediction performance
US10642896B2 (en) 2016-02-05 2020-05-05 Sas Institute Inc. Handling of data sets during execution of task routines of multiple languages
US10346211B2 (en) 2016-02-05 2019-07-09 Sas Institute Inc. Automated transition from non-neuromorphic to neuromorphic processing
US10409863B2 (en) * 2016-02-05 2019-09-10 Sas Institute Inc. Verification and export of federated areas and job flow objects within federated areas
US10795935B2 (en) 2016-02-05 2020-10-06 Sas Institute Inc. Automated generation of job flow definitions
WO2017166155A1 (zh) * 2016-03-31 2017-10-05 富士通株式会社 一种对神经网络模型进行训练的方法、装置及电子设备
US20190171928A1 (en) * 2016-06-27 2019-06-06 Robin Young Dynamically managing artificial neural networks
CN109643514B (zh) * 2016-08-26 2023-04-04 株式会社半导体能源研究所 显示装置及电子设备
KR20180080446A (ko) 2017-01-04 2018-07-12 삼성전자주식회사 음성 인식 방법 및 음성 인식 장치
CN106875010B (zh) * 2017-01-20 2019-11-22 清华大学 神经元权重信息处理方法和系统
USD898059S1 (en) 2017-02-06 2020-10-06 Sas Institute Inc. Display screen or portion thereof with graphical user interface
KR101763869B1 (ko) * 2017-02-16 2017-08-07 주식회사 더디엔에이시스템 뉴로블록체인 콤비네이션을 이용한 인공신경망 모델의 자가 구성 모듈
US9836654B1 (en) * 2017-02-28 2017-12-05 Kinosis Ltd. Surgical tracking and procedural map analysis tool
US11227543B2 (en) * 2017-03-10 2022-01-18 Semiconductor Energy Laboratory Co., Ltd. Touch panel system, electronic device, and semiconductor device having a neural network
US10679119B2 (en) * 2017-03-24 2020-06-09 Intel Corporation Handling signal saturation in spiking neural networks
WO2018184194A1 (en) * 2017-04-07 2018-10-11 Intel Corporation Methods and systems using improved convolutional neural networks for image processing
US11461105B2 (en) * 2017-04-07 2022-10-04 Intel Corporation Methods and apparatus for deep learning network execution pipeline on multi-processor platform
KR101774844B1 (ko) * 2017-04-18 2017-09-19 주식회사 더디엔에이시스템 뉴로블록체인 콤비네이션을 이용한 인공신경망 모델의 자가 학습 모듈
US11055605B2 (en) * 2017-04-25 2021-07-06 Nec Corporation Detecting dangerous driving situations by parsing a scene graph of radar detections
CN110892423A (zh) * 2017-06-02 2020-03-17 诺基亚技术有限公司 人工神经网络
USD898060S1 (en) 2017-06-05 2020-10-06 Sas Institute Inc. Display screen or portion thereof with graphical user interface
CN110892417B (zh) * 2017-06-05 2024-02-20 D5Ai有限责任公司 具有学习教练的异步代理以及在不降低性能的情况下在结构上修改深度神经网络
US11275996B2 (en) * 2017-06-21 2022-03-15 Arm Ltd. Systems and devices for formatting neural network parameters
WO2019039758A1 (ko) * 2017-08-25 2019-02-28 주식회사 수아랩 개선된 뉴럴 네트워크를 생성하고 학습시키기 위한 방법
JP6967201B2 (ja) * 2017-09-26 2021-11-17 株式会社アイシン 情報処理装置
US10679129B2 (en) * 2017-09-28 2020-06-09 D5Ai Llc Stochastic categorical autoencoder network
WO2019066718A1 (en) * 2017-09-28 2019-04-04 Agency For Science, Technology And Research DEEP REPRESENTATIVE SELF ASSESSMENT UNITS
WO2019067542A1 (en) * 2017-09-28 2019-04-04 D5Ai Llc JOINT OPTIMIZATION OF DEEP LEARNING SETS
DE102017219282A1 (de) * 2017-10-26 2019-05-02 Albert-Ludwigs-Universität Freiburg Verfahren und Vorrichtung zum automatischen Erzeugen eines künstlichen neuronalen Netzes
US20190156200A1 (en) * 2017-11-17 2019-05-23 Aivitae LLC System and method for anomaly detection via a multi-prediction-model architecture
US20190197549A1 (en) * 2017-12-21 2019-06-27 Paypal, Inc. Robust features generation architecture for fraud modeling
EP3701351A4 (en) * 2018-01-30 2021-01-27 D5Ai Llc SELF-ORGANIZING PARTIALLY ORGANIZED NETWORKS
CN108280552B (zh) * 2018-02-24 2021-06-01 合肥工业大学 基于深度学习的电力负荷预测方法和系统、存储介质
JP7063052B2 (ja) 2018-03-28 2022-05-09 富士通株式会社 適合度算出プログラム、適合度算出方法、適合度算出装置、識別プログラム、識別方法及び識別装置
KR102032146B1 (ko) 2018-04-11 2019-10-15 경희대학교 산학협력단 소자 결점을 보완하기 위한 구간 선형 정류 유닛을 사용하는 인공신경망 시스템
JP6799197B2 (ja) * 2018-05-10 2020-12-09 ヌヴォトンテクノロジージャパン株式会社 ニューラルネットワーク構築装置、情報処理装置、ニューラルネットワーク構築方法及びプログラム
US11734557B2 (en) * 2018-05-11 2023-08-22 Qualcomm Incorporated Neural network with frozen nodes
JP6632770B1 (ja) * 2018-06-05 2020-01-22 三菱電機株式会社 学習装置、学習推論装置、方法、及びプログラム
CN109165722B (zh) * 2018-07-09 2021-07-23 北京市商汤科技开发有限公司 模型扩展方法及装置、电子设备和存储介质
CN109117942A (zh) * 2018-07-23 2019-01-01 上海七牛信息技术有限公司 一种神经网络以及神经网络系统
CN108985386A (zh) * 2018-08-07 2018-12-11 北京旷视科技有限公司 获得图像处理模型的方法、图像处理方法及对应装置
US11501164B2 (en) * 2018-08-09 2022-11-15 D5Ai Llc Companion analysis network in deep learning
CN109508781A (zh) * 2018-08-29 2019-03-22 厦门快商通信息技术有限公司 神经网络节点的自增减方法、装置及存储介质
US11823041B1 (en) 2018-08-30 2023-11-21 Alarm.Com Incorporated Extending learning of artificial intelligent systems
JP6695947B2 (ja) * 2018-09-21 2020-05-20 ソニーセミコンダクタソリューションズ株式会社 固体撮像システム、画像処理方法及びプログラム
KR102124171B1 (ko) * 2018-10-01 2020-06-17 인하대학교 산학협력단 엔트로피 기반 신경망(Neural Networks) 가지치기 방법 및 시스템
CN112912902A (zh) * 2018-10-23 2021-06-04 Hrl实验室有限责任公司 人工神经网络和利用表观遗传神经发生训练人工神经网络的方法
KR102178427B1 (ko) * 2018-10-30 2020-11-18 주식회사 알스피릿 상황인지 기반의 경기 지표를 이용하여 예측한 위기 감지 방법 및 이를 위한 장치
US11669713B2 (en) * 2018-12-04 2023-06-06 Bank Of America Corporation System and method for online reconfiguration of a neural network system
US20200210805A1 (en) * 2018-12-31 2020-07-02 Nvidia Corporation Neural Network Generator
US11615309B2 (en) 2019-02-27 2023-03-28 Oracle International Corporation Forming an artificial neural network by generating and forming of tunnels
CN111914984B (zh) * 2019-05-07 2023-10-27 财团法人成大研究发展基金会 用于辨识装置的人工神经网络正规化系统
KR20210011844A (ko) * 2019-07-23 2021-02-02 삼성전자주식회사 전자 장치 및 그 제어 방법
KR20210014949A (ko) * 2019-07-31 2021-02-10 삼성전자주식회사 음성 인식을 위한 인공신경망에서의 디코딩 방법 및 장치
WO2021040944A1 (en) * 2019-08-26 2021-03-04 D5Ai Llc Deep learning with judgment
KR102379366B1 (ko) * 2019-08-28 2022-03-25 금오공과대학교 산학협력단 오토 인코더를 이용한 채널 디코딩 방법
CN111881705B (zh) * 2019-09-29 2023-12-12 深圳数字生命研究院 数据处理、训练、识别方法、装置和存储介质
USD919656S1 (en) * 2019-10-04 2021-05-18 Butterfly Network, Inc. Display panel or portion thereof with graphical user interface
WO2021071403A1 (en) * 2019-10-11 2021-04-15 Telefonaktiebolaget Lm Ericsson (Publ) Provision of optimized action for application in a wireless communication network to affect data transmission over a communication channel
KR102233891B1 (ko) * 2019-11-19 2021-03-30 울산과학기술원 정보의 전파 시간을 예측하는 방법 및 상기 방법을 수행하는 정보 전파 예측 장치
KR102250553B1 (ko) * 2019-11-19 2021-05-10 금오공과대학교 산학협력단 패러렐 오토 인코더를 이용한 채널 디코딩 방법
US20230080172A1 (en) * 2020-03-13 2023-03-16 Hewlett-Packard Development Company, L.P. Transmitting node instructions
US20220012583A1 (en) * 2020-07-08 2022-01-13 International Business Machines Corporation Continual learning using cross connections
KR102349814B1 (ko) * 2020-08-07 2022-01-10 금오공과대학교 산학협력단 제어 비트를 갖는 오토 디코더를 사용한 채널 디코딩 방법
KR102349810B1 (ko) * 2020-08-07 2022-01-10 금오공과대학교 산학협력단 오토 디코더를 활용한 고속의 rm 부호 디코딩 방법
US11836600B2 (en) * 2020-08-20 2023-12-05 D5Ai Llc Targeted incremental growth with continual learning in deep neural networks
EP4264498A1 (en) * 2020-12-17 2023-10-25 Umnai Limited Explainable transducer transformers
CN117581234A (zh) 2021-05-07 2024-02-20 Hrl实验室有限责任公司 神经形态存储器电路和人工神经网络的神经发生的方法
WO2023080269A1 (en) * 2021-11-03 2023-05-11 Intel Corporation Unsupervised model drift estimation system for dataset shift detection and model selection

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0738186B2 (ja) 1989-03-13 1995-04-26 シャープ株式会社 自己拡張形ニユーラル・ネットワーク
EP0636991A3 (en) 1993-07-29 1997-01-08 Matsushita Electric Ind Co Ltd Information processing device for implementing a neural network.
JPH0822446A (ja) 1994-07-11 1996-01-23 Matsushita Electric Ind Co Ltd ニューラルネットワーク回路
JP2857593B2 (ja) * 1995-03-02 1999-02-17 杉谷金属工業株式会社 自由デザイン模様の表面を有する無機物と金属の複合材の製造方法
KR100306140B1 (ko) 1997-12-24 2001-11-14 이구택 신경회로망에 의한 선재냉각 제어방법
KR100307202B1 (ko) 1998-10-27 2001-12-17 전기준 신경망을이용한이송속도제어방법
KR100277694B1 (ko) 1998-11-11 2001-01-15 정선종 음성인식시스템에서의 발음사전 자동생성 방법
US7367949B2 (en) * 2003-07-07 2008-05-06 Instrumentarium Corp. Method and apparatus based on combination of physiological parameters for assessment of analgesia during anesthesia or sedation
US7469209B2 (en) 2003-08-14 2008-12-23 Dilithium Networks Pty Ltd. Method and apparatus for frame classification and rate determination in voice transcoders for telecommunications
US7620546B2 (en) 2004-03-23 2009-11-17 Qnx Software Systems (Wavemakers), Inc. Isolating speech signals utilizing neural networks
US8443169B2 (en) 2005-03-28 2013-05-14 Gerald George Pechanek Interconnection network connecting operation-configurable nodes according to one or more levels of adjacency in multiple dimensions of communication in a multi-processor and a neural processor
US7395251B2 (en) 2005-07-01 2008-07-01 International Business Machines Corporation Neural networks for prediction and control
JP2009516246A (ja) * 2005-11-15 2009-04-16 ベルナデット ガーナー ニューラルネットワークのトレーニング方法
US20070233802A1 (en) 2006-02-02 2007-10-04 Sonim Technology, Inc. Methods and arrangements for implementing whisper mode conversations during a multiparty telecommunication session
US7882052B2 (en) * 2006-09-11 2011-02-01 Eors Szathmary Evolutionary neural network and method of generating an evolutionary neural network
US8521542B1 (en) 2007-05-24 2013-08-27 United Services Automobile Association (Usaa) Systems and methods for classifying account data using artificial neural networks
KR20090050809A (ko) 2007-11-16 2009-05-20 삼성전자주식회사 신경회로망을 이용한 포토마스크 제조 방법 및 제조 장치와이를 위한 기록매체
US8412525B2 (en) 2009-04-30 2013-04-02 Microsoft Corporation Noise robust speech classifier ensemble
US9839364B2 (en) * 2009-10-06 2017-12-12 University Of Virginia Patent Foundation Ventricular activation (RR) entropy change as a predictor of sudden cardiac death in cardiac resynchronization therapy patients
US20120017149A1 (en) 2010-07-15 2012-01-19 Jeffrey Lai Video whisper sessions during online collaborative computing sessions
US9235799B2 (en) 2011-11-26 2016-01-12 Microsoft Technology Licensing, Llc Discriminative pretraining of deep neural networks
WO2016010601A2 (en) * 2014-04-23 2016-01-21 The Florida State University Research Foundation, Inc. Adaptive nonlinear model predictive control using a neural network and input sampling

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"An Adaptive Structure Neural Networks with Application to EEG automatic Seizure Detection", NEURAL NETWORKS ELSEVIER SCIENCE PUBLISHERS vol.9 no.7(pp. 1223-1240), 1996.*

Also Published As

Publication number Publication date
KR20160063965A (ko) 2016-06-07
CN106203623A (zh) 2016-12-07
US10832138B2 (en) 2020-11-10
JP2016103262A (ja) 2016-06-02
JP6605259B2 (ja) 2019-11-13
US20160155049A1 (en) 2016-06-02

Similar Documents

Publication Publication Date Title
KR102483639B1 (ko) 뉴럴 네트워크 구조 확장 방법, 디멘션 리덕션 방법, 및 그 방법을 이용한 장치
KR102492318B1 (ko) 모델 학습 방법 및 장치, 및 데이터 인식 방법
KR102563752B1 (ko) 뉴럴 네트워크를 위한 트레이닝 방법, 뉴럴 네트워크를 이용한 인식 방법 및 그 장치들
Loni et al. DeepMaker: A multi-objective optimization framework for deep neural networks in embedded systems
KR102399548B1 (ko) 뉴럴 네트워크를 위한 방법 및 그 방법을 수행하는 장치
KR102410820B1 (ko) 뉴럴 네트워크를 이용한 인식 방법 및 장치 및 상기 뉴럴 네트워크를 트레이닝하는 방법 및 장치
CN112771543A (zh) 通过包括实现成本作为目标来训练神经网络
KR20200045128A (ko) 모델 학습 방법 및 장치, 및 데이터 인식 방법
KR101738825B1 (ko) 비연속적으로 확률 뉴런을 가지는 딥러닝 모델 및 지식 전파에 기반한 학습 방법 및 그 시스템
KR20160102690A (ko) 신경망 학습 방법 및 장치, 및 인식 방법 및 장치
KR20180045635A (ko) 뉴럴 네트워크 간소화 방법 및 장치
Ponghiran et al. Spiking neural networks with improved inherent recurrence dynamics for sequential learning
KR102152615B1 (ko) 활성화 함수를 사용하는 딥러닝 모델의 안정적인 학습을 위한 가중치 초기화 방법 및 장치
KR20180070103A (ko) 인식 방법 및 인식 장치
KR20200128938A (ko) 모델 학습 방법 및 장치
Sajedi et al. DGSA: discrete gravitational search algorithm for solving knapsack problem
CN113454648A (zh) 循环神经网络中的勒让德存储器单元
KR20210060146A (ko) 딥 뉴럴 네트워크 모델을 이용한 데이터 처리 방법 및 장치, 딥 뉴럴 네트워크 모델을 학습시키는 학습 방법 및 장치
Liu et al. Functional extreme learning machine for regression and classification
EP3026600B1 (en) Method and apparatus for extending neural network
KR20190134965A (ko) 뉴럴 네트워크 학습 방법 및 그 시스템
Nayak et al. Optimizing a higher order neural network through teaching learning based optimization algorithm
US11769036B2 (en) Optimizing performance of recurrent neural networks
Krithivasan et al. Sparsity turns adversarial: Energy and latency attacks on deep neural networks
KR102090109B1 (ko) 학습 및 추론 장치 및 그 방법

Legal Events

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