Python 與深度學習有哪些與建築設計相接軌的可能性?

建築學生,目前對 Python 的使用和了解僅限於在 Grasshopper 中自己寫電池,但是對 Python 作為一門編程語言以及用於深度學習與建築的交集很感興趣,想知道前沿建築界目前在這方面有哪些成果和前景。

請勿低端抖機靈,謝謝


關注這個問題快一周了,到目前來說還是沒發現什麼太大的驚喜。我感覺建築設計界還是要學習一個,不要看到深度學習很火,就弄個大新聞,把這玩意往建築設計上搬呀。

其實深度學習這事兒到底怎麼就能和建築設計掛鉤上?如果單單指「深度學習」,那我的理解是套用了許多層的人工神經網路,這種技術能在建築設計中扮演什麼角色?我目前還真沒發現直接用深度學習這種技術來輔助建築設計的例子。但是如果把題主提問的概念放寬鬆一點,變成「如何使用機器學習等演算法來幫助建築設計」,那我想還是有比較好的例子的。

機器學習技術是用來讓程序的運行性能隨著輸入量和時間的積累慢慢提高的一種技術。例如你寫了一個程序來預測一棟別墅的房價,這個程序的作用是能根據輸入數據的[城市,街道,區位,面積,戶型,..]等參數預測房價,為了提高程序預測的準確度,你需要先給程序喂一些已經有了估價結果的數據,程序學習一定的數據以後就能自己預測房價了。那麼,這種程序工作的方式和我們做建築設計的工作流程有什麼聯繫呢? 我們做設計時,同樣也是先調研和參考大量同類建築的案例,積累到一定量以後,才能自己動手開始做設計。了解了這一點,便可以設想一種利用機器學習來輔助建築設計的思路:先讓程序學習以前的建築設計方案,然後程序就能自己去做設計了!

這篇2010年的論文 Computer-generated residential building layouts 可以說就是以上思路的典範。作者自稱「使用數據驅動的方式設計了能自動創建視覺效果非常好的建築布局的工具」,但我覺得論文的質量是遠遠超過了這樣謙遜的描述,因為論文實現的思路極大程度借鑒了現實中建築師開展設計工作的流程,而且用了貝葉斯網路這個非常漂亮的數學模型描述了一個建築program在空間中的分布,而貝葉斯網路的訓練數據全部來自真實的建築師的設計方案。個人認為用機器學習的思路去處理建築布局問題相比於過去十年來Shape Grammar的那種Procedural Modeling的思路來得更為正確。

論文是怎麼展開的呢?首先,作者總結了前人工作,說明了以前基於窮舉的演算法都行不通,要在3D空間中去窮舉這麼複雜的空間分配問題就和猴子隨意敲鍵盤得到一部莎士比亞作品的難度差不多。接著作者又批判了上個世紀90年代Muller搞的Shape Grammar那一套也不行,因為Shape Grammar就是圖形語法,我們知道,編程語言是是基於有限規則的語法集生成的,而建築設計中這樣的規則條款很難形式化描述,而且會傾向於讓語法數量變得無窮多。順帶一提,幾十年前計算機科學家在攻克語音識別和機器翻譯難題的時候,也是認為自然語言是完全基於有限的規則生成的,但後來才發現行不通,直到後來改成基於統計的方法進行研究後,才有了突破性進展。 那麼shape grammar不適合建築設計的另外一點在於,建築設計不是玩弄圖形變換的遊戲,每一個建築空間都有基於功能,心理和效用等因素的考慮。之前也有過用shape grammar分析賴特壁爐式住宅的語法規則的論文,但是應用範圍實在太窄。所以這條路是走不通的。

論文作者認為,做方案,一定要基於人的舒適和心理需求,習慣和社會關係等因素,將他們綜合考量後才會有比較合理的結果。例如,房間的形狀最好是凸包而不要做成凹的,因為在採光上,傢具擺放和視線上方正規整的形體都更優;建築各個功能要形成開放性 - 私密性的梯度,因為這正反映了建築被使用的方式。 為了研究更好的方法,作者去找到了一家建築事務所的建築師們向他們諮詢職業建築師的工作方式,得到了一個特別有用的結論:建築師在初期和客戶諮詢後,在畫平面的詳圖之前,一般都會用泡泡圖來思考問題,而泡泡圖則反映了一個建築方案高度濃縮的信息,包括私密性,房間鄰接關係,採光,業主喜好和文化習俗。

泡泡圖在在建築師看來是展開方案設計工作的第一步,在計算機科學家看來則是一種複雜的數據結構——圖。從使用者或者任務書弄出一張泡泡圖是建築師專業能力的體現,不管這種能力是基於長期訓練的素養也好,還是臨時起意的構想也好,我們知道這張圖包含的信息量很大就對了。 那現在問題是,如何讓計算機來生成這樣一張泡泡圖呢?

這個時候就要輪到本回答開始的機器學習演算法登場了。作者用來一個概率圖模型——貝葉斯網路來描述建築師做出來的泡泡圖。用人話說,就是用這玩意來描述建築方案中每一個部分在空間中的概率分布。好像說起來還是不太容易懂,但總之,我們知道了,這個模型可以讓電腦知道對應一個成功的建築方案,客廳、卧室和走廊等出現在某些位置的概率比出現在另外一些的位置的概率高,而概率高的位置正是合理的位置,這樣就更容易生成好的方案。

針對貝葉斯網路的訓練,作者搞了120套住宅建築方案作為訓練數據來餵給程序吃。現在程序總算是知道建築方案的基本做法了,以下就是基於貝葉斯網路生成的泡泡圖:

搞定了泡泡圖之後,怎麼從這玩意生成建築平面呢? 作者幾經周折,最後用了Metropolis演算法來搞定。具體的生成過程描述都在論文裡面有寫,我就不詳細寫了(其實是看不懂。) 再下一步是生成3D模型,作者比較自豪地說,他搞的這個演算法真正實現了多層建築方案的生成,而以前的基本只能生成單層的平面,作用有限。以下是一些成果:

6張平面有幾張是人做的方案,剩下的都是機器做的,大家可以猜一下機器做的是哪幾個。答案論文裡面有說。

最後是生成的3D模型,傢具是手工布置的。還是頗具真實度呢!

作者最後提到,準備把這個東西運用到更多的建築類型上,例如辦公樓等。如果這玩意兒成熟,再也不用擔心建築師不失業了,偶也! 最後我再說說對這玩意的評價吧。最近幾十年知識工作的自動化簡直如火如荼地吹遍天南地北的各個行業,許多人都擔心低端的勞動職位會不會被取代,例如駕駛汽車,快遞,寫新聞稿,翻譯,速記等等等,這種擔心真的不是毫無理由啊!當優雅簡潔的數學模型遇到計算機這個可以暴力計算的機器,結合起來就創造了一類又一類可成規模複製的智能機器,想想還是讓人後怕的。不過也不用太擔心就是,建築設計行業人所佔的因素還是很大的,很多時候甲方找人做設計,都是看重設計師本身,出了專業能力外,溝通,人格魅力,背景,執照等的背書也是很重要的,不過未來這種建築界持續了很久的行業模式會不會被顛覆就不得而知了。另外,程序也需要吃許多訓練數據才能提高自己的設計修養,在目前來看建築設計的各位同行都把自己搜集的方案當成寶一樣藏著,數據量的大而全也很難保證,不知道以後BIM的普及會不會讓這方面得到改善。


上個月剛去密歇根大學安娜堡分校(University of Michigan, Ann Arbor)參加了ACADIA2016(計算機輔助建築設計協會年會,Association for Computer Aided Design in Architecture)。應該算是計算機輔助建築設計(CAAD)的頂會了吧。有一個Session是Machine Learning + Evaluation。總共有幾篇關於ML的吧,但是和Deep Learning相關的還不多。稍微講一下。

1. What Bricks Want: Machine Learning and Iterative Ruin.
名字很屌是不是,路易康的著名問題。

其實就是拆磚,看看怎麼能拆很多磚還讓它穩定。手動滑稽
技術上作者用了Bullet物理引擎判斷是否穩定,還寫了一個進化演算法求解器來迭代試驗。
筆者理解機器學習的目標就是兩類:搜索和分類。深度學習只是性能更好而已。所以理論上大家GH里的Galapagos就算是機器學習 _(:з」∠)_

2. Machine Learning Integration for Adaptive Building Envelopes.
用機器學習做室內環境調節控制。

傳統的控制室內環境(溫度 濕度 照度)等等是使用一個預測模型,模型通過環境參數算出室內環境是不是舒適,然後再調節暖通空調系統。
而這篇論文提出了一個框架,用傳統的預測模型結合上強化學習(Reinforcement Learning)來控制設備。並且本文中受控制的設備除了暖通空調,還有氣候適應性立面(Adaptive Facade)。

上圖是Al Bahar Towers,Aedas設計。一個適應性立面的例子。幕牆單元可以變形來遮陽。(這個例子是筆者找的,論文里沒提)。論文里只是用了一個實驗隔間中的擋板代替(上上圖那個紅色的)。
很有道理啊,將來可變立面幕牆單元的設計千變萬化,那怎麼設計模型來預測環境舒適度呢?所以我們讓立面動起來,採集室內數據,然後用數據來擬合搞一個模型控制立面就好了。
這個思路還是很棒的。

3. Space Plan Generator

自動排平面已經是老生常談的話題了,沒記錯的話三四十年前就有人研究這事了。
他這個比較屌是可以整合進建築師工作流程,程序實現在Revit的可視化編程插件Dynamo里。使用者寫一個功能需求表扔進去就能自動生成並評估平面。不過問題是現在只能排單層平面,而且不能設計曲線。數據結構用了KD-Tree,迭代優化用了遺傳演算法(Genetic Algorithm)。也算勉強算是機器學習吧。
多吐槽一句,國內很多建築設計工作室的自動化工具還是太少了,造成了大量重複勞動。看遊戲大廠很多美術工具和互聯網公司碼農很多自動測試工具筆者真是心生羨慕。國外大公司會有這樣的團隊做這種技術支持,比如這篇論文是和Perkins Will的合作研究。

4. Evaluating Buildings with Computation and Machine Learning
WeWork的論文,題目看上去也是很屌。
有關機器學習的部分就是說wework對會議室有一套抱怨系統,客戶如果對空調或者噪音等等不滿意可以提出抱怨,但是這些抱怨都是文本數據啊,怎麼分析呢?作者搞了個Naive Bayes Classifier(也就是最簡單的神經網路)訓練了一下,把文本信息歸納成HVAC/噪音/光線/維護幾類。然後就沒有了。
題目聽上去很唬人不過其實也沒啥。

5. Robotic Softness
用機械臂做編製,來自於著名的斯圖加特大學ICD/ITKE的Achim Menges組。屬於最近比較時髦的往機械臂上安Kinect。

本質上就是說要讓機械臂在建造時拿到實時反饋感知當前狀況。他們稱之為基於行為的機械臂策略(Behavior-based robotic strategies)。這個研究就是在機械臂上裝Kinect獲得被建造模型的信息,實時反饋計算接下來的運動路徑。
終於和圖像相關了,這個是可以搞深度學習的。其實機械工業界也已經在用了,用機械臂分揀零件。搞一個CNN訓練識別一下零件的圖片就行。這可以算是一個應用方向了。

7. Hybrid Sentient Canopy
水盧的Philip Beesley居然把自己的互動裝置這次加進了機器學習,我也是醉了。。。

題外話,Philip Beesley特藝術,說話都跟念詩似得。他這個互動裝置已經搞了不知道多少年多少版本了。
說這個裝置能感知參觀者的行為,預測接下來的行為(就跟廣告推薦系統似得)。真是太超前太藝術了。。。。。

以上就是ACADIA2016關於機器學習的內容。什麼,好像沒有深度學習w(゜Д゜)w???

對了,有關計算機輔助建築設計(CAAD)的研究上Cumincad搜就好了,各大洲CAAD的會議論文資料很全。

所以別急,我還真找到一篇。發表在CAADRIA2016(上面那個是美國的CAAD會議,這個是亞洲的)
Artificial Imagination Of Architecture With Deep Convolution Neural Network.
利用深度卷積神經網路想像建築。
來自日本慶應大學。

就是風格遷移啊, @何之源的第一個腦洞還是很靠譜的。
但是有什麼用呢,難道可以用來快速擼效果圖???

插一句,@何之源第二個腦洞感覺也可以發論文的。第三個腦洞還是比較缺數據的,可惜建築界沒有人做imagenet和place 205這種數據集。

所以說啊,深度學習這麼火,建築界居然還沒有什麼論文,廣大建築的同志們還是要學習一個。多看看計算機那邊的論文,多學習一下DL的工具,學習學習Python。
什麼時候要是有tensorflow for grasshopper,caffe for grasshopper啊就好了。

其實我對於DL的接觸僅限於用caffe做過finetuning和了解一點原理。孤陋寡聞,胡亂回答,見笑了。


開幾個腦洞好了:

1、藝術遷移(Style Transfer)

很多人都應該看過深度學習Style Transfer的應用。就是把一張圖片的「風格」融合到另一張圖片中,如下圖:

在這裡,卷積神經網路的淺層被認為儲存了與「風格」相關的信息(如顏色、筆觸的變化),而網路的深層被認為儲存了與「圖像實際內容」相關的信息(如圖像中的物體和構圖)。

也許建築設計中也可以利用同樣的想法,將一種設計風格融合(如材料、紋理變化等)到另一種建築的整體架構中去。

2、從文字描述生成圖像

最近有一些利用對抗生成網路(GAN)來生成圖像的論文。比較有意思的是從文字描述出發來生成圖像。如通過文字描述「一朵有著黃色花蕊的白花(A white flower with a round yellow stamen)」來生成對應的花朵的圖片。下面是一些例子(圖片中上面是文字,下面是其對應的生成圖像):

在建築設計中,可以使用這樣的方法來生成設計草圖。完全代替人肯定是做不到的,不過應該可以節省一些工作。

3、美學評價

判斷一個照片拍的「美不美」這件事,也可以用深度卷積神經網路來做。判斷的結果可以用來指導用戶進行拍攝,甚至給出改進意見。

同樣的,可以對建築做同樣的美學評價,從而指導設計工作。

以上就是我想到的幾個應用。但不管如何應用,使用深度學習的前提條件都是要有大量的數據,這個還是很重要的。

本人對建築領域不是特別了解,有什麼地方說的不好的請輕拍~~~


關於環境心理領域其實有很多可以做的。

1)對於(缺乏自知的)人主觀感受/需求的深入挖掘。

比如這個例子:用人對街景安全評價做的 perceived safety
Naik, N., Kominers, S. D., Raskar, R., Glaeser, E. L., Hidalgo, C. A. (2015). DO PEOPLE SHAPE CITIES, OR DO CITIES SHAPE PEOPLE? THE CO-EVOLUTION
OF PHYSICAL, SOCIAL, AND ECONOMIC CHANGE IN FIVE MAJOR U.S. CITIES.

2)基於生物感測器的智能響應

Media lab有一個智能辦公環境宣傳片,其中我最感興趣的是對人心理需求的智能響應。

media lab里Rosalind Picard的affective computing組和微軟Mary Czwinski有做一些結合心理需求的交互產品。但尚未運用到建築設計。

想想過去五年智能手機如何改變我們的生活?智能穿戴、生物感測器以及圖像識別將革新我們感知世界的方式實現感官增強,這些數據又很容易結合智能增強,再結合物聯又將革新我們對世界的控制方式,這一切將很可能在未來重構我們和環境的交互方式。這都是建築行業可以革新的好機會。

我們也有基於這個在開始做環境體驗實時評價,接下來其實也可以加機器學習進行優化。


學過參數化或編程或演算法的建築系學生,看到計算機領域新的技術新的熱點出現,都會問自己一句在建築領域能否有所應用。

這份好奇心很值得讚賞,因為architecture在post-modernism之後已經很難再成為一個獨立的discipline。現在我們討論建築,往往討論的都不是建築itself,而是其它學科,其它學科與建築的結合。這是建築的開放,同時也是建築的失貞。

CAD和BIM改變了設計師交流的媒介,自動化成就了建造方式的更新換代,曾經的解構主義和語言學又有著千絲萬縷的聯繫,但是建築的核心依舊沒變,這個核心是什麼,我不能說。提問者還是學生或者剛畢業吧,那麼對這個essence的探索會塑造你的建築觀,決定你在architectural practice 里給自己的定位。

如果要思考結合的可能性,那麼要看看深度學習是什麼,看看建築是什麼,看看深度學習里有沒有建築的核心,建築里有沒有深度學習的核心,然後各種google各種paper,坑很廣很深。Autodesk Research is a good start. 我只能說我覺得現在很多我們看到的barely scratches the surface of architecture core,我們都要繼續努力啊!

我不給你魚,只能給你漁了。另外,我覺得你需要了解一下在計算機學科定義里,編程語言是什麼,就不會被用python編電池限制了。


寫在最前面: 我自己不是學建築的,對建築的理解可能會有偏差,懂一點點deep learning。

這個問題可以分開來回答,Python 與deep learning,deep learning 與建築。

Python 是deep learning的一個工具,其他的語言,如c/c++,MATLAB也可以實現同意的功能,只是不同的語言有不同的優點。從建築學學生角度來看,Python 應該是做deep learning最好的工具(個人感覺)。

拿Python自己去一步一步實現 deep learning 框架?顯然沒必要(這是CS的人乾的)。主流的deep learning 框架有mxnet,caffe,TensorFlow(還有很多其他的開源庫),這些的底層都是拿c++寫的,都留有Python介面。學好了Python,懂演算法了,拿這些庫來實現就OK。

對比這些個庫的效率,上手難易度,功能方面的文章應該是很多,我在這裡簡單說一下。mxnet有團隊一直在維護,效率高,代碼規範也不錯,分散式的效率也高,但是可能文檔沒有那麼好,畢竟不是公司主推。現在有Amazon了,可能會好一點點。

caffe應該算是deep learning 庫的鼻祖,cudnn很多都是參考caffe來設計的。但缺點是賈揚清去了Facebook以後感覺caffe維護的明顯很差,代碼規範也不是很好,而且很多新的layer 可能更新的不是那麼及時。我自己就是基於caffe開發了自己用的工具,但是作為一個單純的使用者,我不推薦caffe。

TensorFlow是Google的,速度相對慢,代碼相對難讀(一般人應該不會去讀),但是文檔支持好,功能也全,用的人也多,是可以考慮的選擇。

最後寫一點關於電腦硬體相關的問題,學建築肯定有好顯卡,但建築可能用的更多的是畫圖卡,不過cuda應該是支持的,有條件的可以配置一台工作站來搞,畢竟需要二十四小時跑數據,電腦差了還是不行。另外就是AMD的卡不支持cuda,Mac pro應該是用的AMD的卡。

接下來回答deep learning 與建築學。

我對deep learning 在建築中可能的運用來自己其他場合運用的聯想。learning to generate chairs with convolutional neural network 這篇paper 是train 一個網路來生成椅子。網路的輸入是椅子的類型,視角,以及空間位移等信息,我個人的理解是同樣的想法可能運用與建築模型的生成。但是這裡會有問題,第一,用於train網路的椅子的數據很好生成,建築模型的數據我不知道怎麼去搞,而且想要生成複雜建築模型,需要的網路更深,所以train的難度更大,需要的數據量更大。第二,椅子的圖片是project 到2d平面的,建築的顯然不能這麼來,trian 3d的輸出,難度再增加兩個數量級吧。第三,train出來的椅子的數據質量並不高,所以想要train能夠直接使用的建築模型貌似更難吧,很有可能是只能給建築設計師提供一些idea。

另外一篇經典paper是visualizing deep convolutional neural networks using natural pre-images,牛津vgg出品,這篇paper主要講怎麼從deep 網路里恢復圖片信息,這個思路應該是建築想要的,可以看看。

希望對你有幫助~


說說我所理解的機器學習.
其實結構計算中,很多地方都用了"深度學習",從有限元的劃分到各種簡化求解的非線性計算,很多都用到了神經網路,只是可能還沒有使用到目前比較火的多隱層的神經網路的深度學習,

作為一名結構工程師,來說說我看到的一些算是關於機器學習建築方面的案例.
可能看起來沒那麼前沿或者高達上,自己做的東西也沒涉及到神經網路,頂多用了下進化演算法,只是拋磚引玉..

建築就結果來說是一個很主觀的東西,然而構建一個建築需要的條件非常多,比如結構構件,建築分區,設備管道,等各種幾何信息或非幾何信息,提供不同維度的條件,最終輸出一個讓各方面都比較滿意的結果.這種情況很適合做基於神經網路的評價系統.
所以不僅僅是方案創作,後期的很多問題都可以拆分成很多小的NP問題,從而按此思路解決問題.


首先介紹一下這本書:《建築生成設計》---李飈

裡面提及了很多演算法的應用和成果.
比如細胞自動機,遺傳演算法,多智能體等等.

書中提及的鳥巢.

上海世博軸陽光谷


單看這個結構,很多同學都能用參數化的手段建立出模型.拉出一個框架還是很好實現,但據說方案是找了計算機團隊去做優化,使得桿件都統一成幾個規格,大大方便了桿件的生產.

類似幕牆施工便是一個非常典型的例子:
建築的同學創造出來一個非常漂亮的異形建築方案,到了幕牆階段就頭疼了.我們可以把基本的分隔建立出來,但如何施工?每一根不同的桿件都要做一個模具,大大增加了成本.這時候我們可以通過建立一套合適的評價進化系統,最終讓生成的桿件滿足結構要求,滿足生產尺寸的要求.

曾經幫助建築做的一個幕牆分隔.

當時建築畫了個概念圖問我能做么,需要桿件比較統一,並保證交接處分隔統一.
我一看這不就是有限元劃分么.
去查了資料,grosshopper里就有Delaunay劃分的電池.
我只是對邊界和交接處稍微優化了下,最終得出了這樣的一個結果.
當然這只是方案效果,假如需要考慮到桿件統一的問題,那就需要建立比如神經網路,利用計算機來幫你生成滿意的結果.


樣條曲線擬合成圓弧.

方案中建築的平面是一個不很規則的B-樣條曲線,這樣在平面定位中定位很麻煩,以往做法是取與軸網交點進行定位,
本程序將這個閉合的樣條曲線利用退火演算法擬合成了8段弧線,從而精簡了很多定位,比較准地還原了方案,並且方便了施工.
具體就是將原平面曲線劃分成n個點,再從中選取8個點進行評價,淘汰評分低的點,選取新的點,再進行評價...
最終的結果還是比較理想,相鄰弧的交點切率變化不超過3°,面積累計誤差也很小,肉眼基本看不出與原方案的差別.

深度學習與建築設計並不是才接軌,實際上建築領域有很多神經網路的應用了,比如結構專業,很早就有應用,只是模型比較簡單,沒用上很深的決策.
建築生成、幕牆設計等方面也有些,看起來沒有那麼深度.

就像當年智能機發展一樣,以前手機只是打電話發簡訊,後來智能機興起,整合lbs數據,用戶數據,健康數據...到了今天,我們擁有了無數優秀的APP.
隨著BIM的發展,我們手中有了越來越多的數據,各個專業的數據還能整合在一個平台上,將來我們可能通過豐富的數據甚至跨專業數據來處理分析.
期待各位同行做出更多有意思的事情來.


訓練機器畫施工圖怎麼樣……占坑,我再去搜搜有沒相關資料。


深度學習主要是從大量數據中學到模型,要和深度學習聯繫上,先看看有什麼數據。


圖片來自某深度學習PPT,侵刪


我來寫個標準答案吧,建築師都忙著研究業主喜好做標書去了,不懂這個的都忙著加班畫圖去了


某房地產公司已準備將自己的戶型庫,銷售情況,客戶反饋作為基礎數據用於分析和統計用戶需要,並作為以後設計區塊和使用戶型的依據,我認為這個比較相關吧?


我感覺建築技術裡面的東西可以用深度學習。建築技術裡面的聲音,光,熱的數據處理可以嘗試一下。一枚考建築技術沒考上轉計算機的笨小孩的回答 。


看到這樣的建築心生了不順的感覺


作為設計師的輔助工具吧,主要解決一些結構問題之類的吧,設計不需要最優解,個人喜好比較重要。


搬運一個style transfer的開源庫lengstrom/fast-style-transfer
應用與建築的效果如下


推薦閱讀:

如何用一句話激怒設計師?
設計感遠大於實用需求性的建築有哪些?
為什麼國外的建築不講究南北朝向?
有哪些與生死相關的優秀建築?
文學殺死建築了嗎?

TAG:Python | 計算機 | 建築 | 建築設計 | 深度學習(Deep Learning) |