最初のモデルの作成


fast.ai最初のモデルの作成


一番簡単に最初のモデルになりたいです.
1つ目のパターンは猫と犬を分類するパターンです.
  • 猫、犬のイメージデータセット
  • を読み込みます
  • プリラーニングモデル読み込み
  • 回転独学微調整モデル
  • モデルの構成

    from fastai.vision.all import *
    
    path = untar_data(URLs.PETS)/'images'
    
    def is_cat(x): return x[0].isupper()
    dls = ImageDataLoaders.from_name_func(
        path, get_image_files(path), valid_pct=0.2, seed=42,
        label_func=is_cat, item_tfms=Resize(224))
        
    learn = cnn_learner(dls, resnet34, metrics=error_rate)
    learn.fine_tune(1)
    
    最初の文章はfastaiの構文で、様々な画像処理モデルを生成するために必要な関数とクラスを読み込みます.
    第2の文章はfastaiのデータセット収集から猫、犬のデータセットを読み込み(ダウンロード)、解凍し、抽出した位置をpathオブジェクトに戻す.
    3番目の記事は、データセットのタイプを教え、画像データをfastaiモデルに入力できるように構造を設定するコードです.
    is cat関数は、ファイルの最初の文字が大文字と小文字でマークされているかどうかを示す関数です.
    データ型を表すために、画像、テキストなどの単語をDataLoaderの前に付けます.
    tfmsはtransform(変形)の略で、item tfmsとbatch tfmsの2種類がある.
    item tfmsは個別データに適したバリエーションであり、batch tfmsはGPUが導入中に迅速に処理するバリエーションである.
    224は通常のピクセルサイズで、自由に設定できます.
    valid pct=0.2は、20%のデータを検証に単独で使用するコードです.
    seed=42は、コードを実行するたびに同じランダムにデータセットを整理するためにシード値を固定します.
    最後の行のコードは画像分野で広く使われているCNNモデルを生成する.使用するデータセットとモデルのタイプと評価指標を設定します.
    ここではResNetという構造モデルを用いた.様々な場合、特に画像に関連する場合、迅速かつ正確に動作するモデル.後ろの数字は階層の数字で、resnet 34は34の階層があります.
    ResNetという予習モデルを使用すると、cnn learnerは、追加したデータセットに基づいて最後の階層(ヘッダ)を更新します.
    このような予め学習されたパターンを遷移学習と呼ぶ.
    最後の記事では,先ほど構築した画像データセットdlsを予習モデルresnet 34に適用し,fine tune法により微調整した.

    利用モデル(画像予測)


    学習したモデルを通じて、新しいイメージが猫なのか犬なのかを予測します.
    uploader = widgets.FileUpload()
    uploader

    アップロードWidgetを読み込み、そのWidgetをクリックして画像をアップロードします.
    img = PILImage.create(uploader.data[0])
    is_cat,_,probs = learn4.predict(img)
    print(f"Is this a cat?: {is_cat}.")
    print(f"Probability it's a cat: {probs[1].item():.6f}")
    
    Is this a cat?: True.
    Probability it's a cat: 0.988204
    アップロードした画像をPILIMAGEクラスで読み込み、予測方法で予測します.(下)

    モデル学習(内部)


    第1層


    -対角線、水平線、垂直線の様々なグラデーション表示

    だいにそう


    -エッジ、直線、円などの簡単なアレイ検出.

    第3層


    -ホイール、テキスト、花びらなどの上位レベルの意味要素

    イメージモデルの拡張性


    オーディオファイルの画像化(スペクトル)



    マウスで画像を移動



    マルウェア構成のイメージ



    コアサマリー


    機械学習は、直接プログラムを記述するのではなく、データからプログラムを学習し、作成します.
    深さ学習は機械学習の分野であり,複数の階層からなるニューラルネットワークを用いる.
    画像を分類するには、寸法データが必要です.新しい画像が何であるかを予測するモデルを作成するプログラム!
    モデルを構築するプロセスは、構造/アーキテクチャの選択から開始します.モデルを学習するプロセスは、データをよりよく動作させる特定のパラメータ値(重み)を探すプロセスです.
    モデルの予測能力は、予測性能を測定する損失関数を定義する必要があります.
    学習速度を速めるには、他のデータで学習した事前に学習したモデルを使用して、私たちのデータをさらに学習する微調整の過程を経なければなりません.
    モデルは見られない将来のデータを予測する必要があるので,一般化する.学習内容におぼれているだけでは、新しいデータをうまく予測できないので、過剰適合と呼ばれています.
    適切でないように、データは常に学習と検証データセットに分けなければならない.
    評価指標は,モデルが検証に用いたデータの中でどれだけ予測されているかを理解させる手段である.学習中に、学習データセットのすべてのデータがモデルに一度に入力される時点を、エポックと呼ぶ.