みなさま、こんばんわ🌜

今日の大阪は残暑が厳しい日々が続いています😅💦

 
1 Python 3年生 機械学習 1日目

本日から『Python 3年生 機械学習のしくみ』という本の学習に進みます。

 

いよいよ「機械学習」に入れると思うと、なぜか目に涙が浮かびました🥹

 

「機械学習(ML)」は人工知能(AI)の一分野です。

 

2 機械学習とは
 

ところで、機械学習とはどのようなものなのでしょうか❓

機械学習とは

「機械学習」とは、たくさんのデータを使って、コンピュータ(機械)自身が自分で学習していく方法のことをいいます。

データをどさっと渡して、「このデータのこの特徴に注目して学習しなさい」と指示するだけで、機械が自分で学習していく方法です。

 

「機械学習」でロボットに「自転車に乗る方法」を学習させた後、ロボットを自転車に乗せると、モデルがリアルタイムに予測をし続けながら、ロボットをコントロールして自転車を運転することができます。

 

「機械学習」は「データ分析」とよく似ていますが、過去を説明するものが「データ分析」で、未来を予測するものが「機械学習」なのです。

参考 森巧尚(2021)『Python3年生 機械学習のしくみ 体験してわかる! 会話でまなべる! 』翔泳社

これで、機械学習についてフワっとわかりましたね(笑)

🍀 人工知能の種類

人工知能は大きく分けて、以下の2つの種類があります。

  • 汎用人工知能:なんでもできる人工知能(開発中:まだない)
  • 特化型人工知能:ある特定のことだけができる人工知能(実用化)

 

私が目指しているのは、メンタルヘルスの改善や福祉領域で実働可能な「汎用人工知能」だと思いますが、まだ開発されていないとのことで、残念ですね😅

 

「まだない」なら作ればいいので、開発のし甲斐があります😉

🍀 学習済モデル

機械学習でやっていることは、「ものが持っている特徴の法則性を学習させること」です。

 

データの中から「これは重要な特徴だ」という特徴を見つけて、それを学習させる「モデル」を用意します。

この「モデル」に特徴データを渡すことで、機械は学習していきます。

 

学習できたものを「学習済モデル」と言います。

🍀 データの量や質の良さ

機械学習ではたくさんのデータが必要ですが、「変なデータ」を使ったら、変な学習になってしまいます。

つまり、「データの量や質の良さ」は学習の精度の影響を及ぼします。

機械学習では、「プログラムを書くこと」だけが重要なのではなく、「良いデータをどうすれば用意できるかを考えること」も重要です。

🍀 機械学習の3種類

機械学習の種類には、大きく分けて3種類があります。

  1. 教師あり学習:数値や分類を予測する学習
  2. 教師なし学習:データをまとめる学習
  3. 強化学習:経験してうまくなる学習

 

機械学習の「教師」とは「答え」のことです。

「教師あり」か「教師なし」の違いは、機械に答えを提示するか提示しないかの違いです。

 

強化学習は、色々と試してみて、良い結果が出たときに「報酬」を与えて強化していく学習らしいです。

この「報酬」がどういうものか、イマイチよくわからないんですよね😅💦

🍀 機械学習の用途の違い

機械学習には色んな種類があります。

  • 回帰:ある値に関係する値がどんな数値になるかを予測するとき
  • 分類:あるデータが、どの分類にあてはまるかを予測するとき
  • クラスタリング:たくさんのデータをグループ分けするとき

 

機械学習ではデータを分類したり、グループ分けしたりしてデータを「分けて」います。

なぜデータの分類にこだわっているかというと、「分けることは、わかること」だからです。

 

つまり、

データを分ける = データの意味を理解する

になるのです😃

 

データを分けることで、コンピュータはデータを理解しているんですね💡

🍀 特徴量

機械学習を行うには、まず現実世界にあるものの性質や状況をデータ化して、コンピュータに取り込むところから始めます。

この「現実世界の性質や状況の測定できるデータ」のことを「特徴量」と言います。

🍀 説明変数と目的変数

予測にとって意味のある特徴量、つまり「予測の根拠になるもの」を「説明変数」といいます。

「予測される結果」のことを「目的変数」といいます。

機械学習では、説明変数と目的変数を使って、学習したり予測を行います。

🍀 次元

説明変数をいくつ使うかを「次元」といいます。

説明変数を1つ使うなら「1次元」、2つ使うなら「2次元」、3つ使うなら「3次元」となります。

3 Google Colaboratory

『Python 3年生 機械学習のしくみ』からはエディタが変わって、

  • Google Colaboratory(Colab Notebook)
  • Jupyter Notebook(Anaconda3)

のうち、どちらでも学習を進められます。

 

私は Google Colaboratoy を選びました😊️

Google が提供しているオンラインサービスで、Google Drive にプログラムファイルを保存することができ、デバイスを問わずにどこからでもプログラムが使える便利なサービスです。

 

Google Colaboratory には始めから様々な外部ライブラリがインストールされているので、使用にあたって外部ライブラリをインストールする必要がないところが最高です👍⭐

4 ヒストグラフと散布図

Google Colaboratory で、本を写経して、様々なプログラムを作ってみました。

 

こちらはヒストグラムのプログラムです👆👆👆

 

こちらは散布図のプログラムです👆👆👆

 

と、ここまでは順調だったのですが、この次のプログラムを作ろうとして、エラーが発生してしまいました😅

5 3D散布図を作ろうとして

続いて、「3D散布図」を作ろうとしたときに、エラーが発生してプログラムが動かなくなってしまいました😅

 

コードを見直しても、おかしいところは見当たりません💧

 

藁をもすがる思いで、ChatGPT 大明神に救いを乞いました🙏

 

すると、いつものように ChatGPT がすぐに正しいコードを教えてくれました✨

 

ChatGPT の言うとおりにコードを修正すると、プログラムはたちまち動き始めました❗

 

まだまだ写経の段階で、どうしてコードを修正すると動き始めたのかはわかりません😅

 

考えられることは、本の出版が2年前の2021年で、この2年の間に日進月歩のIT業界でメソッドが進化したため、2年前のコードでは正しく動かなくなっているなどの理由です。

 

ChatGPT なしでは、プログラミングの学習を進める自信は全くありません💧

 

ChatGPT がリリースされた時代に生きられることは、本当にありがたいことですね✨

6 様々な種類の3D散布図

更にそのあと、同じデータを使って、色んな3D散布図を作ってみました😉

 

今日はここまで❗

 

最後までお読みいただき、ありがとうございました😄

また来てね~😄👋