2020-08-13はじめにポケモンについて何となく知っている人向けの記事です(デジモンは知らなくてOK)3月ごろにポケモンたかさおじさんが集計したアンケートの分析をお手伝いしたところ、アンケートの自由記述回答の6353件中、155件もデジモンについて言及するコメントがあった。「もはやポケモンじゃない...。昔のデザインに戻ってほしいなぁ...。「主観ですが、伝説のポケモンが角張った印象で、デジモンのような印象を受ける。「全体的に毛がなさそうなツルッとしたフォルムの子達が増えた気がします。「ダイパまでのデザインがポケモンっぽいデザイン。それ以降はデジモンみたいな雰囲気。私は幼少期からポケモンには触れてきたが、デジモンにはあまり縁がなかったため、デジモンと聞くと友人がカラオケで歌っていたButter-Flyとか、細田守が監督をやっていた「ぼくらのウォーゲーム!」のイメージが強く、デジモンのことを詳しくは知らないが、どうやら最近のポケモンはデジモンっぽいらしいポケモンのデザインについて、「デジモン」についての言及のある回答https://docs.google.com/spreadsheets/d/1FZFh8Mfa3-CU-qeFMGtZ9xByxbJ9wMj2mSEJDzV-tiQ/edit#gid=1753266897ポケモンたかさおじさんの「ポケモンとデジモン」とデジモンに関する記事https://pkmnheight.blogspot.com/2020/07/7.htmlポケモンとは?知らない方は、ぜひ以下の記事をご覧ください。ここまで詳しく、調べ尽くした記事はありません。わからなかった方は、ピカチュウとかポケモンGOがポケモンだと思ってもらえば多分大丈夫です。ポケモンらしさ-3_デザイン史〜初代開発史編http://pkmnheight.blogspot.com/2020/04/301.htmlデジモンとは?デジモンとは、デジタルモンスターの略称であり、ポケモンの誕生より1年遅い1997年に初登場したバンダイの携帯育成ゲームの商品群である。1996年に大ヒットした同じくバンダイのたまごっちを、育成要素だけでなく通信やバトルといった面に広げたものである。ポケモンのゲームが主に任天堂の携帯ゲーム機で発売されていたのに対し、デジモンは据え置きゲーム機が主流となっている。絵柄や使われている色。キャラクターの頭身数やデザインの複雑さなど、両者は大きく異なっている。いうことなのだろうか?こんな実験を考えてみた。「へえ・・・これが今のポケモンなんだ~。うわっ!全然知らないやつバッカ!!!ポケモンって変わっちゃったんだな~~~~。金銀までしか知らないんだよね。今のポケモンってデジモンっぽくね???」という方々の認識を再現するために、以下のような実験を行う。実験:1999年発売のポケットモンスター金銀までの『昔のポケモン』と、デジモンをランダムに分類器を学習させた後、ルビー・サファイアから最新作までのポケモンと、残りのデジモンを分類させ、結果を集計。これを2000回繰り返し、誤分類率を集計する実験に使用したポケモンのデジタル画像はポケモンずかん(公式)から入手。https://zukan.pokemon.co.jp/水彩画風のポケモン旧公式画像は海外の有志のサイトから拝借。デジモン画像はデジモン図鑑(公式)で2020.3.10までアップされていたものを入手した。金銀までのポケモン画像:全504枚(現行公式画像251+旧水彩公式画像253枚)(学習用にランダムで392枚)現行公式画像と、旧水彩公式画像を扱うことで、分類器のポケモンに対する思い入れを強くする効果を期待。デジモン画像:公式画像957枚(学習用にランダムで402枚)なお、デジモンは一部同じポーズで色のみ変わっているものや、背景が書き込まれている画像があったため一部除外した。除外例1:同じデザインで色違いの「アグモン(黒)」などは片方を除外(下図中央)除外例2:背景が書かれている「クズハモン巫女モード」など(下図右)テスト用ポケモン:968枚(ルビサファ以降804枚+学習に使われなかった168枚)(メガシンカ・リージョンフォーム等は全てルビサファ以降として扱うものとする)(2020/6/17にポケットモンスターソード・シールド『鎧の孤島』で新たにポケモンが追加されてしまったが、面倒くさいので含めていない)デジモン:学習用・検証用に使用されなかった残りの555枚これらの学習用・テスト用は毎回シャッフルし、異なるポケモンらしさ・デジモンらしさを抱く分類器が生まれるようにする。縦:224ピクセルに変換チャンネル数:3これら実験に使用した画像はgithubにアップしましたhttps://github.com/mrok273/Qiita/tree/master/%E3%83%9D%E3%82%B1%E3%83%A2%E3%83%B3/poke_vs_digi/data使用したモデルImageNetで事前学習済みのVGG16を、最終レイヤーの出力サイズを「2」に変更し、ポケモンとデジモンで分類できるように設定。デジモンの正解率は90%ポケモンは正解率が82%となった。一度もポケモンに間違われなかったデジモンは約51%。デジモンに一度も間違われなかったポケモンは約18%であった。ポケモンをポケモンと分類するほうが難しいらしい。集計結果のcsvファイルをgithubにアップしましたhttps://github.com/mrok273/Qiita/tree/master/%E3%83%9D%E3%82%B1%E3%83%A2%E3%83%B3/poke_vs_digi最近のポケモンは、デジモンっぽい!デジモンへの誤分類率を世代ごとに集計すると、以下のようになった。確かに後の世代ほどデジモンへの誤分類率が高い。「4,7,8」世代が特にデジモンっぽいらしい。なんとなく次のような特徴が見えてくる。丸いシンプル特に、デジモンっぽいグループを見てみると、以前私が投稿した記事に基づく、「デザインにおける情報量」(以降「情報量」)が高いデザインほど、デジモンに分類されやすいのがわかる。実際、ポケモンとデジモンでは情報量に圧倒的な差があるようだ。以前投稿し、ポケモンたかさおじさんのおかげでプチバズった記事。「最近のポケモンはデザインが複雑になったのか?【Python】【OpenCV】」https://qiita.com/mrok273/items/6f0bcdc62b6184f79308情報量の少ないポケモン情報量の多いポケモンデザインが複雑なだけではAIは「デジモンっぽい」とは感じない??下図はポケモン・デジモンそれぞれの情報量と誤分類率の傾向である。(赤線はsns.regplotによってロジスティック回帰を行った回帰線)ポケモンはデザインが複雑になるほど、デジモンへの誤分類率が高くなる傾向がある。デジモンはデザインが単純なほど、ポケモンへの誤分類率が高い傾向にある。情報量の多さはデジモンらしさの一要因ではあるようだが、それだけが決め手ではないらしい。可視化その1.Grad-CAMによる貢献領域の可視化CNNの可視化については以下のページが充実!!!https://github.com/utkuozbulak/pytorch-cnn-visualizations分類に使用したモデルは,5つの層で畳み込むことで最終的に4096の特徴量に変換しているため、人間の目で何が分類の結果に寄与しているのかを知るのは困難だが、Grad-Camという手法を使うことで人間にもある程度認識しやすい状態となる。以下の画像で「犬」と分類されるのに貢献した画像内の領域を可視化することができる。ポケモン画像にGradCAMを使用した結果がこちらである。「ポケモン」分類への貢献領域フシギダネの目の部分がデジモン分類へ貢献、一方他の広い範囲に渡ってポケモン分類へ貢献しているのはわかるが、これだけではどのような特徴を見ているのかわからないので以下のように工夫した。ポケモンっぽいポケモンとデジモンのキメラを作ってGrad-CAMこちらは100%ポケモンだと分類されたポケモンのピカチュウと、デジモンにもかかわらず、2000回中2000回ともポケモンだと誤分類されてしまったテリアモンであるピカチュウ(ポケモン)ポケモンらしさ100%テリアモン(デジモン)ポケモンらしさ100%この、ピカチュウ・テリアモンの両者ともポケモンへの分類率100%の画像を以下のように4種類のポケモンデジモンキメラ画像を作成する。下の画像はポケモンであるスバメ(右上)とデジモンであるポポモン(右下)の4種類のキメラ画像を作成し、それぞれポケモン分類貢献領域とデジモン貢献領域をGrad-CAMで取得したものである。このポケモンとデジモンの組み合わせは、ポケモンへの分類率がそれぞれ64.25%,63.93%と最も近い者同士をマッチングさせている。左4つはデジモン分類貢献領域、右4つはポケモン分類貢献領域を表す。して8つのキメラ画像結果を見ると、スバメの目の部分のデジモン分類貢献が、本物のデジモンであるポポモンの領域に比べても高いのがわかる(図の左下)。このように、同じくらいポケモンに分類されたポケモンとデジモンを結合させることにより、片方の画像のみで行うよりも、デジモンすぎることもポケモンすぎることもなくなり、GradCAMをかけたあとの貢献領域を視認しやすくなった。可視化その2.フィルターの可視化と中間層の抽出フィルタの可視化とは以下のようなものとなる。AIはこれらの構造が画像内にどのように存在・配置されているかを見て処理をしているらしい。上のフィルタによく反応する構造は、それぞれ以下のようなものになる左のフィルタでは爪や羽・毛のような細かいギザギザに反応し、右のフィルタでは目のような丸い構造によく反応する。Ozbulak氏のgithubのcnn_layer_visualization.pyを使用させていただきました。https://github.com/utkuozbulak/pytorch-cnn-visualizationsVGG19ネットの24番目のフィルタ512チャンネルについて可視化と中間層の出力の抽出を行いました。Image.fromarray(image_array_part).resize((64,64))フィルタ画像で分類結果に有意なもののみ、以下のgithubにアップしましたhttps://github.com/mrok273/Qiita/tree/master/%E3%83%9D%E3%82%B1%E3%83%A2%E3%83%B3/poke_vs_digi/hidden_layerポケモン分類貢献フィルタここに掲載しきれないものは以下のgithubにアップしましたhttps://github.com/mrok273/Qiita/tree/master/%E3%83%9D%E3%82%B1%E3%83%A2%E3%83%B3/poke_vs_digi/feature512のうちポケモン判定に有意にはたらいたフィルタは40種類。そのうち解釈がしやすかった一部を紹介する。左の画像がVGGのフィルタを可視化したもので、右の画像は、このフィルタに反応した箇所のうち、上位100枚である。327.輪郭(縦方向曲線)デジモン分類貢献フィルタデジモン分類に有意に貢献したフィルタは43種類。ポケモン分類貢献フィルタに比べ解釈のしやすいフィルタが多かったように思う。基本的にポケモンの爪・キバ・毛のトゲトゲ表現の表現は荒いジグザグで表現されることが多い。デジモンは鋭い・密集・影が濃いなどの特徴がある。AIにとって初代・金銀のポケモンは比較的爪・キバ・毛のトゲトゲ表現が控えめに見えたということだろうか。たしかに初代のポケモンでもトゲトゲが鋭い鳥の爪やくちばし。毛並みが緻密に描かれているポケモンほどデジモンと誤分類されやすかった。目の表現デジモンの目ポケモンの目デジモンと勘違いされたポケモンの目ハイライトのある目は高確率でデジモン判定を喰らっている。目の描き方は4世代から特に変化したようなので、4世代のポケモンの誤分類率が高いのはそのせいかもしれない。ポケモン判定を受けやすい目は小さな点か線で表現されることが多いようだ。「ポケモンの目のデザイン。してredditで度々貼られる、ポケモンの目の描かれ方である。「最近のポケモンは三角目じゃなくなってポケモンらしくなくなった!!!」という意見がアンケートにも見られた。たしかに三角目もポケモンの特徴と一部認識されているようだが、多くのGrad-CAM画像を見た結果、AI的には丸い目はデジモンっぽいらしいが、三角目の方はそこまでポケモンの判断基準にはならない印象。