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億の大型モデルに匹敵する

ブログ    

推薦する

暗唱することは理解を意味するわけではない。ビッグモデルの背後にある知識の蓄積と抽出の詳細な分析

モデルのサイズが大きくなるにつれて、大規模なモデルが大量の知識を習得できる方法を模索し始めます。一つ...

小中学生の安全を守るためにロボットは今や欠かせない存在です!

安全性について話すと、誰もが必ずそれに共感します。時代の急速な発展に伴い、人々の個人的な安全がますま...

...

...

マイクロソフトがOpenAIの理事に就任、アルトマン氏が初めてQ*に回答:残念なリーク

OpenAI の最初のシーズンは本当に終わりました。 ChatGPTがちょうど1周年を迎えようとして...

...

...

ChatGPTの愚かさに対する新たな説明: 世界はAIによって変化し、訓練されたときとは異なっている

学術界は、ChatGPT がなぜ愚かになったのかという新たな説明を持っています。カリフォルニア大学サ...

...

...

...

...

COVID-19により公益事業の人工知能への移行が加速

人工知能 (AI) は、医療から自動車、小売、ファーストフードまで、考えられるほぼすべての業界で幅広...

「黄金の3月と銀の4月」が到来し、AIはすでに人材採用の分野に浸透しています。あなたにはどのような影響があるでしょうか?

2017年と比べると、最近の人工知能分野のニュースは人々を怒らせることはほとんどないようだ。おそら...

人工知能に対するいくつかの態度: 流行を追跡するために個人データを犠牲にする用意がありますか?

最近、AI に関する調査、研究、予測、その他の定量的評価が相次いで発表され、世界中の企業による AI...