入门GAN的补习
?本文主要介紹了近年來GAN(生成對(duì)抗網(wǎng)絡(luò))在分布差異度量,IPM與正則化,對(duì)偶學(xué)習(xí),條件與控制,提高分辨率,評(píng)價(jià)指標(biāo)等問題上的發(fā)展情況和代表性工作,希望對(duì)之前沒有跟進(jìn) GAN 相關(guān)工作的同學(xué)有所幫助~”
作者:縱橫
來源:知乎專欄 機(jī)器不學(xué)習(xí)
編輯:happyGirl
最近,筆者在導(dǎo)師的指導(dǎo)下,進(jìn)行了一些 GAN + GCN/video 的研究。不得不說,GAN 已經(jīng)火了這么長(zhǎng)時(shí)間,在圖卷積和視頻分析等交叉領(lǐng)域、應(yīng)用領(lǐng)域中仍然有著很強(qiáng)的生命力。在1+1=2的時(shí)候需要解決的問題也不少。筆者在研究過程中首先嘗試了一些基礎(chǔ)模型,并選取了其中具有代表性的進(jìn)行了記錄。后續(xù)有時(shí)間會(huì)繼續(xù)記錄 GAN + GCN / GAN + video 和自己正在實(shí)現(xiàn)的 pytorch gan zoo。
9102年,萬物皆可 embedding 的目標(biāo)已經(jīng)基本實(shí)現(xiàn),表示學(xué)習(xí)受到廣泛重視,生成學(xué)習(xí)如火如荼。筆者在最近的研究中,發(fā)現(xiàn)交叉領(lǐng)域1+1=2的粘合工作已經(jīng)所剩無幾了。但是,1+1=2之后仍面臨著一些任務(wù)特點(diǎn)相關(guān)的小問題,為了解決筆者所在領(lǐng)域的小問題,筆者總結(jié)并復(fù)現(xiàn)了經(jīng)典的 GAN 網(wǎng)絡(luò),希望對(duì)之前沒有跟進(jìn) GAN 相關(guān)工作的同學(xué)有所幫助~
導(dǎo)視
很多現(xiàn)有的機(jī)器學(xué)習(xí)任務(wù)可以歸結(jié)為 domain transform,將數(shù)據(jù)從源域轉(zhuǎn)換到目標(biāo)域,例如根據(jù)文字生成圖像、根據(jù)前一幀生成后一幀、將一種風(fēng)格轉(zhuǎn)換為另一種風(fēng)格等等。現(xiàn)有的神經(jīng)網(wǎng)絡(luò) module已經(jīng)能夠幫助我們將源數(shù)據(jù)映射為任意目標(biāo) size,而 MSE、MAE、Huber Loss 等傳統(tǒng) 損失函數(shù),也能夠度量生成樣本與目標(biāo)域樣本之間的差異。
但是,用這種方式構(gòu)建的模型(例如 Auto Encoder)在 BP 后,往往 不那么令人滿意 。
在研究過程中,一些工作發(fā)現(xiàn),這些 傳統(tǒng)的損失函數(shù) 在指導(dǎo) NN 更新的過程中 只能粗略地 根據(jù)所有像素的 平均誤差計(jì)算梯度,導(dǎo)致了很多邊緣分布、 局部的差異 沒有被學(xué)到。
圖一:MSE 的局限性如上圖所示,兩張生成圖像在原圖的基礎(chǔ)上修改的像素?cái)?shù)目相同,因此其 MSE 誤差相同。然而根據(jù)常識(shí),第二張圖像明顯不符合 0 的模式。一個(gè)好的損失函數(shù),應(yīng)當(dāng)賦予第二張生成圖像更大的 MSE。
在此基礎(chǔ)上,GAN 網(wǎng)絡(luò)提出了一種 可學(xué)習(xí)的損失函數(shù) ,即判別器(Discriminator), 自適應(yīng)地 度量?jī)蓚€(gè) 總體分布之間的差異,即連續(xù)的概率分布。(不同于 MSE、MAE、Huber Loss 等 固定的 損失函數(shù),度量?jī)蓚€(gè) 樣本之間的差異,即離散的概率分布)。
圖二:不同于度量樣本之間的差異,GAN 度量的是兩個(gè)總體分布的差異在推導(dǎo)過程中,大多工作根據(jù)“ 貝葉斯統(tǒng)計(jì) ”的理論,最大化生成域和目標(biāo)域的似然。
個(gè)人認(rèn)為,一個(gè)真正有生命力的研究方向不一定有好的 performance,但至少 應(yīng)該能夠拆分成不同的子問題,分別開花結(jié)果。如果大家都在一個(gè)問題上,堆疊、魔改 module,那這個(gè)研究方向恐怕只能曇花一現(xiàn)。GAN 作為一個(gè)在 2019 年仍然蓬勃發(fā)展的 topic,其優(yōu)化方向在 CV 中可以分為以下 6 類:
一、分布差異的度量
改進(jìn)度量生成分布和目標(biāo)分布差異,提高生成效果的精度和多樣性
二、IPM與正則化
截?cái)嗵荻取樘荻忍砑诱齽t,提高 GAN 收斂的穩(wěn)定性
三、對(duì)偶學(xué)習(xí)
利用循環(huán)一致性,添加源域與重構(gòu)域的約束,充分利用數(shù)據(jù)
四、條件與控制
融合已知條件,控制生成過程和生成結(jié)果的特征
五、提高分辨率的努力
傳統(tǒng)的 GAN 網(wǎng)絡(luò)在生成大圖時(shí)較為模糊,一些工作在提高生成圖像的分辨率上進(jìn)行了研究
六、評(píng)價(jià)指標(biāo)
不同 GAN 生成效果的度量
一、分布差異的度量
在上文中,我們提到 GAN 的本質(zhì)目標(biāo)是使生成分布和目標(biāo)分布盡可能相近。但是,應(yīng)該如何衡量?jī)烧吒怕史植贾g的差異呢?
GAN
圖三:GAN 由生成器和判別器構(gòu)成Goodfellow 首次提出了極小極大博弈(minimax game),開啟了 GAN 的篇章。GAN 需要同時(shí)訓(xùn)練兩個(gè)模型,即一個(gè)能捕獲數(shù)據(jù)分布的生成模型 ?? ,和一個(gè)能估計(jì)數(shù)據(jù)是否為真實(shí)樣本的判別模型??。生成器的訓(xùn)練目標(biāo)是最大化判別器犯錯(cuò)誤的概率,即通過優(yōu)化生成分布,讓判別器誤以為生成的假樣本為真。而判別器的訓(xùn)練目標(biāo)是最小化自己犯錯(cuò)誤的概率,即找出生成器生成的假樣本,loss 可以表達(dá)為:
在實(shí)現(xiàn)過程中,GAN 的判別器和生成器往往是交替優(yōu)化(或5:1)的,可以分別寫出判別器和生成器的優(yōu)化目標(biāo):
論文:arxiv (https://arxiv.org/abs/1406.2661)
代碼:github (https://github.com/eriklindernoren/PyTorch-GAN/blob/master/implementations/gan/gan.py)
LSGAN
LSGAN 將生成樣本和真是樣本分別編碼為 ?? , ?? ,并使用平方誤差代替了 GAN 的邏輯損失 :
試驗(yàn)表明,LSGAN 能夠部分解決 GAN 訓(xùn)練不穩(wěn)定和生成圖像質(zhì)量差的問題。但是,平方誤差對(duì)離群點(diǎn)的過度懲罰,可能會(huì)導(dǎo)致過度模仿真實(shí)樣本,降低生成結(jié)果的多樣性。
論文:arxiv
代碼:[ github ](https://link.zhihu.com/?target=https%3A//github.com/LynnHo/DCGAN-LSGAN- WGAN-GP-DRAGAN-Pytorch/blob/master/v0/train_celeba_lsgan.py)
f-GAN
f-GAN 進(jìn)一步擴(kuò)展了 GAN 的損失函數(shù) ,認(rèn)為 GAN 所使用的 JS 散度和 LSGAN 所使用的卡方散度都屬于散度的特例,還可以使用其他不同的距離或散度來衡量真實(shí)分布與生成分布 。在此基礎(chǔ)上,f-GAN 設(shè)計(jì)一組根據(jù)不同散度計(jì)算得到的損失:
其中, ?? 可以根據(jù)不同散度,替換為多種表達(dá)形式;由于 ??對(duì)判別器的值域有要求,判別器輸出層的激活函數(shù)也需要替換:
圖四:f-GAN的多種形式論文:arxiv (https://arxiv.org/abs/1606.00709)
代碼:github(https://github.com/shayneobrien/generative-models/blob/master/src/f_gan.py)
EBGAN
f-GAN 在散度視角集大成,EBGAN 則 將判別器視為一個(gè)能量函數(shù),作為一個(gè)可訓(xùn)練的損失函數(shù)。該能量函數(shù)將靠近真實(shí)分布的區(qū)域視為低能量區(qū)域,遠(yuǎn)離真是分布的視為高能量區(qū)域。生成器會(huì)盡可能生成最小能量的偽造樣本。在這種視角下,生成器的網(wǎng)絡(luò)結(jié)構(gòu)和損失函數(shù)更加靈活多變,EBGAN 提出 使用自動(dòng)編碼器結(jié)構(gòu),用重構(gòu)誤差代替分類器的分類結(jié)果 :
圖五:EBGAN 的判別器采用自動(dòng)編碼器結(jié)構(gòu)即, ??。在設(shè)計(jì)損失函數(shù)時(shí),為了使能量模型更加穩(wěn)定,作者 添加了一個(gè)邊際值?? :
論文:arxiv(https://arxiv.org/abs/1609.03126)
代碼:github(https://github.com/eriklindernoren/PyTorch-GAN/blob/master/implementations/ebgan/ebgan.py)
二、IPM與正則化
很多時(shí)候,由于對(duì)抗學(xué)習(xí),GAN 的收斂并不理想。IPM (積分概率度量) 將鑒別器的輸出從概率轉(zhuǎn)變?yōu)閷?shí)數(shù),并通過正則化將梯度限定在一定區(qū)間內(nèi),有效防止了判別器過早優(yōu)化,導(dǎo)致生成器梯度消失的問題。
WGAN
WGAN 在分析 GAN 收斂不穩(wěn)定的原因后認(rèn)為,判別器訓(xùn)練的梯度很難把控是導(dǎo)致 GAN 收斂不穩(wěn)定的罪魁禍?zhǔn)住E袆e器訓(xùn)練得太好,生成器的梯度消失,loss 難以下降;判別器訓(xùn)練的不好,生成器的梯度不準(zhǔn)確,loss 四處亂跑。只有在零和游戲中把握判別器和生成器的平衡才行。
WGAN 作出了如下修改:
判別器的最后一層取消 sigmoid
2. 對(duì)判別器使用梯度裁剪,將梯度 ?? 取值限制在 ?? 區(qū)間內(nèi)。
3. 使用 RMSProp 或 SGD 并以較低的學(xué)習(xí)率進(jìn)行優(yōu)化
損失函數(shù)可以表示成:
? 的作用是將 ??的劇烈變化限制的更平緩一點(diǎn),可以表示為:
在實(shí)現(xiàn)上就是將梯度 ?? 取值限制在 ?? 區(qū)間內(nèi)。
論文:arxiv(https://arxiv.org/abs/1701.07875) 代碼:github(https://github.com/Zeleni9/pytorch-wgan/blob/master/models/wgan_clipping.py)
WGAN-GP
WGAN 提出不久后,WGAN 的作者又對(duì) WGAN 進(jìn)行了優(yōu)化,將梯度裁剪(weight clipping)替換為梯度懲罰(gradient penalty),提出帶有梯度懲罰的 WGAN-gp。
論文:arxiv(https://arxiv.org/abs/1704.00028)
代碼:github(https://github.com/caogang/wgan-gp/blob/master/gan_cifar10.py)
BEGAN
BEGAN 進(jìn)一步結(jié)合了 WGAN 和 EBGAN 的思路。一方面,BEGAN 使用自動(dòng)編碼器和重構(gòu)誤差度量生成樣本與真實(shí)樣本的差異:
圖六:BEGAN 的判別器也采用自動(dòng)編碼器結(jié)構(gòu)另一方面,BEGAN 訓(xùn)練了一個(gè)超參數(shù),用于平衡判別器和生成器的優(yōu)化速度:
論文:arxiv(https://arxiv.org/abs/1703.10717) 代碼:github(https://github.com/shayneobrien/generative-models/blob/master/src/be_gan.py)
三、對(duì)偶學(xué)習(xí)
一些工作通過對(duì)偶學(xué)習(xí),將 GAN 的生成-識(shí)別過程,擴(kuò)展為生成-識(shí)別和重建-識(shí)別的過程,更充分地利用了源域和目標(biāo)域的信息。DaulGAN、CycleGAN 和 DiscoGAN 的網(wǎng)絡(luò)結(jié)構(gòu)大同小異,但是 motivation 的差異很有趣:
DaulGAN
DaulGAN 提出將源分布轉(zhuǎn)換為目標(biāo)分布,與將目標(biāo)分布轉(zhuǎn)換回源分布,是一個(gè)對(duì)偶問題,可以協(xié)同優(yōu)化。
圖七:DaulGAN 的網(wǎng)絡(luò)結(jié)構(gòu)CycleGAN
CycleGAN 提出了循環(huán)一致性(Cycle-Consistent)原則,其基本思想是圖像經(jīng)過映射變?yōu)榱硪活悎D像后,應(yīng)該能通過逆映射變換回原來的圖像。
圖八:CycleGAN 的網(wǎng)絡(luò)結(jié)構(gòu)論文:arxiv(https://arxiv.org/abs/1703.10593)
代碼:github(https://github.com/aitorzip/PyTorch-CycleGAN/blob/master/models.py)
DiscoGAN
為了學(xué)習(xí)不同域之間的映射,DiscoGAN 首先想到了添加了第二個(gè)生成器,和重構(gòu)損失項(xiàng)來比較真實(shí)圖像和重構(gòu)圖像。
圖九:DiscoGAN 的單映射網(wǎng)絡(luò)然而,這樣設(shè)計(jì)出的模型是單方向映射的,無法同時(shí)學(xué)習(xí)如何從目標(biāo)域映射回源域。此外,由于 MSE 對(duì)離群點(diǎn)的過度懲罰也會(huì)使模型存在模式崩塌問題,只會(huì)在源圖上做微小的修改。因此,作者進(jìn)一步提出了雙向映射的 DiscoGAN:
圖十:DiscoGAN 的雙映射網(wǎng)絡(luò)論文:arxiv(https://arxiv.org/abs/1703.05192) 代碼:github(https://github.com/carpedm20/DiscoGAN-pytorch/blob/master/models.py)
四、條件與控制
GAN 的生成樣本不可控,ConditionalGAN 通過添加先驗(yàn)/條件,指導(dǎo)生成樣本的過程,從而控制生成的樣本滿足某些特征。
cGAN
通過 GAN 可以生成與目標(biāo)分布相近的分布,例如生成 0 到 9 的數(shù)字等。但是,我們無法干預(yù)傳統(tǒng) GAN 生成分布的過程,譬如指定生成數(shù)字 1 等。因此,cGAN 將 GAN 中的概率分布改成了條件概率:
具體而言,就是在生成器和鑒別器的輸入中,都拼接已知的條件向量:
圖十一:cGAN 的網(wǎng)絡(luò)結(jié)構(gòu)圖中, ?? 代表從正態(tài)分布中采樣的噪聲;?? 代表真實(shí)分布中采樣的樣本,?? 代表?xiàng)l件向量,例如樣本標(biāo)簽的 one hot 編碼。在判別器判別生成樣本時(shí),會(huì)根據(jù)條件判別,從而迫使生成器參考條件向量生成樣本。
論文:arxiv(https://arxiv.org/abs/1411.1784)
代碼:github(https://github.com/eriklindernoren/PyTorch-GAN/blob/master/implementations/cgan/cgan.py)
IcGAN
最初,cGAN 只將樣本標(biāo)簽的 one hot 編碼作為輸入,在標(biāo)簽級(jí)控制生成樣本。如何更細(xì)力度的更改生成樣本的某些特征呢?IcGAN 通過編碼器學(xué)習(xí)了原圖到其特征向量的映射,今兒通過修改特征向量的部分特征作為生成器的輸入生成希望生成的特征:
圖十二:IcGAN 的網(wǎng)絡(luò)結(jié)構(gòu)ACGAN
ACGAN 沒有選擇將條件(樣本的類別)直接輸入判別器,而是訓(xùn)練判別器對(duì)樣本進(jìn)行分類,即判別器不僅需要判斷每個(gè)樣本的真假,還需要預(yù)測(cè)已知條件(樣本的類別,添加一個(gè)分類的損失)。
圖十三:ACGAN 的網(wǎng)絡(luò)結(jié)構(gòu)ACGAN 的一個(gè)好處是,判別器輸出條件的設(shè)計(jì)使我們可以采用在其他數(shù)據(jù)集上預(yù)訓(xùn)練的模型進(jìn)行前一學(xué)習(xí),從而生成更清晰的圖像減輕模式崩塌的問題。此外,如上圖所示,還有其他類似的設(shè)計(jì)為 GAN 添加先驗(yàn)分布,例如 SemiGAN 和 InfoGAN 等,但大同小異。
論文:arxiv(https://arxiv.org/abs/1610.09585) 代碼:github(https://github.com/eriklindernoren/PyTorch-GAN/blob/master/implementations/acgan/acgan.py)
五、提高分辨率的努力
在最初的工作中,受到正態(tài)分布采樣的 noise 尺寸的限制,GAN 還只能生成 32x32 的低分辨率的圖像。一些工作針對(duì)如何生成高分辨率圖像進(jìn)行了研究。
DCGAN
DCGAN 首次將 CNN 引入 GAN(此前 GAN 大多由全連接層構(gòu)成),并提出了一個(gè)能夠穩(wěn)定收斂的 CNN + GAN 結(jié)構(gòu)。很多 trick 為后面的研究提供了基礎(chǔ):
圖十四:DCGAN 的生成器下采樣使用帶有步長(zhǎng)的卷積,而不是池化
2. 上采樣使用反卷積,而不是插值
3. 判別器的激活函數(shù)使用 Leaky ReLU
4. 使用 BatchNorm 層(注:在 WGAN 不適用)
5. 生成器與判別器對(duì)偶等等
論文:arxiv(https://arxiv.org/abs/1511.06434) 代碼:github(https://github.com/eriklindernoren/PyTorch-GAN/blob/master/implementations/dcgan/dcgan.py)
SAGAN
隨著研究的深入,一些 CV 中常用的與 CNN 結(jié)合的 module 逐漸被引入。SAGCN 提出在生成器和判別器中引入 Self Attention 模塊,獲取距離較遠(yuǎn)的相關(guān)區(qū)域的信息,提升了生成圖像的清晰度。
圖十五:Self Attention 結(jié)構(gòu)在原文實(shí)現(xiàn)中,Self Attention 只需要加在生成器和判別器的最后兩層。
論文:arxiv(https://arxiv.org/abs/1805.08318) 代碼:github(https://github.com/heykeetae/Self-Attention-GAN/blob/master/sagan_models.py)
BigGAN
隨著可用的 module 逐漸增加,網(wǎng)絡(luò)參數(shù)量的軍備競(jìng)賽也逐漸展開。BigGAN 作為 GAN 發(fā)展史上的里程碑,在精度上(128x128 分辨率)實(shí)現(xiàn)了跨越式的提升。雖然其模型規(guī)模較大,很難在本地復(fù)現(xiàn),但是BigGAN 使用的 Self Attention、Res Block、大 channel/batch、梯度階段技巧等為后續(xù)的研究提供了借鑒。
圖十六:BigGAN 結(jié)構(gòu)論文:arxiv(https://arxiv.org/abs/1809.11096) 代碼:github(https://github.com/ajbrock/BigGAN-PyTorch/blob/master/BigGANdeep.py)
LAPGAN
LAPGAN 結(jié)合 CGAN 將迭代和層次化的思想運(yùn)用到了圖像生成中。LAPGAN 認(rèn)為與其一下子生成大分辨率的圖像,先生成低分辨率的圖像。在向上采樣,提高分辨率的過程中,讓生成器每次生成缺少的細(xì)節(jié)信息,即“殘差”圖片,與上采樣后的圖片做加法,得到更高分辨率的圖像:
圖十七:LAPGAN 的推理過程在訓(xùn)練過程中,LAPGAN 在每個(gè)分辨率下,以下采樣后的圖像為先驗(yàn)條件,學(xué)習(xí)下采樣再上采樣后與原圖的信息損失,即殘差的生成:
圖十七:LAPGAN 的訓(xùn)練過程論文:arxiv(https://arxiv.org/abs/1506.05751)
代碼:github (https://github.com/AaronYALai/Generative_Adversarial_Networks_PyTorch/blob/master/LAPGAN/LAPGAN.py)
六、評(píng)價(jià)指標(biāo)
生成器的 loss 可以衡量生成的圖片能騙過判別起的性能,但是無法度量生成圖像的準(zhǔn)確性和多樣性。因此,除了主觀性的評(píng)估外,近年的工作中也出現(xiàn)了 IS、FIP 等客觀評(píng)價(jià)指標(biāo)(類似 PSNR 評(píng)估圖像質(zhì)量)對(duì)生成圖像的準(zhǔn)確性和多樣性進(jìn)行評(píng)估(有些同學(xué)問這些評(píng)估指標(biāo)能否作為 loss:這些指標(biāo)只反映了生成數(shù)據(jù)的某些統(tǒng)計(jì)特征,做 loss 是無法指導(dǎo) GAN 優(yōu)化的)。
IS
Inception Score 作為早期的評(píng)價(jià)指標(biāo),提出 GAN 生成的結(jié)果可以由兩個(gè)維度來衡量:即生成結(jié)果的準(zhǔn)確性(可分性)和多樣性:以生成圖片為例,對(duì)于一張清晰的圖片,它屬于某一類的概率應(yīng)該非常大,而屬于其它類的概率應(yīng)該較小(可以準(zhǔn)確的被 Inception v3 分類)。同時(shí),如果 GAN 能生成足夠多樣的圖片,那么它生成的圖片在各個(gè)類別中應(yīng)當(dāng)是均勻分布的(而不是只有某幾種,即模式崩塌)。
值得注意的是,IS 越大,GAN 的效果越好。
代碼:github(https://github.com/sbarratt/inception-score-pytorch/blob/master/inception_score.py)
FID
然而,IS 存在一個(gè)問題,真實(shí)圖像并沒有參與到生成圖像的評(píng)估過程中。因此,FID 提出將生成圖像與真實(shí)圖像的進(jìn)行的比較(在 Inception v3 的 feature map 層面),實(shí)現(xiàn)對(duì)生成圖像準(zhǔn)確性和多樣性的評(píng)估。
值得注意的是,FID越小,GAN 的效果越好。
代碼:github(https://github.com/mseitzer/pytorch-fid/blob/master/fid_score.py)
其他
FID 和 IS 都是基于特征提取的評(píng)估方法,feature map 有效地描述了某些特征是否出現(xiàn),但是無法描述這些特征的空間關(guān)系。因而,近年來 GAN dissertation, on GAN and GMM 等文章對(duì) GAN 的生成效果進(jìn)行了進(jìn)一步的分析。
一個(gè)比較有趣的結(jié)論是,目前大多數(shù) GAN 的模型相較于原始的 GAN 模型并沒有本質(zhì)上的提升,只是收斂速度更快、收斂更穩(wěn)定了。因此,在解決交叉領(lǐng)域的問題時(shí),筆者一般先用常規(guī)的 WGAN-GP 進(jìn)行測(cè)試,得到一個(gè)大致的 baseline,再?zèng)Q定是否繼續(xù)深入研究下去,或者探究有哪些 task special 的問題。
尾注
看到一段很好的話,指導(dǎo)我們的科研工作(逃)與大家共勉~
層級(jí)結(jié)構(gòu)并不意味著學(xué)科 X “僅僅是Y的應(yīng)用”。每個(gè)新的層級(jí)都需要全新的定律、概念和歸納,并且和其前一個(gè)層級(jí)一樣,研究過程需要大量的靈感和創(chuàng)意。心理學(xué)不是應(yīng)用生物學(xué),生物學(xué)也不是應(yīng)用化學(xué)。
備注:公眾號(hào)菜單包含了整理了一本AI小抄,非常適合在通勤路上用學(xué)習(xí)。
往期精彩回顧那些年做的學(xué)術(shù)公益-你不是一個(gè)人在戰(zhàn)斗適合初學(xué)者入門人工智能的路線及資料下載機(jī)器學(xué)習(xí)在線手冊(cè)深度學(xué)習(xí)在線手冊(cè)備注:加入本站微信群或者qq群,請(qǐng)回復(fù)“加群”加入知識(shí)星球(4500+用戶,ID:92416895),請(qǐng)回復(fù)“知識(shí)星球”喜歡文章,點(diǎn)個(gè)在看
總結(jié)
- 上一篇: 机器学习大佬的进阶之路!一位北大硕士毕业
- 下一篇: 一文弄懂AdaBoost、提升树、残差树