どうも、たけとけたです。
からあげさんの新書をまた買ってしまいました!
ここ2ヶ月ほど仕事と家両方忙しいストレスフル状態だったのですが、逆に感極まってきてやり出しました。また三日坊主になるのか!?
本書の特徴
本書は、「画像認識」「自然言語処理」「画像生成」「エッジコンピューティング」とAIに関する幅広い技術を実践しながら学んでいけるものになっています。からあげさんのブログは読んでいるので、馴染みがあるものも多かったのですが、初学者でも実施しやすいように整理されてより読みやすかったです。
AIの理論に関する理解を深めつつ、実際にGoogle colaboratryを使ってブラウザのみで大部分が実践できるのがいいですね!実践できる内容も、「じゃんけんのグーチョキパーを識別する」「AIに文章を学習させて新しい文章を作る」「人の姿勢を推測する」など馴染みやすいテーマになっています。
本書に書かれているコードには一部誤植があるようで一部うまく動かないところもあるのですが、サポートサイトに全コードが上げてありコピペすれば解決する親切仕様です。
第二章「AIで画像認識」に挑戦
今回は第二章の「AIで画像認識してじゃんけんの画像分類に挑戦しました!
コードを写して動かしてみる
Google colaboratryを使ってできるので、追加で準備する必要はありません。学習のためも兼ねて最初は本書を見ながらポチポチやっていきます。
最初につまづいたのは、学習のためのKerasを使ったmodel作成です。
何回やっても、'Non type' is not callable.が出てくる。Tensorflowのバージョンを2.4.1から2.3.0に変える、backendを入れる、など右往左往していました。
model.compileかoptimizerが怪しそうだと見直したところ、metricのパラメータを入れるところで[]ではなく{}を使っていることが判明しました。パラメータを{}を使ったせいで辞書型で入れていたようです。初心者あるあるすぎる。(処置に1時間)
そのあとも、「,」「.」を間違えながらやってました。本を読みながらだとこの辺が見づらいです。
画像を学習させてみる
無事学習できたので、モデルの性能を見てみます。epochが上がるにつれてlossがさがっているといい学習ができているのですが、どれどれ。。。
あんまりうまくいっていない?
accuracy(精度)のグラフもこんな感じ。
精度も低いです。学習用データと検証用データの精度が同等で、精度が0.4なのでほとんど学習による成果が出てない。確率3分の1なので、目つぶってても当てられるのでは?
Tensorflowのバージョンが2.4.1になっていることが問題なのかなと小一時間バージョン変更に四苦八苦したんですが、結果としては、学習率LEARNING LATEの数値が0.001のところを0.01にしてしまっていました。大味で学習していたみたいです。
直した結果がこちら。
学習できてる。いい感じです。
分類結果をボックスチャートにしてみました。これ面白いですね。傾向としてチョキに判定するケースが多いモデルです。グーとパーと予測して間違うケースがなくなってます。
画像認識の正誤判定はうまくできなかったです。なんでか最後の画像しか綺麗に出ないんですよね、何が間違っているんだろうか?
リアルタイム画像分類デモに挑戦
学習したモデルを使って、リアルタイム画像検出に挑戦します。
Google colabでカメラを使う方法ですが、リンク先が本書のアドレスではうまく進まなかったのでからあげさんのgithubからデータのインポート先を探しました。ブラウザの問題なのかな、よくわからなかったです。
そのあとも、本書を読みながらコードを打ち込んでいたんですが、うまくいかなかったので最後はコピペしました。
結果としては、PCのカメラを使って画像分類ができました。(下の図はパーを認識しています)
グーはなかなか判定が合わなかったので試行錯誤しています。角度を変えたり、親指を中に入れるグーに変えたりしました。なんでかちょっと右に寄せたらグーと判定しやすくなりました。
チョキは割とうまく識別してくれるのですが、このように右側に寄せるとグー判定されたりします。
やってみた結果
結果として、初学者の僕でもじゃんけんの画像分類ができました!
まだ2章の半ばまでしかやってないですが、自分で動かすのはやっぱり楽しいですね。わからないところがあっても、サポートサイトのコードをコピペすれば動かせる親切仕様なのが良かったです。データのグラフにして何が起こっているかを確認しながら進める内容になっていて、機械学習のモデル作成の進め方を学べるいい本だと思います。実践が面白いので、技術の活用例を体験したい方には是非おすすめです!
注意点は、本書のコードではうまく動かないところが一部あるので(誤植?)実際に実施する際にはサポートサイトのコードを見た方がいいですね。
初学者だと写経でもつまづくので、動かなければ都度コードを比較しながらやってみると捗りますね。比較して間違い探しするようになってから変な部分でつまづく回数が減ってやりやすかったです。
テキスト比較サイトhttps://difff.jp/
(左は自分で写したコード、右はサポートサイトのコード)
まだ2章の半ばなので、画像分類の精度向上やTwitterのプロフィール生成もやってみようかなー。
ではでは!