ニューラルネットワークは、脳のニューロンの仕組みを模倣したアルゴリズムで、人工知能(AI)の一つです。
ニューラルネットワークを知ることで、人工知能でできることがわかります。
本記事では、ニューラルネットワークの概要と仕組みを紹介します。
ニューラルネットワークの概要と仕組みを紹介します
- ニューラルネットワークの概要
- ニューラルネットワークの仕組み
ニューラルネットワークとは
ニューラルネットワークは、脳のニューロンの仕組みを模倣したアルゴリズムで、人工知能(AI)の一つです。
ニューロンを模した人工ニューロンを層状に組み合わせて構成してネットワークを構築します。
ニューラルネットワークでは、データを学習し、パターン認識/分類/予測を行うことができるため、画像認識、音声認識、自然言語処理など、さまざまな分野で幅広く利用されています。
人工ニューロンの仕組み
人工ニューロンは、ヒトのニューロンを模倣したもので、入力信号を受け取り、重みやバイアスで演算し、活性化関数に通してON/OFFを生成します。
活性化関数は、入力信号が一定の閾値を超えたときに人工ニューロンが発火するかどうかを判定します。
一般的な活性化関数には、シグモイド関数、ステップ関数、ReLU関数などがあります。
ニューラルネットワークの仕組み
ニューラルネットワークは、複数の人工ニューロンを層状に組み合わせて構成します。
各層は、前の層からの出力を入力として受け取り、演算処理を実行して、次の層に出力を渡します。
入力層
入力層はデータを入力する層です。
画像データを入力データとする場合、画像ファイルをデータに変換して入力層にデータとして入力します。
中間層(隠れ層)
入力層からデータを受信し、演算を行うのが中間層の役割です。
中間層で使用する演算では、活性化関数を使用します。
また、ニューラルネットワークでは、非線形関数(一直線のグラフにならないもの)を使用する必要があります。
- シグモイド関数
- ステップ関数
- ReLU関数
3層以上の中間層を持つニューラルネットワークで実行する学習を、ディープラーニング(深層学習)と呼びます。
出力層
入力層/中間層で演算した結果を出力するのが出力層です。
例えば、入力した画像データをニューラルネットワークにかけが結果が、出力層に出力されます。
機械学習は、分類問題と回帰問題に用いることが可能です。
どちらの問題を解くかで、使用する活性化関数が異なります。
- 分類問題 : 恒等関数
- 回帰問題 : ソフトマックス関数
出力した結果と教師データを照合する手法として誤差逆伝播法があります。
ニューラルネットワークにおける学習
ニューラルネットワークの学習とは、訓練データをもとに最適なパラメータ(重み/バイアス)を探索することです。
重みづけを最適化するためには、損失関数を使用します。
損失関数を基準として、最小で最適な重みパラメータを探索します。
損失関数は以下を使用します。
- 2乗和誤差
- 交差エントロピー誤差
損失関数を使用する理由は、精度を基準にしないためです。
学習で最適なパラメータ(重み/バイアス)を探索するにあたり、損失関数が最小になるパラメータを探索します。
損失関数を最小にするために、パラメータの微分(勾配)を算出し、値を変化させることでパラメータを算出します。
精度を基準にしてしまうと、微分(勾配)の値が0になってしまい、変化が起きないので、損失関数を使用します。
勾配を効率的に算出する手法として、誤差逆伝播法があります。
ニューラルネットワークの学習はミニバッチ処理、勾配の算出、パラメータの更新を繰り返し行います。
訓練データからランダムに一部のデータ(ミニバッチ)を取り出す。
損失関数を減らすために、勾配を算出
重みパラメータを勾配方向にび微量に更新する
STEP1 – STEP3を繰り返す
学習を重ねると過学習が発生することがあります。
過学習とは、学習しすぎることで訓練データ以外のものが判別できないようになってしまうことです。
学習の途中経過で、テストデータと比較することで過学習が発生していないかを確認できます。
ニューラルネットワークの種類
ニューラルネットワークは様々な種類があります。
畳み込みニューラルネットワーク(CNN)
畳み込みニューラルネットワーク(CNN)は、画像認識に適したニューラルネットワークの一種です。
CNNは、画像の特徴を捉えるために、畳み込み層を使用します。
畳み込み層で、フィルターを用いて画像の小さな領域を処理し、特徴マップを生成することで、画像の空間的な階層構造を学習することが可能になります。
層 | 意味 |
---|---|
畳み込み層 | フィルターを用いて入力データを処理し、特徴マップを生成する |
プーリング層 | 畳み込み層の出力をサブサンプリングし、計算量を減らしつつ重要な情報を保持する |
全結合層 | プーリング層の出力を1次元のベクトルに変換し、最終的な分類を行う |
再帰型ニューラルネットワーク(RNN)
再帰型ニューラルネットワーク(RNN)は、時系列を考慮した処理に適したニューラルネットワークです。
RNNは、前の中間層の出力データを、次の中間層の入力データとすることで、時系列を考慮した推論をおこなうことができます。
層 | 意味 |
---|---|
入力層 | 時系列データの各ステップを入力する |
中間層 | 各タイムステップで出力を生成し、その出力を次のタイムステップの入力として使用する |
出力層 | 結果を出力する |
長・短期記憶ネットワーク(LSTM)
長・短期記憶ネットワーク(LSTM)は、RNNを改良したニューラルネットワークで、長い時系列のデータを学習できるようになっています。
中間層にLSTMブロックを備えており、忘却ゲート/入力ゲート/出力ゲートがあります。
ゲート | 意味 |
---|---|
忘却ゲート | 長期記憶から情報を忘却する |
入力ゲート | 入力データを判定して更新する |
出力ゲート | 出力データを判定する |
トランスフォーマー(Transformer)
トランスフォーマー(Transfomer)は、主に生成AIで利用されているニューラルネットワークです。
トランスフォーマーは、エンコーダーとデコーダーによって構成されています。
エンコーダーは、文章を数値ベクトルに変換します。
デコーダーは、エンコーダーで変換したデータを、出力データに変換します。
層 | 意味 |
---|---|
Positinal Encoding | トークンの位置情報を埋め込む。 |
Multi-Head Attention | どの単語に注目(Attention)するかを判定する。複数データに対して実行可能。 |
Masked Multi-Head Attention | 一部のデータを隠した状態で注目するかを判定する |
オートエンコーダー(Autoencorder)
オートエンコーダー(Autoencorder)は、入力データと一致するデータを出力することができる、教師なし学習で用いられるニューラルネットワークです。
オートエンコーダーは、エンコーダーとデコーダーによって構成されています。
入力データをエンコーダーで処理し、特徴情報にデータを抽出/圧縮します。
特徴データからデコーダーで、入力データと同等のデータを出力します。
ディープラーニング
ニューラルネットワークの中間層が3層以上のものを、ディープニューラルネットワークと呼びます。
ディープニューラルネットワークでの学習を、ディープラーニング(深層学習)と呼びます。
まとめ
ニューラルネットワークの概要や仕組みを紹介しました。
- ヒトの脳を模したアルゴリズム
- 入力層/中間層/出力層で構成されている
- ニューラルネットワークは複数のモデルがある
ニューラルネットワークは、人工知能の技術です。
画像認識や自然言語処理などの多くの分野で使用されています。
ニューラルネットワークの仕組みを理解することで、人工知能をより深く理解し、応用できるようになると思います。