CN111221248A - 优化装置及优化装置的控制方法 - Google Patents
优化装置及优化装置的控制方法 Download PDFInfo
- Publication number
- CN111221248A CN111221248A CN201910988535.7A CN201910988535A CN111221248A CN 111221248 A CN111221248 A CN 111221248A CN 201910988535 A CN201910988535 A CN 201910988535A CN 111221248 A CN111221248 A CN 111221248A
- Authority
- CN
- China
- Prior art keywords
- arithmetic processing
- neuron
- circuit
- neurons
- update
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B13/00—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
- G05B13/02—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
- G05B13/04—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
- G05B13/042—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators in which a parameter or coefficient is automatically adjusted to optimise the performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Neurology (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Automation & Control Theory (AREA)
- Feedback Control In General (AREA)
- Logic Circuits (AREA)
- Memory System (AREA)
Abstract
本申请公开了一种优化装置及优化装置的控制方法,该优化装置包括:算术处理电路,其用于保持神经元的第一值以及执行算术处理以确定是否允许更新第一值;控制电路,其用于:在使算术处理电路中的一部分执行针对部分神经元群组的算术处理的同时,在算术处理电路之中的第一算术处理电路中设置要用于针对神经元之中除部分神经元群组以外的第一神经元的算术处理的信息;使算术处理电路中的该部分之中的第二算术处理电路来使得算术处理无效;以及使第一算术处理电路开始针对第一神经元的算术处理;以及更新神经元选择电路,其用于从部分神经元群组之中的一个或更多个更新允许神经元中选择目标神经元以及更新所保持的神经元的值之中的目标神经元的值。
Description
技术领域
本文中讨论的实施方式涉及优化装置和优化装置的控制方法。
背景技术
作为用于解决诺伊曼型计算机不是有效的多变量优化问题的方法,存在一种使用伊辛型能量函数的优化装置(有时称为伊辛机或玻尔兹曼机)。该优化装置用表示磁性物质的自旋行为的伊辛模型代替要计算的问题,然后计算该问题。
优化装置可以使用例如神经网络对问题进行建模。在那种情况下,优化装置中包括的且彼此耦合的多个单元(神经元)中的每一个充当神经元,其根据表示另一神经元的状态的状态变量(位)和指示其自身神经元的状态变量(位)与另一神经元的状态变量(位)之间的耦合强度的加权因子(也称为耦合因子)输出0或1。例如,优化装置使用诸如模拟退火的随机搜索方法来获得可以获得伊辛型能量函数(也称为成本函数或目标函数)的最小值的位的状态的组合作为解决方案。
另外,作为神经网络技术的示例,存在一种连接多个神经网络电路以扩展网络规模的技术。此外,作为另一示例,存在以下技术:将神经网络的连接信息存储在存储装置中并且重写连接信息以改变神经网络的连接状态,以实现从小规模神经网络到大规模神经网络的各种神经网络。
例如,相关技术在日本公开特许公报第07-191951号和日本公开特许公报第08-022446号中公开。
当在硬件中实现使用随机搜索方法执行多次迭代计算的优化装置时,存在以下问题:随着优化问题的规模变大(神经元的数量增加),硬件的数量也会增加。
在实施方式的一个方面中的目的是提供一种可以利用小数量的硬件来促进大规模算术运算的优化装置和该优化装置的控制方法。
发明内容
根据实施方式的方面,优化装置包括:算术处理电路,每个算术处理电路用于进行如下操作:保持神经元的第一值,对该神经元要执行算术处理,神经元是通过对计算目标的优化问题进行转换而获得的伊辛模型的神经元之一;以及执行算术处理以基于伊辛模型的信息和关于目标神经元的信息来确定是否允许第一值的更新,算术处理电路的数量小于神经元的数量;控制电路,其用于进行如下操作:在使算术处理电路中的一部分执行针对作为神经元中的一部分的部分神经元群组的算术处理的同时,在算术处理电路之中的第一算术处理电路中设置要用于针对神经元之中除部分神经元群组以外的第一神经元的算术处理的信息,第一算术处理电路的算术处理是被无效的;使算术处理电路中的该部分之中的第二算术处理电路来使得算术处理无效;以及使第一算术处理电路开始针对第一神经元的算术处理;以及更新神经元选择电路,其用于进行如下操作:从部分神经元群组之中的一个或更多个更新允许神经元中选择目标神经元,一个或更多个更新允许神经元被确定成允许被更新;以及更新由算术处理电路中的该部分保持的神经元的值之中的目标神经元的值。
附图说明
图1是示出根据第一实施方式的优化装置的示例的视图;
图2是示出要处理的神经元的替换的示例的视图;
图3是示出根据第二实施方式的优化装置的示例的视图;
图4是示出算术处理单元的示例的视图;
图5是示出算术处理电路的示例的视图;
图6是示出根据第二实施方式的优化装置的示例的流程的流程图;
图7是示出每个神经元在替换处理期间的操作状态与使有效的控制信号之间的关系的示例的视图;
图8是用于说明操作状态“a”的示例的示意图;
图9是用于说明操作状态“b”至“d”的示例的示意图;以及
图10是用于说明操作状态“e”的示例的示意图。
具体实施方式
在下文中,将参照附图来描述本公开内容的实施方式。
当能量函数在通过对计算目标的优化问题进行转换而获得的伊辛模型的多个神经元的每个值(在下文中,称为“位值”)的组合之中具有最小值时,本文中描述的优化装置在下面搜索每个神经元的位值(伊辛模型的基态)。
例如,通过以下等式(1)定义伊辛型能量函数E(x)。
(等式1)
右侧上的第一项是在没有遗漏和重复的情况下用于整个神经元的所有组合的两个神经元的位值(0或1)与加权因子的乘积的积分。符号xi是表示使“i”作为标识信息(在下文中,称为索引)的神经元的位值的变量(也称为状态变量),而符号xj是表示索引=j的神经元的位值的变量。符号Wij是表示索引=i的神经元与索引=j的神经元之间的交互作用的大小的加权因子。另外,Wii=零(0)。另外,在许多情况下,Wij=Wji(也就是说,根据加权因子的因子矩阵通常是对称矩阵)。此外,加权因子Wij具有预定的位宽度(例如16位、32位、64位、128位等)。
右侧上的第二项是整个神经元中的每个神经元的偏差因子与神经元的位值的乘积的总和。符号bi表示索引=i的神经元的偏差因子。
另外,当xi变为1-xi时,xi的增量可以表示为Δxi=(1-xi)-xi=1-2xi。伴随自旋反转(神经元的位值的改变)的能量改变ΔEi由以下等式(2)表示。
(等式2)
在等式(2)中,当xi从1变为0时,Δxi变为-1,而当xi从0变为1时,Δxi变为1。另外,符号hi被称为局部字段,并且通过根据Δxi将hi乘以符号(+1或-1)来获得ΔEi。也就是说,hi指示能量改变ΔEi的大小。当hi小于0时,总能量通过将xi从1更新为0而减少,而当hi大于0时,总能量通过将xi从0更新为1而减少。
另外,当xj从0变为1时hi的改变量Δhi可以表示为+Wij,而当xj从1变为0时Δhi可以表示为-Wij。因此,hi可以通过取决于利用状态转变而更新的神经元的位值是1还是0而向原始hi加上Wij或从原始hi减去Wij来更新。
(第一实施方式)
图1是示出根据第一实施方式的优化装置的示例的视图。
根据第一实施方式的优化装置10包括算术处理电路11a1、11a2、……、11am、控制电路12和更新神经元选择电路13。
算术处理电路11a1至11am中的每个保持多个神经元中的每个神经元的位值。此外,算术处理电路11a1至11am中的每个执行算术处理以基于伊辛模型信息和从更新神经元选择电路13提供的关于更新目标神经元的更新目标信息来确定是否允许更新神经元的位值。例如,算术处理电路11a1至11am中的每个首先基于伊辛模型信息和更新目标信息来计算局部字段。伊辛模型信息包括上述加权因子。更新目标信息包括更新目标神经元的位值和索引。通过根据更新目标神经元的位值是1还是0而向先前值加上或从先前值减去指示由算术处理电路11a1至11am中的每个处理的神经元与更新目标神经元之间的交互作用的大小的加权因子来更新局部字段。因此,可以通过使用执行加法或减法的电路来实现局部字段的计算。另外,算术处理电路11a1至11am中的每个可以基于等式(2)来计算能量改变本身。
然后,算术处理电路11a1至11am中的每个基于温度参数、以随机数为基础确定的热噪声、局部字段和所保持的神经元的位值来确定是否允许更新神经元的位值。温度参数是从控制电路12输入的。
如上所述,当关于索引=i的神经元的hi小于0且xi为1时,总能量通过将xi从1更新为0而减少。另外,当hi大于0且xi为0时,总能量通过将xi从0更新为1而减少。同时,当hi小于0且xi为0时,总能量通过将xi从0更新为1而增加。另外,当hi大于0且xi为1时,总能量通过将xi从1更新为0而增加。
为了防止伊辛模型的状态被不是基态(最优解)的局部解所困,算术处理电路11a1至11am使用热噪声来以预定的概率产生能量增加的状态转变。
随着温度参数变大,热噪声的宽度增加。当执行模拟退火时,温度参数由控制电路12控制以逐渐变小。
上述确定处理由使用随机数产生器诸如LFSR(线性反馈移位寄存器)产生热噪声的电路、比较电路等来实现。算术处理电路11a1至11am中的每个对包括以上处理的算术处理进行迭代。
另外,算术处理电路11a1至11am的数量小于神经元的总数量。为此,神经元由稍后要描述的控制电路12替换,对该神经元执行算术处理。
算术处理电路11a1至11am被包括在例如单芯片或多芯片半导体集成电路(ASIC(专用集成电路)、FPGA(现场可编程门阵列)等)中。
控制电路12输出控制信号CNT1、CNT2、……、CNTm,并且分别根据控制信号CNT1至CNTm如下控制算术处理电路11a1至11am。在使算术处理电路11a1至11am中的一部分对任意神经元群组(在下文中,称为部分神经元群组)执行算术处理的同时,控制电路12使通过任意算术处理电路(在下文中,称为第一算术处理电路)的算术处理无效。然后,控制电路12在第一算术处理电路中设置用于针对除部分神经元群组以外的任意神经元(在下文中,称为第一神经元)的算术处理的信息。用于算术处理的信息包括例如其位值相对于所有神经元的位值的初始值改变的神经元的信息、指示第一神经元与所有神经元中的每个神经元之间的相互作用的大小的加权因子、以及关于除部分神经元群组以外的神经元的局部字段的初始值。其位值改变的神经元的信息包括神经元的位值和索引。另外,当过去已经对除部分神经元群组以外的神经元执行算术处理时,用于算术处理的信息包括如下神经元的信息,该神经元的位值已经相对于在算术处理上次被无效之前最后更新的所有神经元的位值被更新。在那种情况下,用于算术处理的信息还包括在算术处理被无效之前最后计算的关于第一神经元的局部字段。以上信息存储在存储单元12a中。
在设置用于算术处理的信息之后,控制电路12使在执行算术处理的部分算术处理电路之中的任意算术处理电路(在下文中,称为第二算术处理电路)中的算术处理无效。然后,控制电路12使已经无效的第一算术处理电路开始(或恢复)针对第一神经元的算术处理作为部分算术处理电路之一。
另外,控制电路12在存储单元12a中存储在第二算术处理电路使得算术处理无效之前最后计算的局部字段以及在第二算术处理电路使得算术处理无效之前最后更新的所有神经元的位值。例如,控制电路12从执行算术处理的算术处理电路获取在第二算术处理电路使得算术处理无效之前最后更新的部分神经元群组的位值。然后,控制电路12使用获取的位值来更新存储单元12a中存储的所有神经元之中的部分神经元群组的位值,并且将所有神经元的经更新的位值与所有神经元的当前位值分开地存储在存储单元12a中。
如上所述,控制电路12替换由算术处理电路11a1至11am处理的神经元。
另外,控制电路12可以按照预定顺序或基于随机数替换由算术处理电路11a1至11am处理的神经元。
控制电路12可以通过特定应用的电子电路诸如ASIC或FPGA来实现。控制电路12还可以是诸如CPU(中央处理单元)或DSP(数字信号处理器)的处理器。在那种情况下,处理器通过执行存储在存储单元12a中的程序来执行如上所述的控制电路12的处理。
存储单元12a存储所有加权因子、所有偏差因子、所有神经元的位值以及局部字段的初始值(例如,偏差因子)。另外,存储单元12a存储由第二算术处理电路最后计算的局部字段和在第二算术处理电路使得算术处理无效之前最后更新的所有神经元的位值。
另外,在图1的示例中,存储单元12a安装在控制电路12中,但是可以安装在控制电路12的外部。存储单元12a例如是诸如SDRAM(同步动态随机存取存储器)的易失性存储装置、诸如闪存、EEPROM(电可擦除可编程只读存储器)或HDD(硬盘驱动器)的非易失性存储、或者其组合。
更新神经元选择电路13从部分神经元群组中被确定为允许被更新的一个或更多个更新允许神经元中选择更新目标神经元。然后,更新神经元选择电路13更新在执行算术处理的各个算术处理电路保持的神经元的位值之中的更新目标神经元的位值。另外,更新神经元选择电路13将更新目标信息提供给执行算术处理的算术处理电路。更新神经元选择电路13例如使用如下选择电路来实现,该选择电路基于随机数来选择多个更新允许神经元之一作为更新目标神经元。
在下文中,将描述根据第一实施方式的优化装置10的操作的示例。
控制电路12使算术处理电路11a1至11am的一部分执行针对部分神经元群组的算术处理。
例如,如图1中所示,控制电路12首先使算术处理电路11a1至11am之中的除算术处理电路11am外的算术处理电路对包括(m-1)数量的神经元的部分神经元群组执行算术处理,并且使通过算术处理电路11am的算术处理无效。
在那种情况下,控制电路12在算术处理电路11a1至11am之中的除算术处理电路11am外的算术处理电路中的每个中,设置用于对在存储单元12a中存储的(m-1)个神经元中的任何一个神经元的算术处理的伊辛模型信息。
例如,在以下中,假设(m-1)个神经元的索引为1至m-1。此时,当算术处理电路11a1执行对索引=1的神经元的算术处理时,控制电路12在算术处理电路11a1中设置W11至W1(m-1)。另外,控制电路12可以在执行针对索引=1的神经元的算术处理的算术处理电路11a1中设置指示所有神经元中的每个神经元与索引=1的神经元之间的相互作用的大小的加权因子W11至W1n。另外,n是神经元的总数量。
另外,控制电路12分别在算术处理电路11a1至11a(m-1)中设置局部字段的初始值和在存储单元12a中存储的(m-1)个神经元的位值的初始值。当所有神经元的位值的初始值为0时,根据等式(2),局部字段的初始值为偏置因子。然后,算术处理电路11a1至11a(m-1)中的每个基于局部字段的初始值、热噪声和(m-1)个神经元的位值的初始值来确定是否允许对(m-1)个神经元中的每个神经元进行更新。
更新神经元选择电路13从(m-1)个神经元中被确定为允许被更新的一个或更多个更新允许神经元中选择更新目标神经元。然后,更新神经元选择电路13更新在由算术处理电路11a1至11a(m-1)保持的神经元的位值之中的更新目标神经元的位值。此外,更新神经元选择电路13将更新目标神经元的位值和索引提供给算术处理电路11a1至11a(m-1)。在图1的示例中,索引j和更新目标神经元位值xj被提供给算术处理电路11a1、11a2等。
算术处理电路11a1至11a(m-1)基于所提供的更新目标信息和伊辛模型信息来计算(更新)局部字段。例如,当算术处理电路11a1针对索引=1的位更新局部字段h1时,算术处理电路11a1在经更新的xj为1时向原始h1加上W1j,而在经更新的xj为0时从原始h1减去W1j。
另外,算术处理电路11a1至11a(m-1)基于经更新的局部字段再次执行以上确定处理。此外,更新神经元选择电路13再次执行更新目标神经元的选择、更新目标神经元的更新以及向算术处理电路11a1至11a(m-1)的更新目标神经元的信息的供给。
每当以上算术处理被迭代预定次数时,控制电路12降低温度参数。然后,例如,在执行算术处理的算术处理电路中的任何算术处理电路中,当局部字段的改变量在预定时段内保持在0时或者当算术处理重复预定次数(其大于改变温度参数的次数)时,控制电路12执行以下处理。
控制电路12在使算术处理电路11a1至11a(m-1)执行算术处理的同时,在算术处理电路11am中设置用于对第一神经元的算术处理的信息。
在图1的示例中,将用于针对索引=8的神经元的算术处理的W81至W8n设置在算术处理电路11am中,该索引=8不包括在索引=1至m-1中。另外,控制电路12在算术处理电路11am中设置h8的初始值(当所有神经元的位值的初始值为0时的偏差因子b8)。另外,例如,控制电路12将与所有神经元之中的初始值不同的神经元的信息按照顺序提供给算术处理电路11am,使得算术处理电路11am可以根据所有神经元的当前位值来更新h8的初始值。另外,例如,当更新神经元选择电路13在h8的更新期间输出更新目标信息时,算术处理电路11am使用从控制电路12提供的信息来中断h8的更新处理。然后,算术处理电路11am使用从更新神经元选择电路13提供的更新目标信息来更新h8,并且然后,使用从控制电路12提供的信息来重新开始h8的更新。另外,算术处理电路11am可以在同一时间使用从更新神经元选择电路13提供的更新目标信息和从控制电路12提供的信息两者来更新h8。例如,当更新神经元选择电路13输出索引=1和x1=1并且控制电路12输出索引=2和x2=1时,算术处理电路11am可以通过向h8加上W81+W82来在同一时间更新h8。
另外,当在算术处理电路11a1至11am之中的继续进行算术处理的算术处理电路中未设置关于索引=8的神经元的加权因子时,基于控制电路12的控制来设置加权因子。
然后,控制电路12使执行算术处理的算术处理电路之一例如算术处理电路11a2使算术处理无效。另外,控制电路12在存储单元12a中存储在算术处理电路11a2使算术处理无效之前最后计算的局部字段h2和在算术处理电路11a2使算术处理无效之前最后更新的所有神经元的位值。
此后,控制电路12使被无效的算术处理电路11am开始针对索引=8的神经元的算术处理。
此后,重复相同的处理。图1示出了将用于针对索引=7的神经元的算术处理的信息(W71至W7n等)设置在使算术处理无效的算术处理电路11a2中的示例。
另外,当再次执行针对索引=2的神经元的算术处理时,将所有神经元的位值和在存储单元12a中存储的h2设置在执行算术处理的算术处理电路中。然后,根据与如上所述的用于更新h8的处理相同的处理来更新h2。
另外,控制电路12例如按照预定顺序替换由算术处理电路11a1至11am处理的神经元。
图2是示出要处理的神经元的替换的示例的视图。
出于简化描述的目的,假设神经元的总数量为10并且算术处理电路11a1至11am的数量为5(m=5)。另外,在图2中,索引=1至10的神经元分别表示为神经元1至10。
例如,控制电路12首先使算术处理电路11a1至11a4执行针对神经元1至4的算术处理,并且在无效的算术处理电路11a5中设置用于针对神经元10的算术处理的信息。接下来,控制电路12使算术处理电路11a1至11a3以及11a5执行针对神经元1至3以及10的算术处理,并且在无效的算术处理电路11a4中设置用于针对神经元9的算术处理的信息。此后,控制电路12使算术处理电路11a1、11a2、11a4和11a5执行针对神经元1、2、9和10的算术处理,并且在无效的算术处理电路11a3中设置用于针对神经元8的算术处理的信息。
例如,控制电路12在执行算术处理的算术处理电路中的任何算术处理电路中迭代上述替换处理,直到执行了针对所有神经元的算术处理为止,或者直到局部字段的改变在预定时段内没有从0改变为止。然后,作为优化问题的解决方案,当以上替换处理结束时,控制电路12输出每个神经元的位值。
如上所述,根据第一实施方式的优化装置10使少于神经元的总数量的算术处理电路中的一部分对神经元中的一部分执行算术处理,并且在该过程期间,在使算术处理无效的算术处理电路中设置用于针对其他神经元之一的算术处理的信息。然后,优化装置10可以通过替换使算术处理无效的算术处理电路来执行针对其他神经元的算术处理,从而利用小数量的硬件来促进大规模算术运算。
另外,由于在其他算术处理电路执行算术处理的同时,执行在使算术处理无效的算术处理电路中设置用于针对其他神经元的算术处理的信息,因此不会发生由于要处理的神经元的替换的算术处理的中断,从而抑制了计算时间的增加。
此外,由于即使使用单芯片也可以执行大规模算术运算,因此不会发生诸如当使用多芯片时发生的芯片间连接的复杂化的问题。
在以上描述中,使算术处理无效的算术处理电路的数量为1,但可以是2或更多。在那种情况下,可以同时替换要处理的多个神经元和要被无效的多个神经元。
(第二实施方式)
图3是示出根据第二实施方式的优化装置的示例的视图。
优化装置20包括控制电路21和算术处理单元22。
控制电路21将各种控制信号输出到算术处理单元22并且控制算术处理单元22中的算术处理。另外,控制电路21具有存储单元21a,将存储在存储单元21a中的各种类型的信息提供给算术处理单元22,并且将由算术处理单元22获得的信息(计算结果和计算期间的信息)存储在存储单元21a中。
此外,控制电路21与控制装置23(例如,PC(个人计算机))交换信息。从控制装置23发送到控制电路21的信息的示例可以包括所有加权因子、所有偏差因子、所有神经元的位值的初始值、局部字段的初始值、关于如何改变温度参数的温度改变计划表等。从控制电路21发送到控制装置23的信息的示例可以包括由算术处理单元22获得的优化问题的计算结果等。
控制电路21可以通过诸如ASIC或FPGA的用于特定应用的电子电路来实现。另外,控制电路21可以是诸如CPU或DSP的处理器。在那种情况下,例如,处理器通过执行存储在存储单元21a中的程序来执行各种处理。
存储单元21a存储所有加权因子、所有偏差因子、所有神经元的位值以及局部字段的初始值。存储单元21a还存储由算术处理单元22获得的信息(计算结果和计算期间的信息)。
在图3的示例中,存储单元21a安装在控制电路21中,但是可以安装在控制电路21的外部。存储单元21a可以是例如诸如SDRAM的易失性存储装置、诸如闪存、EEPROM或HDD的非易失性存储、或者其组合。
算术处理单元22在控制电路21的控制下搜索伊辛模型的基态。
图4是示出算术处理单元的示例的视图。
算术处理单元22包括算术处理电路22a1、22a2、……、22am和更新神经元选择电路22b。
算术处理电路22a1至22am中的每个保持多个神经元中的每个神经元的位值。此外,算术处理电路22a1至22am中的每个基于加权因子和从更新神经元选择电路22b提供的更新目标神经元的位值和索引来计算局部字段。另外,算术处理电路22a1至22am中的每个基于温度参数、以随机数为基础确定的热噪声、局部字段以及神经元的位值来确定是否允许更新神经元的位值。温度参数从控制电路21提供。算术处理电路22a1至22am中的每个对包括以上处理的算术处理进行迭代。在下文中,以上算术处理的迭代可以被称为迭代操作。
另外,算术处理电路22a1至22am的数量小于神经元的总数量。为此,控制电路21替换神经元,对该神经元要执行算术处理。
算术处理电路22a1至22am被包括在例如单芯片或多芯片半导体集成电路(ASIC、FPGA等)中。
此外,图4示出了各种控制信号。控制信号由控制电路21中的控制信号产生电路(未示出)产生。控制信号CSi和CWij被提供给存储单元21a。
控制信号CSi是用于进行如下的控制信号:从存储单元21a读取用于针对索引=i(i是1至n中的任何一个)的神经元的算术处理的信息中除加权因子外的信息,并且将所读取的信息设置在算术处理电路22a1至22am中的任何一个中。稍后将描述读取信息的示例。
控制信号CWij(i、j是1至n中的任何一个)是用于从存储单元21a读取所有加权因子中的任何一个并且将所读取的加权因子设置在算术处理单元22中的控制信号。
此外,控制信号CNi和OEi被提供给算术处理电路22a1至22am。
控制信号CNi是用于控制针对索引=i的神经元的算术处理的执行和无效的控制信号。当控制信号CNi有效时,执行针对索引=i的神经元的算术处理。当控制信号CNi无效时(例如,当其值为0时),使针对索引=i的神经元的算术处理无效。
控制信号OEi是用于进行如下的控制信号:当使针对索引=i的神经元的算术处理无效时,从执行算术处理的算术处理电路读取每个神经元的位值,并且读取关于索引=i的神经元的局部字段。
此外,控制信号EXi被提供给更新神经元选择电路22b。
控制信号EXi是用于控制是否验证将索引=i的神经元作为更新目标神经元的选择的控制信号。当控制信号EXi有效时,验证将索引=i的神经元作为更新目标神经元的选择。
图5是示出算术处理电路的示例的视图。虽然图5示出了算术处理电路22a1的示例,但是其他算术处理电路22a2至22am也可以利用与图5中的电路相同的电路来实现。
算术处理电路22a1包括寄存器30、选择电路31和32、乘法电路33、加法电路34、寄存器35、噪声产生电路36、加法电路37、比较电路38、作为异或逻辑和电路的异或电路39以及寄存器40。算术处理电路22a1还包括更新目标信息选择电路41和信息读取电路42。
在寄存器30中,设置(存储)从存储单元21a读取的Wij。
选择电路31基于从稍后描述的更新目标信息选择电路41输出的索引来选择并输出存储在寄存器30中的Wij之一。
假设在更新目标神经元的位值的更新之前的值为xjp,当xjp变为xj时的hi的改变量(Δhi)可以表示为Wij(1-2xjp)。
选择电路32实现上述(1-2xjp)计算,并且基于从稍后描述的更新目标信息选择电路41输出的神经元的位值来选择并输出1或-1。当神经元的位值为0时,选择电路32选择并输出-1。当神经元的位值为1时,选择电路32选择并输出1。
乘法电路33输出Δhi,Δhi为从选择电路31输出的加权因子与从选择电路32输出的值的乘积。
加法电路34通过将Δhi与存储在寄存器35中的hi相加来更新hi。
寄存器35与时钟信号clka(例如,从控制电路21提供的)同步地接收从加法电路34输出的hi。寄存器35例如是触发器。在初始化针对索引=i的神经元的算术处理时,由控制电路21从存储单元21a读取hi的初始值并将其设置在寄存器35中。另外,在从无效状态恢复针对索引=i的神经元的算术处理时,由控制电路21从存储单元21a读取最后计算的hi并将其设置在寄存器35中。
噪声产生电路36基于温度参数T和随机数产生热噪声,以便执行模拟退火。至于噪声产生电路36,例如,可以使用LFSR等。在模拟退火时,由控制电路21控制T以使其逐渐减小。因此,由噪声产生电路36产生的热噪声的噪声宽度逐渐减小。
加法电路37将从噪声产生电路36输出的热噪声与从寄存器35输出的局部字段hi相加,并输出相加的结果。
当从加法电路37输出的值等于或大于阈值(例如,0)时,比较电路38输出0,而当该值小于阈值时,比较电路38输出1。另外,当从控制电路21向比较电路38提供控制信号CNi并且控制信号CNi无效时,比较电路38不执行比较操作以使针对索引=i的神经元的算术处理无效。
异或电路39基于从比较电路38输出的值和存储在寄存器40中的值xi来输出指示是否允许更新索引=i的神经元的位值的值。例如,当从比较电路38输出的值与存储在寄存器40中的值xi匹配时,异或电路39输出指示不允许更新的0,而当两个值不匹配时,异或电路39输出允许更新的1。异或电路39的输出值被提供给更新神经元选择电路22b。
当从更新神经元选择电路22b向寄存器40提供时钟信号clkb时,寄存器40接收从比较电路38输出的值作为xi。在初始化针对索引=i的神经元的算术处理时,由控制电路21从存储单元21a读取xi的初始值并将其设置在寄存器40中。在从无效状态恢复针对索引=i的神经元的算术处理时,由控制电路21从存储单元21a读取最后计算的xi并将其设置在寄存器40中。从寄存器40输出的值xi被提供给更新神经元选择电路22b。
向更新目标信息选择电路41提供从更新神经元选择电路22b输出的更新目标位的值xj和更新目标位的索引=j。另外,当算术处理电路22a1从无效状态返回时,从控制电路21向更新目标信息选择电路41提供xja和索引=ja。
当算术处理电路22a1从无效状态返回使得执行针对到目前为止尚未选择的索引=i的神经元的算术处理时,hi的初始值根据所有神经元的当前位值来更新。另外,当算术处理电路22a1从无效状态返回使得再次执行针对索引=i的神经元的算术处理时,在先前处理中最后计算的hi根据所有神经元的当前位值来更新。因此,对于所有神经元的位值的初始值或对于在针对索引=i的神经元的先前算术处理被无效之前最后更新的所有神经元的位值,控制电路21从存储单元21a读取经更新的神经元信息并将经更新的神经元信息提供给更新目标信息选择电路41。在图5中,经更新的神经元信息被示为值xja和索引=ja。然后,更新目标信息选择电路41将索引=ja提供给选择电路31并将xja提供给选择电路32。因此,hi被更新。对所有更新的神经元执行此处理。然而,例如,当更新神经元选择电路22b在hi的更新期间输出xj或索引=j时,更新目标信息选择电路41中止xja和索引=ja的选择,并且选择并输出xj和索引=j。
另外,当没有从控制电路21提供xja和索引=ja时,更新目标信息选择电路41选择并输出从更新神经元选择电路22b提供的xj和索引=j。
当控制信号OEi有效时,信息读取电路42读取保持在寄存器40中的xi并将所读取的xi发送给控制电路21。当索引=i是使稍后描述的处理无效的神经元的索引=M时,信息读取电路42读取保持在寄存器35中的hi(=hM)连同xi并将所读取的hi和xi发送给控制电路21。另外,算术处理电路22a1可以具有例如寄存器,该寄存器保持用于标识神经元的索引,对该神经元执行算术处理。该索引由控制电路21设置。
更新神经元选择电路22b从由算术处理电路22a1至22am之中的执行算术处理的算术处理电路输出的一个或更多个更新允许神经元中选择更新目标神经元。然后,更新神经元选择电路22b更新在由执行算术处理的各个算术处理电路所保持的神经元的位值之中的更新目标神经元的位值。例如,更新神经元选择电路22b将上述时钟信号clkb提供给对更新目标神经元执行算术处理的算术处理电路。更新神经元选择电路22b不选择控制信号EXi对其无效的神经元作为更新目标神经元。更新神经元选择电路22b将更新目标神经元的位值和索引提供给执行算术处理的算术处理电路。例如,当存在多个更新允许神经元时,更新神经元选择电路22b使用选择电路等来实现,该选择电路基于随机数来选择多个更新允许神经元之一作为更新目标神经元。
在下文中,将描述根据第二实施方式的优化装置20的操作的示例。
图6是示出根据第二实施方式的优化装置的示例的流程的流程图。
首先,控制电路21指定要在算术处理单元22中第一次处理的神经元群组L(步骤S10)。神经元群组L中的神经元的数量等于或小于m-1(m是算术处理电路22a1至22am的数量)。另外,控制装置23可以为优化装置20指定要第一次处理的神经元群组L。
在指定神经元群组L之后,控制电路21使控制信号CSi (L)和CWij (L)有效(步骤S11)。控制信号CSi (L)是用于针对包括在神经元群组L中的神经元的算术处理的控制信号CSi。控制信号CWij (L)是用于对包括在神经元群组L中的神经元的算术处理的控制信号CWij。当控制信号CSi (L)和CWij (L)变为有效时,将xi (L)、hi (L)和Wij (L)设置在算术处理电路22a1至22am之中的计划进行操作且与包括在神经元群组L中的神经元的数量对应的算术处理电路中。值xi (L)和hi (L)分别是包括在神经元群组L中的神经元的位值的初始值和关于包括在神经元群组L中的神经元的局部字段的初始值。符号Wij (L)是指示包括在神经元群组L中的神经元之间的相互作用的大小的加权因子。另外,在步骤S11的处理中,也将温度参数的初始值设置在计划进行操作的算术处理电路中。
此后,控制电路21使控制信号CNi (L)和EXi (L)有效,并且使控制信号CSi (L)和CWij (L)无效(步骤S12)。控制信号CNi (L)是用于控制针对包括在神经元群组L中的神经元的算术处理的执行和无效的控制信号CNi。控制信号EXi (L)是用于控制是否验证将包括在神经元群组L中的神经元作为更新目标神经元的选择的控制信号EXi。当控制信号CNi (L)和EXi (L)变为有效时,在算术处理电路中执行针对神经元群组L中包括的神经元中的每个神经元的迭代操作。在算术处理电路22a1至22am之中,除神经元群组L中包括的神经元的数量以外的算术处理电路使迭代操作无效。
此后,控制电路21确定是否满足结束条件(步骤S13)。例如,在针对包括最后替换的神经元的神经元群组的迭代操作中,控制电路21执行针对所有神经元的算术处理,并且当Δhi在预定时段内对于任何神经元为0时确定满足结束条件。可替选地,控制电路21可以在执行针对所有神经元的算术处理之后继续替换处理直到Δhi在预定时段内对于任何神经元变为0为止。Δhi的值例如可以从乘法电路33的输出中检测到,如图5中所示。
当确定满足结束条件时,执行步骤S22的处理。
当确定不满足结束条件时,控制电路21确定是否满足用于替换要处理的神经元的替换条件(步骤S14)。例如,当Δhi对于在预定时段内处理的任何神经元保持为0时,控制电路21确定满足替换条件。可替选地,当迭代操作的数量达到预定数量时,控制电路21可以确定满足替换条件。
当确定不满足替换条件时,执行步骤S20的处理。
当确定满足替换条件时,控制电路21指定索引=K和索引=M(步骤S15)。索引=K是替换神经元(其处理被无效的神经元)的索引,而索引=M是被替换的神经元(被处理的神经元)的索引。索引=K和索引=M的选择顺序可以由控制装置23预先指定。此外,控制电路21可以基于随机数来指定索引=K和索引=M。
在指定索引=K和索引=M之后,控制电路21使控制信号CSK、CWij (A,K)和CWij (K)有效(步骤S16)。控制信号CSK是用于针对索引=K的神经元的算术处理的控制信号CSi。控制信号CWij (A,K)是用于进行以下的控制信号CWij:读取指示对其继续处理的索引=K的神经元与索引=A的神经元之间的相互作用的大小的加权因子Wij (A,K),并且将所读取的加权因子设置在算术处理单元22中。控制信号CWij (K)是用于进行以下的控制信号CWij:读取指示索引=K的神经元与所有其他神经元之间的相互作用的大小的加权因子Wij (K),并且将所读取的加权因子设置在算术处理单元22中。当使控制信号CSK和CWij (K)有效时,将xi (K)、hK和Wij (K)设置在算术处理电路22a1至22am之中的迭代操作已无效的任何一个算术处理电路中。此外,当使控制信号CWij (A,K)有效时,将Wij (A,K)设置在算术处理电路22a1至22am之中的继续迭代操作的算术处理电路中。
值xi (K)包括:在步骤S14的处理的时间点处更新的神经元的位值,以及对于所有神经元的位值的初始值或对于在索引=K的先前神经元被处理时最后更新的所有神经元的位值的xK。在步骤S16的处理中,控制电路21通过使用在算术处理电路22a1至22am之中的操作中的算术处理电路的寄存器(例如,图5的寄存器40)中保持的值来更新存储在存储单元21a中的所有神经元的位值。然后,控制电路21基于所有神经元的经更新的位值与所有神经元的位值的初始值或在索引=K的先前神经元被处理时最后更新的所有神经元的位值之间的差来确定xi (K)。图5中示出的xja包括在xi (K)中。xK被设置在例如图5中示出的寄存器40中。图5中的索引=ja也设置在使迭代操作无效的算术处理电路中。
然后,使迭代操作无效的算术处理电路选择由控制电路21设置在图5的更新目标信息选择电路41中的xja和ja,并且更新hi(在此,i=K)(步骤S17)。在设置xi (K)、hK、Wij (K)和Wij (A,K)之后,控制电路21使控制信号CSK、CWij (A,K)和CWij (K)无效。
此后,控制电路21使控制信号OEM有效(步骤S18)。控制信号OEM是用于从执行算术处理的算术处理电路读取关于步骤S15的处理中指定的索引=M的神经元的局部字段和每个神经元的位值的控制信号。当使控制信号OEM有效时,从执行算术处理的算术处理电路读取hM和每个神经元的位值。控制电路21使用所读取的每个神经元的位值来更新存储在存储单元21a中的所有神经元的位值,并且将所有神经元的经更新的位值(xi (M))与所读取的hM一起存储在存储单元21a中。
当xi (M)和hM在存储单元21a中的存储完成时,控制信号OEM变为无效。
此后,控制电路21使控制信号CNK和EXK有效,并且使控制信号CNM和EXM无效(步骤S19)。控制信号CNK是用于控制对索引=K的神经元的算术处理的执行和无效的控制信号CNi。控制信号EXK是用于控制是否验证将索引=K的神经元作为更新目标神经元的选择的控制信号EXi。当使控制信号CNK和EXK有效时,在使算术处理无效的算术处理电路中开始对索引=K的神经元的迭代操作。控制信号CNM是用于控制针对索引=M的神经元的算术处理的执行和无效的控制信号CNi。控制信号EXM是用于控制是否验证将索引=M的神经元作为更新目标神经元的选择的控制信号EXi。当使控制信号CNM和EXM无效时,使对索引=M的神经元执行算术处理的算术处理电路无效,并且使针对索引=M的神经元的迭代操作无效。
此后,处理返回至步骤S13。
当在步骤S14的处理中确定不满足替换条件时,控制电路21确定是否满足温度参数改变条件(步骤S20)。例如,当迭代操作的次数达到预定数量时,控制电路21确定满足温度参数改变条件。
当控制电路21确定不满足温度参数改变条件时,迭代从步骤S13开始的处理。当确定满足温度参数改变条件时,控制电路21改变温度参数(步骤S21)。例如,控制电路21根据从控制装置23提供的温度改变计划表来降低温度参数的值。在步骤S21的处理之后,迭代从步骤S13开始的处理。
当在步骤S13的处理中确定满足结束条件时,控制电路21输出存储单元21a中存储的所有神经元的当前位值作为优化问题的解决方案(计算结果)(步骤S22)并结束处理。由控制电路21输出的计算结果显示在例如控制装置23中的显示装置等上。
在下文中,将描述用于替换要处理的神经元的处理的示例。
图7是示出每个神经元在替换处理期间的操作状态与使有效的控制信号之间的关系的示例的视图。
在图7中,对其继续迭代操作的索引=A的神经元被表示为“神经元A”,索引=M的上述神经元被表示为“神经元M”,而索引=K的上述神经元被表示为“神经元K”。
在操作状态“a”中,使控制信号CNA、CNM、EXA和EXM有效,执行针对神经元A和M的迭代操作,而对于神经元K使迭代操作无效。
操作状态“b”是图6中的步骤S16的处理时的操作状态。继续针对神经元A和M的迭代操作。此外,除了在操作状态“a”中使有效的控制信号外,使控制信号CWij (K)、CWij (A,K)和CSK有效。此时,将Wij (A,K)设置在执行针对神经元A的迭代操作的算术处理电路中,并且将xi (K)、hK和Wij (K)设置在使迭代操作无效的任何一个算术处理电路中。
操作状态“c”是图6中的步骤S17的处理时的操作状态。继续针对神经元A和M的迭代操作。此外,在操作状态“c”中,针对神经元K更新局部字段hK。
操作状态“d”是图6中的步骤S18的处理时的操作状态。继续针对神经元A和M的迭代操作。此外,继续hK的更新。然而,在操作状态“d”中,使控制信号OEM有效。当使控制信号OEM有效时,hM和xi (M)被存储在存储单元21a中。当hM和xi (M)在存储单元21a中的存储完成时,控制信号OEM变为无效。
操作状态“e”是图6中的步骤S19的处理时的操作状态。继续针对神经元A的迭代操作。同时,当控制信号CNM和EXM变为无效并且控制信号CNK和EXK变为有效时,使针对神经元M的迭代操作无效并且开始针对神经元K的迭代操作。
图8、图9以及图10是用于说明操作状态“a”至“e”的示例的示意图。
图8至图10中的积分单元50、51、52、53和54对应于例如图5中示出的用于计算hi的单元。图8至图10中的确定单元60、61、62、63和64对应于例如图5中示出的用于基于hi输出xi的单元。更新神经元选择电路22b等在图8至图10中未示出。在下面的描述中,为了简单起见,假设神经元的总数量为8,并且算术处理电路22a1至22am的数量为5(m=5)。
图8是用于说明操作状态“a”的示例的示意图。
在图8中示出的操作状态“a”中,正在执行对与图7中的神经元A或神经元M对应的索引=1至4的四个神经元的迭代操作。使用W11至W14和x1至x4来更新h1,使用W21至W24和x1至x4来更新h2,使用W31至W34和x1至x4来更新h3,并且使用W41至W44和x1至x4来更新h4。
图9是用于说明操作状态“b”至“d”的示例的示意图。
在操作状态“b”中,至于图7中示出的Wij (A,K),将W18、W28和W38设置在执行针对索引=1至3的神经元的算术处理的算术处理电路中。另外,至于图7中示出的xi (K),将xi (8)设置在使算术处理无效的算术处理电路中。xi (8)包括:在操作状态“b”的时间点处更新的神经元的位值(x1至x7之一),以及对于所有神经元的位值的初始值或对于在索引=8的先前神经元被处理时最后更新的所有神经元的位值的x8。此外,至于图7中示出的Wij (K)和hK,将W81至W88以及h8设置在使算术处理无效的算术处理电路中。
在操作状态“c”中,设置的h8在使算术处理无效的算术处理电路中被更新。
在操作状态“d”中,如图7中示出的xi (M)和hM,xi (4)和h4被存储在存储单元21a中。
图10是用于说明操作状态“e”的示例的示意图。
在操作状态“e”中,使针对索引=4的神经元的迭代操作无效,并且开始针对索引=8的神经元的迭代操作。此时,使用W11至W13、W18、x1至x3和x8来更新h1,使用W21至W23、W28、x1至x3和x8来更新h2,并且使用W31至W33、W38、x1至x3和x8来更新h3。使用W81至W83、W88、x1至x3和x8来更新h8。
根据如上所述的第二实施方式的优化装置20,可以获得与第一实施方式的优化装置10的效果相同的效果。
此外,例如,当开始(或恢复)对失效的神经元的处理时,算术处理电路22a1至22am在控制电路21的控制下使用图5中示出的电路来更新存储在存储单元21a中的局部字段。例如,基于神经元信息来更新索引=i的神经元的hi的初始值,该神经元信息的值是相对于所有神经元的位值的初始值、以及关于索引=i的神经元的加权因子以及关于所有神经元中的每个神经元的加权因子进行更新的。可替选地,基于神经元信息来更新在针对索引=i的神经元的先前算术处理被无效之前最后计算的hi,该神经元信息的值针对在算术处理被无效之前最后更新的所有神经元的位值以及上述加权因子进行更新。
因此,当开始(或恢复)针对某个神经元的处理时,在针对某个神经元的处理被无效时更新的神经元的位值可能被反映在局部字段中。
根据实施方式的方面,可以利用小数量的硬件来实现大规模算术运算。
Claims (5)
1.一种优化装置,包括:
算术处理电路,每个算术处理电路用于进行如下操作:
保持神经元的第一值,对所述神经元要执行算术处理,所述神经元是通过对计算目标的优化问题进行转换而获得的伊辛模型的神经元之一;以及
执行所述算术处理以基于所述伊辛模型的信息和关于目标神经元的信息来确定是否允许所述第一值的更新,所述算术处理电路的数量小于所述神经元的数量;控制电路,所述控制电路用于进行如下操作:
在使所述算术处理电路中的一部分执行针对作为所述神经元中的一部分的部分神经元群组的所述算术处理的同时,在所述算术处理电路之中的第一算术处理电路中设置要用于针对神经元之中除所述部分神经元群组以外的第一神经元的所述算术处理的信息,所述第一算术处理电路的算术处理是被无效的;
使所述算术处理电路中的所述部分之中的第二算术处理电路来使得所述算术处理无效;以及
使所述第一算术处理电路开始针对所述第一神经元的所述算术处理;以及
更新神经元选择电路,所述更新神经元选择电路用于进行如下操作:
从所述部分神经元群组之中的一个或更多个更新允许神经元中选择所述目标神经元,所述一个或更多个更新允许神经元被确定成允许被更新;以及
更新由所述算术处理电路中的所述部分保持的神经元的值之中的所述目标神经元的值。
2.根据权利要求1所述的优化装置,其中
所述控制电路用于进行如下操作:
在将所述神经元的最后值和局部字段存储在存储单元中之后,使所述第二算术处理电路来使得所述算术处理无效,所述局部字段是在所述第二算术处理电路使得所述算术处理无效之前最后由所述第二算术处理电路计算的,所述神经元的最后值是在所述第二算术处理电路使得所述算术处理无效之前最后更新的所述神经元的值。
3.根据权利要求1或2所述的优化装置,其中
所述第一算术处理电路用于进行如下操作:
在基于更新信息和加权因子从初始值更新针对所述第一神经元的局部字段之后,开始针对所述第一神经元的所述算术处理,所述更新信息是如下神经元的信息,所述神经元的值从初始值被更新,所述加权因子指示所述第一神经元与所述神经元中的每个神经元之间的相互作用的大小。
4.根据权利要求1或2所述的优化装置,其中
所述第一算术处理电路用于进行如下操作:
在基于更新信息和加权因子更新在针对所述第一神经元的先前算术处理被无效之前最后计算的局部字段之后,恢复针对所述第一神经元的所述算术处理,所述更新信息是如下神经元的信息,所述神经元的值从在针对所述第一神经元的所述先前算术处理被无效之前最后更新的值被更新,所述加权因子指示所述第一神经元与所述神经元中的每个神经元之间的相互作用的大小。
5.一种优化装置的控制方法,所述控制方法包括:
通过所述优化装置中包括的算术处理电路中的每个来保持神经元的第一值,对所述神经元要执行算术处理,所述神经元是通过对计算目标的优化问题进行转换而获得的伊辛模型的神经元之一;
通过所述算术处理电路中的每个,执行所述算术处理以基于所述伊辛模型的信息和关于目标神经元的信息来确定是否允许所述第一值的更新,所述算术处理电路的数量小于所述神经元的数量;
通过所述优化装置中包括的控制电路,在使所述算术处理电路中的一部分执行针对作为所述神经元中的一部分的部分神经元群组的所述算术处理的同时,在所述算术处理电路之中的第一算术处理电路中设置要用于针对神经元之中除所述部分神经元群组以外的第一神经元的所述算术处理的信息,所述第一算术处理电路的算术处理是被无效的;
通过所述控制电路,使所述算术处理电路中的所述部分之中的第二算术处理电路来使得所述算术处理无效;
通过所述控制电路,使所述第一算术处理电路开始针对所述第一神经元的所述算术处理;
通过所述优化装置中包括的更新神经元选择电路,从所述部分神经元群组之中的一个或更多个更新允许神经元中选择所述目标神经元,所述一个或更多个更新允许神经元被确定成允许被更新;以及
通过所述更新神经元选择电路,更新由所述算术处理电路中的所述部分保持的神经元的值之中的所述目标神经元的值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018221358A JP7108186B2 (ja) | 2018-11-27 | 2018-11-27 | 最適化装置及び最適化装置の制御方法 |
JP2018-221358 | 2018-11-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111221248A true CN111221248A (zh) | 2020-06-02 |
CN111221248B CN111221248B (zh) | 2022-11-01 |
Family
ID=68069514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910988535.7A Active CN111221248B (zh) | 2018-11-27 | 2019-10-17 | 优化装置及优化装置的控制方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11521049B2 (zh) |
EP (1) | EP3660746A1 (zh) |
JP (1) | JP7108186B2 (zh) |
CN (1) | CN111221248B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7137064B2 (ja) * | 2018-10-19 | 2022-09-14 | 富士通株式会社 | 最適化装置及び最適化装置の制御方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103646283A (zh) * | 2013-11-21 | 2014-03-19 | 中国民航大学 | 能量可控的连续Hopfield神经网络及优化求解方法 |
CN106203616A (zh) * | 2015-05-04 | 2016-12-07 | 富士通株式会社 | 神经网络模型训练装置和方法 |
JP2017219952A (ja) * | 2016-06-06 | 2017-12-14 | 富士通株式会社 | イジング装置及びイジング装置の制御方法 |
CN108027545A (zh) * | 2015-09-15 | 2018-05-11 | 日本电信电话株式会社 | 伊辛模型的量子计算装置 |
CN108140146A (zh) * | 2015-08-19 | 2018-06-08 | D-波系统公司 | 用于使用绝热量子计算机进行机器学习的离散变分自动编码器系统和方法 |
CN108369668A (zh) * | 2015-10-16 | 2018-08-03 | D-波系统公司 | 用于创建和使用量子玻尔兹曼机的系统和方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0822446A (ja) | 1994-07-11 | 1996-01-23 | Matsushita Electric Ind Co Ltd | ニューラルネットワーク回路 |
JP3172352B2 (ja) | 1993-12-27 | 2001-06-04 | 松下電器産業株式会社 | ニューラルネットワーク回路 |
JP2001188767A (ja) | 1999-12-28 | 2001-07-10 | Fuji Xerox Co Ltd | ニューラルネットワーク演算装置及びニューラルネットワークの演算方法 |
JP6691297B2 (ja) * | 2016-07-13 | 2020-04-28 | 富士通株式会社 | 情報処理装置、イジング装置及び情報処理装置の制御方法 |
-
2018
- 2018-11-27 JP JP2018221358A patent/JP7108186B2/ja active Active
-
2019
- 2019-09-25 EP EP19199500.0A patent/EP3660746A1/en not_active Withdrawn
- 2019-09-27 US US16/584,994 patent/US11521049B2/en active Active
- 2019-10-17 CN CN201910988535.7A patent/CN111221248B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103646283A (zh) * | 2013-11-21 | 2014-03-19 | 中国民航大学 | 能量可控的连续Hopfield神经网络及优化求解方法 |
CN106203616A (zh) * | 2015-05-04 | 2016-12-07 | 富士通株式会社 | 神经网络模型训练装置和方法 |
CN108140146A (zh) * | 2015-08-19 | 2018-06-08 | D-波系统公司 | 用于使用绝热量子计算机进行机器学习的离散变分自动编码器系统和方法 |
CN108027545A (zh) * | 2015-09-15 | 2018-05-11 | 日本电信电话株式会社 | 伊辛模型的量子计算装置 |
CN108369668A (zh) * | 2015-10-16 | 2018-08-03 | D-波系统公司 | 用于创建和使用量子玻尔兹曼机的系统和方法 |
JP2017219952A (ja) * | 2016-06-06 | 2017-12-14 | 富士通株式会社 | イジング装置及びイジング装置の制御方法 |
Non-Patent Citations (1)
Title |
---|
BEHRAZ VATANKHAHGHADIM: "《A Fully-Connected Boltzmann Machine with Virtual FPGAs》", 《谷歌学术》 * |
Also Published As
Publication number | Publication date |
---|---|
US11521049B2 (en) | 2022-12-06 |
JP7108186B2 (ja) | 2022-07-28 |
CN111221248B (zh) | 2022-11-01 |
JP2020087009A (ja) | 2020-06-04 |
EP3660746A1 (en) | 2020-06-03 |
US20200167635A1 (en) | 2020-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lin et al. | New benchmark algorithm for hybrid flowshop scheduling with identical machines | |
WO2015076084A1 (en) | Method and controller for controlling operation of machine | |
US20190244098A1 (en) | Optimization system, optimization apparatus, and optimization system control method | |
Peruvemba et al. | RL-guided runtime-constrained heuristic exploration for logic synthesis | |
JP2020064535A (ja) | 最適化装置及び最適化装置の制御方法 | |
JP2021033341A (ja) | 最適化装置および最適化装置の制御方法 | |
Sýkora et al. | GRANITE: A graph neural network model for basic block throughput estimation | |
JP7283318B2 (ja) | 最適化装置、最適化プログラム、及び最適化方法 | |
CN111221248B (zh) | 优化装置及优化装置的控制方法 | |
CN111832693B (zh) | 神经网络层运算、模型训练方法、装置及设备 | |
Osorio et al. | A BF16 FMA is all you need for DNN training | |
US20200327393A1 (en) | Optimization system and control method for optimization system | |
Dülger et al. | Memory coalescing implementation of Metropolis resampling on graphics processing unit | |
CN111459548B (zh) | 双加载指令 | |
Cortés-Antonio et al. | Design and implementation of differential evolution algorithm on FPGA for double-precision floating-point representation | |
Omland et al. | Exploiting mixed-precision arithmetics in a multilevel Monte Carlo approach on FPGAs | |
Pandey et al. | Scalable deep learning-based microarchitecture simulation on GPUs | |
Danopoulos et al. | TransAxx: Efficient Transformers with Approximate Computing | |
Ortega-Zamorano et al. | Implementation of the C-Mantec neural network constructive algorithm in an arduino UNO microcontroller | |
JP7004937B2 (ja) | 最適化装置、最適化装置の制御方法および最適化装置の制御プログラム | |
Wang et al. | RMLIM: A runtime machine learning based identification model for approximate computing on data flow graphs | |
US20240126971A1 (en) | Layout design system using deep reinforcement learning and learning method thereof | |
US20230222376A1 (en) | Dynamic quantum compute insertion | |
US20200364314A1 (en) | Method and apparatus with system verification based on reinforcement learning | |
US20240280946A1 (en) | Fast surrogate-based optimization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |