機器學習到底是什麼?一篇文章帶你瞭解透徹
來自:36氪連結:http://36kr.com/p/5093721.html原文:
https://techfinancials.co.za/2017/09/08/what-is-machine-learning/
機器學習的基本概念、現狀和挑戰。
編者按:人工智慧和機器學習可謂火爆空前。自從AlphaGo完勝人類圍棋頂尖棋手後,人們關於人工智慧的討論就從未間斷過。 有人說,人工智慧會使大批人失業,又有人說,人工智慧會給人類帶來威脅。更多人期待的則是,人工智慧可以幫助我們創造更多的價值。AI是一個非常廣義的概念。為了更好的瞭解它,現在先讓我們來討論一下人工智慧的一個重要分支——機器學習。本文編譯於Ben Dickson近期在techfinancials.co.za上發表的題為“What is machine learning?”的文章。
當我第一次試著程式設計時,我就愛上了這門藝術(是的,我相信程式設計既是科學又是藝術), 那一年,我九歲。 我很快就迷上了如何通過設定邏輯規則和條件來控制程式的流程,if... else語句,switch,迴圈等等。
在接下來的幾年裡,我學會了通過建立模組和將程式碼段抽象成函式和類的手段來保持程式碼整潔。 我通過物件導向的分析和設計(OOA / D)增強了我的軟體開發技能。 我學習了程式碼的重複使用和設計模式。 我學會了用UML圖形和示意圖來解釋我的程式。 我學會了將這些原則應用於近十幾種不同的程式語言之中。
但是程式設計的經驗法則保持不變:定義規則和邏輯。 其餘的只是幫助實施和維護這些規則的技巧。
幾十年來,基於規則的程式碼主導了我們建立軟體的方式。 我們分析一個或一組問題,指定邊界,例項,程式,關係,並將它們轉換為確定軟體工作方式的規則。
雖然這種方法對我們來說很好,但卻導致了“笨”軟體,除非人類以某種方式更新其邏輯,否則該程式永遠不會改變其行為。 另外,它也不適用於規則不明確的情況,例如識別影象中的物件,在網路流量中發現惡意活動,或是在不平坦的地面上對機器人進行導航。
機器學習是現代人工智慧的基石,它顛覆了傳統程式設計模式。 機器學習有助於建立修正和改善其效能的軟體,而無需人類向其解釋如何完成任務。 這就是我們今天直接使用的, 以及許多即將發生的,創新背後的技術,包括你從網站,數字助理,無人駕駛汽車,分析軟體等處看到的令人驚訝的建議。
什麼是機器學習?
機器學習是從示例中學習的軟體。 你不需要編寫機器學習的演算法,而是通過提供大量的相關資料,來訓練它們。 例如,不要試圖對機器演算法解釋一隻貓看起來是什麼樣的,你需要通過提供數百萬張貓的圖片來培訓它。 該演算法在這些影象中找到重複的模式,併為自己確定如何定義貓的外觀。在此之後,當你向該程式顯示新照片時,它可以區分照片中是否含有貓的成分。
許多人將機器學習等同於人工智慧。 然而,AI是一個鬆散的概念,它可以應用於從複雜的、基於規則的軟體到尚未發明的,人類智慧之間的任何事情。 實際上,機器學習是AI的一個特別分支,它基於資料而並非規則來建立程式。
什麼是監督,無監督和強化學習?
機器學習有幾種不同風格的演算法。 其中最流行的是“監督學習”,進一步說,就是你使用帶有標籤資料的訓練演算法,將一組輸入物件(通常為向量)對映到一組期望的輸出值中(也稱為監督訊號)。 上面所講的貓的示例就是監督學習的一個例子。 另一個例子是語音識別,你可以通過提供聲音波形來對應其中的書面字型。
你提供給監督學習的演算法樣本越多,其分析新資料的能力就越精確。 而這也是監督學習的主要挑戰。 建立帶有標記樣本的大資料非常耗時,同時也需要大量的人力。 一些平臺,如亞馬遜的Mechanical Turk提供資料標籤服務。
在“無監督學習”中,機器學習的另一個分支,則沒有參考資料,一切都沒有標籤。 換句話說,你提供輸入,但不提供輸出。 該演算法對未標記的資料進行整理,提取推論並找出模式。 無人監督學習對於人類無法定義的,隱藏模式的情況尤其有用。
例如,你允許機器學習演算法監視你的網路活動。 然後,它將根據其找到的模式設定正常網路活動的基準。根據這個標準,它將檢測並且記錄異常網路活動。
與監督學習相比,無監督的學習更接近於機器自我學習的過程。 然而,無監督學習的問題是其結果往往是不可預測的。 這就是為什麼它通常需要結合人的直覺來引導其保持正確方向,因為它一切都是自學的。 例如,上述網路安全的例子,網路活動中有許多原因會使其偏離規範,然而這並不是惡意製造的。 但機器學習的演算法並不知道。在開始的時候,人類分析人員必須糾正其決定,直到它學會判斷異常並作出更好的決策。
另一個不太知名的機器學習領域是“強化學習”。在強化學習中,程式設計師定義了狀態,期望目標,允許的行動以及約束。 該演算法通過嘗試將各種不同的允許行動進行組合來了解如何實現目標。 當你知道目標是什麼,但無法定義達到目標的路徑時,此方法特別有效。
強化學習在許多設定中被使用。 在更著名的案例中,Google DeepMind的AlphaGo,掌握了複雜的棋盤遊戲Go的機器學習程式。 該公司正在採用同樣的方法來提高英國電網的效率。 Uber也在使用相同的技術來教AI代理玩俠盜獵車手車(或更準確地說,讓它們自己學習)。
什麼是深度學習?
雖然機器學習是人工智慧的一個分支,但深度學習是機器學習的專門分支。 深度學習使用神經網路,一個具有人類大腦結構和功能的複製品。
深入學習解決了上一代學習演算法中存在的一個主要問題。先前, 隨著資料的增長,演算法平臺的效率和效能趨於停滯。 現在,深度學習演算法在獲得更多資料的同時,其效能也在不斷改進。深度學習演算法並不是直接通過將輸入對映到輸出的方式,而是依賴於幾層處理單元。 每個層將其輸出傳遞到下一個層,進行處理,然後再傳遞到下一層。 在某些模型中,計算可能會在處理層之間來回流動多次。現已證明深度學習在各種任務中非常有效,包括影象字幕,語音識別和語言翻譯。
機器學習的挑戰是什麼?
雖然機器學習對未來應用的發展至關重要,但並不是沒有自己的挑戰。
一方面,機器學習演算法的開發和部署在很大程度上依賴於大量的計算和儲存資源來執行其任務。 這種依賴關係使得它們在執行時受限於雲服務和大資料。 因此,在執行邊緣計算機整合解決方案時(edge intelligence)它們更具挑戰性。
機器學習的另一個問題 - 特別是深度學習 - 是它的不透明度性。 隨著演算法變得越來越複雜,人類越來越難以解釋它們是基於什麼,做出決定的。 在許多情況下,這可能不是問題。 但是,當你想要對演算法做出關鍵決定時,使它們具有透明性並且讓人一目瞭然是非常重要的。
此外還存在一些偏見問題。 機器學習往往會吸收嵌入到它們在接受培訓時,資料中包含的一些的習慣和傾向。 在某些情況下,尋找和消除偏見很容易,而在其他情況下,它的嵌入度極深,人類往往難以察覺。
然而,這些挑戰都不可能阻止AI和機器學習成為我們這個時代的通用技術(這個術語曾經被用於蒸汽機和電力這樣的發明)。 不管我們往哪個方向發展,機器學習都將會對我們產生深刻影響。
《機器學習 第九期》從零到機器學習實戰專案,提供GPU&CPU雙雲平臺,作業考試1V1批改(優秀學員內推BAT等);點選文末“閱讀原文”瞭解詳情。
相關文章
- 什麼是工藝流程圖?一篇文章帶你詳細瞭解流程圖
- 什麼是Python爬蟲?一篇文章帶你全面瞭解爬蟲Python爬蟲
- 一篇文章帶你初步瞭解—CSS特指度CSS
- 一篇文章帶你瞭解和使用Promise物件Promise物件
- 一篇文章帶你瞭解HTML5 MathMLHTML
- 一篇文章帶你瞭解——Kotlin協程Kotlin
- 一篇文章帶你瞭解介面自動化
- 一篇文章讓你徹底瞭解Java內部類Java
- 一篇文章帶你瞭解HTML格式化元素HTML
- 一篇文章帶你瞭解CSS 分頁例項CSS
- 一篇文章帶你瞭解高可用架構分析架構
- 一篇文章帶你瞭解設計模式——建立者模式設計模式
- 一篇文章帶你瞭解設計模式——結構型模式設計模式
- 一篇文章瞭解什麼是AQS和應用AQS
- 你真的瞭解python嗎?這篇文章帶你快速瞭解!Python
- 一篇文章帶你瞭解高質量代理ip的使用技巧
- 一篇文章帶你瞭解Python基礎測試工具——UnitTestPython
- 一篇帶你瞭解TCP/IP 概念TCP
- 一篇文章帶你更深入瞭解區塊鏈有哪些應用?區塊鏈
- 一篇文章幫你瞭解 PHP 7.3 更新PHP
- 【架構視角】一篇文章帶你徹底吃透Spring架構Spring
- 機器學習到底是什麼?機器學習
- 一篇文章帶你瞭解網路爬蟲的概念及其工作原理爬蟲
- 一篇文章帶你深入理解什麼是負載測試負載
- 帶你瞭解什麼是核心匯流排架構架構
- 一文帶你瞭解什麼是工控機?
- 一文章帶你瞭解微服務微服務
- 一篇文章帶你瞭解Python常用自動化測試框架——PytestPython框架
- 微服務是什麼?帶你簡單瞭解微服務微服務
- 帶你深入瞭解什麼是商業資料分析
- 一篇文章瞭解大前端前端
- 一篇文章帶你吃透 Docker 原理Docker
- 一篇文章帶你入門Zookeeper
- DevOps是什麼?5分鐘帶你瞭解DevOpsdev
- 這一次帶你徹底瞭解前端本地儲存前端
- 一篇文章帶你瞭解 Java 自動記憶體管理機制及效能優化Java記憶體優化
- 一篇文章帶你瞭解設計模式原理——UML圖和軟體設計原則設計模式
- 帶你瞭解webpackWeb