勘探開發人工智能技術:機器學習(6)

0 提綱

7.1 循環神經網絡RNN
7.2 LSTM
7.3 Transformer
7.4 U-Net

1 循環神經網絡RNN

把上一時刻的輸出作為下一時刻的輸入之一.

1.1 全連接神經網絡的缺點

現在的任務是要利用如下語料來給apple打標簽:

  • 第一句話:I like eating apple!(我喜歡吃蘋果!)
  • 第二句話:The Apple is a great company!(蘋果真是一家很棒的公司!)

第一個apple是一種水果,第二個apple是蘋果公司。
全連接神經網絡沒有利用上下文來訓練模型,模型在訓練的過程中,預測的準確程度,取決于訓練集中哪個標簽多一些,如果水果多,就打上水果的標簽,如果蘋果公司多,就打上蘋果公司;顯然這樣的模型不能對未知樣本進行準確的預測。
循環神經網絡 (Recurrent Neural Network, RNN) 用于處理序列數據.

1.2 動機

序列數據中, 前后數據之間不是獨立的, 而是會產生上下文影響. 如:

  • 文本, 機器翻譯一個句子的時候, 不是逐個單詞的翻譯 (你可以發現近 10 年機器翻譯的質量大幅提升, 最近的 chatGPT 更是火得一蹋糊涂);
  • 音頻, 可以在微信中讓機器把你講的話轉成文字;
  • 投票, 雖然股價預測不靠譜, 但根據時序進行預測卻是人們最喜歡干的事情。

1.3 RNN的結構

在這里插入圖片描述
左圖如果不考慮 W W W,就是一個全連接神經網絡:

  • 輸入層:向量 x x x,假設維度為3;
  • 隱藏層:向量 s s s,假設維度為4;
  • 輸出層:向量 o o o,假設維度為2;
  • U U U:輸入層到隱藏層的參數矩陣,維度為 3 × 4 3×4 3×4
  • V V V:隱藏層到輸出層的參數矩陣,維度為 4 × 2 4×2 4×2

左圖如果考慮 W W W,可以展開為右圖:

  • x t ? 1 x_{t?1} xt?1?:表示 t ? 1 t?1 t?1時刻的輸入;
  • x t x_t xt?:表示 t t t時刻的輸入;
  • x t + 1 x_{t+1} xt+1?:表示 t + 1 t+1 t+1時刻的輸入;
  • W W W:每個時間點的權重矩陣;
  • o t o_t ot?:表示 t t t時刻的輸出;
  • s t s_t st?:表示 t t t時刻的隱藏層;

RNN 把前一時刻 (簡便起見, 前一個單詞我也稱為前一時刻) 的輸出, 當作本階段輸入的一部分. 這里 x t ? 1 x_{t?1} xt?1?為前一時刻的輸入, 而 s t ? 1 s_{t-1} st?1? 為前一時刻的輸出. 這樣, 就把數據的前后聯系體現出來了.

1.4 RNN的缺點

每一時刻的隱藏狀態都不僅由該時刻的輸入決定,還取決于上一時刻的隱藏層的值,如果一個句子很長,到句子末尾時,它將記不住這個句子的開頭的內容詳細內容。

2 長短期記憶網絡LSTM

選擇性的存儲.

2.1 LSTM的原理

LSTM是高級的RNN,與RNN的主要區別在于:

  • RNN每個時刻都會把隱藏層的值存下來,到下一時刻再拿出來使用,RNN沒有挑選的能力;
  • LSTM不一樣,它有門控裝置,會選擇性的存儲信息。既有記憶 (重要信息) 的功能, 也有遺忘 (不重要信息) 的功能.

在這里插入圖片描述
LSTM多了三個門:

  • 輸入門:輸入的信息經過輸入門,輸入門的開關決定這一時刻是否會將信息輸入到Memory Cell;
  • 輸出門:每一時刻是否有信息從Memory Cell輸出取決于這一道門;
  • 遺忘門:每一時刻Memory Cell里的值都會經歷一個是否被遺忘的過程.

2.2 討論?

遺忘也是一種功能嗎? 當然是了.
所謂好了傷疤忘了痛, 如果一個人不會遺忘, 很快就精神失常了.
在這里插入圖片描述
詳細分析見:
https://mp.weixin.qq.com/s?__biz=MzU0MDQ1NjAzNg==&mid=2247535325&idx=1&sn=7d805b06916a3da299e20c0445f59a07&chksm=fb3aefd6cc4d66c06b0f2d5779c83861474d2442f9b3387a4b87f45f3218efc92c3335602678&scene=27

3 變形金剛Transformer:注意力機制

定位到感興趣的信息, 抑制無用信息 (怎么有點像 PCA).

3.1 CNN及RNN的缺點

  • RNN:很難實現并行(左圖,計算 b 4 b^4 b4需要串行查詢 a 1 , a 2 , a 3 , a 4 a^1,a^2,a^3,a^4 a1,a2,a3,a4);
  • CNN:可以實現并行,需要堆疊多層的CNN才能學習到整個序列的特征(右圖).

在這里插入圖片描述

3.2 自注意力機制(self-attention)

采用自注意力機制層取代RNN來處理序列,同時實現序列的并行處理。
自注意力機制具體內容見https://blog.csdn.net/search_129_hr/article/details/129522922

在這里插入圖片描述

3.3 注意力機制

數據有重要的數據不重要的數據。在模型處理數據的過程中,如果只關注較為重要的數據部分,忽略不重要的部分,那訓練的速度、模型的精度就會變得更好。
如果給你一張這個圖,你眼睛的重點會聚焦在紅色區域:
在這里插入圖片描述

  • 人看臉
  • 文章看標題
  • 段落看開頭

在訓練過程中,輸入的權重也都是不同的,注意力機制就是學習到這些權重
最開始attention機制在CV領域被提出來,后面廣泛應用在NLP領域。
在這里插入圖片描述

3.4 Tranformer的原理

Transformer 主要分為兩部分:Encoder編碼器 和 Decoder解碼器

  • Encoder:負責把輸入(語言序列)隱射成隱藏層(圖中第 2 步九宮格表示),即把自然語言序列映射為隱藏層的數學表達的過程;
  • Decoder:把隱藏層映射為自然語言序列。

在這里插入圖片描述

4 U-Net

先編碼獲得內部表示, 再解碼獲得目標數據 (怎么有點像矩陣分解).

4.1 U-Net核心思想

U-Net 集編碼-解碼于一體, 是一種常見的網絡架構.
如圖所示, U-Net 就是 U 形狀的網絡, 前半部分 (左邊) 進行編碼, 后半部分 (右邊) 進行解碼.
在這里插入圖片描述
編碼部分, 將一個圖像經過特征提取, 變成一個小矩陣(28 × 28). 前面說過: 深度學習本質上只做一件事情, 就是特征提取.
解碼部分, 將壓縮表示解壓, 又變回大矩陣,完成圖像分割任務.
從思想上, 壓縮與解壓, 這與矩陣分解有幾分類似, 都是把數據進行某種形式的壓縮表示.

輸入的是原始圖像,通過網絡結構后得到的是分割后的圖像。
最特殊的部分是結構的后半部分,該網絡結構沒有全連接層,只采用了卷積層,每個標準的卷積層后面都緊跟著一個Relu激活函數層

4.2 U-Net的應用

自編碼器. 直接將輸入數據作為標簽, 看編碼導致的損失 (更像矩陣分解了).
風格遷移:從一種風格轉換為另一種風格. 如將自然照片轉換成卡通風格, 將地震數據轉換成速度模型 (2010年如果你這么做會被業內人士笑話的).
圖像分割, 或提取圖片的邊緣. 嗯, 這個和轉成卡通風格也差不多.
機器翻譯. 把句子編碼成機器內部的表示 (一種新的世界語言?), 然后轉成其它語言的句子.
輸入一個頭, 輸出多個頭, 就可以做多任務. 如在速度模型反演的同時, 進行邊緣提取, 這樣導致反演的結果更絲滑.

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

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

相關文章

06 json數據解析和列表控件

內容回顧 json數據解析 json ----- 對要傳輸的數據進行封裝的工具 json是由json數組([]) 和 json對象({})在qt中,對JSON數據進行處理(解析和打包) JSON數據處理所要包含的類: QJsonDocument -----它的作用是將數據轉換成json文檔 QJsonArray ---- json數組,就是封裝多個…

User-Agent介紹

User-Agent介紹 引言 在Web開發中,我們經常會遇到需要根據不同的用戶設備或瀏覽器類型來進行特定處理的情況。為了達到這樣的目的,我們可以使用User-Agent這個HTTP頭信息字段來識別用戶的設備和瀏覽器。本篇文章將介紹User-Agent的基本概念、用法以及在…

SpringBoot 學習(02): 從嵌入式系統到嵌入式Servlet SpingBoot 的進化之路

嵌入式系統 計算機操作系統啟動后,會加載一系列的功能和服務,而這些東西都不是開發操作系統的人寫的,如果想讓一個生態快速崛起,那么操作系統的開發人,就要告訴大家,在這個操作系統上,你要遵守…

3.1 Ansible 的使用和配置管理

Ansible 的使用和配置管理 文章目錄 Ansible 的使用和配置管理Ansible 基礎Ansible 模塊和變量主機管理和組織角色和劇本部署應用和配置自動化與批量操作Ansible 常見用例Ansible 最佳實踐和性能優化 大綱 Ansible 簡介和特點 介紹 Ansible 的定義和作用,以及它在配…

【Java】Guava的Striped類。

Striped類,它提供了一種線程安全的分段鎖(Striped Locking)機制。 Striped類可以用于將一組資源或操作分成多個段(Stripes),每個段上都有一個獨立的鎖。這種機制可以在并發訪問時提供更好的性能,因為不同線程可以同時訪問不同的段而不會相互阻塞。通常,Striped鎖適用于…

pytorch3d成功安裝

一、pytorch3d是什么? PyTorch3D的目標是幫助加速深度學習和3D交叉點的研究。3D數據比2D圖像更復雜,在從事Mesh R-CNN和C3DPO等項目時,我們遇到了一些挑戰,包括3D數據表示、批處理和速度。我們開發了許多有用的算子和抽象&#xf…

【Visual Studio Code】--- Win11 安裝 VS Code 超詳細

Win11 安裝 VS Code 超詳細 概述一、下載 Vscode二、安裝 Vscode 概述 一個好的文章能夠幫助開發者完成更便捷、更快速的開發。書山有路勤為徑,學海無涯苦作舟。我是秋知葉i、期望每一個閱讀了我的文章的開發者都能夠有所成長。 一、下載 Vscode Vscode官網 二、…

HTTP和HTTPS協議

目錄 一、HTTP和HTTPS區別🌻 二、有了https還有使用http場景嗎🍊 三、https協議的工作原理💥 四、https協議的優點和缺點🍞 一、HTTP和HTTPS區別🌻 HTTP(Hypertext Transfer Protocol)和HTT…

時序預測 | MATLAB實現基于KNN K近鄰的時間序列預測-遞歸預測未來(多指標評價)

時序預測 | MATLAB實現基于KNN K近鄰的時間序列預測-遞歸預測未來(多指標評價) 目錄 時序預測 | MATLAB實現基于KNN K近鄰的時間序列預測-遞歸預測未來(多指標評價)預測結果基本介紹程序設計參考資料 預測結果 基本介紹 基于KNN K近鄰的時間序列預測-遞歸預測未來(多指標評價) …

macOS - 安裝使用 libvirt、virsh

文章目錄 關于 libvirt使用安裝啟動服務virsh 交互模式virsh 幫助命令 關于 libvirt libvirt 官網: https://libvirt.org/gitlab : https://gitlab.com/libvirt/libvirtgithub : https://github.com/libvirt/libvirt 只讀,gitlab 的鏡像 libvirt是一套…

機器學習之數據集

目錄 1、簡介 2、可用數據集 3、scikit-learn數據集API 3.1、小數據集 3.2、大數據集 4、數據集使用 ?所屬專欄:人工智能 文中提到的代碼如有需要可以私信我發給你😊 1、簡介 當談論數據集時,通常是指在機器學習和數據分析中使用的一組…

ES 概念

es 概念 Elasticsearch是分布式實時搜索、實時分析、實時存儲引擎,簡稱(ES)成立于2012年,是一家來自荷蘭的、開源的大數據搜索、分析服務提供商,為企業提供實時搜索、數據分析服務,支持PB級的大數據。 -- …

logstash 原理(含部署)

1、ES原理 原理 使?filebeat來上傳?志數據,logstash進??志收集與處理,elasticsearch作為?志存儲與搜索引擎,最后使?kibana展現?志的可視化輸出。所以不難發現,?志解析主要還 是logstash做的事情 從上圖中可以看到&#x…

RDMA概述

1. DMA和RDMA概念 1.1 DMA DMA(直接內存訪問)是一種能力,允許在計算機主板上的設備直接把數據發送到內存中去,數據搬運不需要CPU的參與。 傳統內存訪問需要通過CPU進行數據copy來移動數據,通過CPU將內存中的Buffer1移動到Buffer2中。DMA模…

【圖像分類】理論篇 (4)圖像增強opencv實現

隨機旋轉 隨機旋轉是一種圖像增強技術,它通過將圖像以隨機角度進行旋轉來增加數據的多樣性,從而幫助改善模型的魯棒性和泛化能力。這在訓練深度學習模型時尤其有用,可以使模型更好地適應各種角度的輸入。 原圖像: 旋轉后的圖像&…

1.MySQL數據庫的基本操作

數據庫操作過程: 1.用戶在客戶端輸入 SQL 2.客戶端會把 SQL 通過網絡發送給服務器 3.服務器執行這個 SQL,把結果返回給客戶端 4.客戶端收到結果,顯示到界面上 數據庫的操作 這里的數據庫不是代表一個軟件,而是代表一個數據集合。 顯示當前的數據庫 …

Python中的MetaPathFinder

MetaPathFinder 是 Python 導入系統中的一個關鍵組件,它與 sys.meta_path 列表緊密相關。sys.meta_path 是一個包含 MetaPathFinder 實例的列表,這些實例用于自定義模塊的查找和加載邏輯。當使用 import 語句嘗試導入一個模塊時,Python 會遍歷…

Golang通過alibabaCanal訂閱MySQLbinlog

最近在做redis和MySQL的緩存一致性,一個方式是訂閱MySQL的BinLog文件,我們使用阿里巴巴的Canal的中間件來做。 Canal是服務端和客戶端兩部分構成,我們需要先啟動Canal的服務端,然后在Go程序里面連接Canal服務端,即可監…

Maven - 統一構建規范:Maven 插件管理最佳實踐

文章目錄 Available Plugins開源項目中的使用插件介紹maven-jar-pluginmaven-assembly-pluginmaven-shade-pluginShade 插件 - 標簽artifactSetrelocationsfilters 完整配置 Available Plugins https://maven.apache.org/plugins/index.html Maven 是一個開源的軟件構建工具&…

零食量販店熱潮:小縣城的新零售革命

零食量販店熱潮:小縣城的新零售革命 目錄 引言零食量販店的快速崛起零食量販店的運營模式量販零食店在小縣城的影響技術在零食量販店的應用未來展望結論 1. 引言 近年來,零食量販店在我國小縣城迅速發展,成為一種新型的零售模式。在一條街…