ボストン住宅データセットに基づくシンプルなMLP回帰モデルのトレーニング

ボストン住宅データセットに基づくシンプルなMLP回帰モデルのトレーニング

[[422501]]

多層パーセプトロン(MLP)は非常に長い歴史を持っています。多層パーセプトロン(MLP)はディープニューラルネットワーク(DNN)の基本アルゴリズムです。

MLPの基礎

  • 目的: 単純な回帰/分類タスク用の通常のニューラル ネットワーク (多層パーセプトロンなど) と Keras を作成する

MLP構造

  • 各MLPモデルは、入力層、複数の隠れ層、および出力層で構成されています。
  • 各層のニューロンの数は無制限である

1つの隠れ層を持つMLP

- 入力ニューロンの数: 3 - 隠しニューロンの数: 4 - 出力ニューロンの数: 2

回帰タスクのためのMLP

  • ターゲット(「y」)が連続している場合
  • 損失関数と評価指標には、通常、平均二乗誤差 (MSE) が使用されます。
  1. tensorflow.keras.datasetsからboston_housing をインポートします
  2. (X_train、y_train)、(X_test、y_test) = boston_housing.load_data()

データセットの説明

  • ボストン住宅データセットには合計506のデータインスタンス(トレーニング用404、テスト用102)があります。
  • 13 の属性 (特徴) が「特定の場所の住宅の中央値」を予測します
  • ファイル番号: https://keras.io/datasets/

1. モデルを作成する

  • KerasモデルオブジェクトはSequentialクラスを使用して作成できます。
  • 最初は、モデル自体は空です。これは、追加のレイヤーを「追加」してコンパイルすることによって行われます。
  • ドキュメント: https://keras.io/models/sequential/
  1. tensorflow.keras.modelsからSequential をインポートします
  2.  
  3. モデル = シーケンシャル()

1-1. レイヤーの追加

  • Kerasレイヤーをモデルに「追加」することができます
  • レイヤーを追加することは、レゴブロックを積み重ねるようなものである
  • ドキュメント: https://keras.io/layers/core/
  1. tensorflow.keras.layersからActivation、Dense をインポートします
  2. #それぞれ 10 個のニューロンを持つ2 つの隠れ層を持つKeras モデル
  3. model. add (Dense(10, input_shape = (13,))) # 入力層 => input_shape は明示的に指定する必要があります
  4. model.add(アクティベーション( 'シグモイド' ))
  5. model.add (Dense(10)) # 隠し層 =>のみ 出力ディメンションを指定する必要があります
  6. model.add(アクティベーション( 'シグモイド' ))
  7. model.add (Dense(10)) # 隠し層 =>のみ 出力ディメンションを指定する必要があります
  8. model.add(アクティベーション( 'シグモイド' ))
  9. model.add (Dense(1)) #出力層 =>出力次元= 1回帰問題ので
  10. # これは上記のコードブロック同等です
  11. モデルを追加します(Dense(10, input_shape = (13,), activation = 'sigmoid' ))
  12. モデルを追加します(Dense(10, activation = 'sigmoid' ))
  13. モデルを追加します(Dense(10, activation = 'sigmoid' ))
  14. モデル.add (密(1))

1-2. モデルのコンパイル

  • Kerasモデルはトレーニング前に「コンパイル」する必要があります
  • 損失タイプ(関数)とオプティマイザを指定する必要があります
  • ドキュメント(オプティマイザー): https://keras.io/optimizers/
  • ドキュメント(損失): https://keras.io/losses/
  1. tensorflow.kerasからオプテ​​ィマイザーをインポートする
  2.  
  3. sgd = optimizers.SGD(lr = 0.01) # 確率的勾配降下法オプティマイザー
  4.  
  5. model.compile(optimizer = sgd, loss = 'mean_squared_error' , metrics = [ 'mse' ]) #回帰問題では、平均二乗誤差(MSE)よく使用されます

モデルの概要

  1. モデル.要約()
  1. odel: 「シーケンシャル」  
  2. _________________________________________________________________
  3. レイヤー(タイプ)出力形状パラメータ#
  4. =================================================================
  5. 密集(密集)(なし、10)140
  6. _________________________________________________________________
  7. アクティベーション(アクティベーション)(なし、10)0
  8. _________________________________________________________________
  9. 密_1 (密) (なし、10) 110
  10. _________________________________________________________________
  11. activation_1 (アクティベーション) (なし、10) 0
  12. _________________________________________________________________
  13. 密_2 (密) (なし、10) 110
  14. _________________________________________________________________
  15. activation_2 (アクティベーション) (なし、10) 0
  16. _________________________________________________________________
  17. 密_3 (密) (なし、1) 11
  18. _________________________________________________________________
  19. 密_4 (密) (なし、10) 20
  20. _________________________________________________________________
  21. 密_5 (密) (なし、10) 110
  22. _________________________________________________________________
  23. 密_6 (密) (なし、10) 110
  24. _________________________________________________________________
  25. 密_7 (密) (なし、1) 11
  26. =================================================================
  27. 合計パラメータ: 622
  28. トレーニング可能なパラメータ: 622
  29. トレーニング不可能なパラメータ: 0
  30. _________________________________________________________________

2. トレーニング

  • 提供されたトレーニングデータを使用してモデルをトレーニングする
  1. model.fit(X_train、y_train、バッチサイズ = 50、エポック = 100、詳細 = 1)

3. 評価

  • Kerasモデルはevaluate()関数を使って評価できる。
  • 評価結果はリストに含まれる
  • ドキュメント: https://keras.io/metrics/
  1. 結果 = model.evaluate(X_test, y_test)
  1. print(model.metrics_names) #モデル使用しているメトリック名リスト
  2. print(results) #計算されたメトリック実際の数値

  1. print( '損失: ' , 結果[0])
  2. print( 'mse:' , 結果[1])

<<:  人工知能のコスト問題をどう解決するか?顔認識によって情報セキュリティはどのように確保されるのでしょうか?

>>:  シンガポールは路上での悪質な行為を検知するためにロボットを使っている

ブログ    
ブログ    

推薦する

Pythonを全く知らなかった私がAIエンジニアになるまでに2年かかりました

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

西側メディア:将来の兵士はロボットの「羊飼い」になる

Reference News Networkは1月4日、スペインの新聞Vanguardiaが2020...

IoT、AI、デジタルツインをどのように統合するのか?

デジタル ツインは、物理世界とデジタル世界をつなぐため、常に興味深いものです。将来的には、すべてのも...

...

合意アルゴリズムRaftの簡単な紹介

[[417323]]この記事は、張張が執筆したWeChatパブリックアカウント「建築改善への道」から...

ジャック・マー氏、AIについて語る:今後10~15年で従来の製造業が被る苦痛は、今日の想像をはるかに超えるものになるだろう

「今後10年から15年の間に、従来の製造業が直面する苦痛は、今日私たちが想像するよりもはるかに大きく...

脳の次元: 人工知能の波の中での適者生存

[[263690]]さまざまな新しい人工知能技術は、古代の伝説の洪水のように、社会全体を急速に「浸水...

...

ガートナーの調査によると、企業は来年AIプロジェクトを2倍に増やすと予想している。

世界有数の情報技術調査およびアドバイザリ企業であるガートナーによる最近の調査によると、現在人工知能 ...

...

人工知能チュートリアル(II):人工知能の歴史とマトリックスの再考

このシリーズの最初の記事では、人工知能、機械学習、ディープラーニング、データサイエンスなどの分野間の...

AI技術のアップグレード:2022年に最も人気のある人工知能技術トップ10

AI人工知能技術は、電子商取引、物流、輸送、工業など、多くの業界で応用されています。人工知能は、あ...

2021年最新Contrastive Learning(対照学習)主要会議での必読古典論文解釈

みなさんこんにちは。私はDiaobaiです。最近、対照学習が流行っているので、ICLR2020では、...

【WOT2018】4人の重鎮専門家が企業ビジネスにおけるNLPの詳細な応用を分析

[51CTO.comより引用] 2018年11月30日から12月1日まで、WOT2018グローバル人...

...