ai如此熱,軟體測試自然也給予極大的關注。一年前, 我就寫過兩篇文章:
圖靈測試,測的到底是什麼?
如何測試人工智慧軟體?
主要是討論圖靈測試、如何測試人工智慧軟體。今天寫這篇文章,是討論如何將ai應用到軟體測試上,即應用ai技術測試一般非ai軟體,徹底提公升自動化測試的水平,解決一些之前用其它技術不能解決的問題。實際上,ai在測試領域已經取得一些實質性的進展。但在討論這個主題之前,我們先快速了解一下什麼是人工智慧(artificial intelligence ,ai)?ai有哪些具體的應用和演算法?
圖1: 人工智慧概貌
簡單地說,ai就是機器實現的人類智慧型,即讓計算機實現原來只有人類才能完成的任務,即能夠以人類智慧型相似的方式來解決問題,包括計算智慧型、感知智慧型、認知智慧型等。最早(2023年)提出的ai是通用的ai概念,即指擁有人類的所有感覺、理智,能夠像人類一樣思考的神奇機器。現在還很難做到,就退而求其次,機器能夠將特殊任務處理得同人類一樣好(甚至超過人類處理的結果),如影象分類、人臉識別等,這就出現了機器學習(狹義的人工智慧)。而在機器學習中,深度學習是最有效的一類演算法,目前在深度學習上我們已經獲得極大成功,alphago就是乙個範例。也有學者說,複雜的中國駕駛場景,正是深度學習的優勢。自動駕駛是深度學習和增強學習融合而成的機器學習。所以從時間看,上個世紀50、60年代就開始提ai,然後到了80年代提出機器學習,而深度學習直到2023年才獲得實質性的突破。
圖2 英國最像人的機械人「索菲亞」,可以舌戰群儒
ai具體體現在機械人、語言識別、影象識別、自然語言處理和專家系統等方面,主要包括以下幾個方面的應用:
人類感情: 分析人臉特徵, 應對人類感情(心理**)和識別罪犯,如英國機械人索非亞就能展現多種表情。
視覺和影象處理:視覺情感、物件識別(如人臉識別、指紋識別)、行為識別、活動識別、自動駕駛等。
語音:語音識別、聲音鑑別、吟誦(語音合成+上下文理解+人類情感模擬,包括詩詞吟誦,甚至有一天說相聲、說評書)等。
機械人:機器學習、多機械人協同(多機械人系統)、多腿行走、感性認知等。
基於概率的推論:常識、行為推理、非單調性推理等。
從技術上看, ai目前依賴機器學習來實現,而機器學習的主要演算法來自深度學習的演算法。在機器學習上,主要的演算法有:
感知器(perceptron)二元線性分類演算法,屬於有監督學習。
svm(supportvector machine,支援向量機),也是線性分類演算法,找到「最大間隔」的劃分超平面。
整合學習:主要有bagging、boosting,將多個弱分類器組合成強分類器,從而提公升分類效果。
rbm (restricted boltzmannmachine,受限玻爾茲曼機) 是一種用隨機神經網路來解釋的概率圖模型(probabilistic graphical model)。
dbn(deep beliefnetworks,深度信念網路)是基於rbm發展而成的深度學習的核心演算法,得益於對比散度(contrastive divergence, cd)的高效近似演算法。它由若干層rbm級聯而成,繞過了多隱層神經網路整體訓練的難題,將其簡化為多個rbm的訓練問題,使得識別效果和計算效能得到顯著提公升。
dbm(deepboltzmann machines,深度玻爾茲曼機),類似dbn,深層次的資料擬合,多個rbm連線起來構成dbm,模仿人腦多層神經元對輸入資料進行層層預處理,但dbm是無向圖,還可以延伸出自編碼神經網路和棧式神經網路。
rnn(recurrentneural networks,遞迴神經網路)神經元的輸出可以在下乙個時間戳直接作用到自身。
cnn(convolutionalneural network,卷積神經網路)是一種前饋的、深層的、非全連線的神經網路,其人工神經元可以響應一部分覆蓋範圍內的周圍單元,適用於大型影象的處理。
sparse coding (稀疏編碼)是根據降低變數相關性的方法之一是降低個體的熵,從而尋找乙個最小熵編碼,使得每個係數的概率分布是單模態並且在0處是峰分布的低熵(low-entropy)方法。
bayers net,貝葉斯網路是乙個帶有概率注釋的有向無環圖,其概率是利用貝葉斯公式計算出其後驗概率。貝葉斯分類器是用於分類的貝葉斯網路,主要有四種:***** bayes、tan、ban和gbn。
機器學習還分為有監督學習、無監督學習,如:
有監督學習:感知器、svm、整合學習boosting、rnn等;
無監督學習:rbm、dbn、dbm、bayers net、稀疏編碼等。
無監督學習是目前演算法的主流,而且神經網路演算法大部分是無監督學習,大部分演算法中都應用了概率論,雖然沒有把它們歸為概率模型等。
感興趣的可以關注一下
精彩的內容要和朋友分享哦
如何讓回歸測試變得輕便快捷
是否你在做回歸測試的時候常常會因為範圍評估不准而遺漏一些bug?是否回歸測試時候的你面對一條條的回歸用例而發愁呢?不要在煩惱,精準測試讓回歸測試變的不再困難!一 什麼是精準測試 在回歸測試的時候,測試人員往往會根據開發同學所給出的改動範圍來評估需要回歸的測試範圍,這個時候如果測試人員的經驗不足,或者...
軟體測試面試故事 聰明反被聰明誤
軟體測試面試故事 聰明反被聰明誤 背景介紹 nb公司的面試 流程步驟多,嚴謹,正常情況下乙個順利的面試流程需經5個面試官的考核,真所謂過五關斬六將,能闖到最後一關者,絕非易事。某公司的過來人如是說。求職者 王小姐,畢業後一直從事軟體測試 工作4年。面試官 共5位,其中前3位為技術面,後2位為綜合素質...
讓測試人員參與軟體設計
專案測試過程中我們的任務也許僅僅只是找出bug,但是對於bug產生的本身可能並不關心,因為績效考核只關心bug的質量和數量,所以使得我們測試人員的眼光變得很狹隘,甚至可以說是膚淺。最近在接手乙個專案測試任務時,發現我們的工作是如此的單調,而且不愉快,原因在哪兒呢,大家一致總結是因為沒有需求,或者說有...