機器學習(3)強化學習 入門

2021-08-10 12:51:34 字數 2249 閱讀 8274

在機器學習的監督學習,無監督學習和強化學習中,我最喜歡強化學習,因為強化學習最接近動物的學習方式,而且業務需求特別強烈。

reinforcement learning(增強學習,以下簡稱rl ) 

rl背後的乙個核心概念是價值估計,並據此進行相應動作。在繼續深入之前,最好先了解一些術語。

在rl中,實施動作的個體被稱為agent(**),它使用策略進行動作決策。乙個**通常嵌於乙個environment(環境)中,並在任意給定的時刻都處於某個特定的state(狀態)。從那個狀態,它可以進行一系列actions(動作)。某個給定狀態的value(值)指的是處於該狀態的最終回**值。在某個狀態執行乙個動作可以讓**進入另乙個新的狀態,獲得乙個reward(回報),或者同時擁有兩者。所有rl**都在盡可能最大化累計回報。

我用訓練狗做乙個例子,environment是公園的草坪,agent是我的狗,我的目標是訓練狗能把我扔出去的小球給我叼回來,reward有兩樣東西,乙個是狗喜歡吃的肉,肉有兩種一種是大份,一種是小份的,另乙個一巴掌。state是我把小球扔出去到狗叼東西回來這段時間,action是狗在這段時間的行為。那麼開始訓練,我手上有分別為紅/橙/黃/綠/青顏色小球,我想狗給我叼回紅色的球,我把5個球一起扔出去,那麼狗在這片草坪上開始自由行動,如果一定時間內,它什麼都沒叼回來或者叼了除了小球的其他東西比如,樹葉,鞋子,內衣等。我就給它一巴掌,如果它叼回來紅球以外的其他顏色的球,那麼就給小份的香肉,如果叼回來紅色小球,就給大份的肉。然後我就不斷地扔球訓練我的狗,狗(agent)就會知道紅球能帶來最大的reward(這是個例子,我不曉得現實中的狗會不會這樣)。

多臂***(multi-armed bandit)是rl問題中最簡單的乙個版本。這個名字由以下這個問題衍生而來:如何使多台***的回報最優化,假定***都具有賺取客戶錢的傾向。在本設定中,環境內僅有乙個狀態,**能採取n個動作中的乙個。每個動作都會立即為**提供乙個回報。**的目標是找出能提供最多回報的動作。

**的目標就是學習得知哪個搖臂最有可能獲獎。要找出回報最高的搖臂最自然的方法就是逐一嘗試。在**獲得足夠的關於這個世界的資訊並採取最優化動作之前,大部分rl的工作就是簡單的不斷試錯。上面這個例子用rl的術語來描述就是,「嘗試」對應的是採取一系列動作(多次開啟按下搖臂),學習對應的是更新每個動作的估計值。一旦我們基本確定值估計,就可以讓**總是選擇那個具有最高估計值得搖臂。

這些值估計可以通過乙個迭代過程獲得。這個過程從最初的一系列估計v(a)開始,並根據每次動作的結果對其進行調整。表示式如下:

其中,α對應我們的學習率,v(a)是給定動作的價值估計,r是採取動作後馬上可以獲得的回報。

上面的等式很直觀,它表明我們將當前的價值估計向獲得回報的方向做了一些微調。這樣就能確保變化的估計值能更好的反應環境中的真實動態。如此一來,還能確保估計不會變得過大,如果我們僅計算正向結果就可能會發生這種情況。要完成相應**,我們可以使用一組值估計向量,並通過**動作對應的索引來引用它們。

上述的情況缺少了任何真實環境中都有的乙個重要方面:它僅有乙個狀態。在現實以及遊戲世界中,乙個特定環境可能會處於數十(房子中的房間)到數十億(乙個螢幕上的畫素配置)種可能狀態中的一種。每個狀態都有它們自己獨特的動態特性,即動作如何提供新的回報或者允許狀態間的遷移。

因此,我們需要對動作,值估計,以及狀態設定條件。用符號表示,現在將用q(s,a)取代v(a),s是state,a是action。它的抽象意思是,現在期望獲得的回報,是我們所採取的動作以及採取該動作時所處狀態的乙個函式。

強化學習的矛盾:探索(exploring)和利用(exploiting)

以搖臂***為例:探索法為將所有嘗試的機會平均分配給每乙個搖臂(輪流按下搖臂),最後以每個搖臂各自的平均吐幣概率為其獎勵期望的近似估計,獲知每個搖臂的期望獎賞。利用法為按下目前最優的搖臂。探索法很好的估計了每個搖臂的獎賞,卻失去了很多最優搖臂的機會,而利用法沒有很好地估計搖臂的期望獎賞,很可能選不到最優臂。兩種方法單獨使用都沒辦法使得最終獎賞最大化,強化學習必須在兩者之間達成折中,這就是強化學習的窘境。

當然也是很多方法來進行折中的。比如貪心法,softmax。這個以後再講~

機器學習 強化學習

在環境中狀態的轉移 獎賞的返回是不受機器控制的,機器只能通過選擇要執行的動作來影響環境,也只能通過觀察轉移後的狀態和返回的獎賞來感知環境。離散狀態空間 離散動作空間 第 k 個搖臂第 n次嘗試之後平均獎賞 q0 k 0 qn k 1n n 1 qn 1 k vn qn k q n 1 k 1 n v...

機器學習 強化學習

目的 使乙個3關節 髖骨 膝蓋 腳踝 小人學會沿直線走路。方法 1 對於小人建模 2 使用3層人工神經網路訓練小人走路 3 對於每次訓練結果評估,獎懲神經網路調整權重。演示了乙個使用深度強化學習 deep deterministicpolicy gradient,ddpg 演算法控制仿人機械人運動的...

機器學習 強化學習

1 強化學習概述 機器學習方法 有監督學習 資料集中的樣本帶有標籤,有明確目標 回歸和分類 無監督學習 資料集中的樣本沒有標籤,沒有明確目標 聚類 降維 排序 密度估計 關聯規則挖掘 強化學習 智慧型決策的過程,通過過程模擬和觀察來不斷學習 提高決策能力,最接近人類學習模式的機器學習方法 例如 al...