0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ただただアウトプットを癖付けるためのAdvent Calendar 2024

Day 14

生物物理屋がNishikaの初心者向け課題に挑戦してみた話

Last updated at Posted at 2024-12-13

はじめに

この記事は「ただただアウトプットを癖付けるための Advent Calendar 2024」に投稿した記事です。

最初の記事にも書いた通り、私は生物物理の実験を専門にしている研究者です。
最近はデータ解析のため機械学習のコード開発も行っており、幸いにもその成果がNeurIPSに採択されました

以前の記事で、SIGNATEの初心者向け課題に挑戦した話をしました。
今回はまた別の競技プログラミングサービス、Nishikaに挑戦してみました。

関連記事

前の記事「NeurIPS著者が今更JAXを使ってみた話

次の記事「【生物物理屋による論文紹介】マルチモーダル言語モデルによるマインクラフト学習 JARVIS-1

Nishika

Nishikaは、競技プログラミングのコンペティションを提供しているサービスです。
こちらからアクセスできます。
今回は、練習問題のなかから、日本画の顔分類問題に挑戦してみました。

問題概要

日本画の顔分類問題は、日本画の顔画像を分類する問題です。
学習データは、日本画の顔画像とそのラベルが与えられます。このラベルは、画像のファイル名と番号の組み合わせを記したcsvファイルで与えられます。
テストデータは、日本画の顔画像が与えられ、その画像がどのラベルに分類されるかを予測する問題です。
ラベルというのは、性別と階級の組み合わせです。
これらのほかに、提出用のサンプルファイルが与えられます。
このサンプルファイルもまた、画像のファイル名と番号の組み合わせを記したcsvファイルです。
この形式で、提出用のファイルを作成し、提出します。

解法

今回は、画像分類問題を解くために、PyTorchを使いました。
なかでも、torchvisionを使って、画像分類のためのモデルを構築しました。
今回も練習問題ということでさわりだけですが、やったことは以下の通りです。

  • 画像データとラベルを読み込むデータローダーを作成 (torchvision.datasets)
  • 128x128にリサイズし、正規化するための前処理を定義 (torchvision.transforms)
  • データセットを訓練用と検証用に分割 (torch.utils.data.random_split)
  • ラベルの個数を数え、クラス数を取得 (dataset.img_labels)
  • ResNet18の最終層の次元だけ変えたモデルを定義 (torchvision.models)
  • 損失関数と最適化手法を定義 (torch.nn.CrossEntropyLoss, torch.optim.Adam)
  • 学習
  • 画像データのみを読み込むデータローダーを作成 (torchvision.datasets)
  • 検証用データで評価
  • テストデータで予測
  • 提出用のcsvファイルを作成

最初に作ったデータローダーがラベルを必要とする構成になってしまっていたため、テストデータ用に別途データローダーを作成する必要が生じてしまいました。ここは改善点ですね。
今回はCPUで学習したので、10エポックでも10分ほどかかりました。
これだけでも、検証用データで0.77程度の精度が出ました。
提出後のスコアでも、0.765という評価値が出ていました。
ランキングを見ると0.9以上のスコアが出ている方もいらっしゃいましたが、パッとやったにしてはまずまずの結果だと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?