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

ブログ    
ブログ    
ブログ    

推薦する

GPT-4が化学者になる! USTC などが初の「科学リスク」ベンチマークと SciGuard ビッグモデルを発表

「我々の実験は制御不能になった!これは我々の世界の終わりだ!」 - デイ・アフター・トゥモローSF映...

...

Googleがこれまでで最も強力なAIモデル「Gemini」を発表

グーグルは水曜日、AIを収益化する方法に対する回答を求める圧力が高まる中、同社がこれまでで最も強力だ...

ControlNetの作者が新作を発表:数百万のデータを使ったトレーニング、レイヤー設計の先駆けとなるAI画像生成

画像を生成するための大規模なモデルがコンピュータービジョンやグラフィックスの基礎となっている一方で、...

人工知能は今後10年間で世界の成長を12%押し上げるだろう

[[206942]]国内外の権威ある20の機関のEconomic Information Daily...

...

CES 2020 における AI による心を読む

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

インテリジェント製造業が波に乗る中、産業用ロボットはどのようにして主導権を握ることができるのでしょうか?

インテリジェント製造(IM)は、インテリジェントマシンと人間の専門家で構成された人間と機械の統合イン...

ジェフ・ディーンの長文記事の展望: 2021 年以降の機械学習の 5 つの潜在的トレンド

過去数年間、機械学習 (ML) とコンピュータサイエンスの分野では多くの変化が見られました。この長い...

AIビッグモデルがついにデータ争奪戦に参戦

現在、ビッグモデルは産業実装の初期段階にあり、高品質のデータはビッグモデルの産業化における重要な要素...

自分のIQに挑戦してみませんか? 10 種類の機械学習アルゴリズムを理解してデータ サイエンティストになろう

データ サイエンティストになりたいですか? 十分な知識と新しいことに対する好奇心が必要です。このため...

トランスフォーマーは人気を失っているのか?常識的な問題を解決したい場合、ニューラルネットワークは答えではない

NLP 研究者は皆、言語モデルは文法的な文脈情報しか学習できず、常識的な質問に関しては無力であること...

毎日のアルゴリズム: 回文部分文字列

[[434467]]文字列が与えられた場合、その文字列に含まれる回文の部分文字列の数を数えることがタ...

...