[13日間]Brain腫瘍分類−輸送学習,Smallデータセット


※ Notification
本文は著者が理解した内容に基づいて書かれているため,誤りがある可能性がある.
间违ったところがあったら、伝言を残してください.私たちは修正します.

Intro


文章のテーマの形式を変えた.その日に学んだことを表す単語で書くようにしておくと、後で文章を探すときに便利になります.
今日はImageDataGeneratorからValidation generatorの作成方法を簡単に学び、Kglobleの質問に答えました.

Validation data generator


Kgloble問題に先立ってImageDataGeneratorによりValidationが作成された.
train_data_gen = ImageDataGenerator(rescale=1./255, 
                                    rotation_range=10, width_shift_range=0.1, 
                                    height_shift_range=0.1, shear_range=0.1, 
                                    zoom_range=0.1, horizontal_flip=True,
                                    validation_split=0.2)

validation_data_gen = ImageDataGenerator(rescale=1./255, validation_split=0.2)

test_data_gen = ImageDataGenerator(rescale=1./255)
まず、各ImageDataGeneratorを宣言し、ディレクトリからデータをロードします.

train_generator = train_data_gen.flow_from_directory(train_dir, batch_size=32, 
                                                color_mode='rgb', class_mode='binary',
                                                target_size=(IMG_WIDTH,IMG_HEIGHT),
                                                subset='training')

validation_generator = validation_data_gen.flow_from_directory(train_dir, batch_size=32, 
                                                color_mode='rgb', class_mode='binary',
                                                target_size=(IMG_WIDTH,IMG_HEIGHT),
                                                subset='validation')

test_generator = test_data_gen.flow_from_directory(test_dir, batch_size=32, 
                                              color_mode='rgb', class_mode='binary',
                                              target_size=(IMG_WIDTH,IMG_HEIGHT))
subsetは、trainingおよびvalidationとして指定される.

Kaggle - Brain tumor


Kglobleデータの場合、Collabから直接データをダウンロードするにはコインが必要です.このプロセスは面倒なので、データをダウンロードしてグーグルドライブにアップロードして使用するように要求します.以前はコインを設定していたのでそのまま進めておけばよかったのですが、今日はなぜかKaggle notebookを使いたかったので使いましたが、結果的に不便でした.
データをダウンロードする手間はありませんが、入力ユニットが画面の一番下と同じ単語を一度に変更するショートカットキーを使用できないので不便です.
ショートカットキーで検索すると出てきますが、入力ユニットが下に露出して符号化に不便です.だから次は直接実験室を使うことにしました.
https://www.kaggle.com/datasets/sartajbhuvaji/brain-tumor-classification-mri
Brain腫瘍の試合をして、彼は私にこの間学んだことに基づいて行わせて、もし問題が発生したら、発生した問題を考えさせました.
データセットImageDataGeneratorを使用し、20%のtrainデータセットを検証に使用します.ラベルは次のディレクトリで区切られているためです.しかし、これは大きな間違いです.
Transfer Learning(MobileNet)を行い,モデルを変換するとtrain accは95%に近づき,val accは深刻度まで低くtest accもtrainに及ばなかった.
簡単にMLP部分を設計したので、MLPのアーキテクチャ設計が間違っているのではないかと疑ったので、いろいろ変更しましたが、役に立たなかったです.原因を探しています.時間が終わったら、先に授業に行きます.
授業が終わってから自分で一周してやっと気づいたのですが、Brain tumor Datasetの場合、Train Dataの個数はlabelあたり1000個未満なのでValidationは意味がありません.そもそもないデータが半分に分かれているので、精度が良いとは限りません.
また、検証が使用されていなくても、trainとtestのデータがバランスよく分離されていないため、テストの数値はtrainよりもずっと低い.

Data mix-up


モデルが腫瘍をよりよく発見するためには、異なるデータに対しては、一般的にモデルをよくフィットさせて完成させる必要があるが、Train Data setにはA、B腫瘍しかなく、Test Data setにはC、D腫瘍しかないため、Train Data setを用いていくらよく勉強しても、Test Data setをうまく分類することはできない.
これらのデータからTrain AccouncyとTest AccouncyでInsightを得ることができ、Train Accouncyの学習成功率が99%に近いのにTest Accouncyがこのレベルに及ばない場合は、Train Data setとTest Data setが適切かどうかを考慮する必要があります.
この場合、Train DataSetとTest DataSetを確認する必要があり、医学や建築など分野の知識が必要なデータについては、データが正確に区分されているかどうかは分かりにくい.そのため、TrainとTestデータを統合してから、TrainとTestに分ける必要があります.
ビットのグラフは、ハイブリッドデータの前のグラフであり、次のグラフはハイブリッドデータの後のグラフである.

Insight


Brain Tumor Competition中に入手可能なInsight
  • ファイル構造はlabelディレクトリ形式を採用するため、ImageDataGenerator(ImageDataGeneratorベース)
  • を使用する.
  • の合計データ量はラベル1個当たり1000個未満であるため、転送学習(転送学習の使用状況に応じて)
  • を考慮する必要がある.
  • 検証の精度とテストの精度の比較→大まかな推定が似ていれば、Maxの精度はあまり高くないと考えられる
  • Trainデータは学習が良いことを示しているが、テスト結果の値が悪いのは過剰なフィッティングの結果であり、
  • を処理する必要がある.
  • 医学、建築データは、可視化表示結果がどのようなデータを処理する必要があるか分からないため、TrainとTestデータを混合して使用することで、オーバーフィット
  • を低減する.

    Note


    文章を整理している間にTrain Testが混ざっていたのですが、あまりフィットしすぎてTrain Testが混ざっていたのであれば、他のデータにもフィットしていた場合、混ざったDatasetでいいのではないでしょうか.考えてみると、普通はそうはしないので、探している間に整理しておきました.
    他のデータセットではlabelを判断できるので確認や処理は可能ですが、医学や建築などの分野の知識を求めるデータではそうするのは容易ではないので、TrainとTestを混ぜ合わせます.

    Outro


    授業中は内容が多くなかったので、少しだけ理解すればいいと思っていましたが、整理して、その点から多くのヒントを得ました.
    データの個数を常に確認する習慣をつけましょう.