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