深度學習入門筆記之——基於 tensorflow 的迴歸代碼實現

深度學習入門筆記系列 ( 四 )

基於 tensorflow 的迴歸代碼實現python

每週一三五 ,相約 7 :35 。算法

本系列將分爲 8 篇 。今天是第四篇 。老是理論有些枯燥 ,今天來動手基於 TF 框架實現兩個簡單的案例 ,以小搏大熟悉一下整個過程 。總體來講 ,訓練神經網絡分爲 3 個步驟 :微信

  1. 定義神經網絡的結構和前向傳播的輸出結果網絡

  2. 定義損失函數以及選擇反向傳播優化的算法框架

  3. 生成會話(tf.Session) 並在訓練數據上反覆運行反向傳播優化算法函數


現以直線擬合和迴歸擬合兩個簡單案例來熟悉以上 3 個步驟 。學習

1.直線的擬合優化

好比咱們如今要用 y = k * x + b (其中 k ,b爲參數)經過屢次的訓練來擬合直線 y = 5 * x + 1 。
3d

根據上述 3 個步驟 ,首先構造線性模型 y = k * x + b ,咱們目的就是經過訓練 ,使得參數 k ,b 去逼近真實值 5 ,1 。以後定義損失函數 ,這裏咱們用的是二次代價函數 ;選用梯度降低法進行優化 。最後在會話(tf.Session)中進行反覆的優化 。具體代碼和註釋以下 :orm


運行結果以下 ,通過 100 輪的訓練優化 ,參數的訓練值已經很逼近真實值了 。

2.線性迴歸

迴歸問題和分類問題不太同樣 ,分類是獲得結果爲 label ,表示類別 ,好比二分類問題等 ,是離散的 ,有限個類別 。迴歸則是連續的 ,具體看下面例子 。

本例中 ,咱們用 y = x*x +noise 隨機生成200個散點 ,用神經網絡訓練 ,擬合出較爲理想的迴歸結果 。

同上述 3 個步驟 ,第一步是定義網絡結構和基本信息 ,這部分代碼造了一個 10 個節點的中間層 ,以後直接鏈接一個節點的輸出 。輸入散點則是利用 numpy 在區間(-0.5,0.5)間生成 200 個散點 ,並在輸出中添加了 noise 信息 。具體以下。

這裏選用的代價函數爲二次代價函數 ,優化算法也是梯度降低法 。以後執行對應的訓練 ,並將結果以繪圖形式輸出 。代碼以下 :

運行該代碼 ,獲得的結果以下 。

本篇兩個案例都比較簡單 ,主要目的在於用兩個簡單實例熟悉神將網絡訓練的基本步驟 。最後 ,若是以爲這個系列不錯 ,記得掃碼關注噢 !

往期推薦:

                                         歡迎您的轉發分享

                             

                                            ▲掃碼關注咱們

                                      我的微信:python_jiang

相關文章
相關標籤/搜索