‫お帰りなさい｡
‫この数本のビデオでは､ 私たちのデータをアクセス可能な形式にすることにかなりの労力を費やしています｡
‫今､ 私たちはそれを手に入れたのです｡
‫では､ さっそく見てみましょう｡
‫ラベルを数値化した「イジメラベル」を用意しました｡
‫最初の2つは､ あまり場所を取らないように見てもらうことにします｡
‫これでよしとしよう｡
‫それは本当でもあり､ 嘘でもある｡
‫それを0と1で簡単にアクセスできるんです｡
‫また､ ファイルパスも同様です｡
‫というわけで､ こちらがトレーニング用の画像です｡
‫そして､ Kaggleがいかに検証セットを提供してくれないかを議論して終わりました｡
‫だから､ 自分たちで検証セットを作ること｡
‫それで､ Kaggleからのデータセットが来ないので｡
‫検証セットを使って､ 自分たちで作ってみる｡
‫そして､ 「機械学習101」のずっと前の話ですが､ 機械学習で最も重要な概念は「3つの集合」であることを思い出してください｡
‫さて､ トレーニングセット､ バリデーションセット､ テストセットです｡
‫今､ トレーニングセットとテストセットがありますが､ この検証セットというのは
‫k. 模擬試験
‫つまり､ トレーニングセットで機械学習モデルを学習させ､ 検証セットでそれを評価し､ トレーニングセットで行った実験がうまくいっているかどうかを確認する､
‫ということを繰り返します｡
‫そして､ いよいよ最終試験となるのが､ テストセットです｡
‫そこで､ この小さな中間セットを使って､ 最初の実験の検証をしたいと思います｡
‫だから､ 検証セットを作るわけです｡
‫そして今､ そのために､ 何を使えばいいのか｡
‫過去に何を使ったか？
‫考えてほしいのです｡
‫サイキックローンコーナーにありました｡
‫トレインテストスプリットと言われれば､ その通りなんですけどね｡
‫train test splitと書いてあるので少し混乱するかもしれませんが､
‫この関数の機能は､ データをあるサイズの集合と別のサイズの集合の2つに分けるだけです｡
‫それを設定しよう｡
‫その前に､ XとYの変数を設定することが考えられます｡
‫さて､ なぜこのようなことをするかというと｡
‫いじめのラベルやファイル名を覚えなければならないのは､ 少し面倒です｡
‫そこで､ データの標準的な変数であるXと､ ラベルの標準的な変数であるYを作成することにします｡
‫だから､ それをコピーしていくだけです｡
‫美しい｡
‫そして今､ 1万枚を超える画像を扱っているので､ 正確には1万222枚です｡
‫機械学習モデルを構築する前に､ まずその一部で作業を始め､ うまくいっていることを確認するのは良い考えです｡
‫これは､ 自分のプロジェクトで注意すべきことですが､ 実験をするときは､ 「私たちの目標は何か」を思い出してください｡
‫実験と実験の間隔を最短にすることで､ 何が有効で何が有効でないかを把握するためです｡
‫それに､ 毎回1万件の事例を使っていたら､ それだけで時間がかかってしまいます｡
‫機械学習モデルやディープラーニングモデルを1万枚以上の画像で学習させたことがない人は､ それがどれくらいの時間を要するか分からないと思いますが､
‫長い時間がかかるということは､ 私の言葉を信じていただいてかまいません｡
‫だから､ 最初は縮小して1000枚くらいから始めて､ 必要な分だけ増やしていくことになるでしょう｡
‫だから､ 自分自身のためにちょっとしたメモを書いておこう｡
‫最初は1000枚の画像で実験し､ 必要に応じて増やしていく予定です｡
‫これは､ 画像だけでなく､ あらゆる機械学習プロジェクトに共通することです｡
‫また､ 過去に私たちのデータのサンプルを使って､ このようなことが確認されています｡
‫例えば､ 10万通のメールがあったとして､ それがスパムなのかそうでないのかを分類する場合､
‫最初は5000通から始めて､ そこから積み上げていくかもしれません｡
‫そこで､ 少しパラメータを設定してみましょう｡
‫そこで､ 実験に使用する画像の枚数を設定します｡
‫ここで､ CoLabの中でとてもクールなものをお見せしたいと思います｡
‫小さなパラメータを作りますが､ これは大文字で書かれています｡
‫だから､ ユーザーとして設定できるものは､ 大文字で設定することが多い｡
‫そこで､ これらの変数がフルキャピタルで表示されることがあります｡
‫では1000にして､ CoLabではこのように小さく表示されています｡
‫少しはカッコよくなったかな？
‫できます｡
‫プレミアのマジック機能みたいなものですね｡
‫もし､ 作り方がわかったら､ どこに行けばもっとたくさん作れるか教えてください｡
‫では､ ご覧ください｡
‫つまり､ これは設定可能なパラメータです｡
‫タイプスライダーを作成します｡
‫最小値は1000､ 最大値は10000､ ステップ数は1000です｡
‫今､ 画像が登場しました｡
‫いいか､ このまま行くと
‫ああ､ そうなんだ｡
‫5000.
‫8000.
‫まあ､ 一日中遊んでいられますね｡
‫それは､ GPU周辺に支えられていることを除けば､ CoLabがJupiterよりも持っているものです｡
‫よし､ これで少しはパラメータが揃ったかな？
‫XとYがある｡
‫サイキックラーニングを使おう､ トレーニングテストスプリット｡
‫そこで､ モデル選択入力のtrain test splitから､ データをtrainとvalidationに分割してみましょう｡
‫さて､ ここでも列車試験分割とありますが､ この機能の基本は「分割」です｡
‫インデックスを利用して手動で行うこともできますが､ ここでは関数を利用することにします｡
‫これは､ データを学習用と検証用の2つのセットに分割し､ 合計のサイズを調整するものです｡
‫今の画像｡
‫ここで設定した変数がそれです｡
‫そのセルxを実行し､ xのテストyではなく､ 今回xの値を訓練し､ yの値を訓練テスト分割xを最大数イメージに等しくする｡
‫つまり､ 最初の1000個のファイル名だけを取得することになります｡
‫ファイル名だけで作業した方が早いので､ まだ画像を取り込んでいません｡
‫また､ なぜラベルがブーリアン形式なのでしょうか？
‫そして､ テストサイズ｡
‫繰り返しになりますが､ これはあくまで検証です｡
‫サイズは20%で､ あとはランダムシードを設定するようなランダム状態です｡
‫まあ､ ランダムシードを42に設定するようなものです｡
‫つまり､ ランダム状態イコール42は､ ランダムシード42を上がるのと同じことです｡
‫また､ ランダムシードが何をするのかわからないという方は､ 動画がありますので､ そちらをご覧ください｡
‫そうでない場合は､ さっとググってみるといいかもしれませんね｡
‫ランダムシードはどのような働きをするのですか？
‫だから､ 行けば｡
‫Len X trainは､ データの長さが正しいかどうかを確認するためのもので､ これまで何度もデータの形状を間違えて火傷をしたことがあります｡
‫データを正しい形にするために､ 何時間も格闘することになります｡
‫私を信じてください｡
‫行ったことがあります｡
‫なるほど､ すばらしい｡
‫そこで､ 1000個のサンプルを用意し､ 20％のテストサイズを確保しました｡
‫つまり､ トレーニングには800サンプル､ バリデーションには200サンプルが必要です｡
‫では､ 早速見てみましょう｡
‫では､ 学習データを見てみましょう｡
‫だから､ Xは私たちがまだこの世にいることを確認するために訓練するのです｡
‫まだまだ右往左往しています｡
‫実は､ ちょっと多すぎるんです｡
‫これは本格的ないじめのレッテルだから､ そこそこ覚えておかないとね｡
‫トレーニングでは､ ファイルパスがありますね？
‫それが私たちの願いです｡
‫そして､ 私たちが持っているレーベルのためのトレーニング｡
‫いじめのレッテル
‫それが､ 私たちの目指すところです｡
‫わかりました｡
‫さて､ これでデータは訓練セットと検証セットに分かれました｡ 小さなサブセットですが､ そもそも我々の目標は実験と実験の間の時間を最小限にすることです｡
‫私たちが最終的にできることは､ おそらく画像を出力すること､ 少なくとも画像やラベルを時制に変える機能を作ることです｡
‫次の動画でやってみましょう｡