G検定単語帳 - ディープラーニングの要素技術

全結合層

機械学習に用いられるニューラルネットワークを構成する層の種類の一つで、すべてのノードが、一つ上の層のすべてのノードと結びついているもの。最も基本的な構造で、上位層から受け取ったデータの特徴を組み合わせ、より抽象的な特徴を表現する働きを持つ。

ニューラルネットワークとは

人工ニューラルネットワーク(人工知能の文脈では単にニューラルネットワーク)は、動物の脳の神経回路の構造と働きを模式化したモデルである。刺激に反応する神経細胞(ニューロン)を模したノードを層状に配置した構造で、入力層、1層以上の隠れ層(中間層)、出力層で構成される。

各ノードは固有のパラメータに基いて比較的単純な計算を行う能力を持ち、上位層の各ノードの計算結果を入力として所定の計算を行う。計算結果は下位層の各ノードへそれぞれ固有の重み付けを行った上で出力される。最上位の入力層は外部からデータを受け取り、最下位の出力層は外部へデータを出力する。

全結合層とは

全結合層は最も基本的な構造の層で、その層のすべてのノードが、一つ上の層のすべてのノードと結びついている。各ノードは前の層のすべての出力を受け取り、それぞれに異なる重みを乗じて加算する。これに自らが内部に持つバイアス値を加算して、最後に活性化関数で変換した値を次の層のノードへ出力する。

基本的なニューラルネットワークは隠れ層として全結合層を何層も重ねた構造を持つ。全結合層は前の層で抽出された特徴量を組み合わせて、より抽象度の高い特徴を表現することができる。出力層として用いられる場合は、上層から得られるすべての情報を集約し、最終的な判断に必要な情報へと統合する役割を果たす。

全結合層は表現力が高い反面、結合の数が多いためパラメータ数も多くなり、学習時の計算量が大きくなりやすい。また、データ全体の特徴を均等に扱うため、画像の解析のように局所的な特徴や構造を組み合わせた判断はうまく行うことができない。そのような場合には、結合に制約を設けた「畳み込み層」(convolutional layer)など、異なる構造の層を用意する。

パラメータ数

機械学習に用いられる人工ニューラルネットワークで、ネットワーク内部で学習によって変化する重みやバイアスなどのパラメータ(係数)の総数。モデルの規模を示す最も基本的な量の一つで、モデルの表現能力や計算負荷などに密接に関係する。

ニューラルネットワークとは

ニューラルネットワークは、動物の脳の神経回路の構造と働きを模式化したモデルである。刺激に反応する神経細胞(ニューロン)を模した「ノード」(ユニットとも呼ばれる)を層状に配置した構造で、入力層、1層以上の隠れ層(中間層)、出力層で構成される。

各ノードは前の層のノード出力を受け取り、それぞれに異なる「重み」と呼ばれるパラメータを乗じて加算する。これに自らが内部に持つ「バイアス」と呼ばれるパラメータを加算して、最後に活性化関数で変換した値を次の層のノードへ出力する。最上位の入力層は外部からデータを受け取り、最下位の出力層は外部へデータを出力する。

パラメータ数とは

あるモデルが学習データに基づいて最適化するパラメータは、ノード間の繋がりが持つ「重み」と、ノードごとに保持している「バイアス」、それ以外のモデル固有の係数があり、その数の合計がそのモデルのパラメータ数となる。各層のパラメータ数を合計することでネットワーク全体のパラメータ数を求めることができる。

すべてのノードが前の層のすべてのノードと繋がっている全結合層の場合、前の層のノード数とその層のノード数の積(重みの数)に、その層のノードの数(バイアスの数)を加えたものがパラメータ数である。画像などの局所的な特徴を捉える畳み込み層の場合は、フィルタの大きさ、チャネル数、フィルタ数の積に、バイアスの数を加えた値となる。

パラメータ数と性能・負荷

基本的にはパラメータ数が大きければ大きいほどネットワークの表現力は高まり、様々なデータの特徴を学んで複雑な問題を解けるようになる。一方、パラメータが多いほど学習データを与えたときのパラメータ更新にかかる計算量やメモリ容量、所要時間は増大する。

2010年代に深層ニューラルネットワーク(DNN)の研究・開発が進展し、パラメータ数や学習データ数を増やせば増やすほど性能が向上する「スケーリング則」が見出された。2020年代にはパラメータ数を増大させる方向で開発者間の競争が激化し、大規模言語モデル(LLM)などの汎用的なモデルのパラメータ数は急激に増大している。

パラメータ数はモデルの特性を表す基本事項であるため、「llama-3-8B」といったようにモデル名やバージョン番号と共に表記されることが多い。近年では極めて大きな数となるため、英語の数詞を略した「M」(Million:100万)、「B」(Billion:10億)、「T」(Trillion:1兆)といったアルファベットを用いて表記する。例えば、「300M」なら100万×300で3億、「10B」なら10億×10で100億を意味する。

重み

統計解析や機械学習の分野において、複数の要素の影響を加味して一つの結果を得る際、各要素の相対的な重要度を示す値のこと。回帰分析やニューラルネットワークなど、複数の入力から一つの結果を予測するモデルにおいて、各入力が結果にどれだけ重要であるかを決定する係数である。

最も古典的な用例は、線形回帰分析における回帰係数である。予測したい目的変数を入力である説明変数の線形和(係数を乗じた値の和)で表現する際、それぞれの説明変数に乗じられる係数が重みである。この値が大きいほど、その説明変数が目的変数の予測に強く影響していることを意味し、逆に重みが極めて小さな値(またはゼロ)であれば、その変数は予測にほとんど寄与していないことを表す。

ニューラルネットワークでは、重みは各層のノード間の接続の強さを表すパラメータである。前の層のノードが出力した信号は、この重みを乗じて次の層のノードに伝達される。ニューラルネットワークの学習(訓練)とは、与えられた学習データと正解との誤差(損失)を最小化するように、各ノード間の重みを調整していくプロセスである。

機械学習における重みの最適化には、勾配降下法などのアルゴリズムが用いられ、モデルが学習データに内在する特有のパターンや特徴を学習することを可能にする。 重みはバイアス(前の層からの出力の重み付き和に加算するノード固有の値)と共にモデルの内部状態を規定するパラメータであり、モデルが学習によって獲得した知識や規則などを数値として保持する役割を果たしている。

線形関数

入力と出力が直線的な関係を持つ関数。式で表すと入力に係数を乗じて足し合わせた一次式で表されるような関数である。

入力が一つの最も簡単な形式だと f(x)=ax+b (aとbは定数)のように表される関数で、平面上にグラフとして描画すると直線となる。多変数の場合は f(x)=a1x1+a2x2++anxn+b のように各入力に係数を乗じた一次の項の和として表される。入力の累乗や対数、指数関数、三角関数などの曲線的な関係は含まない。

統計解析では、線形回帰や線形分類モデルなどが与えられたデータの特徴を表すのに線形関数を用いる。ある入力データの特徴量に重みをかけ、バイアス(定数)を足し合わせることで、目的とする出力を予測する。

ニューラルネットワークでは、上層の各ノードからの出力値は、それぞれ係数を乗じて加算した線形関数の形で下層のノードに伝達される。係数の大きい項は計算結果に大きく寄与し、逆に小さい項は結果に与える影響が小さい(ゼロならば無視される)。係数の大きさがノード間の繋がりの強さを表しており、学習データを用いてこれを調整することが学習プロセスの中心となる。

畳み込み層

ニューラルネットワークの特殊な層の構造の一つで、入力データから局所的な特徴を抽出する機能を持つもの。画像認識など局所的な特徴の組み合わせが重要となる分野でよく用いられる。

ニューラルネットワークでは層状に重なったノード群が入力データから特徴を抽出してパラメータとして記録していく。一般的なモデルでは、上層のすべてのノードが下層のすべてのノードに接続された「全結合層」を用いるが、データ全体の特徴を均等に扱うため、画像の部分的な特徴を捉えるといった機能を実装することは難しい。

畳み込み層はノード間の接続が制限された層で、様々なパターンの局所的な特徴を表すノード群で構成される。各ノード群は捉えた特徴を後続のプーリング層へ送る。畳み込み層を含むモデルを「畳み込みニューラルネットワーク」(CNN:Convolutional Neural Network)という。

畳み込み層は脳の視覚野にある「単純型細胞」の働きを模したもので、縦線、横線、曲線といった画像に含まれる断片的な小さな特徴を検知して下層のノードへ伝達する。特徴は「フィルタ」あるいは「カーネル」と呼ばれる小さな行列で表現され、画像のどの位置にどの特徴があるかを示す「特徴マップ」が下層へ送られる。

プーリング層は脳の視覚野にある「複雑型細胞」の働きを模したもので、畳み込み層から得た特徴マップに一定の演算を行ってサイズを縮小する。畳み込み層とプーリング層は交互に何段階か重ね、下層へ行くほど小さな特徴を組み合わせた、より大きな特徴を捉える。最下層に全結合層を置き、様々な特徴の情報を流し込んで総合的な分類や予測などを行う。

Atrous Convolution

畳み込みニューラルネットワーク(CNN)でフィルタによる特徴抽出を行う際、一定の間隔を開けて移動させる畳み込み手法。パラメータ数を増やさずに受容野を拡大できる。

ニューラルネットワークの特殊な層の構造である「畳み込み層」は、脳の視覚野にある「単純型細胞」の働きを模したもので、画像のように空間構造を持つデータの中から局所的な特徴を抽出し、その位置を下層に伝える働きをする。

画像解析の場合、縦線、横線、曲線といった画像に含まれる断片的な小さな特徴に対応する「フィルタ」あるいは「カーネル」という小さな行列を用意し、これを画像の左上から右下へ一定の幅で移動しながら、各位置のデータ断片と照合する。全体をスキャンしたら、フィルタの特徴を発見した位置を並べた「特徴マップ」を作成し、下層へ出力する。

通常の畳み込み処理では隣接する領域に次のフィルタ照合を行うが、拡張畳み込みでは「膨張率」というハイパーパラメータで指定した間隔を空けて飛び飛びに照合する。例えば、膨張率が「1」の場合はフィルタの幅と同じだけ移動するため標準的な畳み込みと同じだが、膨張率を「2」や「3」に設定すると幅の2倍、3倍を一気に移動するため、広範囲の情報を一度に取り込めるようになる。

フィルタのサイズを拡大する必要がないため、通常の畳み込みからパラメータ数と計算量を増やさずに広範囲をカバーできるようになる。ただし、膨張率を過度に大きくすると入力空間を粗く、途切れ途切れにサンプリングする形となり、連続したパターンの把握が難しくなる場合がある。

Depthwise Separable Convolution

畳み込みニューラルネットワーク(CNN)でフィルタによる特徴抽出を行う際、チャネルごとの空間方向の畳み込みと、チャネル間の結合を分離して二段階で行う手法。性能を極力維持しながら計算量を大幅に削減することができる。

ニューラルネットワークの特殊な層の構造である「畳み込み層」は、脳の視覚野にある「単純型細胞」の働きを模したもので、画像のように空間構造を持つデータの中から局所的な特徴を抽出し、その位置を下層に伝える働きをする。

画像解析の場合、縦線、横線、曲線といった画像に含まれる断片的な小さな特徴に対応する「フィルタ」あるいは「カーネル」という小さな行列を用意し、これを画像の左上から右下へ一定の幅で移動しながら、各位置のデータ断片と照合する。全体をスキャンしたら、フィルタの特徴を発見した位置を並べた「特徴マップ」を作成し、下層へ出力する。

カラー画像のように複数のチャネルの重ね合わせで構成されるデータを扱う際、通常の畳み込み処理では、幅×高さ×チャネル数の3次元のフィルタを用意して照合していくが、計算量が大きい難点がある。一方、深さ単位分離可能畳み込みでは、畳み込みをチャネルごと(depthwise)の空間方向と、各点ごと(pointwise)のチャネル方向に分けて二段階で行う。

最初はチャネルごとに平面フィルタを用いて各チャネルのデータに対して空間方向の畳み込みを行い、その出力に対して、今度は1×1×チャネル数のフィルタによってチャネル方向の畳み込みを行う。通常の3次元的な畳み込みと遜色ない結果が得られることが知られており、入力チャネル数が多い場合に特に顕著な計算量の削減効果がある。

Dilated Convolution

畳み込みニューラルネットワーク(CNN)でフィルタによる特徴抽出を行う際、一定の間隔を開けて移動させる畳み込み手法。パラメータ数を増やさずに受容野を拡大できる。

ニューラルネットワークの特殊な層の構造である「畳み込み層」は、脳の視覚野にある「単純型細胞」の働きを模したもので、画像のように空間構造を持つデータの中から局所的な特徴を抽出し、その位置を下層に伝える働きをする。

画像解析の場合、縦線、横線、曲線といった画像に含まれる断片的な小さな特徴に対応する「フィルタ」あるいは「カーネル」という小さな行列を用意し、これを画像の左上から右下へ一定の幅で移動しながら、各位置のデータ断片と照合する。全体をスキャンしたら、フィルタの特徴を発見した位置を並べた「特徴マップ」を作成し、下層へ出力する。

通常の畳み込み処理では隣接する領域に次のフィルタ照合を行うが、拡張畳み込みでは「膨張率」というハイパーパラメータで指定した間隔を空けて飛び飛びに照合する。例えば、膨張率が「1」の場合はフィルタの幅と同じだけ移動するため標準的な畳み込みと同じだが、膨張率を「2」や「3」に設定すると幅の2倍、3倍を一気に移動するため、広範囲の情報を一度に取り込めるようになる。

フィルタのサイズを拡大する必要がないため、通常の畳み込みからパラメータ数と計算量を増やさずに広範囲をカバーできるようになる。ただし、膨張率を過度に大きくすると入力空間を粗く、途切れ途切れにサンプリングする形となり、連続したパターンの把握が難しくなる場合がある。

カーネル

オペレーティングシステム(OS)の中核となるソフトウェア。動作中のプログラムの実行状態を管理したり、ハードウェア資源を管理してプログラムがハードウェアの機能を利用する手段を提供したりする。

カーネルはコンピュータの起動時にブートローダなどによって一番最初に起動され、特権モードなど強い権限を持つ特別な動作モードで実行される。起動後は電源断や再起動まで常駐し続け、プログラムの起動や終了後の後始末(専有していたメモリ領域の回収など)を行う。

CPUやメインメモリ、ストレージ、入出力機器、ネットワークなど、コンピュータを構成するハードウェア資源(デバイス)を管理する。装置の仕様の違いによらず同じ手順でアプリケーションソフトから利用できるよう抽象化された操作手段を提供する。

また、メモリ空間から各プログラムに必要な容量を割り当てたり(メモリ管理)、複数のプログラムを並行して実行できるようCPUが実行するプログラムを短時間ごとに細かく切り替えたり(プロセス管理)、実行中のプログラム間でデータをやりとりする手段(プロセス間通信)を提供したりする。

カーネルがアプリケーションに提供する機能や、それを利用するために呼び出す命令や関数などのことを「システムコール」(system call)あるいは「スーパーバイザコール」(SVC:supervisor call)などという。

モノリシックカーネルとマイクロカーネル

OSの機能をほとんどカーネル内部に取り込み、巨大な単一のカーネルとして機能させる設計方針を「モノリシックカーネル」(monolithic kernel)、カーネルには最低限の機能しか実装せず、大半の機能をモジュール化して外部化する設計方針を「マイクロカーネル」(microkernel)という。

モノリシックカーネルは全体を緊密に連携でき性能上有利だが、一部の問題がシステム全体を巻き込みやすく安定性を確保するのが難しくなる。マイクロカーネルは外部化されたモジュールと通信するための性能上のロス(オーバーヘッド)が生じるが、問題を局所化しやすく部分的な修正や入れ替えなども行いやすい。

両者の特徴を併せ持ち、全体としてはモノリシックカーネルとして設計されているが、限られた一部の機能をモジュール化してユーザー空間で実行するようにした設計を「ハイブリッドカーネル」(hybrid kernel)という。近年のWindowsやmacOSなどがこれに分類される。

ストライド

歩幅、またぐ、大股で歩く、などの意味を持つ英単語。畳み込みニューラルネットワーク(CNN)では、データの局所的な特徴を抽出する際、特徴を表すフィルタ(カーネル)をデータの上で移動させる刻み幅を指す。事前に決めておく設定値(ハイパーパラメータ)の一つで、特徴抽出の密度を調整する。

ニューラルネットワークの特殊な層の構造である「畳み込み層」は、脳の視覚野にある「単純型細胞」の働きを模したもので、画像のように空間構造を持つデータの中から局所的な特徴を抽出し、その位置を下層に伝える働きをする。

画像解析の場合、縦線、横線、曲線といった画像に含まれる断片的な小さな特徴に対応する「フィルタ」あるいは「カーネル」という小さな行列を用意し、これを画像の左上から右下へ一定の幅で移動しながら、各位置のデータと照合する。全体をスキャンしたら、フィルタの特徴を発見した位置を特徴マップにまとめて下層へ出力する。

この畳み込み操作における一回の移動幅がストライドで、1以上の整数で表される。例えば、ストライドが「1」なら、画像内のある画素を始点にフィルタのパターンを照合したあと、始点を1画素隣へ移動して、その位置から再び照合を行う。ストライドが「2」なら2画素ずつ、「4」なら4画素ずつ隣に移動していく。

ストライドが大きいほどフィルタの照合回数が減り、出力される特徴マップのサイズは小さくなる。特徴量をより大まかに捉え、細かな位置ズレに影響されにくくなる。逆に、小さなストライドを設定すれば、入力データの詳細な情報を保持したまま、密度の高い特徴抽出が可能となる。空間的な解像度と計算量のバランスを取るため、用途に応じた最適な値を設定する必要がある。

畳み込み操作

ニューラルネットワークで画像などの局所的な特徴を抽出する処理。入力データに対して小さな領域ごとに同一のパターンを重ね合わせ、一致する領域を拾い上げる。画像認識などで利用される。

ニューラルネットワークの特殊な層の構造である「畳み込み層」で行われる処理である。畳み込み層は脳の視覚野にある「単純型細胞」の働きを模したもので、画像のように空間構造をもつデータに対して効果的に働くよう設計されている。

畳み込み層では、縦線、横線、曲線といった画像に含まれる断片的な小さな特徴に対応する「フィルタ」あるいは「カーネル」という小さな行列を用意し、これを一定の歩幅(ストライド)で移動させながら各位置へ順に適用する。フィルタに一致するパターンがどの位置に存在するかを表す「特徴マップ」を生成して、下層へ出力する。

畳み込み層の下にあるプーリング層は脳の視覚野にある「複雑型細胞」の働きを模したもので、畳み込み層から得た特徴マップに一定の演算を行ってサイズを縮小する。畳み込み層とプーリング層は交互に何段階か重ね、下層へ行くほど小さな特徴を組み合わせた、より大きな特徴を捉えることができる。

畳み込みニューラルネットワーク

人工知能の実装の一つであるニューラルネットワークの種類の一つで、入力データから局所的な特徴を捉えるための特殊な構造の層を組み込んだもの。高精度な画像認識などが可能となる。

機械学習システムに用いられる(人工)ニューラルネットワークは人間の脳の神経回路のネットワークを模したモデルで、神経細胞を模したノードを層状に配置した構造を持つ。各ノードは上位層のノードから受け取った入力に単純な計算を行って下位層のノードへ伝達する。

畳み込みニューラルネットワークは入力層と出力層の間に中間層(隠れ層)が多数ある「ディープニューラルネットワーク」(DNN)の一種で、人間の視覚の働きを模した構造となっている。上位層側にノード間の結合が制約された多数の「畳み込み層」と「プーリング層」のセットが配置され、最下層の「全結合層」を通して最終的な出力が得られる。

各層の働き

畳み込み層は脳の視覚野にある「単純型細胞」の働きを模したもので、縦線、横線、曲線といった画像に含まれる断片的な小さな特徴を検知して下層のノードへ伝達する。特徴は「フィルタ」あるいは「カーネル」と呼ばれる小さな行列で表現され、画像のどの位置にどの特徴があるかを示す「特徴マップ」が下層へ送られる。

プーリング層は脳の視覚野にある「複雑型細胞」の働きを模したもので、畳み込み層から得た特徴マップに一定の演算を行ってサイズを縮小する。特徴の空間的な位置のズレを吸収し、同じ形状が画像中のどこにあっても同じように検知できるようにする(移動不変性)。

個々の畳み込み層やプーリング層は個別の特徴に反応するため、最後にすべてのノードが結合している全結合層へ様々な特徴の情報を流し込み、総合的な分類や予測などを行う。画像認識などの課題では物体の移動の影響を受けにくいため、それ以前のモデルよりも高い精度で物体の検知や分類を行うことができる。

特徴マップ

畳み込みニューラルネットワーク(CNN)で畳み込み層が出力するデータで、入力データのどこに局所的な特徴が存在するかを示したもの。浅い層では単純で断片的な特徴の、深い層では複雑で抽象的な特徴の存在や位置を表現する。

ニューラルネットワークの特殊な層の構造である「畳み込み層」は、脳の視覚野にある「単純型細胞」の働きを模したもので、画像のように空間構造を持つデータの中から局所的な特徴を抽出し、その位置を下層に伝える働きをする。

画像解析の場合、縦線、横線、曲線といった画像に含まれる断片的な小さな特徴に対応する「フィルタ」あるいは「カーネル」という小さな行列を用意し、これを画像の左上から右下へ一定の幅で移動しながら、各位置のデータ断片と照合する。全体をスキャンしたら、フィルタの特徴を発見した位置を並べた特徴マップを作成し、下層へ出力する。

通常、フィルタは特徴の種類ごとに用意され、それぞれのフィルタに対応する複数の特徴マップが生成される。これにより、モデルは異なる種類の特徴を同時に学習することが可能となる。

畳み込み層は特徴マップを圧縮するプーリング層と組み合わせて用いられ、これを何段階も重ねた構造を持つ。深い階層の畳み込み層では抽象度の高い特徴が表現される。例えば、初期層では直線、角など単純で断片的なパターン、中層では立方体、球など基本的な図形、深層ではビル、車など物体の種類といった具合である。

パディング

詰め物、水増し、埋草などの意味を持つ英単語。ITの分野では、表示要素の内側に設けられた余白や、データを一定の長さに整形するため前後に挿入される無意味なデータなどをこのように呼ぶ。

データのパディング

プログラミングやネットワーク通信などで、データを固定長として扱いたいときに、短いデータの前や後に無意味なデータを追加して長さを合わせる処理のことをパディングという。特に、足りない桁数だけ「0」を追加して長さを合わせることを「ゼロパディング」(zero padding)という。

デザインのパディング

文書編集ソフトやWebページなどでは、表示要素の内側に設ける余白部分のことをパディングという。枠線(要素の境界)からテキストなどの内部の表示要素の外周までの距離を表し、表示設定やスタイルシート(CSS)などで任意の値に設定できるようになっていることが多い。一方、境界の外側の余白(他の要素との距離)のことは「マージン」(margin)という。

フィルタ

濾過器、こし器、濾過する、こす、などの意味を持つ英単語。ITの分野では、一定の条件に基づいてデータなどを選別・加工・排除する装置や機能、仕組みなどを指すことが多い。そのような処理や働きのことは「フィルタリング」(filtering)という。

電子回路の分野では、信号を周波数の違いなどに基づいて特定の要素だけ通したり遮断したりする回路や装置などをフィルタという。また、カメラなどの光学機械では、受光素子の手前に装着し、特定の種類の光を通過あるいは遮断したり、特殊な効果を加えたりする装置をフィルタという。

これらの物理的な装置の働きをコンピュータ上のソフトウェアによって再現したものも同様にフィルタと呼ばれる。電気信号や音声信号の解析や合成などを行うソフトウェアが信号を補正するためものや、画像処理ソフトが画像に特殊効果を加えるものなどがよく知られる。

フィルタコマンド

UNIX系OSやWindowsなどのコマンドラインで、標準入力からテキストデータなどを受け取って、指定された条件で加工を施して標準出力に書き出すコマンドをフィルタコマンドあるいは単にフィルタという。機能の異なるフィルタを何段も連ねることで連続的に加工を施すことができ、様々な定型的な処理を自動化することができる。

パケットフィルタ

ネットワークの境界などに設置されたファイアウォールやルータなどが、内外で送受信されるデータのまとまり(パケット)の中から一定の基準に基づいて不正なものを検知し、破棄する機能を「パケットフィルタ」という。

メールフィルタ

メールサーバやメールクライアントなどが、受信した電子メールの本文や添付ファイルなどからスパムメールやウイルスメールと疑われるものを選別し、専用のフォルダに集めたり破棄する機能を「スパムフィルタ」あるいは「メールフィルタ」などという。

コンテンツフィルタ

青少年保護や企業における社員の私用制限などを目的として、インターネット上にあるWebサイトやコンテンツを一定の基準に基づいて選別し、接続を遮断する装置やソフトウェアのことを「コンテンツフィルタ」「Webフィルタ」などという。

正規化層

ニューラルネットワークの特殊な層の一つで、上位層からの出力に補正を行い、値の分布を一定の範囲に揃える操作を行うもの。極端な値のばらつきを抑えて学習の安定化、学習速度の向上、過学習の抑止などの効果をもたらす。

ニューラルネットワークでは入力層から出力層に向かって一層ずつ下層へ順に値が伝達されていくが、層間でやり取りされる値のスケールがまちまちになることがある。あまりに値に幅があると、特定の特徴量ばかり重視されたり、一部のノードのパラメータの収束が遅くなるなどの不都合が生じる。

正規化層は通過する出力値の平均が0、分散が1になるように値のスケールを揃える。代表的な実装方法としてバッチ正規化があり、ミニバッチを構成する学習データのサンプルを用いて平均と分散を算出し、特徴量ごとに正規化を行う。他に、レイヤー正規化、インスタンス正規化などの手法も提唱されている。

正規化層では単純に出力を正規化するだけでなく、学習によって調整されるパラメータを用いて、スケール変換(すべての値に特定の係数を乗じる)や平行移動(すべての値に一定値を加える)といった一律の変換処理を行い、分布を微調整する場合がある。

グループ正規化

畳み込みニューラルネットワーク(CNN)の特徴マップの値を一定の範囲に揃える正規化処理の一つで、チャネルをいくつかの集団にまとめ、集団ごとに正規化を行うもの。主に画像を扱うモデルで用いられる手法で、画像一枚ごとに複数チャネル単位の正規化を行う。

ニューラルネットワークでは入力層から出力層に向かって一層ずつ下層へ順に値が伝達されていくが、層間でやり取りされる値のスケールがまちまちになることがある。あまりに値に幅があると、特定の特徴量ばかり重視されたり、一部のノードのパラメータの収束が遅くなるなどの不都合が生じる。

グループ正規化はCNNの特徴マップに適用される正規化手法の一つで、学習データを構成する個々のサンプルごとに正規化を行う。層内の各フィルタ(カーネル)の出力をチャネルというが、グループ正規化では正規化を複数チャネルのグループごとに行い、それぞれについて平均0、分散1になるよう調整する。

グループ正規化はインスタンス正規化やレイヤー正規化と同じく単体のサンプルを用いる方式で、バッチ正規化のようにバッチサイズの影響を受けない。グループ数がチャネル数と同じ(チャネルごとに正規化)ならインスタンス正規化に、グループ数を一つにすればレイヤー正規化(全チャネル合わせて正規化)となり、両者の中間的な方式と言える。

正規化一般の性質として、極端な値のばらつきを抑えて学習の安定化、学習速度の向上、過学習の抑止などの効果をもたらす。モデルの特性に応じて最も学習が安定するグループ数を選択することができるが、グループ数というハイパーパラメータが一つ増えるため、最良の値を探索するための時間や計算量を要する難点もある。

バッチ正規化

ニューラルネットワークの各層の出力値の分布を一定の範囲に揃える正規化処理の一つで、ミニバッチ内の学習データを用いるもの。極端な値のばらつきを抑えて学習の安定化、学習速度の向上、過学習の抑止などの効果をもたらす。

ニューラルネットワークでは入力層から出力層に向かって一層ずつ下層へ順に値が伝達されていくが、層間でやり取りされる値のスケールがまちまちになることがある。あまりに値に幅があると、特定の特徴量ばかり重視されたり、一部のノードのパラメータの収束が遅くなるなどの不都合が生じる。

バッチ正規化はそのような場合に用いられる正規化手法の一つで、学習データ全体を一定の数ごとに分割して与えるミニバッチ学習で用いられる方式である。ミニバッチを構成する学習データのサンプルをもとに特徴量の平均と分散を求め、特徴量ごとに平均が0、分散が1になるように出力値を補正する。

さらに、学習によって調整されるパラメータを用いて、スケール変換(すべての値に特定の係数を乗じる)や平行移動(すべての値に一定値を加える)といった一律の変換処理を行い、決められた分布に当てはまるよう調整する場合もある。

こうした操作により、ネットワーク全体で入力値のスケールが揃い、勾配の伝播が安定しやすくなるとされている。データ全体ではなくミニバッチ単位で平均や分散を求めるため、これがある種のノイズとして働き、モデルが学習データに過剰に適合してしまう過学習の抑制にも寄与するとされる。

レイヤー正規化

ニューラルネットワークの各層の出力値の分布を一定の範囲に揃える正規化処理の一つで、サンプルごとに正規化を行うもの。畳み込みニューラルネットワーク(CNN)の特徴マップに適用する場合は全チャネルをまとめて扱う。バッチ正規化がバッチサイズに影響を受けやすい点を改良した手法である。

ニューラルネットワークでは入力層から出力層に向かって一層ずつ下層へ順に値が伝達されていくが、層間でやり取りされる値のスケールがまちまちになることがある。あまりに値に幅があると、特定の特徴量ばかり重視されたり、一部のノードのパラメータの収束が遅くなるなどの不都合が生じる。

レイヤー正規化はそのような場合に用いられる正規化手法の一つで、学習データを構成する個々のサンプルごとに、層の出力値の平均が0、分散が1になるよう調整する。極端な値のばらつきを抑えて学習の安定化、学習速度の向上、過学習の抑止などの効果をもたらす。

バッチ正規化ではミニバッチを構成するサンプルすべてを使って統計量を算出するため、バッチサイズが小さい場合に不安定化しやすい欠点があったが、レイヤー正規化はサンプルごとに毎回正規化するためバッチサイズの影響を受けない。ネットワーク内に再帰的な構造を持ち、時系列の入力や文章などの可変長の入力を受け付ける再帰型ニューラルネットワーク(RNN)やTransformerで特に有効な手法とされる。

なお、畳み込みニューラルネットワーク(CNN)の特徴マップの正規化に用いる場合は、層内の全チャネル(各フィルタの出力)をまとめて正規化する。この点を変更し、チャネルごとに正規化を行うようにしたものを「インスタンス正規化」、複数のチャネルのグループごとに正規化するようにしたものを「グループ正規化」という。

インスタンス正規化

畳み込みニューラルネットワーク(CNN)の特徴マップの値を一定の範囲に揃える正規化処理の一つで、学習データの一つ一つのサンプルを用いてチャネルごとの正規化を行うもの。主に画像を扱うモデルで用いられる手法で、画像一枚ごとにチャネル単位の正規化を行う。

ニューラルネットワークでは入力層から出力層に向かって一層ずつ下層へ順に値が伝達されていくが、層間でやり取りされる値のスケールがまちまちになることがある。あまりに値に幅があると、特定の特徴量ばかり重視されたり、一部のノードのパラメータの収束が遅くなるなどの不都合が生じる。

インスタンス正規化はCNNの特徴マップに適用される正規化手法の一つで、学習データを構成する個々のサンプルごとに正規化を行う。層内の各フィルタ(カーネル)の出力をチャネルというが、インスタンス正規化では正規化をチャネル単位で個別に行い、それぞれについて平均0、分散1になるよう調整する。

正規化一般の性質として、極端な値のばらつきを抑えて学習の安定化、学習速度の向上、過学習の抑止などの効果をもたらす。インスタンス正規化は単体のサンプルから統計量の算出を行うため、ミニバッチ単位で複数のサンプルを用いるバッチ正規化に比べ、バッチサイズの影響を受けにくい。一方、一つのサンプルを用いて全チャネルまとめて正規化する手法は「レイヤー正規化」、複数チャネルのグループごとに正規化する手法は「グループ正規化」という。

プーリング層

畳み込みニューラルネットワーク(CNN)の持つ特殊な層の一つで、直前にある畳み込み層が出力した特徴マップを受け取って圧縮し、重要な特徴を抽出するもの。計算量を削減したり過学習を抑制する効果を持つ。

CNNは画像の特徴などを捉えることができるネットワーク構造で、「畳み込み層」と呼ばれる特殊な層が用いられる。ここでは様々な断片的な特徴パターン(フィルタあるいはカーネルと呼ばれる)を画像の上で位置を少しずつずらしながら重ね合わせ、そのパターンが画像内のどこに存在するかを「特徴マップ」として出力する。

プーリング層は畳み込み層の直後に置かれる層で、畳み込み層が出力した特徴マップを受け取り、一定のルールに基づいてサイズを縮小する「ダウンサンプリング」(あるいはサブサンプリング)と呼ばれる処理を行う。これは、特徴マップの一定の範囲ごとに値を集計し、その領域の値を一つにまとめる処理である。範囲が2×2なら、特徴マップを2×2ずつに区切って一つの値に集約するため、重要な特徴を残しながらサイズを4分の1に減らすことができる。

特徴情報の集約の仕方には様々なものが提唱されている。最も基本的で代表的なものは「最大プーリング」と「平均プーリング」の2つである。最大プーリングは領域内の最大値を代表値として出力し、平均プーリングは領域内の値の平均を算出して代表値とする。

プーリング層は特徴マップのサイズを段階的に縮小することで、モデルのパラメータ数や計算負荷を抑えつつ、抽象度の高い特徴の形成を促す役割を果たす。入力の細かな位置の変化に影響されにくい表現を獲得する効果もある。プーリング層自体は学習によって調整されるパラメータ(重みやバイアスなど)を持たないことも特殊である。

グローバルアベレージプーリング

畳み込みニューラルネットワーク(CNN)のプーリング層が行うデータの集約の仕方の一つで、特徴マップ全体の値を一つの平均値に集約するもの。ネットワーク最終盤でデータ全体のマップを出力用の値に整形する際、全結合層の代わりに用いられる。

CNNは画像の特徴などを捉えることができるネットワーク構造で、「畳み込み層」と、その直後に置かれる「プーリング層」と呼ばれる特殊な層が用いられる。畳み込み層では様々な断片的な特徴パターン(フィルタあるいはカーネルと呼ばれる)を画像の上で位置を少しずつずらしながら重ね合わせ、そのパターンが画像内のどこに存在するかを「特徴マップ」として出力する。

プーリング層は畳み込み層が出力した特徴マップを受け取り、一定のルールに基づいてサイズを縮小する「ダウンサンプリング」(あるいはサブサンプリング)と呼ばれる処理を行う。これは、特徴マップの一定の範囲ごとに値を集計し、その領域の値を一つにまとめる処理である。グローバル平均プーリングは特徴マップのすべての値を平均して一つの値に集約する。上層の畳み込み層の各チャネルが出力するマップを、単一の値が並んだベクトルに変換する。

従来のCNN終盤層では、最後の畳み込み層が出力した特徴マップ群を全結合層に与えて外部へ出力するデータに整形していたが、重みの数が多く学習に時間や計算量を多く費やす難点があった。グローバル平均プーリングはこの最後の全結合層の代わりに用いる処理で、最後の畳み込み層が表す抽象的な特徴群が画像全体でどのくらい出現するかを特徴ごとに単一の値で表現する。

グローバル平均プーリングの結果は特徴の出現頻度を表す値を並べたベクトルであるため全結合層の出力よりも解釈性が高い。また、プーリング層は学習で調整する重みなどのパラメータを持たず、常に固定的な処理をするため、従来の全結合層の学習プロセスをすべて省略して学習を効率化できる。パラメータが減ることで過学習を起こしにくいという利点もある。

最大値プーリング

畳み込みニューラルネットワーク(CNN)のプーリング層が行うデータの集約の仕方の一つで、特徴マップ内の対象領域の中で最も大きな値をその領域の代表値とするもの。最も顕著な特徴を強調する効果がある。

CNNは画像の特徴などを捉えることができるネットワーク構造で、「畳み込み層」と、その直後に置かれる「プーリング層」と呼ばれる特殊な層が用いられる。畳み込み層では様々な断片的な特徴パターン(フィルタあるいはカーネルと呼ばれる)を画像の上で位置を少しずつずらしながら重ね合わせ、そのパターンが画像内のどこに存在するかを「特徴マップ」として出力する。

プーリング層は畳み込み層が出力した特徴マップを受け取り、一定のルールに基づいてサイズを縮小する「ダウンサンプリング」(あるいはサブサンプリング)と呼ばれる処理を行う。これは、特徴マップの一定の範囲ごとに値を集計し、その領域の値を一つにまとめる処理である。

最大プーリングは対象領域の情報を集計する手法の一つで、領域内の値を比較して最大値を抽出し、これをその領域の代表値とする方式である。畳み込み処理で何度も繰り返し反応した特徴を強調する効果があり、特徴マップのサイズを削減しながら、その領域で最も重要と思われる特徴を抽出することができる。

平均値プーリング

畳み込みニューラルネットワーク(CNN)のプーリング層が行うデータの集約の仕方の一つで、特徴マップ内の対象領域の値を平均したものをその領域の代表値とするもの。領域全体の傾向を抽出する効果がある。

CNNは画像の特徴などを捉えることができるネットワーク構造で、「畳み込み層」と、その直後に置かれる「プーリング層」と呼ばれる特殊な層が用いられる。畳み込み層では様々な断片的な特徴パターン(フィルタあるいはカーネルと呼ばれる)を画像の上で位置を少しずつずらしながら重ね合わせ、そのパターンが画像内のどこに存在するかを「特徴マップ」として出力する。

プーリング層は畳み込み層が出力した特徴マップを受け取り、一定のルールに基づいてサイズを縮小する「ダウンサンプリング」(あるいはサブサンプリング)と呼ばれる処理を行う。これは、特徴マップの一定の範囲ごとに値を集計し、その領域の値を一つにまとめる処理である。

平均プーリングは対象領域の情報を集計する手法の一つで、領域内の値を合計して平均値を算出し、これをその領域の代表値とする方式である。領域全体の値を反映した一つの値を算出するため、特徴マップのサイズを削減しながら、その領域の全体的な傾向を抽出することができる。

スキップ結合

ニューラルネットワークで、ある層からの出力を直後の層だけでなく何層か後の層へも流す構造。深いネットワークで誤差逆伝播法を用いると初期層で勾配が消えてしまう勾配消失問題を緩和することができる。

誤差逆伝播法では、モデルの出力層で計算された予測値と正解の差(誤差)が、ノード間の繋がりの重みを更新するために、微分値(勾配)として前の層へと順次逆向きに伝達されていく。伝播の過程で勾配がどんどん小さくなり、初期層近くではほとんどゼロになってしまう「勾配消失問題」が発生することがある。階層の深いネットワークで特に問題となる。

スキップ接続は、ある層の出力を直後の層だけでなく何層かスキップしてより先の層へと直接伝達する構造である。合流先の層では直前の層の出力と、スキップ接続で手前の層から伝わった出力の両方を足し合わせて出力値を計算する。誤差の伝播では、終盤の大きな勾配が途中の層をスキップして初期層へ伝わるため、誤差の消失を緩和する効果がある。

画像解析などに用いられる畳み込みニューラルネットワーク(CNN)では、途中にスキップ接続を挟んで異なる層の出力を統合することで、初期層の捉えた局所的な特徴と、深い層の捉えた大局的、抽象的な特徴の両方の情報を利用してモデル表現力を高めることができる。

ResNet

極めて深いニューラルネットワークで生じる問題を緩和するために「残差学習」という考え方を採用したネットワーク構造。ある層の出力を何層か先に直接伝達する「スキップ結合」を導入し、数十層や百層を超えるネットワークを構築できるようになった。

ニューラルネットワークでは、出力層から入力層に向けて予測と正解の誤差の微分値(勾配)を一層ずつ順に伝播させるが、層を通過するごとに勾配の値が小さくなり、初期層の学習が停滞する「勾配消失問題」が生じることがある。従来の深層ニューラルネットワーク(DNN)では層を増やすほどこの問題が起きやすく、表現力の向上が頭打ちになる課題があった。

ResNetはこの問題に対処するため、数層(2~3層)を束ねた「残差ブロック」を基本単位に設計される。各ブロックは上層からの入力を受け取って各層を順番に通過する通常の結合の他に、ブロック全体をスキップして出力に直接繋がった「スキップ結合」(残差接続)が用意される。

各残差ブロックの出力は、ブロック内の各層を通過して得られた通常の出力値に、スキップ結合で伝達されたブロック自体への入力を足し合わせて決定される。これにより、各ブロックは入力と出力の差分である残差のみを学習するように設計される。

学習時に出力層から誤差を伝播させる際には、各ブロック内部への通常の逆伝播と共に、スキップ接続を通ってブロックを迂回して直接上層へ勾配が伝達される経路が形成される。これにより、各層による勾配の減衰が緩和され、数十層を超える極めて深いネットワークでも勾配が初期層まで伝わるようになる。

オリジナルのResNetは2015年に提唱され、画像分類タスクで極めて良好は成績を収めて注目を集めた。スキップ結合の考え方は様々なモデルに応用されており、LSTM、Transformer、AlphaGo Zeroなど様々なモデルの基本構造の一つとして組み込まれている。

回帰結合層

ニューラルネットワークの隠れ層の特殊な構造の一つで、過去の出力を自身の現在の入力に加えるループ機構を持つもの。この層を含むネットワークを「リカレントニューラルネットワーク」(RNN)と呼び、文章や音声、動画など、何らかの系列や順序に従って並んでいるデータを扱うのに適している。

通常のニューラルネットワークは入力層から出力層へデータが一方向的に流れるだけだが、回帰結合層は、ある回の出力を受け取って次の回の入力へフィードバックするループ構造となっている。前回の処理の結果を覚えておき、今回の入力に加えて処理する。今回の出力も覚えておき、次回の入力に反映させる。

これにより、単語が順番に入力されてくる文章のような系列データ、時間経過に従って少しずつ変化する音声や動画のような時系列データを扱う際に、現在の入力だけでなく直前の状態や文脈を反映した処理が可能となる。回帰結合層を基本単位とするRNNは、機械翻訳や文章生成、音声認識、時系列予測などに広く応用されている。

回帰結合層の重みは各時刻で共有されるため、系列がどれほど長くても同じパラメータで処理される。この性質は学習すべきパラメータ数を抑える一方で、長い系列では勾配消失や勾配爆発が起こりやすい傾向があることが知られている。これを改善するため、LSTM(Long Short-Term Memory)やGRU(Gated Recurrent Unit)のような複雑な制御機構が提唱されている。

リカレントニューラルネットワーク

特殊な構造を持つニューラルネットワークの一つで、隠れ層の一部として、過去の出力を現在の入力に加えるループ構造を持つもの。過去に入力された情報を記憶して現在の出力に加味することができ、文章や音声、動画など、何らかの系列や順序に従って並んでいるデータを扱うのに適している。

通常のニューラルネットワークは入力層から出力層へデータが一方向的に流れるだけだが、リカレントニューラルネットワークでは、出力を次の入力へフィードバックするループ構造が組み込まれている。前回の処理の結果を覚えておき、今回の入力に加えて処理する。今回の出力も覚えておき、次回の入力に反映させる。

これにより、単語が順番に入力されてくる文章のような系列データ、時間経過に従って少しずつ変化する音声や動画のような時系列データを扱う際に、現在の入力だけでなく直前の状態や文脈を反映した処理が可能となる。RNNは機械翻訳や文章生成、音声認識、時系列予測などの性能を飛躍的に向上させるきっかけとなった。

初期のRNNは時刻ごとに同じ重みを用いて計算を繰り返すため、長い系列に対して勾配が極端に小さくなる勾配消失や、逆に大きくなりすぎる勾配爆発が起きやすく、長期的な依存関係を学習するのが難しかった。これを改善するため、LSTM(Long Short-Term Memory)やGRU(Gated Recurrent Unit)のような複雑な制御機構が提唱されている。

BPTT

ニューラルネットワークの学習に用いられる誤差逆伝播法を時系列方向に展開する手法。リカレントニューラルネットワーク(RNN)など系列データを扱うモデルの学習を通常のネットワークと同じように進めることができるようになる。

誤差逆伝播法では、学習データの入力からモデルが予測した値と正解の値の誤差(損失)を求め、これを出力側から入力側へ一層ずつ順番に伝達していく。微分法の連鎖率から各層での微分値(勾配)を簡単に求められるため、誤差を減らす方向に重みやバイアスなどのパラメータを更新する。

RNNなどの系列データを扱うモデルは、ネットワーク内に前回の出力を今回の入力にフィードバックするループ構造を持っており、そのままでは誤差逆伝播法を適用することができない。なぜなら、ある回の出力はループ構造を通じて過去のすべての回の処理の結果が反映されているからである。

BPTTはネットワークを時系列に従って複製し、過去のネットワークと現在のネットワークがループ回路を通じて接続された一つの巨大なネットワークを構成していると考える。このネットワーク全体に現在の出力から求めた誤差を逆伝播させていき、各時刻のネットワークに対してもパラメータの更新を適用する。

これにより、RNNのパラメータを時系列に従って最適化できるが、長い系列を持つデータでは展開されたネットワーク全体が極めて深い階層を持つことになり、勾配が伝播していく過程で指数的に減衰してしまう勾配消失問題や、逆に指数的に発散してしまう勾配爆発問題が生じやすくなる。

この問題を緩和するため、系列の数だけ展開してしまうのではなく一定の過去まで遡ったら展開を打ち切る「Truncated BPTT」が用いられることがある。また、LSTMやGRUのように、ノードの情報の出入りを制御するゲート機構を導入することで勾配を安定的に伝播させる手法もある。

GRU

リカレントニューラルネットワーク(RNN)で長期的な依存関係の学習を可能とする仕組みの一つ。過去の出力からのフィードバックをどのように入力に反映するかを制御する2つのゲート機構を用いる。LSTMを簡略化し計算量を削減したもの。

RNNには、出力を次の入力へフィードバックするループ構造が組み込まれており、単語が順番に入力されてくる文章のような系列データ、時間経過に従って少しずつ変化する音声や動画のような時系列データを扱う際に、現在の入力だけでなく直前の状態や文脈を反映した処理が可能となる。

しかし、初期のRNNは同じノードを通過する時系列のデータが同じ重みを共有するため、系列が長いと過去に遡るにつれて重みの更新に用いられる誤差の微分値(勾配)が減衰してしまう勾配消失問題が起きやすい。また、過去のデータの現在の重要性と将来の重要性が異なる場合に重みを決定できない「重み衝突」という時系列データ固有の問題も生じる。

GRUはこの問題に対処するためのノード構造の一つで、回帰結合層に配置する。更新ゲート、リセットゲートという2つのゲート機構を備え、過去の出力からのフィードバック(隠れ状態)と入力から出力を計算する。更新ゲートは新しい入力をどれだけ隠れ状態に反映させるかを制御し、リセットゲートは隠れ状態をどれくらい入力に反映させるかを制御する。

RNNの長期依存的な学習を改善する手法として当初は「LSTM」(Long Short Term Memory)が考案されたが、これは一つのLSTMユニットを記憶セル、入力ゲート、出力ゲート、忘却ゲートという4つの要素で構成するもので、それぞれが持つ重みを学習によって更新するため計算コストが重かった。GRUはLSTMと遜色ない性能を維持しながら、更新ゲートとリセットゲートという2つの要素のみで構成されるため、計算量が大幅に削減される。

LSTM

リカレントニューラルネットワーク(RNN)で長期的な依存関係の学習を可能とする仕組みの一つ。ノードに記憶の保持機構(メモリ)と、これを制御するための3つのゲート機構を導入し、重要な情報を保持したり、不要な情報を忘却するといった制御を行う。

RNNには、出力を次の入力へフィードバックするループ構造が組み込まれており、単語が順番に入力されてくる文章のような系列データ、時間経過に従って少しずつ変化する音声や動画のような時系列データを扱う際に、現在の入力だけでなく直前の状態や文脈を反映した処理が可能となる。

しかし、初期のRNNは同じノードを通過する時系列のデータが同じ重みを共有するため、系列が長いと過去に遡るにつれて重みの更新に用いられる誤差の微分値(勾配)が減衰してしまう勾配消失問題が起きやすい。また、過去のデータの現在の重要性と将来の重要性が異なる場合に重みを決定できない「重み衝突」という時系列データ固有の問題も生じる。

LSTMでは、この問題に対処するため回帰結合層をLSTMユニットと呼ばれる単位で構成する。これは記憶セル、入力ゲート、出力ゲート、忘却ゲートという4つの要素を組み合わせた構造で、セルに記憶された情報、過去の出力からのフィードバック(隠れ状態)、現在の入力の3つの値から出力を計算する。セルへの情報の記録は入力ゲートが、情報の読み出しは出力ゲートが、消去は忘却ゲートがそれぞれ制御する。

各ゲートとセルの入力にはそれぞれ重みが設定されており、学習を通じて、いつ何を記憶し、いつ忘れるべきかを適切に制御するようになる。長期的な文脈を保持できるようになり、長い文章などを扱っても離れた位置にある単語同士の関係性を適切に判断できる。ただし、通常のノードの何倍もパラメータが多く学習コストが高いため、構造を簡略化した「GRU」(Gated Recurrent Unit)などの手法も開発されている。

エルマンネットワーク

リカレントニューラルネットワーク(RNN)の構造の一つで、過去の隠れ層の出力を、現在の入力に加えるもの。隠れ層の中間的な処理状態を保存して次の処理に反映させる構造で、文章の文脈を扱う自然言語処理などに適しているとされる。

通常のニューラルネットワークは入力層から出力層へデータが一方向的に流れるだけだが、RNNでは出力を次の入力へフィードバックするループ構造が組み込まれている。エルマンネットワークはこのうち、ある回の特定の隠れ層の出力を、入力層と並んだ「コンテキスト層」を通じて次の回の入力に加える。

RNNは時系列のデータを処理する際に過去の状態を短期的に記憶し、直前の状態や文脈に沿った出力を行うことができる。エルマンネットワークは中間状態を保存して次の処理に反映させる構造となっており、文章のように複数の要素が並んで意味を構成しているような入力を扱う際に、現在の文脈を保持する役割を果たす。

一方、特定の隠れ層の出力ではなく、最終的な出力をコンテキスト層を経由して次回の入力に加えるようなフィードバック機構を持つRNNを「ジョルダンネットワーク」という。前回の最終的な結果を今回の入力の一部として反映させるもので、ロボットの運動制御などに適しているとされる。

勾配消失問題

ニューラルネットワークの学習過程で予測と正解の誤差を伝播させる際、層が深くなるほど誤差を伝えるための信号である「勾配」が極端に小さくなり、前の層へ伝播しなくなる現象。深層学習の黎明期において、多層ネットワークの学習を困難にしていた主要な課題の一つだった。

主に誤差逆伝播法(バックプロパゲーション)のメカニズムと、かつて一般的に使用されていた活性化関数の性質によって引き起こされる。誤差逆伝播法では、モデルの出力層で計算された予測値と正解の差(誤差)が、ノード間の繋がりの重みを更新するために、微分値(勾配)として前の層へと順次逆向きに伝達されていく。勾配には、層を通過するたびに活性化関数の微分値と重みが掛け合わされていく。

初期のディープラーニング研究では、活性化関数としてシグモイド関数やtanh関数などを使っていた。これらの関数は、入力値が大きすぎたり小さすぎたりする領域(飽和領域)で、微分値がゼロに非常に近くなるという性質を持っている。

この「ゼロに近い値」が層をまたいで何度も掛け算されると、連鎖律によって、勾配の値は指数関数的に減少し、入力層に近いネットワークの初期の層に到達する頃には、ほとんどゼロになってしまう。出力側からいくら誤差を伝達しても、初期層の重みの更新量は極めて小さくなり、これらの層が実質的に学習を停止してしまう。

現在では、微分値がゼロになりにくいReLU関数(Rectified Linear Unit)やそこから派生した関数を用いたり、重みの初期設定を工夫したり、バッチ正規化によってデータのばらつきを抑制したり、LSTMやGRU、ResNetといった特殊なネットワーク構造を導入することで、勾配消失問題が起きるのを防いでいる。

勾配爆発問題

ニューラルネットワークの学習過程で予測と正解の誤差を伝播させる際、層が深くなるほど誤差を伝えるための信号である「勾配」が極端に大きくなり、学習が不安定になったり収束しなくなる現象。層の深いネットワークや、回帰層を含むRNNで特に問題になる。

主に誤差逆伝播法(バックプロパゲーション)のメカニズムによって引き起こされる問題の一つである。誤差逆伝播法では、モデルの出力層で計算された予測値と正解の差(誤差)が、ノード間の繋がりの重みを更新するために、微分値(勾配)として前の層へと順次逆向きに伝達されていく。勾配には、層を通過するたびに活性化関数の微分値と重みが掛け合わされていく。

このとき、勾配として算出された値が1より大きい場合、上層にはより大きな値が伝達される。これが層をまたいで何度も掛け算されると、連鎖律によって勾配の値は指数関数的に増大することになる。入力層に近いネットワークの初期の層に到達する頃には極端に大きな値になり、一度の更新で過剰に値を動かして学習が不安定になったり、正しく取り扱える上限値を超えてしまう。

勾配爆発問題を抑えるため、勾配の大きさに上限値を設け、これを超えた場合に強制的に縮減する「勾配クリッピング」という手法が用いられる。重みの初期化方法を適切に選ぶことや活性化関数を工夫することも有効な対策とされる。循環的な構造を持つ回帰型ニューラルネットワーク(RNN)では、長期依存を扱う際に勾配の爆発と消失が起こりやすいため、「ゲート構造」を内蔵するモデルが考案されている。

教師強制

系列データを扱う機械学習モデルで用いられる学習手法の一つで、モデルが次のステップの予測をする際に、現在の自らの出力ではなく正解データを与えるもの。機械翻訳や文章生成など、時系列での依存関係を扱うタスクで広く利用されている。

リカレントニューラルネットワーク(RNN)やTransformerなどのモデルは文章や音声、動画など何らかの系列や順番に従って並んだデータを連続的に扱うように設計されており、あるステップの予測に直前のステップで予測した自身の出力を用いることがある。

こうしたモデルは、学習の初期や性能が低い状態では、あるステップで誤った予測をしてしまうと、その先のステップ全体に誤りが連鎖し、性能が大きく下がる問題が生じることがある。教師強制では、こうした段階での予測に直前の出力を使わず、学習データに含まれる正解を入力として与える。誤った文脈で予測や生成が進行することを防いで、学習を正しく進めることができる。

教師強制で学習したモデルも、テスト時には本来の設計通り自身の出力を用いて次のステップの予測を行うため、学習時とテスト時で入力データの分布が一致しなくなるという問題がある。自らの予測によって生じた誤差を含む入力に対処する能力は学習しにくいとされ、この点を改善するスケジュールドサンプリングなどの手法も提案されている。

ゲート機構

主に系列データを扱うニューラルネットワークに導入される仕組みの一つで、層間の情報の流れを制御するもの。ノード内に組み込まれ、データの入出力を制御して情報の取捨選択を行う。

リカレントニューラルネットワーク(RNN)などのモデルは文章や音声、動画など何らかの系列や順番に従って並んだデータを連続的に扱うことができる。初期のRNNは同じノードを通過する時系列のデータが同じ重みを共有するため、長い文章などを扱うと勾配消失問題や重み衝突といった学習を停滞させる問題が生じやすかった。

ゲート機構はこの問題を解消するために導入された仕組みで、ノードが他の層との間で情報の入力や出力を行う際に水門のように流量を調節する働きをする。出入りするデータにシグモイド関数などで重みを付け、情報をそのまま通過させたり、絞ったり、完全に遮断したりといった制御を行う。この重みは他のパラメータと同じように学習によって調整される。

最初に考案されたゲート機構を持つモデルはLSTM(Long Short Term Memory)で、「入力ゲート」「出力ゲート」「忘却ゲート」の3つのゲート機構を用いる。LSTMを簡略化して学習コストを下げたGRU(Gated Recurrent Unit)では、「更新ゲート」「リセットゲート」の2つのゲート機構を用いる。RNNだけでなくTransformerなど他の種類のネットワークでもゲート機構を組み込んだモデルが提案されている。

双方向RNN

リカレントニューラルネットワーク(RNN)を拡張し、系列データの前方向と後方向の両方を参照して出力を決定できるようにしたもの。自然言語の文章や音声を扱う際に文脈をより的確に捉えることができるようになる。

RNNは出力を次の入力にフィードバックさせるループ構造を持ったニューラルネットワークで、文章や音声、動画など時系列に展開するデータを扱うのに適している。通常のRNNは時系列を過去から未来へ一方向に展開し、過去のデータからのフィードバックだけを出力に反映させることができる。

双方向RNNは二つの独立したネットワークを組み合わせ、片方は過去から未来へ状態を伝播させ、もう片方は未来から過去へ逆向きに状態を伝播させる。ある時刻の出力は、それ以前のデータとそれ以降のデータの両方の文脈を組み合わせて計算される。

例えば文章を扱う場合、通常の単方向RNNでは、ある単語の解釈は文中でその単語より前に出現した単語群が形成する文脈のみから行われるが、双方向RNNでは、その単語以降の文末までの文脈を加えて解釈される。言語によっては単語の修飾が単語より後に来る表現が一般的な場合があり、前後の文脈を反映させた方が適切な理解に繋がる。

なお、処理の開始時点で未来のデータが揃っていないリアルタイム入力を扱う場合や、データの終端があらかじめ決まっていないストリーミングデータの処理など、未来のデータを事前に確定できない用途に用いるのは難しいという制約がある。

時系列データ

時間の経過に沿って記録された一連のデータのこと。株価、気温、製品売上など、時間と共に変化する値を一定間隔で観測・測定したデータを指すことが多い。これを解析することで対象の推移や変化、周期性を把握して予測に役立てることができる。

測定値や出来事の記録に日時の情報(タイムスタンプ)を付加して時間の経過に沿って並べたデータ系列を指す。気温の観測値のように毎秒、毎時、毎日といった規則的な間隔で測定したデータと、サーバのアクセスログのように特定の出来事(イベント)が生じたときに不規則に記録されるデータがある。

時系列データの中には、過去の値が現在の値に影響したり、時刻によって決まった傾向の変動が生じるなど、時間軸に沿って何らかの関係性や周期性が見られる場合がある。統計解析では移動平均モデルや自己回帰モデルなどで分析され、過去のデータを元に対象をモデル化することで、変動パターンの把握や将来の予測などに役立てることができる。

機械学習では、リカレントニューラルネットワーク(RNN)などのモデルが時系列データの学習に用いられる。これは層間の繋がりに、過去の出力を現在の入力にフィードバックするループ構造(再帰構造)を含んでおり、過去の影響の蓄積によって現在の値が決定されるようなデータ系列の学習を効果的に行うことができる。

ニューラルネットワークでは、自然言語の文章における単語の並びも、ある種の時系列的に並んだ互いに関連する要素の列とみなし、時系列データの解析と同じ手法で特徴の学習を行うことができる。Tranformerなどのモデルは自然言語処理で極めて良好な性能を示し、今日の生成AIの基礎となっている。

ジョルダンネットワーク

リカレントニューラルネットワーク(RNN)の構造の一つで、過去の出力層の出力を、現在の入力に加えるもの。過去の最終的な出力を現在の処理にフィードバックする仕組みで、ロボットの運動制御などに適しているとされる。

通常のニューラルネットワークは入力層から出力層へデータが一方向的に流れるだけだが、RNNでは出力を次の入力へフィードバックするループ構造が組み込まれている。ジョルダンネットワークはこのうち、ある回のネットワークの最終的な出力を、入力層と並んだ「コンテキスト層」を通じて次の回の入力に加える。

RNNは時系列のデータを処理する際に過去の状態を短期的に記憶し、直前の状態や文脈に沿った出力を行うことができる。ジョルダンネットワークは最終的な結果を次の処理に反映させる構造となっており、前回の行動の結果や得られた成果、あるいは、前回の出力に反映された系列の抽象的、高次元の特徴を現在の処理に反映させることができる。

一方、最終的な出力ではなく、特定の隠れ層の出力をコンテキスト層を経由して次回の入力に加えるようなフィードバック機構を持つRNNを「エルマンネットワーク」という。ネットワークの中間状態を保存して次回の処理に反映するもので、文章の文脈を保持して処理を行う自然言語処理などに向いているとされる。

Attention

機械学習モデルが入力データの中で「どこに注目すべきか」を学習し、その重要度に応じて重み付けを行う仕組み。自然言語処理などで文脈を的確に捉えた出力を行うことができる。

人間が文章を読んで意味を解釈するとき、すべての単語を同じ強さで認識しているわけではなく、文の中で相対的に重要な箇所を識別して大きな注意(attention)を払っている。こうした認知的なメカニズムをニューラルネットワーク上で模倣したものがアテンション機構である。

従来、文章のような系列データはエンコーダ・デコーダ型モデルなどを用いて処理していたが、これは入力されたすべての情報を固定長のベクトルに圧縮して保持する必要がある。この方式は文章が長くなるほど情報の欠落が発生しやすく、また、処理が進行するにつれ文頭付近の単語をどんどん忘れていってしまう問題があった。

アテンション機構では、情報を処理するたびに、入力データのどこが現在の文脈において重要であるかを動的に計算し、その部分を直接参照する。これにより、長い文章や複雑なデータであっても、重要な情報のつながりを維持したまま処理することが可能になった。もとは機械翻訳で入力文と出力文の対応関係を柔軟に扱うための仕組みとして考案されたが、様々な用途で有用であることが分かり、広く応用されている。

アテンションの計算過程は「クエリ」(query)、「キー」(key)、「バリュー」(value)の三つの要素で説明される。クエリは参照したい情報の条件を表し、キーは各入力要素の特徴、バリューは実際に集約される情報を示す。クエリとキーの類似度に基づいて重みが算出され、その重み付き和としてバリューが統合される。この構造により、単純な距離や位置関係に依存せず、意味的な関連性に基づく情報選択が行われる。

セルフアテンションとTransformer

アテンションの派生手法として、自分自身のデータの中での相互関係を計算する「セルフアテンション」(Self-Attention:自己注意機構)が考案された。これは一つの文章内にある各単語が、同じ文章内の他のすべての単語とどのような関係にあるかを一度に計算するものである。例えば「彼は犬を連れて散歩に行き、それを公園で放した」という一文において、「それ」という単語が「犬」を指していることを、文中の離れた位置にあっても正確に捉えることができる。

このセルフアテンションの仕組みを全面的に採用した機械学習モデルが「Transformer」(トランスフォーマー)である。長い文中で離れた単語同士の依存関係を的確に捉えることができ、並列処理に適した構造によって大量のデータを高速に学習できるため、人間に匹敵する自然言語処理の性能を獲得することが可能となった。現在のチャットAIの基盤となるモデルであり、対話生成だけでなく音声認識や画像生成、プログラムコード生成など多様なタスクに応用されている。

Transformer

ニューラルネットワークの構造の一つで、文章のような系列データを、語順の情報を保持したまま並列処理によって高速に学習することができるもの。自然言語処理の分野に革命をもたらし、現在のチャットAIなどの大規模言語モデル(LLM)の基礎となっている手法である。

従来、時系列に変化するデータや文章やプログラムコードのように要素の並び順に意味がある系列データは、リカレントニューラルネットワーク(RNN)のように入力データを端から順番に扱う構造を用いるのが一般的だった。しかし、文章が長くなると最初の方の情報を忘れてしまい、順番に計算する必要があるため並列処理が難しく学習に多大な時間がかかるという課題があった。

Transformerは、先頭から順番に処理していく手順を排除し、データのどの部分に注目すべきかを計算する「アテンション」(Attention:注意機構)と呼ばれる仕組みを採用している。Transformerで用いられるアテンションは「セルフアテンション」(Self-Attention:自己注意機構)と呼ばれる種類で、入力された文章の中の各単語が、同じ文章内の他の単語とどのような関係にあるかを計算するものである。

例えば、「私は猫が好きです。その猫は白いです。」という文章について、文中の2番目の「猫」が1番目の「猫」を指していることを、「その」など文中の他の単語との結びつきの強さから判断する。この仕組みにより、文中の離れた位置にある単語同士の依存関係を、直接的かつ効率的に捉えることが可能になった。すべての単語について独立に、並列に処理するため、単語の文中での位置を忘れないよう「位置エンコーディング」という要素が追加されている。

ニューラルネットワークとしての基本的な構造はエンコーダ・デコーダ型で、入力からエンコーダが特徴を抽出して抽象的な内部表現に変換し、その特徴に基づいてデコーダが別の形式のデータに変換していく。例えば、機械翻訳のために対訳データで学習させたモデルであれば、ある言語の文章をエンコーダが特徴表現に変換し、その表現からデコーダが翻訳先の文章を生成する。

Transformerはその高い表現力と汎用性、並列処理を活かした高速な学習プロセスから、多様な派生モデルを生み出してきた。エンコーダのみを用いる構成は文章分類や情報検索などの理解タスクに利用され、デコーダのみを用いる構成は文章生成や対話システム、コード生成などに応用されている。また、画像を小さな領域(パッチ)単位でトークン化して入力する「Vision Transformer」のように、言語以外のデータ形式にも適用範囲が拡張されている。

Self-Attention

入力されたデータ列の各要素が、同じデータ列内の他の要素とどのように関連しているかを計算し、その重要度に応じて情報を統合する仕組み。Transformerモデルの核となる技術で、現代の自然言語処理に不可欠な基盤となっている。

従来のニューラルネットワークでは、文章などの系列的なデータ(要素に順序のあるデータ)を処理する際、構成要素を前から順番に処理していく必要があった。この方式では、文章の冒頭にある単語と末尾にある単語のように、物理的に距離が離れた要素間の関係性を捉えることが難しい課題があった。

これに対し、セルフアテンションは文章内のすべての単語の組み合わせについて、その関連性の強さを一度に計算する。文脈における各単語の意味を、周囲の単語との関係性に基づいて深く理解することが可能になった。位置に依存しない計算が行われ、素朴な実装では単語の並び順や構文構造が失われるため、「位置エンコーディング」という手法で語順の情報を補う。

内部的には、「クエリ」(query)、「キー」(key)、「バリュー」(value)という三つの要素を用いて処理を進める。まず、注目したい単語を「クエリ」、比較対象となる単語を「キー」とし、両者の内積を計算することで「関連度スコア」を算出する。このスコアが高いほど、その単語の組み合わせは文脈上重要であると判断される。最後に、算出されたスコアを重みとして「バリュー」を足し合わせることで、周辺情報を反映した新しい単語の表現が生成される。

セルフアテンションは単体で用いることもできるが、実用上は複数の注意機構を並列に適用するマルチヘッドアテンション(Multi-Head Attention)の一部として組み込まれることが多い。各ヘッドは異なる表現空間や関係性に着目するため、意味的関係、構文的関係、位置的近接性など多様な側面を同時に捉えられる。

セルフアテンションは逐次的な処理を必要とせず、処理の並列化が容易な構造となっているため、膨大な計算資源を投入して大規模なデータを高速に学習させることができる。これにより、大規模言語モデル(LLM)の巨大化と性能向上が加速し、今日の生成AIの発展へと繋がった。自然言語処理だけでなく、画像認識や音声処理など他分野にも応用されており、データ内の広域的な依存関係を効率的に扱う一般的手法として広く普及している。

Multi-Head Attention

入力されたデータ列の各要素が同じデータ列内の他の要素とどのように関連しているかを計算するセルフアテンションを並列化する仕組み。一つの入力に対して異なる複数の視点から同時に「注意」を向けることで、文脈の多様な情報をより深く捉えることを可能にする。

「セルフアテンション」(Self-Attention:自己注意機構)はアテンション(Attention:注意機構)の一種で、文章内のすべての単語の組み合わせについて、その関連性の強さを一度に計算する仕組みである。文脈における各単語の意味を、周囲の単語との関係性に基づいて深く理解することができる。

通常のセルフアテンションでは、文章内の単語間の関係性を一つの方法で計算するが、自然言語などの複雑なデータには、文法的な繋がり、意味的な類似性、代名詞の指示対象など、注目すべき側面が複数存在する。マルチヘッドアテンションは、これらの異なる側面を同時に捉えるために、アテンションの計算を行う「ヘッド」を複数用意する。

具体的には、入力されたデータを複数の低次元な空間に投影し、それぞれのヘッドが独立して並列に関係性を計算する。各ヘッドは異なるパラメータを持っており、学習が進むにつれて「主語と述語の関係に注目するヘッド」「形容詞と名詞の修飾関係に注目するヘッド」といったように役割分担が自然に行われるようになる。計算の最後には、各ヘッドから得られた出力を一つに統合(連結)し、再び元の次元へと変換して次層へ渡す。

複数のヘッドを用いることにより、異なる種類の依存関係を同時に表現することができ、文中の意味的関連、構文的対応、位置的近接性など、異なる側面に着目した注意分布が形成される。一つの単語が持つ多面的な意味や、文全体に広がる複雑な依存関係を、単一のアテンション機構を用いる場合よりもはるかに豊かに表現することができる。自然言語処理で極めて高い性能を達成したTransformerモデルに用いられている仕組みである。

Seq2Seq

ある系列データを別の系列データへ変換するためのニューラルネットワークモデルの総称。入力と出力の長さが異なるデータを扱うことができ、機械翻訳や対話生成、文章要約といったタスクの基盤技術として広く利用されている。

多くのモデルに共通する基本的な構造として、「エンコーダ」と「デコーダ」という二つのリカレントニューラルネットワーク(RNN)を組み合わせた構成となっている。エンコーダは入力系列を順に処理し、系列全体の情報を内部状態として表現する。デコーダはその内部状態を受け取り、出力系列を一要素ずつ生成する。

例えば、日本語を英語に翻訳するモデルでは、エンコーダが日本語の意味を理解してベクトル化し、デコーダがそのベクトルから対応する英語の単語を順次生成することで、文全体を翻訳することができる。このような仕組みは、入力と出力が共に系列データである対話生成(問いや依頼→応答)、文章要約(長文→要約文)、音声認識(音声データ→発話文)など様々なタスクに適用することができる。

初期の単純なSeq2Seqでは、入力系列が長くなると情報が内部状態に圧縮されすぎ、性能が低下するという課題があった。この問題に対処するために導入されたのが「アテンション」(Attention:注意機構)である。これはデコーダが出力を生成する各時点で、入力系列のどの部分に注目すべきかを重みとして計算する仕組みで、長い系列であっても必要な情報を直接参照でき、翻訳品質や生成精度が大きく向上した。

Source-Target Attention

Transformerなどのエンコーダ・デコーダ型のニューラルネットワークで、出力側の系列が入力側のどの部分に注目すべきかを決定する仕組み。翻訳などのタスクで、出力単語と入力単語の関連性を計算し、文脈を反映した動的な情報の抽出を可能にする。

エンコーダ・デコーダ型のモデルは長い入力データから長い出力データを得るためのネットワークで、エンコーダは入力された情報を数値的な特徴量として抽出し、デコーダはその情報を元に新しい系列を生成する。クロスアテンションは両者の橋渡し役として機能する。デコーダが次に生成すべき単語を検討する際、エンコーダが保持している入力系列全体の中から、その瞬間に最も重要と思われる箇所を特定し、重み付けを行う。

計算過程では、「クエリ」(query)、「キー」(key)、「バリュー」(value)という三つの要素が用いられる。キーとバリューはエンコーダ側から、クエリはデコーダ側から供給される。デコーダが現在生成している一歩手前の状態がクエリとなり、エンコーダが出力した入力文の各単語の特徴がキーおよびバリューとなる。システムはクエリとすべてのキーとの類似度を計算し、その結果をソフトマックス関数によって正規化することで、合計が1になる重み(アテンションスコア)を算出する。このスコアをバリューに乗じることで、入力文の各部分が持つ情報を取捨選択し、一つのコンテキストベクトルとしてデコーダの次トークン予測に用いる。

Transformerモデルでは、入力文と出力文の関連を捉えるクロスアテンションと、入力文中の単語同士の関連性を分析する「セルフアテンション」(Self-Attention:自己注意機構)が併用される。エンコーダでは入力系列内部の関係をセルフアテンションで表現し、デコーダではセルフアテンションで既出力トークン間の依存関係を捉えた後、クロスアテンションにより入力系列との対応付けを行う。複数のアテンション機構を同時に適用するマルチヘッドアテンション構成とすることで、異なる表現空間における対応関係を並列に学習でき、語順、意味的対応、構文的関係など複数の観点を同時に扱うことが可能となる。

位置エンコーディング

Transformerなど系列データを扱うニューラルネットワークで、入力データの中に含まれる単語や要素の順序や相対的な配置の情報を付与する手法。自己注意機構に順序情報を補完する。

古くからあるリカレントニューラルネットワーク(RNN)はデータを端から順番に処理するため自然と時系列や並び順を把握できたが、Transformerは全データを一括で並列処理する仕組みであるため、そのままでは単語の前後関係を区別できない。例えば、「犬が人を噛む」と「人が犬を噛む」という二つの文章は、使われている単語が同一であるため、位置情報がなければモデルにとって同じ意味として処理されてしまう。

位置エンコーディングはこの問題の解決策で、各トークンの埋め込みベクトルに、その出現位置に応じた特定の数値を加算または結合することで、モデルに並び順を認識させる。位置を表す数値の決定方法はいくつかあり、代表的な手法は、三角関数など周期的な関数を用いて位置ごとに異なる独自の値を生成する固定的エンコーディングである。学習パラメータを増やさずに、任意の長さの系列に対して一貫した位置表現を与えられる。

各位置に対応するベクトルをパラメータとして学習する手法もある。学習量は増えるが、タスクやデータ分布に適応した柔軟な表現が可能である。また、文章内の絶対位置ではなくトークン間の距離関係を扱う「相対位置エンコーディング」も提案されており、長文処理や文脈依存性の強いタスクで効果を示す場合がある。これらの手法はモデルの汎化性能や長距離依存関係の表現能力に影響を与える。

キー

鍵、要、手がかり、等の意味を持つ英単語。ITの分野では、暗号化に用いる短い符号(暗号鍵)を指すほか、何かを構成する主要な要素、手がかりや標識となる要素を比喩的にキーと呼ぶことが多い。

データ検索やデータベースなどの分野で、複合的なデータの識別や同定、検索、比較、整列(並べ替え)などに用いられるデータのことをキーということがある。

コンピュータの入力装置の一つにキーボード(keyboard)があり、平たい板状の装置の表に多数の小さなボタンが並んだ構造になっている。この一つ一つのボタンのことをキーと呼び、それぞれ固有の文字や機能が割り当てられている。

情報セキュリティの分野では、錠(lock)に対する鍵(key)の意味から派生して、データの暗号化や復号を行うための符号や、認証を行うための識別符号や秘密の情報などをキーということがある。

暗号鍵(cipher key)は平文を暗号文に変換する際に計算手順に与えるパラメータで、同じ平文を同じ暗号方式で暗号化しても鍵が違えば異なる暗号文が得られる。暗号文を平文に復号する際には暗号化に用いた暗号鍵(公開鍵暗号の場合は対になるもう一方の鍵)が必要となる。

クエリ

質問(する)、照会(する)、問い合わせ(る)、尋ねる、疑問、疑問符などの意味を持つ英単語。IT分野では、ソフトウェアに対するデータの問い合わせや要求などを一定の形式で文字に表したものを指すことが多い。

一般的には、情報の検索や抽出を行うために、含まれるキーワードやフレーズ、探索対象や範囲、対象期間などを組み合わせて検索条件を書き記した文字列を指す。広義には、システムに対する操作や要求など、何らかのメッセージを一定の書式で記したデータ全般が含まれる。

複数の条件を組み合わせる場合には、システムの書式に定められた論理演算子などを用いて条件の結合の仕方を指示する。例えば、「A and B」は「条件AとBの両方を満たす」、「A or B」は「AとBの少なくともどちらかを満たす」、「A and not B」は「Aを満たしBを満たさない」といった意味になる。

検索クエリ

Web検索エンジンでは、利用者が入力した検索文字列のことをクエリと呼ぶ。検索したい内容を表す語句やフレーズの組み合わせで、検索エンジンは関連度が高いと思われるWebページを探し出してリストにして表示する。

複数の語句を並べると原則としてそれらがすべて含まれるページを探す(AND検索)が、演算子を用いて複雑な条件を指定することもできる。例えば、「|」(縦棒)は「いずれかが含まれる」(OR検索)を、「-」(ハイフン)は「~を含まない」(NOT検索)を意味する。

数式のように括弧で条件の組み合わせ方の優先度を指定したり、ページの最終更新日時の範囲を指定したり、ページが記述されている言語(日本語、英語などの自然言語)を指定したり、「site:」演算子で特定のWebサイトのみを検索対象にする(サイト内検索)こともできる。

SQLクエリ

データベース管理システム(DBMS)では、利用者や外部システムからデータベースに対する処理要求(問い合わせ)を文字列として表したものをクエリという。データの検索や抽出だけでなく、追加や更新、削除などの要求を発行するのにも使われる。

例えば、検索クエリであれば検索対象のテーブルやデータの抽出条件、並べ方などを指定する。DBMSはクエリを解釈・実行し、結果をレコードセットなどの形で応答する。一度作成したクエリは保存しておいて何度も使うことができるようになっているものが多い。

データベースとして最も広く普及しているリレーショナルデータベース(RDB/RDBMS)ではクエリを記述する言語の標準として「SQL」(Structured Query Language)が定められており、単にクエリと言えば通常はSQLクエリを指す。

SQLではデータの問い合わせおよび抽出を行うのはSELECT文だが、データを追加するINSERT文や更新を行うUPDATE文、削除を行うDELETE文、テーブルの作成を行うCREATE文など、DBMSに対して処理や操作を要求する命令文はすべてクエリと呼ばれる。

オートエンコーダ

特殊なニューラルネットワークの構造の一つで、入力データを一度効率的な形式に圧縮し、そこから元のデータを再構成することを目的とするもの。主にデータの次元削減、特徴抽出、ノイズ除去、異常検知などに用いられる。

入力層と出力層の次元が同一で、中間層(隠れ層)を一層だけ持つシンプルなネットワークである。入力から潜在表現を生成する「エンコーダ」(encoder)、元のデータを復元して出力する「デコーダ」(decoder)を内蔵する。学習では、入力と出力が同一になるように誤差を最小化し、データの本質的な特徴を低次元の潜在空間に表現することを目指す。

学習によって調整されたパラメータとして表される潜在表現は、元の変数間の相関や構造を反映しており、データの背後にある重要な情報を抽出することができる。次元削減の線形的な手法である主成分分析を非線形に拡張したものとして理解することもできる。

オートエンコーダは教師なし学習に分類され、ラベルを必要とせず大量のデータから特徴を学習できる。画像や音声など高次元データの前処理として用いられることが多い。正常なデータのみを学習させたオートエンコーダに異常なデータを入力した際、再構成誤差が大きくなることを利用して異常検知を行うといった用途もある。入力にノイズを加えて学習する「デノイジングオートエンコーダ」や、確率的な潜在変数を導入する「変分オートエンコーダ」など、目的に応じた拡張手法も提案されている。

VQ-VAE

変分オートエンコーダ(VAE)の拡張手法の一つで、データの潜在変数を連続的な値ではなく離散値のベクトルとして表現するもの。高画質な画像生成や音声合成、動画生成などの基盤として広く利用されている。

従来の変分オートエンコーダでは、エンコーダがデータを連続的な確率分布として表現するため、生成される画像がぼやけやすいという課題があった。これに対し、VQ-VAEは「コードブック」と呼ばれる離散的なベクトルの集合を用意し、エンコーダの出力をこれらに最も近いベクトルへと量子化する仕組みを採用している。

エンコーダによって抽出された特徴量は、コードブックに登録されたベクトルを指し示す番号(インデックス)に置き換えられる。デコーダはコードブックの指定された番号のベクトルを取り寄せ、これに基づいて元のデータを復元する。画像をパズルのピースのように有限のパターンの組み合わせとして表現することに似ている。

このような量子化を伴う操作は微分不可能なため、そのままでは誤差逆伝播法による学習が困難となってしまう。そこで、VQ-VAEではデコーダからの勾配をそのままエンコーダへと流す「ストレートスルー推定法」という手法が用いられる。同時に、コードブックのベクトル自体も、入力データの分布に近づくように逐次更新する。モデルはデータの本質的な特徴を効率的に圧縮し、意味のある「語彙」をコードブックとして獲得することができる。

データを離散的な表現に変換することで、連続値の空間を扱うよりも情報の密度を高められ、自己回帰モデルやTransformerなど他の機械学習モデルと組み合わせやすくなる利点がある。例えば、画像を一旦VQ-VAEで離散的な記号の列に変換し、その記号の並び方をTransformerで学習させることで、極めて高精細で複雑な構造を持つ画像の生成が可能となる。

info VAE

変分オートエンコーダ(VAE)の枠組みを拡張し、潜在変数と観測データの相互情報量を重視して学習を行う生成モデル。潜在表現の情報量低下を抑えることができる。

VAEはオートエンコーダを拡張したニューラルネットワークの構造で、確率的な潜在変数モデルに基づいてデータの生成過程を学習することができる。従来のVAEでは、潜在変数が事前分布に過度に近づくことで、入力データの情報が十分に保持されない現象が指摘されてきた。

InfoVAEはこの問題に対応するため、潜在変数と入力データの間の相互情報量を学習目標に明示的に組み込み、これを最大化するように設計されている。これにより、潜在表現がデータの構造や多様性をより豊かに反映することが期待される。

学習では、再構成誤差に加えて、潜在分布と事前分布の乖離を測る項や相互情報量に関する項が導入され、それぞれの重み付けを調整することで、生成品質と表現力のバランスが制御される。画像生成や表現学習において、潜在空間の崩壊を抑えつつ多様なサンプルを生成できる。

β-VAE

変分オートエンコーダ(VAE)の枠組みを拡張し、重み係数を一つ追加して潜在表現の性質を制御する生成モデル。表現の分離性や解釈性を高めることを目的としている。

VAEはオートエンコーダを拡張したニューラルネットワークの構造で、確率的な潜在変数モデルに基づいてデータの生成過程を学習することができる。従来のVAEでは、データの各特徴が潜在空間の異なる次元に混在してしまう「もつれ」(entanglement)が存在し、出力の解釈性が低く、特定の特徴だけ変更するといった制御も難しかった。

通常のVAEでは再構成誤差と潜在分布と事前分布の乖離を同時に最小化するが、β-VAEでは後者の項にβという係数(事前に決めておくハイパーパラメータ)を掛けて最適化を行う。βを1より大きく設定することで、潜在変数が事前分布により強く制約され、情報量が圧縮されやすくなる。

この結果、潜在空間の各次元がデータ生成要因を分担して表現する傾向が強まり、要因ごとに分離された表現が得られるようになる。例えば、物体の画像を学習させた場合、ある次元は「回転」、別の次元は「大きさ」といった、人間にとって解釈可能な独立した要素として抽出されるようになる。

一方で、βを大きくし過ぎると再構成精度が低下し、入力データの詳細が失われることがあるため、生成品質と表現の解釈性の間にはトレードオフが存在する。β-VAEは教師なし学習でありながらデータの構成要素を個別に制御・理解することができるため、画像生成の他にもロボット制御や異常検知など、現象の要因を解釈することが求められる分野に応用されている。

次元削減

機械学習で扱うデータが持つ特徴量の数(次元)を、データの持つ本質的な情報や構造を可能な限り保ちながら、より少ない数に変換・圧縮すること。

データ分析や機械学習モデルの構築において、計算コストの削減や過学習(オーバーフィッティング)の防止、さらにはデータの可視化を目的として広く利用される基本的な前処理の一つである。特徴量が非常に多い「高次元データ」を扱う際、その有効性が特に発揮される。

データの次元

統計解析や機械学習では、一つのデータを複数の項目(データの特徴を表す値:特徴量)の組み合わせとして表すことが多い。いくつの値で表すかを「次元」という。2つなら2次元、3つなら3次元であり、こうした少数の値で表されるデータを「低次元データ」という。一方、数十や数百といった多数の値を組み合わせてデータを構成する場合があり、これを「高次元データ」という。

高次元のデータ空間では、データの分布が疎(まばら)になり、サンプル間の距離の概念が曖昧になる「次元の呪い」と呼ばれる現象が生じやすくなる。この現象は、機械学習モデルの性能低下や、学習時間の増加を招く。また、我々の暮らす空間は3次元であるため、高次元のデータはそのままでは2次元や3次元のグラフとして描画することができない。

次元削減とは

高次元のデータ群を、より少ない特徴量で表される低次元のデータに変換し、次元を減らす操作を次元削減という。これには大きく分けて二つのアプローチがある。一つは、元の特徴量の中から、予測に最も重要と思われる特徴量を選択する「特徴量選択」(feature selection)である。もう一つは、元の複数の特徴量を組み合わせて、少数の新たな特徴量に合成する「特徴量抽出」(feature extraction)である。

特徴量抽出の代表的な手法としては、線形的な手法である「主成分分析」(PCA)や、非線形的な手法である「t-SNE」「オートエンコーダ」などが挙げられる。主成分分析は、データの分散が最大となる方向(主成分)を見つけ出し、その方向にデータを射影することで次元を削減する手法である。一方、t-SNEのような非線形手法は、元の高次元データにおけるデータ点間の局所的な関係性や複雑な構造を保ちながら、低次元空間にマッピングする能力に長けている。

事前学習

機械学習モデルに特定のタスクのための本格的な学習を行う前に、大規模なデータセットを用いて汎用的な知識や特徴を習得させておく工程。主に深層学習において性能向上や学習効率改善のために用いられる。

対象タスクとは異なるが関連性のあるデータや課題を用いてモデルを学習させることで、入力データの基本的な構造や統計的性質を獲得させる。この段階では、教師なし学習や自己教師あり学習が利用されることが多く、ラベル付けコストを抑えつつ大規模データを活用できる。

例えば、画像認識であれば、膨大な画像群から「物体の輪郭」や「色のグラデーション」といった普遍的な視覚的要素をあらかじめ学習しておく。自然言語処理であれば、数兆語に及ぶテキストから、言葉の繋がりや文脈などの要素を理解させておく。これらを土台に、特定の目的を持つ少量の学習データで微調整(ファインチューニング)を施すことで、専門的なタスクに対しても高い性能を発揮できるようになる。

事前学習の大きな利点は、膨大な計算コストとデータが必要な、モデルの「基礎固め」の工程を一度だけ行い、様々な用途に再利用できる点にある。まっさらな状態から学習(スクラッチ学習)する場合に比べて、モデルの重みが既に適切な初期値に近づいているため、学習の収束が早く、データが少なくても過学習を抑えながら精度を安定させることができる。事前学習を行ったモデルを「事前学習済みモデル」と呼び、オープンソースで公開されているものもある。

積層オートエンコーダ

特殊なニューラルネットワークの構造の一つで、複数のオートエンコーダを層状に重ねて構成したもの。単層のモデルでは捉えきれないデータの抽象的な構造を学習でき、深層学習(ディープラーニング)の先駆け的な技術として知られる。

入力層と出力層の次元が同一で、一層のみの中間層(隠れ層)で情報を圧縮するネットワーク構造を「オートエンコーダ」(autoencoder)という。積層オートエンコーダは複数のオートエンコーダを階層状に積み重ねたもので、入力側のオートエンコーダで得られる潜在表現を次のオートエンコーダの入力とし、これを繰り返すことで多層構造を形成する。

下位層では入力データの局所的・低水準な特徴が学習され、上位層に進むにつれてより抽象度の高い表現が獲得される。この構造により、ネットワークの深い層へ行くほど入力に含まれる細かな変動が取り除かれ、より本質的で高度な概念が抽出されるようになる。

隠れ層が複数ある深い階層のニューラルネットワークは、一度に全体を学習させようとすると計算量が膨大になる問題があり、一時は研究が停滞していたが、積層オートエンコーダでは入力側から一層ずつ順番に学習していく「事前学習」(pretraining)という手法が導入され、深い階層でも現実的な計算量で学習可能になった。

すべての層の学習が完了した後は、デコーダ部分を取り除き、最後に分類用の層を追加してネットワーク全体を微調整する「ファインチューニング」を行う。近年では、計算能力の向上や学習アルゴリズムの改良により、オートエンコーダを用いない直接的な深層学習が一般的となったが、積層オートエンコーダは深い階層の学習を効率的に進める手法の先駆けとして歴史的な意義がある。

変分オートエンコーダ

特殊なニューラルネットワークの構造の一つで、確率的な潜在変数モデルに基づいてデータの生成過程を学習するオートエンコーダ。データから学んだ特徴に基づいて新しいデータの生成が可能となる。

入力層と出力層の次元が同一で、一層のみの中間層(隠れ層)で情報を圧縮するネットワーク構造を「オートエンコーダ」(autoencoder)という。変分オートエンコーダは入力データを低次元の潜在空間に写像する際に、単一の値ではなく確率分布として表現する。エンコーダは平均と分散を出力し、潜在変数がその分布からサンプリングされると仮定する。この確率的表現により、潜在空間は連続的かつ滑らかな構造を持つように学習される。

学習では、再構成誤差に加えて、潜在変数の分布があらかじめ定めた事前分布に近づくよう制約を課す。この制約は変分推論に基づき定式化され、両者を同時に最適化することで安定した潜在表現が得られる。確率的サンプリングを含むため、そのままでは勾配計算が困難であるが、「再パラメータ化トリック」と呼ばれる手法により誤差逆伝播法が適用可能となる。

従来のオートエンコーダが再構成精度を主目的とするのに対し、変分オートエンコーダはデータ分布全体を捉えることができ、生成モデルの基礎として重要である。「VQ-VAE」「info VAE」「β-VAE」などの派生手法も提案されている。画像や音声の生成、創薬における分子構造の設計など、既存のデータの特徴を活かした新たなデータの生成に応用されている。

データ拡張

機械学習において、手元にある学習データに加工を施すことで、データの意味を保ったまま量や多様性を増やす手法。モデルの汎用性を高め、過学習を抑制する効果がある。

機械学習モデルは、学習に用いるデータの分布を通じて規則性を獲得するが、データ量が不足すると特定の事例に過度に適合(過学習)してしまい、新しい入力に対する予測精度(汎化性能)が低下することがある。

データ拡張は、収集済みのデータに一定の規則に基づいて機械的な加工を施すことで擬似的に新しいサンプルを生成し、学習データの数を増やす。モデルが多様な入力に触れる機会を増やし、学習の偏りを緩和することができる。

画像認識では、回転(Rotation)や反転(Flip)、切り抜き(Cropping)、拡大・縮小、輝度(Brightness)やコントラスト(Contrast)の変更などが一般的に用いられる。音声分野では、雑音の付加(Noising)や再生速度の変化が利用される。自然言語処理では、文章中の一部の単語を同義語に置き換えたり(Paraphrasing)、語順を入れ替えたりする手法が用いられる。

これらの操作によって生成されたデータは、元のデータとは細部が異なるものの、本質的な意味・内容は維持されている。モデルは同じ対象についての多様なパターンを学習することで、ノイズや状況の違いに影響されずに安定して識別や予測を行う頑健性を獲得することができる。特に、学習データの量が少ない状況で精度を高める手法として有効である。

Contrast

機械学習におけるデータ拡張手法の一つで、学習に用いる画像データの明暗の差を変更して新たな学習データとするもの。同じ被写体について撮影環境や画像品質の違いを擬似的に再現することができる。

データ拡張は機械学習に用いる学習データに加工を施して新しい学習データを生成する手法である。データの意味を保ったまま量や多様性を増やし、過学習を抑えて未知データに対する精度(汎化性能)を向上させる効果がある。

Contrastは画像を学習するモデルに適用される拡張手法の一つで、画像内の明暗や濃淡の差(コントラスト)を変化させ、元の画像よりも被写体が明瞭に写った画像やぼんやりと写った画像を生成してモデルに与える。実際の環境では機材の種類や設定、天候や照明などの影響で被写体の映り方が変わるため、特定の明暗差の違いに依存しない特徴を学ぶことができる。

具体的には、元の画像の各画素の値に対して、平均輝度からの差を増大あるいは縮減させるといった操作を行う。コントラストを上げると明るい部分はより明るく、暗い部分はより暗くなり、コントラストを下げると全体が均一な明るさに近づく。ただし、あまりに極端にコントラストを変化させるとノイズが過剰に強調されたり被写体の幾何学的な特徴が変化してしまう場合があるため、変化させる範囲には注意が必要となる。

Brightness

機械学習におけるデータ拡張手法の一つで、学習に用いる画像データの輝度(明るさ)を変更して新たな学習データとするもの。同じ被写体について明るさの異なる画像で学習を行うことができる。

データ拡張は機械学習に用いる学習データに加工を施して新しい学習データを生成する手法である。データの意味を保ったまま量や多様性を増やし、過学習を抑えて未知データに対する精度(汎化性能)を向上させる効果がある。

Brightnessは画像を学習するモデルに適用される拡張手法の一つで、画像の輝度(brightness)を変化させ、元の画像よりも被写体が暗く写った画像や明るく写った画像を生成してモデルに与える。実際の環境では天候や照明などの影響で明るさが変化するため、特定の照明条件に依存しない特徴を学ぶことができる。

具体的には、元の画像の各画素の値に対して特定の係数を加算あるいは乗算するといった比較的単純な処理で輝度を変化させることができる。ただし、あまりに極端に輝度を変化させると白飛びや黒つぶれによって幾何学的な特徴まで変化してしまう場合があるため、値の範囲には注意が必要となる。

Crop

機械学習におけるデータ拡張手法の一つで、学習に用いる画像データの一部を切り抜いて新たな学習データとするもの。同じ被写体について、画像内の様々な位置や大きさで写っている様子を学習することができる。

データ拡張は機械学習に用いる学習データに加工を施して新しい学習データを生成する手法である。データの意味を保ったまま量や多様性を増やし、過学習を抑えて未知データに対する精度(汎化性能)を向上させる効果がある。

Croppingは画像を学習するモデルに適用される拡張手法の一つで、画像の一部をランダムに切り抜いて、被写体が様々な位置や大きさで写っている画像を生成してモデルに与える。実際の環境では画像内での被写体の映り方は一様ではないため、位置や大きさに依存しない特徴を学ぶことができる。

具体的には、元の画像からランダムな位置とサイズで画像を切り抜き、元の画像と同じスケールにリサイズする。これにより、画像内での被写体の見かけの大きさが異なっていたり、被写体の一部が欠けた状態を学習することができる。ただし、画像内で被写体が全く写っていない領域や、特徴が分からないような極端な小さい領域を切り出しては適切に学習できないため、切り抜く範囲やサイズには制限を加えることが多い。

CutMix

機械学習におけるデータ拡張手法の一つで、二つの画像データを切り貼りして合成した画像を学習データとするもの。混合した画像の面積比率に応じて正解ラベルも混合することで、モデルの識別能力と汎用性を高めることができる。

データ拡張は機械学習に用いる学習データに加工を施して新しい学習データを生成する手法である。データの意味を保ったまま量や多様性を増やし、過学習を抑えて未知データに対する精度(汎化性能)を向上させる効果がある。

CutMixでは、一方の画像から矩形領域を切り取り、それを別の画像の対応する位置に貼り付けることで合成画像を作成する。同時に、元画像それぞれのラベルを、切り取った領域の面積比に応じて重み付けして混合する。モデルは画像の一部分だけでなく、複数の領域に含まれる特徴とラベルの関係を学習することになる。

画像から一部を切り抜いて欠落させるデータ拡張手法を「Cutout」、二つの画像を半透明にして重ね合わせて合成する手法を「Mixup」というが、CutMixは両者を組み合わせた手法と言える。画像の一部を欠落させることで局所的な特徴への過度な依存を抑え、より広い文脈を考慮した認識を促すとされる。

Cutout

機械学習におけるデータ拡張手法の一つで、画像データの一部を切り抜いて欠損させた画像を学習データとするもの。画像の一部が隠れた状態で対象を推測することで、局所的な特徴に依らず予測できるように訓練する。

データ拡張は機械学習に用いる学習データに加工を施して新しい学習データを生成する手法である。データの意味を保ったまま量や多様性を増やし、過学習を抑えて未知データに対する精度(汎化性能)を向上させる効果がある。

Cutoutでは、元の画像の一部をランダムなサイズの矩形(長方形や正方形)で単色に塗りつぶすなどして、対象の一部が隠れて見えないように加工する。様々な箇所が隠れた画像で繰り返し学習を行うことで、モデルは特定の局所的な特徴だけに依存することなく、画像全体の文脈や複数の特徴を組み合わせて判断するよう促される。

単一の画像でデータを拡張することができ、ラベルの変更も必要なく、加工も容易であるため、画像認識などのモデルを作成する際に低コストで汎化性能を高める手法として普及している。欠損した箇所に別の画像から切り抜いたイメージを貼り付けて合成する手法も提案されており「CutMix」と呼ばれる。

Mixup

機械学習におけるデータ拡張手法の一つで、二つのデータを重み付け平均して合成し、新たな学習データとするもの。正解ラベルも同じ重みで混合することで、データ間の連続的な変化を学習することが可能になる。

データ拡張は機械学習に用いる学習データに加工を施して新しい学習データを生成する手法である。データの意味を保ったまま量や多様性を増やし、過学習を抑えて未知データに対する精度(汎化性能)を向上させる効果がある。

Mixupでは、二つの学習データのサンプルと正解ラベルのそれぞれを特定の同じ割合で線形に重ね合わせて合成する。例えば、画像認識タスクであれば、犬の画像を70%、猫の画像を30%の割合で半透明化して重ね合わせた合成画像を作成し、これを「犬が0.7、猫が0.3」という正解ラベルを与えて学習させる。

現実には存在しない不自然なデータを学習することになるが、クラス間を滑らかにつなぐ中間的なデータが生成され、モデルの決定境界を滑らかにする効果がある。通常の学習では未知データが境界付近にある場合、わずかなノイズで予測が大きく変動しがちだが、Mixupによる学習で境界付近での振る舞いが安定し、ノイズに対して頑健になる。モデルの過度な自信を抑制し、予測の安定性を高める効果も期待できる。

noising

機械学習におけるデータ拡張手法の一つで、データに微小なノイズを意図的に付け加えて新たな学習データとするもの。入力データにランダムな変動を加えても正解ラベルが変わらないことを学習させ、予測精度を安定させることができる。

データ拡張は機械学習に用いる学習データに加工を施して新しい学習データを生成する手法である。データの意味を保ったまま量や多様性を増やし、過学習を抑えて未知データに対する精度(汎化性能)を向上させる効果がある。

Noisingでは、学習データにランダムにノイズを付け加えたものを元の正解ラベルを用いて学習させる。例えば、画像であれば各画素に対してガウス分布に従う乱数であるガウスノイズを加えたものを学習させる。この手法は画像だけでなく、音声や文字データ、数値データなど様々なデータに対して汎用的に適用できる。

ノイズを加えたデータを学習することで入力の微小な揺らぎに対して頑健な表現を獲得し、モデルの汎化性能を高めることができる。特に、学習データ量が少ない場合、モデルはデータの細かな変動を重要な情報だと誤認して学習してしまう場合があるが、ノイズを導入することでこうした細部への依存を減らし、対象の普遍的な特徴を学ぶことができる。

paraphrasing

機械学習におけるデータ拡張手法の一つで、自然言語のデータに対して、元の文章の意味を保ったまま一部の別の言葉や表現に置き換えた文章を作成し、新しい学習データとするもの。限られたテキストデータから多様な表現パターンを作り出し、モデルの汎用性を高めることができる。

データ拡張は機械学習に用いる学習データに加工を施して新しい学習データを生成する手法である。データの意味を保ったまま量や多様性を増やし、過学習を抑えて未知データに対する精度(汎化性能)を向上させる効果がある。

Paraphrasingは自然言語の文章を対象とする拡張手法で、元の文章に対して単語や熟語の同義語への置き換え、語順の変更、能動態と受動態の変換など、機械的な処理で実行可能な「言い換え」(paraphrase)を行い、意味的に等価な新しいサンプルを作成する。近年では、このようなルールベース手法に加え、機械翻訳で別の言語に翻訳し再翻訳する方法や、大規模言語モデル(LLM)による生成的言い換えも利用されている。

様々な言い換え表現をモデルに学習させることで、モデルは特定の語句や定型表現への過度な依存を避け、意味内容に基づく表現を学習しやすくなる。一方、言い換えの過程で意味が微妙に変化したり、ラベルと整合しない文が生成される可能性もあるため、変換手法の検討や品質の管理が重要となる。

RandAugment

機械学習におけるデータ拡張アルゴリズムの一つで、あらかじめ用意された多数のデータ拡張手法の中から、ランダムに選択した複数の操作を組み合わせて適用する手法。設定すべきパラメータが少なく、計算コストを抑えながら高い精度向上を実現できる。

データ拡張は機械学習に用いる学習データに加工を施して新しい学習データを生成する手法である。データの意味を保ったまま量や多様性を増やし、過学習を抑えて未知データに対する精度(汎化性能)を向上させる効果がある。

RandAugmentは画像データに対するデータ拡張を自動化するアルゴリズムの一つで、操作の種類nと強度mという二つのパラメータで制御される。あらかじめ用意された拡張手法からn種類の手法をランダムに選択し、同じ強度mで順番に元の画像データに対して適用したものを新たな学習データとする。

適用される操作には、回転(Rotation)や反転(Flip)といった幾何変換、明るさ(Brightness)やコントラスト(Contrast)の変更、色相の調整などが含まれる。これらは画像の意味内容を大きく変えずに見え方のみを変化させる処理であり、モデルに対して入力の多様な変動を経験させる役割を持つ。

先行するAutoAugmentのような探索型手法は膨大な計算資源が必要な難点があった。RandAugmentは操作の種類を10個程度、強度を10段階程度用意することが多く、パラメータの探索空間が100種類程度しかないため、計算コストが圧倒的に低いという利点がある。実際のデータを用いた実験では、シンプルながら既存手法に比べ遜色ない精度の向上が得られるとされる。

Random Erasing

機械学習におけるデータ拡張手法の一つで、画像データの一部をランダムな位置とサイズの長方形で切り抜いて欠損させた画像を学習データとするもの。画像の一部が隠れた状態で対象を推測することで、局所的な特徴に依らず予測できるように訓練する。

データ拡張は機械学習に用いる学習データに加工を施して新しい学習データを生成する手法である。データの意味を保ったまま量や多様性を増やし、過学習を抑えて未知データに対する精度(汎化性能)を向上させる効果がある。

Random Erasingでは、元の画像の一部をランダムに決めた位置、サイズ、縦横比、色の長方形で塗りつぶし、対象の一部が隠れて見えないように加工する。様々な箇所が隠れた画像で繰り返し学習を行うことで、モデルは特定の局所的な特徴だけに依存することなく、画像全体の文脈や複数の特徴を組み合わせて判断するよう促される。

単一の画像でデータを拡張することができ、ラベルの変更も必要なく、加工も容易であるため、画像認識などのモデルを作成する際に低コストで汎化性能を高める手法として普及している。よく似た手法で、ランダムな形状ではなく固定サイズの正方形でランダムな位置を隠すものは「Cutout」と呼ばれる。

Random Flip

機械学習におけるデータ拡張手法の一つで、学習に用いる画像データを左右もしくは上下に反転させて新たな学習データとするもの。同じ被写体について、異なる向きで写っている様子を学習させることができる。

データ拡張は機械学習に用いる学習データに加工を施して新しい学習データを生成する手法である。データの意味を保ったまま量や多様性を増やし、過学習を抑えて未知データに対する精度(汎化性能)を向上させる効果がある。

Random Flipは画像を学習するモデルに適用される拡張手法の一つで、画像を左右あるいは上下に反転して被写体の向きを変えた画像を生成してモデルに与える。反転処理は学習の過程でランダムに行われ、データセットそのものを増やす必要はない。様々な向きの画像を学習することで、向きに依存せずに普遍的な特徴から物体を識別できるようになる。

なお、文字や数字、記号や標識のように、反転させると意味を失ったり異なる意味に変化して可能性がある対象には適用すべきでないため、対象が反転しても意味が変わらないかどうか事前によく検討しておく必要がある。

Rotate

機械学習におけるデータ拡張手法の一つで、学習に用いる画像データを様々な角度で回転させて新たな学習データとするもの。同じ被写体について様々な傾きで写っている様子を学習することができる。

データ拡張は機械学習に用いる学習データに加工を施して新しい学習データを生成する手法である。データの意味を保ったまま量や多様性を増やし、過学習を抑えて未知データに対する精度(汎化性能)を向上させる効果がある。

Rotationは画像を学習するモデルに適用される拡張手法の一つで、画像の中心を軸に一定の角度だけ回転させ、被写体が様々な傾きで写っている画像を生成してモデルに与える。実際の環境では画像内での被写体の向きは一様ではないため、傾きに依存しない特徴を学ぶことができる。

回転させる角度はあらかじめ決めた固定値を用いる場合と、決められた範囲内でランダムに設定する場合がある。対象やタスクによって、どのような向きや傾きにも対応したい場合は0度から360度まで様々な回転が行われるが、文字や数字の認識などでは過度な回転によって意味が変わってしまう場合があるため、角度に制限を設ける場合がある。

ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる