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

ブログ    

推薦する

潜在能力を解き放つ: 人工知能がパーソナライズされた学習に与える影響

急速に進化する今日の教育環境では、テクノロジーの統合がかつてないほど普及しています。さまざまな技術の...

AI ワークロード向けにデータセンターを最適化する 4 つの方法

AI は、データセンターの雇用市場の変化や、データセンターの監視およびインシデント対応業務の改善など...

人間の顔の価値はどれくらいでしょうか?顔認識グレー産業チェーン

[[335658]]現在、数十のスタートアップ企業や大手テクノロジー企業が、ホテル、小売店、さらには...

...

...

Google Gemini から OpenAI Q* まで: 生成 AI 研究の包括的なレビュー

最近、オーストラレーシア工科大学、マッセー大学、ロイヤルメルボルン工科大学などの研究機関の研究者が、...

2021 年に注目すべき 3 つのデータ分析と AI のトレンド

組織が新型コロナウイルス感染症のパンデミックを乗り越えていく中で、データ分析と AI の ROI を...

これからオープンする無人コンビニや無人スーパーにはこんな7つのブラックテクノロジーが隠されている

もうすぐダブルイレブンがやってきます。さまざまな商店が準備を進めています。JDの無人コンビニや無人ス...

MIT テクノロジーレビュー: 6 つの質問が生成 AI の未来を決定する

「生成AIは2023年に世界を席巻します。その未来、そして私たちの未来は、私たちの次の一手によって決...

人類はまたもやAIに敗北:ドローンレースの世界チャンピオンが人工知能に敗北

8月31日、人工知能(AI)がチェスやビデオゲームなどの分野で人間に勝利した。そして今回初めて、人間...

デジタルセンサーを使用してピンホールカメラを作るにはどうすればいいですか?

ビッグデータダイジェスト制作出典: IEEE近年、ピンホール写真に対する人々の関心は年々高まり、関連...

...

JD Digits の AI ロボットが物理産業に貢献し、業界賞を受賞

電気の「ジュージュー」という音が響くコンピューター室では、「スマートガーディアン」コンピューター室検...

AI人材の世界的な需要が急増、一部の職種では年間40万ドル近くを稼ぐ

6月19日のニュース:AI産業の急速な発展に伴い、テクノロジー業界のAI人材に対する需要も高まってい...