AI LAB / KEYWORD DICTIONARY

基礎知識

Hidden state(隠れ状態)とは?

隠れ状態は、ニューラルネットワークが入力を処理する過程で計算する内部状態です。RNNでは系列の前の時点から次の時点へ渡され、Transformerでは埋め込み層や各層の出力として取得できます。

仕組みと使いどころ

RNNでは、時刻tの隠れ状態は現在の入力と直前の隠れ状態から計算されます。多層RNNの出力には各時点における最終層の出力特徴が含まれ、最終隠れ状態も返されます。Transformerでは、output_hidden_statesを有効にすると、埋め込み層の出力と各層の出力が、一般にバッチサイズ、系列長、隠れ次元を持つテンソルの組として返されます。最終層の隠れ状態は分類などの後段処理に利用できます。ただし、モデルによっては正規化などの後処理があるため、last_hidden_stateとhidden_statesの最後の要素が常に完全に一致するとは限りません。

Hidden stateの活用例

たとえば、こんな場面で

RNNを使った品詞分類では、LSTMが出力した各単語の隠れ状態を線形層へ入力し、品詞ごとのスコアを計算できます。Transformerでは、設定を有効にして各層の隠れ状態を取得できます。

使うときのポイント

利用時は、隠れ状態を返す設定、取得対象の層、テンソルの形状を確認してください。最終層については、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の動向や業務に取り入れるヒントを読む。

記事一覧を見る