Python 機器學習-親手TensorFlow實作手寫辨識與強化學習車桿平衡

Python 機器學習-親手TensorFlow實作手寫辨識使用K-nearest最鄰近分類演算法KNN,強化學習使用車桿平衡CartPole

https://www.udemy.com/python-tensorflow/

 

  • K-nearest最鄰近分類演算法KNN
  • K-means:群聚的中心為基礎的分群
  • 4個小時…..23講座實作自編碼資料降維及詞向量,實作手寫辨識使用K-nearest最鄰近分類演算法KNN
  • 了解深度學習內涵,加強人工智慧專業知識.
  • 成為大數據分析師,深入挖掘商業智慧,與資料大數據工程
  • 機器學習實作使用Python和TensorFlow程式設計
  • TensorFlow程式設計徹底研究–深度學習影像辨識實作為人工智慧深度學習基礎課程
  • 自編碼資料降維
  • 詞向量Word2Vec
  • TSNE降維後的Word2Vec的嵌入向量視覺圖
  • 強化學習-建立Anaconda工作環境 -Mac
  • 執行一般的openAI
  • 執行強化學習的使用車桿平衡CartPole
  • 強化學習簡介
  • 這是華人界的知名科學家吳佳諺所推出的線上課程。
  • 所有問題一定可以得到解答
  • 從觀念入門,親手打造手寫辨識,讓你全盤了解Python資料科學,機器學習學習使用TensorFlow。
  • 初學者到進階使用者,對資料科學有興趣的人,商管財經人士,文法商人員,一般工程師,理工醫,電子電機與資料工程師、資料科學家。
  • 讓自己鍍金,提升自我價值。

 

機率常態分佈

  • 常態分佈,重要觀念,平均值Mean,標準差

線性迴歸

  • a,b為未知數,求二元一次方程式
  • Loss函數最小化
  • 梯度變化
  • 啟動會議工作session
  • 選擇過大的學習速率,會衝過
    全域最小值(震盪)

分類

  • 監督式學習分類
    • 監督式: 訓練資料已有標籤
    • 新資料分類是根據訓練資料所建立的模型來預測
  • 非監督式分群
    • 資料屬於哪一類標籤未知
    • 屬於分群

分類與預測

  • 分類:
    • 預測是哪一類
    • 有標籤的預測分類
  • 預測:
    • 訓練模型後作預測
  • 應用
    • 信用卡評定
    • 目標行銷
    • 醫學診斷

K-nearest最鄰近分類演算法KNN

  • K-nearest最鄰近分類演算法KNN
  • KNN以記憶為基礎並且群集投票決定類別
  • 實作KNN演算法使用手寫辨識MNIST
  • K個最相近的鄰近分類演算法KNN
  • 1.選定K的值和一個距離半徑
  • 2.找出K個最相近的鄰近樣本
  • 3.這些樣本投票屬於哪一類別標籤

KNN以記憶為基礎並且群集投票決定類別

  • KNN是在收集新訓練數據資料,分類器也會同時更新,這稱為以記憶為基礎
  • KNN會在訓練數據中最接近該點的K個樣本.這個新數據的點會依據這K各樣本投票決定該點的類別.

實作KNN演算法使用手寫辨識MNIST

  • 輸入tensorflow,matplotlib套件
  • 載入手寫MNIST數字資料,訓練圖像和標籤
  • 成本函數是以像素距離distance來表示
  • 測試與演算法評估
  • tf.reduce_sum範例實作

tf.reduce_sum

  • 沿著輸入張量的維度,計算該張量在其維度內元素的和
  • input_tensor是輸入張量
  • 在指定axis軸減少輸入張量,如果axis沒被指定則所有維度都會被減少,並且回傳單一元素的張量
  • reduction_indices是和axis軸一樣的參數
  • tf.reduce_sum(

input_tensor,

axis=None,

keepdims=None,

name=None,

reduction_indices=None,

keep_dims=None

)

  • 將資料庫的n個物件來建構K個群聚的分群
  • k-means:群聚的中心為基礎的分群
    • 隨機選擇K個點當作初始的中心點
    • Do Repeat重複步驟
      • 1. 透過指定所有的點到最近的中心點來形成K個群集
      • 2.重新計算所有群集的中心點
  • Until直到群集中心沒有任何變化

AutoEncoder自動編碼器

1.AutoEncoder為非監督式學習

2.自動編碼器用在維度縮減

成本函數最佳化

使用會議工作執行

詞向量Word2Vec

1.將字詞轉換成向量

  • 將字詞轉換成向量,把內容的處理簡化為向量空間中的向量運算,計算向量空間上的距離,來表示語義上的鄰近類似距離。
  • Word2Vector可以學習抽象的自然語言觀念
  • CBOW給定詞窗中的文本,預測當前的詞
  • 區分真實詞彙和雜訊
  • 相似動詞群集

2.使用TSNE降維

  • TSNE降維後的Word2Vec的嵌入向量視覺圖
  • tf.device(‘/cpu:0’)為設定cpu計算
  • 最佳化模組SGD學習速率為1
  • TSNE為實作降維度將128維的嵌入向量降到2維
  • Thanks

1.建立Anaconda工作環境 -Mac

安裝TensorFlow並且執行-Mac

  • 在Anaconda環境建立tensorflow
  • 使用conda指令建立Python虛擬環境tensorflowRL

conda create -n tensorflowRL python=3.6.4

  • 使用虛擬環境tensorflowRL

activate tensorflowRL

  • 並且使用pip安裝tensroflow

pip install –ignore-installed –upgrade tensorflow

  • 安裝keras-rl強化學習套件

pip install keras-rl

  • 安裝Open AI套件

$ sudo pip install gym

  • 安裝pip install h5py

2.執行一般的openAI

python OPENAI_1

3.執行強化學習的車桿平衡CartPole

執行python cartPole

CartPole的任務目標就是盡可能的保持竿子直立不會倒下

4.強化學習簡介

分數報酬reward

  • 學習者有狀態s,和選取動作action
  • 自然回應新狀態和報酬reward
  • 學習者為了得到最高報酬,因此要做最佳決策
  • 使用TensorFlow建立一個基於Policy策略網路的Agent來解決CartPole的問題

Q-Function最大化未來報酬(贏的策略)

  • a是行動action,s是狀態state
  • 最佳化贏的策略(最大化遊戲得分)

策略policy,在每個狀態s選取動作a來最大化遊戲得分

  • Bellman方程式
  • 在目前的狀態和行動中來最大化遊戲贏的分數,就是目前的報酬immediate reward加上在下一步s’的最大化未來報酬
  • 遞迴的計算action-value函數

Deep Q-Learning

Loss函數最佳化

5.Deep Q 網路使用Keras和TensorFlow

  • gym.make(‘CartPole=v0’)來建立一個基於策略網路的Agent來解決CartPole的問題
  • 初始化卷積網路CNN
  • 編譯agent使用DQN(Deep Q-Network)