深度学习教程(13) | CNN应用:人脸识别和神经风格转换(吴恩达·完整版)

2020-12-13 吴恩达-C4 卷积神经网络-w4 人脸识别和神经风格转换(课后编程1-Face Recognition for the Happy House人脸识别) 使用本地的Face Recognition for the Happy House - v3.ipynb文件。 先在cmd中运行 jupyter notebook 然后打开Face Recognition for the Happy House - v3.ipynb就可以了。 人脸识别和神经风格转换 Face Recognition for the Happy House人脸识别 欢迎来到第四周的第一个编程作业。你将构筑一个人脸识别系统。这里的许多想法来自FaceNet。在课堂中,吴恩达也讨论了 De 阅读详情


第4门课 卷积神经网络,第4周:特殊应用:人脸识别和神经风格转换

本系列为吴恩达老师《深度学习专项课程(Deep Learning Specialization)》学习与总结整理所得,对应的课程视频可以在这里查看。

引言

在ShowMeAI前一篇文章 CNN应用:目标检测 中我们对以下内容进行了介绍:

  • 目标定位
  • 特征点检测
  • 目标检测
  • 边框预测
  • 非极大值抑制
  • YOLO
  • RCNN

本篇主要介绍计算机视觉中其他应用,包括人脸识别和神经风格迁移。

CNN的应用

1.人脸识别

什么是人脸识别? What is Face Recognition?

我们本节要介绍到人脸的一些计算机视觉应用,首先我们对人脸验证(Face Verification)和人脸识别(Face Recognition)做一个区分:

  • 人脸验证:一般指一个一对一问题,只需要验证输入的人脸图像是否与某个已知的身份信息对应。

  • 人脸识别:一个更为复杂的一对多问题,需要验证输入的人脸图像是否与多个已知身份信息中的某一个匹配。

上面2个任务中,一般人脸识别比人脸验证更难一些。因为假设人脸验证系统的错误率是1%,那么在人脸识别中,输出分别与K个模板都进行比较,则相应的错误率就会增加,约K%。模板个数越多,错误率越大。

1.1 One-Shot 学习

One-shot学习 One-shot Learning

人脸识别所面临的一个挑战是要求系统只采集某人的一个面部样本,就能快速准确地识别出这个人,即只用一个训练样本来获得准确的预测结果。这被称为One-Shot学习。

One-shot learning对于数据库中的 N N N个人,对于每张输入图像,Softmax输出 N + 1 N+1 N+1种标签(N个人+都不是=N+1种类别),这种处理方法有两个缺点:

  • 每个人只有一张图片,训练样本少,构建的CNN网络不够健壮。
  • 若数据库增加另一个人,输出层Softmax的维度就要发生变化,相当于要重新构建CNN网络,使模型计算量大大增加,不够灵活。

为了解决One-shot学习的问题,引入了相似函数(similarity function)。相似函数表示两张图片的相似程度,用 d ( i m g 1 , i m g 2 ) d(img1,img2) d(img1,img2)来表示。若 d ( i m g 1 , i m g 2 ) d(img1,img2) d(img1,img2)较小,则表示两张图片相似,是同一个人;若 d ( i m g 1 , i m g 2 ) d(img1,img2) d(img1,img2)较大,则表示两张图片不是同一个人。

相似函数定义及判定规则如下:

人脸识别

S i m i l a r i t y = d ( i m g 1 , i m g 2 ) Similarity = d(img1, img2) Similarity=d(img1,img2)

  • d ( i m g 1 , i m g 2 ) ≤ τ d(img1,img2)\leq \tau d(img1,img2)≤τ则判定图片相似
  • d ( i m g 1 , i m g 2 ) > τ d(img1,img2)> \tau d(img1,img2)>τ则判定图片不同

具体的,在人脸识别问题中,会计算测试图片与数据库中 K K K个目标的相似函数,取其中 d ( i m g 1 , i m g 2 ) d(img1,img2) d(img1,img2)最小的目标为匹配对象。若所有的 d ( i m g 1 , i m g 2 ) d(img1,img2) d(img1,img2)都很大,则表示数据库没有这个人。

1.2 Siamese 网络

Siamese 网络 Siamese network

我们在前面的内容里,看到CNN对于图像有很好的表征能力,训练好的模型可以通过网络层次计算对图像做非常有效的向量化表征,基于此基础我们可以构建图像相似度度量学习的网络,这就是著名的Siamese 网络,它是一种对两个不同输入运行相同的卷积网络,然后对它们的结果进行比较的神经网络。

Siamese网络的大致结构如下:

人脸识别

上图中2张图片 x ( 1 ) x^{(1)} x(1)、 x ( 2 ) x^{(2)} x(2)分别输入两个相同的卷积网络中,经过全连接层后不再进行Softmax,而是得到特征向量 f ( x ( 1 ) ) f(x^{(1)}) f(x(1))、 f ( x ( 2 ) ) f(x^{(2)}) f(x(2))。

这时,可以通过各自网络层的输出向量之差的范数来表示两幅图片的差异度:

d ( x ( 1 ) , x ( 2 ) ) = ∣ ∣ f ( x ( 1 ) ) − f ( x ( 2 ) ) ∣ ∣ 2 2 d(x^{(1)}, x^{(2)}) = ||f(x^{(1)}) - f(x^{(2)})||^2_2 d(x(1),x(2))=∣∣f(x(1))−f(x(2))∣∣22​

注意到,在Siamese网络中,不同图片使用的是同一套CNN网络结构和参数。我们会训练网络,不断调整网络参数,使得属于同一人的图片之间 d ( x ( 1 ) , x ( 2 ) ) d(x^{(1)},x^{(2)}) d(x(1),x(2))很小,而不同人的图片之间 d ( x ( 1 ) , x ( 2 ) ) d(x^{(1)},x^{(2)}) d(x(1),x(2))很大。最终:

  • 若 x ( i ) x^{(i)} x(i)、 x ( j ) x^{(j)} x(j)是同一个人,则 ∣ ∣ f ( x ( 1 ) ) − f ( x ( 2 ) ) ∣ ∣ 2 ||f(x^{(1)})-f(x^{(2)})||^2 ∣∣f(x(1))−f(x(2))∣∣2较小
  • 若 x ( i ) x^{(i)} x(i)、 x ( j ) x^{(j)} x(j)不是同一个人,则 ∣ ∣ f ( x ( 1 ) ) − f ( x ( 2 ) ) ∣ ∣ 2 ||f(x^{(1)})-f(x^{(2)})||^2 ∣∣f(x(1))−f(x(2))∣∣2较大

相关论文:Taigman et al., 2014, DeepFace closing the gap to human level performance

1.3 Triplet 损失

Triplet 损失

回到人脸识别的任务,要构建出合适的CNN模型,我们需要引入Triplet Loss这个损失函数。

Triplet Loss需要每个样本包含三张图片:靶目标(Anchor)、正例(Positive)、反例(Negative),所以它也译作「三元组损失」。

人脸识别

如图所示,靶目标和正例是同一人,靶目标和反例不是同一人。Anchor和Positive组成一类样本,Anchor和Negative组成另外一类样本。

我们希望前面提到的Siamese网络中的CNN输出图像表征 f ( A ) f(A) f(A)接近 f ( D ) f(D) f(D),即 ∣ ∣ f ( A ) − f ( D ) ∣ ∣ 2 ||f(A)-f(D)||^2 ∣∣f(A)−f(D)∣∣2尽可能小,而 ∣ ∣ f ( A ) − f ( N ) ∣ ∣ 2 ||f(A)-f(N)||^2 ∣∣f(A)−f(N)∣∣2尽可能大,数学上满足:

∣ ∣ f ( A ) − f ( P ) ∣ ∣ 2 ≤ ∣ ∣ f ( A ) − F ( N ) ∣ ∣ 2 ||f(A)-f(P)||^2\leq ||f(A)-F(N)||^2 ∣∣f(A)−f(P)∣∣2≤∣∣f(A)−F(N)∣∣2

∣ ∣ f ( A ) − f ( P ) ∣ ∣ 2 − ∣ ∣ f ( A ) − F ( N ) ∣ ∣ 2 ≤ 0 ||f(A)-f(P)||^2-||f(A)-F(N)||^2\leq 0 ∣∣f(A)−f(P)∣∣2−∣∣f(A)−F(N)∣∣2≤0

上述不等式约束有个问题:如果所有的图片都是零向量,即 f ( A ) = 0 , f ( P ) = 0 , f ( N ) = 0 f(A)=0,f(P)=0,f(N)=0 f(A)=0,f(P)=0,f(N)=0,那么上述不等式也满足。但是这对我们进行人脸识别没有任何作用。

我们希望得到 ∣ ∣ f ( A ) − f ( P ) ∣ ∣ 2 ||f(A)-f(P)||^2 ∣∣f(A)−f(P)∣∣2远小于 ∣ ∣ f ( A ) − F ( N ) ∣ ∣ 2 ||f(A)-F(N)||^2 ∣∣f(A)−F(N)∣∣2。所以,我们添加一个超参数 α \alpha α,且 α > 0 \alpha>0 α>0,对不等式约束修改如下:

∣ ∣ f ( A ) − f ( P ) ∣ ∣ 2 − ∣ ∣ f ( A ) − F ( N ) ∣ ∣ 2 ≤ − α ||f(A)-f(P)||^2-||f(A)-F(N)||^2\leq -\alpha ∣∣f(A)−f(P)∣∣2−∣∣f(A)−F(N)∣∣2≤−α

∣ ∣ f ( A ) − f ( P ) ∣ ∣ 2 − ∣ ∣ f ( A ) − F ( N ) ∣ ∣ 2 + α ≤ 0 ||f(A)-f(P)||^2-||f(A)-F(N)||^2+\alpha \leq 0 ∣∣f(A)−f(P)∣∣2−∣∣f(A)−F(N)∣∣2+α≤0

不等式中的 α \alpha α也被称为边界margin,和支持向量机中的margin类似(详细算法可以参考ShowMeAI文章 SVM模型详解)。举个例子,若 d ( A , P ) = 0.5 d(A,P)=0.5 d(A,P)=0.5, α = 0.2 \alpha=0.2 α=0.2,则 d ( A , N ) ≥ 0.7 d(A,N)\geq0.7 d(A,N)≥0.7。

接下来,基于A,P,N三张图片,就可以定义Loss function为:

L ( A , P , N ) = m a x ( ∣ ∣ f ( A ) − f ( P ) ∣ ∣ 2 − ∣ ∣ f ( A ) − F ( N ) ∣ ∣ 2 + α ,   0 ) L(A,P,N)=max(||f(A)-f(P)||^2-||f(A)-F(N)||^2+\alpha,\ 0) L(A,P,N)=max(∣∣f(A)−f(P)∣∣2−∣∣f(A)−F(N)∣∣2+α, 0)

那么对于m组训练样本的数据集,我们的cost function为:

J = ∑ i = 1 m L ( A ( i ) , P ( i ) , N ( i ) ) J=\sum_{i=1}^mL(A^{(i)},P^{(i)},N^{(i)}) J=i=1∑m​L(A(i),P(i),N(i))

关于训练样本,必须保证同一人包含多张照片,否则无法使用这种方法。例如10k张照片包含1k个不同的人脸,则平均一个人包含10张照片。这个训练样本是满足要求的。

数据准备完毕之后,就可以使用梯度下降算法,不断训练优化CNN网络参数,让我们数据集上的cost function不断减小接近0。

一些训练细节:

① 同一组训练样本,A,P,N的选择尽可能不要使用随机选取方法。

  • 因为随机选择的A与P一般比较接近,A与N相差也较大,毕竟是两个不同人脸。
  • 这样的话,也许模型不需要经过复杂训练就能实现这种明显识别,但是抓不住关键区别。

② 最好的做法是人为选择A与P相差较大(例如换发型,留胡须等),A与N相差较小(例如发型一致,肤色一致等)。

  • 这种人为地增加难度和混淆度会让模型本身去寻找学习不同人脸之间关键的差异,「尽力」让 d ( A , P ) d(A,P) d(A,P)更小,让 d ( A , N ) d(A,N) d(A,N)更大,即让模型性能更好。

如下为一些A、P、N的例子:

人脸识别

相关论文:Schroff et al., 2015, FaceNet: A unified embedding for face recognition and clustering

1.4 人脸验证与二分类模式

面部验证与二分类 Face Verification and Binary Classification

除了Triplet损失函数,二分类结构也可用于学习参数以解决人脸识别问题。其做法是输入一对图片,将两个Siamese网络产生的特征向量输入至同一个Sigmoid单元,输出1则表示是识别为同一人,输出0则表示识别为不同的人。

人脸识别

在上述网络中,每个训练样本包含两张图片。通过Siamese网络把人脸识别问题转化成了一个二分类问题。引入逻辑输出层参数 w w w和 b b b,输出 y ^ \hat y y^​表达式为:

y ^ = σ ( ∑ k = 1 K w k ∣ f ( x ( i ) ) k − f ( x ( j ) ) k ∣ + b ) \hat y=\sigma(\sum_{k=1}^Kw_k|f(x^{(i)})_k-f(x^{(j)})_k|+b) y^​=σ(k=1∑K​wk​∣f(x(i))k​−f(x(j))k​∣+b)

其中参数 w k w_k wk​和 b b b都是通过梯度下降算法迭代训练得到。

y ^ \hat y y^​的另外一种表达式为:

y ^ = σ ( ∑ k = 1 K w k ( f ( x ( i ) ) k − f ( x ( j ) ) k ) 2 f ( x ( i ) ) k + f ( x ( j ) ) k + b ) \hat y=\sigma(\sum_{k=1}^Kw_k\frac{(f(x^{(i)})_k-f(x^{(j)})_k)^2}{f(x^{(i)})_k+f(x^{(j)})_k}+b) y^​=σ(k=1∑K​wk​f(x(i))k​+f(x(j))k​(f(x(i))k​−f(x(j))k​)2​+b)

上式被称为 χ \chi χ方公式,也叫 χ \chi χ方相似度。

训练好上述模型后,进行人脸识别的常规方法是测试图片与模板分别进行网络计算,编码层输出比较,计算二分类概率结果。

为了减少计算量,可以提前进行预计算:提前将数据库每个模板的编码层输出 f ( x ) f(x) f(x)保存下来。这个过程可以并行,而且因为是离线过程,对于时效性要求并没有那么高。

实际测试预估时,库内的人脸编码都已计算好,只需要计算测试图片的网络输出,得到的 f ( x ( i ) ) f(x^{(i)}) f(x(i))直接与存储的模板 f ( x ( j ) ) f(x^{(j)}) f(x(j))进行下一步的计算即可,总计算时间减小了接近一半。

这种方法也可以应用在之前提到的triplet loss网络中。

2.神经风格迁移

什么是神经风格转换? What is Neural Style Transfer?

神经风格迁移(Neural style transfer)将参考风格图像的风格「迁移」到另外一张内容图像中,生成具有其特色的图像。如下是几个神经风格迁移的例子:

神经风格迁移

后续的方法介绍和推导中:我们会用 C C C表示内容图片, S S S表示风格图片, G G G表示生成的图片。

2.1 深度卷积网络学到了什么

什么是深度卷积网络? What Are Deep Convnets Learning?

想要理解如何实现神经风格转换,首先要理解在输入图像数据后,一个深度卷积网络从中都学到了些什么。我们借助可视化来做到这一点。

典型的CNN网络结构如下:

神经风格迁移

我们从第1个隐层开始可视化解释,我们遍历所有训练样本,找出让该层激活函数输出最大的9块图像区域;然后再找出该层的其它单元(不同的滤波器通道)激活函数输出最大的9块图像区域;最后共找 9 9 9次,得到 9 × 9 9 \times 9 9×9的图像如下所示,其中每个 3 × 3 3 \times 3 3×3区域表示一个运算单元。

神经风格迁移

上图表明,第1层隐层检测的是原始图像的边缘和颜色阴影等简单信息。用同样的方法去操作CNN的后续隐层,随着层数的增加,捕捉的区域更大,特征逐步变得复杂,从边缘到纹理再到具体物体。

神经风格迁移

相关论文:Zeiler and Fergus., 2013, Visualizing and understanding convolutional networks

2.2 代价函数

代价函数 Cost Function

神经风格迁移生成图片G的代价函数由两部分组成: C C C与 G G G的内容相似程度和 S S S与 G G G的风格相似程度。其中, α \alpha α、 β \beta β是超参数,用来调整相对比重。

神经风格迁移

神经风格迁移的算法步骤如下所示:

神经风格迁移

  • 随机生成图片 G G G的所有像素点。
  • 使用梯度下降算法使代价函数最小化,以不断修正 G G G的所有像素点,使G逐渐有C的内容和G的风格。

相关论文:Gatys al., 2015. A neural algorithm of artistic style

(1) 内容代价函数

内容代价函数 Content Cost Function

上述代价函数包含一个内容代价部分和风格代价部分。我们先看内容代价函数 J c o n t e n t ( C , G ) J_{content}(C, G) Jcontent​(C,G),它表示图片 C C C和图片 G G G之间的内容相似度。我们一般基于一个中间层 l l l层的激活函数输出 a ( C ) [ l ] a^{(C)[l]} a(C)[l] 与 a ( G ) [ l ] a^{(G)[l]} a(G)[l] 来衡量 C C C和 G G G之间的内容相似度。

具体的 J c o n t e n t ( C , G ) J_{content}(C, G) Jcontent​(C,G)计算过程如下:

  • 使用一个预训练好的CNN(例如VGG);
  • 选择一个隐藏层 l l l来计算内容代价。 l l l太小则内容图片和生成图片像素级别相似, l l l太大则可能只有具体物体级别的相似。因此, l l l一般选一个中间层;
  • 设 a ( C ) [ l ] a^{(C)[l]} a(C)[l]、 a ( G ) [ l ] a^{(G)[l]} a(G)[l]为 C C C和 G G G在 l l l层的激活,则有:

J c o n t e n t ( C , G ) = 1 2 ∣ ∣ ( a ( C ) [ l ] − a ( G ) [ l ] ) ∣ ∣ 2 J_{content}(C, G) = \frac{1}{2}||(a^{(C)[l]} - a^{(G)[l]})||^2 Jcontent​(C,G)=21​∣∣(a(C)[l]−a(G)[l])∣∣2

a ( C ) [ l ] a^{(C)[l]} a(C)[l]和 a ( G ) [ l ] a^{(G)[l]} a(G)[l]越相似,则 J c o n t e n t ( C , G ) J_{content}(C, G) Jcontent​(C,G)越小。

(2) 风格代价函数

风格代价函数 Style Cost Function

接下来我们要讨论风格代价函数,在CNN网络模型中,图片的风格可以定义成第l层隐藏层不同通道间激活函数的乘积(相关性)。

神经风格迁移

每个通道提取图片的特征不同,如下图:

神经风格迁移

  • 标为黄色的通道提取的是图片的垂直纹理特征,标为蓝色的通道提取的是图片的背景特征(橙色)。
  • 计算这两个通道的相关性,相关性的大小,即表示原始图片既包含了垂直纹理也包含了该橙色背景的可能性大小。
  • 通过CNN,「风格」被定义为同一个隐藏层不同通道之间激活值的相关系数,因其反映了原始图片特征间的相互关系。

对于风格图像 S S S,选定网络中的第 l l l层,我们定义图片的风格矩阵(style matrix)为:

G k k ′ [ l ] ( S ) = ∑ i = 1 n H [ l ] ∑ j = 1 n W [ l ] a i j k [ l ] ( S ) a i j k ′ [ l ] ( S ) G^{[l](S)}_{kk\prime} = \sum^{n^{[l]}_H}_{i=1} \sum^{n^{[l]}_W}_{j=1} a^{[l](S)}_{ijk} a^{[l](S)}_{ijk\prime} Gkk′[l](S)​=i=1∑nH[l]​​j=1∑nW[l]​​aijk[l](S)​aijk′[l](S)​

其中, i i i和 j j j为第 l l l层的高度和宽度; k k k和 k ′ k\prime k′为选定的通道,其范围为 1 1 1到 n C [ l ] n_C^{[l]} nC[l]​; a i j k [ l ] ( S ) a^{[l](S)}_{ijk} aijk[l](S)​为激活。

同理,对于生成图像 G G G,有:

G k k ′ [ l ] ( G ) = ∑ i = 1 n H [ l ] ∑ j = 1 n W [ l ] a i j k [ l ] ( G ) a i j k ′ [ l ] ( G ) G^{[l](G)}_{kk\prime} = \sum^{n^{[l]}_H}_{i=1} \sum^{n^{[l]}_W}_{j=1} a^{[l](G)}_{ijk} a^{[l](G)}_{ijk\prime} Gkk′[l](G)​=i=1∑nH[l]​​j=1∑nW[l]​​aijk[l](G)​aijk′[l](G)​

因此,第 l l l层的风格代价函数为:

J s t y l e [ l ] ( S , G ) = 1 ( 2 n H [ l ] n W [ l ] n C [ l ] ) 2 ∑ k ∑ k ′ ( G k k ′ [ l ] ( S ) − G k k ′ [ l ] ( G ) ) 2 J^{[l]}_{style}(S, G) = \frac{1}{(2n^{[l]}_Hn^{[l]}_Wn^{[l]}_C)^2} \sum_k \sum_{k\prime}(G^{[l](S)}_{kk\prime} - G^{[l](G)}_{kk\prime})^2 Jstyle[l]​(S,G)=(2nH[l]​nW[l]​nC[l]​)21​k∑​k′∑​(Gkk′[l](S)​−Gkk′[l](G)​)2

上面我们只计算了一层隐层l的代价函数。使用多隐层可以表征的风格更全面,我们对其叠加,最终表达式为:

J s t y l e ( S , G ) = ∑ l λ [ l ] J s t y l e [ l ] ( S , G ) J_{style}(S, G) = \sum_l \lambda^{[l]} J^{[l]}_{style}(S, G) Jstyle​(S,G)=l∑​λ[l]Jstyle[l]​(S,G)

公式中, λ \lambda λ是用于设置不同层所占权重的超参数。

2.3 推广至一维和三维

一维到三维推广 1D and 3D Generalizations of Models

前面我们处理的都是二维图片,举例来说:

神经风格迁移

  • 输入图片维度: 14 × 14 × 3 14 \times 14 \times 3 14×14×3
  • 滤波器尺寸: 5 × 5 × 3 5 \times 5 \times 3 5×5×3,滤波器个数: 16 16 16
  • 输出图片维度: 10 × 10 × 16 10 \times 10 \times 16 10×10×16

实际上卷积也可以延伸到一维和三维数据。我们来举例说明:

(1) 一维卷积(1D Conv)

EKG数据(心电图)是由时间序列对应的每个瞬间的电压组成,是一维数据。如果用卷积处理,有如下结果:

神经风格迁移

  • 输入时间序列维度: 14 × 1 14 \times 1 14×1
  • 滤波器尺寸: 5 × 1 5 \times 1 5×1,滤波器个数: 16 16 16
  • 输出时间序列维度: 10 × 16 10 \times 16 10×16

(2) 三维卷积(3D Conv)

而对于三维图片的示例,对应的3D卷积有如下结果:

神经风格迁移

  • 输入3D图片维度: 14 × 14 × 14 × 1 14 \times 14 \times 14 \times 1 14×14×14×1
  • 滤波器尺寸: 5 × 5 × 5 × 1 5 \times 5 \times 5 \times 1 5×5×5×1,滤波器个数: 16 16 16
  • 输出3D图片维度: 10 × 10 × 10 × 16 10 \times 10 \times 10 \times 16 10×10×10×16

参考资料

ShowMeAI系列教程推荐

推荐文章

Ubuntu单系统安装全攻略:从删除Windows到UEFI引导设置(避坑指南) 本文提供Ubuntu单系统安装的完整指南,涵盖从安全删除Windows系统到UEFI引导设置的详细步骤。通过专业工具准备、分区方案设计、引导加载器配置等关键环节,帮助用户避免常见安装问题,实现纯净高效的Ubuntu单系统环境。特别强调UEFI引导的深度配置与安装后的性能优化,适合希望彻底转向Linux的用户。 阅读详情

相关推荐

CIFAR-100模型性能对比:Top1与Top5错误率深度解析

本文深度解析了CIFAR-100数据集上Top1与Top5错误率的核心意义与差异。通过对比MobileNet、ResNet、DenseNet等主流模型的性能数据,揭示了模型架构、训练策略及数据集特性如何共同影响这两个关键指标,并为不同应用场景下的模型选择提供了实战指南。

weixin_28224217的博客 339

深度学习教程(1) | 深度学习概论(吴恩达·完整版)

本篇为深度学习系列教程的引言,以房价预测为例,讲解神经网络(Neural Network)模型结构和基础知识,并介绍针对监督学习的几类典型神经网络:Standard NN,CNN和RNN等知识

ShowMeAI研究中心 1万+

博途WinCC上位机避坑指南:从工控机选型到趋势图优化的完整流程

本文详细解析了博途WinCC上位机开发全流程,从工控机选型到趋势图优化的关键技巧。针对工业自动化场景,提供硬件配置指南、网络优化方案和性能提升策略,帮助工程师避开常见陷阱,实现稳定高效的HMI系统部署。特别强调PC Station与传统触摸屏的选型对比及SIMATIC NET配置优化。

pp12345的博客 279

2020-9-15 吴恩达DL学习-C4 CNN-W4 人脸识别和神经风格转换

1.视频网站:mooc慕课https://mooc.study.163.com/university/deeplearning_ai#/c 2.详细笔记网站(中文):http://www.ai-start.com/dl2017/ 3.github课件+作业+答案:https://github.com/stormstone/deeplearning.ai 第四周 特殊应用:人脸识别和神经风格转换 Face recognition4.1 什么是人脸识别?What is face recognition? 4

weixin_42555985的博客 448

ANSYS-CFX,计算时报错,内存参数报错,return code 1【终极解决方案】

ANSYS-CFX,计算时报错,内存参数报错,return code 1【终极解决方案】 在CFX计算时经常会遇到内存不足的错误报告,有的算例网格并不多也会出现这样的问题,本文就最近遇到的内存错误问题以及解决方法进行简单的总结,以供大家参考。 1 CFX-Solver Manager内存种类 打开Define Run,面板上的Partitioner、Solver、Interpolator选项中分别都有关于内存的设置选项。当出现内存不足错误时,应该设置哪一个选项的内存参数,要看是哪一部分的内存不足。 2 C

深海民工CFDer 3万+

〔重庆理工大学〕大学物理实验--变温霍耳效应及其参数测定

每个老师要求不同,实验报告内容和数据仅供参考。

Pretty Boy Fox的博客 3044

深度学习教程 | 吴恩达专项课程 · 全套笔记解读

本篇内容是组织的「深度学习原理知识大全」系列教程入口,教程依托吴恩达老师《深度学习专项课程》,对内容做了重新梳理与制作,以更全面和直观的图文方式,对深度学习涉及的知识、模型、原理、应用领域等进行详解......

ShowMeAI研究中心 1万+

2025年GESP3月认证C++五级真题解析

小 A 有 2n 件物品,小 B 和小 C 想从小 A 手上买走这些物品。对于第 i 件物品,小 B 会以 bi 的价格购买,而小 C 会以 ci 的价格购买。对于所有测试点,保证 1 <= T <= 100, 2 <= g < p <= 10^9, g, p 为整数, p 为质数。对于所有测试点,保证 1 <= n <= 10^5, 0 <= bi, ci <= 10^9, bi, ci 为整数。对于另外 50 % 的测试点,保证 n <= 100000, 0 <= bi, ci <= 10^9。

lan_in的博客 1036

0.0 目录-深度学习第四课《卷积神经网络》-Stanford吴恩达教授

目录 《卷积神经网络》 笔记列表 Week 1 卷积神经网络 Week 1 传送门 —> 1.1 计算机视觉1.2 边缘检测示例1.3 更多边缘检测内容1.4 Padding1.5 卷积步长1.6 三维卷积1.7 单层卷积网络1.8 简单卷积网络示例1.9 池化层1.10 卷积神经网络示例1.11 为什么使用卷积? Week 2 深度卷积网络:实例探究 Week ...

赵继超的笔记 10万+

13、深入理解 Microsoft 365 的安全与合规概念

本文深入探讨了 Microsoft 365 的安全与合规概念,涵盖文档存储、文件共享、审计、保留、eDiscovery、分类和保护以及网络等多个关键方面。通过合理配置这些功能,组织可以更好地管理和保护其数据资源,满足法规要求,并提升工作效率。文章还提供了最佳实践建议及流程图,帮助读者全面理解 Microsoft 365 的安全架构和管理策略。

k8s6orchestrator的博客 212

4.4 直流无刷电机(BLDC):控制器硬件设计

摘要 本文详细阐述了直流无刷电机(BLDC)控制器的硬件设计要点。控制器硬件主要包括微处理器单元、功率驱动模块、信号检测电路、通信接口和电源管理模块。在微处理器选型方面,分析了ARM Cortex-M系列、DSP等架构的适用场景,并对比了不同处理器的性能参数。功率驱动模块设计重点包括栅极驱动电路、逆变桥热管理和电流保护机制。信号检测部分介绍了位置传感器接口和模拟信号调理技术。此外,还讨论了通信接口设计、电源管理方案以及硬件布局与EMC设计规范。最后强调了硬件测试验证的重要性,包括故障注入测试等验证方法。整体

技术工作者 185

吴恩达深度学习课程笔记Lesson13

欢迎来到第四周,即这门课卷积神经网络课程的最后一周。到目前为止,你学了很多卷积神经网络的知识。我这周准备向你展示一些重要的卷积神经网络的特殊应用,我们将从人脸识别开始,之后讲神经风格迁移,你将有机会在编程作业中实现这部分内容,创造自己的艺术作品。让我们先从人脸识别开始,我这里有一个有意思的演示。我在领导百度AI团队的时候,其中一个小组由林元庆带领的,做过一个人脸识别系统,这个系统非常棒,让我们来看一下。(以下内容为演示视频内容)

智潮先锋聚集地 544

一个 ABAP 工具,能打印系统里某个用户对 BSP 应用的浏览历史记录

只要一个用户在 SAP ABAP 系统里浏览过 BSP 页面,会留下浏览历史记录。本工具会解析出这些记录,打印出该用户浏览的历史事件,和浏览过的页面名称。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 548

吴恩达deeplearning.ai深度学习课程空白作业

  吴恩达deeplearning.ai深度学习课程的空白作业,包括深度学习微专业五门课程的全部空白编程作业,经多方整理而来。网上找来的作业好多都是已经被别人写过的,不便于自己练习,而且很多都缺失各种数据文件,找起来费时费力。所以我特地整理了一遍,搞到全部空白作业与所有的数据文件,并上传到优快云,欢迎下载:   https://www.baidu.com/ .........

ccgcccccc的博客 1万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

0.0 目录-深度学习第一课《神经网络与深度学习》-Stanford吴恩达教授

搬运原文链接:https://zhuanlan.zhihu.com/p/38200980 深度学习中Dropout原理解析 文章目录深度学习中Dropout原理解析1. Dropout简介1.1 Dropout出现的原因1.2 什么是Dropout2. Dropout工作流程及使用2.1 Dropout具体工作流程2.2 Dropout在神经网络中的使用 1. Dropout简介 1.1 Drop...

赵继超的笔记 4万+

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

吴恩达深度学习笔记13-Course4-Week4【人脸识别和神经风格转换】

地方

Wang_Jiankun的博客 668

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

0.0 目录-深度学习第五课《序列模型》-Stanford吴恩达教授

第五课 《序列模型》 笔记列表 Week 1 循环序列模型 Week 1 传送门 —> 1.1 为什么选择序列模型1.2 数学符号1.3 循环神经网络1.4 通过时间的方向传播1.5 不同类型的循环神经网络1.6 语言模型和序列生成1.7 对新序列采样1.8 带有神经网络的梯度消失1.9 GRU 单元1.10 长短期机器 (LSTM)1.11 双向神经网络1.12 深层循...

赵继超的笔记 7149

吴恩达深度学习笔记(四)

卷积神经网络CNN

Hermite Lee的博客 1435

带学吴恩达《深度学习》,带打Kaggle大赛!

吴恩达曾经说过:“人工智能是新电力,他相信人工智能将在未来改变各行各业,而未来全世界需要数百万具备深度学习知识的人。”说起吴恩达,在人工智能领域,你们一定不会陌生, 20...

机器学习算法与Python学习 1379

温州大学《深度学习》课程课件(十、人脸识别与神经风格迁移)

这学期我上的另一门课是本科生的《深度学习》,主要用的是吴恩达老师的《深度学习》视频课的内容。使用教材:吴恩达《深度学习》课程笔记课外参考书:《深度学习》,人民邮电出版社,IAN GOODF...

fengdu78的博客 269

深度学习笔记目录

深度学习笔记 课程 编号 理论笔记 编程作业 神经网络和深度学习 1.1 深度学习介绍 \ 1.2 神经网络编程基础 识别猫的程序 1.3 浅层神经网络 单隐藏层的平面数据分类 1.4 深层神经网络 搭建多层神经网络及其应用 改善深层神经网络 2.1 深度学习实践方面 ...

打瞌睡_的博客 532

第四课:卷积神经网络

深度学习入门指南——2021吴恩达学习笔记deeplearning.ai《深度学习专项课程》篇第一周 卷积神经网络第二周 深度卷积网络:实例探究第三周 目标检测第四周 特殊应用:人脸识别和神经风格转换

a131529的博客 2115

0.0 目录-深度学习第二课《改善神经网络》-Stanford吴恩达教授

目录 《改善神经网络》 笔记列表 Week 1 深度学习的实用层面 Week 1 传送门 —> [1.1 训练/开发/测试集][1.2 偏差/方差][1.3 机器学习基础][1.4 正则化][1.5 为什么正则化可以减少过拟合][1.6 Dropout 正则化][1.7 理解 Dropout][1.8 其他正则化方法][1.9 归一化输入][1.10 梯度消失与梯度爆炸]...

赵继超的笔记 8467

重磅推荐 | 带学吴恩达《深度学习》作业班+带打Kaggle大赛

吴恩达曾经说过:“人工智能是新电力,他相信人工智能将在未来改变各行各业,而未来全世界需要数百万具备深度学习知识的人。”说起吴恩达,在人工智能领域,你们一定不会陌生, 20...

Paper weekly 589

深度学习笔记:Overview

1)2)3)4)5)6)7)8)9)10)11)12)1)2)3)4)5)6)7)8)9)10)11)12)13)14)15)

10点43的博客 526

0.0 目录-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授

目录 《结构化机器学习项目》 笔记列表 Week 1 机器学习策略一 Week 1 传送门 —> [1.1 为什么是ML策略][1.2 正交化][1.3 单一数字评估指标][1.4 满足和优化指标][1.5 训练/开发/测试集划分][1.6 开发集合测试集的大小][1.7 什么时候该改变开发_测试集和指标][1.8 为什么是人的表现][1.9 可避免误差][1.10 理解...

赵继超的笔记 3241
上一篇: 深度学习教程(12) | CNN应用:目标检测(吴恩达·完整版)
下一篇: 深度学习教程(11) | 经典CNN网络实例详解(吴恩达·完整版)
ShowMeAI
博客等级 码龄5年 6514粉丝 672原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

ShowMeAI

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

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

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

打赏作者

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

抵扣说明:

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

余额充值