deep_logo.jpg
https://drive.google.com/file/d/1UEcMt6Vu1y7Pc0G9pOQeme6-ZnGJ16DU/view?usp=sharing

Python重量級套餐-精通程式設計到深度學習

https://www.tibame.com/course/416

Python 深度學習

 

Python深度學習--徹底研究,從零開始親手學習類神經網路深度學習-親手徹底研究TensorFlow程式設計

打好Python基礎,應用在大數據,機器學習和人工智慧,並使用Tensorflow,Keras,MNIST實際打造手寫辨識系統。Python程式語言深入淺出。類神經網路深度學習CNN徹底研究。

從這37小時的課程,你會學到

使用Python作大數據運算基礎
使用Python作機器學習基礎
TensorFlow+Keras的基礎
CNN卷積神經網路
RNN遞迴神經網路
手寫辨識數字
學習機器感情
使用Python作數學運算
物件導向程式設計精華
Support Vector Machine 萬用分類機
學習到Python直譯器程式語言的強大功能
深入淺出Python程式語言
完全瞭解Python程式語言在資料科學的應用
視覺化Python資料結構
使用Pandas函式庫來建立資料結構
使用Matplotlib畫圖
使用Scipy科學函數庫作線性代數與矩陣科學運算
使用numpy模組建立矩陣
Python直譯器與計算機
變數資料型態
運算式是由運算子與運算元組成
+加-減*乘/除是運算子,先乘除後加減的結合優先順序
運算元是變數,數字,字串和資料結構
=是分配符號,將右邊的值分配給左邊變數
變數 運算式與運算子 串列 堆疊 佇列
布林運算式,布林值為True或False
在if敘述中,條件後的敘述只執行一次,而在while敘述中,則可執行一次以上。
函數,將多個複雜的程式區塊包在函數裡面,這樣在需要時,可以重複呼叫它.
遞迴函數是自己呼叫自己的函數,有最終值,開始回傳.
類別,成員屬性與成員方法
異常或錯誤處理
開啟,關閉及寫入檔案
手寫辨識準確度98.59%
顯示手寫訓練圖片顯示手寫訓練圖片
TensorFlow的基礎
徹底研究Google TensorFlow程式設計
Tensor張量資料型態與計算節點
TensorFlow工作會議Session徹底研究
使用Tensorflow學習微分梯度求取極值最佳解
使用Tensorflow學習機率統計-機率均勻分佈
使用Tensorflow學習機率常態分佈
使用Tensorflow學習數學複數
使用Tensorflow平行計算解決大數據問題
Tensorflow為大數據先修課程,基本數學機率計算教學

要求

使用電腦的初級能力
高中以上

說明

成為大數據分析師,深入挖掘商業智慧,與資料大數據工程,TensorFlow+Keras親手打造MNIST手寫辨識。

循序漸進,從基礎到實作,從Python程式語言到Python深度學習與Python機器學習,再到專精TensorFlow 親手打造MNIST手寫辨識.

Python 機器學習-親手打造影像辨識系統,親手使用TensorFlow CNN卷積深度學習影像辨識TensorFlow 計算圖及Tensorboard.整合Python深度學習與Python機器學習課程

本課程包含

  • 本課程有一天學會 Python,Python 深度學習和TesnorFlow程式設計三個重要課程。
  • 循序漸進,從基礎到實作,從Python程式語言到Python深度學習與Python機器學習,再到專精TensorFlow 程式設計親手打造MNIST手寫辨識.
  • 徹底研究Google TensorFlow程式設計,Tensor張量資料型態與計算節點,工作會議Session徹底研究
  • 使用Tensorflow學習數學矩陣行列式與線性代數
  • 使用Tensorflow學習微分梯度求取極值最佳解
  • 使用Tensorflow學習機率統計-機率均勻分佈
  • 使用Tensorflow學習機率常態分佈
  • 使用Tensorflow學習數學複數
  • 使用Tensorflow平行計算解決大數據問題
  • 使用Tensorflow處理影像圖片
  • Tensorflow為大數據先修課程,基本數學機率計算教學
  • Python軟體的下載及安裝
  • 循序學習Python程式語言
  • TensorFlow程式語言在Python的應用學習
  • 瞭解NVIDIA的GPU及顯示卡圖形晶片
  • 完全解說TensorFlow-GPU的安裝及TensorFlow-CPU的安裝
  • 37個小時....150講座...讓你徹底了解TensorFlow程式設計,Python程式語言與Python深度學習類神經網路,卷積CNN深度學習類神經網路,RNN影評資料IMDB滿意度分析
  • 循序漸進,從TensorFlow程式語言到深度學習影像辨識實作
  • 瞭解CUDA及CUDNN在Windows 10的安裝
  • 親手實作minst手寫辨識使用TensorFlow-GPU
  • 了解深度學習內涵,加強人工智慧專業知識.
  • 成為大數據分析師,深入挖掘商業智慧,與資料大數據工程
  • NVIDIA深度學習實作使用Python和TensorFlow程式設計
  • 這是華人界的知名科學家吳佳諺所推出的線上課程。
  • 所有問題一定可以得到解答
  • 從觀念入門,親手打造手寫辨識,讓你全盤了解Python資料科學,類神經網路深度學習使用TensorFlow。
  • 初學者到進階使用者,對資料科學有興趣的人,商管財經人士,文法商人員,一般工程師,理工醫,電子電機與資料工程師、資料科學家。
  • 讓自己鍍金,提升自我價值。
  • TensorFlow程式設計徹底研究--深度學習影像辨識實作為人工智慧深度學習基礎課程
  • 執行一般的openAI
  • 執行強化學習的使用車桿平衡CartPole
  • 強化學習簡介
  • K-nearest最鄰近分類演算法KNN
  • K-means:群聚的中心為基礎的分群
  • 自編碼資料降維
  • 詞向量Word2Vec
  • TSNE降維後的Word2Vec的嵌入向量視覺圖
  • 強化學習-建立Anaconda工作環境 -Mac
  • 執行一般的openAI
  • 執行強化學習的使用車桿平衡CartPole
  • 強化學習簡介
  • Python 機器學習-親手TensorFlow實作手寫辨識與強化學習車桿平衡和Python深度學習--徹底研究為人工智慧大數據基本學習課程

目標受眾是誰

Python 程式語言
想學習Python程式語言
人工智慧機器學習
想學習大數據的學生
想學習TensorFlow的變數的人
想學習TensorFlow圖形和Sessions的人
想學習TensorFlow placeholder的人
想學習TensorFlow執行計算圖的人
學習數學矩陣行列式與線性代數
學習微分梯度求取極值最佳解
學習機率統計-機率均勻分佈
想用Python解決問題的學生
想學習人工智慧基礎的人
想用Python來學習金融計算的人
想用Python來學習科學計算的人
想學TensorFlow+Keras的學生
想學習深度學習的學生
想學習CNN卷積神經網路的學生
想學習RNN遞迴神經網路的學生
想學習手寫辨識數字的學生
想學習語文翻譯的學生
想學習機器感情的學生
想學習大數據資料科學的學生
深入淺出Python程式語言
視覺化Python資料結構
使用Matplotlib畫圖
使用Scipy科學函數庫作線性代數與矩陣科學運算
讀取台灣加權股價指數csv檔,big5編碼

課程網址[ 限時折扣](資策會)

課程網址[ 限時折扣](Udemy)

1.下載及安裝Python軟體

1-1.在Mac下載及安裝Python軟體

使用pip3 install 套件名稱

  • 安裝套件
  • pip3 install 套件名稱
  • 解除安裝套件
  • pip3 uninstall 套件名稱
  • 檢視目前系統已經安裝的套件
  • pip3 list

安裝Anaconda,Numpy,Matplotilib

在Mac選取Launchpad打開Anaconda Navigator

在Mac可以選取Spider或jupyter notebook來執行

1-2.在Window 10下載及安裝Python軟體

在Window 10下載及安裝Python軟體

  • 在Window 10下載及安裝Python軟體

這是安裝程式軟體的路徑,預設是安裝在C:\Programs目錄下

在Window 10打開Python開發環境

這是Python的Shell直譯器

按下win鍵,選取命令提示字元

在命令提示字元下輸入python

進入python直譯器

離開python直譯器輸入exit()

  • 在Windows 10安裝Anaconda

安裝Anaconda,Numpy,Matplotilib

選取Python 3.6版本

使用conda安裝模組

選取Spider

選取Jupyter Notebook

2.Python直譯器與計算機

  • Mac電腦/usr/local/bin
  • Windows電腦C:\python36
  • set path=%path%;C:\python36
  • 這是設定utf-8-*-編碼
  • #-*- coding: utf-8 -*-
  • #是註解符號
  • 輸入python執行
  • $ python

變數資料型態

    • 整數
    • 浮點數
    • 字串
  • 運算式是由運算子與運算元組成
  • +加-減*乘/除是運算子,先乘除後加減的結合優先順序
  • 運算元是變數,數字,字串和資料結構
  • =是分配符號,將右邊的值分配給左邊變數

3.資料結構

  • 變數
  • 運算式與運算子
  • 串列
  • 堆疊
  • 佇列

數組tuple,集合set和字典

  • 可以用數組tuple來儲存固定的元素,使用小括號()來建立一數組tuple
  • 集合的元素放置沒有按照順序,可以使用{}大括號來建立一集合Set
  • 集合加上索引就是字典{索引:值}

4.控制結構

  • 布林運算式,布林值為True或False
  • 在if敘述中,條件後的敘述只執行一次,而在while敘述中,則可執行一次以上。
  • While敘述的程序圖形中.選取結構和循序結構,都只執行程式敘述一次,如果我們要讓同一行程式重複執行好幾遍則要用迴圈敘述。
  • 迴圈敘述可以重複執行某一段程式好幾遍,直到條件的不成立才跳出這個迴圈。
  • 選取結構if
  • 語法if:
  • if 條件運算式:
  •     程式敘述1
  • else:
  •     程式敘述2
  • 迴圈結構while,for
  • 語法:
  • for  計數變數  in range(起始值,終始值):
  • 程式敘述

邏輯運算子

  • 邏輯運算子可以結合條件,以一個表達式判斷許多條件,而這些條件的結果不是真True就是假False。
  • and稱為”與邏輯運算子”,只有當所有條件都成立時才會回傳真True,否則回傳假False。
  • or稱為或邏輯運算子,只要運算式中一個條件成立就會回傳真True,只有當所有的條件都為假Fasle時,才會回傳假False。
  • not為相反邏輯運算子,真True的條件加上not相反邏輯運算子時,就會變成假False﹔當假False的條件加上not相反邏輯運算子時,就會變成真True。

一個選擇的if敘述

  • if 條件:

敘述

巢狀的if敘述與多重選擇決策

  • 在這個例子中有5個等級來做選擇,就叫做多重選擇。
  • 語法:
  • if (條件1):
    • 敘述1
  • elif (條件2):
    • 敘述2
  • elif (條件3):
    • 敘述3
  • elif (條件4):
    • 敘述4
  • else (條件5):
    • 敘述5

迴圈結構for

  • Python提供for敘述作為迴圈,除了迴圈主體敘述(statement),還有迴圈的條件結構。

迴圈結構while

  • 在if敘述中,條件後的敘述只執行一次,而在while敘述中,則可執行一次以上。

5.函數

將多個複雜的程式區塊包在函數裡面,這樣在需要時,可以重複呼叫它.

遞迴函數是自己呼叫自己的函數,有最終值,開始回傳.

pass敘述沒做任何事

預設參數值

使用者自訂函數

區域變數的生存空間

  • 函數的參數為區域變數.函數的參數生存空間只在函數的範圍內
  • 在函數內定義的變數,其作用範圍在函數內

6.類別

成員屬性與成員方法

類別和實體變數

  • _init__(self,..)為建構函數,實體化物件時會呼叫它
  • self為自己這個物件
  • __init__(self)建構物件, __del__(self)解構物件

7.繼承

  • class 子類別(父類別1,父類別2,父類別3,..):
  •       敘述1
  •       敘述2
  • 當子類別繼承 (inheritance) 超過一個來源的時候,會以寫在最左邊的父類別優先繼承,多個父類別如果有相同名稱的屬性 (attribute) 與方法 (method) ,就會以最左邊的父類別優先。

多型:子類別和父類別有同名的getEngine()名稱

8.異常或錯誤處理

使用raise關鍵字丟出例外

開啟,關閉及寫入檔案

檔案處理

  • fp=open(‘檔案名稱’,’檔案開啟模式’)

9.使用matplotlib畫圖

  • Matplotlib.pyplot是畫圖的命令集合函數.每一個pyplot函數可以建立或修改圖形

10.Python 資料結構與畫圖簡介

  • •數組tuple和集合set
  • •Scipy科學函數庫
  • •numpy模組建立矩陣
  • •Pandas資料結構
  • •Matplotlib畫圖

11.數組tuple和集合set和Scipy科學函數庫

  • 可以用數組tuple來儲存固定的元素,使用小括號()來建立一數組tuple
  • 集合的元素放置沒有按照順序,可以使用{}大括號來建立一集合Set
  • Scipy模組提供科學運算及線性代數的運算模組

12.numpy模組建立矩陣

  • •numpy模組建立矩陣
  • •矩陣運算
  • •reshape()改變陣列的長寬
  • •np.zeros((10,3))產生10*3的矩陣

13.Pandas資料結構

  • 使用pip install安裝pandas
  • Pandas讀取csv
  • 讀取台灣加權股價指數csv檔,big5編碼
  • 實作讀取台灣加權股價指數
  • Series序列資料
  • pandas的DataFrame
  • 實作Pandas資料結構
  • 資料選擇與篩選
  • lambda可調式參數

下載及安裝PyCharm

在Mac下載及安裝PyCharm

安裝完Python後,設定直譯器路徑

Pycharm可以使用Python和Jupyter notebook的檔案

在Pycharm新增函式庫

在Windows 10下安裝Pycharm

下載Community版

14.TensorFlow Mac安裝

  • 使用Virtualenv虛擬環境或native的pip來安裝
  • 使用pip來安裝TensorFlow
  • 使用Anaconda來安裝TensorFlow

15.TensorFlow GPU平行運算

  • CUDA軟體安裝設定
  • 看看自己電腦的GPU版本
  • 下載及安裝Cuda Toolkit 9.0
  • 下載及安裝CUDNN
  • 深度學習動態執行檔DLL系統使用者環境路徑設定
  • 安裝TensorFlow-GPU並且執行
  • 安裝並且執行jupyter Notebook-驗證GPU
  • 使用cpu執行TensorFlow

15-1CUDA軟體安裝設定

  • TensorFlow支援CPU和GPU運算
  • 使用GPU可以加速及平行分散式運算
  • TensorFlow使用GPU則要使用NVIDIA的硬體和軟體.
  • 目前支援CUDA Toolkit9.0,且加入%PATH%到環境變數
  • 說明安裝文件

cuDNN為深度學習軟體

  • 安裝cuDNN DLLs動態執行檔,且加入%PATH%到環境變數
  • •cuDNN64_7.dll動態執行檔
  • GPU卡和CUDA Compute Capability 3.0以上才能夠支援TensorFlow

使用Anaconda安裝tensorFlow

15-2看看自己電腦的GPU版本

到NVIDIA觀看顯示卡和所對應的計算能力

安裝Anaconda

  • 我們使用Anaconda來安裝TensorFlow
  • 如果還未安裝Anaconda請到下列網址下載及安裝

15-3下載及安裝Cuda Toolkit 9.0

  • •要看TensorFlow是否有支援更新的版本,目前是支援到Cuda Toolkit9.0
  • •Cuda全名為統一計算架構CUDA,Compute Unified Device Architecture簡稱NVIDIA的GPU架構軟體

CUDA設定

下載及安裝CUDNN

  • 下載CUDNNv7.05 forCUDA9.0
  • CUDA的深度學習函式庫簡稱CUDNN

先加入會員後才能夠下載軟體

加入會員後登入及下載

下載CUDNNv7.05 forCUDA9.0

15-4.深度學習動態執行檔DLL系統使用者環境路徑設定

  • •cuDNN64_7.dll動態執行檔的路徑要設到使用者路徑和系統路徑.
  • •CUDA Toolkit的目錄也要設定到系統路徑變數

預設是安裝時,CUDA Toolkit的目錄已經自動設定到系統路徑變數

15-5.安裝TensorFlow-GPU並且執行

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

conda create -n tensorflowGpu python=3.6.4

  • 使用虛擬環境tensorflowGpu

activate tensorflowGpu

  • 並且使用pip安裝tensroflow-gpu

pip install --ignore-installed --upgrade tensorflow-gpu

15-6.安裝並且執行jupyter Notebook-驗證GPU

  • 安裝jupyter Notebook
  • $pip install jupyter Notebook
  • 執行jupyter Notebook
  • $jupiter notebook

成功顯示GeForce

15-7.使用cpu執行TensorFlow

  • 使用cpu執行TensorFlow
  • 使用pip3安裝

使用cpu執行TensorFlow

  • 這是使用cpu來執行tensorflow

pip install —ignore-installed --upgrade tensorflow

使用pip3安裝

  • 除了使用Anaconda環境安裝TensorFlow,也可以使用Python 3的pip3來安裝
  • 安裝CPU版的tensorflow

pip3 install --upgrade tensorflow

  • 安裝GPU版的tensorflow

pip3 install --upgrade tensorflow-gpu

-----------TensorFlow程式設計徹底研究-------------

TensorFlow簡介

矩陣,行列式與線性代數

Edges(張量Tensors),Nodes(節點)操作,加減乘除

資料流圖形

Session會議工作

CPU,GPU平行運算裝置

資料流圖形(Data Flow Graph)

  • 節點(Node):運算實體加減乘除,>=0個輸入與>=0個輸出
  • 邊(Edge):一般邊,資料結構支架

16.TensorFlow

16-1TensorFlow

張量的資料型態

  • tf.Variable
  • tf.Constant
  • tf.Placeholder
  • tf.SparseTensor

assign動態調整參數

可以透過動態調整不同的參數組合,讓誤差值cost最小。若要調整 variable 的值可以使用assign函數。

TensorFlow的資料型態,級別Ranks和Shape維度的表示

  • 張量tf.Tensor有資料型態的屬性和維度Shape來描述
  • Ranks和Shape都是描述張量的維度

Ranks級別和Shapes維度的表示

TensorFlow的資料型態

處理張量

將陣列轉為張量資料結構

計算矩陣加法,乘法和行列式的值

使用Session來執行張量圖

運算節點

運算節點tf.add

tf.add

  • 回傳x+y的值
  • x,y為輸入張量

tf.add(

x,

y,

name=None

)

回傳x+y的值

tf.multiply

5*2為10

16-2 TensorFlow的變數

訓練前需初始化變數

複數

  • 複數是由實數與虛數組成
  • -1開根號得到j,j為複數
  • j*j=-1
  • 複數遞迴函數Z(n+1)=Z(n)*Z(n)+c
  • Mandelbrot複數集合的圖

real為實數,imag為虛數

複數遞迴函數

Z(n+1)=Z(n)*Z(n)+c

tf.group()可以將多個tensor和運算群組執行

Mandelbrot複數集合的圖

梯度

  • 微分求梯度
  • 微分求取曲線極值

y=x*x

對y作x變數的微分

將5帶入得10

將x=1帶入得值2.0

16-3圖形和Sessions

  • TensorFlow使用圖形來代表計算操作的相依
  • 使用TensorFlow的session來平行執行圖形
  • sess.run()則使用這個建立好的會話來執行結果 當with子句上下文結束時,會話關閉和資源釋放也自動完成,因此沒有用close()函數關掉Session會話

16-4 TensorFlow placeholder

輸入參數dtype為資料型態,shape維度,name為名稱

placeholder 是一種可以讓計算圖形保留輸入欄位的節點,並允許實際的輸入值留到後來再指定。

常見函數

  • Tensorflow的計算節點
  • tf.add
  • tf.multiply
  • ………..
  • tf.reduce_sum()

tf.add

  • 回傳x+y的值
  • x,y為輸入張量

tf.add(

x,

y,

name=None

)

回傳x+y的值

tf.multiply

  • 回傳x*y的值
  • x,y為輸入張量

tf.multiply(

x,

y,

name=None

)

5*2為10

tf.reduce_sum()

  • 計算張量該維度元素的總和
  • 在指定軸axis的維度減少input_tensor,如果axis沒被指定則減少所有維度
  • keepdims如果為true,則依舊減少維度的長度為1
  • 會回傳減少的張量
  • tf.reduce_sum(

input_tensor,

axis=None,

keepdims=None,

name=None,

reduction_indices=None,

keep_dims=None

)

機率均勻分佈

設定seed種子為2,來產生重複的序列

tf.random_uniform

  • 機率均勻分佈
  • shape為陣列元素個數
  • seed為設定的種子
  • tf.random_uniform(

shape,

minval=0,

maxval=None,

dtype=tf.float32,

seed=None,

name=None

)

機率常態分佈

  • 常態分佈,標準差,均值

tf.random_normal

  • 機率常態分佈
  • shape為陣列元素個數,mean為均值,stddev為標準差dtype為資料型態
  • seed為設定的種子
  • tf.random_normal(

shape,

mean=0.0,

stddev=1.0,

dtype=tf.float32,

seed=None,

name=None

)

用TensorFlow處理張量

  • 輸入matplotlib模組和tensorflow模組
  • import matplotlib.image as matImage
  • import matplotlib.pyplot as plt
  • import tensorflow as tf

transpose()函數

  • 二维陣列,perm=[0,1],0代表二维陣列的列,1代表二维陣列的行
  • tf.transpose(x, perm=[1, 0]),perm[1,0]代表將陣列的列和行交换,代表矩陣的轉置
  • tf.transpose(x, perm=[1,0,2])代表將三維陣列的行和列進行轉置
  • perm為陣列的排列方式

16-5  範例實作 執行計算圖

執行tensorboard且設定目錄

  • —logdir為指定紀錄的目錄

TensorFlow手寫辨識演算法

  • 載入mnist手寫辨識資料
  • W是權重,b是偏差,X是輸入
  • 輸入X乘與權重W加bios,經過softmax得到y
  • 訓練模型使用交叉熵的成本
  • 使用梯度遞減微分求取最小交叉嫡
  • 評估模型

TensorFlow手寫辨識實作

  • TensorFlow函數
  • 手寫辨識實作
  • 顯示手寫訓練圖片
  • tf.matmul()為矩陣內積相乘
  • Class GradientDescentOptimizer類別

17.TensorFlow卷積深度學習CNN手寫辨識

  • 輸入tensorflow函式庫
  • 定義卷積conv2d和最大池化
  • 深度學習函數deepnn(x)
  • 第二卷積層對應 32 特徵向量到64
  • 交叉熵最佳化
  • 平行計算會議
  • 準確度98.59%
  • TensorBoard的計算圖Graphs

損失函數

  • 手寫辨識範例
  • 損失函數
  • 均方差
  • 交叉熵誤差
  • 對數y=log(x)

TensorFlow 實作課程 (Python 機器學習-親手打造影像辨識系統)

TensorFlow CNN卷積深度學習影像辨識

安裝Tensorflow

  • 在PyCharm新增TensorFlow

Cifar-10圖片集

啟動Tensorboard

  • TensorFlow卷積的圖形
  • TensorFlow conv_1卷積變數的範圍
  • TensorFlow Visualization視覺化輸出
  • TensorFlow 計算圖 全連接層神經元
  • TensorFlow 全連接層神經元fully_connected_1變數範圍
  • TensorFlow Cifar_10影像特徵圖

TensorFlow Saver類別儲存變數

混淆矩陣

18.TensorFlow+Keras CNN卷積深度學習Cifar-10圖形辨識

安裝Tensorflow

Cifar-10圖片集

範例:cifar10_data_ok

  • cifar10.load_data()載入訓練和測試資料
  • RGB(紅藍綠)圖像:圖像中每個像素紅藍綠顏色可以由0(黑)到255(白)的亮度值(Intensity)表示。0-255之間表示不同的紅藍綠顏色值。
  • Keras的核心為模型
  • 卷積和池化各有四層
  • add()我們可以一層一層的將神經網路疊起。在每一層之中我們只需要設定每層的大小(units)與啟動函數(activation function)。
  • 最佳化隨機梯度下降
  • 訓練模型,使用交叉熵
  • 建立模型model.fit()

預測測試10000筆的準確度73%

範例:cifar10_kk

TensorFlow CNN卷積深度學習影像辨識

安裝Tensorflow

  • 在PyCharm新增TensorFlow

Cifar-10圖片集

啟動Tensorboard

  • TensorFlow卷積的圖形
  • TensorFlow conv_1卷積變數的範圍
  • TensorFlow Visualization視覺化輸出
  • TensorFlow 計算圖 全連接層神經元
  • TensorFlow 全連接層神經元fully_connected_1變數範圍
  • TensorFlow Cifar_10影像特徵圖

TensorFlow Saver類別儲存變數

混淆矩陣

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

機率常態分佈

  • 常態分佈,重要觀念,平均值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)

1.Python 類神經網路深度學習

安裝Tensorflow
安裝Keras
類神經網路圖形辨識MNIST
類神經深度學習
繪製實際和預測結果的手寫辨識

2.Python深度學習 類神經網路

類神經網路
微分chain rule
類神經網路深度學習
啟動函數

3.CNN,卷積類神經網路

卷積神經網路CNN
卷積神經網路CNN
CNN,特徵取樣
CNN程式使用keras

4.遞迴神經網路RNN

遞迴類神經網路RNN
Google的LSTM遞迴類神經網路
IMDb影評資料滿意度分析
建立RNN遞迴類神經的模型
LSTM實作
類神經深度學習

‧add()我們可以一層一層的將神經網路疊起。在每一層之中我們只需要設定每層的大小(units)與啟動函數(activation function)。
‧第一層輸入向量大小、最後一層為units要等於輸出的向量大小。
最後一層的啟動函數(activation function)為softmax。
softmax()為歸一化指數函數,將向量的值歸ㄧ化為0到1之間。

課程網址[ 限時折扣](資策會)

課程網址[ 限時折扣]

arrow
arrow
    全站熱搜

    吳老師教學中心 發表在 痞客邦 留言(0) 人氣()