成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

終于把卷積神經網絡算法搞懂了!!

人工智能
池化層(也稱為下采樣層)用于對卷積層的輸出特征圖進行降采樣,從而減少特征圖的大小,降低計算量和參數量。同時池化層保留了最重要的特征,提高模型對平移、縮放等變換的魯棒性。

大家好,我是小寒

今天給大家介紹一個強大的算法模型,卷積神經網絡算法

卷積神經網絡( CNN)是一種用于圖像識別和處理的深度學習模型,其核心思想是通過卷積運算自動提取圖像中的局部特征,從而實現對圖像的高效處理和分類。

CNN 的設計靈感來源于生物學中的視覺皮層,能夠有效地捕捉圖像的空間和局部特征,具有較好的平移、縮放不變性。

圖片圖片

神經網絡的基本結構

卷積神經網絡由若干層組成,通常包括:

  • 輸入層:負責接收原始輸入數據,例如圖像。
  • 卷積層:通過卷積核(過濾器)進行局部感知,提取特征。每個卷積核掃描輸入圖像的不同區域,生成特征映射。
  • 非線性激活層:通常使用 ReLU 激活函數,添加非線性能力。
  • 池化層:也稱為下采樣層,通常使用最大池化(Max Pooling)或平均池化(Average Pooling),用于減少特征圖的尺寸,降低計算復雜度。
  • 全連接層:類似于傳統的神經網絡層,用于將提取到的特征映射到輸出空間。
  • 輸出層:根據任務類型選擇輸出函數,分類任務中常用 Softmax 函數輸出類別概率。

1.輸入層

輸入層的主要功能是接收來自外部的數據,通常為圖像數據。

在圖像處理中,輸入層接收的圖像通常是三維張量,包括寬度、高度和顏色通道。

例如,一個 28x28 的灰度圖像在輸入層表示為形狀為 (28, 28, 1) 的三維張量,其中 28 表示寬度和高度,1 表示通道數。對于 RGB 彩色圖像,通道數為 3,形狀為 (28, 28, 3)。

2.卷積層

卷積層是 CNN 中最重要的層,用于從輸入數據中提取特征。

卷積層的核心是卷積核(filter,也叫 kernel),它是一個小的矩陣(通常為 3x3 或 5x5),通過在輸入數據上滑動(移動窗口),計算局部區域的加權和,生成特征圖(feature map)。

這些卷積核在整個輸入數據上共享參數,這使得卷積層能夠有效提取局部模式(如邊緣、角點和紋理),并且參數數量較少。

圖片圖片

工作原理

卷積操作的工作過程如下。

  1. 卷積核從輸入圖像的左上角開始,對輸入圖像的局部區域進行加權求和。
  2. 卷積核以步長(stride)的形式滑動,通過滑動窗口逐一計算每個局部區域的加權和,生成一個新的輸出特征圖。
  3. 每個卷積核負責提取不同的特征,一個卷積層通常有多個卷積核,生成多個不同的特征圖。


圖片

超參數

  • 卷積核大小:卷積核的大小決定了感受野的大小,常見的尺寸為 3x3 或 5x5。
  • 步長(Stride):步長決定了卷積核在輸入數據上移動的步幅,步長越大,輸出特征圖的尺寸越小。
  • 填充(Padding):為了保持輸出特征圖的大小,通常在輸入圖像邊界處填充0。這可以控制輸出的尺寸,并避免輸入尺寸縮小過快。

如下圖所示,對于大小為 7x7x3 的輸入,應用兩個卷積核,步長(Stride)為1并且使用了填充。

圖片圖片


3.非線性激活層

卷積層提取了局部特征,但卷積本質上是線性運算。為了增強模型的表達能力,CNN 在每個卷積層后通常會加入非線性激活函數,允許模型學習和表示更復雜的特征。

常用的激活函數包括 ReLU、Sigmoid 和 Tanh,其中 ReLU 是最常見的激活函數。

ReLU 的公式為:

它的作用是將所有負值置為 0,而正值保持不變。這種簡單的非線性函數在實踐中表現出良好的收斂性,且能夠緩解梯度消失問題。

4.池化層

池化層(也稱為下采樣層)用于對卷積層的輸出特征圖進行降采樣,從而減少特征圖的大小,降低計算量和參數量。同時池化層保留了最重要的特征,提高模型對平移、縮放等變換的魯棒性。

常見的池化方法有最大池化和平均池化。

  • 最大池化(Max Pooling)
    最常用的池化方法。在局部區域內取最大值作為該區域的輸出。
    例如,對于一個 2x2 的局部區域,最大池化會輸出這四個值中的最大值。
  • 平均池化(Average Pooling)
    在局部區域內取平均值作為輸出。

圖片圖片

5.全連接層

全連接層與傳統的神經網絡層相似,所有輸入節點與輸出節點之間是全連接的。

全連接層位于卷積層和池化層之后,通常用于將提取到的高維特征映射到分類空間。

例如,經過多次卷積和池化操作后,特征圖被展平(Flatten)為一維向量,傳遞給全連接層進行分類或回歸任務。

圖片圖片


6.輸出層

輸出層是網絡的最后一層,根據任務的不同,輸出層的設計也會有所不同。

在分類任務中,輸出層通常使用 Softmax 激活函數,它將全連接層的輸出轉換為每個類別的概率分布。

Softmax 的輸出值在 0 到 1 之間,并且所有類別的概率和為 1。

案例分享

以下是一個使用 PyTorch 實現的卷積神經網絡進行 Fashion-MNIST 數據集分類的示例代碼。

Fashion-MNIST 是一個圖像分類數據集,包含 10 個類別的時尚物品圖片,每張圖片是 28x28 的灰度圖像。

import torch
import torch.nn as nn
import torch.optim as optim
import torch.nn.functional as F
from torchvision import datasets, transforms

# 定義卷積神經網絡模型
class CNN(nn.Module):
    def __init__(self):
        super(CNN, self).__init__()
        # 第一層卷積,輸入1通道(灰度圖像),輸出32通道,卷積核大小3x3
        self.conv1 = nn.Conv2d(1, 32, 3, 1)
        # 第二層卷積,輸入32通道,輸出64通道,卷積核大小3x3
        self.conv2 = nn.Conv2d(32, 64, 3, 1)
        # 池化層,窗口大小2x2
        self.pool = nn.MaxPool2d(2)
        # 全連接層,將池化后的特征展平后,輸入為64*12*12,輸出為128
        self.fc1 = nn.Linear(64 * 12 * 12, 128)
        # 全連接層,輸出10個類別
        self.fc2 = nn.Linear(128, 10)

    def forward(self, x):
        x = F.relu(self.conv1(x))
        x = F.relu(self.conv2(x))
        x = self.pool(x)
        x = x.view(-1, 64 * 12 * 12)
        x = F.relu(self.fc1(x))
        x = self.fc2(x)
        return x

transform = transforms.Compose([
    transforms.ToTensor(),  
    transforms.Normalize((0.5,), (0.5,)) 
])

# 加載 Fashion-MNIST 數據集
train_dataset = datasets.FashionMNIST('.', train=True, download=True, transform=transform)
test_dataset = datasets.FashionMNIST('.', train=False, download=True, transform=transform)

train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=64, shuffle=True)
test_loader = torch.utils.data.DataLoader(test_dataset, batch_size=1000, shuffle=False)

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

model = CNN().to(device)

criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)

def train(model, device, train_loader, optimizer, epoch):
    model.train()
    for batch_idx, (data, target) in enumerate(train_loader):
        data, target = data.to(device), target.to(device)
        optimizer.zero_grad()  
        output = model(data)  
        loss = criterion(output, target)  
        loss.backward() 
        optimizer.step()

        if batch_idx % 100 == 0:
            print(f'Train Epoch: {epoch} [{batch_idx * len(data)}/{len(train_loader.dataset)}]\tLoss: {loss.item():.6f}')

# 測試函數
def test(model, device, test_loader):
    model.eval()
    test_loss = 0
    correct = 0
    with torch.no_grad():
        for data, target in test_loader:
            data, target = data.to(device), target.to(device)
            output = model(data)
            test_loss += criterion(output, target).item() 
            pred = output.argmax(dim=1, keepdim=True)  
            correct += pred.eq(target.view_as(pred)).sum().item()

    test_loss /= len(test_loader.dataset)
    accuracy = 100. * correct / len(test_loader.dataset)
    print(f'\nTest set: Average loss: {test_loss:.4f}, Accuracy: {correct}/{len(test_loader.dataset)} ({accuracy:.2f}%)\n')

# 訓練模型
epochs = 10
for epoch in range(1, epochs + 1):
    train(model, device, train_loader, optimizer, epoch)
    test(model, device, test_loader)


責任編輯:武曉燕 來源: 程序員學長
相關推薦

2024-10-28 00:38:10

2024-11-15 13:20:02

2024-09-20 07:36:12

2025-02-21 08:29:07

2024-09-12 08:28:32

2024-10-17 13:05:35

神經網絡算法機器學習深度學習

2024-12-12 00:29:03

2024-07-24 08:04:24

神經網絡激活函數

2024-11-07 08:26:31

神經網絡激活函數信號

2024-12-02 01:10:04

神經網絡自然語言DNN

2024-09-26 07:39:46

2024-09-23 09:12:20

2024-10-16 07:58:48

2024-12-03 08:16:57

2024-07-17 09:32:19

2024-11-14 00:16:46

Seq2Seq算法RNN

2021-06-22 09:46:52

神經網絡人工智能深度學習

2024-08-01 08:41:08

2024-10-08 15:09:17

2024-10-08 10:16:22

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲 欧美 日韩 精品 | 亚洲美女在线视频 | 人人色视频 | 国产精品揄拍一区二区 | 欧美日韩在线一区二区 | 精品九九久久 | 久久精品视频网站 | 精品国产网 | 精久久久| 国产欧美精品一区二区 | 欧美日韩精品一区 | 精品网站999www | 一级看片免费视频囗交动图 | 色眯眯视频在线观看 | 成人久久 | 国产精品免费观看视频 | 全免费a级毛片免费看视频免 | 一级一级毛片免费看 | 一级二级三级在线观看 | 日韩中文字幕在线视频 | 国产精品久久久久久中文字 | 久久国产精品免费一区二区三区 | 一级看片| 成人国产免费视频 | 一区二区视屏 | 亚洲欧美综合精品另类天天更新 | 中文字幕视频在线观看 | 亚洲福利在线视频 | 亚洲精品av在线 | 精品欧美乱码久久久久久 | 81精品国产乱码久久久久久 | 成人av一区二区三区 | 九一精品 | 久久久久久黄 | 国产精品电影在线观看 | 激情网五月天 | 国产东北一级毛片 | 国产美女自拍视频 | 成人免费黄色片 | 日韩中文字幕2019 | 超碰免费在线观看 |