目錄
一、常用標記
樣本:$(x, y)$ $x$為輸入,$y$為輸出
輸入$x$:$x\in\mathbb^}$是乙個$n_$維的特徵向量
輸出$y$:取值為0或1
樣本數量:$m$
樣本空間:$\,y^),(x^,y^),...,(x^,y^)\}$
如何組織:按列來組織,每一列表示乙個樣本
矩陣$x=[x^,x^,...,x^]$
矩陣$y=[y^,y^,...,y^]$
sigmoid函式:$g(z) = \frac)} $
$z$的範圍為正負無窮,$g(z)$結果範圍為$[0,1]$
二、logistic回歸
邏輯回歸是監督學習中用來解決輸出為0/1問題的演算法。通過sigmoid將線性結果對映到(0,1)空間,作為概率估計。它的目標是最小化**與訓練結果間的誤差
例:cat vs no - cat
給定以特徵向量$x$表示的一張圖,演算法會評估出貓在該圖中的概率
具體步驟
1. 輸入樣本資料$x$
2. $z = w^tx + b = w_1x_1 + w_2x_2...+w_nx_n + b$,不能直接表達分類結果
3. sigmoid函式(啟用函式),輸出結果$\widehat=\sigma (z)$。把z轉換成(0,1)之間的數,就是對$p(y=1|x)$的概率估計
4. 規定if$ y = 1: p(y|x) = \widehat$,則 if$ y = 0: p(y|x) = 1 - \widehat$
把上述式子合併,$p(y|x) = \widehat y^y(1-\widehat y)^$
6. 評估誤差——loss函式(單個樣本)
$l(\widehat y, y)=-log(y|x)=-(ylog \widehat y + (1-y)log (1-\widehat y))$
目標(最優化問題):找出一組引數,使得$j(w,b)$取到最小值
求解的思想:最大似然概率:
$l(w,b)=l(\widehat y, y)=|\widehat y - y|^2$,$l(w)$不是乙個凸函式,也就是有多個極小值。若用梯度下降法來求解,不一定能得到最小值
$l(w,b)=l(\widehat y, y)=-log(y|x)$,$l(w)$乙個凸函式,也就是只有乙個最小值,利用梯度下降是可以收斂到最小的位置
7. 評估誤差——cost函式(m個樣本獨立同分布)
$log p(整個樣本空間標籤)=log \prod p(y^|x^) = \sum log p(y^|x^) = -\sum l(\widehat^,y^)$
cost函式:$j(w,b)=\sum l(\widehat^,y^)$
三、梯度下降法
利用梯度下降法來學習模型中的引數$w$和$b$,使得cost函式取到是小值
梯度:函式在某一點方向導數最大的向量,函式在該點變化最快
梯度下降法:從某個點開始,每次朝最陡(梯度)的方向移動,最後可以到達全域性最優(或相近位置)
為什麼用梯度下降法:cost中的引數較多,如果用最大似然概率估計法,需要對各引數求偏導,計算量較大
為什麼可以用梯度下降法:
cost函式是乙個凸函式($\frac\geq \frac$)
實現:對$w$求偏導以更新$w$:$w:=w-\alpha \frac$ $\alpha$是學習率;
b的更新方法與w相似
四、計算圖
把乙個計算式分成多個步驟寫成乙個流程圖,前向傳導是一步步計算,而後向傳導則可以幫助求導
五、向量化
把for的顯示迴圈用向量的方式計算,呼叫一些內建的函式,可以充分利用並行的優勢以加快速度;
能盡量少用for迴圈則少用
例$z^=w^tx^+b$;$a^=\sigma (z^)$
$z^=w^tx^+b$;$a^=\sigma (z^)$
$z^=w^tx^+b$;$a^=\sigma (z^)$
向量化:
$x=[x^ x^ x^...]$
$z=[z^ z^ z^...]=w^tx+b$
$a=[a^ a^ a^...]=\sigma(z)$
python中的廣播:乙個向量和另乙個向量(或乙個實數)運算,則其中維數較少的向量或實數會自動擴充套件成與另乙個向量維數相同的向量,並進行元素上的運算
避免因為廣播導致bug的方法:
(深度學習)神經網路基礎
一 神經網路定義 playground 通過這個位址了解神經網路 1.人工神經網路 artificial neural network,簡寫為ann 也簡稱為神經網路 nn 分別輸入層,輸出層以及隱藏層 2.特點 每個連線都有個權值,同一層神經元之間沒有連線,最後的輸出結果對應的層也稱之為全連線層 ...
機器學習,深度學習,神經網路,深度神經網路
先來說一下這幾者之間的關係 人工智慧包含機器學習,機器學習包含深度學習 是其中比較重要的分支 深度學習源自於人工神經網路的研究,但是並不完全等於傳統神經網路。所以深度學習可以說是在傳統神經網路基礎上的公升級。神經網路一般有輸入層 隱藏層 輸出層,一般來說隱藏層大於2的神經網路就叫做深度神經網路,深度...
Tensorflow 學習2 深度神經網路
使用非線性啟用函式的目的是為了解決非線性問題 tf.nn.relu tf.sigmoid tf.tanhcross entropy tf.reduce mean y tf.log tf.clip by value y,1e 10 1.0 交叉熵tf.reduce mean函式用於計算張量tensor...