Skip to content

kkawa-trap/MLExpApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

機械学習体験アプリ

こちらは、.NET MAUI ベースの機械学習体験アプリです。 GUIベースで手軽にネットワーク構成を試すことができます。

詳しくは こちらのブログ記事 をご覧ください。

開発環境

  • Windows 11 Home
  • Visual Studio 2026

事前準備

ChatGPT によれば git clone して、Visual Studio で開くことによって、 必要なライブラリがインストールされるようです。 なお MAUI ベースのため、macOS でも使用できることを想定しています。 その場合は、libtorch-cpu-win-x64 といった Windows 向けのパッケージを、 macOS 向けのものに変更していただくと使えると思います(未検証です)。

使い方

アプリを開いていただいたあと、一般に次の手順で進めていただくとやりやすいと思います。

1. データセットの選択

「使用するデータセット」から使用するデータセットを選択してください。 現時点では

  • MNIST
  • CIFAR-10
  • FashionMNIST

から選択できます。

2. 構成される層の設定

ここで、ネットワークを構成していきます。

まず初期時点では、最初の画像の次元を1次元につぶす Flatten と、 最後の分類を行う線形層がすでに追加されています。 この二つを削除することはできません。

その他の層は「レイヤー追加」で層を追加できます。 現時点では

  • Conv2D
  • MaxPool2D
  • Linear

から追加できます。 なお、Conv2D と MaxPool2D は Flatten の直前、 Linear は最終層の後に追加されます。

なお、最終層を除く Conv2D, MaxPool2D, Linear の後ろには、 活性化関数を設定することができます。 現時点では

  • 活性化関数なし
  • ReLU
  • Sigmoid
  • Tanh

から設定できます。 最終層は活性化関数なしで固定されます。

3. 学習開始

学習エポック数を設定して、「学習開始」ボタンを押すと学習が始まります。 「上書き保存する」チェックボックスが Off の場合、 保存されるモデル名にはタイムスタンプが付与されます。 デフォルトでは <dataset名>.model.bin で保存されます。

なお、オプティマイザとしては AdamW を使用しています。 初期の学習率は 0.001 です。 スケジューラとして StepLR を採用しており、 これは1ステップごとに学習率を0.75倍ずつしていきます。 損失関数としては CrossEntropyLoss を使用しています。 そのため最終層の活性化関数がなしとなっています。 データセットについては、事前に画像の平均値や標準偏差で正規化されています。
学習ログは真ん中の列に表示されます。 上のグラフには、平均損失の推移が表示されます。 下のログエリアには、各バッチにおける損失や評価データに対応する正答率が表示されます。

4. 推論

評価データをランダムに選択し、それについて学習済みのモデルで実際に推論できます。 「画像をランダムに選択」ボタンを押すと、画像を閲覧できます。 これは学習前でも可能です。 モデル学習後、「推論」ボタンを押すと、各カテゴリの確率と正解が表示されます。 この確率は、全てのカテゴリに対する softmax を取得したのち100倍したものです。

ライセンス

MIT ライセンスの下で提供されます。詳しくはライセンスファイルをご覧ください。

About

機械学習のネットワーク設計を GUI ベースで手軽に行うためのアプリです。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages