假象篇 1 動態可變引數的神經網路

2022-09-05 03:18:08 字數 1985 閱讀 2120

前不久參加了一次比賽,通過這次比賽對神經網路的功能有一些了解。同時我在使用的時候發現了乙個問題,就是神經網路的訓練資料一般是訓練完這種資料後的模型想要**以後的資料,輸入的引數得和之前的訓練資料的個數保持一致才行,這在神經網路模型下應該說是他的乙個缺陷,就是訓練後的模型限制了以後引數的個數,同時,輸出的引數也不能輸出不同個數的引數。

為了解決神經網路的這個缺陷,我在上課的時候想著可以人為地修改神經網路的結構從而解決這個問題,即將訓練後的模型的訓練引數設定為可變的情況,例如在訓練時用的是90*90的,**的時候也可以輸入180*180或50*40這種大小來**,初步的解決方法是將以下的過程融合在神經網路中:

1)首先通過乙個訓練的資料集,遍歷其中範圍最廣的乙個,然後將其輸入引數的大小設定為其最廣的那乙個

3.對於大小大於訓練引數大小的情況:先獲取和原訓練引數大小的求餘值,對將要**值進行隔**值大小除於剛剛的求餘值的最後得到值的位置去掉該值,以達到原訓練引數大小(類似於ps中的去噪點)

那麼根據這個原則寫出來的神經網路,輸入引數是可變的。

對於動態的神經網路,其輸出值應該也是可以變的,這個場景就好比,根據原本神經網路的模型識別一張,原本只能知道這個訓練的模型是有多少比例符合訓練的模型,通過動態的改變輸出引數可以改變為以下的這種識別方案:

例如識別乙個蘋果,神經網路最終輸出的是蘋果而不是**估計值

再例如,用這個網路識別乙隻帶葉子的蘋果,它出來的應該是 新鮮蘋果,而不是估計值。

我想實現動態輸出引數的方式的想法是:

為神經網路建立list容器集合,第乙個list容器集合中儲存的是乙個泛型類 裡面含有基礎的資訊

通過上述我們已經實現了乙個動態的輸入神經網路,那麼假定這個神經網路輸出的是1個引數 ,我們對他們進行訓練,在訓練的過程中我們給他們最終的訓練的標籤集是ist中的index座標

現在任意輸入一張含有蘋果的,然後我們給他指定這張是蘋果,若list集合中沒有存在蘋果這個基礎資訊,第乙個list集合中儲存進蘋果這個基礎資訊,那麼這個時候第乙個list集合中存入的就是 蘋果

有這個基礎資訊後,以後我們輸入n張含有蘋果的進動態輸入的神經網路中進行訓練,那麼它會得到乙個訓練器,以後只要輸入乙個含有蘋果的,他會輸出list中蘋果的index

同樣地重複識別蘋果枝上葉子的這個過程以後,list集合中又多了乙個 蘋果葉子 的基礎資訊,同時訓練器能識別蘋果葉子的index

經過上述兩個訓練之後,對於乙個即含有蘋果枝上含有葉子 又含有蘋果 的這樣一張,這個識別在理論上應該是會輸出 蘋果的index和葉子index的和的均值,為0.5,雖然我們可以通過該值知道這裡面還有蘋果和蘋果葉子。

但是這樣的乙個結果,很明顯還是不符合我們預期要輸出 蘋果 和 蘋果葉子 這兩個引數,而且再將引數提公升至三個的時候,該方法便不適用了

很明顯 輸出的引數是乙個的時候 ,可以確定兩個值。那麼同理 輸出的引數是兩個的時候,可以確定3個值,依此類推

但是在這種情況下,我們考慮的是如何動態輸出神經網路的引數,而不是如何解決這個問題,況且,一開始我們就不知道要輸出的引數是多少。這種情況下,就要借助於我們神奇的宇宙了,宇宙中,行星衛星之間能組成運動系統,行星恆星間能組成衛星系統,恆星又能和它上一級組成系統,依次類推,神經網路不也能如此。

我們在上述已經實現了動態輸入的神經網路,那麼這個時候,我們將神經網路輸出乙個引數輸入到另外的神經網路中,再通過上述的方法進行逐一分級,從而實現動態輸出引數的過程。

一層動態:將訓練後的神經網路儲存到乙個list集合中,現在list集合有所有訓練完的神經網路,及其所屬大類值,及其基本的資訊

二層動態:存有乙個功能,它作為大類別判斷器,他會判斷資訊所屬大類值(可給出多個),這裡的功能是減少運算量

三層動態:根據上述所給出大類值,根據對應大類的神經網路,進行判斷,將判斷值和對應神經網路的index新增到最終結果的list中,並且作為最終結果返回

這樣 神經網路輸出的結果是對應list集合,而list集合又是動態的,list集合含有判斷值,和對應神經網路的index,那麼再用自然語言解析,我們可以得到乙個最終的答案。

這樣我們就實現了 動態輸入引數的神經網路  還有 動態輸出引數的神經網路的集合了

神經網路的引數展開

注 本文是學習吳恩達老師的學習筆記 1.在matlab中如果使用fminunc找出最優引數的話需要傳遞引數initialtheta,但是initialtheta是向量的形式。同時costfunction返回的梯度也是vector的形式。2.而神經網路每層的引數都是以矩陣的形式列出來,而且每層引數對成...

神經網路的引數(Weight)

神經網路中常用的生成隨機數 陣列的函式 解釋tf.random normal 生成正態分佈隨機數 tf.truncated normal 生成去掉過大偏離點 超過偏差 的正太分布的隨機數 tf.random uniform 生成平均分布的隨機數 tf.zeros 全0陣列,tf.zeros 3,2 ...

1 神經網路的分類?

依次是,標準神經網路snn,卷積神經網路 cnn,遞迴神經網路 rnn例如,在之前看到的房價 應用中,我們使用的是標準的神經網路結構,廣告 也是乙個相對標準的神經網路 standard neural networks,以下簡稱 snn 對於影象應用程式,我們經常使用卷積神經網路cnn convolu...