小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

幫嫦娥五號登月的AI還能用來玩游戲,20行Python代碼帶你領(lǐng)略強化學習的風采

 風聲之家 2019-07-15

嫦娥五號將使用AI登陸月球

有關(guān)最近嫦娥五號的好消息不斷,在最近舉辦的2019軟件定義衛(wèi)星高峰論壇上,中國探月工程首任首席科學家歐陽自遠表示“嫦娥五號仍采用軟著陸。這實際上是人工智能的自主決策。“探測器非常聰明,它一直晃來晃去地拍照,琢磨這個地點安全不安全,如果4個點不能在一致的水平面上,是會翻車的?!睔W陽自遠說,它一直在邊走邊找,最后作出判斷和決策?!币簿褪钦f嫦娥五號會利用人工智能技術(shù)幫助其進行登月著陸。那么這種AI會哪種AI模型呢?

我們知道在目前人工智能領(lǐng)域分為深度學習模型和強化學習模型兩種流派。其中深度學習模型以深度神經(jīng)網(wǎng)絡模型為主,在圖像及自然語言識別、分類以及生成等方面都有不錯的成績。而強化學習則是以OPENAI的Dexterous之手為代表:

后來在OPENAI的強化學習模型在DOTA比賽中完勝人類冠軍,而抱得大名。這我在之前的博客OpenAI完勝DOTA世界冠軍(https://blog.csdn.net/BEYONDMA/article/details/89315449)也有介紹。

深度學習比較合適根據(jù)海量的數(shù)據(jù)推測數(shù)據(jù)之間規(guī)律和關(guān)聯(lián),而強化學習主要用于探索未知領(lǐng)域,所以由本次嫦娥五號要執(zhí)行的登月任務來看,由于月球表面的數(shù)據(jù)匱乏,其使用深度學習的可能微乎其微,幾乎可以肯定他是使用強化學習來完成登陸目標的。

強化學習的原理

強化學習的原理圖是這樣:

強化學習(reinforcement learning,RL)技術(shù),要做是一系列基于時間序列的決策。它先假定每個問題都對應一個Environment,這時每一個Agent在Environment中采取的每一步動作都是一個Action,做出Action之后,Agent從Environment中得到observation與reward,再不斷循環(huán)這個過程,以達到總體reward最大化。

所以從RL的原理中也能看出,RL是一種在不確定且復雜的環(huán)境中通過不斷試錯,并根據(jù)反饋不斷調(diào)整策略,最終完成目標的AI,這和嫦娥的登月場景可謂非常的契合。

目前雖然RL的應用還不如深度學習那樣普遍,但是在一些具體的場景中,例如控制步進馬達、電子競技方面還是取得了不錯的成績。

近距離感受強化學習

OpenAI在其開源項目gym中,提供了完整的接口可以讓我們通過玩游戲,來了解深度學習的原理。安裝gym十分簡單,windows平臺也可以。只是記得要執(zhí)行這個命令pip install gym[atari]

pip install gym
pip install gym[atari]

看到這個返回就代表安裝成功了

Successfully built PyOpenGL
Installing collected packagesatari-pyPyOpenGL
Successfully installed PyOpenGL-3.1.0 atari-py-0.2.3

根據(jù)我在gym庫中搜索,和這次嫦娥最接近的是“UpNDown-ramDeterministic-v4”模型,在這個模型中有幾個小汽車一起運行,一旦沖出軌道或者和其它小車相撞則游戲結(jié)束。

具體代表及其注釋說明如下:

import gym
env = gym.make('UpNDown-ramDeterministic-v4')#初始化環(huán)境
for i_episode in range(900000):
    observation = env.reset()#重置觀察
    for t in range(100):
        env.render()#渲染環(huán)境
        print(observation)#將觀察值打印出來
        action = env.action_space.sample()#按照sample進行動化,當然也可以自行實現(xiàn)。
        observation, reward, done, info = env.step(action)
        print(reward)#將獎勵值打印出來
        if done:
            print("Episode finished after {} timesteps".format(t+1))
            break
env.close()

短短的十幾行代碼,不過是麻雀雖小五臟俱全,包含了observation, reward, agent,env的所有概念,非常值得嘗試一下。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多