機器學習在前兩年的時間里比庄,一下子就爆火了起來。很多公司也跟著這個趨勢制恍,招募了很多算法工程師神凑、數(shù)據(jù)挖掘工程師耙厚。但是,在實踐中俯渤,企業(yè)發(fā)現(xiàn)要落地型宝,實際上還有很多問題需解決絮爷。以至于在大部分項目坑夯,還是規(guī)則主導抡四。算法工程師的日常指巡,也不過是清洗數(shù)據(jù),調(diào)整規(guī)則秘噪。所以勉耀,機器學習技術,在真實的應用中到底缺少些什么呢至壤?
在國立臺灣大學《機器學習》2019春季班崇渗,李宏毅老師給出了他的觀察京郑。以下的內(nèi)容葫掉,結(jié)合李老師的最新講義俭厚、加上我本身工作的理解,給大家梳理機器學習落地急需解決的9個難題叼丑。
拒絕回答與可解釋性(哲學層面)
1. Anomaly Detection 機器能不能知道“我不知道”
機器能不能知道自己的識別范圍扛门,還是說生硬地給出模型內(nèi)的東西论寨,或者說拋出無法識別爽茴。在貓狗分類里室奏,現(xiàn)有的模型已經(jīng)到達很高的精度劲装,甚至能給出貓狗的品種酱畅。
但是正式上線后,用戶真的會乖乖給到貓狗的圖片嗎窖逗?如果用戶丟一張妹子圖碎紊,機器能夠知道自己不知道嗎樊诺?目前這個領域的研究叫做 Anomaly Detection。知道自己不知道秃嗜,對于一些異常的情況锅锨,十分重要恋沃。
2. Explainable AI 說出為什么“我知道”
神馬漢斯的故事:
18世紀德國,一匹名叫漢斯的馬成為當?shù)鼐W(wǎng)紅恕洲。他能夠計算簡單的算術題,并用蹄子敲出正確回答户辞。這在當時一度引起轟動末誓。后來喇澡,有人做了個實驗晴玖,把漢斯和周圍的人完全隔絕,這匹馬就完全蒙圈了让簿。時事證明尔当,這匹馬的神奇能力不在于他的算數(shù)能力,而在于他的觀察能力畜号。當給到正確答案時允瞧,周圍的人會有不一樣的反應述暂,漢斯也就隨即停止敲馬蹄。
機器學習的成果踱卵,是否同漢斯一樣惋砂,通過一些意想不到的渠道酝掩,獲得的答案期虾。在 GCPR 2017 Tutorial 的研究中喳坠,研究者通過注意力機制壕鹉,研究機器判斷的依據(jù)。
實驗者測試了兩個模型,兩個模型均為馬匹識別笙各。DNN 模型的焦點集中在馬匹身上,是一個正常的模型惶楼。但 FV 的交點卻集中在圖片左下角歼捐。原來豹储,圖片的左下角有圖片的出處剥扣,所有的包含馬匹的圖都有這個標記曙聂。所以,F(xiàn)V 模型學到的重點在于這些標記贤姆。同樣的表現(xiàn),卻是不一樣的判斷依據(jù)。顯然音婶,F(xiàn)V 模型的判斷依據(jù)是滑稽和不可靠的。
我們需要一些技術碴卧,讓 AI 不僅給出結(jié)果乃正,同時要給出判斷的依據(jù)瓮具。即:模型的可解釋性名党。
抵御惡意攻擊
3. 防止 Adversarial Attack
人有錯覺,機器是否也會有錯覺睛藻。我們來做一個認知實驗修档。以下兩個圈圈迫靖,哪個的顏色更深系宜?好俩垃,記住你的答案口柳。結(jié)果將在稍后揭曉跃闹。
對于機器肌访,有研究表明吼驶,通過改變圖像中的個別像素咧欣,可以起到迷惑機器的作用魄咕。改變一個像素,就可以讓模型的判斷結(jié)果從熊貓到長臂猿喝滞。該技術名叫 Adversarial Attack。
這樣的技術相當危險窘哈。舉個例子,當自動駕駛的車輛行駛在路上時图筹,可能路邊的人揮舞下旗子让腹,機器的判斷就會被干擾,做出不當?shù)呐e動民宿。
回到開頭的例子像鸡,正確答案是左邊。這其實是一個計中計志群。你以為這是視覺認知實驗蛔钙,其實這也是某種形式的“心理攻擊”。
學習模式
4. Life-long learning 終身學習
終身學習是一個人類行為的概念」ダ洌活到老學到老遍希,大家都知道只有不斷更新自己的知識,才能跟上社會發(fā)展的步伐禁谦。同時呢废封,先前學到的東西,對后面的學習仍有幫助遥皂。舉個例子:學完線性代數(shù)之后,對學習和理解機器學習就大有幫助冗懦。
但是仇祭,機器不一樣颈畸。今天的我們,一般只讓一個模型學習一個任務礁苗。但這樣會存在一些問題徙缴。首先是隨著建模的增多,模型數(shù)量將無限增長疏叨。其次穿剖,模型之前學到的技能,對之后的學習沒有幫助秀又。就像 Alphastar 它玩星際爭霸很棒贬芥,但讓他同時學下圍棋,目前來說是不行的袱讹。它和 Alphazero 是兩個不同的模型 昵时。
那么,自然而然的救巷,我們就會拋出這樣一個疑問句柠,機器能否終身學習呢?這里的相關研究精盅,提個關鍵詞 Catastrophic Forgetting 。
5. Meta-learning / Learn to learn 學習如何學習
現(xiàn)有的機器學習模型設計妻枕,都遵循著這樣一個范式——在特定領域人工設計一套算法粘驰,讓機器去學習蝌数。我們就想,能不能設計一套算法顶伞,讓機器自己去設計自己的學習算法呢唆貌?
這樣的范式,我們稱之為 meta-learning 元學習众羡,或者叫 learn to learn蓖租,學習如何學習。
模型改進
6. Reinforcement learning 增強學習為什么這么慢
現(xiàn)在擼模型齐婴,沒用上增強學習稠茂,都不好意思說出來。在像星際爭霸這樣的游戲中诱担,增強學習確實有用电爹。但是,它真的有那么強嗎摇邦?
在星際爭霸中,機器花了900小時居扒,才到達4000分左右丑慎。而人類的能力在哪兒呢?人類只需要2小時夜惭,就能到達铛绰。像前面提到的Alphastar产喉,它雖然在星際爭霸上能夠痛扁人類曾沈,但它可是花了200年的時間在玩這個游戲。模型世界就像是修仙小說里的精神世界姐帚。若是把一個人丟在里面障涯,只能玩星際爭霸,他其實也可以達到機器的水平九秀,更可能比機器做得更好粘我。增強學習為什么這么慢,能不能再快些都弹?
7. Network Compression 神經(jīng)網(wǎng)絡壓縮
機器學習目前多運行在大型服務器上畅厢,配備極強的 GPU搁料、相當大的內(nèi)存和數(shù)目眾多的 CPU系羞。但若想要把機器學習廣泛應用于生活中霸琴,IoT 物聯(lián)網(wǎng)這類設備的計算和存儲都是十分有限的梧乘。我們能不能把模型縮小础嫡,同時保留其能力呢非竿。我們能不能把大型神經(jīng)網(wǎng)絡進行剪枝香罐,或者是參數(shù)二元化双肤,以此來減輕內(nèi)存和計算壓力呢弦聂。我們現(xiàn)在有 tensorflow lite,有 coreML匪凉,但這些還不夠捺檬。
訓練數(shù)據(jù)
8. Few-shot / Zero-shot learning 一定需要很多訓練數(shù)據(jù)嗎
做比賽堡纬、寫論文的都知道,要想效果好饺饭,數(shù)據(jù)少不了职车。數(shù)據(jù)質(zhì)量很大程度決定了結(jié)果的表現(xiàn)。但是在實際生產(chǎn)環(huán)境中扛芽,帶標注的優(yōu)質(zhì)數(shù)據(jù)是極其稀少的积瞒。這個時候,老板想讓你做一個異常游戲玩家的識別叮喳,數(shù)據(jù)樣本又很少,你該怎么辦畔濒?除去自己手工標注锣咒、請人標注毅整、做數(shù)據(jù)擴增外,我們還有很沒有別的辦法艇潭。難道要跟老板攤牌承粤,說做不了這一個任務嗎闯团?
現(xiàn)實場景的樣本之少房交,一直有在困惑我們一線的員工。現(xiàn)在我們就希望刃唤,模型能夠通過少量的樣本白群,擴展到大量的未標記數(shù)據(jù)。這樣的研究有笼裳,我們稱之為 Few-shot learning粱玲。更有甚至,模型能不能通過我對川菜的描述:麻辣允青、重油颠锉、就識別出桌上的飯菜是四川菜呢?這樣的模型被稱之為 Zero-shot learing皆串,不需要樣本進行學習眉枕。
9. 機器學習的謊言 訓練數(shù)據(jù)和測試數(shù)據(jù)很不一樣
當我們在學習機器學習各類算法時速挑,教科書都會有這樣一個假設:訓練數(shù)據(jù)和測試數(shù)據(jù)擁有相同的分布。但在真實世界中翅萤,這就是個謊言腊满。
以手寫數(shù)字識別為例碳蛋,當訓練集和測試集同分布時,你可以輕松達到99%的正確率玷室。但在真實生活中笤受,你的老板可能會給你右邊的任務箩兽。訓練數(shù)據(jù)是黑白的,實際場景中背景卻是彩色的身坐。這里你有兩個選擇:一是把《機器學習》這本數(shù)仍到老板面前芳绩,告訴他書上寫的要求同分布,你這個任務做不了搪花。但是一想到你家里的老婆孩子,你可能還是會含淚接下這個任務吮便。仔細想想幢踏,若是模型真的識別到數(shù)字的形狀房蝉,背景色應該沒有關系吧。但是當你真正來做這件事時咧擂,你會發(fā)現(xiàn)檀蹋,同樣的模型,正確率下降到了57.5%贸桶。
諸如此類的問題皇筛,在真實場景中很常見识脆。實際工作中灼捂,我們也有采取一些措施换团,盡量避免分布不同步的情況發(fā)生。
總結(jié)
李宏毅老師以上的總結(jié)的猛,在生產(chǎn)環(huán)境確實存在想虎。這也是我把它梳理一遍的動機舌厨,希望所有從業(yè)者在工作中能夠注意到它們,在這些問題上有所突破躏哩。看完本文的讀者筋栋,別忘了點贊正驻、評論、喜歡+關注哦肴颊。你的鼓勵渣磷,是我下一步的動力醋界。
原文首發(fā)鏈接