司衛(wèi)云, 宋 燕, 戴非凡, 倪進(jìn)平, 楊桂松, 李常青
(1 上海理工大學(xué) 光電信息與計算機工程學(xué)院, 上海 200093; 2 上海最聞信息科技有限公司, 上海 201210)
機器學(xué)習(xí)是AI的一個重要分支,旨在使計算機在完全沒有或有限的人類干預(yù)下,設(shè)計一系列“運算法則”,通過經(jīng)驗學(xué)習(xí)自動做出最優(yōu)選擇[1]。近年來,大數(shù)據(jù)和云計算等現(xiàn)代科技高速發(fā)展,為機器學(xué)習(xí)算法提供了豐富的訓(xùn)練樣本[2],人工智能技術(shù)呈現(xiàn)出加速發(fā)展的態(tài)勢,已經(jīng)在人類生產(chǎn)、生活及社會管理的眾多領(lǐng)域存在并發(fā)揮作用[3]。
司法領(lǐng)域,卷宗資料數(shù)量眾多、信息繁雜,面對龐大復(fù)雜的證據(jù)鏈,在短時間內(nèi)完成人工數(shù)據(jù)篩選和分析十分困難。并且司法工作專業(yè)性較強,審判尺度難以拿捏,這將直接關(guān)系到司法工作的后續(xù)順利開展。為了解決上述問題,國內(nèi)外各大法律機構(gòu)擬將人工智能引入司法領(lǐng)域,構(gòu)建基于大數(shù)據(jù)的智能專家審判系統(tǒng)以代替常規(guī)的基于規(guī)則的專家審判系統(tǒng),力爭在輔助法官辦案、服務(wù)律師和社會公眾等方面有所突破[4]。此外,運用計算機對海量多源的司法數(shù)據(jù)進(jìn)行高速處理,并結(jié)合國家發(fā)展戰(zhàn)略、政策法規(guī)和社會大眾生活情況,對相關(guān)案件變化動態(tài)及發(fā)展趨勢進(jìn)行深度關(guān)聯(lián)分析,能為司法部門嚴(yán)謹(jǐn)治法提供合理評估[5]。
盡管人工智能的作用顯而易見,然后在司法領(lǐng)域機器學(xué)習(xí)尚處于起步階段,主要存在以下問題:從數(shù)據(jù)層面上看,目前的法律數(shù)據(jù)存在不充分、數(shù)據(jù)量大、不客觀且結(jié)構(gòu)化不足的缺點;從算法層面上看,算法單一、隱秘且低效,缺乏系統(tǒng)性的智能審判專家模型;從人才層面上看,缺乏法律界和人工智能等多學(xué)科交叉性的復(fù)合型人才[6]。因此,如何高效合理地利用人工智能算法優(yōu)化工作流程,建立智能判案模型,輔助法官提升工作效率,加快結(jié)案時間成為了亟待解決的問題。
綜上所述,本文基于貴州高級人民法院提供的2016年1月至2017年5月“故意傷害罪”卷宗,設(shè)計了一種融合多種機器學(xué)習(xí)算法的故意傷害罪案件智能判案模型?;诮⒌膶<夷P停瑢室鈧ψ锇讣辛P刑期進(jìn)行有效預(yù)測,既提高辦案效率,又能減少同案裁量的差異性,以實現(xiàn)執(zhí)法的公證性。
模糊C均值算法通過把m個樣本分成c個類別,求出每個類的聚類中心,并最小化目標(biāo)函數(shù)實現(xiàn)聚類。其目標(biāo)函數(shù)的表達(dá)式為:
(1)
考慮到上述約束條件,由拉格朗日乘數(shù)法可構(gòu)造新的目標(biāo)函數(shù)如下[8]:
(2)
(3)
(4)
FCM通過不斷迭代來更新式(3)、(4),研究得到該過程的設(shè)計表述如下:
(1)確定聚類個數(shù)c,隸屬度因子n,隨機初始化的隸屬度矩陣U,最大迭代次數(shù)I=100;
(2)通過式(3)求解新的隸屬度矩陣;
(3)通過式(4)求解新的聚類中心;
(4)直到滿足最大迭代次數(shù),算法停止,否則就轉(zhuǎn)向式(2)。根據(jù)最后一次迭代的隸屬度矩陣,若uij=max{uij},則xj屬于第i類。
DNN能提取更復(fù)雜和抽象的高維特征,并在大量的數(shù)據(jù)中獲得輸入空間的有效表征。相比手動提取特征或?qū)<以O(shè)計規(guī)則的方法,DNN具有高效和高精度的優(yōu)勢。但確定DNN的網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)是本文構(gòu)建高精度DNN分類器的困難之一。針對以上問題,本文設(shè)計了基于PSO的DNN故意傷害罪分類模型,通過PSO優(yōu)化算法確定DNN網(wǎng)絡(luò)結(jié)構(gòu)參數(shù),并在優(yōu)化過程中實現(xiàn)DNN的訓(xùn)練,以便在保證模型精度的同時,更科學(xué)地確定網(wǎng)絡(luò)結(jié)構(gòu)。
粒子群優(yōu)化( Particle Swarm Optimization,PSO)是一種基于迭代的進(jìn)化計算算法[9]。算法中,首先要隨機初始化種群粒子,此時的粒子信息可以用位置Xi和速度Vi來表示。每經(jīng)過一次進(jìn)化,粒子便通過跟蹤粒子的個體極值(pbest)和種群的全局極值(gbest)來更新粒子的速度和位置[10]。pbest和gbest是根據(jù)適應(yīng)度函數(shù)找到的最優(yōu)解。找出這2個最優(yōu)解后,粒子根據(jù)以下公式來更新自己的速度和位置,即:
vij(t+1)=w*vij(t)+c1r1*[pbestij(t)-xij(t)]+c2r2*[gbestj(t)-xij(t)],
(5)
xij(t+1)=xij(t)+vij(t),
(6)
其中,w為慣性權(quán)重;vij(t)是粒子i在第t次迭代中第j維的速度;xij(t)是粒子i在當(dāng)前時刻的位置;r1,r2是(0,1)之間的隨機數(shù),用來模擬自然界中的一些微小擾動;c1,c2是學(xué)習(xí)因子,分別表示粒子對自身記憶的依賴程度和其他粒子對其施加的影響[11]。1999年,SHI等人[12]提出了慣性權(quán)值線性調(diào)整策略,也稱標(biāo)準(zhǔn)PSO。w的線性遞減迭代公式如下:
(7)
其中,tmax是迭代的最大次數(shù);t是當(dāng)前迭代次數(shù);wmax為最大權(quán)重,建議取值0.9;wmin為最小權(quán)重,建議取值0.4。當(dāng)w較大時,全局搜尋能力較強;當(dāng)w較小時,局部搜尋能力較強。因此,針對不同的搜尋問題,依賴w的動態(tài)變化,可以相應(yīng)調(diào)整全局和局部搜尋能力,使得PSO算法的性能有了極大的提升,并成功應(yīng)用于很多實際優(yōu)化問題。
本文提出基于PSO的DNN故意傷害罪分類模型,即通過PSO優(yōu)化算法確定神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)。算法的整體設(shè)計流程詳述如下。
算法1 PSO優(yōu)化算法
輸入:訓(xùn)練集Z={(x1,y1),(x2,y2),…,(xz,yz)}
輸出:最優(yōu)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)
Step1設(shè)置需要優(yōu)化的變量,如神經(jīng)網(wǎng)絡(luò)層數(shù)、每層神經(jīng)元個數(shù)、激活函數(shù)類型;
Step2設(shè)置PSO算法參數(shù):學(xué)習(xí)因子、最大進(jìn)化次數(shù)、慣性權(quán)值等;
Step3初始化粒子群,確定粒子群規(guī)模,確保每個粒子的位置向量和速度向量的維度;
Step4基于六折交叉驗證法將訓(xùn)練集劃分為DNN訓(xùn)練過程中的訓(xùn)練集和測試集,將每個測試集預(yù)測精度的平均值作為本次粒子規(guī)模下DNN分類模型的預(yù)測精度;
Step5計算各粒子的適應(yīng)度,使用Step 4中預(yù)測精度的倒數(shù)作為PSO的適應(yīng)值用作粒子空間位置優(yōu)劣的度量,適應(yīng)值越小,表明粒子位置越好;
Step6尋找pbest與gbest;
Step7根據(jù)速度更新公式(5)和位置更新公式(6)分別更新粒子的速度和位置,得到新的隨機解;
Step8當(dāng)?shù)螖?shù)大于最大迭代次數(shù)時,算法停止,得到最優(yōu)解。否則,返回Step 4繼續(xù)搜尋最優(yōu)解;
Step9將優(yōu)化得到的最優(yōu)神經(jīng)元層數(shù)、每層神經(jīng)元個數(shù)及激活函數(shù)這些超參數(shù)作為神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)參數(shù),然后根據(jù)實際輸出值與期望輸出的誤差進(jìn)行反向傳播訓(xùn)練神經(jīng)網(wǎng)絡(luò),不斷調(diào)整網(wǎng)絡(luò)權(quán)值和閾值,直到滿足迭代條件。
為證明本文提出的基于PSO算法優(yōu)化DNN模型參數(shù)得到的分類器的確在性能上優(yōu)于普通DNN分類器,本文將在4.3節(jié)中,對有無PSO優(yōu)化的DNN模型分類結(jié)果進(jìn)行比較。
極限隨機樹(Extra-Trees,ET)也稱極端樹[13],與標(biāo)準(zhǔn)的基于樹的方法相比,其強大的隨機性使得該方法在減少切分點方差的力度上更強,同時,在精度和泛化性能上也遙遙領(lǐng)先于其他集成方法。在后續(xù)的4.3節(jié)中,分別運用隨機森林、前向逐步線性回歸和ET三種算法對刑期進(jìn)行預(yù)測及對比。在極限隨機樹的構(gòu)建過程中,主要需確定3個參數(shù)。首先,確定最終極限隨機樹包含的決策樹數(shù)目N,即這N棵回歸樹的預(yù)測結(jié)果的普通算數(shù)平均數(shù)作為回歸模型最終的預(yù)測結(jié)果;其次,在每棵決策樹的每個節(jié)點隨機選擇當(dāng)前節(jié)點屬性集中的屬性個數(shù)k;最后,分裂一個節(jié)點所需的最小樣本大小nmin。以貴州法院故意傷害罪案件為訓(xùn)練樣本,對該樣本及其要素集分別定義為:
Q={(x1,y1),(x2,y2),…,(xm,ym)},P={p1,p2,…,pz}
其中,xi(i=1,2,…,m)表示第i個案件對應(yīng)各要素(屬性)的取值,yi表示案件的真實判罰刑期。
基于ET的故意傷害罪量刑預(yù)測算法詳見如下。
算法2Build_Extra_Trees_ensemble(Q)
輸入:訓(xùn)練樣本Q={(x1,y1),(x2,y2),…,(xm,ym)}
輸出:極限隨機樹T={t1,t2,…,tN}
Step1fori=1 toNdo
Step2生成一棵極限隨機樹ti=Build_an_Extra_Tree(Q);
Step3返回極限隨機樹T。
算法3Build_an_Extra_Tree(Q)
輸入:訓(xùn)練樣本Q={(x1,y1),(x2,y2),…,(xm,ym)}
輸出:一棵極限隨機樹t
Step1ifStop_split(Q)=True
Step2返回一個葉節(jié)點;
Step3else
Step4從當(dāng)前節(jié)點屬性集中隨機選擇k個屬性{p1,p2,…,pk};
Step5得到k個切分點(s1,s2,…,sk),其中si=Choose_a_random_split(Q,pi);
Step6依據(jù)Score(s*,Q)=maxi=1,…,kScore(si,Q),選擇最優(yōu)切分點s*;
Step7依據(jù)切分變量p*和切分點s*,將訓(xùn)練樣本分為2個子集Ql和Qr;
Step8利用樣本子集Ql和Qr分別構(gòu)建左子樹和右子樹:tl和tr,即:
tl=Build_an_Extra_Tree(Ql)
tr=Build_an_Extra_Tree(Qr);
Step9返回一棵極限隨機樹t。
算法4Stop_split(Q)
輸入:訓(xùn)練樣本Q={(x1,y1),(x2,y2),…,(xm,ym)}
輸出:布爾值(True/False)
Step1if |Q|nmin
Step2返回True;
Step3else if
Step4Q中的所有樣本在所有屬性上取值相同;
Step5返回True;
Step6else if
Step7Q中所有樣本的輸出結(jié)果相同;
Step8返回True;
Step9else
Step10返回False。
算法5Choose_a_random_split(Q,P)
輸入:訓(xùn)練樣本Q={(x1,y1),(x2,y2),…,(xm,ym)},屬性p
輸出:切分點
Step3返回切分點[ppc]。
本文數(shù)據(jù)由貴州法院整理并提供,故意傷害罪案件時間跨度為2016年1月~2017年5月,刑期跨度為0~240個月,案件總數(shù)量為5 000多件。
由于案件數(shù)量較多,刑期橫跨0~240個月且分布不均勻。因此,本文采用FCM聚類算法基于案件刑期進(jìn)行聚類分析。為確定最優(yōu)類別數(shù),本文分別進(jìn)行了4類、5類、6類的聚類實驗,通過觀測聚類有效性評價指標(biāo)得到結(jié)果為5的聚類效果最佳。每類偏差分別為:0.09,0.22,0.7,0.88,0.72個月。
由于貴州法院提供的故意傷害罪原始數(shù)據(jù)并不包括案件的類別劃分,因此本文將4.1節(jié)FCM得到的聚類結(jié)果作為構(gòu)建分類器模型的數(shù)據(jù)集真實類別標(biāo)簽。
故意傷害罪數(shù)據(jù)集含有不重復(fù)要素共75個,若直接將這些數(shù)據(jù)用于后續(xù)模型的建立,將造成巨大的時間開銷和計算復(fù)雜度。為了解決這一問題,本文使用主成分分析模型(Principal Component Analysis,PCA)[14],通過提取所有故意傷害罪案件要素的主要成分,從而在保證精度的同時,降低特征維度并提高模型構(gòu)建效率。
在PSO優(yōu)化過程中涉及到DNN模型的訓(xùn)練,即在每一時刻都需要獲得當(dāng)前粒子所處位置訓(xùn)練得到的DNN分類器的分類質(zhì)量,也就是準(zhǔn)確度,這是通過對訓(xùn)練模型的評估來完成的。為了體現(xiàn)分類器的泛化性能,本文利用K折交叉驗證技術(shù)(本文取K=6),將訓(xùn)練集劃分為K組子樣本,一組用于訓(xùn)練過程的驗證,其余子樣本用于計算梯度更新權(quán)重實現(xiàn)模型訓(xùn)練。每一次更新都會獲得K個結(jié)果,然后對獲得的測試精度求取平均作為本次模型精度。
本文利用PSO算法優(yōu)化DNN網(wǎng)絡(luò)模型參數(shù)的具體搜索空間與PSO求解器的超參數(shù)設(shè)置見表1。
表1 基于PSO的DNN故意傷害罪分類模型參數(shù)設(shè)置
為表明本文提出的運用PSO算法求解DNN網(wǎng)絡(luò)模型參數(shù)的可靠性,本文做了對比實驗,得到的結(jié)果見表2。
本文將PSO優(yōu)化后得到的最優(yōu)網(wǎng)絡(luò)參數(shù)作為本文擬構(gòu)建的DNN分類器結(jié)構(gòu),通過將600次迭代后得到的權(quán)重作為DNN分類模型的初始權(quán)重,在此基礎(chǔ)上繼續(xù)對分類器做訓(xùn)練,經(jīng)過1 900次迭代后得到的基于故意傷害罪數(shù)據(jù)的模型分類精度為81.59%。以上實驗充分證明基于PSO算法優(yōu)化得到的DNN故意傷害罪分類模型不僅具有較科學(xué)的網(wǎng)絡(luò)設(shè)計依據(jù),同時模型精度也有所提升。
在預(yù)測模型訓(xùn)練前,將依據(jù)4.2節(jié)中分類模型得到的各類別標(biāo)簽將數(shù)據(jù)集劃分為5組。本文針對5組數(shù)據(jù)集,分別構(gòu)建預(yù)測模型。研究將每組子樣本集隨機劃分為75%訓(xùn)練集和25%測試集。
在該實驗階段,本文運用隨機森林、前向逐步線性回歸和ET三種算法進(jìn)行刑期預(yù)測,并通過計算平均絕對誤差作為每組案件的平均偏差來評價模型優(yōu)劣,具體表達(dá)式為:
(8)
表3 回歸結(jié)果對比表
本文提出了一種融合FCM算法、基于PSO優(yōu)化的DNN分類算法、極限隨機樹等多種機器學(xué)習(xí)算法的智能專家審判系統(tǒng)。其中,基于PSO優(yōu)化的DNN分類模型較DNN模型本身有更高的分類精度;同時,極限隨機樹也比常用的回歸方法有更精確的預(yù)測結(jié)果和更好的泛化性能。通過貴州法院故意傷害罪數(shù)據(jù)的實驗驗證表明,該專家審判系統(tǒng)可為司法工作提供更科學(xué)的指導(dǎo),在保證審判公正性的同時,極大地減少了判案時間和工作量。本文旨在挖掘犯罪要素與刑期的隱含關(guān)系,為司法領(lǐng)域的研究和應(yīng)用提供了一種全新的思路。在接下來的工作中,通過改進(jìn)審判系統(tǒng)中的分類算法,以此獲得更高的分類精度,進(jìn)而提高預(yù)測模型的性能,使得預(yù)測更為精確。此外,也可嘗試對其他類型的法律案件數(shù)據(jù)進(jìn)行挖掘分析,在進(jìn)一步的模型優(yōu)化后實現(xiàn)審判系統(tǒng)的普適性。