原文:The non-techie’s guide to machine learning
作者:Kannan Chandrasegaran? 翻譯:不二
來源:CSDN技術頭條
譯者注:很多人都在談人工智能,談機器學習,但他們有自己的理解,作者從一個非常有趣的場景開始延伸,步步深入,對機器學習有獨特的解釋和指導。
這里是另一家創業公司的聚會,你靠在吧臺上,一邊喝著小酒。這樣的夜晚你只考慮自己,盡情享受社交活動。
偶然間,一個聲音從你耳邊傳來。
"他們絕對是機器學習的創業公司。"
談話聲消失了。
"他們仍然在使用統計NLP嗎?復發性神經網絡似乎是一種趨勢。"
談話聲再次消失。
機器學習像病毒一樣迅速傳播,你驚訝的發現這幾分鐘內,吧臺上的每個人都在討論機器學習。
過去你曾聽說過這個術語,誰沒有聽說過呢?機器學習是一種潮流,毫無疑問,它是人工智能的未來。
問題是,你沒有一點關于它的想法。
你放下酒杯轉身離開,今晚將是不眠之夜。
世界末日
最開始聽說的機器學習機器人,是代替藍領完成工作。
然后,我們發現機器人開始搶白領的飯碗。
在我們失業的將來,會發現這些機器人在我們背后聊天。
可能在閑聊那些懶惰的失業的人類。
機器學習在如此多的場景被談及,但卻很難被準確定義,翻越查找得到的是抽象的原理解釋,高頻拼字游戲的詞語,以及由數學和代碼組成的一堵墻。
你只想知道什么是機器學習,為什么它是一個偉大的想法,順便了解一點它是如何工作的。坦白的說,你只想搞清楚身邊那些流行詞匯的意思,這些詞匯就像中學課堂上該死的單詞,每個人都在使用它們,但你有一種感覺沒有人知道它真正的意思。
開始潛入
所以機器學習,像AI?
這是一個很好的開始,我們都知道人工智能的含義。我們雖然在思考不同的事情,但可以肯定的是思考的都是有價值的想法。
人工智能(AI)是研究構建做出“智能”決策的系統。
基本上如果電腦能做出一些似乎有點聰明的事兒,我們就會給它貼人工智能的標簽。
舉一個常見的例子,電腦游戲通常會出現智能的Boss角色,他們跟隨我們,并且他們的行為方式讓游戲變成一種挑戰。這就是AI的例子。
通過給予AI一些列的規則,游戲的發展可以實現,跟誰玩家,如果玩家正在射擊,尋找掩護,如果玩家停止射擊,嘗試擊斃玩家。規則越多,游戲將會越智能。
問題是電腦游戲的規則是有限的,玩家僅限于一些特定的操縱,而操作水平完全由開發者設計。所以那些似乎真的很智能的出色的AI特征,就是由開發者設計的規則組成。
并不是所有的問題都可以用規則解決
比如說用一臺電腦來檢測這是不是狗的照片。
如何為這個任務定義規則呢?
嘗試設想一下需要哪些類別的規則。
狗有四條腿?
狗是白色的?
狗有皮毛?
這是眾所周知的座椅。
電腦視覺問題,比如識別一個對象,是相當復雜的。但我們的大腦卻能直觀的分辨出。所以設計出明確的規則非常困難。
進入機器學習
我們不能建立識別狗狗的系統,卻能建立學習識別狗狗的系統。
這里有上千張圖片,其中一些是狗的圖片,一些不是。系統能學習可以定義為狗的照片的規則。
機器學習是研究構建做出“智能”決策的系統。
關鍵字"學習"去區分機器學習與其他人智能不同的地方。
"既然機器可以學習規則,那么顯然,規則是已存在的,不必費勁便能找到它們。"
完全正確,如果竭盡全力我們可以開發基于規則的狗狗檢測大作,它是包含所有可能情景的上千條規則,這是一件漂亮的事情。
那么,倘若現在需要一個能識別包含食物圖片的系統呢?好吧,我們將拋棄之前所有的從頭開始,以前的規則都不適用。
"出色的識別技術,熱狗也是狗。"
一個可以學習識別對象的系統,通過使用食物圖片而不是狗狗圖片,可以被訓練為識別食物。
這就是機器學習的魅力。與其去明確一系列規則,不如讓機器靈活的去學習和適應。
保持真實
現在更像是我們建立了一個活生生的、能不斷學習的,并能讓它通過與小狗一起玩耍從而教它識別狗的機器。然后再教它可愛和愛,并希望說服它不要起義把我們滅了,是吧?
現實情況并沒那么復雜,我們希望機器可以智能決策,通常建立在預測的基礎上,所以從這樣的問題開始:人類是怎樣預測的?
這里有一個很好的例子來說明我們怎樣預測,可能在中學的科學課堂上就做過。
比如做實驗,你需要收集數據,然后繪制成圖。
實驗>數據>圖形
x軸表示改變的值,y軸便是測量的結果,然后繪制趨勢線(或者最佳線)。
這條線便是最好的數據模型。
因為有這條線,所以可以做出預測。你可以選擇沒有測量過的重量,在x軸上觀察,然后從y軸上預測彈簧的長度。
使用數據建立模型,然后通過模型進行預測。
如果編程可以完成這些步驟,那么恭喜:這就是機器學習。
發現線性模型并借此進行預測,這完全是機器學習技術,我們稱之為線性回歸。
將模型編程寫入系統,系統便能對這個彈簧進行預測。但如果不編寫新的程序,它便無法對其他彈簧進行預測。
如果我們讓程序完成線性回歸本身,同時學習模型,這才是機器學習。
我們不提供模型,而是讓機器去學習模型。
巫師戲法
舉個例子來形容那邊是:
機器學習并不神秘。
我們并不是建立擁有自我意識可以學習任何東西的機器,彈簧模型程序不會學習識別狗狗。
即便是你,彈簧狗。
我們建立的系統是可以學習特定類型的模型,那個我們所忽略的模型。
幾乎每個機器學習系統都會以下這些事兒:
系統給出基于模型的輸出結果,對輸出進行評估,以確定它有多糟糕,然后更新模型,使未來的輸出變得更好。
建立可以完成對特定問題不斷循環(評估->更新->輸出->評估)的系統,機器學習便是這么一門藝術。
輸出的復雜性取決于問題本身,它可能只是來自于聊天機器人的文本響應,或者是無人駕駛中是否踩剎車的一個決定。
真實的模型可能是像彈簧問題的線性模型,可能是更復雜的基于統計和概率的模型。或者是設計模擬人類大腦工作的神經網絡。
不管細節是什么,幾乎每個機器學習系統都是這樣循環的運行。每次循環,系統都提升一點點。經過上千次甚至百萬次循環,便可以得到已學會比人類更好完成任務的系統。
豐富多彩的應用程序,以及解決程序問題所需的技術,都是機器學習與許多其他領域交叉的重要原因,也是現在為什么機器學習是如此激動人心的話題。
總結
建立機器學習系統是復雜的,但要搞懂機器學習并不難。
所以去征服那個創業公司的聚會吧,拋出那些新發現的流行詞匯。你只需要再沉浸幾年,到時候相信也會有機器人來幫你做這些事。