TensorFlow を使用して機械学習モデルを構築する方法

TensorFlow を使用して機械学習モデルを構築する方法

[[432744]]

TensorFlow は、Google が開発し、2015 年にオープンソース化されたライブラリで、機械学習モデルの構築とトレーニングを容易にします。

次に構築するモデルは、キロメートルをマイルに自動的に変換できます。 この例では、この変換を行う方法を学習できるモデルを作成します。このモデルには、キロメートルとマイルの間で実行された 29 セットの変換を含む CSV ファイルを入力として提供し、このデータに基づいて、モデルはこの変換を自動的に実行することを学習します。

データの入力と出力がわかっているので、教師あり学習アルゴリズムを使用します。プログラミング言語として Python を使用します。 Python は、機械学習に関連するさまざまな便利なライブラリとツールを提供します。この例のすべての手順は、Google Colab を使用して実行されます。 Google Colab を使用すると、設定なしでブラウザ上で Python コードを記述して実行できます。

必要なライブラリをインポートする

まず、例で使用するライブラリをインポートします。

  1. テンソルフローをtfとしてインポートする 
  2. pandasをpdとしてインポートする 
  3. Seaborn を SNS としてインポートする 
  4. matplotlib.pyplot を plt としてインポートします。
  • 機械学習モデルを作成するために TensorFlow をインポートします。
  • また、キロメートルとマイルの変換データを含む CSV ファイルを読み取るために、Pandas ライブラリをインポートします。
  • 最後に、Seaborn ライブラリと Matlotlib ライブラリをインポートして、さまざまな結果をプロットします。

サンプルデータの読み込み

カンマ区切りの値を含むファイル (Kilometres-miles.csv) をデータフレームに読み込みます。このファイルには、キロメートルとマイル間の変換がいくつか含まれています。これらのデータフレームを使用してモデルをトレーニングします。このリンクからファイルをダウンロードできます。

Google Colab からファイルを読み取るには、さまざまな方法を使用できます。この例では、CSV ファイルを Google Colab の sample_data フォルダーに直接アップロードしましたが、URL (たとえば、GitHub) からファイルを読み取ることもできます。

Google Colab にアップロードする際の問題は、ランタイムを再起動するとデータが失われることです。

データ フレームは、2 次元でサイズ変更可能なさまざまな種類の表形式のデータです。

  1. df = pd .read_csv('/content/sample_data/Kilometres-miles.csv')  
  2. df.info

サンプルデータ情報

データフレームのプロット

「searborn」ライブラリの「scatterplot」をインポートし、「sns」という名前を付け、このライブラリを使用して上記のグラフをプロットします。 X (キロメートル) と Y (マイル) がどのように対応しているかをグラフィカルに表示します。

  1. print("相関関係を描画する")  
  2. #セッションにseabornをロードすると、matplotlibプロットが実行されるたびに、seabornのデフォルトのカスタマイズが追加されます 
  3. sns.scatterplot(df['キロメートル'], df['マイル'])  
  4. plt.show()

キロメートルとマイルの相関関係

モデルをトレーニングするための入力データ フレームと出力データ フレームを定義します。

X (キロメートル) が入力で、Y (マイル) が出力です。

  1. print("入力(X)と出力(Y)変数を定義する")  
  2. X_train = df ['キロメートル']  
  3. y_train = df ['マイル']

ニューラルネットワークの作成

それでは、「keras.Sequential」メソッドを使って、「層」を順番に追加していくニューラルネットワークを作っていきましょう。各レイヤーには、入力データを段階的に抽出して目的の出力を取得する機能があります。 Keras は Python で書かれたライブラリで、ニューラル ネットワークを作成し、TensorFlow などのさまざまな機械学習フレームワークを使用します。

次に、「add」メソッドを使用してモデルにレイヤーを追加します。

  1. print("モデルの作成")  
  2. モデル= tf .keras.Sequential()  
  3. model.add(tf.keras.layers.Dense(単位= 1 input_shape = [1]))

ニューラルネットワークの作成

モデルをコンパイルする

モデルをトレーニングする前に、コンパイル手順中にいくつかの追加設定を追加します。

モデルの精度を測定するオプティマイザーと損失関数を設定します。 Adam 最適化は、第 1 モーメントと第 2 モーメントの適応予算に基づく確率的勾配降下アルゴリズムです。

これを行うには、予測の平均分散を測定する平均分散ベースの損失関数を使用します。

私たちのモデルの目標は、この機能を最小限に抑えることです。

  1. print("モデルをコンパイルしています")  
  2. model.compile(オプティマイザ= tf .keras.optimizers.Adam(1), loss = 'mean_squared_error' )

モデルのトレーニング

「fit」メソッドを使用してモデルをトレーニングします。まず、独立変数または入力変数 (X-キロメートル) とターゲット変数 (Y-マイル) を渡します。

一方、エポックの値を予測します。この例では、エポック値は 250 です。エポックとは、提供された完全な X および Y データのパスです。

  • エポックの値が小さいほど誤差は大きくなり、逆にエポックの値が大きいほど誤差は小さくなります。
  • エポック値が大きいほど、アルゴリズムの実行速度は遅くなります。
  1. print ("モデルのトレーニング")  
  2. epochs_hist =モデル.fit(X_train, y_train,エポック= 250 )

トレーニングモデル用コンソール

モデルの評価

ここで、作成されたモデルを評価します。このモデルでは、実行されたエポックの数とともに損失 (Training_loss) が減少することがわかります。これは、トレーニング セット データが意味をなしており、十分に大きいグループである場合に論理的です。

  1. print("モデルの評価")  
  2. epochs_hist.history.keys() を印刷します。  
  3. #グラフ 
  4. plt.plot(epochs_hist.history['loss'])  
  5. plt.title('モデルに関連するエラーの進化')  
  6. plt.xlabel('エポック')  
  7. plt.ylabel('トレーニング損失')  
  8. plt.legend('トレーニング損失')  
  9. plt.show()

グラフから、モデルを 250 エポックでトレーニングしてもあまり効果がなく、50 エポック以降はエラーが減少しないことがわかります。したがって、アルゴリズムをトレーニングするための最適な走査回数は約 50 です。

予測を立てる

モデルをトレーニングしたので、それを使用して予測を行うことができます。

この場合、モデルの入力変数に 100 を割り当て、モデルは予測されたマイル数を返します。

  1. キロメートル= 100    
  2. 予測マイル= model.predict ([キロメートル])  
  3. print("キロメートルからマイルへの変換は次のとおりです: " + str(predictedMiles))

キロメートルからマイルへの変換は 62.133785 です。

結果を確認する

  1. マイルByFormula =キロメートル* 0.6214  
  2. print("数式を使用したキロメートルからマイルへの変換は次のとおりです:" + str(milesByFormula))  
  3. = milesByFormula - 予測マイル 
  4. print("予測誤差:" + str(差))

この式を使用してキロメートルからマイルに変換する値は、62.139999999999999 です。予測誤差は0.00621414です。

要約する

この例では、TensorFlow ライブラリを使用して、わずかな誤差でキロメートルをマイルに自動的に変換することを学習したモデルを作成する方法を説明しました。

TensorFlow がこのプロセスを実行するために使用する数学は非常に単純です。基本的に、この例では、入力変数 (キロメートル) と出力変数 (マイル) が線形に関連しているため、線形回帰を使用してモデルを作成します。機械学習では、プロセスの中で最も時間のかかる部分は、多くの場合、データの準備です。

時間の経過とともに、最も適切なアルゴリズムとその設定を選択するのに役立つ経験が得られますが、一般的には、これは分析、テスト、および改善のタスクです。

<<:  ヘルスケア市場における人工知能は2028年までに615億9000万ドルに達すると予想

>>:  OpenAI が GPT-3 を使って小学生と数学で競います!小型モデルのパフォーマンスは2倍になり、1750億の大型モデルに匹敵する

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

北京、宜荘市の111の道路で初の自動運転試験を開始

本日、北京市は有人自動運転試験を正式に開始した。北京経済技術開発区は40平方キロメートルのエリアを自...

人工知能に関する4つの大きな誤解

サンタフェ研究所の教授であり、『人工知能:考える人間のためのガイド』の著者でもあるメラニー・ミッチェ...

中国AIGC広告・マーケティング業界パノラマレポート:5つの大きな変化と4つの大きな影響、生成AIにより「1人」のための広告作成が可能に

インターネット トラフィックの配当が薄れるにつれ、広告およびマーケティング業界は既存の市場シェアをめ...

...

産業用ロボットを選択するための 9 つの主要なパラメータをご存知ですか?

インテリジェント製造は、世界中の工業製造企業が追求する目標です。インテリジェント化のプロセスには、設...

大規模ウェブサイトのアルゴリズムとアーキテクチャについての簡単な説明(パート 2)

順序前回の記事「大規模 Web サイトのアルゴリズムとアーキテクチャに関する簡単な説明 (パート 1...

百人一首の戦いはかつてないレベルに到達!

執筆者 | 王 瑞平校正 | Yun Zhao最近また「100均戦争」が始まってます…一輪の花が春を...

グラフィカルな説明 | RSAアルゴリズムとは

[[339878]]この記事はWeChatパブリックアカウント「Backend Technology...

大きな AI 問題の解決: AI 操作のエネルギー消費を削減するにはどうすればよいでしょうか?

現在、AI分野で画期的な進歩を遂げているディープラーニングモデルの規模が大きくなるほど、エネルギー消...

2015年9月のプログラミング言語ランキング: 新しいインデックスアルゴリズムにより急上昇が解消

9月に、TIOBE Indexは改良されたアルゴリズムを使用してプログラミング言語の人気度を計算しま...

人工知能は企業の持続可能な発展をどのようにサポートできるのでしょうか?

人工知能の普及は社会に大きな影響を与え、私たちの仕事、生活、コミュニケーションの方法を変えました。現...

パラメータ調整器、ここを見てください!ディープラーニングのトレーニング効率を向上させる2つのコツ

[[343402]] 1. トレーニングのボトルネックはどこですか? GPU 使用率が低い: モデル...

...

...

Meituanグラフニューラルネットワークトレーニングフレームワークの実践と探索

著者 | Fu Haoxian、Peng Xiangzhou 他グラフニューラルネットワークの長期的...