3分鐘好像太狂了,那5分鐘幫你開啟機器學習的大門吧!

原文:Getting started with Machine Learning in 5 minutes

作者:Arjun Patel

翻譯:小馬哥

——15行代碼,建一個房價預測模型,開始你的機器學習之路。

機器學習的時代已經來臨,它能帶來怎樣非凡的成就,現在還不好說,但是說它將改變軟體工程師解決問題的方式,卻是毋庸置疑的。

現在機器學習已經被不少公司廣泛應用於各個領域,比如蘋果的 Apple ARKit 用來創造更豐富更有層次感的用戶體驗,亞馬遜的 Amazon Echo 用來回答覆雜的用戶問題,惠普將機器學習技術用於解決3D列印問題。機器學習是個非常強大的技術,編程人員應該學習如何利用機器學習去解決技術,最好不要在將來才開始,現在就行動。

連《矽谷》里的Jing Yang也知道怎麼用機器學習開發APP

應用機器學習

機器學習有很多運轉部件。在本文,我會先通過幫你寫一些代碼來解釋機器學習,然後再討論開始下一步工作前可以做哪些準備工作。

首先我們想想在機器學習出現之前,軟體都是怎麼編出來的。軟體工程師會通過給電腦逐步操作的指令解決具體的問題。

我們舉一個銀行業的例子。比如說,我們想寫一個程序能預測貸款人會不會還他們的借款。我們可以寫一個程序分析他們的用戶資料,為關鍵變數設置參數:

  • 信用評分(credit score)
  • 貸款數目(loan amount)
  • 貸款種類(type of loan)
  • 成為銀行用戶的時間(Length of membership)

程序邏輯會如下所示:

簡明銀行貸款審批程序邏輯

如果問題複雜程度很高,那麼手動調整參數和寫指令的難度也會相應很高,甚至有時無法實現。想像一下給物體識別系統編程的難度吧。

但是機器看一下範例,就能學習怎麼解決這些問題。

有了機器學習技術,編程人員就能訓練一個機器學習模型,從數千個貸款人的數據中學習。模型還能隨著時間推移不斷更新,響應新趨勢和更多的數據。例如,2017年國際信用界巨頭艾可飛爆發安全漏洞後,那麼來自艾可飛的信用評分就沒有其它信用報告機構的數據那麼有價值了。如果這要反映在真實的貸款結果上,機器學習模型可以調整相應的參數,減少艾可飛提供的信用評分的權重。有了足夠的數據,機器學習模型會訓練自己找到最優的參數。

這種技術稱為監督式學習,在後面的教程中會用到它。(另外兩種較為通用的技術是非監督式學習和增強學習)

簡明銀行貸款審批機器學習邏輯

搭建房價預測模型教程

學習機器學習技術的最快途徑就是自己嘗試去搭建一個機器學習模型,那麼我們就來建一個自己的房價預測模型。先假定每套房子的基值為24萬美元,每多一間卧室就增加15000美元(為了方便表達數字,以下用K代表1000)。

如下:

預測房價需要一個簡單的線性模型:(y = mx + b)。我們可以用這個公式:

現在我們建一個機器學習模型去做這件事。通過使用訓練數據,我想讓模型找出m和b的值,這個我們知道分別是15和240。

我們用 Python 編寫程序。用下面的代碼新建一個 Python 文件,命名為 home_price.py。在代碼中,我們先導入資料和數據,設置好一些初始變數,線性模型和損失函數。如果你的環境設置不允許,可以考慮安裝 Docker,使用下面的 Docker 命令:

沒錯,不用列印報表和注釋,就是15行代碼 !

在代碼中,我們設置了一些基本的在訓練中會用到的佔位符和變數。然後我們寫一個損失函數,通過減去預測值中的y (給定值或者真實數值)進行計算。接著把得到的數值傳給優化程序。每迭代一次,優化程序就會通過更新變數m和b的值儘可能地得到y的值和預測值。

接下來,我們就用訓練數據把模型訓練上1000次。最後,你應該會得到這樣一個輸出:

m的值為[ 15.00007153],b的值為[239.99978638]。

你覺得得到的m和b的值怎麼樣?和我們預測的值很接近對吧?

下面是每次迭代中模型如何被優化的直觀圖。最初m和b的值從1.0開始(我們在代碼中指定了),但是隨著時間推移,它們會慢慢接近正確的值。我們也可以看到損失值(預測— y)慢慢降低至0。

迭代100次後m,b的值和損失值(loss)

希望上面的教程能幫你理解機器學習的基礎知識。不遠的將來,每個編程人員都會在實際工作中用到機器學習技術,我們離npm install object-detect並不遙遠。

拓展閱讀:

遍地開花的AI助手,代表著人機交互方式的未來

以彼之道,還施彼身——使用機器學習來揪出作弊的玩家

不是人工智慧,是智能機器

官方微博:@景略集智

微信公眾號:jizhi-im

商務合作: @軍師

投稿轉載:kexiyang@jizhi.im

集智QQ群:557373801


推薦閱讀:

AlphaGo 2.0 與其 1.0 相比有哪些提升?
如何評價深度學習之父Hinton發布的Capsule論文?
怎樣看待地平線機器人以深度強化學習演算法為切入點?
如何評價 Caffe2go?
什麼是創造力,AI可以獲得嗎?

TAG:机器学习 | 深度学习DeepLearning | 景略集智 |