近年來(lái)機(jī)器學(xué)習(xí)取得了長(zhǎng)足的進(jìn)步。深度學(xué)習(xí)系統(tǒng)使得一些以往不可能實(shí)現(xiàn)的智能應(yīng)用成為現(xiàn)實(shí),推動(dòng)了圖像識(shí)別和自然語(yǔ)言處理的巨大變革,也成功識(shí)別出了數(shù)據(jù)中的復(fù)雜模式。Keras深度學(xué)習(xí)庫(kù)為使用R語(yǔ)言的數(shù)據(jù)科學(xué)家和開(kāi)發(fā)者提供了處理深度學(xué)習(xí)任務(wù)的工具集。
《R語(yǔ)言深度學(xué)習(xí)》基于強(qiáng)大的Keras庫(kù)及其R語(yǔ)言接口介紹了深度學(xué)習(xí)。本書(shū)源于Keras之父、Google人工智能研究員Fran.ois Chollet基于Python編寫(xiě)的《Python深度學(xué)習(xí)》一書(shū),由RStudio創(chuàng)始人J.J.Allaire修改為R語(yǔ)言版本,并采用直觀的解釋和實(shí)際的例子幫助讀者構(gòu)建對(duì)深度學(xué)習(xí)的理解。讀者可以針對(duì)計(jì)算機(jī)視覺(jué)、自然語(yǔ)言處理和生成式模型領(lǐng)域的R語(yǔ)言應(yīng)用加以實(shí)踐。
《R語(yǔ)言深度學(xué)習(xí)》包含如下內(nèi)容:深度學(xué)習(xí)原理入門;深度學(xué)習(xí)環(huán)境設(shè)置;圖像分類與生成;基于文本和序列的深度學(xué)習(xí)。
閱讀本書(shū)需要具備R語(yǔ)言編程能力,不需要有機(jī)器學(xué)習(xí)或深度學(xué)習(xí)的經(jīng)驗(yàn)。
適讀人群 :具有 R語(yǔ)言經(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.從零開(kāi)始,淺顯易懂,30多個(gè)代碼示例輕松助力從入門到實(shí)戰(zhàn)。
3.閱讀本書(shū)只需要具備高中水平的數(shù)學(xué)知識(shí),不需要機(jī)器學(xué)習(xí)或深度學(xué)習(xí)的經(jīng)驗(yàn)。
4.多為業(yè)內(nèi)知名專家推薦;提供可免費(fèi)下載的源代碼。
你在拿起本書(shū)時(shí)可能就會(huì)意識(shí)到,近幾年深度學(xué)習(xí)在人工智能領(lǐng)域所代表的非凡進(jìn)步。在短短的5年時(shí)間里,圖像識(shí)別和語(yǔ)音轉(zhuǎn)錄已經(jīng)從幾乎無(wú)法使用發(fā)展到超越人類的水平。
這種突如其來(lái)的進(jìn)步所帶來(lái)的影響幾乎波及每一個(gè)行業(yè)。但是為了將深度學(xué)習(xí)技術(shù)應(yīng)用于它能解決的每一個(gè)問(wèn)題,我們需要讓盡可能多的人可以使用它,包括非專家——那些不是研究人員或研究生的人。為了使深度學(xué)習(xí)充分發(fā)揮其潛力,我們需要從根本上使其大眾化。
當(dāng)我(Francois Chollet)在2015年3月發(fā)布 Keras深度學(xué)習(xí)框架的第一個(gè)版本時(shí),人工智能的大眾化并不是我想要的。我在機(jī)器學(xué)習(xí)方面做了好幾年的研究,并且建立了Keras來(lái)幫助我進(jìn)行自己的實(shí)驗(yàn)。但在2015年和2016年,成千上萬(wàn)的新人進(jìn)入了深度學(xué)習(xí)領(lǐng)域;他們中的許多人選擇了Keras,因?yàn)槟菚r(shí)它是最容易起步的框架(現(xiàn)在仍然如此)。當(dāng)我看到許多新人以意想不到的、強(qiáng)大的方式使用 Keras時(shí),我開(kāi)始深深地關(guān)注人工智能的可訪問(wèn)性和大眾化。我意識(shí)到,我們?cè)绞峭茝V這些技術(shù),它們就越有用、越有價(jià)值?稍L問(wèn)性很快成為Keras開(kāi)發(fā)中的一個(gè)明確目標(biāo),在短短的幾年里,Keras開(kāi)發(fā)人員社區(qū)在這方面取得了驚人的進(jìn)步。我們把深度學(xué)習(xí)交給了成千上萬(wàn)的人,他們反過(guò)來(lái)用深度學(xué)習(xí)解決了一些我們甚至直到最近才知道其存在的重要問(wèn)題。
你手中的《R語(yǔ)言深度學(xué)習(xí)》這本書(shū)能幫助盡可能多的人進(jìn)一步進(jìn)行深度學(xué)習(xí)。Keras總是需要一門配套課程來(lái)同時(shí)涵蓋深度學(xué)習(xí)的基礎(chǔ)知識(shí)、Keras使用模式和深度學(xué)習(xí)最佳實(shí)踐。《R語(yǔ)言深度學(xué)習(xí)》是我制作這樣一門課程的最大努力。我寫(xiě)作的重點(diǎn)是使深度學(xué)習(xí)背后的概念及其實(shí)現(xiàn)盡可能易于接受。這樣做并不需要減少任何內(nèi)容—我堅(jiān)信在深度學(xué)習(xí)中沒(méi)有什么難以理解的思想。我希望你能覺(jué)得《R語(yǔ)言深度學(xué)習(xí)》很有價(jià)值,并能基于它開(kāi)始構(gòu)建智能應(yīng)用并解決你所關(guān)注的問(wèn)題。
Francois Chollet
Fran?ois Chollet在Google加州山景城從事深度學(xué)習(xí)相關(guān)的工作。他是Keras深度學(xué)習(xí)庫(kù)的創(chuàng)建者,也是TensorFlow機(jī)器學(xué)習(xí)框架的貢獻(xiàn)者。他還從事深度學(xué)習(xí)研究工作,側(cè)重于計(jì)算機(jī)視覺(jué)和形式推理的機(jī)器學(xué)習(xí)應(yīng)用。他的論文已在該領(lǐng)域的重要會(huì)議上發(fā)表,包括計(jì)算機(jī)視覺(jué)與模式識(shí)別會(huì)議(CVPR)、神經(jīng)信息處理系統(tǒng)(NIPS)會(huì)議及分論壇、國(guó)際學(xué)習(xí)表征會(huì)議(ICLR)等。
J.J.Allaire是RStudio的創(chuàng)始人和RStudio集成開(kāi)發(fā)環(huán)境的創(chuàng)建者,也是TensorFlow和Keras的R接口的作者。
目 錄
原書(shū)前言
致謝
關(guān)于本書(shū)
第一部分 深度學(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 通過(guò)三張圖理解深度學(xué)習(xí)的原理
1.1.6 深度學(xué)習(xí)目前能做什么
1.1.7 不要相信短期炒作
1.1.8 人工智能的潛力
1.2 在深度學(xué)習(xí)之前:機(jī)器學(xué)習(xí)簡(jiǎn)史
1.2.1 概率建!
1.2.2 早期的神經(jīng)網(wǎng)絡(luò)
1.2.3 核方法
1.2.4 決策樹(shù)、隨機(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 為什么會(huì)有深度學(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 它會(huì)持續(xù)下去嗎
第 2章 在我們開(kāi)始前:構(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ò)程的關(guān)鍵
3.2 Keras簡(jiǎn)介
3.2.1 Keras、TensorFlow、Theano和 CNTK
3.2.2 安裝 Keras 46 3.2.3 使用 Keras進(jìn)行開(kāi)發(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 電影評(píng)論分類:二元分類示例
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)過(guò)訓(xùn)練的網(wǎng)絡(luò)生成對(duì)新數(shù)據(jù)的預(yù)測(cè)
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 生成對(duì)新數(shù)據(jù)的預(yù)測(cè)
3.5.6 處理標(biāo)簽和損失的不同方式
3.5.7 具有足夠大的中間層的重要性
3.5.8 進(jìn)一步的實(shí)驗(yàn)
3.5.9 小結(jié)
3.6 預(yù)測(cè)房?jī)r(jià):一個(gè)回歸的例子
3.6.1 波士頓住房?jī)r(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 無(wú)監(jiān)督學(xué)習(xí)
4.1.3 自監(jiān)督學(xué)習(xí)
4.1.4 強(qiáng)化學(xué)習(xí)
4.2 評(píng)估機(jī)器學(xué)習(xí)模型
4.2.1 訓(xùn)練、驗(yàn)證和測(cè)試集
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 過(guò)擬合和欠擬合
4.4.1 縮小網(wǎng)絡(luò)規(guī)!
4.4.2 添加權(quán)重正則化
4.4.3 添加 dropout
4.5 機(jī)器學(xué)習(xí)的通用工作流程
4.5.1 定義問(wèn)題并整合數(shù)據(jù)集
4.5.2 選擇衡量成功的標(biāo)準(zhǔn)
4.5.3 確定評(píng)估方案
4.5.4 準(zhǔn)備數(shù)據(jù)
4.5.5 開(kāi)發(fā)一個(gè)比基線更好的模型
4.5.6 擴(kuò)展:開(kāi)發(fā)一個(gè)過(guò)擬合的模型
4.5.7 正則化模型并調(diào)整超參數(shù)
4.6 本章小結(jié)
第二部分 深度學(xué)習(xí)實(shí)戰(zhàn)
第 5章 計(jì)算機(jī)視覺(jué)中的深度學(xué)習(xí)
5.1 卷積網(wǎng)絡(luò)概述
5.1.1 卷積操作
5.1.2 最大池化操作
5.2 在小型數(shù)據(jù)集上從頭開(kāi)始訓(xùn)練一個(gè)卷積網(wǎng)絡(luò)
5.2.1 深度學(xué)習(xí)與小數(shù)據(jù)問(wèn)題的相關(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í)過(guò)程
5.4.1 可視化中間激活
5.4.2 可視化卷積網(wǎng)絡(luò)過(guò)濾器
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