2021年10月21日前言如何能夠在你還不是專家的時(shí)候假裝成一個(gè)專家呢? 首先,你要說人話。要用外行能聽得懂的語言。很多真正的專家之所以沒有被廣大外行接受,就是因?yàn)樗麄冋f的話太過專業(yè),絕大部分的人都聽不懂。雖然大家也會(huì)認(rèn)可你的能力,但恐怕下次萬萬不敢再找這樣的專家交流,因?yàn)橥耆恢?,?huì)對(duì)聽眾的自信心造成一萬點(diǎn)的暴擊。當(dāng)然了,項(xiàng)目的實(shí)際交付階段還是要這樣的真專家出馬的,不然就只能用ppt糊弄人了。 其次,要體現(xiàn)實(shí)踐的經(jīng)驗(yàn)。不管你是否真的有實(shí)踐經(jīng)驗(yàn),一定要在交流中把一些相對(duì)實(shí)在的、接地氣的、在實(shí)際交付階段能夠發(fā)揮作用的point甩出來,這樣才能有效加持你的專家身份。眾所周知,現(xiàn)在的客戶,尤其是大廠的客戶見多識(shí)廣,越來越不好打(hu)動(dòng)(you),那些只會(huì)規(guī)劃而沒有實(shí)操經(jīng)驗(yàn)的顧問生存空間越來越小,極有可能第一次交流就被客戶挑落馬下。因此,一定要記下幾句能夠體現(xiàn)實(shí)操經(jīng)驗(yàn)的箴言作為防彈衣。 言歸正傳,下面就為大家提供一些這樣的防護(hù)工具,希望有所幫助。 背景最近參加了一次機(jī)器學(xué)習(xí)的培訓(xùn)課程,該培訓(xùn)的主題是為有一定基礎(chǔ)的顧問提供關(guān)于開展機(jī)器學(xué)習(xí)項(xiàng)目的進(jìn)階知識(shí)和要點(diǎn)。幾個(gè)小時(shí)的課程聽下來,確實(shí)受益匪淺。課程主講人是有著豐富經(jīng)驗(yàn)的一線專家,他深入淺出地講述要點(diǎn),不夾雜過多的理論知識(shí),非常方便廣大咨(da)詢(hu)師(you)現(xiàn)買現(xiàn)賣。 這樣的課程簡直就是咨詢、售前技術(shù)支持從業(yè)者的最愛——說的都是人人都能聽懂的通俗語言,并且乍一聽起來,還挺有道理,充滿著實(shí)操過程中的寶貴經(jīng)驗(yàn)總結(jié)。 下面就將一些要點(diǎn)摘錄如下,方便朋友們平時(shí)打單、交付、吹牛、閑扯時(shí)裝扮成AI專家之用。 要點(diǎn)優(yōu)化指標(biāo)與滿足指標(biāo)如果你同時(shí)關(guān)心多項(xiàng)指標(biāo),你可以將其中的一項(xiàng)指標(biāo)設(shè)為優(yōu)化指標(biāo),使其表現(xiàn)盡可能的好,將另外的一項(xiàng)或多項(xiàng)設(shè)為滿足指標(biāo),確保其表現(xiàn)滿足要求即可。 對(duì)于一個(gè)模型來說,可能有很多指標(biāo)需要滿足,但是很難都兼顧到,因此可以將所有的指標(biāo)分為兩類,一類叫做優(yōu)化指標(biāo),另一類叫做滿足指標(biāo)。對(duì)于最關(guān)心的優(yōu)化指標(biāo),要盡可能地好,而滿足指標(biāo),只要滿足其基本的閾值要求就可以了,以此來降低模型調(diào)整的難度。 訓(xùn)練集、驗(yàn)證集、測(cè)試集的大小設(shè)置傳統(tǒng)做法是70/30分,但是現(xiàn)在往往數(shù)據(jù)量非常大,例如100萬條,那么可能98萬條數(shù)據(jù)做訓(xùn)練集,驗(yàn)證集和測(cè)試集各1萬條。 現(xiàn)在的趨勢(shì)是,使用更多數(shù)據(jù)作為訓(xùn)練集,使用較少的數(shù)據(jù)作為驗(yàn)證集和測(cè)試集,還是不建議不使用測(cè)試集,也就是說測(cè)試集的存在讓人更安心 平時(shí)我們做項(xiàng)目,尤其是工業(yè)現(xiàn)場(chǎng)的項(xiàng)目極有可能遇到的情況是數(shù)據(jù)量不足,剛好與上述情況相反。因此,為了充分利用數(shù)據(jù),經(jīng)常采用S折交叉驗(yàn)證的方式,也就是隨機(jī)將已有的數(shù)據(jù)分成S個(gè)互不相交的大小相同的子集,然后利用S-1個(gè)子集的數(shù)據(jù)作為訓(xùn)練集,利用其余的一個(gè)子集作為測(cè)試集。將可能的S種選擇重復(fù)進(jìn)行,選擇出S次測(cè)評(píng)中平均測(cè)試誤差最小的模型。 人類水平的表現(xiàn)(很多場(chǎng)景中)可以認(rèn)為人類的表現(xiàn)水平就是極限了,即貝葉斯誤差。 通過貝葉斯誤差就能夠幫助數(shù)據(jù)科學(xué)家判斷下一步的優(yōu)化方向。比如,模型的錯(cuò)誤率已經(jīng)接近了貝葉斯誤差,那么就應(yīng)該嘗試去減少方差,即縮小模型在訓(xùn)練集和測(cè)試集上的表現(xiàn)差異。 對(duì)于一個(gè)誤差不可能為0的問題,有一個(gè)好的貝葉斯誤差估計(jì),可以很好的幫助你評(píng)估可避免的偏差和方差,從而更利于做決定究竟是專注于偏差降低技術(shù) 還是方差降低技術(shù) 這方面可以作為一個(gè)參考,但是對(duì)于人類水平的表現(xiàn),其指標(biāo)到底是多少,這個(gè)要如何才能準(zhǔn)確獲得呢。查文獻(xiàn)?做實(shí)驗(yàn)?可能這個(gè)建議只能作為某些場(chǎng)景應(yīng)用的一個(gè)參考了。 訓(xùn)練集、驗(yàn)證集和測(cè)試集不同分布怎么辦驗(yàn)證集和測(cè)試集應(yīng)該聚焦在你所關(guān)心的領(lǐng)域,而訓(xùn)練集有一些不一致的分布,倒是不那么重要。 可以將大量其他分布的數(shù)據(jù)全部加入到訓(xùn)練集中,而將自己所關(guān)心的領(lǐng)域的數(shù)據(jù)(可能相對(duì)很少量的數(shù)據(jù))分配到訓(xùn)練集、驗(yàn)證集、測(cè)試集中,或者都放在驗(yàn)證集和測(cè)試集中。 因?yàn)轵?yàn)證集和測(cè)試集的數(shù)據(jù)一定要聚焦在我們所關(guān)心的領(lǐng)域,與其保持同分布,這樣對(duì)于模型的選擇和評(píng)估才是有意義的 有的時(shí)候,我們能夠用于訓(xùn)練的數(shù)據(jù)非常少,那么不妨充分利用一些相關(guān)的數(shù)據(jù),雖然分布不同,但是放在訓(xùn)練集中也未嘗不可。 訓(xùn)練-開發(fā)集(training-dev set)注:所謂開發(fā)集,就是驗(yàn)證集的另一種叫法。 當(dāng)訓(xùn)練集與開發(fā)集、測(cè)試集不同分布時(shí),為了確定方差是由數(shù)據(jù)不同分布造成的,還是由過擬合造成的,這是就需要引入訓(xùn)練-開發(fā)集。 訓(xùn)練-開發(fā)集是從原有的訓(xùn)練集中拿出一小塊數(shù)據(jù),這樣其分布與訓(xùn)練集一致。 在訓(xùn)練集進(jìn)行訓(xùn)練后,在訓(xùn)練-開發(fā)集進(jìn)行驗(yàn)證,對(duì)比其精度的變化,如果變化大,說明模型的泛化有問題,否則,說明先前的方差是由數(shù)據(jù)的不同分布(訓(xùn)練集、開發(fā)集、測(cè)試集的數(shù)據(jù)不同分布)造成的。 這一條經(jīng)驗(yàn)同樣是應(yīng)對(duì)上文中提到的“訓(xùn)練集、驗(yàn)證集和測(cè)試集不同分布”而來的。 遷移學(xué)習(xí)(transfer learning)深度學(xué)習(xí)中最有力的方法之一,是有時(shí)你可以把在一個(gè)任務(wù)中神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)到的東西,應(yīng)用到另一個(gè)任務(wù)中去。比如,你可以讓神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)去識(shí)別物體,比如貓,然后用學(xué)習(xí)到的(一部分)知識(shí)來幫助你更好地識(shí)別X射線的結(jié)果。這就是所謂的遷移學(xué)習(xí)。 之所以這樣的過程是有用的,是因?yàn)閺拇笠?guī)模的圖像識(shí)別數(shù)據(jù)集中,學(xué)習(xí)到的邊界檢測(cè),曲線檢測(cè),明暗對(duì)象檢測(cè)等低層次的信息,或許能夠幫助你的學(xué)習(xí)算法更好地去進(jìn)行放射掃描結(jié)果的診斷。 所以當(dāng)神經(jīng)網(wǎng)絡(luò)學(xué)會(huì)了圖像識(shí)別,意味著它可能學(xué)習(xí)到了以下信息:關(guān)于不同圖片的點(diǎn),線,曲面等等信息,在不同圖片中看起來是什么樣子的?;蛟S關(guān)于一個(gè)物體對(duì)象的很小的細(xì)節(jié),都能夠幫助你在放射信息診斷的神經(jīng)網(wǎng)絡(luò)中,學(xué)習(xí)得更快一些或者減少學(xué)習(xí)需要的數(shù)據(jù)。 那么遷移學(xué)習(xí)在什么時(shí)候有用呢?當(dāng)你在你的被遷移的模型中擁有大量的數(shù)據(jù),而你在你需要解決的問題上擁有相對(duì)較少的數(shù)據(jù)時(shí),遷移學(xué)習(xí)是適用的。 不適用的場(chǎng)景如下:如果目標(biāo)任務(wù)有更多的數(shù)據(jù),那么就直接針對(duì)目標(biāo)任務(wù)建模就好了,不需要再利用一個(gè)數(shù)據(jù)相對(duì)少的任務(wù)成果了 需要明確的是,遷移學(xué)習(xí)絕對(duì)不是咱們?nèi)祟惖乃^的“觸類旁通”的推理與抽象能力。 多任務(wù)學(xué)習(xí)在不同輸出之間,神經(jīng)網(wǎng)絡(luò)前面的特征可以共享,那么你會(huì)發(fā)現(xiàn),訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)做4件事的結(jié)果比 訓(xùn)練4個(gè)完全獨(dú)立的神經(jīng)網(wǎng)絡(luò)的結(jié)果要好。 在多任務(wù)學(xué)習(xí)中,即使一些圖像只標(biāo)記某些對(duì)象也能正常工作。 多任務(wù)學(xué)習(xí)的使用條件包括:1、所訓(xùn)練一系列的任務(wù)可以共享一些低層次的特征;2、針對(duì)每個(gè)任務(wù)的數(shù)據(jù)也非常相似;3、在所有的任務(wù)之上訓(xùn)練一個(gè)足夠大的神經(jīng)網(wǎng)絡(luò),這樣效果比較好。 實(shí)際上多任務(wù)學(xué)習(xí)要比遷移學(xué)習(xí)用得少得多。 我看到很多遷移學(xué)習(xí)的應(yīng)用,你想通過一個(gè)小數(shù)量的數(shù)據(jù)來解決問題。你找一個(gè)有大量數(shù)據(jù)的相關(guān)問題來學(xué)習(xí),然后轉(zhuǎn)移到這個(gè)新的問題。多任務(wù)學(xué)習(xí)用的更少,一般在你有大量任務(wù)需要完成,你可以同時(shí)訓(xùn)練所有這些任務(wù)。 端到端深度學(xué)習(xí)概念:傳統(tǒng)的方式是將輸入到輸出分成若干個(gè)階段來分別處理,而端到端就是用一個(gè)神經(jīng)網(wǎng)絡(luò)處理所有的階段。而如果你的數(shù)據(jù)量比較小的話,那么通常傳統(tǒng)的管道方式(分階段)比較好。 與傳統(tǒng)的分階段的方法相比,這種方式需要更多的數(shù)據(jù)。 如果你有中等量的數(shù)據(jù),可以采用折衷的方法:例如,輸入音頻,繞過這些特征,只學(xué)習(xí)輸出神經(jīng)網(wǎng)絡(luò)的音素,然后繼續(xù)其它階段。 局限:如果你有足夠的數(shù)據(jù), 也許端到端的方案會(huì)更加好,如果沒有足夠的數(shù)據(jù),目前來說在實(shí)際應(yīng)用中這不是最好的方法。但是,也可以嘗試將一個(gè)問題分解成兩個(gè)問題,如果這兩個(gè)問題都是有足夠訓(xùn)練數(shù)據(jù)的。 總結(jié)一下:具體用哪種方式(分階段還是端到端)由數(shù)據(jù)情況決定,如果有很多端到端的數(shù)據(jù),那么就用端到端的方法,否則,需要把整個(gè)問題分解成若干個(gè)階段,而每個(gè)階段的問題都有足夠數(shù)量的數(shù)據(jù)來訓(xùn)練。端到端深度學(xué)習(xí)能夠非常有效,并且簡化系統(tǒng),但是它不是萬能的,并不總是那么有效 如何確定是否使用端到端深度學(xué)習(xí)端到端深度學(xué)習(xí)的好處:有數(shù)據(jù)來決定,只要有足夠的數(shù)據(jù),就能夠通過訓(xùn)練一個(gè)足夠大的神經(jīng)網(wǎng)絡(luò),進(jìn)行識(shí)別。而且會(huì)比機(jī)器學(xué)習(xí)效果更好。也就是說,讓學(xué)習(xí)算法直接去學(xué)習(xí)從X->Y的效果,可能比認(rèn)為增加一些中間步驟要好很多 所需的人類動(dòng)手設(shè)計(jì)的組件變的更少了 所以這可以簡化你的設(shè)計(jì)工作流程,意味著你不需要花大量的時(shí)間去動(dòng)手設(shè)計(jì)特征,手工設(shè)計(jì)這些中間表示形式。 缺點(diǎn):端到端學(xué)習(xí)需要大量的數(shù)據(jù),所以為了使用機(jī)器學(xué)習(xí)直接得出X到Y(jié)的映射 你或許需要大量的(X,Y)數(shù)據(jù)。并且它排除了一些具有潛在用途的手工設(shè)計(jì)組件,所以機(jī)器學(xué)習(xí)研究人員往往會(huì)輕視手工設(shè)計(jì)的組件。 決定因素:你正在嘗試去決定是否要使用端到端的深度學(xué)習(xí),關(guān)鍵的問題是,你是否有足夠的數(shù)據(jù)去學(xué)習(xí)出具有能夠映射X到Y(jié)所需復(fù)雜度的方程。 總結(jié)一下:算法的兩個(gè)主要知識(shí)來源一個(gè)是數(shù)據(jù),另一個(gè)是人工設(shè)計(jì)的東西。如果有足夠多的數(shù)據(jù),那么手工設(shè)計(jì)的組件就無所謂了。但是,如果沒有足夠多的數(shù)據(jù),那么就需要手工設(shè)計(jì)了。一個(gè)精心人工設(shè)計(jì)的系統(tǒng)實(shí)際上可以讓人們向算法中注入人類關(guān)于這個(gè)問題的知識(shí)。 當(dāng)前人工智能的局限性(摘錄自《Python深度學(xué)習(xí)》)什么是目前人工智能做不了的——推理和抽象,這也正是人工智能與人類的差距。 思考這樣的問題,想要學(xué)習(xí)讓火箭登陸月球的正確的發(fā)射參數(shù),如果使用深度網(wǎng)絡(luò)來完成這個(gè)任務(wù),并用監(jiān)督學(xué)習(xí)或強(qiáng)化學(xué)習(xí)來訓(xùn)練網(wǎng)絡(luò),那么我們需要輸入上千次、甚至上百萬次發(fā)射時(shí)延,也就是說,我們需要為它提供輸入空間的密集采樣,以便模型能夠?qū)W到從輸入空間到輸出空間的可靠映射。相比之下,我們?nèi)祟惪梢岳贸橄竽芰μ岢鑫锢砟P停ɑ鸺茖W(xué)),并且只用一次或幾次試驗(yàn)就能得到讓火箭登陸月球的精確解決方案。 同樣,如果你開發(fā)一個(gè)能夠控制人體的深度網(wǎng)絡(luò),并且希望它學(xué)會(huì)在城市里安全行走,不會(huì)被汽車撞上,那么這個(gè)網(wǎng)絡(luò)不得不在各個(gè)場(chǎng)景中死亡數(shù)千次,才能推斷出汽車是危險(xiǎn)的,并作出適當(dāng)?shù)亩惚苄袨?。將這個(gè)網(wǎng)絡(luò)放到一個(gè)新城市,它不得不重新學(xué)習(xí)已知的大部分知識(shí)。但人類不要死亡就可以學(xué)會(huì)安全行為,這也要?dú)w功于我們對(duì)假想情景進(jìn)行抽象建模的行為。 之前確實(shí)遇到過客戶在這方面的挑戰(zhàn),他說,我們針對(duì)設(shè)備的某一類故障做預(yù)測(cè)分析的方式不能算作智能化,他認(rèn)為真正的智能是,你讓模型學(xué)習(xí)A故障發(fā)生的歷史數(shù)據(jù),最后模型連B故障的發(fā)生也能預(yù)測(cè),這才算是智能化。 我當(dāng)時(shí)就用上面這段話回應(yīng)了客戶,雖然他仍然將信將疑,但是畢竟咱們也算是有理有據(jù)。 并且我也委婉的表示,您老還是應(yīng)該加強(qiáng)學(xué)習(xí),不能沉浸在自己個(gè)兒的臆想當(dāng)中。試想,一個(gè)骨外科的醫(yī)生即使從業(yè)經(jīng)驗(yàn)再豐富,為再多的病人做骨科的手術(shù),也很難成為消化內(nèi)科的專家。人類尚且如此,那么當(dāng)前的人工智能技術(shù)就更無法實(shí)現(xiàn)了。 結(jié)語最后還是說一點(diǎn)正能量的東西吧。 希望大家好好學(xué)習(xí)、努力工作,做一個(gè)真正的專家,一個(gè)能給客戶帶來價(jià)值的專家?!把b專家”完全是一種奢望,你可能忽悠人家一時(shí),但是不可能一直不露餡。即使運(yùn)氣好,簽下一單,交付也會(huì)出現(xiàn)問題,到時(shí)不止是公司的商譽(yù)受影響,作為顧問,個(gè)人的信譽(yù)也要大打折扣。如果因?yàn)樽约旱囊粋€(gè)忽悠成功而沾沾自喜的話,那就太可悲了。因此,奉勸大家謹(jǐn)慎。 踏踏實(shí)實(shí)地每天多看點(diǎn)書、多敲幾行代碼、多實(shí)踐、多總結(jié)才是真正的專家之路。 |
|