姓名:劉帆;學號:20021210609;學院:電子工程學院
轉(zhuǎn)載于:
https://blog.csdn.net/epubit17/article/details/114122796
【嵌牛導讀】從照片中識別出某位友人。對大多數(shù)人來說,就算照片光線不足,或是友人剛理過發(fā),或是換了新衣服,要認出他來也是輕而易舉的事。但若是要在計算機上編程來解決這個問題,應當如何開始呢?恐怕誰都會毫無頭緒吧。而這類問題正是機器學習所能夠解決的。
【嵌牛鼻子】機器學習,AI
【嵌牛提問】什么是機器學習?它能做什么?它與AI有何關(guān)系?
【嵌牛正文】
傳統(tǒng)上來講,計算機編程指在結(jié)構(gòu)化的數(shù)據(jù)上執(zhí)行明確的程序規(guī)則。軟件開發(fā)人員動手編寫程序,告訴計算機如何對數(shù)據(jù)執(zhí)行一組指令,并輸出預期的結(jié)果,如圖1-1所示。這個過程與稅務申報有些類似:稅單中的每個框都有明確的定義,并且有詳盡的規(guī)則指明如何進行計算。在有的地方,這種計算規(guī)則可能相當復雜。人們在填寫稅單時非常容易犯錯,而這正是計算機程序最擅長的任務。

與傳統(tǒng)的編程范式不同,機器學習不用直接實現(xiàn)算法,而是從樣本數(shù)據(jù)推斷出程序或算法。因此,在應用機器學習技術(shù)時,我們?nèi)匀幌蛴嬎銠C提供數(shù)據(jù),但不再提供指令,也不再等待預期的輸出,而是向它提供我們所希望的輸出,讓機器自己找到對應的算法。
要構(gòu)建一個計算機程序來識別照片中的友人,可以先獲取許多他的照片,然后用一套算法來分析這個照片集合,并生成一個能夠匹配照片的函數(shù)。如果這一步做得足夠好,生成的函數(shù)甚至可以用來檢驗沒見過的新照片。當然,程序其實并不知道它的目標是什么,它唯一要做的是判斷新圖片與提供給它的原始圖片是否相似。
在這個場景中,提供給機器用來訓練的圖片被稱為訓練數(shù)據(jù)(training data),而圖片中人物的名稱則被稱為標簽(label)。在為一個目標訓練(train)出算法之后,可以用這個算法來預測(predict)新數(shù)據(jù)上的標簽,以進行測試。圖1-2展示了一個示例,并描述了機器學習范式。

機器學習適用于規(guī)則模糊的場景。它擅長解決類似于“等我看到了才知道它是什么”的問題。我們不用直接編寫函數(shù),而是提供數(shù)據(jù)來指導函數(shù)應該做什么,然后科學地生成與數(shù)據(jù)相匹配的函數(shù)。
在實踐中,通常需要把機器學習和傳統(tǒng)編程結(jié)合起來,才能構(gòu)建出真正有用的應用。例如,對于前面提到的人臉識別應用,我們必須告訴計算機如何查找、加載和轉(zhuǎn)換示例圖像,然后才能對圖像數(shù)據(jù)應用機器學習算法。除此之外,還可能需要手寫一些規(guī)則,例如如何區(qū)分頭部特寫、日落和咖啡拉花。把傳統(tǒng)編程技術(shù)和先進的機器學習算法結(jié)合起來,往往會比只用其中一個要好得多。
1.機器學習與AI的關(guān)系
從廣義上講,AI是指任何讓計算機模仿人類行為的技術(shù)。AI技術(shù)包括很多不同的范疇,例如以下幾種:
(1)邏輯生產(chǎn)系統(tǒng),應用形式邏輯來分析語句;
(2)專家系統(tǒng),軟件開發(fā)人員嘗試將人類知識直接編碼到軟件中;
(3)模糊邏輯,定義算法來幫助計算機處理不精確的語句。
這幾個技術(shù)都是基于規(guī)則的,有時我們稱它們經(jīng)典AI或老式AI(Good Old-Fashioned AI,GOFAI)。
機器學習只是人工智能領(lǐng)域的眾多分支領(lǐng)域之一,但如今它可以說是最成功的一個。尤其是深度學習,作為機器學習的一個子領(lǐng)域,它成功地引領(lǐng)了近年來AI世界激動人心的幾次突破,甚至解決了困擾研究界數(shù)十年的問題。在經(jīng)典AI中,研究者分析人類行為,嘗試找到相應的規(guī)則,并編寫成代碼。而機器學習和深度學習解決問題的方式則完全相反:在機器學習里,我們先收集人類行為的樣例,再用數(shù)學與統(tǒng)計學技術(shù)從數(shù)據(jù)中抽取規(guī)則。
深度學習的應用簡直無處不在,以至于研究界常?;煊肁I和深度學習這兩個詞語。在本書中,為了避免混淆,我們用AI這個詞來表示用計算機模仿人類行為的一般問題,用機器學習或深度學習來特指從樣例中抽取算法的數(shù)學技術(shù)。
2.機器學習能做什么,不能做什么
機器學習是一種專門的技術(shù)。它不能用來更新數(shù)據(jù)庫記錄,也不能用來呈現(xiàn)用戶界面。在下面幾種情形中,應當優(yōu)先選擇傳統(tǒng)編程來解決問題。
(1)用傳統(tǒng)算法就能夠直接解決問題。如果可以直接編寫代碼來解決問題,那么與機器學習相比,傳統(tǒng)算法的理解、維護、測試和調(diào)試將更加容易。
(2)期望程序準確無誤。所有復雜的軟件都會出錯。在傳統(tǒng)的軟件工程中,我們可以系統(tǒng)地識別和修復bug,然而在機器學習中則并不總是如此。我們可以想辦法改進系統(tǒng),但若是過分專注于個別錯誤,往往會導致整個系統(tǒng)變得更糟。
(3)簡單的啟發(fā)式規(guī)則已經(jīng)夠好了。如果用幾行代碼就能夠?qū)崿F(xiàn)一個足夠好的規(guī)則,那么最好安于現(xiàn)狀。這種簡單的啟發(fā)式規(guī)則如果實現(xiàn)得足夠清晰,就會非常易于理解和維護。而機器學習生成的函數(shù)卻仿佛霧里看花,如果要修改更新,還需要再單獨執(zhí)行一遍訓練過程。相反地,如果需要維護一整套復雜的規(guī)則,那么用機器學習代替?zhèn)鹘y(tǒng)編程就可能是個很好的選擇了。
實際上,有些問題用傳統(tǒng)編程能夠解決,但如果對問題稍作變化,就可能連機器學習也難以解決了。這兩類問題的區(qū)別往往非常細微。例如,前面討論的圖像中人臉識別的問題與給人臉標記名稱的問題。又如,檢測文本所使用的語言并不難解決,但如果想將文本翻譯成其他指定的語言,其難度就會有天壤之別。
當問題的復雜度非常高時,人們往往還是傾向于使用傳統(tǒng)編程解決,即使機器學習可能更有用。在面對信息密集、錯綜復雜的場景時,例如在宏觀經(jīng)濟學、股票市場預測和政治領(lǐng)域中,人們通常傾向于尋求經(jīng)驗法則和規(guī)則表述。但實際上機器學習的發(fā)現(xiàn)往往能夠提供靈感,從而大大幫助這些流程管理人員或?qū)<覀兊闹庇X判斷。真實世界的數(shù)據(jù)往往比預想中更有結(jié)構(gòu)。在很多領(lǐng)域里,我們才剛剛開始感受到自動化與增強機器學習發(fā)展所帶來的好處。
本文摘自《深度學習與圍棋》

本書通過教讀者構(gòu)建一個圍棋機器人來介紹深度學習技術(shù)。隨著閱讀的深入,讀者可以通過Python深度學習庫Keras采用更復雜的訓練方法和策略。讀者可以欣賞自己的機器人掌握圍棋技藝,并找出將學到的深度學習技術(shù)應用到其他廣泛的場景中的方法。
本書主要內(nèi)容
● 構(gòu)建一個游戲 AI,并教會它自我改進。
● 用深度學習增強經(jīng)典游戲 AI 系統(tǒng)。
● 實現(xiàn)深度學習的神經(jīng)網(wǎng)絡。
要閱讀本書,讀者只需具備基本的Python技巧和高中水平的數(shù)學知識,而不需要任何深度學習經(jīng)驗。