01 / UNDERSTAND
仕組みと使いどころ
RNNでは、時刻tの隠れ状態は現在の入力と直前の隠れ状態から計算されます。多層RNNの出力には各時点における最終層の出力特徴が含まれ、最終隠れ状態も返されます。Transformerでは、output_hidden_statesを有効にすると、埋め込み層の出力と各層の出力が、一般にバッチサイズ、系列長、隠れ次元を持つテンソルの組として返されます。最終層の隠れ状態は分類などの後段処理に利用できます。ただし、モデルによっては正規化などの後処理があるため、last_hidden_stateとhidden_statesの最後の要素が常に完全に一致するとは限りません。
02 / IN PRACTICE
Hidden stateの活用例
たとえば、こんな場面で
RNNを使った品詞分類では、LSTMが出力した各単語の隠れ状態を線形層へ入力し、品詞ごとのスコアを計算できます。Transformerでは、設定を有効にして各層の隠れ状態を取得できます。
03 / GOOD TO KNOW
使うときのポイント
利用時は、隠れ状態を返す設定、取得対象の層、テンソルの形状を確認してください。最終層については、last_hidden_stateに追加処理が適用されていないかもモデルの仕様で確認します。
参考資料
Model outputs · Hugging Face (新しいタブで開きます)RNN — PyTorch main documentation (新しいタブで開きます)Building Models with PyTorch — PyTorch Tutorials 2.15.0+cu132 documentation (新しいタブで開きます)用語の説明や活用例に関連する参考資料です。
READ & LEARN
記事一覧を見る 用語を知ったら、活用を知る。
AI LABで、AIの動向や業務に取り入れるヒントを読む。
