| 揚聲器 |
抄本 |
| 詹姆斯·維斯諾夫斯基 |
歡迎探索團隊。 Andrew Carl、Darryl Ahner 和我非常高興地介紹兩種新的採樣方法:自適應採樣技術,以及 |
| |
這真的能為一些實踐者提供一些非常實用的實驗設計上的幫助。我想做的是,透過我們的一些 |
| |
我一直在討論這一切是如何發生的。但當我們考慮實驗設計 (DOE) 和增強設計時,JMP 已經具備了強大的功能。 |
| |
因此,透過進行一些非常大規模的模擬研究,我們發現我們在這裡缺少了一些東西 |
| |
填補空白設計和自適應抽樣設計。 |
| |
關鍵點在於自適應採樣設計將專注於反應。 |
| |
所以這和你想像中的標準設計有點不同,標準設計會進行增強,會觀察設計空間和 X 矩陣。所以現在我們要真正考慮目標或回應。所以最終結果會是 |
| |
提供全新的功能,讓我們能夠在最令人興奮的地方測試更多樣本。我們希望進入一個高梯度區域,就像你在響應曲面方法中想像的那樣,深度與上升高度一樣。 |
| |
現在,我們將透過模擬中的許多變數和數千次運行來實現自動化。 |
| |
好消息是,對於設計小的從業者來說,這確實可以很好地縮小規模。 |
| |
我將快速介紹我們將要向您展示的附加功能,然後安德魯將稍微講一下它的技術細節。 |
| |
所以有一件事我想道歉,這將是相當以 PowerPoint 為中心,而不是 JMP 插件 |
| |
有兩個原因...我應該說,而不是 JMP 演示...有兩個原因,主要是因為我們的 |
| |
時間,我們有很多材料需要處理,而且我們的 JMP 演算法在我們自適應採樣的演算法中也得到了充分的利用。所以 |
| |
最終,JMP 的點擊功能是我們開發的非常簡單的使用者介面,但幕後是什麼 |
| |
演算法,這才是 JMP 的真正威力。所以,快速填充設計,非常清晰。我們可以看到這裡有一些空隙,也許這有點誇張,只是用來示範技術。 |
| |
但實際上,我們可能會有大量的因素,而維度災難可能會發揮作用,導致你的設計中存在漏洞。 |
| |
你可以看到,我們可以用這種空間填充設計來增強它,這是一種主力 |
| |
在我們許多工作的增強中,特別是在刺激呼叫方面,情況看起來還不錯。如果我們看看那些藍點,它們是新的 |
| |
點,我們新增的點,看起來還不錯。如果你仔細觀察,你會發現,我們開始複製很多 |
| |
我們已經完成了,也許我們沒有像我們想像的那樣填補這些漏洞,特別是當我們去掉藍色的時候,我們可以看到 |
| |
其中仍然存在相當多的空白。因此,我們在開發自適應採樣時,意識到其中的一點是,我們需要填補一些漏洞 |
| |
在很多這樣的設計中。我們在我們的工具,我們的插件中設計了一個演算法,叫做邊界探索器,它可以完成這個特定的… |
| |
對於任何設計,它都會發揮這一特殊功能來填補空白,您可以看到它在許多不同的應用中可能具有很大的實用性。 |
| |
因此,在這張特定的幻燈片或圖表中,我們可以看到,這些藍點現在可能更集中於空洞,而有些藍點則分散在其餘區域。但即使我們去… |
| |
你可以讓顏色看起來更均勻,我們已經很好地填滿了那個空間。 |
| |
這更像是我們實現總體目標(主動採樣)所需要的實用工具。我們發現的主要應用是 |
| |
是自主系統,它引起了很多關注,並進行了大量生產和測試,特別是在國防部。 |
| |
所以在自主系統中,你可能會想到兩個主要面向。在自主系統中,你真正需要的是 |
| |
某種感測器,讓系統知道它在哪裡。然後演算法或軟體會對此做出反應。所以它有點像是感測器—— |
| |
我們主要關注的是演算法軟體整合。這驅動著一個非常複雜的模擬模型,它確實需要 |
| |
運行了數千次。但更重要的是,我們發現,在這些自主系統中,表現存在一些限制。 |
| |
舉個例子,我們有一個軍隊裡的領導者-追隨者模式。士兵會駕駛一輛裝甲很厚的汽車。 |
| |
卡車加入車隊,然後車隊的其餘部分將實現自主行駛,車上將不再有士兵。 |
| |
或者想想最新的特斯拉皮卡,它有自動導航功能,對吧?所以我們的想法是,我們想要測試這些系統,最終必須進行大量的測試。結果就是 |
| |
例如,即使在這輛特斯拉裡,你的時速可以達到 30 英里,或許可以順利避開障礙物。但如果時速達到 30.1 英里,你就必須採取超出演算法規範的規避動作。所以 |
| |
這就是我們所說的界線。它們非常陡峭 |
| |
響應的變化,梯度非常高的區域。這就是我們要關注的地方。 |
| |
我們對平面並不感興趣,我們真正感興趣的是其中有趣的部分,那就是我們想要做的事情。 |
| |
說實話,我們發現,我們迭代得越多,解決方案就越好。我們完全 |
| |
建議將此作為一個迭代過程來執行。因此,這就是自適應部分,進行測試,然後產生一些新的好點,然後觀察這些回應是什麼,並根據這些回應調整你的下一輪運行。 |
| |
這就是我們的自適應採樣。 |
| |
這個想法,或者說起源,其實是來自我們與約翰霍普金斯大學應用物理實驗室合作的一些工作。他們與軍方合作進行了一些非常出色的工作, |
| |
我在一篇期刊文章中看到這個功能時,心裡想,你們做的這個功能太棒了,我們甚至可以用 JMP 來找到一個更容易被更多從業者接受的解決方案。因為 |
| |
約翰霍普金斯大學的特點是它非常具體,而且有點…整合,這不是什麼 |
| |
小型測試團隊也能使用。所以我們想把它交給那些可以立即使用的人。 |
| |
這篇來自《系統與軟體期刊》的論文,可以說是我們邊界探索的來源。事實證明,我們借鏡了許多好的想法,但也能想出不同的方法, |
| |
以及其他方法。特別是利用 JMP Pro 的原生功能以及一些開發成果,例如我們在過程中進行的填補空白設計。 |
| |
現在, |
| |
就這個例子而言,我最好還是解釋一下 |
| |
就在這裡的一個示範裡。如果我看這裡的圖表,我可以看到…我會用這個…我回到特斯拉的例子。假設我正在做一個自動導航類型的活動,我有兩個輸入因素,假設 |
| |
我們有速度和交通密度。所以我們在考慮特斯拉的演算法。它想併入左側車道,所以它想,應該說,超車。所以它必須併入。其中一個因素可能是特斯拉的速度,另一個可能是交通密度。 |
| |
然後,在這個區域下面,我們可能會有一個較小的數字。所以我們可以考慮2到10之間的數字,甚至可以考慮反應,甚至可能是碰撞的機率。 |
| |
因此,在低速/低密度下,發生碰撞的機率非常低,但在高速/ |
| |
密度高,那麼機率就很高。但重點是我在這裡突出顯示和選擇的部分,你可以看到,那裡的 |
| |
邊界區域的性能差異。因此,當我們進行模擬並開始對演算法進行越來越多的軟體測試時, |
| |
我們會注意到,這裡多拿分其實對我們沒什麼好處。我們知道我們在低密度和低速時表現不錯。我們真正想做的是努力提升這裡的邊界區域。所以這就是我們的問題所在。 |
| |
我怎麼能產生 200 個真正遵循我的邊界條件的新點。 |
| |
現在,我所做的是,我真的有,它是 X1 和 X2,再次考慮速度和... |
| |
我們的速度和密度。然後我在這裡加了一個沒有任何意義的預測變數。然後,這就是我們的響應。要做到這一點,我只需要進入邊界探索器,在自適應取樣下, |
| |
我的兩個回應(你可以根據需要設定任意多個回應),然後是我的三個輸入因子。這裡還有一些設置,包括是否要以全域最小值和最大值為目標,以及顯示邊界。 |
| |
我們最終也會向你展示,你在這裡擁有一定的控制權。所以在這個演算法中,我們真正想要的是,最近鄰在做什麼?如果所有最近鄰都有相同的反應,也就是說,出現機率為零 |
| |
一場事故,那可不是什麼有趣的地方。我想看看哪裡有很大的差異。這就是最近鄰 |
| |
開始發揮作用。所以我繼續運行它。我們現在可以看到,演算法使用了 JMP 的原生預測篩選功能,並且 |
| |
幸運的是,它沒有使用常態分佈。你可以看到它運行的是引導森林演算法。 Andrew 會講解它的具體應用。 |
| |
最終 |
| |
我們要做的是產生一整套新的點,希望這些點能夠落在邊界上。所以,這花了大約30秒的時間來處理這些點,然後我就可以繼續拉起 |
| |
我的新觀點。所以你可以看到我的新觀點大致沿著這些邊界,如果我繼續把另一個 |
| |
個。 |
| |
所以現在,也許我會 |
| |
在這裡快速切換顏色。 |
| |
我將繼續展示擾動的中點。 |
| |
現在我們可以看到所有新點的位置。那些帶有陰影的點是原始點,現在我們可以看到所有在邊界內產生的新點。 |
| |
那麼問題當然是,我們是如何做到這一點的? |
| |
所以我要做的就是回到我的演講。 |
| |
然後,我會把問題交給安德魯,他會提供更多關於如何找到這些邊界點的技術細節,因為這並不像我們想像的那麼簡單。 |
| 安德魯卡爾 |
好的。謝謝,吉姆。我先來快速聊聊填補空白,因為我們除了把它整合到整體的野獸工具中之外,還把它放在了一起。 |
| |
它也是一個獨立的工具。所以它的介面相當簡單,我們可以在其中選擇列,定義要填滿的空間。 |
| |
對於連續因子,它讀取編碼列屬性以獲得高值和低值,並且也可以採用名目因子。 |
| |
此外,如果您從自訂設計或空間填充設計中產生了此設計,並且您不允許組合,它將讀取不允許的組合腳本 |
| |
並且只在允許的空間內進行填充。因此,用戶可以指定他們的列以及他們想要的新運行次數。 |
| |
讓我在高維空間中展示一個簡單的例子。這是三維的情況。我們有一個立方體,取出一個空心圓柱體,然後我們進行了填充間隙的操作,然後將它們放在一起,看看它們是如何組合在一起的。 |
| |
然後關閉顏色並觀察會發生什麼。 |
| |
這很好,因為在高維空間中,我們可以填補這些在變數圖中不一定能看到的空白。那我們該怎麼做呢? |
| |
所以我們要做的是,我們取原始點,在這種情況下,這些點現在是紅色而不是黑色,我們可以看到這兩個間隙在哪裡, |
| |
並且我們將來自空間填充設計的候選運行集覆蓋到整個空間。 |
| |
我們為新舊候選運行的連接資料表新增了一個指示列,連續指示列,我們將舊點標記為 1,將候選點標記為 0。在這個連接空間中,我們現在擬合一個 10 個最近鄰 |
| |
模型新增到指標列,我們保存了這些預測。因此,候選模型會以最小的預測值運行,在本例中是藍色。 |
| |
是我們想要添加到設計中的間隙點。現在,如果我們一次完成,往往會過度強調最大的間隙。所以我們實際上會在一個 |
| |
十倍過程,我們將取十分之一的新點,像我們在這裡看到的那樣選擇它們,然後我們將它們添加進去,然後重新運行我們的 k 最近鄰演算法來挑選一些新點並更均勻地填充所有空間。 |
| |
所以這只是一個選擇...填補空白是邊界探索器中可用的一個選項。 |
| |
因此,吉姆表明,我們可以使用任意數量的回應、任意數量的因素,並且我們可以同時擁有連續和名義回應以及連續和名義因素。 |
| |
事實是...對於涉及的連續因素,我們將把幕後的因素標準化為 01,以使它們處於更平等的地位。 |
| |
對於涉及此問題的各個響應,我們將對每個響應進行單獨循環,以找到因子空間內每個響應的邊界。 |
| |
最後,我們有一個使用隨機森林的多元工具,可以同時考慮所有的反應。 |
| |
因此,我們將看到 GUI 和使用者介面中提供的每個不同選項在演算法中是如何出現的。 |
| |
因此,在對任何這些連續列進行標準化之後,第一步是對所有連續和名義回應進行預測篩選。 |
| |
這樣做的目的是找出預測因子,它們與每個特定的反應有關。 |
| |
在使用者介面中,變數解釋比例(即每個變數的貢獻比例)的預設為 0.05。因此,在本例中,我們可以看到 X1 和 X2 被保留用於回應 Y1,而 X3 雜訊被剔除。 |
| |
下一步是運行最近鄰演算法。我們使用預設值 5,但使用者可以自行選擇。 |
| |
我們不太在乎這個預測結果有多準確,我們只是簡單地用它作為一種方法 |
| |
找到五個最近的鄰居。這五個鄰居的行數是多少?它們之間的距離是多少?它們與目前行的距離是多少? |
| |
我們將使用最近鄰的資訊來識別每個點,以及每個點作為邊界點的機率。 |
| |
我們必須在這裡使用拆分,並對連續或名義回應採用不同的方法。對於名目回應,我們的做法是將目前列的回應連接起來 |
| |
以及按順序排列的五個最近鄰居的回應,在此連接鄰居列中。 |
| |
我們有一個簡單的啟發式方法,用於根據連接鄰居列來識別邊界機率。 |
| |
如果所有反應都相同,我們就說它成為邊界點的可能性很低。 |
| |
如果至少有一個答案不同,那麼我們就說它有中等機率是一個邊界,對不起,是一個邊界點。 |
| |
如果兩個或多個響應不同,則該點很有可能是邊界點。我們也記錄了所使用的行。在本例中,它就是邊界對。也就是說,它是響應與當前行不同的最近鄰。 |
| |
我們可以在原始空間填充設計中繪製這些邊界機率。 |
| |
正如 Jim 早些時候提到的,我們有一個......我們首先運行一個空間填充設計,然後運行這個邊界探索工具來......探索空間並獲得一些回應。 |
| |
現在我們將其擬合,並計算出它們的邊界機率。我們可以看到,我們的邊界機率與實際邊界相符。 |
| |
對於連續響應,我們獲取來自五個最近鄰居的連續響應,並為每個響應添加一列,然後取這些響應的標準差。 |
| |
鄰居標準差最大的點是位於最陡梯度區域的點,這些點更有可能是我們的邊界點。 |
| |
我們也將標準差乘以平均距離,以獲得資訊度量, |
| |
因為對於兩個相鄰點具有相同標準差的點,它將增加位於稀疏區域中且已有點較少的點的權重。 |
| |
現在我們有了這個連續資訊指標,我們必須弄清楚如何將其分成每個點的高、中、低機率。 |
| |
所以我們要做的就是擬合分佈。我們擬合常態三混合分佈,並使用最大分佈的平均值作為高機率點的截斷值。 |
| |
我們使用最大和第二大常態分佈的密度的交集作為中等機率點的截止值。 |
| |
因此,一旦我們確定了這些截止值,我們就會應用它來形成我們的邊界機率列。 |
| |
我們還保留了最接近的行。在本例中,對於連續反應,它指的是反應絕對值與目前角色差異最大的鄰居。 |
| |
因此,現在對於連續響應和名目響應,我們得到了相同的輸出。我們得到了邊界機率和使用的行。既然我們已經確定了邊界點, |
| |
我們需要能夠使用它來沿著邊界產生新的點。 |
| |
因此,第一種方法,從某種程度上來說,也是最好的方法 |
| |
用來定位和放大邊界的方法就是我們所謂的中點法。我們對每個邊界對、每行及其行使用、它的最近鄰所做的操作 |
| |
之前已確定...對不起,不是最近的鄰居,而是最相關的鄰居,無論是在響應名義上的差異方面,還是在連續響應方面的差異最大。 |
| |
對於連續因子,我們取這兩個點座標的平均值,作為中點。這就是你在圖中看到的。所以我們會把一個點 |
| |
在紅色圓圈處。對於名目因子,我們針對邊界對所做的就是取該因子的水平 |
| |
這兩個點都存在,我們隨機選擇其中一個。這樣做的好處是,如果它們相同,那麼就意味著這兩個點的名義因子的中點也會處於同一水平。 |
| |
第二種方法,我們稱為擾動法,就是簡單地在每個已識別的邊界點上加上一個隨機偏差。 |
| |
因此,對於高邊界...高機率點,我們為介質添加兩個這樣的擾動點,我們添加一個。 |
| |
對於連續因子,我們添加一個隨機偏差。常態分佈表示 0;標準差表示常態分佈空間中的 0.075,而這個 0.075 是可以縮放的。 |
| |
在使用者界面內增加或減少邊界周圍的擴散量。 |
| |
對於名目因素,我們的做法是…隨機選取每個名目因素的一個水準。現在來說高機率因素… |
| |
高機率邊界點會得到第二個擾動點,我們所做的就是在第二個擾動點中限制那些名義因子設置,使其全部等於原始點的擾動點。 |
| |
因此,我們執行此程序來識別邊界並為邊界探索器中指定的每個響應創建中點和擾動點。 |
| |
一旦我們這樣做了,我們就會把所有的東西串聯起來,然後我們會查看所有回應中確定的中間點, |
| |
現在使用多變量技術來產生任何額外的運行。因為使用者可以指定他們想要的運行次數,而這些中點和擾動方法只能產生固定數量的運行,並且取決於 |
| |
我想你可以說,這是地形資料。 |
| |
因此,我們所做的類似於填補空白的設計,我們將所有已識別的擾動和所有響應的中點 |
| |
我們使用候選點的空間填充設計填滿整個空間。我們在連續指標中將候選點標示為 0,中間點標示為 1,擾動點標示為 0.01。 |
| |
我們用隨機森林來適合這個指標。然後我們進行觀察。我們保存了候選空間填充點的預測結果。 |
| |
接著我們選取該邊界指標預測值最大的候選運行。 |
| |
這些就是我們使用隨機森林方法所添加的。由於這是一個多變量方法,如果你的設計空間中有一個區域是多個反應的邊界,那麼這個區域將會得到額外的強調和額外的運行。 |
| |
這裡將三種類型的點放在一起展示。 |
| |
現在,再次強調 Jim 所說的,這需要多次迭代,所以我們會從邊界探索工具中收集這些信息 |
| |
然後將其連接回原始資料集。得到這些回應後,重新運行邊界探索器,它會 |
| |
在迭代過程中不斷放大邊界和影響,甚至可能找到更多的邊界。因此擾動點是最有用的 |
| |
對於早期迭代,當你仍在探索空間時,它們會更加分散,而隨機森林方法對於後期迭代更合適,因為 |
| |
它會有更多可用的中點,因為它不僅使用目前迭代中的中點,還會使用先前記錄的中點。資料表中有一列記錄了新增的點的類型。因此,我們也會使用所有先前的中點。 |
| |
因此,如果我們將這個我們一直在研究的階躍函數範例的表面圖放在一起,我們可以看到我們的新點、中點和擾動點都沿著懸崖下降,這就是邊界,這正是我們想要看到的。 |
| |
因此,使用者介面的最後兩個選項或指示那些填補空白的運行,我們也可以要求它針對任何連續因素定位全局最小最大值或匹配目標(如果將其設定為列屬性)。 |
| |
這裡僅展示最後一個例子,我們有這個例子,其中有兩個峽谷穿過一個平面,在它們的交匯處有一個深井。 |
| |
我們已經運行了初始空間填充點,這些點是為了了解響應而顯示的。如果我們運行邊界探索工具的兩個迭代, |
| |
這是所有新點的位置,我們可以看到這兩條線中間有一些空隙。這些空隙是什麼? |
| |
如果我們看一下地表圖,那些空隙就是峽谷底部,那裡其實不陡。所以它是平坦的,即使在一小塊區域內也是如此。 |
| |
但所有這些點,所有這些中點, |
| |
這些點不是放在平面上,而是放在陡峭的懸崖上,這正是我們想要的。在這裡,我們打開和關閉最小點,你可以看到它們正擊中井底。所以我們也能瞄準最小點。 |
| |
因此,我們的工具呈現了兩個不同的、兩個離散的 |
| |
選項,一個新的工具。我們希望能夠用於任何為連續因子設定了編碼屬性的資料表的間隙填充功能。 |
| |
然後可以使用邊界探索工具來添加,運行不單獨查看因子空間,而是查看響應以針對高梯度...高變化區域來添加額外的運行。 |