跨平臺(tái)機(jī)器學(xué)習(xí):ML.NET架構(gòu)及應(yīng)用編程
定 價(jià):¥99
中 教 價(jià):¥59.40 (6.00折)
庫(kù) 存 數(shù): 0
ML.NET 是面向.NET 開發(fā)人員的開源機(jī)器學(xué)習(xí)框架,可以幫助開發(fā)人員使用 C# 或 F# 創(chuàng)建自定義機(jī)器學(xué)習(xí)模型,從而將機(jī)器學(xué)習(xí)集成到 Web、移動(dòng)、桌面、游戲和物聯(lián)網(wǎng)應(yīng)用中。《跨平臺(tái)機(jī)器學(xué)習(xí):ML.NET架構(gòu)及應(yīng)用編程》以ML.NET 為核心,介紹了架構(gòu)及其基本知識(shí),介紹了ML.NET 的八大機(jī)器學(xué)習(xí)應(yīng)用場(chǎng)景:預(yù)測(cè)、分類、聚類、異常檢查、預(yù)測(cè)、推薦、圖像分類以及神經(jīng)網(wǎng)絡(luò)。 《跨平臺(tái)機(jī)器學(xué)習(xí):ML.NET架構(gòu)及應(yīng)用編程》適合數(shù)據(jù)工程師使用和參考。
通過(guò)對(duì)《跨平臺(tái)機(jī)器學(xué)習(xí):ML.NET架構(gòu)及應(yīng)用編程》的學(xué)習(xí),讀者可以在專家的指導(dǎo)下,運(yùn)用跨平臺(tái)機(jī)器學(xué)習(xí)框架ML.NET來(lái)創(chuàng)建機(jī)器學(xué)習(xí)解決方案。 有了ML.NET,機(jī)器學(xué)習(xí)可以為所有.NET開發(fā)人員賦能,《跨平臺(tái)機(jī)器學(xué)習(xí):ML.NET架構(gòu)及應(yīng)用編程》可以幫助讀者將ML.NET應(yīng)用于實(shí)際的生產(chǎn)解決方案中。在對(duì)ML.NET進(jìn)行基本概述之后,作者闡明了用于回歸、分類、排名、異常檢測(cè)等的微框架(ML任務(wù))。對(duì)于每個(gè)ML任務(wù),都提供了克服現(xiàn)實(shí)世界中常見挑戰(zhàn)的見解。同時(shí),書中還著重介紹了神經(jīng)網(wǎng)絡(luò)Keras,展示了一個(gè)完整的機(jī)器學(xué)習(xí)應(yīng)用,以及如何在.NET中利用流行的Python 工具。 微軟最有價(jià)值專家MVP(16屆)在書中展示了以下主題: l 構(gòu)建更智能的機(jī)器學(xué)習(xí)解決方案,更貼近用戶的需求; l 了解ML.NET如何實(shí)例化經(jīng)典ML管道,并簡(jiǎn)化情緒分析、欺詐檢測(cè)和價(jià)格預(yù)測(cè)等常見場(chǎng)景; l 實(shí)施數(shù)據(jù)處理和培訓(xùn),生產(chǎn)基于機(jī)器學(xué)習(xí)的軟件解決方案; l 從基本預(yù)測(cè)轉(zhuǎn)向更復(fù)雜的任務(wù),包括分類、異常檢測(cè)、推薦和圖像分類; l 執(zhí)行二分類和多分類;使用聚類和無(wú)監(jiān)督學(xué)習(xí)將數(shù)據(jù)組織成同質(zhì)組; l 發(fā)現(xiàn)異常值以檢測(cè)可疑行為、欺詐、故障設(shè)備或其他問(wèn)題; l 充分利用 ML.NET 強(qiáng)大、靈活的預(yù)測(cè)功能; l 實(shí)現(xiàn)排名、推薦、協(xié)同過(guò)濾的相關(guān)功能; l 使用 ML.NET 遷移學(xué)習(xí)快速構(gòu)建圖像分類解決方案; l 當(dāng)標(biāo)準(zhǔn)算法和淺層學(xué)習(xí)不夠時(shí)轉(zhuǎn)向深度學(xué)習(xí); l 通過(guò) Azure認(rèn)知服務(wù)API購(gòu)買神經(jīng)網(wǎng)絡(luò),或探索使用 Keras和TensorFlow 構(gòu)建自己的神經(jīng)網(wǎng)絡(luò)。
我們需要有人能夠?qū)ξ磥?lái)可能的新事物抱有夢(mèng)想,想想為什么以前沒(méi)有。約翰·肯尼迪,1963今天,數(shù)據(jù)科學(xué)家持續(xù)受到熱捧。豐富的數(shù)據(jù),觸手可及的云計(jì)算能力,這是機(jī)器學(xué)習(xí)最終的完美世界嗎?從表面看,似乎已經(jīng)有了所有必要的食材來(lái)烹制應(yīng)用人工智能(applied AI)。但是,我們實(shí)際上仍然缺乏一個(gè)明確有效的組合方法。如同其他學(xué)科具有其目的一樣,數(shù)據(jù)科學(xué)的目的是證明某些事情是可能的。然而,數(shù)據(jù)科學(xué)本身并不生產(chǎn)解決方案,那是機(jī)器學(xué)習(xí)領(lǐng)域的另一個(gè)分支數(shù)據(jù)工程的目的。各大企業(yè)正在熱招數(shù)據(jù)科學(xué)家,但好的數(shù)據(jù)科學(xué)團(tuán)隊(duì),其成果通常是可運(yùn)行的模型,該模型的軟件質(zhì)量往往只是一個(gè)原型,而非可投入生產(chǎn)的工件。算法與數(shù)據(jù)緊密結(jié)合,且數(shù)據(jù)必須是完整、干凈和平衡的。這部分工作誰(shuí)來(lái)負(fù)責(zé)卻往往并不明確。如此說(shuō)來(lái),這樣的工作最多也只能算是半成品。然而,對(duì)于其業(yè)務(wù)會(huì)產(chǎn)生大量數(shù)據(jù)的大型組織(如能源公共事業(yè)、金融機(jī)構(gòu)和制造業(yè)),組建一個(gè)與應(yīng)用AI流水線。生產(chǎn)部分脫鉤的數(shù)據(jù)科學(xué)團(tuán)隊(duì)。預(yù)算明顯有限的小公司,則以服務(wù)方式采購(gòu)一些應(yīng)用數(shù)據(jù)科學(xué)的工作成果,這樣可能更經(jīng)濟(jì)實(shí)惠。從數(shù)據(jù)科學(xué)到生產(chǎn),通常有一段很長(zhǎng)的路要走,也有很多數(shù)據(jù)方面的工作要做,需要考慮下面幾點(diǎn):數(shù)據(jù)如何存儲(chǔ)?每天還是每小時(shí)?數(shù)據(jù)是否要以某種中間格式的方式臨時(shí)復(fù)制?要想讓模型工作的話,需要進(jìn)行哪些轉(zhuǎn)換?如何實(shí)現(xiàn)自動(dòng)化?一旦部署到生產(chǎn)環(huán)境,該模型的性能如何?預(yù)計(jì)要以什么頻率重新訓(xùn)練模型以適應(yīng)實(shí)時(shí)數(shù)據(jù)(live data)的需求?如果重新訓(xùn)練很頻繁,又應(yīng)該如何自動(dòng)化任何相關(guān)任務(wù)?收集最新數(shù)據(jù)集、運(yùn)行訓(xùn)練并部署最新模型又該如何進(jìn)行?在機(jī)器學(xué)習(xí)模型方面,最大的問(wèn)題可以追溯到所采用的數(shù)據(jù)。2021年7月,《麻省理工技術(shù)評(píng)論》發(fā)表了一篇文章,論述了人工智能在新冠疫情下所產(chǎn)生的影響。這篇文章的要點(diǎn)在于,在對(duì)適度開發(fā)的模型進(jìn)行大規(guī)模審查時(shí),從中發(fā)現(xiàn)的許多問(wèn)題都與研究人員用來(lái)開發(fā)其工具的數(shù)據(jù)質(zhì)量差有關(guān)。這樣,幾乎所有工具幾乎都失去了其有效的用途。于是人們開始更好地理解數(shù)據(jù)工程和數(shù)據(jù)質(zhì)量的作用。通過(guò)CSV稀疏文件來(lái)處理數(shù)據(jù)對(duì)探查某個(gè)想法來(lái)說(shuō)是足夠的,但要想建立一個(gè)健壯的基礎(chǔ)結(jié)構(gòu),還是需要換用別的數(shù)據(jù)庫(kù)(關(guān)系型、NoSQL或圖)和某些嚴(yán)肅的查詢語(yǔ)言。而如果需要這樣做,就很有可能需要超越Python,進(jìn)入經(jīng)典編程語(yǔ)言的領(lǐng)域。也就是說(shuō),僅僅掌握數(shù)據(jù)科學(xué)還不夠,還必須掌握嚴(yán)肅的編程和數(shù)據(jù)庫(kù)技術(shù)。另一方面,從數(shù)據(jù)中尋找和特定業(yè)務(wù)相關(guān)的見解,正是我們最終的目的。目前,常規(guī)意義上的AI(更具體地說(shuō)就是機(jī)器學(xué)習(xí))只是垂直問(wèn)題的商品和直接解決方案之間的一種權(quán)衡。商業(yè)化的云服務(wù)提供安全、穩(wěn)定和可接受的質(zhì)量。雖然并不能涵蓋所有可能的情況,但它們正在擴(kuò)展,而且在不久的將來(lái)還有更多的擴(kuò)展。所有這一切都營(yíng)造了一個(gè)環(huán)境,使我們能夠構(gòu)建同樣的舊軟件,卻可以使用更強(qiáng)大的工具。我們不只是在談?wù)摼幊陶Z(yǔ)言的基元和由框架提供的一些類。我們還在談?wù)撚蓹C(jī)器學(xué)習(xí)算法和商業(yè)化的云服務(wù)支持的智能和預(yù)測(cè)性工具。在這個(gè)背景下,ML.NET完美充當(dāng)了數(shù)據(jù)工程和商業(yè)化數(shù)據(jù)科學(xué)之間的橋梁,它和.NET Framework完全集成。ML.NET有用于淺層學(xué)習(xí)的內(nèi)置算法、對(duì)Azure云服務(wù)的便利訪問(wèn)以及與預(yù)訓(xùn)練模型(如Keras或TensorFlow網(wǎng)絡(luò))的整合。本書面向的讀者在我們看來(lái),如果您已經(jīng)在用.NET,那么ML.NET就是做機(jī)器學(xué)習(xí)的完美工具,無(wú)論選擇的算法和模型的內(nèi)部機(jī)制是什么。本書針對(duì)的是愿意(或需要)進(jìn)入機(jī)器學(xué)習(xí)世界的.NET開發(fā)人員。如果是軟件開發(fā)人員,想把數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)技能添加到自己的技能庫(kù)中,那么本書就是理想的選擇。如果是數(shù)據(jù)科學(xué)家,愿意學(xué)習(xí)更多Python以外的軟件知識(shí),那么本書也是一個(gè)理想的選擇。本書不面向的讀者本書從ML.NET的角度討論機(jī)器學(xué)習(xí)。ML.NET是一個(gè)特定于平臺(tái)的庫(kù)。它主要是為數(shù)據(jù)工程師和機(jī)器學(xué)習(xí)工程師(而不是普通的數(shù)據(jù)科學(xué)家)量身定制的。這里澄清一下,機(jī)器學(xué)習(xí)工程師的核心職責(zé)是將外部訓(xùn)練好的模型實(shí)際融入到客戶應(yīng)用程序中執(zhí)行更精細(xì)的任務(wù),并對(duì)建立和訓(xùn)練基于數(shù)據(jù)科學(xué)規(guī)范的模型的過(guò)程進(jìn)行監(jiān)督。本書討論如何選擇具體的工具。如果對(duì)機(jī)器學(xué)習(xí)解決方案的實(shí)際生產(chǎn)沒(méi)有多大興趣,這本書可能不是最理想的參考。它并不會(huì)展示前沿的數(shù)據(jù)科學(xué)技術(shù),不過(guò)會(huì)教你如何開始利用ML.NET團(tuán)隊(duì)多年來(lái)一直在做的事情在.NET中整合簡(jiǎn)單而有效的機(jī)器學(xué)習(xí)解決方案。本書的組織方式本書分為三部分。第1章~第3章對(duì)ML.NET庫(kù)進(jìn)行基礎(chǔ)性的概述。第4章~第10章概述如何對(duì)常見問(wèn)題進(jìn)行數(shù)據(jù)處理、訓(xùn)練和評(píng)估等專門任務(wù)。這些問(wèn)題包括回歸、分類、排名和異常檢測(cè)等。第11章~第13章專門討論所有淺層學(xué)習(xí)任務(wù)都不合適的場(chǎng)景下可能需要用到的神經(jīng)網(wǎng)絡(luò)。此外還要概述神經(jīng)網(wǎng)絡(luò),提供一個(gè)同時(shí)使用商業(yè)化Azure認(rèn)知服務(wù)和手工打造的定制Keras網(wǎng)絡(luò)的護(hù)照識(shí)別的例子。最后,附錄要討論模型的可解釋性。系統(tǒng)需求要想完成本書的練習(xí),需要準(zhǔn)備好以下軟硬件:一臺(tái)運(yùn)行Windows 10/11,Linux或macOS的計(jì)算機(jī)任意版本的Visual Studio 2019/2021或者Visual Studio Code接入互聯(lián)網(wǎng),以便下載軟件和本書示例文件代碼示例書中所有代碼(包括可能的勘誤和補(bǔ)充內(nèi)容)都可以通過(guò)以下網(wǎng)址獲得:https://MicrosoftPressStore.com/ProgrammingMLNET/downloads
作者簡(jiǎn)介
迪諾·埃斯波西托(Dino Esposito)Crionet首席架構(gòu)師兼聯(lián)合創(chuàng)始人,為專業(yè)體育機(jī)構(gòu)提供創(chuàng)新軟件和服務(wù)。16屆微軟最有價(jià)值專家,出版著作超過(guò)20部。
弗朗西斯科·埃斯波西托(Francesco Esposito)數(shù)學(xué)高手,精通高等數(shù)學(xué)與數(shù)據(jù)科學(xué),《機(jī)器學(xué)習(xí)導(dǎo)論》合著者。目前服務(wù)于Crionet,擔(dān)任工程與數(shù)學(xué)總監(jiān)。連續(xù)創(chuàng)業(yè)者,先后創(chuàng)辦了Youbiquitous和KBMS Data Force。
第1章人工智能軟件 001第2章 透視ML.NET架構(gòu) 011第3章 ML.NET基礎(chǔ) 033第4章 預(yù)測(cè)任務(wù) 055第5章 分類任務(wù) 091第6章 聚類任務(wù) 125第7章 異常檢查任務(wù) 149第8章 預(yù)測(cè)任務(wù) 177第9章 推薦任務(wù) 199第10章 圖像分類任務(wù) 219第11章 神經(jīng)網(wǎng)絡(luò)概述 237第12章 用于識(shí)別護(hù)照的神經(jīng)網(wǎng)絡(luò) 255附錄 模型的可解釋性 271
詳細(xì)目錄第1章 人工智能軟件 0011.1 軟件的源起 0021.1.1 計(jì)算機(jī)的形式化 0021.1.2 計(jì)算機(jī)工程設(shè)計(jì) 0031.1.3 人工智能的誕生 0041.1.4 作為副作用的軟件 0041.2 軟件在今天的作用 0051.2.1 自動(dòng)化任務(wù) 0061.2.2 反映現(xiàn)實(shí)世界 0071.2.3 賦能用戶 0081.3 人工智能如同軟件 008第2章 透視ML.NET架構(gòu) 0112.1 Python與機(jī)器學(xué)習(xí) 0122.1.1 Python為什么在機(jī)器學(xué)習(xí)中如此受歡迎 0122.1.2 Python機(jī)器學(xué)習(xí)庫(kù)的分類 0132.1.3 Python模型頂部的端到端方案 0162.2 ML.NET概述 0172.2.1 ML.NET中的學(xué)習(xí)管道 0182.2.2 模型訓(xùn)練執(zhí)行摘要 0242.3 使用訓(xùn)練好的模型 0282.3.1 使模型可從外部調(diào)用 0292.3.2 其他部署場(chǎng)景 0302.3.3 從數(shù)據(jù)科學(xué)到編程 0302.4 小結(jié) 031第3章 ML.NET基礎(chǔ) 0333.1 通往數(shù)據(jù)工程 0333.1.1 數(shù)據(jù)科學(xué)家的角色 0343.1.2 數(shù)據(jù)工程師的角色 0353.1.3 機(jī)器學(xué)習(xí)工程師的角色 0363.2 從什么數(shù)據(jù)開始 0373.2.1 理解可用的數(shù)據(jù) 0373.2.2 構(gòu)建數(shù)據(jù)處理管道 0403.3 訓(xùn)練步驟 0433.3.1 選擇算法 0443.3.2 衡量算法的實(shí)際價(jià)值 0453.3.3 計(jì)劃測(cè)試階段 0463.3.4 關(guān)于指標(biāo) 0473.4 在客戶端應(yīng)用程序中使用模型 0483.4.1 獲取模型文件 0493.4.2 完整項(xiàng)目 0493.4.3 預(yù)測(cè)打車費(fèi)用 0503.4.4 可伸縮性的考慮 0523.4.5 設(shè)計(jì)恰當(dāng)?shù)挠脩艚缑?0533.5 小結(jié) 054第4章 預(yù)測(cè)任務(wù) 0554.1 管道和評(píng)估器鏈 0564.1.1 數(shù)據(jù)視圖 0564.1.2 轉(zhuǎn)換器 0574.1.3 估算器 0584.1.4 管道 0594.2 回歸ML任務(wù) 0594.2.1 ML任務(wù)的常規(guī)方面 0604.2.2 支持的回歸算法 0604.2.3 支持的校驗(yàn)技術(shù) 0634.3 使用回歸任務(wù) 0664.3.1 可用的訓(xùn)練數(shù)據(jù) 0664.3.2 特征工程 0714.3.3 訪問(wèn)數(shù)據(jù)庫(kù)內(nèi)容 0744.3.4 合成訓(xùn)練管道 0774.4 機(jī)器學(xué)習(xí)深入思考 0874.4.1 簡(jiǎn)單線性回歸 0874.4.2 非線性回歸 0884.5 小結(jié) 089第5章 分類任務(wù) 0915.1 二分類機(jī)器學(xué)習(xí)任務(wù) 0915.1.1 支持的算法 0925.1.2 支持的驗(yàn)證技術(shù) 0945.2 情感分析的二分類 0945.2.1 了解可用的訓(xùn)練數(shù)據(jù) 0945.2.2 特征工程 0985.2.3 合成訓(xùn)練管道 1015.3 多分類ML任務(wù) 1065.4 使用多分類任務(wù) 1105.4.1 了解可用的數(shù)據(jù) 1105.4.2 合成訓(xùn)練管道 1135.5 機(jī)器學(xué)習(xí)深入思考 1215.5.1 分類的多面性 1215.5.2 情感分析的另一個(gè)視角 1225.6 小結(jié) 123第6章 聚類任務(wù) 1256.1 聚類ML任務(wù) 1256.1.1 無(wú)監(jiān)督學(xué)習(xí) 1266.1.2 了解可用的訓(xùn)練數(shù)據(jù) 1266.1.3 特征工程 1316.1.4 聚類算法 1326.1.5 合成訓(xùn)練管道 1376.1.6 設(shè)置客戶端應(yīng)用程序 1396.2 機(jī)器學(xué)習(xí)深入思考 1436.2.1 第一步始終是聚類分析 1446.2.2 數(shù)據(jù)集的無(wú)監(jiān)督縮減 1456.3 小結(jié) 147第7章 異常檢查任務(wù) 1497.1 什么是異常 1497.2 檢查異常情況的常規(guī)方法 1507.2.1 時(shí)間序列數(shù)據(jù) 1507.2.2 統(tǒng)計(jì)技術(shù) 1537.2.3 機(jī)器學(xué)習(xí)方法 1547.3 異常檢查ML任務(wù) 1577.3.1 了解可用的訓(xùn)練數(shù)據(jù) 1577.3.2 合并訓(xùn)練管道 1607.3.3 設(shè)置客戶端應(yīng)用程序 1677.4 機(jī)器學(xué)習(xí)深入思考 1717.4.1 預(yù)測(cè)性維護(hù) 1727.4.2 金融詐騙 1747.5 小結(jié) 175第8章 預(yù)測(cè)任務(wù) 1778.1 預(yù)測(cè)未來(lái) 1778.1.1 簡(jiǎn)單預(yù)測(cè)方法 1788.1.2 預(yù)測(cè)的數(shù)學(xué)基礎(chǔ) 1788.1.3 常見的分解算法 1808.1.4 SSA算法 1818.2 預(yù)測(cè)ML任務(wù) 1838.2.1 了解可用的數(shù)據(jù) 1838.2.2 合成訓(xùn)練管道 1858.2.3 設(shè)置客戶端應(yīng)用程序 1908.3 機(jī)器學(xué)習(xí)深入思考 1938.3.1 不是公園里的隨機(jī)漫步 1948.3.2 時(shí)間序列的其他方法 1948.3.3 電力生產(chǎn)預(yù)測(cè) 1958.4 小結(jié) 198第9章 推薦任務(wù) 1999.1 深入信息檢索系統(tǒng) 2009.1.1 排名的基本藝術(shù) 2019.1.2 推薦的靈活藝術(shù) 2019.1.3 協(xié)同過(guò)濾的精妙藝術(shù) 2039.2 ML推薦任務(wù) 2049.2.1 了解可用的數(shù)據(jù) 2049.2.2 合成訓(xùn)練管道 2089.2.3 設(shè)置客戶端應(yīng)用程序 2129.3 機(jī)器學(xué)習(xí)深入思考 2159.3.1 如果喜歡奈飛 2159.3.2 如果你不喜歡奈飛 2169.4 小結(jié) 217第10章 圖像分類任務(wù) 21910.1 遷移學(xué)習(xí) 22010.1.1 流行的圖像處理神經(jīng)網(wǎng)絡(luò) 22010.1.2 其他圖像神經(jīng)網(wǎng)絡(luò) 22010.2 通過(guò)合成進(jìn)行遷移學(xué)習(xí) 22110.2.1 ML.NET中的遷移學(xué)習(xí)模式 22110.2.2 新的圖像分類器的總體目標(biāo) 22210.2.3 了解可用的數(shù)據(jù) 22310.2.4 合成訓(xùn)練管道 22610.2.5 設(shè)置客戶端應(yīng)用程序 22810.3 ML圖像分類任務(wù) 23010.3.1 圖像分類API 23110.3.2 使用圖像分類API 23210.4 機(jī)器學(xué)習(xí)深入思考 23310.4.1 人腦的魔法 23310.4.2 人工打造的神經(jīng)網(wǎng)絡(luò) 23410.4.3 重新訓(xùn)練 23510.5 小結(jié) 235第11章 神經(jīng)網(wǎng)絡(luò)概述 23711.1 前饋神經(jīng)網(wǎng)絡(luò) 23711.1.1 人工神經(jīng)元 23811.1.2 網(wǎng)絡(luò)的層級(jí) 24011.1.3 Logistic神經(jīng)元 24111.1.4 訓(xùn)練神經(jīng)網(wǎng)絡(luò) 24311.2 更復(fù)雜的神經(jīng)網(wǎng)絡(luò) 24611.2.1 有狀態(tài)神經(jīng)網(wǎng)絡(luò) 24611.2.2 卷積神經(jīng)網(wǎng)絡(luò) 24911.2.3 自動(dòng)編碼器 25211.3 小結(jié) 253第12章 用于識(shí)別護(hù)照的神經(jīng)網(wǎng)絡(luò) 25512.1 使用Azure認(rèn)知服務(wù) 25512.1.1 問(wèn)題的剖析和解決方案 25612.1.2 與ID表單識(shí)別器協(xié)同工作 25712.2 自己動(dòng)手打造神經(jīng)網(wǎng)絡(luò) 26112.2.1 神經(jīng)網(wǎng)絡(luò)的拓?fù)?26212.2.2 訓(xùn)練時(shí)的麻煩 26712.3 機(jī)器學(xué)習(xí)深入思考 26812.3.1 商品和垂直解決方案 26912.3.2 什么時(shí)候只能使用定制解決方案 26912.4 小結(jié) 270附錄 模型的可解釋性 271