数学を使わずに円の面積を計算する方法

数学を使わずに円の面積を計算する方法

機械学習の手法を使用して円の面積を計算します。

円の面積はいくらかと誰かに尋ねると、r²だと答えるでしょう。しかし、なぜかと尋ねても、おそらく彼らは知らないでしょう。

これは、円の面積の公式の証明が、ほとんどの場合、直感的でなかったり、満足のいくものでなかったり、積分などの高度な数学的概念で満たされていたりするためです。

統計学習と機械学習の基本原理を活用して、モンテカルロ シミュレーションと多項式/二次回帰を使用して、円の面積の公式を見つけるための計算ベースのアプローチを作成できます。

数学的な演算を一切使用せずに円の面積を求めるために、モンテカルロ法を使用しました。モンテカルロ法は、不規則な形状の領域の探索から株式市場の状況の予測まで、あらゆる場面で使用されています。この方法の中心的な考え方は、ランダム性を導入し、それに対するシステムのフィードバックを測定することです。これにより、システムの原理を理解していなくても効果的な情報を得ることができます。

モンテカルロを使用して円の面積を概算する場合、最初にランダムな座標点 (x1、x2) をいくつか生成します。ここで、両方向の座標は、負の半径値から正の半径値までの均一分布から描画されます。私たちは円の中にそのような座標点を 250,000 個配置しました。中心極限定理 (または大数の法則) が示すように、研究で使用する真のランダム サンプル ポイントが多ければ多いほど、結果はより正確になります。

円内の各点に対して、円内に含まれる点の数を数える変数を導入できます。すべてのランダムなドットが落とされた後、円内のドットの数をドットの総数(この研究では 250,000 個)で割った値が、正方形内の円の面積の割合を表します。正方形の辺の長さは円の半径の 2 倍なので、正方形の面積は 4r² です。ここで、r は円の半径です。先ほど求めた分数に 4r² を掛けると、円の面積が得られます。モンテカルロ法を使用すると、数式を必要とせずに円の実際の面積に非常に近づくことができます。

アイデアはシンプルで、結果もほぼ正確です。

半径 r が与えられれば、任意の円の面積を求めることができますが、この時点ではまだ円の公式を導き出せていません。式を見つけるには、半径を必要とし、面積を出力しようとするモデリング用の二次方程式を作成する必要があります。方程式を正しく当てはめるには、各半径のモンテカルロ近似領域のデータを収集する必要があります。

  1. numpyをnpとしてインポートする
  2. from tqdm import tqdm #プログレスバーインジケーターのみ
  3.  
  4. #近似ごとに生成するランダム点の数
  5. ポイント数= 250_000  
  6.  
  7. #半径とそれに対応する面積の近似値を格納するリスト
  8. 半径= []
  9. エリア= []
  10.  
  11. #1から100までの500個の等間隔の値のそれぞれについて:
  12. tqdm(np.linspace(1,100,500))の半径の場合:
  13.  
  14. #円内の点の数のカウンター
  15. 円内= 0  
  16.  
  17. i が範囲内(num_points)の場合:
  18.  
  19. #接線ボックスで囲まれた一様分布からx座標とy座標を生成する
  20. xcoor = np.random.uniform (-半径,半径)
  21. ycoor = np .random.uniform(-半径,半径)
  22.  
  23. #点が円の内側にある場合は、in_circleに1を加算します
  24. xcoor**2 + ycoor**2 <の場合 半径**2:
  25. 円内 += 1
  26.  
  27. #円の内側にある点の割合を取得します
  28. area_frac =円内/ ポイント数
  29.  
  30. #おおよその面積と半径を追加します
  31. エリア.append(area_frac*(4*(半径**2)))
  32. 半径.append(半径)

次のステップは、データ y = ax² に適合する二次モデル (回帰モデル) を記述することです。プロットすることで、データが 3 次または 4 次多項式ではなく、2 次項であることを確認できます。本質的には、これは基本的な機械学習の問題なので、いくつかの基本的な用語を確認しましょう。

  • モデル パラメーター: モデルは自動的に調整され、最適なパラメーター (この場合は a) が検出されます。 n 個のパラメータがある場合、モデルは n 次元であると言われます。私たちが使用する最も基本的なモデルは 1 次元ですが、画像を分類するディープ ニューラル ネットワークは数百万の次元を持つことができます。
  • 損失関数: 損失関数は、現在のシミュレーション状況を評価し、最小のエラーを取得できるパラメータのセットを見つけて、損失関数を最小化しようとします。たとえば、パラメータ値 j の損失関数値が 3 で、パラメータ値 k の損失関数値が 2 の場合、パラメータ値 k を選択する必要があります。
  • 平均絶対誤差 (MAE): 使いやすく理解しやすいため、損失関数/誤差メトリックを使用します。現在のパラメータ (a) とモデル予測を前提として、平均絶対誤差は予測値と実際の値の間の差が平均してどのくらい大きいかを示します。MAE が低いほど、モデルがデータに適合していることを意味します。
  • 学習率: パラメータを最適化するために、モデルは特定の「方向」にパラメータを徐々に調整します。現在のモデルは 1 つのパラメータ (a) のみを最適化しているため、1 次元平面でパラメータ値を増やすか減らすかを決定するだけで済みます (変更すると損失関数は低くなります)。調整プロセス中にモデルが移動する量を学習率と呼びます。学習率が高いということは、モデルが短期間でより良いパラメータのセットを取得する可能性が高いことを意味しますが、その精度は保証されません。学習率が低いと、非常に優れたパラメータを取得でき、精度が高くなります。唯一の欠点は、トレーニングに多くの時間が必要になることです。

これらの変数があれば、このデータに適合する非常に基本的なプログラムを構築できます。

  • パラメータcoef(a)を0.1に初期化します。
  • トレーニング サイクルの各反復について:
  • coef には、coef+lr と coef-lr の 2 つのパスが提案されています。ここで、lr は学習率です。
  • 平均絶対誤差は、coef=coef+lr を使用するモデルと coef=coef-lr を使用するモデルで評価されました。

coef を、coef+lr と coef-lr の平均絶対誤差値の小さい方に設定します。

平均絶対誤差を繰り返し最適化することで、モデルは最終的に「最適な」係数値に収束します (したがって、平均絶対誤差が最小化されます)。この考え方は機械学習の中核となる原則です。推論、評価、修正を繰り返すことで、コンピューターは最適なパラメータのセットを「改良」することができます。

  1. coef = 0.1 #初期係数値
  2. learning_rate = 0.00001 #モデルがどれだけ速く「学習」するか
  3. iterations = 100000 #モデルに「練習と修正」を何回実行させたいか
  4.  
  5. for i in tqdm(range(iterations)): #注意 - tqdm は単なるプログレスバーです
  6.  
  7. #係数に2つのパスを提案します:
  8. up_coef = coef + learning_rate #上に移動
  9. down_coef = coef - learning_rate #または下に移動
  10.  
  11. #パラメータup_coefとdown_coefを使用してモデルの予測を保存します
  12. アップ_予測= []
  13. ダウン予測= []
  14.  
  15. # 以前に作成したリスト radii 内の各半径値について:
  16. 半径rの場合:
  17.  
  18. #up_coef と down_coef の予測値 (a*r^2) を使用してモデルを追加します
  19. up_pred.append(up_coef*(r**2))
  20. ダウン予測.append(ダウン係数*(r**2))
  21.  
  22. #MAE を見つけます。どちらも操作しやすいように NumPy 配列に変換されます。
  23. up_coef_mae = np .abs(np.array([up_pred])-np.array([areas])).mean()
  24. 下向きの係数= np .abs(np.array([下向きの予測])-np.array([領域])).mean()
  25.  
  26. #係数を下げるとMAEが低くなる(良くなる)場合:
  27. 下向き係数<  アップ係数:  
  28.  
  29. #down_coefと同じ値に設定します
  30. 係数=下向き係数 
  31.  
  32. #それ以外の場合(係数を上に移動すると、MAE は低くなる(良くなる)か同等になります)。
  33. それ以外:
  34.  
  35. #up_coefと同じ値に設定します
  36. 係数=上方係数 

訓練された係数の値を見ると、π に等しいことがわかります。

  1. print(str(coef)[:5]) #係数の最初の4桁(小数点は文字としてカウントされます)
  2. [出力]: '3.141'

もちろん、円の面積を計算する公式は覚えやすいです:𝜋r²。微積分やその他の証明からの複雑な数学を使わずに、その公式を見つけ、モンテカルロシミュレーションと二次回帰を使用して 𝜋 の値を見つける方法を見つけることができます。この考え方を使用すると、円の面積を計算する方法を見つけることができます。もちろん、パラメータで輪郭を記述できる限り、楕円、ハート、2 次元のカメなど、あらゆる形状の面積を計算する公式を見つけることができます。

近年、コンピューターが主流となり、複雑で変化に富んだ数学の問題を解くようになりましたが、円の面積の計算は単なる一例にすぎません。もっと複雑で画期的なものがお望みなら、もちろんそれは 4 色定理です (飛び地のないすべてのマップは 4 色以上で色付けできず、隣接する 2 つの領域が同じ色になることはありません)。これはコンピュータによって証明され、数学者によって広く受け入れられた最初の結果でした。

コンピュータの助けにより、人間はこれまでは踏み込むことが不可能だった数学の極めて複雑な領域を探求することができます。

オリジナルリンク: https://medium.com/swlh/finding-the-formula-for-circle-area-without-using-any-math-898cbee70253

[この記事は51CTOコラム「Machine Heart」、WeChatパブリックアカウント「Machine Heart(id:almosthuman2014)」によるオリジナル翻訳です]

この著者の他の記事を読むにはここをクリックしてください

<<:  ジャック・マー:機械が人間に取って代わることは決してできない!それは何に代わるのでしょうか?

>>:  人工知能の3つの主要分野とその産業応用

ブログ    

推薦する

気候ガバナンスの年、希望はAIにある

[[391671]]気候変動は今日世界が直面している最大の課題となっています。国連は、2021年が地...

レポート:中国の人工知能都市ランキングで北京が1位に

[[431347]]中国新聞社、北京10月26日(記者 夏斌)「2021年人工知能コンピューティング...

アコーディオン: HBase の「呼吸」メモリ圧縮アルゴリズム

導入現在、HBase を搭載した最新の製品では、HBase の読み取りおよび書き込みパフォーマンスに...

...

Pytorch チュートリアル: 初心者向けクイックガイド

Python は、オープンソースの ML ライブラリ Pytorch のおかげで、データ サイエンス...

AI導入の課題

人々は、データ、人、ビジネスなど、AI を導入する際の課題を理解する必要があります。 [[27672...

トランスフォーマー6周年:その年にNeurIPS Oralを受賞しなかった8人の著者が、いくつかのAIユニコーンを創設した

ChatGPTからAI描画技術まで、人工知能分野における最近の進歩はTransformerのおかげか...

...

2022 年にゲームを変える AI と ML テクノロジーのトップトレンド

Covid-19パンデミックの発生に伴い、あらゆる業界の企業が先進技術を活用して、私たちの働き方や生...

生成AIにおけるデータ制限を克服する方法

生成 AI は、トレーニングに使用されるデータに大きく依存します。ただし、データの制限により、望まし...

「機械による人代替」が雇用問題を引き起こす。第一線で働く人々の未来はどうなるのか?

人工知能技術の推進により、製造業の変革と高度化が進み、「機械が人に代わる」という波が起こり、その社会...

...

JD.comクラウドファンディング599元、業界最安値を突破、Nokelock X1セルフパワースマートドアロックがイノベーション革命をリード

2019年5月15日、深センIoTロックテクノロジー株式会社は北京金宇シェラトンホテルで「nokel...

...

Python 転移学習: 機械学習アルゴリズム

機械学習は、非常に幅広い領域をカバーする人工知能の人気のあるサブフィールドです。その人気の理由の 1...