No Code, No Life

データサイエンティストを目指すしがないエンジニアのブログ

Day 55 「共有すること」がいかに大事か

1. 画像処理

  • Segmentationの評価軸 IoUについて学習.
    • torchmetricsでは、今はjaccard indexというメソッドに変更されている.
    • Jaccard Indexについては、refにも記載がないややこしじ扱い方がある...これもQiitaにまとめて発信しておこう.
      • torchmetrics.functional.jaccard_indexが一番使いやすい
    • UNetのバックボーンをResnet18に変更し、初期重みをimagenet, epoch 30で学習させた → あまりIoU上がらず. (0.61 → 0.58)
  • Data augmentationについて改めて学習.

    • albumentationというライブラリを用いることで、mask, image両方に同じような拡張が施せる.
    • PyTorchのエコシステムがいかに広いかを改めて実感.
  • 演習問題として、犬/猫と背景の2クラスを分類するセグメンテーションに挑戦. Resnet18をバックボーンとしたUNet構築により、IoUとしては0.88近くを達成.

    • そもそも2クラスのため、IoUは講義中に扱った12クラス分類よりも高めに出やすい. そのため、特に工夫なくepoch 30程度学習させて0.88近くの高スコアを達成した.
    • セグメンテーション結果としても、下図の通りで、実用面で問題なさそうなレベル.
    • やはり、クラス数が少ないとその分IoUも上がる (自明). 実用に問題ないレベルで、どこまでクラス数をおさえ、パラメタを抑えるか.
  • Object Detection

    • trialとしてretinanetを使用.
    • reference見てると、姿勢推定に関するモデルもあった. これ、使えないかなあ

2. 自然言語処理

  • 前処理について再度復習. 呼吸をするかのごとく、さっと前処理できるようにしたい. (クリーニング→正規化→形態素解析→基本形→ストップワードの除去...)

  • 正規表現について学習

    • 繰り返しの表現について、書き方はわかったが、どうしても「繰り返されている文字列を1回だけの記載に直す」方法が分からない.

思ったこと

  • 睡眠は大事. 自分の場合、眠いと、「もうひと踏ん張り」ができなくなる.
  • 共有されていない知識や発見は、積極的に発信しよう. そのためのWEB.