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