【AI之路】从卷积到卷积神经网络

Ai模型-卷积神经网络 CNN 之所以被称为卷积网络,是因为它在模型的核心部分使用了 卷积操作(Convolution Operation),这种操作擅长捕捉数据中的局部模式(如图像中的边缘、角点等)。ResNet(2015年):提出了 残差网络(Residual Network),通过引入 残差连接(Skip Connections),解决了深层网络中梯度消失的问题,使得模型可以构建非常深的网络(超过 100 层)。局部连接性和共享权重:卷积层通过局部感知(局部连接)和共享权重的机制,大大减少了参数数量,提高了模型的计算效率。 阅读详情

前言

本文记录了在跟随李沐老师的动手学深度学习课程中,CNN部分的要点

“卷积神经网络(convolutional neural network,CNN)是一类强大的、为处理图像数据而设计的神经网络。 基于卷积神经网络架构的模型在计算机视觉领域中已经占主导地位,当今几乎所有的图像识别、目标检测或语义分割相关的学术竞赛和商业应用都以这种方法为基础。”——李沐

数学上的卷积

在数学中,两个函数(比如 f , g : R d → R f, g: \mathbb{R}^d \to \mathbb{R} f,g:Rd→R)之间的“卷积”被定义为

( f ∗ g ) ( x ) = ∫ f ( z ) g ( x − z ) d z . (f * g)(\mathbf{x}) = \int f(\mathbf{z}) g(\mathbf{x}-\mathbf{z}) d\mathbf{z}. (f∗g)(x)=∫f(z)g(x−z)dz.

卷积是当把一个函数“翻转”并移位 x \mathbf{x} x时,测量 f f f和 g g g之间的重叠。

当为离散对象时,积分就变成求和。例如:对于由索引为 Z \mathbb{Z} Z的、平方可和的、无限维向量集合中抽取的向量,我们得到以下定义:

( f ∗ g ) ( i ) = ∑ a f ( a ) g ( i − a ) . (f * g)(i) = \sum_a f(a) g(i-a). (f∗g)(i)=a∑​f(a)g(i−a).

卷积层

卷积层将输入与核矩阵进行交叉相关,加上偏移后得到输出

  1. 核矩阵和偏移是可学习的参数
  2. 核矩阵的大小是超参数

因为卷积核的存在,CNN的参数不会像全连接神经网络那样,随着输入的增加,而使得参数变得巨大导致无法训练

两个原则:

  • 平移不变性:识别器不会因为要识别图片的位置不同,而发生改变。体现在卷积核不变

h i , j = ∑ a , b v i , j , a , b x i + a , j + b h_{i,j}=\sum_{a,b} v_{i,j,a,b}x_{i+a,j+b} hi,j​=a,b∑​vi,j,a,b​xi+a,j+b​

  • 局部性:需局部而非全局信息。体现在卷积核的大小

h i , j = ∑ a = − Δ Δ ∑ b = − Δ Δ v a , b x i + a , j + b h_{i,j}=\sum_{a=-\Delta}^{\Delta} \sum_{b=-\Delta}^{ \Delta}v_{a,b}x_{i+a,j+b} hi,j​=a=−Δ∑Δ​b=−Δ∑Δ​va,b​xi+a,j+b​

二维交叉相关:

(卷积核作为CNN当中的参数,体现了平移不变性)

图像卷积,代码实现

def corr2d(X, K):  #@save
    """计算二维互相关运算,即上图中的操作"""
    h, w = K.shape  # 得到卷积核的大小
    Y = torch.zeros((X.shape[0] - h + 1, X.shape[1] - w + 1))  # 定义卷积运算后的大小
    for i in range(Y.shape[0]):
        for j in range(Y.shape[1]):
            Y[i, j] = (X[i:i + h, j:j + w] * K).sum()
    return Y

填充与步幅

两者都是卷积层的超参数

填充padding:将被卷积核卷积运算后的结果,通过在周围添加额外的行 / 列,填充回原来的形状

填充 p h p_h ph​ 行和 p w p_w pw​ 列,输出形状为

( n h − k h + p h + 1 ) ∗ ( n w − k w + p w + 1 ) (n_h-k_h+p_h+1)*(n_w-k_w+p_w+1) (nh​−kh​+ph​+1)∗(nw​−kw​+pw​+1)

步幅stride:指行、列的滑动步长,可以成倍的减少输出形状。在前面的计算中,步幅默认为1,这会导致需要大量的计算才能得到较小的输出

通常,当垂直步幅为 s h s_h sh​、水平步幅为 s w s_w sw​时,输出形状为
⌊ ( n h − k h + p h + s h ) / s h ⌋ × ⌊ ( n w − k w + p w + s w ) / s w ⌋ . \lfloor(n_h-k_h+p_h+s_h)/s_h\rfloor \times \lfloor(n_w-k_w+p_w+s_w)/s_w\rfloor. ⌊(nh​−kh​+ph​+sh​)/sh​⌋×⌊(nw​−kw​+pw​+sw​)/sw​⌋.

多输入多输出通道

多输入通道

多个输入通道,出现在RGB三原色

  • 让每个通道都有个卷积核,结果是所有卷积操作结果的和

多输出通道

每个输出通道可以识别特定的模式。这一层的输出作为下一层的输入,输入通道组合输入中的模式

1x1卷积层:调整网络层的通道数量(通道融合)和控制模型复杂性

池化层

类比成和卷积层一样有个卷积核,但核内做的不是卷积操作
而是返回滑动窗口中的最大值

  • 池化有最大池化与平均池化
  • 降低卷积层对位置的敏感性,照顾平移不变性这一特点,池化层允许像素出现一定程度的偏移(如何理解?)
  • 有窗口大小、填充、步幅作为超参数
def pool2d(X, pool_size, mode='max'):
    p_h, p_w = pool_size
    Y = torch.zeros((X.shape[0] - p_h + 1, X.shape[1] - p_w + 1))
    for i in range(Y.shape[0]):
        for j in range(Y.shape[1]):
            if mode == 'max':
                Y[i, j] = X[i: i + p_h, j: j + p_w].max()  # 最大
            elif mode == 'avg':
                Y[i, j] = X[i: i + p_h, j: j + p_w].mean()  # 平均
    return Y

LeNet

先使用卷积层来学习图片的空间信息,然后使用全连接层来转换到类别空间

用卷积层代替MLP的另一个好处是:模型更简洁、所需的参数更少

LeNet
逐渐地把空间(高宽)变小,通道变多

#  LeNet网络模型实现
net = nn.Sequential(
    nn.Conv2d(1, 6, kernel_size=5, padding=2), nn.Sigmoid(),
    nn.AvgPool2d(kernel_size=2, stride=2),
    nn.Conv2d(6, 16, kernel_size=5), nn.Sigmoid(),
    nn.AvgPool2d(kernel_size=2, stride=2),
    nn.Flatten(),
    nn.Linear(16 * 5 * 5, 120), nn.Sigmoid(),
    nn.Linear(120, 84), nn.Sigmoid(),
    nn.Linear(84, 10))

网络由两个部分组成:

  • 卷积编码器:由2个卷积层组成
  • 全连接层密集块:由3个全连接层组成

现代经典网络

以下记录的网络模型为CNN的变种,是十分经典的模型

AlexNet

深度卷积神经网络。可以理解为更深更大的LeNet。能够学习更大的图片

LeNet与AlexNet网络对比:

AlexNet由八层组成:五个卷积层、两个全连接隐藏层和一个全连接输出层。 其次,AlexNet使用ReLU而不是sigmoid作为其激活函数。

主要改进:

  • Dropout。因模型过大,用其做正则
  • ReLU。减缓梯度消失
  • MaxPooling
  • 数据增强

内部结构:

  1. 在网络的第一卷积层,使用了一个11*11的更大窗口(卷积核)来捕捉对象。同时,步幅为4,以减少输出的高度和宽度。另外,输出通道的数目远大于LeNet
  2. 使用三个连续的卷积层和较小的卷积窗口。除了最后的卷积层,输出通道的数量进一步增加。在前两个卷积层之后,汇聚层不用于减少输入的高度和宽度
#  AlexNet实现
net = nn.Sequential(
    nn.Conv2d(1, 96, kernel_size=11, stride=4, padding=1), nn.ReLU(),
    nn.MaxPool2d(kernel_size=3, stride=2),
    # 减小卷积窗口,使用填充为2来使得输入与输出的高和宽一致,且增大输出通道数
    nn.Conv2d(96, 256, kernel_size=5, padding=2), nn.ReLU(),
    nn.MaxPool2d(kernel_size=3, stride=2),
    nn.Conv2d(256, 384, kernel_size=3, padding=1), nn.ReLU(),
    nn.Conv2d(384, 384, kernel_size=3, padding=1), nn.ReLU(),
    nn.Conv2d(384, 256, kernel_size=3, padding=1), nn.ReLU(),
    nn.MaxPool2d(kernel_size=3, stride=2),
    nn.Flatten(),
    # 这里,全连接层的输出数量是LeNet中的好几倍。使用dropout层来减轻过拟合
    nn.Linear(6400, 4096), nn.ReLU(),
    nn.Dropout(p=0.5),
    nn.Linear(4096, 4096), nn.ReLU(),
    nn.Dropout(p=0.5),
    # 最后是输出层。由于这里使用Fashion-MNIST,所以用类别数为10,而非论文中的1000
    nn.Linear(4096, 10))

VGG

使用块的网络VGG,更大更深的AlexNet
块的使用导致网络定义的非常简洁。使用块可以有效地设计复杂的网络。

VGG块网络模型的思想会应用到后续的一系列网络中

  • VGG使用可复用的卷积块来构建深度卷积神经网络。不同的VGG模型可通过每个块中卷积层数量和输出通道数量的差异来定义。
  • 不同的卷积块个数和超参数可以得到不同复杂度的变种

如下函数可以构造出一个卷积块,其中包含了若个干卷积层+激活函数,最后再补一个池化层。将这三者绑定在一个块中,批量生成

实现一个VGG块:

#  卷积层的数量、输入通道的数量、输出通道的数量
def vgg_block(num_convs, in_channels, out_channels):
    layers = []
    for _ in range(num_convs):
        layers.append(nn.Conv2d(in_channels, out_channels,
                                kernel_size=3, padding=1))
        layers.append(nn.ReLU())
        in_channels = out_channels
    layers.append(nn.MaxPool2d(kernel_size=2,stride=2))
    return nn.Sequential(*layers)

NiN

网络中的网络,使用了1x1的卷积层

卷积层需要较少的参数:输入通道x输出通道x核大小。而卷积层后的第一个全连接层需要的参数通常非常大

c i ∗ c o ∗ k 2 c_i*c_o*k^2 ci​∗co​∗k2

NiN的出现就是为了解决这个问题,提出不单独使用全连接层

一个NiN块:

  • 一个NiN块为一个卷积层加两个1x1的卷积层(后者分别相当于一个全连接层,对每个像素增加了非线性性)
  • 使用全局AvgPooling层来代替全连接层(不容易过拟合,更少的参数个数)

NiN架构:

  1. 无全连接层
  2. 由交替的NiN块和步幅为2的MaxPooing层组成(逐步减少高宽和增加通道路)
  3. 最后使用全局平均池化层得到输出(其输入通道数是类别数)
# NiN块
def nin_block(in_channels, out_channels, kernel_size, strides, padding):
    return nn.Sequential(
        nn.Conv2d(in_channels, out_channels, kernel_size, strides, padding),
        nn.ReLU(),
        nn.Conv2d(out_channels, out_channels, kernel_size=1), nn.ReLU(),
        nn.Conv2d(out_channels, out_channels, kernel_size=1), nn.ReLU())
# NiN架构
net = nn.Sequential(
    nin_block(1, 96, kernel_size=11, strides=4, padding=0),
    nn.MaxPool2d(3, stride=2),
    nin_block(96, 256, kernel_size=5, strides=1, padding=2),
    nn.MaxPool2d(3, stride=2),
    nin_block(256, 384, kernel_size=3, strides=1, padding=1),
    nn.MaxPool2d(3, stride=2),
    nn.Dropout(0.5),
    # 标签类别数是10
    nin_block(384, 10, kernel_size=3, strides=1, padding=1),
    nn.AdaptiveAvgPool2d((1, 1)),
    # 将四维的输出转成二维的输出,其形状为(批量大小,10)
    nn.Flatten())

GoogleNet

含并行连结的网络,提出了Inception块的概念

Inception块由4条并行的路径组成:

  1. 前三条路径使用窗口大小为 1 × 1 1\times 1 1×1、 3 × 3 3\times 3 3×3和 5 × 5 5\times 5 5×5的卷积层,从不同空间大小中提取信息
  2. 中间的两条路径在输入上执行 1 × 1 1\times 1 1×1卷积(起到降通道数的作用,从而降低模型的复杂性)
  3. 第四条路径使用 3 × 3 3\times 3 3×3最大汇聚层,然后使用 1 × 1 1\times 1 1×1卷积层来改变通道数
  4. 输出的高宽和输入的一致,只增加了通道数。在Inception块中,通常调整的超参数是每层输出通道数
class Inception(nn.Module):
    # c1--c4是每条路径的输出通道数
    def __init__(self, in_channels, c1, c2, c3, c4, **kwargs):
        super(Inception, self).__init__(**kwargs)
        # 线路1,单1x1卷积层
        self.p1_1 = nn.Conv2d(in_channels, c1, kernel_size=1)
        # 线路2,1x1卷积层后接3x3卷积层
        self.p2_1 = nn.Conv2d(in_channels, c2[0], kernel_size=1)
        self.p2_2 = nn.Conv2d(c2[0], c2[1], kernel_size=3, padding=1)
        # 线路3,1x1卷积层后接5x5卷积层
        self.p3_1 = nn.Conv2d(in_channels, c3[0], kernel_size=1)
        self.p3_2 = nn.Conv2d(c3[0], c3[1], kernel_size=5, padding=2)
        # 线路4,3x3最大汇聚层后接1x1卷积层
        self.p4_1 = nn.MaxPool2d(kernel_size=3, stride=1, padding=1)
        self.p4_2 = nn.Conv2d(in_channels, c4, kernel_size=1)

    def forward(self, x):
        p1 = F.relu(self.p1_1(x))
        p2 = F.relu(self.p2_2(F.relu(self.p2_1(x))))
        p3 = F.relu(self.p3_2(F.relu(self.p3_1(x))))
        p4 = F.relu(self.p4_2(self.p4_1(x)))
        # 在通道维度上连结输出
        return torch.cat((p1, p2, p3, p4), dim=1)

  • Inception块借用了NiN块网络的概念,有4条并行路径的子网络
  • 它通过不同窗口形状的卷积层和最大汇聚层来并行抽取信息,并使用 1×1 卷积层减少每像素级别上的通道维数从而降低模型复杂度
  • GoogLeNet是多个Inception块与其它层(卷积层、全连接层)的组合

ResNet

残差网络。通过残差块构建跨层的数据通道

当层出不穷的网络出现后,人们发现越深的网络模型性能越好。但当网络的层数到达一定极限后,模型的性能不升反降。ResNet的出现解决了这一问题

残差网络的核心思想是:每个附加层都应该更容易地包含原始函数作为其元素之一

在残差块中,输入可通过跨层数据线路更快地向前传播

# 残差块实现
class Residual(nn.Module):  #@save
    def __init__(self, input_channels, num_channels, use_1x1conv=False, strides=1):
        super().__init__()
        self.conv1 = nn.Conv2d(input_channels, num_channels,
                               kernel_size=3, padding=1, stride=strides)
        self.conv2 = nn.Conv2d(num_channels, num_channels,
                               kernel_size=3, padding=1)
        if use_1x1conv:
            self.conv3 = nn.Conv2d(input_channels, num_channels,
                                   kernel_size=1, stride=strides)
        else:
            self.conv3 = None
        self.bn1 = nn.BatchNorm2d(num_channels)
        self.bn2 = nn.BatchNorm2d(num_channels)

    def forward(self, X):
        Y = F.relu(self.bn1(self.conv1(X)))
        Y = self.bn2(self.conv2(Y))
        if self.conv3:
            X = self.conv3(X)
        Y += X
        return F.relu(Y)

ResNet在加深的时候,不会让模型变坏。
在 f ( x ) = x + g ( x ) f(x)=x+g(x) f(x)=x+g(x)中,若 g ( x ) g(x) g(x)对loss下降没有影响,就会拿不到梯度,对模型的影响会减小

参考资料

  1. 李沐-动手学深度学习视频
  2. 《动手学深度学习》第6章、第7章
  3. 《神经网络与深度学习》邱锡鹏
人工智能学习:什么是CNN卷积神经网络 CNN(卷积神经网络)是一种擅长处理图像数据的深度学习模型,通过卷积层提取局部特征,池化层降维,全连接层输出结果。其特点包括局部连接、权值共享和强大的特征提取能力,具有平移、缩放不变性。CNN广泛应用于图像识别、视频分析、NLP、生物信息学等领域,在医学影像、语音识别、游戏AI等方面表现突出。随着技术发展,CNN持续推动各领域的创新突破。 阅读详情

相关推荐

人工智能 AI 1:卷积是什么,CNN 卷积神经网络通俗理解

CV模型就是常速或者说是匀速运动的模型。 CNN 卷积神经网络通俗理解 卷积:翻转平移累加求和 图像的卷积操作

ZhangJiqun&191cm&85kg 2109

卷积神经网络 - 汇聚层

例如,若我们拍摄黑白之间轮廓清晰的图像X,并将整个图像向右移动一个像素,即Z[i,j] = X[i,j+1],则新图像Z的输出可能大不相同。通常当我们处理图像时,我们希望逐渐降低隐藏表示的空间分辨率、聚集信息,这样随着我们在神经网络层中层叠的上升,每个神经元对其敏感的感受野(输入)就越大。下面,我们用深度学习框架中内置的二维最大汇聚层,来演示汇聚层中填充和步幅的使用。因此,若我们使用形状为(3,3)的汇聚窗口,那么默认情况下,我们得到的步幅形状为(3,3)与卷积层一样,汇聚层也可以改变输出形状。

yingzi的技术博客 1240

AI人工智能浪潮中卷积神经网络的变革

本文旨在为读者提供卷积神经网络(CNN)的全面技术解析,从其基本原理到最新发展,特别关注CNN在人工智能浪潮中的变革性影响。我们将涵盖CNN的基础概念、核心架构、数学原理、实际应用以及未来趋势。文章将从CNN的基础概念开始,逐步深入到其架构原理和数学基础。然后我们将通过实际代码示例展示CNN的应用,最后讨论CNN的未来发展趋势和挑战。卷积神经网络(CNN):一种专门用于处理具有网格结构数据(如图像)的深度学习模型卷积层:CNN的核心组件,通过滤波器提取输入数据的局部特征池化层。

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 729

深度学习实现——卷积神经网络

介绍卷积和池化

2301_78829965的博客 1289

AI人工智能深度学习算法:卷积神经网络的原理与应用

人工智能 (AI) 是指计算机科学的一个分支,旨在创造能够执行通常需要人类智能的任务的智能机器,例如学习、解决问题和决策。近年来,人工智能取得了显著的进展,这在很大程度上归功于深度学习的崛起,深度学习是一种强大的机器学习形式,它使用具有多个层的深度神经网络来学习数据中的复杂模式。更深层次的网络: 研究人员正在探索更深层次的 CNN,以提高准确性和解决更复杂的任务。新的架构: 新的 CNN 架构正在不断涌现,例如 ResNet、DenseNet 和 MobileNet。无监督学习。

AI大模型应用之禅 762

AI人工智能领域卷积神经网络的实战案例

想象一下,你走在繁华的街道上,周围的广告牌、店铺招牌、行人的穿着打扮等海量视觉信息扑面而来。但我们的大脑能瞬间对这些信息进行处理,比如一眼就认出迎面走来的朋友。在人工智能领域,卷积神经网络(Convolutional Neural Network,简称CNN)就像是赋予计算机这种“视觉”能力的魔法工具。现在,让我们走进CNN的精彩实战世界。

AI架构师小马 802

一文搞懂卷积神经网络:开启人工智能的“视觉之眼”

卷积神经网络(Convolutional Neural Network,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络 ,是深度学习的代表算法之一。它通过卷积层中的卷积核在输入数据上滑动,进行卷积操作,从而提取数据中的特征。这种独特的结构和运算方式,使得 CNN 能够自动学习数据中的特征,大大减少了人工特征工程的工作量。它就像是一个智能的图像翻译器,将原始的图像数据翻译成机器能够理解的特征语言。

大雨淅淅的博客 1467

人工智能入门实战:卷积神经网络(CNN)的应用

1.背景介绍 人工智能(Artificial Intelligence,AI)是计算机科学的一个分支,研究如何让计算机模拟人类的智能。人工智能的主要目标是让计算机能够理解自然语言、学习从经验中、推理和解决问题、认知、理解情感、自主决策等。 卷积神经网络(Convolutional Neural Networks,CNN)是一种深度学习模型

AI天才研究院 337

AI人工智能 卷积神经网络(CNN)

在架构上,普通的神经网络接收输入并通过一系列隐藏层转换它。在神经元的帮助下,每层都连接到另一层。普通神经网络的主要缺点是它们不能很好地扩展到完整的图像。CNN 的体系结构具有三维排列的神经元,称为宽度,高度和深度。当前图层中的每个神经元都连接到前一图层的一小部分输出。它类似于在输入图像上叠加一个。

weixin_51705943的博客 1839

洞察AI人工智能中卷积神经网络的发展趋势

本文旨在为读者提供卷积神经网络(CNN)在人工智能领域的最新发展动态和未来趋势的全面分析。我们将涵盖CNN的基础原理、当前主流架构、优化技术以及在实际应用中的表现,并展望其未来发展路径。文章将从CNN的基础概念开始,逐步深入到当前的技术前沿和未来趋势。我们将通过理论解释、架构分析、代码示例和应用场景等多种方式,全方位展示CNN的发展脉络。卷积神经网络(CNN):一种专门用于处理具有网格结构数据(如图像)的深度学习模型特征提取:从输入数据中识别和提取有意义模式的过程池化(Pooling)

AI 领航者的博客 339

AI人工智能与卷积神经网络的协同发展模式

本文旨在通过生活化的类比,解释人工智能与卷积神经网络的技术原理及其协同进化模式,覆盖从基础概念到最新发展的知识图谱。人工智能(AI):像具备学习能力的虚拟大脑,可以通过经验提升决策能力卷积神经网络(CNN):专门处理网格状数据(如图像)的神经网络结构特征提取:相当于给计算机配备"智能放大镜",识别图像中的关键模式CNN是AI的感知器官:像眼睛一样捕捉世界AI是CNN的智能中枢:赋予视觉以意义数据是共同养料:驱动二者持续进化。

AI云原生与云计算技术学院 949

人工智能中的卷积神经网络(CNN)综述

本文综述了卷积神经网络(CNN)的基本原理、发展历程、主要应用及未来研究方向。CNN通过卷积层、池化层和全连接层实现特征提取与分类,从LeNet-5到ResNet逐步突破深度限制,在图像分类、目标检测等领域取得显著成果。未来研究将聚焦模型压缩、自监督学习和跨模态学习等方向。作为深度学习核心模型,CNN仍将在人工智能领域持续发挥重要作用。

Gupao123的博客 878

EndNote20保姆级安装教程:从下载到汉化一步到位(附闪退解决方案)

本文提供EndNote20的详细安装与汉化教程,涵盖系统准备、分步安装、路径优化及闪退解决方案。针对科研人员的需求,特别优化了中文环境下的使用体验,确保文献管理工具的高效稳定运行。

weixin_30415113的博客 338

详解AI作画原理:从生成对抗网络到卷积神经网络

生成对抗网络和卷积神经网络是AI作画领域最常用的两种技术,它们分别通过对抗训练和特征提取的方式实现了图像的生成和转换。随着人工智能技术的不断发展和进步,我们相信在未来,AI作画技术将会更加成熟和普及,为艺术创作和设计带来更多的可能性和惊喜。通过本文的详细介绍,相信读者对于AI作画的原理和应用已经有了更深入的了解。在未来的学习和研究中,我们期待看到更多创新性的应用和突破性的进展,为AI作画领域注入新的活力和动力。​。

python12345_的博客 2483

Cursor AI编程工具保姆级安装指南:从下载到中文界面设置(含免费额度说明)

本文提供Cursor AI编程工具的保姆级安装与设置教程。详细指导从官网下载、安装到中文界面切换的每一步,并重点说明其每月500次高级模型调用的免费额度策略。通过个性化设置与核心插件推荐,帮助开发者快速上手,提升AI辅助编程效率。

weixin_29191761的博客 668

基于aarch64分析kernel源码 六:kernel_init进程(1号进程)、kthreadd进程(2号进程)

kernel_init进程(1号进程)、kthreadd进程(2号进程)分析

OnlyLove_的博客 763

AI图像识别:基于卷积神经网络CNN

本文从技术原理、应用领域、优势与挑战、研究与发展等方面对AI图像识别:基于卷积神经网络CNN进行了详细阐述。总体而言,基于CNN的图像识别技术具有强大的特征提取能力和泛化能力,已在多个领域取得了显著的应用成果。然而,CNN仍面临数据标注、计算复杂度等问题。未来,随着技术的不断发展,我们有望看到更加高效、实用的图像识别算法。同时,跨领域的研究和合作也将推动AI图像识别技术在更多场景下的应用。为了进一步推动AI图像识别技术的发展,我们建议:1. 加强数据标注和预处理技术的研究,提高数据质量;

2501_92487701的博客 1054

医学超声影像研究——从拒稿到录用:我的UMB投稿实战复盘

本文分享了作者将一篇关于超声影像中肿瘤传统分类方法的研究论文,从被其他期刊拒稿到最终被《Ultrasound in Medicine & Biology》录用的完整实战经验。文章详细复盘了心态调整、精准选刊、针对UMB期刊的稿件精修、投稿系统操作细节以及与审稿人有效沟通回复的全过程,为医学影像领域的科研工作者提供了宝贵的投稿策略与实操指南。

stem5的博客 492

【人工智能领域】- 卷积神经网络(CNN)深度解析

摘要:本文深入解析卷积神经网络(CNN)的工作原理,从生物学视觉皮层研究到AI视觉应用。文章首先介绍CNN的生物学基础——Hubel和Wiesel发现的视觉细胞层级结构,解释简单细胞和复杂细胞如何分别对应CNN的卷积层和池化层。随后详细剖析CNN的核心组件,包括权重共享、局部连接等特性,以及卷积运算的数学原理和三种计算模式。文章还展示了CNN各层次学习到的视觉特征,从基础边缘到完整物体识别的渐进过程,并提供了PyTorch实现示例。最后探讨了ImageNet竞赛对CNN发展的推动作用及其未来展望。

【javatoai17819112191】→Java && python && AI Agent工程师 1258

Agentic AI为教育行业赋能,提示工程架构师解析应用潜力

然而,即便是最先进的 LLMs,在面对复杂、动态、需要持续规划和调整的教育场景时,也常常显得力不从心,它们更像是强大的“问答机器”,而非真正意义上的“学习伙伴”或“教学助手”。在教育场景中,传统的 AI 工具可能只能回答学生提出的特定问题,或者根据预设的规则推送一些学习材料。无论您是教育技术领域的开发者、产品经理,还是一线的教育工作者、教育管理者,抑或是对 AI 教育应用充满好奇的研究者,本文都将为您提供宝贵的 insights,助您把握 Agentic AI 时代教育创新的脉搏。

架构师的AI之路,分享AI应用开发架构的学习与实践。 466

3、无限维系统理论中的算子与半群:概念、定理及应用

本博文深入探讨了无限维系统理论中的两个核心概念:里茨谱算子与卢默-菲利普斯定理。文章首先介绍了里茨基的定义与性质,分析了谱、预解集及特征值在无限维系统中的特性,并详细阐述了里茨谱算子的条件及其生成C0-半群的能力,结合阻尼欧拉-伯努利梁模型展示了其应用。随后,文章介绍了卢默-菲利普斯定理及其推论,通过多个偏微分方程实例(如一阶方程、柔性梁、波动方程和扩散问题)说明如何利用该定理判断算子是否生成压缩半群。此外,还强调了状态空间选择和边界条件对系统适定性的重要影响,并总结了相关问题的解决步骤与方法。

flink9streamer的博客 146

卷积神经网络CNN代码集锦:全面掌握CNN技术,助力AI开发

卷积神经网络CNN代码集锦:全面掌握CNN技术,助力AI开发 【下载地址】卷积神经网络CNN代码集锦 本开源项目汇集了多种编程语言的卷积神经网络(CNN)代码实现,包括C++、Matlab和C#等版本,旨在帮助开发者深入理解并应用CNN技术。无论您是希望优化底层实现、进行学术研究,还是在Windows环境下进行机器学习,...

gitblog_06794的博客 673

Qt应用软件【协议篇】自定义协议处理串口半包贴包

Qt串口数据,半包,贴包,丢包数据处理

小鱼酱的博客 1209

人工智能基础部分10-卷积神经网络CNN初步认识

大家好,我是微学AI,今天给大家介绍一下卷积神经网络,卷积神经网络(Convolutional Neural Network)是一种深度学习模型,也是最近几年受到最多关注的模型之一。它的核心是深度学习的卷积层,可以帮助用户抽取有效的特征,从而进行分类或者识别。这些特征可以是图像,文本,音频或者视频中的相关特征,可以构建许多实用的应用。

微学AI的博客 5240

非技术面试题精选大全

回答提示:一般人回答这个问题过于平常,只说姓名、年龄、爱好、工作经验,这些在简历上都有,其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的事,主要的成就等,这些都可以和学习无关,也可以和学习有关,但要突出积极的个性和做事的能力,说得合情合理企业才会相信。企业喜欢有礼貌的求职者。

吃面爱放香菜的博客 434

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: 【AI之路】感知机—神经网络的基本单元
下一篇: 【AI之路】RNN—序列处理的强者
CodeSlogan
博客等级 码龄6年 4227粉丝 130原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodeSlogan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值