監督學習
利用標註好信息的樣本,通過訓練獲得一個模型,能夠用來預測新的樣本
分類
當新來一個數據時,能夠自動預測所屬類型
應用
對於一幅遙感影像,對其中的部分水體,農田,建築作好標記經過監督分類的方法獲得其他水體、農田、建築
分類相關的方法
支持向量機:尋找最大化樣本間隔的邊界
分類決策樹
顏色 形狀 狀態進行分類
迴歸
直線擬合(最小二乘法)
經過已有的訓練數據學習一個模型,當新來一個面積數據時,能夠自動預測出銷售價格
迴歸的應用
人臉好看程度評分。經過標記分數的圖片得出迴歸模型,輸入新的圖片就能得出分數
線性迴歸
在平面上擬合線性函數
最鄰近方法
使用最類似的訓練樣本唉預測新樣本值
神經網絡方法算法
非監督學習
全部數據沒有標籤,但能夠發現這些數據呈現出聚羣的結構,本質是一個像是的類型的會彙集在一塊兒。
聚類
把這些沒有標籤的分紅一個一個組,聚成一類
案例
google新聞
天天蒐集大量的新聞而後把他們所有聚類
景點提取
對於遊客的博客定位點進行聚類,而後自動提取出不一樣景點的分佈位置
雞尾酒會問題
在一個盡是人的房間中,人們都在相互對話,咱們記錄房間中的聲音,利用非監督學習算法,可以識別房間中某我的所說的話。
讓人工智能學會玩遊戲
讓人工智能學會玩遊戲是一項吸引人眼球的事情
在棋牌類遊戲或者FPS類遊戲中,提供一個高性能的AI能增長遊戲的挑戰性;
而在另外一類遊戲中,須要一個可以優化遊戲體驗的AI;
棋類遊戲
從國際象棋到圍棋,AI已經打敗了人類
DeepMind研發星際爭霸2的AI
OpenAI研發DOTA2的AI
AI目前能夠很好的掌握一些經典的小遊戲,經過短期的學習能夠上手,而且得到很高的分數
甚至會利用遊戲中 bug進行無線的上分
強化學習
控制一個在某個環境中的主體,經過與環境的互動來改善主體的行爲。
機器學習
監督學習
標記數據
訓練
預測
非監督學習
無標記數據
無訓練
聚類
強化學習
決策過程
獎勵反饋
行動指導
強化學習:符合學習玩遊戲情形
一般遊戲都是玩家控制一些角色
根據遊戲畫面反饋來不斷調整動做
從而達到既定的目標(高分或勝利)
Flappy Bird 小遊戲 AI經過強化學習學會了玩Flappy Bird
試錯試學習
機關盒子
效果率
緊接着有利後果的行爲更有可能再次發生
被老師稱讚的工做或行爲,你會繼續保持
不良後果好的行爲不太可能再次發生
貓的學習是通過屢次的試錯,刺激情景與正確反應之間造成的聯結所構成的
使計算機可以像人同樣經過不斷試錯式學習,徹底自主掌握一項技能
不須要借鑑人類的經驗
具備發展強人工智能的潛力
Alpha Zero
利用試錯式學習思想,本身跟本身不斷對弈來提高水平
用這種經過的學習方法,在圍棋、國際象棋等各自領域達到強於人類網絡
狀態動做回報
強化學習的要素
主體
負責做出決策的實體
環境
主體存在環境之中,主體的行爲做用於環境,並接受環境的反饋,好比一個完整的遊戲程序
狀態
環境的狀態會不斷髮生變化,不一樣時刻的棋盤情況,遊戲畫面各不相同
動做
主體經過執行動做來改變環境的狀態
回報
環境狀態以後會返回主體一個回報,主體能夠根據回報來判斷動做的好壞
主體與環境不斷地進行交互,產生屢次嘗試的經驗,再利用這些經驗去修改自身策略。通過大量迭代學習,最終得到最佳策略。
Flappy Bird狀態
每一幀的畫面都是一個狀態
對畫面簡化,保留AI用於學習的關鍵信息
Flappy Bird動做
每一個狀態下都有兩個可操做的動做(點擊or不點擊)
不一樣的動做會參生不一樣的狀態
Flappy Bird回報
活着是1,死了是0
價值判斷Q函數
策略
從狀態集到動做集的一個對應關係
目標:求得最佳策略
判斷狀態
狀態值函數V
只和狀態相關,用於某個局面狀態進行估值
狀態動做函數Q
和狀態以及該狀態下采起的動做相關,用於對某個局面狀態下采起某個動做進行估值。
Q-Learning
強化學習中一種經常使用算法
簡單的Q函數(Q-Table)
Q函數表示狀態,列表示動做,表中的值表示特定狀態下執行某動做的評估值Q,
主體經過不斷更新並查找該表,找到當前狀態回報最高的動做執行
基於神經網絡計算Q函數
對於複雜的狀態沒法用表格表示,可以使用神經網絡對Q函數進行建模,其輸入爲狀態,輸出爲各個動做的評估值,has選取高的動做執行
總結
Q-Learning算法經過學習獲得一耳光狀態動做函數(Q函數)
不直接決定主體採起什麼決策,而是提供一個估值參考。
若是Q函數較優,能夠直接取最大價值來決定動做。app
嚐遍百草
從零開始
剛開始並不知道正確的策略以及Q函數應該是多少
初始化一個隨機Q函數,從零開始不斷學習
如未嘗試
在Q函數不夠準確的時候,每次嘗試該如何選擇動做?
涉及到探索和開發二者的平衡。
爲了更好地學習最佳Q函數而嘗試各類狀況
也就是說,應該選擇不一樣的其餘動做
"嚐遍百草"
開發
直接選擇當前認爲最佳的動做
再進一步修改新狀態下的Q值
探索與開發
探索:隨機生成一個動做
開發:根據當前的Q值計算出一個最優的動做
-greedy策略
一種簡單的平衡探索與開發的策略
有 機率選取一個隨機動做,剩下的狀況依然選取Q值最大的動做
通常是一個很小的值,表示不斷嘗試的趨勢
能夠更改伊普西龍的值從而獲得不一樣的探索和開發比例
開始學習是能夠稍微調大(0.01) 在Q函數優化後能夠調小0.001甚至能夠直接設爲0再也不探索
孰能生巧
學習流程
初始化Q函數
不斷重複每一局遊戲(選擇動做 獲得回報 更新Q函數)
最終獲得一個好的Q函數
每一局遊戲都是一個動做狀態序列
下一個狀態之和當前的狀態+動做有關(馬爾可夫性質)
長期回報
除了試錯式搜索以外,強化學習的另外一個重要特色是回報的滯後性
當前狀態下的動做所產生的回報不只取決於下一個狀態,還取決於整個序列以後的每個狀態。
某些動做參生的當前回報值比較高,但從長遠來看,可能沒那麼高。
回報率
當前的動做對下一個狀態的影響是最直接的,對後續狀態影響沒那麼直接
所以咱們用一個回報率來平衡下一個狀態和更遠狀態回報
回報函數
每次遊戲會產生不一樣的狀態動做序列,即每一次對後續狀態回報計算都不一樣
咱們用後續狀態的指望即全部以後的序列的回報平均值做爲回報函數
回報函數值就是Q值
學習過程
每完成一局以後,就程序更新Q函數
完成的局數越多,更新的次數越多,結果也越準
學習率
既要利用學好的值,也要善於新的值
這二者就經過學習率,一開始學習率能夠大一些,最後穩定時學習率能夠小一些
孰能生巧
經過上述公式學習,在足夠的嘗試後會獲得一個比較優的結果
再根據Q函數來選擇動做,就能孰能生巧了
機器學習