はじめに
この記事は Life is Tech ! Advent Calendar 2025 8日目の記事です。
初めまして。Life is Tech!のUnityメンターのばんじーです。
普段は Unity を使ってゲーム開発に携わりながら、大学では情報工学科で機械学習や数学を中心に学んでいます。
今回は、日常でも耳にする機会が多くなった 機械学習 についてのお話です。
特に大学の授業で扱うとき、「レポートに何を書いたらいいかわからない…」 と感じたことはありませんか?
この記事では、機械学習の学習に役立つ“裏側の考え方”を、数学の視点も交えながら紹介します。
授業や課題に少しでも活かせてもらえたら嬉しいです。
1. 文系理系問わずある「機械学習・深層学習」の授業
最近は GPT や Gemini などのAIツールが一般的になり、大学でも分野を問わず AI・データサイエンスに触れる機会が増えています。
1日完結の実習形式や、半期を通して簡単なモデルを作る授業も多いですよね。
そのとき、よくある流れはこんな感じではないでしょうか。
- 初めからコメントアウトだらけの長いコード が渡される
- よくわからないまま、手順書の指示に従って実行ボタンを押す
- エラーが出たらAIに聞いて修正し、なんとなく動く
- 「結局何をやったのかよくわからないまま」 課題終了
- 最後のレポート課題で「何を書けばいいの?」と悩み、それもAIに聞く…
実際、私の周りでもよく耳にする体験談です。
2. なぜそうなってしまうのか
一つの理由として、コードをストーリーのように “眺めているだけ”になりやすい 点があります。
もちろん、授業で扱う専門書や資料は数学的な背景も含まれていて難しく感じることもあります。
そうすると、「とりあえず動いたからOK!」となり、本質的な理解までたどり着きづらくなることが多いのです。
3. 裏の数学と仕組みを知る
ここからは、ほんの少しだけ視点を変えて考えてみます。
ターミナルとGUIの例え
PCの操作に例えるとわかりやすいです。
- Windowsのエクスプローラー や MacのFinder:クリックすればフォルダが開いたり、アプリが起動したりします(GUI)。直感的です。
-
ターミナル (黒い画面):全体像が視覚的に見えないため、
cd(移動) やmv(移動・名前変更)、gcc(コンパイル) などのコマンドを自分で打つ必要があります(CUI)。
授業で渡される「ライブラリを使った機械学習コード」は、一見するとGUIのように便利です。しかし、中身を理解してレポートを書くには、ターミナルのように 「裏でどんな命令(計算)が走っているか」 を知る必要があります。
機械学習コードの解剖
多くの授業コードは以下のような構成になっています。
-
ライブラリとデータの読み込み:
教師あり学習の場合、大量の正解データを読み込みます。 -
モデルの構築(実験のキモ):
「今回はどんな計算式で解くか」を定義します。- ここで 勾配法(Gradient Descent) などを使って、正解との「差分」を縮める計算を行います。
- 学習パラメータは、現代のモデルでは1万〜数億パラメータになることもあります。
数学で見るニューラルネットワーク
ここがレポートの書きどころです!
順伝播型ニューラルネット(FNN)などは、実はシンプルな 線型モデル の積み重ねです。
基本の式は中学校で習った一次関数と似ています。
$$
y = wx + b
$$
- $w$ : 重み (Weight)
- $b$ : バイアス (Bias)
- $x$ : 入力データ
これを最小二乗法などで最適化し、最も誤差が少ない $w$ と $b$ を探すのが学習です。
実際のニューラルネットワークでは、入力が増えるため以下のようになります。
$$
y \approx w_1x_1 + w_2x_2 + \dots + w_nx_n + b
$$
さらに、この式(ユニット)を増やしたり、層(中間層)を深くしたりすることで、複雑な表現が可能になります。
活性化関数(Activation Function)
「線型モデル」だけだと単純な計算しかできないため、アクセントとして 活性化関数 を挟みます。これにより、複雑な非線形のデータも分類できるようになります。
- ステップ関数:0か1か、パキッと分ける。
- ReLU関数:マイナスは0、プラスはそのまま。今の主流。
- シグモイド関数 / ロジスティック関数:滑らかなS字カーブ。
レポートには**「なぜReLU関数を選んだのか」「このパラメータを変えたらどう精度が変わったか」**を書くと、グッと評価が上がります。
ライブラリとは「専門図書館」
Pythonで使う scikit-learn や PyTorch などのライブラリは、オンラインの巨大な図書館のようなものです。
誰でもアクセス可能で、必要なデータセット(本)が棚に整理されています。
- 機械学習:MNIST(手書き数字判定)、Iris(アヤメの分類):
- 生物・医療系:Biopython(遺伝子配列解析)、Protein Data Bank(タンパク質構造データ)、Breast Cancer(乳がん診断データ/scikit-learn内蔵)
- 薬学・化学系:RDKit(化学構造の描画・解析)、DeepChem(創薬AI向けライブラリ)、Tox21(化合物の毒性予測データ)
- 社会科学・経済系:California Housing(カリフォルニアの住宅価格/scikit-learn内蔵)、Titanic(乗客の生存予測)、statsmodels(計量経済・統計解析用ライブラリ)
自分の専攻に合わせて、「このデータセットにはどんな特徴があるか」を調べるだけでも立派な研究材料になります。
4. 機械学習の授業を「理解」するにはどうすべきか
おすすめの方法の一つは、
「もらったコードを写経する」
というものです。
実行ボタンを押すだけでなく、自分の手で1行ずつ書いてみると、
「ここでデータを読み込んでいる」「この式で計算している」など、
コードの流れが自然と見えるようになります。
まとめ:レポートを攻略するために
ライブラリを使えば課題自体はクリアできますが、
より深いレポートを書くには、裏の数学や仕組みに少し触れてみることが必要になります!
-
$y=wx+b$ のパラメータ数 が増えると表現力が増す
-
活性化関数を変えたら 収束や精度がどう変わるか
こういった視点があるだけで、レポートの説得力が大きく変わります。
Unityでも同じですが、仕組みが見えてくると、学ぶ楽しさや視野が広がります。
今年も良い制作・学習の一年になりますように!
ここまで読んでくださり、ありがとうございました!!!!