轉型AI產品經理,原來不需要學那么深的算法和數學模型

31 評論 33161 瀏覽 349 收藏 24 分鐘

本文作者是從互聯網產品經理轉型成了AI工程師,其文章特點是能通過簡單有趣的文字介紹AI技術概念。本文是他的第一篇文章,以饗大家。

Hello,World!

這是我的第一篇文章,如果你還沒系統地學習過AI算法相關知識,它應該能夠讓你對AI有些新的認知和理解、多些信心,至少你不會再覺得AI是那么高不可攀、遙不可及,相反,AI是普通人也可以理解、學習和實現的。

大概可以用以下幾個標簽簡單概括我:前互聯網產品經理、大學學渣、非計算機專業、不懂編程,可以說是除了瞎逼逼,啥也不會…

跟點進這篇文章的你一樣,我最開始也是驚嘆和憧憬于AI的神奇偉大無所不能,馬上就要改變世界取代人類啊~

不一樣的可能是,我當時腦子一熱:放棄數年的產品經驗,開始自學編程(python)和AI實現算法(傳統機器學習和深度學習算法),走上轉型AI之路。

最開始決定轉型其實也是蠻糾結的,初期在網上看到經驗分享,感覺機器學習的門檻真的是高的一逼啊。

文章中各種出現高等數學、線性代數和概率論的東東, 把我這個學渣嚇得瑟瑟發抖…..

某個周六晚上,在酒吧里喝掉幾杯啤酒后,借著酒意我做出了決定:搞,是個坑我也跳了…請稍稍腦補不懂編程還是學渣的我當時那種略帶悲壯而又自我感動的狀態!

然后就開始苦哈哈地補高數、線代、概率論,苦哈哈地學python編程,苦哈哈地看Andrew Ng、Peter Harrington、Siraj等一眾大神的書籍視頻學習機器學習….

苦哈哈的狀態持續了一段時間,隨著學習的推進,慢慢我也可以熟練地使用python寫算法寫腳本,傳統機器學習和深度學習中的經典常用算法,也基本都算學習和實踐過了。

我得到的結論是:傳統機器學習和深度學習的門檻并沒有那么高,至少是以算法工程師為主要需求的“工程應用領域”的門檻,是沒有那么高的。

網上確實有很多不錯的資料,但總是充斥著較多的數學、生澀的描述,其實并不是很適合作為小白的我們(請大牛自動屏蔽哈)入門。

作為毫無技術背景從零開始入門機器學習的產品經理,我或許更能理解同為小白的你的痛點和需求,我自己的公眾號“小白AI之路”的初衷,也是希望能夠通過更有趣、更直觀、更少數學的方式跟零基礎的童鞋共同學習AI相關知識。

叨逼叨結束,下面進入正題,快!上車吧!AI可以很簡單!

一、讓我們先來說說“AI是什么”

首先,我們先來界定接下來所要討論的AI的定義和范疇

AIArtificial Intelligence的縮寫,中文是大家廣知的“人工智能”。 AI可以理解為讓機器具備類似人的智能,從而代替人類去完成某些工作和任務。

很多小伙伴對AI的認知可能來自于《西部世界》、《AI》、《超能陸戰隊》、《機器人總動員》、《超能查派》等影視作品,這些作品中的AI都可以定義為“強人工智能”,因為他們能夠像人類一樣去思考和推理,且具備知覺和自我意識

但強人工智能在現實中的發展基本處于停滯狀態,目前AI的研究和應用基本都集中在“弱人工智能”領域,弱人工智能可以理解為機器看起來像是智能的,但并不會具備知覺和意識

弱人工智能領域的AI實現,可以分為兩種方式:

  • 一種是通過對相關規則進行編程,讓機器能夠按照程序中存在的邏輯處理特定任務,從結果來上看機器是智能的;
  • 另一種是我們不給機器規則,取而代之,我們喂給機器大量的針對某一任務的數據,讓機器自己去學習,繼而挖掘出規律,從而具備完成某一任務的智能,這種方式,也就是我們今天的主角——機器學習

不好理解?舉一個簡單的例子,如果我們需要讓機器具備識別狗的智能

  • 第一種方式意味著,我們需要將狗的特征(毛茸茸、四條腿、有尾巴…)告訴機器,機器將滿足這些規則的東西識別為狗;
  • 第二種方式意味著,我們完全不告訴機器狗有什么特征,但我們喂給機器10萬張狗的圖片,機器就會自個兒從已有的圖片中學習到狗的特征,從而具備識別狗的智能。

此狗以一根火腿腸的身價友情出境…

AI可以說是跟機器學習緊密聯系在一起,那我們在來說下我們今天的主角——機器學習。

首先,機器學習從模型層次結構的角度可以分為淺層學習和深度學習,簡單介紹下兩者:

(1)淺層學習(Shallow Learning)

淺層學習與深度學習(Deep Learning)相對,它的模型層次較淺,通常沒有隱藏層或只有一層隱藏層

淺層學習常見的算法有線性回歸、邏輯回歸、隨機森林、SVM、K-means、RBM、AutoEncoder、PCA、SOM等等。

隱藏層什么鬼?這些算法什么鬼?沒關系,能記上一兩個名字很好,暫時記不住也沒關系,我們以后會撿重要的來講。

淺層學習算法可以做一些預測、分類、聚類、降低數據維度、壓縮數據和商品推薦系統等工作。

(2)深度學習(Deep Learning)

深度學習的“深”是因為它通常會有較多的隱藏層,正是因為有那么多隱藏層存在,深度學習網絡才擁有表達更復雜函數的能力,也才能夠識別更復雜的特征,繼而完成更復雜更amazing的任務。

令很多童鞋驚嘆“AI無所不能,馬上就要改變世界、取代人類”的領域,基本都跟深度學習有關系。

目前深度學習的研究和應用,主要集中在CNNRNN;跟著我狠狠地把這些名詞記下來(至少縮寫要記下來哈),他們會成為后續文章介紹的重點。

CNNConvolutional Neural Networks的縮寫,也就是卷積神經網絡,目前是計算機視覺、圖像分類領域最主要的算法,當然也有人將它應用于自然語言處理領域。

接下來舉些CNN應用場景的例子,讓大家有個較直觀的印象:

1)前兩年大火的Prisma可以將機器學習名畫的風格并遷移到新的圖片上,比如這張白發女咖啡杯圖:

2)深受妹紙喜愛各種美顏相機的濾鏡,也是會用到人臉檢測,用上之后感覺自己萌萌噠,額…這個好像是個可愛的男孩子…

3)交通監控視頻識別來往車輛的車型,目前有些公司的產品還可以識別車牌號:

4) 商場監控視頻能夠識別人臉,順便還能根據已有數據判斷這個人是否以前來過商場:

5)當下最火的無人車中,無人車需要用計算視覺去觀察和理解這個世界:

RNNRecurrent Neural NetWorks的縮寫,也就是遞歸神經網絡,基于RNN還衍生出了LSTM(Long-Short-Term-Memerory)和GRU(Gated Recurrent Unit)等一系列算法,這些算法擁有記住過去的能力,所以可以用來處理一些有時間序列屬性的數據,在處理語言、文字等方面有獨到的優勢。

RNN及其衍生算法可用于語音識別、機器翻譯、合成音樂等等,我們仍然來簡單舉幾個的例子:

1) 以Siri、小娜、小冰、小度為代表的對話機器人,調戲Siri讓她bbox和唱歌講段子并不能充分體現你的無聊,下次你可以試試讓Siri和小娜互相對話:

2) 以谷歌翻譯為代表的機器翻譯,不管是文字翻譯還是語音翻譯,都把可以把人類翻譯虐成渣渣:

3) 老羅在錘子發布會上大吹特吹的能夠以極高準確率和極快速度將語音轉化為文字的訊飛輸入法

4)有粉絲等不及喬治·馬丁老爺子寫《冰與火之歌》第六部,就自己用LSTM算法學習了《冰與火之歌》的前五部后續寫了第六部,據說AI這部作品中還揭示了前幾部中埋了很久的懸念:

二、說AI簡單,因為AI本質上都是一個函數

如果你堅持看到這里,你對AI的理解和認知大概率已經擊敗了你朋友圈里50%經常分享AI將改變世界取代人類的好友們。

此刻你已經可以在聊天中用對方大概率聽不懂的CNN、RNN、LSTM等一眾名詞來彰顯你的逼格了。

但是,作為穩重踏實、擁有內涵、崇尚科學的新時代好青年的我們來說,這還遠遠不夠,我們總是希望能夠不動聲色、低調內斂、用對方看似都懂實則不懂的東西去裝更高規格的逼。

接下來,請跟我學習下正確的裝的方式:XX,你知道么?其實,AI很簡單,因為AI本質上都是一個函數。說的時候一定要有種云淡風輕的狀態,仿佛吃飯喝水那般自然。

看著對方有點迷離困惑的眼神,這個時候你要貼心去解釋一下,以彰顯你的善解人意,請再次跟我學:

是這樣的,XX,這其實很好理解,AI其實就是我們喂給機器目前已有的數據,機器就會從這些數據里去找出一個最能滿足(此處用“擬合”或可提升逼格)這些數據的函數,當有新的數據需要預測的時候,機器就可以通過這個函數去預測出這個新數據對應的結果是什么。

說完之后,請微微抬頭看向遠方,感慨一下:萬物自有其道,人世間多少復雜的東西到末了還是要歸于純粹啊。

但是,裝逼有風險,風險請自行承擔…

其實可能你暫時也沒有太理解,不要慌,我們偷偷繼續理解一下。

對于一個具備某種智能的模型而言,一般具備以下要素:數據+算法+模型,請狠狠地記住這三個詞;記住了這三個詞,AI的本質你也就搞清楚了。

這個時候我們再把高冷的貓也請出來,我們來用一個能夠區分貓和狗圖片的分類器模型來幫助理解這個問題:

數據”就是我們需要準備大量標注過是“貓”還是“狗”的圖片,為什么要強調大量,因為只有數據量足夠大,模型才能夠學習到足夠多且準確的區分貓和狗的特征,才能在區分貓狗這個任務上,表現出足夠高的準確性;當然數據量不大的情況下,我們也可以訓練模型,不過在新數據集上預測出來的結果往往就會差很多。

算法”指的是構建模型時我們打算用淺層的網絡還是深層的,如果是深層的話我們要用多少層,每層有多少神經元、功能是什么等等,也就是網絡架構的設計。相當于我們確定了我們的預測函數應該大致結構是什么樣的,我們用Y=f(W,X,b)來表示這一函數,X是已有的用來訓練的數據(貓和狗的圖片),Y是已有的圖片數據的標簽(該圖片是貓還是狗),聰明的你會問:W和b呢?問得好,函數里的W(權重)和b(偏差)我們還不知道,這兩個參數是需要機器學習后自己找出來的,找的過程也就是模型訓練的過程。

模型”指的我們把數據帶入到算法中進行訓練,機器就會去不斷地學習,當機器找到最優W(權重)和b(偏差)后,我們就說這個模型是train成功了,這個時候我們的函數Y=f(W,X,b)就完全確定下來了。然后我們就可以在已有的數據集外給模型一張新的貓或狗的圖片,那模型就能通過函數Y=f(W,X,b)算出來這張圖的標簽究竟是貓還是狗,這也就是所謂的模型的預測功能

到這里,你應該已經能夠理解AI的本質了。我們再簡單總結下:不管是最簡單的線性回歸模型、還是較復雜的擁有幾十個甚至上百個隱藏層的深度神經網絡模型,本質都是尋找一個能夠良好擬合目前已有數據的函數Y=f(W,X,b),并且我們希望這個函數在新的未知數據上也能夠表現良好。

三、AI算法模型的實現可以說是相當easy啦

如果你堅持看到這里,那請你為自己打call!因為你對AI的理解和認知應該大概率已經擊敗了你朋友圈里70%經常分享AI將改變世界取代人類的好友們。

接下來我們再往前走一步,簡單說一說實現一個AI模型可以多么簡單,看完后,相信你會信心爆棚的!

其實李杰克(也就是我啦)最早也是抱著異常悲壯各種被虐地心情走進AI的。學習大概分為三塊:

1. 學習AI第一語言python

這里我要為python瘋狂打call,因為python作為萬能膠水語言能做的事情實在太多,并且..它還異常容易上手。

我大概花了50個小時學習了python的基礎語法,然后就開始動手寫代碼去爬小說、爬網易云音樂的評論等等程序。

額…據說很多人第一個python的爬蟲是去爬不可描述的網站上那些沒穿衣服的可愛的女孩子們的相片…

總之,python是整個過程并不耗精力的環節,但是剛開始背記語法確實是無聊無趣的,需要些許的小堅持,給你提個醒喲…

2. 學習傳統機器學習和深度學習相關算法

這塊算是花費我最多精力和時間的環節,看了蠻多的視頻、書籍,還有網上的各種博文,還自己去補了高數線代概率論相關知識。

但結論是,如果你僅僅關注工程領域實現的話,其實很多算法壓根沒有必要用那么數學的東西去推導,換種方式你的理解和時間成本會下降很多。我也希望之后能夠用盡可能簡單有趣的方式跟大家分享和學習。

3. 算法和模型的實現

最開始我盡可能去理解和推導算法,然后用python代碼去實現算法再train模型,那個時候覺得啊算法還是要吃透啊,代碼能力也要很重要啊,不然你的模型都建不起來啊,小伙砸你要靜下心來慢慢搞啊。

后來,我開始接觸到深度學習大殺器——Google的深度學習框架Tensorflow,當時我的心情是這樣的:

真的是一度有些蛋蛋的憂郁呢,我也算是鼓起了些勇氣、下了些決心、放棄了些機會開始轉型的,我還指著靠AI當上CEO、迎娶白富美、走上人生巔峰呢。但是…

  • 不是說好的有很高的數學門檻么?
  • 不是說好的很高大上大家都搞不懂的么?
  • 不是說好的需要深刻理解算法才能更好train出好model的么?

為什么算法模型損失函數優化方法Tensorflow都內置好了,而且只需要異常簡單的調用就好了?

再后來,我接觸到了Keras,一個基于Tensorflow構建的深度學習框架,當然也有基于Theano的版本(Theano什么鬼,暫時你也可以不用關心的)。

當用Keras寫完第一個模型后我的心情真的是…

如果說Tensorflow是可以把一個模型代碼量大大減少的框架,那么Keras就是讓模型代碼量可以少到掉渣的框架。

剛才跟大家說了那么多貓狗分類器模型,現在就給大家看下這個分類器模型代碼在Keras框架可以少到什么程度?。?!

那么寥寥幾行代碼就把一個擁有著卷積層、池化層和全連接層并且使用Adam這個較高級優化方法的深度學習網絡架構寫出來了,你自己感受下在Keras下實現深度學習算法模型有多簡單了吧…

有沒有為自己的驚奇發現感到開心!

寫在最后

“小白AI之路”第一篇文章已經快到尾聲了,如果你堅持看到了這里,那大概率你對AI的理解和認知已經擊敗了你朋友圈里90%經常分享AI將改變世界取代人類的好友們。

接下來我們的目標是從剩下的10%里往上爬,我也希望能夠通過更有趣、更直觀、更少數學的方式跟大家分享和學習AI相關知識。當然我也還是一個AI世界的小學生,也還在努力地學習和奔跑。

如果大家覺得還算有那么一丟丟的收獲并且身邊也有朋友在關注和學習AI的話,請隨肆無忌憚隨意分享哈!

 

作者:李杰克 ,“AI產品經理大本營”成員之一。

本文由人人都是產品經理專欄作家?@黃釗?授權發布于人人都是產品經理,未經作者許可,禁止轉載。

題圖由作者提供

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 現在訓練模型都要用到gpu呀,就問你花錢了沒,在訓練模型的硬件上

    來自江蘇 回復
  2. 我也是一個想往AI方向發展的產品小白,講的很nice收獲不少

    來自北京 回復
  3. 嗯,感覺文章配圖很重要,前面的種種AI文章看著昏昏欲睡,這個配圖超有喜感,不會困哦,看來我的python又要開啟第346次入門了

    來自香港 回復
  4. 創業公司唯一的PM,涉及的工作覆蓋了設計(我畫原型,指導UI工作)、需求、測試,偶爾對接商務出去吹吹牛。自認為腦子比較活,學東西也快,基本公司內我的工作都可以獨立完成,沒什么毛病(公司里呆了4年,沒有夸張成分)。
    科班專業出身,不會編碼,但規則多少都懂,知道什么能做什么不能做,因為工作涉及測試,所以數據庫多少也懂。
    但最近感覺遇到了瓶頸,也許是當前行業內PM的門檻確實不高,想轉型,相中了AIPM,研究了幾天,門檻是有,但我覺得這樣反而更好,能拉開差距,告別之前“人人都是產品經理”的現狀。了解了幾天,興趣是有的,但始終沒下定決心,一是在現在公司呆了4年,不確定未來這里會不會轉型AI,二是看不清這個方向的前景,畢竟新事物,貿然轉型也有賭一把的風險在里面。
    嘛,觀望一下吧,人生真的很糾結。

    來自山東 回復
    1. 那目前有作出決定嗎?

      來自浙江 回復
  5. 你好,可以加個你的微信交流一下嗎

    來自北京 回復
  6. 看了那么多文章,就服你

    來自香港 回復
  7. 通俗的文字+逗比的動圖,牛人

    來自北京 回復
  8. 瘋狂打call,寫得通俗易懂,有干貨。

    來自廣東 回復
  9. 準備開始搞python了 ??

    來自香港 回復
  10. 這是第一篇,我不信

    來自廣東 回復
  11. 牛逼

    來自廣西 回復
  12. 文章總結:本文主要從產品經理轉型AI算法工程師角度出發,敘述了作者的學習過程并且對學習方法做了很多總結。然后主要是推薦了python這個AI核心的編程語言及使用哪種AI框架較為容易實現模型。

    來自廣東 回復
    1. 總結能力優秀

      來自北京 回復
  13. 會寫代碼的PM啊,大牛

    來自北京 回復
  14. 研究過卷積神經網絡的都覺得很贊,樓主繼續加油,

    來自廣東 回復
  15. 酷到沒朋友~~~淺顯易懂的AI入門文章~ 期待樓主大大分享學習書單或者學習資源 ~ 持續關注 瘋狂打cal

    來自廣東 回復
  16. 所以樓主說的不會編程什么的都是騙人的吧

    來自四川 回復
  17. 看完這篇文章我決定要去找博士在讀專攻語音方面機器學習的同學以及滴滴算法工程師的朋友去聊聊了。

    來自江蘇 回復
  18. 你還說自己是學渣?…學習能力可以的!高中音樂+本科英語教育+研究生口譯知識背景+5年產品背景的人表示,看到算法和模型那里已經在懷疑人生了

    來自上海 回復
  19. 寫的很好,看完了,對AI很感興趣,希望接下來還能看到樓主關于這方面的文章,棒棒噠!撒花撒花。

    來自浙江 回復
  20. 大贊,期待繼續,另外GIF圖有很多不可描述的佳作可以使用。 ?

    來自北京 回復
  21. 高質量的知識分享,值得贊賞!期待更多的內容!

    回復
  22. 你已經是大神了

    來自廣東 回復
  23. 贊一個先,淺顯易懂,讀起來真的不累,我竟然看懂了

    來自北京 回復
  24. 話說,完全沒看內容,竟然都看圖片了~~(⊙o⊙)…

    來自陜西 回復
  25. AI本質上都是一個函數,謝謝大神的分享!!非常有用。

    來自河南 回復
  26. 會不會帶壞小朋友 ? 有什么資料推薦嗎

    來自廣東 回復
  27. 大神啊

    回復
  28. 好棒!微信公眾號看過一遍,現在再刷一遍~感謝作者,也hanniman大大的分享!

    來自北京 回復
  29. 你已經是大神了

    來自湖南 回復