用AI解決問題的觀念分享

我在工作上會遇到大大小小的問題,很多時候問別人通常可以很快得到解答,如果對方不知道答案,通常也會指引我去找其他更懂的人來回答,有點類似玩RPG或大地遊戲這樣,繞個幾關總是能得到答案。但就是有這麼幾個問題,可能不管我問多少人,都不會得到一個很明確的答案,或者這個問題需要耗費很多時間,其他人可能不會有這麼多時間來陪我解決問題,這時候,AI就是個很好的夥伴。這邊來分享幾個我在用AI解決問題時所遇到的一些問題以及我覺得幫助我蠻大的觀念。這篇文章將會用以下這個問題來當作範例: 我有一個圓形以及17個溫度測量點,這17個測量點主要是用來看這圓形截面的溫度分布,現在,我想要將這個圓形分成5個區塊,並用5個溫度點來代表。

1.清楚定義問題

其實做任何事情都一樣,當自己都不知道問題是什麼的時候,別人更不可能知道自己的問題。所以在問之前,先想清楚自己要問什麼。我一開始其實不是問AI上面那個問題,我想得太複雜了,因為其他數據顯示這溫度的因素會因為A跟B兩種因素來導致最高及最低的溫差有所變化。所以我一開始問AI如果我有17組(A,B,溫度)的數據點,我該怎麼樣來分組?但我後來發現,問這個問題有個致命的缺陷,因為最後就算我成功分組了,我得到的答案是最高及最低溫度的溫差,而不是5個溫度點。發現這個缺陷後,我果斷的重新思考問題,也才終於問出正確的問題,也就是以上那個問題。你可能會問那A跟B的因素就不用去管了嗎?當然要考慮,但剛好這兩個因素可以用if, else或switch判斷來做簡單的分類,雖然不精確,不過只要模擬結果大致符合實驗就行。

2. AI可能會犯錯

AI會犯錯大家可能都知道,畢竟誰不犯錯,但重點是我知道AI犯錯了嗎?在AI匯出所需要的結果之後,我會檢查這是不是我要的,同時,如果AI有附程式碼,我一定會複製程式碼,貼到我的編譯器後執行一次,確認結果是我要的。如果不是,我會告訴AI哪邊怪怪的,可以幫我看一下嗎?或我會問AI為什麼跑不出我想要的結果?讓AI來思考是不是它有犯錯,或根本就是我們給的限制不夠,導致它沒有辦法精確的輸出結果給我們。再以上面那個例子為例,最一開始AI輸出結果時只在圓形中標出四個區域,而不是五個,我就想說為什麼跑不出五個,一問才發現,AI是先用正方形的格點包覆整個圓形,再用溫度內插的方式來決定格點的數值。問題來了,AI沒有把圓形外面的格點拿掉,導致最後顯示的時候,圓形外面的區域也自成一個區域,最終結果就變成圓形內部只有四個區域,跟我預期不符。直到我發現這個現象,跟AI反應並且拿掉圓形外面的格點之後,終於得出了五個區域,並且得到我要的結果。

3. 了解AI怎麼做到的

就算最終結果符合預期,也一定要了解AI怎麼做到的,如果繼續上面這個例子,就是要讀程式碼,確認了解AI在處理這個問題時的整個流程。這不僅是在確認AI是否有犯錯的重要環節,這也是在確保當別人問起所以我是怎麼做的時候,我可以侃侃而談,跟他說明我是怎麼做的,從A到B用了什麼概念等等。這對工程師而言尤其重要,我們看重的不只是成果,更注重過程,怎麼做的一定要清楚了解,不然在跟主管開會的時候,如果不知道這怎麼來的,就算有成果,一樣會被電到飛起來。

在讀程式碼的時候,如果有不懂的也可以直接向AI討教,AI還會給你更多的例子,來幫助了解。讀程式碼的過程讓我學得更多,也更清楚整個解答的過程。所以讀程式碼這一步實在太值了,不只可以免於挨罵,同時還能學到東西,一舉兩得。

結論

我常把AI看成一個能幹的小秘書,但在給它下指令的時候,一定要定義好問題,並且確認所有限制是否到位,最終一定要詳細把AI怎麼做到這個結果的過程完整看過,不僅確保AI沒有亂做,也給自己一個學習的機會,讓自己之後如果碰上同樣的問題,可以用類似的概念去解答。

封面圖片來源: BlackJack3D, Unsplash