面向计算机软件工程的机器学习技术研析
2023-08-26吴子玥
吴子玥
关键词:机器学习;计算机软件工程;技术;研究
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2023)21-0055-03
0 引言
计算机软件工程是一门快速发展的学科,随着人工智能、云计算、大数据等技术的快速发展,软件工程也将不断地向着智能化、自动化和高效化的方向发展。可以说现代化技術的应用,为计算机软件工程的发展注入了新的动力,也为软件工程带来了更多的机遇和挑战。
1 面向计算机软件工程的机器学习技术概述
1.1 机器学习概念
基于人工智能技术下的机器学习技术主要是利用算法、统计模型来处理计算机系统内部数据,并在数据中学习与改进,且机器学习无须显式进行编程。简言之,机器学习是利用资料和运算法则,来训练电脑系统,让它能自动辨识,分类,预测,做出决定。目前在计算机软件工程现代化技术的发展下,机器学习在自然语言处理、图形识别以及风险管理等方面运用频繁。
在此,笔者提出了简单的机器学习应用案例:在电子邮件自动分类邮件,可将垃圾邮件放入垃圾邮件文件夹,将重要邮件放入主文件夹,在此通过使用机器学习算法训练模型,使其自动分类邮件。训练模型的过程通常涉及输入一组已经分类好的邮件数据,让算法从这些数据中学习如何分类邮件。一旦模型被训练好,用户则可使用其来自动分类新的邮件,将其放入适当的文件夹中。该方式属于常见的机器学习应用场景,但需明确的是机器学习可以应用于许多领域,例如推荐系统、自然语言处理、预测和决策等。
1.2 机器学习技术的分类
机器学习技术属于人工智能重要的分支,该分支理论主要可包含的内容为:
1)机器学习(传统):包括线性回归、Logistic回归、决策树、支持向量机、贝叶斯模型、神经网络等。
2)深度学习:以分析数据为基础的运算法则。
3)强化学习:重点在于在所处的情境下如何产生最大的预期利益,与有指导的标准学习的不同之处是:其不要求产生正确的输入/输出对,或者要求对亚最优的行为进行准确的修正。加强学习更多地关注网上计划,必须在(未被开发的领域)与(已有的知识)之间寻求一种平衡。
在现实生活中,机器学习技术主要体现在以下几个部分:计算机视觉(CV) :让机器了解世界;自然语言处理(NLP) :使机器能够阅读文本;语音识别(SpeechRecognition) :让机器听懂的关系;数据挖掘(Data Min?ing):在数据之间找到关联。
2 面向计算机软件工程的机器学习技术改进模型策略
2.1 比较不同算法
在机器学习技术中,主要的学习改进模型包括比较不同算法,该算法可针对提高模型性能,并由此产生不用的算法以及不同的类型数据集。对多种算法进行对比,可以很容易地改善模型的性能,例如:
1) 线性回归:线性回归是一种用于解决回归问题的算法。它假设自变量和因变量之间存在线性关系,并尝试通过最小化预测值与真实值之间的差异来拟合一条直线。线性回归简单易懂,并且在数据集较小且特征数量较少的情况下表现良好。
2) 支持向量机:支持向量机是一种常用的分类和回归算法,它尝试在数据集中找到最大间隔分离超平面,以最大化分类的准确性。支持向量机可以处理高维数据集,并且在数据集较小且特征数量较多的情况下表现良好。
3) 神经网络:神经网络是模拟人类大脑中神经元的结构而设计的一种算法。神经网络因其对图像、语音等高维数据的描述能力而被广泛应用。但是,人工神经网络对算法的要求很高,对算法的训练也要求很高。
4) 决策树:决策树是一种用于分类与回归的非线性算法。该方法对数据进行连续的分类器,形成了一个树形结构。决策树是一种简单易懂、可视化的方法,但是它的适合度较高,需对其进行处理。
5) 逻辑回归:Logistic回归作为一种线性模型被广泛应用于分类问题。它输出一个代表某一类发生的可能性的数值。Logistic回归方法对二级分类有很好的效果,但是对于非线性可分性的资料,其不适用于非线性可分的数据。
在选择机器学习算法时,需要考虑数据集的大小、特征数量、问题类型和算法的复杂度等因素,并根据这些因素选择最合适的算法来改进模型。
2.2 超参数调优
超参数调优是指,在机器学习模型中,主要基于机器学习开始部分,并在开始部分选择出一些参数,而此阶段被选择的参数为超参数。如,决策树所能容许的最大深度,随机森林所能容纳的树木数目等。超量参数对学习效果有显著影响。可以说通过超参数调优的机器学习可使其在学习过程中快速获得有关的结果。以下是一些常用的超参数调优方法:
1) 贝叶斯优化:贝叶斯最优算法是以概率为基础的一种全局最优算法。在此基础上,利用贝叶斯优化方法,对目标函数建立概率模型,提高求解效率,提高求解效率。
2) 遗传算法:遗传算法是模拟生物演化的一种最优解。该方法利用随机变异、交叉和选择等运算,能够在大规模的超参空间内寻找到最优解。
2.3 用召回率换精度
在分类问题上,一般从两个方面来评价:准确度和回归率。因所问的问题而异,一般会需要召回率和精确度进行优化。对于这两项衡量标准,笔者提出了快速修正模型的办法。该方法通过对标签分类的可能性进行预测,从而可以通过对可能性门限的调节来实现对标签分类的修正。
例如,若我们能建立一种模式,预测泰坦尼克号失事事件中,旅客能否幸存,则可预测其存活或死去的概率。当发生事故的可能性大于50%时,模型将预测乘客会幸存,反之乘客死亡。若要提高准确度,则可增大概率门限。在此该模型将预测较少的乘客幸存,但会更精确。
2.4 删除数据泄露(data leakage) 特征
如上所述,有一种情况为该模型表现得“很好”。但当它们被部署到产品中时,性能就会下降。这一问题的起因可能在于“数据泄露”,而这正是模型训练中普遍存在的缺陷。所谓“数据泄露”,就是利用某些特性,这些特性在目标变量出现后,并包含目标变量的信息。但实际情况的预测则不会存在数据泄露的特性[1]。
如,为预测用户会不会打开一封邮件,那么这个特性可以包含他会不会点击一封邮件。模型一旦看到用户点击了它,那么就预测用户 100% 会打开它。然而在现实生活中,无法知道是否有人在打开电子邮件之前没有点击它,在此利用 SHAP值来测试数据泄露,并利用 SHAP库来绘制曲线图,来展示哪些特性对模型的影响最大。若特性和目标变量的相关性具有很高的权重时因此,这些特征会出现数据泄露特征,在此可把这些特征从训练样本中剔除掉。
3 机器学习中的双层规划模型与算法
双层规划(Bi-level Programs) 是近年来发展起来的一种有效的机器学习方法。不同之处在于,可以用层次结构来描述学习模型。将双层规划引入到机器学习领域具体研究内容包括:面向机器学习中的复杂问题的双层规划模型构建思想;基于双层规划的模型构建方法研究等。
3.1 基于元学习的小样本图像分类双层规划模型
元学习期望能够帮助模型获得“学会学习”的能力,从而能够根据所获得的“知识”迅速地学习新的任务。深度学习作为一种新兴的机器学习方法,其被引入到机器学习中,是为了更好地实现人工智能这一初衷。目前深度学习已有很多的研究成果[2]。但是,要想成功地使用深度学习算法,必须依靠大量的训练数据,所以其存在着明显的缺陷。例如,在小样本集上(图1) ,深度学习算法很容易陷入过拟合的状态,从而导致其不能进行训练;另外,深度学习算法无法直接使用现有的“知识”,需从头完成新的训练模型。元学习是指从多个相关任务中获取“经验”,并将这些“经验”用于提升新任务中的学习效果的一种新方法。基于元学习算法可模拟出人类的学习能力,在此其可将所学到的东西归纳成多个概念,并从中学习。可以说,元学习可以产生一种可以完成多种任务的通用人工智能模型。元学习的这个特性使其在学习过程中具有很多显著的优势,如,它能更好地使用数据,使其在小样本学习任务中具有更好的学习效果;对于内部差异较大或者数量较多的问题,能够迅速地对新问题进行调整,再次达到了提升学习效率与质量的效果[3]。
3.2 超参数优化双层规划模型
超参数优化是机器学习中的经典问题。在机器学习的算法中,包含了很多参数,其中一些参数可基于数据内学习得到,如常见的神经网络权重以及支持向量机中的支持向量等,这些成为模型参数,但一部分参数无法依靠数据学习得出,其中包括学习速率、批量样本数等,这些参数被称作超参数。这两类参数之间最大的差别在于,它们是否需要利用数据來进行估计和学习(图2) 。也就是说,模型参数是从数据中自动学习出来的,而超参数则是事先手工设置的,并对模型的更高级别进行了定义[4]。
3.3 基于梯度的高效机器学习
正如前面提到的,双层规划模型虽然具有很强的建模能力,但是其上、下两层变量间的相依性使得双层规划问题的求解非常困难。这主要是因为它存在着一些不良的特性,例如:非光滑、奇异、有间断等,使得传统的双层规划方法难以适用于实际问题[5]。
通过笔者所查阅的大量资料表明,在最优领域内传统双层规划算法一般采用 KKT条件对底层问题进行重新描述,并将其转化为平衡约束的二层规划问题。但是,引入乘子会给问题的分析与求解带来很多困难。尤其是对于具有海量数据规模的机器学习领域涌现的双层规划问题,如果引入了太多的乘子,会对计算性能造成很大的影响,这就导致了均衡约束的数学规划问题再定式方法在复杂的机器学习任务中很难得到有效的应用[6]。另外,还可以通过交互算法,根据较低层次的最优值函数或较低层次的最优性条件和解决方法进行学习,如图3。
4 面向计算机软件工程的机器学习技术模型应用场景——算法交易中的应用
4.1 机器学习和算法交易的结合
机器学习是人工智能领域的热点方向之一机器学习在语言、文本以及自动化方面均取得了一定商业成就。自20世纪30年代以来,机器学习已形成了一个相对独立且成熟的研究领域,到现在为止,已经有一百多种算法被提出。在传统的时间序列预测中,一般使用自回归移动平均模型、自回归模型等方法来处理线性时间序列,对于非线性的时间序列,业界采用的是移动平均模型(Moving-Average, MA),然而,在金融时间序列的复杂性和高级结构中,还需合理分析金融时间序列的不确定性与稳定性,同时业主也可将AR和MA模型进行结合,由此提高其线性和非线性的预测效果。在面对受多种复杂因素影响的时序数据时,一般情况下都会表现出一种非线性的变化规律,与以上提到的传统模型方法相比,在机器学习下可针对非线性时间序列进行预测,且目前主流的神经网络、决策树、贝叶斯、随机森林等方法,都与此相关。在这一领域,最先进的方法,则用组合模型来进行预测。将传统建模与机器学习相结合,将两者有机地融合在一起,以提升预测的准确率。例如:使用近邻传播(AP) 算法和支持向量机(SVM) 算法,对具有同样变化模式的资料进行相关性分析,在此基础上,将所获得的更多信息输入支持向量机,由此产生良好的预测结果[7]。
4.2 关于机器学习的可解释性
人工智能在其实质上仍然是一种样本匹配,结合智能化分析最近几年,学术界已经提出了很多机器学习的模型解释方法。其中,ICE、PDP、SDT、LIME、SHAP等都是打开机器学习模型黑箱的强有力工具。由于机器学习算法的高复杂度,以及较低的可解释性,很多情况下无法被人脑理解掌握。资管行业的特殊性在于,针对资产管理与交易来说,需明确投资策略或交易风险内容,在此阶段中所产生的模型可解释性也较为突出关键,另外,交易算法还需要符合 Mi?FID II (欧盟最新金融工具市场指南)等规定和“最优实施”的思想。所以,在编制算法时,必须要考虑到“不断发展的市场条件和结构”“管制限制”和“顾客的多目标和多偏好”等内容[8]。
5 结束语
如上主要分析了计算机软件工程机器学习算法、应用场景,通过研究可以看出,机器学习分类算法在现代社会中有着广泛的应用,它能够帮助人们更好地理解和分析复杂的数据。通过对不同类型的数据进行分类,我们可以更好地了解数据的特征和规律,为后续的决策提供有力的支持。对此,我们有理由相信,在各方的共同努力下,计算机软件工程将会不断地向着更加智能化、自动化和高效化的方向发展,最终为人们的生活和工作带来更多的便利和创新。