● 傳統神經網路結構比較簡單,訓練時隨機初始化輸入引數,並開啟迴圈計算輸出結果,與實際結果進行比較從而得到損失函式,並更新變數使損失函式結果值極小,當達到誤差閾值時即可停止迴圈。
● 神經網路的訓練目的是希望能夠學習到乙個模型,實現輸出乙個期望的目標值。學習的方式是在外界輸入樣本的刺激下不斷改變網路的連線權值。
● 傳統神經網路主要分為三類:前饋型神經網路、反饋型神經網路、自組織神經網路。這幾類有不同的學習訓練演算法,可以歸結為有監督學習演算法和無監督學習演算法。
● 前饋神經網路(20世紀80年代)是一種單向多層的網路結構,即資訊是輸入層開始,逐層向乙個方向傳遞,一直到輸出層結束。不調整權重引數。
● bp神經網路也是前饋神經網路,只是它的權重引數由反向傳播的演算法調整的。bp神經網路結構包括輸入層、隱層、輸出層,利用啟用函式來實現從輸入到輸出的任意非線性對映,從而模擬各層神經元之間的互動。啟用函式必須滿足處處可導的條件。
bp神經網路訓練過程的基本步驟:
——初始化網路權重和神經元的閾值,一般通過隨機的方式進行初始化
——前向傳播:計算隱層神經元和輸出層神經元的輸出
——後向傳播:根據目標函式公式修正權值wij
訓練的目的:優化權重和偏差,使損失值最小。
批量訓練:所以樣本訓練完之後,根據損失函式迭代調整權重和偏差。
隨機梯度下降:隨機選擇部分樣本,每輸入乙個樣本,則調整一次權重和偏差。
● 「梯度消失」問題:在優化調整權重引數時,越靠近輸入層,權重越小,通常都是接近於0,所以權重基本上修改的很少或者沒有修改,則導致學習較差或停止。(要選擇正確的啟用函式)
● 啟用函式經常使用sigmoid函式、tanh函式、relu函式,啟用函式通常有以下性質:
— 非線性
— 可微性
— 單調性
— f(x)≈x
— 輸出值範圍
— 計算簡單
— 歸一化
1.sigmoid函式優點:輸出範圍有限,資料在傳遞過程中不容易發散,輸出範圍為(0,1)。
sigmoid函式缺點:梯度下降非常明顯。
2.tanh函式將資料對映到 [-1,1],解決了sigmoid函式輸出值域不對稱問題,但是梯度消失問題仍然存在。
3.relu函式是目前神經網路裡常用的啟用函式,relu函式是線性特點使得其收斂速度比sigmoid、tanh更快,而且沒有梯度飽和的情況出現,計算更加高效。
● 損失函式,也叫代價函式,評價模型對樣本擬合度,**結果與實際值越接近,說明模型的擬合能力越強,對應損失函式的結果就越小。
例:交叉熵損失函式,主要用於在互相排斥的分類任務中,目標為二分類問題,分類誤差越小,則損失越小。
● 學習率
學習率(學習步長)控制每次更新引數的幅度,過高或過低的學習率都可能對模型帶來不良影響,合適的學習率可以加快模型的訓練速度。
常見學習率調整方法:
——基於經驗的手動調整
——固定學習率
——動量法動態調整
——隨機梯度下降
——adam自動調整
● 過擬合
過擬合是指在訓練集上**效果好,但在測試集上**效果差。
常用的防止過擬合的方法有:
——引數範數懲罰:懲罰性成本函式,正則化
——資料增強
——提前終止
——bagging等整合方法
——dropout(漏失,隨機刪除乙個神經元子集,有助於防止神經網路過度依賴單個路徑,增強其健壯性)
——批正則化
——動量(每次僅略微改變方向)
● 模型訓練中的問題
——選擇適當的啟用函式
——權重初始化
——學習率
——週期/訓練迭代次數
——訓練過程視覺化(tensorflow框架)
Python與神經網路0 神經網路介紹
參考 提到神經網路演算法,其實就是人工神經網路演算法neural networks ann 是一種模仿生物大腦神經的工作原理的演算法。神經網路的基本單位是神經元,生物的神經元包含三部分 體細胞 軸突和樹突。樹突成樹狀,用於從接受訊號,軸突用於輸出訊號。抽象成演算法模型就是 在具體執行時,每個輸入變數...
卷積神經網路介紹
在深度學習出現之前,我們必須借助sift,hog等演算法提取具有良好區分性的特徵,再集合svm等機器學習演算法進行影象識別。sift對一定程度內的縮放 平移 旋轉 視角改變 亮度調整等畸變,都具有不變性。cnn作為乙個深度學習架構被提出的最初訴求,是降低對影象資料 預處理的 要求,以及避免複雜可以的...
卷積神經網路介紹
本文由 翻譯並自行補充而來。cnn是ai發展中最令人振奮的進步之一,早期由yann lecun等人提出。卷積神經網路在2012年被krizhevsky開創性的推廣下,在計算機視覺領域取得了廣泛的成果,並且已經取代了傳統的影象處理技術,成為解決計算機視覺問題的最新技術。cnn也正在被研究和應用於其他領...