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では解決できない

今週、OpenAIのビデオAIツール「Sora」が登場するや否や大きな話題を呼んだ。 「仕事を失う」...

マイクロソフトとフェイスブックが共同で人工知能ソフトウェアを開発し、グーグルの主導的地位に挑戦

マイクロソフトはすでにオープンソースの人工知能ソフトウェアを持っています。しかしここ数カ月、マイクロ...

AI 生成コンテンツには著作権がありますか?裁判所はこう判決した

[[312663]]この記事はLeiphone.comから転載したものです。転載する場合は、Leip...

次世代の DevOps サービス: AIOps

[[243103]] [51CTO.com クイック翻訳] AIOps とは何か、また、たとえば、...

父親が8歳の娘にディープラーニングを説明する:11の事実

「ニューラル ネットワークは数を数えるのと同じくらい簡単です」、「畳み込み層は単なるバット シグナル...

深層強化学習について知っておくべきこと

[51CTO.com クイック翻訳] 現在、機械学習(ML)と人工知能(AI)に関連するアルゴリズム...

機械学習によるディープラーニングが企業の今後の方向性となる理由

機械アルゴリズムのディープラーニングは、ビジネスの世界に多くの変化をもたらしました。定義上、これは人...

AIによるパスワードの盗難を防ぐ方法

翻訳者 | 陳俊レビュー | Chonglou現在、人工知能 (AI) アプリケーションの人気と急速...

...

スタンフォード大学の研究:スマートフォンの録画で人が酔っているかどうかを98%の精度で識別できる

11月9日、スタンフォード大学の最近の研究で、スマートフォンは音声パターンから人が酔っているかどうか...

初めて精度が人間を超えました!アリババの機械読解力が世界記録を更新

2018年の初めに、人工知能は大きな進歩を遂げました。 1月11日、スタンフォード大学が主催する世界...