卷積神經網絡(CNN)詳解

文章目錄

  • 引言
  • 1.卷積神經網絡(CNN)的誕生背景
  • 2.卷積神經網絡(CNN)介紹
    • 2.1 什么是卷積神經網絡?
    • 2.2 卷積神經網絡(CNN)的基本特征
      • 2.2.1 局部感知(Local Connectivity)
      • 2.2.2 權值共享(Weight Sharing)
  • 3. 卷積神經網絡(CNN)結構
    • 3.1 整體架構
    • 3.2 卷積層(Convolutional Layer)
      • 3.2.1 卷積層涉及的參數:
    • 3.3 池化層(Pooling Layer)
    • 3.4 常用激活函數
      • 3.4.1 激活函數的作用
      • 3.4.2 ReLU 激活函數
      • 3.4.3 Sigmoid 激活函數
      • 3.4.4 Tanh 激活函數
    • 3.5 全連接層(Fully Connected Layer)
    • 3.6 卷積神經網絡的過程
  • 4. 經典CNN架構演進
  • 5. 總結

引言

卷積神經網絡(Convolutional Neural Networks, CNN)是一類包含卷積計算且具有深度結構的前饋神經網絡 (Feedforward Neural Networks),是深度學習(deep learning)的代表算法之一。本文旨在介紹CNN的基本概念和結構,以及CNN網絡架構設計的基本思路。

1.卷積神經網絡(CNN)的誕生背景

在傳統神經網絡處理圖像時,面臨幾個嚴峻挑戰:

  1. 參數爆炸:一張普通1000×1000像素的彩色圖像,全連接層會產生30億個參數
  2. 平移不變性:傳統網絡難以識別位置變化的同一物體
  3. 局部相關性:忽略了圖像中相鄰像素間的緊密關系

受生物視覺皮層啟發,Yann LeCun等人在1989年提出了CNN的雛形,并在1998年開發出著名的LeNet-5用于手寫數字識別。但直到2012年AlexNet在ImageNet競賽中一戰成名,CNN才真正迎來爆發式發展。

2.卷積神經網絡(CNN)介紹

2.1 什么是卷積神經網絡?

卷積神經網絡是多層感知機 (MLP)的變種,由生物學家休博爾和維瑟爾 在早期關于貓視覺皮層的研究發展而來,視覺皮層的細胞存在一個復雜的構造,這些細胞對視覺輸入空間的子區域非常敏感,稱之為感受野

CNN由紐約大學的Yann Lecun(楊立昆)于1998年提出(LeNet-5),其本質是一個多層感知機,成功的原因在于其所采用的局部連接和權值共享的方式:一方面減少了權值的數量使得網絡易于優化;另一方面降低了模型的復雜度、減小了過擬合 的風險。 當網絡的輸入為圖像時,這些優點將表現地更加明顯。

2006年,Hinton提出了深度學習,其主要的觀點是:多隱層的人工神經網絡 具有優異的特征學習能力,學習到的數據更能反映數據的本質特征有利于可視化或分類。大數據和計算機硬件的發展使得深度學習得以推廣和應用。

2012年AlexNet取得ImageNet比賽的分類任務的冠軍,使得卷積神經網絡真正爆發。如今的卷積神經網絡(CNN)是一種帶有卷積結構的深度神經網絡 ,卷積結構可以減少深層網絡占用的內存量,其三個關鍵的操作——局部感受野 、權值共享、pooling層,有效地減少了網絡的參數個數,緩解了模型的過擬合問題。

2.2 卷積神經網絡(CNN)的基本特征

2.2.1 局部感知(Local Connectivity)

在這里插入圖片描述
圖1(a)表示神經網絡中神經元之間的全連接結構,即前后兩層神經元都是彼此相互連接的,這樣可以保證后面一層的每個神經元都能獲取前面一層神經元的所有信息。圖1(b)表示神經元之間進行局部連接,即后面一層的神經元只與前面一層的部分神經元進行連接,這樣后面一層的神經元只能包含前面一層神經元的部分信息。表面上看局部連接似乎損失了部分信息,但實際上后層神經元并沒有損失信息。通過后面一層神經元感知局部信息不僅可以減少網絡需要學習的大量參數,同時可以減少網絡的冗余信息。在圖像領域,如果網絡輸入的是一張圖片,每個神經元在卷積層都進行局部感知圖像信息,經過幾層卷積和池化后再通過卷積可以將這些局部的信息進行綜合起來得到圖像的全局信息。通過局部感知不僅減少了神經網絡的復雜性和參數量,同時減少了對訓練時設備算力的高要求。

下面分析網絡采用局部的神經元連接方式相比于全連接方式,計算量減少了多少。

假設圖像大小為 500 × 500 ,共有 1 0 5 10^5 105 個神經元。

在圖中(a)的全連接中,每個神經元需要與圖像進行全連接,則網絡需要訓練的參數有:

  • 前一層的圖像大小為 500 × 500 =2.5× 1 0 5 10^5 105,然后神經元個數為 1 0 5 10^5 105個,那么全連接需要計算的參數個數為:2.5× 1 0 5 10^5 105 × 1 0 5 10^5 105 = 2.5 × 1 0 10 10^{10} 1010

如果網絡神經元采用圖中(b)的局部連接方式,假設神經元的感受野為 10 × 10,則網絡需要訓練的參數有:

  • 感受野為 10 × 10 ,神經元個數為 1 0 5 10^5 105個,那么需要訓練的參數個數為 10 × 10 × 1 0 5 10^5 105 = 1 0 7 10^7 107

由于神經元個數相同,偏置值的數量也是相同的,故在計算中忽略了偏置值的統計,該操作不影響兩者計算量的比較。通過比較兩種連接方式計算的結果可知,采用局部連接方式的參數量是采用全連接方式的 1 2500 \frac{1}{2500} 25001? 。由此可見,神經元采用局部連接可以減少大量網絡需要學習的參數,降低模型的復雜度。

2.2.2 權值共享(Weight Sharing)

權值共享是卷積神經網絡的另一個特性。在網絡對輸入圖片進行卷積時,對于同一特征的提取,卷積核的參數是共享的,即卷積核中的參數是相同的。在全圖對某一個特征,如邊緣、紋理等進行提取時,所有卷積核參數相同。這種特性大大減少了卷積神經網絡中需要學習的參數,下圖是神經網絡權值共享示意圖。
在這里插入圖片描述
圖中,第 n + 1 層神經元只與第 n層的部分神經元進行連接,該圖中第 n + 1層只與第 n層中的 3 個神經元連接,每一個神經元與上一層的神經元進行連接時,權值是相同的。w1,w2,w3 是不同神經元共享的權值。

權值共享就是說,給一張輸入圖片,用一個卷積核去掃這張圖,卷積核里面的數就叫權重,這張圖每個位置是被同樣的卷積核掃的,所以權重是一樣的,也就是共享。
在這里插入圖片描述
這里面,最左邊的可以理解為是輸入圖片的一部分,而中間的是卷積核,右邊的是得到FeatureMap。這里的動圖演示的是通道數為1的情況(顯示情況下,Channel = 1 一般為灰度圖)。如果是彩色圖像(RGB),那么左邊的通道數為3(即有RGB各3張圖),中間卷積核的通道數也應該是3(對應輸入圖片的RGB 3 通道)。

我們需要注意一下:右邊輸出的FeatureMap的通道數并不是3,而是1。

  • 這是因為,即便輸入特征圖和卷積核都是3通道的,但輸出特征并不是三通道的,而是把這三個通道對應位置上的值進行了相加,最終形成了一個 1通道的輸出特征圖。

而且我們還要注意一個問題,那就是卷積核上的參數是不變的。這就是我們所說的權值共享技巧。如果我們不進行權值共享,那么結果會這樣:
在這里插入圖片描述

3. 卷積神經網絡(CNN)結構

3.1 整體架構

在這里插入圖片描述
上面是一個簡單的 CNN 結構圖, 第一層輸入圖片, 進行卷積(Convolution)操作, 得到第二層特征圖(Feature Map). 對第二層的特征圖進行池化(Pooling)操作, 得到第三層特征圖,重復上述操作得到第五層特征圖, 最后將這特征圖、按行展開連接成向量, 傳入全連接(Fully Connected)層, 全連接層就是一個 BP 神經網絡. 圖中的每個特征圖都可以看成是排列成矩陣形式的神經元, 與 BP神經網絡中的神經元大同小異。

3.2 卷積層(Convolutional Layer)

卷積操作是CNN的靈魂,通過滑動窗口(濾波器/kernel)在圖像上提取局部特征,所以,一幅圖像的一個完整的卷積運算過程為:卷積核以一定的間隔滑動,并對所覆蓋的區域進行卷積運算得到值 z,直至遍歷完整幅圖像。如下圖所示:
在這里插入圖片描述

我們都知道,彩色圖片都是三個通道,也就是說一個彩色圖片會有三個矩陣。加入現在輸入一張彩色圖片的尺寸為7×7×3,最后一維3表示圖像顏色通道,需要注意的是輸入的最后一維要和Filter的最后一維保持一致。Filter為3×3×3,那么這里的卷積核大小為3×3,對應輸入矩陣中每3×3的大小進行一個區域選擇。
計算方式為: 每一個對應位置相乘,最終結果相加,最后不要忘記加上偏置項
如下圖所示:
在這里插入圖片描述
而卷積操作并不是說卷積一次就完事了,而是可以進行多次卷積,得到若干張特征圖,最后進行堆疊。

3.2.1 卷積層涉及的參數:

(1)滑動窗口步長(Stride)
在這里插入圖片描述
從圖中可以看出,不同的步長得到的特征圖大小也不同。當步長較小時,相當于慢慢的提取特征,細粒度的提取特征,特征提取的較為豐富;當步長較大時,相當于大刀闊斧的提取特征,特征數目較少。

(2)濾波器尺寸(通常3×3或5×5)
其實和滑動窗口的尺寸一樣,當卷積核尺寸較小時,相當于慢慢的提取特征,細粒度的提取特征,特征提取的較為豐富;當卷積核尺寸較大時,相當于大刀闊斧的提取特征,特征數目較少。
在一般情況下, 滑動窗口選擇1,卷積核尺寸為3×3.

(3)填充(Padding)
在滑動窗口移動過程中,我們會發現,有些位置的值被多次計算,那么這些值會對最終的結果影響較大,這樣會造成不公平的效果。
解決方法:zero-padding 經過觀察發現,越靠近邊緣位置的值計算重復越少,越靠近中心位置的值計算次數越多,因此可以在輸入特征矩陣外再添加一圈0,使得原本邊界的特征被利用的次數增多,在一定程度上彌補了邊界信息缺失,邊界特征提取不充分的問題。

在這里插入圖片描述
那么為啥添加的是0 ,而不是其他值呢? 如果添加其他值則會再計算過程中對最終的結果產生影響。

(4)卷積核個數
卷積核個數取決于最終在計算過程中得到多少個特征圖,10個特征圖也就對應10個卷積核。

3.3 池化層(Pooling Layer)

隨著模型網絡不斷加深,卷積核越來越多,要訓練的參數還是很多,而且直接拿卷積核提取的特征直接訓練也容易出現過擬合的現象。CNN使用的另一個有效的工具被稱為“池化(Pooling)”出現并解決了上面這些問題,為了有效地減少計算量,池化就是將輸入圖像進行縮小,減少像素信息,只保留重要信息;為了有效地解決過擬合問題,池化可以減少數據,但特征的統計屬性仍能夠描述圖像,而由于降低了數據維度,可以有效地避免過擬合。

給出池化的定義,對不同位置區域提取出有代表性的特征(進行聚合統計,例如最大值、平均值等),這種聚合的操作就叫做 池化,池化的過程通常也被稱為 特征映射 的過程(特征降維)。聽起來很高深,其實簡單地說就是下采樣。

池化的過程如下圖所示:
在這里插入圖片描述

池化主要有兩種,除了 最大值池化(Max Pooling) 之外,還有 平均值池化(Average pooling),CNN中隨機池化使用的較少。

最大池化是對局部的值取最大;平均池化是對局部的值取平均;隨機池化是根據概率對局部的值進行采樣,采樣結果便是池化結果。概念非常容易理解,其示意圖如下所示:
在這里插入圖片描述
三種池化的意義:

  • 最大池化可以獲取局部信息,可以更好保留紋理上的特征。如果不用觀察物體在圖片中的具體位置,只關心其是否出現,則使用最大池化效果比較好。
  • 平均池化往往能保留整體數據的特征,能凸出背景的信息。
  • 隨機池化中元素值大的被選中的概率也大,但不是像最大池化總是取最大值。隨機池化一方面最大化地保證了Max值的取值,一方面又確保了不會完全是max值起作用,造成過度失真。除此之外,其可以在一定程度上避免過擬合。

3.4 常用激活函數

3.4.1 激活函數的作用

非線性建模:激活函數的主要作用是提供網絡的非線性建模能力。在卷積層中,卷積操作是線性的,即對每個像素點賦予一個權值進行加權求和。然而,對于實際樣本來說,不一定是線性可分的。為了解決這個問題,需要引入非線性因素,使網絡能夠學習更復雜的函數關系。(如果只有線性變換,那無論多少層神經元,都能簡化層一層神經元,那神經網絡只是簡單多元線性回歸而已,不能擬合更加復雜的函數。舉個例子,只有線性操作,那么神經網絡永遠無法擬合圓等復雜的曲線圖形,永遠只能表示超平面,無法表示曲面等。)

構建稀疏矩陣:激活函數還可以構建稀疏矩陣,即稀疏性。這個特性可以去除數據中的冗余,最大可能地保留數據的特征。大多數為0的稀疏矩陣可以更有效地表示數據,從而提高模型的泛化能力。

激活函數的非線性是神經網絡發揮作用最重要的因素之一,而對于實際部署,激活函數的實現也是很重要的一個方面,實現的不好對加速效果影響很大,這里主要講幾個部署當中常見的激活函數。

3.4.2 ReLU 激活函數

公式:
在這里插入圖片描述
ReLU比較好部署,小于0的部分為0,大于0的部分為原始值,只需要判斷一下符號位就行。

3.4.3 Sigmoid 激活函數

公式:
在這里插入圖片描述
Sigmoid 函數的輸出映射在(0,1)之間,單調連續,輸出范圍有限,優化穩定,可以用作輸出層。它在物理意義上最為接近生物神經元。

3.4.4 Tanh 激活函數

公式:
在這里插入圖片描述
比Sigmoid函數收斂速度更快,相比Sigmoid函數,其輸出以0為中心。

3.5 全連接層(Fully Connected Layer)

將特征向量轉化為分類概率,分類概率是指將輸入圖片判定的概率。全連接層通常作為CNN的最后一層,對圖像的特征進行分類并得出最終的輸出結果。

全連接層的工作方式是將圖像的特征向量作為輸入,通過一組權值,計算得到一個分類結果。全連接層中的每一個神經元代表一個特定的類別,最后的輸出即為所屬類別的概率。

在這里插入圖片描述
在經過多層的卷積層和池化層操作后,一般會有1個或2個全連接層,給出最后的分類結果。全連接層在整個卷積神經網絡中起到“分類器”的作用,它將學到的特征表示映射到類標簽空間。在實際中,全連接層可由卷積操作實現:對前層是全連接的全連接層可以轉化為卷積核為1×1的卷積;而前層是卷積層的全連接層可以轉化為卷積核為h×w的全局卷積,h和w分別為前層卷積輸出結果的高和寬。

3.6 卷積神經網絡的過程

首先需要一張圖片進行輸入,在輸入之后需要對其進行卷積操作,用于特征提取,在特征提取過后,需要用激活函數對所得到的特征圖進行激活。在激活之后,需要利用池化去進行降低尺寸,在降低尺寸之后,又要重新進行卷積激活,然后再進行池化,就這樣不停循環下去,直到這個神經網絡的規模能夠滿足我們全連接層計算,那我們就進入全連接層,然后在全連接層中進行詳細的計算以及進行分類,這就是卷積神經網絡CNN的一個整體的過程。
在這里插入圖片描述
通過觀察圖,我們發現了幾個特點:

  • 首先每一個卷積過后都連接一個Relu激活函數;
  • 每兩次卷積后進行一次池化操作;
  • 所有的卷積和池化操作完成后進行全連接FC,
  • 全連接層得到最終的分類結果。

4. 經典CNN架構演進

模型年份創新點Top-5錯誤率
LeNet-51998首個成功CNN-
AlexNet2012ReLU/Dropout15.3%
VGG2014小卷積堆疊7.3%
GoogLeNet2014Inception模塊6.7%
ResNet2015殘差連接3.57%

5. 總結

以上就是本篇博客的全部內容了,真的耗費了我不少時間來總結,希望可以和大家一起學習、進步。大家如果發現博客中有表述不正確的的地方還望能及時指正,謝謝大家!
人生海海,山山而川。希望大家能一直保持初心,堅定目標,并為之努力奮斗,終有一天,我們都能成為心中所想成為的人!

本篇博客就到這里啦,大家下篇博客見!

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

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

相關文章

8051單片機所有Keil C51匯編偽指令和C語言關鍵字大全

8051單片機所有Keil C51匯編偽指令和C語言關鍵字大全 作者將狼才鯨創建日期2025-04-21 CSDN閱讀地址:8051單片機所有Keil匯編偽指令和C語言關鍵字的詳細解釋 8051單片機所有Keil匯編偽指令和C語言關鍵字的詳細解釋,在Keil已安裝文件夾D:\Keil_v5\C51\H…

機器視覺的智能手機屏貼合應用

在智能手機制造領域,屏幕貼合工藝堪稱"微米級的指尖芭蕾"。作為影響觸控靈敏度、顯示效果和產品可靠性的關鍵工序,屏幕貼合精度直接決定了用戶體驗。傳統人工對位方式已無法滿足全面屏時代對極窄邊框和超高屏占比的嚴苛要求,而Mast…

運維打鐵:網絡基礎知識

文章目錄 一、網絡架構1. 網絡架構圖2. 各層級功能3. 機房網絡常見問題及解決方案 二、交換技術1. 交換技術基礎2. 交換技術分類3. 廣播域相關概念4. ARP 協議5. 三層交換機6. VLAN(虛擬局域網) 三、路由技術1. 路由器端口類型及功能2. 路由器功能3. 路由…

使用C#和FFmpeg開發RTSP視頻播放器的完整指南

RTSP(Real Time Streaming Protocol)是流媒體技術中廣泛使用的協議,廣泛應用于視頻監控、視頻會議和在線直播等領域。本文將詳細介紹如何使用C#和FFmpeg開發一個功能完整的RTSP視頻播放器,涵蓋從環境搭建到核心功能實現的全部過程。 一、開發環境準備 …

前端基礎之《Vue(9)—混入》

一、什么是混入 1、是一種代碼復用的技巧 Vue組件是由若干選項組成的,向組件中混入可復用的選項。 2、作用 比如我封裝兩個組件,一個是A組件,一個是B組件,發現它里面有相同的選項,就可以用混用的方式來復用它。 二、…

Anything V4/V5 模型匯總

??????二次元風格生成擴散模型-anything-v4.0Stable Diffusion anything-v5-PrtRE模型介紹及使用深度探索 Anything V5:安裝與使用全攻略anything-v5x0.25少兒插畫_v1xyn-ai/anything-v4.0

一天學完Servlet!!!(萬字總結)

文章目錄 前言Servlet打印Hello ServletServlet生命周期 HttpServletRequest對象常用api方法請求亂碼問題請求轉發request域對象 HttpServletResponse對象響應數據響應亂碼問題請求重定向請求轉發與重定向區別 Cookie對象Cookie的創建與獲取Cookie設置到期時間Cookie注意點Cook…

Springboot整合 xxljob,自定義添加、修改、刪除、停止、啟動任務

目錄 一、模擬登錄方式 二、注解方式 三、訪問者調用 四、測試 本次自定義方式分為兩種:一種是模擬登錄,另一種是使用注解的方式 一、模擬登錄方式 修改xxl-job-admin工程,在controller里面添加一個MyApiController,在里面添…

STM32F407使用ESP8266實現阿里云OTA(中)

文章目錄 前言一、程序分析二、程序講解1. main函數2. Get_Version()函數3. esp_Init()函數4. Check_Updata()函數結語前言 從上一章STM32F407使用ESP8266實現阿里云OTA(上)中我們已經對連接阿里云和從阿里云獲取升級包的流程非常的熟悉了。所以本章我們進行STM32的程序開發…

Docker部署DeepSeek常見問題及解決方案

在使用Docker部署DeepSeek的過程中,許多開發者可能會遇到一些常見問題。本文整理了幾個高頻問題及其解決方案,幫助大家更順利地完成部署。 鏡像拉取失敗 問題現象 執行 docker pull 命令時,提示超時或鏡像不存在。 可能原因 1. 網絡環境不穩定,導致連接Docker Hub失敗…

Linux 內核 IPv4 套接字創建機制與協議表管理深度解析

一、inet_create:IPv4 套接字創建的核心引擎 1.1 核心功能與執行流程 inet_create 是 Linux 內核處理 socket(AF_INET, type, protocol) 系統調用的核心實現,主要完成以下關鍵任務: 協議匹配與初始化:根據套接字類型和協議號匹配協議處理模塊 資源分配:創建并初始化套接…

網絡:手寫HTTP

目錄 一、HTTP是應用層協議 二、HTTP服務器 三、HTTP服務 認識請求中的uri HTTP支持默認首頁 響應 功能完善 套接字復用 一、HTTP是應用層協議 HTTP下層是TCP協議,站在TCP的角度看,要提供的服務是HTTP服務。 這是在原來實現網絡版計算器時&am…

論文筆記(七十八)Do generative video models understand physical principles?

Do generative video models understand physical principles? 文章概括Physics-IQ基準數據集評估協議為什么要創建一個真實世界的Physics-IQ數據集模型物理理解的評估指標動作發生在哪里?空間IoU(Spatial IoU)動作在哪里、何時發生&#xf…

AXP2101入門

目錄 核心功能與特性封裝與配置安全與可靠性 AXP2101 是一款由全志公司開發的單電池 NVDC 電源管理集成電路(PMIC),專為鋰離子/鋰聚合物單電池應用設計,適用于需要多通道電源輸出的設備。 核心功能與特性 1.輸入與充電管理 輸入…

DAY8:Oracle高可用架構深度解析與Data Guard單節點搭建實戰

引言 在數據庫領域,高可用性(High Availability)是保障業務連續性的核心要求。Oracle作為企業級數據庫的領導者,提供了RAC、Data Guard、GoldenGate三大核心方案。本文將深入剖析這些技術的實現原理,并手把手指導搭建…

游戲引擎學習第243天:異步紋理下載

倉庫 https://gitee.com/mrxiao_com/2d_game_6 https://gitee.com/mrxiao_com/2d_game_5 回顧并為今天設定階段 目前的開發工作主要回到了圖形渲染相關的部分。我們之前寫了自己的軟件渲染器,這個渲染器性能意外地好,甚至可以以相對不錯的幀率運行過場…

BBRv2,v3 吞吐為什么不如 BBRv1

為什么 BBRv2/3 測試下來吞吐遠不如 2016 年底的 BBRv1,這個事曾經提到過很多次,今天分析一下原理。注意三個事實: BBR 是一種擁塞控制算法;BBR 已經迭代到了 v3 版本;BBRv3 的 “性能” 遠不如 BBRv1. 第二點有點不…

前端項目搭建集錦:vite、vue、react、antd、vant、ts、sass、eslint、prettier、瀏覽器擴展,開箱即用,附帶項目搭建教程

前端項目搭建集錦:vite、vue、react、antd、vant、ts、sass、eslint、prettier、瀏覽器擴展,開箱即用,附帶項目搭建教程 前言:一、Vue項目下載快速通道二、React項目下載快速通道三、BrowserPlugins項目下載快速通道四、項目搭建教…

藍橋杯 15.小數第n位

小數第n位 原題目鏈接 題目描述 我們知道,整數做除法時,有時會得到有限小數,有時會得到無限循環小數。 如果我們把有限小數的末尾加上無限多個 0,它們就具有了統一的形式。 本題的任務是:在上述約定下&#xff0c…

【Docker】在Ubuntu平臺上的安裝部署

寫在前面 docker作為一種部署項目的輔助工具,真是太好用了需要魔法,不然無法正常運行筆者環境:ubuntu22.04 具體步驟 更新系統包索引 sudo apt update安裝必要依賴包 sudo apt install -y apt-transport-https ca-certificates curl softwa…