

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Sequence to Sequence アルゴリズム
<a name="seq-2-seq"></a>

Amazon SageMaker AI Sequence to Sequence は、入力が一連のトークン (テキスト、オーディオなど) であり、生成される出力が別の一連のトークンである、教師あり学習アルゴリズムです。アプリケーションの例として、機械学習 (1 つの言語で入力した文が別の言語でどうなるかを予測する)、テキスト要約 (入力した長い文字列のより短い文字列での要約を予測する)、音声認識 (トークンの出力文に変換したオーディオクリップ) が含まれます。近年、このドメインの問題はディープニューラルネットワークによってモデル化に成功し、以前の方式を大幅に超えるパフォーマンスを示しています。Amazon SageMaker AI seq2seq は再帰型ニューラルネットワーク (RNN) モデルと畳み込みニューラルネットワーク (CNN) モデルにアテンションを組み合わせたエンコーダーデコーダーアーキテクチャを使用します。

**Topics**
+ [Sequence to Sequence アルゴリズムの入出力インターフェイス](#s2s-inputoutput)
+ [Sequence to Sequence アルゴリズムの EC2 インスタンスに関する推奨事項](#s2s-instances)
+ [Sequence to Sequence サンプルノートブック](#seq-2-seq-sample-notebooks)
+ [Sequence to Sequence の仕組み](seq-2-seq-howitworks.md)
+ [Sequence to Sequence ハイパーパラメータ](seq-2-seq-hyperparameters.md)
+ [Sequence to Sequence モデルを調整する](seq-2-seq-tuning.md)

## Sequence to Sequence アルゴリズムの入出力インターフェイス
<a name="s2s-inputoutput"></a>

**トレーニング**

SageMaker AI seq2seq は、RecordIO-Protobuf 形式のデータを想定します。ただし、通常の場合と同様に、トークンは浮動小数点ではなく整数であることが想定されます。

[seq2seq サンプルノートブック](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/seq2seq_translation_en-de/SageMaker-Seq2Seq-Translation-English-German.html)に、トークン化されたテキストファイルからのデータを protobuf 形式に変換するスクリプトが含まれています。一般的には、データを 32 ビットの整数テンソルにパッキングし、メトリクスの計算や推論に必要な語彙ファイルを生成します。

前処理の完了後、アルゴリズムをトレーニングのために呼び出すことができます。アルゴリズムは以下の 3 つのチャネルを想定します。
+ `train`: トレーニングデータ (事前処理スクリプトによって生成される `train.rec` ファイルなど) が含まれている必要があります。
+ `validation`: 検証データ (事前処理スクリプトによって生成される `val.rec` ファイルなど) が含まれている必要があります。
+ `vocab`: 2 つの語彙ファイル (`vocab.src.json` と `vocab.trg.json`) が含まれている必要があります 

アルゴリズムによってこれらの 3 つのチャネルでデータが見つからなかった場合、トレーニングの結果はエラーになります。

**推論**

ホストされるエンドポイントの場合、推論は 2 つのデータ形式をサポートします。スペース区切りのテキストトークンを使用して推論を実行するには、`application/json` 形式を使用します。それ以外の場合は、`recordio-protobuf` 形式を使用して整数にエンコードされたデータを処理します。どちらのモードも入力データのバッチ処理をサポートしています。`application/json` 形式では、アテンション行列を視覚化することもできます。
+ `application/json`: 入力を JSON 形式で要求し、出力を JSON 形式で返します。コンテンツタイプと受け取りタイプは両方とも `application/json` である必要があります。各シーケンスは空白で区切られたトークンの文字列であることが要求されます。この形式は、バッチ内のソースシーケンスの数が少ないときに推奨されます。また、次の追加の設定オプションにも対応しています。

  `configuration`: \$1`attention_matrix`: `true`\$1: 特定の入力シーケンスについてアテンション行列を返します。
+ `application/x-recordio-protobuf`: 入力を `recordio-protobuf` 形式で要求し、出力を `recordio-protobuf format` 形式で返します。コンテンツタイプと受け取りタイプは両方とも `applications/x-recordio-protobuf` である必要があります。この形式では、後続のプロトコルバッファーへのエンコードのために、ソースシーケンスを整数のリストに変換する必要があります。この形式は、一括での推論に推奨されます。

バッチ変換の場合、推論は JSON Lines 形式をサポートします。バッチ変換は、JSON Lines 形式の入力を想定し、JSON Lines 形式の出力を返します。コンテンツタイプと受け取りタイプは両方とも `application/jsonlines` である必要があります。入力の形式は次のとおりです。

```
content-type: application/jsonlines

{"source": "source_sequence_0"}
{"source": "source_sequence_1"}
```

レスポンスの形式は次のとおりです。

```
accept: application/jsonlines

{"target": "predicted_sequence_0"}
{"target": "predicted_sequence_1"}
```

推論のために入力と出力を特定の形式にシリアル化および逆シリアル化する方法の詳細については、[Sequence to Sequence サンプルノートブック](#seq-2-seq-sample-notebooks)を参照してください。

## Sequence to Sequence アルゴリズムの EC2 インスタンスに関する推奨事項
<a name="s2s-instances"></a>

Amazon SageMaker AI seq2seq アルゴリズムは、GPU インスタンスタイプでのみサポートし、単一のマシンでのトレーニングできます。ただし、複数の GPU を備えたインスタンスを使用することができます。seq2seq アルゴリズムは P2、P3、G4dn、G5 GPU インスタンスファミリーをサポートします。

## Sequence to Sequence サンプルノートブック
<a name="seq-2-seq-sample-notebooks"></a>

SageMaker AI Sequence to Sequence アルゴリズムを使用して英語 - ドイツ語翻訳モデルをトレーニングする方法を示すサンプルノートブックについては、「[Machine Translation English-German Example Using SageMaker AI Seq2Seq](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/seq2seq_translation_en-de/SageMaker-Seq2Seq-Translation-English-German.html)」を参照してください。SageMaker AI でサンプルを実行するために使用できる Jupyter ノートブックインスタンスを作成してアクセスする方法の詳細については、「[Amazon SageMaker ノートブックインスタンス](nbi.md)」を参照してください。ノートブックインスタンスを作成して開いたら、**[SageMaker AI サンプル]** タブを選択して、すべての SageMaker AI サンプルのリストを表示します。NTM アルゴリズムを使用したトピックモデリングのサンプルノートブックは、[**Introduction to Amazon algorithm (Amazon アルゴリズムの概要)**] セクションにあります。ノートブックを開くには、その [**Use (使用)**] タブをクリックして [**Create copy (コピーを作成)**] を選択します。

# Sequence to Sequence の仕組み
<a name="seq-2-seq-howitworks"></a>

通常、sequence-to-sequence モデリングのニューラルネットワークは、次のようなレイヤーで構成されます。
+ **埋め込みレイヤー**。このレイヤーでは、希薄な方法 (one-hot エンコードなど) でエンコードされた入力トークンである入力行列が、高密度の特徴レイヤーにマッピングされます。高次元の特徴ベクトルは、特定のトークンに関して、単純な one-hot エンコードされたベクトルよりも情報をエンコードできるため、必須です。また、標準的な方法として、この埋め込みレイヤーを事前にトレーニングを行った [FastText](https://fasttext.cc/) や [Glove](https://nlp.stanford.edu/projects/glove/) などの言語ベクトルを使用して初期化する、またはトレーニング中にそれをランダムに初期化してパラメータを学習する方法も挙げられます。
+ **エンコーダーレイヤー**。入力トークンを高密度の特徴スペースにマッピングした後、シーケンスはエンコーダーレイヤーを移行して、(全シーケンスの) 入力埋め込みレイヤーからのすべての情報を固定長の特徴ベクトルに圧縮します。通常、エンコーダーは長・短期記憶 (LSTM) やゲート付き再帰型ユニット (GRU) などの RNN タイプのネットワークで作成されます (LSTM の詳細については、[Colah のブログ](http://colah.github.io/posts/2015-08-Understanding-LSTMs/)を参考にしてください)。
+ **デコーダーレイヤー**。デコーダーレイヤーはこのエンコードされた特徴ベクトルを取得し、トークンの出力シーケンスを生成します。また、このレイヤーは通常、RNN アーキテクチャ (LSTM と GRU) で構成されます。

モデル全体が共同でトレーニングが行われ、ソースシーケンスが指定されたターゲットシーケンスの可能性を最大化します。このモデルは、2014 年に [Sutskever ら](https://papers.nips.cc/paper/5346-sequence-to-sequence-learning-with-neural-networks.pdf)によって最初に導入されました。

**アテンション機構**。エンコーダーデコーダーフレームワークの欠点は、エンコードされた固定長の特徴ベクトルに含めることのできる情報の量には制限があるため、ソースシーケンスの長さが増えるたびにモデルのパフォーマンスが減少する点です。この問題に取り組むために、Bahdanau らは 2015 年に[アテンション機構](https://arxiv.org/pdf/1409.0473.pdf)を提案しました。アテンション機構では、デコーダーが最も重要な情報が存在する可能性があるエンコーダーシーケンス内の場所の検索を試行し、その情報と以前にデコードした単語を使用して、シーケンス内の次のトークンを予測します。

詳細については、Luong らによるホワイトペーパー [Effective Approaches to Attention-based Neural Machine Translation (アテンションに基づくニューラル機械翻訳の効果的なアプローチ)](https://arxiv.org/abs/1508.04025) を参照してください。さらに、Wu らによるホワイトペーパー [Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation (Google のニューラル機械翻訳システム: 人間と機械翻訳の間での橋渡し)](https://arxiv.org/abs/1609.08144) では、Google の機械翻訳のアーキテクチャーについて説明しています。

# Sequence to Sequence ハイパーパラメータ
<a name="seq-2-seq-hyperparameters"></a>

次の表に、Amazon SageMaker AI Sequence-to-Sequence (seq2seq) アルゴリズムでトレーニングするときに設定できるハイパーパラメータを示します。


| Parameter Name | 説明 | 
| --- | --- | 
| batch\$1size | 勾配降下のミニバッチサイズ。 **オプション** 有効な値: 正の整数 デフォルト値: 64 | 
| beam\$1size | ビームサーチのビームの長さ。トレーニング中に `bleu` の計算に使用され、推論中に使用されます。 **オプション** 有効な値: 正の整数 デフォルト値: 5 | 
| bleu\$1sample\$1size | トレーニング中に `bleu` スコアをデコードして計算するために検証データセットから選択するインスタンスの数。完全な検証セットを使用するには -1 に設定します (`bleu` が `optimized_metric` として選択されている場合)。 **オプション** 有効な値: 整数 デフォルト値: 0 | 
| bucket\$1width | (source,target) バケットを最大で (`max_seq_len_source`,`max_seq_len_target`) で返します。より長い側のデータは `bucket_width` のステップを使用し、短い側はターゲット/ソースの長さの平均比でスケールダウンしたステップを使用します。一方の側が他方より先に最大長に達した場合、その側の余分なバケットの幅はその側の `max_len` に固定されます。 **オプション** 有効な値: 正の整数 デフォルト値: 10 | 
| bucketing\$1enabled | バケットを無効にし、最大長に展開するには、`false` に設定します。 **オプション** 有効な値: `true` または `false` デフォルト値: `true` | 
| checkpoint\$1frequency\$1num\$1batches | x バッチごとにチェックポイントと評価を行います。このチェックポイントハイパーパラメータは SageMaker AI の seq2seq アルゴリズムに渡され、最適なモデルを早期停止して取得できます。アルゴリズムのチェックポイントは、アルゴリズムのトレーニングコンテナ内でローカルで実行され、SageMaker AI チェックポイントとは互換性がありません。アルゴリズムは、一時的にチェックポイントをローカルパスに保存し、トレーニングジョブが停止した後、最適なモデルアーティファクトを S3 のモデル出力パスに保存します。 **オプション** 有効な値: 正の整数 デフォルト値: 1000 | 
| checkpoint\$1threshold | トレーニングが停止する前に検証データセット上の `optimized_metric` で改善しないように許可されたモデルのチェックポイントの最大数。このチェックポイントハイパーパラメータは SageMaker AI の seq2seq アルゴリズムに渡され、最適なモデルを早期停止して取得できます。アルゴリズムのチェックポイントは、アルゴリズムのトレーニングコンテナ内でローカルで実行され、SageMaker AI チェックポイントとは互換性がありません。アルゴリズムは、一時的にチェックポイントをローカルパスに保存し、トレーニングジョブが停止した後、最適なモデルアーティファクトを S3 のモデル出力パスに保存します。 **オプション** 有効な値: 正の整数 デフォルト値： 3 | 
| clip\$1gradient | これより大きなクリップのグラデーション絶対値。無効にするには、負の値に設定します。 **オプション** 有効な値: 浮動小数点数 デフォルト値： 1 | 
| cnn\$1activation\$1type | 使用される `cnn` のアクティベーションタイプ。 **オプション** 有効な値： 文字列。`glu`、`relu`、`softrelu`、`sigmoid`、`tanh` のいずれか。 デフォルト値: `glu` | 
| cnn\$1hidden\$1dropout | 畳み込みレイヤー間のドロップアウトのドロップアウトする確率。 **オプション** 有効な値: 浮動小数点数。[0,1] の範囲です。 デフォルト値: 0 | 
| cnn\$1kernel\$1width\$1decoder | `cnn` デコーダーのカーネル幅。 **オプション** 有効な値: 正の整数 デフォルト値: 5 | 
| cnn\$1kernel\$1width\$1encoder | `cnn` エンコーダーのカーネル幅。 **オプション** 有効な値: 正の整数 デフォルト値： 3 | 
| cnn\$1num\$1hidden | エンコーダーやデコーダーの `cnn` の非表示ユニットの数。 **オプション** 有効な値: 正の整数 デフォルト値: 512 | 
| decoder\$1type | デコーダーの種類。 **オプション** 有効な値： 文字列。`rnn` または `cnn` です。 デフォルト値: *rnn* | 
| embed\$1dropout\$1source | ソース側の埋め込みのドロップアウトする確率。 **オプション** 有効な値: 浮動小数点数。[0,1] の範囲です。 デフォルト値: 0 | 
| embed\$1dropout\$1target | ターゲット側の埋め込みのドロップアウトする確率。 **オプション** 有効な値: 浮動小数点数。[0,1] の範囲です。 デフォルト値: 0 | 
| encoder\$1type | エンコーダーの種類。`rnn` アーキテクチャーは Bahdanau らによるアテンション機構に基づいており、*cnn* アーキテクチャーは Gehring らに基づいています。 **オプション** 有効な値： 文字列。`rnn` または `cnn` です。 デフォルト値: `rnn` | 
| fixed\$1rate\$1lr\$1half\$1life | `fixed_rate_`\$1 のスケジューラのチェックポイント数に関する学習レートの半減期。 **オプション** 有効な値: 正の整数 デフォルト値: 10 | 
| learning\$1rate | 初期学習レート。 **オプション** 有効な値: 浮動小数点数 デフォルト値: 0.0003 | 
| loss\$1type | トレーニングの損失関数。 **オプション** 有効な値: 文字列。 `cross-entropy` デフォルト値: `cross-entropy` | 
| lr\$1scheduler\$1type | 学習レートスケジューラタイプ。`plateau_reduce` は、`validation_accuracy` の `optimized_metric` がプラトーに達するたびに学習レートを下げることを意味します。`inv_t` は逆時間減衰です。`learning_rate`/(1\$1`decay_rate`\$1t) **オプション** 有効な値： 文字列。`plateau_reduce`、`fixed_rate_inv_t`、`fixed_rate_inv_sqrt_t` のいずれか 1 つ。 デフォルト値: `plateau_reduce` | 
| max\$1num\$1batches | 処理する更新/バッチの最大数。無限の場合は -1。 **オプション** 有効な値: 整数 デフォルト値: -1 | 
| max\$1num\$1epochs | フィッティングが停止する前にトレーニングデータを移行するエポックの最大数。このパラメータが渡された場合に検証の正確性が改善しない場合でも、トレーニングはエポックがこの数に達するまで続行されます。渡されない場合は無視されます。 **オプション** 有効な値: max\$1num\$1epochs 以下の正の整数。 デフォルト値: なし | 
| max\$1seq\$1len\$1source | ソースシーケンスの長さの最大長。この長さより長いシーケンスはこの長さに切り捨てられます。 **オプション** 有効な値: 正の整数 デフォルト値: 100  | 
| max\$1seq\$1len\$1target | ターゲットシーケンスの長さの最大長。この長さより長いシーケンスはこの長さに切り捨てられます。 **オプション** 有効な値: 正の整数 デフォルト値: 100 | 
| min\$1num\$1epochs | トレーニングが `early_stopping` 条件に従って停止されるまでに実行する必要のあるエポックの最小数。 **オプション** 有効な値: 正の整数 デフォルト値: 0 | 
| momentum | `sgd` に使用されるモーメンタム定数。`adam` または `rmsprop` を使用している場合は、このパラメータを渡さないでください。 **オプション** 有効な値: 浮動小数点数 デフォルト値: なし | 
| num\$1embed\$1source | ソーストークンの埋め込みサイズ。 **オプション** 有効な値: 正の整数 デフォルト値: 512 | 
| num\$1embed\$1target | ターゲットトークンの埋め込みサイズ。 **オプション** 有効な値: 正の整数 デフォルト値: 512 | 
| num\$1layers\$1decoder | デコーダー *rnn* または *cnn* のレイヤーの数。 **オプション** 有効な値: 正の整数 デフォルト値： 1 | 
| num\$1layers\$1encoder | エンコーダー `rnn` または `cnn` のレイヤーの数。 **オプション** 有効な値: 正の整数 デフォルト値： 1 | 
| optimized\$1metric | 早期停止を最適化するメトリクス。 **オプション** 有効な値： 文字列。`perplexity`、`accuracy`、`bleu` のいずれか 1 つ。 デフォルト値: `perplexity` | 
| optimizer\$1type | 選択するオプティマイザー。 **オプション** 有効な値： 文字列。`adam`、`sgd`、`rmsprop` のいずれか 1 つ。 デフォルト値: `adam` | 
| plateau\$1reduce\$1lr\$1factor | 学習レートを乗算する係数 (`plateau_reduce` の場合)。 **オプション** 有効な値: 浮動小数点数 デフォルト値: 0.5 | 
| plateau\$1reduce\$1lr\$1threshold | `plateau_reduce` スケジューラでは、`optimized_metric` がこの数のチェックポイントを改善しなかった場合、学習レートに減衰係数を乗算します。 **オプション** 有効な値: 正の整数 デフォルト値： 3 | 
| rnn\$1attention\$1in\$1upper\$1layers | Google NMT のペーパーのように、アテンションを *rnn* の上位レイヤーに渡します。複数のレイヤーが使用されている場合にのみ適用できます。 **オプション** 有効な値: ブール値 (`true` または `false`) デフォルト値: `true` | 
| rnn\$1attention\$1num\$1hidden | アテンションレイヤーの非表示ユニットの数。デフォルトは `rnn_num_hidden` です。 **オプション** 有効な値: 正の整数 デフォルト値: `rnn_num_hidden` | 
| rnn\$1attention\$1type | エンコーダーのアテンションモデル。Luong らのペーパーによると、`mlp` は concat を参照し、bilinear は general を参照します。 **オプション** 有効な値： 文字列。`dot`、`fixed`、`mlp`、`bilinear` のいずれか。 デフォルト値: `mlp` | 
| rnn\$1cell\$1type | 特定のタイプの `rnn` アーキテクチャー。 **オプション** 有効な値： 文字列。`lstm` または `gru` です。 デフォルト値: `lstm` | 
| rnn\$1decoder\$1state\$1init | `rnn` デコーダーの状態をエンコーダーから初期化する方法。 **オプション** 有効な値： 文字列。`last`、`avg`、`zero` のいずれか 1 つ。 デフォルト値: `last` | 
| rnn\$1first\$1residual\$1layer | 残差接続がある最初の *rnn* レイヤー、エンコーダーまたはデコーダー内のレイヤーの数が 1 を超える場合にのみ適用可能。 **オプション** 有効な値: 正の整数 デフォルト値: 2 | 
| rnn\$1num\$1hidden | エンコーダーおよびデコーダーの *rnn* の非表示ユニットの数。このアルゴリズムはデフォルトで双方向の長短期記憶 (LSTM) を使用するため、これは 2 の倍数である必要があります。 **オプション** 有効な値: 正の偶数 デフォルト値: 1024 | 
| rnn\$1residual\$1connections | 多層 *rnn* に残差接続を追加する。レイヤーの数は 1 を超える必要があります。 **オプション** 有効な値: ブール値 (`true` または `false`) デフォルト値: `false` | 
| rnn\$1decoder\$1hidden\$1dropout | コンテキストをデコーダーの *rnn* の非表示状態を組み合わせる、非表示状態のドロップアウトする確率。 **オプション** 有効な値: 浮動小数点数。[0,1] の範囲です。 デフォルト値: 0 | 
| training\$1metric | 検証データ上のトレーニングを追跡するメトリクス。 **オプション** 有効な値： 文字列。`perplexity` または `accuracy` です。 デフォルト値: `perplexity` | 
| weight\$1decay | 重み減衰定数。 **オプション** 有効な値: 浮動小数点数 デフォルト値: 0 | 
| weight\$1init\$1scale | 重み初期化方法のスケール (初期化方法が `uniform` および `xavier` の場合)。 **オプション** 有効な値: 浮動小数点数 デフォルト値: 2.34 | 
| weight\$1init\$1type | 重み初期化方法の種類。 **オプション** 有効な値： 文字列。`uniform` または `xavier` です。 デフォルト値: `xavier` | 
| xavier\$1factor\$1type | Xavier の係数タイプ。 **オプション** 有効な値： 文字列。`in`、`out`、`avg` のいずれか 1 つ。 デフォルト値: `in` | 

# Sequence to Sequence モデルを調整する
<a name="seq-2-seq-tuning"></a>

*自動モデル調整*は、ハイパーパラメータ調整とも呼ばれ、データセットのさまざまなハイパーパラメータをテストする多数のジョブを実行して、モデルの最適なバージョンを見つけます。調整可能なハイパーパラメータ、それぞれの値の範囲、および目標メトリクスを選択します。アルゴリズムが計算するメトリクスから目標メトリクスを選択します。自動モデル調整は、選択されたハイパーパラメータを検索して、目標メトリクスを最適化するモデルになる値の組み合わせを見つけます。

モデル調整の詳細については、「[SageMaker AI の自動モデルチューニング](automatic-model-tuning.md)」を参照してください。

## Sequence to Sequence アルゴリズムで計算されるメトリクス
<a name="seq-2-seq-metrics"></a>

Sequence to Sequence アルゴリズムは、トレーニング中に計算される 3 つのメトリクスを報告します。ハイパーパラメータ値を調整するときに最適化する目標として、いずれか 1 つを選択します。


| メトリクス名 | 説明 | 最適化の方向 | 
| --- | --- | --- | 
| validation:accuracy |  検証データセットで計算される精度。  |  最大化  | 
| validation:bleu |  検証データセットで計算される [BLEU](https://en.wikipedia.org/wiki/BLEU) スコア。BLEU の計算は高価であるため、検証データセットのランダムなサブサンプルに対して BLEU を計算するように選択すると、全体的なトレーニングプロセスを加速することができます。サブサンプルを指定するには、`bleu_sample_size` パラメータを使用します。  |  最大化  | 
| validation:perplexity |  [Perplexity](https://en.wikipedia.org/wiki/Perplexity) は、検証データセットで計算される損失関数です。Perplexity は、経験的サンプルとモデル予測の分布との間の交差エントロピーを測定するため、モデルがサンプル値をどの程度予測できるかの尺度を提供します。サンプルの予測に優れたモデルは、Perplexity が低くなります。  |  最小化  | 

## Sequence to Sequence ハイパーパラメータを調整する
<a name="seq-2-seq-tunable-hyperparameters"></a>

SageMaker AI Sequence to Sequence アルゴリズムの次のハイパーパラメータを調整できます。Sequence to Sequence の目標メトリクスに最も大きな影響を与えるハイパーパラメータは、`batch_size`、`optimizer_type`、`learning_rate`、`num_layers_encoder`、および `num_layers_decoder` です。


| パラメータ名 | パラメータタイプ | 推奨範囲 | 
| --- | --- | --- | 
| num\$1layers\$1encoder |  IntegerParameterRange  |  [1-10]  | 
| num\$1layers\$1decoder |  IntegerParameterRange  |  [1-10]  | 
| batch\$1size |  CategoricalParameterRange  |  [16,32,64,128,256,512,1024,2048]  | 
| optimizer\$1type |  CategoricalParameterRange  |  ['adam', 'sgd', 'rmsprop']  | 
| weight\$1init\$1type |  CategoricalParameterRange  |  ['xavier', 'uniform']  | 
| weight\$1init\$1scale |  ContinuousParameterRange  |  xavier タイプの場合: MinValue: 2.0、MaxValue: 3.0、uniform タイプの場合: MinValue: -1.0、MaxValue: 1.0  | 
| learning\$1rate |  ContinuousParameterRange  |  MinValue: 0.00005、MaxValue: 0.2  | 
| weight\$1decay |  ContinuousParameterRange  |  MinValue: 0.0、MaxValue: 0.1  | 
| momentum |  ContinuousParameterRange  |  MinValue: 0.5、MaxValue: 0.9  | 
| clip\$1gradient |  ContinuousParameterRange  |  MinValue: 1.0、MaxValue: 5.0  | 
| rnn\$1num\$1hidden |  CategoricalParameterRange  |  再帰型ニューラルネットワーク (RNN) にのみ適用できます。[128,256,512,1024,2048]   | 
| cnn\$1num\$1hidden |  CategoricalParameterRange  |  畳み込みニューラルネットワーク (CNN) にのみ適用できます。[128,256,512,1024,2048]   | 
| num\$1embed\$1source |  IntegerParameterRange  |  [256-512]  | 
| num\$1embed\$1target |  IntegerParameterRange  |  [256-512]  | 
| embed\$1dropout\$1source |  ContinuousParameterRange  |  MinValue: 0.0、MaxValue: 0.5  | 
| embed\$1dropout\$1target |  ContinuousParameterRange  |  MinValue: 0.0、MaxValue: 0.5  | 
| rnn\$1decoder\$1hidden\$1dropout |  ContinuousParameterRange  |  MinValue: 0.0、MaxValue: 0.5  | 
| cnn\$1hidden\$1dropout |  ContinuousParameterRange  |  MinValue: 0.0、MaxValue: 0.5  | 
| lr\$1scheduler\$1type |  CategoricalParameterRange  |  ['plateau\$1reduce', 'fixed\$1rate\$1inv\$1t', 'fixed\$1rate\$1inv\$1sqrt\$1t']  | 
| plateau\$1reduce\$1lr\$1factor |  ContinuousParameterRange  |  MinValue: 0.1、MaxValue: 0.5  | 
| plateau\$1reduce\$1lr\$1threshold |  IntegerParameterRange  |  [1-5]  | 
| fixed\$1rate\$1lr\$1half\$1life |  IntegerParameterRange  |  [10-30]  | 