[TOC]
了解什么是Machine learning
學習中心極限定理稽揭,學習正態(tài)分布,學習最大似然估計
推導回歸 Loss function
學習損失函數(shù)與凸函數(shù)之間的關(guān)系
了解全局最優(yōu)和局部最優(yōu)
學習導數(shù)矛纹,泰勒展開
推導梯度下降公式
寫出梯度下降的代碼
學習L2-Norm,L1-Norm光稼,L0-Norm
推導正則化公式
說明為什么用 L1-Norm 代替 L0-Norm
學習為什么只對做限制或南,不對b做限制
1.什么是 Machine Learning?
Machine Learning 可以分為三種類型:
機器學習的涉及的知識比例分布:
35% 線性代數(shù)
25% 概率論和統(tǒng)計學
15% 微積分
15% 算法及其復雜性
10% 數(shù)據(jù)預處理知識
Regression
Classification
Deep Learning
Semi-supervised Learning
Transfer Learning
Unsupervised Learning
Reinforcement Learning
2.基礎概念
2.1 正態(tài)分布
標準正態(tài)分布的圖像艾君,如下所示:
2.1 中心極限定理 Central Limit Theorem
2.1 最大似然估計(MLE)
核心思想:在給出數(shù)據(jù)樣本集的情況下采够,找出最大可能產(chǎn)生該樣本集的參數(shù)值。
MLE 提供了一種給定觀測數(shù)據(jù)來評估模型參數(shù)的方法冰垄,即「模型已定蹬癌,參數(shù)未知」的時候,通過最大似然估計找到能夠使樣本數(shù)據(jù)出現(xiàn)概率最大的參數(shù)值虹茶,這便是最大似然估計逝薪。需要注意的是,這里的參數(shù)有一定的值蝴罪,并非隨機變量董济,無概率可言,于是使用「似然」這個詞要门。
3.Linear Regression
3.1 模型定義
「線性回歸」是用于解決回歸問題最為基礎的模型虏肾。線性回歸假設輸入和輸出為線性關(guān)系,其模型定義如下:
為了更直觀一點欢搜,重寫為向量的形式:
進一步簡化表示封豪,可以在每個輸入 中添加一項
,得到:
炒瘟。
同樣的吹埠,令 可以得到
,這樣模型就可以表示為:
有些時候,會使用 來表示參數(shù):
3.2 模型推導
現(xiàn)在給定 N 個數(shù)據(jù), 如何求得線性回歸模型的參數(shù)
呢藻雌?
Cost Function
The Normal Equations
概率視角
其中, 表示輸入向量
與 模型權(quán)重向量
的內(nèi)積(又稱數(shù)量積斩个,點積 )胯杭,
表示預測值和真實值之間的殘差(Residual Error)。
在 Linear Regression 中受啥,通常假設 服從正態(tài)分布(也叫高斯分布)做个,即
,
為均值滚局,
為方差居暖,在這里
,
為定值藤肢。
當噪聲符合正態(tài)分布時太闺,因變量則符合正態(tài)分布
,其中預測函數(shù) y=ax(i)+b嘁圈。這個結(jié)論可以由正態(tài)分布的概率密度函數(shù)得到省骂。也就是說當噪聲符合正態(tài)分布時,其因變量必然也符合正態(tài)分布最住。
在用線性回歸模型擬合數(shù)據(jù)之前钞澳,首先要求數(shù)據(jù)應符合或近似符合正態(tài)分布,否則得到的擬合函數(shù)不正確涨缚。
若本身樣本不符合正態(tài)分布或不近似服從正態(tài)分布轧粟,則要采用其他的擬合方法,比如對于服從二項式分布的樣本數(shù)據(jù)脓魏,可以采用 logistics 線性回歸兰吟。
于是,可以將「線性回歸」模型重寫為:
這表明「線性回歸」模型屬于一種條件概率分布轧拄。這里采用最簡單的形式揽祥,假設 是關(guān)于
的線性函數(shù),即
檩电,并且噪聲是固定的
In this case, are the parameters of the model.
求解模型參數(shù):
1.LMS
2.Norm Equations
3.MLE
「預測值」 與 「真實值」 之間存著誤差
Gradient Discent
按照最小二乘法拄丰,我們直接求出導數(shù)為0的點,但是有時候很難解出方程俐末,就考慮使用迭代的方法料按,首先取一個隨機數(shù),然后每一次去想著目標結(jié)果逼近卓箫,而為了效率最高载矿,我們向著梯度下降最快的方向,既θ在偏導數(shù)上的取值。而α是學習速率闷盔,是個很重要的參數(shù)弯洗,設置過大會導致超過最小值,過小則學習的太慢逢勾。
動手實現(xiàn)Linear Regression
1.創(chuàng)建數(shù)據(jù)集
import random
import numpy as np
num_inputs = 2
num_examples = 1000
true_w = [2, -3.4]
true_b = 4.2
features = np.random.randn(num_examples, num_inputs)
print(features.shape)
labels = true_w[0] * features[:, 0] + true_w[1] * features[:, 1] + true_b
print(labels.shape[0])
# 給 y 加上隨機噪聲
labels += 0.01 * np.random.randn(labels.shape[0])
print(features[0], labels[0])
print(np.dot(features[0],true_w)+true_b, labels[0])
2.可視化
from matplotlib import pyplot as plt
# 繪制數(shù)據(jù)的散點圖
plt.scatter(features[:, 1], labels)
plt.show()
3.數(shù)據(jù)讀取
4.定義模型
Norm 范數(shù)
L0 范數(shù)指的是向量中非零元素的個數(shù)牡整。
L1 范數(shù)是指向量中各個元素絕對值之和。
L2 范數(shù)指的是向量中各個元素的平方和的 次方溺拱。
L0 范數(shù)難以求解
L1 范數(shù)可以使得權(quán)值稀疏逃贝,方便進行特征提取。
L2 范數(shù)可以防止過擬合迫摔,提升模型泛化能力沐扳。
為了防止模型的過擬合,我們在建立線性模型的時候經(jīng)常需要加入正則化項句占。一般有 「L1正則化」 和「L2正則化」沪摄。
推導正則化公式
說明為什么用 L1-Norm 代替 L0-Norm
線性回歸的 L1 正則化通常稱為 Lasso回歸,它和一般線性回歸的區(qū)別是在損失函數(shù)上增加了一個 L1正則化的項纱烘,L1 正則化的項有一個常數(shù)系數(shù) 來調(diào)節(jié)損失函數(shù)的均方差項和正則化項的權(quán)重卓起,具體Lasso回歸的損失函數(shù)表達式如下:
Lasso Regression
線性回歸的L2正則化通常稱為Ridge回歸,它和一般線性回歸的區(qū)別是在損失函數(shù)上增加了一個L2正則化的項凹炸,和Lasso回歸的區(qū)別是Ridge回歸的正則化項是L2范數(shù)戏阅,而Lasso回歸的正則化項是L1范數(shù)。具體Ridge回歸的損失函數(shù)表達式如下:
Ridge回歸在不拋棄任何一個特征的情況下啤它,縮小了回歸系數(shù)奕筐,使得模型相對而言比較的穩(wěn)定,但和Lasso回歸比变骡,這會使得模型的特征留的特別多离赫,模型解釋性差。
Ridge回歸的求解比較簡單塌碌,一般用最小二乘法渊胸。這里給出用最小二乘法的矩陣推導形式,和普通線性回歸類似台妆。
Ridge Regression
為什么正則化只對參數(shù) 做限制翎猛,而不對 b 做限制?
答:都可以做限制接剩,但在實際問題中切厘, 往往是高維度的,而 b 只是單個數(shù)字懊缺,實際上不會起太大作用疫稿。