是否該學算法?
從17年10月份,就想著往AI產(chǎn)品經(jīng)理轉(zhuǎn)型。于是搜索各種資料,看了吳恩達老師和李宏毅老師的機器學習課程,加入各種社區(qū),購買了算法課程與數(shù)學課程,學了一點python。兩個多月后的現(xiàn)在,我決定,放棄敲機器學習算法代碼,從入門到放棄。
當初打算敲機器學習代碼,是因為轉(zhuǎn)型需要,我需要了解算法,敲代碼可能有利于我去理解代碼。但是,我沒有意識到,沒有代碼基礎的我,這條學習路徑太長了。在看不到太大成效的時候,我就思考,我真的有必要去敲代碼嗎?
所以我想著,機器學習,本質(zhì)上是一門新的技術(shù)。那問題就回到那個老生常談的問題,產(chǎn)品經(jīng)理,該不該學技術(shù)。對于這個問題,我的想法是,產(chǎn)品經(jīng)理要學技術(shù),在工作上是為了方便跟技術(shù)人員溝通,同時也是為了更好的驗證自己的想法。同樣的,在人工智能時代,懂算法也是為了更好跟算法工程師溝通,更好地參與到工程建設中;當有新的需求想法時,如果懂得算法的用處與限制,我們也可以知道可行性有多大。
要學到什么程度?
在確定需要學習算法后,我們就要確定,我們需要學習到什么程度?畢竟我們不是工程師,我們不會敲代碼,我們是產(chǎn)品經(jīng)理,我們需要知道自己的核心價值是什么?我想,在人工智能時代,產(chǎn)品經(jīng)理的價值,是利用產(chǎn)品設計把只有65分的算法,滿足用戶在指定場景的需求,給予用戶80分的使用體驗;同時通過業(yè)務的閉環(huán)設計,給算法提供更多的訓練數(shù)據(jù),給算法工程師創(chuàng)造優(yōu)化算法的條件。
那么在有限制條件說我們是產(chǎn)品經(jīng)理時,我們該如何學習?
一、了解基本概念
這是我前面漏掉的,人工智能時代,我們應該先了解AI的一些基本概念。
比如機器學習算法主要分監(jiān)督學習、非監(jiān)督學習、強化學習。其中監(jiān)督學習又分線性回歸、Logistic 回歸、CART、樸素貝葉斯和 KNN;非監(jiān)督學習分Apriori 算法、K-均值聚類、主成分分析(PCA)。
知道深度學習是機器學習的子集,知道什么是自然語言處理,知道計算機視覺與機器視覺分別是什么概念。
二、知道算法原理,用來解決什么問題
知道算法的實現(xiàn)原理,可以幫助我們?nèi)ダ斫馑惴梢杂脕斫鉀Q什么問題,什么問題無法解決。
在人工智能時代,短期內(nèi)我們無法去通過體驗產(chǎn)品,去了解剖析它某個功能的實現(xiàn)邏輯與方式。在機器學習這個黑匣子里面,有時候連算法工程師可能也無法解釋機器學習習得的結(jié)果。所以更多時候,某個功能用的是什么算法,我們無法得知。算法能用在什么用途,我們可能只能通過一些公開的論文或者宣講渠道去了解。這時候,了解算法的實現(xiàn)原理,以及算法的技術(shù)邊界,就顯得更加重要。
同時,有些算法可能對訓練數(shù)據(jù)集有一定要求,比如線性回歸,它要求數(shù)據(jù)必須是線性的。
而在學習算法的時候,很多教學視頻,都會講解算法背后的數(shù)學原理,這時候,聽不懂怎么辦,沒辦法,暫時跳過。
本質(zhì)上,我們需要知道的是,某算法的功能和瓶頸,實現(xiàn)成本,對數(shù)據(jù)集有什么要求等產(chǎn)品上應該了解的。
三、是否需要敲代碼
一開始我認為,敲代碼好啊,把算法的代碼敲出來,有助于我理解該算法。但后來我發(fā)現(xiàn),敲個毛代碼啊。所以最后我認為,如果你有編程基礎,那你去敲代碼,完全沒有問題。但如果你沒有技術(shù)基礎,還是省點精力吧。為什么不?
1、沒有基礎的你,敲代碼費時間,你首先需要學語法基礎,即使你把別人的開源代碼復制到自己的編譯器,你也可能會因為各種第三方庫沒有安裝而在出錯的時候顯得一臉懵逼;
2、現(xiàn)在有不少圖和動畫演示算法過程的產(chǎn)品和網(wǎng)站,同時,機器學習算法可視化的研究也發(fā)展得挺快,谷歌已經(jīng)出了AutoML,對于產(chǎn)品經(jīng)理來說,會敲算法的代碼,真的不那么重要。
如何學?
在確定了要學習算法,以及學習算法的目標后,我們就可以探討一下,我們應該怎么學?
1、先刷視頻
吳恩達老師,李宏毅老師的課程,先系統(tǒng)地過一遍,遇到不同的實現(xiàn)原理和數(shù)學原理,可以上網(wǎng)搜索看看是否有看得懂的解釋,為什么要這樣做,因為要知道,我們學的過程中碰到的問題,是大多數(shù)人都會遇到的,從簡書、知乎、CSDN中,都可能找到答案。如果實在搞不明白,建議先跳過,畢竟,第一次看教學視頻,肯定有各種各樣我們不懂的問題。
2、看書
看完視頻就可以準備看書鞏固自己看視頻學的知識,建議大家可以看周志華老師的機器學習西瓜書,當然可以多買幾本,交叉閱讀,對理解一類算法效率會更高。同樣,看不懂的數(shù)學原理,我們也是跳過。畢竟我們是產(chǎn)品經(jīng)理,如何敲代碼寫算法,算法背后的數(shù)學原理,是怎么樣的,暫時不懂就不懂。要清楚我們的主要工作,是在產(chǎn)品設計上。
3、搜索閱讀算法相關(guān)的實踐文章(知道算法的實踐用途)
看國內(nèi)外的論文,中英文一起看,在前面2步后,對行業(yè)的整體大概,我們都有一定了解??梢蚤喿x一些實踐類論文,但遇到數(shù)學推導的,可以暫時跳過。我們需要知道的是,算法在什么領(lǐng)域什么產(chǎn)品什么場景下使用,是否適合我自己的產(chǎn)品和場景,就足夠了。
但在這個過程中,在轉(zhuǎn)型成功之前,我們?nèi)鄙倭藢嵺`。這時候,你可以在了解一類算法在某個產(chǎn)品和場景的使用后,大膽地去假設是否可以在其他地方應用,然后想辦法求驗證。不過這確實挺難的,除非你具備編程能力,還需要有能夠驗證的場景和條件。
當然,我們也可以在清楚算法的功能和邊界后,爭取進入公司的AI team,再進行實踐。
以上如何學部分,參考了邱岳的產(chǎn)品手記(極客時間上的專欄),專欄里更詳細,尊重別人版權(quán),我沒有全盤復制過來,有興趣的可以自己去看看。
寫在最后,寫文章是為了記錄自己的學習歷程,同時梳理自己的知識框架,方便自己調(diào)整自己的學習節(jié)奏,希望早日能轉(zhuǎn)型成為AI產(chǎn)品經(jīng)理。