6000字科普,人工智能的應用及相關技術
本文是《人工智能基礎(高中版)》的讀書筆記,這本書的配圖非常好,把難以理解的概念圖形化,所以讀后感會引用書中的圖片(圖片版權歸商湯科技所有)。
書中部分概念還是比較晦澀,讀者在小白的角度不好理解某些概念和方法之間微妙的差別,所以我用自己的理解和抹去一些難以理解的細節,以更通俗易懂的形式展示出來。
一、人工智能概述
1. 簡史
2. 應用領域
安防
- 實時從視頻中檢測出行人和車輛。
- 自動找到視頻中異常的行為(比如,醉酒的行人或者逆行的車輛),并及時發出帶有具體地點方位信息的警報。
- 自動判斷人群的密度和人流的方向,提前發現過密人群帶來的潛在危險,幫助工作人員引導和管理人流。
醫療
- 對醫學影像進行自動分析的技術。這些技術可以自動找到醫學影像中的重點部位,并進行對比比分析。
- 通過多張醫療影像重建出人體內器官的三維模型,幫助醫生設計手術,確保手術
- 為我們每個人提供康建議和疾病風險預警,從而讓我們生活得更加健康。
智能客服
智能客服可以像人一樣和客戶交流溝通。它可以聽懂客戶的問題,對問題的意義進行分析(比如客戶是詢問價格呢還是咨詢產品的功能呢),進行準確得體并且個性化的回應。
自動駕駛
現在的自動駕駛汽車通過多種傳感器,包括視頻攝像頭、激光雷達、衛星定位系統(北斗衛星導航系統BDS、全球定位系統GPS等)等,來對行駛環境進行實時感知。智能駕駛系統可以對多種感知信號進行綜合分析,通過結合地圖和指示標志(比如交通燈和路牌),實時規劃駕駛路線,并發出指令,控制車子的運行。
工業制造
幫助工廠自動檢測出形態各異的缺陷
3. 概念
什么是人工智能?
人工智能是通過機器來模擬人類認知能力的技術。
人工智能的三種訓練方式分別是監督學習、非監督學習、強化學習。下文會一一介紹。
二、這是不是鸞尾花(分類器)
1. 特征提取
人類感官特征
花瓣數量、顏色
人工設計特征
先確定哪些特征,再通過測量轉化為具體數值
深度學習特征
這里先不提及,文章后面會說
2. 感知器
老師給了一道題:
要區分兩種鸞尾花,得畫出一條直線區分兩類花,你可以畫出無數條直線,但是哪條才是最好的呢?
怎么辦呢?我可是學渣啊,靠蒙!
- 隨便找三個數a=0.5、b=1.0、c=-2 帶入 y = ax[1] + bx[2] + c,
- 每朵花的兩個特征也代入x[1]、x[2],比如帶入(4, 1) 得出 y[預測] = 1,此時 y[實際] = 1 (樣本設定變色鸞尾花為 1,山鸞尾為 -1 ),所以y[實際] – y[預測] = 0.
- 重復以上兩步,得出所有的『實際值和預測值的差距的綜合』,記為 Loss1
可怎么知道是不是最優的直線呢?繼續猜??!繼續懵!像猜世界杯一樣猜就好了。
通過沿 y = ax[1] + bx[2] + c 梯度(梯度就是求導數,高中有學的!)下降的方向繼續猜數字,具體過程大概是這樣子的:
上述所屬的實際值和預測值的差距?實際上是一種損失函數,還有其他的損失函數,比如兩點間直線距離公式,余弦相似度公式等等可以計算預測結果和實際結果之間的差距。
劃重點:損失函數就是現實和理想的差距(很殘酷)
3. 支持向量機
*判斷依據的區別也導致了損失函數的不同(但依舊是猜)
直觀的說,縫隙(上圖的分類間隔)越大越好
4. 多分類
如果有多種花怎么辦?
一趟植物課上,老師請來了牡丹鑒別專家、荷花鑒別專家、梅花鑒別專家。老師拿出了一盤花給各個專家鑒定,牡丹角色這是牡丹的概率是0.013、荷花專家角色這是荷花的概率是0.265、梅花專家角色這是梅花的概率是0.722。
老師綜合了各位專家的意見后,告訴同學們,這是一盤梅花。
小明:這老師是不是傻,一朵花是啥都不知道,還要請三個專家
老師:你給我滾出去
實際計算過程就是通過用 2.2 和 2.3 等方法訓練的二分類器,分別輸出對應的分類值(比如三種花的分類器分別輸出-1,2,3),那怎么把這些分類值轉化成概率呢?這就要用到歸一化指數化函數 Softmax(如果是二分類就用?Sigmoid函數),這里就不拿公式來說,可以直觀的看看書中這個表格就懂了:
5. 非監督學習
第 2.2 能從預測值和實際值的差別判斷”是否猜對了”,是因為生物老師告訴了學渣,哪些樣本是山鸞尾花,哪些變色鸞尾花。但如果老師連樣本實際的類別也不告訴學渣(非監督式學習),學渣不知道樣本分別是什么花。
那該怎么辦呢?
機器學習的入門課程總是在講鸞尾花,也是夠煩的。
這里我們換個場景:
假如你是某直播老板,要找一堆小主播,這時候你有一堆應聘者,然而你只有她們的胸圍和臀圍數據。一堆8份簡歷擺在你面前,你是不知道哪些更加能干( capable啊 ! ) 的,更能吸引粉絲。你也沒空全部面試,那應該怎么挑選呢?
- 這時候你把她們的胸圍和臀圍都標準在一張二維坐標圖上:
- 這是你隨手一劃,把她們分成兩組,可以說“聚成兩類了”。
- 用某種計算方式(比如平均值)找到這個聚類的中心。點離聚類中心越近,代表越相似。
- 求出每個聚類中的點到藍色聚類中心點和黃色聚類中心的距離
- 如果一個點離黃色聚類中心更近卻被你隨手劃到了藍色分組(上圖用紅色邊框標出的小方塊),那么就把它劃入黃色分組。
- 這時因為分組范圍和分組內包含哪些小姐姐都發生了變化。這時候你需要以 步驟3 的方法重新計算聚類的中心
- 重復步驟 4 (算點中心距離)-> 重復步驟 5 (調整黃色小姐姐們和藍色小姐姐們)-> 重復步驟 3 (算中心),一直循環這個過程直到藍色和黃色聚類下所包含的小姐姐不再發生變化。那么就停止這一循環。
至此,小姐姐們已經被分為兩大類。你可以得出兩類小姐姐:
計算機在沒有監督的情況下,成功把小姐姐們分成兩類,接下來就可以在把兩種主播各投放2個到平臺看看誰更能干。效果更好的,以后就以那個聚類的樣本特征擴充更多能干的主播。
小明:有什么了不起的,我一眼就能看出黃色小姐姐更能干
老師:你給我滾出去
上面聚類小姐姐的算法就叫做?K 鄰近算法,K 為要聚類的數量(這需要人工指定),上述例子 K=2.那么如果分成三類就是 K=3,訓練過程可以看下圖,有個直觀的了解:
三、這是什么物品(圖像識別)
1. 特征提取
人類感官特征
花瓣顏色、花瓣長度、有沒有翅膀(區分貓和小鳥)、有沒有嘴巴和眼睛(飛機和小鳥)
感官的特征通過量化得到顏色(RGB值)、邊緣(圓角、直角、三角)、紋理(波浪、直線、網格)數值特征
人工設計特征
深度學習特征
通過卷積提取圖像特征
劃重點:卷積的作用就是提取圖像有用信息,好比微信把你發出的圖片壓縮了,大小變小了,但是你依舊能分辨出圖像的主要內容。
1維卷積 1*5+2*4+3*3=22、1*4+2*3+3*2=16、1*3+2*2+3*1=10
2維卷積 1*2+3*0+2*9+4*2=28…
通過卷積就可以得到圖像的特征信息,比如邊緣
垂直邊緣檢測
水平邊緣檢測
方向梯度直方圖
2. 深度學習和傳統模式分類的區別
既然有傳統模式分類,為什么還要神經網絡呢?
區別就在于傳統的模式分類需要人為設置特征,比如花瓣長度、顏色等等。而深度學習省略掉人工設計特征的步驟,交由卷積操作去自動提取,分類器的訓練也同時融入到神經網絡當中,實現了端對端的學習
劃重點:端對端學習(End to End)就是從輸入直接得出輸出,沒有中間商,自己賺差價。
3. 深(多)層神經網絡存在的問題
一般來說,神經網絡層數增多,會提高準確率。但是,網絡層數加深導致:
過擬合學渣把高考預測試題的答案都背一遍而不理解,考試的時候,如果試題是考生背過的,那么考生就能答對;如果沒背過那么考生就不會回答了。我們就可以說,學渣『過擬合』了預測試題。
與之對應的是:欠擬合渣得不能再渣的人,連預測試題都背不下來,即使考試試題和預測試題一模一樣,他也只能答對30%。那么就可以說這種人~~欠揍~~欠擬合。
有興趣的還可以了解一下梯度彌散和梯度爆炸下面是網上很火很勵志的一個公式,權重在多層網絡中相乘,比如每一層的權重都是0.01,傳遞100層 就是?0.01 的100 次方,變得非常小,在梯度下降 Gradient Descent 的學習過程中,學習將變得非常慢。(好比從一個碗頂部放下一個小球,在底部徘徊的速度會越來越慢)
非凸優化學習過程可能在局部最小值(極小值)就停止了,因為梯度(斜率)為零。在局部最低停止而不是全局最低停止,學習到的模型就不夠準確了。
看圖感受一下
你說的底不是底,你說的頂是什么頂
解決的辦法
均勻初始化權重值(Uniform Initialization)、批歸一化(Batch Normalization)、跳遠鏈接(Shortcut)涉及到比較多數學邏輯,這里就不展開說明了。
4. 應用
人臉識別
自動駕駛把汽車頂部拍攝到的圖片切分層一個個小方塊,每個小方塊檢測物體是車還是行人還是狗,是紅燈還是綠燈,識別各種交通標識等等。再配合雷達等判斷物體距離。
四、這是什么歌(語音識別)
1. 特征提取
人類感官特征音量、音調、音色
通過采樣、量化、編碼。實現聲波數字化(聲波轉電信號)
人工設計特征梅爾頻率在低頻部分分辨率高,高頻部分分辨率低(這與人耳的聽覺感受是相似的,即在一定頻率范圍內人對低頻聲音比較敏感而對高頻聲音不敏感)。
關系為:
在每一個頻率區間對頻譜求均值,它代表了每個頻率范圍內聲音能量的大小。一共有26個頻率范圍,從而得到26維的特征。倒譜操作后,得到 13 維的梅爾頻率倒譜系數(Mel-FrequencyCepstralCoefficients,MFCCs)
深度學習特征通過 3.1 所介紹的 1維卷積進行特征提取
2. 應用
音樂風格分類
輸入:音頻文件特征:聲音特征輸出:音樂種類
語音轉文字
輸入:音頻文件特征:聲音特征輸出:聲學模型(比如26個英文字母)
再把聲學模型送入另外的學習器
輸入:聲學模型特征:語義和詞匯輸出:通順的語句(可以查看第6點,如何讓計算機輸出通順的語句)
聽歌識曲通過窗口掃描(把音樂分割成一小段一小段的),然后通過4.1說的方法提取這一段的特征,就得到一個特征向量。對數據庫的歌和用戶錄音的歌做同樣的操作得到特征向量,然后兩兩之間計算相似度(兩個向量的距離可以用余弦公式算夾角大小或者兩點間距離公式來算)
五、視頻里的人在做什么(視頻理解,動作識別)
1. 介紹
視頻,本質是由一幀幀圖片連續組成的,因為人視覺的暫留效應(Persistence of vision,人眼在觀察景物時,光信號傳入大腦神經,并不立即消失,讓人產生畫面連續的印象),看上去是連續的,也就是視頻。識別視頻里面有什么物體,可以用上文說過的圖像識別和分類方法去實時分析單幀圖像,比如:
但是視頻相對于圖像有一個更重要的屬性:動作(行為)。
怎么從一個連續的視頻分析動作呢?
舉個例子,像上圖那只二哈,腿部的像素點相對于黃色的方框(框和狗相對靜止)在左右”移動”,這里的”移動”我們引入一個概念——光流(一個像素點從一個位置移動到另一個位置),通過像素點移動形成的光流作為神經網絡的訓練特征(X),『奔跑』作為訓練目標值(Y),經過多次的迭代訓練,機器就可以擬合得出一個 Y = f(X) 用于判斷視頻中的物體(Object)是否在奔跑。
2. 光流
假設,1)相鄰兩幀中物體運動很小2)相鄰兩幀中物體顏色基本不變
至于神經網絡是怎么跟蹤某個像素點的,這里不展開說明。
第 t 時刻的點指向第 t+1 時刻該點的位置,就是該點的光流,是一個二維的向量。
整個畫面的光流就是這樣:
整個視頻的光流(軌跡)是這樣的
不同的虛線代表圖像上某個點移動的軌跡
假設視頻寬width、高?height、一共有?m?幀,那么該視頻可以用?width * height * m * 2?的張量(就是立體的矩陣)來表示,把向量喂到神經網絡即可進行分類訓練。
進一步優化,可以把光流簡化為8個方向上的,把視頻某一幀的所有光流累加到這八個方向上得出某一幀的光流直方圖,進一步得出 8 維的特征向量。
六、一段文字在表達什么(自然語言處理)
1. 特征提取
這里有4個句子,首先進行分詞:
去掉停用詞(副詞、介詞、標點符合等等,一般在文本處理上都有一個停用詞表)
編碼詞表
句子向量化
這樣就得到一個句子19 維 的 特征向量,再把這19維的特征向量用普通卷積網絡或者 LSTM 循環神經網絡作為 X 讀入(喂它吃東西),文本的分類(比如積極、消極)作為訓練標簽值 Y,迭代訓練得到的模型可以用于情感分析或文本分類等任務。
2. 進階
詞向量化厲害-牛逼、計算機-電腦是同義詞。光從上面的步驟,我們可能認為厲害和牛逼是兩個完全不一樣的詞語,但其實他們是近似的意思,怎么才能 AI 學習知道這點呢?需要從多個維度去進一步給詞語更豐富的內涵,比如:
舉例來說,男性用1表示,女性用0表示,不帶性別傾向就是0.5。多個維度擴展之后,就得到“男人”這個詞的特征向量(1,0, 0.5,0,1)
逆向文檔頻率一個詞在一類文章出現的多,而在另外分類的文章出現的少,越能說明這個次能代表這篇文章的分類。比如游泳在體育類的文章中出現的多(2次),而在工具類的文章出現的少(0次),相比其他詞語(1次)更能代表體育類的文章。
假設句子中有 N 個詞, 某個詞出現次數為 T,一共有 X 個句子,該詞語在 W 個句子出現,則逆向文檔頻率 TF-IDF 為?T/N * log(X/W)
3. 應用
七、讓計算機畫畫(生成對抗網絡)
從前有個人,以賣臨摹名家的畫來賺錢。他開始臨摹一副名畫:
第一次他畫成這樣子了:
鑒賞家一眼就看出來是假的,他不得不回去畫第二幅畫、第三幅畫…
經過了10萬次”畫畫-鑒別”的過程,這個臨摹者畫出來的畫,鑒賞家居然認為這是真的原作,以高價買入了這副畫。
這種生成(畫畫)- 鑒別(鑒偽)的模式正是生成對抗網絡(GAN)的核心。
通過生成器,把隨機像素點有序排列形成具有意義的畫面,再通過鑒別器得出生成的畫面的分類、和真實畫面之間的差距,并告訴生成器要往什么方向去優化。多輪的訓練之后,生成器就學會了畫『真畫』了。
計算機是怎么把隨機像素點變成有意義的畫面的呢?我們通過一個簡化的例子來看看。
直線上一些均勻分布的點,經過?y=2x+1變換后變成了非均勻分布。一張隨機排布的像素點畫面,經過某個f(x)?變換后就會變成具有某種意義的畫面,而生成器就是不停地去近似f(x), 就像 2.2 感知器擬合一條直線那樣。
下圖為計算機生成手寫數字的過程
劃重點:函數可以變換數據分布(庫克說:可以把直的變成彎的)
八AlphaGo是怎么下棋的?(強化學習)
1. 粗略認知
監督/無監督訓練:盡可能讓每一次任務正確強化學習:多次任務是否達成最終目標
每一次任務都準確,不就是能達成最終目標嗎?我們來看一個例子:
一家批發商店的老板愛麗絲要求她的經理比爾增加銷售額,比爾指導他的銷售員多賣一些收音機,其中一個銷售員查爾斯弄到了一個可以獲利的大單,但是之后公司因為供應緊缺無法交付這些收音機。
應該責怪誰呢?
從愛麗絲的角度來看,查爾斯的行為讓公司蒙羞了(最終任務沒完成)。
但是從比爾的角度,查爾斯成功地完成了他的銷售任務,而比爾也增加了銷量(子任務達成)?!缎闹巧鐣返?.7章
2. AlphaGo
下圍棋,最古老的辦法是決策樹,從左上角的位置開始到右下角的位置遍歷,每一個空的位置就是一個分支,然后預測每種棋局贏的概率,找出最大概率的走法玩。這就是落子預測器。
但是由于圍棋19X19的超大棋盤,空間復雜度高達10的360次方,要窮盡所有的走法幾乎是不可能的,如大海撈針。
要降低復雜度,關鍵是要降低搜索的廣度和深度。
我們栽培一顆小盆栽的時候,如果不對枝葉進行修剪,那么養分就會浪費在沒長好的枝條上。需要及時對枯萎或者異常的枝條進行修剪以保證養分往正常(或者說我們希望它生長的方向)枝條上輸送。
同樣的道理,有限的計算機算力如果浪費在窮盡所有圍棋走法上,將導致棋局推演非常慢,而且耗費大量的時間也難以找到最優的方案。
是否可以通過 “修剪” 落子選擇器這顆龐大的決策樹,加快較優落子方案的選擇呢?怎么判斷哪些是好的”枝條”,哪些是壞的”枝條”呢?這就需要棋局價值評估器(哪個棋盤的贏的概率更大),把沒有價值的棋局先去掉不再往下遍歷,這就同時減少了搜索的廣度和深度。
其中,落子預測器有個名稱,叫做政策網絡(policy network)價值評估器有個名稱,叫做價值網絡(value network)政策網絡(policy network)利用蒙特卡洛搜索樹從當前棋局推演(隨機下棋)到最終的棋局,最終勝則回報為正,反之回報為負。之后該算法會反向沿著該對弈過程的落子方案步步回溯,將路徑上勝者所選擇的落子方案分數提高,與此對應將敗者的落子方案分數降低,所以之后遇到相同局面時選擇勝者方案的概率就會增加。因此可以加速落子選擇,稱為快速走子網絡。
通過?政策網絡 + 價值網絡 + 蒙特卡洛搜索樹?實現最優落子方案的選擇,同時兩個機器人互相對弈,這樣就不停地訓練網絡,學習落子方案。
3. 定義
接下來說一下枯燥的定義
什么是強化學習?
當我們關注的不是某個判斷是否準確,而是行動過程能否帶來最大的收益時使用強化學習(reinforeement learning)。比如在下棋、股票交易或商業決策等場景中。
強化學習的目標是要獲得一個策略(poliey)去指導行動。比如在圍棋博弈中,這個策略可以根據盤面形勢指導每一步應該在哪里落子;在股票交易中,這個策略會告訴我們在什么時候買入、什么時候賣出。
一個強化學習模型一般包含如下幾個部分:
一組可以動態變化的狀態(sute)
對于圍棋棋盤上黑白子的分布位置對于股票交易來說,就是股票的價格
一組可以選取的動作(metion)
對于圍棋來說,就是可以落子的位置;對于股票交易來說,就是每個時間點,買入或者賣出的股票以及數量。
一個可以和決策主體(agent)進行交互的環境(environment)這個環境會決定每個動作后狀態如何變化。
棋手(主體)的落子會影響棋局(環境),環境給主體獎勵(贏)或懲罰(輸)操盤手(主體)的買入或賣出會影響股票價格(環境,供求關系決定價格),環境給主體獎勵(賺錢)或懲罰(虧錢)
回報(reward)規則當決策主體通過行動使狀態發生變化時,它會獲得回報或者受到懲罰(回報為負值)。
《人工智能基礎高中版》這本書,有時間建議讀者可以自己閱讀。
原文鏈接:https://jinkey.ai/post/tech/5000zi-ren-gong-zhi-neng-ke-pu-gao-zhong-sheng-du-neng-du-dong
#專欄作家#
Jinkey,微信公眾號 jinkey-love,人人都是產品經理專欄作家。原騰訊手機管家、京東產品經理。專注于社交產品、企業級產品、機器學習和 iOS 開發。
本文原創發布于人人都是產品經理。未經許可,禁止轉載。
題圖來自網絡
如何用AI維持男女間的熱戀? ??
小姐姐666 流程走起
說的很好啦,但我選擇白色小姐姐/doge
又把機器學習的基礎知識加深理解了一遍
在文章中的:
三、這是什么物品(圖像識別)
2. 維卷積 1*2+3*0+2*4+4*2=28。這個算術題算錯了,按數學題算法(先算乘法再算加法)結果是18。
按流程計算,最終結果不等于28,而是24。
維卷積的算法真正是怎么做的呢?因為這兒都錯了呢。。。
應該是 1*2+3*0+2*9+4*2=28 ,謝謝提醒
請問是是直接贊還是走個流程
哈哈
你自己的博客響應速度太慢了…
厲害了,小姐姐
太多了,慢慢看
學習了