‫皆さん､ お帰りなさい｡
‫この次のセクションがとても楽しみです｡
‫もちろん､ 6ステップの機械学習モデリングワークフローからスタートします｡
‫問題定義データ評価機能､ モデリング､ 実験が揃いました｡
‫繰り返しになりますが､ 私たちは､ データがあれば､ どんな機械学習やモデリングのタスクでも､ これをほとんど自然にこなせるようにしようとしています｡
‫これらは､ そのデータからインサイトを把握するためのステップです｡
‫では､ どんなツールがあるのか見てみましょう｡
‫そして重要なのは､ このセクションでTensorFlowを見てもらうことです｡
‫そして今､ うーん､ そうか､ と思ったかもしれません｡
‫ここでPyTorchを見ます｡
‫I see socket learn.
‫2行目はすでに見ていただいているようですが､ TensorFlowとは何でしょうか？
‫このセクションでは､ pandas map､ plot loop､ numpy､ socketの学習セクションとは少し違った方法で､
‫このセクションを掘り下げていくことになります｡
‫さて､ なぜかというと､ このセクションで取り上げるもののうち､ TensorFlowやディープラーニング､ ニューラルネットワークに関する書籍は､
‫Psychic Learnがそうであるように､ まだ確立されていないからです｡
‫サイキックが10年以上前からあることを学ぶわけです｡
‫一方､ これから使うTensorFlowは､ 数ヶ月前に出たばかりです｡
‫だから､ 2020年以降に見ている人は､ 本当にTensorFlowのバージョンアップを｡
‫TensorFlow 2. 0､ 今頃は上位版になっているかもしれませんが､ 2019年末に出たばかりです｡
‫そこで､ このコーナーでは､ 最先端のものを使っています｡
‫さらに嬉しいことに､ 私たちのワークスペース環境に新たな候補が加わりました｡ それが､ Google
‫CoLabです｡
‫さて､ なぜかというと､ GPUへのアクセスが必要になるからです｡
‫ちょっと見てみましょう｡
‫しかし､ これはこのセクションで使用するワークスペースです｡
‫さて､ Google CoLabをご存じない方でも､ 大丈夫です｡
‫通していくことになります｡
‫Jupyter Notebookに非常によく似ています｡
‫さて､ TensorFlowとは何ぞやと思われるかもしれません｡
‫そして､ それは素晴らしい質問です｡
‫さて､ TensorFlowはディープラーニングや数値計算のライブラリです｡
‫という言い方のほうがいいかもしれませんね｡
‫Googleが最初に考案したもので､ 深層学習や機械学習のあらゆるニーズに対応するための社内ソフトウェアライブラリのように､
‫自社内で使用しています｡
‫そして､ 実はオープンソースになったので､ 誰でもTensorFlowに貢献できるようになりました｡
‫最新のアップデートであるTensorFlow 2. 0.
‫TensorFlowを使っている私やあなたのようなコミュニティから､ 「これは本当にうまくいかなかったんだ」というような要望があったアップデートがたくさん詰まっています｡
‫もうちょっと良くならないかな？
‫そのため､ 古いバージョンのTensorFlowでも心配はありません｡
‫ここで取り上げているのは､ 最新のものです｡
‫TensorFlowは､ 非構造化データから洞察を得るための深層学習およびニューラルネットワークモデルを構築するために使用されます｡
‫さて､ これまでのプロジェクトでは､ データフレームで利用可能なデータを扱ってきました｡
‫だから､ エクセルの表計算ソフトのようなもの｡
‫しかし､ ディープラーニングは､ 写真や音声､ 自然言語テキストなど､
‫特定の構造を持たない非構造化データに向いています｡
‫そして､ TensorFlowでは､ ニューラルネットワークのような深層学習モデルを構築することができるようになりました｡
‫まさに､ この非構造化データから洞察を得るためのニューラルネットワークのようなものですね｡
‫また､ 機械学習モデルの一つであるニューラルネットワークがどのように機能しているかを確認・評価することができます｡
‫物事を正しく理解しているのか､ それとも間違っているのか｡
‫今すぐ
‫なぜTensorFlowなのか？
‫まあ､ 一番大事なのは､ Pythonで高速な深層学習のコードを書けるということなんですけどね｡
‫さて､ 高速というのは､ CPUで実行できるコードという意味ですが､ GPUがよくわからないという方もご安心ください｡
‫すぐに確認します｡
‫そして､ TensorFlowは､ 多くの組み込み済みの深層学習モデルにアクセスすることができます｡
‫さて､ ここが重要です｡
‫サイキックラーンには､ 機械学習のモデルがたくさん組み込まれているんですね｡
‫サイキックラーンはすでに見ています｡
‫TensorFlowには､ 事前に構築されたディープラーニングモデルにアクセスする機能もあるので､ その方法については､ 今後のプロジェクトで見ていくことにします｡
‫また､ スタック全体を行うことも可能です｡
‫どういうことかというと､ TensorFlowを使ってデータを前処理し､ TensorFlowを使ってモデル化し､ さらにTensorFlowを使って構築したモデルをデプロイすることができるのです｡
‫そして､ 先ほどもお話したとおりです｡
‫元々はGoogleが社内で設計し､ 使用していたものです｡
‫今はオープンソースになっています｡
‫ですから､ Googleが社内で使っているディープラーニングや機械学習のワークフローとまったく同じソフトウェアに､
‫私たちはアクセスすることができるのです｡
‫さて､ GPUの話をしました｡
‫GPUとは何ですか？
‫さて､ GPUとは､ グラフィカル・プロセッシング・ユニットの略です｡
‫そして､ とりあえず知っておいていただきたいのは､ 通常のCPUよりも数値計算がかなり速いということです｡
‫そこで思い出していただきたいのは､ 機械学習がデータのパターンを見つけることだとしたらa｡ k. データや情報を数字に変換し､
‫その数字の中からパターンを見つけ出す､ そのスピードアップに役立つのがGPUなのです｡
‫それだけでいいんです｡
‫さて､ 機械学習の1対1のセッションの時のことを思い出してみてください｡
‫だから､ ここで投げやりに育ったわけです｡
‫このスライドで､ モデルを選ぶということを見てみました｡
‫つまり､ ここには構造化データがあるのです｡
‫モデルを選択し､ Cat Boost､ Boost､ Random Forestのような構造化データに関するライブラリのいずれかを使用するかもしれません｡
‫それは『スカイライン』でも確認しました｡
‫さて､ ここからは問題から非構造化データへの取り組みです｡
‫ここに写真や音声ファイルがあり､ モデル2があります｡ これはニューラルネットワークのようなものです｡
‫ニューラルネットワークでググるとこんな感じです｡
‫そして今､ こういったモデル､ ディープラーニングやトランスファーラーニングが登場しています｡
‫今お話したような非構造化データには､ より効果的です｡
‫そして､ ディープラーニングのモデルを構築するために使えるのがTensorFlowというわけです｡
‫そして､ TensorFlowハブは､ トランスファー・ラーニングというものを使っていくところです｡ k. a. あるモデルが知っていることを､
‫別のモデルで使用すること｡
‫さて､ 「ディープラーニングとは何か」「ニューラルネットワークとは何か」と聞かれることがあります｡
‫まあ､ こんな風に考えてほしいんです｡
‫ディープラーニングは､ 機械学習やニューラルネットワークの一種で､ こんな感じです｡
‫これらは､ 通常､ 深層学習について語るときに参照されるタイプの機械学習アルゴリズムである｡
‫例えば､ 犬の画像があって､ それが私の犬かどうかを識別する場合です｡
‫7つです｡
‫なんて美しいんでしょう｡
‫そして､ 後ろに写っているのがベラです｡
‫しかし､ 仮に7の品種を特定するとしよう｡
‫ニューラルネットワークは､ この画像を見て､ 数値に変換して､ 「うーん､ なるほど」と思うかもしれません｡
‫この小さなモデルです｡
‫足がどんなものか､ 覚えられそうですか？
‫そして､ こちらの方は､ 目の形を覚えてもらうんです｡
‫それから､ この人たちは､ 何を考え出すかわからない｡
‫そしてやがて､ これがラブラドールのイメージであることに気づきます｡
‫ニューラルネットワークが学習しているのであれば､ ですね｡
‫ニューラルネットワークのイメージは､ これまで見てきた他の機械学習モデルと同じで､
‫何らかのデータを入力し､ 機械学習モデル（この場合はニューラルネットワーク）を構築します｡
‫そして､ 何らかのアウトプットをするのです｡
‫さて､ ニューラルネットワークですが､ ここにある小さなノードは何だろうと思われるかもしれません｡
‫ノードとも呼ばれます｡
‫まあ､ これらはそれ自体が小さなモデルなんですけどね｡
‫ここで起こることは､ これらの小さなモデルの一つ一つが積み重なり､ このデータの中にある何らかのパターンを見つけ出し､ そのパターンがどのようなものに関係しているかを学ぶということです｡
‫k. a ラベル
‫といった具合に｡
‫ニューラルネットワークが機械学習モデルの一種に過ぎないのであれば､ 深層学習はどこから来るのでしょうか｡
‫まあ､ ここからが深いところなんですけどね｡
‫ニューラルネットワークを構築する際､ 複数の層を使用することがあります｡
‫ここでは､ オリジナルのニューラルネットワークを用意しましたが､ その上にさらにニューラルネットワークを追加することもできます｡
‫また､ このようなモデルの発見には､ 多くの試行錯誤が必要だからです｡
‫冒頭で「ディープラーニングの本はまだ完全に完成していない」と言ったのはそのためで､ ニューラルネットワークをどのようにレイアウトするのがベストなのか､
‫まだ検討中なのです｡
‫そして､ 前のスライドにあったものよりも､ いくつかのボックスをここに持ってきました｡
‫つまり､ レイヤーを増やすと､ ニューラルネットワークの他のノードや小さなモデルが､
‫より多くの特徴を検出できるようになり､ 非構造化データの情報をよりよく識別できるようになるということなのです｡
‫さて､ ディープラーニングの問題とはどのようなものでしょうか｡
‫さて､ 分類の話はしましたね｡
‫また､ 心臓病のプロジェクトでもそのようなことがありました｡
‫しかし､ 画像にどんな犬種が写っているか､ メールがスパムかどうかなどを分類したい場合もあるでしょう｡
‫この場合､ このメールは間違いなく迷惑メールではありません｡
‫そうでなければ､ セクターSEQとも呼ばれる配列同士の問題がある｡
‫そして今､ SiriやGoogle Homeなどで起きているのが､ このような問題です｡
‫また､ Google翻訳でも同じことが起こります｡
‫つまり､ 音声波を受けて､ それをある種のテキストやコマンドに変換するのです｡
‫そして最後に物体検出ですが､ これは画像分類と似ていますが､ 画像中の特定の物体がどこにあるかを見つけようとするものです｡
‫これは､ 自動運転車がカメラを使う場合に直面する可能性のある､ 一種のディープラーニングの問題なのです｡
‫そうですね｡
‫画像に写っているものが何であるかを識別しようとしているのです｡
‫テスラの自動運転車に8台のカメラが搭載されているとしたら､ 常に邪魔なものをピックアップしようとしているわけです｡
‫そして､ ディープラーニングの問題は､ まだまだたくさんあるということです｡
‫しかし､ これは日常生活で出くわす主な3つです｡
‫なるほど｡
‫そして､ 先ほどトランスファー・ラーニングの話をしました｡
‫では､ トランスファー・ラーニングとは何か､ なぜそれを使うべきなのでしょうか｡
‫トランスファー・ラーニングの大前提は､ ある領域で学んだことを別の領域に適用することです｡
‫そのため､ さまざまな犬種や画像をピックアップして､ 機械学習モデルを一から学習させようとすると､
‫コストも時間もかかってしまうのです｡
‫しかし､ 画像中の他の物体を識別するために学習した機械学習モデルが既にあれば､ 転送学習を使うことができるのが素晴らしいところです｡
‫つまり､ 機械学習モデルやニューラルネットワークが､ 別の画像で学習したパターンを､
‫自分の問題に適用するわけです｡
‫そこで､ すでにあるものを利用してはどうかという疑問が生まれます｡
‫他のモデルが既に知っていることを利用してはどうか？
‫それが､ このプロジェクトでやってみたいことです｡
‫さらに言えば､ 何をカバーするのか？
‫さて､ サイキックローンのワークフローを覚えている方は
‫私たちのTensorFlowのワークフローは非常によく似ています｡
‫データを用意しなければならないのですが､ 今回は構造化されたデータではなく､ 非構造化されたデータです｡
‫そしてこれがここでの大前提で､ 馬に乗るまで強調しておきますが､ データを準備することは､ 本質的にデータを時制に変えることであり､
‫それゆえにTensorFlowなのです｡
‫そして､ データが時制になったところで､ 問題に合ったモデルを選びます｡
‫これにはTensorFlow hubを使い､ モデルにデータを当てはめることにします｡
‫だからa｡ k. a､ モデルにデータのパターンを見つけさせて､ 予測の仕方を学ぶんだ｡
‫モデルがデータのパターンを学習したら､ モデルを評価し､ 予測どおりかどうかを確認します｡
‫良いものなのか､ そうでないものなのか？
‫実験を通して改善方法を確認し､ 学習済みモデルを保存して再読み込みします｡
‫さて､ アダルトポイント形式で､ TensorFlowでのマルチクラス分類のワークフローをエンド・トゥ・エンドで見ていきます｡
‫それが何であるかは､ すぐにわかるだろう｡
‫画像データの前処理を学びます｡
‫そこで時制を整え､ ディープラーニングモデルの選び方を学びます｡
‫データへの当てはめ方を学びます｡
‫そこでパターンを学習し､ 次にディープラーニングモデルで予測をする方法を学びます｡
‫そこで､ 学習したパターンを使って､ モデルの予測値を評価します｡
‫ディープラーニングモデルの保存と読み込みを行います｡
‫そして､ 学習済みのモデルを使って､ 自分たちのカスタムデータで予測を行います｡
‫どのくらい先？
‫大きなコーナーですが､ ワクワクします｡
‫さて､ 何が問題なのでしょうか？
‫これから取り組むのは分類の問題であり､ 貨物犬の品種判別の問題です｡
‫そこで､ 画像に写っている犬の犬種を判定します｡
‫そして今､ このような問題が多クラス分類です｡
‫ということは､ 選択肢は2つ以上あるということですね｡
‫しかし､ これについては､ まもなく見ていただくことにします｡
‫さて､ このような場合､ どこに相談すればいいのでしょうか？
‫なぜなら､ コンセプトとコードを同時に､ すべてプロジェクトの中で学んでいるからです｡
‫コードにそって頑張ってください｡
‫疑わしい場合は､ コードを実行してください｡
‫Google CoLabを使っているので､ 忘れずに試してみてください｡
‫これはちょっと見てみましょう｡
‫docstringの読み方は､ Jupyter Notebookとは少し違います｡
‫スペースでシフトコマンドを押さないと読めないので､ まだ行き詰っている人はぜひ｡
‫怖がらずに探してみてください｡
‫StackOverflowや､ ドキュメントを追うためのテキストに出会うことができます｡
‫そして､ StackOverflowやTensorFlowで見つけたものをドキュメントとして､ もう一度試してみてください｡
‫そして最後に､ もしまだ行き詰まったら､ 決して怖がらずに尋ねてみてください｡
‫もちろん､ Discord Chatもお忘れなく！できればサインアップしていただけると嬉しいです｡
‫願わくば､ そこで他の生徒と交流してほしい｡
‫では､ さっそくですが､ ワンちゃんたちを探しに行きましょう｡