學習AI可能不需要那麼多數學知識:20小時進階計劃
這裏還有一個關於AI不為人知的小秘密:
事實上你不需要儲備那麼多的數學知識才能開始使用AI。
如果你是一名開發人員或係統管理員,你可能早已使用了很多你所了解的庫和框架。為了使用curl(一個廣泛使用的用來上傳和下載的命令行工具),其實你不必了解網站檢索內部如何工作。AI也是如此。有很多框架和項目可以幫助你快速地使用AI算法,而不需要你成為一名數據科學博士。
不要誤會我的意思。數學有助於你對算法背後發生的事情有所了解。借助它,你可以閱讀研究類論文,當看到像Ian Goodfellow著作的深度學習一類高級書籍時,不會毫無頭緒。但是,如果你想開始使用AI,你可以今天就開始。
讓我們從一些實際的項目來開始做起。
我的學習方法與“第一個二十小時”中概述的優秀方法非常相似。我們都知道一萬小時定律。要真正掌握一門技能,你需要投入大量時間。但我們隻是剛剛開始。現在我們試圖通過初次嚐試來發現它的樂趣!
方法很簡單:
-
選擇一個項目;
-
克服自己一定會失敗的想法;
-
進行各種嚐試並從失敗中快速學習
-
實踐。
很容易吧?所以讓我們開始!
選擇一個項目
首先你需要一個項目來激勵你離開舒適區。
一個有一百萬美元獎金並且可能對肺癌研究產生影響的項目聽起來如何?
Kaggle是你可以找到機器學習項目的地方。現在他們正在舉辦一場價值100萬美元的競賽來改善肺癌病變的分類。任何人都可以加入,包括你。
現在我知道你在想:我絕對沒有機會贏。這是一個聚集了最優秀機器學習從業者的比賽。很高興你想到這裏,因為把我們帶到了第二步:
克服自己一定會失敗的想法
學習任何新事物最重要的一步是盡可能地關掉頭腦中自我懷疑的聲音。“第一個二十小時”主張通過嚐試消除幹擾,根據時間製定訓練計劃和一些其他方法,例如冥想,自我肯定或適度飲酒等,做隻要能讓聲音消失,讓你可以專注的事。如果你需要一本自我幫助的書來翻越這一障礙,請嚐試“You are a Badass”,一部有趣、滑稽和充滿諷刺意味的傑作。
就是這種情形:你現在感覺糟糕透了。但是沒關係,你不會這樣感覺很久。
第一階段的學習總是會感到困惑和沮喪。所以,不要和自己過意不去,這表明你在正確的軌道上。你正在學東西,你很棒!你可能不會贏得比賽,但那又怎樣?專注於在截止日期之前提交一份證明你實力的報告。不是每個人都可以贏得一場馬拉鬆比賽,但是完成一場比賽本身就是一種成就,對嗎?
你知道嗎?你可能會贏。我是認真的。
作為業餘愛好者,你不會像專業人士一樣被多年的理論想法所束縛。隻要記住這個關於學生的故事,他在黑板上看到了兩個看似無法解決的數學問題,誤以為是作業,然後解了出來。事實上數據科學較於科學更似藝術。這是一個吸引了各種各樣學科背景的博學者聚集的領域。所以放手去試試你能做些啥把。
誰知道會發生什麼?
也許你會發現連專家都錯過的東西;真真切切地影響到癌症檢測,並將這筆可觀的收益帶回家。
進行各種嚐試並從失敗中快速學習
如果你是一個開發人員,你就會知道這個口頭禪。同樣適用於學習。我的做法是找出有代表性的書,快速瀏覽他們,看看哪些對我來說是最有意義的。每個人都有不同的口味,所以有些書適合於一個人而其他人卻不喜歡。選最適合你的那個。
現在已經有一些關於機器學習的書,像“Real World Machine Learning”。不幸的是,由於這是個新興領域,大部分的書籍今年才剛剛出現。你可以去預訂“Deep Learning: A Practitioners Approach ”或“Hands-on Machine Learning with Scikit-Learn and Tensorflow”。
但你不必等待。這裏我推薦Safari Books Online。你可以使用現成工具來快速學習如何應用深度學習,這樣你才能在比賽項目裏用上。
你要一起使用Kera與 TensorFlow或者Theano,都可以。
你甚至不需要自己設置。試試github上這個非常棒的一體式深度學習Docker映射。(https://docs.docker.com/get-started/#prerequisites)
坦白的說,無論你使用TensorFlow還是Theano都沒關係。它們本質上都是運行機器學習的引擎。在你現階段的水平上,兩者幾乎是一樣的,所以選擇一個即可。
Keras是由一流的Google AI研究人員創建的機器學習框架庫。本周末,我有幸地遇見了Keras的創始人Francois Chollet。他把Keras形容為“AI民主化”的關鍵,他提到“深度學習是成熟的,但還沒有被廣泛傳播……你不必是AI研究員才去使用Keras”。而是可以馬上開始使用各種各樣最先進的技術算法。
如果你已經有了一個Mac或者是Linux的設備以及英偉達顯卡那麼你將可以繼續了。如果沒有,請考慮挑選一款戴爾的外星人。我推薦中檔Aurora係列。你並不需要一個強大的處理器,而是一個SSD、備用磁盤來轉存數據、16-64GB的內存和最好的英偉達顯卡。你該將你所有的現金集中花費在顯卡上,因為他們真的可以加速深度學習的速度。你進一步需要使用Linux重新格式化並獲取最新的二進製驅動程序。不幸的是,開源軟件並不會在你最新的芯片組工作得很好,但及有可能會引起黑屏。你可以參考這個鏈接解決。(https://askubuntu.com/questions/760934/graphics-issues-after-while-installing-ubuntu-16-04-16-10-with-nvidia-graphics)
如果你想自己動手,還有一些教程(https://medium.com/@acrosson/building-a-deep-learning-box-d17d97e2905c)可以幫助於建好需要的設備。另外,我剛剛在第三部分添加了自己的教程!最後,你可以使用AWS,Google或者Azure cloud,但GPU在雲計算裏快起來會很貴。在你知道你在做什麼之前,購買設備才比租賃更合適。
實踐
現在你準備好開始了。以下是使用Keras入門的超簡單示例。你將需要一個進行比賽的方法。再一次我會為你節省一些時間。目前最有效的標記和研究圖像的方法是廣為人知的卷積神經網絡(CNN)。Google, Facebook, Pinterest和Amazon都使用它們進行圖像處理和標記。你也可以從實踐中最好的算法開始吧?
實際上,如果你直奔競賽本身,獲取數據集,並查看該教程(https://www.kaggle.com/c/data-science-bowl-2017/details/tutorial),你將會看到它會引導你切割圖像並使用搭有Keras和TensorFlow後端的CNN。瞧!你幾周可能做的僅僅是實施教程還不得不把參數調來調去,但可以看看你收獲了什麼。
隨後一切會變得瘋狂。在數據上使用不同的參數和算法。做實驗和尋找樂趣。也許你會偶然發現專家錯失的東西!
如果你準備嚐試更高級的內容,那麼在the Kaggle Data Science Bowl 2017 board(Kaggle數據科學超級碗2017, https://www.kaggle.com/c/data-science-bowl-2017/kernels)上有一些很棒的帖子。事實證明,數據科學家們並沒有超越他們分享的秘笈。查看這一個(https://www.kaggle.com/anokas/data-science-bowl-2017/exploratory-data-analysis),它是一係列匿名檢查者的CT掃描圖片,有助於你開始探索數據。這是一個目前論壇上更先進的,最受歡迎的帖子。它可以幫助你做“預處理”,它基本上是清洗和轉換數據,使神經網絡更流暢、更容易處理。它實際上將兩維的圖像轉化為3維圖像!超酷!
坦白說,如果你自己輸入這些代碼並讓它運行,你已經做得很好了。這種編程方法是“艱難的”,直到真正了解前就開始實踐。甚至還有一係列關於Python和其他語言的書籍(https://amzn.to/2jQfHvR),采用這種學習方式,它可能適用於你。
一個警告:有些人在比賽中發布了一個完美的比分。然而卻是以通過研究比賽排行榜和增加訓練集大小的小聰明來獲得(https://www.kaggle.com/olegtrott/data-science-bowl-2017/the-perfect-score-script)。這完全合法,但它不會真正有助於你實現目標。你的目標是學習針對訓練集如何運行神經網絡。現在我將會跳過這個方法,並專注於針對CT掃描圖像運行Keras。
就到這兒!祝你好運,你將幫助重新定義癌症的研究,並把一些現金帶回家。不是糟糕的一天的工作。
但是,即使你沒有贏,你將會很好地學習如何在現實世界中使用AI。
無論發生什麼,記得要玩得開心!
原文發布時間為:2017-5-08
本文來自雲棲社區合作夥伴“大數據文摘”,了解相關信息可以關注“BigDataDigest”微信公眾號
最後更新:2017-05-16 16:32:26