Python深度學習讀書筆記(二)(機器學習基礎)

2021-09-26 06:06:06 字數 2670 閱讀 4883

第四章,機器學習基礎

二分類,多分類,標量回歸都屬於監督學習的例子。

機器學習四大分支:

監督學習:學會將輸入資料對映到已知目標,也叫做標註。

監督學習變體:序列生成,語法樹檢測,目標檢測,影象分割。

無監督學習:沒有目標的情況下尋找輸入資料的變換,目的在於資料視覺化,資料壓縮,資料去噪或更好理解資料中的相關性。降維和聚類是常用無監督學習方法。

自監督學習:沒有人工輸入的標籤,標籤從輸入資料中生成,採用啟發式演算法生成。

時序監督學習:用未來的輸入資料作為監督。

強化學習:智慧型體接收有關環境的資訊,學會選擇使某種獎勵最大化的行動。

評估模型的三個集合:訓練集(訓練模型),驗證集(評估模型),測試集(找到最佳引數後測試)。

開發模型時總是需要調節模型配置,調節過程需要使用模型再驗證資料上的效能作為反饋訊號,這個調節過程本質上是一種學習。

可用資料較少時的評估方法:

簡單的留出驗證:留出一定比例資料作為驗證集,剩餘資料訓練,測試集上評估。劃分資料前隨機打亂,導致模型效能差別很大。

k折驗證:資料劃分為大小相同的k個分割槽,對於每個分割槽i,再剩餘的k-1個分割槽上進行訓練,在分割槽上評估模型,最終分數等於k個分數的平均值。

帶有打亂資料的重複k折驗證:多次使用k折驗證,每次將資料劃分為k個分割槽之前都將資料打亂。最終分數是每次k折驗證分數的平均值。

模型評估注意事項:

資料要具有代表性,分類問題前,通常應隨機打亂資料;

**未來,劃分資料前不應該隨機打亂資料,為避免時間洩露,應保證測試資料時間晚於訓練資料集;

確保訓練集和驗證集之間沒有交集,防止資料冗餘。

資料預處理:            

神經網路的所有輸入和目標都必須是浮點型張量(特定情況下為整形張量)。處理之前都需要資料向量化(資料必須首先轉換為張量)。

資料輸入網路前,對每個特徵做標準化,使其均值為0,標準差為1。

對於取值相對較大的資料或異質資料(資料特徵範圍差異大)可能導致網路無法收斂。輸入資料應保持同質性,確保取值較小

處理好缺失值:將缺失值設定為0;當測試資料中含有缺失值時,認為生成一些有缺失項的訓練樣本,多次複製一些訓練樣本,刪除測試資料的可能缺失的特徵。

特徵工程:資料輸入模型之前,利用資料和演算法知識對資料進行硬編碼的轉換,以改善模型效果。本質上是用簡單的方式表述問題,使問題變得更容易。消耗更少資源,減少對資料量的過度依賴。

優化(學習過程):調節模型以在訓練資料上得到最佳效能。

泛化(學習目的):訓練好的模型在前所未見的資料上的效能好壞。

常見正則化方法

減小模型大小,減少模型中可學習引數的個數。

新增權重正則化:因為簡單模型(引數值分布的熵更小的模型)比複雜模型更不容易過擬合。所以強制讓模型權重只能取得較小的值,限制模型複雜度,使得權重值分布更加規則。實現方法是向網路損失函式中新增較大權重值相關的成本。形式有如下兩種:

l1正則化:新增成本與權重係數的絕對值(權重的l1範數(特徵稀疏,去掉沒有資訊的特徵))成正比。

l2正則化(權重衰減):新增的成本與權重係數的平方(權重的l2範數(防止迎合過於複雜的訓練集而造成的過擬合情況))成正比。在keras中,新增權重正則化的方法是向層傳遞權重正則化項例項作為關鍵字引數。

from keras import regularizers

regularizers.l1()

regularizers.l2()

懲罰項只在訓練時新增

3 .新增dropout正則化:對某一層使用dropout,就是在訓練過程中隨機將該層的一些輸出特徵捨棄。dropout比率是被設為               的特徵所佔的比例。輸出值按dropout比率縮小。

平衡分類問題:精度和接收者操作特徵曲線下面積是常用指標;

類別不平衡問題:使用準確率和召回率

問題型別

最後一層啟用

損失函式

二分類sigmoid

binary_crossentropy(交叉熵二進位制)

多分類、單標籤

softmax

categorical_crossentropy(分類交叉熵)

多分類、多標籤

sigmod

binary_crossentropy

回歸到任意值

無mse(均方誤差)

回歸到0~1範圍內的值

sigmoid

mse或binary_crossentropy

機器學習基本流程:

定義問題,收集資料集(機器學習只能記憶訓練資料中存在的模式)

選擇好衡量成功指標

確定評估方法:留出驗證集,k折交叉,重複的k折交叉

準備資料,處理資料

開發比基準更好的模型(獲得統計功效)

擴大模型規模:開發過擬合的模型

模型正則化與調節超引數,直到模型達到最佳效能

《Python深度學習》讀書筆記(二)

整個深度學習問題可以分為兩類 化繁為簡 給出一堆資料,含有輸入和標籤,讓機器自己去學習到乙個規則,其中包含分類 回歸兩大問題。化簡為繁 如現在給機器一些,讓機器自己學習然後生成一些或者文字,比如訓練集給的是人類平時的對話,讓機器能夠學習生成一些文字或影象等。如 gnn等 首先看一下keras官方提供...

python深度學習讀書筆記 一

機器學習的要素 機器學習和深度學習的核心問題在於有意義的變換資料,換句話說在於學習輸入資料的有用表示 學習指的是尋找更好資料表示的自動搜尋過程 深度學習 學習資料表示的多級方法 1 深度學習的目標 尋找權重引數 2 深度學習的衡量標準 損失函式 3 深度學習的核心演算法 反向傳播演算法 載入kera...

深度學習讀書筆記(1)

欠擬合 模型不能在訓練集上獲得足夠低的誤差 過擬合 訓練誤差和測試誤差之間的差距太大。通過調整模型的容量,可以控制模型是否偏向過擬合或者欠擬合。從預先知道的真實分布p x,y 而出現的誤差被稱為貝葉斯誤差。任何模型容量小於最優容量的固定引數模型會漸進到大於貝葉斯誤差的誤差值。在所有可能的資料生成分布...