人工智能技術的飛速發展給各行各業都帶來了深遠的影響,AI已被視爲企業提高運營效能、應對市場競爭的必經之路。然而對於一些企業而言,讓AI真正實現落地和應用,而且創造價值,還是一件須要努力的事情。算法
近日,在個推技術沙龍TechDay深圳站,來自華爲、個推、SheIn的技術大拿們在現場,對AI核心技術進行了深刻的探討。sql
AI在生產環境落地的整個過程當中,一般會遇到三個挑戰:安全
第一,業務場景複雜。簡單的一個算法也許只能優化某個環節,但整個業務場景的優化可能須要許多算法的相互配合。網絡
第二,數據問題。數據是AI的重要支撐之一,許多企業都欠缺獲取高質量、有標註數據的能力。框架
第三,技術問題。在AI落地的過程所遇到的技術問題,有四個核心:1)CPU / GPU環境的調度和管理複雜。2)AI業務的開發人員們須要一個低門檻的實驗平臺,使其可以進行快速的探索實驗。3)擁有大規模數據的企業,須要工業級大規模分佈式訓練,來保證算法可以應用於全量數據中。4)企業須要提供低延遲的在線服務。機器學習
人工智能最核心的是數據,而數據能夠分爲兩個部分,實時數據和離線數據。個推使用Hive方案進行離線數據的存儲,注重數據的容量和擴展性;而在線用戶對延時很是在乎,因此個推會使用高性能KV庫,保證在線特徵可以及時地被訪問到。分佈式
在解決了基礎的數據存儲和使用問題以後,對於AI落地過程當中的技術問題,個推內部支持端到端的服務,可以使用標準化流程快速進行實踐探索。個推也自研了一些插件和產品包,簡化流程步驟和複雜度,幫助經驗較少的開發者也能夠在較短的時間內搭建系統。最後,個推還支持了部署發佈的工具,讓訓練的成果可以經過標準化的方式導出到線上,進行服務部署,真正地在線上產生價值。工具
在小微企業AI落地實踐的過程當中,可使用Kubeflow等開源技術棧。首先,環境的管理與調度可使用Kubernates做爲分佈式環境標準;Jupyter +開源數據分析工具包+ AI框架能夠進行低門檻的快速探索實驗;Kubeflow + Tensorflow / PyTorch / MXNet能夠快速地部署大規模的分佈式訓練;最後,藉助Kubernates提供的快速部署、上線、擴縮容的能力,能夠提供高可用的在線服務。oop
而在AI實際落地時,企業則須要注意如下三點:性能
第一,快與高效。企業能夠藉助開源工具快速落地業務,同時也要注意沉澱流程和垂直領域。
第二,集成打通。Kubernates方案並非惟一的選擇,企業須要考慮自身狀況,與已有系統進行對接,選擇適合自身的方案。
第三,團隊建設。各個技術部門之間須要進行高效的配合,企業也能夠引導研發工程師逐漸地融入AI領域。
對於企業來講,若是想要作好AI個性化產品的業務,只有算法工程師是不夠的,還須要工程、數據分析人員的支持,以及產品、運營人員的助力。
當企業涉及到的業務較多時,也能夠將業務進行通用處理,即建設偏向系統層面的推薦平臺。該推薦平臺須要數據、算法和系統的共同配合。推薦平臺的接入,能夠帶來三點功能:第一,企業在進行物料同步時,能夠作到格式統一,而且同步增量和全量;第二,平臺在處理用戶的服務請求時,能夠作到標準化、高性能和智能化;第三,平臺能夠格式統1、實時、離線地上報用戶行爲。
簡單的機器學習過程是搭建環境、收集數據、分析數據、準備數據、訓練算法、測試算法和使用算法。在這個過程當中也隱藏着許多問題,好比如何解決冷啓動問題,如何解決假曝光問題,如何清洗異常數據,如何選擇正負樣本,如何解決數據稀疏問題,如何從億級特徵中選擇顯著特徵等。
在機器學習的過程當中,數據是基礎,理想的狀態是數據的數量大且特徵完備。收集數據有「推」和「拉」兩種方式,「拉」便是爬蟲,「推」就是上報。而分析數據則是分析目標分佈、特徵分佈、目標特徵關係、特徵間的關係和完整性等。分析數據的方式有離線分析、實時分析和融合分析,分析工具則能夠在Excle、Shell(awk)、Python、Mysql、Hadoop、Spark、Matlab…當中進行選擇。清洗數據須要清洗系統髒數據、業務髒數據和目標外數據。格式化數據則須要進行數據變換、採樣和稀疏處理。
而機器學習能夠選擇的算法模型較多,如熱度、貝葉斯、關聯規則、LR、GBDT、AR、CF(ALS)等等。
在算法模型中,特徵工程也是很是重要的一部分。其中,特徵對象有物料、用戶和上下文;特徵類型有靜態特徵、動態特徵、表徵特徵、枚舉特徵、實數特徵等;特徵維度則有一階獨立特徵、二階交叉特徵和多階交叉特徵。特徵的選擇也是一件須要注意的事情,企業能夠在過濾型、包裹型和嵌入型三種特徵進行選擇,同時,企業還須要在前向、後向和StepWise三種特徵過程類型中進行選擇。
算法的最後還須要進行效果評估、多維度評估、實時評估和離線評估。企業還須要注意到,沒有一勞永逸的模型,算法須要進行持續的關注和運營。
合適環境的搭建也是算法可以正常運行的保障之一。算法的環境須要標準化、配置化、可擴展、高性能,同時支持立體監控和效果提高,保證用戶體驗。
在計算機領域,上世紀90年代就有人嘗試,將圖像的特徵和識別的過程,經過人類的規則同步給計算機,讓計算機進行「圖像識別」。一直到了20十二、13年,人們發現,對傳統神經網絡的結構方式作一些小的變化,可以大幅度地提高計算機進行圖像識別的可操做性,這個改善後的神經網絡被稱爲卷積神經網絡(CNN)。CNN進行圖像處理的本質是信息提取,也被稱爲自動的特徵工程,即經過巨大的神經網絡一步步地抽取到關鍵的圖像特徵,從而達到圖像識別的目的。
而人臉識別則是一種基於人的臉部特徵信息,進行身份識別的生物識別技術。現現在,人臉識別已經能夠有效地對用戶身份進行識別,而且被普遍地應用於支付、安檢、考勤等場景。而隨着人臉數據系統的建設,人臉識別也將成爲反欺詐、風控等的有效手段之一,可以極大地縮短身份審覈的確認時間。
人臉識別最大的優勢是非接觸性,能夠隱蔽操做,這使得它可以適用於安全問題、罪犯監控與抓逃應用。同時,非接觸性的信息採集沒有侵犯性,容易被大衆接受。而人臉識別方便、快捷、強大的過後追蹤能力,也符合人類的識別習慣。人臉識別的不足之處,在於不一樣人臉的類似性小,同時識別性能受外界條件的影響大。
人臉識別的步驟主要包括人臉檢測、人臉對齊校準、人臉特徵提取、人臉特徵模型創建、人臉特徵匹配以及人臉識別結果的輸出。
其中,人臉檢測的目標是找出圖像中,人臉所對應的位置,算法輸出的則是人臉外接矩形在圖像中的座標,可能還包括姿態,如傾斜角度等信息。
人臉識別的第二步是人臉對齊,它須要在保證人臉的特徵等要素沒有發生扭曲和變化的前提下進行使用,在這樣的狀況下,輸出的人臉距離才能與後期的模型進行有效對比。
人臉識別的最後一步是人臉匹配,在網絡足夠大,樣本足夠豐富的狀況下,人臉匹配的準確率會很是高。
在人臉識別的領域,深度學習網絡的發展會愈來愈好。深度學習有其相應的優點,它強調了數據的抽象和特徵的自動學習,而且它的自主學習特徵更爲可靠。