じんこうニューラルネットワーク


人工神経ネットワークとは何ですか。

  • ニューラルネットワーク構造シミュレーションモデル
  • 以上の刺激または入力の場合、それぞれの重み付けを乗算し、さらに追加の偏差
  • を加える.
  • 人工ニューロン:アクティブ化関数によって複数の値を
  • の単位に変換する
  • 人工神経ネットワーク:人工ニューロンが集まるネットワーク
  • 人工ニューラルネットワークの要素

  • 入出力
  • 入力端と層力端との間の隠蔽層
  • 隠匿層数によりニューラルネットワークと深層ニューラルネットワーク
  • に区分する.
  • 深層ニューラルネットワーク:2つ以上の隠匿層を有する人工神経
    ->1つのセル(ニューロン)と同様に,入力値の重み付けと活性化関数による変形を行い,この過程を繰り返して最終結果値を得る.
  • マトリックス演算
  • アクティブ化関数

  • アクティブ化関数がない場合、いくつかの非表示レイヤがあっても線形変換されるため、深いモデルを作成する意味は
  • に消えてしまう.
  • で最もよく使われる関数は「信号」と「スーパーボウル接線」
  • です.
  • 信号:結果0~1の緩動曲線形式
  • スーパーボウル接線:結果値-1~1の
  • の2つの関数はすべての区間で微分することができ,逆伝搬に
  • が有用である.

    電波と逆電波

  • 伝播(純伝播):入力値が人工ニューラルネットワークに入り、次いで複数の隠蔽層を順次通過して結果値を得るプロセス
  • .
  • 逆伝播:計算結果と正解との差の損失をチェーン法則を用いて入力側に再伝達するプロセス
  • .

    パイを使って実施

    import torch
    import torch.nn as nn
    import torch.optim as optim
    import torch.nn.init as init
    num_data = 1000
    num_epoch = 10000
    
    #데이터 생성
    noise = init.normal_(torch.FloatTensor(num_data,1),std=1)
    x = init.uniform_(torch.Tensor(num_data,1),-15,15)
    y = (x**2) + 3 
    y_noise = y + noise
    
    ## 모델, 손실함수, 최적화 함수 설정
    model = nn.Sequential(
              nn.Linear(1,6),
              nn.ReLU(),
              nn.Linear(6,10),
              nn.ReLU(),
              nn.Linear(10,6),
              nn.ReLU(),
              nn.Linear(6,1),
          )
    
    loss_func = nn.L1Loss()
    optimizer = optim.SGD(model.parameters(),lr=0.0002)
    
    # 모델 학습
    loss_array = []
    for i in range(num_epoch):
        optimizer.zero_grad()
        output = model(x)
        
        loss = loss_func(output,y_noise)
        loss.backward()
        optimizer.step()
        
        loss_array.append(loss)
     
    # 손실 그래프
    import matplotlib.pyplot as plt
    
    plt.plot(loss_array)
    plt.show()
    
    # 학습모델의 결과와 실제 목표값 비교
    plt.figure(figsize=(10,10))
    plt.scatter(x.detach().numpy(),y_noise,label="Original Data")
    plt.scatter(x.detach().numpy(),output.detach().numpy(),label="Model Output")
    plt.legend()
    plt.show()
    

    そんしつ図



    学習モデルの結果と実際の目標値の比較