産品特色
編輯推薦
適讀人群 :本書將理論和代碼相結閤,幫助讀者更好地進入深度學習領域,適閤任何對深度學習感興趣的人。 1 作者本身也是從小白開始入門深度學習的,無論從書中內容,還是講解思路,以及語言風格,均適閤你從零開始進入深度學習這個充滿魔力的世界。
2 實例簡單而不簡約,用到瞭生成對抗網絡和注意力機製等目前相對前沿的深度學習技術。
3 雖然是一本入門教程,但是對原理的講述也不含糊,清晰易懂,讓讀者能知其然且知其所以然。
內容簡介
深度學習如今已經成為瞭科技領域*炙手可熱的技術,在本書中,我們將幫助你入門深度學習的領域。本書將從人工智能的介紹入手,瞭解機器學習和深度學習的基礎理論,並學習如何用PyTorch框架對模型進行搭建。通過閱讀本書,你將會學習到機器學習中的綫性迴歸和logistic迴歸,深度學習的優化方法,多層全連接神經網絡,捲積神經網絡,循環神經網絡以及生成對抗網絡,同時從零開始對PyTorch進行學習,瞭解PyTorch基礎及如何用其進行模型的搭建,*後通過實戰瞭解*前沿的研究成果和PyTorch在實際項目中的應用。
作者簡介
廖星宇,目前就讀於中國科學技術大學應用數學係,獲得國傢一等奬學金。在個人博客、知乎等平颱上發布多篇關於深度學習的文章,具有一定的閱讀量和人氣。
目錄
第1 章深度學習介紹1
1.1 人工智能. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 數據挖掘、機器學習與深度學習. . . . . . . . . . . . . . . . . . . . . . . 2
1.2.1 數據挖掘. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2 機器學習. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.3 深度學習. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 學習資源與建議. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
第2 章深度學習框架11
2.1 深度學習框架介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 PyTorch 介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.1 什麼是PyTorch . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2 為何要使用PyTorch . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3 配置PyTorch 深度學習環境. . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.1 操作係統的選擇. . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.2 Python 開發環境的安裝. . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.3 PyTorch 的安裝. . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
第3 章多層全連接神經網絡24
3.1 熱身:PyTorch 基礎. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1.1 Tensor(張量) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1.2 Variable(變量) . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.1.3 Dataset(數據集) . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.1.4 nn.Module(模組) . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.1.5 torch.optim(優化) . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.1.6 模型的保存和加載. . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2 綫性模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.1 問題介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.2 一維綫性迴歸. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2.3 多維綫性迴歸. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2.4 一維綫性迴歸的代碼實現. . . . . . . . . . . . . . . . . . . . . . 35
3.2.5 多項式迴歸. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.3 分類問題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3.1 問題介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3.2 Logistic 起源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3.3 Logistic 分布. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3.4 二分類的Logistic 迴歸. . . . . . . . . . . . . . . . . . . . . . . . 43
3.3.5 模型的參數估計. . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.3.6 Logistic 迴歸的代碼實現. . . . . . . . . . . . . . . . . . . . . . . 45
3.4 簡單的多層全連接前嚮網絡. . . . . . . . . . . . . . . . . . . . . . . . . 49
3.4.1 模擬神經元. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.4.2 單層神經網絡的分類器. . . . . . . . . . . . . . . . . . . . . . . . 50
3.4.3 激活函數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.4.4 神經網絡的結構. . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.4.5 模型的錶示能力與容量. . . . . . . . . . . . . . . . . . . . . . . . 55
3.5 深度學習的基石:反嚮傳播算法. . . . . . . . . . . . . . . . . . . . . . . 57
3.5.1 鏈式法則. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.5.2 反嚮傳播算法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.5.3 Sigmoid 函數舉例. . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.6 各種優化算法的變式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.6.1 梯度下降法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.6.2 梯度下降法的變式. . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.7 處理數據和訓練模型的技巧. . . . . . . . . . . . . . . . . . . . . . . . . 64
3.7.1 數據預處理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.7.2 權重初始化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.7.3 防止過擬閤. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.8 多層全連接神經網絡實現MNIST 手寫數字分類. . . . . . . . . . . . . . 69
3.8.1 簡單的三層全連接神經網絡. . . . . . . . . . . . . . . . . . . . . 70
3.8.2 添加激活函數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.8.3 添加批標準化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.8.4 訓練網絡. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
第4 章捲積神經網絡76
4.1 主要任務及起源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.2 捲積神經網絡的原理和結構. . . . . . . . . . . . . . . . . . . . . . . . . 77
4.2.1 捲積層. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.2.2 池化層. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.2.3 全連接層. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.2.4 捲積神經網絡的基本形式. . . . . . . . . . . . . . . . . . . . . . 85
4.3 PyTorch 捲積模塊. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.3.1 捲積層. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.3.2 池化層. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
4.3.3 提取層結構. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.3.4 如何提取參數及自定義初始化. . . . . . . . . . . . . . . . . . . . 91
4.4 捲積神經網絡案例分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.4.1 LeNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.4.2 AlexNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.4.3 VGGNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.4.4 GoogLeNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.4.5 ResNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.5 再實現MNIST 手寫數字分類. . . . . . . . . . . . . . . . . . . . . . . . . 103
4.6 圖像增強的方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
4.7 實現cifar10 分類. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
第5 章循環神經網絡111
5.1 循環神經網絡. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
5.1.1 問題介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
5.1.2 循環神經網絡的基本結構. . . . . . . . . . . . . . . . . . . . . . 112
5.1.3 存在的問題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
5.2 循環神經網絡的變式:LSTM 與GRU . . . . . . . . . . . . . . . . . . . . 116
5.2.1 LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
5.2.2 GRU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.2.3 收斂性問題. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.3 循環神經網絡的PyTorch 實現. . . . . . . . . . . . . . . . . . . . . . . . 122
5.3.1 PyTorch 的循環網絡模塊. . . . . . . . . . . . . . . . . . . . . . . 122
5.3.2 實例介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
5.4 自然語言處理的應用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
5.4.1 詞嵌入. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
5.4.2 詞嵌入的PyTorch 實現. . . . . . . . . . . . . . . . . . . . . . . . 133
5.4.3 N Gram 模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
5.4.4 單詞預測的PyTorch 實現. . . . . . . . . . . . . . . . . . . . . . . 134
5.4.5 詞性判斷. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
5.4.6 詞性判斷的PyTorch 實現. . . . . . . . . . . . . . . . . . . . . . . 137
5.5 循環神經網絡的更多應用. . . . . . . . . . . . . . . . . . . . . . . . . . . 140
5.5.1 Many to one . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
5.5.2 Many to Many(shorter) . . . . . . . . . . . . . . . . . . . . . . . 141
5.5.3 Seq2seq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
5.5.4 CNN+RNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
第6 章生成對抗網絡144
6.1 生成模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
6.1.1 自動編碼器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
6.1.2 變分自動編碼器. . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
6.2 生成對抗網絡. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
6.2.1 何為生成對抗網絡. . . . . . . . . . . . . . . . . . . . . . . . . . 153
6.2.2 生成對抗網絡的數學原理. . . . . . . . . . . . . . . . . . . . . . 160
6.3 Improving GAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
6.3.1 Wasserstein GAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
6.3.2 Improving WGAN . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
6.4 應用介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
6.4.1 Conditional GAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
6.4.2 Cycle GAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
第7 章深度學習實戰173
7.1 實例一――貓狗大戰:運用預訓練捲積神經網絡進行特徵提取與預測. 173
7.1.1 背景介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
7.1.2 原理分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
7.1.3 代碼實現. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
7.1.4 總結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
7.2 實例二――Deep Dream:探索捲積神經網絡眼中的世界. . . . . . . . . 183
7.2.1 原理介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
7.2.2 預備知識:backward . . . . . . . . . . . . . . . . . . . . . . . . . 185
7.2.3 代碼實現. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
7.2.4 總結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
7.3 實例三――Neural-Style:使用PyTorch 進行風格遷移. . . . . . . . . . . 196
7.3.1 背景介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
7.3.2 原理分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
7.3.3 代碼實現. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
7.3.4 總結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
7.4 實例四――Seq2seq:通過RNN 實現簡單的Neural Machine Translation . 205
7.4.1 背景介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
7.4.2 原理分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
7.4.3 代碼實現. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
7.4.4 總結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
算法的脈絡,智能的呼吸:開啓你的數據科學探索之旅 在這場席捲全球的科技浪潮中,數據科學以其顛覆性的力量,重塑著我們認知世界、改造世界的方式。它不再是實驗室裏的抽象理論,而是滲透進我們生活的方方麵麵,從精準的醫療診斷到智能的交通係統,從個性化的推薦算法到前沿的科學研究,無處不閃耀著數據科學的光芒。如果你也渴望在這股浪潮中,找到屬於自己的位置,理解那些驅動智能運行的深層邏輯,那麼,一本能夠為你鋪就堅實基石的讀物,將是你最得力的夥伴。 本書並非直接教授你某個特定框架的精巧運用,而是將目光投嚮那些更為根本、更為普適的原理。我們將深入探索數據科學的核心驅動力——算法。算法,是計算機解決問題的步驟和指令的集閤,是邏輯思維的具象化,是智慧的火種。理解算法,就像掌握瞭打開數字世界寶藏的金鑰匙,讓你能夠從海量數據中提煉齣有價值的信息,構建齣能夠學習、推理、甚至創造的智能係統。 第一章:邏輯的基石——算法思維的孕育 我們將從算法最純粹的形態開始,剝離技術的錶象,直擊思維的核心。你將學習如何將一個復雜的問題分解為一係列可執行的步驟,如何用清晰、嚴謹的邏輯來描述解決問題的過程。這不僅僅是編程的準備,更是培養一種係統性、條理性解決問題的能力。我們將通過一些經典的算法問題,例如排序、查找等,來讓你體會算法設計的樂趣與挑戰。通過分析不同算法的優劣,你將初步建立起對效率、復雜度的初步認知,為後續更深入的學習打下堅實的基礎。這一章,將是培養你成為一名優秀算法工程師的起點,讓你在麵對任何問題時,都能以一種“算法化”的思維去審視和解決。 第二章:數據的語言——變量、結構與轉換的藝術 數據是算法的原材料,而數據的組織和處理,則是算法得以施展的舞颱。本章將帶你走進數據的世界,學習如何有效地錶示和存儲數據。你將深入理解變量的本質,掌握不同數據類型的特性及其應用場景。我們將探討如何設計閤理的數據結構,以便算法能夠高效地訪問和操作數據。從最基礎的數組、鏈錶,到更復雜的樹、圖,我們將一一剖析它們的設計理念和適用範圍。更重要的是,我們將學習數據轉換的藝術:如何對原始數據進行清洗、規範化、特徵提取等預處理操作,使其更適閤算法的分析。這個過程,就像一位雕塑傢,將粗糙的石料精心打磨,最終呈現齣完美的藝術品。你將學會如何用代碼優雅地完成這些數據魔法,為算法的“盛宴”準備好最豐盛的“食材”。 第三章:數學的韻律——綫性代數與概率論的交響 在數據科學的殿堂裏,數學是不可或缺的語言。特彆是綫性代數和概率論,它們如同兩根支柱,支撐起無數高級算法的大廈。本章將以一種直觀易懂的方式,為你揭示這些數學概念在數據科學中的實際應用。你將理解嚮量和矩陣如何成為描述數據和模型參數的強大工具,學習矩陣運算在數據變換、降維等任務中的核心作用。同時,概率論的魔力也將展現在你眼前:你將學習如何量化不確定性,理解隨機變量、概率分布的意義,以及它們如何幫助我們理解數據的生成過程,評估模型的置信度。我們不會僅僅停留在公式的推導,而是強調這些數學工具如何幫助我們理解數據模式、建立模型、做齣預測。通過本章的學習,你將能夠更深刻地理解那些看似神秘的算法背後的數學原理,為更高級的學習做好充足的準備。 第四章:優化的力量——從梯度下降到模型訓練的精進之路 模型的構建離不開優化,而優化則離不開對數學原理的深入理解。本章將聚焦於“優化”這一核心概念,它是讓模型“學習”的關鍵。我們將從最基礎的優化算法——梯度下降開始,詳細解析其工作原理,理解如何通過迭代的方式,一步步逼近最優解。你將瞭解到不同類型的梯度下降算法,如批量梯度下降、隨機梯度下降及其變種,以及它們各自的優缺點和適用場景。同時,我們還會探討損失函數的設計,它定義瞭我們衡量模型“好壞”的標準,以及如何通過選擇閤適的損失函數來指導模型的訓練方嚮。這一章,將讓你明白,訓練一個強大的模型,並非一蹴而就,而是需要精妙的優化策略和對數學原理的精準運用。你將掌握如何調整參數、選擇算法,讓你的模型在海量數據中不斷“成長”,達到預期的性能。 第五章:決策的藝術——分類與迴歸的策略 數據科學的應用場景韆姿百態,而其中最為常見的任務便是分類與迴歸。本章將深入探討這兩大類問題的解決之道。你將學習如何構建模型來區分不同的類彆,例如識彆郵件是垃圾郵件還是正常郵件,或者預測一張圖片是貓還是狗。我們將介紹多種經典的分類算法,如邏輯迴歸、支持嚮量機、決策樹等,並分析它們的工作原理、優缺點以及適用範圍。同樣,對於預測連續數值的任務,如預測房價、股票價格等,我們也將提供深入的講解。你將學習綫性迴歸、多項式迴歸等方法,理解如何從數據中捕捉趨勢並進行精準預測。通過本章的學習,你將掌握構建和評估分類與迴歸模型的關鍵技術,為解決實際問題提供強大的工具集。 第六章:模式的挖掘——聚類與降維的洞察力 在海量數據中隱藏著無數有趣的模式和關聯,而聚類與降維技術,正是幫助我們發現這些隱藏寶藏的利器。本章將帶你探索無監督學習的奧秘。你將學習如何將相似的數據點自動歸類,發現數據內在的群體結構,例如將用戶劃分為不同的消費群體,或者將新聞文章按照主題進行分組。我們將介紹K-Means、層次聚類等經典聚類算法,並分析它們的適用場景。同時,你還將學習如何通過降維技術,將高維度的復雜數據“壓縮”到較低的維度,同時盡可能保留原始數據的重要信息。這有助於我們可視化數據、去除冗餘特徵、加速模型訓練。我們將深入講解主成分分析(PCA)、t-SNE等常用的降維方法,讓你能夠從紛繁復雜的數據中,提煉齣最本質的洞察。 第七章:模型的評估與改進——通往卓越的迭代之路 構建模型隻是第一步,如何判斷模型的優劣,並不斷對其進行改進,纔是通往卓越的關鍵。本章將聚焦於模型評估與改進的策略。你將學習各種評估指標,如準確率、精確率、召迴率、F1分數、均方根誤差等,理解它們各自的含義以及如何根據具體任務選擇閤適的指標。我們還將深入探討過擬閤與欠擬閤的挑戰,並介紹交叉驗證、正則化等技術來解決這些問題。你將學會如何係統地分析模型的錶現,找齣性能瓶頸,並采取有效的措施進行調優。這個過程,是一個不斷嘗試、反饋、優化的迭代過程,最終讓你能夠構建齣魯棒、泛化能力強的模型。 第八章:數據的可視化——讓數字“說話” 再精妙的算法,再深刻的洞察,如果不能清晰地傳達給他人,其價值將大打摺扣。數據可視化,就是將抽象的數字轉化為直觀的圖錶,讓數據“說話”,讓信息一目瞭然。本章將帶你掌握數據可視化的基本原則和常用工具。你將學習如何選擇閤適的圖錶類型來展示不同的數據關係,如摺綫圖、柱狀圖、散點圖、熱力圖等。我們將探討如何設計清晰、美觀的圖錶,突齣關鍵信息,避免誤導。通過可視化,你不僅能夠更好地理解數據,也能夠更有效地與他人溝通你的發現和見解。 第九章:從理論到實踐——案例解析與思考 理論的海洋最終需要實踐的航船來抵達彼岸。本章將通過一係列精心設計的案例,將前麵所學的知識融會貫通。我們將分析真實世界中的數據科學問題,從數據收集、預處理,到模型選擇、訓練、評估,全程貫穿我們所探討的算法和技術。這些案例將覆蓋不同的應用領域,例如推薦係統、圖像識彆、自然語言處理的初步探索等。通過對這些案例的深入解析,你將看到算法如何在實際場景中發揮作用,並學會如何將理論知識轉化為解決實際問題的能力。這不僅僅是簡單的代碼堆砌,而是對整個數據科學流程的全麵體驗,培養你獨立解決問題的信心和能力。 本書旨在為你提供一個全麵、係統的算法思維和數據科學基礎。我們相信,理解算法的內在邏輯,掌握數學的嚴謹錶達,並具備用代碼實現和優化的能力,將是你在這場數據驅動的變革中,走得更遠、更穩的關鍵。拿起這本書,跟隨我們一起,揭開智能的奧秘,感受數據流動的脈絡,開啓屬於你自己的數據科學探索之旅!