首页 / 专利库 / 数学与统计 / 优化算法 / 梯度下降法 / 一种智能优化的SGD训练方法及系统

一种智能优化的SGD训练方法及系统

阅读:3发布:2021-08-24

专利汇可以提供一种智能优化的SGD训练方法及系统专利检索,专利查询,专利分析的服务。并且本 申请 实施例 公开了一种智能优化的SGD训练方法及系统,涉及智能终端技术领域。所述方法包括:构建SGD模型,获取训练子集;确定目标函数和损失函数;训练模型结构;判断损失函数值是否小于判定值;若是,确定模型结构;若否,判断训练次数是否达到预设次数;若达到预设次数,确定模型结构;若未达到预设次数,返回训练模型结构。本申请的智能优化的SGD训练方法及系统,构建SGD模型,通过确定目标函数和损失函数并判断损失函数值以确定模型结构,提高训练效率。,下面是一种智能优化的SGD训练方法及系统专利的具体信息内容。

1.一种智能优化的SGD训练方法,其特征在于,包括:
构建SGD模型,获取训练子集;
确定目标函数和损失函数;
训练模型结构;
判断损失函数值是否小于判定值;
若是,确定模型结构;
若否,判断训练次数是否达到预设次数;
若达到预设次数,确定模型结构;
若未达到预设次数,返回训练模型结构。
2.根据权利要求1所述的智能优化的SGD训练方法,其特征在于,进一步包括:
初始化目标函数的训练参数和训练次数;
更新SGD模型的结构参数;
更新损失函数和学习步长。
3.根据权利要求2所述的智能优化的SGD训练方法,其特征在于,所述学习步长随损失函数值自适应变化。
4.根据权利要求3所述的智能优化的SGD训练方法,其特征在于,所述学习步长η以随损失函数值自适应变化的关联函数表示为:η=β·(1-exp(-α|J(θ0,θ1,…,θn)|p))。
5.根据权利要求1所述的智能优化的SGD训练方法,其特征在于,所述获取训练子集进一步包括:
从训练样本集中,随机获取固定大小的一个训练子集;
将所述训练子集输入模型结构。
6.根据权利要求1所述的智能优化的SGD训练方法,其特征在于,所述训练模型结构进一步包括:
确定损失函数的梯度;
确定SGD模型的学习步长;
确定梯度下降的梯度值。
7.根据权利要求6所述的智能优化的SGD训练方法,其特征在于,进一步包括:
判断损失函数值和训练次数;
若满足条件,保存模型结构的训练参数,终止训练。
8.根据权利要求7所述的智能优化的SGD训练方法,其特征在于,进一步包括:
若不满足条件,更新迭代之后的损失函数值和训练参数;
完成更新后,返回确定损失函数的梯度。
9.根据权利要求6所述的智能优化的SGD训练方法,其特征在于,所述梯度值通过所述学习步长和所述损失函数的梯度的乘积确定。
10.一个系统,其特征在于,包括:
一个存储器,被配置为存储数据及指令;
一个与存储器建立通信的处理器,其中,当执行存储器中的指令时,所述处理器被配置为:
构建SGD模型,获取训练子集;
确定目标函数和损失函数;
训练模型结构;
判断损失函数值是否小于判定值;
若是,确定模型结构;
若否,判断训练次数是否达到预设次数;
若达到预设次数,确定模型结构;
若未达到预设次数,返回训练模型结构。

说明书全文

一种智能优化的SGD训练方法及系统

技术领域

[0001] 本申请涉及智能终端技术领域,尤其涉及智能优化的SGD训练方法及系统。

背景技术

[0002] 随着移动互联网、移动终端和数据传感器的发展,数据以超出想象的速度发生爆发式的增长。在未来一段时间内,大数据将成为企业、社会和国家层面重要的战略资源。进入大数据时代,从大数据中获取有用的价值并挖掘隐藏的数据规律作为重要课题,针对海量数据如何进行分类,存储,管理,分析等成为了关键问题。人工神经网络(ArtificialNeural Networks,ANNs)模仿动物神经网络行为特征,进行分布式并行信息处理。传统的神经网络训练方法,包括梯度下降方法(GradientDescent)、算法(Newton’s method)、共轭梯度法(Conjugate gradient)、准牛顿法(Quasi-Newton method)、Levenberg-Marquardt算法等。这些方法主要通过迭代训练来减小损失函数的值,以提高神经网络模型的泛化能(GeneralizationAbility),在一定程度上解决了神经网络的训练问题。
[0003] 目前,主流采用梯度下降方法以解决神经网络的训练问题,然而,当模型数据海量增加,梯度下降方法的效率将大幅度下降,无法达到期望的效果。传统的训练方法通常采用迭代训练减小损失函数的值,提高模型的泛化能力,却很少关注神经网络的训练效率问题:当神经网络模型结构加宽、变深时,训练效率将会降低,削弱神经网络模型结构的泛化能力,甚至出现非收敛的发散现象等。
[0004] 因此,为优化神经网络训练,提高神经网络的训练效率,同时增强神经网络深度学习的学习率,并避免陷入局部最优的结果,当前,大多采用优化的随机梯度下降SGD(Stochastic Gradient Descent,SGD)方法用于训练神经网络模型;期望提供一种智能优化的SGD训练方法及系统,构建SGD模型,通过确定目标函数和损失函数并判断损失函数值以确定模型结构,提高训练效率。发明内容
[0005] 根据本申请的一些实施例的第一方面,提供了一种智能优化的SGD训练方法,应用于终端(例如,电子设备等)中,所述方法可以包括:构建SGD模型,获取训练子集;确定目标函数和损失函数;训练模型结构;判断损失函数值是否小于判定值;若是,确定模型结构;若否,判断训练次数是否达到预设次数;若达到预设次数,确定模型结构;若未达到预设次数,返回训练模型结构。
[0006] 在一些实施例中,所述方法可以进一步包括:初始化目标函数的训练参数和训练次数;更新SGD模型的结构参数;更新损失函数和学习步长。
[0007] 在一些实施例中,所述学习步长随损失函数值自适应变化。
[0008] 在一些实施例中,所述学习步长η以随损失函数值自适应变化的关联函数表示为:η=β·(1-exp(-α|J(θ0,θ1,…,θn)|p))。
[0009] 在一些实施例中,所述获取训练子集进一步包括:从训练样本集中,随机获取固定大小的一个训练子集;将所述训练子集输入模型结构。
[0010] 在一些实施例中,所述训练模型结构进一步包括:确定损失函数的梯度;确定SGD模型的学习步长;确定梯度下降的梯度值。
[0011] 在一些实施例中,所述方法可以进一步包括:判断损失函数值和训练次数;若满足条件,保存模型结构的训练参数,终止训练。
[0012] 在一些实施例中,所述方法可以进一步包括:若不满足条件,更新迭代之后的损失函数值和训练参数;完成更新后,返回确定损失函数的梯度。
[0013] 在一些实施例中,所述梯度值通过所述学习步长和所述损失函数的梯度的乘积确定。
[0014] 根据本申请的一些实施例的第二方面,提供了一个系统,包括:一个存储器,被配置为存储数据及指令;一个与存储器建立通信的处理器,其中,当执行存储器中的指令时,所述处理器被配置为:构建SGD模型,获取训练子集;确定目标函数和损失函数;训练模型结构;判断损失函数值是否小于判定值;若是,确定模型结构;若否,判断训练次数是否达到预设次数;若达到预设次数,确定模型结构;若未达到预设次数,返回训练模型结构。
[0015] 因此,根据本申请的一些实施例的智能优化的SGD训练方法及系统,构建SGD模型,通过确定目标函数和损失函数并判断损失函数值以确定模型结构,提高训练效率。附图说明
[0016] 为更好地理解并阐述本申请的一些实施例,以下将结合附图参考实施例的描述,在这些附图中,同样的数字编号在附图中指示相应的部分。
[0017] 图1是根据本申请的一些实施例提供的网络环境系统的示例性示意图。
[0018] 图2是根据本申请的一些实施例提供的电子设备功能配置的示例性单元示意图。
[0019] 图3是根据本申请的一些实施例提供的智能优化的SGD训练方法的示例性流程图
[0020] 图4是根据本申请的一些实施例提供的训练SGD模型结构的示例性流程图。

具体实施方式

[0021] 以下参考附图的描述为便于综合理解由权利要求及其等效内容所定义的本申请的各种实施例。这些实施例包括各种特定细节以便于理解,但这些仅被视为示例性的。因此,本领域技术人员可以理解对在此描述的各种实施例进行各种变化和修改而不会脱离本申请的范围和精神。另外,为简要并清楚地描述本申请,本申请将省略对公知功能和结构的描述。
[0022] 在以下说明书和权利要求书中使用的术语和短语不限于字面含义,而是仅为能够清楚和一致地理解本申请。因此,对于本领域技术人员,可以理解,提供对本申请各种实施例的描述仅仅是为说明的目的,而不是限制所附权利要求及其等效定义的本申请。
[0023] 下面将结合本申请一些实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0024] 需要说明的是,在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一”、“一个”、“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请中使用的术语“和/或”是指并包含一个或多个相绑定的列出项目的任何或所有可能组合。表达“第一”、“第二”、“所述第一”和“所述第二”是用于修饰相应元件而不考虑顺序或者重要性,仅仅被用于区分一种元件与另一元件,而不限制相应元件。
[0025] 根据本申请一些实施例的终端可以是电子设备,该电子设备可以包括智能手机、个人电脑(PC,例如平板电脑、台式电脑、笔记本、上网本、掌上电脑PDA)、移动电话、电子书阅读器、便携式多媒体播放器(PMP)、音频/视频播放器(MP3/MP4)、摄像机、虚拟现实设备(VR)和可穿戴设备等中的一种或几种的组合。根据本申请的一些实施例,所述可穿戴设备可以包括附件类型(例如手表、戒指、手环、眼镜、或头戴式装置(HMD))、集成类型(例如电子服装)、装饰类型(例如皮肤垫、纹身或内置电子装置)等,或几种的组合。在本申请的一些实施例中,所述电子设备可以是灵活的,不限于上述设备,或者可以是上述各种设备中的一种或几种的组合。在本申请中,术语“用户”可以指示使用电子设备的人或使用电子设备的设备(例如人工智能电子设备)。
[0026] 本申请实施例提供了一种智能优化的SGD训练方法。为了便于理解本申请实施例,以下将参考附图对本申请实施例进行详细描述。
[0027] 图1是根据本申请的一些实施例提供的网络环境系统100的示例性示意图。如图1所示,网络环境系统100可以包括电子设备110、网络120和服务器130等。电子设备110可以包括总线111、处理器112、存储器113、输入/输出模114、显示器115、通信模块116和物理键117等。在本申请的一些实施例中,电子设备110可以省略一个或多个元件,或者可以进一步包括一个或多个其它元件。
[0028] 总线111可以包括电路。所述电路可以互连电子设备110内的一个或多个元件(例如,总线111、处理器112、存储器113、输入/输出模块114、显示器115、通信模块116和物理键117)。所述电路也可以在电子设备110内的一个或多个元件之间实现通信(例如,获取和/或发送信息)。
[0029] 处理器112可以包括一个或多个协处理器(Co-processor)、应用处理器(AP,Application Processor)和通信处理器(Communication Processor)。作为示例,处理器112可以执行与电子设备110的一个或多个元件的控制和/或数据处理(例如,启动SGD训练等操作)。
[0030] 存储器113可以存储数据。所述数据可以包括与电子设备110中的一个或多个其它元件相关的指令或数据。例如,所述数据可以包括处理器112处理前的原始数据,中间数据和/或处理后的数据。存储器113可以包括非永久记忆性存储器和/或永久记忆性存储器。作为示例,存储器113可以存储训练样本集等。
[0031] 根据本申请的一些实施例,存储器113可以存储软件和/或程序。所述程序可以包括内核中间件、应用编程接口(API,Application Programming Interface)和/或应用程序(或“应用”)。
[0032] 所述内核、所述中间件或所述应用编程接口的至少一部分可以包括操作系统(OS,Operating System)。作为示例,所述内核可以控制或管理用于执行其他程序(例如,中间件、应用编程接口和应用程序)中实现的操作或功能的系统资源(例如,总线111、处理器112、存储器113等)。此外,所述内核可以提供接口。所述接口可以通过所述中间件、所述应用编程接口或所述应用程序访问电子设备110的一个或多个元件以控制或管理系统资源。
[0033] 所述中间件可以作为数据传输的中间层。所述数据传输可以允许应用编程接口或应用程序与所述内核通信用以交换数据。作为示例,所述中间件可以处理从所述应用程序获取的一个或多个任务请求。例如,所述中间件可以向一个或多个应用程序分配电子设备110的系统资源(例如,总线111、处理器112、存储器113等)的优先级,以及处理所述一个或多个任务请求。所述应用编程接口可以是所述应用程序用于控制从所述内核或所述中间件提供功能的接口。所述应用编程接口也可以包括一个或多个接口或功能(例如,指令)。所述功能可以用于启动控制、数据通道控制、安全控制、通信控制、文件控制、窗口控制、文本控制、图像处理、信息处理等。
[0034] 输入/输出模块114可以向电子设备110的其他元件发送从用户或外部设备输入的指令或数据。输入/输出模块114也可以将从电子设备110的其他元件获取的指令或数据输出给用户或外部设备。在一些实施例中,输入/输出模块114可以包括输入单元,用户可以通过所述输入单元输入信息或指令。
[0035] 显示器115可以显示内容。所述内容可以向用户显示各种类型(例如,文本、图像、视频、图标和/或符号等,或几种的组合)。显示器115可以包括液晶显示器(LCD,Liquid Crystal Display)、发光二极管(LED,Light-Emitting Diode)显示器、有机发光二极管(OLED,Organic Light Emitting Diode)显示器、微型机电系统(MEMS,Micro Electro Mechanical Systems)显示器或电子纸显示器等,或几种的组合。显示器115可以包括显示屏、触摸屏等。所述显示屏可以显示样本数据等。在一些实施例中,显示器115可以显示虚拟键。所述触摸屏可以获取所述虚拟键的输入。显示器115可以通过所述触摸屏获取输入。所述输入可以包括触摸输入、手势输入、动作输入、接近输入、电子笔或用户身体部分的输入(例如,悬停输入)。
[0036] 通信模块116可以配置设备之间的通信。在一些实施例中,网络环境系统100可以进一步包括电子设备140。作为示例,所述设备之间的通信可以包括电子设备110和其他设备(例如,服务器130或电子设备140)之间的通信。例如,通信模块116可以通过无线通信或有线通信连接到网络120,与其他设备(例如,服务器130或电子设备140)实现通信。
[0037] 所述无线通信可以包括微波通信和/或卫星通信等。所述无线通信可以包括蜂窝通信(例如,全球移动通信(GSM,Global System for Mobile Communications)、码分多址(CDMA,Code Division MultipleAccess)、第三代移动通信(3G,The 3rd Generation Telecommunication)、第四代移动通信(4G)、第五代移动通信(5G)、长期演进技术(LTE,Long Term Evolution)、长期演进技术升级版(LTE-A,LTE-Advanced)、宽带码分多址(WCDMA,Wideband Code Division MultipleAccess)、通用移动通信系统(UMTS,Universal Mobile Telecommunications System)、无线宽带(WiBro,Wireless Broadband)等,或几种的组合。根据本申请的一些实施例,所述无线通信可以包括无线局域网(WiFi,Wireless Fidelity)、蓝牙、低功耗蓝牙(BLE,Bluetooth Low Energy)、紫蜂协议(ZigBee)、近场通讯(NFC,Near Field Communication)、磁安全传输、射频和体域网(BAN,BodyAreaNetwork)等,或几种的组合。根据本申请的一些实施例,所述有线通信可以包括全球导航卫星系统(Glonass/GNSS,Global Navigation Satellite System)、全球定位系统(GPS,Global Position System)、北斗导航卫星系统或伽利略(欧洲全球卫星导航系统)等。所述有线通信可以包括通用串行总线(USB,Universal Serial Bus)、高清多媒体接口(HDMI,High-Definition Multimedia Interface)、推荐标准232(RS-232,Recommend Standard 232)、和/或简易老式电话服务(POTS,Plain Old Telephone Service)等,或几种的组合。
[0038] 物理键117可以用于用户交互。物理键117可以包括一个或多个实体键。在一些实施例中,用户可以自定义物理键117的功能。作为示例,物理键117可以发送指令。所述指令可以包括启动SGD训练等。
[0039] 在一些实施例中,电子设备110可以进一步包括传感器。所述传感器可以包括但不限于光敏传感器、声敏传感器、气敏传感器、化学传感器、压敏传感器、温敏传感器、流体传感器、生物传感器、激光传感器、霍尔传感器、位置传感器、加速度传感器、智能传感器等,或几种的组合。
[0040] 在一些实施例中,电子设备110可以进一步包括红外设备、图像采集设备等。作为示例,所述红外设备可以通过红外线投射方式,以及眨眼识别、注视识别等技术获取眼睛的信息。例如,所述红外设备通过采集用户的眨眼动作来认证用户信息。作为示例,所述图像采集设备可以包括摄像头、虹膜装置等。所述摄像头可以实现眼球追踪等功能。所述虹膜装置可以利用虹膜识别技术进行身份认证(例如,认证用户信息)。所述虹膜装置可以包括虹膜摄像头,所述虹膜摄像头可以获取虹膜信息,所述虹膜信息可以存储在存储器113中。
[0041] 网络120可以包括通信网络。所述通信网络可以包括计算机网络(例如,局域网(LAN,Local Area Network)或广域网(WAN,WideArea Network))、互联网和/或电话网络等,或几种的组合。网络120可以向网络环境系统100中的其他设备(例如,电子设备110、服务器130、电子设备140等)发送信息。
[0042] 服务器130可以通过网络120连接网络环境系统100中的其他设备(例如,电子设备110、电子设备140等)。在一些实施例中,服务器130可以通过网络120与电子设备110进行数据传输等。例如,服务器130可以通过网络120向电子设备110发送样本数据等,电子设备110可以通过网络120向服务器130发送模型等。
[0043] 电子设备140可以与电子设备110相同或不同的类型。根据本申请的一些实施例,在电子设备110中执行的部分或全部操作可以在另一设备或多个设备(例如,电子设备140和/或服务器130)中执行。在一些实施例中,当电子设备110自动或响应于请求执行一种或多种功能和/或服务时,电子设备110可以请求其他设备(例如,电子设备140和/或服务器130)替代执行功能和/或服务。在一些实施例中,电子设备110除执行功能或服务外,进一步执行与其相关的一种或多种功能。在一些实施例中,其他设备(例如,电子设备140和/或服务器130)可以执行所请求的功能或其它相关的一种或多种功能,可以将执行结果发送给电子设备110。电子设备110可以重复执行结果或进一步处理执行结果,以提供所请求的功能或服务。作为示例,电子设备110可以使用计算、分布式技术和/或客户端-服务端计算计算等,或几种的组合。在一些实施例中,根据云计算服务性质的不同,所述云计算可以包括公有云、私有云和混合云等。例如,电子设备110可以与电子设备140进行数据传输等。
[0044] 需要说明的是,以上对于网络环境系统100的描述,仅为描述方便,并不能把本申请限制在所举实施例的范围之内。可以理解,对于本领域技术人员,基于本系统的原理,可能在不背离该原理的前提下,对各个元件进行任意组合,或者构成子系统与其他元件连接,对实施上述方法和系统的应用领域进行形式和细节上的各种修正和改变。例如,网络环境系统100可以进一步包括数据库等。又例如,电子设备110可以不包括物理键117等。诸如此类的变形,均在本申请的保护范围之内。
[0045] 图2是根据本申请的一些实施例提供的电子设备功能配置的示例性单元框图。如图2所示,处理器112可以包括处理模块200,所述处理模块200可以包括获取单元210,处理单元220,确定单元230,控制单元240,分析单元250。
[0046] 根据本申请的一些实施例,获取单元210可以获取数据。在一些实施例中,所述数据可以包括信息,所述信息可以包括但不限于文本、图像、音频、视频、动作、手势、声音、眼睛(例如,虹膜信息等)、气息、光等,或几种的组合。在一些实施例中,所述信息可以包括但不限于输入信息、系统信息和/或通信信息等。作为示例,获取单元210可以通过输入/输出模块114、显示器115的触摸屏、物理键117和/或传感器获取电子设备110的输入信息。所述输入信息可以包括其他设备(例如,电子设备140)和/或用户的输入,例如,按键输入、触控输入、手势输入、动作输入、远程输入、传输输入、眼睛输入、声音输入、气息输入、光输入等,或几种的组合。所述输入信息的获取部件可以包括但不限于红外设备、图像采集设备、传感器等,或几种的组合。作为示例,获取单元210可以获取训练样本集等。获取单元210可以从训练样本集中随机获取训练子集等。
[0047] 在一些实施例中,获取单元210可以通过网络120获取通信信息。所述通信信息可以包括应用软件信息、通讯信号(例如,语音信号视频信号等)、短消息等。在一些实施例中,获取单元210可以通过网络120、存储器113和/或传感器获取系统信息。所述系统信息可以包括但不限于电子设备110的系统状态、预设信息、存储器113存储的信息(例如,虹膜认证信息等)等,或几种的组合。
[0048] 在一些实施例中,所述信息可以包括指令。所述指令包括用户指令和/或系统指令等,或几种的组合。所述指令可以包括触发指令、认证指令、填写指令等,或几种的组合。所述认证指令可以包括认证用户信息指令等。作为示例,当用户按下物理键(例如,快捷键等)时,电子设备110可以执行模型训练等。
[0049] 根据本申请的一些实施例,处理单元220可以处理数据。在一些实施例中,处理单元220可以构建模型等。作为示例,处理单元220可以构建SGD模型。在一些实施例中,处理单元220可以处理样本数据等。作为示例,处理单元220可以将训练样本集均匀划分为多个固定大小的训练子集。在一些实施例中,处理单元220可以更新数据等。作为示例,处理单元220可以更新模型结构参数等。又例如,处理单元220可以更新函数,和/或更新训练模型的学习步长等。
[0050] 根据本申请的一些实施例,确定单元230可以确定信息。在一些实施例中,确定单元230可以确定目标函数,和/或损失函数等。作为示例,确定单元230可以确定损失函数的梯度。又例如,确定单元230可以确定训练模型的学习步长。再例如,确定单元230可以确定梯度下降的梯度值等。在一些实施例中,确定单元230可以确定模型结构等。
[0051] 根据本申请的一些实施例,控制单元240可以控制训练过程。在一些实施例中,控制单元240可以控制训练模型结构等。在一些实施例中,控制单元240可以控制训练模型的启动和/或终止。
[0052] 根据本申请的一些实施例,分析单元250可以分析信息。在一些实施例中,分析单元250可以分析损失函数值与判定值之间的大小关系等。在一些实施例中,分析单元250可以分析训练次数是否达到预设次数。所述预设次数与样本数据的大小呈正相关,当样本数据量增大,所述预设次数相应增大。
[0053] 需要说明的是,以上对于处理模块200中的单元描述,仅为描述方便,并不能把本申请限制在所举实施例的范围之内。可以理解,对于本领域技术人员,基于本系统的原理,可能在不背离该原理的前提下,对各个单元进行任意组合,或者构成子模块与其他单元连接,对实施上述模块和单元的功能进行形式和细节上的各种修正和改变。例如,处理模块200可以进一步包括存储单元,所述存储单元可以存储样本数据、中间数据、模型结构等。诸如此类的变形,均在本申请的保护范围之内。
[0054] 图3是根据本申请的一些实施例提供的智能优化的SGD训练方法的示例性流程图。如图3所示,流程300可以通过处理模块200实现。所述SGD训练方法可以用于训练网络模型,所述网络模型可以包括一个或多个模型结构。
[0055] 在301,构建SGD模型,获取训练子集。操作301可以通过处理模块200的获取单元210,处理单元220实现。在一些实施例中,处理单元220可以构建SGD模型,获取单元210可以通过输入/输出模块114获取训练子集。作为示例,获取单元210可以从训练样本集中随机获取固定大小的训练子集。例如,当训练样本集的数据量为1000,获取单元210可以通过10次随机获取训练子集,每次从训练样本集中随机获取训练子集的数据量为100。操作301分批处理固定大小的数据量,可以减小CPU及内存的占用率。在一些实施例中,所述训练子集可以输入网络模型,所述网络模型可以包括不同的模型结构。
[0056] 在302,确定目标函数和损失函数。操作302可以通过处理模块200的确定单元230实现。在一些实施例中,确定单元230可以确定训练模型的目标函数,所述目标函数可以为包含未知参数的模型结构函数。在一些实施例中,确定单元230可以确定训练模型的损失函数,在模型训练的过程中,所述损失函数的损失值可以随着训练过程递减,以增加模型的准确性。
[0057] 根据本申请的一些实施例,流程300可以进一步包括初始化模型的训练参数和训练次数。在一些实施例中,处理单元220可以初始化模型的训练参数和训练次数。在一些实施例中,在模型训练过程中,当模型达到最优时可以对应稳定的训练参数,在模型未知参数的寻优过程中,所述初始化模型的训练参数可以为随机分配训练参数,以执行参数寻优的过程。
[0058] 在303,训练模型结构。操作303可以通过处理模块200的控制单元240实现。在一些实施例中,控制单元240可以训练模型结构。所述训练模型结构可以通过流程400实现。
[0059] 根据本申请的一些实施例,流程300可以进一步包括确定自适应的学习步长。在一些实施例中,确定单元230可以根据损失函数确定自适应的学习步长。所述学习步长可以为具体的值,与学习率关联,所述学习率可以为变化的快慢。作为示例,当损失函数较大时,所述学习率可以自适应增大;又例如,当损失函数趋于稳定状态时,所述学习率可以自适应缓慢变小并趋于稳定。
[0060] 在304,判断损失函数值是否小于判定值。操作304可以通过处理模块200的确定单元230和/或分析单元250实现。在一些实施例中,分析单元250可以判断损失函数值与判定值的大小关系。在一些实施例中,在训练迭代过程中,一次正向传递可以输出一次损失函数值,所述损失函数值可以为用于判别该次模型训练精度的指标。
[0061] 若损失函数值不小于判定值时,进入操作305,在305,判断训练次数是否达到预设次数。操作305可以通过处理模块200的确定单元230和/或分析单元250实现。在一些实施例中,分析单元250可以分析训练次数是否达到预设次数,所述预设次数与训练样本集的数据量呈正相关。
[0062] 若训练次数未达到预设次数,返回操作303,在303,训练模型结构。操作303可以通过处理模块200的控制单元240实现。在一些实施例中,控制单元240可以训练模型结构。所述训练模型结构可以通过流程400实现。
[0063] 若损失函数值小于判定值,进入操作306,在306,确定模型结构。操作306可以通过处理模块200的确定单元230实现。在一些实施例中,确定单元230可以确定模型结构,存储器113可以保存所述模型结构。所述确定模型结构可以为确定目标函数中包含的未知参数后得到的模型结构。
[0064] 若训练次数达到预设次数,进入操作306,在306,确定模型结构。操作306可以通过处理模块200的确定单元230实现。在一些实施例中,处理模块200可以进一步包括存储单元,所述存储单元可以存储确定的模型结构。
[0065] 根据本申请的一些实施例,智能优化的SGD训练方法可以包括:
[0066] 当 训练样 本集 为其 中 ,y j 为 对 应 的 样 本 输 出 结 果 ,总 样 本 集 为
获取单元210可以从总样本集中随机获取一个固定大小的训
练子集 xi(i=0,1,…,n)为每个样本的n个特征值,可以作为训
练的输入样本数据集,其中N
[0067] 确定单元230可以确定训练模型的目标函数和损失函数,所述目标函数可以通过公式1表示,如下:
[0068]
[0069] 其中,θi(i=0,1,…,n)为模型的参数,为了简化,令 则有,如公式2所示:
[0070]
[0071] 所述损失函数可以通过公式3表示,如下:
[0072]
[0073] 处理单元220可以初始化模型结构的训练参数θi(i=0,1,…,n),确定单元230可以确定损失函数值的判定值ε。本申请取ε=5%,其中,β,α可以为通过训练模型过程选取的经验常数,其中β=0.1,α=10000,P为具体模型训练的经验值,本申请取P=2.5,η为训练过程的学习步长,η是随损失函数值自适应变化的关联函数,通过公式4表示,所述自适应变化的学习步长可以提高训练效率,公式4表示如下:
[0074] η=β·(1-exp(-α|J(θ0,θ1,…,θn)|p))(公式4)
[0075] 在一些实施例中,控制单元240可以训练模型结构。所述训练模型结构的执行过程可以通过流程400实现。
[0076] 需要说明的是,以上对于流程300的描述,仅为描述方便,并不能把本申请限制在所举实施例的范围之内。可以理解,对于本领域技术人员,基于本系统的原理,可能在不背离该原理的前提下,对各个操作进行任意组合,或者构成子流程与其它操作组合,对实施上述流程和操作的功能进行形式和细节上的各种修正和改变。例如,流程300可以进一步包括初始化模型的训练参数和训练次数、确定自适应的学习步长等操作。诸如此类的变形,均在本申请的保护范围之内。
[0077] 图4是根据本申请的一些实施例提供的训练SGD模型结构的示例性流程图。如图4所示,流程400可以通过处理模块200实现。在一些实施例中,流程400可以是流程300中操作303的一种实现方式。
[0078] 在401,确定损失函数的梯度。操作401可以通过处理模块200的确定单元230实现。在一些实施例中,确定单元230可以确定损失函数的梯度。作为示例,对于θi(i=0,1,…,n),所述梯度可以通过公式5表示,如下:
[0079]
[0080] 在402,确定SGD模型的学习步长。操作402可以通过处理模块200的确定单元230实现。在一些实施例中,确定单元230可以通过损失函数自适应确定学习步长。
[0081] 在403,确定梯度下降的梯度值。操作403可以通过处理模块200的处理单元220和/或确定单元230实现。在一些实施例中,处理单元220和/或确定单元230可以通过所述学习步长和所述损失函数的梯度的乘积确定梯度下降的梯度值。作为示例,所述梯度值为[0082] 在404,判断损失函数值和训练次数。操作404可以通过处理模块200的分析单元250实现。在一些实施例中,分析单元250可以判断是否所有的θi(i=0,1,…,n)梯度下降的值都小于ε,如果都小于ε,则保存训练模型的所有θi(i=0,1,…,n)参数,控制单元240可以终止训练。如果梯度下降的值存在不小于ε的,当训练次数达到预设次数,控制单元240可以终止训练。
[0083] 当损失函数值和训练次数不满足条件时,进入405,更新模型结构参数。操作405可以通过处理模块200的控制单元240实现。在一些实施例中,控制单元240可以更新模型结构参数θi(i=0,1,…,n)。在一些实施例中,在模型结构的训练过程中,损失函数的损失值趋于最小的变化过程,模型结构参数趋于最优,所述更新模型结构参数可以为从初始化参数的随机分配到最优的变化过程。
[0084] 在406,更新损失函数和学习步长。操作406可以通过处理模块200的控制单元240实现。所述更新损失函数可以为损失函数的损失值递减的过程。所述更新学习步长可以为随损失函数的损失值变化学习率的过程。在一些实施例中,控制单元240可以更新损失函数J(θ0,θ1,…,θn)值和学习步长ηj(j=1,2,…,N)。更新后通过公式6和公式7表示,如下:
[0085]
[0086] ηj=β·(1-exp(-α|J(θ0,θ1,…,θn)|p))(公式7)
[0087] 在一些实施例中,当更新完成后,流程400可以返回操作401,确定损失函数的梯度。操作401可以通过处理模块200的确定单元230实现。
[0088] 需要说明的是,以上对于流程400的描述,仅为描述方便,并不能把本申请限制在所举实施例的范围之内。可以理解,对于本领域技术人员,基于本系统的原理,可能在不背离该原理的前提下,对各个操作进行任意组合,或者构成子流程与其它操作组合,对实施上述流程和操作的功能进行形式和细节上的各种修正和改变。例如,流程400可以循环执行操作401至操作406,操作405和操作406可以同时执行等。诸如此类的变形,均在本申请的保护范围之内。
[0089] 综上所述,根据本申请实施例的智能优化的SGD训练方法及系统,构建SGD模型,通过确定目标函数和损失函数并判断损失函数值以确定模型结构,提高训练效率。
[0090] 需要注意的是,上述的实施例仅仅是用作示例,本申请不限于这样的示例,而是可以进行各种变化。
[0091] 需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0092] 最后,还需要说明的是,上述一系列处理不仅包括以这里所述的顺序按时间序列执行的处理,而且包括并行或分别地、而不是按时间顺序执行的处理。
[0093] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序指令相关的硬件来完成,所述的程序可存储于一计算机可读存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储器(Read-OnlyMemory,ROM)或随机存储器(RandomAccessMemory,RAM)等。
[0094] 以上所揭露的仅为本申请一些优选的实施例,不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于发明所涵盖的范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈