ChatGPTを講師にしてAI学習を始めてみた

最近、AIや機械学習を本格的に学び直したいと考えている。

これまでは基幹システム開発を中心に経験してきたが、今後は以下を目標にしたい。

  • Kaggle Competitionsで上位を目指す
  • AIモデルを自分で実装・改善できるようになる
  • 数学や統計も含めて体系的に学ぶ

ただ、機械学習についてはほぼ未経験。

NumPyやpandasを少し触ったことはあるものの、かなり時間が空いているため、基礎からやり直すことにした。

今回は、ChatGPTを講師として活用しながら、AI学習を始めた内容をまとめる。

現在のスキル感

学習開始時点のスキルはざっくりこんな感じ。

  • Python:簡単なスクリプト経験あり
  • Linux:基本操作可能
  • Git:GUI中心だが利用経験あり
  • SQL:基本操作可能
  • AWS資格
    • Cloud Practitioner
    • Solutions Architect Associate
    • Developer Associate
  • Azure AZ-900取得
  • 機械学習経験:ほぼなし
  • Kaggle:Titanicを少し触った程度

数学や統計もかなり忘れているため、そこも含めてやり直している。

ChatGPTに最初に相談したこと

最初にChatGPTへ、自分のスキルや目標を整理して伝えた。

例えば以下のような内容。

  • Python経験
  • 数学への苦手意識
  • Kaggleへ挑戦したいこと
  • 理論だけでなく実装もしたいこと
  • 1日1時間程度の学習時間

すると、現在地に合わせたロードマップを提案してくれた。

最初に取り組んだ内容

まずはNumPyの基礎から始めた。

以下を実装。

  • ndarray
  • reshape
  • slice
  • broadcasting
  • 行列積

例えばこんなコード。

import numpy as np

A = np.array([[1,2],[3,4]])
B = np.array([[5,6],[7,8]])

print(A @ B)

出力結果。

[[19 22]
 [43 50]]

ここで「行列積」が機械学習や深層学習の基礎になることを学んだ。

NumPyで印象に残ったこと

特に重要だと感じたのが shape。

print(A.shape)

深層学習では shape ミスが頻出するらしく、かなり重要とのことだった。

また、axis=0 と axis=1 の違いも最初は混乱した。

実際にコードを書きながら、

  • axis=0 → 縦方向に集約
  • axis=1 → 横方向に集約

という感覚が少しずつ理解できてきた。

統計も基礎からやり直し

次に平均・分散・標準偏差を実装した。

import numpy as np
import math

x = np.array([1,2,3,4,5])

mean = x.sum() / x.size
var = np.sum((x - mean) ** 2) / x.size
std = math.sqrt(var)

print(mean)
print(var)
print(std)

ここでは、

  • なぜ平均との差を2乗するのか
  • なぜ最後に平方根を戻すのか

など、式の意味も合わせて学習した。

randnで正規分布を理解

以下も実行した。

x = np.random.randn(1000)

最初は「なぜこんな綺麗な山型になるんだ?」と思ったが、調べると randn() は正規分布に従う乱数を生成する関数だった。

単にコードを動かすだけでなく、

「なぜこうなるのか?」

を調べるのが重要だと感じた。

pandasとTitanicへ

その後は pandas を学習した。

  • CSV読み込み
  • 欠損値
  • groupby
  • describe()

さらに Kaggle の Titanic データセットを読み込み、以下を確認した。

print(df.info())
print(df.describe())
print(df.isnull().sum())

ここで初めて、

  • 欠損値がかなり多いこと
  • Fare が右に歪んだ分布をしていること
  • Cabin は欠損が多すぎること

など、「データを見る」という感覚が少し分かってきた。

今後やりたいこと

今後は以下を進めたいと思っている。

  • Titanic分析継続
  • scikit-learn
  • 特徴量エンジニアリング
  • PyTorch
  • 深層学習
  • Kaggle参加
  • 数学(線形代数・微積・統計)

かなり長い道のりだが、少しずつ積み上げていく予定。

同じような人へ

もし、

  • AIに興味はある
  • でも何から始めれば良いか分からない
  • 数学に不安がある
  • 実務経験はあるけど機械学習は未経験

という人がいたら、まずはNumPyやpandasを触ってみるのはかなり良い入り口だと思っている。

また、ChatGPTを「答えを出す道具」ではなく、

  • 講師
  • 壁打ち相手
  • 解説役

として使うのはかなり相性が良いと感じている。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA