機器學習就是找到一個我們人類無法寫出來的函式來完成各種任務
機器學習的任務
回歸Regression:輸出是一個數值
例如:預測未來某一個時間PM2.5數值
分類Classification:輸出是選項
例如:輸出是否是電子郵件,Alphago輸出為棋盤的某一個位置
結構化學習Structured Learning:產生一個有結構的物件,例如產生一篇文章,寫一段文字
機器學習的步驟
Step1、寫出一個帶有未知引數的函式運算式(Function with Unknown Parameters):選用一個可能的函式運算式(Model)來表達輸入與輸出的關系,其中的未知引數稱為domain knowledge
Step2、Define Loss from Training Data:Loss是關于未知引數的函式
? mean absolute error(MAE):就是采用預測值和標簽相減絕對值的方式來象征誤差
? mean square error(MSE):就是采用平方差的方式來象征誤差
Step3、求解minL,例如gradient descent梯度下降,其中自己設定的引數(例如學習率)成為hyperparameters,還有local minima和global minima(區域最小和全域最小)
Step4、通過對真實資料的觀測,對原有的函式式子進行修改,例如增加周期性或者波動什么的,可能會更加景區
Model Bias:由模型本身帶來的限制或者誤差,例如線性函式對于非線性的模型的學習始終不夠好

例如上圖,對于復雜的函式都可以用一個常數加上很多個藍色函式來構成,而就算是非線性

也可以通過取足夠多的點來逼近,從而應用上述方法,因此最關鍵的就是藍色函式如何表達,因此有了藍色函式我們就可以擬合我們希望得到的任何函式

因此就可以引入sigmoid函式,用于逼近我們想要的上方藍色函式,而各式各樣的藍色函式就是通過調整w,b,c從而改變它的形狀達到我們的要求

因此,我們就可以將線性函式轉換為具有更多特征的函式,可以擬合各式各樣復雜的函式

引入神經網路:





用\(\theta\)向量來代表全部的引數構成的向量
因此就可以將這個函式重新代入上述機器學習步驟的Step1,作為我們需要預測的函式

同樣利用梯度下降的方式來進行,
由于訓練集有可能過大,那么可以對訓練集進行劃分:

每次update都是對一個batch(一部分訓練集)去進行梯度下降(因為梯度下降的計算之中肯定需要計算樣本的求和,不同訓練集就會導致計算結果不一樣),所有訓練集過完就是一次epoch
Sigmoid也可以更換:

兩個ReLU函式疊加就形成了上圖那一個的函式形狀,而由于每一個sigmoid需要兩個ReLU,因此那里是2i

引入神經元的層數,就是上述程序再進行迭代:

那么每一個Sigmoid或者ReLU就是一個Neuron,整體就稱為Neural Network
也可以每一個稱為hidden layer,那么整體就是Deep Network
層次越深越好嗎?并不是的,可能會出現overfitting,就是過擬合的問題,在測驗集上更差
但是需要思考,為什么要弄得很多層,一層然后非常多的layer不是也可以表達任何一個函式的形狀嗎?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/539945.html
標籤:其他
上一篇:詳解視頻中動作識別模型與代碼實踐
下一篇:淺析JWT Attack
