[DL]人工ニューラルネットワーク構造


これは深い学習に関する最初の位置づけです.深さ学習で用いられるモデルで最も基本的なフィードフォワードニューラルネットワークとして,人工ニューラルネットワークの基本構造をまとめた.
1.マグネトロン
マグネトロンは人工ニューラルネットワークを構成する最も基本的な単位である.このノードと呼ばれる概念論はヒト細胞においてニューロンに似た役割を果たしている.人間の神経は外部からの刺激を受けて、刺激に反応するか(1)、反応しないか(0)を決める.反応が決まると、次のニューロンに刺激を伝え、刺激を受けた体の器官が刺激に適切に反応する.初めて見た刺激なら勉強が必要です.
人工ニューラルネットワークの自己組織ネットワークもニューロンに類似したアルゴリズムを用いた.人工ニューラルネットワークモデルは、信号(画像、デジタル、ビデオなど)を受信することによって適切なターゲット値を取得する学習指導学習アルゴリズムである.その後、Perceptronがターゲットに信号を送信する.

簡単に整理させてください.
  • 繊維は人工神経ネットワークを構成する最も基本的な単位である.
  • 1つの構成であって、
  • の複数の信号を受信することによって1つの信号を出力する.
  • パーセロンは、重み付けオフセット演算およびアクティブ化関数部分に大きく分けることができる.
  • 重み付けオフセット演算(重み付け):入力信号の重み付けと加算、合計
  • .
  • アクティブ関数:重み付け出力の数を決定する関数
  • 2.アクティブ化関数
    複数の信号を受信することによって1つの信号を出力する単位を説明する.再び体をたとえると、この信号を最終的な臓器に伝えるかどうかを決める関門が必要だ.慣れた刺激や無視できる刺激なら、必ずしも臓器に伝えなくてはならない.この役割は、人工ニューラルネットワークで有効になります.
  • 活性化関数は、重み付け入力信号の総和(重み付け)を出力する信号を計算するための関数である.
  • は、通常、しきい値に基づいて出力値を変更します.
  • いくつかの
  • アクティブ化関数について説明します.
    階段関数:階段関数が0より大きい場合は1に等しく、そうでない場合は0を出力します.これは人工神経ネットワークでは使用されない関数であり、人間の体の機能と最も似ているが、微分ではないからだ.
  • 信号関数:微分不可ステップ関数の欠点を補う関数.入力信号の場合、0~1の間で誤って出力されます.
  • Relu関数:信号関数の欠点は傾斜消失の発生である.Relu関数を用いて信号関数の欠点を補う.0を超えると入力した値が出力され、そうでない場合は0が出力されます.
  • softmax関数:出力レイヤのアクティブ化関数.信号関数を一般化して多分類問題の関数に適用する.重み付けがソフトMax関数を通過すると、nクラスに確率値が返されます.sum(n)は1である.
  • 3.多層マグネトロン
    PerceptronとPerceptronの重要な機能の一つである活性化関数を理解した以上,人工ニューラルネットワークの構造を整理してみよう.人工ニューラルネットワークとは深い概念論モデルを構築したことを指す.1つのPerceptronを使用すると単層Perceptronと呼ばれ、2つ以上を使用すると多層Perceptronと呼ばれます.この多層繊維から人工ニューラルネットワークと呼ばれ,深さ学習モデルとも呼ばれる.
    では、Perceptronを多層に積み上げる理由が必要です断層プロファイルを用いて入力データを抽出する特徴には明らかな限界がある.

    左側の画像では、上記の特徴のデータを1本の直線で正確に分割することはできません.正確に分割するには少なくとも2本の線が必要です.この線はマグネトロンを意味する.1本の直線の断層概念論では解決できない上記の問題タイプを排他的論理構造と呼び,排他的論理構造を解決するために2本以上の直線を有する多層概念論を用いる.
    1)単層パープルチューブの限界
  • 断層ブラウン管は、アクティブ化関数によって指定された標準出力0または1である.
  • すなわち断層プローブは、上記の第1の図形に従って、入力データの直線を2つの特性領域に分ける.
  • 問題は、入力データを1つの直線で区切ることができない属性です.
  • 排他的論理構造(XOR gate)では、データの属性を1つの直線で区切ることはできません.
  • は、この断層超音波器の限界を示す第2の図である.
  • 2)単層パーセロンの限界を克服するために多層パーセロン
  • 断層の上記限界を克服するために、それを多層に積層することができる.
  • データが
  • の1本の線で区切られない場合は、2枚目の図のように複数の線を引いてデータを区切るだけでよい.
  • は多層マグネトロンと呼ばれている.
  • モデル1と比較して、モデル2の性能がより良いのは、1つ以上の線を使用して入力データの特徴を階層化するためである.すなわち,多層概念論を用いることで,入力データの特徴をより良く抽出できる.
  • 4.多層Perceptron構造の人工神経ネットワーク

    上の画像は2つ以上のPerceptronで作られた2層のニューラルネットワークです.入力レイヤ(input)にはアクティブな関数がないため、レイヤの計算には通常含まれません.デフォルトでは、人工ニューラルネットワークは、以下に示すように、入力レイヤ-暗黙レイヤ-出力レイヤから構成されます.各円は1つのマグネトロンであり、1層に1つ以上のマグネトロンがある.では、各階で何をしているのか見てみましょう.
  • 入力層
  • データセットのレイヤを入力します.
  • 入力データセットの特性は、入力レイヤノードの数を決定する.
  • ニューラルネットワークの層数を計算する場合、入力層は含まれない.
  • 非表示レイヤ
  • 入力層から入力された信号を演算する層.
  • 入力層と出力層の間の層を非表示層と呼ぶ.
  • 非表示レイヤで発生した計算結果がユーザーには表示されないため、「非表示レイヤ」と呼ばれます.
  • 非表示レイヤは、データセットの特性を考慮せずに任意の数のノードを構成することができる.
  • 出力層
  • は最後のレイヤであり、出力は非表示レイヤ演算を完了する値である.
  • バイナリ分類問題では、信号関数が使用される.
  • の多分類問題に対してソフトMax関数を用いた.
  • 回帰問題は関数をアクティブにしていません.ノード数と出力値の特性数は同じです.
  • 5.kerasによる人工神経ネットワークの実現
    import pandas as pd
    import tensorflow as tf
    
    #데이터 로드
    
    mnist = tf.keras.datasets.mnist
    
    (X_train, y_train), (X_test, y_test) = mnist.load_data()
    
    #이미지 정규화
    
    X_train, X_test = X_train / 255.0, X_test / 255.0
    
    #타겟값 확인
    
    pd.unique(y_train)
    
    #신경망 layer 구성
    
    model = tf.keras.models.Sequential([
                                        tf.keras.layers.Flatten(input_shape = (28, 28)),
                                        tf.keras.layers.Dense(100, activation = 'relu'),
                                        tf.keras.layers.Dense(10, activation = 'softmax')])
    
    #신경망 요약
    
    model.summary()
    
    #모델 컴파일
    #sparse_categorical_crossentropy : ordinal 형식의 다중분류 문제에 적합한 손실함수
    
    model.compile(optimizer = 'adam',
                  loss='sparse_categorical_crossentropy',
                  metrics=['accuracy'])
    
    #모델 학습
    
    model.fit(X_train, y_train, epochs=5)
    
    # 모델 평가
    
    model.evaluate(X_test, y_test, verbose=2)