From 790832fe5ef7c854b2e3723b8af089a83e511cae Mon Sep 17 00:00:00 2001 From: wizardforcel <562826179@qq.com> Date: Thu, 8 Feb 2024 19:29:21 +0800 Subject: [PATCH] 2024-02-08 19:29:19 --- totrans/prac-dl-cld_04.yaml | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/totrans/prac-dl-cld_04.yaml b/totrans/prac-dl-cld_04.yaml index 7556dae..a5e29b5 100644 --- a/totrans/prac-dl-cld_04.yaml +++ b/totrans/prac-dl-cld_04.yaml @@ -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: [] @@ -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 @@ -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? @@ -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: [] @@ -885,6 +898,7 @@ id: totrans-134 prefs: [] type: TYPE_NORMAL + zh: PCA还可以告诉我们每个特征的相对重要性。第一个维度具有最大的方差,随着维度的增加,方差不断减小: - en: '[PRE21]' id: totrans-135 prefs: [] @@ -904,6 +918,7 @@ id: totrans-137 prefs: [] type: TYPE_NORMAL + zh: 嗯,为什么我们从原始的2048个维度中选择了100个维度?为什么不是200个?PCA代表我们的原始特征向量,但是在减少维度。每个新维度在表示原始向量方面的回报递减(即,新维度可能不太能解释数据),并占用宝贵的空间。我们可以在原始数据解释得有多好与我们想要减少多少之间取得平衡。让我们可视化前200个维度的重要性。 - en: '[PRE23]' id: totrans-138 prefs: [] @@ -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 @@ -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: [] @@ -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. @@ -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. @@ -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 @@ -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 @@ -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 @@ -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