Share your ideas for the JMP Scripting Unsession at Discovery Summit by September 17th. We hope to see you there!
Choose Language Hide Translation Bar
Ritalv
Staff
提速增效,神經網路助力企業運營更高效

處在工業4.0時代,大家一方面常常被業界領袖級企業極其先進的全自動產線所震撼,另一方面又常常慨歎自己的企業因為資金所限產線跟不上時代,運營效率不高。其實用對了方法,你也一樣可以助力自家企業提速增效。

 

製造業的生產模式都有哪些?重點又是什麼?

為了幫助大家能夠切實體會到如何通過先進的分析方法幫助企業提速增效,下面我們就通過一個實際工作中的真實案例來聊聊如何借助於JMP軟體中的AI平臺來提升企業運營水準,達到意想不到的效果。希望對你有一定的借鑒意義和幫助。

 

你的企業是否遇到這樣的問題?

下面這張high  level流程圖代表了一些電子類企業的製造過程。其中:

  • A- ‘produce the product’代表通過某種技術製造產品的製程;
  • B-‘Electrical test process’代表通過大規模自動測試儀器來檢測產品的各種電性參數;
  • C-‘Human inspection and binning’ 代表人工判斷(包括外觀缺陷)和分類的過程;
  • D-‘SPC system’代表企業已有的統計製程管制系統;
  • E-‘Call for action’代表隨著SPC警報所需要回應的相關措施;
  • F-‘move to next’代表如果SPC結果正常可以放行到下一步。

流程图.jpg

其中資訊流動順序是B-‘Electrical test process’(以下簡稱B站)的結果傳輸到 C-‘human inspection and binning’(以下簡稱C站),C站人工基於B站的結果和自己的判斷來進一步分類不同的次級品類型,C站按照不同次級品類型的分類資料進一步傳輸到D站作為SPC系統的輸入,並為下一步的產品處置做出判斷。

 

流程中暴露的問題是非常顯而易見的,C站的人工判斷不但佔據了大量的人力資源,引入了人員疲勞的因素,而且從處理週期上很自然的要受制於人工作業時間。回憶下我們剛剛提過的製造業企業核心競爭力,這無異于延長了交貨週期,增加了產品控制風險並提升了企業運營成本。 那麼,有沒有某種可能性用電腦來説明實現這一步驟?如果可以的話,又該如何做呢?

 

著手調研,驗證假設

既然B站產生了很多電性測試資料,那麼我們的假設便是能否通過B站產生的資料來預測C站的人工分類結果。實際上B站的電性參數比如信噪比等,很多都受制於電感,電阻,電容等在裝配時的精度影響,所以從理論上來看,B站的測試結果可以在一定程度上預測裝配等的外觀缺陷。為此,我們首先選取了過去半年B站的測試資料,這裡要注意只選取了B站的電性次級品資料(原因是對於這個案例,次級品資料才是需要提取的有價值資訊,B站的電性測試只要有其中一項fail,就是次級品),其中,表中每一行代表單個產品的資訊,使用JMP軟體中的‘Join table’功能,把B站的資料(Table B)和C站歷史上被人工分類的資料(Table C)表格通過Product ID連接在一起。

 

Table B中Product ID是序列型資料,Test1到test N是名目型資料,包含了經過B站每一項電性測試的pass/fail結果。Table C中 Reject Type是名目型資料,包含了C站人工分類的結果。(限於資料量龐大,部分截圖如下)

原始数据表.jpg

點擊Table下面的join 功能,進入以下視窗,選中Product ID作為主鍵將Table B和Table C連結起來。

Join Table.jpg

這樣,我們就將兩張表結合到了一起。為了方便大家理解,隱藏了Test19及其以後的測試項,請重點注意:此時有了Reject type一列,也就是C站的人工分類結果。

Joined data.jpg

下一步要就要來做預測了,那麼,到底該選擇哪種方法呢?

 

為何選擇神經網路?

依靠JMP強大的’Predictive modeling’ 平臺,我們可以接觸到目前業界應用較為普遍的演算法。(儘管JMP本身並沒有包括像Tensor flow等那樣的演算法,但JMP可以直接調用R或Python的輸出結果 ,感興趣的朋友可以針對自己的項目加以考慮,但這並不影響JMP的效用,因為你會節省很多寫程式的時間)。比如k-Nearest neighbor ,Naive–Bayes,Bootstrap Forest (Decision Tree)和Neural networks.

 

在這個案例中,我們選擇使用神經網路演算法,其主要原因是因為神經網路演算法在近些年的世界演算法大賽上屢獲殊榮,大家樂於學習這種演算法的興趣日益高漲,因此應用到此案例中可能對大家的實際工作更有指導意義。其次,因為電子企業中一般資料量龐大(元件越來越小型化),而神經網路演算法會隨著資料量的增加而提升其準確性,極大化逼近線性或非線性的各種可能組合(就像一張棋盤在佈局),但其他演算法往往會在準確性上遇到天花板,儘管在處理小量資料時可能用到。第三,其他演算法有諸多使用限制條件及假設,比如Naive–Bayes就假設所有的預測變數都相互獨立,一旦實際案例中這個假設不成立,則效果就大打折扣。

 

預測建模,驗證分析

選擇了神經網路之後,我們就要正式進入分析了。首先,我們要設定訓練(Training) 資料和驗證(Validation)資料的比例,根據經驗和專案自身特點,這裡我們選取75%作為訓練資料,選擇另外25%作為驗證資料(當然你也可以根據自身專案的特點選擇其他比例,比如80%為訓練資料,20%為驗證資料,比例本身並沒有硬性規定)。選擇JMP軟體功能表Analyze ->Predictive Modeling-> Make Validation Column之後,表格會自動按照75% Training Set和25% Validation Set添加一列 validation,如下所示:

Make Validation Column.jpg

注意此時多出了最後一列Validation。

Data table with Validation.jpg

點擊Validation列的嵌入公式如下,可以看到實際上JMP使用了Random Category函數。

Random Category函数.jpg

 

根據JMP自動分配Validation列之後的表格,我們選擇Analyze > Predictive Modeling > Neural. Neural 啟動視窗如下圖所示:

Neural 启动窗口.jpg

 

之後我們來到Model Launch 控制台,這裡讓人比較頭疼的是如何設置hidden layer的個數(本例只設定1st hidden layer以降低模型複雜度)。

Model Launch 控制面板.jpg

根據經驗公式設定如下,其中N代表input layer 節點個數,N2代表1st hidden layer節點個數,M代表Output layer個數。計算後1st hidden layer個數(N2)為31。學習效率和懲罰係數使用JMP預設值。可以參考以下層級排布示意圖:

层级排布示意图.jpg

這裡分享給大家一個經驗公式,供參考。

Number of Hidden=N2

Number of Input=N

Number of Output=M

Number of Hidden Points: N2 < Product count - 1

Number of Inputs:               N < Product count- 1

N2=sqrt(N+M+1)+a (a=1 to 10)

帶入本例中的數值,得到N2為31.

N=734  M=6

N2=31

 

最終運算結果如下,Validation的Generalized R Square大於0.8。

Generalized R Square.jpg

 

運行ROC曲線: Predictive and Specialized Modeling > Partition Models > Partition Platform Options > ROC Curve.  ROC(Receiver Operating Characteristic)曲線中的1代表模型完美契合,0.5代表模型幾近不能辨別組間差異。從此圖上來看,所有曲線(不同顏色代表不同類型的次級品)面積均大於0.8,符合預期。

ROC曲线.jpg

 

解讀結果,拓展應用

 

將Validation結果帶入計算後(如下表所示)你會發現,神經網路演算法對於重點類型次級品(A類,B類,C類)相對人工分類吻合度可以達到70%以上,對於C類品吻合程度高達95%。基於此案例的生產環境,完全可以用於日常重點SPC控制的輸入以輔助產品監控,也就是說,當B站電性測試結束的時候,如果出現異常,控制圖就會及時報警。

Actual

Predicted Count

 

Reject Type

Reject A

Reject B

Reject C

Reject D

Reject E

Reject F

Total Count

Match Rate

Reject A

786

228

53

25

16

6

1114

71%

Reject B

144

1178

62

3

9

4

1400

84%

Reject C

30

14

947

3

2

1

997

95%

Reject D

104

34

2

25

14

1

180

14%

Reject E

53

11

4

9

30

0

107

28%

Reject F

64

2

0

9

2

3

80

4%

 

看起來Reject D/E/F類次級品吻合率較低。為什麼呢?經調查發現,其中Reject D主要是產品上外來物相關缺陷,Reject E主要是產品標籤相關缺陷,Reject F主要是產品的外包裝的相關缺陷。這三類次級品從理論上來說並不屬於上一站的裝配本身技術所造成的,而且使用B站的電性參數很難對其精確的做出判斷。所以,在流程的最後,擴大了自動外觀設備檢測的覆蓋範圍從抽檢變成100%覆蓋所有產品,這樣就可以省去對Reject D/E/F類進行SPC監控(因為SPC監控很重要的一個目的是通過監控來判斷好品有無問題,既然能夠對100%產品進行自動化檢測,也就不需要在C站對這三類缺陷再進行SPC監控)。

 

其中有意思的現象是D類,E類和F類神經網路分類結果中有一些分類到了其他正確率較高的次級品類型中(這個例子中是A類),那是否意味著更應該相信模型判斷的結果而檢查人工誤判的因素(疲勞、目視不清等)呢?試想如果一個產品既有A缺陷又有D/E/F等的缺陷之一,人工會很自然地根據自己最容易發現的目視結果做出判斷,但實際上可能是更重要的A類缺陷。相信大家在自己的工作場合中會有不同的答案,但無論如何,精簡流程帶給企業的成本節約和好處,已經遠遠超過了購入自動化設備或專業工具以提升生產過程能力的那些微不足道的成本支出。

因此,基於以上的分析結果取消C站後,不但縮短了關鍵品質缺陷的偵測時間,又節省了大量人力成本(後期可以做模型定期刷新,並對接到SPC系統軟體中,模型會定期更新資料以矯正模型,更新週期可以做到每天)。這樣一舉兩得的結果,無論對於工程師或者是管理層來說,都是喜聞樂見的。

 

當然,你現在看到的這個結果並不是一蹴而就的,而是經過了我們反復嘗試、實踐、並不斷最佳化和改進後的成果,它凝聚了團隊的力量和心血,希望我們摸黑走過的彎路,能夠照亮你工作實踐的道路,為你提供一點導航和方向。

Article Labels
Article Tags