‫このように､ エポック精度やエポック損失のようなものでモデルの性能､ 少なくとも初期性能を評価し､
‫異なる実験をどのように追跡するかを見てきました｡
‫しかし､ これはモデルのトレーニングセットとバリデーションセットについてのみであり､ 実際にはモデルがデータセットで学習したことについてのみです｡
‫私たちのモデルが学習したことを評価する他の本当に良い方法は､ 私たちが構築したものを何のために使用するかということです｡
‫ドッグビジョンを作るなら
‫そして､ 最終的なゴールは何かということを常に念頭に置いておかなければなりません｡
‫どんなプロジェクトでも､ 写真に写っている犬の品種を識別できる機械学習モデルを構築できるかどうか､
‫ドッグビジョンを構築しています｡
‫だから､ 写真を与えるいくつかの予測をすることになる｡
‫では､ そうしましょう｡
‫ワークフローに戻ると､ モデルにデータを当てはめることになります｡
‫さて､ そろそろ予想をしてみましょうか｡
‫だから､ まだステップ3の段階なんです｡
‫少しはできた｡
‫ステップ4について触れました｡
‫そして､ これらは本当に直線的なステップではないことを忘れないでください｡
‫このように､ わかりやすいように並べただけなのです｡
‫しかし､ これらは必ずしも直線的なものではありませんから､ 順序を無視して行うことも可能であることを忘れないでください｡
‫また､ 学習済みモデルを使って予測を行い､ 評価するという､ ちょっとした見出しを付けます｡
‫マークダウンシフトとエンターに変えてくれた団長さん､ 奥さん｡
‫なるほど｡
‫ですから､ 学習したモデルで予測を行うことは､ サイキックローンで行った方法と非常に似ているので､
‫predict関数を呼び出して､ モデルが学習したのと同じフォーマットのデータを投入すればいいのです｡
‫それが大事なんです｡
‫まずはコードを見て､ 何が起こっているのか議論してみましょう｡
‫だから､ 検証データで予測する｡
‫そこで､ 検証用データバッチを作成したことを思い出してください｡
‫さて､ これは訓練に使われたわけではありません｡
‫そこが重要なポイントです｡
‫3つのセットの話に戻りますが､ モデルをどのように評価するかは､ トレーニングセットで学習するからです｡
‫チェックしたいのです｡
‫検証セットでの初期結果､ そしてこの2つの試験ですね｡
‫つまり､ 模擬試験と本試験は､ モデルが見たことのないデータセットなのです｡
‫だから､ 私たちは戻ってくるのです｡
‫さあ､ 行こう｡
‫モデルです｡
‫ああ､ 実際にはprediction predictions eco model predict val dataに保存します｡ val dataが何であるかを思い出しましょう｡
‫バリデーターです｡
‫バッチデータセット｡
‫これでよしとしよう｡
‫画像とラベルを用意したので､ 検証の真のラベルが何であるかがわかります｡
‫このバッチデータセットをモデルや予測に渡すと､ 予測関数の性質上､ バリデータの画像だけを見て､
‫その画像に基づいて予測を行うことになるわけです｡
‫そこで､ ラベルの形で表示される予測値を比較することができるのです｡
‫まあ､ 正確には違うんですけどね｡
‫どのようなものか､ ちょっと見てみましょう｡
‫検証画像に対してモデルが行う予測と､ 検証画像から得られる実際のラベルを比較することができます｡
‫さて､ 話は尽きない｡
‫これをコードで見る方がよっぽどいいんです｡
‫だから冗長というのは､ おい､ 予測をするときは進捗状況を見せろよ､ ということなんです｡
‫さて､ 200枚もの画像があるので､ 本当にあっという間でしたね｡
‫それが､ GPUで仕事をすることの良さなんですね｡
‫予測も実に速いので､ 187ミリ秒程度で済み､ 1秒もかかりません｡
‫また､ verboseを1に設定しなければ､ この小さなプログレスバーは出力されません｡
‫これを見て､ どうしたんだろう､ と思うかもしれません｡
‫数字が違うだけで､ たくさんある｡
‫では､ ここで形状を確認してみましょう｡
‫予測の形｡
‫覚えていますか？
‫これはどこに並んでいるのでしょうか？
‫では､ もし行くとしたら､ レン､ なぜ？
‫まあね｡
‫200.
‫最初の形があるんですね｡
‫だから200枚｡
‫2つ目の形状はどこから来ているのでしょうか？
‫120.
‫以前､ どこかで見たことがあるような？
‫レン ユニークな品種｡
‫120.
‫つまり､ 200×120の配列ができたということです｡
‫だから､ 200もあるんです｡
‫最初の要素を見てみましょう｡
‫だから､ 200もあるんです｡
‫私たちは行きます｡
‫予測はゼロ｡
‫200アレイ｡
‫120種類の数字のうち､ 本当に小さいものです｡
‫そして､ 私たちはここで何が起こっているのか不思議に思っています｡
‫うーん｡
‫さて､ その長さを調べてみよう｡
‫120.
‫素晴らしい｡
‫では､ 実際にこれはどうなのか｡
‫は関連する確率である｡
‫好感度アップのために｡
‫つまり､ 基本的に私たちのモデルが考えるあるイメージとは､ このようなものなのです｡
‫つまり､ ここにはラベルごとに確率の値があるのです｡
‫つまり､ ここの値､ この予測配列の中で最も高い値ということになります｡
‫そこで､ 第0の予測配列｡
‫検証データの1枚目の画像､ 1枚分です｡
‫つまり､ この中の一番大きな値が､ モデルが最も可能性が高いと考えるラベルのインデックスに対応することになります｡
‫そしてまた､ これでもかと言わんばかりに｡
‫コードでまとめ始めると､ もう少し意味が分かってきます｡
‫でも､ ちょっとだけ我慢してください｡
‫これらを合計すると､ 1つに非常に近いか､ 1つに近いかもしれないに等しくなります｡
‫その通りです｡
‫非常に近いというのは､ コンピュータが数字を記憶する方法は正確ではないからです｡
‫だから､ 小数点以下が続くと
‫そうですね｡
‫1にすごく近くなるけど､ 正確には1じゃないかもしれない｡
‫ダニエル､ 何を言ってるんだ」と言われるかもしれません｡
‫これは､ コンピュータが数字を記憶する方法が厳密でないためです｡
‫でも､ コンピュータが小数点以下の数字を格納するとき､ その数字をコンピュータのチップに格納するのが最も効率的だから､
‫完全に正確な数字になるわけではないことは知っておく必要があります｡
‫だから､ 予測配列を1つまとめると､ 1つに非常に近くなると言っているのです｡
‫そして､ このことを､ 私たちのモデルに戻ってきたところに結びつけようと思います｡
‫そのため､ ソフトマックアクティベーションを利用してきました｡
‫と言われるかもしれません｡
‫Daniel Farrellさん､ これはもうビデオでソフトマックの話をされていますね｡
‫本当に意味がなかったし､ 今となっては本当に意味がない｡
‫しかし､ ソフトマックに戻れば､ 「そうだ､ フレンドリーなウィキペディアのページに戻れば､ ソフトマックとは何か」となるわけだ｡
‫教えてくれるはずです｡
‫あれです｡
‫しかし､ ソフトマックを適用した後は､ 各成分が0から1の間に入り､ 成分を足すと1になる｡
‫それが､ ここにきて実現したわけです｡
‫ネットワークの最終層でソフトマックス活性化を使用したため､ 成分が得られているのです｡
‫長さ120の予測配列という配列が出力され､ 予測値0とここにあるそれぞれの予測値が全て出力されます｡
‫だから､ 予測1も1に近いものになる｡
‫だから､ 予測は1つ足すと1つになる｡
‫あるいは100の予測に非常に近い｡
‫これでよしとしよう｡
‫ほら､ これは1よりちょっと上､ つまり1まであと少しです｡
‫小数点以下の数字が多いほど､ コンピュータでは正確な数字とは言えません｡
‫と､ いうわけで､ これをまとめてみましょう｡
‫だって､ 今は口先だけなんだもの｡
‫具体的な例をお見せしたいと思います｡
‫予測は､ ゼロでいこう｡
‫そこで､ この細胞を除去する｡
‫そして､ もうひとつだけ､ ちょっとした豆知識も｡
‫モバイルネットツーのアーキテクチャを思い出してください｡ ソフトマックス層が行っているのは､
‫1280個の数値の出力を､ ソフトマックス活性化を使って長さ120のこのような数値の配列に変更することです｡
‫なぜなら､ 多クラス分類の問題では､ ソフトマックス活性化が必要なことを思い出してください｡
‫しかし､ 単一分類だけならシグモイドを使うでしょう｡
‫だから､ ここに戻ってきたんです｡
‫調べてみよう｡
‫最初の予測として､ インデックス作成のちょっとしたトリックをここに書き出しますので､ それを見ながら少しずつ話していきますが､
‫これらのことがどのように結びついているかを考えてみてください｡
‫では､ やってみましょう｡
‫というのも､ 私たちの目標は､ モデルがここでいくつかの予測をしたのですが､ その予測をさらに理解することなのです｡
‫私たちのコンピューターは､ これらを理解していますね｡
‫だって､ 全部数字なんだもん｡
‫冒頭で､ データを数値化することに多くの時間を費やしたことを思い出してください｡ これは､ 機械学習モデルの出力を得るときのようなものですね｡
‫だから､ ここに注目したのです｡
‫インプットの準備に多くの時間を費やしました｡
‫あとは､ アウトプットの準備に時間をかける､ ということです｡
‫では､ 行ってみましょう｡
‫予測値ゼロを印刷する｡
‫そして､ これから行うのは､ 最大値の確率を見つけることです｡
‫そこで､ 予測確率を出力するpredict probaを呼ばないかもしれないサイキックローンの関数を思い出してください｡
‫これはpredictがtensorflowでデフォルトで行うことである｡
‫私たちは､ ここで予測し､ P最大予測ゼロを行く｡
‫だから､ 私たちは発見したのです｡
‫思い出してみよう｡
‫予測ゼロ｡
‫何？
‫この中で最大値を見つけるようです｡
‫その線はそれだけです｡
‫そして､ 次に何をするか？
‫だから､ 私たちが望むプリント｡
‫他に何が欲しいのか？
‫あるを見つけたいのです｡
‫NTPや､ 実際には複数回できるように設定するかもしれません｡
‫だから､ インデックスはゼロに等しい｡
‫ただ､ 複数の例で見ることができるように｡
‫だから､ 和がnpある予測になるんです｡
‫インデックスが素敵でシンプル｡
‫では､ 行ってみましょう｡
‫うわー､ ひどいタイプミスだ､ ダニエル｡
‫さあ､ MAX指数に突入です｡
‫そこで､ この配列の中で最大値を持つインデックスを探します｡
‫つまり､ 最大値と等しいのはどちらか｡
‫NP.
‫Org maxの予測｡
‫インデックス
‫もちろん､ 今やっていることはちょっと面倒くさいですしね｡
‫後ほど､ このように機能させる予定です｡
‫このようにセルを書き続けることで､ データを探索したり予測をしたりするために､
‫この種のprint文を書き続ける必要がないように､ できる限りすべてのコードを使って､ 機能的であることを想像できるはずです｡
‫オプションのインデックスです｡
‫素晴らしい｡
‫予想されるレーベル｡
‫さて､ このセルを実行する前に､ 「疑問があればコードを実行する」という基本的なルールに反してみましょう｡
‫この1枚が何をやっているのか､ ちょっと考えてみてほしいんです｡
‫ユニークな品種とは何か､ 改めて考えてみましょう｡
‫これが我が家の全犬種です｡
‫ですから､ もし私たちが予測を持っていて､ その質量指数を見つけ､ その指数がユニークな品種のどこに発生するかを見つけたら､
‫それは何を返すと思いますか？
‫ヒント
‫ここに打ち出しました｡
‫よし､ この不良品を削除して､ シフトして入力しよう｡
‫素晴らしい｡
‫そこで､ インデックス・ゼロです｡
‫これがその配列です｡
‫ただ､ こちらも全く同じです｡
‫predictを呼び出したときのモデルの出力｡
‫つまり､ 最大値､ 予測確率､ これが最大になるのは1なのです｡
‫なぜなら､ ソフトマックス関数の合計が0と1の間であることを思い出してください｡
‫つまり､ 1つの値の最高値は1である｡
‫つまりこれは､ この中で最も高いラベルを21と予測しているということです｡ 予測確率6％｡
‫さて､ これらの値の合計は､ 再び1に非常に近くなっています｡
‫ゼロと1の間のソフトマックスルールに合わせ､ 足し算で1になるようにしました｡
‫しかし､ コンピュータの数字の計算方法の関係で､ 正確に1ではなく､ 最大指数となる｡
‫つまり､ この値が発生する場所は17です｡
‫だから､ 3つ数えると17になる｡
‫どこかにあるんです｡
‫そこかもしれませんね｡
‫それだけです｡
‫これで､ 予測されるラベルはボーダーエリアとなりました｡
‫だから､ インデックス・ゼロの場合｡
‫あるいは検証のため｡
‫イメージゼロ｡
‫予測されるラベルはボーダー・テリアです｡
‫では､ これを変えてみましょう｡
‫もし､ そうだとしたら？
‫インデックス
‫私たちの好きな番号は？
‫42.
‫そのため､ 最大値の予測確率を得ることができた｡
‫だから､ これはもっと高いんです｡
‫これは75％です｡
‫だから､ これにはかなり自信があります｡
‫ですから､ この値が1に近いほど､ ある予測に対するモデルの確信度が高いと言えるでしょう｡
‫和は1に非常に近い｡
‫最大インデックスは113で､ 予測されるラベルはwalkaroundである｡
‫だから､ ここに行けば､ ユニークな成績｡
‫仮にインデックスナンバー113を見つけるとしたら｡
‫見つけることができるだろう｡
‫歩いてみてください｡
‫これでよしとしよう｡
‫歩いてみてください｡
‫113.
‫歩いてみてください｡
‫このように､ 予測確率を数値化することで､ コンピュータが理解できるものを､ 私たちが理解できる予測ラベルに変換しているのです｡
‫つまり､ 予測を理解できるものにするための一種の方法を手に入れたのです｡
‫次に行うことは､ 検証セットのすべてのサンプルについて予測されるラベルを見つけることができる関数を作成することです｡
‫だから､ 約200枚ほど｡
‫そして､ このデータをUNバッチして検証データをセットし､ 予測値と真実のラベルを視覚的に比較するのです｡
‫さて､ またまた話が長くなりましたが､ 次のビデオでは､ その機能を構築し始め､ 実際にどのように見えるかを見ていきます｡
‫そして､ とても楽しみです｡
‫そうですね｡
‫なぜなら､ モデルの予測と実際に起こっていることを比較することが､ 最も楽しいことのひとつだからです｡
‫ドッグビジョンが実現する