MENU
やすひら
やすひらと申します。
長靴を履いたタヌキ(ITエンジニア)です。
モノ作りの楽しさを発信中。
X(旧Twitter)のフォローもお願いします。

[人工知能]ニューラルネットワークの概要と仕組み

ニューラルネットワークは、脳のニューロンの仕組みを模倣したアルゴリズムで、人工知能(AI)の一つです。
ニューラルネットワークを知ることで、人工知能でできることがわかります。
本記事では、ニューラルネットワークの概要と仕組みを紹介します。

やすひら

ニューラルネットワークの概要と仕組みを紹介します

この記事でわかること
  • ニューラルネットワークの概要
  • ニューラルネットワークの仕組み
目次

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

ニューラルネットワークは、脳のニューロンの仕組みを模倣したアルゴリズムで、人工知能(AI)の一つです。
ニューロンを模した人工ニューロンを層状に組み合わせて構成してネットワークを構築します。 
ニューラルネットワークでは、データを学習し、パターン認識/分類/予測を行うことができるため、画像認識、音声認識、自然言語処理など、さまざまな分野で幅広く利用されています。

人工ニューロンの仕組み

人工ニューロンは、ヒトのニューロンを模倣したもので、入力信号を受け取り、重みやバイアスで演算し、活性化関数に通してON/OFFを生成します。

活性化関数は、入力信号が一定の閾値を超えたときに人工ニューロンが発火するかどうかを判定します。
一般的な活性化関数には、シグモイド関数、ステップ関数、ReLU関数などがあります。

ニューラルネットワークの仕組み

ニューラルネットワークは、複数の人工ニューロンを層状に組み合わせて構成します。
各層は、前の層からの出力を入力として受け取り、演算処理を実行して、次の層に出力を渡します。

入力層

入力層はデータを入力する層です。
画像データを入力データとする場合、画像ファイルをデータに変換して入力層にデータとして入力します。

中間層(隠れ層)

入力層からデータを受信し、演算を行うのが中間層の役割です。

中間層で使用する演算では、活性化関数を使用します。
また、ニューラルネットワークでは、非線形関数(一直線のグラフにならないもの)を使用する必要があります。

  • シグモイド関数
  • ステップ関数
  • ReLU関数

3層以上の中間層を持つニューラルネットワークで実行する学習を、ディープラーニング(深層学習)と呼びます。

出力層

入力層/中間層で演算した結果を出力するのが出力層です。
例えば、入力した画像データをニューラルネットワークにかけが結果が、出力層に出力されます。

機械学習は、分類問題と回帰問題に用いることが可能です。
どちらの問題を解くかで、使用する活性化関数が異なります。

  • 分類問題 : 恒等関数
  • 回帰問題 : ソフトマックス関数

出力した結果と教師データを照合する手法として誤差逆伝播法があります。

ニューラルネットワークにおける学習

ニューラルネットワークの学習とは、訓練データをもとに最適なパラメータ(重み/バイアス)を探索することです。

重みづけを最適化するためには、損失関数を使用します。
損失関数を基準として、最小で最適な重みパラメータを探索します。
損失関数は以下を使用します。

  • 2乗和誤差
  • 交差エントロピー誤差

損失関数を使用する理由は、精度を基準にしないためです。
学習で最適なパラメータ(重み/バイアス)を探索するにあたり、損失関数が最小になるパラメータを探索します。
損失関数を最小にするために、パラメータの微分(勾配)を算出し、値を変化させることでパラメータを算出します。
精度を基準にしてしまうと、微分(勾配)の値が0になってしまい、変化が起きないので、損失関数を使用します。
勾配を効率的に算出する手法として、誤差逆伝播法があります。

ニューラルネットワークの学習はミニバッチ処理、勾配の算出、パラメータの更新を繰り返し行います。

STEP
ミニバッチ処理

訓練データからランダムに一部のデータ(ミニバッチ)を取り出す。

STEP
勾配の算出

損失関数を減らすために、勾配を算出

STEP
パラメータの更新

重みパラメータを勾配方向にび微量に更新する

STEP
繰り返す

STEP1 – STEP3を繰り返す

学習を重ねると過学習が発生することがあります。
過学習とは、学習しすぎることで訓練データ以外のものが判別できないようになってしまうことです。
学習の途中経過で、テストデータと比較することで過学習が発生していないかを確認できます。

ニューラルネットワークの種類

ニューラルネットワークは様々な種類があります。

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

畳み込みニューラルネットワーク(CNN)は、画像認識に適したニューラルネットワークの一種です。
CNNは、画像の特徴を捉えるために、畳み込み層を使用します。
畳み込み層で、フィルターを用いて画像の小さな領域を処理し、特徴マップを生成することで、画像の空間的な階層構造を学習することが可能になります。

意味
畳み込み層フィルターを用いて入力データを処理し、特徴マップを生成する
プーリング層畳み込み層の出力をサブサンプリングし、計算量を減らしつつ重要な情報を保持する
全結合層プーリング層の出力を1次元のベクトルに変換し、最終的な分類を行う

CNNは、画像処理に適したニューラルネットワークです。

再帰型ニューラルネットワーク(RNN)

再帰型ニューラルネットワーク(RNN)は、時系列を考慮した処理に適したニューラルネットワークです。
RNNは、前の中間層の出力データを、次の中間層の入力データとすることで、時系列を考慮した推論をおこなうことができます。

意味
入力層時系列データの各ステップを入力する
中間層各タイムステップで出力を生成し、その出力を次のタイムステップの入力として使用する
出力層結果を出力する

RNNは、時系列を扱った処理を行うことができます。

長・短期記憶ネットワーク(LSTM)

長・短期記憶ネットワーク(LSTM)は、RNNを改良したニューラルネットワークで、長い時系列のデータを学習できるようになっています。

中間層にLSTMブロックを備えており、忘却ゲート/入力ゲート/出力ゲートがあります。

ゲート意味
忘却ゲート長期記憶から情報を忘却する
入力ゲート入力データを判定して更新する
出力ゲート出力データを判定する

LSTMでは、長期の時系列データを扱った処理を行うことができます。

トランスフォーマー(Transformer)

トランスフォーマー(Transfomer)は、主に生成AIで利用されているニューラルネットワークです。
トランスフォーマーは、エンコーダーとデコーダーによって構成されています。

エンコーダーは、文章を数値ベクトルに変換します。
デコーダーは、エンコーダーで変換したデータを、出力データに変換します。

意味
Positinal Encodingトークンの位置情報を埋め込む。
Multi-Head Attentionどの単語に注目(Attention)するかを判定する。複数データに対して実行可能。
Masked Multi-Head Attention一部のデータを隠した状態で注目するかを判定する

トランスフォーマーの特徴は、入力データを単語ごとにトークンとして区切り、注目する単語を判定して、出力データを推論します。
入力データに対する出力データを、高精度で生成することができます。

オートエンコーダー(Autoencorder)

オートエンコーダー(Autoencorder)は、入力データと一致するデータを出力することができる、教師なし学習で用いられるニューラルネットワークです。
オートエンコーダーは、エンコーダーとデコーダーによって構成されています。

入力データをエンコーダーで処理し、特徴情報にデータを抽出/圧縮します。
特徴データからデコーダーで、入力データと同等のデータを出力します。

オートエンコーダーでは、特徴情報を扱うことができるため、画像ノイズ除去/異常検知/クラスタリング(分類)を処理するのに適しています。

ディープラーニング

ニューラルネットワークの中間層が3層以上のものを、ディープニューラルネットワークと呼びます。
ディープニューラルネットワークでの学習を、ディープラーニング(深層学習)と呼びます。

まとめ

ニューラルネットワークの概要や仕組みを紹介しました。

ニューラルネットワークは
  • ヒトの脳を模したアルゴリズム
  • 入力層/中間層/出力層で構成されている
  • ニューラルネットワークは複数のモデルがある

ニューラルネットワークは、人工知能の技術です。
画像認識や自然言語処理などの多くの分野で使用されています。
ニューラルネットワークの仕組みを理解することで、人工知能をより深く理解し、応用できるようになると思います。

  • URLをコピーしました!
目次