モデルを定義してトレーニングするために、多くのハイパーパラメータを選択する必要がありました。直感、例、おすすめの方法を参考にしました。ただし、最初にハイパーパラメータ値を選択しても、最適な結果が得られない可能性があります。これは、トレーニングの出発点にすぎない。すべての問題は異なります。これらのハイパーパラメータを調整すると、モデルの絞り込みを行い、発生している問題の特異性をより適切に再現できます。使用したハイパーパラメータのいくつかと、それらの調整の意味を見てみましょう。
モデルのレイヤ数: ニューラル ネットワークのレイヤ数は、その複雑さの指標です。この値を選択する際は注意が必要です。レイヤが多すぎると、モデルがトレーニング データに関して大量の情報を学習し、過学習の原因となります。レイヤが少なすぎると、モデルの学習能力が制限され、適合不足を引き起こす可能性があります。テキスト分類データセットについては、1 レイヤ、2 レイヤ、3 レイヤの MLP をテストしました。2 レイヤモデルのモデルはうまく機能しており、場合によっては 3 レイヤモデルよりも優れたパフォーマンスを発揮します。同様に、4 層と 6 層で sepCNN を試したところ、4 層モデルの性能が良好でした。
レイヤあたりのユニット数: レイヤのユニットは、レイヤが実行する変換の情報を保持する必要があります。最初のレイヤでは、これは特徴の数によって決まります。後続のレイヤでユニット数は、前のレイヤで表現を展開または縮小するかどうかによって異なります。レイヤ間の情報損失を最小限に抑えるようにしてください。
[8, 16, 32, 64]
の範囲の単位を試しましたが、32/64 単位がうまく機能しました。ドロップアウト率: ドロップアウト レイヤは、モデルで正則化に使用されます。過学習の対策として、破棄する入力の割合を定義します。推奨範囲: 0.2 ~ 0.5。
学習率: イテレーション間でニューラル ネットワークの重みが変化する頻度です。学習率が高いと重みが大きく変動し、最適な値を見つけられないことがあります。学習率は低くても問題ありませんが、収束にさらに反復処理が必要になります。最初は 1e-4 から始めることをおすすめします。トレーニングが非常に遅い場合は、この値を増やします。モデルが学習していない場合は、学習率を下げてみてください。
spCNN モデルに固有の、調整したハイパーパラメータは他にもあります。
カーネルサイズ: 畳み込みウィンドウのサイズ。推奨値: 3 または 5。
埋め込みディメンション: 単語のエンベディングを表すために使用するディメンションの数。つまり、各単語ベクトルのサイズです。推奨値: 50 ~ 300。Google のテストでは、事前トレーニング済みのエンベディング レイヤで、200 次元の GloVe エンベディングを使用しました。
これらのハイパーパラメータを試し、何が最適かを確かめてください。ユースケースに最適なパフォーマンスのハイパーパラメータを選択したら、モデルをデプロイできます。