11
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PySAMACT向けAPIコーディング つまづき紹介

11
Last updated at Posted at 2026-06-09

ご挨拶

初めまして、メイビスデザインの Jin です。
Qiita初心者ですので、不躾なところがあるかもしれません。あらかじめご了承ください。

概要

今回は、GitHubに登録している回帰タスク用のサンプル SampleScenarioReg.ipynb をベースに試行した際に、つまずいたポイントを書きます。

基本的には、上記のサンプルを生成AIに読み込ませて「こうしたい」と指示すれば、それなりに推論できるコードは出てきます。
APIの詳細は SAMACT Framework documentation を参照してください。

また、ここで詳しく説明しない内容(MinMaxScalingなど)は、他の方の記事でも学べるので、気になる方は調べてみてください。


つまづき①:正規化(MinMaxScaling)

サンプル SampleScenarioReg.ipynb では、MinMaxScalingによる正規化を行っています。

私がつまずいたのは、学習データ用と推論データ用で別々にインスタンスを作ってしまった点です。

「なんか推論結果がおかしいな…」と思い、@nhnhnh さんにアドバイスを求めたところ、ここが原因でした。

当然といえば当然ですが、
スケーラーが異なると、同じ値でも正規化結果が変わってしまいます。

つまり、

  • 学習時のスケーラー
  • 推論時のスケーラー

は同じものを使う必要があります。

修正後は正常な結果が出るようになりました。

以下はOK例とNG例です。

OK:学習用と推論用のスケーラーが同じもの

# データX用スケーラー
scaler_X = MinMaxScaler()
X_train_scaled = scaler_X.fit_transform(X_train_raw)
 :
X_pred_scaled = scaler_X.transform(X_pred_raw) # 学習済みスケーラー使用

NG:学習用と推論用が別々にインスタンスされている

# 学習用スケーラー
scaler_X_train = MinMaxScaler()
X_train_scaled = scaler_X_train.fit_transform(X_train_raw)
 :
#推論用スケーラー
scaler_X_pred = MinMaxScaler()
X_pred_scaled = scaler_X_pred.fit_transform(X_pred_raw)

なぜ、SAMACTではMinMaxScaler?
スパイクエンコーディングが MinMaxScaler と相性がよいこともあり、
SAMACT(SNN:Spiking Neural Network)では、MinMaxScaling を推奨しています。
また、SAMACTの学習メソッドである Fit() に指定する説明変数の範囲は 0-1の範囲のみを許可しているという理由もあります。
詳細は APIドキュメント を参照ください。


つまづき②:学習回数(Epoch)

サンプルにあるEpochは学習回数です。
当たり前ですが、Epochを増やすと学習時間も増えます。
試しに大きめの値を設定してみたところ、なかなか終わらず、途中で止めたことがあります…(^^;
体験的には、まずは小さい値から試すことをお勧めします。

ちなみに、Copilotに適当に吐かせたサンプルだと、epoch=50 で出してきました。
これは、ケースによっては多い寄りになる恐れもあります。皆さんもお気を付けください。
image.png


まとめ

実際に触ってみると、精度調整以前に「設定ミス」でハマることがあると感じました。
特に前処理(正規化)は重要なので注意が必要です。


リンク集

リソース URL
GitHub(サンプル・ドキュメント・フォーラム) https://github.com/maviss-design/SAMACT
PyPI(パッケージ) https://pypi.org/project/samact/
APIドキュメント https://maviss-design.github.io/SAMACT/
弊社Webサイト https://maviss-design.com/
お問い合わせ https://maviss-design.com/contact/
Qiita記事:オンチップ学習可能なエンドポイントAI IPのPythonシミュレータを公開しました https://qiita.com/nhnhnh/items/243d9adbd4e79c44ca29

ライセンス

AGPLv3 を採用しています。研究・検証目的での利用を歓迎しますが、商用利用や量産用途をご検討の場合は別途お問い合わせください。

11
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?