1、實際變量有多少個特征,輸入層就有多少個神經(jīng)元,接下來想要得到多少個值那么隱藏層就有個神經(jīng)元,以此類推
2、神經(jīng)網(wǎng)絡(luò)是一個無監(jiān)督學習的過程么? 但是最后也算是和訓練數(shù)據(jù)中的y做對比的啊,對無監(jiān)督這個過程感到不理解
額,大概是這個過程,訓練數(shù)據(jù)區(qū)別于標簽數(shù)據(jù),模型都需要訓練數(shù)據(jù)來訓練,但是標簽數(shù)據(jù)就是做監(jiān)督分類來用的
整個神經(jīng)網(wǎng)絡(luò)學習率是一樣的嗎,還是每層的一樣
3、求導(dǎo)的數(shù)值化表示
神經(jīng)網(wǎng)絡(luò)的輸入是一個矩陣,比如課程中講到的識別數(shù)字的訓練集,輸入值是5000x400的矩陣,5000代表樣本數(shù)量,400是輸入層的特征值數(shù)量;輸出值是一個500x1的矩陣
4、對于有多個參數(shù)theta的情況,可以看做是多維空間中,theta1、theta2、theta3......等是每一維,J值是對應(yīng)的值,那么相應(yīng)地每一維上的梯度或者叫導(dǎo)數(shù)(能叫做導(dǎo)數(shù)吧?!)
5、上述的數(shù)值表達式用matlab或者octave代碼表述如下:
6、在神經(jīng)網(wǎng)絡(luò)中獲得梯度是利用方向傳播方法得到的誤差,因為根據(jù)訓練集,(xi 、yi)中,xi對應(yīng)于神經(jīng)網(wǎng)絡(luò)的初始輸入值,yi對應(yīng)于輸出值,誤差函數(shù)或代價函數(shù) J 的獲取是在最后一層即輸出層進行的。而各層中間的theta值是靠誤差方向傳播計算得到。
7、利用數(shù)值計算梯度實驗梯度精度檢驗
why?!原因如下:
所以要用反向傳播算法來計算D(1)、D(2)、D(3)
但是以上說法是建立在已經(jīng)檢驗過反向傳播算法和數(shù)值檢驗結(jié)果相差不大的條件下。
8、當運算梯度下降法或者高級算法時需要初始化theta值
在邏輯回歸中所有theta值初始化為0是可行的,但是在神經(jīng)網(wǎng)絡(luò)中時不可行的
如果所有參數(shù)theta的初始值都為0,那么下圖中所有藍色的兩個權(quán)重、紅色的兩個權(quán)重、綠色的兩個權(quán)重將會一直相等。隱藏層的所有特征值也將相等,那么在計算下一層的輸出值時這些其他相等的特征值完全是多余的或者沒有意義的。
解決以上問題的方法就是將theta值隨機初始化
圖中紅框中的在matlab中的實現(xiàn)的代碼可以使得theta值在[-epsilon,epsilon]之間
下圖說明初始化theta值時要打破對稱性,不管是把所有theta值初始化為0還是初始化為不為零的值都沒有做到這一點
9、神經(jīng)網(wǎng)絡(luò)的輸入層神經(jīng)元個數(shù)和特征個數(shù)相等,輸出層神經(jīng)元和分幾類相等。
10、隱藏層數(shù)量以及隱藏層神經(jīng)元個數(shù)的確定:一般情況下只要一個隱藏層,若隱藏層數(shù)量大于1,那么盡量使得每個隱藏層中的神經(jīng)元個數(shù)相等,而且是數(shù)目越多效果越好,但是計算量會很大
11、會對每一個樣本進行前向傳播和反向傳播
12、所有的theta參數(shù)表達神經(jīng)網(wǎng)絡(luò)如何有效擬合訓練數(shù)據(jù)
總結(jié)暫時的理解:
(1) 、&(3) =[s1;s2] a(2) = [e1;e2;e3;e4;e5;e6;e7;e8;e9;e10]
所以梯度等于&(3)*a(2)'
下圖中第二個選項是錯誤的,因為lamda的值不能不限地增加
(結(jié)果顯示答案錯誤,why)
二次新知:
1、
實際是代價函數(shù)關(guān)于z(i)j的偏微分
什么時候去掉梯度檢驗的代碼
神經(jīng)網(wǎng)絡(luò)是非凸函數(shù),一般如何解決局部最優(yōu)解的問題,a
總結(jié):要記住
除了是相應(yīng)代價函數(shù)關(guān)于中間項的偏導(dǎo)數(shù),也可以由下式得到。
2、紅框中是計算一個實例中的梯度中的偏導(dǎo)數(shù)項
下圖中的第一個紅框中的內(nèi)容是計算梯度的累計值、第二個紅框是計算梯度(當他theta是第一項時不要lambda,否則相反)