近年來機(jī)器學(xué)習(xí)取得了長足的進(jìn)步。深度學(xué)習(xí)系統(tǒng)使得一些以往不可能實(shí)現(xiàn)的智能應(yīng)用成為現(xiàn)實(shí),推動了圖像識別和自然語言處理的巨大變革,也成功識別出了數(shù)據(jù)中的復(fù)雜模式。Keras深度學(xué)習(xí)庫為使用R語言的數(shù)據(jù)科學(xué)家和開發(fā)者提供了處理深度學(xué)習(xí)任務(wù)的工具集。
《R語言深度學(xué)習(xí)》基于強(qiáng)大的Keras庫及其R語言接口介紹了深度學(xué)習(xí)。本書源于Keras之父、Google人工智能研究員Fran.ois Chollet基于Python編寫的《Python深度學(xué)習(xí)》一書,由RStudio創(chuàng)始人J.J.Allaire修改為R語言版本,并采用直觀的解釋和實(shí)際的例子幫助讀者構(gòu)建對深度學(xué)習(xí)的理解。讀者可以針對計(jì)算機(jī)視覺、自然語言處理和生成式模型領(lǐng)域的R語言應(yīng)用加以實(shí)踐。
《R語言深度學(xué)習(xí)》包含如下內(nèi)容:深度學(xué)習(xí)原理入門;深度學(xué)習(xí)環(huán)境設(shè)置;圖像分類與生成;基于文本和序列的深度學(xué)習(xí)。
閱讀本書需要具備R語言編程能力,不需要有機(jī)器學(xué)習(xí)或深度學(xué)習(xí)的經(jīng)驗(yàn)。
適讀人群 :具有 R語言經(jīng)驗(yàn)并希望學(xué)習(xí)機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的讀者,數(shù)據(jù)科學(xué)家,深度學(xué)習(xí)專家,高等院校人工智能、數(shù)據(jù)科學(xué)等專業(yè)學(xué)生
1.Keras之父、Google人工智能研究員Fran?ois Chollet和RStudio的創(chuàng)始人、首席執(zhí)行官J.J.Allaire聯(lián)袂奉獻(xiàn),深度學(xué)習(xí)經(jīng)典著作。
2.從零開始,淺顯易懂,30多個(gè)代碼示例輕松助力從入門到實(shí)戰(zhàn)。
3.閱讀本書只需要具備高中水平的數(shù)學(xué)知識,不需要機(jī)器學(xué)習(xí)或深度學(xué)習(xí)的經(jīng)驗(yàn)。
4.多為業(yè)內(nèi)知名專家推薦;提供可免費(fèi)下載的源代碼。
你在拿起本書時(shí)可能就會意識到,近幾年深度學(xué)習(xí)在人工智能領(lǐng)域所代表的非凡進(jìn)步。在短短的5年時(shí)間里,圖像識別和語音轉(zhuǎn)錄已經(jīng)從幾乎無法使用發(fā)展到超越人類的水平。
這種突如其來的進(jìn)步所帶來的影響幾乎波及每一個(gè)行業(yè)。但是為了將深度學(xué)習(xí)技術(shù)應(yīng)用于它能解決的每一個(gè)問題,我們需要讓盡可能多的人可以使用它,包括非專家——那些不是研究人員或研究生的人。為了使深度學(xué)習(xí)充分發(fā)揮其潛力,我們需要從根本上使其大眾化。
當(dāng)我(Francois Chollet)在2015年3月發(fā)布 Keras深度學(xué)習(xí)框架的第一個(gè)版本時(shí),人工智能的大眾化并不是我想要的。我在機(jī)器學(xué)習(xí)方面做了好幾年的研究,并且建立了Keras來幫助我進(jìn)行自己的實(shí)驗(yàn)。但在2015年和2016年,成千上萬的新人進(jìn)入了深度學(xué)習(xí)領(lǐng)域;他們中的許多人選擇了Keras,因?yàn)槟菚r(shí)它是最容易起步的框架(現(xiàn)在仍然如此)。當(dāng)我看到許多新人以意想不到的、強(qiáng)大的方式使用 Keras時(shí),我開始深深地關(guān)注人工智能的可訪問性和大眾化。我意識到,我們越是推廣這些技術(shù),它們就越有用、越有價(jià)值?稍L問性很快成為Keras開發(fā)中的一個(gè)明確目標(biāo),在短短的幾年里,Keras開發(fā)人員社區(qū)在這方面取得了驚人的進(jìn)步。我們把深度學(xué)習(xí)交給了成千上萬的人,他們反過來用深度學(xué)習(xí)解決了一些我們甚至直到最近才知道其存在的重要問題。
你手中的《R語言深度學(xué)習(xí)》這本書能幫助盡可能多的人進(jìn)一步進(jìn)行深度學(xué)習(xí)。Keras總是需要一門配套課程來同時(shí)涵蓋深度學(xué)習(xí)的基礎(chǔ)知識、Keras使用模式和深度學(xué)習(xí)最佳實(shí)踐!禦語言深度學(xué)習(xí)》是我制作這樣一門課程的最大努力。我寫作的重點(diǎn)是使深度學(xué)習(xí)背后的概念及其實(shí)現(xiàn)盡可能易于接受。這樣做并不需要減少任何內(nèi)容—我堅(jiān)信在深度學(xué)習(xí)中沒有什么難以理解的思想。我希望你能覺得《R語言深度學(xué)習(xí)》很有價(jià)值,并能基于它開始構(gòu)建智能應(yīng)用并解決你所關(guān)注的問題。
Francois Chollet
Fran?ois Chollet在Google加州山景城從事深度學(xué)習(xí)相關(guān)的工作。他是Keras深度學(xué)習(xí)庫的創(chuàng)建者,也是TensorFlow機(jī)器學(xué)習(xí)框架的貢獻(xiàn)者。他還從事深度學(xué)習(xí)研究工作,側(cè)重于計(jì)算機(jī)視覺和形式推理的機(jī)器學(xué)習(xí)應(yīng)用。他的論文已在該領(lǐng)域的重要會議上發(fā)表,包括計(jì)算機(jī)視覺與模式識別會議(CVPR)、神經(jīng)信息處理系統(tǒng)(NIPS)會議及分論壇、國際學(xué)習(xí)表征會議(ICLR)等。
J.J.Allaire是RStudio的創(chuàng)始人和RStudio集成開發(fā)環(huán)境的創(chuàng)建者,也是TensorFlow和Keras的R接口的作者。
目 錄
原書前言
致謝
關(guān)于本書
第一部分 深度學(xué)習(xí)基礎(chǔ)
第 1章 什么是深度學(xué)習(xí)
1.1 人工智能、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)
1.1.1 人工智能
1.1.2 機(jī)器學(xué)習(xí)
1.1.3 從數(shù)據(jù)中學(xué)習(xí)表述
1.1.4 深度學(xué)習(xí)的“深”
1.1.5 通過三張圖理解深度學(xué)習(xí)的原理
1.1.6 深度學(xué)習(xí)目前能做什么
1.1.7 不要相信短期炒作
1.1.8 人工智能的潛力
1.2 在深度學(xué)習(xí)之前:機(jī)器學(xué)習(xí)簡史
1.2.1 概率建!
1.2.2 早期的神經(jīng)網(wǎng)絡(luò)
1.2.3 核方法
1.2.4 決策樹、隨機(jī)森林、梯度提升機(jī)
1.2.5 回到神經(jīng)網(wǎng)絡(luò)
1.2.6 是什么讓深度學(xué)習(xí)與眾不同
1.2.7 現(xiàn)代機(jī)器學(xué)習(xí)發(fā)展
1.3 為什么會有深度學(xué)習(xí)?為什么是現(xiàn)在
1.3.1 硬件
1.3.2 數(shù)據(jù)
1.3.3 算法
1.3.4 新一輪投資潮
1.3.5 深度學(xué)習(xí)走向大眾
1.3.6 它會持續(xù)下去嗎
第 2章 在我們開始前:構(gòu)建神經(jīng)網(wǎng)絡(luò)的數(shù)學(xué)模塊
2.1 有關(guān)神經(jīng)網(wǎng)絡(luò)的第一印象
2.2 神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)表示
2.2.1 標(biāo)量(零維張量)
2.2.2 向量(一維張量)
2.2.3 矩陣(二維張量)
2.2.4 三維張量和高維張量
2.2.5 關(guān)鍵屬性
2.2.6 在 R中使用張量
2.2.7 數(shù)據(jù)批次的概念
2.2.8 數(shù)據(jù)張量的真實(shí)示例
2.2.9 向量數(shù)據(jù)
2.2.10 時(shí)間序列數(shù)據(jù)或序列數(shù)據(jù)
2.2.11 圖像數(shù)據(jù)
2.2.12 視頻數(shù)據(jù)
2.3 神經(jīng)網(wǎng)絡(luò)的齒輪:張量運(yùn)算
2.3.1 逐元素運(yùn)算
2.3.2 包含不同維度張量的運(yùn)算
2.3.3 張量點(diǎn)積
2.3.4 張量重塑
2.3.5 張量運(yùn)算的幾何解釋
2.3.6 深度學(xué)習(xí)的幾何解釋
2.4 神經(jīng)網(wǎng)絡(luò)的引擎:基于梯度的優(yōu)化
2.4.1 什么是導(dǎo)數(shù)
2.4.2 張量運(yùn)算的導(dǎo)數(shù):梯度
2.4.3 隨機(jī)梯度下降
2.4.4 鏈?zhǔn)綄?dǎo)數(shù):后向傳播算法
2.5 回顧我們的第一個(gè)例子
2.6 本章小結(jié)
第 3章 神經(jīng)網(wǎng)絡(luò)入門
3.1 神經(jīng)網(wǎng)絡(luò)的剖析
3.1.1 層:深度學(xué)習(xí)的基石
3.1.2 模型:層網(wǎng)絡(luò)
3.1.3 損失函數(shù)和優(yōu)化器:配置學(xué)習(xí)過程的關(guān)鍵
3.2 Keras簡介
3.2.1 Keras、TensorFlow、Theano和 CNTK
3.2.2 安裝 Keras 46 3.2.3 使用 Keras進(jìn)行開發(fā):快速概述
3.3 建立深度學(xué)習(xí)工作站
3.3.1 讓 Keras運(yùn)行:兩個(gè)選項(xiàng)
3.3.2 在云中運(yùn)行深度學(xué)習(xí)任務(wù):優(yōu)點(diǎn)和缺點(diǎn)
3.3.3 什么是深度學(xué)習(xí)的最佳GPU
3.4 電影評論分類:二元分類示例
3.4.1 IMDB數(shù)據(jù)集
3.4.2 準(zhǔn)備數(shù)據(jù)
3.4.3 構(gòu)建網(wǎng)絡(luò)
3.4.4 方法驗(yàn)證
3.4.5 使用經(jīng)過訓(xùn)練的網(wǎng)絡(luò)生成對新數(shù)據(jù)的預(yù)測
3.4.6 進(jìn)一步的實(shí)驗(yàn)
3.4.7 小結(jié)
3.5 新聞專線分類:多類分類示例
3.5.1 Reuters數(shù)據(jù)集
3.5.2 準(zhǔn)備數(shù)據(jù)
3.5.3 構(gòu)建網(wǎng)絡(luò)
3.5.4 方法驗(yàn)證
3.5.5 生成對新數(shù)據(jù)的預(yù)測
3.5.6 處理標(biāo)簽和損失的不同方式
3.5.7 具有足夠大的中間層的重要性
3.5.8 進(jìn)一步的實(shí)驗(yàn)
3.5.9 小結(jié)
3.6 預(yù)測房價(jià):一個(gè)回歸的例子
3.6.1 波士頓住房價(jià)格數(shù)據(jù)集
3.6.2 準(zhǔn)備數(shù)據(jù)
3.6.3 構(gòu)建網(wǎng)絡(luò)
3.6.4 使用 K折驗(yàn)證
3.6.5 小結(jié)
3.7 本章小結(jié)
第 4章 機(jī)器學(xué)習(xí)基礎(chǔ)
4.1 機(jī)器學(xué)習(xí)的四個(gè)分支
4.1.1 監(jiān)督學(xué)習(xí)
4.1.2 無監(jiān)督學(xué)習(xí)
4.1.3 自監(jiān)督學(xué)習(xí)
4.1.4 強(qiáng)化學(xué)習(xí)
4.2 評估機(jī)器學(xué)習(xí)模型
4.2.1 訓(xùn)練、驗(yàn)證和測試集
4.2.2 要記住的事情
4.3 數(shù)據(jù)預(yù)處理、特征工程和特征學(xué)習(xí)
4.3.1 神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)預(yù)處理
4.3.2 特征工程
4.4 過擬合和欠擬合
4.4.1 縮小網(wǎng)絡(luò)規(guī)!
4.4.2 添加權(quán)重正則化
4.4.3 添加 dropout
4.5 機(jī)器學(xué)習(xí)的通用工作流程
4.5.1 定義問題并整合數(shù)據(jù)集
4.5.2 選擇衡量成功的標(biāo)準(zhǔn)
4.5.3 確定評估方案
4.5.4 準(zhǔn)備數(shù)據(jù)
4.5.5 開發(fā)一個(gè)比基線更好的模型
4.5.6 擴(kuò)展:開發(fā)一個(gè)過擬合的模型
4.5.7 正則化模型并調(diào)整超參數(shù)
4.6 本章小結(jié)
第二部分 深度學(xué)習(xí)實(shí)戰(zhàn)
第 5章 計(jì)算機(jī)視覺中的深度學(xué)習(xí)
5.1 卷積網(wǎng)絡(luò)概述
5.1.1 卷積操作
5.1.2 最大池化操作
5.2 在小型數(shù)據(jù)集上從頭開始訓(xùn)練一個(gè)卷積網(wǎng)絡(luò)
5.2.1 深度學(xué)習(xí)與小數(shù)據(jù)問題的相關(guān)性
5.2.2 下載數(shù)據(jù)
5.2.3 構(gòu)建網(wǎng)絡(luò)
5.2.4 數(shù)據(jù)預(yù)處理
5.2.5 使用數(shù)據(jù)擴(kuò)充
5.3 使用預(yù)訓(xùn)練的卷積網(wǎng)絡(luò)
5.3.1 特征提取
5.3.2 微調(diào)
5.3.3 小結(jié)
5.4 可視化卷積網(wǎng)絡(luò)學(xué)習(xí)過程
5.4.1 可視化中間激活
5.4.2 可視化卷積網(wǎng)絡(luò)過濾器
5.4.3 可視化類激活的熱圖
5.5 本章小結(jié)
第 6章 用于文本和序列數(shù)據(jù)的深度學(xué)習(xí)
6.1 使用文本數(shù)據(jù)
6.1.1 詞和字符的獨(dú)熱編碼
6.1.2 使用單詞嵌入
6.1.3 將其全部放在一起:從原始文本到單詞嵌入
6.1.4 小結(jié)
6.2 了解循環(huán)神經(jīng)網(wǎng)絡(luò)
6.2.1 Keras中的循環(huán)層
6.2.2 理解 LSTM 和 GRU 層
6.2.3 Keras中的一個(gè)具體的 LSTM例子
6.2.4 小結(jié)
6