人工智能完整版ppt全套課件整本書電子教案最全教學(xué)教程_第1頁
人工智能完整版ppt全套課件整本書電子教案最全教學(xué)教程_第2頁
人工智能完整版ppt全套課件整本書電子教案最全教學(xué)教程_第3頁
人工智能完整版ppt全套課件整本書電子教案最全教學(xué)教程_第4頁
人工智能完整版ppt全套課件整本書電子教案最全教學(xué)教程_第5頁
已閱讀5頁,還剩703頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、人工智能的緣起授課人:目錄01什么是人工智能02人工智能的發(fā)展歷程03人工智能的特征及典型應(yīng)用PART 01什么是人工智能 當(dāng)你看到一個(gè)活潑可愛動(dòng)物的時(shí)候,不知道它的名字,你可以像圖(a)所示,拍一張它的圖片,利用動(dòng)物識(shí)別系統(tǒng)來解決你的疑惑。當(dāng)你每天拿起智能手機(jī)的時(shí)候,通過如圖(b)所示的刷臉?biāo)鼤?huì)自動(dòng)幫你解鎖。當(dāng)你進(jìn)入京東網(wǎng)站進(jìn)行購物時(shí),如圖(c)所示,你在第一時(shí)間就獲得了你喜歡的商品信息。又如,當(dāng)你看到掃地機(jī)器人、自動(dòng)駕駛汽車能減輕你的工作強(qiáng)度時(shí),你一定會(huì)感嘆科技的發(fā)展如此之快。然而,以上這些新技術(shù)的應(yīng)用,僅僅只是一個(gè)開始。在耳熟能詳新的信息技術(shù)飛速發(fā)展的今天,我們有時(shí)候很難預(yù)測十年、二十年

2、后我們的生活到底會(huì)發(fā)生哪些驚天動(dòng)地的變化。什么是人工智能那么,什么是人工智能呢? 現(xiàn)代的人工智能的起點(diǎn)公認(rèn)為是1956年的達(dá)特茅斯會(huì)議。在這次會(huì)議上,由麥卡斯、明斯基等人發(fā)起成立了一個(gè)獨(dú)立的人工智能研究學(xué)科,為后續(xù)人工智能的發(fā)展奠定了學(xué)科基礎(chǔ)。在達(dá)特茅斯會(huì)議的建議書中,對(duì)人工智能研究的預(yù)期目標(biāo)描述是:制造一臺(tái)機(jī)器,它可以模擬學(xué)習(xí)或者智能的所有方面,讓機(jī)器達(dá)到這樣的行為,即與人類做同樣的行為?!笔裁词侨斯ぶ悄?有關(guān)AI的常見定義有兩個(gè):一個(gè)是圖靈獎(jiǎng)獲得者、“人工智能之父”的美國教授馬文明斯基提出的,即“人工智能是一門科學(xué),是使機(jī)器做那些人需要通過智能來做的事情”;另一個(gè)定義是斯坦福大學(xué)的尼爾森教

3、授給出的:“人工智能是一門關(guān)于研究知識(shí)的表示、知識(shí)的獲取和知識(shí)的運(yùn)用的學(xué)科 ”。圖1.3 馬文明斯基教授(左)和尼爾森教授(右)什么是人工智能PART 02人工智能的發(fā)展歷程第一階段人工智能的萌芽期第二階段人工智能的啟動(dòng)期第三階段人工智能的消沉期第四階段人工智能的突破期第五階段人工智能的高速發(fā)展期人工智能發(fā)展的五個(gè)階段人工智能的發(fā)展歷程發(fā)展歷程圖人工智能的發(fā)展歷程PART 03人工智能的特征及典型應(yīng)用人工智能有哪些特征? 像人一樣思考。即它是有頭腦的機(jī)器,具有與人類思維相關(guān)的活動(dòng),諸如決策、問題求解和學(xué)習(xí)活動(dòng)等。 像人一樣行動(dòng)。即它能替代一些原來由人來執(zhí)行需要智能的技藝,甚至能完成比人更擅長的

4、事情。人工智能的特征及典型應(yīng)用 可見,人工智能所涉及的知識(shí)涵蓋數(shù)學(xué)、神經(jīng)科學(xué)、心理學(xué)、語言學(xué)、計(jì)算機(jī)工程和控制理論等多個(gè)方面。由此可見,人工智能包含了各學(xué)科的方方面面,但對(duì)于偏向人工智能實(shí)踐應(yīng)用層面的人而言,能掌握相關(guān)的概念和基本原理無疑是一件非常令人愜意的事情,也非常有助于你的成長和發(fā)展。人工智能的特征及典型應(yīng)用 隨著人工智能進(jìn)入新時(shí)代,近年來,AI已廣泛應(yīng)用到各行業(yè)各領(lǐng)域,為企業(yè)、行業(yè)的創(chuàng)新應(yīng)用和人們生活的提檔升級(jí)注入了新的動(dòng)力,一些典型的應(yīng)用有。人工智能的特征及典型應(yīng)用 那么請(qǐng)大家想一想,在我們?nèi)粘I钪杏兄男┤斯ぶ悄艿膽?yīng)用?無人駕駛?cè)四樧R(shí)別醫(yī)學(xué)機(jī)器人智能家居攜手同行,走向輝煌!機(jī)器學(xué)

5、習(xí)與深度學(xué)習(xí)授課人:目錄01機(jī)器學(xué)習(xí)的要義02深度學(xué)習(xí)的崛起03神經(jīng)網(wǎng)絡(luò)的魅力PART 01機(jī)器學(xué)習(xí)的要義 機(jī)器學(xué)習(xí)專門研究計(jì)算機(jī)怎樣模擬或?qū)崿F(xiàn)人類的學(xué)習(xí)行為,以獲取新的知識(shí)或技能,重新組織已有的知識(shí)結(jié)構(gòu)使之不斷改善自身的性能。機(jī)器學(xué)習(xí)最基本的做法,就是使用算法來解析數(shù)據(jù)、從中學(xué)習(xí),然后對(duì)真實(shí)世界中的事件做出決策和預(yù)測。與傳統(tǒng)的為解決特定任務(wù)、硬編碼的軟件程序不同,機(jī)器學(xué)習(xí)是用大量的數(shù)據(jù)來“訓(xùn)練”,通過各種算法從數(shù)據(jù)中學(xué)習(xí)如何完成任務(wù)。 機(jī)器學(xué)習(xí)的要義舉個(gè)例子 我們郵箱里有自動(dòng)垃圾分類程序,它的工作就是收到一封郵件后,通過查看內(nèi)容,然后判斷它是否為垃圾郵件。那么,它是如何來判斷的呢?首先,我們

6、需要一堆郵件,提取判別郵件正常與否的特征數(shù)據(jù)(如關(guān)鍵詞,詞頻等),并對(duì)其中的普通郵件和垃圾郵件進(jìn)行標(biāo)注,有了這些數(shù)據(jù)后,我們可以通過某種算法來構(gòu)建一個(gè)模型,然后用數(shù)據(jù)進(jìn)行訓(xùn)練,得到一條回歸曲線,收到一封信郵件后,判斷它在曲線的位置,如果遠(yuǎn)離正常郵件,則認(rèn)為是垃圾郵件。垃圾分類過程機(jī)器學(xué)習(xí)的要義 機(jī)器學(xué)習(xí)直接來源于早期的人工智能領(lǐng)域。傳統(tǒng)算法包括決策樹學(xué)習(xí)、推導(dǎo)邏輯規(guī)劃、聚類、分類、回歸、強(qiáng)化學(xué)習(xí)和貝葉斯網(wǎng)絡(luò)等等。 機(jī)器學(xué)習(xí)最成功的應(yīng)用領(lǐng)域是計(jì)算機(jī)視覺,人們需要手工編寫分類器、邊緣檢測濾波器,形狀檢測程序,分類器。使用這些手工編寫的分類器,人們可以開發(fā)算法來感知圖像。但是它太僵化,太容易受環(huán)境條

7、件的干擾。機(jī)器學(xué)習(xí)的要義PART 02深度學(xué)習(xí)的崛起AI與真人的又一場較量 2017年4月6日,人工智能與真人對(duì)打的撲克賽事 “冷撲大師”VS“中國龍之隊(duì)”德州撲克牌表演賽在海南生態(tài) 軟件園開賽?!袄鋼浯髱煛毕鄬?duì)于“阿爾法圍棋”的不同在于,前者不需要提前背會(huì)大量棋(牌)譜,也不局限于在公開的完美信息場景中進(jìn)行運(yùn)算,而是從零開始,基于撲克游戲規(guī)則針對(duì)游戲中對(duì)手劣勢進(jìn)行自我學(xué)習(xí),并通過博弈論來衡量和選取最優(yōu)策略。經(jīng)過為期5天的角逐,人工智能“冷撲大師”最終以792327總記分牌的戰(zhàn)績完勝并贏得200萬獎(jiǎng)金。深度學(xué)習(xí)的崛起 “冷撲大師”人工智能系統(tǒng)又一次顛覆了AI在人們心中的印象和地位,那么究竟是什

8、么神奇的力量支撐了人工智能,使其具有如此高的智商和巨大威力?深度學(xué)習(xí)的崛起 在此,就不得不提到深度學(xué)習(xí),它是人工智能發(fā)展的高級(jí)階段產(chǎn)物,是人工智能的幕后英雄,是AI背后的算法支持。 深度學(xué)習(xí)的橫空出世,將機(jī)器學(xué)習(xí)的預(yù)測能力提高到一個(gè)空前的高度。人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks,ANN)是早期機(jī)器學(xué)習(xí)中的一個(gè)重要的算法,歷經(jīng)數(shù)十年風(fēng)風(fēng)雨雨。神經(jīng)網(wǎng)絡(luò)的原理是受我們大腦的生理結(jié)構(gòu)互相交叉相連的神經(jīng)元啟發(fā)。但與大腦中一個(gè)神經(jīng)元可以連接一定距離內(nèi)的任意神經(jīng)元不同,人工神經(jīng)網(wǎng)絡(luò)具有離散的層、連接和數(shù)據(jù)傳播的方向。例如,我們可以把一幅圖像切分成圖像塊,輸入到神經(jīng)網(wǎng)絡(luò)的第一層

9、。在第一層的每一個(gè)神經(jīng)元都把數(shù)據(jù)傳遞到第二層。第二層的神經(jīng)元也是完成類似的工作,把數(shù)據(jù)傳遞到第三層,以此類推,直到最后一層,然后生成結(jié)果。 每一個(gè)神經(jīng)元都為它的輸入分配權(quán)重,這個(gè)權(quán)重的正確與否與其執(zhí)行的任務(wù)直接相關(guān)。最終的輸出由這些權(quán)重加總來決定。我們?nèi)砸酝V梗⊿-t-o-p)標(biāo)志牌為例。將一個(gè)停止標(biāo)志牌圖像的所有元素都打碎,然后用神經(jīng)元進(jìn)行“檢查”:八邊形的外形、救火車般的紅顏色、鮮明突出的字母、交通標(biāo)志的典型尺寸和靜止不動(dòng)運(yùn)動(dòng)特性等等。神經(jīng)網(wǎng)絡(luò)的任務(wù)就是給出結(jié)論,它到底是不是一個(gè)停止標(biāo)志牌。神經(jīng)網(wǎng)絡(luò)會(huì)根據(jù)所有權(quán)重,給出一個(gè)經(jīng)過深思熟慮的猜測“概率向量”。深度學(xué)習(xí)的崛起 標(biāo)牌識(shí)別例子里,系統(tǒng)

10、可能會(huì)給出這樣的結(jié)果:86%可能是一個(gè)停止標(biāo)志牌;7%的可能是一個(gè)限速標(biāo)志牌;5%的可能是一個(gè)風(fēng)箏掛在樹上等等。然后網(wǎng)絡(luò)結(jié)構(gòu)告知神經(jīng)網(wǎng)絡(luò),它的結(jié)論是否正確。即使是這個(gè)例子,也算是比較超前了。淺層的神經(jīng)網(wǎng)絡(luò)也還是為人工智能圈所淡忘。其實(shí)在人工智能出現(xiàn)的早期,神經(jīng)網(wǎng)絡(luò)就已經(jīng)存在了,但神經(jīng)網(wǎng)絡(luò)對(duì)于“智能”的貢獻(xiàn)微乎其微。主要問題是,即使是最基本的神經(jīng)網(wǎng)絡(luò),也需要大量的運(yùn)算。神經(jīng)網(wǎng)絡(luò)算法的運(yùn)算需求難以得到滿足。 不過,還是有一些虔誠的研究團(tuán)隊(duì),以多倫多大學(xué)的Geoffrey Hinton為代表,堅(jiān)持研究,實(shí)現(xiàn)了以超算為目標(biāo)的并行算法的運(yùn)行與概念證明。但也直到GPU得到廣泛應(yīng)用,這些努力才見到成效。我們

11、回過頭來看這個(gè)停止標(biāo)志識(shí)別的例子。神經(jīng)網(wǎng)絡(luò)是調(diào)制、訓(xùn)練出來的,時(shí)不時(shí)還是很容易出錯(cuò)的。它最需要的,就是訓(xùn)練。需要成百上千甚至幾百萬張圖像來訓(xùn)練,直到神經(jīng)元的輸入的權(quán)值都被調(diào)制得十分精確,無論是否有霧,晴天還是雨天,每次都能得到正確的結(jié)果。只有這個(gè)時(shí)候,我們才可以說神經(jīng)網(wǎng)絡(luò)成功地自學(xué)習(xí)到一個(gè)停止標(biāo)志的樣子;或者在Facebook的應(yīng)用里,神經(jīng)網(wǎng)絡(luò)自學(xué)習(xí)了你媽媽的臉;又或者是2012年吳恩達(dá)(Andrew Ng)教授在Google實(shí)現(xiàn)了神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)到貓的樣子等等。深度學(xué)習(xí)的崛起 吳教授的突破在于,把這些神經(jīng)網(wǎng)絡(luò)從基礎(chǔ)上顯著地增大了。層數(shù)非常多,神經(jīng)元也非常多,然后給系統(tǒng)輸入海量的數(shù)據(jù),來訓(xùn)練網(wǎng)絡(luò)。

12、在吳教授這里,數(shù)據(jù)是一千萬YouTube視頻中的圖像。吳教授為深度學(xué)習(xí)加入了“深度”(deep)。這里的“深度”就是說神經(jīng)網(wǎng)絡(luò)中眾多的層?,F(xiàn)在,經(jīng)過深度學(xué)習(xí)訓(xùn)練的圖像識(shí)別,在一些場景中甚至可以比人做得更好:從下圖所示的識(shí)別貓,到辨別血液中癌癥的早期成分,到識(shí)別核磁共振成像中的腫瘤,這些是深度學(xué)習(xí)的杰出表現(xiàn)。Google的AlphaGo先是學(xué)會(huì)了如何下圍棋,然后與它自己下棋訓(xùn)練。它訓(xùn)練自己神經(jīng)網(wǎng)絡(luò)的方法,就是不斷地與自己下棋,反復(fù)地下,永不停歇,這種學(xué)習(xí)能力和精力專注是人類無法比擬的。利用深度學(xué)習(xí)從視頻中找出貓的圖片深度學(xué)習(xí)的崛起 由以上的敘述中我們不難總結(jié)出人工智能、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的關(guān)系,

13、三者之間的關(guān)系如下圖所示。 由此可見,機(jī)器學(xué)習(xí)屬于人工智能的一個(gè)分支,是一種實(shí)現(xiàn)人工智能的方法,也是人工智能的基礎(chǔ),機(jī)器學(xué)習(xí)主要是設(shè)計(jì)和分析一些讓計(jì)算機(jī)可以自動(dòng)“學(xué)習(xí)”的算法。深度學(xué)習(xí)是機(jī)器學(xué)習(xí)研究中的一個(gè)新的領(lǐng)域,其動(dòng)機(jī)在于建立、模擬人腦進(jìn)行分析學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò),它模仿人腦的機(jī)制來解釋數(shù)據(jù),如圖象、聲音、文本等,是一種基于神經(jīng)網(wǎng)絡(luò)的深度結(jié)構(gòu)學(xué)習(xí)的技術(shù)。深度學(xué)習(xí)的崛起PART 03神經(jīng)網(wǎng)絡(luò)的魅力 無論是機(jī)器學(xué)習(xí),還是深度學(xué)習(xí),都離不開神經(jīng)網(wǎng)絡(luò)(Neural Network),起源于人們對(duì)生物體神經(jīng)的認(rèn)知,生物神經(jīng)網(wǎng)絡(luò)是由神經(jīng)元、突觸等結(jié)構(gòu)組成,大量的神經(jīng)元通過無數(shù)的突觸連接在一起構(gòu)成一個(gè)更大規(guī)模

14、的神經(jīng)網(wǎng)絡(luò),能處理人的思維和記憶,神經(jīng)元的結(jié)構(gòu)如下圖所示。神經(jīng)元結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)的魅力 人們通過模仿生物神經(jīng)網(wǎng)絡(luò)的工作原理構(gòu)建了人工神經(jīng)網(wǎng)絡(luò),其中的神經(jīng)元模型早期稱為感知機(jī),后來將所有的感知機(jī)連接起來,形成網(wǎng)絡(luò)。人工神經(jīng)元的結(jié)構(gòu)如下圖所示。人工神經(jīng)元結(jié)構(gòu)上圖中,x1,x2, xn是輸入向量,w1,w2, wn是對(duì)應(yīng)的權(quán)重向量,f是激活函數(shù),加權(quán)和為:S=x1w1+x2w2+xnwn然后經(jīng)過線性或者非線性函數(shù)進(jìn)行激活:Y=f(S+b)上式中b為偏置變量,Y是輸出向量。神經(jīng)網(wǎng)絡(luò)的魅力 我們把多個(gè)神經(jīng)元組成一層神經(jīng)元,并增加神經(jīng)元的層數(shù),那么就構(gòu)成一個(gè)神經(jīng)網(wǎng)絡(luò),如下圖所示。多層神經(jīng)網(wǎng)絡(luò) 理論已經(jīng)證明,通

15、過增加神經(jīng)網(wǎng)絡(luò)的層數(shù)和改變激活函數(shù),并利用相應(yīng)學(xué)習(xí)算法不斷迭代改變損失誤差,就可以用多層神經(jīng)網(wǎng)絡(luò)來擬合任意函數(shù),解決線性和非線性問題,也就是通過增加網(wǎng)絡(luò)的深度和寬度來提高神經(jīng)網(wǎng)絡(luò)模型的健壯性和預(yù)測的準(zhǔn)確性。 因此,多層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的出現(xiàn),以及相關(guān)算法的完善,為人工智能的普及和應(yīng)用做出了突破性貢獻(xiàn)。神經(jīng)網(wǎng)絡(luò)的魅力攜手同行,走向輝煌!小試牛刀: 識(shí)別圖片上的動(dòng)物授課人:目錄01提出問題02解決方案03預(yù)備知識(shí)04任務(wù)1準(zhǔn)備一張動(dòng)物圖片05任務(wù)2智能獲取動(dòng)物信息PART 01提出問題 動(dòng)物世界千奇百怪,對(duì)于普通游客而言,當(dāng)你在動(dòng)物園看到一種陌生的動(dòng)物時(shí),你可能急切想了解這個(gè)動(dòng)物的名稱、分布范圍、生活

16、習(xí)性等信息,當(dāng)然你可以通過動(dòng)物園的銘牌來獲取這些信息,如果銘牌模糊或信息不全,那有沒有一種快捷的方式幫助我們解決這個(gè)尷尬的問題呢?提出問題 幸運(yùn)的是,5G技術(shù)和人工智能的普及,為解決問題提供了無限可能。大家可以試想一些,如果在野外與一個(gè)小動(dòng)物不期而遇,給它拍個(gè)照,利用人工智能快速識(shí)別圖像的能力來辨別眼前的動(dòng)物,就可以從根本上改變游客或動(dòng)物學(xué)家認(rèn)識(shí)或研究動(dòng)物的方式,這著實(shí)是一件令人愉悅的事情。 下面,我們就利用智能云技術(shù),來開始我們識(shí)別動(dòng)物之旅,體驗(yàn)一下人工智能的魅力。提出問題PART 02解決方案 為了識(shí)別圖片上的動(dòng)物,一種簡便的方法是利用一些智能云服務(wù),如百度智能云、華為人工智能云等智能服務(wù)

17、提供的動(dòng)物識(shí)別功能,對(duì)你上傳的圖片進(jìn)行識(shí)別,幫助你進(jìn)一步了解圖片上的動(dòng)物。解決方案圖解決方案PART 03預(yù)備知識(shí) 百度智能云是百度提供的公有云平臺(tái),于2015年正式開放運(yùn)營。百度云秉承“用科技力量推動(dòng)社會(huì)創(chuàng)新”的愿景,不斷將百度在云計(jì)算、大數(shù)據(jù)、人工智能的技術(shù)能力向社會(huì)輸出?!笆澜绾軓?fù)雜,百度更懂你”,2016年,百度正式對(duì)外發(fā)布了“云計(jì)算+大數(shù)據(jù)+人工智能”三位一體的云計(jì)算戰(zhàn)略。百度云推出了40余款高性能云計(jì)算產(chǎn)品,天算、天像、天工三大智能平臺(tái),分別提供智能大數(shù)據(jù)、智能多媒體、智能物聯(lián)網(wǎng)服務(wù)。為社會(huì)各個(gè)行業(yè)提供最安全、高性能、智能的計(jì)算和數(shù)據(jù)處理服務(wù),讓智能的云計(jì)算成為社會(huì)發(fā)展的新引擎。百

18、度智能云提供的服務(wù)預(yù)備知識(shí)人工智能服務(wù)提供的功能 利用百度智能云平臺(tái)上的人工智能服務(wù),以及百度提供的開源深度學(xué)習(xí)框架PaddlePaddle,還有人工智能開發(fā)語言Python,我們就可以開啟人工智能的篇章,踏上創(chuàng)新的應(yīng)用之旅。預(yù)備知識(shí)PART 04任務(wù)1 準(zhǔn)備一張動(dòng)物圖片 準(zhǔn)備一張你感興趣的動(dòng)物的圖片,建議你用身邊的手機(jī)把它拍攝下來,然后存放在電腦上或云盤里。根據(jù)任務(wù)目標(biāo),按照以下步驟和操作,完成任務(wù)1。 任務(wù)目標(biāo):在本地保存一張動(dòng)物圖片,或者保存含有動(dòng)物圖片的URL。 完成步驟:拍攝一張含有動(dòng)物的圖片,將它存放在手機(jī)里或電腦上。 例如,我們?cè)趧?dòng)物園里給國寶大熊貓照了一張相片,作為本案例的素材

19、來使用。當(dāng)然,你也可以充分發(fā)揮互聯(lián)網(wǎng)的功效,從它那兒搜索一張你有關(guān)大熊貓的圖片。大熊貓圖片任務(wù)1準(zhǔn)備一張動(dòng)物圖片PART 05任務(wù)2 智能獲取動(dòng)物信息 首先進(jìn)入百度智能云網(wǎng)站,立即使用它提供的動(dòng)物識(shí)別功能,然后上傳你準(zhǔn)備的動(dòng)物圖片或圖片URL,最后得到識(shí)別結(jié)果。根據(jù)任務(wù)目標(biāo),按照以下步驟和操作,完成任務(wù)2。 任務(wù)目標(biāo):利用百度智能云提供的人工智能服務(wù),對(duì)你提供的圖像中的動(dòng)物進(jìn)行識(shí)別,識(shí)別任務(wù)就是要了解圖像中到底是什么動(dòng)物。步驟1訪問百度動(dòng)物識(shí)別網(wǎng)站步驟2圖片上傳任務(wù)2智能獲取動(dòng)物信息1.訪問百度動(dòng)物識(shí)別網(wǎng)站按地址:/tech/imagerecognition/animal 進(jìn)入動(dòng)物識(shí)別網(wǎng)站,如

20、圖所示。動(dòng)物識(shí)別界面任務(wù)2智能獲取動(dòng)物信息2.圖片上傳點(diǎn)擊上圖中的“功能演示”按鈕,上傳你在任務(wù)1中準(zhǔn)備好的圖片或粘貼含有動(dòng)物圖片的URL,稍等片刻,就得到如下圖的識(shí)別信息。 識(shí)別結(jié)果界面任務(wù)2智能獲取動(dòng)物信息 人工智能是研究如何通過機(jī)器來模擬人類認(rèn)知能力的學(xué)科,最新的人工智能,突出從數(shù)據(jù)中學(xué)習(xí)和在行動(dòng)中學(xué)習(xí)。通過近60多年的曲折發(fā)展和科學(xué)家的不懈努力,人工智能的春天終于到來,并得到迅猛的發(fā)展,在智能制造、安全駕駛、機(jī)器人和智能服務(wù)等方面得到成功的應(yīng)用。 人工智能這一新興的科技浪潮正在深刻改變著我們的生活和思維方式,盡管人工智能涉及的知識(shí)面眾多,但隨著開源平臺(tái)的推出和智能構(gòu)件的高度封裝,已經(jīng)大

21、大降低了我們使用人工智能技術(shù)的門檻,使得我們能享受它帶來的紅利和在其它行業(yè)的創(chuàng)新應(yīng)用,AI技術(shù)的發(fā)展也為我們展現(xiàn)了一個(gè)振奮人心的前景,那就是更美好的生活大門等待我們用人工智能的鑰匙去開啟。任務(wù)2智能獲取動(dòng)物信息攜手同行,走向輝煌! 初識(shí)Python授課人:目錄01Python簡介02 Python的特點(diǎn)及應(yīng)用領(lǐng)域淺嘗PythonPART 01 Python簡介Python由荷蘭人Guido van Rossum于1989年設(shè)計(jì)出來,后由開源核心團(tuán)隊(duì)一直在維護(hù)和開發(fā),歷經(jīng)Python2.x到Python3.x版本,截止目前最新的版本是Python3.9.1。它是一個(gè)高層次的結(jié)合了解釋性、編譯性、

22、互動(dòng)性和面向?qū)ο蟮哪_本語言。Python 的設(shè)計(jì)具有很強(qiáng)的可讀性,相比其它計(jì)算機(jī)語言它具有更有特色的語法結(jié)構(gòu),比如,它是解釋執(zhí)行的,可以交互直接執(zhí)行,也支持面向?qū)ο蟮木幊碳夹g(shù),特別適合初學(xué)者使用,是一種偉大的語言,它支持廣泛的應(yīng)用程序開發(fā),從簡單的文字處理到 WWW 瀏覽器再到游戲等。Python簡介 隨著人工智能的興起,Python在AI界大顯身手,這主要得益于它的簡單易用、簡潔優(yōu)美、開發(fā)效率高。由于它的開源本質(zhì),Python已經(jīng)被移植在許多平臺(tái)上,Python程序無需修改就可以在任何平臺(tái)上面運(yùn)行。特別是Python強(qiáng)大的AI專用第三方庫,用少量的代碼就能完成復(fù)雜的數(shù)據(jù)挖掘和分析功能,因此P

23、ython穩(wěn)坐人工智能語言頭把交椅也是實(shí)至名歸。 自2017年首次登頂后,Python蟬聯(lián)三屆冠軍。Python受歡迎原因在很大程度上受到大量可用的專用第三方庫的影響,特別是在人工智能領(lǐng)域,如Keras庫是深度學(xué)習(xí)開發(fā)人員中的重量級(jí)人物,Keras提供了TensorFlow的接口、CNTK和Theano深度學(xué)習(xí)框架和工具包。深度學(xué)習(xí)并不是Python自發(fā)布以來的唯一領(lǐng)域,隨著微控制器中計(jì)算能力的急劇增加,意味著嵌入式Python版本,如CircuitPython和MicroPython也在制造商中越來越受歡迎。因此,對(duì)于新手來說,如果想學(xué)一項(xiàng)更容易、更靈活的技術(shù)和人工智能編程語言,那Pytho

24、n就是最佳選擇。Python簡介PART 02Python的特點(diǎn)及應(yīng)用領(lǐng)域STEP 01Python的特點(diǎn) Python是目前最流行且發(fā)展非常迅猛的語言,隨著AI市場的火熱也成就了該語言如日中天,得益于該語言具有以下鮮明的特點(diǎn):Python的特點(diǎn)及應(yīng)用領(lǐng)域STEP 02Python的應(yīng)用領(lǐng)域 人工智能和科學(xué)運(yùn)算。Python最大的特色是廣泛應(yīng)用于數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí)等人工智能領(lǐng)域,是該領(lǐng)域的主流語言,相關(guān)的第三方庫有numpy、scipy、matplotlib、keras、mxnet等。隨著人工智慧和大數(shù)據(jù)應(yīng)用程序的普及,使得Python在科學(xué)計(jì)算、智能挖掘、圖像繪制方面大展

25、身手,得到廣泛的支持和應(yīng)用。 云計(jì)算。Python也是云計(jì)算方面應(yīng)用最廣的語言,如在OpenStack、百度智能云上的云計(jì)算框架就是由Python開發(fā)的,Python是從事云計(jì)算工作需要掌握的一門編程語言,如果想要深入學(xué)習(xí)并進(jìn)行二次開發(fā),就需要具備Python的相關(guān)知識(shí)和技能。 系統(tǒng)運(yùn)維。Python語言也是運(yùn)維人員必須掌握的語言。如利用其標(biāo)準(zhǔn)庫中的軟件包pywin32就能夠輕松訪問windows應(yīng)用程序接口,又如,利用Python編寫的管理腳本能更輕松管理Linux,比普通的Shell腳本在可讀性、代碼重用方面更有優(yōu)勢。 Web程序開發(fā)。利用Python的Internet模塊和第三方框架Dj

26、ango、Web2py和Zope等,可以快捷開發(fā)Web應(yīng)用程序。如Google爬蟲、YouTube視頻網(wǎng)站和豆瓣等知名網(wǎng)站,都是使用Python來開發(fā)的,可見Python的功力非同凡響。Python的特點(diǎn)及應(yīng)用領(lǐng)域攜手同行,走向輝煌!Python開發(fā)環(huán)境搭建授課人:目錄01安裝Python02安裝Jupyter Notebook03淺嘗PythonPART 01安裝Python Python 是一個(gè)高層次的結(jié)合了解釋性、編譯性、互動(dòng)性和面向?qū)ο蟮哪_本語言。要利用Python語言進(jìn)行應(yīng)用開發(fā),首先要結(jié)合系統(tǒng)平臺(tái)類型來搭建好相應(yīng)的開發(fā)環(huán)境,然后才好進(jìn)行應(yīng)用開發(fā)。整個(gè)環(huán)境的搭建主要分為開發(fā)包下載和安

27、裝兩個(gè)步驟。安裝Python(1)下載Python安裝包 由于Python可以被移植到許多平臺(tái)上,如windows、Linux、Mac OS X等,用戶進(jìn)入官網(wǎng)/downloads/,如下圖所示,來下載所需的安裝文件。Python官網(wǎng)下載頁面安裝Python 根據(jù)操作系統(tǒng)的類別,選擇下載最新的安裝文件進(jìn)行安裝,不同的平臺(tái)有不同的安裝方法,下面以Windows平臺(tái)為例,來簡單說明Python的下載和安裝步驟。 打開 WEB 瀏覽器訪問/downloads/windows/,如右圖所示。windows平臺(tái)的Python安裝文件下載頁面安裝Python 用戶可以選擇不同的Python版本和不同安裝形

28、式下載安裝文件,此處選擇下載Python3.7.4的可執(zhí)行安裝文件,下圖所示。選擇可執(zhí)行的安裝包安裝Python(2)安裝Python 下載安裝文件后,雙擊下載包,進(jìn)入 Python 安裝向?qū)?,安裝非常簡單,你只需要按提示進(jìn)行操作,直到安裝完成即可。在右圖所示的安裝界面中,選擇“Add Python 3.7 to PATH”復(fù)選框,將Python的可執(zhí)行文件路徑添加到環(huán)境變量Path中,以方便啟用各種Python開發(fā)工具。 然后點(diǎn)擊“Install now”選項(xiàng),進(jìn)行下一步的安裝,安裝成功后的界面如左圖所示。安裝Python Python安裝完成后,在Windows的“開始”菜單中就能看到下圖

29、所示的4項(xiàng)快捷菜單。四項(xiàng)命令的含義如下:u Python3.7 Module Docs內(nèi)置服務(wù)式的Python模塊幫助文檔;u IDLE(Python3.7 64-bit)Python自帶的集成開發(fā)環(huán)境(Integrated Development and Learning Environment);u Python3.7 Manuals(64-bit)Python幫助文檔;u Python3.7(64-bit)Python解釋器。Python快捷命令項(xiàng)安裝PythonPART 02安裝Jupyter Notebook Jupyter Notebook是一個(gè)開源的Web應(yīng)用程序,旨在方便開發(fā)者

30、創(chuàng)建和共享代碼文檔。 它提供了一個(gè)交互式工作環(huán)境,用戶可以在里面寫代碼、單獨(dú)運(yùn)行指定代碼、查看結(jié)果,并在其中可視化數(shù)據(jù)。 鑒于這些優(yōu)點(diǎn),Jupyter Notebook成了數(shù)據(jù)科學(xué)家和人工智能愛好者眼里的一款人見人愛的工具,它能幫助他們便捷地執(zhí)行各種端到端任務(wù),如數(shù)據(jù)清洗、統(tǒng)計(jì)建模、訓(xùn)練機(jī)器學(xué)習(xí)模型、AI應(yīng)用開發(fā)等。安裝 Jupyter Notebook 1.安裝jupyter庫 以Windows系統(tǒng)為例,在系統(tǒng)命令行下,執(zhí)行命令pip3 install jupyter,來安裝jupyter notebook(建議將pip庫鏡像地址設(shè)置為國內(nèi)站點(diǎn))。 2.啟動(dòng)jupyter notebook

31、安裝完成后,如果要運(yùn)行Jupyter Notebook,你只需在控制臺(tái)輸入以下命令:jupyter notebook,即可啟動(dòng)jupyter notebook,如下圖所示。啟動(dòng)jupyter notebook安裝 Jupyter Notebook 保持它在命令窗口運(yùn)行,同時(shí)它會(huì)自動(dòng)打開你的默認(rèn)瀏覽器,網(wǎng)址為http:/ localhost:8888/tree。 如果瀏覽器因?yàn)槟承┰驘o法打開,你就需要復(fù)制這個(gè)URL到瀏覽器地址欄中,手動(dòng)打開相應(yīng)網(wǎng)址,如右上圖所示。 單擊下拉按鈕“New”,在出現(xiàn)的下拉列表中選擇你需要?jiǎng)?chuàng)建的Notebook類型,包括“Text File”純文本類型、“Folde

32、r”文件夾和“Python3”運(yùn)行腳本三種文件類型。至此,整個(gè)開發(fā)環(huán)境就搭建完畢,用戶就可以利用jupyter notebook這個(gè)工具來披荊斬棘,探索人工智能學(xué)習(xí)之旅。jupyter主頁面安裝 Jupyter Notebook PART 03淺嘗Python 我們利用jupyter集成開發(fā)學(xué)習(xí)環(huán)境就可以小試牛刀,淺嘗一下Python的開發(fā)魅力。由于Python是一種腳本語言,所以,首先我們?cè)趈upyter中編寫Python腳本源程序,然后調(diào)用Python解釋器解釋執(zhí)行源程序,最后得到執(zhí)行結(jié)果。下面,以求解三角形的面積為例,具體了解在jupyter環(huán)境下,如何編寫和運(yùn)行Python程序?!疽?/p>

33、】用jupyter寫一個(gè)Python源程序,計(jì)算三角形的面積。1)引例描述輸入三角形的三條邊,用海倫公式計(jì)算由這三邊構(gòu)成的此三角形的面積。2)引例分析首先用3個(gè)變量保存從鍵盤輸入的3條邊的值,然后按下列海倫公式計(jì)算面積,將其保存到1個(gè)變量s中,最后打印出變量s的值即完成任務(wù)。 其中淺嘗Python 1.新建一個(gè)腳本源程序。在jupyter主頁新建一個(gè)文件夾chapter2,然后打開該文件夾,在其中新建一個(gè)名為“case2-1”的Python3腳本源程序,如下圖所示。新建的case2-1腳本源程序淺嘗Python 1#example2-123計(jì)算三角形的面積45import math6a=eva

34、l(input(輸入三角形a邊長:)7b=eval(input(輸入三角形b邊長:)8c=eval(input(輸入三角形c邊長:)9if a+b=c or a+c=b or b+c1,然后根據(jù)上述公式計(jì)算狗的相當(dāng)人類的年齡。分支結(jié)構(gòu) 3)引例實(shí)現(xiàn)實(shí)現(xiàn)的代碼如下。1age = int(input(請(qǐng)輸入你家狗狗的年齡: )2if age = 0:4 print(你是在逗我吧!)5elif age = 1:6 print(相當(dāng)于 14 歲的人。)7else:8 human = 22 + (age -2)*59print(對(duì)應(yīng)人類年齡: , human) 執(zhí)行左述代碼,輸入狗的年齡,運(yùn)行結(jié)果如下圖

35、所示。程序計(jì)算結(jié)果分支結(jié)構(gòu) PART 03循環(huán)結(jié)構(gòu) 可以嘗試輸入不同的狗狗的年齡,來了解對(duì)應(yīng)人類的年齡,從而驗(yàn)證不同分支是否都可以執(zhí)行到。如果我們想多次重現(xiàn)計(jì)算狗狗的年齡,那又如何能做到呢?循環(huán)結(jié)構(gòu) 循環(huán)結(jié)構(gòu)是程序中一種常見的流程,它是指在一定條件下,反復(fù)執(zhí)行某段程序代碼的控制結(jié)構(gòu),反復(fù)執(zhí)行的語句塊稱為循環(huán)體。Python的循環(huán)while 循環(huán)for 循環(huán)循環(huán)結(jié)構(gòu) while循環(huán)的執(zhí)行流程u while循環(huán) 由此可見,while循環(huán)過程是先判斷循環(huán)條件是否成立,若為True,則執(zhí)行循環(huán)體,循環(huán)體執(zhí)行完后再轉(zhuǎn)向邏輯條件,計(jì)算并判斷是否繼續(xù)循環(huán),如果條件為False,則執(zhí)行while語句后面循環(huán)體

36、外的語句。 while循環(huán)的一般語法格式為:while 判斷條件(condition): 執(zhí)行語句(statements)循環(huán)結(jié)構(gòu) 【引例】能夠多次計(jì)算狗狗的相當(dāng)人類的年齡。1)引例描述 能反復(fù)計(jì)算不同年齡狗狗的相當(dāng)人類的年齡,直到用戶按“Q”鍵退出。2)引例分析 在分支結(jié)構(gòu)的引例的基礎(chǔ)上,將其作為循環(huán)體來使用,如果用戶輸入的是數(shù)字,則計(jì)算狗的年齡,如果輸入的是“Q”,則退出程序,其它情況則提示用戶“請(qǐng)輸入數(shù)字,Q鍵退出!”。循環(huán)結(jié)構(gòu) 實(shí)現(xiàn)代碼如下:1while True:2 age=input(請(qǐng)輸入你家狗狗的年齡: )3 if age.isdecimal():4 age=int(age)5

37、 if age = 0:6 print(你是在逗我吧!)7 elif age = 1:8 print(相當(dāng)于 14 歲的人。)9 else:10 human = 22 + (age -2)*511 print(對(duì)應(yīng)人類年齡: , human)12 elif age.upper()=Q:13 print(計(jì)算結(jié)束!)14 break15 else:16 print(請(qǐng)輸入數(shù)字,Q鍵退出!) 3)引例實(shí)現(xiàn)循環(huán)結(jié)構(gòu) u for循環(huán) for循環(huán)是Python中更常用的一種循環(huán),因?yàn)樵谌斯ぶ悄艿臄?shù)據(jù)處理方面,這些數(shù)據(jù)往往是以序列、數(shù)組或矩陣的形式存放的,數(shù)據(jù)本身的結(jié)構(gòu)、大小是有規(guī)律的,故往往采用for循

38、環(huán)來遍歷數(shù)據(jù)集合中的元素。 for執(zhí)行流程圖for循環(huán)的語法格式如下:for in : 循環(huán)結(jié)構(gòu) 【引例】計(jì)算1+2+3+100之和。 1)引例描述 從1開始累加,計(jì)算1100所有整數(shù)之和。 2)引例分析 首先要產(chǎn)生一個(gè)1,2,100的一個(gè)整數(shù)序列,然后通過for 循環(huán)依次取出每一個(gè)元素,將它們累加起來,最后打印出累 加結(jié)果即可。循環(huán)結(jié)構(gòu) 實(shí)現(xiàn)代碼如下:1sum=02for i in range(101):3 sum+=i4print(1100的累加和=,sum)程序執(zhí)行結(jié)果3)引例實(shí)現(xiàn)循環(huán)結(jié)構(gòu) PART 04組合類型 Python除了整數(shù)、浮點(diǎn)數(shù)等基本的數(shù)據(jù)類型外,還提供了列表、元祖、字典和

39、集合等組合數(shù)據(jù)類型。通過組合數(shù)據(jù)類型能將不同的數(shù)據(jù)組織起來,實(shí)現(xiàn)更復(fù)雜的數(shù)據(jù)表示和數(shù)據(jù)功能。下面了解最常用的三種組合類型:列表、元祖和字典。組合類型 u 列表 列表用方括號(hào)“”來表示,里面的各元素用逗號(hào)分開。列表的各元素可以是不同的數(shù)據(jù)類型。創(chuàng)建一個(gè)列表,只要把逗號(hào)分隔的不同的數(shù)據(jù)項(xiàng)使用方括號(hào)括起來即可。如下所示:list1 = 百度, nanjing, 1997, 20.57可以對(duì)列表的數(shù)據(jù)項(xiàng)進(jìn)行修改或更新,你也可以使用append()方法來添加列表項(xiàng),如下所示:print (第三個(gè)元素為 : , list12)list11 = 南京#更新第二個(gè)元素list1.append(中國)#增加一個(gè)

40、新的元素操作后的列表list1內(nèi)容如下圖所示。組合類型 關(guān)于列表其它操作內(nèi)容,請(qǐng)參考/python3/python3-list.html。組合類型 u 元祖 Python 的元組與列表類似,不同之處在于元組的元素不能修改,可以把它看作一個(gè)特殊的列表。元組使用小括號(hào)“()”表示。元組創(chuàng)建很簡單,只需要在括號(hào)中添加元素,并使用逗號(hào)隔開即可。創(chuàng)建元祖的代碼如下所示。tup1 = (百度, nanjing, 1997, 20.57) 雖然元組中的元素值是不允許修改的,但可以對(duì)元組進(jìn)行連接組合,如下代碼所示。tup2 = (華為, 5G技術(shù))tup=tup1+tup2組合后的內(nèi)容如下圖所示。組合后tup

41、的內(nèi)容組合類型 無論是列表還是元祖,都可以看作是一個(gè)保存混合數(shù)據(jù)的容器,例如,可以利用如下形式來保存一系列學(xué)生的成績記錄。records=張海,68,89,91,李慧,67,80,88,王霞,78,89,82 每一條學(xué)生的成績記錄用一個(gè)列表來表示,也就是列表的元素可以是一個(gè)列表,同樣的情況,列表的元素可以是一個(gè)元祖。records變量的內(nèi)容如下圖所示。 用列表形式保存學(xué)生成績記錄組合類型 u 字典 字典是另一種可變?nèi)萜髂P?,且也可存?chǔ)任意類型對(duì)象,它可以看作是由鍵值對(duì)構(gòu)成的列表。字典的每個(gè)鍵值 key=value 對(duì)用冒號(hào) : 分割,每個(gè)鍵值對(duì)之間用逗號(hào)(,)分割,整個(gè)字典包括在花括號(hào)“”中,

42、一個(gè)簡單的字典實(shí)例如下所示。 dict = 張海: 男,18,南京,李慧: 女,21,武漢,王霞: 女,19,蘇州 在該字典中,用姓名作為字典的鍵類使用,要保證姓名是唯一的,如果姓名不唯一,則可以使用學(xué)生的學(xué)號(hào)作為鍵來使用,總之要保證字典里的鍵是唯一的。組合類型 在搜索字典時(shí),首先查找鍵,鍵找到后就可以直接獲取該鍵對(duì)應(yīng)的值,這是一種高效、實(shí)用的查找方法。例如,要找字典dict中李慧的個(gè)人信息,代碼及執(zhí)行結(jié)果如下圖所示。 字典的修改和添加可以通過如下形式的代碼來完成。dict張海 = 男,20,上海 # 更新字典值dict方佳 = 女,18,廣州 # 添加鍵值對(duì)更新后的字典dict內(nèi)容如下圖所示

43、。找出的李慧個(gè)人信息更新后的字典dict的內(nèi)容組合類型 字典在使用過程中,要注意以下幾點(diǎn): 不允許同一個(gè)鍵出現(xiàn)兩次,創(chuàng)建字典時(shí)如果同一個(gè)鍵被賦值兩次,后一個(gè)值會(huì)被記住。 鍵必須不可變,所以可以用數(shù)字、字符串或元組充當(dāng),而用列表就不行。組合類型 攜手同行,走向輝煌!numpy庫基礎(chǔ)應(yīng)用授課人: 人工智能的應(yīng)用,離不開大量數(shù)值計(jì)算,numpy(Numerical Python) 是 Python 語言的一個(gè)擴(kuò)展程序庫,支持大量的維度數(shù)組與矩陣運(yùn)算,此外也針對(duì)數(shù)組運(yùn)算提供大量的數(shù)學(xué)函數(shù)庫,與pandas、matplotlib號(hào)稱數(shù)據(jù)分析三劍客,正是由于這些擴(kuò)展庫的存在和發(fā)展,不斷推動(dòng)著人工智能應(yīng)用的

44、持續(xù)開發(fā)和進(jìn)步。目錄01求解三元一次方程02數(shù)組計(jì)算03向量化處理PART 01求解三元一次方程 Python作為機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的主流編程語言,在人工智能具體應(yīng)用方面提供了豐富的庫函數(shù),也就是更多的第三方庫的支持。numpy就是專用于科學(xué)計(jì)算和數(shù)據(jù)分析的最基礎(chǔ)的函數(shù)包,其中包含了大量的工具,可以完成矩陣運(yùn)算、求特征值、解線性方程、向量乘積和歸一化計(jì)算等,這些功能為圖像分類、數(shù)據(jù)聚類等人工智能基礎(chǔ)應(yīng)用提供了計(jì)算基礎(chǔ)。求解三元一次方程 numpy不是Python內(nèi)置的第三方庫,要通過下列方式安裝后才可以使用。進(jìn)入cmd命令窗口,使用Python自帶的用于安裝第三方庫的pip3工具,執(zhí)行以下命令

45、: pip3 list 列出當(dāng)前系統(tǒng)中已經(jīng)安裝的第三方庫,如下圖所示。 如果結(jié)果列表中沒有找到numpy庫名稱,說明還沒有安裝,就需要繼續(xù)執(zhí)行以下命令:pip3 install numpy 就能從網(wǎng)絡(luò)上自動(dòng)下載相關(guān)文件并安裝numpy到系統(tǒng)中,安裝過程如下圖所示。 pip3 list命令執(zhí)行結(jié)果 numpy的安裝過程求解三元一次方程【引例】利用numpy庫求解下列三元一次方程。1)引例描述求解下列三元一次方程。2) 引例分析首先按x、y、z的次序?qū)⒏魑粗兞康南禂?shù)排成一個(gè)33的矩陣,同時(shí)將對(duì)應(yīng)的常數(shù)項(xiàng)也排除一個(gè)13的矩陣,如下圖所示。 然后利用numpy庫中的linalg模塊就可以求解線性方程

46、組。矩陣樣式求解三元一次方程3)引例實(shí)現(xiàn)實(shí)現(xiàn)的源代碼如下。1import numpy as np2A=np.mat(1,2,1,2,-1,3,3,1,2)3b=np.array(7,7,18)4x=np.linalg.solve(A,b)5print(x) 上述代碼中,代碼行1中的np是導(dǎo)入庫numpy的一個(gè)別名,代碼行2利用np中的函數(shù)mat()生成一個(gè)二維矩陣A,代碼行3利用函數(shù)array()生成一個(gè)一維數(shù)組b,代碼行4調(diào)用linalg線性代數(shù)模塊中的sovle函數(shù)求解方程組。 執(zhí)行該程序模塊,運(yùn)行結(jié)果如下圖所示。方程組求解結(jié)果求解三元一次方程3)引例實(shí)現(xiàn) 讀者可以將x=7,y=1,z=-

47、2的值分別代回原方程組,以驗(yàn)證求解是否正確?;驁?zhí)行以下命令:np.dot(A,x)計(jì)算結(jié)果如下圖所示。觀察計(jì)算結(jié)果是否與常數(shù)項(xiàng)數(shù)組b一致。 矩陣乘積運(yùn)算 結(jié)果求解三元一次方程PART 02數(shù)組計(jì)算 數(shù)組是numpy中最基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu),N維數(shù)組對(duì)象是ndarray,它是一系列同類型數(shù)據(jù)的集合,以0下標(biāo)為開始進(jìn)行集合中元素的索引。ndarray對(duì)象是用于存放同類型元素的多維數(shù)組,類似于一個(gè)多行多列的表格來存放數(shù)據(jù)。 數(shù)組在人工智能的數(shù)據(jù)處理方面得到廣泛的應(yīng)用,例如,在深度學(xué)習(xí)中,神經(jīng)元之間的鏈接關(guān)系往往采用數(shù)組形式的參數(shù)來表示,還有對(duì)大數(shù)據(jù)的統(tǒng)計(jì)分析,也常常采用數(shù)組特性進(jìn)行排序、去重和統(tǒng)計(jì)計(jì)算等,

48、使用numpy庫提供的數(shù)組操作,比常規(guī)的Python數(shù)組操作有更高的效率和更簡潔的編程代碼。數(shù)組計(jì)算【引例】統(tǒng)計(jì)鳶尾花特征值的最大值、最小值和標(biāo)準(zhǔn)差等。1)引例描述 利用機(jī)器學(xué)習(xí)中常用的鳶尾花植物數(shù)據(jù)集iris,來統(tǒng)計(jì)花萼長度的最大值、最小值、均值、標(biāo)準(zhǔn)差和方差。 2)引例分析 首先利用numpy從數(shù)據(jù)集文件iris.csv中讀取數(shù)據(jù),提取花萼長度數(shù)據(jù),然后對(duì)花萼長度特征數(shù)據(jù)進(jìn)行統(tǒng)計(jì)計(jì)算。數(shù)組計(jì)算實(shí)現(xiàn)的源代碼如下:1import numpy as np2iris_data=np.loadtxt(./data/iris.csv,delimiter=,skiprows=1)3print(type(

49、iris_data)4print(iris_data.shape)5print(花萼長度的最大值:,np.max(iris_data:,1)6print(花萼長度的最小值:,np.min(iris_data:,1)7print(花萼長度的平均值:,np.mean(iris_data:,1)8print(花萼長度的標(biāo)準(zhǔn)差:,np.std(iris_data:,1)9print(花萼長度的方差:,np.var(iris_data:,1) 上述代碼中,代碼行2中的函數(shù)loadtxt是加載文件,文件中數(shù)據(jù)項(xiàng)是采用“,”作為分隔符,跳過第一行列標(biāo)題。代碼行3的Type函數(shù)是檢查數(shù)據(jù)對(duì)象的類型。代碼行4的

50、Shape函數(shù)返回對(duì)象iris_data的尺寸大小,后面的代碼依次調(diào)用np的相關(guān)函數(shù)統(tǒng)計(jì)花萼長度的特征數(shù)據(jù)。3)引例實(shí)現(xiàn)數(shù)組計(jì)算3)引例實(shí)現(xiàn)運(yùn)行程序塊,結(jié)果如下圖所示。 圖2.28 花萼長度的統(tǒng)計(jì)結(jié)果數(shù)組計(jì)算PART 03向量化處理 在第一章談到,關(guān)于計(jì)算機(jī)的深度學(xué)習(xí)是人工智能的一個(gè)重要研究方向,在深度學(xué)習(xí)過程中,需要對(duì)原始的信號(hào)進(jìn)行逐層特征變換,常常面臨大量的向量和矩陣運(yùn)行,試圖將高度復(fù)雜的計(jì)算過程轉(zhuǎn)化成相對(duì)簡單的向量乘積。顯然,當(dāng)數(shù)據(jù)量巨大時(shí),如果采用傳統(tǒng)的計(jì)算方法勢必造成浪費(fèi)大量計(jì)算時(shí)間,而利用numpy提供的向量化處理方法則能降低計(jì)算耗時(shí)。向量化處理【引例】用向量化和非向量化兩種不同方

51、式計(jì)算房屋單價(jià)。1)引例描述 文件house_data是某城市房屋的面積和售價(jià)的數(shù)據(jù)集,請(qǐng)分別用傳統(tǒng)遍歷方法和向量方法分別計(jì)算房屋的單價(jià)(萬元/m2),并對(duì)比計(jì)算用時(shí)的差距。 2)引例分析 首先將文件數(shù)據(jù)集合導(dǎo)入到Python數(shù)組house_data中,分別將house_data的第一列、第二列數(shù)據(jù)存到數(shù)組vec1、vec2中,分別用遍歷和向量的方法計(jì)算房屋單價(jià),用time.time()函數(shù)統(tǒng)計(jì)計(jì)算用時(shí),最后輸出計(jì)算用時(shí),對(duì)比兩種方法的計(jì)算效率。向量化處理3)引例實(shí)現(xiàn)先用如下代碼讀入房屋數(shù)據(jù)。 代碼行2導(dǎo)入時(shí)間包,代碼行4-5分別將所有行的第1列、第2列數(shù)據(jù)保存到向量vec1、vec2中,然后

52、分別采用兩種方式進(jìn)行計(jì)算所有房屋的價(jià)格。1import numpy as npx2import time3house_data=np.loadtxt(./data/house_data.txt,delimiter=,)4vec1=house_data:,05vec2=house_data:,1向量化處理3)引例實(shí)現(xiàn)! 采用非向量方式計(jì) 代碼1和代碼5是記下開始和結(jié)束的時(shí)間,代碼行2 是用zeros函數(shù)產(chǎn)生初始值為0的指定數(shù)量元素的一維向量(數(shù)組),代碼3-4采用傳統(tǒng)循環(huán)方式逐個(gè)計(jì)算每間房屋的單價(jià)。! 采用向量方式計(jì)算 代碼行2直接采用向量除法來計(jì)算房屋的面積,可以看出,本方法在代碼量上要簡潔得

53、多,那效率如何呢?兩種方法的計(jì)算結(jié)果如下圖所示。兩種計(jì)算方法耗時(shí)結(jié)果對(duì)比實(shí)現(xiàn)代碼如下:1t_start=time.time()2v3=vec2/vec13t_end=time.time()4print(向量化耗時(shí):+str(t_end-t_start)*1000000)+微秒)實(shí)現(xiàn)代碼如下:1t_start=time.time()2vec3=np.zeros(len(vec1)3for i in range(len(vec1):4 vec3i=vec2i/vec1i5t_end=time.time()6print(非向量化耗時(shí):+str(t_end-t_start)*1000000)+微秒)向

54、量化處理攜手同行,走向輝煌!matplotlib庫基礎(chǔ)應(yīng)用授課人: matplotlib是一個(gè)Python 2D繪圖庫,它以多種硬拷貝格式和跨平臺(tái)的交互式環(huán)境生成高質(zhì)量的圖形。matplotlib 嘗試使容易的事情變得更容易,使困難的事情變得可能。您只需幾行代碼就可以生成圖表、直方圖、功率譜、條形圖、誤差圖、散點(diǎn)圖等,為大數(shù)據(jù)的可視化和人工智能的圖形化分析提供了大量繪圖函數(shù)。更多的應(yīng)用示例,可以中文官網(wǎng)/,無數(shù)默默的國內(nèi)開發(fā)者為matplotlib貢獻(xiàn)著自己的一份力量。下面,就讓我們一睹它的風(fēng)采。目錄01繪制直方圖02繪制撒點(diǎn)圖人工智能的特征及典型應(yīng)用PART 01繪制直方圖 Python的第

55、三方庫matplotlib提供了豐富的繪圖功能,在正式繪圖之前,需要在cmd命令窗口中執(zhí)行如下命令:pip3 install matplotlib 安裝完matplotlib后,就可以在notebook中來使用它強(qiáng)大的繪圖功能進(jìn)行數(shù)據(jù)的可視化操作。在數(shù)據(jù)的可視化過程中,要根據(jù)具體的數(shù)據(jù)可視化分析要求,選用不同的繪圖函數(shù)來分析數(shù)據(jù)特征間的關(guān)系、查看變量的變化趨勢、了解數(shù)據(jù)的整體分布情況等,去真正讀懂?dāng)?shù)據(jù),為數(shù)據(jù)深度分析和數(shù)據(jù)決策提供圖形化的信息。下面,就以繪制直方圖為例,來進(jìn)一步了解此類圖形能為我們帶來哪些數(shù)據(jù)解讀信息。繪制直方圖【引例】用直方圖描述2017年到2018年間各季度第一產(chǎn)業(yè)的生產(chǎn)總

56、值情況。1)引例描述 第一產(chǎn)業(yè)的生產(chǎn)總值保存在GDP.csv文件中,用matplotlib繪制第一產(chǎn)業(yè)生產(chǎn)總值的直方圖,并進(jìn)行對(duì)比分析。 2)引例分析 首先利用numpy庫將文件數(shù)據(jù)讀入到二維數(shù)組中,作為繪圖函數(shù)的數(shù)據(jù)源來使用,然后用matplotlib的直方圖繪圖函數(shù)bar()將數(shù)組中“第一產(chǎn)業(yè)”列的數(shù)據(jù)以柱狀圖進(jìn)行展現(xiàn)。繪制直方圖實(shí)現(xiàn)的代碼如下。1import numpy as np2import matplotlib.pyplot as plt3plt.rcParamsfont.family = SimHei# 將全局的字體設(shè)置為黑體4GDP_data=np.loadtxt(./data

57、/GDP.csv,delimiter=,skiprows=1)5quarter=GDP_data0:8,0.astype(int)6plt.bar(height=GDP_data0:8,1,x=range(len(GDP_data0:8,1),label=第一產(chǎn)業(yè)GDP,tick_label=quarter)7plt.legend()8plt.show() 代碼行3將全局的字體設(shè)置為黑體,代碼行5將數(shù)組值轉(zhuǎn)換成整數(shù),代碼行6繪制柱狀圖,其高度用參數(shù)height來指定,即二維數(shù)組中第1列的值,柱狀圖x坐標(biāo)用第1產(chǎn)業(yè)的數(shù)據(jù)個(gè)數(shù)來表示,參數(shù)lable是圖例標(biāo)簽,參數(shù)tick_label是x軸標(biāo)簽。代

58、碼行7顯示圖例,代碼行8是顯示圖形。3)引例實(shí)現(xiàn)繪制直方圖3)引例實(shí)現(xiàn)程序的運(yùn)行結(jié)果如下圖所示。 第一產(chǎn)業(yè)各季度GDP數(shù)據(jù)示意圖 由左圖可以直觀看出,在前8個(gè)季度中,2018年第4季度的GDP最大,最小值在2017年的第1季度,最大值將近是最小值的3倍多。另外,每年4個(gè)季度的GDP都趨于不斷增長的勢頭,且不同年份對(duì)應(yīng)的各季度的GDP也同樣呈現(xiàn)出上升的趨勢。由此可見,通過圖形的方式對(duì)數(shù)據(jù)進(jìn)行可視化,能直觀解讀數(shù)據(jù)內(nèi)隱含的變化趨勢,為數(shù)據(jù)統(tǒng)計(jì)和分析提供了一種便捷手段。繪制直方圖PART 02繪制撒點(diǎn)圖 散點(diǎn)圖是利用一系列的散點(diǎn)將兩個(gè)變量的聯(lián)合分布描繪出來,讓我們從圖形分布中推斷一些信息,如兩變量間

59、是否存在某種有意義的關(guān)系。散點(diǎn)圖是統(tǒng)計(jì)分析中常用的一種手段,特別是在分類統(tǒng)計(jì)圖形中,它可以算得上是中流砥柱,當(dāng)數(shù)據(jù)以恰當(dāng)?shù)姆绞皆趫D形中展示出來時(shí),我們就可以非常直觀地觀察到某些趨勢或者模式,也就揭示了變量之間的關(guān)系。繪制撒點(diǎn)圖 seaborn是在matplotlib基礎(chǔ)上面的封裝,方便直接傳參數(shù)調(diào)用,讓你能做出更加吸引人注意的圖表,并有助于你更好分析數(shù)據(jù),有關(guān)詳情請(qǐng)?jiān)L問其官網(wǎng):。 使用pip3 install seaborn命令安裝完seaborn庫后才能使用其繪圖功能。 Seaborn官網(wǎng)主頁繪制撒點(diǎn)圖【引例】用散點(diǎn)圖分析鳶尾花的花瓣的寬度和長度之間的相關(guān)性。1)引例描述 鳶尾花有關(guān)花瓣和花

60、蕊的數(shù)據(jù)保存在iris.csv文件中,我們?cè)噲D從花瓣的寬度和長度的視角去探索鳶尾花的品種類別是否與花瓣有關(guān)。 2)引例分析 首先利用Pandas庫將文件數(shù)據(jù)讀入到數(shù)據(jù)框中,然后利用seaborn的關(guān)系圖函數(shù)relplot繪制散點(diǎn)圖。為便于觀察,利用數(shù)據(jù)框中的種類列Species來區(qū)分顏色和散點(diǎn)樣式。繪制撒點(diǎn)圖3)引例實(shí)現(xiàn)實(shí)現(xiàn)代碼如下所示。1import pandas as pd2import matplotlib.pyplot as plt3import seaborn as sns4iris=pd.read_csv(./data/iris.csv)5sns.set(style=whitegr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論