白話大模型系列共六篇文章,將通俗易懂的解讀大模型相關的專業術語。本文為第二篇:如何提升AI分析的準確性?
作者:星環科技 人工智能產品部
面對AI分析落地時的數量化、準確性、泛化性等問題,讓我們稍微深入了解下當前的做法。
這里只做形式化的簡要概述:
1.需求分解:將需求分解為若干個子問題,比如“人臉檢索”可以分解為“人臉檢測” 和“人臉識別”兩個子問題;
2.技術手段:手工提取費時費力精度低,那么:
?建立映射關系:使用“數據驅動”的“深度學習”自動提取特征和建立人臉圖像到人臉嵌入向量 的映射關系,再次提醒嵌入向量就是能描述人臉的一個多維度的向量;
?建立人臉卡片目錄:使用這個映射關系,將人臉圖像轉化為 ID-人臉嵌入向量對;
?建立高效的查詢方法:使用同樣的映射關系,處理待查的圖像,然后使用人臉卡片目錄中的人臉嵌入向量,找到最相似的ID,然后再找到對應的人臉圖像。
由此,我們構建出來了一個“人臉識別”的小工具的架子。但是問題在于:
1.怎么構建這樣的映射關系?
答:用“數據驅動”的“機器學習”方法。
2.怎么建立人臉卡片目錄和構建查詢方法?
答:用各類“數據庫”或者更廣義的“信息檢索技術”。加上引號的詞匯,都是“術語”,我們不急于解釋和類比,因為會產生更大的歧義。我們看看實際生產中,是怎么做的。
建立映射關系
? 數據采集 :采集大量的含有清晰可見的人臉數據,根據要求和“泛化性”不同,除了正臉,我們還需要側臉、帶口罩、大俯仰角、雜亂背景(比如人在花叢中)、多人臉(比如會議合影)等各種情況的數據;
? 數據清洗 :將明顯不符合需求的數據剔除,比如:人臉不清晰、人臉不完整、人臉不在中心、人臉不是正臉、人臉不是人臉(比如是貓臉)等,再比如算法上有問題的:重復的(直接重復、有些位置移動/旋轉的)、數據毒害的(故意數據投毒的、比如打印的人臉/面具而不是真實人臉的)等等,清洗出“高質量”數據實際工作遠比看上去的復雜得多得多;
? 數據標注 :標注出 1. 人臉的位置(比如畫一個框,將人頭框入;但事實可能有更復雜的情況:比如準確繪制出一個多邊形而不僅僅是長方形了,或者圖像是 3D 的) 2. 其他信息(比如人的一些 ID/性別等屬性)
? 特征提取 + 建立模型 :構建“人臉”(圖像)到“人臉嵌入向量”(一串數字)的映射(構建方法我們叫“算法”):
? 這個映射是一個黑盒子,上面有很多旋鈕,輸入是“圖像”,輸出是“嵌入向量”;
? 我們只能調整旋鈕來控制輸出;
? 我們可以驗證輸出的結果是否符合我們的需求并作出:調整旋鈕,考察我們預測出來的“人臉框”和其“ID”和標注的是否一樣,不一樣則調整,直到符合為止;
? 調整的過程我們叫“訓練”,調整的方法我們叫“最優化方法”,使用的人力和組織形式可以理解成“算力”。不管是否符合普通人的認知:在使用了大量的數據后,我們可以得到一個“人臉嵌入向量” 的“映射關系”,也就是{黑盒子本身 + 旋鈕的扭轉檔位},這個組合能夠將“人臉圖像” 轉化為“人臉嵌入向量”,這個向量是一個多維度的數字,我們可以認為這個數字是“人臉”的“特征”。
? 模型提升:來了新情況,準確度等不夠(比如識別不了帶口罩的人臉),我們可以繼續采集數據,然后重新訓練模型,得到新的“映射關系”,做到提升。