一篇文章帶你徹底了解什麼是機器學習
原標題:機器學習到底是什麼?一篇文章帶你了解透徹
當我第一次試著編程時,我就愛上了這門藝術(是的,我相信編程既是科學又是藝術), 那一年,我九歲。 我很快就迷上了如何通過設置邏輯規則和條件來控制程序的流程,if... else語句,switch,循環等等。
在接下來的幾年裡,我學會了通過創建模塊和將代碼段抽象成函數和類的手段來保持代碼整潔。 我通過面向對象的分析和設計(OOA / D)增強了我的軟體開發技能。 我學習了代碼的重複使用和設計模式。 我學會了用UML圖形和示意圖來解釋我的程序。 我學會了將這些原則應用於近十幾種不同的編程語言之中。
但是編程的經驗法則保持不變:定義規則和邏輯。 其餘的只是幫助實施和維護這些規則的技巧。
幾十年來,基於規則的代碼主導了我們創建軟體的方式。 我們分析一個或一組問題,指定邊界,實例,進程,關係,並將它們轉換為確定軟體工作方式的規則。
雖然這種方法對我們來說很好,但卻導致了「笨」軟體,除非人類以某種方式更新其邏輯,否則該程序永遠不會改變其行為。 另外,它也不適用於規則不明確的情況,例如識別圖像中的對象,在網路流量中發現惡意活動,或是在不平坦的地面上對機器人進行導航。
機器學習是現代人工智慧的基石,它顛覆了傳統編程模式。機器學習有助於創建修正和改善其性能的軟體,而無需人類向其解釋如何完成任務。 這就是我們今天直接使用的, 以及許多即將發生的,創新背後的技術,包括你從網站,數字助理,無人駕駛汽車,分析軟體等處看到的令人驚訝的建議。
什麼是機器學習?
機器學習是從示例中學習的軟體。你不需要編寫機器學習的演算法,而是通過提供大量的相關數據,來訓練它們。 例如,不要試圖對機器演算法解釋一隻貓看起來是什麼樣的,你需要通過提供數百萬張貓的圖片來培訓它。該演算法在這些圖像中找到重複的模式,並為自己確定如何定義貓的外觀。在此之後,當你向該程序顯示新照片時,它可以區分照片中是否含有貓的成分。
許多人將機器學習等同於人工智慧。然而,AI是一個鬆散的概念,它可以應用於從複雜的、基於規則的軟體到尚未發明的,人類智能之間的任何事情。實際上,機器學習是AI的一個特別分支,它基於數據而並非規則來創建程序。
什麼是監督,無監督和強化學習?
機器學習有幾種不同風格的演算法。 其中最流行的是「監督學習」,進一步說,就是你使用帶有標籤數據的訓練演算法,將一組輸入對象(通常為矢量)映射到一組期望的輸出值中(也稱為監督信號)。 上面所講的貓的示例就是監督學習的一個例子。 另一個例子是語音識別,你可以通過提供聲音波形來對應其中的書面字體。
你提供給監督學習的演算法樣本越多,其分析新數據的能力就越精確。 而這也是監督學習的主要挑戰。 創建帶有標記樣本的大數據非常耗時,同時也需要大量的人力。 一些平台,如亞馬遜的Mechanical Turk提供數據標籤服務。
在「無監督學習」中,機器學習的另一個分支,則沒有參考數據,一切都沒有標籤。 換句話說,你提供輸入,但不提供輸出。 該演算法對未標記的數據進行整理,提取推論並找出模式。 無人監督學習對於人類無法定義的,隱藏模式的情況尤其有用。
例如,你允許機器學習演算法監視你的網路活動。 然後,它將根據其找到的模式設置正常網路活動的基準。根據這個標準,它將檢測並且記錄異常網路活動。
與監督學習相比,無監督的學習更接近於機器自我學習的過程。 然而,無監督學習的問題是其結果往往是不可預測的。 這就是為什麼它通常需要結合人的直覺來引導其保持正確方向,因為它一切都是自學的。 例如,上述網路安全的例子,網路活動中有許多原因會使其偏離規範,然而這並不是惡意製造的。 但機器學習的演算法並不知道。在開始的時候,人類分析人員必須糾正其決定,直到它學會判斷異常並作出更好的決策。
另一個不太知名的機器學習領域是「強化學習」。在強化學習中,程序員定義了狀態,期望目標,允許的行動以及約束。 該演算法通過嘗試將各種不同的允許行動進行組合來了解如何實現目標。 當你知道目標是什麼,但無法定義達到目標的路徑時,此方法特別有效。
強化學習在許多設置中被使用。 在更著名的案例中,Google DeepMind的AlphaGo,掌握了複雜的棋盤遊戲Go的機器學習程序。 該公司正在採用同樣的方法來提高英國電網的效率。 Uber也在使用相同的技術來教AI代理玩俠盜獵車手車(或更準確地說,讓它們自己學習)。
什麼是深度學習?
雖然機器學習是人工智慧的一個分支,但深度學習是機器學習的專門分支。 深度學習使用神經網路,一個具有人類大腦結構和功能的複製品。
深入學習解決了上一代學習演算法中存在的一個主要問題。先前, 隨著數據的增長,演算法平台的效率和性能趨於停滯。 現在,深度學習演算法在獲得更多數據的同時,其性能也在不斷改進。深度學習演算法並不是直接通過將輸入映射到輸出的方式,而是依賴於幾層處理單元。 每個層將其輸出傳遞到下一個層,進行處理,然後再傳遞到下一層。 在某些模型中,計算可能會在處理層之間來迴流動多次。現已證明深度學習在各種任務中非常有效,包括圖像字幕,語音識別和語言翻譯。
機器學習的挑戰是什麼?
雖然機器學習對未來應用的發展至關重要,但並不是沒有自己的挑戰。
一方面,機器學習演算法的開發和部署在很大程度上依賴於大量的計算和存儲資源來執行其任務。 這種依賴關係使得它們在執行時受限於雲服務和大數據。 因此,在執行邊緣計算機集成解決方案時(edge intelligence)它們更具挑戰性。
機器學習的另一個問題 - 特別是深度學習 - 是它的不透明度性。 隨著演算法變得越來越複雜,人類越來越難以解釋它們是基於什麼,做出決定的。 在許多情況下,這可能不是問題。 但是,當你想要對演算法做出關鍵決定時,使它們具有透明性並且讓人一目了然是非常重要的。
此外還存在一些偏見問題。 機器學習往往會吸收嵌入到它們在接受培訓時,數據中包含的一些的習慣和傾向。 在某些情況下,尋找和消除偏見很容易,而在其他情況下,它的嵌入度極深,人類往往難以察覺。
然而,這些挑戰都不可能阻止AI和機器學習成為我們這個時代的通用技術(這個術語曾經被用於蒸汽機和電力這樣的發明)。 不管我們往哪個方向發展,機器學習都將會對我們產生深刻影響。
點擊展開全文
※機器學習走向移動端成大勢所趨,或將再掀行業新浪潮
※微軟宣布推出新Azure機器學習工具,幫開發人員打造AI應用
※普通碼農入門機器學習,必須掌握這些數據技能
※當AI出現偏見時,如何讓機器學習演算法解釋自己的決策?
TAG:機器學習 |