高周波エンジニアのためのAI・機械学習入門(GPU編25)異常検知として、良品のみで学習して不良品を見つけるオートエンコーダー(Deep Autoencoder)をPythonとKerasでバンドパスフィルタを題材にやってみる。
Interface誌を読んでいると、オートエンコーダを使うと良品だけで学習して異常検知できることを知った。
さらにKerasブログで詳しく書いてくれている。
https://blog.keras.io/building-autoencoders-in-keras.html
そこでバンドパスフィルタを題材にしてみよう。
事例はこのとき使ったもの。
使うデータはこんな感じになる。
ではオートエンコーダーを書いてみよう。
コードはこんな感じで。
import os
os.environ["KERAS_BACKEND"] = "jax"
import keras
import numpy as np
import matplotlib.pyplot as plt
from jax import config
config.update("jax_enable_x64", False)
plt.rcParams['font.family'] = 'Noto Sans CJK JP'
data_label = np.load("G_NG.npz")
data = data_label["data"]
label = data_label["label"]
# GとNGを分割
g_data = data[label[:, 0] == 1]
ng_data = data[label[:, 0] == 0]
# Deep Autoencoder
inputs = keras.Input(shape=(200, 5))
x = keras.layers.Flatten()(inputs)
encoded = keras.layers.Dense(256, activation='relu')(x)
encoded = keras.layers.Dense(128, activation='relu')(encoded)
encoded = keras.layers.Dense(64, activation='relu')(encoded)
encoded = keras.layers.Dense(32, activation='relu')(encoded)
decoded = keras.layers.Dense(64, activation='relu')(encoded)
decoded = keras.layers.Dense(128, activation='relu')(decoded)
decoded = keras.layers.Dense(256, activation='relu')(decoded)
decoded = keras.layers.Dense(200 * 5, activation='linear')(decoded)
outputs = keras.layers.Reshape((200, 5))(decoded)
model = keras.Model(inputs=inputs, outputs=outputs)
model.compile(loss = 'mean_squared_error' ,optimizer=keras.optimizers.Adam())
# 学習
epochs = 1000
keras.utils.set_random_seed(1)
history = model.fit(
g_data, g_data,
batch_size=128,
epochs=epochs,
validation_split=0.15,
verbose=1
)
# 予測
g_pred = model.predict(g_data)
ng_pred = model.predict(ng_data)
# MSEの計算
loss = keras.losses.MeanSquaredError(reduction = "none")
# GとNGのMSEを計算
ng_accuracy = loss(ng_data, ng_pred).mean(axis=1)
g_accuracy = loss(g_data, g_pred).mean(axis=1)[:ng_accuracy.shape[0]]
# MSEの分布の可視化
plt.figure(figsize=(10, 6))
plt.hist(np.log10(ng_accuracy), bins=50, alpha=0.5, label="NG")
plt.hist(np.log10(g_accuracy), bins=50, alpha=0.5, label="G")
plt.legend()
plt.xlabel("log10(MSE)")
plt.ylabel("Frequency")
plt.title("Distribution of MSE for G and NG")
plt.show()
|
良品のみで学習して、不良品を予測した時の誤差を指標にする。ヒストグラムをプロットしたものがこちら。
ちょっと重なっている部分があるが、なるほど結構分離されている。使えるかもしれない。
次は畳み込みオートエンコーダをやってみよう。
« RF Weekly Digest (Gemini 3.1 Pro・Google AI Studio BuildによるAIで高周波・RF情報の週刊まとめアプリ)2026/5/17-5/24 | トップページ | 高周波・RFニュース 2026年5月26日 iFixitがTrump Phoneは中身HTC U24 Proと推定、QorvoがIMS2026でRFソリューション出展、CyntecがPCIMでパワーインダクタ等を出展、RCRTechが防衛通信に関するレポート発行など »
「パソコン・インターネット」カテゴリの記事
- RF Weekly Digest (Codexで作ったOllama経由のgemma4-26B-A4B QAT、DuckDuckGo Searchを使った高周波・RF情報の週刊まとめアプリ)2026/6/7-6/14(2026.06.14)
- ゼロから作るDeep Learning 6 LLM編を買った。めちゃくちゃわかりやすい。事後学習がこんなに重要とは知らなかった。KVキャッシュって何やってるか等も。Interface誌の7月号特集が作りながら学ぶTransformer/LLMなので一緒に読みながらだとより理解が深まる。(2026.06.11)
- Gemma 4 QATがOllama経由で使えるようになっていた。そこで今度はGoogle Antigravity(Gemini 3.5 Flash)にローカルLLMでRF情報一週間分まとめて日本語で要約するアプリ(gemma4-26B-A4B QAT、DuckDuckGo Search、Flask使用)を作ってもらう。画面デザインはこっちがいいな。(2026.06.15)
- Gemma 4 QATがOllama経由で使えるようになっていた。そこでCodex(GPT-5.5)に、これまでいまいちだったローカルLLMでRF情報一週間分まとめて日本語で要約するアプリ(gemma4-26B-A4B QAT、DuckDuckGo Search、Flask使用)を作ってもらうと相当いい出来で使えそう。(2026.06.10)
- RF Weekly Digest (Gemini 3.5 Flash・Google AI Studio BuildによるAIで高周波・RF情報の週刊まとめアプリ)2026/5/31-6/7(2026.06.07)
「学問・資格」カテゴリの記事
- 高周波・RFニュース 2026年6月17日 Ericsson Mobility Report June 2026発行・5G契約数は31億件、3GPPが最初の6G-RAN研究承認、Nordicが忘れ物タグのプロトタイプを発表、アンリツがソフトウェア無線ソリューション発表など(2026.06.17)
- 高周波・RFニュース 2026年6月16日 Microwave JournalにアンリツのTensor VNA解説記事、6G Worldで6GのRF設計の重要さ解説記事、3GPPのシンガポール総会の様子、GSAがプライベートモバイルネットワーク調査など(2026.06.16)
- RF Weekly Digest (Codexで作ったOllama経由のgemma4-26B-A4B QAT、DuckDuckGo Searchを使った高周波・RF情報の週刊まとめアプリ)2026/6/7-6/14(2026.06.14)
- FIFAワールドカップ2026で使われているボールTriondaにはカタールの時と同様にKinexonのUWBモジュール(ICはQorvo)と慣性センサが入っているが、カタールが中央につるされて入っている感じなのがボールの裏側に貼りつくかたちで入るようになった。FCCでチェック。(2026.06.14)
- 高周波・RFニュース 2026年6月12日 アンリツがAI対応のTensor VNA発表、Qualcommが5G NR NTN解説、iFixitがTrump phoneを分解・やっぱりHTC U24 Proとほぼ同じ、6G Worldの3GPPミーティング解説記事など(2026.06.12)
「日記・コラム・つぶやき」カテゴリの記事
- 高周波・RFニュース 2026年6月17日 Ericsson Mobility Report June 2026発行・5G契約数は31億件、3GPPが最初の6G-RAN研究承認、Nordicが忘れ物タグのプロトタイプを発表、アンリツがソフトウェア無線ソリューション発表など(2026.06.17)
- 高周波・RFニュース 2026年6月16日 Microwave JournalにアンリツのTensor VNA解説記事、6G Worldで6GのRF設計の重要さ解説記事、3GPPのシンガポール総会の様子、GSAがプライベートモバイルネットワーク調査など(2026.06.16)
- RF Weekly Digest (Codexで作ったOllama経由のgemma4-26B-A4B QAT、DuckDuckGo Searchを使った高周波・RF情報の週刊まとめアプリ)2026/6/7-6/14(2026.06.14)
- 高周波・RFニュース 2026年6月12日 アンリツがAI対応のTensor VNA発表、Qualcommが5G NR NTN解説、iFixitがTrump phoneを分解・やっぱりHTC U24 Proとほぼ同じ、6G Worldの3GPPミーティング解説記事など(2026.06.12)
- 高周波・RFニュース 2026年6月11日 QorvoがXバンドレーダ用フロントエンドモジュール発表、3GPPがRel.21のタイムライン発表、NI(Emerson)が雑音指数測定のウェビナー開催、MIPI A-PHYのSerDesが4社で相互運用性確認、Menlo Microが高信頼性ミリ波スイッチ発表など(2026.06.11)
« RF Weekly Digest (Gemini 3.1 Pro・Google AI Studio BuildによるAIで高周波・RF情報の週刊まとめアプリ)2026/5/17-5/24 | トップページ | 高周波・RFニュース 2026年5月26日 iFixitがTrump Phoneは中身HTC U24 Proと推定、QorvoがIMS2026でRFソリューション出展、CyntecがPCIMでパワーインダクタ等を出展、RCRTechが防衛通信に関するレポート発行など »




コメント