「オートエンコーダーメソッドを使用したTensorFlowとKerasにおける異常検知」
Anomaly Detection in TensorFlow and Keras using Autoencoder Method
ノイズ除去、次元削減、異常検出などにおける最先端の教師なし学習手法
これまで共有してきたTensorFlowとニューラルネットワークに関するすべてのチュートリアルは教師あり学習についてでした。今回は教師なし学習技術であるオートエンコーダについて説明します。簡単に言えば、オートエンコーダは入力データを圧縮し、エンコード・再構築することでデータのノイズを除去します。これにより、オートエンコーダはデータの次元削減やノイズの除去を行い、入力データの真の焦点に集中できるようにします。
ここで紹介したオートエンコーダーの仕組みからわかるように、複数のプロセスが必要です。
- まず、入力データを圧縮するモデルであるエンコーダーモデルが必要です。
- 次に、圧縮されたデータを元の入力データにできるだけ近づける再構築モデルであるデコーダーモデルが必要です。
このプロセスでは、ノイズを除去し、次元削減し、入力データをクリアにすることができます。
このチュートリアルでは、オートエンコーダーがどのように動作するかを具体的な例を用いて詳しく説明します。
- 「Cを使用してLLMsを最適化し、GPT、Lama、Whisperを自分のラップトップで実行する」
- 「ニューラルネットワークのプログラミング方法」
- 「Python初心者のための独自のPythonパッケージの作成と公開」
この例では、deep_weedsというパブリックデータセット(Apache License 2.0)を使用することにしました。
import tensorflow as tfimport tensorflow_datasets as tfdsds = tfds.load('deep_weeds', split='train', shuffle_files=True)
データの準備
この教師なし異常検出の例では、データセットを準備する必要があります。メインクラスとして1つのクラスを選び、それを有効なクラスとして扱います。また、別のクラスからいくつかのデータを異常として追加します。その後、モデルを開発して、それらの異常データを見つけることができるかどうかを確認します。
有効なクラスとしてクラス5を選び、異常としてクラス1を選びました。以下のコードブロックでは、まずクラス5と1のすべてのデータを取得し、画像とそれに対応するラベルのリストを作成しています。
import numpy as npimages_main = []images_anomaly = []labels_main= []labels_anomaly = []ds = ds.prefetch(tf.data.AUTOTUNE)for example in ds…
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles