如果要讓機(jī)器人擁有人的學(xué)習(xí)能力,應(yīng)該怎么做?伯克利 AI 研究院給出了一個(gè)很好的答案——元強(qiáng)化學(xué)習(xí)(meta-RL)。但這一次伯克利 AI 研究院不只是使用了元強(qiáng)化學(xué)習(xí),還考慮POMDP、異步策略梯度等等知識體系,最終得到了一個(gè)高樣本效率、高探索效率的新算法「PEARL」。這一成果不僅為解決 AI 的實(shí)際問題提供新的思考角度;同時(shí)也是實(shí)現(xiàn)在現(xiàn)實(shí)系統(tǒng)中規(guī)模化應(yīng)用元強(qiáng)化學(xué)習(xí)的的第一步。伯克利 AI 研究院發(fā)布博文介紹了這一成果,雷鋒網(wǎng) AI 科技評論編譯如下。
背景
一個(gè)智能體如果要在不斷變化的復(fù)雜環(huán)境中正常運(yùn)行,那么它獲得新技能的速度必須足夠快。就像人類在這一方面表現(xiàn)出的非凡能力一樣,比如:人類可以從某個(gè)示例中學(xué)習(xí)怎樣辨別出一個(gè)全新的物體;在幾分鐘內(nèi)適應(yīng)不同汽車的不同駕駛方式;以及聽過某個(gè)俚語后,就能在自己的詞典中加上這個(gè)詞,等等。
因此,假設(shè)要使智能體來完成諸如人類這樣的學(xué)習(xí)能力,元學(xué)習(xí)則是一種可以參考的方法。使用這一范式,智能體可以通過充分利用在執(zhí)行相關(guān)任務(wù)中積累的豐富經(jīng)驗(yàn),以這些有限的數(shù)據(jù)為基礎(chǔ)去適應(yīng)新的任務(wù)。針對這類既需要采取行動(dòng)又需要積累過往經(jīng)驗(yàn)的智能體來說,元強(qiáng)化學(xué)習(xí)可以幫助其快速適應(yīng)新的場景。但美中不足的是,雖然訓(xùn)練后的策略可以幫助智能體快速適應(yīng)新的任務(wù),但元訓(xùn)練過程需要用到來自一系列訓(xùn)練任務(wù)的大量數(shù)據(jù),這就加劇了困惱強(qiáng)化學(xué)習(xí)算法的樣本效率低下問題。因此,現(xiàn)有的元強(qiáng)化學(xué)習(xí)算法在很大程度上只能在模擬環(huán)境中正常運(yùn)行。在本文中,我們簡要介紹了元強(qiáng)化學(xué)習(xí)的研究現(xiàn)狀,然后提出了一種新算法—— PEARL,該算法使得樣本效率得到數(shù)量級的大幅度提升。
前期回顧:元強(qiáng)化學(xué)習(xí)的研究進(jìn)展
兩年前,伯克利博客發(fā)布了一篇叫做《Learning to Learn》(文章查閱地址:https://bair.berkeley.edu/blog/2017/07/18/learning-to-learn/)的文章。這篇文章除了提出新的算法外,還對當(dāng)時(shí)人們對元學(xué)習(xí)的興趣激增做了調(diào)查統(tǒng)計(jì),結(jié)果表明無論是當(dāng)時(shí)還是現(xiàn)在,元學(xué)習(xí)的關(guān)鍵思路就是把復(fù)雜的問題簡化成我們已經(jīng)知道如何解決的問題。在傳統(tǒng)的機(jī)器學(xué)習(xí)中,研究者會(huì)給定一組數(shù)據(jù)點(diǎn)用來匹配模型;而在元學(xué)習(xí)中,則用一組數(shù)據(jù)集來替換這些數(shù)據(jù)點(diǎn),其中每個(gè)數(shù)據(jù)集都對應(yīng)一個(gè)學(xué)習(xí)問題。只要學(xué)習(xí)這些問題的過程(所謂的「適應(yīng)」)是可區(qū)分的,就可以像往常一樣,在具有梯度下降的外循環(huán)(元訓(xùn)練)中對其進(jìn)行優(yōu)化。一旦經(jīng)過訓(xùn)練,適應(yīng)程序就可以迅速從少量數(shù)據(jù)中解決新的相關(guān)任務(wù)。
最近的元強(qiáng)化學(xué)習(xí)進(jìn)展(從左到右依次為:通過元學(xué)習(xí)對觀察到人類行為實(shí)現(xiàn)單樣本模仿 https://arxiv.org/abs/1802.01557、以元強(qiáng)化學(xué)習(xí)模型為基礎(chǔ)的斷腿適應(yīng)https://arxiv.org/abs/1803.11347、用演變的策略梯度來推斷超越訓(xùn)練任務(wù)分布的情況https://arxiv.org/abs/1802.04821)
當(dāng)時(shí),大多數(shù)元學(xué)習(xí)工作都集中在小樣本圖像分類上。在此后的幾年里,元學(xué)習(xí)應(yīng)用到了更廣泛的問題上,如視覺導(dǎo)航、機(jī)器翻譯和語音識別等等。所以,將強(qiáng)化學(xué)習(xí)運(yùn)用到元學(xué)習(xí)方法內(nèi)是一個(gè)具有挑戰(zhàn)性但又振奮人心的任務(wù),因?yàn)檫@樣的結(jié)合將有望使智能體能夠更快速地學(xué)習(xí)新的任務(wù),這個(gè)能力對于部署在復(fù)雜和不斷變化的世界中的智能體來說是至關(guān)重要的。
因?yàn)樵獙W(xué)習(xí)本身的樣本復(fù)雜性問題和深度強(qiáng)化學(xué)習(xí)緊密相關(guān),因此元學(xué)習(xí)可以通過與深度強(qiáng)化學(xué)習(xí)相結(jié)合來解決這個(gè)問題。兩年前一些關(guān)于元學(xué)習(xí)的論文(RL2 https://arxiv.org/abs/1611.02779 ,Wang et al. https://arxiv.org/abs/1611.05763, 和 MAML https://arxiv.org/abs/1703.03400) ,介紹了在策略梯度(policygradient)和密集獎(jiǎng)勵(lì)(denserewards)的有限環(huán)境中將元學(xué)習(xí)應(yīng)用于強(qiáng)化學(xué)習(xí)的初步結(jié)果。此后,很多學(xué)者對這個(gè)方法產(chǎn)生了濃厚的興趣,也有更多論文展示了將元學(xué)習(xí)理念應(yīng)用到更廣泛的環(huán)境中,比如:從人類演示中學(xué)習(xí)(https://arxiv.org/abs/1802.01557)、模仿學(xué)習(xí)(https://arxiv.org/abs/1810.03237)以及基于模型的強(qiáng)化學(xué)習(xí)(https://arxiv.org/abs/1803.11347)。除了元學(xué)習(xí)模型參數(shù)外,我們還考慮了超參數(shù)和損失函數(shù)。為了解決稀疏獎(jiǎng)勵(lì)設(shè)置問題,于是有了一種利用元學(xué)習(xí)來探索策略的方法。
盡管取得了這些進(jìn)展,樣本效率仍然是一項(xiàng)挑戰(zhàn)。當(dāng)考慮將 meta-RL 應(yīng)用于實(shí)際中更復(fù)雜的任務(wù)時(shí),快速適應(yīng)這些任務(wù)則需要更有效的探索策略,因此在實(shí)際學(xué)習(xí)任務(wù)中,需要考慮如何解決元訓(xùn)練樣本效率低下的問題。因此,伯克利 AI 研究院基于這些問題進(jìn)行了深入研究,并開發(fā)了一種旨在解決這兩個(gè)問題的算法。
異步策略元強(qiáng)化學(xué)習(xí)的優(yōu)勢
盡管策略梯度強(qiáng)化學(xué)習(xí)算法可以在復(fù)雜的高維控制任務(wù)(如控制擬人機(jī)器人的運(yùn)行)上實(shí)現(xiàn)高性能,但它們的樣本效率仍然很低。比如,最先進(jìn)的策略梯度法(PPO https://arxiv.org/abs/1707.06347)需要一億個(gè)樣本來學(xué)習(xí)一個(gè)良好的類人策略,如果我們在一個(gè)真實(shí)的機(jī)器人上運(yùn)行這個(gè)算法,并用一個(gè) 20 赫茲控制器使其連續(xù)運(yùn)行,在不計(jì)算重置時(shí)間的情況下,需要耗費(fèi)近兩個(gè)月的時(shí)間來學(xué)習(xí)。其效率低下的主要原因是形成策略梯度更新的數(shù)據(jù)必須從現(xiàn)行策略中取樣,而不是在訓(xùn)練期間重復(fù)使用以前收集的數(shù)據(jù)。最近的異步策略(off-policy )算法(TD3 https://arxiv.org/abs/1802.09477,SAC https://arxiv.org/abs/1801.01290)與策略梯度算法的性能不相上下,然而需要的樣本數(shù)量卻減少了 100 倍。如果研究者能夠利用這種算法進(jìn)行元強(qiáng)化學(xué)習(xí),數(shù)周的數(shù)據(jù)收集時(shí)間可減少至半天,這就使元學(xué)習(xí)更高效。異步策略學(xué)習(xí)在從零開始進(jìn)行訓(xùn)練時(shí),除了大大提高了樣本效率外,還有進(jìn)一步的功能優(yōu)化——它不光可以利用以前收集的靜態(tài)數(shù)據(jù)集,還可以利用其他機(jī)器人在其他場景中的數(shù)據(jù)。
非策略強(qiáng)化學(xué)習(xí)(SAC)比策略梯度(PPO)更有效
探索問題
在監(jiān)督元學(xué)習(xí)中,用于適應(yīng)新任務(wù)的數(shù)據(jù)是給定的。例如,在小樣本圖像分類中,我們會(huì)為元學(xué)習(xí)智能體提供針對我們希望標(biāo)注的新的類的圖像和標(biāo)注。在強(qiáng)化學(xué)習(xí)中,智能體負(fù)責(zé)探索和收集自身的數(shù)據(jù),因此適應(yīng)程序必須包括有效的探索策略。“黑盒子”元學(xué)習(xí)智能體(RL2,and SNAIL https://arxiv.org/abs/1707.03141)可以學(xué)習(xí)這些探索策略,因?yàn)樵谶f歸優(yōu)化中,整個(gè)適應(yīng)過程被視為一個(gè)長序列。類似地,基于梯度的元強(qiáng)化學(xué)習(xí)方法可以通過將信用分配給更新前策略收集到的軌跡和更新后策略獲得的回報(bào)來學(xué)習(xí)探索策略。雖然理論上是可行的,但實(shí)際上這些方法并沒有學(xué)習(xí)臨時(shí)延伸的探索策略。
為了解決這個(gè)問題,MAESN (https://arxiv.org/abs/1802.07245)以決定策略和通過梯度下降來適應(yīng)新任務(wù)的概率性潛在變量的方式,增加了結(jié)構(gòu)化的隨機(jī)性。該模型經(jīng)過訓(xùn)練,使先前的樣本對探索軌跡進(jìn)行編碼,而來自適應(yīng)變量的樣本則得到最優(yōu)的適應(yīng)軌跡。總的來講,所有這些方案都適用于同步策略(on-policy)強(qiáng)化學(xué)習(xí)算法,因?yàn)樗鼈円蕾囉趶耐滑F(xiàn)行策略中取樣的探索和適應(yīng)軌跡,因此需要同步策略采樣。為了構(gòu)建同步策略元強(qiáng)化學(xué)習(xí)算法,我們將采用不同的方法來探索。
通過元學(xué)習(xí)后驗(yàn)采樣法探索
在全新的場景中進(jìn)行探索,一個(gè)非常簡單的方法是假裝它是你已經(jīng)見過的東西。例如,如果你第一次看到火龍果并想去吃它,你會(huì)將它類比成芒果而按照吃芒果的方式用刀來切開它。這是一種很好的探索策略,它能夠讓你吃到里面美味的果肉。而當(dāng)你發(fā)現(xiàn)火龍果的果肉更像獼猴桃后,你可能又會(huì)切換到吃獼猴桃的策略,使用勺子挖出果肉吃。
在強(qiáng)化學(xué)習(xí)的相關(guān)文獻(xiàn)中,這樣的探索方法叫做后驗(yàn)采樣(或 Thompson sampling)。智能體在 MDPs 上有個(gè)數(shù)據(jù)集分布,然后從該分布中迭代采樣新的 MDP,并根據(jù)它來決定最佳的操作方式,同時(shí)使用收集到的數(shù)據(jù)來完成分布的更新。隨著收集的數(shù)據(jù)越來越多,后驗(yàn)分布縮小,使探索和迭代之間實(shí)現(xiàn)穩(wěn)定的過渡。這一策略看似有限,因?yàn)樗サ袅瞬扇o目的探索性行為的可能性;然而此前的一項(xiàng)工作“(More) Efficient Reinforcement Learning via Posterior Sampling”表明,通過后驗(yàn)采樣確保最壞情況下累積的遺憾值(regret)接近于當(dāng)前最佳的探索策略。
通過后驗(yàn)采樣法吃一個(gè)奇怪的新水果
在實(shí)際問題中,我們?nèi)绾卧?Mdps 上表示這種分布?一種可能是保持過渡和獎(jiǎng)勵(lì)功能的分布。為了根據(jù)采樣模型進(jìn)行操作,我們可以使用任何基于模型的強(qiáng)化學(xué)習(xí)算法。Bootstrapped DQN 將這一想法應(yīng)用于無模型的深度強(qiáng)化學(xué)習(xí)中,并在 Q 函數(shù)上維持近似后驗(yàn)。我們認(rèn)為可以通過學(xué)習(xí)不同任務(wù)在Q 函數(shù)上的分布來將這一想法擴(kuò)展到多任務(wù)環(huán)境中,并且這種分布對于新的相關(guān)任務(wù)中的探索非常有效。
為了在元強(qiáng)化學(xué)習(xí)中引入后驗(yàn)采樣法,我們先在 Mdps 上對基于 Q 函數(shù)的分布進(jìn)行建模,通過實(shí)例化潛在變量 z,并根據(jù)經(jīng)驗(yàn)(或語境)來推斷出模型會(huì)將 Q 函數(shù)作為輸入來調(diào)整其預(yù)測 。在元訓(xùn)練過程中,學(xué)習(xí) z 此前所有的變量來表示元訓(xùn)練任務(wù)的分布。面對測試時(shí)的新任務(wù),智能體從之前的假設(shè)中取樣,然后根據(jù)選出的這一假設(shè)決定在環(huán)境中采取什么樣的行動(dòng),之后再通過新的證明來對后驗(yàn)分布進(jìn)行更新。當(dāng)智能體收集軌跡時(shí),后驗(yàn)分布縮小,同時(shí)該智能體也會(huì)生成對當(dāng)前任務(wù)更好的預(yù)測。
將元強(qiáng)化學(xué)習(xí)視為 POMDP
運(yùn)用在元強(qiáng)化學(xué)習(xí)上的貝葉斯后驗(yàn)觀點(diǎn),揭示了元強(qiáng)化學(xué)習(xí)與partially observed MDPs(部分可觀察的馬爾可夫決策過程)(POMDPs)之間的關(guān)系。當(dāng)建模環(huán)境中當(dāng)前觀察到的事情無法告知你當(dāng)前環(huán)境中的所有事情時(shí)(即只能部分觀察當(dāng)前狀態(tài)),POMDPs 對于這種建模環(huán)境來說非常有用。就好比說,當(dāng)你在一棟樓附近行走,燈光突然全部熄滅,此時(shí)你無法從黑暗中立即觀察到你在什么位置,但你仍然會(huì)對自己的位置有一個(gè)預(yù)估,因?yàn)槟憧梢詰{借記憶在燈光熄滅前所看到的場景來預(yù)估。而求解 POMDPs 就是相似的原理,它涉及到對觀測歷史信息的集成,從而達(dá)到準(zhǔn)確地估計(jì)當(dāng)前狀態(tài)的目標(biāo)。
POMDP 的圖像模型
元強(qiáng)化學(xué)習(xí)則可以被看作是具有特殊結(jié)構(gòu)的 POMDP,它的任務(wù)就是當(dāng)前狀態(tài)中唯一未觀察到的部分。在我們的示例中,任務(wù)可能就是找到一個(gè)你從未去過的辦公室。在標(biāo)準(zhǔn)的 POMDP 中,智能體每進(jìn)行下一步時(shí)都必須對狀態(tài)進(jìn)行重新估計(jì),這樣就能夠不斷地更新對建筑物中位置的估計(jì)。而在元強(qiáng)化學(xué)習(xí)示例中,任務(wù)在各個(gè)探索軌跡上不會(huì)一直變化,即在現(xiàn)實(shí)世界中,辦公室的位置不會(huì)在尋找過程中改變。這也表示該方法可以保持對辦公室位置的估計(jì),而無需擔(dān)心潛在的系統(tǒng)動(dòng)態(tài)在每個(gè)步驟中改變它的實(shí)際位置。將元強(qiáng)化學(xué)習(xí)算法轉(zhuǎn)換為 POMDPs 的說法,即智能體要維持任務(wù)的信念狀態(tài)(belief state )——當(dāng)在多個(gè)探索軌上收集信息時(shí),任務(wù)會(huì)進(jìn)行更新。
貝殼中的 PEARL
如何把任務(wù)上的信念狀態(tài)與現(xiàn)有的異步策略強(qiáng)化學(xué)習(xí)算法結(jié)合起來呢?首先,我們可以通過使用以上下文(經(jīng)驗(yàn))為輸入的編碼器網(wǎng)絡(luò) q?(z|c) 推斷出后驗(yàn)信念的變分近似。為了保持可操作性,我們將后驗(yàn)部分表示為一個(gè)高斯函數(shù) (Gaussian)。對于強(qiáng)化學(xué)習(xí)算法的智能體,我們選擇在 Soft Actor-Critic(SAC)的基礎(chǔ)上建模,因?yàn)樗哂挟?dāng)前最佳的性能和樣本效率。信念狀態(tài)中的樣本傳遞給 actor、critic,以便他們能夠根據(jù)樣本任務(wù)進(jìn)行預(yù)測。然后元訓(xùn)練過程包括學(xué)習(xí)推導(dǎo)給定上下文的后驗(yàn) q?(z|c),并根據(jù)給定的 z 優(yōu)化訓(xùn)練 actor 和 critic。編碼器則是使用 critic 的梯度漸變優(yōu)化(因此 q?(z|c) 表示 Q 函數(shù)上的分布),以及信息瓶頸也是如此。出現(xiàn)這種瓶頸是派生出變分下界的結(jié)果,但這也可以直觀地將其解釋為上下文和 z 之間信息的最小化,這樣 z 就包含了預(yù)測狀態(tài)-動(dòng)作值所需的最小化的信息。
關(guān)于這個(gè)方案需要注意的一點(diǎn)是,為訓(xùn)練 actor 和 critic 而取樣的一批數(shù)據(jù)與上下文的一批數(shù)據(jù)會(huì)分離。直觀而言,這是有用的:通過明確表示任務(wù)的信念狀態(tài),智能體將任務(wù)推斷與控制分離,并且可以使用完全不同的數(shù)據(jù)源來學(xué)習(xí)每個(gè)任務(wù)。這與 MAML 和 RL2 等方法形成了鮮明對比,它們將任務(wù)推理和控制結(jié)合在一起,因此必須同時(shí)使用一批數(shù)據(jù)。
而事實(shí)也證明這種分離對于異步策略元訓(xùn)練很重要。究其原因,我們可以想到,目前的元學(xué)習(xí)預(yù)測基于的假設(shè)是:訓(xùn)練和測試階段應(yīng)保持一致。例如,在測試時(shí)進(jìn)行新動(dòng)物物種分類任務(wù)的元學(xué)習(xí)智能體,應(yīng)該接受在包括動(dòng)物在內(nèi)的類分布上進(jìn)行訓(xùn)練。而強(qiáng)化學(xué)習(xí)中與此類似的是,如果在測試時(shí)智能體通過收集同步策略數(shù)據(jù)來進(jìn)行調(diào)整,那么它也應(yīng)該使用策略上的數(shù)據(jù)進(jìn)行訓(xùn)練。因此,在訓(xùn)練期間使用異步策略數(shù)據(jù)則會(huì)給分布帶來變化,從而破壞了這一基本假設(shè)。在 PEARL 中,我們可以通過對同步策略數(shù)據(jù)進(jìn)行上下文采樣,同時(shí)將異步策略數(shù)據(jù)用于 actor-critic 的訓(xùn)練,來減小這一分布的變化,并大規(guī)模使用異步策略數(shù)據(jù)。
彼時(shí),該算法的一部分仍然是抽象的編碼器體系結(jié)構(gòu)。回顧下,這個(gè)編碼器的工作是在上下文中(由狀態(tài)、動(dòng)作、獎(jiǎng)勵(lì)和下一個(gè)狀態(tài)組成的一組轉(zhuǎn)換)進(jìn)行,并在潛在的上下文變量上生成高斯后驗(yàn)參數(shù)。雖然遞歸神經(jīng)網(wǎng)絡(luò)在這里看似是一個(gè)明智的選擇,但我們注意到,Markov 的屬性意味著可以在不考慮它們在軌跡中順序的情況下對這些轉(zhuǎn)換進(jìn)行編碼。基于這一觀察,我們采用了一個(gè)具有排列不變性、可以獨(dú)立地預(yù)測每個(gè)轉(zhuǎn)換的高斯因子的編碼器,并讓這些因子相乘構(gòu)成后驗(yàn)采樣。與 RNN 相比,該體系結(jié)構(gòu)在優(yōu)化方面更快、更穩(wěn)定,并且可以適應(yīng)更大規(guī)模的上下文。
準(zhǔn)備充分后,PEARL 怎么工作?
我們使用 MuJoCo 模擬器在六個(gè)基準(zhǔn)連續(xù)控制域上對 PEARL 進(jìn)行了測試,該模擬器在不同任務(wù)之間有不同的獎(jiǎng)勵(lì)或動(dòng)態(tài)功能。例如,對于 Ant 智能體,不同的任務(wù)對應(yīng)著在 2D 平面上為不同目標(biāo)位置導(dǎo)航;而對于 Walker 智能體來說,任務(wù)對應(yīng)于其關(guān)節(jié)的不同參數(shù)和其他物理參數(shù)。
我們將 PEARL 與三種最先進(jìn)的元強(qiáng)化學(xué)習(xí)算法進(jìn)行了比較,即 ProMP、MAML 和 RL2。結(jié)果如下圖所示,其中藍(lán)色曲線代表 PEARL 的結(jié)果。需要注意的是,x 軸的單位(呈對數(shù)比例)。該方法通過在元訓(xùn)練過程中利用異步策略數(shù)據(jù),將樣本效率全面提高了 20-100 倍,并且它的最終表現(xiàn)往往也優(yōu)于基線。
在稀疏的獎(jiǎng)勵(lì)域,有效的探索尤其重要。試想一個(gè)點(diǎn)機(jī)器人,它必須對半圓上的不同目標(biāo)位置導(dǎo)航,并且只有定位到目標(biāo)位置的小半徑范圍內(nèi)(可在藍(lán)色區(qū)域觀察到)才會(huì)獲得獎(jiǎng)勵(lì)。通過對目標(biāo)位置的不同假設(shè)進(jìn)行采樣并隨后更新其信念狀態(tài),智能體可以進(jìn)行有效地探索,直到找到目標(biāo)位置。我們通過對 PEARL 與 MAESN 進(jìn)行比較,MAESN 就是我們前面討論到的通過潛在變量生成的元學(xué)習(xí)探索策略,最終發(fā)現(xiàn) PEARL 不僅在元訓(xùn)練中具有更高的采樣效率,還能更有效地進(jìn)行探索。
未來發(fā)展方向
雖然元學(xué)習(xí)為智能體如何快速適應(yīng)新的場景提供了一個(gè)可能的解決方案,但它同時(shí)也產(chǎn)生了更多的問題!例如,元訓(xùn)練任務(wù)從何而來?它們必須手動(dòng)設(shè)計(jì),還是可以自動(dòng)生成的?雖然元學(xué)習(xí)從本質(zhì)上來說是偶然的,但現(xiàn)實(shí)世界是一個(gè)持續(xù)不斷的、永無止境的變化流程——智能體如何處理一直隨時(shí)間變化的任務(wù)?設(shè)計(jì)獎(jiǎng)勵(lì)函數(shù)非常困難——相反地,我們能否在元強(qiáng)化學(xué)習(xí)算法中同時(shí)利用二進(jìn)制反饋、偏好和演示?我們認(rèn)為 PEARL 中貝葉斯推理方面的研究能夠?yàn)榻鉀Q其中一些問題帶來一個(gè)新的視角;同時(shí)我們也相信,PEARL 在學(xué)習(xí)異步策略上的能力是實(shí)現(xiàn)在現(xiàn)實(shí)系統(tǒng)中規(guī)模化應(yīng)用元強(qiáng)化學(xué)習(xí)的的第一步。
來源 | 雷鋒網(wǎng)
作者 | 楊鯉萍
編輯 | 幸麗娟