0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

神經網絡中的損失函數(shù)層和Optimizers圖文解讀

lviY_AI_shequ ? 2017-11-30 16:09 ? 次閱讀

對于許多機器學習算法來說,最終要解決的問題往往是最小化一個函數(shù),我們通常稱這個函數(shù)叫損失函數(shù)。在神經網絡里面同樣如此,損失函數(shù)層(CostLayer)和Optimizers因而應運而生(……),其中:

CostLayer 用于得到損失

Optimizers 用于最小化這個損失

需要一提的是,在神經網絡里面,可以這樣來理解損失:它是輸入 x 經過前傳算法后得到的輸出和真實標簽y 之間的差距。如何定義這個差距以及如何縮小這個差距會牽扯到相當多的數(shù)學知識,我們這里就只講實現(xiàn),數(shù)學層面的內容(有時間的話)(也就是說基本沒可能)(喂)會在數(shù)學系列里面說明。感謝萬能的 tensorflow,它貼心地幫我們定義好了損失函數(shù)和 Optimizers,所以我們只要封裝它們就好了

CostLayer

先定義一個基類:

相當于我們把 Layer 的激活函數(shù)“偷換”成了損失函數(shù)。calculate 函數(shù)用于直接計算損失,它只在復雜模型中分析模型表現(xiàn)時用到,可以暫時不管

再定義實際應用的 CostLayer,我們以應用最廣泛的 CrossEntropy 為例:

這里面用的正是 tensorflow 的內置函數(shù)

Optimizers

這一部分的封裝做得更加沒有營養(yǎng),大部分代碼都僅僅是為了和我自己造的輪子的接口 一致。最關鍵的部分只有兩行:

其中 self._opt 是 tensorflow 幫我們定義好的 Optimizers 中的一個,它的作用也很簡單粗暴:更新 session 中的各個變量以使得損失 x 向最小值邁進

以上,CostLayer 和 Optimizers 的定義、功能和實現(xiàn)就說得差不多了;再加上前幾章,一個完整的、較樸素的神經網絡就完全做好了,它支持如下功能:

自定義激活函數(shù)

任意堆疊 Layer

通過循環(huán)來堆疊重復的結構

通過準確率來評估模型的好壞

這不算是一個很好的模型、但已經具有了基本的雛形,走到這一步可以算是告一段落。接下來如果要拓展的話,大致流程會如下:

在訓練過程中記錄下當前訓練的結果、從而畫出類似這樣的曲線:

讓模型支持比較大規(guī)模數(shù)據(jù)的訓練,它包括幾個需要改進的地方:

我們目前沒有把數(shù)據(jù)分割成一個個小 batch 來訓練我們的模型;但當數(shù)據(jù)量大起來的時候、這種處理是不可或缺的

我們目前做預測時是將整個數(shù)據(jù)扔給模型讓它做前傳算法的。數(shù)據(jù)量比較大時,這樣做會引發(fā)內存不足的問題,為此我們需要分批前傳并在最后做一個整合

我們目前沒有進行交叉驗證,這使我們的模型比較容易過擬合。雖然其實讓用戶自己去劃分數(shù)據(jù)也可以,但留一個接口是好的習慣

最后也是最重要的,當然就是把我們的模型擴展成一個支持 CNN 模型了。這是一個巨坑、且容我慢慢來填……

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 神經網絡
    +關注

    關注

    42

    文章

    4722

    瀏覽量

    100308

原文標題:從零開始學人工智能(6)--Python · 神經網絡(五)· Cost & Optimizer

文章出處:【微信號:AI_shequ,微信公眾號:人工智能愛好者社區(qū)】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    MATLAB神經網絡工具箱函數(shù)

    MATLAB神經網絡工具箱函數(shù)說明:本文檔中所列出的函數(shù)適用于MATLAB5.3以上版本,為了簡明起見,只列出了函數(shù)名,若需要進一步的說明,請參閱MATLAB的幫助文檔。1.
    發(fā)表于 09-22 16:10

    【PYNQ-Z2試用體驗】神經網絡基礎知識

    超過閾值,輸出就一躍而起。但我們一般用S函數(shù)作為激活函數(shù)。如下圖:圖2 該函數(shù)相比階越函數(shù)更加接近現(xiàn)實。神經網絡原理如圖所示是一個具有兩
    發(fā)表于 03-03 22:10

    【案例分享】基于BP算法的前饋神經網絡

    傳播的,不會回流),區(qū)別于循環(huán)神經網絡RNN。BP算法(Back Propagation):誤差反向傳播算法,用于更新網絡的權重。BP神經網絡思想:表面上:1. 數(shù)據(jù)信息的前向傳播,
    發(fā)表于 07-21 04:00

    【案例分享】ART神經網絡與SOM神經網絡

    的拓撲結構,即將高位空間中相似的樣本點映射到網絡輸出的鄰近神經元。SOM神經網絡的輸出
    發(fā)表于 07-21 04:30

    如何構建神經網絡?

    原文鏈接:http://tecdat.cn/?p=5725 神經網絡是一種基于現(xiàn)有數(shù)據(jù)創(chuàng)建預測的計算系統(tǒng)。如何構建神經網絡?神經網絡包括:輸入:根據(jù)現(xiàn)有數(shù)據(jù)獲取輸入的
    發(fā)表于 07-12 08:02

    matlab實現(xiàn)神經網絡 精選資料分享

    神經神經網絡,對于神經網絡的實現(xiàn)是如何一直沒有具體實現(xiàn)一下:現(xiàn)看到一個簡單的神經網絡模型用于訓練的輸入數(shù)據(jù):對應的輸出數(shù)據(jù):我們這里設置:1:節(jié)點個數(shù)設置:輸入
    發(fā)表于 08-18 07:25

    神經網絡在訓練時常用的一些損失函數(shù)介紹

    神經網絡在訓練時的優(yōu)化首先是對模型的當前狀態(tài)進行誤差估計,然后為了減少下一次評估的誤差,需要使用一個能夠表示錯誤函數(shù)對權重進行更新,這個函數(shù)被稱為損失
    發(fā)表于 10-20 17:14

    圖文詳解:神經網絡的激活函數(shù)

    什么是神經網絡激活函數(shù)?激活函數(shù)有助于決定我們是否需要激活神經元。如果我們需要發(fā)射一個神經元那么信號的強度是多少。激活
    的頭像 發(fā)表于 07-05 11:21 ?3713次閱讀
    <b class='flag-5'>圖文</b>詳解:<b class='flag-5'>神經網絡</b>的激活<b class='flag-5'>函數(shù)</b>

    訓練深度學習神經網絡的常用5個損失函數(shù)

    被稱為損失函數(shù)。損失函數(shù)的選擇與神經網絡模型從示例中學習的特定預測建模問題(例如分類或回歸)有關。在本文中我們將介紹常用的一些
    的頭像 發(fā)表于 10-19 11:17 ?779次閱讀
    訓練深度學習<b class='flag-5'>神經網絡</b>的常用5個<b class='flag-5'>損失</b><b class='flag-5'>函數(shù)</b>

    卷積神經網絡層級結構 卷積神經網絡的卷積講解

    卷積神經網絡層級結構 卷積神經網絡的卷積講解 卷積神經網絡(Convolutional Neural Network,CNN)是一種基于深度學習的
    的頭像 發(fā)表于 08-21 16:49 ?7090次閱讀

    神經網絡的激活函數(shù)有哪些

    神經網絡,激活函數(shù)是一個至關重要的組成部分,它決定了神經元對于輸入信號的反應方式,為神經網絡引入了非線性因素,使得
    的頭像 發(fā)表于 07-01 11:52 ?440次閱讀

    卷積神經網絡激活函數(shù)的作用

    卷積神經網絡(Convolutional Neural Networks, CNNs)是深度學習中一種重要的神經網絡結構,廣泛應用于圖像識別、語音識別、自然語言處理等領域。在卷積神經網絡
    的頭像 發(fā)表于 07-03 09:18 ?496次閱讀

    BP神經網絡激活函數(shù)怎么選擇

    ,激活函數(shù)起著至關重要的作用,它決定了神經元的輸出方式,進而影響整個網絡的性能。 一、激活函數(shù)的作用 激活
    的頭像 發(fā)表于 07-03 10:02 ?428次閱讀

    bp神經網絡和卷積神經網絡區(qū)別是什么

    結構、原理、應用場景等方面都存在一定的差異。以下是對這兩種神經網絡的比較: 基本結構 BP神經網絡是一種多層前饋神經網絡,由輸入、隱藏
    的頭像 發(fā)表于 07-03 10:12 ?710次閱讀

    卷積神經網絡和bp神經網絡的區(qū)別在哪

    結構、原理、應用場景等方面都存在一定的差異。以下是對這兩種神經網絡的詳細比較: 基本結構 BP神經網絡是一種多層前饋神經網絡,由輸入、隱藏
    的頭像 發(fā)表于 07-04 09:49 ?8492次閱讀