吳子玥
關(guān)鍵詞:機器學(xué)習(xí);計算機軟件工程;技術(shù);研究
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2023)21-0055-03
0 引言
計算機軟件工程是一門快速發(fā)展的學(xué)科,隨著人工智能、云計算、大數(shù)據(jù)等技術(shù)的快速發(fā)展,軟件工程也將不斷地向著智能化、自動化和高效化的方向發(fā)展??梢哉f現(xiàn)代化技術(shù)的應(yīng)用,為計算機軟件工程的發(fā)展注入了新的動力,也為軟件工程帶來了更多的機遇和挑戰(zhàn)。
1 面向計算機軟件工程的機器學(xué)習(xí)技術(shù)概述
1.1 機器學(xué)習(xí)概念
基于人工智能技術(shù)下的機器學(xué)習(xí)技術(shù)主要是利用算法、統(tǒng)計模型來處理計算機系統(tǒng)內(nèi)部數(shù)據(jù),并在數(shù)據(jù)中學(xué)習(xí)與改進(jìn),且機器學(xué)習(xí)無須顯式進(jìn)行編程。簡言之,機器學(xué)習(xí)是利用資料和運算法則,來訓(xùn)練電腦系統(tǒng),讓它能自動辨識,分類,預(yù)測,做出決定。目前在計算機軟件工程現(xiàn)代化技術(shù)的發(fā)展下,機器學(xué)習(xí)在自然語言處理、圖形識別以及風(fēng)險管理等方面運用頻繁。
在此,筆者提出了簡單的機器學(xué)習(xí)應(yīng)用案例:在電子郵件自動分類郵件,可將垃圾郵件放入垃圾郵件文件夾,將重要郵件放入主文件夾,在此通過使用機器學(xué)習(xí)算法訓(xùn)練模型,使其自動分類郵件。訓(xùn)練模型的過程通常涉及輸入一組已經(jīng)分類好的郵件數(shù)據(jù),讓算法從這些數(shù)據(jù)中學(xué)習(xí)如何分類郵件。一旦模型被訓(xùn)練好,用戶則可使用其來自動分類新的郵件,將其放入適當(dāng)?shù)奈募A中。該方式屬于常見的機器學(xué)習(xí)應(yīng)用場景,但需明確的是機器學(xué)習(xí)可以應(yīng)用于許多領(lǐng)域,例如推薦系統(tǒng)、自然語言處理、預(yù)測和決策等。
1.2 機器學(xué)習(xí)技術(shù)的分類
機器學(xué)習(xí)技術(shù)屬于人工智能重要的分支,該分支理論主要可包含的內(nèi)容為:
1)機器學(xué)習(xí)(傳統(tǒng)):包括線性回歸、Logistic回歸、決策樹、支持向量機、貝葉斯模型、神經(jīng)網(wǎng)絡(luò)等。
2)深度學(xué)習(xí):以分析數(shù)據(jù)為基礎(chǔ)的運算法則。
3)強化學(xué)習(xí):重點在于在所處的情境下如何產(chǎn)生最大的預(yù)期利益,與有指導(dǎo)的標(biāo)準(zhǔn)學(xué)習(xí)的不同之處是:其不要求產(chǎn)生正確的輸入/輸出對,或者要求對亞最優(yōu)的行為進(jìn)行準(zhǔn)確的修正。加強學(xué)習(xí)更多地關(guān)注網(wǎng)上計劃,必須在(未被開發(fā)的領(lǐng)域)與(已有的知識)之間尋求一種平衡。
在現(xiàn)實生活中,機器學(xué)習(xí)技術(shù)主要體現(xiàn)在以下幾個部分:計算機視覺(CV) :讓機器了解世界;自然語言處理(NLP) :使機器能夠閱讀文本;語音識別(SpeechRecognition) :讓機器聽懂的關(guān)系;數(shù)據(jù)挖掘(Data Min?ing):在數(shù)據(jù)之間找到關(guān)聯(lián)。
2 面向計算機軟件工程的機器學(xué)習(xí)技術(shù)改進(jìn)模型策略
2.1 比較不同算法
在機器學(xué)習(xí)技術(shù)中,主要的學(xué)習(xí)改進(jìn)模型包括比較不同算法,該算法可針對提高模型性能,并由此產(chǎn)生不用的算法以及不同的類型數(shù)據(jù)集。對多種算法進(jìn)行對比,可以很容易地改善模型的性能,例如:
1) 線性回歸:線性回歸是一種用于解決回歸問題的算法。它假設(shè)自變量和因變量之間存在線性關(guān)系,并嘗試通過最小化預(yù)測值與真實值之間的差異來擬合一條直線。線性回歸簡單易懂,并且在數(shù)據(jù)集較小且特征數(shù)量較少的情況下表現(xiàn)良好。
2) 支持向量機:支持向量機是一種常用的分類和回歸算法,它嘗試在數(shù)據(jù)集中找到最大間隔分離超平面,以最大化分類的準(zhǔn)確性。支持向量機可以處理高維數(shù)據(jù)集,并且在數(shù)據(jù)集較小且特征數(shù)量較多的情況下表現(xiàn)良好。
3) 神經(jīng)網(wǎng)絡(luò):神經(jīng)網(wǎng)絡(luò)是模擬人類大腦中神經(jīng)元的結(jié)構(gòu)而設(shè)計的一種算法。神經(jīng)網(wǎng)絡(luò)因其對圖像、語音等高維數(shù)據(jù)的描述能力而被廣泛應(yīng)用。但是,人工神經(jīng)網(wǎng)絡(luò)對算法的要求很高,對算法的訓(xùn)練也要求很高。
4) 決策樹:決策樹是一種用于分類與回歸的非線性算法。該方法對數(shù)據(jù)進(jìn)行連續(xù)的分類器,形成了一個樹形結(jié)構(gòu)。決策樹是一種簡單易懂、可視化的方法,但是它的適合度較高,需對其進(jìn)行處理。
5) 邏輯回歸:Logistic回歸作為一種線性模型被廣泛應(yīng)用于分類問題。它輸出一個代表某一類發(fā)生的可能性的數(shù)值。Logistic回歸方法對二級分類有很好的效果,但是對于非線性可分性的資料,其不適用于非線性可分的數(shù)據(jù)。
在選擇機器學(xué)習(xí)算法時,需要考慮數(shù)據(jù)集的大小、特征數(shù)量、問題類型和算法的復(fù)雜度等因素,并根據(jù)這些因素選擇最合適的算法來改進(jìn)模型。
2.2 超參數(shù)調(diào)優(yōu)
超參數(shù)調(diào)優(yōu)是指,在機器學(xué)習(xí)模型中,主要基于機器學(xué)習(xí)開始部分,并在開始部分選擇出一些參數(shù),而此階段被選擇的參數(shù)為超參數(shù)。如,決策樹所能容許的最大深度,隨機森林所能容納的樹木數(shù)目等。超量參數(shù)對學(xué)習(xí)效果有顯著影響。可以說通過超參數(shù)調(diào)優(yōu)的機器學(xué)習(xí)可使其在學(xué)習(xí)過程中快速獲得有關(guān)的結(jié)果。以下是一些常用的超參數(shù)調(diào)優(yōu)方法:
1) 貝葉斯優(yōu)化:貝葉斯最優(yōu)算法是以概率為基礎(chǔ)的一種全局最優(yōu)算法。在此基礎(chǔ)上,利用貝葉斯優(yōu)化方法,對目標(biāo)函數(shù)建立概率模型,提高求解效率,提高求解效率。
2) 遺傳算法:遺傳算法是模擬生物演化的一種最優(yōu)解。該方法利用隨機變異、交叉和選擇等運算,能夠在大規(guī)模的超參空間內(nèi)尋找到最優(yōu)解。
2.3 用召回率換精度
在分類問題上,一般從兩個方面來評價:準(zhǔn)確度和回歸率。因所問的問題而異,一般會需要召回率和精確度進(jìn)行優(yōu)化。對于這兩項衡量標(biāo)準(zhǔn),筆者提出了快速修正模型的辦法。該方法通過對標(biāo)簽分類的可能性進(jìn)行預(yù)測,從而可以通過對可能性門限的調(diào)節(jié)來實現(xiàn)對標(biāo)簽分類的修正。
例如,若我們能建立一種模式,預(yù)測泰坦尼克號失事事件中,旅客能否幸存,則可預(yù)測其存活或死去的概率。當(dāng)發(fā)生事故的可能性大于50%時,模型將預(yù)測乘客會幸存,反之乘客死亡。若要提高準(zhǔn)確度,則可增大概率門限。在此該模型將預(yù)測較少的乘客幸存,但會更精確。
2.4 刪除數(shù)據(jù)泄露(data leakage) 特征
如上所述,有一種情況為該模型表現(xiàn)得“很好”。但當(dāng)它們被部署到產(chǎn)品中時,性能就會下降。這一問題的起因可能在于“數(shù)據(jù)泄露”,而這正是模型訓(xùn)練中普遍存在的缺陷。所謂“數(shù)據(jù)泄露”,就是利用某些特性,這些特性在目標(biāo)變量出現(xiàn)后,并包含目標(biāo)變量的信息。但實際情況的預(yù)測則不會存在數(shù)據(jù)泄露的特性[1]。
如,為預(yù)測用戶會不會打開一封郵件,那么這個特性可以包含他會不會點擊一封郵件。模型一旦看到用戶點擊了它,那么就預(yù)測用戶 100% 會打開它。然而在現(xiàn)實生活中,無法知道是否有人在打開電子郵件之前沒有點擊它,在此利用 SHAP值來測試數(shù)據(jù)泄露,并利用 SHAP庫來繪制曲線圖,來展示哪些特性對模型的影響最大。若特性和目標(biāo)變量的相關(guān)性具有很高的權(quán)重時因此,這些特征會出現(xiàn)數(shù)據(jù)泄露特征,在此可把這些特征從訓(xùn)練樣本中剔除掉。
3 機器學(xué)習(xí)中的雙層規(guī)劃模型與算法
雙層規(guī)劃(Bi-level Programs) 是近年來發(fā)展起來的一種有效的機器學(xué)習(xí)方法。不同之處在于,可以用層次結(jié)構(gòu)來描述學(xué)習(xí)模型。將雙層規(guī)劃引入到機器學(xué)習(xí)領(lǐng)域具體研究內(nèi)容包括:面向機器學(xué)習(xí)中的復(fù)雜問題的雙層規(guī)劃模型構(gòu)建思想;基于雙層規(guī)劃的模型構(gòu)建方法研究等。
3.1 基于元學(xué)習(xí)的小樣本圖像分類雙層規(guī)劃模型
元學(xué)習(xí)期望能夠幫助模型獲得“學(xué)會學(xué)習(xí)”的能力,從而能夠根據(jù)所獲得的“知識”迅速地學(xué)習(xí)新的任務(wù)。深度學(xué)習(xí)作為一種新興的機器學(xué)習(xí)方法,其被引入到機器學(xué)習(xí)中,是為了更好地實現(xiàn)人工智能這一初衷。目前深度學(xué)習(xí)已有很多的研究成果[2]。但是,要想成功地使用深度學(xué)習(xí)算法,必須依靠大量的訓(xùn)練數(shù)據(jù),所以其存在著明顯的缺陷。例如,在小樣本集上(圖1) ,深度學(xué)習(xí)算法很容易陷入過擬合的狀態(tài),從而導(dǎo)致其不能進(jìn)行訓(xùn)練;另外,深度學(xué)習(xí)算法無法直接使用現(xiàn)有的“知識”,需從頭完成新的訓(xùn)練模型。元學(xué)習(xí)是指從多個相關(guān)任務(wù)中獲取“經(jīng)驗”,并將這些“經(jīng)驗”用于提升新任務(wù)中的學(xué)習(xí)效果的一種新方法?;谠獙W(xué)習(xí)算法可模擬出人類的學(xué)習(xí)能力,在此其可將所學(xué)到的東西歸納成多個概念,并從中學(xué)習(xí)??梢哉f,元學(xué)習(xí)可以產(chǎn)生一種可以完成多種任務(wù)的通用人工智能模型。元學(xué)習(xí)的這個特性使其在學(xué)習(xí)過程中具有很多顯著的優(yōu)勢,如,它能更好地使用數(shù)據(jù),使其在小樣本學(xué)習(xí)任務(wù)中具有更好的學(xué)習(xí)效果;對于內(nèi)部差異較大或者數(shù)量較多的問題,能夠迅速地對新問題進(jìn)行調(diào)整,再次達(dá)到了提升學(xué)習(xí)效率與質(zhì)量的效果[3]。
3.2 超參數(shù)優(yōu)化雙層規(guī)劃模型
超參數(shù)優(yōu)化是機器學(xué)習(xí)中的經(jīng)典問題。在機器學(xué)習(xí)的算法中,包含了很多參數(shù),其中一些參數(shù)可基于數(shù)據(jù)內(nèi)學(xué)習(xí)得到,如常見的神經(jīng)網(wǎng)絡(luò)權(quán)重以及支持向量機中的支持向量等,這些成為模型參數(shù),但一部分參數(shù)無法依靠數(shù)據(jù)學(xué)習(xí)得出,其中包括學(xué)習(xí)速率、批量樣本數(shù)等,這些參數(shù)被稱作超參數(shù)。這兩類參數(shù)之間最大的差別在于,它們是否需要利用數(shù)據(jù)來進(jìn)行估計和學(xué)習(xí)(圖2) 。也就是說,模型參數(shù)是從數(shù)據(jù)中自動學(xué)習(xí)出來的,而超參數(shù)則是事先手工設(shè)置的,并對模型的更高級別進(jìn)行了定義[4]。
3.3 基于梯度的高效機器學(xué)習(xí)
正如前面提到的,雙層規(guī)劃模型雖然具有很強的建模能力,但是其上、下兩層變量間的相依性使得雙層規(guī)劃問題的求解非常困難。這主要是因為它存在著一些不良的特性,例如:非光滑、奇異、有間斷等,使得傳統(tǒng)的雙層規(guī)劃方法難以適用于實際問題[5]。
通過筆者所查閱的大量資料表明,在最優(yōu)領(lǐng)域內(nèi)傳統(tǒng)雙層規(guī)劃算法一般采用 KKT條件對底層問題進(jìn)行重新描述,并將其轉(zhuǎn)化為平衡約束的二層規(guī)劃問題。但是,引入乘子會給問題的分析與求解帶來很多困難。尤其是對于具有海量數(shù)據(jù)規(guī)模的機器學(xué)習(xí)領(lǐng)域涌現(xiàn)的雙層規(guī)劃問題,如果引入了太多的乘子,會對計算性能造成很大的影響,這就導(dǎo)致了均衡約束的數(shù)學(xué)規(guī)劃問題再定式方法在復(fù)雜的機器學(xué)習(xí)任務(wù)中很難得到有效的應(yīng)用[6]。另外,還可以通過交互算法,根據(jù)較低層次的最優(yōu)值函數(shù)或較低層次的最優(yōu)性條件和解決方法進(jìn)行學(xué)習(xí),如圖3。
4 面向計算機軟件工程的機器學(xué)習(xí)技術(shù)模型應(yīng)用場景——算法交易中的應(yīng)用
4.1 機器學(xué)習(xí)和算法交易的結(jié)合
機器學(xué)習(xí)是人工智能領(lǐng)域的熱點方向之一機器學(xué)習(xí)在語言、文本以及自動化方面均取得了一定商業(yè)成就。自20世紀(jì)30年代以來,機器學(xué)習(xí)已形成了一個相對獨立且成熟的研究領(lǐng)域,到現(xiàn)在為止,已經(jīng)有一百多種算法被提出。在傳統(tǒng)的時間序列預(yù)測中,一般使用自回歸移動平均模型、自回歸模型等方法來處理線性時間序列,對于非線性的時間序列,業(yè)界采用的是移動平均模型(Moving-Average, MA),然而,在金融時間序列的復(fù)雜性和高級結(jié)構(gòu)中,還需合理分析金融時間序列的不確定性與穩(wěn)定性,同時業(yè)主也可將AR和MA模型進(jìn)行結(jié)合,由此提高其線性和非線性的預(yù)測效果。在面對受多種復(fù)雜因素影響的時序數(shù)據(jù)時,一般情況下都會表現(xiàn)出一種非線性的變化規(guī)律,與以上提到的傳統(tǒng)模型方法相比,在機器學(xué)習(xí)下可針對非線性時間序列進(jìn)行預(yù)測,且目前主流的神經(jīng)網(wǎng)絡(luò)、決策樹、貝葉斯、隨機森林等方法,都與此相關(guān)。在這一領(lǐng)域,最先進(jìn)的方法,則用組合模型來進(jìn)行預(yù)測。將傳統(tǒng)建模與機器學(xué)習(xí)相結(jié)合,將兩者有機地融合在一起,以提升預(yù)測的準(zhǔn)確率。例如:使用近鄰傳播(AP) 算法和支持向量機(SVM) 算法,對具有同樣變化模式的資料進(jìn)行相關(guān)性分析,在此基礎(chǔ)上,將所獲得的更多信息輸入支持向量機,由此產(chǎn)生良好的預(yù)測結(jié)果[7]。
4.2 關(guān)于機器學(xué)習(xí)的可解釋性
人工智能在其實質(zhì)上仍然是一種樣本匹配,結(jié)合智能化分析最近幾年,學(xué)術(shù)界已經(jīng)提出了很多機器學(xué)習(xí)的模型解釋方法。其中,ICE、PDP、SDT、LIME、SHAP等都是打開機器學(xué)習(xí)模型黑箱的強有力工具。由于機器學(xué)習(xí)算法的高復(fù)雜度,以及較低的可解釋性,很多情況下無法被人腦理解掌握。資管行業(yè)的特殊性在于,針對資產(chǎn)管理與交易來說,需明確投資策略或交易風(fēng)險內(nèi)容,在此階段中所產(chǎn)生的模型可解釋性也較為突出關(guān)鍵,另外,交易算法還需要符合 Mi?FID II (歐盟最新金融工具市場指南)等規(guī)定和“最優(yōu)實施”的思想。所以,在編制算法時,必須要考慮到“不斷發(fā)展的市場條件和結(jié)構(gòu)”“管制限制”和“顧客的多目標(biāo)和多偏好”等內(nèi)容[8]。
5 結(jié)束語
如上主要分析了計算機軟件工程機器學(xué)習(xí)算法、應(yīng)用場景,通過研究可以看出,機器學(xué)習(xí)分類算法在現(xiàn)代社會中有著廣泛的應(yīng)用,它能夠幫助人們更好地理解和分析復(fù)雜的數(shù)據(jù)。通過對不同類型的數(shù)據(jù)進(jìn)行分類,我們可以更好地了解數(shù)據(jù)的特征和規(guī)律,為后續(xù)的決策提供有力的支持。對此,我們有理由相信,在各方的共同努力下,計算機軟件工程將會不斷地向著更加智能化、自動化和高效化的方向發(fā)展,最終為人們的生活和工作帶來更多的便利和創(chuàng)新。