【AI初识境】如何增加深度学习模型的泛化能力
文章首發(fā)于微信公眾號(hào)《有三AI》
【AI初識(shí)境】如何增加深度學(xué)習(xí)模型的泛化能力
這是專欄《AI初識(shí)境》的第9篇文章。所謂初識(shí),就是對(duì)相關(guān)技術(shù)有基本了解,掌握了基本的使用方法。
今天來(lái)說(shuō)說(shuō)深度學(xué)習(xí)中的generalization問(wèn)題,也就是泛化和正則化有關(guān)的內(nèi)容。
?作者&編輯?| 言有三
?
1 什么是generalization
機(jī)器學(xué)習(xí)方法訓(xùn)練出來(lái)一個(gè)模型,希望它不僅僅是對(duì)于已知的數(shù)據(jù)(訓(xùn)練集)性能表現(xiàn)良好,對(duì)于未知的數(shù)據(jù)(測(cè)試集)也應(yīng)該表現(xiàn)良好,也就是具有良好的generalization能力,這就是泛化能力。測(cè)試集的誤差,也被稱為泛化誤差。
舉個(gè)例子來(lái)說(shuō),我們?cè)贗mageNet上面訓(xùn)練分類模型,希望這個(gè)模型也能正確地分類我們自己拍攝的照片。
在機(jī)器學(xué)習(xí)中,泛化能力的好壞,最直觀表現(xiàn)出來(lái)的就是模型的過(guò)擬合(overfitting)與欠擬合(underfitting)。
過(guò)擬合和欠擬合是用于描述模型在訓(xùn)練過(guò)程中的兩種狀態(tài),一般來(lái)說(shuō),訓(xùn)練會(huì)是這樣的一個(gè)曲線。下面的training error,generalization error分別是訓(xùn)練集和測(cè)試集的誤差。
訓(xùn)練剛開(kāi)始的時(shí)候,模型還在學(xué)習(xí)過(guò)程中,訓(xùn)練集和測(cè)試集的性能都比較差,這個(gè)時(shí)候,模型還沒(méi)有學(xué)習(xí)到知識(shí),處于欠擬合狀態(tài),曲線落在underfitting zone,隨著訓(xùn)練的進(jìn)行,訓(xùn)練誤差和測(cè)試誤差都下降。
隨著模型的進(jìn)一步訓(xùn)練,在訓(xùn)練集上表現(xiàn)的越來(lái)越好,終于在突破一個(gè)點(diǎn)之后,訓(xùn)練集的誤差下降,測(cè)試集的誤差上升了,這個(gè)時(shí)候就進(jìn)入了過(guò)擬合區(qū)間overfitting zone。
不過(guò)也不是說(shuō)什么訓(xùn)練過(guò)程,都會(huì)滿足上面的曲線。
(1) 模型訓(xùn)練過(guò)程中,訓(xùn)練集的誤差一定一直低于測(cè)試集嗎?未必。
如果這兩個(gè)集合本來(lái)就取自于同樣的數(shù)據(jù)分布,比如從一個(gè)數(shù)據(jù)集中隨機(jī)采樣,那么有可能測(cè)試的誤差從一開(kāi)始就低于訓(xùn)練集。不過(guò),總體的趨勢(shì)肯定是不變的,兩者從一開(kāi)始慢慢下降直到最后過(guò)擬合,訓(xùn)練集的誤差低于測(cè)試集。
(2) 模型的訓(xùn)練一定會(huì)過(guò)擬合嗎?這也不一定!
如果數(shù)據(jù)集足夠大,很可能模型的能力不夠始終都不會(huì)過(guò)擬合。另一方面,有很多的方法可以阻止,或者減緩模型的過(guò)擬合,比如正則化,這就是下面第二部分要說(shuō)的。
?
2 什么是Regularization?
Regularization即正則化,它本是代數(shù)幾何中的一個(gè)概念,我們不說(shuō)因?yàn)檎f(shuō)不好。放到機(jī)器學(xué)習(xí)里面來(lái)說(shuō),所謂正則化,它的目標(biāo)就是要同時(shí)讓經(jīng)驗(yàn)風(fēng)險(xiǎn)和模型復(fù)雜度較小。
以上是我們的優(yōu)化目標(biāo),V就是損失函數(shù),它表示的是當(dāng)輸入xi預(yù)測(cè)輸出為f(xi),而真實(shí)標(biāo)簽為yi時(shí),應(yīng)該給出多大的損失。那么我們不禁要問(wèn),有這一項(xiàng)不就行了嗎?為什么還需要后面的那一項(xiàng)呢?R(f)又是什么呢?
這就是回到上面的泛化誤差和過(guò)擬合的問(wèn)題了,一個(gè)機(jī)器學(xué)習(xí)系統(tǒng),學(xué)習(xí)的是從輸入到輸出的關(guān)系,只要一個(gè)模型足夠復(fù)雜,它是不是可以記住所有的訓(xùn)練集合樣本之間的映射,代價(jià)就是模型復(fù)雜,帶來(lái)的副作用就是沒(méi)見(jiàn)過(guò)的只是略有不同的樣本可能表現(xiàn)地就很差,就像下面這張圖,只是更改了一個(gè)像素,預(yù)測(cè)就從Dog變成了Cat。
造成這種情況的問(wèn)題就是學(xué)的太過(guò),參數(shù)擬合的太好以致于超過(guò)了前面那個(gè)訓(xùn)練曲線的最低泛化誤差臨界點(diǎn),究其根本原因是模型的表達(dá)能力足夠強(qiáng)大到過(guò)擬合數(shù)據(jù)集。
式子中的R(f),正是為了約束模型的表達(dá)能力,f是模型,R是一個(gè)跟模型復(fù)雜度相關(guān)的函數(shù),單調(diào)遞增。
有同學(xué)可能會(huì)說(shuō),模型的表達(dá)能力跟模型大小,也就是參數(shù)量有關(guān),限制模型的表達(dá)能力不是應(yīng)該去調(diào)整模型大小嗎?這里咱們從另一個(gè)角度來(lái)看模型的能力問(wèn)題
如果我們限制一層神經(jīng)網(wǎng)絡(luò)的參數(shù)只能為0或者1,它的表達(dá)能力肯定不如不做限制,所以同樣的參數(shù)量,模型的表達(dá)能力與參數(shù)本身也有關(guān)系,正則項(xiàng)就可以在參數(shù)上做文章。
所以說(shuō)正則化就用于提高模型的泛化能力,這里所說(shuō)的僅僅是狹義上的參數(shù)正則化,而廣義上的正則化方法眾多,第3部分進(jìn)行介紹
正則化的最終目標(biāo)用一句土話來(lái)說(shuō),就是讓網(wǎng)絡(luò)學(xué)的不要太死,否則變成僵硬的書呆子。
?
3 正則化方法有哪些
正則化方法,根據(jù)具體的使用策略不同,有直接提供正則化約束的參數(shù)正則化方法如L1/L2正則化,以及通過(guò)工程上的技巧來(lái)實(shí)現(xiàn)更低泛化誤差的方法,比如訓(xùn)練提前終止和模型集成,我將其稱為經(jīng)驗(yàn)正則化,也有不直接提供約束的隱式正則化方法如數(shù)據(jù)增強(qiáng)等,下面就從這三類進(jìn)行講述。
1、經(jīng)驗(yàn)正則化方法
這里主要包含兩種方法,即提前終止和模型集成。
(1) 提前終止
前面我們看的訓(xùn)練曲線隨著不斷迭代訓(xùn)練誤差不斷減少,但是泛化誤差減少后開(kāi)始增長(zhǎng)。假如我們?cè)诜夯`差指標(biāo)不再提升后,提前結(jié)束訓(xùn)練,也是一種正則化方法,這大概是最簡(jiǎn)單的方法了。
(2) 模型集成
另一種方法就是模型集成(ensemable),也就是通過(guò)訓(xùn)練多個(gè)模型來(lái)完成該任務(wù),它可以是不同網(wǎng)絡(luò)結(jié)構(gòu),不同的初始化方法,不同的數(shù)據(jù)集訓(xùn)練的模型,也可以是用不同的測(cè)試圖片處理方法,總之,采用多個(gè)模型進(jìn)行投票的策略
在這一類方法中,有一個(gè)非常有名的方法,即Dropout。
Dropout在2014年被H提出后在深度學(xué)習(xí)模型的訓(xùn)練中被廣泛使用。它在訓(xùn)練過(guò)程中,隨機(jī)的丟棄一部分輸入,此時(shí)丟棄部分對(duì)應(yīng)的參數(shù)不會(huì)更新。所謂的丟棄,其實(shí)就是讓激活函數(shù)的輸出為0。結(jié)構(gòu)示意圖如下。
因而,對(duì)于一個(gè)有n個(gè)節(jié)點(diǎn)的神經(jīng)網(wǎng)絡(luò),有了dropout后,就可以看做是2^n個(gè)模型的集合了,使用的時(shí)候當(dāng)然不能用2^n個(gè)模型來(lái)進(jìn)行推理,而是采用了近似方法,即在使用的時(shí)候不進(jìn)行權(quán)重丟棄。根據(jù)丟棄比例的不同,在測(cè)試的時(shí)候會(huì)給輸出乘以相應(yīng)的系數(shù),比如某一層在訓(xùn)練的時(shí)候只保留50%的權(quán)重,在測(cè)試的時(shí)候是需要用到所有參數(shù)的,這個(gè)時(shí)候就給該層的權(quán)重乘以0.5。
關(guān)于dropout的有效性,從結(jié)構(gòu)上來(lái)說(shuō),它消除或者減弱了神經(jīng)元節(jié)點(diǎn)間的聯(lián)合,降低了網(wǎng)絡(luò)對(duì)單個(gè)神經(jīng)元的依賴,從而增強(qiáng)了泛化能力。不過(guò)也有另外的一些研究從數(shù)據(jù)增強(qiáng)的角度來(lái)思考這個(gè)問(wèn)題。
那么,就真的不擔(dān)心dropout會(huì)把一些非常重要的神經(jīng)元?jiǎng)h除嗎?最新的神經(jīng)科學(xué)的研究以及DeepMind等研究人員通過(guò)對(duì)神經(jīng)元進(jìn)行隨機(jī)刪除來(lái)研究網(wǎng)絡(luò)性能,發(fā)現(xiàn)雖然某些神經(jīng)元確實(shí)很重要,它們會(huì)選擇性激活特定輸入,比如只對(duì)輸入貓圖特別敏感,對(duì)其他輸入則完全不感冒,但是刪除這一類神經(jīng)元仍然不影響網(wǎng)絡(luò)能識(shí)別到貓。
這說(shuō)明網(wǎng)絡(luò)中未必少了誰(shuí)就不行。不過(guò)反過(guò)來(lái),上面說(shuō)到的單個(gè)像素的攻擊,則說(shuō)明又有某些神經(jīng)元至關(guān)重要。關(guān)于這其中的關(guān)系,仍然是研究熱門,還是不斷跟進(jìn)更多最新的研究吧。
總之一句話,不怕刪了誰(shuí)。就dropout的使用方法而言,我們平常只更改dropout的比例,作者對(duì)此還有更多的建議。
(1) 因?yàn)閐ropout降低了模型的性能,所以對(duì)于原本需要容量為N的網(wǎng)絡(luò)才能解決的問(wèn)題,現(xiàn)在需要N/p,p就是保留該節(jié)點(diǎn)的概率,這個(gè)概率通常在0.5~0.9之間,p=1就是普通的網(wǎng)絡(luò)了。
(2) 因?yàn)閐ropout相當(dāng)于增加了噪聲,造成梯度的損失,所以需要使用更大的學(xué)習(xí)率和動(dòng)量項(xiàng)。與此同時(shí),對(duì)權(quán)重進(jìn)行max-norm等權(quán)重約束方法,使其不超過(guò)某個(gè)值。
(3) 訓(xùn)練更久,很好理解。
對(duì)dropout方法,還有很多的變種,包括dropout connect,maxout,stochastic depth等。
一個(gè)神經(jīng)元的輸出實(shí)際上是由輸入以及參數(shù)來(lái)共同決定,dropout把神經(jīng)元的值設(shè)置為0了,那是不是也可以把參數(shù)設(shè)置為0呢?這就是drop connect,而且它可以比dropout更加靈活,可視為Dropout的一般化形式,從模型集成的角度來(lái)看,Dropout是2^n個(gè)模型的平均,那DropConnect呢?它應(yīng)該更多,因?yàn)闄?quán)重連接的數(shù)目比節(jié)點(diǎn)數(shù)本身更多,所以DropConnect模型平均能力更強(qiáng)。
Drop Connect和Dropout均引入了稀疏性,不同之處在于Drop Connect引入的是權(quán)重的稀疏而不是層的輸出向量的稀疏。
另外,在dropout這一個(gè)思路上做相關(guān)文章的還有一些,比如maxout,是一種激活函數(shù),它對(duì)N個(gè)輸入選擇最大的作為激活輸出。比如隨機(jī)pooling,是一種池化方法。比如stochastic depth,它用在帶有殘差結(jié)構(gòu)的網(wǎng)絡(luò)中,將某些res block直接設(shè)置為等價(jià)映射。還有backdrop,在前向的時(shí)候不drop,在梯度反傳的時(shí)候才做。
在這里不禁想給大家提兩個(gè)問(wèn)
(1) 你還能想到多少種drop方法?想不到就等我們下次專門說(shuō)。
(2) dropout應(yīng)該怎么跟其他的方法結(jié)合,比如batch normalization,會(huì)強(qiáng)強(qiáng)聯(lián)合得到更好的結(jié)果嗎?
2、參數(shù)正則化方法
L2/L1正則化方法,就是最常用的正則化方法,它直接來(lái)自于傳統(tǒng)的機(jī)器學(xué)習(xí)。
L2正則化方法如下:
L1正則化方法如下:
那它們倆有什么區(qū)別呢?最流行的一種解釋方法來(lái)自于模式識(shí)別和機(jī)器學(xué)習(xí)經(jīng)典書籍,下面就是書中的圖。
這么來(lái)看上面的那張圖,參數(shù)空間(w1,w2)是一個(gè)二維平面,藍(lán)色部分是一個(gè)平方損失函數(shù),黃色部分是正則項(xiàng)。
藍(lán)色的那個(gè)圈,中心的點(diǎn)其實(shí)代表的就是損失函數(shù)最優(yōu)的點(diǎn),而同心圓則代表不同的參數(shù)相同的損失,可見(jiàn)隨著圓的擴(kuò)大,損失增大。黃色的區(qū)域也類似,周邊的紅色線表示的是損失相同點(diǎn)的輪廓。
正則項(xiàng)的紅色輪廓線示平方損失的藍(lán)色輪廓線總要相交,才能使得兩者加起來(lái)的損失最小,兩者的所占區(qū)域的相對(duì)大小,是由權(quán)重因子決定的。不管怎么說(shuō),它們總有一個(gè)交叉點(diǎn)。
對(duì)于L2正則化,它的交點(diǎn)會(huì)使得w1或者w2的某一個(gè)維度特別小,而L1正則化則會(huì)使得w1或者w2的某一個(gè)維度等于0,因此獲得所謂的稀疏化
在深度學(xué)習(xí)框架中,大家比起L1范數(shù),更鐘愛(ài)L2范數(shù),因?yàn)樗悠交头€(wěn)定。
3、隱式正則化方法
前面說(shuō)了兩種正則化方法,第一種,通過(guò)對(duì)網(wǎng)絡(luò)結(jié)構(gòu)的修改或者在使用方法上進(jìn)行調(diào)整。第二種,直接對(duì)損失函數(shù)做了修改。這兩種方法,其實(shí)都應(yīng)該算作顯式的正則化方法,因?yàn)樵谧鲞@件事的過(guò)程中, 我們是有意識(shí)地知道自己在做正則化。
但是還有另一種正則化方法,它是隱式的正則化方法,并非有意識(shí)地直接去做正則化,卻甚至能夠取得更好的效果,這便是數(shù)據(jù)有關(guān)的操作,包括歸一化方法和數(shù)據(jù)增強(qiáng),擾亂標(biāo)簽。
關(guān)于數(shù)據(jù)增強(qiáng)的方法,我們以前已經(jīng)有過(guò)幾期文章講述,從有監(jiān)督方法到無(wú)監(jiān)督方法。關(guān)于歸一化方法,以batch normalization為代表,我們以前也詳細(xì)地講過(guò)。參考鏈接就放這里了,大家自取。
【AI初識(shí)境】深度學(xué)習(xí)模型中的Normalization,你懂了多少?
【技術(shù)綜述】深度學(xué)習(xí)中的數(shù)據(jù)增強(qiáng)(下)
[綜述類] 一文道盡深度學(xué)習(xí)中的數(shù)據(jù)增強(qiáng)方法(上)
實(shí)驗(yàn)表明,隱式的方法比顯式的方法更強(qiáng),從batch normalization的使用替換掉了dropout,以及數(shù)據(jù)擴(kuò)增碾壓一切trick就可以看出。另外,批量隨機(jī)梯度算法本身,也可以算是一種隱式的正則化方法,它隨機(jī)選擇批量樣本而不是整個(gè)數(shù)據(jù)集,與上面的dropout方法其實(shí)也有異曲同工之妙
這么看來(lái),其實(shí)data dependent方法更好,咱們前面的幾期都說(shuō)過(guò),不要悶著頭設(shè)計(jì),從數(shù)據(jù)中學(xué)習(xí)才是王道。
?
4 深度學(xué)習(xí)泛化能力到底好不好
你說(shuō)深度學(xué)習(xí)的泛化能力是強(qiáng)還是不強(qiáng),感覺(jué)完全可以打一架。
一方面,深度學(xué)習(xí)方法已經(jīng)在各行各業(yè)落地,說(shuō)泛化能力不好誰(shuí)都不信,都已經(jīng)經(jīng)得起工業(yè)界的考驗(yàn)。關(guān)于如何定量的衡量泛化能力,目前從模型復(fù)雜度的角度有一些指標(biāo),可以參考[1]。
但是另一方面,有許多的研究[2-3]都表明,僅僅是對(duì)圖像作出小的改動(dòng),甚至是一個(gè)像素的改動(dòng),都會(huì)導(dǎo)致那些強(qiáng)大的網(wǎng)絡(luò)性能的急劇下降,這種不靠譜又讓人心慌,在實(shí)際應(yīng)用的過(guò)程中,筆者也一直遇到這樣的問(wèn)題,比如下圖微小的平移操作對(duì)輸出概率的嚴(yán)重影響,真的挺常見(jiàn)。
正則化方法可以完美解決嗎?甚至最強(qiáng)的數(shù)據(jù)增強(qiáng)方法能做的都是有限的,一個(gè)網(wǎng)絡(luò)可以記憶住樣本和它的隨機(jī)標(biāo)簽[4],做什么正則化都沒(méi)有作用。說(shuō)起來(lái)神經(jīng)網(wǎng)絡(luò)一直在力求增強(qiáng)各種不變性,但是卻往往搞不定偏移,尺度縮放。這就是為什么在刷比賽的時(shí)候,僅僅是對(duì)圖像采用不同的crop策略,就能勝過(guò)任何其他方法的原因,從這一點(diǎn)來(lái)說(shuō),是一件非常沒(méi)有意思的事情。
或許,關(guān)于正則化,再等等吧。
參考文獻(xiàn)
[1]?Neyshabur B, Bhojanapalli S, Mcallester D A, et al. Exploring Generalization in Deep Learning[J]. neural information processing systems, 2017: 5947-5956.
[2] Su J, Vargas D V, Sakurai K, et al. One Pixel Attack for Fooling Deep Neural Networks[J]. IEEE Transactions on Evolutionary Computation, 2019: 1-1.
[3] Azulay A, Weiss Y. Why do deep convolutional networks generalize so poorly to small image transformations[J]. arXiv: Computer Vision and Pattern Recognition, 2018.
[4]?Zhang C, Bengio S, Hardt M, et al. Understanding deep learning requires rethinking generalization[J]. international conference on learning representations, 2017.
2019年有三AI培養(yǎng)計(jì)劃已經(jīng)開(kāi)始,一個(gè)季度一期,系統(tǒng)性進(jìn)階為深度學(xué)習(xí)算法工程師,不妨看看。
重新解釋“季”劃 & 為什么我不是在搞培訓(xùn)
?
總結(jié)
深度學(xué)習(xí)基礎(chǔ)理論部分就到此結(jié)束了,我們講述了激活機(jī)制,參數(shù)初始化,歸一化機(jī)制,池化機(jī)制,最優(yōu)化方法,以及正則化,這些都對(duì)模型的性能和訓(xùn)練有影響,希望大家能夠掌握基礎(chǔ)知識(shí)。在我們的下一個(gè)境界,將回過(guò)頭來(lái)繼續(xù)看它們,以及更復(fù)雜的東西。
下一期預(yù)告:深度學(xué)習(xí)中的評(píng)測(cè)方法
?
轉(zhuǎn)載文章請(qǐng)后臺(tái)聯(lián)系
侵權(quán)必究
比如網(wǎng)絡(luò)loss不正常,怎么調(diào)都不管用。
比如訓(xùn)練好好的,測(cè)試就是結(jié)果不對(duì)。
bug天天有,深度學(xué)習(xí)算法工程師遇到的特別多,如果你想交流更多,就來(lái)有三AI知識(shí)星球?qū)崟r(shí)提問(wèn)交流吧,大咖眾多,總有能解決你問(wèn)題的。
初識(shí)境界到此基本就結(jié)束了,這一系列是為大家奠定扎實(shí)的深度學(xué)習(xí)基礎(chǔ),希望學(xué)習(xí)完后大家能有收獲。
AI白身境系列完整閱讀:
第一期:【AI白身境】深度學(xué)習(xí)從棄用windows開(kāi)始
第二期:【AI白身境】Linux干活三板斧,shell、vim和git
第三期:【AI白身境】學(xué)AI必備的python基礎(chǔ)
第四期:【AI白身境】深度學(xué)習(xí)必備圖像基礎(chǔ)
第五期:【AI白身境】搞計(jì)算機(jī)視覺(jué)必備的OpenCV入門基礎(chǔ)
第六期:【AI白身境】只會(huì)用Python?g++,CMake和Makefile了解一下
第七期:【AI白身境】學(xué)深度學(xué)習(xí)你不得不知的爬蟲基礎(chǔ)
第八期:?【AI白身境】深度學(xué)習(xí)中的數(shù)據(jù)可視化
第九期:【AI白身境】入行AI需要什么數(shù)學(xué)基礎(chǔ):左手矩陣論,右手微積分
第十期:【AI白身境】一文覽盡計(jì)算機(jī)視覺(jué)研究方向
第十一期:【AI白身境】AI+,都加在哪些應(yīng)用領(lǐng)域了
第十二期:【AI白身境】究竟誰(shuí)是paper之王,全球前10的計(jì)算機(jī)科學(xué)家
AI初識(shí)境系列完整閱讀
第一期:【AI初識(shí)境】從3次人工智能潮起潮落說(shuō)起
第二期:【AI初識(shí)境】從頭理解神經(jīng)網(wǎng)絡(luò)-內(nèi)行與外行的分水嶺
第三期:【AI初識(shí)境】近20年深度學(xué)習(xí)在圖像領(lǐng)域的重要進(jìn)展節(jié)點(diǎn)
第四期:【AI初識(shí)境】激活函數(shù):從人工設(shè)計(jì)到自動(dòng)搜索
第五期:【AI初識(shí)境】什么是深度學(xué)習(xí)成功的開(kāi)始?參數(shù)初始化
第六期:【AI初識(shí)境】深度學(xué)習(xí)模型中的Normalization,你懂了多少?
第七期:【AI初識(shí)境】為了圍剿SGD大家這些年想過(guò)的那十幾招
第八期:【AI初識(shí)境】被Hinton,DeepMind和斯坦福嫌棄的池化,到底是什么?
第九期:【AI初識(shí)境】如何增加深度學(xué)習(xí)模型的泛化能力
第十期:【AI初識(shí)境】深度學(xué)習(xí)模型評(píng)估,從圖像分類到生成模型
第十一期:【AI初識(shí)境】深度學(xué)習(xí)中常用的損失函數(shù)有哪些?
第十二期:【AI初識(shí)境】給深度學(xué)習(xí)新手開(kāi)始項(xiàng)目時(shí)的10條建議
感謝各位看官的耐心閱讀,不足之處希望多多指教。后續(xù)內(nèi)容將會(huì)不定期奉上,歡迎大家關(guān)注有三公眾號(hào) 有三AI!
與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的【AI初识境】如何增加深度学习模型的泛化能力的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: 有三AILab成立 | 寻找合适的你
- 下一篇: 【AI-1000问】为什么深度学习图像分
