AI 開發(fā)指南:機(jī)器學(xué)習(xí)產(chǎn)品是什么?
為什么管理機(jī)器學(xué)習(xí)(ML)產(chǎn)品比一般軟件困難? 「實(shí)驗(yàn)」是關(guān)鍵!
關(guān)于管理AI產(chǎn)品,我認(rèn)為最重要的幾件事:
- 機(jī)器學(xué)習(xí)(ML)產(chǎn)品管理比一般軟件更具挑戰(zhàn)性,因?yàn)樗婕案嗟牟淮_定性。 不僅需要技術(shù)上的改變,還需要組織上的改變。
- ML最適合做出決策或預(yù)測(cè)。
- ML產(chǎn)品經(jīng)理最重要的工作:明確定義問題,確定需求,設(shè)定衡量成功的標(biāo)準(zhǔn),并為ML工程師提供足夠的空間和時(shí)間探索解決方案。
- 從第一天就開始計(jì)劃數(shù)據(jù)策略(Data Strategy)。
- 構(gòu)建ML產(chǎn)品是跨領(lǐng)域的,不只是數(shù)據(jù)科學(xué)。
在《AI重新定義機(jī)器人》文章中,我提到了ML帶來的最大不同是:
讓機(jī)器從依賴人工編寫程序,轉(zhuǎn)向真正的自主學(xué)習(xí)。
機(jī)器不需要人工指示,而是自行根據(jù)數(shù)據(jù)中識(shí)別出的模式,進(jìn)行預(yù)測(cè)和改進(jìn)。 這就是為什么ML特別適用于那些,以往難以明確解釋定義的問題。 這也代表ML可以使你的產(chǎn)品更個(gè)人化,更自動(dòng)化,和更精確。
先進(jìn)的算法,大數(shù)據(jù),和硬件價(jià)格下降,成為ML成長的主要驅(qū)動(dòng)力。
AI已在各個(gè)領(lǐng)域逐漸被采用。麥肯錫(Mckinsey)最近的報(bào)告中顯示,近一半的公司在其研發(fā)流程中整合了AI,另外有30%的公司正在試驗(yàn)AI項(xiàng)目。
不難看出為什么,許多人預(yù)期ML將比移動(dòng)技術(shù)帶來更巨大的產(chǎn)業(yè)變革。但是,與此同時(shí),公司引進(jìn)ML的難度,也可能比當(dāng)年采用移動(dòng)技術(shù)更高數(shù)倍以上。 為什么呢? 在討論具體原因之前,讓我們先一起聊聊什么是ML。
機(jī)器學(xué)習(xí)(ML)三大類型:監(jiān)督學(xué)習(xí)、無監(jiān)督學(xué)習(xí)、強(qiáng)化學(xué)習(xí)
AI人工智能并沒有一個(gè)普遍被認(rèn)同的定義,而且它的定義不斷在改變。 一旦某項(xiàng)任務(wù)能夠成功被機(jī)器執(zhí)行,該任務(wù)就不再屬于AI的范圍。
ML是AI的一部分。 ?Carnegie Mellon大學(xué)教授湯姆· 米切爾(Tom M.Mitchell)將機(jī)器學(xué)習(xí)定義為對(duì)一種,「允許程序根據(jù)經(jīng)驗(yàn)自動(dòng)進(jìn)行改進(jìn)」的算法。
機(jī)器學(xué)習(xí)有三種主要類型:
- 監(jiān)督學(xué)習(xí)(Supervised Learning):最常見和最被廣泛使用的類型。 這些算法從被事先標(biāo)記好的數(shù)據(jù)(labeled data)中學(xué)習(xí),大多時(shí)候被用以預(yù)測(cè)結(jié)果。 例如,給予機(jī)器大量標(biāo)記好的動(dòng)物圖片,讓機(jī)器學(xué)習(xí)判斷貓和狗。
- 無監(jiān)督學(xué)習(xí)(Unsupervised Learning):無監(jiān)督學(xué)習(xí)算法不需要事先標(biāo)示,而是直接從數(shù)據(jù)學(xué)習(xí)判讀模式。 它可以用于聚類(clustering),關(guān)聯(lián)(association) 和異常檢測(cè)(anomaly detection)問題。 另外還有半監(jiān)督學(xué)習(xí),是監(jiān)督學(xué)習(xí)與非監(jiān)督學(xué)習(xí)之間的混合體。
- 強(qiáng)化學(xué)習(xí)(Reinforcement Learning):算法藉由得到環(huán)境中的反饋而學(xué)習(xí)。 RL通常用于機(jī)器人技術(shù),或自動(dòng)駕駛汽車等控制領(lǐng)域。 例如將目標(biāo)函數(shù)(Objective Funcion)設(shè)定為「成功從A點(diǎn)移動(dòng)到B點(diǎn)」,每次機(jī)器人成功到達(dá)B點(diǎn),就會(huì)得到正面響應(yīng)(reward),一直到重復(fù)直到機(jī)器人學(xué)會(huì)執(zhí)行這項(xiàng)任務(wù)為止。
機(jī)器學(xué)習(xí)產(chǎn)品的類型
根據(jù)產(chǎn)品的類型和核心價(jià)值的來源,你將需要不同技能,并且專注于產(chǎn)品的不同面向。
用戶是企業(yè),還是一般消費(fèi)者?
像Alexa或Google Assistant這樣的消費(fèi)性ML產(chǎn)品,具有更強(qiáng)的社交互動(dòng)成分。因此,用戶體驗(yàn)(User Experience)在設(shè)計(jì)消費(fèi)類ML產(chǎn)品中扮演著極關(guān)鍵的角色,而ML技術(shù)則往往是達(dá)成更好用戶體驗(yàn)的方式之一。
例如,NLP(自然語言處理)被用于達(dá)成Alexa及用戶之間更自然的溝通。 另一方面,B2B的ML產(chǎn)品對(duì)應(yīng)的是企業(yè),甚至是工業(yè)用戶(例如用于預(yù)測(cè)工廠儀器維護(hù)時(shí)程的算法),其核心價(jià)值往往來自預(yù)測(cè)的準(zhǔn)確性,而非UX。
這并不是說UX對(duì)面向企業(yè)的ML產(chǎn)品不重要。 而是,當(dāng)你的資源有限,并且需要集中精力優(yōu)化產(chǎn)品的某些部分時(shí),就需要考慮這個(gè)問題。
你要設(shè)計(jì)的是ML產(chǎn)品? 或是將ML應(yīng)用到你的產(chǎn)品中?
如果你產(chǎn)品的核心價(jià)值來自ML模型,那么你很可能正在設(shè)計(jì)一個(gè)ML產(chǎn)品。 相反的,如果ML僅用于增強(qiáng)產(chǎn)品的用戶體驗(yàn)或部分性能,那么你很可能正在將ML應(yīng)用于產(chǎn)品上。
在第二種情況下,身為產(chǎn)品經(jīng)理,你不應(yīng)該花太多時(shí)間顧慮技術(shù)細(xì)節(jié);像是「ML模型是以CNN(卷積神經(jīng)網(wǎng)絡(luò))還是R-CNN為基礎(chǔ)」,而是應(yīng)該花時(shí)間了解模型的輸入(input)和輸出(output)。
舉例來說,你要使用的這個(gè)ML模型,采用用戶的人口統(tǒng)計(jì)數(shù)據(jù)(input)來預(yù)測(cè)用戶在平臺(tái)上的每月支出(output)? 另一方面,設(shè)計(jì)ML產(chǎn)品通常需要PM具備更高的技術(shù)能力,以幫助團(tuán)隊(duì)確定關(guān)鍵決策和權(quán)衡取舍。
產(chǎn)品類型也會(huì)影響組織結(jié)構(gòu)。 對(duì)于研發(fā)機(jī)器學(xué)習(xí)產(chǎn)品的公司,或像Facebook和Google這類在ML上投入大量資金的的大型公司,通常會(huì)雇用機(jī)器學(xué)習(xí)研究人員或數(shù)據(jù)科學(xué)家,并將他們與機(jī)器學(xué)習(xí)工程師組成團(tuán)隊(duì)。
相反的,對(duì)于想將ML應(yīng)用于其產(chǎn)品的公司,或資源有限的小型公司,最好的策略是雇用跨領(lǐng)域的ML工程師,或培訓(xùn)軟件工程師學(xué)習(xí)ML,而不是雇用ML研究人員。
構(gòu)建ML產(chǎn)品通常是跨領(lǐng)域的
研發(fā)機(jī)器學(xué)習(xí)產(chǎn)品很少會(huì)只涉及ML。 它通常是跨領(lǐng)域的,不僅涉及ML模型設(shè)計(jì)及訓(xùn)練,還涉及軟件工程,后端結(jié)構(gòu),數(shù)據(jù)分析,UX / UI設(shè)計(jì),甚至是軟硬件整合等等。
產(chǎn)品經(jīng)理需要能夠管理跨職能的團(tuán)隊(duì),并處理團(tuán)隊(duì)之間的相互依賴和潛在沖突。 ML從根本上不同于其他學(xué)科,這點(diǎn)會(huì)在下一段進(jìn)一步說明。 如果你要設(shè)計(jì)和現(xiàn)實(shí)世界互動(dòng)的ML產(chǎn)品(例如機(jī)器人技術(shù)或自動(dòng)駕駛汽車),情況將變得更加復(fù)雜。
PM需要知道使用ML可以做什么,和不能做什么,何時(shí)應(yīng)該使用ML和何時(shí)不應(yīng)該使用ML。
其他需要理解的關(guān)鍵ML概念
過擬合(Overfit)
是一種常見的錯(cuò)誤類型,當(dāng)機(jī)器學(xué)習(xí)模型過于匹配特定的數(shù)據(jù)集時(shí)發(fā)生。 可靠的ML模型不僅在「訓(xùn)練數(shù)據(jù)集」(training dataset),也在「驗(yàn)證數(shù)據(jù)集」(validation dataset)上表現(xiàn)良好。 但是,在過擬合的情況下,訓(xùn)練數(shù)據(jù)的表現(xiàn)會(huì)變好,但對(duì)于沒有看過的,驗(yàn)證數(shù)據(jù)的表現(xiàn)卻反而會(huì)變差。
深度學(xué)習(xí)(Deep Learning)
主要用于圖像分類。 DL使用深度神經(jīng)網(wǎng)絡(luò),并以卷標(biāo)圖像作為輸入。 神經(jīng)網(wǎng)絡(luò)的每一層,都會(huì)將輸入轉(zhuǎn)換為稍微抽象和復(fù)合的表示形式。 最終,模型將能學(xué)會(huì)識(shí)別圖像中的內(nèi)容。
自然語言處理(Natural Language Processing)
這是計(jì)算機(jī)科學(xué)中的一個(gè)領(lǐng)域,目的是使機(jī)器可以理解人類語言,但不一定涉及ML。 NLP通常用于聊天機(jī)器人、語音助手、或是預(yù)處理數(shù)據(jù)。
管理機(jī)器學(xué)習(xí)產(chǎn)品的挑戰(zhàn)
實(shí)驗(yàn)是機(jī)器學(xué)習(xí)的關(guān)鍵部分
ML也會(huì)用到程序代碼和數(shù)據(jù),但若因此就認(rèn)為ML與軟件工程本質(zhì)相同,那就大錯(cuò)特錯(cuò)了。
與軟件工程不同,開發(fā)ML產(chǎn)品需要進(jìn)行更多的實(shí)驗(yàn),涉及更多的不確定性和可變性。 軟件工程是一個(gè)為機(jī)器編寫規(guī)則的確定性過程,而機(jī)器學(xué)習(xí)則具有更高的機(jī)率性,因?yàn)樗梢宰孕袑W(xué)習(xí),而不需要我們來編寫規(guī)則。
例如,如果你想教機(jī)器識(shí)別貓。 透過軟件工程,你可能會(huì)想出「一只貓有四只腿和兩個(gè)尖尖的耳朵」這樣的明確規(guī)則。
但如果使用深度學(xué)習(xí),要做的就不是提供明確的規(guī)則。
而是為機(jī)器提供一堆貓的照片(事先標(biāo)記好這些是貓的圖像),然后讓機(jī)器自行學(xué)習(xí),摸索出規(guī)則。
你和你的團(tuán)隊(duì)要做的是:定義問題,準(zhǔn)備數(shù)據(jù),建立機(jī)器學(xué)習(xí)模型,測(cè)試和迭代,直到你擁有可以提供所需結(jié)果的模型為止。
這就是為什么在開發(fā)ML產(chǎn)品時(shí)通常需要承擔(dān)更多的風(fēng)險(xiǎn)。 對(duì)于產(chǎn)品經(jīng)理而言,重要的是要幫團(tuán)隊(duì)建立正確的期望,以避免團(tuán)隊(duì)之間可能發(fā)生的沖突。
例如,軟件工程師可能會(huì)覺得,ML團(tuán)隊(duì)沒有給他們足夠明確的需求。 但這并不一定是ML團(tuán)隊(duì)的問題,在實(shí)驗(yàn)階段,就連ML團(tuán)隊(duì)也很難預(yù)測(cè)最后模型的表現(xiàn)是好是壞。 這時(shí)讓其他團(tuán)隊(duì)了解ML產(chǎn)品的實(shí)驗(yàn)本質(zhì)就很重要。
讓工程師與研究人員,數(shù)據(jù)科學(xué)家緊密合作也很重要,這樣他們才能彼此平衡,不讓產(chǎn)品研究失焦。 更重要的是,最好早點(diǎn)開發(fā)出可供測(cè)試的產(chǎn)品,定期測(cè)試,以確保ML團(tuán)隊(duì)所用的算法與產(chǎn)品目標(biāo)一致。
開發(fā)ML是一個(gè)高度迭代的(iterative)過程
正如前面提到的,ML非常適合解決人類無法明確定義的復(fù)雜問題。 模型需要訓(xùn)練,測(cè)試和調(diào)整。 通常,數(shù)據(jù)科學(xué)家在選擇令人滿意的方法之前,必須先測(cè)試好幾種方法。 這就是為什么通常很難定義ML產(chǎn)品的里程碑和時(shí)間表。
也因此,對(duì)于產(chǎn)品經(jīng)理來說,明確定義需求,設(shè)定產(chǎn)品成功標(biāo)準(zhǔn),并確保團(tuán)隊(duì)經(jīng)常根據(jù)所需標(biāo)準(zhǔn)來測(cè)試ML模型,都是相當(dāng)重要的。
除技術(shù)挑戰(zhàn)外,還有更多的組織結(jié)構(gòu)挑戰(zhàn)
因?yàn)镸L與軟件工程本質(zhì)截然不同,所以更需要進(jìn)行一些根本性的組織變革:例如尊重實(shí)驗(yàn)文化,數(shù)據(jù)分析驅(qū)動(dòng)的思維方式,以及對(duì)不確定性的包容。
如果將機(jī)器學(xué)習(xí)視為純粹的技術(shù)問題,而忽略了相關(guān)的組織變革,公司很可能會(huì)面臨所謂「創(chuàng)新者的困境」(The Innovator’s Dilemma)。 這對(duì)機(jī)器人制造商等硬件公司來說尤其具有挑戰(zhàn),因?yàn)樗鼈儗?duì)于過去一直追求高精度,然而,ML雖然會(huì)隨著數(shù)據(jù)增加而進(jìn)步,卻通常無法在一開始就達(dá)到100%精準(zhǔn)。 此外,機(jī)器學(xué)習(xí)產(chǎn)品需要大量的數(shù)據(jù),所以業(yè)者必須建立自己的數(shù)據(jù)管道和基礎(chǔ)架構(gòu),以支持ML產(chǎn)品的擴(kuò)展。 對(duì)大多數(shù)的公司來說,這也是一個(gè)全新的課題。
機(jī)器學(xué)習(xí)仍然是一個(gè)新領(lǐng)域,并且會(huì)不斷發(fā)展
「軟件工程」一詞最早于1965年出現(xiàn),也就是程序語言出現(xiàn)15年后。 大約20年后,軟件工程學(xué)院才成立,以管理軟件工程開發(fā)流程。 今天,我們已經(jīng)找到了軟件工程的最佳實(shí)踐(best practice)。
反觀機(jī)器學(xué)習(xí),在1990年才開始作為一個(gè)單獨(dú)的領(lǐng)域而蓬勃發(fā)展。 深度學(xué)習(xí)是ML的一部分,它在圖像識(shí)別和NLP等領(lǐng)域創(chuàng)造了新的記錄,但直到2012年AlexNet出現(xiàn)之后,才被大眾廣泛討論。
與軟件工程相比,ML仍處于起步階段,因此仍缺乏行業(yè)標(biāo)準(zhǔn),衡量指針,基礎(chǔ)架構(gòu)和開發(fā)工具。 因此,相關(guān)企業(yè)仍在探索最佳作法和熱門應(yīng)用。
機(jī)器學(xué)習(xí)產(chǎn)品的可解釋性和透明度
機(jī)器學(xué)習(xí)算法就像一個(gè)黑盒子,它接受輸入(例如圖像)并輸出預(yù)測(cè)(例如圖像中的人物是什么)。 這使得產(chǎn)品經(jīng)理很難解釋ML模型是如何運(yùn)作的,也很難從用戶和相關(guān)單位得到全面支持。
尤其是在醫(yī)療保健等關(guān)鍵領(lǐng)域,責(zé)任歸屬和信息透明度至關(guān)重要。 在沒有清楚地了解算法實(shí)際工作原理的情況下,確保ML模型與產(chǎn)品目標(biāo)之間的一致性是一項(xiàng)艱巨的挑戰(zhàn)。
面對(duì)這些挑戰(zhàn),我們應(yīng)該如何管理機(jī)器學(xué)習(xí)產(chǎn)品? 在第二部分中,我將分享我所學(xué)習(xí)到的最佳作法。
作者:Bastiane Huang。目前在舊金山擔(dān)任 AI/Robotics新創(chuàng)公司產(chǎn)品經(jīng)理,專注于開發(fā)機(jī)器學(xué)習(xí)軟件,用于機(jī)器人視覺和控制。
本文由@Bastiane 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于 CC0 協(xié)議。
我就在ml醫(yī)療公司,深有同感