現在讓我們看一下強化學習和其他機器學習方法的對比。
在監督式學習中,我們有數據集,還有數據對應的標籤。主要的任務是要讓預測值儘量接近於這些標籤。
監督學習還有一個很重要的特點,就是它的數據要滿足獨立性。這對於使用SGD等算法,需要對數據進行採樣時非常重要。
而在強化學習中卻沒有這些假設條件: 我們沒有數據集,但是我們有一個系統,可以從中取樣數據。 我們也沒有想要得到的結果標籤,因爲沒有專家告訴我們要做什麼。
不過我們可以自己嘗試,通過採取一些行動,會有一個評判標準給我們正面或者負面的反饋。 例如在廣告點擊率這個問題中,我們得到的反饋就可以是用戶點擊網頁後我們得到的錢。
而且不管我們用什麼算法,都應該把所有可能的行爲都探索一下,以免我們錯過了一個最優的方法,甚至從來沒有學習過這個方法。
強化學習另一個問題是 agent。 agent 的觀察會影響他的決策,他的決策也影響了他的觀察。 例如想讓他學習騎自行車,如果每次總是向左轉,那麼就沒有辦法獲得向右轉的數據點。
同時還需要非常細心的去探索狀態的空間,不然的話就會對問題有錯誤的解讀,無法掌握問題的全局和完整性。
非監督式學習也和強化學習有很大的不同。
雖然都沒有專家告訴我們答案,但是非監督式學習在做不一樣的事情。
它並沒有像強化學習那樣去學習一個優化的策略,而是嘗試去描述數據, 嘗試去尋找一些隱藏的結構,和尋找一個策略是不同的。 就相當於學會如何騎自行車要比懂得自行車的結構簡單的多。
雖然說了幾點強化學習和監督式學習,非監督式學習之間的區別, 但在解決實際問題時,你會發現它們會混合起來使用,比如說在強化學習中會使用一些監督式學習或非監督式學習。