AI 已經(jīng)被炒得如火如荼,那么生活在這個快速變化時代的我們,不管你身處哪個行業(yè),都不該置身事外,多多少少去了解一下,才不會和這個快速變化的時代格格不入,倍感孤獨。開篇我提過兩本書,如果你粗略翻看過,多少能理解個大概。為了讓沒有任何經(jīng)驗的外行能夠快速的進入AI的神秘世界,今天就來好好討論怎么開始,如何下嘴。
AI 是個很寬泛的東西,我們通常的理解,它包括機器學習,自然語言處理,視覺識別,涉及的學科如計算機科學,數(shù)學,認知學,心理學,社會學,哲學等,我們可以把一切關(guān)于計算模擬人腦思維或功能的模擬均可以認為是AI??梢钥闯?AI 不是一個孤立的學科領(lǐng)域,其實很好理解,人類智能的形成也是包含多方面的,要模擬人的智能,離不開各領(lǐng)域的研究。如此說來,想進入AI領(lǐng)域豈不是很難?這里討論的只是AI中的某些領(lǐng)域,或許通過這一領(lǐng)域的學習,以點帶面的去了解AI的全貌,或許是個比較切合實際的做法,在接下來的篇章中,各領(lǐng)域均會涉及,因為是入門級別的,所以淺嘗則止,你可以選擇你喜歡的領(lǐng)域去專研。
接下來把我們將要涉及的內(nèi)容概述一下:
1)數(shù)據(jù)挖掘和分析:主要探討數(shù)據(jù)的抓取,處理和分析
2)機器學習:主要探討深度學習模型及應用
3)計算機視覺:主要介紹和視覺識別有關(guān)的庫及其應用
4)自然語言分析:主要介紹自然語言的識別和合成,另外會涉及到情感分析的內(nèi)容
5)深度學習算法:介紹幾個常見的深度學習算法及應用
以上每一個分支都可以展開來講,都可以作為一個獨立的領(lǐng)域花一輩子去研究,但人生苦短,這里只是點到為止,盡可能地取其精華。
一、首先來說說什么是數(shù)據(jù)挖掘
數(shù)據(jù)挖掘就是指從數(shù)據(jù)中獲取知識。
這樣的定義方式比較抽象,但這也是業(yè)界認可度最高的一種解釋了。對于如何開發(fā)一個大數(shù)據(jù)環(huán)境下完整的數(shù)據(jù)挖掘項目,業(yè)界至今仍沒有統(tǒng)一的規(guī)范。說白了,大家都聽說過大數(shù)據(jù)、數(shù)據(jù)挖掘等概念,在我們的商業(yè)社會里,每個人或組織的任何行為都會產(chǎn)生大量的數(shù)據(jù),從表面上看這些數(shù)據(jù)是多么的繁雜無序,然而,這些數(shù)據(jù)的背后往往有某種潛在的邏輯,針對這些邏輯的挖掘探討,往往可以發(fā)掘出非常有價值的東西。這個就是數(shù)據(jù)挖掘需要做的事情。
那么,數(shù)據(jù)挖掘通常的流程是怎么樣的呢?從形式上來說,數(shù)據(jù)挖掘的開發(fā)流程是迭代式的。開發(fā)人員通過如下幾個階段對數(shù)據(jù)進行迭代式處理:
其中,
解讀需求
絕大多數(shù)的數(shù)據(jù)挖掘工程都是針對具體領(lǐng)域的,因此數(shù)據(jù)挖掘工作人員不應該沉浸在自己的世界里YY算法模型,而應該多和具體領(lǐng)域的專家交流合作以正確的解讀出項目需求。這種合作應當貫穿整個項目生命周期。
搜集數(shù)據(jù)
在大型公司,數(shù)據(jù)搜集大都是從其他業(yè)務系統(tǒng)數(shù)據(jù)庫提取。很多時候我們是對數(shù)據(jù)進行抽樣,在這種情況下必須理解數(shù)據(jù)的抽樣過程是如何影響取樣分布,以確保評估模型環(huán)節(jié)中用于訓練(train)和檢驗(test)模型的數(shù)據(jù)來自同一個分布。
預處理數(shù)據(jù)
預處理數(shù)據(jù)可主要分為數(shù)據(jù)準備和數(shù)據(jù)歸約兩部分。其中前者包含了缺失值處理、異常值處理、歸一化、平整化、時間序列加權(quán)等;而后者主要包含維度歸約、值歸約、以及案例歸約。后面兩篇博文將分別講解數(shù)據(jù)準備和數(shù)據(jù)歸約。
評估模型
確切來說,這一步就是在不同的模型之間做出選擇,找到最優(yōu)模型。很多人認為這一步是數(shù)據(jù)挖掘的全部,但顯然這是以偏概全的,甚至絕大多數(shù)情況下這一步耗費的時間和精力在整個流程里是最少的。
解釋模型
數(shù)據(jù)挖掘模型在大多數(shù)情況下是用來輔助決策的,人們顯然不會根據(jù)'黑箱模型'來制定決策。如何針對具體環(huán)境對模型做出合理解釋也是一項非常重要的任務。
二、機器學習
作為機器學習領(lǐng)域的先驅(qū),Arthur Samuel在 IBM Journal of Research and Development期刊上發(fā)表了一篇名為《Some Studies in Machine Learning Using the Game of Checkers》的論文中,將機器學習非正式定義為:”在不直接針對問題進行編程的情況下,賦予計算機學習能力的一個研究領(lǐng)域?!?/strong>
在機器學習的歷史上,Arthur Samuel做了一些非常酷的事情。他曾經(jīng)做了一個西洋棋程序,讓計算機自己跟自己下棋,下棋速度非??欤虼薃rthur Samuel讓他的程序自己和自己下了成千上萬盤棋,逐漸的,程序開始慢慢意識到怎樣的局勢能導致勝利,怎樣的局勢能導致失敗,因此它反復的自己學習“如果讓競爭對手的棋子占據(jù)了這些地方,那么我輸?shù)母怕士赡芨蟆被蛘摺叭绻业钠遄诱紦?jù)了這些地方,那么我贏的概率可能更大”所以漸漸的,Arthur Samuel的程序掌握了哪些局面可能會輸,哪些局面可能會贏,因此奇跡出現(xiàn)了,他的程序的棋藝甚至遠遠超過了他自己。ArthurSamuel讓他的程序比他自己更會下棋,但是他并沒有明確的教給程序具體應該怎么下,而是讓它自學成材。
機器學習的類型有哪些呢?
監(jiān)督學習
訓練數(shù)據(jù)中,每個樣本都帶有正確答案。
個人理解,這種方式有正確答案的監(jiān)督或者說參照,所以稱為監(jiān)督學習。就好像老師提供對錯指示、告知最終答案的學習過程。
學習器從訓練數(shù)據(jù)中學到正確答案的決策函數(shù) y=f(x) 用于新的數(shù)據(jù)預測。
典型任務:預測數(shù)值型數(shù)據(jù)的回歸、預測分類標簽的分類、預測順序的排列
應用:手寫文字識別、聲音處理、圖像處理、垃圾郵件分類與攔截、網(wǎng)頁檢索、基因診斷、股票預測等。
無監(jiān)督學習
訓練數(shù)據(jù)中,每個樣本都沒有正確答案。
學習器自己在訓練數(shù)據(jù)中找規(guī)律。就像在沒有老師的情況下,學生自學的過程。 所以稱為無監(jiān)督學習。
典型任務:聚類(相似點)、異常檢測(異常點)。
應用:人造衛(wèi)星故障診斷、視頻分析、社交網(wǎng)站解析、聲音信號解析、數(shù)據(jù)可視化、監(jiān)督學習的前處理工具等。
半監(jiān)督學習
訓練數(shù)據(jù)中,少部分樣本有正確答案。
學習器使用大量的沒有正確答案的數(shù)據(jù),以及同時使用有正確答案的數(shù)據(jù),來進行模式識別工作。在有正確答案的樣本幫助下,獲得比只用無正確答案的樣本得到的結(jié)果更好的學習效果,提高學習器的精度。是無監(jiān)督學習和監(jiān)督學習的結(jié)合,所以稱為半監(jiān)督學習。
典型任務:半監(jiān)督分類,半監(jiān)督回歸,半監(jiān)督聚類,半監(jiān)督降維
強化學習
強化學習把學習看作試探評價過程,Agent選擇一個動作用于環(huán)境,環(huán)境接受該動作后狀態(tài)發(fā)生變化,同時產(chǎn)生一個強化信號(獎或懲)反饋給Agent,Agent根據(jù)強化信號和環(huán)境當前狀態(tài)再選擇下一個動作,選擇的原則是使受到正強化(獎)的概率增大。選擇的動作不僅影響立即強化值,而且影響環(huán)境下一時刻的狀態(tài)及最終的強化值。
三、計算機視覺
通俗地講,計算機視覺就是給機器賦予視覺的能力,比如裝上攝像頭,通過程序算法讓機器通過攝像頭獲取的圖像進行處理,模式識別,并達到理解的目的。這個比較好理解,現(xiàn)在我們身邊就可以看到相關(guān)的應用,比如OCR技術(shù),識別圖像文字,人臉識別,指紋識別,這個很多智能手機已經(jīng)內(nèi)建了這些功能,而且趨于成熟。
計算機視覺學習過程中會用到不少現(xiàn)成的庫,比如openCV, DLIB, Face 等等開源的庫文件,在以后的篇幅中會詳細講解。
四、自然語言處理(NLP)
一般來說,自然語言處理的目的是讓機器能夠執(zhí)行人類所期望的某些語言功能自然語言處理是人工智能的終極發(fā)展目標,大概可以分為人類語言的處理(語言學)和機器語言的翻譯.
其大致流程是語音識別與合成---語音分析、詞法分析、句法分析、語義分析、語用分析
后面篇幅重點介紹第三方庫的使用,實現(xiàn)簡單的語音識別和合成,并初步涉略情感語義的分析模型。非常成熟的模型目前還沒有,但這方面的研究非常的熱,畢竟它是實現(xiàn)AI應用的很重要的一部分。
五、深度學習
深度學習,主要就是多層神經(jīng)網(wǎng)絡。而多層神經(jīng)網(wǎng)絡目前效果比較好的是卷積神經(jīng)網(wǎng)絡,目前在圖像和音頻信號上效果比較好,而在自然語言處理上效果沒有顯示出來。
深度學習從統(tǒng)計學的角度來說,就是在預測數(shù)據(jù)的分布,從數(shù)據(jù)中學得一個模型然后再通過這個模型去預測新的數(shù)據(jù),這一點就要求測試數(shù)據(jù)和訓練數(shù)據(jù)必須是同分布。
從Inception的角度上來看的話,其實深度學習是在模擬人腦的工作機制,但實際上,目前對于人腦的認知機制還不是很清楚,神經(jīng)網(wǎng)絡算法也只是簡單模擬人腦而且,談不上真正模擬。以下是神經(jīng)網(wǎng)絡的模型圖:
定義一個深度學習模型,需要解決以下3個問題:
1)激活函數(shù),也就是先對于輸入神經(jīng)元的激活值。一般的有 logistic 、tanh、以及ReLU。
2)代價函數(shù)。一般學習過程都是優(yōu)化問題。代價函數(shù)一般采用歐式距離。
3)優(yōu)化策略。最簡單的用剃度下降。
根據(jù)剃度更新權(quán)重,進而減小代價函數(shù)。
由于多層神經(jīng)網(wǎng)絡通常模型很復雜,為此還需要解決過擬合問題,目前比較有效的是通過數(shù)據(jù)增廣和dropout技術(shù)。
區(qū)別于一般的機器學習算法,深度學習更新是機器學習,之所以這么說是因為它能自動學習特征,不用人工定義特征,所以你可以不需要懂太多領(lǐng)域相關(guān)的知識,因為算法懂得自動學習特征。
好的,到現(xiàn)在為止,大家對AI涉及的這幾個方面有了初步的印象,是不是很有趣,雖然有不少專業(yè)名詞,聽起來諱莫如深,不過不要擔心,只需要你依然保持這個熱情和好奇心,隨我逐一展開,一起窺探AI的奧秘。
聯(lián)系客服