深度學習之全面了解網絡架構

在這篇文章中,我們將和大家探討“深度學習中的網絡架構”這個主題,解釋相關背景知識,并就一些問題進行解答。

我選擇的問題反映的是常見用法,而不是學術用例。我將概括介紹該主題,然后探討以下四個問題:

1. 要進行圖像分類,我應該使用哪種架構?

2. 在時序應用中,我能否重用基于圖像數據訓練的架構?

3. 對于時序回歸,我該如何選擇合適的方法?

4. 對于小型數據集,我應該使用哪種網絡架構?

????◆??

引言

網絡架構定義了深度學習模型的構建方式,更重要的是定義了它的功能。架構會決定:

  • 模型準確度(網絡架構是影響準確度的眾多因素之一)

  • 模型能預測什么

  • 模型期望的輸入和輸出

  • 層的組合以及數據如何流經這些層

大部分人會利用已有的成果,從現成的層組合入手開始訓練。畢竟初次嘗試某件事的話,借鑒前人的工作不失為一個好辦法。

相當一段時間以來,深度學習研究人員都在探索不同的網絡架構和層組合。得益于他們的工作,我們有了 GoogLeNet、ResNet、SqueezeNet 等各種網絡,這些架構都取得了很好的效果。

剛起步時,您可以選擇一個解決類似問題的已有架構,在它的基礎上進行構建,而無需從頭開始。

在選擇網絡架構之前,務必了解您的用例類型以及可用的常見網絡。

????◆??

開始接觸深度學習時,您可能會遇到以下常見架構:

  • 卷積神經網絡 (CNN):

CNN 通常用來處理圖像輸入數據,但也可以用于其他輸入數據,我將在問題 1 中詳細說明。

  • 循環神經網絡 (RNN):

RNN 包含連接,可跟蹤先前信息以進行未來預測。CNN 假定每個輸入是獨立事件,而 RNN 則可以處理可能相互影響的數據序列。例如在自然語言處理中,前面的單詞會影響后續單詞出現的可能性。

  • 長短期記憶 (LSTM) 網絡:

LSTM 網絡是針對序列和信號數據的常用 RNN。我將在問題 3 中進行詳細介紹。

  • 生成式對抗網絡 (GAN):

盡管下面的問題不會涉及這類網絡,但是 GAN 最近越來越火了。GAN 可以基于現有數據生成新數據(想像一下并非現實真人的人像)。我覺得這挺有意思,而且有點未來感;

那么,接下來就開始回答問題!

????◆??

Q1

我需要一個圖像分類模型。我應該使用哪種架構?

很好的問題。先說結論,您或許可以使用 CNN 進行圖像分類。

原因如下。

我們首先談談 CNN 和 LSTM 網絡分別是什么,以及它們的常見用途。

1) CNN

當談到卷積神經網絡時,有些人會說“ConvNet”,但我總覺得我自己這樣說會顯得有點裝。

CNN 由許多層組成,但形式上遵循一種“卷積 | ReLU | 池化”的模式,這會一再重復、反反復復。

這類網絡通常很適合處理圖像分類問題,因為它們非常擅長局部空間模式匹配,而且在圖像特征提取方面通常也優于其他方法。

別忘了,CNN 的核心是卷積。使用一系列過濾器對輸入圖像進行卷積可以突出圖像中的特征,而不會丟失相鄰像素之間的空間關系。

CNN 有很多變體,一些常見配置如下:

串聯網絡

圖片

Alexnet 示例。串聯層排列成一直線。

DAG 網絡

圖片

GoogLeNet 示例。多線多連接是 DAG 的典型特征。

2) LSTM

長短期記憶網絡主要用于時序和序列數據。LSTM 網絡會記住決策之前的部分數據,從而利用數據的上下文更好地作出關聯。

根據經驗,時序數據通常最適合用 LSTM 網絡處理,而圖像數據適合用 CNN。信號數據則是一個與經驗部分吻合的例外。CNN 和 LSTM 網絡都可以用來處理信號數據。我寫過一篇關于深度學習非圖像應用的文章,其中一個示例就是使用 CNN 進行語音識別。

下圖是一個用于分類的簡單 LSTM 網絡架構:

圖片

下圖是一個用于回歸的簡單 LSTM 網絡架構:

圖片

Q2

在時序應用中,我能否重用基于圖像數據訓練的架構?

可以!

您需要將輸出層從 classificationOutputLayer 更改為 regressionOutputLayer,可以跟隨這個簡單的文檔示例進行操作:將分類網絡轉換為回歸網絡

圖片

Q3

實現時序回歸的選擇太多!我該如何選擇合適的架構?

我的第一反應肯定是建議您采用 LSTM 網絡!

但是,其他方法的存在必然有其意義,事實上,某些方法在特定場景下表現會更好。

如果沒有更多背景信息,我就很難具體回答這個問題,因此讓我們逐一分析幾種可能的場景。

1) 時序回歸場景 #1:

我的輸入是低復雜度的時序數據。我想使用一系列數據點來預測未來的事件。

這種情況最好使用機器學習。

2) 時序回歸場景 #2:

我想使用來自多個傳感器的數據預測機器剩余使用壽命(即機器在不得不維修或更換之前可以使用的時間)。

這個問題來自我們在工業自動化領域的客戶,他們需要趕在問題變得危險或處理代價高昂之前先找出問題。

對于這個場景,最好選擇 LSTM 網絡而不是機器學習回歸。這種方法不要求手動識別特征,畢竟在多傳感器的情況下,手動識別特征會是相當艱巨的任務。

3) 時序回歸場景 #3:

我想要對音頻數據進行去噪。

這里可以使用 CNN。這種方法的重點在于,在將信號傳送到網絡之前,先要將信號轉換成圖像。也就是說,您需要通過傅里葉變換或其他時頻操作,將信號轉換為圖像表示。

借助圖像,您可以看到原始信號中難以可視化的特征。這里可以使用為圖像任務設計的預訓練網絡,因為傅里葉變換本質上是圖像。

這個示例演示了如何使用 CNN 對語音進行去噪對于場景 3,我還要補充一點:如果要從時序數據中提取信息并將其用作 CNN 輸入,小波也是一種比較主流的方法。

圖片

圖片

Q4

我想構建一個用來識別圖像的分類器,但是我的數據集有限。有沒有一種網絡架構可以更好地處理小型數據集?

網絡架構和預訓練網絡是密切相關的。預訓練模型是經過訓練的神經網絡。網絡的權重和偏置會根據輸入數據進行調整,因此面對新任務時,可以較快地重新訓練網絡。此過程稱為遷移學習,有時所需的圖像會比較少,適用于小型數據集。另一個可以考慮的方法是通過模擬或數據增強“創造”更多數據。

為幫助您進一步了解各種網絡架構的適用場景,我們匯總了一些提示和竅門,其中還包括有關預訓練網絡的信息

圖片

對于這個問題,我認為無論數據集大小如何,您都可以使用任何您認為合適的網絡,但可以考慮使用預訓練網絡來減少所需的輸入數據量,或考慮采用一些方法來增強數據集。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/210298.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/210298.shtml
英文地址,請注明出處:http://en.pswp.cn/news/210298.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java的I/O演進之路

文章目錄 通信技術整體解決的問題1 I/O 模型基本說明2 I/O模型Java BIOJava NIOJava AIO 3 BIO、NIO、AIO 適用場景分析 通信技術整體解決的問題 局域網內的通信要求。多系統間的底層消息傳遞機制。高并發下,大數據量的通信場景需要。游戲行業。無論是手游服務端&a…

區塊鏈的可拓展性研究【04】分片

分片屬于layer1擴容 區塊鏈分片是一種技術實現,可以將區塊鏈網絡分成多個片段,每個片段負責處理一部分的交易數據。這種方法可以提高區塊鏈網絡的處理速度和吞吐量,降低交易確認時間和費用,同時也可以減輕節點運行負擔。 在傳統…

【出現模塊node_modules里面包找不到】

#pic_center R 1 R_1 R1? R 2 R^2 R2 目錄 一、出現的問題二、解決辦法三、其它可供參考 一、出現的問題 在本地運行 npm run docs:dev之后,出現 Error [ERR_MODULE_NOT_FOUND]: Cannot find package Z:\Blog\docs\node_modules\htmlparser2\ imported from Z:\Blo…

微信小程序base64與十六進制相互轉換(使用btoa、atob方法報undefined)

前言:搜到很多方法都用到了btoa()、atob(),這兩個屬于Window 對象,在瀏覽器端可以直接使用,但是在小程序里面使用會報undefined。看到uniapp和微信小程序官方文檔都提供了下面兩個api,就想著經過ArrayBuffer 對象轉換一…

入門Redis學習總結

記錄之前剛學習Redis 的筆記, 主要包括Redis的基本數據結構、Redis 發布訂閱機制、Redis 事務、Redis 服務器相關及采用Spring Boot 集成Redis 實現增刪改查基本功能 一:常用命令及數據結構 1.Redis 鍵(key) # 設置key和value 127.0.0.1:6379> set …

解釋AI決策,這10個強大的 Python 庫記得收藏!

本文整理了10個常用于可解釋AI的Python庫,方便我們更好的理解AI模型的決策。 什么是XAI? XAI(Explainable AI)的目標是為模型的行為和決策提供合理的解釋,這有助于增加信任、提供問責制和模型決策的透明度。XAI 不僅…

《深入淺出進階篇》洛谷P3197 越獄——集合

洛谷P3197 越獄 題目大意: 監獄有 n 個房間,每個房間關押一個犯人,有 m 種宗教,每個犯人會信仰其中一種。如果相鄰房間的犯人的宗教相同,就可能發生越獄,求有多少種狀態可能發生越獄。 答案對100,003 取模。…

Temu賣家如何獲取流量?Temu新手賣家流量來源哪里?——站斧瀏覽器

流量對于每個平臺來說都是很重要的,那么Temu賣家如何獲取流量?流量來源哪里? Temu賣家如何獲取流量? 1、優化產品標題和描述:在Temu平臺上,買家通常通過搜索關鍵詞來尋找他們感興趣的產品。因此&#xff…

【數電筆記】58-同步D觸發器

目錄 說明: 1. 電路組成 2. 邏輯功能 3. 特性表、特性方程 4. 狀態轉移圖 例題 5. 同步D觸發器的特點 6. 集成同步D觸發器:74LS375 74LS375內部原理 說明: 筆記配套視頻來源:B站本系列筆記并未記錄所有章節,…

服務器部署網易開源TTS | EmotiVoice部署教程

一、環境 ubuntu 20.04 python 3.8 cuda 11.8二、部署 1、docker方式部署 1.1、安裝docker 如何安裝docker,可以參考這篇文章 1.2、拉取鏡像 docker run -dp 127.0.0.1:8501:8501 syq163/emoti-voice:latest2、完整安裝 安裝python依賴 conda create -n Emo…

Web 開發的 20 個實用網站

Web 開發的 20 個實用網站 作為一名前端開發工程師,我們一定使用過很多工具來提高自己的工作效率。它們可以是網站、文檔或 JavaScript 庫。 本文將分享30個有趣的網站。 JavaScript正則表達式可視化工具 https://jex.im/regulex/#!flags&re%5E(a%7Cb)*%3F%…

Centos7及Ubuntu系統安裝指定版本dockerdocker-compose安裝

Centos7系統 docker指定版本安裝【官方文檔步驟】 官方文檔地址:https://docs.docker.com/engine/install/centos/ # 1.安裝yum工具及設置docker-ce鏡像庫 sudo yum install -y yum-utils# 國外的鏡像下載太慢了改成阿里云鏡像庫 sudo yum-config-manager --add-rep…

★102. 二叉樹的層序遍歷

102. 二叉樹的層序遍歷 很巧妙的,又學習了一種層次遍歷的方法,就是說根據當前的隊列的長度去遍歷,遍歷的當前隊列的長度就是該層次的節點個數。 /*** Definition for a binary tree node.* public class TreeNode {* int val;* Tr…

AIGC專題報告:AIGC助力大規模對象存儲服務OSS的能效提升

今天分享的AIGC系列深度研究報告:《AIGC專題報告:AIGC助力大規模對象存儲服務OSS的能效提升》。 (報告出品方:全球軟件開發大會) 報告共計:18頁 結合AI的智能運維助力能效提升 場景1:通過 AI…

SpringMVC-Servlet

依賴 <dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version> </dependency>web.xml 4.0版本 <?xml version"1.0" encoding"UTF-8"?> <…

Python 網絡爬蟲(三):XPath 基礎知識

《Python入門核心技術》專欄總目錄?點這里 文章目錄 1. XPath簡介2. XPath語法2.1 選擇節點2.2 路徑分隔符2.3 謂語2.4 節點關系2.5 運算符3. 節點3.1 元素節點(Element Node)3.2 屬性節點(Attribute Node)

前端vue3——實現二次元人物拼圖校驗

文章目錄 ?前言?vue3拖拽實現拼圖&#x1f496; 思路分解&#x1f496; 布局結構&#x1f496; 拖拽函數&#x1f496; 校驗函數&#x1f496; inscode整體代碼 ?運行效果&#x1f496; 隨機順序&#x1f496; 拖拽中&#x1f496; 校驗失敗&#x1f496; 校驗通過 ?總結?…

IDEA中.java .class .jar的含義與聯系

當使用IntelliJ IDEA這樣的集成開發環境進行Java編程時&#xff0c;通常涉及.java源代碼文件、.class編譯后的字節碼文件以及.jar可執行的Java存檔文件。 1. .java 文件&#xff1a; 1.這些文件包含了Java源代碼&#xff0c;以文本形式編寫。它們通常位于項目中的源代碼目錄中…

蒼穹外賣項目筆記(8)— 緩存商品、購物車功能

前言 代碼鏈接&#xff1a; Echo0701/take-out? (github.com) 1 緩存菜品 1.1 問題說明 【注】很多時候系統性能的瓶頸就在于數據庫這端 1.2 實現思路 通過 Redis 來緩存數據&#xff0c;減少數據庫查詢操作 【注】Redis 基于內存來保存數據的&#xff0c;訪問 Redis 數據…

LeetCode208.實現Trie(前綴樹)

我一開始想題目叫前綴樹&#xff0c;是要用樹嗎&#xff1f;但是不知道用樹怎么寫&#xff0c;然后我就花了10多分鐘&#xff0c;用了HashMap解了。map的key是word&#xff0c;value是一個放了word的所有前綴的set&#xff0c;這樣search方法就非常簡單了&#xff0c;只要看has…