五郎島金時の形をAIで5分類に判定することに成功、まずは正解率81%をだすことができた

この記事は約5分で読めます。

fuseikaiimg200.jpgここ数日取り組んでいた五郎島金時の形を判定するAIがうまく稼働した。途中で発生するエラーを何度も何度も原因を調べ修正しながらだった。自分自身の学習効率は悪かったが、AIには学習させることができた。
5種類各200程度づつに分類された合計1018の画像から、判定用を100、学習用を残りの918として実行した。その結果、100の画像のうち81は正しく判定された。残りの19の不正解の画像をみてさらに正解率を上げるためのチューニングも検討したい。

五郎島金時の形をAIで5分類に判定することに成功

▼今回のAIの設定条件
aigorojima03.jpg
この成果は後日「自分たちのICT・IOT・AIを見つけよう!」で発表した。

判定画像でレインボーと呼ばれる虹色の部分は、判定に強く貢献した部分を示している。このレインボー画像を重視する理由は、AIがどの部分を形を判定に使っているかという重みがわかることと、まったく違う箇所にレインボーがつく場合はAIがうまく稼働していないかもしれないという判断がしやすいからである。

▼不正解の画像19点
不正解の画像

▼正解の画像(81点のうち8点)
正解の画像

ひとまず、目標だった判定画像にたどり着けたので達成感がある。

IMG_1985-ANIMATION.gif

▼学習しているところ(合計4エポック回した結果)

epoch4kai.jpg

▼ロス関数のグラフ
ylim13.jpg

ロス関数では縦軸の値がもっとも低く安定している横軸の値を選ぶとよいとされている。このグラフでは「10のマイナス自乗」のところがよさそうで、これは目論見通りだった。

▼学習率を計算しているところ

▼ロス関数とacc(正解率)のグラフ
lossacc.jpg

エポック回数が多いほど正解率は上昇する傾向がある。
このあともう4エポック回してみたが、あまり変化がでなかったので、あらためて取り組んで見ることとにする。

seikairitu.jpg

今回の正解率は81%と表示されている。

さて、今回の五郎島金時のAIでは、データセットと学習用のデータリストを作成することがけっこうたいへんだった。

パイソンでリストを作成する

▼ファイルリストとラベルの作成
gorojimadataset.jpg

ファイルリストとラベルリストの作成には以下のことに注意した。

  • zenkei_ai パッケージで提供する data_generator は、以下の2種類のリストを準備すれば使える
  • 画像のファイルのリスト
  • その画像の分類されたクラス(整数)のリスト
  • 犬猫分類については2種類の分類なのでクラスは 0 か 1 となるが、五郎島金時では5つのクラスなので、0,1,2,3,4となる。
  • 5つのクラスは以下のように設定する。
    shuu-mijikate(秀短手):4
    shuu-nagate(秀長手):3
    marushuu-mijikate(○秀短手):2
    marushuu-nagate(○秀長手):1
    ryou(良):0

5つのクラスに分類するのだが、必要なデータセットのファイルは2つである。

▼学習用と判定用のデータセット
dataset.jpg

datasetketugo2.jpg

datasetketugo.jpg

感想

やっとここまでたどり着いた。AIの学習に取り組み初めたのが今年の7月から。犬猫の画像分析をベースにしてさつまいもの形を分析しようと思いたち、約3ヶ月かかったことになる。情報技術者でない私がここまでやるのはけっこうたいへんだった。楽しみながら取り組んできたとはいえ、初めて体験することが多くてなれるのに時間がかかった。
ともあれ、最低限のゴールにたどり着けることができてほっとしている。

次の課題

いちおうの判定結果がでたが正解率81%だとまだまだ低い。95%くらいを目標にチューニングを進めたいと考えている。

そのための対策のひとつとして、学習する画像をもう一度見直してみたい。

五郎島金時の分類は、「秀」、「優(○秀)」、「良」というように形が美しい順に評価されている。しかし、立体であるため、ある角度から見ると「秀」でも、違う角度から見ると「良」のように見える場合もある。そこで、撮影された写真であらためて「秀」、「優(○秀)」、「良」というように分類してはどうかなと考えている。判定は重要なので、ちゃんとした農家でなければできないので、この分類に関してはかわにさんにお願いした。

エンジニアの立場なら「写真のせいにするんじゃない。もっと技術で解決できる方法を模索すべきた」という指摘もあるだろう。たしかに、エンジニアであればもっともな意見で、それは技術者として立派な志だと感じる。

しかし、遠田はエンジニアではない。経営コンサルタントである。

エンジニアの視点も大事だが、この場合はユーザーである農家の視点も大事。そもそもなんのためにAI分析に興味をもったのかということである。経営的に最適解が出しやすい効率的な努力の方向を優先したい。

最適解がだしやすい方法だと自分が考えたのは、入力写真の最適化(よいデータセットを用意すること)が有効だということである。農家の立場ならば、AIチューニングより画像をきちんと整理することのほうが自分でコントロール可能であり、見える化しやすい領域である。そこを整備しようとすることはその意味ではやりやすいはずである。むしろエンジニアでないからこそ、違うアプローチをとってもいいと思う。

そうはいっても技術面でもまだまだやるべきことがある。単にエポック数を増やすだけではなく、用意された画像を角度を変えたり裏返したりして、コンピュータに学習させる枚数を増やすことも有効かなと考えている。この件については、AI学習のセミナー講師である市來健吾氏に相談するつもりである。とくに、市來健吾氏にはできの悪い生徒である遠田に対し、本当にまじめに取り組むよう工夫して教えてくれた神のような存在である。あらためてここに感謝の意を表したい。ありがとう、市來さん。