お金は人を幸せにできるのでしょうか?機械学習を使って答えを見つける方法を教えます

お金は人を幸せにできるのでしょうか?機械学習を使って答えを見つける方法を教えます

機械学習システムを分類する 1 つの方法は、一般化の程度によって分類することです。ほとんどの機械学習タスクには予測の作成が含まれます。これは、システムがトレーニング例を与えられた場合に、これまでに見たことのない例について予測 (一般化) できる必要があることを意味します。トレーニング データで優れたパフォーマンス メトリックを達成することは重要ですが、それだけでは十分ではありません。実際の目的は、新しいオブジェクト インスタンスで適切に動作することです。

[[348092]]

一般化には、インスタンスベースの学習とモデルベースの学習という 2 つの主なアプローチがあります。

01 例に基づく学習

最も一般的な学習方法は、単に暗記することです。この方法でスパム フィルターを作成すると、ユーザーによってすでにスパムとしてマークされているメッセージとまったく同じメッセージのみがフラグ付けされる可能性が高くなります。これは最悪の解決策ではありませんが、最良の解決策でもありません。

同一の電子メールに加えて、既知のスパムと非常によく似た電子メールにフラグを立てるようにシステムをプログラムすることもできます。ここでは、2 つの電子メール間の類似度を測定する必要があります。 (基本的な)類似度の測定は、共通する単語の数を数えることです。新しい電子メールが既知のスパム電子メールと多くの単語を共有している場合、システムはそれをスパムとしてマークすることができます。

これはインスタンスベースの学習と呼ばれます。システムはこれらの例を暗記し、類似性メトリックを使用してそれらをすでに学習したインスタンス(またはそのサブセット)と比較することで、新しいインスタンスに一般化します。たとえば、図 1-15 の新しいインスタンスは、最も類似したインスタンスのほとんどがそのカテゴリに属する​​ため、三角形として分類されます。

図1-15: 例に基づく学習

02 モデルベース学習

一連の例から一般化を達成するもう 1 つの方法は、それらの例のモデルを構築し、そのモデルを使用して予測を行うことです。これをモデルベース学習と呼びます(図1-16を参照)。

図1-16: モデルベース学習

たとえば、お金が人を幸せにするかどうかを知りたいとします。OECDのウェブサイトから「幸福指数」のデータをダウンロードし、国際通貨基金(IMF)のウェブサイトから一人当たりのGDPの統計を見つけることができます。データを表にまとめて一人当たりのGDPで並べ替えると、表1-1のような概要が得られます。

表 1-1: お金は人を幸せにできるか?

これらの国のデータをプロットしてみましょう(図1-17を参照)。

▲図1-17: トレンドチャート

ここには傾向があるようです。データにはノイズ(つまり、一部はランダム)が含まれていますが、それでも、国の一人当たり GDP が増加するにつれて、生活満足度がほぼ直線的に上昇していることがわかります。したがって、生活満足度を一人当たりの GDP の線形関数としてモデル化できます。このプロセスはモデル選択と呼ばれます。一人当たりの GDP という 1 つの属性のみを持つ生活満足度の線形モデルを選択しました (式 1-1 を参照)。

式1-1: 単純な線形モデル

生活満足度 = θ0 + θ1 × 一人当たりGDP

このモデルには、θ0 と θ1 という 2 つのモデル パラメーターがあります。これら 2 つのパラメータを調整することで、このモデルを使用して、図 1-18 に示すように任意の線形関数を表すことができます。

図1-18: 考えられる線形モデル

モデルを使用する前に、パラメータθ0とθ1の値を定義する必要があります。どの値を設定するとモデルのパフォーマンスが最大限に高まるかはどうすればわかるでしょうか? この質問に答えるには、まずモデルのパフォーマンスを測定する方法を決定する必要があります。モデルの良さを測定するためにユーティリティ関数 (または適合度関数) を定義するか、モデルの悪さを測定するためにコスト関数を定義します。

線形回帰問題の場合、コスト関数を使用して線形モデルの予測とトレーニング例のギャップを測定し、このギャップを最小限に抑えることが一般的な選択肢となります。

これがまさに線形回帰アルゴリズムの目的です。つまり、提供されたトレーニング サンプルを使用して、提供されたデータに最も適合する線形モデルのパラメーターを見つけます。これをモデルのトレーニングと呼びます。この場合、アルゴリズムは最適なパラメータ値がθ0 = 4.85およびθ1 = 4.91×10^(-5)であることを発見しました。

注: 紛らわしいことに、同じ単語「モデル」が、モデルの種類 (例: 線形回帰)、完全に特定のモデル アーキテクチャ (例: 1 つの入力と 1 つの出力を持つ線形回帰)、または予測に使用できるトレーニング済みモデル (例: パラメーター θ0 = 4.85 および θ1 = 4.91×10^(-5) を使用した 1 つの入力と 1 つの出力を持つ線形回帰) を指す場合があります。モデルの選択には、モデルのタイプを選択し、そのアーキテクチャを完全に指定することが含まれます。モデルをトレーニングするということは、トレーニング データに最適に適合する (そして新しいデータに対して適切な予測ができる) モデルのパラメータを見つけるアルゴリズムを実行することを意味します。

これで、(線形モデルの場合)モデルはトレーニング データに近づきました(図 1-19 を参照)。

図1-19: トレーニングデータに最も適合する線形モデル

これで、ようやくモデルを実行して予測を行うことができます。たとえば、キプロス人がどれだけ幸せかを知りたいのですが、OECD のデータでは答えが得られません。幸いなことに、予測を行うためのモデルがあります。まず、キプロスの一人当たり GDP を確認し、それが 22,587 米ドルであることを確認します。次に、それをモデルに適用すると、生活満足度がおよそ 4.85 + 22,587×4.91×10^(-5) = 5.96 であることがわかります。

興味をそそられる例 1-1 は、データを読み込み、データを準備し、視覚化のための散布図を作成し、線形モデルをトレーニングして予測を行う Python コード スニペットです。

  • 例 1-1: Scikit-Learn を使用した線形モデルのトレーニングと実行

  1. matplotlib.pyplot をpltとしてインポートします。
  2. numpyをnpとしてインポートする
  3. pandasをpdとしてインポートする
  4. sklearn.linear_model をインポートする
  5.  
  6. #データをロードする
  7. oecd_bli = pd.read_csv( "oecd_bli_2015.csv" , 千単位 = ',' )
  8. gdp_per_capita = pd.read_csv( "gdp_per_capita.csv" ,千単位= ',' ,区切り文字= '\t' ,
  9. エンコーディング= 'latin1' 、na_values= "n/a" )
  10.  
  11. #データを準備する
  12. 国統計 = 準備国統計(OECD の BLI、一人当たりの GDP)
  13. X = np.c_[country_stats[ "一人当たりGDP" ]]
  14. y = np.c_[country_stats[ "生活満足度" ]]
  15.  
  16. # データを視覚化する
  17. country_stats.plot(kind= 'scatter' 、 x= "一人当たりのGDP" 、 y= '生活満足度' )
  18. plt.show()
  19.  
  20. #線形モデルを選択
  21. モデル = sklearn.linear_model.LinearRegression()
  22. # モデルをトレーニングする
  23. モデル.fit(X, y)
  24.  
  25. #キプロス予測する
  26. X_new = [[22587]] # キプロスの一人当たりGDP
  27. print(model.predict(X_new)) # 出力 [[ 5.96242338]]

インスタンスベースの学習アルゴリズムを使用すると、スロベニアの一人当たり GDP がキプロス (20,732 ドル) に最も近いことがわかります。また、OECD データによるとスロベニア人の生活満足度スコアは 5.7 であるため、キプロスの生活満足度スコアは 5.7 になると予測されるでしょう。

少し範囲を広げてみると、最も近い2つの国、ポルトガルとスペインの生活満足度スコアは、それぞれ5.1と6.5でした。これら 3 つの値の平均を取ると 5.77 となり、これもモデルに基づいて予測された値に非常に近くなります。この単純なアルゴリズムは、k 最近傍回帰と呼ばれます (この場合、k = 3)。

前のコードの線形回帰モデルを k 最近傍回帰モデルに置き換えるのは非常に簡単です。次のコード行を変更するだけです。

  1. sklearn.linear_model をインポートする
  2. モデル = sklearn.linear_model.LinearRegression()

次と置き換えます:

  1. sklearn.neighborsをインポートする
  2. モデル = sklearn.neighbors.KNeighborsRegressor(
  3. n_neighbors=3)

すべてがうまくいけば、モデルは優れた予測を行うでしょう。そうでない場合は、より多くの属性 (雇用率、健康、大気汚染など) を使用するか、より多くの、またはより高品質のトレーニング データを取得するか、より強力なモデル (多項式回帰モデルなど) を選択する必要があります。

要するに:

  • 研究データ。
  • モデルを選択します。
  • トレーニング データをトレーニングに使用します (つまり、以前の学習アルゴリズムがコスト関数を最小化するためにモデル パラメーター値を検索するプロセス)。
  • 最後に、モデルが適切に一般化されることを期待しながら、モデルを適用して新しい例に対する予測 (推論と呼ばれる) を行います。

上記は典型的な機械学習プロジェクトです。

<<:  顔認識はどこにでもあるが、デジタル悪用のリスクに注意

>>:  ネットワーク管理における機械学習の応用は何ですか?

ブログ    
ブログ    
ブログ    

推薦する

これほどリアルな効果を生み出すために、原作者を何人食べなければならなかったのですか?文生図はビジュアル「盗作」の疑い

少し前、ニューヨーク・タイムズ紙は、OpenAI が自社のコンテンツを人工知能開発のために違法に使用...

...

Baichuan Intelligence が数千億のパラメータを持つ大規模モデルをリリース、その中国の能力は GPT-4 を上回る!

制作:51CTO テクノロジースタック(WeChat ID:blog) 「今年中にChatGPTのレ...

人工知能が誤って解釈する画像とはどのようなものでしょうか?

ウィリアム・ギブソンの2010年の小説『ゼロ・ヒストリー』では、ある登場人物が「これまでで最も醜いT...

プラットフォームのイノベーションを加速し、「クラウド、ビッグデータ、IoT、インテリジェンス」の新たな章を切り開く

世界を席巻するデジタル変革は、あらゆる分野に大きな発展のチャンスをもたらしました。技術革新を推進する...

中国の博士が強化学習を使ってSpaceXのロケットを回収

[[435329]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...

LK-99の完全懸架映像が初めて物議を醸した。ネットユーザー:本当なら画期的

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

2021年チューリング賞発表:高性能コンピューティングの先駆者であり、TOP500スーパーコンピューティングリストの共同創設者であるジャック・ドンガラが受賞

丸一日待った後、ついに答えが明らかになりました!先ほど、2021年のチューリング賞が発表されました。...

人工知能は今日私たちに何をもたらすのでしょうか?知らないブラックテクノロジーをチェック

人工知能といえば、映画「アイアンマン」に登場する賢い執事ジャービスを思い浮かべる人もいるかもしれませ...

質問応答をより自然にする - コピーと検索メカニズムに基づく自然な回答生成システムの研究

機械を人間と同じくらい賢くすることは、常に研究者の目標でした。知能の概念を正確に定義することは難しい...

機械学習を活用して産業オペレーションにおける運用リスクを管理する

センサーデータは、産業オペレーションにおける運用の安全性と効率性を確保する上で重要な役割を果たします...

WeChatグループに広告を投稿する人が常にいるのでしょうか? Pythonを使って自動ロボットを作成し、彼を排除する

[[341536]] WeChatグループ乾癬とは、WeChatグループ内の他のユーザーに恥ずかしげ...

スイスのCERTがボットネットのドメイン名生成アルゴリズムを解読し、多数のトップレベルドメインをブロック

スイス政府コンピュータ緊急対応センター(GovCERT)は、ボットネットTofseeが通信に使用して...

インテルは世界的なIT需要爆発の機会を無駄にしない

危機に対処する最善の方法は常に変化を求めることです。 国連は5月18日、最新の世界経済情勢予測を発表...

人工知能とインテリジェント人工知能、AIの開発はデータサポートから切り離せない

AIは半世紀以上もの間、低調でしたが、囲碁の人工知能プログラム、AI茶室、AI+医療、AI+交通など...