神經網路實踐1 MLPCliassifier

2021-10-08 13:43:57 字數 1799 閱讀 2773

2019/01/02

前幾天就已經用sklearn試過這個資料集,最後也無疾而終,這次算是一次比較完整的測試了多層感知機的演算法。而且通過自己知道的一些內容進行了引數的調優。本篇隨筆用來記錄這次實踐。這部分的實踐參過過另外乙個人的部落格[3]

整體上這次實踐的過程並不是很困難,其**現的一些問題讓我比較奇怪。

直接採用預設的分類器(即直接使用sklearn的引數)。這個在做的時候,達到的準確率為90%,但當我增加相應隱藏層數的時候,並沒有達到提到準確率的效果。我也是很納悶。

在我調整引數的過程中,我發現了這本質的原因是模型過擬合了。所以就採用了正則化的辦法。

本身這個分類器是具有l2正則化係數的,預設是0.0001。然後等我一直調整到1的時候,才真正發現整體的準確率出現了大的改觀。然後將輸入正則化,最後達到的最大準確率是95%。

最後的引數是:兩層隱藏層、正則化係數為1、輸入引數歸一化,然後達到了⬆的效果。

中間還試了別的辦法,比如修改啟用函式,這個直接就降低了很多,好像將正則化的效果給抵消了一樣。

最後的效果我感覺並不是非常好,最讓我疑惑的就是我增加了隱藏層的層數,為什麼沒有達到提公升準確率的效果。(是不是因為這個不確定性的因素

實驗的最後,基本上sklearn內部的引數,我都涉及到了。只有那個梯度下降的部分用的是預設,他官方的文件也顯示是大資料情況下很好的了。

可能這就是我能達到的最好的結果了。

要是想達到更好的結果,估計就得利用cnn這種辦法???我看到了他們有人用這個演算法,達到的準確率的確比較高。

不過我記得,今天看的那個教程中[2],他的準確率好像非常高的(那個也是用了乙個正則化的辦法,並且是一篇**,基本上剩下的幾個未分類的都是非常難分的了)。

中間實驗的時候,我把日誌開啟了,我看到了這個損失函式一直下降的過程,當然中間也有的會在那個地方停頓的。我就很關心這個問題,這個損失函式,除了訓練時候用,其他階段還能給我多少資訊嗎??

我記得今天看過的教程裡面,他介紹了這個東西能展示過擬合。就是雖然損失函式一直在下降,但實際準確率卻沒有提公升。

從這次實踐來看,如果想達到比較好的效果,正則化是非常好的選擇。

另外,我得繼續看看kaggle上同樣使用神經網路的人,他們的選擇又是什麼樣的。

2019/01/02

閱讀文章[2]的時候,發現他提到了sklearn中說明的一些內容。

因為神經網路經常調優的是一些非凸的函式,所以有很多非全域性最優點,所以在調整權值初始值的時候,對後期準確率是由相應調整的。所以這個東西是不是會由相應的影響,暫時不知道。

看到另乙個文章[4],他是利用了自己的乙個分類器,不知道是不是自己實現的,還是進行包裝了。他將最後的輸出進行one-hot編碼了。

我在下午實踐的基礎上,再試試看看能不能有所提公升。

臥槽,我剛才去看我下午實驗的kernel,結果最後他測試的結果是97%,應該是演算法內部的這個不確定性的一些因素導致的。這種東西我得怎麼弄。有點尷尬。這種東西你在**中應該怎麼避免,你給出的結果總不能是偶然性的把。

而且,我試了幾次,都是這個結果,這尼瑪就有點奇怪了。。。

這個問題,以前的時候,我們都是利用交叉驗證的方式,那麼在神經網路中是不是也需要這樣。不過我在kaggle上很少看到有人用這種方式。畢竟這個資料集這麼大。

剛剛測試了以下,就是迴圈10次來實驗,得到的結果基本穩定在95%。。很玄學。。

[1]神經網路分類器

[2]神經網路與深度學習

[3]《使用mlpclassifier搭建神經網路進行分類》

[4]mnist分類

神經網路實踐

inst2vec的實驗中,有許多難以理解的資料處理操作 比如,對資料進行shuffle,對引數進行l2正則化,截斷地產生正態分佈隨機數,對bias置為0,難以理解的原因 取樣上的策略,對為何採用這樣的策略不是很清楚 各種引數的影響 flags的鍋 tensorflow api的影響 tensorfl...

神經網路(1)

一 什麼是神經網路 神經網路模型 knn 於生物體的神經系統,是一組連線的輸入 輸出單元,每個連線都與乙個權重相關聯。神經網路模式可以學習資料的特點,訓練的資料不同,產生的模型不同。應用場景 不知道用什麼數學模型合適 知道應用什麼模型但不知道模型複雜度時可以使用。比如要做分類問題,但屬於非線性的切分...

神經網路 1 快速了解神經網路

常規的神經網路我們可以知道包括 輸入層,隱藏層,輸出層 如 傳播過程為 h x w1 b1 y h w2 b2 需要注意 一系列線性方程的運算最終都可以用乙個線性方程表示。也就是說,上述兩個式子聯立後可以用乙個線性方程表達。對於兩次神經網路是這樣,就算網路深度加到100層,也依然是這樣。這樣的話神經...