讀天才與演算法:人腦與AI的數學思維筆記05_演算法的幻覺
躺柒發表於2024-04-21
1. 自下而上
1.1. 程式碼在未來可以自主學習、適應並進行自我改進
1.2. 程式設計師透過程式設計教會計算機玩遊戲,而計算機卻會比教它的人玩得更好,這種輸入寡而輸出眾的事情不大可能實現
1.3. 早在20世紀50年代,電腦科學家們就模擬該過程創造了感知器
1.3.1. 其原理是:神經元就像一個邏輯閘,接收輸入的資訊,然後透過計算來判斷是否觸發併產生興奮反應
1.3.2. 透過調整權值和閾值來模擬你的行為
1.3.3. 更為精細的感知器,如S型神經元,可進一步地平滑輸出,而不僅限於“是”和“否”兩種結果
1.3.4. 歸根結底,還是因為資料,感知器的學習和進化需要資料的支撐
1.3.4.1. 我們可透過程式設計為感知器分配初始的權值和閾值,透過真實的輸入資料對其進行訓練,每一次錯誤的預測都將會作為反饋,用以促進權值的調整和修正
1.4. 過去的5年間產生了現在世界上90%的資料
1.4.1. 網際網路每天建立的資料可達到1EB(1018),約為2.5億張DVD光碟所儲存的資料量
1.4.2. 現在,人類兩天內產生的資料量,就可以媲美從“文明曙光時代”到2003年所產生的資料量的總和
1.5. 海量的資料是機器學習進入新時代最重要的催化劑
1.5.1. 在此之前,一直不具備任由演算法在資料之中學習、遨遊的客觀條件
1.6. 資料對於新的變革尤為重要,因此它也被稱為“新的石油”
1.6.1. 訪問資料,相當於在21世紀的“油田”中進行開採
1.6.3. 嚴格意義上說,也不是完全免費,因為我們也在它們提供的服務中獲得了資料的“交換
1.6.3.1. 嚴格意義上說,也不是完全免費,因為我們也在它們提供的服務中獲得了資料的“交換
1.6.3.2. 很多人意識不到這種“交換”的重要性,不願提供有價值的資料,因此其所得回報甚少
1.7. 機器學習的核心是在經驗學習中改進演算法的效能
1.7.1. 對每個輸出的結果進行自判斷並即時調整演算法公式,避免再次出錯,在錯誤中不斷學習進而得到改進
1.7.2. 資料訪問十分重要的原因
1.7.2.1. 資料越多,可用來進行訓練的樣本越多,得到的經驗就越豐富,演算法可以在不斷迭代的過程中不斷完善
1.7.2.2. 程式設計師建立的元演算法遇到不同的資料,就會發展成不同的新演算法
1.7.2.2.1. 這種新方法的有效性同樣震撼了整個人工智慧領域,部分原因在於其底層技術並非獨特的新技
1.7.3. 機器學習為其開闢了一個新篇章,即演算法會像我們人類一樣成長並走向成熟
1.8. 在自下而上的演算法設計思路下,演算法可以基於訓練資料自主建立決策樹
1.8.1. 網路上大量的訓練資料
1.8.1.1. 帶標籤的視覺資料(例如,Instagram上帶評論的照片)
1.8.2. 會為人工智慧在視覺識別領域的迅速發展提供基本的支撐條件
2. 計算機的視覺問題
2.1. 人類大腦具備驚人的能力,可迅速處理資料並輸出答案
2.2. 當看到一幅影像或一些特別的筆跡時,人類非常善於辨識出這幅影像或文字的特點,而計算機程式卻不足以應對所有的變化
2.3. 透過由貓的影像組成的資料庫對演算法進行訓練,演算法逐漸建立起一個問題層次結構,它可以向一幅具有高準確度的影像發問,並將其準確地識別為貓
2.3.1. 我們真正在做的是訓練視覺識別的演算法
2.3.2. 用這些訓練資料作為最好的問題型別可以訓練演算法,以便其區分貓和非貓的影像
2.3.3. 每當演算法識別錯誤,它將進行調整以便下次能夠正確識別
2.4. 演算法在大部分時間都在工作,但達不到100%,所以關鍵是要讓其儘可能達到“最"
2.4.1. 確定性演算法到機率性演算法的轉變是一個重大的心理突破,類似於讓數學家用工程師的思維方式去考慮問題
2.5. 在過去,我們都是透過苦思冥想或突發的靈感去設計一系列巧妙的問題
2.6. 機器學習會從一些我們認為可能解決問題的候選問題開始,所以不算是零起點學習
2.6.1. 學習的過程就是將最初的想法逐漸最佳化,從而形成有效的解決方案
2.6.2. 隨著不斷提問、回答、分析,該畫素點位於身體哪個部位的答案將逐漸浮出水面
2.6.3. 我們的目標是能夠找到那些提供有價值的資訊的問題
2.6.4. 演算法自己找到了最優的問題集合,但程式設計師並不真正清楚它是如何得到這樣的結果的
2.6.4.1. 他們可以檢視決策樹中任何一個結點及其前後結點上所詢問的問題,但樹中的問題超過百萬個,每個問題又略有不同,所以很難採用逆向工程法得出演算法具體是怎樣解決問題的
2.7. 機器學習所面臨的挑戰之一是“過度擬合”
2.7.1. 假設函式為了完美地擬合樣本集,引入了過多的高次項
2.7.1.1. 雖然這樣做可以得到良好的樣本擬合結果,但與實際情況完全偏離
2.7.2. 針對訓練資料提出用以區別圖片的問題相對容易,但設計一個不針對特定資料的通用程式卻非常困難,它需要從資料中抽象出廣泛適用的規則
2.7.3. 有必要減少方程的項數,以避免出現過度擬合的問題
2.7.4. 過度擬合會誤導你在建模時過分關注細節而錯過資料呈現出的總體趨勢,然後產生不符合客觀規律的預測結果
3. 演算法的幻覺
3.1. 新演算法可以駕馭或識別的不僅僅是人類的身體
3.1.1. 數位相機對影像細節的捕捉能力遠超過人類大腦,但在影像識別的過程中,計算機讀取到的是一個個孤立的畫素點,而不是一副完整、有內容、有故事的圖片
3.2. 接收到感官傳遞過來的資訊後,人類大腦是如何將其當作一個整體看待的?
3.2.1. 複製這種融合能力,一直是計算機解釋影像所面對的挑戰之一
3.2.2. 按畫素讀取影像的方式,無法幫助計算機獲得影像的整體資訊
3.3. 由於沙漠的顏色跟人的膚色相近,而起伏的沙丘又極像裸露的身體曲線,所以很多人用作屏保的沙漠圖片,有時就會被誤認為是色情圖片了
3.3.1. 馬克·斯托克斯(Mark Stokes)
3.4. 對抗影像
3.4.1. 電腦科學家們一直在努力開發一些特殊型別的圖片,企圖用它們“欺騙”人工智慧。這些特殊的圖片被稱為“對抗影像”
3.4.2. 利用了計算機看世界的不同方式,讓人工智慧的“眼睛”看到了並不存在的東西,我們可以理解為人工智慧產生的“視覺幻象”
3.5. LabSix
3.5.1. 是一個獨立運營的人工智慧研究小組,由麻省理工學院(MIT)的本科生和畢業生組成
3.5.2. 該團隊把一幅狗的影像逐畫素轉換為兩個在斜坡上滑雪的人,最終狗的影像在螢幕上完全消失了,但機器仍然將其識別為狗
3.5.3. 麻省理工學院LabSix團隊最新的研究試驗表明,谷歌人工智慧視覺識別系統對一隻3D列印的海龜毫無辨識能力,無論以任何角度拿著這隻海龜,甚至將它放置於大海等海龜應該在的環境裡,其都會被識別為一支槍
3.5.3.1. 點到了谷歌視覺識別的“完全死穴”
3.5.3.2. 這種紋理是很巧妙地用由不斷變化的來復槍圖案組成的
3.5.3.3. LabSix的貢獻在於,無論從哪個角度看這隻海龜,演算法始終都會確信它看到的是一支步槍
3.6. 神奇貼紙
3.6.1. 谷歌的研究人員創造了一種更適合演算法口味的影像——“神奇貼紙”
3.6.2. 它會導致演算法忽略圖片中的其他內容
3.6.3. 其原理就是利用了演算法會優先選擇它認為對影像分類更重要的那部分畫素
3.6.4. 演算法用於人臉識別時,它會自動過濾掉大部分背景畫素
3.6.4.1. 比如天空、草地、樹木等
3.6.5. 這種“貼紙”可以被標識為任意影像,比如一臺烤麵包機
3.6.5.1. 無論演算法正在識別的是什麼影像,一旦“貼紙”進入機器的眼簾,它都會認為自己看到的就是烤麵包機
3.6.6. 先前的演算法攻擊測試絕大多數都需要事先獲取被攻擊物件(即被識別的影像)的大致內容,但這張“神奇貼紙”卻什麼都不用做
3.6.6.1. 不管它試圖干擾的影像裡有什麼,它都能正常工作
3.7. 人類不會輕易被這些駭客手段矇騙,但這並不意味著我們可以徹底的免疫
3.7.1. 魔術師們就可以利用人類大腦的潛意識行為傾向,分散我們的注意力
3.7.2. 不僅演算法存在視覺盲點,我們人類一樣也有視覺盲點
3.8. 即便是訓練資料中從未出現過的瑜伽動作,Kinect演算法也能高度準確地識別出我身體的各個部位
3.8.1. 由於缺乏外部刺激,即人身體能夠做出的所有動作基本都是固定的,所以這個演算法沒有進一步“進化