手把手帶你學人工智能:什麼是機器學習

尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️

加入LINE好友

機器學習是一幫計算機科學家想讓計算機像人一樣思考所研發出的計算機理論,他們曾經說過,人和計算機本身沒有區別,同樣都是一大批互相連接的信息傳遞和存儲元素所組成的系統,所以有了這樣的想法,加上他們得天獨厚的數學功底,機器學習的前身也就孕育而生了。

機器學習的萌芽誕生於19世紀60年代,20年前開始逐步興起,它是一門跨學科的交融。這里邊包含了概率論,統計學等等學科,隨著計算機硬件的提升,計算機運算性能的不斷提高,他真正開始進入到我們的日常生活中,而在不久的將來,我相信他也會成為我們生活中必不可少的組成元素。

讓我們說說日常當中的機器學習的應用吧

第一個提到的,最具代表性的公司,應該就是Google,他們所研發的Google NOW,Google Photos都是基於機器學習的產物。同樣在百度,圖片識別也是應用到機器學習中的視覺處理系統。與此同時,各種各樣的企業都開始嘗試把自己的產品往機器學習上靠攏 。比如金融公司的匯率預測,股票漲跌,房地產公司的房價預測等等。

機器學習不僅只有一種方法,做到他的方法有多種多樣。這里所說的方法,在程序語言中,我們叫做算法。目前所有的機器學習的算法,大概分為四類到五類。如果在學習過程中,我們不斷向計算機提供數據和這些數據相對應的值。下面我舉一個例子

現在給計算機看一個貓和狗的圖片,告訴計算機那些圖片里的是貓,那些是狗,然後再讓他學習分辨去貓和狗,通過這樣的指引的方式,讓計算機學習我們是如何把這些圖片數據所對應的圖片所代表的物體,也就是讓計算機學習那些標籤可以代表那些圖片,這種方式就叫做「監督學習(Supervised learning)」,預測房屋的價格,股票的漲停同樣可以用監督學習來做到,大家所熟知的神經網路同樣是一種監督學習的方式,如果同樣在這樣的學習過程中,我們只給計算機提供貓和狗的圖片,但是並沒有告訴他那些是貓,那些是狗。取而代之的是,我讓他自己去判斷和分類,讓他自己總結出這兩種類型的圖片的不同之處,這就是一種「非監督學習(Un-superrvised Learning)」,在這一種學習過程中,我們可以不用提供數據所對應的標籤信息,計算機通過觀察各種數據之間的特性,會發現這些背後的規律,這些規律也就是非監督方法所學到的東西。

還有一種方法綜合了監督學習和非監督學習的特徵,這種就叫做「半監督學習」(semi-supervised learning),它主要考慮如何利用少量的,帶有標籤的樣本和大量的沒有標籤的樣本進行分揀和分類。

在規劃機器人的行為準則方面,一種機器學習的方法叫做「強化學習」(reinforcement learning),也就是把計算機丟到一個對於他完全陌生的環境或者讓他完成一項從未接觸過的任務,他自己回去嘗試各種的手段,最後讓自己去成功適應這樣一個陌生的環境,或者學會完成這件任務的方法途徑。比如說我像訓練機器人去投籃,我要只需要給他一個球,並告訴他你投進了我給你記一分,讓他自己去嘗試各種各樣的投籃的方法,在開始階段,他的命中率可能會非常低,不過他會想人類一樣,自己總結和學習投籃失敗活或者成功的經驗,最後可以達到一個很高的命中率。Google開發的AlphaGo也就是應用了其中的一種學習方式。還有一種就是和強化學習類似的一種學習方法,叫做遺傳算法(Genetio algorithm)。這一種方法是模擬我們熟知的進化理論,淘汰弱者,適者生存。通過這種淘汰的機制去選擇最優的設計或者模型。比如讓計算機學會玩超級瑪麗,最開始的馬里奧一代可能不久就會犧牲了,不過計算機會基於一代的馬里奧隨機生成第二代,然後再保存這些代里邊最厲害的馬里奧,淘汰掉比較弱的馬里奧,然後再次幾區強者的繁衍和變異,生成更強的馬里奧,這也就是遺傳算法的基本思想。

以上就是比較重要的機器學習方法,我們再來總結一下:

他們包括有數據和標籤的監督學習,只有數據沒有標籤的非監督學習,有結合了監督學習和非監督學習的半監督學習。還有從經驗中總結提升的強化學習。最後是和強化學習類似的,有著適者生存的,不適者淘汰準則的遺傳算法學習。如果你不僅僅只滿足與弄懂這些的區別,還想學著如何在你的生活中如何使用這些機器學習的方法。推薦去麻省理工的網站上尋找更多的資料,也可以繼續關注我,我也會定期的推薦如何用當下流行的編程語言Java和他的機器學習模塊來做到通俗易懂的機器學習的教程。

什麼是神經網路

我們現在所談論的神經網路不是動物或者人上的神經網路,而是為計算機量身定制的神經系統。

計算機神經網路是一種模生化物的神經中樞或者動物的神經網路的功能所涉及的結構,他本質上是一種數學模型或者是計算機模型。神經網路是由大多數的計算機神經元進行連接進行計算,大多數情況下,計算機神經元能夠在外界的影響下可以改變自己的內部結構,可以逐步的適應的這樣的一個逐步的過程。現代神經網路是一種基於現代統計學,邏輯概率學所構建的一種工具,常用來對於輸入和輸出間的特殊關係進行建模或者來探索數據間的模式,神經網路是一種高大的數學模型,有大量的節點或者說神經元之間的聯繫構成。正如人類神經系統的神經元一樣,他們負責傳遞信息和加工信息,神經元也可以被訓練和被強化,形成固定的神經意識形態,對特殊的信息會有更加強烈的反應。

現在舉一個例子,你現在看見一只貓,不管他現在是睡覺,跳躍,還是飛奔,你都會知道他就是一只貓,這一點不會改變。因為你已經被告知過圓眼睛,毛茸茸有著尖耳朵的那個動物叫做貓,所以你通過你已經成熟的視覺神經系統判定他就是一只貓,計算機也是這樣,通過不斷地訓練那些是貓,那些是狗,哪些是牛。他們會用一個統一的數據模型來統一概括學習者的判斷力,最後用數學形式,也就是我們所熟知的0101的數字編碼的方式判斷他看到的應該是屬於哪一類,目前的百度圖片搜尋和Google photos都可以輕易的判別人物地點或者事物,這些都歸功於計算機視覺的突破發展

上圖所示的是一個可視化的視覺神經系統,是由多層的神經元組成,為了區分不同的神經層,我們會有不同的神經層的名稱,輸入層是負責接受信息的神經層,負責傳遞接收到的信息,比如說你看到一只貓的圖片,輸出層是信息在神經元當中傳遞和中轉,分析和權衡的輸出的結果,通過輸出的結果我們就可以直接清晰的看出計算機對於事物的認知。隱藏層是在輸入和輸出層之間眾多的各個神經元構成的各個神經元的連接層面,隱藏層可以有多層,但是習慣上只會用一層,其主要作用就是對於傳入信息的分析加工和處理,就像人類的感知系統一樣,信息的傳遞往往也需要多層的信息的加工才能延伸出對於這樣的感覺的理解。

通常來是說計算機所看到的和所處理到的東西是和人類的理解是有很大的不同的,無論是圖片聲音和文字,在計算機中都只能以數字01出現,如果在當時你想問電腦,你看看我給你的這個圖片是不是只貓的時候,他能真正看到的就是一堆數字,通過對這一對的數字的加工處理從而生成另外一堆的數字,而生成出來的數字也就有了認知上的意義,通過一點點的處理,我們就能夠判別出計算機所分析出的圖片是貓還是狗。

接下來讓我們說說神經網路是怎樣被訓練的,首先,我們得需要很多很多的數據,非常多的數據,比如說我想要計算機判別貓或者狗,首先我就先得貯備好上千萬張帶有標籤的貓貓狗狗的照片,然後再進行上千萬次的訓練。慶幸的是我們現在的計算機的運算速度已經做夠快,我們並不需要對計算速度而發愁。我們所要做的就是給計算機看圖片,然後計算機給你一個極不成熟也不準確的答案,然後在接下來的運算中,100次的計算中有10次是正確的。在這樣你給計算機看的是一只貓,但是計算機卻認為他是一只狗,顯然是區分錯誤,但是這一次的區分錯誤,對於計算機是有極大的價值的,我們可以利用這一個的錯誤的經驗作為我們從錯題中獲取的經驗,那麼計算機是如何學習經驗的呢,那就是計算機通過預測的答案和真實的答案然後吧這樣的差別反向的傳遞回去,對每一個神經元向正確的方向上改進一點點,這樣通過下一次識別的時候,所有改進的識別網路計算機又可以識別的準確的一點點,這樣的每一次的一點點類加上上千次的訓練,這樣就像正確的方向上邁進了正確的一大步。

最後到了驗收結果的時候,再給計算機幾張貓咪的圖片,計算機就可以毫不猶豫的給出一個自信滿滿的答案,這就是只貓。現在我們就可以更進一步的來看看神經網路是如何進一步的被訓練的

原則上,每一個的神經元在他的位置上都有屬於他的次級函數,我們可以用這樣的函數給計算機一個刺激的行為,第一次給計算機看一只飛奔的貓時,神經網路里只有部分的神經元被激勵或者是被激活,被激活的信息就是計算機最重視的信息,也是輸出結果最有價值的信息,如果預測的結果是一個狗,所有的神經元的參數就會被調整,這時候讓一些原本容易被激活的神經元變得遲鈍而一些卻變得敏感起來,這就說明所有的神經元都在被激勵起來,正在對正確的答案研究起來

就得出了他是一只貓。

這就是神經網路建模的基本過程,如果想深入了解,請大家多多交流。

About 尋夢園
尋夢園是台灣最大的聊天室及交友社群網站。 致力於發展能夠讓會員們彼此互動、盡情分享自我的平台。 擁有數百間不同的聊天室 ,讓您隨時隨地都能找到志同道合的好友!