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之間。