AI・機械学習

5分でできる機械学習!Google ColabでPython初心者でもAIを動かしてみよう

AI・機械学習

前回の記事ではPythonを始める環境としてGoogle Colabratory(以下colab)がおすすめであることをお伝えしました。

この記事では、実際にcolabを使って機械学習を実行してみましょう。

大変そう・・・、と心配する必要はありません。クリックとサンプルコードのコピペで簡単に実行できます。

colabを開く~動作テスト

まずはGoogle ドライブを開きます。

Googleドライブからcolabを開きます。

するとこんなかんじのプログラムの編集画面が開きます。

各種メニュー、コードの編集エリア、AIのエリアなどがあります。

今はワードやエクセルでいえば、新規ファイルを立ち上げた状態です。

まだ、ファイルの名前も決まっていません。

まずは、ファイル名を付けましょう。

今回は「テストコード」というファイル名にしました。これは好きな名前で構いません。google ドライブにファイルとして表示されるので、あとで見てわかりやすい名前にしてください。

次は記載したコードが実際に実行できるように設定を行います。

画面右上の「▼」から「ランタイムのタイプを変更」を選びましょう。

この画面ではコードの処理をどんな処理装置で行うか選択します。

CPUでもコードの実行は可能ですが、T4 GPUのほうが処理が早くできます。

T4 GPUにチェックを入れて保存をクリックします。

次に「接続」をクリックします。

※接続ボタンのクリックは省略できますが、初回のコード実行時に少し待ち時間が長くなります。

「接続中」という表示が10~20秒程度で以下のような表示に切り替わります。

これでコードの実行が出来る状態になりました。

では早速ですが、セルにコードを入れて実行していきます。

ここで注意事項です

プログラミングの大原則

・プログラムは半角英数で入力する

・一文字も間違えてはいけない

・不要な「スペース」も誤作動を起こす。全角スペースが混ざると特に気づきにくいので注意

まあいろいろ書きましたが、困ったらgeminiが助けてくれるので大丈夫です。

では続きに移ります。

セルに半角で「1+1」と入力し

赤丸で囲んだボタンをクリックします。

セルの下に「2」という結果が表示されたでしょうか?

これは単なる電卓の計算結果ではなく、Pythonというプログラミング言語が『1+1』を計算して答えを返してくれた瞬間です。

機械学習プログラムの実行

サンプルプログラム:LightGBM

では次は実際に機械学習のプログラムを実行してみます。

以下のコードをセルにまとめて張り付けてください。

このコードは、sklearnというライブラリに含まれる乳がんのデータを使用したものです。

LightGBMを実行し、SHAP値のsummary plotを出力します。

少し専門的な言葉が出てきたので簡単に説明します。

LightGBMは、「勾配ブースティング」という手法を使った機械学習モデルの一種で、データから病気の有無などを予測するのが得意なモデルです。

SHAP値は、そのモデルが予測を行う際に「どの項目をどれくらい重視したか」を数値化し、可視化する手法です。今回のsummary plotを見ると、乳がんの判定にどの検査項目が強く影響しているかが一目でわかります。

 1. ライブラリのインストール(Colabで約5秒)
!pip install shap lightgbm -q

import lightgbm as lgb
import matplotlib.pyplot as plt
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
import shap

 2. サンプルデータ(乳がんデータセット)の読み込み
data = load_breast_cancer()
X_train, X_test, y_train, y_test = train_test_split(
    data.data, data.target, test_size=0.2, random_state=42
)

 3. LightGBMモデルの学習(1秒で完了)
model = lgb.LGBMClassifier(random_state=42, verbose=-1)
model.fit(X_train, y_train)

 4. SHAP値の計算とSummary Plotの描画
explainer = shap.TreeExplainer(model)
shap_values = explainer(X_test)

 可視化
shap.summary_plot(shap_values, X_test, feature_names=data.feature_names)

コードの貼り付けが出来たら、ボタンを押して実行します。

おそらく20秒前後でセルの下に結果が表示されます。

うまくいけば以下のようなLightGBMを実行した際のSHAP値のsummary plotが出力されるはずです。

サンプルプログラム:ディープラーニングモデル

次はディープラーニングのモデルを動かしてみましょう。

このコードはtorchvisionというライブラリに含まれる手書き文字の画像データを使ったものです。

シンプルなディープラーニングモデルで手書き文字の識別を行います。

import torch
import torch.nn as nn
import torch.optim as optim
from torchvision import datasets, transforms
import matplotlib.pyplot as plt

# 1. 前処理とデータの準備(10秒程度でダウンロード完了)
transform = transforms.Compose([transforms.ToTensor()])
train_dataset = datasets.MNIST('./data', train=True, download=True, transform=transform)
test_dataset = datasets.MNIST('./data', train=False, download=True, transform=transform)

train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=64, shuffle=True)
test_loader = torch.utils.data.DataLoader(test_dataset, batch_size=1000, shuffle=False)

# 2. シンプルなディープラーニング(CNN)モデルの定義
class SimpleCNN(nn.Module):
    def __init__(self):
        super().__init__()
        self.conv = nn.Conv2d(1, 16, 3, 1)
        self.fc = nn.Linear(16 * 26 * 26, 10)

    def forward(self, x):
        x = torch.relu(self.conv(x))
        x = torch.flatten(x, 1)
        return self.fc(x)

model = SimpleCNN()
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)

# 3. 1エポックだけ高速学習(数秒で終了)
for images, labels in train_loader:
    optimizer.zero_grad()
    outputs = model(images)
    loss = criterion(outputs, labels)
    loss.backward()
    optimizer.step()

# 4. テスト画像を取り出して予測結果を可視化
images, labels = next(iter(test_loader))
with torch.no_grad():
    preds = model(images).argmax(dim=1)

# 画像と予測結果の表示(最初の8枚)
fig, axes = plt.subplots(1, 8, figsize=(12, 3))
for i, ax in enumerate(axes):
    ax.imshow(images[i].squeeze(), cmap='gray')
    ax.set_title(f"Pred: {preds[i].item()}")
    ax.axis('off')
plt.show()

コードを貼り付けたらボタンをクリックして実行しましょう。

コードがうまく動けばセルの下に以下のような出力が表示されます。

それぞれの画像が実際にデータに含まれていた手書き文字です。
その上にPred:7などと書かれている部分が、ディープラーニングモデルが画像から解析した数字になります。

今回はごく短い学習(1エポックのみ)なので、まれに予測が外れることもありますが、それも機械学習が「学習の途中」であることの表れです。

エラーが起きたら?うまくいかないときは?

以下の画面のようにボタンが赤くなることがあります。これはエラーのサインです。

プログラミング未経験だと困ってしまいますが、右側に表示されているGeminiが助けてくれます。

Geminiはいいモデルを使った方が、的確にサポートしてくれます。メニューから選択できる、できるだけ優秀なモデルを選択するとコードの編集がスムーズです。

今回はGemini 2.5 FlashになっているのでGemini 3 Flashにします。

もし、Geminiが表示されていなければ、下の青いGeminiのロゴをクリックしてください。

チャット欄に質問を入力しましょう。

Geminiの応答がありました。

それと同時に、セル内のコードのほうも修正されています。

再度ボタンを押して実行してみましょう。

おそらく問題が解決していると思います。

また別な問題が出てきたら、それをまたGeminiに聞いてみてください。

何度か行えばたいていのことは解決します。


 Colabを使うときの注意点

利用時間は無制限ではない

無料版のColabは、ずっと繋ぎっぱなしで使えるわけではありません。

何も操作しない状態が続くと(目安として90分程度)、セッションが自動的に切断されます。また、たとえ操作を続けていても、1回の接続で使える時間には上限があり、最大でも12時間程度で強制的に切断されます。

さらにGPUについても、無料枠には使用量の上限があります。使いすぎると一時的にGPUが使えなくなり、CPUに切り替わったり、しばらく時間を空けないと再度GPUを使えなくなったりすることがあります。

長時間の学習や、何時間もかかるような処理を行いたい場合は、こまめに保存する・処理を分割する、といった工夫が必要になります。それでも足りない場合は、有料プラン(Colab Proなど)の利用も選択肢になります。

個人情報の取り扱い

ColabはGoogleドライブと連携してデータの読み込み・保存ができるように設定できます。しかし、実際の患者データ・顧客データや、個人が特定できる情報を無料版ColabやGoogleドライブに安易にアップロードしないでください。

Pythonや機械学習の勉強をする場合は、

  • 公開されているデータセット
  • サンプルデータ
  • 個人を特定できない形に加工されたデータ

などを利用するようにしましょう。

また、医療現場で実際のデータを扱う場合には、所属している施設の情報セキュリティ規程や個人情報保護に関するルールを必ず確認してください。

「勉強だから大丈夫」と安易に考えず、

患者さんの情報をどこに保存し、どこで処理しているのか

を意識することが重要です。

もし、個人情報が含まれるデータを扱う場合は、VS Codeなどエディタを使用しローカルでデータを処理できる環境を整えることを強く推奨します。


おわりに

プログラミング未経験者にとって、Pythonを始めることは少しハードルが高く感じられるかもしれません。

しかし、最初から難しい環境を構築する必要はありません。

Google Colabを使えば、ブラウザを開いてすぐにPythonを動かすことができます。

IT系が本業でない場合、

「プログラマーになること」

が目的ではない人も多いでしょう。

研究のためにデータを分析したい。

機械学習を試してみたい。

毎日の面倒な作業を自動化したい。

論文で使われているPythonコードを動かしてみたい。

そんな目的なら、まずはColabでPythonに触れてみるのも一つの方法です。

環境構築に悩む前に、まずコードを1行動かしてみる。

それくらい気軽に始めてみることをおすすめします。

Colabに関連のある記事

PythonはじめるならGoogle Colaboratoryがおすすめ

コメント

タイトルとURLをコピーしました