一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

类神经网络系统及其操作方法与流程

2021-12-17 19:41:00 来源:中国专利 TAG:


1.本公开文件涉及一种类神经网络,特别涉及多段式的类神经网络系统。


背景技术:

2.深度学习或是机器学习的领域中,大多以类神经网络(neural network)为系统架构,其中包含多种不同的数学运算,以获得目标数据。为了加强类神经网络的运算效能,会将一组类神经网络分为前端及后端的类神经网络,或者将多组类神经网络相互集结成一个网络,以相应操作。但是,当目标数据变更时,不同端或是不同组的类神经网络必须重新训练,或者直接替换成新的类神经网络。因此,多段式的类神经网络系统难以维护,以致成本增加。


技术实现要素:

3.本公开文件提供一种类神经网络系统,包含至少一存储器以及至少一处理器。存储器用以存储前端类神经网络、编码类神经网络、解码类神经网络及后端类神经网络。处理器用以执行存储器中的前端类神经网络、编码类神经网络、解码类神经网络及后端类神经网络,以执行以下操作:利用前端类神经网络输出特征数据;利用编码类神经网络压缩特征数据,并输出对应特征数据的压缩数据;利用解码类神经网络解压缩压缩数据,并输出对应特征数据的解压缩数据;以及利用后端类神经网络根据解压缩数据执行相应的操作。
4.本公开文件亦提供一种类神经网络系统的操作方法,包含:利用前端类神经网络根据原始数据执行初阶任务,并输出对应原始数据的特征数据;利用至少一编码类神经网络压缩特征数据,并输出对应特征数据的压缩数据;利用至少一解码类神经网络解压缩压缩数据,并输出对应特征数据及至少一进阶任务的解压缩数据;以及利用至少一后端类神经网络根据解压缩数据执行进阶任务,并输出目标数据。
附图说明
5.图1示出根据本公开文件的一实施例的类神经网络架构示意图。
6.图2a示出根据本公开文件的一实施例的类神经网络系统的方框图。
7.图2b示出根据图2a的类神经网络系统的架构示意图。
8.图2c示出根据本公开文件的一实施例的类神经网络系统的方框图。
9.图3a示出根据本公开文件的一实施例的类神经网络系统的方框图。
10.图3b示出根据图3a的类神经网络系统的架构示意图。
11.图3c示出根据图3a及图3b的类神经网络系统的架构示意图。
12.附图标记说明:
13.100:类神经网络
14.110:输入层
15.120:隐藏层
16.130:输出层
17.n:神经元
18.200:类神经网络系统
19.201:第一处理器
20.202:第二处理器
21.203:第三处理器
22.210:前端模块
23.220:连接模块
24.221:编码器
25.222:解码器
26.230:后端模块
27.d0:原始数据
28.d1:特征数据
29.d2:压缩数据
30.d3:解压缩数据
31.d3a:解压缩数据
32.d3b:解压缩数据
33.d3n:解压缩数据
34.d4:目标数据
35.d4a:目标数据
36.d4b:目标数据
37.d4n:目标数据
38.m1:第一存储器
39.m2:第一存储器
40.m3:第一存储器
41.s1:第一装置
42.s2:第二装置
43.t1:第一装置
44.t2:第二装置
45.t2a:第二装置
46.t2b:第二装置
47.t2n:第二装置
48.t3:第三装置
49.t3a:第三装置
50.t3b:第三装置
51.t3n:第三装置
52.300:类神经网络系统
53.301:第一处理器
54.302:第二处理器
55.303:第三处理器
56.310:前端模块
57.320:连接模块
58.321:编码器
59.322:解码器
60.330:后端模块
具体实施方式
61.下文举实施例配合说明书附图作详细说明,以更好地理解本公开文件的实施方式,但所提供的实施例并非用以限制本公开所涵盖的范围,而结构操作的描述非用以限制其执行的顺序,任何由元件重新组合的结构,所产生具有均等技术效果的装置,皆为本公开所涵盖的范围。此外,根据业界的标准及惯常做法,附图仅以辅助说明为目的,并未依照原尺寸作图,实际上各种特征的尺寸可任意地增加或减少以便于说明。下述说明中相同元件将以相同的符号标示来进行说明以便于理解。
62.此外,在本公开文件中所使用的用词“包含”、“包括”、“具有”、“含有”等等,均为开放性的用语,即意指“包含但不限于”。此外,本文中所使用的“及/或”,包含相关列举项目中一或多个项目的任意一个以及其所有组合。
63.于本公开文件中,当一元件被称为“连接”或“耦接”时,可指“电性连接”或“电性耦接”。“连接”或“耦接”亦可用以表示二或多个元件间相互搭配操作或互动。此外,虽然本文中使用“第一”、“第二”、

等用语描述不同元件,该用语仅是用以区别以相同技术用语描述的元件或操作。除非上下文清楚指明,否则该用语并非特别指称或暗示次序或顺位,亦非用以限定本发明。
64.深度学习(deep learning)的架构中,是以多层(layer)网络建立而成的类神经网络(neural network),其中第一层的输出为第二层的输入,且第二层的输出为第三层的输入,以此类推。每一层网络具有多个神经元(neuron),且相邻层网络中的神经元相互耦接,为端到端(end-to-end)的架构。某一层的神经元用以接收上一层网络中的神经元的数据,经过相应的计算后并输出数据至下一层网络中的神经元。
65.建立一个能用以实现智能计算的类神经网络,须先对类神经网络进行训练(training)。通过已知的数据输入至此类神经网络(或称为训练模型),使训练模型能够计算出稳定的类神经网络参数以及完成各个神经元的连接设置,并获得合理的结果。当训练模型已训练完成后,其中的类神经网络参数及其架构被存储为另一个类神经网络(或称为推论模型),用以对未知的数据推论(interference)出答案。
66.请参阅图1,为根据本公开文件的实施例的类神经网络架构示意图。
67.类神经网络100包含输入层(input layer)110、隐藏层(hidden layer)120以及输出层(output layer)130。输入层110用以接收多个非线性的原始数据,并输出数据至隐藏层120。隐藏层120为主要计算数据及类神经网络参数的部分,并输出数据至输出层130。输出层130用以分析及权衡接收到的数据,并输出结果(即,目标数据)。亦可以理解为,整个类神经网络100具有至少一个任务,综合所有任务的目的是得到目标数据,其中通过隐藏层120执行此任务,并由输出层130获得任务的答案。
68.输入层110、隐藏层120及输出层130分别包含至少一个网络层(layer)(图中未示),且每一个网络层中包含多个神经元n。如图1所示的隐藏层120中,包含第n层及第n 1层的网络层,且数据是由第n层的网络层输出至第n 1层的网络层,其中n为正整数。在本公开文件的各实施例中,网络层的数量、网络层的架构与顺序以及每一层网络层中的神经元n数量仅为示例说明,不以此为限。
69.一些实施例中,类神经网络100为深度置信网络(deep belief network;dbn)的架构,其隐藏层120包含由多个受限波尔兹曼机(restricted boltzmann machine;rbm)(图中未示)建构的网络层。一些实施例中,类神经网络100为卷积神经网络(convolutional neural network;cnn)的架构,其隐藏层120包含多个卷积层(convolutional layer)(图中未示)、池化层(pooling layer)(图中未示)及全连结层(fully connected layer)(图中未示),其中卷积层、池化层及全连结层中至少一者包含至少一个网络层。本公开文件的实施例中,类神经网络100是以cnn架构为示例说明,但不以此为限。
70.举例来说,类神经网络100为已经由大量已知动物图片训练完成的cnn架构下的推论模型,用以判断任一张图片中的动物种类。由输入的原始数据(例如一张图片)至输出的目标数据(例如此张图片中所出现的动物名称),类神经网络100依序包含输入层110、隐藏层120以及输出层130,其中隐藏层120又依序包含第一卷积层、第一池化层、第二卷积层、第二池化层、第一全连结层及第二全连结层。第一卷积层、第一池化层、第二卷积层、第二池化层、第一全连结层及第二全连结层中的每一者又称为区块(block),每一个区块包含至少一个网络层且分别具有各自的计算功能。
71.继续说明上述的例子,第一卷积层利用第一卷积核(kernel)获取输入图片的第一特征(feature),例如获得图片中动物图案的边界。接着,第一池化层接收由第一卷积层输出的数据,对此数据降采样(down sampling),并输出至第二卷积层。第二卷积层利用第二卷积核获取所接收的数据的第二特征,例如获得动物图案中的五官形状。第二池化层接收由第二卷积层输出的数据,对此数据降采样,并输出至第一全连结层。第一全连结层及第二全连结层依序并分别对所接收的数据进行平坦化,并输出数据至输出层。最后,通过输出层对已获取第一特征及第二特征的图片执行分类与判断,并输出图片中的动物名称。
72.请参阅图2a,类神经网络系统200包含前端模块210、连接模块220及后端模块230。
73.前端模块210、连接模块220以及后端模块230为各自独立的类神经网络,并分别存储于对应的存储器中。一些实施例中,前端模块210又称为前端类神经网络。一些实施例中,连接模块220又称为中端类神经网络。一些实施例中,后端模块230又称为后端类神经网络。
74.一些实施例中,用以执行上数多个类神经网络操作的电脑程序码(code)或指令(instruction)以及前端模块210、连接模块220以及后端模块230可以存储于一个以上的存储器中,包含第一存储器m1、第二存储器m2及第三存储器m3(示出于图2c)中的至少一者。处理器,例如第一处理器201、第二处理器202或第三处理器203(示出于图2c),用以执行编码于对应的存储器中的电脑程序码或指令,以使类神经网络系统200执行如本公开文件的各实施例中相应的操作。
75.一些实施例中,前端模块210、连接模块220以及后端模块230分别为具有不同任务的相异的类神经网络(例如图1所示的类神经网络100),并以前述的cnn架构为示例说明。为了附图简洁,图2a未另外示出各个模块中的输入层、隐藏层、隐藏层中的区块(例如卷积层)
或是输出层,且图2a亦未另外示出对应的网络层或其神经元。
76.一些实施例中,前端模块210以及后端模块230为相同的类神经网络架构。一些实施例中,前端模块210以及后端模块230为不同的类神经网络架构,包含vgg16架构、densenet 161架构、faster r-cnn架构及yolo架构中的至少二者。如此一来,通过不同模块对应不同的类神经网络架构来实现不同的任务(如下述说明),借此达到最佳化的推论效率以及准确度。
77.相同或不同架构的前端模块210及后端模块230之间通过连接模块220以数据传输方式耦接二者,借此减少整个类神经网络系统200的存储器使用量及其推论时间(inference time)。
78.前端模块210、连接模块220及后端模块230中至少一者的网络层数量相异于另一者的网络层数量。因此,前端模块210、连接模块220及后端模块230的运算权重不相同。
79.一些实施例中,前端模块210与后端模块230的区块数量相同,且每一个区块对应的网络层数量也相同。一些实施例中,前端模块210、连接模块220以及后端模块230中任二者的区块及其对应的网络层数量皆不相同。一些实施例中,前端模块210的网络层数量小于后端模块230的网络层数量。一些实施例中,连接模块220的网络层数量小于前端模块210的网络层数量,且小于后端模块230的网络层数量。
80.请一并参阅图2b,为根据图2a的类神经网络系统200的架构示意图,并举例说明类神经网络系统200的运行。图2b中的类神经网络系统200的架构相似于图2a所示者,因此图2b不另外示出或标示部分相同的元件。此外,为了附图简洁,图2b亦未另外示出各个模块中的输入层、隐藏层、隐藏层中的区块或是输出层,且图2b也未示出对应的网络层及其神经元。
81.前端模块210存储于第一存储器m1,并运行于第一处理器201中。第一处理器201耦合于第一存储器m1,并与第一存储器m1一同运行于第一装置s1中。第一处理器201用以执行编码于第一存储器m1中的前端模块210,用以利用前端模块210执行初阶任务,并输出特征数据d1至连接模块220。
82.一些实例中,前端模块210的输入层用以接收原始数据d0,并输出数据至前端模块210的隐藏层。前端模块210的隐藏层用以接收数据并执行初阶任务,也就是获取此数据的初阶特征,并输出至前端模块210的输出层。接着,前端模块210的输出层用以判断初阶任务的答案,即特征数据d1,并将特征数据d1输出至连接模块220。
83.连接模块220包含编码器(encoder)221及解码器(decoder)222,分别为连接模块220的隐藏层中的两个相邻的区块,用以改变数据的维度。部分的连接模块220(例如,编码器221)与前端模块210一同存储于第一存储器m1,并运行于第一处理器201中。部分的连接模块220(例如即,解码器222)与后端模块230一同存储于第二存储器m2,并运行于第二处理器202中。
84.连接模块220的隐藏层中的其中一个区块,即编码器221,运行于第一处理器201中。第一处理器201更用以执行编码于第一存储器m1中的编码器221,用以利用编码器221降低特征数据d1的维度,并输出压缩数据d2至解码器222。一些实施例中,编码器221为独立的类神经网络,又称为编码类神经网络。
85.连接模块220的隐藏层中的其中另一个区块,即解码器222,运行于第二处理器202
中。第二处理器202耦合于第二存储器m2,并与第二存储器m2一同运行于第二装置s2中。第二处理器202用以执行编码于第二存储器m2中的解码器222,用以利用解码器222提高压缩数据d2的维度,并输出解压缩数据d3至后端模块230。一些实施例中,解码器222为相异于编码器221的另一个独立的类神经网络,又称为解码类神经网络。
86.一些实例中,连接模块220的输入层用以接收由前端模块210输出的特征数据d1,并输出数据至连接模块220的隐藏层。隐藏层中的编码器221用以压缩特征数据d1,并产生被压缩的特征数据d1,即压缩数据d2。隐藏层中的解码器222用以接收压缩数据d2,且解码器222根据后端模块230须执行的进阶任务解压缩此压缩数据d2,并产生被解压缩的数据,即解压缩数据d3。解码器222更用以将解压缩数据d3输出至连接模块230的输出层。接着,连接模块220的输出层用以输出解压缩数据d3至后端模块230。
87.一些实施例中,编码器221以及解码器222皆存储于相同的存储器中,并运行于相同的处理器中。此存储器可以是第一存储器m1或第二存储器m2,且此处理器可以是第一处理器201或第二处理器202。此处理器与此存储器一同运行于相同的装置中。此装置可以是第一装置s1或第二装置s2。
88.一些实施例中,编码器221以及解码器222是以自动编码器(autoencoder)来实现。编码器221以及解码器222能根据初阶数据与进阶任务来学习如何产生对应的压缩数据d2以及解压缩数据d3。一些实施例中,自动编码器的学习方法为微调(fine-tuning)。如此一来,通过压缩及解压缩数据,能减少压缩数据d2或解压缩数据d3在对应的输入及输出装置中数据维度不匹配的状况,且通过微调的学习方式可以减少训练过程中的类神经网络参数。
89.一些实施例中,特征数据d1及压缩数据d2具有不同的数据维度。亦可理解为,压缩数据d2相较于特征数据d1具有不同的数据量大小。一些实施例中,特征数据d1的数据维度大于压缩数据d2的数据维度。举例来说,特征数据d1是二维度的矩阵数据。编码器221用以将二维度的矩阵数据压缩成一维度的阵列数据,使压缩数据d2的数据维度小于特征数据d1的数据维度。或者可以理解为,特征数据d1是具有1024p分辨率的图片;编码器221用以将此图片压缩成具有480p分辨率的图片,即压缩数据d2。因此,编码器221与解码器222之间数据的传输维度相同,即压缩数据d2的数据维度。因此,能减少前端模块210与后端模块230之间传递的数据量,进而加快数据传递的时间。
90.一些实施例中,特征数据d1及解压缩数据d3具有不同的数据维度。一些实施例中,特征数据d1的数据维度大于解压缩数据d3的数据维度。继续上述的例子,解码器222用以将压缩数据d2解压缩成具有720p分辨率的图片,即解压缩数据d3。同理,能减少前端模块210与后端模块230之间传递的数据量,进而加快数据传递的时间。
91.一些实施例中,特征数据d1及解压缩数据d3具有相同的数据维度。例如,特征数据d1是具有1024p分辨率的图片;编码器221用以将此图片压缩成具有720p分辨率的图片,即压缩数据d2;解码器222用以将压缩数据d2解压缩成具有1024p分辨率的图片,即解压缩数据d3。因此,当解码器222后置的后端模块230被抽换成新的后端模块230(另一个类神经网络)时,能通过改变解码器222对于提高数据维度的操作,以因应新的后端模块230。如此一来,解码器222不需与后端模块230一同被抽换。
92.如图2a所示,后端模块230以及部分的连接模块220(例如,解码器222)存储于第二
存储器m2,并运行于第二处理器202中。第二处理器202更用以执行编码于第二存储器m2中的后端模块230,用以利用后端模块230执行进阶任务,并输出目标数据d4,进而显示整个类神经网络系统200的推论目的的答案。
93.一些实例中,后端模块230的输入层用以接收由解压缩数据d3,并输出数据至后端模块230的隐藏层。后端模块230的隐藏层用以接收数据并执行进阶任务,也就是获取此数据的进阶特征,并输出至后端模块230的输出层。接着,后端模块230的输出层用以判断进阶任务的答案,即目标数据d4,并将目标数据d4输出至其他装置的显示器(图中未示)。
94.后端模块230所执行的进阶任务是关联于前端模块210所执行的初阶任务。因此,目标数据d4是对解压缩数据d3进行数据处理(例如,卷积)而得到的数据。换言之,目标数据d4包含原始数据d0的初阶特征以及进阶特征。因此,后端模块230能根据初阶特征及进阶特征用以执行进阶任务中对应的操作,并产生目标数据d4。
95.请参阅图2c,本公开文件的一实施例的类神经网络系统200包含前端模块210、连接模块220及后端模块230。图2c所示的类神经网络系统相似于图2a所示者,因此不另赘述相同处。
96.相较于图2a,在图2c所示的实施例中,后端模块230存储于另一个独立的存储器(即,第三存储器m3)中,并运行于另一个独立的处理器(即,第三处理器203)中。
97.如图2c所示,部分的连接模块220(例如,解码器222)存储于第二存储器m2,并运行于第二处理器202中。后端模块230存储于第三存储器m3,并运行于第三处理器203中。
98.第二处理器202与第二存储器m2一同运行于相同的装置中,例如图2b中的第一装置s1、第二装置s2及第三装置(图中未示)中的一者。第三处理器203与第三存储器m3一同运行于相同的另一个装置中,例如图2b中的第一装置s1、第二装置s2及第三装置中的另一者。
99.一些实施例中,前端模块210或后端模块230的隐藏层是以特征抽取器(feature extractor)实现,其中包含多个卷积层、标准化层以及线性整流层(convolutional-batch normalization-relu)单元依序堆叠的架构,借此对图片具有不同程度的特征提取。
100.在图2a及图2b所示的实施例中,类神经网络系统200是用以推论某一张图片并获得某一个答案,例如能够得到图片中出现的所有动物名称。
101.如图2b所示,输入至类神经网络系统200的原始数据d0为一张包含背景及猫咪的图片。类神经网络系统200通过执行初阶任务及进阶任务,依序获取对应的初阶特征以及进阶特征,借此分辨原始数据d0中出现的动物种类,并以中文的俗名显示或是于原始图片中标记最后推论得到的答案,即目标数据d4所示的“猫”或是图3b所示图片的答案。
102.亦可理解为,类神经网络系统200将一个推论过程拆分为多段的类神经网络依序执行,其中每段的类神经网络的架构类型可以相同或不同。相较于原本的类神经网络架构,被拆分的类神经网络(例如,前端模块210或后端模块230),已经移除了隐藏层片段。通过中间的连接模块220,架构多个被拆分的类神经网络所共享的隐藏层,借此合并成整个类神经网络系统200。
103.在推论的操作中,首先通过前端模块210执行初阶任务,以获得图片中各图案的轮廓(即,初阶特征);接着通过后端模块230执行进阶任务,以获得各图案中的动物五官(即,进阶特征),借此推论出最后的答案(即,“猫”)。
104.如上所述,类神经网络系统200将推论答案的过程拆分为多阶段的任务,通过降低
单一运算负载的方式提升各个类神经网络运算的效能以及准确度,进而增加类神经网络系统200整体的推论效率。
105.一些实施例中,类神经网络系统200因应开发或维护需求,会变更原始的推论目的。例如,类神经网络系统200的推论目的由推论出图片出现的所有动物名称新增或更改为推论出图片出现的所有植物名称。由于前端模块210及后端模块230分别执行不同的任务,且这些任务皆关联于识别图片中的图案。当推论目的改变时,通过新增或将前端模块210或后端模块230替换为另一个用以识别植物特征的类神经网络,可以仅重新训练两个任务之间用以压缩及解压缩特征数据d1的连接模块220,而不需对应重新训练整个类神经网络系统200。
106.举例来说,初阶任务依然为获取图片中各个图案的轮廓,进阶任务则由获取图片中动物的特征变更为获取图片中的植物的特征。此时,执行进阶任务的后端模块230可以不用重新训练。开发者或维护者只需以另一个用以识别植物特征(例如,提取植物轮廓特征)的类神经网络替代前端模块210,并对编码器221及/或解码器222重新训练,借此使压缩数据d2及解压缩数据d3包含植物图案的进阶特征。
107.其他例子中,类神经网络系统200的推论目的由推论出图片出现的所有动物名称更改为推论出图片出现的所有动物对应的皮毛颜色。此时,由于前端模块210及后端模块230分别执行不同的任务,且初阶任务涉及识别图案轮廓的基本操作,可以仅重新训练后端模块230以及连接模块220,而不需对应重新训练整个类神经网络系统200。
108.举例来说,初阶任务依然为获取图片中各个图案的轮廓,进阶任务则由获取图片中动物的特征变更为获取图片中的动物的特征、对应的皮毛特征以及色彩信息。此时,执行初阶任务的前端模块210可以不用重新训练,开发者或维护者只需对编码器221及/或解码器222以及后端模块230重新训练,借此使压缩数据d2及解压缩数据d3包含前述变更后的进阶特征,并使后端模块230对应变更进阶任务的操作。
109.另外,由于前端模块210、连接模块220以及后端模块230分别运行于不同的处理器中,且对应于不同的存储器,能够分散类神经网络系统200使用的硬件资源。如此一来,能有效减少整个类神经网络系统200运行时的存储器容量。特别是当推论目的改变时,如上述可知,类神经网络系统200可以仅于对应的装置中重新训练部分的模块,借此能够大幅减少训练时生成的类神经网络参数及其对应使用的存储器资源,进而提升训练所需的运算时间。
110.一些实施例中,第一装置s1以及第二装置s2为相异的硬件装置,包含移动装置(如,智能手机或平板)、云端服务器或是数据库服务器等,不以此为限。
111.综上所述,当类神经网络系统200改变推论目的时,不需要对整个系统重新训练,而是重新训练设置于不同装置中的连接模块220及/或后端模块230。因此,类神经网络系统200在开发或是维护上,皆具有良好的使用弹性及效率,并能够降低训练时间及成本。
112.请参阅图3a,本公开文件的另一实施例的类神经网络系统300包含前端模块310、连接模块320及多个后端模块330。
113.前端模块310、连接模块320及后端模块330为各自独立的类神经网络,并分别存储于对应的存储器中。一些实施例中,前端模块310又称为前端类神经网络。一些实施例中,连接模块320又称为中端类神经网络。一些实施例中,后端模块330又称为后端类神经网络。
114.一些实施例中,用以执行上数多个类神经网络操作的电脑程序码或指令以及前端
模块310、连接模块320以及后端模块330可以存储于一个以上的存储器中,包含第一存储器m1、第二存储器m2及多个第三存储器m3中的至少一者。处理器,例如第一处理器301、第二处理器302或任一个第三处理器303,用以执行编码于对应的存储器中的电脑程序码或指令,以使类神经网络系统300执行如本公开文件的各实施例中相应的操作。
115.一些实施例中,前端模块310、连接模块320及后端模块330分别为具有不同任务的类神经网络(例如图1所示的类神经网络100),并以前述的cnn架构为示例说明。图3a所示的类神经网络系统相似于图2a所示者,因此不另赘述相同处。为了附图简洁,图3a未另外示出各个模块中的输入层、隐藏层、隐藏层中的区块或是输出层,且图3a亦未另外示出对应的网络层或其神经元。
116.一些实施例中,前端模块310以及后端模块330中至少一者为相同的类神经网络架构。一些实施例中,前端模块310以及后端模块330中至少一者为不同的类神经网络架构,包含vgg16架构、densenet 161架构、faster r-cnn架构及yolo架构中的至少二者,其中架构的类型是针对各自的任务而设计,借此达到良好推论准确度。
117.一些实施例中,连接模块320是以自动编码器来实现,用以学习而调整连接模块320的隐藏层大小,以连结不同或相同架构的前端模块310及多个后端模块330,借此减少整个类神经网络系统300的存储器使用量与推论时间。
118.一些实施例中,后端模块330中每一者的网络层数量相同。一些实施例中,后端模块330中至少二者的网络层数量不相同。因此,前端模块310与后端模块330或是各个后端模块330之间具有不同的运算权重,并用以同时执行对应的不同的任务。
119.请一并参阅图3b,为根据图3a的类神经网络系统300的架构示意图,并举例说明类神经网络系统300的运行。图3b中的类神经网络系统的架构相似于图3a所示者,因此图3b不另外示出或标示部分相同的元件。图3b所示的类神经网络系统部分相似于图2b所示者,因此不另赘述相同处。此外,为了附图简洁,图3b亦未另外示出各个模块中的输入层、隐藏层、隐藏层中的区块或是输出层,且图3b也未示出对应的网络层及其神经元。
120.连接模块320包含编码器321及多个解码器322,为隐藏层中的相邻的区块,其中多个解码器322为相互平行的区块,用以将数据改变成不同或相同的维度。一些实施例中,编码器321及多个解码器322分别为独立的类神经网络。一些实施例中,编码器321又称为编码类神经网络,且解码器322又称为解码类神经网络。
121.编码器321与前端模块310一同运行于第一处理器301中。第一处理器301耦合于第一存储器m1,并与第一存储器m1一同运行于第一装置t1中。第一处理器301用以执行编码于第一存储器m1中的编码器321,用以降低特征数据d1的维度,并输出压缩数据d2至各个解码器322。
122.一个解码器322对应一个或多个后端模块330,且解码器322运行于第二处理器302中。第二处理器302耦合于第二存储器m2,并运行于不同于第一装置t1的第二装置t2中。第二处理器302用以执行编码于第二存储器m2中的解码器322,用以根据对应的后端模块330的进阶任务而提高压缩数据d2的维度,并输出对应的解压缩数据d3至对应的后端模块330。图3a中的第二处理器302及解码器322的数量仅为示例说明,可以是多个第二处理器302及对应的解码器322(如图3b所示的解码器a、解码器b或解码器n),并分别运行于多个第二装置t2(如图3b所示的第二装置t2a、t2b或t2n)中。
123.一些实施例中,前端模块310以及编码器321皆安装于芯片,并运行于第一装置t1(例如,服务器)中。因此,共同的特征数据d1会存放于此芯片中,并用以传输至第二装置t2中。如此一来,对于类神经网络系统300的开发者而言,可以将前置作业统一于芯片中研发,再依照后置对应的进阶任务对应输出压缩的特征数据d1。因此,方便修改前置作业的初阶任务,例如由影像识别变更为声音识别。后置对应的进阶任务也因此具有多种可能的组合,借此实现良好应用弹性。
124.另外,每一个后端模块330运行于对应的第三处理器303中。第三处理器303耦合于第三存储器m3,并与第三存储器m3一同运行于不同于第一装置t1以及第二装置t2的第三装置t3中。每一个第三处理器303用以执行编码于对应的第三存储器m3中的后端模块330,用以执行相应的操作。例如,后端模块a运行于第三处理器a中,且第三处理器a耦合于第三存储器a,并与第三存储器m3a一同运行于第三装置t3a中。第三处理器a用以执行编码于第三存储器m3a中的后端模块a。本公开文件实施例中的第三处理器303及第三存储器m3的数量仅为示例说明,不以此为限。
125.每一个后端模块303对应一个解码器322,用以执行对应的操作。举例来说,如图3b所示,解码器a运行于第二装置t2a中,后端模块a运行于第三装置t3a中,且解码器a用以根据后端模块a的进阶任务产生解压缩数据d3a;解码器b运行于第二装置t2b中,后端模块b运行于第三装置t3b中,且解码器b用以根据后端模块b的进阶任务产生解压缩数据d3b;以及解码器n运行于第二装置t2n中,后端模块n运行于第三装置t3n中,且解码器n用以根据后端模块n的进阶任务产生解压缩数据d3n,其中n为正整数,在此不限制实际的数量。第二装置t2a、第二装置t2b及第二装置t2n为不同的硬件装置。第三装置t3a、第三装置t3b及第三装置t3n为不同的硬件装置,且与第二装置t2及第一装置t1相互耦接,因此串接形成物联系统(internet of thing;iot)。
126.一些实施例中,如图3c所示,第一装置t1为数据库服务器。第二装置t2a、第二装置t2b以及第二装置t2n为架设于使用者端的服务器,且为各自独立的服务器。第三装置t3a及第三装置t3b皆为智能手机,且为使用者端持有的装置,用以显示对应的目标数据d4a与d4b。第三装置t3n为无线装置(如,蓝牙接收器或具wi-fi元件的显示装置),且为使用者端持有的装置,用以输出或显示对应的目标数据d4n。
127.每一个解压缩数据d3分别具有不同的数据维度,且压缩数据d2的数据维度小于每一个解压缩数据d3的数据维度。每一个解压缩数据d3的数据维度的大小取决于对应的进阶任务,借此于对应的后端模块330中达到良好的推论准确度。
128.后端模块330中每一者用以执行各自的进阶任务,以获取对应的解压缩数据d3的进阶特征,并输出对应的目标数据d4,以显示整个类神经网络系统300的多个推论答案。
129.一些实施方式中,当第一装置t1、第二装置t2或第三装置t3b中的任二者之间信号传递的品质低时,例如低信号频宽或受电磁干扰,具有大存储容量的数据在装置之间的传输可能会不稳定。
130.相较于上述的实施方式,在本公开文件的实施例中,数据,例如包含,压缩数据d2或解压缩数据d3,在不同装置之间因其存储容量(即,数据维度)经连接模块320调整而降低,借此具有良好的传输稳定性。
131.在图3a至图3c所示的实施例中,类神经网络系统300是用以推论某一张图片并获
得多个答案。
132.如图3b所示,输入至类神经网络系统300的原始数据d0为一张包含背景及猫的图片。类神经网络系统300通过执行初阶任务及多个进阶任务,依序获取对应的初阶特征以及多个进阶特征,借此分辨此张图片中出现的动物,并同时以不同的方式显示最后的答案,包含动物种类的中文俗名、标记出原始图片中的动物或是获取出原始图片中的动物。
133.一些实施例中,每一个进阶任务皆为独立的且互不相关的任务。一些实施例中,每一个进阶任务皆为相关的任务。例如,如图3b所示,后端模块a用以获取解压缩数据d3a的第一进阶特征,并推论得到“猫”的答案;后端模块b用以获取解压缩数据d3b的第二进阶特征,并推论得到圈选图片中出现的动物的答案,如图3b所示的目标数据d4b;后端模块n用以获取解压缩数据d3n的第n进阶特征,推论得到图片中出现的动物图像的答案,如图3b所示的目标数据d4n。
134.亦可理解为,类神经网络系统300将一个推论过程拆分为多个类神经网络依序且同时执行。首先通过前端模块310执行初阶任务,以获得图片中各图案的轮廓(即,初阶特征);接着同时通过多个平行的后端模块330分别执行对应进阶任务,以获得包含各图案中的动物五官(即,第一进阶特征)、图案中的动物轮廓(即,第二进阶特征)以及图案中的动物轮廓与背景轮廓(即,第n进阶特征),借此推论出最后的答案(即,如包含图3b所示的目标数据d4a、d4b及d4n)。
135.每一个后端模块330须执行的进阶任务皆关联于初阶任务。或者可以理解为,每一个进阶任务皆须根据特征数据d1执行对应的操作。也就是说,前端模块310所执行的初阶任务是每一个后端模块330所执行的进阶任务的前置操作。
136.一些实施例中,根据如图3b的原始数据d0执行相应的操作,推论出多个目标数据d4。下述举例说明通过传统的类神经网络系统实现,以及通过本公开文件实施例的类神经网络系统300实现的效能差异。
137.传统的类神经网络系统包含具有不同任务的四个类神经网络,用以分别且同时进行四个任务,包含两个物体识别(object classification)的任务及两个物体检测(object detection)的任务。每一个类神经网络为多段式的架构,包含多段的区块,以对应执行一个任务。
138.例如,传统的类神经网络系统包含vgg 16架构的类神经网络,用以执行物体识别的任务;densenet 161架构的类神经网络,用以执行另一种物体识别的任务;faster r-cnn架构的类神经网络,用以执行物体检测的任务;以及yolo架构的类神经网络,用以执行另一种物体检测的任务。
139.根据本公开文件实施例的内容,用以对应执行上述的四个任务的类神经网络系统300包含前端模块310、编码器321、四个解码器322以及四个对应的后端模块330。前端模块310包含densenet 161架构中的第一个到第四个区块,用以执行物体识别及物体检测的前置操作。后端模块a则包含vgg 16架构中的第五个区块,用以执行物体识别的任务。后端模块b包含densenet 161架构中的所有区块,用以执行另一种物体识别的任务。后端模块c(图中未示)包含faster r-cnn架构中的所有区块,用以执行物体检测的任务。后端模块n包含yolo架构中的第五个及第六个区块,用以执行另一种物体检测的任务。
140.传统的类神经网络系统在整体的推论过程中,存储器使用的容量大约为
25540megabyte(mb),且所需的时间大约为0.127秒(s)。相较于传统的类神经网络系统,根据本公开文件实施例的类神经网络系统300,存储器使用的容量大约为17440mb,且所需的时间大约为0.097s。由此可知,相较于传统的类神经网络系统,本公开文件的类神经网络系统300能减少大约32%的存储器使用量,以及减少大约23%的运算时间。
141.一些实施例中,类神经网络系统300包含多个具有不同任务的前端模块310、连接模块320及至少一个后端模块330,在此不限制前端模块310或后端模块330的数量以及其对应的区块或网络层的数量,也不限制对应的初阶任务及进阶任务的数量及内容。
142.如上所述,类神经网络系统300将推论答案的过程拆分为至少一个初阶任务及至少一个进阶任务,借此提升各个网络层运算的效能以及准确度。初阶任务是关联于多个进阶任务,用以执行进阶任务的共同的操作,以获取每个进阶任务皆需要的初阶特征。因此,能够增加类神经网络系统300整体的推论效率。
143.一些实施例中,类神经网络系统300因应开发或维护需求,会变更原始的推论目的。同理于前述的实施例,当推论目的改变时,可以仅重新训练前端、后端之间用以压缩及解压缩特征数据d1的连接模块320,而不需对应重新训练整个类神经网络系统300。或者,可以仅重新训练被抽换的后端模块330以及连接模块320,而不需对应重新训练整个类神经网络系统300。
144.综上所述,类神经网络系统能够助于整体系统的开发以及维护,并能节省运算时间以及存储器资源。
145.虽然本公开文件已以实施例公开如上,然其并非用以限定本公开文件,任何本领域技术人员,在不脱离本公开文件的精神和范围内,当可作各种的变动与润饰,因此本公开文件的保护范围当视权利要求所界定者为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献