Skip to content

Commit

Permalink
2024-02-08 19:29:19
Browse files Browse the repository at this point in the history
  • Loading branch information
wizardforcel committed Feb 8, 2024
1 parent fcc5329 commit 790832f
Showing 1 changed file with 37 additions and 0 deletions.
37 changes: 37 additions & 0 deletions totrans/prac-dl-cld_04.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -806,6 +806,8 @@
id: totrans-120
prefs: []
type: TYPE_NORMAL
zh: 在幕后,`tf.keras.applications`中提供的许多模型产生数千个特征。例如,InceptionV3产生形状为1 x 5 x 5 x 2048的特征,这相当于2048个5
x 5卷积的特征图,总共有51200个特征。因此,通过使用平均或最大池化层来减少这个大向量变得至关重要。池化层将每个卷积(例如5 x 5层)压缩为一个值。这可以在模型实例化期间定义如下:
- en: '[PRE19]'
id: totrans-121
prefs: []
Expand All @@ -818,31 +820,38 @@
id: totrans-122
prefs: []
type: TYPE_NORMAL
zh: 对于产生大量特征的模型,通常会发现所有代码示例都使用这个池化选项。[表4-2](part0006.html#number_of_features_before_and_after_pool)显示了不同模型中最大池化对特征数量的影响前后效果。
- en: Table 4-2\. Number of features before and after pooling for different models
id: totrans-123
prefs: []
type: TYPE_NORMAL
zh: 表4-2。不同模型在池化前后的特征数量
- en: '| **Model** | **# features before pooling** | **# features after pooling**
|'
id: totrans-124
prefs: []
type: TYPE_TB
zh: '| **模型** | **池化前特征数量** | **池化后特征数量** |'
- en: '| --- | --- | --- |'
id: totrans-125
prefs: []
type: TYPE_TB
zh: '| --- | --- | --- |'
- en: '| ResNet-50 | [1,1,1,2048] = 2048 | 2048 |'
id: totrans-126
prefs: []
type: TYPE_TB
zh: '| ResNet-50 | [1,1,1,2048] = 2048 | 2048 |'
- en: '| InceptionV3 | [1,5,5,2048] = 51200 | 2048 |'
id: totrans-127
prefs: []
type: TYPE_TB
zh: '| InceptionV3 | [1,5,5,2048] = 51200 | 2048 |'
- en: '| MobileNet | [1,7,7,1024] = 50176 | 1024 |'
id: totrans-128
prefs: []
type: TYPE_TB
zh: '| MobileNet | [1,7,7,1024] = 50176 | 1024 |'
- en: As we can see, almost all the models generate a large number of features. Imagine
how much faster the search would be if we could reduce to a mere 100 features
(a whopping reduction of 10 to 20 times!) without compromising the quality of
Expand All @@ -853,11 +862,13 @@
id: totrans-129
prefs: []
type: TYPE_NORMAL
zh: 正如我们所看到的,几乎所有模型都生成大量特征。想象一下,如果我们能将特征减少到仅100个(减少了10到20倍!),而不会影响结果的质量,搜索速度会有多快。除了尺寸之外,这对于大数据场景来说是一个更大的改进,因为数据可以一次性加载到RAM中,而不是定期加载部分数据,从而提供更大的加速。PCA将帮助我们实现这一点。
- en: Reducing Feature-Length with PCA
id: totrans-130
prefs:
- PREF_H2
type: TYPE_NORMAL
zh: 使用PCA减少特征长度
- en: PCA is a statistical procedure that questions whether features representing
the data are equally important. Are some of the features redundant enough that
we can get similar classification results even after removing those features?
Expand All @@ -869,11 +880,13 @@
id: totrans-131
prefs: []
type: TYPE_NORMAL
zh: PCA是一个统计过程,质疑代表数据的特征是否同等重要。一些特征是否足够冗余,以至于即使删除这些特征,我们仍然可以获得类似的分类结果?PCA被认为是降维的常用技术之一。请注意,它并不消除冗余特征;相反,它生成一组新的特征,这些特征是输入特征的线性组合。这些线性特征彼此正交,这就是为什么所有冗余特征都不存在。这些特征被称为*主成分*。
- en: 'Performing PCA is pretty simple. Using the `scikit-learn` library, execute
the following:'
id: totrans-132
prefs: []
type: TYPE_NORMAL
zh: 执行PCA非常简单。使用`scikit-learn`库,执行以下操作:
- en: '[PRE20]'
id: totrans-133
prefs: []
Expand All @@ -885,6 +898,7 @@
id: totrans-134
prefs: []
type: TYPE_NORMAL
zh: PCA还可以告诉我们每个特征的相对重要性。第一个维度具有最大的方差,随着维度的增加,方差不断减小:
- en: '[PRE21]'
id: totrans-135
prefs: []
Expand All @@ -904,6 +918,7 @@
id: totrans-137
prefs: []
type: TYPE_NORMAL
zh: 嗯,为什么我们从原始的2048个维度中选择了100个维度?为什么不是200个?PCA代表我们的原始特征向量,但是在减少维度。每个新维度在表示原始向量方面的回报递减(即,新维度可能不太能解释数据),并占用宝贵的空间。我们可以在原始数据解释得有多好与我们想要减少多少之间取得平衡。让我们可视化前200个维度的重要性。
- en: '[PRE23]'
id: totrans-138
prefs: []
Expand All @@ -913,15 +928,18 @@
id: totrans-139
prefs: []
type: TYPE_NORMAL
zh: '[图4-12](part0006.html#variance_for_each_pca_dimension)展示了结果。'
- en: '![Variance for each PCA dimension](../images/00262.jpeg)'
id: totrans-140
prefs: []
type: TYPE_IMG
zh: '![每个PCA维度的方差](../images/00262.jpeg)'
- en: Figure 4-12\. Variance for each PCA dimension
id: totrans-141
prefs:
- PREF_H6
type: TYPE_NORMAL
zh: 图4-12。每个PCA维度的方差
- en: The individual variance will tell us how important the newly added features
are. For example, after the first 100 dimensions, the additional dimensions don’t
add much variance (almost equal to 0) and can be neglected. Without even checking
Expand All @@ -932,6 +950,7 @@
id: totrans-142
prefs: []
type: TYPE_NORMAL
zh: 个体方差将告诉我们新增特征的重要性。例如,在前100个维度之后,额外的维度并不增加太多方差(几乎等于0),可以忽略不计。甚至在检查准确性之前,可以安全地假设具有100个维度的PCA将是一个强大的模型。另一种看待这个问题的方式是通过找到累积方差来可视化原始数据有多少是由有限数量的特征解释的(参见[图4-13](part0006.html#cumulative_variance_with_each_pca_dimens))。
- en: '[PRE24]'
id: totrans-143
prefs: []
Expand All @@ -941,11 +960,13 @@
id: totrans-144
prefs: []
type: TYPE_IMG
zh: '![每个PCA维度的累积方差](../images/00237.jpeg)'
- en: Figure 4-13\. Cumulative variance with each PCA dimension
id: totrans-145
prefs:
- PREF_H6
type: TYPE_NORMAL
zh: 图4-13。每个PCA维度的累积方差
- en: As expected, adding 100 dimensions (from 100 to 200) adds only 0.1 variance
and begins to gradually plateau. For reference, using the full 2,048 features
would result in a cumulative variance of 1.
Expand Down Expand Up @@ -1784,11 +1805,13 @@
prefs:
- PREF_H6
type: TYPE_NORMAL
zh: 图4-19。沙漠照片的相似模式([图片来源](https://code.flickr.com))
- en: Pinterest
id: totrans-262
prefs:
- PREF_H2
type: TYPE_NORMAL
zh: Pinterest
- en: Pinterest is an application used widely for its visual search capabilities,
more specifically in its features called Similar Pins and Related Pins. Other
companies like Baidu and Alibaba have launched similar visual search systems.
Expand All @@ -1797,6 +1820,8 @@
id: totrans-263
prefs: []
type: TYPE_NORMAL
zh: Pinterest是一个广泛使用的应用程序,以其视觉搜索功能而闻名,更具体地说是其称为相似图钉和相关图钉的功能。百度和阿里巴巴等其他公司也推出了类似的视觉搜索系统。此外,Zappos、Google
Shopping和[like.com](http://like.com)正在使用计算机视觉进行推荐。
- en: Within Pinterest “women’s fashion” is one of the most popular themes of pins
and the Similar Looks feature ([Figure 4-20](part0006.html#the_similar_looks_feature_of_the_pintere))
helps people discover similar products. Additionally, Pinterest also reports that
Expand All @@ -1810,22 +1835,26 @@
id: totrans-264
prefs: []
type: TYPE_NORMAL
zh: 在Pinterest中,“女性时尚”是最受欢迎的图钉主题之一,相似外观功能([图4-20](part0006.html#the_similar_looks_feature_of_the_pintere))帮助人们发现相似的产品。此外,Pinterest还报告称其相关图钉功能增加了转发率。Pinterest上并非每个图钉都有关联的元数据,这使得推荐成为一个困难的冷启动问题,因为缺乏上下文。Pinterest的开发人员通过使用视觉特征来生成相关图钉来解决这个冷启动问题。此外,Pinterest实现了一个增量指纹服务,如果上传了新图像或者特征发生演变(由于工程师对底层模型的改进或修改),则生成新的数字签名。
- en: '![The Similar Looks feature of the Pinterest application (image source: Pinterest
blog)](../images/00080.jpeg)'
id: totrans-265
prefs: []
type: TYPE_IMG
zh: '![Pinterest应用程序的相似外观功能(图片来源:Pinterest博客)](../images/00080.jpeg)'
- en: 'Figure 4-20\. The Similar Looks feature of the Pinterest application (image
source: Pinterest blog)'
id: totrans-266
prefs:
- PREF_H6
type: TYPE_NORMAL
zh: 图4-20。Pinterest应用程序的相似外观功能(图片来源:Pinterest博客)
- en: Celebrity Doppelgangers
id: totrans-267
prefs:
- PREF_H2
type: TYPE_NORMAL
zh: 名人模仿者
- en: Website applications like *Celebslike.me*, which went viral in 2015, look for
the nearest neighbor among celebrities, as shown in [Figure 4-21](part0006.html#testing_our_friend_pete_warden).
A similar viral approach was taken by the Google Arts & Culture app in 2018, which
Expand All @@ -1834,22 +1863,27 @@
id: totrans-268
prefs: []
type: TYPE_NORMAL
zh: 像*Celebslike.me*这样的网站应用程序在2015年爆红,寻找名人中的最近邻居,如[图4-21](part0006.html#testing_our_friend_pete_warden)所示。2018年,Google
Arts & Culture应用程序采取了类似的病毒式方法,显示与您的脸最接近的现有肖像。双胞胎与否是另一个具有类似目的的应用程序。
- en: '![Testing our friend Pete Warden’s photo (technical lead for mobile and embedded
TensorFlow at Google) on the celebslike.me website](../images/00062.jpeg)'
id: totrans-269
prefs: []
type: TYPE_IMG
zh: '![在celebslike.me网站上测试我们的朋友Pete Warden的照片(Google移动和嵌入式TensorFlow技术主管)](../images/00062.jpeg)'
- en: Figure 4-21\. Testing our friend Pete Warden’s photo (technical lead for mobile
and embedded TensorFlow at Google) on the celebslike.me website
id: totrans-270
prefs:
- PREF_H6
type: TYPE_NORMAL
zh: 图4-21。在celebslike.me网站上测试我们的朋友Pete Warden的照片(Google移动和嵌入式TensorFlow技术主管)
- en: Spotify
id: totrans-271
prefs:
- PREF_H2
type: TYPE_NORMAL
zh: Spotify
- en: Spotify uses nearest neighbors for recommending music and creating automatic
playlists and radio stations based on the current set of songs being played. Usually,
collaborative filtering techniques, which are employed for recommending content
Expand All @@ -1870,12 +1904,15 @@
id: totrans-272
prefs: []
type: TYPE_NORMAL
zh: Spotify使用最近邻居来推荐音乐,并根据当前播放的歌曲集创建自动播放列表和电台。通常,用于在Netflix上推荐电影等内容的协同过滤技术是内容不可知的;也就是说,推荐发生是因为具有相似口味的大量用户正在观看相似的电影或听相似的歌曲。这对于新的尚未流行的内容构成问题,因为用户将继续获得现有流行内容的推荐。这也被称为前面提到的冷启动问题。解决方案是使用对内容的潜在理解。与图像类似,我们可以使用MFCC特征(Mel频率倒谱系数)从音乐中创建特征向量,从而生成可以被视为图像并用于生成特征的2D频谱图。歌曲被分成三秒片段,它们的频谱图用于生成特征。然后将这些特征平均在一起以代表完整的歌曲。[图4-22](part0006.html#t-sne_visualization_of_the_distribution)显示了歌手的歌曲被投影到特定区域。我们可以区分嘻哈(左上)、摇滚(右上)、流行(左下)和电子音乐(右下)。正如前面讨论的,Spotify在后台使用Annoy。
- en: '![t-SNE visualization of the distribution of predicted usage patterns, using
latent factors predicted from audio (image source: Deep content-based music recommendation
by Aaron van den Oord, Sander Dieleman, Benjamin Schrauwen)](../images/00021.jpeg)'
id: totrans-273
prefs: []
type: TYPE_IMG
zh: '![使用从音频预测的潜在因素生成的t-SNE可视化图,显示预测使用模式的分布(图片来源:Aaron van den Oord、Sander Dieleman、Benjamin
Schrauwen的深度基于内容的音乐推荐)](../images/00021.jpeg)'
- en: 'Figure 4-22\. t-SNE visualization of the distribution of predicted usage patterns,
using latent factors predicted from audio (image source: “Deep content-based music
recommendation” by Aaron van den Oord, Sander Dieleman, Benjamin Schrauwen, NIPS
Expand Down

0 comments on commit 790832f

Please sign in to comment.