【線上分享】人工智慧在產品設計方案生成與設計決策領域的探索
導讀:D&AI實驗室最近組織了一場設計與人工智慧方向的線上互動live分享(設計與人工智慧微信群),第一期我們請到了來自西北工業大學的工業設計在讀博士——王亞輝。下面就是本期的分享內容,本篇將近8000字,請小夥伴們合理安排好學習時間。同時D&AI Lab現招聘【機器學習工程師】,如果你有過數據和演算法相關的經驗(1-3年),並且對設計和機器學習感興趣,非常歡迎投遞簡歷到yq@sheji.ai
大家好,我是西北工業大學工業設計在讀博士王亞輝,目前主要的研究方向有智能駕駛HMI、human factors、腦認知、人工智慧設計範式等。同樣作為一名科幻迷,我的許多研究也受到了來自科幻小說和電影的啟發,本次分享的是我個人最感興趣的,也是讓設計師顫抖的一個研究方向-人工智慧設計範式,通俗來講就是讓機器取代或輔助設計師進行方案生成或其他設計活動,目前正在嘗試的主要研究領域為有:1)利用深度學習進行設計方案自動生成。2)語義驅動的自動設計決策。下面就是本期的分享內容。
nn從去2015年開始,深度學習、人工智慧、機器學習等辭彙成為各大媒體、創業者和投資專家的口頭禪,西部世界、機器姬、異形系列電影中的人工智慧也開始讓更多的人直觀的了解了未來人工智慧可能發展的方向,受到來自電影和諸多前沿文獻的啟發,我開始主動挖掘和探索設計領域和人工智慧可能的契合點,重新思考工業設計、平面設計、包括交互設計領域未來的人工智慧發展方向,通過與西安電子科技大學機器視覺團隊的合作,在設計與人工智慧結合的領域邁出了一小步。
1)設計方案自動生成是否有成熟案例?
nn就最前沿的文獻來看,目前還沒有相對成熟的案例,都只在探索階段,無論是國內還是國外的研究團隊,目前在文獻裡面我們還沒有看到在設計方案生成方面有比較成熟的案例。我們在媒體中看到的新聞,比如說logo、UI設計,通過人工智慧生成一些方案,他們背後的演算法大多是匹配生成,而非創造生成,這其中有本質區別。
2)是否能推薦一些相關論文和資料?
nnnn最開始了解深度學習是風格轉換,NeuralStyleTransfer這篇論文裡面講的就是其實現的演算法,這篇文章給了我很大的啟示,這項研究是在藝術領域的一個探索,而且非常成功,它將不同的藝術家風格賦予到一個新的圖像上面。當時看完以後我非常震驚,我覺得在藝術領域能有這麼大的應用,是不是在我們設計領域也可以有一些更有啟發性,更有創意性或者更好玩的一些發現呢?畢竟藝術離設計如此之近。後來我又看了一些別的文獻,比如說,人臉側臉生成正臉,圖像到自然語句的匹配,這些內容跟我們設計領域有很多聯繫,也都能看到設計生成的影子。
nn此外,在看到的一些文獻當中,我覺得跟設計契合最明顯的是生成椅子的文獻(Learning tonGenerate Chairs with Convolutional Neural Networks)。這篇文章雖然沒有更多跟設計相關的一些思想,但它至少能通過案例應用一些深度學習的方法生成一些新的椅子,這篇文獻讓我覺得將深度學習引入設計領域並非不可能之事。大家可以仔細研讀一下這篇文章。(文獻匯總地址將貼在文章最後)
3)對之前提到的研究方向「自動設計決策」,什麼是設計決策?有具體的落地和應用場景嗎?能大概跟我們講講這個方向你們是如何去做的?
nn因為我是工業設計背景,雖然也做過交互設計,但是我的大部分工作都是產品設計方面的:包括汽車設計、工程機械、智能硬體的一些設計。設計有一個問題是永遠逃不開的,這就是設計決策,每一輪設計方案迭代的時候都會遇到這個問題。當我們有很多個方案的時候,該怎麼去選擇。假如說我們靠一些專家或者根據專家的經驗/甲方的參與,這樣他們選的方案只能是代表他們的一些主觀的看法,是他們經驗和他們之前理論基礎的一種表達。包括我之前做一些UI、交互設計,不是說一個人做的一整套設計方案就會直接採用了,有時候落地的設計方案是由許多設計師共同來參與完成的。所以涉及到到方案選擇,或者說方案評估的時候就可以有「設計決策」的參與。這也是「設計決策」具體的一個應用場景,即產品設計的方案評價。
nn設計方案決策研究大概有兩個思路:一個角度是從設計委託方去思考。設計委託方往往提設計需求是這麼去表達的——我想要一個什麼樣的東西,他們往往是通過語義的方式去表達。比如說一輛汽車,他們會說「我想做一個流線型特彆強的,或者就是特別現代感,未來感的一輛汽車」。下圖中所示的層次分析法是非常常用的一種方法,他只是把是設計決策的大致整個流程細分了一下。汽車設計期望是設計委託方期望的一些辭彙表達,下面的具體參數是設計師通過設計期望來解讀的一些限制性因素,最後來完成下面的方案,這是自上而下的一種思維
方式。
另外一個角度就是從設計師的角度。他們可能就是從造型美學,包括結合整個產品品牌基因,還有就是人機工程,品牌戰略,商業模式等等,將眾多因素都考慮進去。最後每個設計師將他們的設計經驗和積累的設計知識結合來表達到一個產品的造型上面。這時候的設計決策,是選擇最契合或者最大限度能滿足委託方要求的方案,這是設計師角度,自下而上的思維方式。如果我們從機器學習的角度去思考,也是會有這兩種方式——設計委託方維度和設計師維度。設計委託方是通過語義來決定我們設計的最終形式。設計師維度可能更多是從造型,比如點線面的角度去完成我們的設計。我們現在做的就是以設計委託方角度結合機器學習做的探索。我們利用的資料庫是斯坦福的一個資料庫http://ai.stanford.edu/~jkrause/cars/car_dataset.html n這個是資料庫地址,裡面附帶論文;這個裡面包含了有幾萬張圖片,我們想做的就是如何用這些圖片運到我們的設計決策過程裡面。數據集很重要,可轉到下面:自己學習深度學習時,有哪些途徑尋找數據集?n- 知乎
【互動提問】AI汽車設計目前只研究汽車造型嗎?還是有哪些跟汽車產業鏈相關的應用嗎?哪怕只是嘗試。
nn沒有,我們不只研究造型。因為在我們這個汽車造型的case裡面,數據集獲取很方便,有現成的不用你去做。假如我們想再做其他部分的話,首先有很大的問題就是數據不夠,所以我們算是取巧,用了現成的數據。之後會講到的「方案生成」我們用的數據完全是自己整理獲取的,因為斯坦福這個資料庫在汽車車型方面已經很全了,我們可以很方便的直接使用。然後我們選取一些具有典型代表的車型給他整個造型進行分塊分區,接著對各個區域進行語義標記也就是貼標籤,我們這麼做的目的就是通過語義的方式來達到我們輸入一個語義就會給一個分數這樣的結果,最終完成無監督自動設計決策。
【互動提問】你的分數代表什麼呢?美觀?安全?還是市場接受度?流行趨勢?
nn美觀,安全,市場接受度,流行趨勢這個是從設計師角度去思考。自下而上的這種思考方式可能更符合設計師的一種邏輯,但是目前它執行的難度非常大,因為這裡面每一個環節都需要你去貼標籤,標籤化量化都需要重新開始。
【互動提問】這樣理解對不對,是建立了一種語義標籤和圖像的對應?
nnnn對,就是這樣的,我們這個思路就是上面提到的設計委託方的角度去做的。我想要一個什麼樣的車型,給所有車型在他的關鍵造型的地方貼個標籤兒,最後某個方案得分越高就說明這個方案和我們的期望值是越吻合的。
【互動提問】那麼隨著語義標籤的越來越多,這種對應關係也會越來越模糊?既然都是基於已有的汽車數據庫學習出來的,那麼你怎麼讓AI做出來的汽車超過原來的經典設計呢?有沒有基因突變進化的模塊?
nn隨著語義標籤越來越多,這種關係可能會越來越模糊,目前來看是這樣子的。我們對AI的預期可能太大,感覺AI能做一切事情,這本身是一種錯句,超越經典設計,我覺得目前來看是不可能的,未來某一天可能會實現,AI在設計領域的應用遠沒有我們想像中那麼智能。我還想再補充一下,目前的人工智慧甚至連簡單的logo設計都很難做好。Logo生成,包括我們經常看到一些網站,以「人工智慧的名義」的設計生成,其實它只是一種簡單的匹配關係而已,通過一個資料庫,匹配文字圖形或語義進行組合而實現logo生成,它的設計能力非常有限。
4)可以簡單跟我們講一下自動生成設計方案的過程嗎?包括你們選擇學習的數據特點,以及選擇的演算法等過程。
nn我們去年做了一些嘗試。我們選用的是工程機械,整個資料庫也是自己在一點兒點兒積累起來的,資料庫涵蓋了全球領域所有的輪胎式起重機的側視圖還有前四十五度這兩個角度的圖片搜素材(具體實現的演算法和步驟在微信群有過分享,但因為文章尚未發布所以沒有公開)
。
其實在整個過程裡面,資料庫就弄了將近一個月。包括後面這個標籤弄起來也非常麻煩,我們除了下載整個測試圖前四十五度圖之外,又通過python爬了一些其他的工程機械放到裡面,就想通過這種方式來增加資料庫的量。一個小樣本數量的數據集,深度學習跑起來的結果可能是非常差。期間我們做了非常多的嘗試,但最後結果也不理想。然後我們就看到椅子(Learning to GeneratenChairs with Convolutional Neural Networks)那篇文章,我們就開始嘗試導入一些三維模型,通過學習三維模型去做。但是我發現幾個問題,一是模型特別大,二就是模型的數量太少,我們只有不超過十個模型,所以最後生成的工程機械的側視圖也非常不理想。後來和團隊成員交流,我們認為其中一個很大的問題就是我們選的產品選擇。工程機械,的整個側視圖裡面型面造型特別多,而且非常複雜。所以機器在學習的時候,許多小的細節問題根本無法計算出來,很難識別模糊的邊界。我們即使對特定的幾個區域進行了一個區分,機器也不能很好地學習,這本身屬於機器學習的局限性。
nn選擇的演算法基本上都是通過查閱文獻,找到類似的演算法然後去嘗試。只要我們可能會用到的一些演算法都有試過,這些演算法引用到設計領域本身也非常具有挑戰性。設計不同於藝術的一點就是它不僅有邏輯,還有情緒、情感,藝術性,以及其他各種因素。所以現在一有些新的演算法或者文獻出來,我們第一時間就去進行嘗試。但是就起重機方案生成來看,目前為止都沒有一個很好的結果。現在我們開始反思,想用稍微簡單的產品,從第一步開始慢慢的做。比如說我們這次選用的是水杯,這個是最簡單的造型,而且素材也非常好找,整個樣本量也可能會非常大。第二個就是我們可以對他的整個造型元素去貼標籤,而不是像之前機械裡面要分三四個部分。所以我們現在想從最簡單的入手,再去嘗試一下能不能解決二維到三維,再從三維到二維平面轉化的問題。
5)想問一下你們處理數據的時候,是如何標記數據特徵的,有什麼好的方法可以給我們分享一下嗎?
nn在深度學習裡面,特徵提取和標註是非常重要的一步。網上有很多的打標籤的那種網站,比如說LabelMe.nThe Open annotation tool。但是在設計領域裡面,你會發現數據非常少。所以如果你想做一個和設計有關的深度學習項目,最好是自己去新建一些資料庫,然後根據自己的要求來標記數據,現在很難找到現成的設計類資料庫。
6)我們都知道用人工智慧研究設計領域問題,建立設計相關的數據集是第一步。你對這方面有什麼想法和建議嗎?
nn建立相關的數據集是第一步,確實是這樣的。我們可能總是拿來主義,想直接用已有的一些數據集。但是我們用的時候就發現一個很大的問題,你用這些數據集根本做不出來什麼東西或者只是在複製他的東西,想要做自己的相關研究仍然需要很多的工作,有時候反而會走了很多彎路。所以索性不如我們不去取巧,反之自己去建立一些資料庫,可以從小樣本到多樣本慢慢來,我覺得數據積攢到上百個到一千個,甚至到幾千個的時候,它的效率,準確度就會越來越好了。
7)設計充滿了不確定性,它很難去定義成非0即1的問題。你覺得人工智慧在設計方面,如何去表現設計的不確定性
nnnn第七個問題是設計充滿了不確定性,甚至具有偶然性。我們傳統上認為設計就是這樣的,但是其實我個人感覺所有不確定下面或者深層次裡面都是有確定性在裡面的。比如說人的認知是確定的,或者說人的一些生理的反饋是確定的。傳統的設計充滿了不確定,可能是因為我們在做設計的時候有很多種不同的因素,包括設計師經驗和設計知識儲備的不同,導致了設計結果的不確定性。我印象裡面Design Studies上有一篇文章寫道,通過幾種不同的設計手段,最後設計的結果是殊途同歸的,所以說這個「不確定」也是有「確定」在裡面。
【互動提問】數據整理和語義標記有什麼技巧分享嗎?
nnnn我們在數據整理還有語義標記,遇到了非常大的坑。因為我們設計師很多都是靠感性去做設計的,或者說是感覺,或者有情緒情緒驅動我們去做,在做數據整理和語義標籤的時候,也是不太能意識到需要考慮順序和權重這些對深度學習程序語言比較重要的問題。我們一開始根據自己的想法去標記,然後給到編程人員的時候,他們感覺非常亂,沒有一個秩序或者層次。所以作為設計師去標記產品語義的時候,我們需要考慮編程人員的一些思維方式,他們是如何解讀語義的,最大化的為開發人員後期的一些便利性去考慮,增加效率。
【互動提問】可能是因為以往設計的很多東西沒有去做數據上的量化?
nn數據上的量化,一是難,二是沒有這個習慣。很多設計師做完設計方案,不去思考這些問題,只是把方案整理下就得了,沒有思考過、甚至也不需要數據量化,這也是整個數據收集難度大的一個很重要的因素。
nn剛才說到設計的不確定性,我認為其根本還是由人的不確定性決定的,我個人認為人工智慧可以模擬這種不確定性。做一個假設,假如說我們每次通過輸入相同的語義,機器能夠給出的設計方案是不一樣的,那麼機器給出的不一樣的設計方案是不是本身能夠表徵這種不確定性呢?我覺得這也可以算是一種不確定性,過程不同,但實現的不確定性結果是相同的,這和兩個設計師生成不同的設計方案的結果看起來至少是一致的。
nn剛才提到設計方案本身樣本就很少,所以我們最近也在關注許多小樣本深度學習的一些方法,比如說ELM超限學習機這種學習方法,他們是用一些小樣本進行學習,通過特徵提取以後可能會有些好的結果,我們也在嘗試各種可能,比如GAN,CNN,DNN等比較流行的演算法。也許在未來的某一天,有一些更好,更優的演算法適合結合到我們設計領域去做一些好玩的事兒。總之,樣本、產品選擇、演算法選擇都會影響到最終實驗結果,三個因素缺一不可。
8)能介紹一下您現在在做的研究么?包括研究和產業中的關係?
nnnn目前我們還在做設計做方案生成。我們打算從設計師的角度去嘗試一下,從基本的點線面,結構,邏輯關係這個角度去做,看看是不是能夠出來一些好的結果。我們打算做一些比較簡單的東西,比如說水杯。通過非常簡單的點線面,還有平面關係去做生成,看看能不能跑出來些很不錯的設計結果。這是我們目前做的方案生成的一個研究。
【互動提問】我能否這樣理解,因為機械設計的外形和功能對應性是比較高的的(如吊車的結構決定它只能實現這樣一種用途)所以這讓這個領域的特徵更易於被數據化和標籤化?
nn我們選擇這個領域是因為我們比較熟悉這個領域。起重機的懸臂,車頭,我們沒有做設計,因為那裡很多是標準件。他整個起重機造型就集中在側面的側護板擋板,也就是那三個主要的部位會影響整個造型的美觀性,所以我們就是從這個造型的角度,進行特徵標記。相反選擇這個產品難度很大,所以最後的一些結果不好,是因為裡面結構部件太多了,計算機在分析的時候區分不出來,生成的結果非常不理想。
9)在您的生成設計中調參的規則大概是一個什麼樣的?
這個是對應第九個問題,其實我覺得這個所有的核心都是在準備數據這個階段。假如說你這個數據集量大,而且質量比較高的話,當然標籤兒也要很乾凈,這樣的話進行機器學習會順利很多。(下圖為網上圖片,侵刪)
10)設計決策的過程中的影響因素是復雜的人技術時間資源都會影響設計的結果,您的決策模型是如何量化和平衡這些的呢?
前面提到用語義學的一種方法,包括用一些很簡單的的層次分析法也可以做,但這個不完全屬於人工智慧範疇,還是有人參與的決策模型。人工智慧要達到無監督設計決策是最理想的狀態,只需要我們把設計方案輸進去,無論產品造型還是UI的設計方案,它都能準確的把每個方案的分數打出來。而且這個分數非常契合我們想要的結果,這個設計決策模型對對整個設計項目就很有指導意義。
通過語義決策這種方式,好處就是我們不需要去考慮您提到的複雜的一些技術,時間,成本。需要我們考慮的就是從委託方最簡單最直覺的需求來判斷「我想要的是不是這樣的」,假如說你這個方案和我的契合,那麼我就覺得你這是對的,也就是可以選定這個方案。
設計決策還有一個方向,就是從人的主觀感覺去考慮,這個主觀感覺是通過腦電信號或者其他生理信號的量化去做的。語義是一種方式,那麼人的一種感覺是不是另外一種方式呢?我們也想通過深度學習去模擬這種感覺的學習。我們用的範式是ERP範式,通俗講就是當人們看到不同的設計方案圖片以後,人的大腦會產生不同一些腦電波動。這樣的話我們通過採集大量觀看各種不同的設計方案圖片的數據,來完成主觀感覺餓模擬,而且整個數據集也會很大,我們可以去觀測設計評價專家在不同的設計方案裡面的一些微小的生理變化,通過這些變化得到最終決策結果。這個只是我們目前的一個設想。實驗的話我們可能九月份才能做。
【互動提問】剛才談到數據標記中踩過的坑,能否具體展開下,你們一開始的標記方式是怎麼樣的?後來為了編程人員後期的便利性,怎樣修復了標記方式?
最開始標記的時候我們,首先沒有說有一個規範性的東西,就是我們是非常隨意的就是完全憑感覺寫幾個屬於設計範疇的語義辭彙。後來我們對其進行了規範,幾個辭彙有一個對應的關係,比如說,現代保守,這樣的話機器識別起來就非常簡單,包括後面做權重的話也非常容易。另外語義辭彙正常是有一個並列或者順序關係,我們開始沒有考慮那麼多,但是計算機識別的話,並列處理和順序處理的結果完全不同。
貼標籤過於模稜兩可,但是計算機要的東西的非常精確的。有先有後,有具體的權重是多少,都要明確的告訴計算機。這樣的話計算機計算起來,才能跑得通。所以需要將數據處理的非常明確並且量化。整個樣本裡面需要正樣本,也需要負樣本,通俗來講就是設計方案要有好有壞,這樣的話機器才能很清晰的知道對他們來說哪個是好的,哪個是不好的。
【互動提問】ERP 事件相關電位和情緒的對應關係,目前應該還沒有一個很清晰和統一的結論吧?這個是哪一年的研究結論呀?是已經能在消極情緒里區分出比如憤怒,傷心,焦慮這一類的了?
這個是今年清華大學做的一個研究,他們已經可以把腦電和幾個關鍵情緒映射起來。他們做的還不是FMRI,是EEG,希望對我們以後的實驗有所幫助。
【互動提問】感謝亞輝,聽完受益匪淺!想問下有沒有具體的設計決策示例可以跟大家分享?比如「陽剛、現代」作為語義輸入,模型對應的圖片、分數輸出如何?
每個設計方案圖片和語義標籤都是一一對應的,這裡面最關鍵的是語義標籤的辭彙確定,我們是通過十名設計師的語義統計結果確定的,前期工作量很大。為了豐富資料庫,我們儘可能多的為各部分造型貼上不同權重的標籤,驗證該模型的方法是導入不在資料庫中的設計方案圖片,深度學習模型會給出一個分數,目前跑出的結果和設計師決策的平均分數匹配度還可以。
【互動提問】ResNet是什麼?
大致的工作原理是我們有plain net,然後選取一張圖片,接著有conv,pool,然後繼續conv,conv,conv,conv。在ResNet中,在這些有趣的跳躍連接中,除了這種嚴格將一個容量轉移到下一個容量的傳遞之外,我們還有這些連接。你可以將很多的信息打包進一個小的容器里。
工作方式:
在一個普通的神經網路中,你有一些函數H(x),想做一些計算,你要轉換映射後的值,所以你有一個權重層,你有神經元映射後的值,你要將其轉換,等等。在殘差網路中,你的輸入不是去計算你的變換F(x),而是計算過程中需要加上輸入的殘差。這個2層的神經網路需要計算的是頂部輸入的原始表示,而不是一種與之前x完全沒關係的表示,這個就是resent模型。
最後:
我覺得目前有幾個方向大家可以探索
1 )目前有人在做字母和漢字的生成。因為字體庫都有現成素材,我們可以在新字體生成的基礎上再進一步,引入並學習設計風格,從而實現新字體的設計生成。
2)UI設計應用中較多是自適應或者模糊匹配,再進一步是否可以學習底層的邏輯和框架,從而實現符合用戶認知習慣的交互方式,視覺設計部分可以通過遷移學習學習不同風格,最終實現完整的界面交互設計。
n文獻地址:https://pan.baidu.com/s/1eSIgYMen,歡迎下載!
推薦閱讀: