機器學習不是科幻電影。
機器學習目的是解放生產力。
機器學習: 機器自主獲取事物的規律。
要讓機器可以 「學習」,必須將生活中的資料(包括但不限於影象、文字、語音)數值化,將不同事物的變化和關聯轉化為運算。
機器學習可以成立的原因是:概念和數值、關係和運算可以相互對映。
1、有監督
訓練哈士奇就是典型的有監督學習,每一次的指令都是乙個資料樣本(sample),被摸頭(正確)和挨打(錯誤)就是資料樣本的標籤(label),給資料樣本打上標籤的過程就叫做標註(labeling)。
2、無監督
告訴機器一些特徵(features),例如:是否有角,是否長翅膀,讓機器自己去 「聚類」, 這就是一次無監督的學習。
無監督學習沒有給定事先標記過的訓練示例,自動對輸入的資料進行分類或分群。 根據類別未知(沒有被標記)的訓練樣本解決模式識別中的各種問題,稱之為無監督學習。
1、分類和回歸
給定乙個樣本特徵 , 我們希望**其對應的屬性值 , 如果 是離散的, 那麼這就是乙個分類問題,反之,如果 是連續的實數, 這就是乙個回歸問題。
2、聚類
如果給定一組樣本特徵 , 我們沒有對應的屬性值 , 而是想發掘這組樣本在 維空間的分布, 比如分析哪些樣本靠的更近,哪些樣本之間離得很遠, 這就是屬於聚類問題。
資料 也就是源資料, 指還未轉換為機器可以識別的資料樣本
1. 模型如何得到
模型是機器學習的結果,而這個學習的過程稱為訓練(train) 乙個訓練好的模型可以被理解成乙個函式:y=f(x) 這個 y 可能是乙個數值(回歸),也可能是乙個標籤(分類)
2. 什麼是訓練
根據已經被指定的 f(x) 的具體形式 —— 模型型別,結合訓練資料,計算出其中各個引數的具體取值的過程。 比如乙個線性模型:y=f(x)=ax^2+bx+c 訓練就是為了找到其中 a、b、c 的值
演算法 :訓練過程需要依據某種章法進行運算。這個章法,就是演算法。
損失函式(loss function): 需要用乙個函式來描述 y' 與 y 之間的差別,這個函式叫做損失函式(loss function)
代價函式(cost function): 損失函式針對乙個訓練資料,對於所有的訓練資料,我們用代價函式來描述整體的損失 。
目標函式: 因為代價函式表示的是整個模型付出的代價,所以代價要越小越好。因此我們就得到了乙個學習目標,就是找到目標函式。
優化演算法: 為了讓 j(θ) 達到最小就要使用優化演算法。
資料 + 演算法 = 模型
1. 資料準備
資料預處理:收集資料、清洗資料、標註資料。
構建資料的向量空間模型。
將構建好的向量空間模型分為訓練集、驗證集和測試集。
2. 訓練
訓練的核心是演算法
3. 測試
測試集資料 --輸入--> 模型(**結果)--> 將**結果與原本的預期進行比較
4. 衡量當前模型的質量
按照一定的規則計算模型質量的衡量指標(precision、recall、f1score 等等),根據指標的數值來衡量當前模型的質量。
- 訓練集(train set):用來做訓練的資料的集合。
- 測試集(test set):用來測試的資料的集合,用於檢驗最終得出的模型的效能。
每個集合都應當是獨立的,和另外兩個沒有重疊。
其中資料量最大的是訓練集,通常訓練集和測試集比例為8/2或9/1或7/3。
整體資料量不大,模型又相對簡單時,驗證集和測試集也可以合二為一。
1. 編寫訓練程式
- 選擇模型型別;
- 選擇優化演算法;
- 根據模型型別和演算法編寫程式。
2. 訓練 -> 臨時模型
3. 在訓練集上執行臨時模型,獲得訓練集**結果。
4. 在驗證集上執行臨時模型,獲得驗證集**結果。
5. 綜合參照第 3 步和第 4 步的**結果,改進模型。
6. 回到第 2 步,反覆迭代,直到結果滿意或者已經無法繼續優化
當我們訓練出了乙個模型以後,為了確定它的質量,我們可以用一些知道預期**結果的資料來對其進行**,把實際的**結果和實際結果進行對比,以此來評判模型的優劣。
精準率:precision=tp/(tp+fp),即在所有被**為 class_a 的測試資料中,**正確的比率。
召回率:recall=tp/(tp+fn),即在所有實際為 class_a 的測試資料中,**正確的比率。 f1score = 2*(precision * recall)/(precision + recall)
對訓練集樣本擬合程度的角度,可以分為兩類:欠擬合(underfitting)和過擬合 (overfitting)。
欠擬合:如果乙個模型,在訓練集上的**結果就不佳,指標偏低,那一般是欠擬合的問題。 (沒有學到訓練資料的普遍規律)
過擬合:如果在訓練集上指標很好,而在驗證/測試集上指標偏低,則很可能是過擬合問題。(學習的太好了,太關注區域性特徵)
經驗誤差:在訓練集上的誤差稱為「訓練誤差」或「經驗誤差」。 (真實值和**值的誤差)
泛化誤差:在測試集上的誤差稱為「泛化誤差」。
評價策略:哪乙個模型的經驗誤差和泛化誤差上相近又小
回歸模型的評價指標 mse (mean squared error)叫做均方誤差。
這裡的y是測試集上的輸出。
用 真實值-**值 然後平方之後求和平均。
模型的優化可以從三個方面來進行:資料、演算法和模型。
資料(特徵工程)
- 對資料進行歸一化(normalization,又譯作正規化、標準化)等操作。
- 採用 bootstrap 等取樣方法處理有限的訓練 / 測試資料,以達到更好的運算效果。
- 根據業務進行特徵選取:從業務角度區分輸入資料報含的特徵,並理解這些特徵對結果的貢獻。
調參(演算法引數)
我們訓練模型的目的就是為了得到模型對應公式中的若干引數。這些引數是訓練過程的輸出,並不需要我們來調。 除了這些引數外,還有一類被稱為超引數的引數,例如用梯度下降方法學習 lr 模型時的步長(alpha),用 bfgs 方法學習 linear-chain crf 時的權重(w)等。
超引數是需要模型訓練者自己來設定和調整的
通過調參方法來減輕調參工作量,例如 grid search 等。 調參沒有固定的規律可以遵循,往往有很多運氣成分,但靠瞎猜基本不可能得出好的結果,還是要按一定的方法來做。
演算法選擇
1. 演算法選對的,別選貴的。前沿的不一定是好的。
2. 資料最重要,我醜話在先。
機器學習簡單介紹
機器學習是近20多年興起的一門多領域交叉學科,涉及概率論 統計學 逼近論 凸分析 演算法複雜度理論等多門學科。機器學習理論主要是設計和分析一些讓計算機可以自動 學習 的演算法。機器學習演算法是一類從資料中自動分析獲得規律,並利用規律對未知資料進行 的演算法。因為學習演算法中涉及了大量的統計學理論,機...
機器學習簡單介紹 一
1.機器學習方法 分為 有監督學習 無監督學習 半監督學習 增強學習 1 有監督學習 從給定的有標註的訓練資料集中學習出乙個函式 模型引數 當新的資料到來時可以根據這個函式 結果 分為分類 二分類 和回歸 填空 2 無監督學習 沒有標註的訓練資料集,需要根據樣本間的統計規律對樣本集進行分析,如聚類3...
機器學習簡單介紹part1
一 基本分類及定義 機器學習分為 監督學習,無監督學習,強化學習 監督學習是指 利用一組已知類別的樣本調整分類器的引數,使其達到所要求效能的過程,也稱為監督訓練或有教師學習。監督學習是從標記的訓練資料來推斷乙個功能的機器學習任務。訓練資料報括一套訓練示例。在監督學習中,每個例項都是由乙個輸入物件 通...