AIA (AI Adventures)系列現在已經進入第三期了。前兩期分享當中,Yufeng 介紹了機器學習的核心概念、基本邏輯,也介紹了要進行機器學習需要經過哪些步驟。今天的分享中,他會繼續用淺顯易懂的表達,為我們介紹 TensorFlow 的評估器 API。
總的來說,機器學習還是非常贊的(當然,除了某些時候你不得不對付復雜惱人的數學運算)。當下機器學習相關工具已經得到很大的改善,并且訓練模型也更加簡單方便。
我們將利用對數據集的認知來編寫與之對應的模型,而不是基于對原始數學問題來求解,本期,我們將會用一些簡單的代碼來實操訓練出一個簡單的分類器
要訓練我們的分類模型,我們需要使用 Google 的開源機器學習庫——TensorFlow。TensorFlow 對外開放了非常豐富的 API 接口,但此時我們需要用到的僅僅是一些高層次 API,也就是評估器(Estimator)。
評估器替我們打包好了訓練的循環迭代,所以我們可以通過配置評估器來控制訓練過程,而不是手動編碼實現。這樣以來,許多樣板化的東西都不再存在,也讓我們能夠在更高級的抽象中考慮問題。同時這也意味著盡情享受機器學習的樂趣,而不必糾結實現的細節。
既然目前我們只探討過線性模型的設計問題,不妨就此打住。今后我們會有機會回過頭討論這個問題,并提升其識別能力。
花卉分類:是否和酒水判別同樣充滿趣味?
本周我們會構建一個模型來區分三種非常相似的花卉。雖說這次比不上上次那樣同酒水打交道那么令人向往,但是由于花卉更難辨認,所以這次的任務會更具挑戰性。
上期文章AIA 系列第二課 | 機器學習常見的七個步驟
特別是,今天我們需要區分開不同品種的鳶尾花。其實我自己不太能從一片玫瑰當中找出一枝鳶尾花,但是我們的模型將會準確認出山鳶尾、變色鳶尾和維吉尼亞鳶尾。
山鳶尾、變色鳶尾和維吉尼亞鳶尾
我們有一個數據集(如下圖)記錄了花卉的花瓣、萼片的寬高數據。表中的四列也就是之前提到的「特征」。
載入數據
在引入 TensorFlow 和 NumPy 兩個模塊后,我們需要使用 TensorFlow 的 load_csv_with_header()函數來加載數據集。這些數據(或者說特征),都以浮點數的形式呈現,而每一列數據、目標花卉的標記則用 0、1 和 2 來表示,與三種花卉的品類相對應。
此時我已經將數據加載的結果輸出來了,現在我們可以通過命名屬性來取得訓練數據和相關的標記、目標。
構建模型
下一步我們需要構建模型了。為了完成這一步操作,首先需要設定特征列。特征列定義了進入模型當中的數據類型。我們使用四個維度的特征列來表示數據集中的特征,并將之稱為「花卉特征」。
要搞定評估器非常簡單。 通過把特征列、模型預測的輸出數量(此處為 3)和指定的用于存儲模型訓練進程以及輸出結果的目錄傳入tf.estimator.LinearClassifier() 函數就能實例化模型了。這些參數有助于讓 TensorFlow 從中斷點繼續之前的訓練。
輸入函數
上述的 classifier 對象會為我們記錄訓練狀態,此時差不多可以開始訓練了。勝利在望,我們的模型距離成功連接訓練數據僅僅只差一個輸入函數。輸入函數的主要工作是創建一個可以為模型生成數據的 TensorFlow 算子。
現在,所以我們已經完成了從處理原始數據,到創建輸入函數(傳入之后會以特征列來映射的數據)的過程。要注意的是我們使用與元數據中同樣的特征列名作為特征值的標記,這樣數據與模型訓練才能對應起來。
開始訓練
接下來開展訓練工作。只需將輸入函數傳入 classifier.train() 方法就可以了。我們就是這樣將數據與模型聯系起來的。
訓練函數會控制在數據集上循環或迭代的過程,同時在每一階中不斷提升自身性能。正如我們所料,下圖顯示已經成功完成了 1000 個階的訓練!我們的數據集并不算大,所以這個過程非常快。
精確度評估
好啦,是時候評估結果了。由于前面的 classifier 對象保存了模型訓練的狀態,所以我們此處仍然使用同一個對象來評估。要評估模型的優劣,我們通過調用 classifier.evaluate() 并傳入測試數據,然后從返回的矩陣當中提取出精確度數據即可。
快看!得到的精確度是 96.88%,厲害了我的哥!
評估器:一路向前的流水線
這周就先進行到這里,一起來回顧學習評估器的收獲:
Estimator API 為我們提供了一個優秀的流水線用于獲取元數據、傳入輸入函數、配置特征列和模型結構、運行訓練過程和進行預測。這個易于理解的框架讓我們能夠關注數據和他們的屬性,而不需要一直糾結數學上的問題,實在是贊!
-
API
+關注
關注
2文章
1502瀏覽量
62123 -
機器學習
+關注
關注
66文章
8422瀏覽量
132743
原文標題:Google AIA 系列 | 無需數學知識,輕松搞定鳶尾花辨識模型
文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論