本發(fā)明涉及汽車故障診斷儀,尤其涉及一種基于深度學(xué)習(xí)的汽車故障診斷方法及系統(tǒng)。
背景技術(shù):
1、汽車故障診斷儀是一種專業(yè)的檢測(cè)工具,它通過連接到汽車的車載診斷系統(tǒng)(obd,on-board?diagnostics)來讀取故障碼(dtc,diagnostic?trouble?codes),以識(shí)別和分析汽車中的各種故障。通過故障碼進(jìn)行診斷可以快速地指出可能的問題區(qū)域,從而節(jié)省維修時(shí)間和成本。
2、然而,故障碼僅能表示出監(jiān)測(cè)數(shù)據(jù)的異常,并不能確認(rèn)故障的具體原因。因此,即使有了故障碼,仍舊需要汽車維修專家根據(jù)他們的經(jīng)驗(yàn)和專業(yè)知識(shí)來評(píng)估和確定故障的確切原因。這可能包括進(jìn)一步的測(cè)試、檢查和維修工作。
3、理論上,深度學(xué)習(xí)技術(shù)因其能夠處理大量數(shù)據(jù)并識(shí)別復(fù)雜模式的特性,使其特別適合于代替人工分析故障碼以進(jìn)行汽車故障診斷。但是,在實(shí)際應(yīng)用中,因?yàn)槠嚬收洗a的種類極多,這就使得深度學(xué)習(xí)技術(shù)在分析故障碼時(shí)面臨著維度爆炸的問題。因此,人們需要一種能夠避免維度爆炸問題的通過深度學(xué)習(xí)技術(shù)分析故障碼進(jìn)行診斷的技術(shù)方案。
技術(shù)實(shí)現(xiàn)思路
1、因此,本發(fā)明提供一種基于深度學(xué)習(xí)的汽車故障診斷方法及系統(tǒng),用以解決現(xiàn)有技術(shù)中基于深度學(xué)習(xí)的汽車故障診斷方法存在維度爆炸的問題。
2、本發(fā)明提供了一種基于深度學(xué)習(xí)的汽車故障診斷方法,包括:
3、獲取目標(biāo)汽車的故障碼數(shù)據(jù),故障碼數(shù)據(jù)包括多個(gè)故障碼以及每個(gè)故障碼對(duì)應(yīng)的采集時(shí)序數(shù)據(jù);
4、基于采集時(shí)序數(shù)據(jù)表征的順序,將多個(gè)故障碼進(jìn)行連續(xù)地分組,得到多幀故障碼集合;
5、基于預(yù)設(shè)詞嵌入矩陣將多幀故障碼集合中的所有故障碼轉(zhuǎn)化為詞向量,合并同一幀故障碼集合中的詞向量,得到每一幀故障碼集合的上下文向量;
6、將多個(gè)上下文向量輸入至預(yù)設(shè)神經(jīng)網(wǎng)絡(luò)診斷模型中,得到目標(biāo)汽車的故障診斷結(jié)果。
7、在一種優(yōu)選的實(shí)施方式中:基于預(yù)設(shè)詞嵌入矩陣將多幀故障碼集合中的所有故障碼轉(zhuǎn)化為詞向量,合并同一幀故障碼集合中的詞向量,得到每一幀故障碼集合的上下文向量,包括:
8、獲取目標(biāo)故障碼集合,并為目標(biāo)故障碼集合中的每種故障碼建立獨(dú)熱編碼向量;
9、計(jì)算每種獨(dú)熱編碼向量和預(yù)設(shè)詞嵌入矩陣的相乘結(jié)果,得到每種獨(dú)熱編碼向量對(duì)應(yīng)的詞向量;
10、以每種獨(dú)熱編碼向量在目標(biāo)故障碼集合中出現(xiàn)的次數(shù)作為該種獨(dú)熱編碼向量對(duì)應(yīng)的詞向量的權(quán)重,計(jì)算多個(gè)詞向量的加權(quán)平均向量,作為目標(biāo)故障碼集合的上下文向量。
11、在一種優(yōu)選的實(shí)施方式中:故障碼為obd標(biāo)準(zhǔn)故障碼格式;獲取目標(biāo)故障碼集合,并為目標(biāo)故障碼集合中的每種故障碼建立獨(dú)熱編碼向量,包括:
12、獲取目標(biāo)初始故障碼,目標(biāo)初始故障碼為目標(biāo)故障碼集合中當(dāng)前待建立獨(dú)熱編碼向量的一個(gè)故障碼;
13、將目標(biāo)初始故障碼中的第二個(gè)字符修改為制造商特征碼,其中,制造商特征碼用于表示該故障碼的標(biāo)準(zhǔn)類型;
14、基于修改后的目標(biāo)初始故障碼,建立獨(dú)熱編碼向量。
15、在一種優(yōu)選的實(shí)施方式中:還包括獲取預(yù)設(shè)詞嵌入矩陣和預(yù)設(shè)神經(jīng)網(wǎng)絡(luò)診斷模型,獲取預(yù)設(shè)詞嵌入矩陣和預(yù)設(shè)神經(jīng)網(wǎng)絡(luò)診斷模型,具體包括:
16、獲取初始詞嵌入矩陣、初始神經(jīng)網(wǎng)絡(luò)診斷模型、歷史故障碼數(shù)據(jù)以及歷史故障碼數(shù)據(jù)對(duì)應(yīng)的實(shí)際故障,其中,故障碼數(shù)據(jù)包括多個(gè)歷史故障碼以及每個(gè)歷史故障碼對(duì)應(yīng)的歷史采集時(shí)序數(shù)據(jù);
17、基于歷史采集時(shí)序數(shù)據(jù)表征的順序,將多個(gè)歷史故障碼進(jìn)行連續(xù)地分組,得到多幀歷史故障碼集合;
18、基于初始詞嵌入矩陣將多幀歷史故障碼集合中的所有故障碼轉(zhuǎn)化為歷史詞向量,合并同一幀歷史故障碼集合中的歷史詞向量,得到每一幀歷史故障碼集合的歷史上下文向量;
19、將多個(gè)歷史上下文向量輸入至初始神經(jīng)網(wǎng)絡(luò)診斷模型中,得到輸出結(jié)果;
20、根據(jù)輸出結(jié)果和實(shí)際故障的差異,建立損失函數(shù);
21、基于損失函數(shù)優(yōu)化初始詞嵌入矩陣和初始神經(jīng)網(wǎng)絡(luò)診斷模型。
22、在一種優(yōu)選的實(shí)施方式中:基于損失函數(shù)優(yōu)化初始詞嵌入矩陣和初始神經(jīng)網(wǎng)絡(luò)診斷模型,包括:
23、基于損失函數(shù)對(duì)初始神經(jīng)網(wǎng)絡(luò)診斷模型進(jìn)行一次反向傳播以優(yōu)化初始神經(jīng)網(wǎng)絡(luò)診斷模型;
24、基于損失函數(shù)得到一幀歷史故障碼集合對(duì)應(yīng)的歷史上下文向量的總修正向量;
25、基于每種歷史故障碼在該幀目標(biāo)故障碼集合中出現(xiàn)的次數(shù),分解總修正向量,得到初始詞嵌入矩陣中每種歷史故障碼對(duì)應(yīng)的向量的修正分量;
26、基于修正分量,修正初始詞嵌入矩陣中每種歷史故障碼對(duì)應(yīng)的向量。
27、在一種優(yōu)選的實(shí)施方式中:基于每種歷史故障碼在該幀目標(biāo)故障碼集合中出現(xiàn)的次數(shù),分解總修正向量,得到初始詞嵌入矩陣中每種歷史故障碼對(duì)應(yīng)的向量的修正分量,包括:
28、通過下式得到一種歷史故障碼對(duì)應(yīng)的向量的修正分量:
29、;
30、其中,為一幀歷史故障碼集合對(duì)應(yīng)的歷史上下文向量的總修正向量,為第種歷史故障碼對(duì)應(yīng)的向量的修正分量,為該幀歷史故障碼集合中出現(xiàn)的歷史故障碼的總數(shù)量,為該幀歷史故障碼集合中第種歷史故障碼出現(xiàn)的數(shù)量。
31、在一種優(yōu)選的實(shí)施方式中:基于修正分量,修正初始詞嵌入矩陣中每種歷史故障碼對(duì)應(yīng)的向量,包括:
32、通過下式修正初始詞嵌入矩陣中一種歷史故障碼對(duì)應(yīng)的向量:
33、;
34、其中,為初始詞嵌入矩陣中第種歷史故障碼對(duì)應(yīng)的修正后的向量,為初始詞嵌入矩陣中第種歷史故障碼對(duì)應(yīng)的修正前的向量,為預(yù)設(shè)學(xué)習(xí)率。
35、在一種優(yōu)選的實(shí)施方式中:采集時(shí)序數(shù)據(jù)包括每個(gè)故障碼對(duì)應(yīng)的時(shí)間戳;基于采集時(shí)序數(shù)據(jù)表征的順序,將多個(gè)故障碼進(jìn)行連續(xù)地分組,得到多幀故障碼集合,包括:
36、基于時(shí)間戳的順序排列多個(gè)故障碼;
37、基于預(yù)設(shè)時(shí)間間隔將多個(gè)故障碼進(jìn)行連續(xù)地分組,得到多幀故障碼集合。
38、在一種優(yōu)選的實(shí)施方式中:采集時(shí)序數(shù)據(jù)包括每個(gè)故障碼對(duì)應(yīng)的行駛里程;基于采集時(shí)序數(shù)據(jù)表征的順序,將多個(gè)故障碼進(jìn)行連續(xù)地分組,得到多幀故障碼集合,包括:
39、基于行駛里程的順序排列多個(gè)故障碼;
40、基于預(yù)設(shè)分組總數(shù)將多個(gè)故障碼進(jìn)行連續(xù)地分組,得到多幀故障碼集合。
41、本發(fā)明還提供一種基于深度學(xué)習(xí)的汽車故障診斷系統(tǒng),包括:
42、數(shù)據(jù)收集模塊,用于獲取目標(biāo)汽車的故障碼數(shù)據(jù),故障碼數(shù)據(jù)包括多個(gè)故障碼以及每個(gè)故障碼對(duì)應(yīng)的采集時(shí)序數(shù)據(jù);
43、數(shù)據(jù)分組模塊,用于基于采集時(shí)序數(shù)據(jù)表征的順序,將多個(gè)故障碼進(jìn)行連續(xù)地分組,得到多幀故障碼集合;
44、數(shù)據(jù)降維模塊,用于基于預(yù)設(shè)詞嵌入矩陣將多幀故障碼集合中的所有故障碼轉(zhuǎn)化為詞向量,合并同一幀故障碼集合中的詞向量,得到每一幀故障碼集合的上下文向量;
45、故障診斷模塊,用于將多個(gè)上下文向量輸入至預(yù)設(shè)神經(jīng)網(wǎng)絡(luò)診斷模型中,得到目標(biāo)汽車的故障診斷結(jié)果。
46、采用上述實(shí)施例的有益效果是:
47、本發(fā)明提供了一種基于深度學(xué)習(xí)的汽車故障診斷方法及系統(tǒng),其先獲取目標(biāo)汽車的故障碼數(shù)據(jù),故障碼數(shù)據(jù)包括多個(gè)故障碼以及每個(gè)故障碼對(duì)應(yīng)的采集時(shí)序數(shù)據(jù),然后基于采集時(shí)序數(shù)據(jù)表征的順序,將多個(gè)故障碼進(jìn)行連續(xù)地分組,得到多幀故障碼集合,之后基于預(yù)設(shè)詞嵌入矩陣將多幀故障碼集合中的所有故障碼轉(zhuǎn)化為詞向量,合并同一幀故障碼集合中的詞向量,得到每一幀故障碼集合的上下文向量,最后將多個(gè)上下文向量輸入至預(yù)設(shè)神經(jīng)網(wǎng)絡(luò)診斷模型中,得到目標(biāo)汽車的故障診斷結(jié)果。相比于現(xiàn)有技術(shù),本發(fā)明一方面通過對(duì)多個(gè)故障碼進(jìn)行分組的方式,使原本在時(shí)間上隨機(jī)生成的故障碼調(diào)整為規(guī)律的序列,降低了故障碼在時(shí)間尺度上的維度,另一方面,本發(fā)明還將每種故障碼都視為一個(gè)詞匯,利用自然語言處理領(lǐng)域中的詞嵌入技術(shù)轉(zhuǎn)用于對(duì)故障碼的編碼,將復(fù)雜的故障碼通過維度較低的詞向量進(jìn)行表示,降低了故障碼在本身種類尺度上的維度,解決了現(xiàn)有技術(shù)中基于深度學(xué)習(xí)的汽車故障診斷方法存在維度爆炸的問題。