大數(shù)據(jù)這個(gè)詞最早出現(xiàn)在上世紀(jì)90年代的美國(guó),直到2012年后才火起來(lái)。大數(shù)據(jù)沒(méi)有一個(gè)明確的概念,之所以稱之為大是因?yàn)閿?shù)據(jù)量太大超過(guò)了單臺(tái)計(jì)算機(jī)的資源,這時(shí)就需要分布式的數(shù)據(jù)處理工具,以便能在用戶可容忍的時(shí)間內(nèi)進(jìn)行數(shù)據(jù)處理。大數(shù)據(jù)從業(yè)人員肯定會(huì)去了解谷歌的mapreduce論文和hadoop開(kāi)源工具。然而海量數(shù)據(jù)本來(lái)是靜態(tài),只有通過(guò)對(duì)數(shù)據(jù)進(jìn)行分析和利用才能讓數(shù)據(jù)產(chǎn)生價(jià)值。正所謂量變產(chǎn)生質(zhì)變。
人工智能在1956年的達(dá)特茅斯會(huì)議上被提出來(lái),它研究的是如何制造智能機(jī)器或模擬人類的智能行為。大數(shù)據(jù)與人工智能之間可以說(shuō)是相輔相成,人工智能的基礎(chǔ)是數(shù)據(jù),而數(shù)據(jù)的利用又離不開(kāi)人工智能。各個(gè)領(lǐng)域海量數(shù)據(jù)的收集,并進(jìn)行人工處理標(biāo)識(shí)后成為人工智能學(xué)習(xí)的指導(dǎo)數(shù)據(jù)。人工智能研究的方向主要有:模式識(shí)別、機(jī)器學(xué)習(xí)、機(jī)器翻譯、自然語(yǔ)言處理、計(jì)算機(jī)視覺(jué)、專家系統(tǒng)、邏輯推理等等。
機(jī)器學(xué)習(xí)就是利用事物本身具有的數(shù)據(jù)特征用數(shù)學(xué)來(lái)表達(dá)并構(gòu)建模型,然后完成既定任務(wù),總的來(lái)說(shuō)模型就是特征到任務(wù)結(jié)果的某種數(shù)學(xué)規(guī)律。對(duì)于實(shí)際工程中,我們的模型是能盡量簡(jiǎn)單就盡量簡(jiǎn)單,模型并非是看起來(lái)高端才牛逼,真正牛逼的模型是簡(jiǎn)單又有效。機(jī)器學(xué)習(xí)的數(shù)學(xué)知識(shí)涉及到高等數(shù)學(xué)、線性代數(shù)、概率論、數(shù)理統(tǒng)計(jì)、最優(yōu)化理論、數(shù)理邏輯等等。
機(jī)器學(xué)習(xí)常見(jiàn)的算法涉及以下:
線性回歸,比較簡(jiǎn)單且直觀的回歸算法,線性回歸可以有n個(gè)屬性值,然后每個(gè)屬性的線性組合組成一個(gè)預(yù)測(cè)函數(shù),通過(guò)定義誤差函數(shù)然后最小化樣本整體的誤差來(lái)確定預(yù)測(cè)函數(shù)的參數(shù)。
邏輯斯蒂回歸,可以說(shuō)它是廣義線性模型,原來(lái)的線性回歸無(wú)法用于分類任務(wù),那么通過(guò)一個(gè)sigmoid函數(shù)可以將其用于分類任務(wù),這便是邏輯斯蒂回歸。線性函數(shù)被映射到了S函數(shù)中,以0.5為分割點(diǎn)可作為二分類。邏輯斯蒂回歸往多分類推廣則變?yōu)閟oftmax回歸,可用于多分類任務(wù)。
樸素貝葉斯,它是概率論中非常經(jīng)典的方法,核心就是貝葉斯定理,通過(guò)條件獨(dú)立假設(shè)來(lái)簡(jiǎn)化模型,通過(guò)樣本來(lái)學(xué)習(xí)聯(lián)合概率分布,其中涉及到先驗(yàn)概率分布和條件概率分布。
決策樹(shù),根據(jù)屬性構(gòu)造一個(gè)樹(shù)形的決策策略,按各個(gè)屬性值不斷往下便能確定最終的結(jié)果。訓(xùn)練時(shí)可以以信息增益作為準(zhǔn)則。
支持向量機(jī),它規(guī)定了最優(yōu)分類線不僅能正確將兩類分開(kāi),而且還要使分類間隔最大,當(dāng)然對(duì)于高維空間則是超平面。它的本質(zhì)問(wèn)題是凸二次規(guī)劃問(wèn)題的極小問(wèn)題,這方面涉及到凸優(yōu)化理論。對(duì)于線性不可分的情況可以引入核函數(shù),將低維空間線性不可分的點(diǎn)映射到高維空間中,從而使得它們可分。
集成學(xué)習(xí)(boosting、bagging、stacking),集成學(xué)習(xí)核心思想是結(jié)合多個(gè)模型算法來(lái)完成任務(wù),這個(gè)假設(shè)了單個(gè)算法學(xué)習(xí)的知識(shí)是局限的,多個(gè)算法組合則能發(fā)揮各個(gè)算法模型的長(zhǎng)處,從而增加模型性能。boosting、bagging、stacking分別是三種不同的集成方式,boosting的個(gè)體學(xué)習(xí)器有強(qiáng)依賴關(guān)系,每個(gè)個(gè)體學(xué)習(xí)器依賴于前一個(gè)個(gè)體學(xué)習(xí)器的輸出,bagging個(gè)體學(xué)習(xí)器之間沒(méi)有依賴關(guān)系且通過(guò)一定的結(jié)合策略產(chǎn)生最終輸出,stacking則是一種分層特征學(xué)習(xí)的結(jié)構(gòu)。
神經(jīng)網(wǎng)絡(luò)(感知機(jī)、BP神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)),神經(jīng)網(wǎng)絡(luò)基礎(chǔ)版本是感知機(jī)和BP神經(jīng)網(wǎng)絡(luò),通過(guò)模擬人腦神經(jīng)一樣構(gòu)建起一個(gè)神經(jīng)網(wǎng)絡(luò),并通過(guò)梯度下降之類的學(xué)習(xí)模型參數(shù)。后面通過(guò)加深網(wǎng)絡(luò)層數(shù)和引入卷積等操作發(fā)展成卷積神經(jīng)網(wǎng)絡(luò),此外還有改造成循環(huán)神經(jīng)網(wǎng)絡(luò)等,也就是后來(lái)的深度學(xué)習(xí)。
聚類(kmeans、密度聚類、層次聚類),聚類就是通過(guò)一定的算法將屬性相近的個(gè)體聚集到一起,并將屬性不同的個(gè)體盡量隔離遠(yuǎn)一點(diǎn)。kmeans是基于距離的聚類,密度聚類則是尋找被低密度區(qū)域分離的高密度區(qū)域,層次聚類congratulation上往下將大集群進(jìn)行分割。
降維(PCA、LDA),PCA主成分分析將數(shù)據(jù)congratulation原來(lái)的坐標(biāo)轉(zhuǎn)換到新坐標(biāo)使得可以用更少維度來(lái)表示數(shù)據(jù),LDA線性判別分析將高維樣本投印到最佳鑒別矢量空間以達(dá)到壓縮特征空間維度的效果。
數(shù)據(jù)獲取,從不同數(shù)據(jù)源收集數(shù)據(jù)獲取數(shù)據(jù)到統(tǒng)一裝置中。
數(shù)據(jù)存儲(chǔ),借助存儲(chǔ)介質(zhì)將收集到的數(shù)據(jù)持久化保存,比如硬盤(pán)。
數(shù)據(jù)清洗,將不符合規(guī)范的數(shù)據(jù)進(jìn)行特定處理,使得數(shù)據(jù)達(dá)到準(zhǔn)確完整一致等要求。
數(shù)據(jù)建模,定義滿足業(yè)務(wù)所需要的數(shù)據(jù)要求的過(guò)程,一般需要業(yè)務(wù)建模師參與。
數(shù)據(jù)處理,對(duì)數(shù)據(jù)的采集、存儲(chǔ)、檢索、加工、變換、傳輸?shù)炔僮?,從海量?shù)據(jù)中抽取提取有價(jià)值的數(shù)據(jù)。
數(shù)據(jù)分析,使用數(shù)據(jù)挖掘技術(shù)從海量數(shù)據(jù)中獲取有價(jià)值的信息。
數(shù)據(jù)可視化,將數(shù)據(jù)以直觀的可視化方式展示給用戶。
hadoop受谷歌MapReduce論文啟發(fā)而實(shí)現(xiàn)的經(jīng)典的開(kāi)源大數(shù)據(jù)處理工具,目前大數(shù)據(jù)工具主要包括以下。
HDFS,分布式文件系統(tǒng)。
HBase,分布式數(shù)據(jù)庫(kù)。
MapReduce,由用戶編寫(xiě)的運(yùn)行在hadoop集群上的并行程序。
zookeeper,作為分布式程序的協(xié)調(diào)中心。
hive,基于hadoop的數(shù)據(jù)倉(cāng)庫(kù)管理工具。
pig,大數(shù)據(jù)分析工具。
yarn,hadoop集群資源管理系統(tǒng)。
sqoop,hadoop與傳統(tǒng)數(shù)據(jù)庫(kù)之間進(jìn)行數(shù)據(jù)交換的工具。
chukawa,分布式數(shù)據(jù)收集分析系統(tǒng)。
hcatalog,管理hadoop產(chǎn)生的數(shù)據(jù)表存儲(chǔ)管理系統(tǒng)。
redis,分布式緩存系統(tǒng)。
kafka,分布式消息系統(tǒng)。
Cassandra,分布式結(jié)構(gòu)和數(shù)據(jù)存儲(chǔ)。
neo4j,nosql圖數(shù)據(jù)庫(kù)。
spark,分布式計(jì)算引擎。
storm,分布式實(shí)時(shí)計(jì)算系統(tǒng)。
elasticsearch,分布式全文搜索。
flume,分布式日志采集系統(tǒng)。
flink,分布式流處理引擎。
本公眾號(hào)專注于人工智能、讀書(shū)與感想、聊聊數(shù)學(xué)、計(jì)算機(jī)科學(xué)、分布式、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、自然語(yǔ)言處理、算法與數(shù)據(jù)結(jié)構(gòu)、Java深度、Tomcat內(nèi)核等。
作者簡(jiǎn)介:筆名seaboat,擅長(zhǎng)人工智能、計(jì)算機(jī)科學(xué)、數(shù)學(xué)原理、基礎(chǔ)算法。出版書(shū)籍:《Tomcat內(nèi)核設(shè)計(jì)剖析》、《圖解數(shù)據(jù)結(jié)構(gòu)與算法》、《人工智能原理科普》。
聯(lián)系客服