網頁

2019年4月29日 星期一

筆記:以MCTS協助設計決策

結合MCTS的流程就是每一個設計階段由電腦進行MCTS, 提供資訊給外牆系統設計師與整個團隊, 包括建築師, 業主, 各技術顧問做參考, 由他們執行下一階段的selection動作, 做部分的決策, 例如選定某些區域, 確定設計的系統。 電腦24小時不間斷作業一直更新隨機採樣帶來的訊息, 設計團隊做了Selection後, 繼續往下發展, 也替設計團隊所做的決策進行可行性評估, 告訴設計團隊這樣的決策將來的成功率, 也就是同時滿足所有電腦可以進行評估的項目的成功機率

電腦的評估我們就用抽象化的作法, 假設每一個項目的評估, 在冥冥之中有一個, 或多個最佳決策, 可以得滿分。每一個決策用一張有256格子的圖面表示, 黑白兩色。圖片隨便找, 有複雜的, 有簡單的。

遊戲一開始, 256個格子全部是灰色, 代表還沒做決策, 電腦開始做MCTS, 可以先隨機selection, 選擇從某個方格開始。設計團隊也可以先選定一個或多個方格做決策, 把灰色改成黑或白, 電腦就從這開始進行expand, simulate 和 backpropagation

電腦評估的方式就是在對未決定的方格隨機採樣之後比對先前為每一項評估的項目準備的圖片, 如果黑白一致的就得分, 看256格共可得幾分, 是否通過預設門檻, 假設是80分, 通過所有門檻表示成功, 計算成功機率後backpropagation

如果一個項目有多張圖片, 那麼就比對所有的圖片, 只要有一張圖片通過門檻, 該項目就通過門檻

另外電腦無法決定, 必須由設計團隊決策的部分其實也可以用同樣的方法, 也是MCTS來模擬, 也就是用另外一組圖片來做評估, 選出該組決策成功率最高的決策選項, 來讓電腦組的MCTS估計電腦組的成功率, 電腦組與設計組交替進行, 去模擬設計團隊與電腦如何協同作業

最後, 如果能夠成功找到某些設計方案能夠通過所有的評估項目, 那就算成功了, 先不用管最佳化好了, 反正, 如果通過的方案不難找到, 我們可以提高部分項目的門檻, 這樣也可以找到越來越好的方案

這個程式這樣已經很清楚了, 可以開始寫, 我問問看有沒有人可以幫忙, 你了解整個想法後可以開始寫論文, 看要如何說明

2的256次方, 這個問題空間也夠大讓MCTS去發揮的了

搜尋空間大約相當於一個16*16的圍棋棋盤, 每個格子必須決定是下黑子還是白子

如果MCTS可以幫助電腦下贏柯潔, 那應該也可以幫設計團隊找到勝算最大的下法

與圍棋不同的是圍棋完全可以用規則決定勝負, 所以電腦可以跟電腦下, 而設計的勝負有一部份是人來決定的, 所以電腦無法取代人, 但可以取代另一部份, 就是電腦可能做得比人更好的, 另一個差異就是博奕是雙方對抗, 你贏我輸, 而設計遊戲是追求雙贏, 也就是電腦評估和人的評估必須都通過才算贏, 但這個差異完全不影響運算, 因為我們只要把電腦方輸贏的定義反過來就好了

模擬設計團隊的那個部分做了backpropagation之後選擇下個階段成功率比較高的決策中, 電腦模擬成功率也高的決策作為selection。我們可以使用pareto set的方法來挑選幾組設計方案分別往下發展, 一開始選擇比較多組, 到設計階段的越後期方案越少, 最後只留一組

我們把問題再放大好了, 用16*16的方格, 這樣是正方形, 好處理, 評估函數就找許多張照片, 通通轉成16*16的黑白陣列

Sg:
你用任何兩張照片都可以, 程式中的image sampler點兩下選擇照片

Sg:
我們可以不必真正去做潔能分析或預算分析, 因為任何的evaluation就是取得一組輸入參數 (在這個例子中就是256個0 或 1的決策), 然後輸出通過或者不通過

Sg:
中間運算過程可能非常複雜, 可能非常簡單, 但是這個評估函數就是把輸入的資料對應到0 或 1, 代表通過與否

Sg:
就象徵意義上而言, 如果這個評估函數很複雜, 代表背後的圖形很難猜測, 而且可能錯一小部分就全錯。要模擬這種評估項目, 我們只要提高門檻值, 例如256需要答對255以上, 錯兩題就不通過。但這樣成功率太低, 很可能根本找不答案, 為了提高成功率, 可以用很多張圖片, 各不相關, 每張的門檻都很高, 例如我們總共有一萬張這種圖片, 只要任何一張通過, 就算通過。

Sg:
有些評估很簡單, 例如假設造價只與選材料有關的話, 那麼最佳的決策就是全部採用最低價的材料, 那就用一張全黑的圖片, 全部都是0, 然後設一個門檻, 例如 128, 因此, 如果設計者採用一半以上的低價材料, 那麼這個評估就會過關

Sg:
必須由設計團隊決定的評估項目也一樣。每一個決策成員心中可能有一把尺, 在團隊成員討論過程中可能也各有影響力, 反正到底甚麼方案才會被接受沒有人知道, 但上帝知道, 我們就扮演上帝, 挑選一些圖片代表上帝。

Sg:
[圖片]

Sg:
設計的問題和圍棋比起來還有一項差異, 就是設計方案的評估比圍棋的勝負複雜很多, 因此程式在進行MCTS過程中會花大量的時間在評估造價、耗能、結構等分析或模擬上, 要在短時間進行大量的採樣會很困難

Sg:
但電腦的好處就是不用休息, 設計團隊進行人為決策可能需要時間, 可能還需要開會討論, 這個週期可能好幾天, 而這段時間電腦根據前期的決策24小時不間斷的進行MCTS給設計團隊做決策參考


木:
我的理解是不是將評估的問題簡化成對生成圖片判斷的0,1問題?

Sg:
不能說是簡化, 因為所產生的函數可能更複雜。整個研究的重點並不在能源評估或預算 (我想, 這可能是我們之前的盲點, 把重點放在預算上, 因此會被以專業的角度來評審), 而是提供一個方法讓電腦的分析與模擬能夠真正幫大忙

Sg:
對預算的幫助是這樣, 因為如果設計做完了, 每一部分的設計都確定, 材料數量都明確, 工程造價就可以評估了, 但設計初期是無法做這種評估的, 所以很可能在設計過程中對預算就失控了, 不只是預算, 對節能或物理環境品質也是這樣

Sg:
很可能最後碰到預算問題, 就只好做各種可能的調整, 把原先設計的品質都失去了

Sg:
MCTS對Alphago的最大意義就是不必尋求在中盤, 甚至布局階段就評估勝負的辦法, 因為那是不可能做到的。但是圍棋如果下完每一子, 最後的勝負卻很容易評估。建築設計某些方面也是如此, 基本設計方案很難評估耗能, 但等細部設計都做完了, 每一片玻璃的參數都確定, 那麼耗能就可以評估了。

Sg:
在研究方法上, 我們等於提出一個架構, 在這個架構下設計師可以採用任何的電腦分析模擬軟體來做評估, equest, ecotect, 或任何其他軟體都行, 反正每一個軟體就像一個函數, 給她輸入的參數, 她就會告訴妳合格或不合格。因此, 我們可以給予任何函數 (在我們的例子當中, 就用圖案比對來當作這些函數), 完全無損其 generality

Sg:
關於用圖片作為模擬分析評估的函數, 我認為完全具有正當性, 因為任何一個評估軟體, 針對一個有256個二選一決策的設計方案, 一定有一些決策的組合是最理想的, 這些理想的決策組合就可以用一張張的圖片來表示。因此, 用圖片評估根用真正的分析程式去評估是等價的, 關鍵是圖片的數量和內容, 只要找到正確的圖片, 用足夠的數量, 那麼兩個程式可以有相同的輸入和輸出, 那麼兩個程式就沒甚麼差別了

Monte Carlo Tree Search Assisted Multi-criteria Design Decision Making


11:24 sgs 每一個檢測函數基本上就是一個 Boolean function, 其input是一個256位元的矩陣, output就是0或1, 代表檢測通過或不通過。我們先不急著用真實的建築性能評估函數, 而是用一個16*16的目標矩陣來模擬各種可能的評估。我建議就比對input的矩陣與目標矩陣, 就其正確率設一個門檻, 高於門檻就通過, 低於門檻就不通過

11:38 sgs 舉個例, 我們設計一個帷幕牆, 總共有16*16個窗格。設計師必須為每一個窗格選用A材料或者B材料。A材料每扇1元, B材料每扇2元。假設建築預算是300元, 那麼模擬的評估函數就可以利用一個全部為A的矩陣來和輸入矩陣比對。函數的輸入矩陣為設計師所決定(或者monte carlo隨機取樣)各個窗格的選擇材料A或B, 比對之後如果正確率超過212/256, (212+(256-212)*2 = 300)就代表預算不會超過300, 因此可以通過檢測。如果檢測函數更複雜, 那麼可以用多個目標矩陣, 用and 或 or 連結起來進行模擬。這件事很難對學建築的人說明, 他們可能無法接受自己學了這麼久的專業, 居然可以用影像比對來模擬。但學數學的人應該就知道是可行的。

11:44 sgs 因為搜尋空間是有限的, 因此, 在最極端的情況也可以用窮舉法來模擬。

11:46 sgs 因此, 我們在理論測試階段就隨便找一堆圖片, 轉換成16*16的二元矩陣用來定一評估函數, 在MCTS搜尋過程中用來計算設計方案是否達到預期的品質