機械学習ニューラルネットワークとPython実装

機械学習ニューラルネットワークとPython実装

ニューラル ネットワークは、機械学習のあらゆる側面に及ぶ幅広い用途に使用されます。この記事では、主にニューラル ネットワークの基本的な理論的概念と計算について簡単に紹介します。同時に、データ分類におけるニューラル ネットワークの応用についても紹介します。

[[246577]]

まず、回帰モデルまたは分類モデルを構築するときに、残差誤差を最小限に抑えるために、最小二乗法 (OLS) または平均尤度推定法 (MLE) のいずれかが使用されます。したがって、モデルを構築するときには損失関数が存在します。

ニューラル ネットワークも例外ではなく、同様の損失関数を持ちます。

回帰の場合:

分類について:

次に、同じ方法を使用して W を微分し、導関数がゼロのときに極値を見つけることができます。

式中のWについて。ここでは、3 層のニューラル ネットワークを例に挙げます。まず、ニューラル ネットワークの関連パラメータを紹介しましょう。

最初の層は入力層、2 番目の層は隠れ層、3 番目の層は出力層です。

X1 と X2 は W1 によって重み付けされた後、隠れ層に到達し、次に W2 によって重み付けされて出力層に到達します。

で、

我々は持っています:

これまでに、基本的な 3 層ニューラル ネットワークを構築しました。

損失関数を最小化したい場合は、その逆を見つける必要があります。これをバックプロパゲーションと呼びます。

W1 と W2 を別々に微分し、それぞれの極値を見つける必要があります。

右辺から逆算して、まず W2 を導出します。

損失関数の式に代入します。

次に、簡略化します。

ここまで簡略化した後、同様に W1 の導関数も取ることができます。

BP ネットワークを実行すると、損失関数の最終的なサイズを決定する逆誤差項があることがわかります。

実際の計算では、勾配解法を使用して極値点を探します。

要約すると、順方向伝播を使用してニューラル ネットワークを合理化し、回帰モデルと分類モデルを実現します。そして、損失関数を逆方向に計算すると、パラメーター W が最適解を持つようになります。

もちろん、線形回帰などのモデルと同様に、正規化項を追加して W パラメーターを制約し、モデルの偏差が小さすぎてテスト セットのパフォーマンスが低下するのを防ぐこともできます。

Python実装:

KERASライブラリの使用

線形回帰を解く:

  1. model.add(Dense(1, input_dim = n_features , activation = 'linear' , use_bias = True ))
  2. # 損失メトリックには平均二乗誤差を使用し、ADAMバックプロパゲーションアルゴリズムを使用する
  3. model.compile(損失= 'mean_squared_error' オプティマイザー= 'adam' )
  4. # ネットワークをトレーニングする(重みを学習する)
  5. # DataFrameからNumpyArrayに変換する必要があります
  6. 履歴=モデル.fit(X_train.values, y_train.values,エポック= 100 ,
  7. batch_size = 1 verbose = 2 validation_split = 0 )

多重分類問題の解決:

  1. # モデルを作成する
  2. モデル=シーケンシャル()
  3. model.add(Dense(64, activation = 'relu' , input_dim = n_features ))
  4. モデルを追加します(ドロップアウト(0.5))
  5. model.add(Dense(64, activation = 'relu' ))
  6. モデルを追加します(ドロップアウト(0.5))
  7. # ソフトマックス出力層
  8. model.add(Dense(7, activation = 'softmax' ))
  9. model.compile(損失= 'categorical_crossentropy' オプティマイザー= 'adam' メトリック= ['accuracy'])
  10. model.fit(X_train.values、y_train.values、エポック= 20 バッチサイズ= 16 )
  11. y_pred =モデル予測(X_test.値)
  12. y_te = np .argmax(y_test.values、= 1 )
  13. y_pr = np .argmax(y_pred,= 1 )
  14. 印刷(np.unique(y_pr))
  15. 分類レポートを印刷します(y_te, y_pr)
  16. 混乱行列を印刷します(y_te, y_pr)

最適なパラメータを選択すると、解決方法は多数あります。ここでは、設定されたすべてのパラメータを走査して最適なパラメータを取得するブルートフォース検索方法である gridsearchcv という方法を紹介します。

  1. sklearn.model_selection から GridSearchCV をインポートします
  2. def create_model(オプティマイザ= 'rmsprop' ):
  3. モデル=シーケンシャル()
  4. model.add(Dense(64, activation = 'relu' , input_dim = n_features ))
  5. モデルを追加します(ドロップアウト(0.5))
  6. model.add(Dense(64, activation = 'relu' ))
  7. モデルを追加します(ドロップアウト(0.5))
  8. model.add(Dense(7, activation = 'softmax' ))
  9. model.compile( loss = 'categorical_crossentropy' optimizer optimizer = optimizer、 metrics = ['accuracy'])
  10.   
  11. リターンモデル
  12. モデル= KerasClassifier ( build_fn = create_model verbose = 0 )
  13. オプティマイザー= ['rmsprop']
  14. エポック= [5, 10, 15]
  15. バッチ= [128]
  16. param_grid = dict ( optimizer =オプティマイザ epochs epochs = エポック、 batch_size =バッチ verbose = ['2'])
  17. グリッド= GridSearchCV (推定器=モデル param_grid param_grid =param_grid)
  18. グリッドフィット(X_train.値、y_train.値)

<<:  機械学習におけるモデルのバイアスを理解する

>>:  すべてのデータ サイエンティストが知っておくべき 19 の機械学習アルゴリズム

ブログ    
ブログ    

推薦する

デューク大学: 効率的な人工知能システムのソフトウェアとハ​​ードウェアの共同設計

少し前に、機械知能 AI テクノロジー年次会議がオンラインで開催されました。デューク大学電気・コンピ...

...

自動運転における説明可能なAIのレビューと今後の研究の方向性

2021 年 12 月 21 日に arXiv にアップロードされた自動運転のための説明可能な AI...

人工知能 (AI) の 19 の一般的な応用分野、あなたはどれくらい知っていますか?

01 自然言語生成自然言語生成は、顧客サービス、レポート生成、市場概要などで使用すべくデータをテキ...

「緊急天使」がロボットを救出するために前進し、事態を収拾した

科学技術の進歩と社会の発展に伴い、ロボット産業は繁栄の時代を迎えています。ロボット工学は、コンピュー...

...

6144個のTPU、5400億個のパラメータ、バグ修正、ジョーク解釈など、GoogleはPathwaysを使用して大規模なモデルをトレーニングしました

Google の次世代アーキテクチャ Pathways は、大規模なモデルのトレーニングに使用されて...

概念から事例まで: 初心者向けの機械学習アルゴリズムトップ 10

この記事では、まず初心者が知っておくべき機械学習 (ML) アルゴリズムのトップ 10 を紹介し、い...

馬化騰氏は「人工知能の4つの主要な発展傾向が今後10年間で世界を変えるだろう」と述べた。

今後10年間で世界を変える人工知能の4つの主要な発展トレンドの分析61歳のビル・ゲイツ氏は大学卒業生...

2021年チューリング賞発表:高性能コンピューティングの先駆者であり、TOP500スーパーコンピューティングリストの共同創設者であるジャック・ドンガラが受賞

丸一日待った後、ついに答えが明らかになりました!先ほど、2021年のチューリング賞が発表されました。...

...

インテリジェントエッジがモノのインターネット (IoT) の変革を推進

2025年までに、世界中に約750億個のIoTデバイスが存在すると予想されています。スマートデバイス...

あなたの周りの偽のAI

他のインターネットの概念と同様に、AI は人気が出ると数え切れないほどの支持者を獲得しました。彼らは...

人工知能はどのような通信分野に応用されていますか?

1. 異常なネットワークトラフィックの検出コンピュータネットワークは現代人の生活に欠かせないもので...

日本生命保険は6年間にわたりRPAを導入し、1万人の従業員の2,000万時間以上の工数を節約した。

日本生命保険株式会社(以下、日本生命)は、日本最大級の保険会社の一つであり、世界60カ国以上で事業を...