機器學習框架ML.NET學習筆記【1】基本概念
一、序言
微軟的機器學習框架於2018年5月出了0.1版本,2019年5月釋出1.0版本。期間各版本之間差異(包括名稱空間、方法等)還是比較大的,隨著1.0版釋出,應該是趨於穩定了。之前在園子裡也看到不少相關介紹的文章,對我的學習提供了不少幫助。由於目前資料不是很豐富,所以學習過程中也走了不少彎路,本系列的文章主要記錄我學習過程中的一些心得體會,並對一些細節會做詳細的解釋,希望能為機器學習零基礎的同學提供一些幫助。(C#零基礎可不行)
二、基本概念
1、什麼是機器學習?
定義:一個電腦程式要完成任務(T),如果電腦獲取的關於T的經驗(E)越多就表現(P)得越好,那麼我們就可以說這個程式‘學習’了關於T的經驗。
簡單解釋什麼叫“機器的學習”:如果輸入的經驗越多表現的越好,這就叫“學習”。舉個例子:傳統的程式邏輯是基於演算法的,在演算法不變的情況下,程式就是執行100年能力也不會有提升,但機器學習是基於資料(樣本)的,在演算法不變的情況下,累計的有效資料越多,程式表現能力就越強。
2、通過機器學習解決問題和傳統演算法解決問題的區別
需要解決的問題:會議室進來一位男生,請他站在攝像頭前面,通過一個程式評價一下這位男生身材是否很好。
(1)傳統解決方案
首先我們分析要判斷一個人身材是否很好,主要的判斷特徵包括:身高、體重、三圍等等,然後通過一個衡量演算法(比如BMI)進行計算,流程如下:
(2)機器學習演算法
機器學習是依賴樣本資料的,所以解決這個問題的思路是這樣的:
①首先你得上街去收集資料,詢問你採訪物件的身高、體重、三圍資料,然後根據你的經驗給他一個評判,形成下表:
②對收集到的資料進行訓練,形成模型,然後通過模型對要判斷的物件進行評判。流程如下:
小結:通過這個問題的解決,感覺通過機器學習來解決問題比傳統方法麻煩多了,是的,對於身材判斷這樣的問題,人類可以很簡單找到一個邏輯分析的方法,所以通過邏輯演算法解決就比較方便,但有時候很多事情我們人類是很容易處理的,但我們卻不知道其中的邏輯,比如:判斷一張圖片是否是18+圖片,判斷一片論文是否寫得很好,判斷一個人是否長得漂亮等等。這些問題人類很輕鬆就能處理,但無法總結出其中的規律並交給機器去執行,這時候機器學習演算法就可以派上用場了。
三、機器學習的流程
機器學習的流程如下:
資料準備 -> 建模 -> 訓練 -> 評估 -> 應用
在實際應用時,由於訓練的過程可能時間比較長,所以我們會分兩個階段進行:
1、學習階段:資料準備 -> 建模 -> 訓練 -> 評估 -> 儲存模型
2、消費階段:讀取模型 -> 應用
評估的過程就是對模型的檢驗,我們一般會把樣本資料隨機分成兩份,其中一部分用來學習,另一部分用來檢驗模型效果,判斷一下我們的模型能力。
以上是涉及到機器學習的有些最基礎的理論知識,下面幾篇文章會由淺入深介紹ML.NET的一些應用。
系列文章目錄:
機器學習框架ML.NET學習筆記【1】基本概念
機器學習框架ML.NET學習筆記【2】入門之二元分類
機器學習框架ML.NET學習筆記【3】文字特徵分析
機器學習框架ML.NET學習筆記【4】手寫數字識別
機器學習框架ML.NET學習筆記【5】手寫數字識別(續)
機器學習框架ML.NET學習筆記【6】TensorFlow圖片分類
機器學習框架ML.NET學習筆記【7】人物圖片顏值判斷
機器學習框架ML.NET學習筆記【8】目標檢測
機器學習框架ML.NET學習筆記【9】自動學習
資源下載:
專案原始碼:https://github.com/seabluescn/Study_ML.NET
資原始檔:https://gitee.com/seabluescn/ML_Assets
(由於資原始檔較大,所以放在碼雲平臺提供下載)
&n