




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第一章緒論全套可編輯PPT課件主要內容MainContent學習目標Learningaims(1)掌握人工智能、機器學習與深度學習三者的內涵和關系;(2)了解人工智能的發(fā)展歷程,應用與未來;(3)掌握計算機視覺的概念,主要任務;(4)了解計算機視覺與交叉學科的關系,發(fā)展歷程。1人工智能ArtificialIntelligence什么是人工智能ContextualVisualWord機器人無所不能電影中的智能人人工智能威脅人類人工智能的定義人工智能(ArtificialIntelligence,AI),是研究、開發(fā)用于模擬、延伸和擴展人類智能的理論、方法、技術及應用系統的一門新技術科學,是計算機科學的一個分支?!爸悄堋蹦茴A測股票、看得懂圖片或視頻,也能和其他人進行文字或語言上的交流,不斷督促自我完善知識儲備,它會畫畫,會寫詩,會駕駛汽車,會開飛機。在人們的理想中,如果機器能夠執(zhí)行這些任務中的一種或幾種,就可以認為該機器已具有某種性質的“人工智能”。使一部機器的反應方式像人一樣進行感知、認知、決策、執(zhí)行的人工程序或系統人工智能人工智能、機器學習和深度學習的關系機器學習是一種實現人工智能的途徑。深度學習是一種實現機器學習的技術,利用神經網絡從數據中學習模式。人工智能、機器學習的分支隨著研究的不斷開展,人工智能的研究領域不斷擴大。機器學習,從學習方法上來分,可以分為監(jiān)督學習、無監(jiān)督學習、半監(jiān)督學習、集成學習、深度學習和強化學習。從學習目的上來分,可以分為回歸,分類,聚類等。人工智能的發(fā)展歷程
第一階段(20世紀50年代中期到80年代初期):深耕細作,30年技術發(fā)展為人工智能產業(yè)化奠定基礎。1956年的達特茅斯會議提出“ArtifitialIntelligence”的課題,代表人工智能正式誕生和興起;深度學習模型以及AlphaGo增強學習的雛形——感知器均在這個階段得以發(fā)明;早期的系統應用于更多更復雜更難的問題時效果不理想,人工智能進入低谷。
第二階段(20世紀80年代初期至21世紀初期):急功近利,人工智能成功商用但跨越式發(fā)展失敗。80年代初期,第一個成功的商用專家系統R1為DEC公司每年節(jié)約4000萬美元左右的費用。淺層學習如支持向量機、Boosting和最大熵方法等在90年代得到了廣泛應用。
第三階段(21世紀初期至今):由量變到質變,AI有望實現規(guī)?;瘧谩?006年,GeoffreyHinton和他的學生在《Science》上提出基于深度信念網絡可使用非監(jiān)督學習的訓練算法。2012年,DNN技術在圖像識別領域的應用使得Hinton的學生在ImageNet評測中取得了非常好的成績。深度學習算法的應用使得語音識別、圖像識別技術取得了突破性進展,圍繞語音、圖像、機器人、自動駕駛等人工智能技術的創(chuàng)新創(chuàng)業(yè)大量涌現,人工智能迅速進入發(fā)展熱潮。人工智能的發(fā)展歷程人工智能的應用計算機視覺:讓計算機“看”的科學,是本書的一個主題。主要應用有人臉識別,商品拍照搜索,機器人/無人車上的視覺輸入系統,醫(yī)療領域的智能影像診斷等。自然語言處理:讓計算機自然地與人類進行交流,理解人類表達的意思并作出合適的回應。主要應用有搜索引擎,對話機器人,機器翻譯,辦公智能秘書等。人工智能的應用規(guī)劃決策系統:讓計算機擁有人的計劃和調度能力,該領域的發(fā)展曾一度是以棋類游戲為載體的,如AlphaGo戰(zhàn)勝柯潔,Master對頂級選手取得60連勝。當前主要應用在機器人與無人車路線規(guī)劃方面。數據挖掘:從海量數據中“挖掘”隱藏信息,在零售業(yè),制造業(yè),財務金融保險,醫(yī)療服務都有廣泛應用。主要應用有推薦系統,用戶畫像,判斷欺詐行為,金融的量化投資等。人工智能的未來方向
從大數據到小數據
深度學習的訓練過程需要大量經過人工標注的數據,一個未來的研究方向就是如何在數據缺失的條件下進行訓練,從無標注的數據里進行學習,或者自動模擬或生成數據進行訓練。
從大模型到小模型
目前深度學習的模型都非常大,動輒幾百兆字節(jié)(MB),大的甚至可以到幾千兆字節(jié)甚至幾十千兆字節(jié)(GB)。如何精簡模型大小,使得在小模型上也能跑出大模型的效果,值得進一步探索。
從感知認知到理解決策
在感知和認知的部分,比如視覺、聽覺,機器在一定限定條件下已經能夠做到足夠好了。在一些動態(tài)的任務中,需要持續(xù)地與環(huán)境進行交互、收集反饋、優(yōu)化策略。如何適應現實場景,也是一個重要的研究方向。人工智能的發(fā)展在人工智能概念被提出60年后,我們真正進入了一個人工智能的時代。在這次人工智能浪潮中,人工智能技術持續(xù)不斷地高速發(fā)展著,最終將深刻改變各行各業(yè)和我們的日常生活。發(fā)展人工智能的最終目標并不是要替代人類智能,而是通過人工智能增強人類智能。人工智能可以與人類智能互補,幫助人類處理許多能夠處理但又不擅長的工作,使得人類從繁重的重復性工作中解放出來,轉而專注于創(chuàng)造性的工作。v.s.2計算機視覺ComputerVision計算機視覺計算機視覺要解決的問題就是讓計算機看懂圖像或者視頻里的內容。更進一步地說,計算機視覺就是一門研究如何使機器“看”的科學,要用計算機來實現人類的視覺功能,即對客觀世界中三維場景的感知、加工和解釋。物體識別人臉識別圖像檢索計算機視覺的難點讓計算機能夠通過攝像機來感知這個世界卻是非常之難,最大難點是在于語義鴻溝(semanticgap)。計算機視覺還存在拍攝視角變化、目標占據圖像的比例變化、光照變化、背景融合、目標形變、遮擋等種種困難。計算機視覺與交叉學科的關系圖像工程是一門內容非常豐富的學科,包括既有聯系又有區(qū)別的三個層次:圖像處理、圖像分析及圖像理解。計算機視覺與交叉學科的關系圖像處理著重強調在圖像之間進行的轉換(圖像為輸入,圖像為輸出)。計算機視覺與交叉學科的關系圖像分析主要是對圖像中感興趣的目標進行檢測和測量,以獲得它們的客觀信息,從而建立對圖像中目標的描述(圖像為輸入,數據為輸出)。計算機視覺與交叉學科的關系圖像理解的重點是在圖像分析的基礎上進一步研究圖像中各目標的性質和它們之間的相互聯系,并得出對整幅圖像內容含義的理解以及對原來成像客觀場景的解釋,從而可以讓人們做出判斷,并指導和規(guī)劃行動。計算機視覺與交叉學科的關系模式識別,主要集中在對圖像中感興趣內容(目標)進行分類、分析和描述,在此基礎上還可以進一步實現計算機視覺的目標。計算機視覺與交叉學科的關系計算機視覺的研究中也使用了很多模式識別的概念和方法,但傳統的模式識別并不能把計算機視覺全部包括進去。計算機視覺與交叉學科的關系計算機圖形學,研究如何利用計算機技術來產生表達數據信息的圖形、圖表、繪圖等形式。一般人們將計算機圖形學稱為計算機視覺的反/逆(inverse)問題,與計算機視覺也有密切的關系。計算機視覺與人工智能人工智能,指由人類用計算機模擬、執(zhí)行或再生某些與人類智能有關的功能的能力和技術。視覺功能是人類智能的一種體現,所以計算機視覺與人工智能密切相關。計算機視覺的研究中使用了許多人工智能技術,反過來,計算機視覺也可看作是人工智能的一個重要應用領域,需要借助人工智能的理論研究成果和系統實現經驗。計算機視覺的發(fā)展歷程傳統計算機視覺20世紀50年代興起的統計模式識別,被認為是計算機視覺技術的起點。1966,麻省理工人工智能實驗室的SeymourPapert教授決定啟動夏季視覺項目,并在幾個月內解決機器視覺問題。雖然未成功,但標志著計算機視覺的正式誕生。20世紀90年代到21世紀初,計算機視覺理論進一步發(fā)展,特征對象識別開始成為重點,主要方法為特征提取加上機器學習方法來解決計算機視覺問題。如SIFT,SUFR,HOG特征。優(yōu)點:在簡單問題上表現很好,可解釋性強,運算速度較快。缺點:精度較差。依賴于特征提取,而在復雜多變的任務中,確定有效且具有泛化能力的特征需要計算機視覺研究人員的大量經驗和調試,具有很大難度。計算機視覺的發(fā)展歷程深度學習下的計算機視覺1998年,YannLeCun提出了第一個卷積神經網絡,名為LeNet5,用于手寫數字識別,是現在卷積神經網絡的原型。2012年,AlexNet贏得了ImageNet圖像分類挑戰(zhàn)賽的第一名,遠遠超過了傳統方法的預測性能,故卷積神經網絡得到廣泛關注,也使得深度學習開始火熱起來。2014年,蒙特利爾大學提出生成對抗網絡GAN,其可以用一串隨機數來生成人眼難以分辨真假的照片。2016年Facebook的AIResearch(FAIR)宣布其DeepFace人臉識別算法有著97.35%的識別準確率,幾乎與人類不分上下。優(yōu)點:擁有更好的準確率和泛化能力,自動提取有效特征。缺點:需要大量標簽數據和計算資源支撐,可解釋性差等。計算機視覺的主要任務圖像分類是根據圖像的語義信息對不同類別圖像進行區(qū)分,是計算機視覺的核心,是物體檢測、圖像分割、物體跟蹤、行為分析、人臉識別等其他高層次視覺任務的基礎。計算機視覺的主要任務目標檢測任務旨在找到給定圖像中所有目標的位置,并給出每個目標的具體類別。如右圖所示,用邊框標記圖像中所有物體的位置,并標注其類別。計算機視覺的主要任務語義分割是計算機視覺中的基本任務,需要將圖片像素分為不同類別的區(qū)域。它將整個圖像分成像素組,然后對像素組進行標記和分類。語義分割實例分割計算機視覺的主要任務圖像生成,顧名思義,就是人工生成包含某些特定內容的圖像,以達到照片般的逼真。生成對抗網絡GAN不斷訓練所生成的手寫數字圖像計算機視覺的應用實例工業(yè)視覺:如工業(yè)檢測、工業(yè)探傷、自動生產流水線、辦公自動化、郵政自動化、郵件分撿、金相分析、無損探測、印刷板質量檢驗、精細印刷品缺陷檢測以及在各種危險場合工作的機器人等。人機交互:讓計算機借助人的手勢動作(手語)、嘴唇動作(唇讀)、軀干運動(步態(tài))、人臉表情測定等了解人的愿望要求而執(zhí)行指令,這既符合人類的交互習慣,也可增加交互的方便性和臨場感等。計算機視覺的應用實例安全監(jiān)控:如人臉識別,罪犯臉型的合成、識別和查詢,指紋、印章的鑒定和識別,支票、簽名辨?zhèn)蔚龋捎行У乇O(jiān)測和防止許多類型的犯罪。軍事公安:如軍事偵察、合成孔徑雷達圖像分析、戰(zhàn)場環(huán)境建模表示。計算機視覺的應用實例遙感測繪:如礦藏勘探、資源探測、氣象預報、自然災害監(jiān)測監(jiān)控等。視覺導航:如太空探測、航天飛行、巡航導彈制導、無人駕駛飛機飛行、自動行駛車輛的安全操縱、移動機器人、精確制導、公路交通管理以及智能交通等各個方面等。計算機視覺的應用實例生物醫(yī)學:紅白血球計數,染色體分析,各類X光、CT、MRI、PET圖像的自動分析,顯微醫(yī)學操作,遠程醫(yī)療,計算機輔助外科手術等。虛擬現實:如飛機駕駛員訓練、醫(yī)學手術模擬、戰(zhàn)場環(huán)境建模表示等,可幫助人們超越人的生理極限,產生身臨其境的感覺,提高工作效率。計算機視覺的應用實例圖像自動解釋:包括對放射圖像、顯微圖像、遙感多波段圖像、合成孔徑雷達圖像、航天航測圖像等的自動判讀理解。對人類視覺系統和機理,以及人腦心理和生理的研究等。這對人們理解人類視覺系統,推動了相關的發(fā)展起到了積極作用。小結本章對該書的兩大主題——人工智能和計算機視覺進行概括式的講述。關于人工智能,本章分別介紹了人工智能的定義、發(fā)展歷程、應用與未來,重點闡述人工智能、機器學習和深度學習三者的概念和關系。關于計算機視覺,本章分別介紹了計算機視覺的定義、與交叉學科的關系、發(fā)展歷程和主要任務及其應用,其中計算機視覺中的傳統方法和深度學習方法的聯系與區(qū)別,計算機視覺的主要任務為該部分的掌握重點。通過閱讀本章內容,讀者可大致了解該書的整體架構。感謝你的學習Thankyouforyourstudy第二章Python語法基礎前期知識儲備PreliminaryknowledgereservePython是一種通用型、解釋型語言,自身帶有龐大的標準庫,可操作性比較強,可以快速設計出計算機程序,有效提升數據分析和數據處理的效率。學習Python語言基礎知識對每章給出的案例實踐有很大的幫助,本視頻旨在對Python的基礎知識進行描述,重點介紹基本操作語句的使用。知識框架Knowledgeframework學習目標Learningaims(1)學會配置Python語言環(huán)境;(2)了解Python基本對象類型;(3)掌握Python的基本操作語句;(4)掌握函數、類、模塊的使用方法。1Python介紹Python語言的特點(1)簡單易學(2)免費開源(3)可移植性(4)面向對象與面向過程(5)豐富的第三方庫Python應用機器學習和深度學習Web開發(fā)數據分析與科學計算網絡爬蟲自動化運維2基礎語法與對象類型基礎語法(1)輸入/輸出使用print()函數操作。print()函數會按照順序依次打印出括號中的內容,遇到“,”會輸出一個空格。例如:
print('apple','red','sweet’)#輸出結果:appleredsweet通過input()函數控制輸入,其中輸入的數據以字符串類型存儲。例如:apple=input('sunday’)print(apple)#存放到一個變量中,輸出結果:Sunday(2)注釋Python中對單行內容加以注釋時,前邊加上“#”,以一行語句為一個單位。(3)行與縮進Python中通常一行代碼就是一條語句,若所寫程序代碼比較長,導致無法在一行全部寫下,此時可以用分行“\”將一行代碼分成多行語句,有助于保持代碼的可閱讀性。Python語言編寫代碼時不建議使用【Tab】鍵設定縮進,更不建議【Tab】鍵和空格鍵混合使用?;A語法(4)標識符所謂的標識符相當于人的名字,主要作用是為變量、函數、類、模塊、對象命名,標識符命名需要遵循以下規(guī)則:(1)標識符是由大小寫字母、下劃線和數字組成的,且規(guī)定第一個字符不能是數字,如123name是不符合要求的;(2)標識符中不能包含空格、@、$、%等特殊符號;(3)標識符不能和關鍵字重名;(4)不能使用內置函數名和數據類型作為標識符,如int;(5)標識符會區(qū)分大小寫,如name和Name代表著不同的標識符;(6)如若以下劃線開頭,要注意不同的含義?;緦ο箢愋蚉ython中有六個基本對象類型:1、Number(數字)Python中數字有四種類型:整數(int)、布爾型(bool)、浮點數(float)和復數(complex)2、String(字符串)Python中的字符串沒有很復雜的要求,一個字符就可以認為是一個長度為1的字符串,用str表示,內容用單引號或者雙引號包裹起來。3、List(列表)list是一種有序的集合,可以隨時添加和刪除其中的元素,像字符串一樣,輸出列表元素時,正向反向(負)都能找到元素的位置。4、Tuple(元組)Tuple與list的用法相似,但是它們最大的不同是元組一旦經過初始化之后就不能再進行修改,這樣的規(guī)定保證了代碼的安全性。元組變量也是一種對象,所以創(chuàng)建元組變量的方式也有兩種:(1)使用圓括號直接賦值;(2)使用元組構造函數tuple()創(chuàng)建。5、Set(集合)集合的三大特點:互異性、確定性、無序性。6、Dictionary(字典)字典dictionary可存儲任意類型的對象,非常靈活。字典中的索引稱為“鍵”,一個鍵值對表示為:key:value,中間用冒號隔開,每個鍵值對之間用逗號隔開,整個字典的內容包括在花括號里。3運算符算術運算符算術運算符基本操作表算術運算符描述舉例+加兩個對象相加a=2;b=3print(a+b)#結果輸出為5-減兩個對象相減a=2;b=3print(a-b)#結果輸出為-1*乘兩個對象相乘a=2;b=3print(a*b)#結果輸出為6/除兩個對象相除a=6;b=3print(a/b)#結果輸出為2.0%取模返回除法的余數a=6;b=4print(a%b)#結果輸出為2**冪返回x的y次冪a=2;b=4print(a**b)#結果輸出為16//取整向下取商的整除a=5;b=2print(a//b)#結果輸出為2比較運算符比較運算符用于比較兩個對象之間的大小,判斷是否相等或者大于小于運算,返回結果不是某個具體的數,而是True或False。算術運算符基本操作表比較運算符描述舉例(a=5,b=2)==等于比較兩個對象是否相等print(a==b)#結果輸出為False!=不等于比較兩個對象是否不相等print(a!=b)#結果輸出為True>
大于左邊大于右邊
則為真print(a>b)#結果輸出為True<
小于左邊小于右邊則為真print(a<b)#結果輸出為False>=大于等于左邊大于等于右邊則為真print(a>=b)#結果輸出為True<=小于等于左邊小于等于右邊則為真print(a<=b)#結果輸出為False賦值運算符賦值運算符基本操作表賦值運算符描述舉例=基本賦值a=b,將b賦值給a+=加法賦值a+=b相當于a=a+b-=減法賦值a-=b相當于a=a-b*=乘法賦值a*=b相當于a=a*b/=除法賦值a/=b相當于a=a/b%=取模賦值a%=b相當于a=a%b**=冪賦值a**=b相當于a=a**b//=取整賦值a//=b相當于a=a//b|=按位或賦值a|=b相當于a=a|b^=按位與賦值a^=b相當于a=a^b<<=左移賦值a<<=b相當于a=a<<b(左移b位,右移同理)>>=右移賦值a=b相當于a=a>>b邏輯運算符邏輯運算符基本操作表邏輯運算符描述舉例(a=5,b=2)and布爾“與”,等價于數學中的“且”,當x和y都為真時,最終輸出結果才為True。print(a>6andb>1)#結果輸出為Falseor布爾“或”,等價于數學中的“或”,只要x和y中有一個是真的,就可以運回True;否則返回False。print(a>6orb>1)#結果輸出為Truenot布爾“非”,等價于數學中的“非”,如果x為真的,返回False。如果x為假的,它返回True。print(nota>6)#結果輸出為True4控制語句if條件語句當判斷條件為一個時:if判斷條件:執(zhí)行語句......else:執(zhí)行語句......示例:age=int(input('請輸入年齡:'))ifage>=18:print('成年')else:print('未成年')輸出結果為:請輸入年齡:26成年當判斷條件為多個值時:if判斷條件1:執(zhí)行語句1……elif判斷條件2:執(zhí)行語句2……elif判斷條件3:執(zhí)行語句3……else:執(zhí)行語句4……示例:age=int(input('請輸入年齡:'))ifage>=18andage<=65:print('青年')elifage>=65:print('中老年')else:print('未成年')輸出結果為:請輸入年齡:100中老年for循環(huán)語句其他編程語言需要用循環(huán)變量來控制循環(huán),而Python語言中的for語句通過循環(huán)遍歷某一對象(例如:元組,列表,字典)來構建循環(huán),循環(huán)結束的條件就是對象遍歷完成。如果循環(huán)層次比較復雜,Python循環(huán)中允許一個循環(huán)套另一個循環(huán)。for循環(huán)格式:foriterating_varinsequence:statements for...else...循環(huán)格式:foriterating_varinsequence:statement1else:statement2continue語句和break語句都是用來終止程序,但是使用continue語句Python只終止當前一輪循環(huán)的語句,然后繼續(xù)進行下一輪循環(huán)。break語句直接讓程序跳出for和while的循環(huán)體,后邊的else語句直接不再執(zhí)行。循環(huán)中使用else語句必須在while循環(huán)正常完成后才能執(zhí)行,在while循環(huán)中,若條件表達式為真,則會一直循環(huán)。 While判斷條件:
執(zhí)行語句…… else:
執(zhí)行語句……while循環(huán)語句示例:sum=0#初始總和為0count=0#初始計數為0whilecount<=10:#當計數小于10sum=sum+count#總和加上count然后count+1count=count+1print(sum)#輸出結果:555函數函數的定義Python語言有很多內建函數,比如print(),但是也可以自定義函數。函數的定義規(guī)則:函數代碼塊以def關鍵詞開頭,后接函數標識符名稱和圓括號()。()里邊是參數,可以有也可以沒有,可以一個也可以多個。函數名要注意大小寫,遵循調用一致性。在定義完函數名的下一行要注意縮進開始寫函數體,函數體的縮進Python的要求是四個空格。最后結果用return來返回。參數的傳遞在Python函數中,可以定義可變參數。不難理解,可變參數就是傳入的參數個數是可變的,可以是1個、2個到任意個,也可以是0個。列表、字典、集合都是可變參數,在調用時跟初始定義使用同一個東西,一旦修改了函數體內部的內容,函數體外部調用該函數時內容也會更改。
在函數的定義部分數字、字符串、元組都是不可變參數。與可變參數相反,在函數體內部修改修改了數據之后,函數體外部調用不會受到任何影響。如果不是很好理解也可以看作在函數體內部進行修改時,只不過是創(chuàng)建了一個同名的參數而已,對這個同名參數的操作不會影響外部參數值??勺儏挡蛔儏祬档恼{用方式參數調用類型有四種:默認參數、關鍵字參數、位置參數、變長參數。默認參數指定義一個函數后直接給參數賦一個值,在調用函數時沒有傳遞參數的情況下,就把它當作默認值。關鍵字參數指不愿意服從位置順序傳遞,給關鍵字指定參數。位置參數指按照參數的位置依次傳遞。變長參數分為元組變長參數和字典變長參數,加了星號*的參數會以元組的形式導入,加了兩個星號**的參數會以字典的形式導入。匿名函數匿名函數是指不用def定義的沒有名字的函數,使用時創(chuàng)建,不能反復執(zhí)行,沒有過多冗余的操作。匿名函數使用lambda創(chuàng)建,與函數定義不同,lambda主體是一個表達式而不是一個代碼塊。
示例:sum=lambdaarg1,arg2:arg1+arg2print("相加后的值為:",sum(10,20))print("相加后的值為:",sum(20,20))輸出結果為:相加后的值為:30相加后的值為:406類和對象類和對象類相當于模板,對象是填充模板需要的原料。類class的定義后面緊接著是類名,類名通常是大寫開頭的單詞,后邊緊接著是對象,表示該類是從哪個類繼承下來的,如果沒有合適的繼承類,就使用object類,這是所有類最終都會繼承的類。 面向對象最重要的概念就是類和實例。類是抽象的,實例是具體的。由于類可以起到模板的作用,用__init__函數初始化對象當作類定義中的第一個函數。類定義的函數與其他函數相比并沒有很大的區(qū)別,類也可以用默認參數、可變參數、關鍵字參數和命名關鍵字參數。但是類定義最大的不同在于第一個參數永遠是實例變量self。7模塊模板在Python中模塊是一個包含已經定義好的.py源代碼文件,在模塊中通常會定義許多變量和函數,模塊可以被別的程序導入來使用這些變量和函數,以便使用該模塊中的函數等對象。Python中的模塊有三種來源:內置模塊、導入別人寫的、自定義的。模塊的導入路徑是一開始下載Python時指定的路徑。模板在Python中用import語句或者from...import語句來導入相應的模塊。具體使用如下格式。將整個模塊(module)導入,格式為:importmodul,比如導入sys模塊語句:importsys
導入sys模塊后,我們就有了變量sys指向該模塊,利用sys這個變量,就可以訪問sys模塊的所有功能。從某個模塊中導入某個函數,格式為:frommoduleimportfunction從某個模塊中導入多個函數,格式為:frommoduleimportfunction1,function2,function3將某個模塊中的全部函數導入,格式為:frommoduleimport*8內容回顧內容回顧Python語法的簡單化和動態(tài)數據類型,以及解釋型語言的本質特點,使它成為多數平臺上寫腳本和快速開發(fā)應用的編程語言。本視頻首先介紹了Python語言的特點及應用,然后介紹了基本語句和對象類型,最后對運算符、控制語句、函數、類、模塊的用法進行了講述,每一部分都給出了例子供學習記憶。通過學習本章內容,讀者可掌握本書所需的Python基礎知識。感謝你的學習BLUETHESISPROPOSALTEMPLATE第三章數據分析前言YOURENGLISHTITLE對收集來的數據進行處理與分析,提取有價值的信息是機器學習中的一個關鍵環(huán)節(jié)。數據分析的目的是實現效率最大化開發(fā)數據的功能,涉及到數據預處理,數據分析和數據可視化等操作,最后分析結果通過可視化呈現。本章重點對數據分析的基礎知識和常用工具進行介紹。。思維導圖學習目標(1)了解數據處理的基本流程;(2)了解numpy的功能與使用;(3)掌握pandas的功能與使用;(4)掌握Matplotlib的使用。1數據分析介紹數據收集問卷法:調查者通過設計問卷來讓其他人作答,來從被調查者的答案中獲取相關信息。這種方法操作簡單,但是數據質量難以保證,并且需要大量人力去發(fā)問卷。實驗法:通過進行實驗來得到相關的數據。這樣得到的結果一般來說比較準確,但是實施比較困難。觀察法:帶著特定的目的去進行研究和觀察。可以通用軟件工具或者感官進行觀察。它得到的結果也比較準確,但是較耗時。采訪/訪談法:通過多人或單人對用戶進行采訪,與用戶進行討論,得到相關數據。文獻法:通過查閱論文,書籍等資料得到數據。數據預處理很多原始數據在收集之后是不能直接應用的,它會存在各種各樣的問題影響使用,我們稱這些數據為“臟數據”?!芭K數據”可以分為以下幾種。數據重復:在數據集中有些數據重復出現多次,造成不必要的冗余。異常值(離群值):在數據集合中有一些數據很明顯偏離了數據集群。數據缺失:在一條數據記錄中存在屬性值為空的情況。數據不均衡:指的是數據集中的數據類別不均衡。數據噪聲:指的是一些數據記錄不合理或者錯誤。數據預處理數據預處理的方法一般有:數據清理,數據集成,數據規(guī)約和數據變換。數據清理一般指的是通過填補缺失值、刪除異常數據、平滑數據等手段來處理數據集中的一些“臟數據”。數據集成是將多個來源的數據放在一起存儲。在數據集成的過程中會遇到取值沖突,冗余等問題。所以一般數據集成后會對數據進行二次處理。數據規(guī)約通過技術手段降低數據規(guī)模,當數據規(guī)模較大時常用。數據變換一般是對數據進行變換使得更加規(guī)范,稀疏化。常用的變換方式有最大-最小規(guī)范化和Score標準化。2numpynumpy的介紹與安裝numpy的全稱是numericalpython。它是一個python的擴展程序庫,提供很多數學函數庫,支持數組矩陣運算。本章節(jié)主要介紹其中的nadrray數組對象以及numpy中一些常用的數學函數。numpy的安裝一般通過命令語句安裝或第三方自帶。上一章詳細講解了python的安裝方法,讀者在安裝numpy前需要安裝好Python的環(huán)境。一般在Anaconda上便會附帶numpy等關鍵包,讀者可使用Anaconda自帶的python環(huán)境。也可以在命令提示符中使用以下語句進行安裝:pip3install–usernumpyscipymatplotlibndarrayndarray是numpy中的N維數組對象,它是同一類型的數據集合。ndarray主要由跨度元組,維度大小,數據類型和指針四個部分組成。array.array:array.array只處理一維數組并提供較少的功能。ndarray對象有著一些更重要的屬性,具體如下:ndarray.ndim:數組維度的個數。維度一般用的最多的是一維和二維;ndarray.shape:數組的維度。它用來表示每個維度中數組的大小。shape元組的長度就是rank或維度的個數ndim;ndarray.dtype:一個描述數組中元素類型的對象;ndarray(1)創(chuàng)建一維數組importnumpyasnpa=np.array([1,2,3,4,5,6,7,8,9,10])print(a)#輸出結果:[12345678910](2)創(chuàng)建二維數組importnumpyasnpb=np.array([[1,2,0],[3,4,5],[6,7,8]])print(b)#輸出結果:[[120][345][678]](3)創(chuàng)建指定維數ndarrayimportnumpyasnpc=np.array([1,2],ndmin=5)print(c)#輸出結果:[[[[[12]]]]]常用函數字符串函數在numpy中有很多常用的函數,包括我們所熟知的字符串,數學,算數和統計函數等。字符串函數一般使用numpy.char來進行操作。numpy.char.add():對兩個字符串進行連接numpy.char.multiply():能夠實現多個相同的字符串連接numpy.char.replace():使用新字符串代替原字符串numpy.char.strip():移除串頭和串尾的特定字符numpy.char.split():對字符串進行分割,默認使用空格常用函數數學函數numpy.around():返回數字的舍入值(四舍五入)numpy.ceil():向上取整函數numpy.floor():向下取整函數常用的三角函數。np.sin(a*np.pi/180))np.cos(a*np.pi/180))np.tan(a*np.pi/180))常用函數運算函數加減乘除函數np.add()np.subtract()np.multiply()np.dividenumpy.mod():求余函數numpy.reciprocal():求導函數常用函數統計函數求最小值和最大值函數np.amin()np.amax()numpy.median():用于計算中位數numpy.mean():用于計算平均值np.std():用來計算標準差np.var():用來計算方差3pandaspandas的介紹與安裝pandas是python中的一個資源庫。它在數據分析中能發(fā)揮巨大作用,所以pandas基本已經成為數據分析的主流工具。它主要能夠實現加載數據,整理數據,操作數據,構建數據模型和分析數據五個功能。pandas庫在第三方都是自帶的。例如我們熟知的Anaconda,WinPython以及Python(x,y)。讀者想要通過這幾種方式安裝的可以直接去相應的第三方官網安裝。在Windows系統下,標準發(fā)行版上安裝pandas只需要在cmd命令提示符界面輸入:pipinstallpandas即可。DataFrame在Pandas中DataFrame是使用最多的數據結構。DataFrame它是一個二維表形的數據結構,有行和列的標簽,分別稱之為index和columns。DataFrame特殊之處在于它每列的數據類型可以不同,因此也被稱之為異構數據表。pd.DataFrame(data,index,columns,dtype,copy),是創(chuàng)建DataFrame對象的語句,其中五個參數分別表示輸入的數據,行標簽,列標簽,數據類型和復制數據參數(默認為否)。DataFrame創(chuàng)建DataFrame一般有以下四種方式:1.創(chuàng)建空的DataFrame對象2.利用列表創(chuàng)建DataFrame3.利用字典創(chuàng)建4.利用列表鑲嵌字典Series和DataFrame一樣,Series也是pandas中的一種數據結構,不同的是Series類似于一維數組,它由數據和標簽組成。Series能夠存任何類型的數據。創(chuàng)建Series語句使用s=pd.Series(data,index,dtype,copy)。括號中四個參數分別表示輸入的數據,索引值,數據類型和是否拷貝(默認為否)。Series的創(chuàng)建方法:1.創(chuàng)建空的對象。2.使用之前學習過的ndarray創(chuàng)建Series對象。3.利用字典來創(chuàng)建Series對象。4.創(chuàng)建一個標量Series對象。Pandas常見統計函數在Python中使用文件格式最多的是csv格式。利用df=pd.read_csv('文件名.csv')語句便可以讀取csv文件,然后能夠利用相應的函數對文件進行分析。在后面的實驗中,會體現更多關于Pandas的函數。下面介紹一些常用的統計函數。mean()函數返回數據的平均數;median()函數返回數據的中位數;mode()函數返回數據的眾數;std()函數得到數據的標準差;count()函數用來統計數據集中的非空數;min()和max()函數分別求數據的最大值和最小值;cumsum(),cumprod()函數分別計算數據集的累加和與累加積。4MatplotlibMatplotlib介紹與安裝python有很多功能強大的軟件包,Matplotlib是用于數據可視化的軟件包,它功能強大,使用簡單,能夠繪制各種2D圖像,應用極為廣泛。除此之外,Matplotlib還有一些功能擴展包,例如Mplot3d可用于3D繪圖,Bashmap可用于繪制地圖還有Natgrid包可用于對不規(guī)則數據網格化處理等等。Matplotlib的安裝有第三方軟件自帶以及命令行安裝兩種方式。Anaconda軟件中自帶Matplotlib軟件包,讀者可以預先下載Anaconda直接使用Matplotlib。不想使用Anaconda的也可以在cmd命令提示符窗口輸入pipinstallmatplotlib進行安裝。Matplotlib常用功能Matplotlib中,主要就是為了創(chuàng)建圖形對象,也就是figureobject??梢酝ㄟ^fig=plt.figure()語句創(chuàng)建空圖。利用ax=fig.add_axes([0,0,1,1])添加畫布。函數中的四個參數分別表示圖的左邊,下邊,寬度以及高度。其中四個參數都是在0到1之間。其中圖像的坐標,曲線顏色,數學函數圖像,圖像各處標題都可以通過修改代碼中函數的參數進行調整。除此之外,圖的軸也十分重要。在Matplotlib中,一般使用axes類來指定繪圖的區(qū)域。我們常畫的2D圖像一般包含兩個軸也就是兩個軸對象,而復雜的三維圖像則需要三個軸對象。Matplotlib常用功能部分圖例:曲線圖柱狀圖餅狀圖5項目實戰(zhàn):有關心臟病的數據分析項目介紹目前,預測疾病的模型有很多,對于特定的疾病,不同的模型結構和參數選擇對預測結果的影響非常大,而且疾病本身是一個非常復雜的現象,通常受到環(huán)境、個人、社會等多種因素的影響。本項目通過對患者數據進行分析,對可能得心臟病的有關因素進行預處理及分析,分析得到與心臟病有關的因素。本項目的數據使用Heart
Disease
UCI數據集,該數據集有76個屬性,本項目中只使用其中的14個屬性進行分析。本數據是從Kaggle中進行下載,直接在本項目中進行導入使用。數據統計與分析信息圖數據有303名患者樣本數據,14個特征屬性數據。年齡分析
柱狀圖小提琴圖年齡分析
年齡和性別散點圖年齡和患病分析小提琴圖心率分析
柱狀圖折線圖項目結論
在疾病預測的研究方法中,必須要在實踐中檢驗才能更加符合實際的應用。疾病本身是一個非常復雜的現象,通常受到環(huán)境、個人、社會等多種因素的影響。本次實戰(zhàn)通過對影響心臟病發(fā)病因子中的年齡、性別、最大心率及地中海貧血分別進行分析。由上述各個關系的可視化可以看出,年齡并不是影響心臟病的一個重要的因素;在性別中,女性比男性更容易患??;隨著年齡的增長,最大心率有一個明顯的下降的趨勢。小結介紹了關于數據處理的基礎知識,數據一共分為數據收集,數據預處理,數據分析,數據可視化,數據應用五個步驟。其次在numpy小節(jié)中主要講解了numpy的安裝numpy的作用,以及其中一些常用的函數。Pandas這一節(jié)主要講解了DataFrame和Series兩種數據結構,以及其中一些常見統計函數??梢暬糠种饕v解了Matplotlib的功能與使用。最后通過心臟病原因分析實例讓讀者對數據分析流程更為了解。感謝你的學習BLUETHESISPROPOSALTEMPLATE第四章數字圖像處理章節(jié)介紹Introduction數字圖像處理是一門涉及學科領域十分廣泛的交叉學科,在工業(yè)生產、機器視覺、視頻與多媒體系統等各個方面都存在極大的應用價值。它的目的主要是通過一系列數字圖像處理技術將圖像處理得更加符合人眼視覺感知,從而使信息清晰地展示在用戶面前。理解并熟練掌握數字圖像處理中相關的基礎知識就可以對計算機視覺領域中的方法有較為全面的認識。本章旨在介紹圖像、數字圖像等基本概念以及相關的基本處理方法,這些操作在計算機視覺領域的預處理等步驟被廣泛應用。學習目標Learningaims(1)掌握圖像、數字圖像、色彩空間等基本概念,理解圖像在計算機中的表示方法;(2)掌握基礎的圖像處理方法;(3)理解并掌握邊緣檢測的原理和步驟;(4)熟練使用OpenCV對圖像進行一系列基本操作。學習內容Learningcontent1圖像及視覺基礎Fundamentalsofimageandvision數字圖像概述數字圖像,又稱數碼圖像或數位圖像,用二維數組來表示。它是通過圖像數字化將原始圖像分割成一個個小的區(qū)域而得到的,主要包括采樣和量化兩個過程。采樣:指將在空間上連續(xù)的圖像轉換成離散的采樣點(即像素)的操作。量化:模擬圖像經過采樣后,離散化為像素,但像素值(即灰度值)仍為連續(xù)量,把采樣后所得的各像素的灰度值轉換為整數的過程稱為量化。采樣量化數字圖像概述矩陣是用于描述圖像的最常用的數據結構,它可以用來表示二值圖像(黑白圖像)、灰度圖像和彩色圖像。二值圖像:矩陣中的元素取值非0即1?;叶葓D:矩陣描述灰度圖像時,矩陣中的元素由一個量化的灰度級描述,灰度級通常為8位,即0-255之間的整數,其中0表示黑色,255表示白色。彩色圖像:利用3個分別代表R、G、B分量的大小相同的二維數組表示圖像中的像素,R表示紅色,G表示綠色,B表示藍色,通過三種基本顏色可以合成任意顏色。數字圖像概述二值圖灰度圖彩色圖色彩空間顏色空間按照基本結構可以分為兩大類:基色顏色空間以及色、亮分離顏色空間。RGB:在RGB顏色空間中,任意色光F都可以用R、G、B三色不同分量的相加混合而成。HSV:模型反映了人的視覺系統感知彩色的方式,以色調(Hue)、飽和度(Saturation)和明度(Value)三種基本特征量來感知顏色,用六角形椎體進行表示。三色光疊加圖HSV色彩空間2基礎圖像處理方法Basicimageprocessingmethod基本運算算術運算加法運算減法運算乘法運算除法運算邏輯運算與運算或運算異或運算非運算基本運算加法運算減法運算乘法運算除法運算基本運算圖像變換幾何變換包括:圖像平移變換:將圖像中的所有像素點按照給定的平移量進行水平或垂直方向上的位移。圖像放縮變換:對數字圖像的大小進行調整的操作。圖像旋轉變換:圖像以某一點為中心旋轉一定的角度,形成一幅新的圖像的過程。圖片鏡像變換:圖像旋轉變換的一種特殊情況,通常包括垂直方向和水平方向的鏡像。圖像變換圖像仿射變換:一種從一個二維坐標到另一個二維坐標的線性變換,是指在幾何中,一個向量空間進行一次線性變換并接上一個平移,變換為另一個向量空間。圖像透視變換:透視變換的本質就是空間立體三維變換,將圖像投影至另外一個視平面上,常常用作圖像矯正任務當中。圖像變換圖像平移圖像旋轉鏡像變換圖像變換仿射變換透視變換圖像變換從純粹的數學意義上看,傅立葉變換是將一個圖像函數轉換為一系列周期函數來處理的。其物理意義是將圖像的灰度分布函數變換為圖像的頻率分布函數,傅立葉逆變換是將圖像的頻率分布函數變換為灰度分布函數。實際上對圖像進行二維傅立葉變換得到頻譜圖,就是圖像梯度的分布圖,傅立葉頻譜圖上看到的明暗不一的亮點,實際上圖像上某一點與鄰域點差異的強弱,即梯度的大小,也即該點的頻率的大小。如果頻譜圖中暗的點數更多,那么實際圖像是比較柔和的;反之,如果頻譜圖中亮的點數多,那么實際圖像一定是尖銳的,邊界分明且邊界兩邊像素差異較大的。圖像變換傅立葉變換是在以時間為自變量的“信號”與頻率為自變量的“頻譜”函數之間的某種變換關系。通過傅立葉變換,可在一個全新的頻率空間上來認識信號:一方面可能使得在時域研究中較復雜的問題在頻域中變得簡單起來,從而簡化其分析過程;另一方面使得信號與系統的物理本質在頻域中能更好地被揭示出來。當自變量“時間”或“頻率”為連續(xù)形式和離散形式的不同組合,就可以形成各種不同的傅立葉變換對,即“信號”與“頻譜”的對應關系。傅立葉變換包含連續(xù)傅立葉變換、離散傅立葉變換、快速傅立葉變換、短時傅立葉變換等,在數字圖像處理中使用的是二維離散傅立葉變換。圖像增強點運算灰度變換:灰度變換是指根據某種目標條件按一定變換關系逐點改變源圖像中每一個像素灰度值的方法。目的是為了改善畫質,使圖像的顯示效果更加清晰。圖像的灰度變換處理是圖像增強處理技術中的一種非?;A、直接的空間域圖像處理方法,也是圖像數字化軟件和圖像顯示軟件的一個重要組成部分。包括:線性灰度變換和非線性灰度變換。直方圖變換:圖像直方圖是圖像的最基本的統計特征,記錄了圖像中每個像素值的數量。直方圖反映了圖像的明暗分布規(guī)律,可以通過圖像變換進行直方圖調整,獲得較好的視覺效果。包括:直方圖均衡化和直方圖規(guī)定化。圖像增強空域濾波平滑濾波器:平滑濾波器就是使像素點與周圍的像素點進行混合,致使圖像變得模糊,目的是為了減少噪聲,將“尖銳”的部分去除,刪除無用的細節(jié)部分,常用于圖像預處理部分。包括:均值濾波器、中值濾波器、高斯濾波器等。銳化濾波器:銳化濾波器與平滑濾波器作用相反,它可以削弱圖像中的低頻分量,使圖像的突變信息、邊緣信息更加明顯,產生更加適合人眼觀察的圖像,為進一步的圖像處理奠定基礎。包括:梯度銳化、拉普拉斯銳化等。形態(tài)學操作形態(tài)學操作是指處理圖像的形狀特征的圖像處理技術。我們在對圖像進行閾值處理、圖像增強等一系列預處理過程中會使圖像中存在一些噪聲。而形態(tài)學操作可以有效地去除影響圖像效果的噪聲點,從而改善圖像質量為后面的任務“打好基礎”。一般來說,形態(tài)學操作主要用來處理二值化圖像,其基本操作包括:膨脹、腐蝕、開運算、閉運算、形態(tài)學梯度、頂帽和黑帽。膨脹和腐蝕:基本思想簡單地認為是“將圖像擴大”,腐蝕則相反。開運算和閉運算:開運算就是先對圖像進行腐蝕操作再進行膨脹操作,閉運算則相反。形態(tài)學梯度:形態(tài)學梯度是指膨脹結果和腐蝕結果的差值,可以有效地將二值圖像的邊緣凸顯出來以此來保留邊緣信息。黑帽和頂帽:分別用來突出比鄰近點較暗或較亮的區(qū)域。形態(tài)學操作原圖像腐蝕膨脹開操作閉操作形態(tài)學梯度黑帽頂帽3邊緣檢測EdgedetectionSobel算子與Laplacian算子Sobel算子認為,鄰域的像素對當前像素產生的影響是不等價的。所以距離不同的像素具有不同的權值,對算子結果產生的影響也不同。一般來說,距離越遠,產生的影響越小。Sobel算子的原理,對傳進來的圖像像素做卷積,卷積的實質是在求梯度值,或者說給了一個加權平均,其中權值就是所謂的卷積核;然后對生成的新像素灰度值做閾值運算,以此來確定邊緣信息。拉普拉斯算子是最簡單的各向同性微分算子,具有旋轉不變性。Laplacian算子進行邊緣檢測并沒有像Sobel那樣的平滑過程,所以它會對噪聲產生較大的響應,并且無法分別得到水平方向、垂直方向或者其他固定方向的的邊緣。但是它只有一個卷積核,所以計算成本會更低。Canny算子Canny邊緣檢測算法是JohnF.Canny于1986年開發(fā)出來的一個多級邊緣檢測算法。通常情況下邊緣檢測的目的是在保留原有圖像屬性的情況下,顯著減少圖像的數據規(guī)模。目前有多種算法可以進行邊緣檢測,雖然Canny算法年代久遠,但可以說它是邊緣檢測的一種標準算法,而且仍在研究中廣泛使用。Canny算子求邊緣點的具體算法可以分為四個步驟:(1)使用高斯濾波器,以平滑圖像,濾除噪聲;(2)采用梯度濾波模板對圖像進行卷積,求取圖像X方向和Y方向的梯度,以及對應的夾角;(3)對梯度幅值進行非極大值抑制;(4)用雙閾值算法檢測和連接邊緣。由于它具有滿足邊緣檢測的三個標準和實現過程簡單的優(yōu)勢,成為邊緣檢測最流行的算法之一。4項目實戰(zhàn)Projectpractice項目介紹近年來,隨著我國汽車數量的不斷增長,交通事故也隨之增加。世界衛(wèi)生組織報告稱,全世界每年有135萬人死于道路事故。其中疲勞駕駛就是導致交通事故的重要原因之一,占傷亡人數的20%-30%。一般的疲勞表現有打哈欠、閉眼等,在本項目中我們利用Dlib第三方庫實現了一個疲勞駕駛檢測程序,通過計算嘴部、眼部的長寬比等來判斷駕駛員是否在疲勞駕駛。實現流程首先定義初始化函數。由于特征點預測器的返回值為臉部的68個特征點,每個部位的特征點都是連續(xù)且相鄰的。創(chuàng)建人臉檢測器、特征點檢測器以及疲勞檢測所需要的閾值。檢測人臉。利用人臉檢測器進行實現,輸入為灰度圖,輸出檢測到的人臉矩形框坐標列表。定位人臉關鍵點。利用關鍵點檢測器實現,輸入為圖像和矩形框坐標,輸出為68個關鍵點坐標。利用得到的特征點坐標計算眼部高寬比、面積大小和嘴部高寬比。檢測。首先創(chuàng)建檢測器示例,利用OpenCV開啟攝像頭并讀取每一幀圖像,利用檢測器進行檢測并做出判斷。5小結Summary小結本章介紹了數字圖像處理的一系列相關知識,首先介紹了圖像在計算機中的表示方法、圖像的色彩空間等基礎知識,之后通過一些案例講解了基礎的圖像處理方法,這些處理方法不論是在傳統的視覺任務當中還是深度學習當中都十分重要。然后我們介紹了圖像增強的基本操作和邊緣檢測的方法,二者的目的都是對圖像經過一系列操作從而產生適合我們進行分析和處理的圖像。最后我們利用OpenCV實現了疲勞駕駛檢測項目。感謝你的學習第五章機器學習前言YOURENGLISHTITLE機器學習是一門多領域的交叉學科,它主要研究計算機如何模擬人和學習人的行為。發(fā)展至今的機器學習已經應用在了自然語言處理、手寫識別、機器人應用、數據挖掘、計算機視覺等不同方向,很多機器學習中的方法都應用在了計算機視覺中。本章旨在對機器學習的基礎知識進行介紹,重點介紹決策樹算法、貝葉斯算法的基本流程。思維導圖學習目標(1)掌握機器學習模型評估;(2)掌握線性回歸與邏輯回歸;(3)掌握決策樹算法;(4)掌握貝葉斯分類算法;(5)了解常用聚類方法。1機器學習介紹機器學習機器學習是這樣一門學科,它通過大量的“經驗”來進行預測。在計算機中,通過大量的數據得到一個模型,模型可以對新的數據進行預測得到結果。這便是機器學習的基本解釋。其中策略,模型和算法被稱之為機器學習的三要素。模型就像是一個黑盒子,輸入數據然后模型輸出結果,策略是用來判斷模型的優(yōu)劣,算法則是指學習模型的具體計算方法。常用術語機器學習一般分為監(jiān)督學習,無監(jiān)督學習和半監(jiān)督學習。監(jiān)督學習指的是它的訓練數據都是帶有標記的,通過這些帶有標記的數據去不斷修正模型。監(jiān)督學習一般有分類和回歸兩類任務。分類問題輸出物體所屬的類別,它的輸出值是離散的,而回歸任務則是輸出一個值,它的輸出是連續(xù)的。諸如貓狗分類,它是屬于分類問題,像房價預測便是屬于回歸問題。無監(jiān)督學習則表示數據沒有標記。最常見的就是聚類與降維,關于這一點后面會有介紹。還有部分是半監(jiān)督學習,它通過少量帶有標記的數據和大量不帶有標記的數據來訓練模型。常用術語在開始機器學習之前,需要大量的數據。比如(前夜天氣=陰,前夜溫度=低,前夜?jié)穸?高),這就是判斷天氣的一個記錄,多個記錄的組成叫做“數據集”。每一個記錄我們都稱為樣本。天氣,溫度,濕度等稱之為屬性,上面的陰,低等稱之為屬性值。如果是監(jiān)督學習還需要對數據進行標記,上面那個樣本第二天的天氣會標記為晴天。要想得到一個模型,需要利用大量的數據進行訓練,我們把這些數據稱作“訓練數據”,它們的集合稱之為“訓練集”。訓練好模型之后還需要數據來進行測試不斷修正模型,我們稱之為“測試集”。最后我們需要數據來驗證模型的好壞,我們稱之為“驗證集”。機器學習發(fā)展歷史人工智能與機器學習的發(fā)展大致可以分為三個階段。二十世紀五十年代至七十年代運用基于符號表示的演繹推理技術,一般稱之為推理期。二十世紀七十年代中期至八十年代屬于知識期,基于符號知識表示,通過獲取和利用領域知識來建立專家系統。二十世紀八十年代至今叫做學習期,其中兩大主流技術分別是符號主義學習和基于神經網絡的連接主義學習。2模型的評估數據集的劃分數據集一般分為訓練集,測試集和驗證集。常見的劃分方法有三種。留出法:將數據集D劃分成兩個互斥的集合??梢苑Q之為訓練集X和測試集C,其中D=C+X。交叉驗證法:將數據集D劃分成K個大小相同的互斥集合,然后用1個集合作為測試集,剩下的K-1個集合作為訓練集。進行K次訓練與測試,最后返回它們的均值得到最終的結果。自助法:假設數據集D有a個樣本,每一次從D中選出一個樣本放入D1數據集,然后再放回樣本。如此重復a次得到D1數據集,D1中會有重復樣本或者一些樣本不出現樣本。沒采集到的樣本可以用來當作測試集。性能度量錯誤率:指的是分類錯誤的樣本數占樣本總數的比例。精度:分類正確的樣本數占樣本總數的比例。機器學習預測中,存在四個重要的參數。TP表示將正類預測為正類數,FN表示將正類預測為負類數,FP表示將負類預測為正類數,TN表示將負類預測為負類數。機器學習中存在查全率和查準率兩個指標。查全率:R=TP/(TP+FN)。查準率:P=TP/(TP+FN)。查準率和查全率兩者相斥。當查準率較高時,查全率便低,查準率低時,查全率便高。F1度量方法應用的更為廣泛。F1=(2×P×R)/(P+R)3線性模型線性回歸線性回歸的最終目的就是通過訓練來得出參數w讓f(x)接近y。在數學上就是找到一條曲線盡量擬合所有的數據樣本點。但是在線性模型中,直線幾乎不可能擬合所有的樣本點。所以機器學習中的線性模型訓練是盡量調整參數使線離大多數數據點更近,線與數據的差距在定量上稱之為誤差。均方誤差的損失函數定義:(J(w)=1/m∑_(i=1)^m(f(x^((i)))-y^((i)))^2=1/m(XW-y)^T(XW-y)將J對w進行求導進行梯度下降。即:W←W-α?J(W)/?W最后可以得到梯度下降的迭代過程:W←W-2/mαX^T(XW-y)邏輯回歸機器學習中,除了線性回歸,邏輯回歸的使用也比較多。但邏輯回歸的作用和線性回歸卻大不相同。邏輯回歸并不是用來完成回歸任務,它經常被用來進行分類。邏輯回歸中用到了Sigmoid函數。Sigmoid的函數形式為:g(z)=1/(1+e^(-z)將線性回歸模型的表達式帶入g(z),就得到邏輯回歸的表達式:hθ(x)=g(θ^Tx)=1/(1+e^(-θ^Tx))4決策樹算法基本流程決策樹學習的過程主要分為三個部分:(1)特征選擇:特征選擇是指從訓練數據中眾多的特征中選擇一個特征作為當前節(jié)點的分裂標準,如何選擇特征有著很多不同量化評估標準,從而衍生出不同的決策樹算法。(2)決策樹生成:根據選擇的特征評估標準,從上至下遞歸地生成子節(jié)點,直到數據集不可分則停止決策樹停止生長。(3)剪枝:決策樹容易過擬合,一般需要進行剪枝,縮小樹結構規(guī)模、緩解過擬合。剪枝技術有預剪枝和后剪枝兩種。劃分原則
剪枝
過擬合的樹在泛化能力的表現非常差。所以要進行剪枝處理,剪枝又分為預剪枝和后剪枝,前剪枝是指在構造樹的過程中就知道哪些節(jié)點可以剪掉。后剪枝是指構造出完整的決策樹之后再來考查哪些子樹可以剪掉。預剪枝在節(jié)點劃分前確定是否繼續(xù)增長,及早停止增長的主要方法有:節(jié)點內數據樣本數小于切分最小樣本數閾值;所有節(jié)點特征都已分裂;節(jié)點劃分前準確率比劃分后準確率高。后剪枝和預剪枝不同,它是等決策樹完全生成之后從下往上對決策樹進行剪枝處理。如果決策樹的劃分使得精確度下降,就進行剪枝(讓其不劃分)。4貝葉斯算法貝葉斯定理條件概率,一般記作P(A|B),意思是當B事件發(fā)生時,A事件發(fā)生的概率。其定義為:全概率公式:貝葉斯公式:貝葉斯算法
條件概率可以理解成下面的式子:后驗概率=先驗概率×調整因子。
先預估一個“先驗概率”,然后加入實驗結果,看這個實驗到底是增強還是削弱了“先驗概率”,由此得到更接近事實的“后驗概率”。樸素貝葉斯推斷:基于訓練集D來估計類先驗概率P(c),并為每個屬性估計條件概率P(xi|c)。Dc表示訓練集D中的第c類樣本組成的集合,若有充足的獨立同分布樣本,則可容易地估計出類別的先驗概率:5聚類聚類介紹
聚類問題是機器學習中無監(jiān)督學習的典型代表,在數據分析、模式識別很多實際問題中得到了應用。類也是要確定一個物體的類別,但和分類問題不同的是,這里沒有事先定義好的類別,聚類算法要自己想辦法把一批樣本分開,分成多個類,保證每一個類中的樣本之間是相似的,而不同類的樣本之間是不同的。在這里,類型被稱為“簇”(cluster)。聚類的分類
基于劃分的聚類方法應用十分廣泛。該方法首先要確定這樣本點最后聚成幾類,然后挑選幾個點作為初始中心點,再然后給數據點做迭代重置(iterativerelocation),直到最后到達“類內的點都足夠近,類間的點都足夠遠”的目標效果。層次聚類主要有兩種類型:合并的層次聚類和分裂的層次聚類?;诿芏鹊姆椒芙鉀Q不規(guī)則形狀的聚類。該方法同時也對噪聲數據的處理比較好?;诰W絡的方法的原理就是將數據空間劃分為網格單元,將數據對象集映射到網格單元中,并計算每個單元的密度。K-means聚類
K-means算法是找中心點到各個樣本點距離都相近的一個算法。K-means的算法步驟為:①選擇初始化的k個樣本作為初始聚類中心a=a1,a2,a3....。②針對數據集中每個樣本
計算它到k個聚類中心的距離并將其分到距離最小的聚類中心所對應的類中;③針對每個類別,重新計算它的聚類中心。④一直重復步驟②和③直到收斂。6項目實戰(zhàn):出行決策項目介紹下圖可以清楚的看到一共有四個屬性,分別是天氣,溫度,濕度,以及是否有風,標記表示是否出門。結果展示7項目實戰(zhàn):鳶尾花聚類項目介紹Iris鳶尾花數據集是一個經典數據集,在統計學習和機器學習領域都經常被用作示例。數據集內包含3類共150條記錄,每類各50個數據,每條記錄都有4項特征:花萼長度、花萼寬度、花瓣長度、花瓣寬度,可以通過這4個特征預測鳶尾花卉屬于(iris-setosa,iris-versicolour,iris-virginica)中的哪一品種。結果展示
數據分布聚類結果小結從引言開始,講解了機器學習一些常用術語以及它的發(fā)展歷史。隨后講解了機器學習中模型評估的一些參數以及如何劃分數據集。在回歸模型中,詳細講解了線性回歸和邏輯回歸,邏輯回歸主要用來做分類工作。決策樹算法中,詳細講解了決策樹的劃分原則以及它的剪枝技術。隨后講解了關于貝葉斯概率和貝葉斯算法的知識。在最后介紹了有關聚類的知識,它是一種無監(jiān)督的技術,其中對于k-means聚類有著詳細的介紹。感謝你的學習BLUETHESISPROPOSALTEMPLATE第六章深度學習概述深度學習是機器學習中的一個研究方向,是一種基于對數據進行表征學習的方法。學習樣本數據的內在規(guī)律和表示層次,學習過程獲得的信息對數據的解釋過程有很大幫助。深度學習的最終目標就是讓其能夠像人一樣具有分析數據,并進行學習的能力,然后對文字、圖像等數據進行識別或其他功能的實現。本章旨在對神經網絡的基礎知識進行介紹,重點介紹BP神經網絡的正反向傳播過程。思維導圖學習目標了解神經網絡基礎知識;掌握BP神經網絡的正反向傳播方法;掌握模型訓練方法;了解模型優(yōu)化方法,熟悉常見的梯度下降算法。1神經網絡概述隨著科學的發(fā)展,人們逐漸認識到人類的智能行為都和大腦活動有關。人類大腦是一個可以產生意識、思想和情感的器官。受到大腦神經系統的啟發(fā),早期的神經科學家構造了一種模仿人腦神經系統的數學模型,稱為人工神經網絡,簡稱神經網絡。在機器學習領域,神經網絡是指由很多人工神經元構成的網絡結構模型,由簡單元素及其分層組織成的大規(guī)模并行互連網絡,旨在以與生物神經系統相同的方式與現實世界的對象進行交互,這些人工神經元之間的連接強度是可學習的參數。神經網絡最開始是受生物神經系統的啟發(fā),為了模擬生物神經系統(人腦生理結構和功能)而出現的。人的神經系統是由眾多神經元相互連接而組成的一個復雜系統,因此,神經元是人類大腦“CPU”最基本的計算單元。人類神經系統中的神經元非常龐大,數量眾多,神經元之間通過突觸進行連接。生物神經元之間信息傳遞過程如下所示:每個神經元從樹突接收輸入信號,沿著唯一的軸突產生輸出信號,軸突通過分支和突觸連接到其他神經元的樹突。1.1神經元1.2感知機人工神經網絡(ArtificialNeuralNetwork,ANN)是對人腦最簡單的一種抽象和模擬,是人們模仿人的大腦神經系統信息處理功能的一個智能化系統,是20世紀80
年代以來人工智能領域興起的研究熱點。經過數十年的發(fā)展,人工神經網絡已經取得了很大進步,在模式識別、智能機器人、自動控制等領域已經解決了很多實際問題。人工神經元是一個多輸入、單輸出的非線性元件,通過對生物神經元的抽象化,用人工方法模擬生物神經元形成的。單層感知機是最簡單的神經網絡,可以理解為對輸入進行處理,得到結果并輸出結果的機器。其結構是將輸入層與輸出層直接相連。由于單層感知機無法解決線性不可分等復雜問題,所以設計了多層感知機(MultilayerPerception,MLP)。多層感知機是在單層感知機的輸入層與輸出層之間增加了若干隱藏層,隱藏層之間是全連接的,且輸出端從一個變成了多個。1.2感知機
單層感知機和多層感知機可以通過誤差修正學習確定輸入層和輸出層之間的連接權重。誤差修正學習是根據輸入數據的期望輸出和實際輸出之間的誤差來調整連接權重,但是不能進行跨層調整,無法進行多層訓練。因此,初期的多層感知機使用隨機數確定輸入層和隱藏層之間的連接權重,只對隱藏層和輸出層之間的連接權重進行誤差修正學習,這種情況下會造成輸入數據雖然不同,但是隱藏層的輸出值卻相同的情況,造成無法準確的進行分類。因此人們提出了誤差反向傳播算法,通過比較實際輸出和期望輸出值,得到誤差信號,然后把誤差信號從輸出層逐層向前傳播得到各層的誤差信號,再通過調整各層的連接權重以減小誤差。1.2感知機2BP神經網絡概述BP神經網絡是一種按誤差逆?zhèn)鞑P(BackPropagation)算法訓練的多層前饋網絡,是其最初是由PaulwerboS.S在1974年提出的,但是當時并沒有得到傳播,直到20世紀80年代中期BP神經網絡被重新發(fā)現。目前BP算法已成為應用最廣泛的神經網絡算法,據統計有近
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 辦理企業(yè)刻章委托書辦理實操分享3篇
- 審計招投標失誤3篇
- 學校和培訓機構合作協議3篇
- 工程勞動協議案例3篇
- 建筑砌塊設計大賽作品集考核試卷
- 皮鞋制作設備的選擇與維護考核試卷
- 海洋氣象與海洋生物地球化學循環(huán)考核試卷
- 2025租賃合同協議書范本【下載】
- 2025年標準的公司房屋租賃合同模板
- 2025如何構建醫(yī)療服務合同
- 《小學生預防溺水安全教育班會》課件
- 傳統園林技藝智慧樹知到期末考試答案2024年
- 直播中的禮儀與形象塑造
- 2024年八年級數學下冊期中檢測卷【含答案】
- 老年人中醫(yī)健康知識講座總結
- 海南聲茂羊和禽類半自動屠宰場項目環(huán)評報告
- 跳繩市場調研報告
- 《民法典》合同編通則及司法解釋培訓課件
- 《大學生的情緒》課件
- 交通事故法律處理與索賠案例分析與實踐指導
- 大學生組織管理能力大賽題庫第三屆
評論
0/150
提交評論