可解釋AI是什么

小編給大家分享一下可解釋AI是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

成都創(chuàng)新互聯(lián)公司主營孝昌網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app軟件開發(fā)公司,孝昌h5小程序開發(fā)搭建,孝昌網(wǎng)站營銷推廣歡迎孝昌等地區(qū)企業(yè)咨詢

1. 為什么需要可解釋AI?

在人類歷史上,技術(shù)進步、生產(chǎn)關(guān)系邏輯、倫理法規(guī)的發(fā)展是動態(tài)演進的。當(dāng)一種新的技術(shù)在實驗室獲得突破后,其引發(fā)的價值產(chǎn)生方式的變化會依次對商品形態(tài)、生產(chǎn)關(guān)系等帶來沖擊,而同時當(dāng)新技術(shù)帶來的價值提升得到認可后,商業(yè)邏輯的組織形態(tài)在自發(fā)的調(diào)整過程中,也會對技術(shù)發(fā)展的路徑、內(nèi)容甚至速度提出訴求,并當(dāng)訴求得到滿足時適配以新型的倫理法規(guī)。在這樣的相互作用中,技術(shù)系統(tǒng)與社會體系會共振完成演進,是謂技術(shù)革命。

近10年來,籍由算力與數(shù)據(jù)規(guī)模的性價比突破臨界點,以深度神經(jīng)網(wǎng)絡(luò)為代表的聯(lián)結(jié)主義模型架構(gòu)及統(tǒng)計學(xué)習(xí)范式(以后簡稱深度學(xué)習(xí))在特征表征能力上取得了跨越級別的突破,大大推動了人工智能的發(fā)展,在很多場景中達到令人難以置信的效果。比如:人臉識別準確率達到97%以上;谷歌智能語音助手回答正確率,在2019年的測試中達到92.9%。在這些典型場景下,深度學(xué)習(xí)在智能表現(xiàn)上的性能已經(jīng)超過了普通人類(甚至專家),從而到了撬動技術(shù)更替的臨界點。在過去幾年間,在某些商業(yè)邏輯對技術(shù)友好或者倫理法規(guī)暫時稀缺的領(lǐng)域,如安防、實時調(diào)度、流程優(yōu)化、競技博弈、信息流分發(fā)等,人工智能(暨深度學(xué)習(xí))取得了技術(shù)和商業(yè)上快速突破。

食髓知味,技術(shù)發(fā)展的甜頭自然每個領(lǐng)域都不愿放過。而當(dāng)對深度學(xué)習(xí)商業(yè)化運用來到某些對技術(shù)敏感、與人的生存或安全關(guān)系緊密的領(lǐng)域,如自動駕駛、金融、醫(yī)療和司法等高風(fēng)險應(yīng)用場景時,原有的商業(yè)邏輯在進行技術(shù)更替的過程中就會遇到阻力,從而導(dǎo)致商業(yè)化(及變現(xiàn))速度的減緩甚至失敗。究其原因,以上場景的商業(yè)邏輯及背后倫理法規(guī)的中樞之一是穩(wěn)定的、可追蹤的責(zé)任明晰與分發(fā);而深度學(xué)習(xí)得到的模型是個黑盒,無法從模型的結(jié)構(gòu)或權(quán)重中獲取模型行為的任何信息,從而使這些場景下責(zé)任追蹤和分發(fā)的中樞無法復(fù)用,導(dǎo)致人工智能在業(yè)務(wù)應(yīng)用中遇到技術(shù)和結(jié)構(gòu)上的困難。

舉2個具體的例子:

  1. 在金融風(fēng)控場景,通過深度學(xué)習(xí)模型識別出來小部分用戶有欺詐嫌疑,但是業(yè)務(wù)部門不敢直接使用這個結(jié)果進行處理,因為難以理解結(jié)果是如何得到的,從而無法判斷結(jié)果是否準確,擔(dān)心處理錯誤;而且缺乏明確的依據(jù),如果處理了,也無法向監(jiān)管機構(gòu)交代;

  2. 例2,在醫(yī)療領(lǐng)域,深度學(xué)習(xí)模型根據(jù)患者的檢測數(shù)據(jù),判斷患者有肺結(jié)核,但是醫(yī)生不知道診斷結(jié)果是怎么來的,不敢直接采用,而是根據(jù)自己的經(jīng)驗,仔細查看相關(guān)檢測數(shù)據(jù),然后給出自己的判斷。從這2個例子可以看出,黑盒模型嚴重影響模型在實際場景的應(yīng)用和推廣。

要解決模型的這些問題,就需要打開黑盒模型,透明化模型構(gòu)建過程和推理機理。那么可解釋AI是實現(xiàn)模型透明化的有效技術(shù)。

2. 什么是可解釋AI?

可解釋AI (eXplainable AI(XAI)),不論是學(xué)術(shù)界還是工業(yè)界都沒有一個統(tǒng)一的定義。這里列舉3種典型定義,供大家參考討論:

①可解釋性就是希望尋求對模型工作機理的直接理解,打破人工智能的黑盒子。

②可解釋AI是為AI算法所做出的決策提供人類可讀的以及可理解的解釋。

③可解釋的AI是確保人類可以輕松理解和信任人工智能代理做出的決策的一組方法。

可見,關(guān)注點在于對模型的理解,黑盒模型白盒化以及模型的可信任。

MindSpore團隊根據(jù)自身的實踐經(jīng)驗和理解,將可解釋AI定義為:一套面向機器學(xué)習(xí)(主要是深度神經(jīng)網(wǎng)絡(luò))的技術(shù)合集,包括可視化、數(shù)據(jù)挖掘、邏輯推理、知識圖譜等,目的是通過此技術(shù)合集,使深度神經(jīng)網(wǎng)絡(luò)呈現(xiàn)一定的可理解性,以滿足相關(guān)使用者對模型及應(yīng)用服務(wù)產(chǎn)生的信息訴求(如因果或背景信息),從而為使用者對人工智能服務(wù)建立認知層面的信任。

3. 可解釋AI解決什么問題?

按DARPA(美國國防部先進研究項目局)的說法,可解釋AI的目的,就是要解決用戶面對模型黑盒遇到問題,從而實現(xiàn):

①用戶知道AI系統(tǒng)為什么這樣做,也知道AI系統(tǒng)為什么不這樣做。

②用戶知道AI系統(tǒng)什么時候可以成功,也知道AI系統(tǒng)什么時候失敗。

③用戶知道什么時候可以信任AI系統(tǒng)。

④用戶知道AI系統(tǒng)為什么做錯了。

MindSpore實現(xiàn)的可解釋AI計劃主要解決如下兩類問題:

①解決深度學(xué)習(xí)機制下技術(shù)細節(jié)不透明的問題,使得開發(fā)者可以通過XAI工具對開發(fā)流程中的細節(jié)信息進行獲取,并通過獲取到的可理解信息,幫助開發(fā)者進行模型故障排除或性能提升;

②提供深度學(xué)習(xí)技術(shù)與服務(wù)對象的友好的認知接口(cognitive-friendly interface),通過該接口,基于深度學(xué)習(xí)的服務(wù)提供者可以有合適工具對深度學(xué)習(xí)服務(wù)進行商業(yè)化邏輯的操作,基于深度學(xué)習(xí)的人工智能服務(wù)的消費者可以獲得必要的釋疑并建立信任,也可以為AI系統(tǒng)的審核提供能力支持。

4. 實現(xiàn)可解釋AI的方法

從前面的介紹,大家可以感覺到可解釋AI很高大上,那么具體如何實現(xiàn)呢?結(jié)合業(yè)界的研究成果,我們認為實現(xiàn)可解釋AI主要有3類方法:

第一類是基于數(shù)據(jù)的可解釋性,通常稱為深度模型解釋,是最容易想到的一種方法,也是很多論文里面經(jīng)常涉及的一類技術(shù);主要是基于數(shù)據(jù)分析和可視化技術(shù),實現(xiàn)深度模型可視化,直觀展示得到模型結(jié)果的關(guān)鍵依據(jù)。

第二類是基于模型的可解釋性,這類方法也稱為可解釋模型方法,主要是通過構(gòu)建可解釋的模型,使得模型本身具有可解釋性,在輸出結(jié)果的同時也輸出得到該結(jié)果的原因。

第三類是基于結(jié)果的可解釋性,此類方法又稱為模型歸納方法,思路是將已有模型作為一個黑盒,根據(jù)給定的一批輸入和對應(yīng)的輸出,結(jié)合觀察到模型的行為,推斷出產(chǎn)生相應(yīng)的結(jié)果的原因,這類方法的好處是完全與模型無關(guān),什么模型都可以用。

5. MindSpore1.1版本的可解釋AI能力

MindSpore1.1開源版本,在MindInsight部件中集成了的可解釋AI能力:顯著圖可視化(Saliency Map Visualization),也稱為關(guān)鍵特征區(qū)域可視化。這部分歸屬于第一類基于數(shù)據(jù)的可解釋性方法,后續(xù)我們將陸續(xù)開源更多的解釋方法,除了第一類,還將包括第二類基于模型的可解釋方法和第三類基于結(jié)果的可解釋方法。

當(dāng)前顯著圖可視化主要是CV領(lǐng)域的模型解釋,在1.1版本中,我們支持6種顯著圖可視化解釋方法:Gradient、Deconvolution、GuidedBackprop、GradCAM、RISE、Occlusion。

其中:Gradient、Deconvolution,、GuidedBackprop和GradCAM等4種方法屬于基于梯度的解釋方法。這種類型的解釋方法,主要利用模型的梯度計算,來突顯關(guān)鍵特征,效率比較高,下面簡要介紹下這4種方法:

  • Gradient,是最簡單直接的解釋方法,通過計算輸出對輸入的梯度,得到輸入對最終輸出的“貢獻”值;而Deconvolution和GuidedBackprop是對Gradient的延展和優(yōu)化;

  • Deconvolution,對原網(wǎng)絡(luò)中ReLU進行了修改使其成為梯度的ReLU,從而過濾負向梯度,僅關(guān)注對輸出起到正向貢獻的特征;

  • GuidedBackprop,是在原網(wǎng)絡(luò)ReLU基礎(chǔ)上對負梯度過濾,僅關(guān)注對輸出起到正向貢獻的且激活了的特征,能夠減少顯著圖噪音;

  • GradCAM,針對中間激活層計算類別權(quán)重,生成對類別敏感的顯著圖,可以得到類別相關(guān)的解釋。

另外2種方法:Occlusion和RISE,則屬于基于擾動的解釋方法,該類型方法的好處是,僅需利用模型的輸入和輸出,可以做到模型無關(guān),具體說明下:

  • RISE,使用蒙特卡洛方法,對隨機掩碼進行加權(quán)(權(quán)重為遮掩后的模型的輸出)平均得到最終顯著圖;

  • Occlusion,通過遮掩特定位置的輸入,計算模型輸出的改變量來得到該位置的“貢獻”,遍歷全部輸入,得到顯著圖。

那么對于具體場景,該如何選擇合適的解釋方法來解釋對應(yīng)的模型呢?

為了滿足這個訴求,MindSpore1.1版本提供了可解釋AI的度量框架,同時還提供了4種度量方法:Faithfulness、Localization、Class sensitivity、Robustness,針對不同解釋方法的解釋效果進行度量,幫助開發(fā)者或用戶選擇最合適的解釋方法。簡單描述下這4種度量方法:

  • Faithfulness,可信度。按照重要度從大到小移除特征,并記錄特定標簽概率的減少量。遍歷所有特征之后,比較置信度減少量的分布和特征重要性的分布相似性。與黑盒模型越契合的解釋,兩個分布情況應(yīng)當(dāng)越相似,該解釋方法具有更好的可信度。

  • Localization,定位性。基于顯著圖的解釋具有目標定位的能力(即給定感興趣的標簽,顯著圖高亮圖片中與標簽相關(guān)的部分),localization借助目標檢測數(shù)據(jù)集,對于同一圖片同一個標簽,通過顯著圖高亮部分和Ground Truth的重合度,來度量顯著圖的定位能力。

  • Class sensitivity,分類敏感度,不同分類對應(yīng)的圖中的對象的顯著圖高亮部分應(yīng)該明顯不同。將概率最大和最小標簽的顯著圖進行比較,如果兩個標簽的顯著圖差異越大,解釋方法的分類敏感度越好。

  • Robustness,健壯性。該指標反映解釋方法在局部范圍的抗擾動能力,Lipschitz值越小,解釋收擾動影響越小,健壯性越強。

下面結(jié)合MindSpore1.1版本中已支持的顯著圖可視方法的其中3種解釋方法:Gradient 、GradCAM和RISE,介紹如何使用可解釋AI能力來更好理解圖片分類模型的預(yù)測結(jié)果,獲取作為分類預(yù)測依據(jù)的關(guān)鍵特征區(qū)域,從而判斷得到分類結(jié)果的合理性和正確性,加速模型調(diào)優(yōu)。

6、常見顯著圖可視解釋方法介紹

6.1 Gradient解釋方法

Gradient,是最簡單直接的基于梯度的解釋方法,通過計算輸出對輸入的梯度,得到輸入對最終輸出的“貢獻”值,用于解釋預(yù)測結(jié)果的關(guān)鍵特征依據(jù)。

對深度神經(jīng)網(wǎng)絡(luò),這個梯度計算可通過后向傳播算法獲得,如下圖所示:

可解釋AI是什么

Source:Understanding models via visualizations and attribution

注:Gradient解釋方法會遇到梯度飽和問題,即某個特征的貢獻一旦達到飽和后,由于該特征不再對結(jié)果的變化產(chǎn)生影響,會導(dǎo)致該特征的梯度為0而出錯。

Gradient解釋效果如下圖所示:

可解釋AI是什么

可解釋AI是什么

注:所有解釋效果圖片均來源于MindInsight截圖

從上面2張圖中可以看出,Gradient的解釋結(jié)果可理解性較差,顯著圖高亮區(qū)域成散點狀,沒有清晰明確的特征區(qū)域定位,很難從中獲取到預(yù)測結(jié)果的具體特征依據(jù)。

6.2 GradCAM解釋方法

GradCAM,是Gradient-weighted Class Activation Mapping的簡寫,一般翻譯為:加權(quán)梯度的類激活映射,是一種基于梯度的解釋方法;該解釋方法通過對某一層網(wǎng)絡(luò)各通道激活圖進行加權(quán)(權(quán)重由梯度計算得到),得到影響預(yù)測分類結(jié)果的關(guān)鍵特征區(qū)域。

GradCAM解釋結(jié)果過程的概覽,如下圖:

可解釋AI是什么

Source:Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization

這里給出2個實際的例子,來看看GradCAM具體的解釋效果:

可解釋AI是什么

可解釋AI是什么

可以看到GradCAM的解釋結(jié)果定位性和可理解性比較好,高亮區(qū)域集中在具體的特征上,用戶可以通過高亮區(qū)域判斷出和預(yù)測結(jié)果相關(guān)的特征。對于標簽“路牌”,圖像中的路牌被高亮,對于標簽“飛機”,圖像中的飛機被高亮,即GradCAM認為路牌區(qū)域和飛機區(qū)域是2個分類結(jié)果的主要依據(jù)。

6.3 RISE解釋方法

RISE,是Randomized Input Sampling for Explanation的簡寫,即基于隨機輸入采樣的解釋,是一種基于擾動的解釋,與模型無關(guān);主要原理:使用蒙特卡洛采樣產(chǎn)生多個掩碼,然后對隨機掩碼進行加權(quán)(權(quán)重為遮掩后的模型的輸出)平均得到最終顯著圖。

RISE方法解釋過程的概覽圖,如下:

可解釋AI是什么

Source:RISE: Randomized Input Sampling for Explanation of Black-box Models

同樣給出2個示例,展示下解釋效果:

可解釋AI是什么

可解釋AI是什么

RISE采用遮掩的方法得到與分類結(jié)果相關(guān)的特征區(qū)域,解釋結(jié)果的可理解性和定位性不錯,和GradCAM類似,RISE準確地高亮了路牌區(qū)域和飛機區(qū)域。

7、MindSpore解釋方法如何解釋圖片分類模型?

在實際應(yīng)用中,上面介紹的3種解釋方法的解釋效果如何呢?根據(jù)預(yù)測結(jié)果和解釋的有效性,我們將解釋結(jié)果分為3類,并分別找?guī)讉€典型的例子來看看實際的效果。

說明:下面所有示例圖中的解釋結(jié)果,都是MindSpore的MindInsight部件中的模型解釋特性展現(xiàn)出來的。

7.1 預(yù)測結(jié)果正確,依據(jù)的關(guān)鍵特征合理的例子

可解釋AI是什么

例7.1.1:上圖預(yù)測標簽是“bird”,右邊給出依據(jù)的關(guān)鍵特征在鳥身上,說明這個分類判斷依據(jù)是合理的。

可解釋AI是什么

例7.1.2:上圖預(yù)測標簽是“bicycle”,右邊解釋的時候,將自行車車輪高亮,這個關(guān)鍵特征同樣較為合理。

7.2 預(yù)測結(jié)果正確,但給出的關(guān)鍵特征依據(jù)可能是錯誤的例子

可解釋AI是什么

例7.2.1:原圖中,有人,在預(yù)測標簽中有1個標簽是“person”,這個結(jié)果是對的;但是選擇“person”標簽,在查看右邊解釋的時候,可以看到高亮區(qū)域在馬頭上,那么這個關(guān)鍵特征依據(jù)很可能是錯誤的。

可解釋AI是什么

例7.2.2:原圖中,有一只鳥,預(yù)測結(jié)果“bird”是對的,但是右邊解釋的時候,高亮區(qū)域在樹枝和樹葉上,而不是鳥的身上,這個依據(jù)也很可能是錯的。

可解釋AI是什么

例7.2.3:上圖中,有1艘小艇,有個標簽是“boat”,這個沒錯。不過在右邊針對標簽“boat”的解釋,高亮區(qū)域卻在人身上,這個偏差有點大。

仔細分析上面的3個例子,這種高亮標識出來作為分類依據(jù)的關(guān)鍵特征,出現(xiàn)錯誤的情況,一般出現(xiàn)在圖像中存在多目標的場景中。根據(jù)調(diào)優(yōu)經(jīng)驗,往往是因為在訓(xùn)練過程中,這些特征經(jīng)常與目標對象共同出現(xiàn),導(dǎo)致模型在學(xué)習(xí)過程中,錯誤將這些特征識別為關(guān)鍵特征。

7.3 預(yù)測結(jié)果錯誤,結(jié)合依據(jù)的關(guān)鍵特征分析錯因的例子

可解釋AI是什么

例7.3.1:在上圖中,有個預(yù)測標簽為“boat”,但是原始圖像中并沒有船只存在,通過圖中右側(cè)關(guān)于標簽“boat”的解釋結(jié)果可以看到模型將水面作為分類的關(guān)鍵依據(jù),得到預(yù)測結(jié)果“boat”,這個依據(jù)是錯誤的。通過對訓(xùn)練數(shù)據(jù)集中標簽為“boat”的數(shù)據(jù)子集進行分析,發(fā)現(xiàn)絕大部分標簽為“boat”的圖片中,都有水面,這很可能導(dǎo)致模型訓(xùn)練的時候,誤將水面作為“boat”類型的關(guān)鍵依據(jù)?;诖?,按比例補充有船沒有水面的圖片集,從而大幅消減模型學(xué)習(xí)的時候誤判關(guān)鍵特征的概率。

可解釋AI是什么

例7.3.2:圖中有一個分類預(yù)測結(jié)果是“aeroplane”,但圖中并沒有飛機。從標簽“aeroplane”的解釋結(jié)果看,高亮區(qū)域在鷹的身上。打開飛機相關(guān)的訓(xùn)練數(shù)據(jù)子集,發(fā)現(xiàn)很多情況下訓(xùn)練圖片中飛機都是遠處目標,與老鷹展翅滑翔很像,猜測可能是這種原因?qū)е履P屯评淼臅r候,誤將老鷹當(dāng)做飛機了。模型優(yōu)化的時候,可以考慮增加老鷹滑翔的圖片比例,提升模型的區(qū)分和辨別能力,提高分類準確率。

可解釋AI是什么

例7.3.3:這個例子中,有個預(yù)測標簽是“person”,仔細看圖中沒有人。根據(jù)標簽“person”的解釋結(jié)果,高亮區(qū)域在摩托車的前部;在原圖中,乍一看,還真像一個人趴著;猜測是分類模型推理的時候,誤將這部分當(dāng)做人了。

8、如何部署和使用MindSpore解釋方法?

在MindSpore官網(wǎng)的模型解釋教程中,詳細介紹了如何部署和使用MindSpore提供的解釋方法,鏈接請見:

https://www.mindspore.cn/tutorial/training/zh-CN/r1.1/advanced_use/model_explaination.html

下面,對部署和使用方法,做簡要介紹:

先使用腳本調(diào)用MindSpore 提供的python API進行解釋結(jié)果的生成和收集,然后啟動MindInsight對這些結(jié)果進行展示,整體流程如下圖:

可解釋AI是什么

具體步驟如下:

8.1 準備腳本

通過調(diào)用解釋方法Python API對模型預(yù)測結(jié)果進行解釋,已提供的解釋方法可以在mindspore.explainer.explanation包中獲取。用戶準備好待解釋的黑盒模型和數(shù)據(jù),在腳本中根據(jù)需要實例化解釋方法,調(diào)用API用于收集解釋結(jié)果。

MindSpore還提供mindspore.explainer.ImageClassificationRunner接口,支持自動化運行所有解釋方法。用戶事先將實例化的解釋方法進行注冊,即可在該接口調(diào)用后自動運行解釋方法,生成及保存包含解釋結(jié)果的解釋日志。

下面以ResNet50為例,介紹如何初始化explanation中解釋方法,調(diào)用ImageClassificationRunner進行解釋。其樣例代碼如下:

```
import mindspore.nn as nn
from mindspore.explainer.explanation import GradCAM, GuidedBackprop
from mindspore.explainer import ImageClassificationRunner
  
from user_defined import load_resnet50, get_dataset, get_class_names
  
  
# load user defined classification network and data
network = load_resnet50()
dataset = get_dataset()
classes = get_class_names()
data = (dataset, classes)
  
runner = ImageClassificationRunner(summary_dir='./summary_dir', network=network, activation_fn=nn.Sigmoid(), data=data)
  
# register explainers
explainers = [GradCAM(network, layer='layer4'), GuidedBackprop(network)]
runner.register_saliency(explainers)
  
# run and generate summary
runner.run()
 ```

8.2 使用MindInsight進行結(jié)果展示

8.2.1 啟動MindInsight

啟動MindInsight系統(tǒng),在頂部選擇進入“模型解釋”模塊??梢钥吹剿械慕忉屓罩韭窂剑?dāng)日志滿足條件時,操作列會有“顯著圖可視化”的功能入口。

可解釋AI是什么

8.2.2 各項功能介紹

顯著圖可視化用于展示對模型預(yù)測結(jié)果影響最為顯著的圖片區(qū)域,通常高亮部分可視為圖片被標記為目標分類的關(guān)鍵特征。

可解釋AI是什么

進入顯著圖可視化界面,如上圖,會展現(xiàn):

  • 用戶通過Dataset的Python API接口設(shè)置的目標數(shù)據(jù)集。

  • 真實標簽、預(yù)測標簽,以及模型對對應(yīng)標簽的預(yù)測概率。根據(jù)具體情況,系統(tǒng)會在對應(yīng)標簽的左上角增加TP, FP,F(xiàn)N(含義見界面提示信息)的旗標。

  • 選中的解釋方法給出的顯著圖。

界面操作介紹:

1.通過界面上方的解釋方法勾選需要的解釋方法;

2.通過切換界面右上方的“疊加于原圖”按鈕,可以選擇讓顯著圖疊加于原圖上顯示;

3.點擊不同標簽,顯示對不同標簽的顯著圖分析結(jié)果,對于不同的分類結(jié)果,通常依據(jù)的關(guān)鍵特征區(qū)域也是不同的;

4.通過界面上方的標簽篩選功能,篩選出指定標簽圖片;

5.通過界面右上角的圖片排序改變圖片顯示的順序;

6.點擊圖片可查看放大圖。

可解釋AI是什么

以上是“可解釋AI是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

本文標題:可解釋AI是什么
文章網(wǎng)址:http://bm7419.com/article36/psccsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、用戶體驗、電子商務(wù)、品牌網(wǎng)站建設(shè)、Google、定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司