AIプログラミング実践ガイド:環境構築から探求へ

【概要】第1章では、Windows環境にPython、GPU計算基盤、AIエディタを導入し、開発環境を構築する。第2章では、構築した環境でAIプログラムを実行し、パラメータ変更による効果を観察する探求手法を学ぶ。たとえば学習率を0.1から0.01や0.5に変更し、損失の収束過程がどう変化するかをグラフで確認する。仮説を立て、プログラムを実行し、結果を観察するサイクルを通じて、AIの動作原理を体験的に理解する。第3章では、探求を研究に発展させる方法を扱う。探求対象の特定、仮説立案、結果観察、記録整理という4つのステップを学び、予想外の結果からも知見を得る柔軟な思考を身につける。さらに、再現性の確保や研究倫理の遵守といった、研究者としての基本も習得する。

資料(教科書の体裁): Word 版、PDF 版

概要プレゼン: パワーポイント

【目次】

  1. 重要概念
  2. 開発環境とビルドツールの準備
  3. Pythonプログラム実行による探求
  4. 探求プロセス

本ガイドの読み方と前提

重要概念

第1章 開発環境とビルドツールの準備

目標

本章の目標は、自身のパソコンでAIプログラミングの実行と実験が可能な環境を構築することである。本章を完了すると、AIプログラムを動作させ、ソースコードの確認や修正ができる環境が整う。

1.1 概要

Windows環境でAIプログラミングを始めるための開発環境を構築する。Python、GPU計算基盤、AIエディタを導入することで、機械学習モデルの実行や実験、AIによるコード生成支援を活用した開発が可能になる。各ソフトウェアはコマンドラインから一括でインストールでき、パスの設定も自動化される。

本ガイドでは以下のソフトウェアをインストールする。

開発環境とビルドツール

ソフトウェア説明用途
Python 3.12汎用プログラミング言語。3.12では型ヒント(変数や引数の型を明示する記法)の強化、インタープリタの最適化、サブインタープリタ(独立したPython実行環境)による並列処理の基盤を導入。AI開発、データ解析、Web開発
Build Tools for Visual Studio 2026MSVC(Microsoft Visual C++コンパイラ)、リンカ、Windows SDKを含む。C/C++のビルドやPython拡張ライブラリのコンパイルに使用する。C/C++ビルド
Rustシステムプログラミング言語。所有権システム(メモリ管理機構)によりメモリ安全性をコンパイル時に保証する。Build Tools for Visual Studio が必要。システム開発、高速化
Git分散型バージョン管理システム(ソースコードの変更履歴を管理するツール)。変更履歴をDAG(有向非巡回グラフ:履歴の分岐と統合を表現するデータ構造)として管理し、共同開発を支援する。ソースコード管理
CMakeクロスプラットフォーム(複数のOSで動作する性質)のビルド自動化ツール。定義ファイルからOSやコンパイラに応じたビルド構成を生成する。ビルド構成の自動生成
7-Zip圧縮・解凍ツール。LZMA/LZMA2(高圧縮アルゴリズム)による.7z形式のほか、tar.gz等のUnix系形式にも対応する。ファイル圧縮・解凍
CUDANVIDIA GPU用の並列計算基盤。GPUをGPGPU(汎用GPU計算:グラフィックス処理以外の計算にGPUを利用する技術)として活用し、行列演算などを高速に処理する。GPU並列計算
PyTorchpipでインストール。Metaが開発した機械学習フレームワーク。動的計算グラフ(実行時にグラフを構築する方式)による柔軟な記述ができる。機械学習モデル開発
Visual Studio CodeLSP(Language Server Protocol:エディタと言語解析機能を分離する規格)対応のコードエディタ。拡張機能により各種言語の開発環境として使用できる。コード編集
ClineVS Code拡張機能。AIによるファイル操作、ターミナル実行、複数ファイルの編集ができる。MCP(Model Context Protocol:AIと外部ツールの連携規格)に対応。AI駆動開発
GitHub Copilot FreeAIによるコード補完ツール。既存のコードを基に、関数の実装や次の行を予測して提示する。コード補完
JupyterLabpipでインストール。対話的プログラミング環境。コードと実行結果を一つのノートブックに記録しながら分析できる。対話的データ分析

1.2 実行前の確認事項

1.3 winget を用いたソフトウェアのインストール(Windows)

Windowsでは、winget(Windowsの公式パッケージ管理ツール)を用いて多くのソフトウェアをインストールできる。管理者権限で実行し、システム領域にインストールすることを推奨する。

Python 3.12 のインストール

Pythonのインストールを行い、Pythonのプログラムを実行する環境を整える。扱う環境は、Windows搭載パソコンである。金子研究室では、Python 3.12.10を推奨する。

[Windows での Python 3.12 のインストール手順を見るには、ここをクリック]

Windows での Python 3.12 のインストール

以下のいずれかの方法でPython 3.12をインストールする。Pythonがインストール済みの場合、この手順は不要である。

方法 1:winget によるインストール

【インストールコマンドの実行方法】

管理者権限でコマンドプロンプトを起動する(手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。そして、コマンド全体をコマンドプロンプトにコピー&ペーストする。

--scope machine を指定することで、システム全体(全ユーザー向け)にインストールされる。このオプションの実行には管理者権限が必要である。インストール完了後、コマンドプロンプトを再起動するとPATHが反映される。

REM Python 3.12 をシステム領域にインストール
winget install --id Python.Python.3.12 -e --scope machine --silent --accept-source-agreements --accept-package-agreements --override "/quiet InstallAllUsers=1 PrependPath=1 Include_test=0 Include_pip=1 Include_launcher=1 InstallLauncherAllUsers=1 TargetDir=\"C:\Program Files\Python312\""
if not "%ERRORLEVEL%"=="0" ( color 0c & echo Python 3.12 のインストールに失敗しました & ping 127.0.0.1 -n 6 >nul & color )

REM Python と Scripts を PATH 先頭に追加
powershell -NoProfile -Command "$p='C:\Program Files\Python312'; $s=\"$p\Scripts\"; if(Test-Path $p){$k=[Microsoft.Win32.Registry]::LocalMachine.OpenSubKey('SYSTEM\CurrentControlSet\Control\Session Manager\Environment',$true); $c=$k.GetValue('Path','',[Microsoft.Win32.RegistryValueOptions]::DoNotExpandEnvironmentNames); $t=$k.GetValueKind('Path'); $new=$c; if((';'+$new+';') -notlike \"*;$p;*\"){$new=$p+';'+$new}; if((';'+$new+';') -notlike \"*;$s;*\"){$new=$s+';'+$new}; if($new -ne $c){$k.SetValue('Path',$new,$t)}; $k.Close()}"

REM 現在のセッションにも反映(システムPATHを再取得して連結)
for /f "usebackq tokens=2,*" %A in (`reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path`) do set "PATH=%B"

REM pip / wheel の更新
python -m pip install --no-user -U pip wheel
if not "%ERRORLEVEL%"=="0" ( color 0c & echo pip / wheel の更新に失敗しました & ping 127.0.0.1 -n 6 >nul & color )

方法 2:インストーラーによるインストール

  1. Python公式サイト(https://www.python.org/downloads/)にアクセスし、「Download Python 3.x.x」ボタンからWindows用インストーラーをダウンロードする。
  2. ダウンロードしたインストーラーを実行する。
  3. 初期画面の下部に表示される「Add python.exe to PATH」にチェックを入れてから「Customize installation」を選択する。このチェックを入れ忘れると、コマンドプロンプトから python コマンドを実行できない。
  4. 「Install Python 3.xx for all users」にチェックを入れ、「Install」をクリックする。

インストールの確認

コマンドプロンプトで以下を実行する。

python --version

バージョン番号(例:Python 3.12.x)が表示されればインストール成功である。「'python' は、内部コマンドまたは外部コマンドとして認識されていません。」と表示される場合は、インストールが正常に完了していない。

Build Tools・CUDA Toolkit・PyTorch のインストール

本章では、C++ ビルドツール、NVIDIA CUDA Toolkit、PyTorch のインストールを行い、GPU を活用した機械学習プログラムを実行する環境を整える。扱う環境は、Windows 搭載パソコンである。

[Build Tools・CUDA Toolkit・PyTorch のインストール手順を見るには、ここをクリック]

Windows での Build Tools for Visual Studio 2026 のインストール

Build Tools for Visual Studio 2026 は、C++ ソースコードを Windows 用バイナリにコンパイルするための開発ツール群である。unsloth 等の一部 Python パッケージは、インストール時に C++ コードのビルドを必要とするため、これらのツールが必須となる。

以下のコマンドは、Build Tools が未インストールの場合は winget で新規インストールし、インストール済みの場合は setup.exe modify でコンポーネントを追加する(バージョンは変更しない)。

【インストールコマンドの実行方法】

管理者権限でコマンドプロンプトを起動する(手順:Windows キーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。そして、コマンド全体をコマンドプロンプトにコピー&ペーストする。

REM ============================================================
REM Visual C++ 再頒布可能パッケージ (VCRedist 2015-)
REM ============================================================
winget install --scope machine --id Microsoft.VCRedist.2015+.x64 -e --silent --disable-interactivity --force --accept-source-agreements --accept-package-agreements --override "/quiet /norestart"
if not "%ERRORLEVEL%"=="0" ( color 0c & echo VCRedist のインストールに失敗しました & ping 127.0.0.1 -n 6 >nul & color )

REM ============================================================
REM Visual Studio Build Tools + Desktop development with C++
REM (VCTools、MSBuildTools、CMake連携、Clang、Windows 11 SDK)
REM ============================================================
REM 進行中のインストーラーを停止(ロック競合回避。対象プロセスが存在しない場合は
REM taskkillがエラーを返すが、これは想定内であるため出力のみ抑制する)
taskkill /F /IM vs_setup.exe /T >nul 2>&1
taskkill /F /IM vs_installer.exe /T >nul 2>&1
taskkill /F /IM vs_installerservice.exe /T >nul 2>&1
taskkill /F /IM msiexec.exe /T >nul 2>&1

REM Build Tools + Desktop development with C++(VCTools)+ 追加コンポーネント(一括)
REM 未インストール時: winget で新規インストール
REM インストール済み時: setup.exe modify でコンポーネント追加(バージョンは変更しない)
winget list --id Microsoft.VisualStudio.BuildTools 2>nul | findstr /i "BuildTools" >nul 2>&1
if %ERRORLEVEL% EQU 0 (
    for /f "usebackq delims=" %P in (`"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -products Microsoft.VisualStudio.Product.BuildTools -property installationPath`) do start /wait "" "C:\Program Files (x86)\Microsoft Visual Studio\Installer\setup.exe" modify --installPath "%P" --add Microsoft.VisualStudio.Workload.VCTools --add Microsoft.VisualStudio.Workload.MSBuildTools --add Microsoft.VisualStudio.Component.VC.CMake.Project --add Microsoft.VisualStudio.Component.VC.Llvm.Clang --add Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset --add Microsoft.VisualStudio.Component.Windows11SDK.26100 --add Microsoft.VisualStudio.Component.VC.v143.x86.x64 --includeRecommended --quiet --norestart --nocache
    if not "%ERRORLEVEL%"=="0" ( color 0c & echo Build Tools のコンポーネント追加に失敗しました & ping 127.0.0.1 -n 6 >nul & color )
) else (
    winget install --scope machine --id Microsoft.VisualStudio.BuildTools -e --silent --disable-interactivity --force --accept-source-agreements --accept-package-agreements --override "--quiet --wait --norestart --nocache --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended --add Microsoft.VisualStudio.Workload.MSBuildTools --add Microsoft.VisualStudio.Component.VC.CMake.Project --add Microsoft.VisualStudio.Component.VC.Llvm.Clang --add Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset --add Microsoft.VisualStudio.Component.Windows11SDK.26100 --add Microsoft.VisualStudio.Component.VC.v143.x86.x64"
    if not "%ERRORLEVEL%"=="0" ( color 0c & echo Build Tools のインストールに失敗しました & ping 127.0.0.1 -n 6 >nul & color )
)

REM BuildTools のインストールパスを vswhere.exe で取得(メジャーバージョンに依存しない)
set "VSWHERE=C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe"
set "BT_PATH="
for /f "usebackq delims=" %P in (`"%VSWHERE%" -products Microsoft.VisualStudio.Product.BuildTools -property installationPath`) do set "BT_PATH=%P"
if not defined BT_PATH ( color 0c & echo Build Tools のインストールパスを取得できませんでした & ping 127.0.0.1 -n 6 >nul & color )

REM 破損時の修復(任意、動作がおかしくなった場合)
REM if defined BT_PATH "C:\Program Files (x86)\Microsoft Visual Studio\Installer\setup.exe" repair --installPath "%BT_PATH%" --quiet --norestart
REM 導入確認(インストールパスが表示されれば正常)
"%VSWHERE%" -products * -requires Microsoft.VisualStudio.Workload.VCTools -property installationPath

上記のコマンドでは、Build Tools 本体と Visual C++ 再頒布可能パッケージをインストールし、続いて以下のコンポーネントを追加している。

追加のコンポーネントが必要になった場合は Visual Studio Installer で個別にインストールできる。

Windows での NVIDIA CUDA Toolkit のインストール

NVIDIA CUDA Toolkit は、NVIDIA GPU 上で計算を行うためのコンパイラ・ライブラリ群である。PyTorch や vLLM 等が GPU を利用するために必要となる。GPU を使用しない場合、この手順は不要である。

前提条件:NVIDIA GPU、NVIDIA ドライバ、Build Tools for Visual Studio もしくは Visual Studio が必要である。

インストール中の注意:他のウインドウは閉じておくこと。

【インストールコマンドの実行方法】

管理者権限でコマンドプロンプトを起動する(手順:Windows キーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。そして、コマンド全体をコマンドプロンプトにコピー&ペーストする。

REM ============================================================
REM CUDA 12.8
REM ============================================================
winget install --scope machine --id Nvidia.CUDA --version 12.8 -e --silent --disable-interactivity --force --uninstall-previous --accept-source-agreements --accept-package-agreements --override "-s -n"
if not "%ERRORLEVEL%"=="0" ( color 0c & echo CUDA のインストールに失敗しました & ping 127.0.0.1 -n 6 >nul & color )

REM 統合用ファイルのコピー
if exist "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8\" (
    xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8\extras\visual_studio_integration\MSBuildExtensions\*.*" "c:\Program Files\Microsoft Visual Studio\18\Community\MSBuild\Microsoft\VC\v180\BuildCustomizations\" /Y
    xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8\extras\visual_studio_integration\MSBuildExtensions\*.*" "C:\Program Files (x86)\Microsoft Visual Studio\18\BuildTools\MSBuild\Microsoft\VC\v180\BuildCustomizations\" /Y
    xcopy "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8\extras\visual_studio_integration\MSBuildExtensions\*.*" "C:\Program Files (x86)\Microsoft Visual Studio\18\BuildTools\MSBuild\Microsoft\VC\v170\BuildCustomizations\" /Y /I
) else (
    echo CUDA v12.8 のディレクトリが存在しません。
    ping 127.0.0.1 -n 6 >nul
)

REM 環境変数TEMP, TMPの設定(一時ファイルの保存先を短いパスに変更)
set "TEMP=C:\TEMP"
set "TMP=C:\TEMP"
powershell -NoProfile -Command "$k=[Microsoft.Win32.Registry]::LocalMachine.OpenSubKey('SYSTEM\CurrentControlSet\Control\Session Manager\Environment',$true); foreach($n in @('TEMP','TMP')){ $t=[Microsoft.Win32.RegistryValueKind]::ExpandString; if($k.GetValueNames() -contains $n){ $t=$k.GetValueKind($n) }; $k.SetValue($n,'C:\TEMP',$t) }; $k.Close()"
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v TEMP
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v TMP

環境変数 TEMP および TMP を C:\TEMP に変更しているのは、後続のインストール処理で長いパス名や空白を含むパス名がエラーの原因となる場合があるためである。

Windows での PyTorch のインストール

https://pytorch.org のインストールガイドに従い、自環境の CUDA バージョンに対応したコマンドを取得して実行する。CUDA バージョンは以下で確認できる。

nvcc --version

管理者権限でコマンドプロンプトを起動し、以下を実行する。cu128 は CUDA 12.8 用のタグである。CUDA バージョンが異なる場合は、上記公式サイトで該当するタグを確認し、URL 末尾の cu128 を置き換えること。

REM numpy と PyTorch(CUDA 12.8 対応 wheel)、pip キャッシュを全削除
set "CUDA_TAG=cu128"
pip install --no-user -U numpy torch torchvision torchaudio --index-url https://download.pytorch.org/whl/%CUDA_TAG%
if not "%ERRORLEVEL%"=="0" ( color 0c & echo numpy / PyTorch のインストールに失敗しました & ping 127.0.0.1 -n 6 >nul & color )

Rust のインストール(Windows 上)

管理者権限のコマンドプロンプトで以下を実行する。

REM Rust をシステム全体にインストール
curl -o rustup-init.exe https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe
set "RUSTUP_HOME=C:\Rust\rustup"
set "CARGO_HOME=C:\Rust\cargo"
setx RUSTUP_HOME "%RUSTUP_HOME%" /M
setx CARGO_HOME "%CARGO_HOME%" /M
rustup-init.exe -y
powershell -NoProfile -Command "$p='C:\Rust\cargo\bin'; $c=[Environment]::GetEnvironmentVariable('Path','Machine'); if((Test-Path $p) -and $c -notlike \"*$p*\"){[Environment]::SetEnvironmentVariable('Path',\"$p;$c\",'Machine')}"
del rustup-init.exe

上記のコマンドでは、Rust のインストールに加えて、環境変数 RUSTUP_HOME と CARGO_HOME をシステム全体で共有するディレクトリ(C:\Rust 配下)に設定している。これにより、すべてのユーザが Rust ツールチェーン(Rust コンパイラとパッケージマネージャのセット)を利用できる。

Rust のインストール画面

Git のインストール(Windows 上)

管理者権限のコマンドプロンプトで以下を実行する。

REM Git をシステム領域にインストール
winget install --scope machine --id Git.Git -e --silent --disable-interactivity --force --accept-source-agreements --accept-package-agreements --override "/VERYSILENT /NORESTART /NOCANCEL /SP- /CLOSEAPPLICATIONS /RESTARTAPPLICATIONS /COMPONENTS=""icons,ext\reg\shellhere,assoc,assoc_sh"" /o:PathOption=Cmd /o:CRLFOption=CRLFCommitAsIs /o:BashTerminalOption=MinTTY /o:DefaultBranchOption=main /o:EditorOption=VIM /o:SSHOption=OpenSSH /o:UseCredentialManager=Enabled /o:PerformanceTweaksFSCache=Enabled /o:EnableSymlinks=Disabled /o:EnableFSMonitor=Disabled"

上記のコマンドでは、Git のインストールに加えて、システム環境変数 PATH に Git のコマンドパスを追加している。これにより、コマンドプロンプトから直接 git コマンドを実行できる。

Git のインストール画面

CMake のインストール(Windows 上)

管理者権限のコマンドプロンプトで以下を実行する。

REM CMake をシステム領域にインストール
winget install --scope machine --id Kitware.CMake -e --silent --disable-interactivity --force --accept-source-agreements --accept-package-agreements --override "/qn /norestart ADD_CMAKE_TO_PATH=System"

上記のコマンドでは、CMake のインストールに加えて、システム環境変数 PATH に CMake のコマンドパスを追加している。CMake は、多くの C/C++ プロジェクトのビルドに使用されるビルドシステムジェネレータ(ビルド手順を自動生成するツール)である。

CMake のインストール画面

7-Zip のインストール(Windows 上)

管理者権限のコマンドプロンプトで以下を実行する。

REM 7-Zip をシステム領域にインストール
winget install --scope machine --id 7zip.7zip -e --silent --disable-interactivity --force --accept-source-agreements --accept-package-agreements
REM 7-Zip のパス設定
powershell -NoProfile -Command "$p='C:\Program Files\7-Zip'; $c=[Environment]::GetEnvironmentVariable('Path','Machine'); if((Test-Path $p) -and $c -notlike \"*$p*\"){[Environment]::SetEnvironmentVariable('Path',\"$p;$c\",'Machine')}"

上記のコマンドでは、7-Zip のインストールに加えて、システム環境変数 PATH に 7-Zip のコマンドパスを追加している。これにより、コマンドプロンプトから 7z コマンドで圧縮・展開操作を実行できる。

7-Zip のインストール画面

その他のソフトウェア


REM JupyterLab をインストール
set "PYTHON_PATH=C:\Program Files\Python312"
"%PYTHON_PATH%\Scripts\pip" install -U jupyterlab

REM Microsoft VS Code をシステム領域にインストール
winget install --scope machine --id Microsoft.VisualStudioCode -e --silent --accept-source-agreements --accept-package-agreements

REM VS Code 拡張機能のインストール(Python環境、日本語化、Cline、GitHub Copilot)
if exist "C:\Program Files\Microsoft VS Code\bin" cd "C:\Program Files\Microsoft VS Code\bin"
if exist "C:\Program Files\Microsoft VS Code\bin" code --install-extension ms-python.python
if exist "C:\Program Files\Microsoft VS Code\bin" code --install-extension ms-python.vscode-pylance
if exist "C:\Program Files\Microsoft VS Code\bin" code --install-extension MS-CEINTL.vscode-language-pack-ja
if exist "C:\Program Files\Microsoft VS Code\bin" code --install-extension dongli.python-preview
if exist "C:\Program Files\Microsoft VS Code\bin" code --install-extension saoudrizwan.claude-dev
if exist "C:\Program Files\Microsoft VS Code\bin" code --install-extension GitHub.copilot

echo セットアップ完了

実行時のヒント

1.4 確認

次のプログラムを実行し、Python のバージョン、Git のバージョン、PyTorch のバージョン、GPU の動作を確認する。

import sys
import subprocess
import torch

print(sys.version)
print(subprocess.check_output(['git', '--version'], text=True).strip())
print(torch.__version__)
print(torch.cuda.is_available())
Python、Git、PyTorch、GPUの動作確認結果の表示例

第2章 Pythonプログラム実行による探求

目標

第 1 章で構築した環境を使用して、AI プログラムを実行し、パラメータ変更による効果を観察する。本章では、pip を用いた Python ライブラリのインストール方法と、プログラム実行による探求手法を習得する。本章における「探求」とは、プログラムのパラメータを変更し、その結果を観察・考察するサイクルを指す。

2.1 VS Code でのプログラム実行手順

新規 Python ファイルの作成

  1. メニューから File → New File を選択する
  2. ファイル名を入力する(例:a.py)
  3. 保存先のフォルダ(ディレクトリ)を選び、保存する

左側のエクスプローラー(ファイル一覧を表示する領域)から既存のファイルを開くこともできる。

コードの入力と実行

  1. 作成したファイルの画面で、コードを入力および編集する
  2. 画面右上の実行ボタン(再生マークのアイコン)をクリックしてプログラムを実行する
  3. 実行結果は画面下部のターミナルに表示される

Python 実行環境(インタープリター)の設定確認

プログラムが正常に動作しない場合は、以下の手順で設定を確認する。

  1. Ctrl+Shift+P を押し、コマンドパレット(コマンド検索・実行用の入力欄)を開く
  2. 「Python: Select Interpreter」と入力し、表示される候補から選択する
  3. システムにインストールされた Python 3.12 が選択されていることを確認する(選択されていなければ変更する)

2.2 必要なライブラリのインストール

Python プログラムは、それぞれ異なるライブラリを必要とする場合がある(例:後述のプログラムは matplotlib ライブラリを必要とする)。必要なライブラリがインストールされていない場合は、以下の手順でインストールする。

手順

  1. 管理者権限でコマンドプロンプトを起動する
    • Windows キーを押して cmd と入力し、右クリックして「管理者として実行」を選択する
  2. pip コマンドでライブラリをインストールする

本ガイドではシステム領域にインストールした Python を使用するため、pip install も管理者権限のコマンドプロンプトから実行する。pip コマンドが見つからない場合は、"C:\Program Files\Python312\Scripts\pip" のようにフルパスで指定する。以下は代表的な例である。

pip install numpy pandas matplotlib pillow requests

インストール完了後、正常に終了したことを確認する。

主要な Python ライブラリ

Python には、さまざまな分野で利用できるライブラリがある。機械学習やデータサイエンス分野では、以下のライブラリが使用される。

2.3 プログラム実行による探求の基本手順

プログラム実行による探求は、以下のサイクルで行う。

  1. 仮説の立案:プログラムの動作について予想を立てる
  2. コード変更:パラメータや値を変更する
  3. 実行:プログラムを実行して結果を得る
  4. 結果の観察:出力やグラフを観察する
  5. 考察:結果から何が分かったかを整理し、次の仮説を立てる

このサイクルを繰り返すことで、プログラムの動作原理を理解する。次節で扱う学習率の変更は探求の一例であり、さまざまなパラメータや設定を対象とした探求が可能である。

2.4 学習率の変更と効果

本節では、学習率がモデルの学習速度に与える影響を観察する。

用語説明

サンプルプログラム

import torch
import matplotlib.pyplot as plt

# 入力データと目標値を定義
x = torch.tensor([1., 2., 3., 4.])
y = torch.tensor([3., 5., 7., 9.])

# 学習する重み 'a' とバイアス 'b' を初期化。requires_grad=True により勾配計算を有効にする
a = torch.tensor(0.5, requires_grad=True)
b = torch.tensor(0.0, requires_grad=True)

# 各反復での損失を記録するためのリスト
losses = []

# 勾配降下法による学習ループ
for _ in range(10):
    # 予測値と目標値の差の二乗平均を損失として計算
    loss = ((a * x + b - y) ** 2).mean()

    # 損失値をリストに追加(.item() でテンソルからPythonの数値に変換)
    losses.append(loss.item())

    # 損失の勾配を計算
    loss.backward()

    # 勾配降下法による重み 'a' とバイアス 'b' の更新
    # .data を直接変更することで、この操作が勾配計算に影響しないようにする
    a.data -= 0.1 * a.grad
    b.data -= 0.1 * b.grad

    # 勾配をゼロにリセット(次の反復のために必要)
    a.grad.zero_()
    b.grad.zero_()

# 学習後の重み 'a'、バイアス 'b' と最終的な損失値を出力
print(f"a={a:.2f}, b={b:.2f}, loss={loss:.3f}")

# 損失の推移をグラフで表示
plt.plot(losses)
plt.xlabel('Iteration')
plt.ylabel('Loss')
plt.title('Training Loss')
plt.show()

このプログラムは、線形関数 y=ax+b(一次関数)の重み a とバイアス b を勾配降下法で学習する PyTorch の実装である。入力データ [1, 2, 3, 4] と目標値 [3, 5, 7, 9] から、初期値 a=0.5、b=0.0 を 10 回の反復で更新し、各反復の損失値をリストに記録してグラフ表示する。重み a やバイアス b の初期値、または学習率 0.1 を変更することで、収束過程の違いを観察できる。

入力データと目標値は y = 2x + 1 の関係を満たすため、十分な反復で a は 2 に、b は 1 に収束する。requires_grad=True は a・b を勾配計算の対象として登録する指定であり、loss.backward() によって勾配が計算される。.data への直接代入は、パラメータ更新自体を計算グラフに含めないための慣用手法である(with torch.no_grad(): ブロック内での更新と等価)。a.grad.zero_() は、PyTorch が勾配を加算する仕様であるため、次の反復のために 0 にリセットしている。

変更手順

  1. a.py ファイルを開き、コードを表示する
  2. 以下の行を探す
    a.data -= 0.1 * a.grad
    b.data -= 0.1 * b.grad
  3. この行の 0.1 を別の数値に書き換える
    • 例:0.01(学習率を小さくする)
    • 例:0.5(学習率を大きくする)
  4. 変更後、ファイルを保存する(Ctrl+S またはメニューの File → Save)
  5. 画面右上の実行ボタンをクリックしてプログラムを再実行する

なお、plt.show() はグラフウィンドウを閉じるまで処理が停止する。必要に応じて plt.savefig('loss.png') でファイルに保存することもできる。

期待される効果

学習率を変更すると、表示される損失のグラフに以下の違いが見られる。

実行結果の確認方法

プログラムが正常に実行されると、以下の結果が得られる。

グラフの横軸は反復回数(0 から 9 まで)、縦軸は損失値を表す。学習率が適切な場合、減少曲線を描き、反復回数を十分にとれば損失は 0 に近づく。学習率が大きすぎると振動や発散を示し、小さすぎると変化が緩慢になる。

演習

  1. 上記のプログラムを実行し、損失のグラフを確認する
  2. 学習率を 0.01 に変更して実行し、グラフの変化を観察する
  3. 学習率を 0.5 に変更して実行し、グラフの変化を観察する
  4. 各実行結果を比較し、学習率が収束過程に与える影響を考察する
損失の推移グラフの表示例

この演習は一例である。内容に応じた考察、結果の記録、次の仮説の立案を行う。

発展ガイド

別ページに多数の AI プログラムと説明を記載している。多数の AI プログラムの実行や探求が可能であり、本章の内容が参考となる。人工知能のプログラム実行体験と探求(Windows 上)のページを参照されたい。 https://www.kkaneko.jp/ai/labo/index.html

第3章 探求プロセス

3.1 学習目標

本章では、第 2 章で習得したプログラム実行による探求の手法を発展させ、研究計画の立案に応用できる汎用的なスキルを習得する。第 2 章の「探求」がパラメータ変更と結果観察のサイクルを指すのに対し、本章ではそれを基盤として、仮説の立案から研究成果の発表までを含む探求プロセスを扱う。

具体的な到達目標は以下のとおりである。

3.2 探求プロセスの実践手法

第 2 章で示した「仮説の立案 → コード変更 → 実行 → 結果の観察 → 考察」のサイクルは、本章の 4 ステップのうち「仮説の立案」「結果の観察」「記録と整理」を 1 反復に圧縮したものに相当する。本章では、これを複数反復にわたって設計・記録するための枠組みとして 4 ステップを用いる。

探求プロセスの概要

探求は以下の 4 つのステップで構成される。

  1. 探求対象の特定:実装された Python プログラムの確認などを通して、調整や変更が可能な部分を特定する
  2. 仮説の立案:変更による影響を予測する
  3. 結果の観察:仮説検証に適した方法で結果を確認する
  4. 記録と整理:探求結果を整理し、次の探求に活用する

具体例:オープンボキャブラリ型物体検出を用いた探求

ここで取り上げるオープンボキャブラリ型物体検出(Open-Vocabulary Object Detection, OVD)は、4 ステップを具体的にイメージするための題材であり、本ガイドの範囲では実装までは行わない(実装には別途、専用モデルとデータセットの準備が必要となる)。読者は、第 2 章で扱った線形回帰の探求と同じ枠組みが、より大規模な研究テーマにも適用できることを確認する目的で読み進める。なお、文中の AP(Average Precision、平均適合率)は物体検出の評価指標であり、検出スコアの閾値を変えながら適合率(検出結果のうち正解の割合)と再現率(正解のうち検出できた割合)の関係をとり、その曲線下面積に基づいて算出される。COCO・LVIS は物体検出で広く用いられるベンチマークデータセット(評価用の標準データセット)、CLIP は画像とテキストを同じ埋め込み空間(数値ベクトル空間)で扱う視覚言語モデルである。

OVD は、事前に定義されたカテゴリを超えて、任意のテキスト入力で記述された物体を検出する技術である。従来手法では訓練時に使用した限定的なカテゴリ(例:COCO データセットの 80 クラス)のみを検出できたが、OVD では訓練時に使用したクラス(ベースクラス)に加え、訓練時に出現しないクラス(ノベルクラス)に対してもゼロショット検出(再学習なしでの検出)が可能である。この技術は、事前学習済みの視覚言語モデル(例:CLIP)を活用することで、視覚情報とテキスト記述を統合した物体検出を実現する。新しい物体カテゴリに対してモデルの再学習を必要とせず、テキストプロンプトによる柔軟な検索条件指定が可能である。

この技術を題材として、探求プロセスの各ステップを以下に示す。なお、プログラム中ではテキストプロンプトは英語の単語または文で指定する。

1. 探求対象の特定

調整や変更が可能な部分を特定する。

2. 仮説の立案

変更による影響を予測し、検証可能な仮説を設定する。

3. 結果の観察

仮説検証に適した方法で結果を確認する。

4. 記録と整理

探求結果を整理し、次の探求に活用する。

探求から研究への発展

探求プロセスの発展段階として、プログラム実験を学術的研究に展開することができる。発展の段階は以下のとおりである。

  1. プログラム実験段階:個別のプログラムパラメータを変更し、結果を観察する
  2. パターン発見段階:複数の実験結果から規則性や傾向を特定する
  3. 仮説形成段階:観察されたパターンの背景にある原理を推測する
  4. 体系的検証段階:仮説を検証するための計画的な実験を設計する
  5. 学術的位置づけ段階:既存の学術研究との関連性を明確化する

探求成果を研究として位置づける際の指針は以下のとおりである。

3.3 探求における柔軟な思考

探求プロセスでは、ある方法でうまくいかなかった場合に、別の方法で目的達成を試みる。ある方法の精度が低い場合でも、それは失敗ではなく、モデルの特性や限界を理解するための発見となりうる。

たとえば、OVD の探求において「抽象的記述の方が具体的記述より検出精度が高い」という予想に反する結果が得られたとする。この結果は、視覚言語モデルが視覚特徴と言語表現をどのように関連付けているかについての知見を与える。期待どおりでない結果からも、技術の限界、適用条件、改善の方向性などの知見を得ることができる。

3.4 研究計画の立案

研究計画の立案は、探求を進めるための準備段階である。自分の技術レベルや利用可能なリソースで解決可能な課題を設定し、現実的な目標設定を行う。

研究テーマの選定

研究目標の設定

目標設定においては、以下の点を確認する。

目標の階層化として、最終目標までを段階的に達成できる中間目標を設定する。これにより、進捗を確認しながら進めることができる。

研究手法の選択

研究目標に適した手法を選択し、その手法を習得するための学習計画も含める。具体的な取り組み内容は以下のとおりである。

研究計画の作成と共有

研究計画を文書化することで、研究の方向性を明確にし、指導教員や同僚との議論に役立てることができる。学期の中盤など適切な時期に仲間や教員と共有し、意見を求める。文書には以下の構成を含める。

再現性の確保

研究の信頼性を担保するために、再現性の確保が必要である。実験環境(ソフトウェアのバージョン、ハードウェア仕様)を詳細に記録し、他の研究者が同じ条件で実験を再現できるようにする。また、関連する学術論文を調査して内容を整理し、自分の手法と既存手法の違いを説明できるようにしておく。

研究倫理の遵守

他者の研究成果を適切に引用し、実験データの捏造や改ざんを行わないことは、研究者としての基本的な責務である。

成果発表の計画

研究成果の発表形式には、ゼミ発表、卒業研究発表、学会発表(オプション)等がある。発表内容は、背景と目的、手法、結果、考察、結論の流れで構成する。

スケジュール管理とリスク対策

研究期間を複数の段階に分割し、スケジュールには余裕を持たせる。使用する技術やツールが期待どおりに動作しない可能性を考慮し、代替手法を想定しておく。

研究計画は固定的なものではなく、研究の進行とともに修正していく。

次のステップへ

統合開発環境と AI の支援により、プログラムの作成、バグの解決、機能変更などを効率的に行う。

【サイト内の関連ページ】