本書從機(jī)器學(xué)習(xí)的基本原理開始講解,然后是神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí),最后講解卷積神經(jīng)網(wǎng)絡(luò)。本書在講解原理的基礎(chǔ)上,以MATLAB為開發(fā)工具和編程語言,將深度學(xué)習(xí)所涉及的原理均用MATLAB進(jìn)行仿真實(shí)踐,并將書中所有的實(shí)例以MATLAB為底層編程語言進(jìn)行編程和講解。
通過本書的閱讀,讀者可以學(xué)會(huì)神經(jīng)網(wǎng)絡(luò)和多層神經(jīng)網(wǎng)絡(luò)的原理,卷積和池化的含義,并可利用MATLAB進(jìn)行深度學(xué)習(xí)的研究和開發(fā)。
本書可用作高等院校人工智能課程或工程師培訓(xùn)的教材,也可供從事人工智能等領(lǐng)域研究和應(yīng)用的開發(fā)人員使用。
3.作者簡介
Serge Kruk博士,奧克蘭大學(xué)數(shù)學(xué)與統(tǒng)計(jì)系教授,曾是貝爾實(shí)驗(yàn)室資深研究員。具有多年的研究和工作經(jīng)驗(yàn),目前主要的研究方向?yàn)椋篴lgorithms for semidefinite optimization, scheduling, feasibility, and the related numerical linear algebra and analysis等
鄒偉 博士,?桶顒(chuàng)始人,研究方向?yàn)闄C(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘、計(jì)算幾何,致力于機(jī)器學(xué)習(xí)和深度學(xué)習(xí)在實(shí)際中的應(yīng)用;主持研發(fā)50多個(gè)人工智能領(lǐng)域工業(yè)級(jí)項(xiàng)目,并受邀在中國移動(dòng)、花旗銀行、中信集團(tuán)、中航信、烽火科技、京東方、完美世界等公司進(jìn)行了上百場(chǎng)講座和內(nèi)部培訓(xùn)。創(chuàng)立的?桶钆c國內(nèi)十多所高校建立了AI聯(lián)合實(shí)驗(yàn)室或?qū)嵱?xùn)基地;兼任天津大學(xué)創(chuàng)業(yè)導(dǎo)師、山東交通學(xué)院客座教授等。曾在多個(gè)在線平臺(tái)講授“機(jī)器學(xué)習(xí)”“深度學(xué)習(xí)”等課程,廣受網(wǎng)友好評(píng),累計(jì)學(xué)習(xí)人數(shù)超過百萬。
Serge Kruk博士將其幾十年來從事工業(yè)教學(xué)和咨詢的成果編寫成此書,本書通過使用Python編程優(yōu)化建模解決人工智能問題。這本書涵蓋了實(shí)際應(yīng)用中進(jìn)行創(chuàng)建和分析數(shù)學(xué)模型,如線性連續(xù)模型,非線性連續(xù)模型,純線性整數(shù)模型。本書重點(diǎn)在于 Python人工智能項(xiàng)目的模型創(chuàng)建和分析方面,而不是專注于理論;書中的每一個(gè)模型都被詳細(xì)地解釋和使用Python進(jìn)行編程編,使讀者可以更好的理解本書的內(nèi)容。
書中所有示例都是Python基于Google OR-Tools進(jìn)行編程,并提供所有示例的源代碼。
通過閱讀本書,你將學(xué)到:
構(gòu)建基本的基于Python的人工智能(AI)應(yīng)用程序
使用數(shù)學(xué)優(yōu)化方法和Google OR-Tools(優(yōu)化工具)套件
使用Python和Google OR-Tools創(chuàng)建多種類型的項(xiàng)目
譯者序
我們有幸見證了世界向信息化社會(huì)的轉(zhuǎn)變過程,我們從小就生活在這種變革中。個(gè)人計(jì)算機(jī)的發(fā)明打開了人類通向信息世界的大門,接著就是互聯(lián)網(wǎng)將計(jì)算機(jī)連接了起來,智能手機(jī)將人與人聯(lián)系了起來。現(xiàn)在,每個(gè)人都意識(shí)到人工智能的浪潮已經(jīng)到來。越來越多的智能服務(wù)將被發(fā)明出來,同時(shí)這也將把我們帶入一個(gè)新的時(shí)代。人工智能是引領(lǐng)這股智能浪潮的前沿技術(shù)。雖然它最終可能將其“寶座”移交給其他新技術(shù),但是目前它仍是各種人工智能新技術(shù)的重要基石。
人工智能現(xiàn)在如此流行,以至于關(guān)于它的資料隨處可見。然而適用于我們的資料并不多見,而這本書正是大家所需求的。這本書的目的是希望幫助大家在學(xué)習(xí)這個(gè)新知識(shí)的過程中不那么痛苦,同時(shí),本書中具體的開發(fā)實(shí)例講解,能夠幫助開發(fā)者避免走一些彎路。
本書介紹了關(guān)于實(shí)現(xiàn)數(shù)學(xué)模型優(yōu)化問題的技術(shù)和科學(xué)。關(guān)于優(yōu)化,它可以是任何的問題,但又可以歸結(jié)為一個(gè)問題,那就是:什么是最好的?例如:
從家到公司的最佳路線是什么?
什么是最優(yōu)的汽車生產(chǎn)方式,能夠使得利益最大化?
用什么方式將雜貨帶回家最好:紙袋還是塑料袋?
為我的孩子選擇哪個(gè)學(xué)校最好?
哪種燃料用于火箭的助推器最好?
芯片上晶體管的最佳位置在哪里?
NBA最優(yōu)的賽程如何安排?
這些問題相當(dāng)模糊,但可以通過多種方式進(jìn)行解釋。首先可以考慮一下:“最好的”對(duì)于我們而言,是意味著最快、最短、最愉快的騎行,最不崎嶇,還是最低的油耗?此外,這個(gè)問題還不夠完整,我們是步行,還是騎馬、開車或是滑雪?我們是獨(dú)自一人前往,還是伴隨著哭鬧的嬰兒?
為了幫助我們制定優(yōu)化問題的解決方案,數(shù)學(xué)家、理論家和實(shí)踐者根據(jù)我們構(gòu)建的問題建立起了一個(gè)框架,我們稱之為模型。模型的關(guān)鍵點(diǎn)在于它的目標(biāo)和它的約束條件。簡單地說,目標(biāo)是我們想要達(dá)到的,而約束是我們采用的方法中的阻力。如果我們重新構(gòu)建問題,用以更加明確地分析目標(biāo)和約束,我們便可以更加接近真實(shí)的模型。
這本書綜合了十年間的討論,以及在奧克蘭大學(xué)的建模入門課程(MOR242IntrotoOperationResearchModels)和研究生課程(APM568MathematicalModelinginIndustry)的成果。書中的每個(gè)模型都使用GoogleORTools在Python中演示,讀者可以按照書中的講解和代碼重新操作執(zhí)行。實(shí)際上,本書中提供的代碼是自動(dòng)提取、執(zhí)行的,輸出可以無需手動(dòng)干預(yù)地插入到文本,甚至圖表也是自動(dòng)生成的。
本書的目的是幫助讀者成為一名熟練的建模者。大家可以訪問網(wǎng)址https://github.com/sgkruk/ApressAI。這個(gè)網(wǎng)址提供了書中展示的所有代碼以及應(yīng)用于許多問題和變化的隨機(jī)生成器。各位可以將其用作個(gè)性化的作業(yè)生成器,它也可以被用作自學(xué)工具。
本書適合各類軟硬件工程師、測(cè)試人員閱讀,也適合用于人工智能培訓(xùn)、大學(xué)生創(chuàng)新創(chuàng)業(yè)實(shí)戰(zhàn)訓(xùn)練,以及程序員實(shí)力提升。
本書的出版得益于北京航空航天大學(xué)出版社的推薦以及相關(guān)專家學(xué)者的辛勤付出,在此一并表示感謝。
衷心祝愿您能擁抱人工智能時(shí)代,具備人工智能場(chǎng)景思維,進(jìn)而更好地服務(wù)他人,為社會(huì)創(chuàng)造更多的財(cái)富。
譯者
2021年3月
第1章概述/1
1.1本書面向哪些問題/3
1.2本書的特點(diǎn)/4
1.2.1運(yùn)行模型/5
1.2.2關(guān)于符號(hào)的解釋/6
1.3實(shí)踐中去學(xué)習(xí):兩棲動(dòng)物共存/7
第2章線性連續(xù)模型/17
2.1摻雜(Mixing)/20
2.1.1構(gòu)建模型/21
2.1.2變化量/24
2.1.3組合問題/26
2.2混合(Blending)/27
2.2.1構(gòu)建模型/29
2.2.2變化量/32
2.3項(xiàng)目管理/34
2.3.1構(gòu)建模型/35
2.3.2變化量/37
2.4多級(jí)模型/39
2.4.1問題實(shí)例/39
2.4.2構(gòu)建模型/42
2.4.3變化量/46
2.5模式分類/48
2.5.1構(gòu)建模型/50
2.5.2可執(zhí)行模型/51
第3章隱線性連續(xù)模型/53
3.1分段線性/56
3.1.1構(gòu)建模型/57
3.1.2變化量/61
3.2曲線擬合/65
3.2.1構(gòu)建模型/67
3.2.2變化量/71
3.3重新審視模式分類/72
3.3.1可執(zhí)行模型/73
第4章線性網(wǎng)絡(luò)模型/75
4.1最大流量/78
4.1.1構(gòu)建模型/78
4.1.2決策變量/79
4.1.3變化量/84
4.2最小成本流/85
4.2.1構(gòu)建模型/86
4.2.2變化量/89
4.3轉(zhuǎn)運(yùn)/90
4.3.1構(gòu)建模型/92
4.3.2變化量/94
4.4最快捷徑/95
4.4.1構(gòu)建模型/96
4.4.2選擇算法/99
4.4.3變化量/99
第5章經(jīng)典離散模型/105
5.1最小的集合數(shù)量/108
5.1.1構(gòu)建模型/109
5.1.2變化量/113
5.2集合填充/114
5.2.1構(gòu)建模型/115
5.2.2變化量/116
5.3裝箱/117
5.3.1構(gòu)建模型/118
5.4旅行推銷員/127
5.4.1構(gòu)建模型/128
5.4.2變化量/133
第6章經(jīng)典混合模型/137
6.1設(shè)施選址/139
6.1.1構(gòu)建模型/140
6.1.2變化量/144
6.2多商品流/144
6.2.1構(gòu)建模型/146
6.2.2變化量/148
6.2.3實(shí)例/150
6.3人員編制/151
6.3.1構(gòu)建模型/153
6.3.2變化量/156
6.4作業(yè)車間調(diào)度/157
6.4.1構(gòu)建模型/157
第7章先進(jìn)技術(shù)/163
7.1配料問題/165
7.1.1構(gòu)建模型/166
7.1.2預(yù)分配裁剪模式/172
7.2非凸問題相關(guān)技巧/176
7.2.1從n個(gè)變量中選擇k個(gè)非零變量/179
7.2.2從n個(gè)變量中選擇k個(gè)相鄰非零變量/181
7.2.3從n個(gè)約束條件中選擇k個(gè)條件/184
7.2.4大中取大和小中取小/189
7.3排班問題/191
7.3.1構(gòu)建模型/194
7.3.2變化量/199
7.4賽事時(shí)間表問題/199
7.4.1構(gòu)建模型/200
7.4.2變化量/209
7.5謎題問題/209
7.5.1偽象棋問題/210
7.5.2數(shù)獨(dú)謎題/214
7.5.3算式謎題:SendMoreMoney!/216
7.5.4邏輯謎題:LadiesandTigers/219
7.6Python中優(yōu)化工具M(jìn)PSolver快速參考/224