官术网_书友最值得收藏!

  • AR改變世界
  • (美)戴維·羅斯
  • 2570字
  • 2023-05-17 16:04:52

訓練計算機感知能力

起初,超視看起來很神奇。谷歌照片(Google Photos)知道你照片上的人是誰,識別嬰兒和狗的能力比你更好。圖片網Pinterest會根據你通過互聯網上傳的圖像找出相似的圖像。汽車可以識別路標上的限速提示。這不是魔法,其實只是算法加上大量訓練數據的結果。

計算機視覺的起源和相關的雄心壯志可以追溯到20世紀60年代。那時,每個人都認為計算機識別像素是很容易的,但事實證明,教計算機看東西是“非平凡的”(nontrivial,物理學家描述極為困難之事的措辭)。相反,文本索引和搜索相對簡單,但是也需要復雜和計算量很大的算法來識別出圖像或視頻中的內容。計算機如何識別照片中的物體?那些物體位于照片的什么位置?目標識別和場景分類是超視的首要任務,這是視力測試表上最便于識別的第一行。

再想象一下,當你在樹林里散步時,一只鳥飛過。數據科學家如何訓練手機上的應用程序來區分蒼鷺和禿鷹呢?先從“訓練數據”開始:需要成千上萬張被標記的蒼鷺或禿鷹在各種背景下的各種姿勢的照片(這些被稱為“真正”樣本)。為了訓練出具有魯棒性(17)的算法來識別鷹的所有姿勢和形態,你需要鷹在飛行、筑巢、站立及俯沖時的圖像,不同年齡、不同性別的鷹的圖像及禿鷹和金雕的圖像。同時,你還需要數以千計的照片,其中沒有鷹的存在,但包含鷹生活環境中常見的事物(這些被稱為“真負”樣本)。通過這種方式,算法可以學習區分鷹和鷹周圍的所有事物,比如樹和含有鷹標志的旗幟。

iNaturalist應用程序已經做到了這一點,它可以幫助人們識別成千上萬種植物、動物、蟲子及植物群。我和女兒最近爬了3小時的拉斐特山,這是新罕布什爾州白山國家森林公園風景最美的徒步旅行地之一。我們很興奮,同時也精疲力竭。坐在山頂的巖石上,我瞥見一朵可愛的小花在4 000英尺的海拔頑強生長。出于好奇,我在iNaturalist上拍下一張照片,知道了圖中植物的名字是巖梅(Diapensia,見圖1-1),這讓我感到很開心。我也了解到其他一些相關細節:它有時也被稱為針墊植物,主要分布于喜馬拉雅山和北極。

圖1-1 山中的巖梅開花時的樣子

注:巖梅,生長于高山上的花朵,我在遠足時拍攝,通過使用iNaturalist的深度學習算法獲得其名稱。

iNaturalist發布于2008年,以可視化數據庫ImageNet上的人工標記照片組為基礎進行訓練。ImageNet是一個學術項目,由李飛飛在斯坦福視覺實驗室發起,她后來擔任過谷歌人工智能首席科學家。ImageNet數據庫現在有超過1 400萬個人工標記的圖像和超過20 000個標簽。李飛飛教授創建了這個海量的標記圖像數據庫,以判斷大規模視覺識別挑戰中圖像識別算法的質量。2010年,獲勝算法得分準確率約為70%。發展到今天,獲勝算法得分準確率達到95%以上,表現始終優于完成同樣任務的人類。你能以95%以上的準確率分辨出90個狗的品種嗎?反正我是做不到。

iNaturalist的優秀之處在于其迭代眾包(iterative crowd-sourced)培訓體系(見圖1-2和圖1-3)。不需要助手來告訴它糙莓和馬里恩莓的區別,這些將由用戶代勞。人們上傳植物和蟲子的照片越多,iNaturalist的訓練數據集就越大,照片也會更加多樣化,進而提升了應用程序的功能性和準確性。如果人工智能對某一標記不確定,那么研究人員就會加入來完成確認或手動添加正確的標記。然后,新的數據得以被反饋給算法,從而可以重新訓練網絡,使其更加精確。計算機視覺系統青睞大型的自饋回路。因為接觸到越來越多的訓練數據,iNaturalist現在對大多數動植物分辨的準確率超過98%。

圖1-2 iNaturalist的自動標記功能

注:iNaturalist會在上傳的照片中自動標注蟲子、蝙蝠和蒼鷺。這種用戶貢獻的數據流提高了算法的精度。

圖1-3 iNaturalist的地理標記功能

注:iNaturalist的眾包結果會被進行地理標記,以顯示有用的元數據層——在布魯克林,我應該到哪里才能找到野生動物?

現在,幾乎所有這些應用所使用的最先進的計算機視覺算法都是深度卷積神經網絡(18)。之所以被稱為“深度”,是因為其多層屬性,每層負責圖像中不同尺度的特征。底層側重于圖案這樣精確的細節,其他層檢測形狀等粗略特征。當該網絡中的每個節點都被激活時,唯一的向量(本質上是圖像的明顯特征)得以被計算并與其他向量庫匹配。當高置信度匹配出現時,圖像就會得到正確的標記,如蝙蝠、蟲子及鷹。

這些檢測算法的表現有多好?答案包含兩個層面:靈敏度和精度(19)。假設你是一位生活在1940年的雷達接收機操作員。你被部署在英國多佛海岸的一個新的絕密站點,用所謂的雷達識別來襲的德國飛機。你的工作是整晚保持清醒,傾聽靜電噪聲,然后確定它們究竟是來自低空飛行的飛機(這種情況下,你需要拉響警報),還是來自一群海鷗(這種情況下,就不要打擾大家的睡眠了)。你唯一的控制器是一個大型靈敏度表盤。提升靈敏度,你更有可能檢測到飛機(真正值),但也會檢測到更多的海鷗(假正值)。調低靈敏度,你檢測到的海鷗會更少,但也可能錯過飛機(假負值)。而靈敏度的設置要求并不明確!系統要么在喊“狼來了”,要么沒有發現而“放狼進來”。

這也是我們衡量算法質量的方式:從靈敏度和精度兩個方面入手。靈敏度確定多大程度上檢測到所有類似飛機的物體,而精度確定檢測到的物體中,多大比例確實是飛機(相對于鳥或其他事物)。

我從沒遇見過完美的算法。總是存在假負值(算法認為沒有物體,但確實有一架飛機)和假正值(算法認為是飛機,但其實只是一只海鷗)。

像雷達操作員一樣,你必須選擇是優先考慮靈敏度還是精度。大多數醫學檢測更喜歡靈敏度:胸部X光檢查需要調高靈敏度,因為假正值(你發現一只鳥,這只鳥可能是飛機。換言之,發現的陰影有可能是病變)比假負值(你既沒有檢測到飛機也沒有檢測到鳥,即沒有檢測出早期乳腺癌)更好。

現代計算機視覺系統總是反饋置信度數字與各種預測,以幫助使用者決定采用哪些數據。例如,你可以76%確定有一架飛機,或者12%確定有一只鳥,然而,我們永遠不能100%確定沒有超人。使用這種置信度數字,數據科學家可以設定一個臨界值,低于臨界值的數據不予考慮,這樣大家就都可以安心地睡覺了。

設置臨界值的標準取決于應用程序。如果你試圖在浣熊進入你家垃圾桶之前發現它,達到80%的置信度就要拉響警報;如果你錯過了幾只浣熊,最糟糕的事情無非是清理它們留下的一片狼藉。相比之下,如果是要識別腋下的腫塊,就必須設定較低的置信度。在醫療保健行業尤其如此,錯過一些東西的代價很高,所以你愿意接受更多的假正值。

為了讓超視發揮作用,它首先需要對自己所看到的事物有自己的判斷。訓練超視的觀察能力是我們在本書中談及所有其他功能的基礎。現在我們可以來談談有了感知到的信息之后,超視都能做些什么。

主站蜘蛛池模板: 满洲里市| 上犹县| 托里县| 桑植县| 会宁县| 岑溪市| 太谷县| 唐山市| 西充县| 大方县| 阳谷县| 麟游县| 郴州市| 财经| 竹山县| 定州市| 博白县| 太仓市| 商都县| 康定县| 宜宾市| 保靖县| 甘孜县| 天等县| 平凉市| 民和| 神木县| 乡城县| 山东| 新安县| 濮阳市| 建湖县| 阳朔县| 肇州县| 广西| 贡觉县| 乳山市| 中西区| 乳山市| 双流县| 略阳县|