軟件測試中的AI

AI方法比較:基於規則的測試vs.學習

AI方法比較:基於規則的測試vs.學習

如何將人工智能付諸實踐?實現AI有幾種方法。廣義上講,人工智能領域區分了基於規則的技術和機器學習技術。因此,整個人工智能領域可以分為這兩類。通過基於規則的技術實現AI的計算機係統被稱為基於規則的係統。通過機器學習技術實現人工智能的計算機係統被稱為學習係統。

讓我們從鳥瞰的角度開始,問一個問題:計算機係統一定要有學習模擬智能的能力嗎?在這個問題上意見分歧很大。例如,莫妮卡安德森如果它不學習,它就不是人工智能。對其他人來說,這是對人工智能的嚴重誤解。據說基於規則的係統不要與…混淆基於規則的機器學習)模擬智力(至少在某種程度上),但沒有學習能力。不用擔心,我們將在下麵定義學習的真正含義。

基於規則的係統

基於規則的係統(如生產係統、專家係統)使用規則作為知識表示。這些規則以if-then-else語句的形式編碼到係統中。基於規則的係統的主要思想是捕獲特定領域的人類專家的知識,並將其體現在計算機係統中。就是這樣。不多不少。因此,知識被編碼為規則。

所以,在這種情況下,人們可以說基於規則的係統隻是因為缺乏學習能力而偽造智能,就像人類有時會假裝同情他人一樣。這不是真的。這是一個定義問題,人們是否認為這是一種人工智能。人工智能研究在這個問題上存在分歧(這並不奇怪)。所以,讓我們將基於規則的係統視為AI的最簡單形式。因此,基於規則的係統在模擬智能方麵的能力是有限的。它總是受到其底層規則庫(知識庫)大小的限製。據說它具有剛性智能。因此,基於規則的係統充其量隻能實現狹窄的AI。

基於規則的係統就像一個天生具有固定知識的人。對那個人的了解不會隨著時間的推移而改變。這意味著,當這個人遇到一個沒有設計規則的問題時,這個人就會陷入困境,因此無法解決問題。在某種意義上,人類甚至不理解這個問題。

這就是基於規則的係統的困境。基於規則的係統還會導致其他問題。例如,向已經很大的知識庫中添加規則而不引入相互矛盾的規則是困難的(幾乎是不可能的)。這些係統的維護往往變得非常耗時和昂貴。因此,基於規則的係統對於解決複雜領域或跨多個不同但簡單領域的問題不是很有用。除此之外,在某些情況下(例如,醫學圖像中的癌症檢測),甚至不可能以編程或聲明的方式顯式定義規則。這通常是基於規則的係統的亮點,(通常)是學習係統進入遊戲的關鍵點。

學習係統

與基於規則的係統相比,學習係統有一個非常雄心勃勃的目標。人工智能研究的願景是通過這些係統的學習能力來實現通用人工智能,而事實證明,這更像是一種希望,而不是具體的願景。因此,我們希望學習係統在模擬智能方麵的能力原則上是無限的。據說它有適應性智能。學習能力導致了適應性智能,而適應性智能意味著現有的知識可以被改變或丟棄,而新的知識可以被獲取。因此,這些係統動態地構建規則。這就是學習係統與基於規則的測試如此不同的原因。一個神經網絡是學習係統的一個實例。

底線。基於規則的係統依賴於顯式聲明的域的靜態模型。學習係統創建自己的模型。

這聽起來像是學習係統的黑魔法。他們沒有。讓我們來看看下麵的類比Kasper Fredenslund通過弄清楚學習的真正含義來揭開學習係統的神秘麵紗。

基於規則的係統和學習係統之間的區別歸結為誰(例如,計算機係統,人類)進行學習。例如,想象一些人類房地產經紀人組成一個團體。該組的名稱是一個基於規則的係統。

然後,這個小組試圖根據有關房屋的一些給定信息(例如,位置、建造年份、大小)來預測房價。此外,假設代理已經根據每個房屋的位置、建造年份和大小預先知道了一些示例房屋的價格。這意味著特工們已經接受過培訓。然後,這些代理人試圖根據給定的信息預測新房的價格。要做到這一點,智能體很可能會開始建立一個模型;例如,假設他們開發了一個簡單線性方程形式的模型:

價格=位置⋅w1+構建⋅w2⋅w +大小3.

我們可以很容易地想象,代理人會結合他們的直覺和經驗(知識庫),得出權重的值,以近似他們從未見過的房子的價格。通過對越來越多的房子這樣做,代理人會得到越來越多的數據,因此代理人會(很可能)開始調整模型本身(例如,方程的形式)或模型的參數(權重),以最小化預測價格和實際價格之間的差異。所以,學習的關鍵在於反饋。沒有它幾乎不可能學到任何東西史蒂文•萊維特(steven Levitt)).這就是(粗略地說)基於規則的係統的工作方式。

相反,學習係統會說:“去他的代理;我們不需要人類!”學習係統(簡而言之)隻是自動化調整權重的過程,以最小化實際價格和預測價格之間的差異,就像人類代理所做的那樣。因此,實際價格和預測價格之間的差異就是學習係統的效用函數(成本函數)。

學習係統的目標是最小化該函數,係統通過調整權重使函數最小化來實現這一點。因此,學習隻是意味著找到合適的權重來最小化效用函數。在學習係統(例如,深度神經網絡)中,優化(最小化,最大化)效用函數的過程被稱為反向傳播,這是通過傳統的優化技術來實現的。

這些優化技術(例如,梯度下降法隨機梯度下降)確實是基於規則的技術,因為這些技術隻是計算調整神經網絡中的權重和偏差以優化其效用函數所需的梯度。這一切在實踐中是如何實現的,差異很大(例如,監督而且無人管理的學習),但這個例子離現實並不太遠。

底線。優化是學習係統的核心。學習係統嚴重依賴於基於規則的技術(例如,數學優化)。

問題

這些係統有什麼問題?盡管學習過程是確定的(包括統計和概率方法),但從實踐的角度來看,從學習係統的內部工作中提取模型幾乎是不可能的,因為它的複雜性是由無數動態參數(例如,權重,偏差)引起的。

作為一個自然的結果,已經學習的模型不能被人類充分地解釋、解釋和理解。由於這個原因,學習係統通常被稱為黑盒.目前還不完全清楚這些係統是如何做出決定的。這是學習係統核心的黑暗秘密。將騎士).根據Tommi Jaakkola(麻省理工學院,計算機科學),這已經是許多應用程序的主要問題;無論是投資決定,醫療決定,還是軍事決定,你都不想僅僅依賴於一個黑匣子。

底線。學習係統不存在什麼黑魔法。隻有知識(或多或少)隱藏在這些學習係統中(基因沃爾夫).由於這個原因,大多數人工智能還沒有做好合規準備。

GDPR

值得注意的是,歐盟可能會創建一個解釋權通過GDPR通過這種方式,用戶可以要求對關於他們的算法決策進行解釋。GDPR會改變人工智能技術的遊戲規則嗎?目前還不太清楚它的真正含義。這樣的法律是否具有法律效力還有待觀察。甚至不清楚這項法律更多的是一種知情權,而不是解釋權。因此,GDPR對AI的影響仍然存在很大爭議。

黑盒

2015年,紐約西奈山醫院(Mount Sinai Hospital)的一個研究小組受到啟發,將一種學習係統(通過深度機器學習實現)應用於醫院龐大的患者記錄數據庫。這個數據集包含了患者的數百個變量,這些變量來自他們的測試結果、醫生就診等。由此產生的學習係統,稱為深的病人它使用了大約70萬人的數據進行訓練,在新的記錄上進行測試時,它被證明在預測疾病方麵非常出色。在沒有任何專家指導的情況下,Deep Patient發現了隱藏在醫院數據中的模式,這些模式似乎表明了人們何時會患上各種疾病,包括肝癌。

西奈山研究小組的負責人喬爾·達德利(Joel Dudley)表示,有很多方法都能很好地從病人的記錄中預測疾病。但是,他補充說,“這是更好的方式。”與此同時,“深度病人”也有點令人費解。它似乎能很好地預測精神分裂症等精神疾病的發作。但由於精神分裂症對醫生來說是出了名的難以預測,達德利想知道這是怎麼可能的。他還是不知道。“深度病人”沒有提供它是如何做到這一點的線索。如果像Deep Patient這樣的軟件真的能幫助醫生,理想情況下,它會給醫生提供預測的基本原理,讓他們放心,這是準確的,並證明,例如,改變某人開的藥物。“我們可以建立這些模型,”達德利說,“但我們不知道它們是如何工作的”(威爾·奈特,人工智能的黑暗秘密).

決策偏差

在最近ted演講(2017年12月)彼得·哈斯(布朗大學)描述了一些與最先進的人工智能技術相關的問題,特別是在圖像識別領域。例如,Haas討論了一個簡單的例子,要求學習係統在圖像中區分狗和狼。他舉了一個例子,一隻狗(上圖)被一個學習係統誤認為是狼。開發該學習係統的研究人員不知道為什麼會發生這種情況。

他們重寫了整個算法,這樣學習係統就可以向他們展示在做出決定時所關注的圖像部分。結果如上圖右側所示。結果證明,學習係統主要關注圖像背景中的雪。這是輸入到學習係統的數據集中的一種偏見形式。

人們發現,用於訓練學習係統的大多數狼的圖像都是雪地裏的狼。因此,學習係統將雪的存在或不存在與狼的存在或不存在混為一談。可怕的是,研究人員並不知道這一點,直到他們重寫了學習算法來解釋自己。

你可能不關心圖像中狗和狼的區別,但你應該這樣做。最重要的是,學習係統在現實生活中也被真實的法官用來對真實的人的生活做出真實的決定。這些學習係統被用來決定你是否能獲得住房貸款、工作麵試和醫療補助。這個名單可以一直列下去。所以,你(至少)應該關心。

底線。如果你不需要理解已經學習過的模型,並且你有足夠的訓練數據和足夠的計算能力,那麼一個學習係統將以想法的速度提供巨大的價值。

選擇方法

決定是使用基於規則的係統還是學習係統取決於你想解決的問題,這總是在效率、培訓成本和理解之間進行權衡。如上所述,基於規則的係統以及學習係統都是通過具體的技術(算法)實現的。這些術語隻是傘形術語,每個術語代表一組不同的具體技術。

例如,學習係統是由機器學習技術實現的,而術語“機器學習”本身又是各種技術的統稱,例如深度機器學習(實現神經網絡),強化學習遺傳算法決策樹學習支持向量機,還有更多。所以,沒有單一的機器學習技術。基於規則的類別也隻是一堆技術(例如,優化技術).

我們將跳過所有這些技術的細節,這樣我們就不會迷失在細節中。本文絕不是關於這些技術的詳盡資料。基於規則的係統和學習係統之間的關係以及它們之間如何相互作用的知識足以討論它們在軟件測試中的應用。

建議。如果你不熟悉這些術語和技巧,我們推薦一些視頻來學習神經網絡梯度下降法,反向傳播

Baidu
map