提交 0a0b1f98 编写于 作者: W wizardforcel

2020-12-25 18:31:37

上级 f49206b8
......@@ -205,25 +205,12 @@ TensorBoard 是用于探索 TensorFlow 模型的数据可视化套件,并与 T
Michael Heydt 的《学习 Pandas》和 Dan Toomey 的《学习 Jupyter》提供了有关如何使用这些技术的全面指南。 这些书是继续学习的好参考。
<colgroup class="calibre28"><col class="calibre29"> <col class="calibre29"> <col class="calibre29"></colgroup>
|
零件
|
描述
|
最低版本
|
| 组件 | 描述 | 最低版本 |
| --- | --- | --- |
| 蟒蛇 | 通用编程语言。 深度学习应用程序开发中使用的流行语言。 | 3.6 |
| Python | 通用编程语言。 深度学习应用程序开发中使用的流行语言。 | 3.6 |
| TensorFlow | 开源图计算 Python 软件包,通常用于开发深度学习系统。 | 1.4 |
| | 提供与 TensorFlow 的高级接口的 Python 软件包。 | 2.0.8-tf(随 TensorFlow 一起分发) |
| 张量板 | 基于浏览器的软件,用于可视化神经网络统计信息。 | 0.4.0 |
| Keras | 提供与 TensorFlow 的高级接口的 Python 软件包。 | 2.0.8-tf(随 TensorFlow 一起分发) |
| TensorBoard | 基于浏览器的软件,用于可视化神经网络统计信息。 | 0.4.0 |
| Jupyter 笔记本 | 基于浏览器的软件,用于与 Python 会话进行交互。 | 5.2.1 |
| Pandas | 用于分析和处理数据的 Python 软件包。 | 0.21.0 |
| NumPy | 用于高性能数值计算的 Python 软件包。 | 1.13.3 |
......
......@@ -97,20 +97,7 @@ GAN 已成功用于数据具有清晰拓扑结构的领域。 它的原始实现
有关更多信息,请参阅 DeepMind 创建的 DQN,以击败 Atari 游戏。 该算法使用深度强化学习解决方案来不断增加其奖励。 [图片来源](https://keon.io/deep-q-learning/)
<colgroup class="calibre28"><col class="calibre29"> <col class="calibre29"> <col class="calibre29"></colgroup>
|
建筑
|
数据结构
|
成功的申请
|
| 建筑 | 数据结构 | 成功的应用 |
| --- | --- | --- |
| 卷积神经网络(CNN) | 网格状的拓扑结构(即图像) | 图像识别与分类 |
| 循环神经网络(RNN)和长短期记忆(LSTM)网络 | 顺序数据(即时间序列数据) | 语音识别,文本生成和翻译 |
......@@ -219,20 +206,11 @@ $ jupyter notebook
数据集`data/bitcoin_historical_prices.csv`包含自 2013 年初以来比特币价格的度量。最近的观察是在 2017 年 11 月,该数据集来自每日更新的在线服务 CoinMarketCap。 它包含八个变量,其中两个(`date``week`)描述数据的时间段(可以用作索引),另外六个变量(`open``high``low``close``volume``market_capitalization`),可用于了解比特币的价格和价值如何随时间变化:
<colgroup class="calibre28"><col class="calibre29"> <col class="calibre29"></colgroup>
|
变量
|
描述
|
| 变量 | 描述 |
| --- | --- |
| `date` | 观察日期。 |
| `iso_week` | 给定年份的星期数。 |
| `open` | 单个比特币硬币的开价值。 |
| `open` | 单个比特币硬币的开价值。 |
| `high` | 在给定的一天时间内实现的最高价值。 |
| `low` | 在给定的一天内实现的最低价值。 |
| `close` | 交易日结束时的价值。 |
......@@ -333,16 +311,7 @@ bitcoin_recent.to_csv('data/bitcoin_recent.csv', index=False)
Keras 提供了直观的类来表示这些组件中的每个组件:
<colgroup class="calibre28"><col class="calibre29"> <col class="calibre29"></colgroup>
|
零件
|
硬课
|
| 组件 | Keras 类 |
| --- | --- |
| 完整的顺序神经网络的高级抽象。 | `keras.models.Sequential()` |
| 密集的全连接层。 | `keras.layers.core.Dense()` |
......
......@@ -59,24 +59,7 @@
下表提供了常见损失函数以及它们的常见应用的摘要:
<colgroup class="calibre28"><col class="calibre29"> <col class="calibre29"> <col class="calibre29"> <col class="calibre29"></colgroup>
|
问题类型
|
损失函数
|
问题
|
|
| 问题类型 | 损失函数 | 问题 | 示例 |
| --- | --- | --- | --- |
| 回归 | 均方误差(**MSE**) | 预测连续功能。 即,预测值范围内的值。 | 使用过去的温度测量结果来预测将来的温度。 |
| 回归 | 均方根误差(**RMSE**) | 与前面相同,但处理负值。 RMSE 通常提供更可解释的结果。 | 与前面相同。 |
......@@ -682,28 +665,7 @@ L2 正则化使用`λ`参数来确定对模型神经元的惩罚程度。 通常
在创建所有这些版本之后,我们现在必须评估哪种模型性能最佳。 为此,我们使用第一个模型中使用的相同指标:MSE,RMSE 和 MAPE。 MSE 用于比较每个预测周的模型错误率。 计算 RMSE 和 MAPE 使模型结果更易于解释。
<colgroup class="calibre28"><col class="calibre29"> <col class="calibre29"> <col class="calibre29"> <col class="calibre29"> <col class="calibre29"></colgroup>
|
模型
|
MSE(最后一个时期)
|
RMSE(整个系列)
|
MAPE(整个系列)
|
训练时间
|
| 模型 | MSE(最后一个时期) | RMSE(整个系列) | MAPE(整个系列) | 训练时间 |
| --- | --- | --- | --- | --- |
| `bitcoin_lstm_v0` | - | 399.6 | 8.4% | - |
| `bitcoin_lstm_v1` | 7.15*10-6 | 419.3 | 8.8% | 49.3 秒 |
......
......@@ -22,6 +22,7 @@
从一种状态移动到另一种状态称为**转移**,其概率称为**转移概率**。 我们可以用表格的形式来表示转移概率,如下所示,它被称为**马尔可夫表**。 在给定当前状态的情况下,它显示了移至下一个状态的概率为:
| **当前状态** | **下一个状态** | **转移概率** |
| --- | --- | --- |
| 多云 | 下雨 | 0.6 |
| 下雨 | 下雨 | 0.2 |
| 晴天 | 多云 | 0.1 |
......@@ -127,6 +128,7 @@ MDP 由五个重要元素表示:
我们可以在表中查看值函数。 假设我们有两个状态,并且这两个状态都遵循策略π。 根据这两个状态的值,我们可以判断出执行策略后,我们的代理处于该状态有多好。 值越大,状态越好:
| **状态** | **值** |
| --- | --- |
| 状态 1 | 0.3 |
| 状态 2 | 0.9 |
......@@ -149,6 +151,7 @@ MDP 由五个重要元素表示:
与状态值函数一样,`Q`函数可以在表中查看。 也称为`Q`表。 让我们说我们有两个状态和两个动作。 我们的`Q`表如下所示:
| **状态** | **动作** | **值** |
| --- | --- | --- |
| 状态 1 | 动作 1 | 0.03 |
| 状态 1 | 动作 2 | 0.02 |
| 状态 2 | 动作 1 | 0.5 |
......
......@@ -531,6 +531,7 @@ MC-ES 算法非常简单,如下所示:
假设我们已经探索了状态 1 中的一些动作,如 Q 表所示:
| **状态** | **动作** | **值** |
| --- | --- | --- |
| 状态 1 | 动作 0 | 0.5 |
| 状态 1 | 动作 1 | 0.1 |
| 状态 1 | 动作 2 | 0.8 |
......@@ -554,6 +555,7 @@ def epsilon_greedy_policy(state, epsilon):
让我们想象一下,我们已经使用`ε`贪婪策略探索了状态 1 中的其他动作(尽管不是所有动作对),并且我们的 Q 表如下所示:
| **状态** | **动作** | **值** |
| --- | --- | --- |
| 状态 1 | 动作 0 | 0.5 |
| 状态 1 | 动作 1 | 0.1 |
| 状态 1 | 动作 2 | 0.8 |
......
......@@ -136,7 +136,7 @@ Softmax 将是表示输出层中不同类别的概率的最佳激活函数,而
现在我们已经定义了训练方法,损失函数和验证指标,让我们继续进行数据探索和建模。
请注意,输出级别中的分类具有序数性质,因为严重性随级别而增加。 因此,回归可能会派上用场。 我们还将尝试通过回归来代替分类,以了解运气如何。 回归的挑战之一是将原始分数转换为类。 我们将使用一个简单的方案,将分数散列到最接近的整数严重性类别。
请注意,输出类别中的分类具有序数性质,因为严重性随类别而增加。 因此,回归可能会派上用场。 我们还将尝试通过回归来代替分类,以了解运气如何。 回归的挑战之一是将原始分数转换为类。 我们将使用一个简单的方案,将分数散列到最接近的整数严重性类别。
# 考虑到类别失衡
......@@ -155,7 +155,8 @@ Softmax 将是表示输出层中不同类别的概率的最佳激活函数,而
我们将使用方案二,因为它不需要生成更多数据或丢弃现有数据。 如果我们将班级权重与班级频率的倒数成正比,则会得到以下班级权重:
| **严重级别** | **类权重** |
| **严重类别** | **类权重** |
| --- | --- |
| `Class 0` | `0.0120353863` |
| `Class 1` | `0.1271350558` |
| `Class 2` | `0.0586961973` |
......
......@@ -239,6 +239,7 @@ NMT 与其他传统方法相比的一些优点如下:
我们将通读英语和法语语料库,并确定它们各自中唯一词的数量。 我们还将通过索引来表示单词,对于该单词的单编码向量,该单词对应的索引将设置为 1,而其余索引将设置为 0。 例如,假设在英语语料库中,我们有四个词:`Global warming is real`。 我们可以如下定义每个单词的索引:
| **单词** | **索引** |
| --- | --- |
| `global` | 0 |
| `warming` | 1 |
| `is` | 2 |
......
......@@ -471,12 +471,13 @@ def build_network(self):
下表显示了我们需要跟踪的不同损耗变量。 就发生器或鉴别器的参数而言,所有这些损失都需要最小化:
| **不同损失的变量** | **说明** |
| `self.D_B_loss_real` | 在对域`B`中的真实图像进行分类时,鉴别符`D[B]`的二进制交叉熵损失。(This loss is to be minimized with respect to the parameters of the discriminator `D[B]`) |
| `self.D_B_loss_fake` | 在对域`B`中的伪造图像进行分类时,鉴别符`D[B]`的二进制交叉熵损失。(This loss is to be minimized with respect to the parameters of the discriminator `D[B]`) |
| `self.D_A_loss_real` | 在对域`A`中的真实图像进行分类时,鉴别符`D[A]`的二进制交叉熵损失。(This loss is to be minimized with respect to the parameters of the discriminator `D[A]`) |
| `self.D_A_loss_fake` | 在对域`A`中的伪造图像进行分类时,鉴别符`D[A]`的二进制交叉熵损失。(This loss is to be minimized with respect to the parameters of the discriminator `D[A]`) |
| `self.loss_GABA` | 通过两个生成器`G[AB]``G[BA]`将域`A`中的图像映射到`B`,然后再映射回`A`的重建损失 )加上假图片`G[AB](x[A])`的二进制交叉熵,并由域`B`中的鉴别器标记为真实图像。(This loss is to be minimized with respect to the parameters of the generators `G[AB]` and `G[BA]`) |
| `self.loss_GBAB` | 通过两个生成器`G[BA]``G[AB]`将域`B`中的图像映射到`A`,然后再映射回`B`的重建损失 加上伪图片`G[BA](x[B])`的二元交叉熵,由域`A`中的鉴别器标记为真实图像。(This loss is to be minimized with respect to the parameters of the generators `G[AB]` and `G[BA]`) |
| --- | --- |
| `self.D_B_loss_real` | 在对域`B`中的真实图像进行分类时,鉴别符`D[B]`的二进制交叉熵损失。(相对于判别器`D[B]`的参数,该损失应最小化) |
| `self.D_B_loss_fake` | 在对域`B`中的伪造图像进行分类时,鉴别符`D[B]`的二进制交叉熵损失。(相对于判别器`D[B]`的参数,该损失应最小化) |
| `self.D_A_loss_real` | 在对域`A`中的真实图像进行分类时,鉴别符`D[A]`的二进制交叉熵损失。(相对于判别器`D[A]`的参数,该损失应最小化) |
| `self.D_A_loss_fake` | 在对域`A`中的伪造图像进行分类时,鉴别符`D[A]`的二进制交叉熵损失。(相对于判别器`D[A]`的参数,该损失应最小化) |
| `self.loss_GABA` | 通过两个生成器`G[AB]``G[BA]`将域`A`中的图像映射到`B`,然后再映射回`A`的重建损失 )加上假图片`G[AB](x[A])`的二进制交叉熵,并由域`B`中的鉴别器标记为真实图像。(相对于生成器`G[AB]``G[BA]`的参数,该损失应最小化) |
| `self.loss_GBAB` | 通过两个生成器`G[BA]``G[AB]`将域`B`中的图像映射到`A`,然后再映射回`B`的重建损失 加上伪图片`G[BA](x[B])`的二元交叉熵,由域`A`中的鉴别器标记为真实图像。(相对于生成器`G[AB]``G[BA]`的参数,该损失应最小化) |
前四个损耗组成了鉴别器损耗,需要根据鉴别器的参数将其最小化。 ]。 最后两个损耗组成了生成器损耗,需要根据生成器的参数将其最小化。 。
......
......@@ -424,6 +424,7 @@ unk => A substitute for a word that is not included in the vocabulary
为了举例说明,我们以句子`The weather is beautiful`。 以下是从时间步`N + 1`开始的 LSTM 2 的输入和输出标签:
| **时间步长** | **输入** | **输出** |
| --- | --- | --- |
| `N + 1` | `<bos>``h[N + 1]` | `The` |
| `N + 2` | `The``h[N + 2]` | `weather` |
| `N + 3` | `weather``h[N + 3]` | `is` |
......@@ -660,6 +661,7 @@ python Video_seq2seq.py process_main --path_prj '/media/santanu/9eb9b6dc-b380-48
```
| **参数** | **值** |
| --- | --- |
| `Optimizer` | `Adam` |
| `learning rate` | `1e-4` |
| `Batch size` | `32` |
......
......@@ -380,12 +380,13 @@ python chatbot.py --max_vocab_size 50000 --max_seq_len 30 --embedding_dim 100 --
以下是一些重要的论据,以及它们的描述和用于调用聊天机器人序列到序列模型的训练的使用值:
| **参数** | **说明** | **用于训练的值** |
| --- | --- | --- |
| `max_vocab_size` | 词汇中的单词数 | `50,000` |
| `max_seq_len` | 推文的最大长度应被限制到 LSTM | `30` |
| `max_seq_len` | 应被限制到 LSTM 的推文的最大长度 | `30` |
| `hidden_state_dim` | LSTM 的隐藏状态`h`的尺寸 | `100` |
| `embedding_dim` | 词嵌入的维度 | `100` |
| `learning rate` | 用于优化程序的起始学习率 | `0.0001` |
| `dropout` | 丢弃用于正则化目的 | `0.3` |
| `dropout` | 用于正则化目的的丢弃 | `0.3` |
| `Mode` | 训练/推理 | 对于训练,请使用`train`;对于推理,请使用`inference` |
# 对某些输入推文的推断结果
......
......@@ -648,6 +648,7 @@ python captcha_gan.py train --dest_train '/home/santanu/Downloads/train_32x32.ma
众所周知,GAN 很难训练,因此需要调整这些参数,以使模型正常运行。 以下是一些重要参数:
| **参数** | **值** | **注释** |
| --- | --- | --- |
| `batch_size` | `100` | 小型批次随机梯度下降的批次大小。 |
| `gen_input_dim` | `100` | 输入随机噪声矢量维。 |
| `gen_lr` | `0.0001` | 生成器学习率。 |
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册