01人工智能
來源:TesterHome社區(qū)
轉自:圖靈人工智能
作者:李云敏 京東物流
01人工智能
人工智能,英文Artificial Intelligence,簡稱AI,是利用機器學習技術模擬、延伸和擴展人的智能的理論、方法、技術及應用的一門新的技術科學。
人工智能是計算機科學的一個分支,它企圖了解智能的實質,并生產出一種新的能以人類智能相似的方式做出反應的智能機器,該領域的研究包括機器人、語言識別、圖像識別、自然語言處理和專家系統(tǒng)等。人工智能可以對人的意識、思維的信息過程的模擬。人工智能不是人的智能,但能像人那樣思考、也可能超過人的智能。
通俗地說,就是讓機器可以像人類一樣有智能,讓機器看得懂、聽得懂、會思考、能決策、能行動,實現(xiàn)原來只有人類才能完成的任務。
AI的本質是通過軟件來實現(xiàn)特定的算法。
一個優(yōu)秀的人工智能系統(tǒng),應該具有三個方面的特征:知識運用的能力、從數(shù)據(jù)或經驗中學習的能力、處理不確定性的能力。
知識是智能體現(xiàn)的一個最重要的維度。聽說看能力如果不考慮內容的深度,則僅僅是停留在感知智能的層面,只能與環(huán)境交互和獲取環(huán)境的信息,其智能表現(xiàn)的空間非常有限。一個智能系統(tǒng)應該能夠很好地存儲與表示、運用知識,并基于知識進行歸納推理。
從數(shù)據(jù)中或過去的經驗中學習的能力,這通常需要運用機器學習算法。具備一個不斷進化和進步的學習能力,那么就可能具備更高的智能水平。同時,學習過程應該能夠融入盡可能多的知識類信息,才能夠達到支持智能系統(tǒng)的要求。
能夠很好地處理數(shù)據(jù)中不確定性,像噪聲、數(shù)據(jù)屬性缺失,模型決策的不確定性,甚至模型內部參數(shù)的不確定性。無人駕駛系統(tǒng)就需要處理各種各樣的不確定性如環(huán)境的不確定性、決策的不確定性。
人工智能分為弱人工智能和強人工智能,前者讓機器具備觀察和感知的能力,可以做到一定程度的理解和推理。而強人工智能期待讓機器獲得自適應能力,解決一些之前沒有遇到過的問題。
也有人將人工智能分為弱人工智能、一般人工智能和強人工智能,后超級人工智能。
人工智能分為弱人工智能和強人工智能,前者讓機器具備觀察和感知的能力,可以做到一定程度的理解和推理。目前的科研都集中在弱人工智能這部分。而強人工智能期待讓機器獲得自適應能力,解決一些之前沒有遇到過的問題。
2017年發(fā)布的一項針對AI研究人員的調查報告稱,高級機器智能(HLMI)實現(xiàn)的總體平均估計值是到2061年。
目前人工智能應用最廣泛的領域主要有四個,分別是語音識別和自然語言處理、圖像識別與處理、推薦系統(tǒng)、機器學習。
語音識別,如語音的自動翻譯、語音轉文字等。目前微軟的語音識別技術已經達到了人類同等水平,翻譯機器人已經超越專業(yè)翻譯水準。
圖像識別,如高速車牌識別、人臉識別等,目前已經廣泛應用在道路監(jiān)控、停車場、門禁、金融系統(tǒng)訪問身份識別等領域。刷臉解鎖、刷臉支付也已經進入我們生活的很多領域。
推薦系統(tǒng),如電商系統(tǒng)根據(jù)用戶的購買習慣,推薦可能需要購買的產品;今日頭條的內容推薦算法等。
02人工智能和機器學習的關系
機器學習所研究的主要內容,是關于在計算機上從數(shù)據(jù)中產生 “模型” 的算法。即學習算法,有了學習算法,我們把數(shù)據(jù)提供給它,它就能基于這些數(shù)據(jù)產生模型;在面對新的數(shù)據(jù)時,模型會給我們提供相應的預測結果。
機器學習的按學習方式來可以劃分四類:監(jiān)督學習、無監(jiān)督學習、半監(jiān)督學習和強化學習。
監(jiān)督學習指的就是我們給學習算法一個數(shù)據(jù)集。這個數(shù)據(jù)集由 “正確答案” 組成。關注的是對事物未知表現(xiàn)的預測,一般包括分類問題和回歸問題。
無監(jiān)督學習,指在數(shù)據(jù)集中沒有 “正確答案”,期望從數(shù)據(jù)本身發(fā)現(xiàn)一些潛在的規(guī)律,無監(jiān)督學習傾向于事物本身特性的分析,常用的技術包括數(shù)據(jù)降維和聚類問題。
半監(jiān)督學習,訓練數(shù)據(jù)集中有一部分答案,一部分沒答案的稱為半監(jiān)督學習。
強化學習相對來說比較復雜,是指一個系統(tǒng)和外界環(huán)境不斷地交互,獲得外界反饋,然后決定自身的行為,達到長期目標的最優(yōu)化。也就是從一開始什么都不懂, 通過不斷地嘗試, 從錯誤中學習, 最后找到規(guī)律, 學會了達到目的的方法。比如AlphaGo用的深度強化學習。
機器學習三要素包括數(shù)據(jù)、模型、算法。簡單來說,這三要素之間的關系,可以用下面這幅圖來表示
總結成一句話:算法通過在數(shù)據(jù)上進行運算產生模型。
如圖中不同的動物,給它們分別打上正確的標記。通過算法訓練后,達到正確分類的目的。要進行機器學習,首先要有數(shù)據(jù)。有了數(shù)據(jù)之后,再對數(shù)據(jù)進行標注,利用人工標注的數(shù)據(jù)給到機器進行學習,使機器智能化。
那實際項目中是怎么給數(shù)據(jù)打標注,為什么要給數(shù)據(jù)標注?帶著這兩個問題我們來看個視頻(https://www.thepaper.cn/newsDetail_forward_2052136\)
大家來做下這個猜數(shù)字游戲,1, 4, 16…()… 256… 括號里的是什么。為什么是64,不是其他數(shù)字,又為什么是數(shù)字,不是一個漢字或者一個字母。我們找到了數(shù)字之間的規(guī)律,邏輯關系,并且抽象成了模型,我們才能知道括號里是什么。
舉個生活中的例子,小米硬件中手機外殼,在大批量生產前需要先設計手機外殼的模具,然后所有同型號的手機外殼都按這個模具樣版生產出來。這個模具也是個硬件上的模型。
算法的模型又是什么?模型是從數(shù)據(jù)里抽象出來的,用來描述客觀世界的數(shù)學模型。通過對數(shù)據(jù)的分析,找到其中的規(guī)律,找到的規(guī)律就是模型。
機器學習的根本目的,是找一個模型去描述我們已經觀測到的數(shù)據(jù)。
例如,你可能會在研究論文和教科書中看到用偽代碼或 線性代數(shù) 描述的機器學習算法。你可以看到一個特定的機器學習算法與另一個特性算法相比的計算效率。
學術界可以設計出很多機器學習算法,而機器學習實踐者可以在他們的項目中使用標準的機器學習算法。這就像計算機科學的其他領域一樣,學者可以設計出全新的排序算法,程序員可以在應用程序中使用標準的排序算法。
·線性回歸
·邏輯回歸
·決策樹
·人工神經網絡
·K- 最近鄰
·K- 均值
·
你還可能會看到多個機器學習算法實現(xiàn),并在一個具有標準API的庫中提供。一個流行的例子是scikit-learn庫,它在Python中提供了許多分類、回歸和聚類機器學習算法的實現(xiàn)。
03AI算法模型測試
泛化能力指的是學習方法對未知數(shù)據(jù)的預測能力。就好比運動員平時都是在訓練場進行訓練,而評估運動員的真實實力要看在大賽中的表現(xiàn)。
我們實際希望的,是在新樣本上能表現(xiàn)得很好的學習器,為了達到這個目的,應該從訓練樣本中盡可能推演出適用于所有潛在樣本的 “普通規(guī)律”,這樣才能在遇到新樣本時做出正確的預測,泛化能力比較好。
當學習器把訓練樣本學得 “太好” 了的時候,很可能已經把訓練樣本自身的一些特點當作了所有潛在樣本都會具有的一般性質,這樣就會導致泛化性能下降。這種現(xiàn)象在機器學習中稱為 “過擬合 “,與之相對是 “欠擬合” 指的是對訓練樣本的一般性質尚未學習。
有多種因素可能導致過擬合,其中最常見的情況是由于學習能力過于強大,以至于把訓練樣本所包含的不太一般的特性都學到了,而欠擬合則通常是由于學習能力低下而造成的。
首先有關TP、TN、FP、FN的概念。大體來看,TP與TN都是分對了情況,TP是正類,TN是負類。則推斷出,F(xiàn)P是把錯的分成了對的,而FN則是把對的分成了錯的。
【舉例】一個班里有男女生,我們來進行分類,把女生看成正類,男生看成是負類。我們可以用混淆矩陣來描述TP、TN、FP、FN。
混淆矩陣
準確率、召回率、F1
人工智能領域兩個最基本指標是召回率 (Recall Rate) 和準確率 (Precision Rate),召回率也叫查全率,準確率也叫查準率,概念公式:
?召回率 (Recall) = 系統(tǒng)檢索到的相關文件 / 系統(tǒng)所有相關的文件總數(shù)
?準確率 (Precision) = 系統(tǒng)檢索到的相關文件 / 系統(tǒng)所有檢索到的文件總數(shù)
準確率和召回率是互相影響的,理想情況下肯定是做到兩者都高,但是一般情況下準確率高、召回率就低,召回率低、準確率高,當然如果兩者都低,那是什么地方出問題了。一般來說,精確度和召回率之間是矛盾的,這里引入F1-Score作為綜合指標,就是為了平衡準確率和召回率的影響,較為全面地評價一個分類器。F1是精確率和召回率的調和平均。F1-score越大說明模型質量更高。一般情況,用不同的閥值,統(tǒng)計出一組不同閥值下的精確率和召回率,如下圖:
評價指標跑出來看又怎么評判呢?我們來看下 2016 年的新聞
百度自動駕駛負責人王勁:去年的這個時候,我們的圖像識別,識別汽車這一項,剛好也是89%。我們認為這個89%,要達到97%的準確率,需要花的時間,會遠遠超過5年。而人類要實現(xiàn)無人駕駛,主要靠攝像頭來實現(xiàn)安全的保障的話,我們認為要多少呢?我們認為起碼這個安全性的保障,要達到99.9999%,所以這個是一個非常非常遠的一條路。我們認為不是5年,10年能夠達得到的。一般的人工智能系統(tǒng),如搜索、翻譯等可允許犯錯,而無人駕駛系統(tǒng)與生命相關,模型性能要求很高。
在不同的領域,對召回率和準確率的要求不一樣。如果是做搜索,那就是保證召回的情況下提升準確率;如果做疾病監(jiān)測、反垃圾,則是保準確率的條件下,提升召回。所以,在兩者都要求高的情況下,可以用F1來衡量。
魯棒性 (robustness),也就是所說健壯性,簡單來說就是在模型在一些異常數(shù)據(jù)情況下是否也可以比較好的效果。也就是我們在最開始講人工智能三個特征中的處理不確定性的能力。
比如人臉識別,對于模糊的圖片,人戴眼鏡,頭發(fā)遮擋,光照不足等情況下的模型表現(xiàn)情況。算法魯棒性的要求簡單來說就是 “好的時候” 要好,“壞的時候” 不能太壞。在AlphaGo和李世石對決中,李世石是贏了一盤的。李世石九段下出了 “神之一手” Deepmind團隊透露:錯誤發(fā)生在第79手,但AlphaGo直到第87手才發(fā)覺,這期間它始終認為自己仍然領先。這里點出了一個關鍵問題:魯棒性。人類犯錯:水平從九段降到八段。機器犯錯:水平從九段降到業(yè)余。
測試方法就是用盡可能多的異常數(shù)據(jù)來覆蓋進行測試。
模型安全,攻擊方法有:試探性攻擊、對抗性攻擊兩種
在試探性攻擊中,攻擊者的目的通常是通過一定的方法竊取模型,或是通過某種手段恢復一部分訓練機器學習模型所用的數(shù)據(jù)來推斷用戶的某些敏感信息。主要分為模型竊取和訓練數(shù)據(jù)竊取
對抗性攻擊對數(shù)據(jù)源進行細微修改,讓人感知不到,但機器學習模型接受該數(shù)據(jù)后做出錯誤的判斷。比如圖中的雪山,原本的預測準確率為94%,加上噪聲圖片后,就有99.99%的概率識別為了狗。
響應速度是指從數(shù)據(jù)輸入到模型預測輸出結果的所需的時間。對算法運行時間的評價。
業(yè)務測試,包括業(yè)務邏輯測試,業(yè)務&數(shù)據(jù)正確性測試。主要關注業(yè)務代碼是否符合需求,邏輯是否正確,業(yè)務異常處理等情況??梢宰尞a品經理提供業(yè)務的流程圖,對整體業(yè)務流程有清晰的了解。
白盒測試,先讓算法工程師將代碼的邏輯給測試人員講解,通過講解理清思路。然后測試做代碼靜態(tài)檢查,看是否會有基本的bug??梢允褂胮ylint工具來做代碼分析。
模型監(jiān)控,項目發(fā)布到線上后,模型在線上持續(xù)運行,需要以固定間隔檢測項目模型的實時表現(xiàn),可以是每隔半個月或者一個月,通過性能指標對模型進行評估。對各指標設置對應閥值,當?shù)陀陂y值觸發(fā)報警。如果模型隨著數(shù)據(jù)的演化而性能下降,說明模型已經無法擬合當前的數(shù)據(jù)了,就需要用新數(shù)據(jù)訓練得到新的模型。
大數(shù)據(jù)輔助,機器學習算法訓練和驗證是一個持續(xù)改進的過程。當數(shù)據(jù)量逐步放大時候,如何統(tǒng)計算法的準確率呢?這個時候需要引入大數(shù)據(jù)技術針對數(shù)據(jù)結果進行統(tǒng)計,根據(jù)周期性統(tǒng)計的準確率結果生成線性報表來反饋算法質量的變化。
04常見的機器學習平臺或者工具
已經躍居第一位,貢獻者增長了三位數(shù)。Scikit-learn排名第二,但仍然有很大的貢獻者基礎。
TensorFlow 最初是由研究人員和工程師在Google機器智能研究組織的 Google Brain 團隊中開發(fā)的。該系統(tǒng)旨在促進機器學習的研究,并使其從研究原型到生產系統(tǒng)的快速和輕松過渡。
是用于數(shù)據(jù)挖掘和數(shù)據(jù)分析的簡單而有效的工具,可供所有人訪問,并可在各種環(huán)境中重用,基于NumPy,SciPy和matplotlib,開源,商業(yè)可用 - BSD 許可證。
一種高級神經網絡API,用Python編寫,能夠在TensorFlow,CNTK或Theano 之上運行。
Tensors和Python中的動態(tài)神經網絡,具有強大的GPU加速功能。
允許您有效地定義,優(yōu)化和評估涉及多維陣列的數(shù)學表達式。
是一個免費的Python庫,具有可擴展的統(tǒng)計語義,分析語義結構的純文本文檔,檢索語義相似的文檔等功能。
是一個深刻的學習框架,以表達,速度和模塊化為基礎。它由伯克利視覺和學習中心(BVLC)和社區(qū)貢獻者開發(fā)。
是一個基于Python的獨立開源框架,適用于深度學習模型。Chainer 提供靈活,直觀和高性能的方法來實現(xiàn)全方位的深度學習模型,包括最新的模型,如遞歸神經網絡和變分自動編碼器。
是一個Python模塊,允許用戶瀏覽數(shù)據(jù),估計統(tǒng)計模型和執(zhí)行統(tǒng)計測試。描述性統(tǒng)計,統(tǒng)計測試,繪圖函數(shù)和結果統(tǒng)計的廣泛列表可用于不同類型的數(shù)據(jù)和每個估算器。
是機器學習工具箱,提供各種統(tǒng)一和高效的機器學習(ML)方法。工具箱無縫地允許輕松組合多個數(shù)據(jù)表示,算法類和通用工具。
是一個機器學習庫。它的大部分功能都建立在Theano之上。這意味著您可以使用數(shù)學表達式編寫Pylearn2 插件(新模型,算法等),Theano 將為您優(yōu)化和穩(wěn)定這些表達式,并將它們編譯為您選擇的后端(CPU或GPU)。
是一個基于新皮層理論的開源項目,稱為分層時間記憶(HTM)。HTM 理論的一部分已經在應用中得到實施,測試和使用,HTM理論的其他部分仍在開發(fā)中。
是Nervana基于Python的深度學習庫。它提供易用性,同時提供最高性能。
是一個Python模塊,用于快速簡便地統(tǒng)計NeuroImaging數(shù)據(jù)。它利用 scikit-learn Python工具箱進行多變量統(tǒng)計,并使用預測建模,分類,解碼或連接分析等應用程序。
是新手和專家的開源機器學習和數(shù)據(jù)可視化。具有大型工具箱的交互式數(shù)據(jù)分析工作流程。
是一個python模塊,它實現(xiàn)貝葉斯統(tǒng)計模型和擬合算法,包括馬爾可夫鏈蒙特卡羅。其靈活性和可擴展性使其適用于大量問題。
是一種新穎的進化計算框架,用于快速原型設計和思想測試。它旨在使算法明確,數(shù)據(jù)結構透明。它與多處理和SCOOP等并行機制完美協(xié)調。
是一個帶有 Python 綁定的C ++ 庫,用于搜索空間中接近給定查詢點的點。它還創(chuàng)建了大型只讀基于文件的數(shù)據(jù)結構,這些數(shù)據(jù)結構映射到內存中,以便許多進程可以共享相同的數(shù)據(jù)。
是一個用于Python的模塊化機器學習庫。其目標是為機器學習任務和各種預定義環(huán)境提供靈活,易用且功能強大的算法,以測試和比較您的算法。
是一個數(shù)據(jù)管道框架,為您的機器學習模型提供所需的數(shù)據(jù)。計劃由Blocks和 Pylearn2神經網絡庫使用。
通過上述列出的一堆工具發(fā)現(xiàn),基本上都支持python,python提供了大量的人工智能機器學習相關的API,是首選語言。
1. 微軟的機器學習平臺
https://studio.azureml.net/
2. Facebook 的應用機器學習平臺
https://research.fb.com/publications/applied-machine-learning-at-facebook-a-datacenter-infrastructure-perspective/
3. Uber 的機器學習平臺
https://eng.uber.com/scaling-michelangelo/
4. Twitter 的機器學習平臺
5.Databricks 開源機器學習平臺 MLflow
https://mlflow.org/docs/latest/concepts.html
6.百度機器學習 BML
https://cloud.baidu.com/doc/BML/s/Wjxbindt7
7. 阿里 PAI
https://help.aliyun.com/document_detail/72285.html?spm=a2c4g.11174359.6.544.4da35d87h2vsGy
8. 騰訊機器學習平臺
https://cloud.tencent.com/document/product/851
9.京東 JD neuCube
https://neuhub.jd.com/neuCube
10.美團點評 MLX 平臺
https://www.infoq.cn/article/spark-flink-carbondata-best-practice
11. 滴滴機器學習平臺
https://www.infoq.cn/article/jJ4pjkf8Huf-WVlE7Xw7
12. 華為 MLS
https://support.huaweicloud.com/productdesc-mls/zh-cn_topic_0122559740.html\
13.金山云智機器學習平臺 (KML)
https://www.ksyun.com/post/product/KML
14.第四范式
https://blog.csdn.net/RA681t58CJxsgCkJ31/article/details/79492729
1.人工智能中 RPA、NLP、OCR 介紹:
https://blog.csdn.net/sdhgfhdshjd/article/details/115342671
2.機器學習入門(一):機器學習三要素之數(shù)據(jù)、模型、算法:
https://blog.csdn.net/liujian197905187511/article/details/104815578?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-0.essearch_pc_relevant&spm=1001.2101.3001.4242\
3.AI 算法實現(xiàn):
https://blog.csdn.net/RA681t58CJxsgCkJ31/article/details/79492729
聯(lián)系客服