機械学習とニューラルネットワーク - ページ 16

 

初心者のための機械学習コース (パート 1-5)


初心者のための機械学習コース

00:00:00 - 01:00:00 機械学習の初心者向けコースに関するこの YouTube ビデオでは、インストラクターが機械学習アルゴリズムの基礎とその実際のアプリケーションについて説明し、理論的側面と実践的側面の両方をカバーしています。このコースでは、学習者は機械学習の基礎から、線形回帰、ロジスティック回帰、主成分分析、教師なし学習などのアルゴリズムまで学習できます。このビデオでは、オーバーフィッティング、アンダーフィッティング、およびトレーニング/テスト データ セットについても説明します。インストラクターは、機械学習アルゴリズムがデータを分析して予測を作成できるようにする機能を開発する方法を理解することの重要性を強調しています。最後に、パフォーマンスの評価に使用されるコスト関数を最適化するための勾配降下アルゴリズムを紹介します。

01:00:00 - 02:00:00 この初心者向け機械学習コースでは、初心者向けの機械学習の重要なトピックを幅広くカバーしています。インストラクターは、線形回帰におけるシータの偏導関数のベクトル化、正規方程式、線形回帰の仮定、および独立した機能と依存する機能の違いについて説明します。このコースには、ロジスティック回帰と分類タスクも含まれており、ロジスティック回帰、コスト関数、勾配降下の仮説、およびコスト関数と勾配降下のベクトル化コードについて説明します。さらに、このコースでは、Python ライブラリ、データ分析手法、モデル構築、および線形回帰を使用した精度チェックを紹介します。また、インストラクターは、過適合を回避するための機械学習における正則化手法とその重要性についても説明します。このコースでは、リッジ回帰となげなわ回帰について説明します。これは、重要度の低いフィーチャの重みにペナルティを課して、それらをゼロに近づけるか、完全に削除します。

. 02:00:00 - 03:00:00 「初心者のための機械学習コース」では、正則化手法、サポート ベクター マシン (SVM)、非線形分類、データ探索など、さまざまなトピックを取り上げます。このコースでは、SVM の概要を説明し、データ ポイントを分類しながら予測を行うために、最大のマージンを持つ超平面を構築する方法を説明します。 SVM におけるハード マージンとソフト マージンの分類の概念とその違いについても説明します。このコースには、Python ライブラリを使用した株価予測プロジェクトも含まれており、平均二乗誤差、二乗平均平方根誤差、線形回帰モデルの R2 二乗などの評価指標を調べます。 Ridge や Lasso などの正規化された線形モデルについても詳しく説明し、Flask を使用して簡単なアプリを作成するデモも行います。

03:00:00 - 04:00:00 動画「初心者のための機械学習コース」では、Flask を使用したサーバーと Web サイトのセットアップ、主成分分析 (PCA)、バイアスと分散のトレードなど、機械学習に関するさまざまなトピックを取り上げています。 -offs、回帰モデル、およびネストされた if-else ステートメント。インストラクターは、実世界のシナリオでのテキストおよび画像データの機械学習とデータ前処理の概念を理解することの重要性を強調し、虹彩データを操作して簡単な決定木を作成する方法の実用的な例を提供します。このビデオでは、線形変換、固有ベクトル、固有値などのトピックについても説明し、PCA が情報を保持しながらデータ次元を削減する方法について説明します。全体として、ビデオは初心者が機械学習とその応用について学ぶための包括的な紹介を提供します。

04:00:00 - 05:00:00 このビデオでは、基本的な用語、エントロピー、情報利得、ジニ不純物などの属性選択尺度を使用して決定木を構築する方法、および決定木がどのように構築されるかなど、決定木の初心者レベルの紹介を提供します。分類問題と回帰問題の両方に使用できます。このビデオでは、ハイパーパラメーターの重要性と、機械学習の重要な概念として決定木を理解することも強調しています。次のセクションでは、アンサンブル学習とその 3 つの手法 (バギング、ブースティング、スタッキング) について説明します。これらは、Kaggle コンテストで一般的に使用されます。

05:00:00 - 06:00:00 この YouTube ビデオでは、機械学習モデルの精度を向上させるためのさまざまなアンサンブル学習手法について説明しています。一般的な手法の 1 つは、バギングまたはブートストラップ集約です。この手法では、複数のモデルがトレーニング データのサブセットでトレーニングされ、パフォーマンスを向上させるためにトレーニングに使用される行サンプリングと組み合わされます。このビデオでは、決定木、バギング、および列サンプリングを使用して強力なモデルを作成するランダム フォレストについても説明します。さらに、このビデオでは、バイアスを減らし、モデルの精度を向上させるために使用されるブースティングについて説明しています。これは、弱い学習者を強力なモデルに追加的に結合することによって行われます。インストラクターは、勾配ブースティングや適応ブースティングなど、さまざまなタイプのブースティングの概要を説明します。ビデオは、視聴者が試してみる問題セットを GitHub で提供することで締めくくられ、視聴者がチャンネルに登録してより多くの無料コンテンツを受け取るように促します。

06:00:00 - 07:00:00 「初心者のための機械学習コース」ビデオでは、ブースティングの背後にあるコア アイデア、さまざまなブースティング手法 (勾配ブースティング、適応型ブースティング、極端なブースティングなど) など、ブースティングに関連するいくつかのトピックを取り上げています。 )、ブースティングを使用してモデルをトレーニングするためのアルゴリズム、およびブースティングを使用して機械学習モデルの高いバイアスを削減する方法について説明します。さらに、このビデオでは、scikit-learn や mlx10 などのライブラリを使用して、Python でブースティング アルゴリズムを実装する方法について説明しています。このビデオでは、複数のモデルを組み合わせて、より優れたパフォーマンスを持つ新しいモデルを作成する方法である、スタックの概念についても触れています。インストラクターは、sklearn ライブラリを使用して、Python でロジスティック回帰、k 最近傍、ガウス単純ベイズ、およびランダム フォレスト モデルを使用してスタック分類モデルを作成する方法を示します。

07:00:00 - 08:00:00 このビデオでは、アンサンブル学習とスタック分類器から始めて、インストラクターがさまざまなトピックについて説明します。次に、教師なし学習とそのデータ ポイントのクラスタリングへの応用に焦点が移ります。講演者は、中心ベースや密度ベースなど、さまざまな種類のクラスタリング アルゴリズムについて説明し、クラスタリング モデルの品質を評価するための Dunn インデックスや Davies-Bouldin インデックスなどの評価手法の概要を説明します。最後に、スピーカーは、初期化、重心、ハイパーパラメーター、および制限を含む k-means クラスタリングについて詳しく説明しながら、2 つの重心を持つアルゴリズムの視覚化を提供します。全体として、このビデオはさまざまな機械学習の概念と手法をカバーしており、主題を包括的に紹介しています。

08:00:00 - 09:00:00 「初心者のための機械学習コース」というタイトルのこの YouTube ビデオでは、機械学習に関連するさまざまなトピックが取り上げられています。 1 つのセクションでは、k-means クラスタリングに焦点を当て、アルゴリズムを詳細に説明し、重心の初期化、クラスターの割り当て、収束までのクラスターの更新について説明します。このビデオでは、ランダムな初期化で直面する問題の解決策として、K-means++ とエルボ法も紹介しています。さらに、別のセクションでは、階層的クラスタリングについて詳しく説明し、凝集型および分割型クラスタリング手法を使用したクラスターの階層の作成について説明します。ビデオの最後では、心不全予測モデル プロジェクトについて説明します。このプロジェクトは、健康上の問題を早期に発見して命を救うのに役立つヘルスケア AI システムを構築することを目的としています。

09:00:00 - 09:50:00 「初心者のための機械学習コース」ビデオでは、不均衡なデータ、相関関係、特徴量エンジニアリング、モデルの構築と評価、NLP 手法を使用したテキスト分類など、機械学習に関連するさまざまなトピックを取り上げています。インストラクターは、バランスのとれたデータの重要性と、データを視覚化して理解を深めることの重要性を強調しています。プレゼンターは、スパムおよびハム検出システムを構築し、データを分析して理解し、NLP 手法を実装してメッセージをスパムまたはハムとして分類するためのプロセスを順を追って説明します。このコースでは、初心者の機械学習愛好家が構築できる基本的な概念の概要を説明します。


パート1

  • 00:00:00 このセクションでは、データ サイエンティストで機械学習エンジニアの Ayush が、機械学習アルゴリズムと現実世界の AI プロジェクトの理論的側面と実践的側面の両方をカバーする機械学習コースを紹介します。 Ayush は、コンピューター ビジョンや自然言語処理などのさまざまな AI アプリケーションに携わった経験や、機械学習や深層学習に関するエンドツーエンドのコースを提供する YouTube チャンネルなど、自身のバックグラウンドについて説明しています。彼は、機械学習の基礎から始まり、線形回帰、ロジスティック回帰、主成分分析、教師なし学習などのアルゴリズムの理解に進むコースのシラバスについて説明します。 Ayush は、セクションを締めくくる前に、オーバーフィッティングとアンダーフィッティングを理解することの重要性を強調しています。

  • 00:05:00 このセクションでは、講師が機械学習とは何かを簡単に説明します。基本的に、アルゴリズムを使用してデータを分析し、そのデータに基づいて明示的なプログラミングなしでインテリジェントな予測を行う必要があります。目標は、入力変数を出力変数にマッピングする関数を作成することです。たとえば、家の大きさや寝室の数などに基づいて家の価格を予測するなどです。インストラクターは、コンピューターを含む機械学習のより正式な定義も提供します。経験を積んだタスクのパフォーマンスを向上させるプログラム。全体として、インストラクターは、機械学習をうまく活用するために、これらの関数を作成する方法を理解することの重要性を強調しています。

  • 00:10:00 ビデオのこのセクションでは、自動運転車、株価予測、医療診断など、機械学習のさまざまなアプリケーションについてインストラクターが説明します。また、問題の調査とデータの分析から始めて、アルゴリズムのトレーニングとそのパフォーマンスの評価を行う、機械学習の基本的なワークフローについても説明しています。インストラクターは、教師あり、教師なし、および強化学習を含む、機械学習システムの主なタイプの概要も提供します。彼は、住宅価格予測を使用した教師あり学習の例を挙げています。この場合、住宅のサイズは、住宅の価格を予測するための特徴として使用されます。

  • 00:15:00 このセクションでは、スピーカーは教師あり学習とその 2 種類の問題 (回帰と分類) について説明します。スピーカーは、回帰のための住宅価格予測や分類のための画像分類などの例も提供します。スピーカーは、教師あり学習にはラベル付きデータが含まれ、出力変数が既知であり、入力変数と出力変数の間に関係があることを説明します。スピーカーは、データがラベル付けされていない教師なし学習についても簡単に言及し、モデルは利用可能なデータに基づいてパターンを認識しなければなりません。

  • 00:20:00 このセクションでは、スピーカーは機械学習における分類問題と回帰問題の違いについて説明します。問題の出力が連続値である場合、それは回帰問題と見なされます。出力が度数の場合は、分類の問題です。データをトレーニング セットとテスト セットに分割することの重要性が強調されており、80% がトレーニングに使用され、20% がモデルのテストに使用されます。講演者は、オーバーフィッティングとアンダーフィッティングの問題についても説明します。モデルはトレーニング データとテスト データの両方でうまく機能しないか、トレーニングではうまく機能するがテストでは失敗します。このセクションは、コース全体で使用されるいくつかの表記法で締めくくられています。

  • 00:25:00 このセクションでは、インストラクターが機械学習における教師あり学習と教師なし学習について説明します。教師あり学習では、入力データと出力データの両方を使用して予測を行い、入力変数を出力変数にマッピングする関数 f(x) が作成されます。インストラクターは、見通し、気温、湿度、風の強さなどの特徴を使用して、プレーヤーがテニスをするかどうかを予測するデータセットの例を示します。ターゲット変数は、プレーヤーがプレーするかどうかです。入力機能は独立していますが、ターゲット変数はそれらの機能に依存しています。全体として、教師あり学習には、入力データと出力データの間に関係があるラベル付きデータセットが含まれます。

  • 00:30:00 このセクションでは、インストラクターが、教師あり学習における独立した機能と依存する機能の違い、および回帰と分類の違いについて説明します。たとえば、株価や住宅価格の予測は回帰であり、糖尿病かどうかの識別は分類です。次にインストラクターは、教師なし学習を紹介し、依存する機能を含まない一連の独立した機能のみを含むことを説明します。この例は、データのラベルを知らない市場セグメンテーションです。インストラクターは、次のセクションでは教師なし学習についてさらに詳しく説明すると述べています。

  • 00:35:00 このセクションでは、出力データが連続している場合に使用される教師あり学習アルゴリズムの一種である線形回帰について学習します。目標は、入力変数を出力変数にマップする関数を作成することです。線形回帰では、散在するデータに直線を当てはめて予測を行います。たとえば、家の大きさに基づいて家の価格を予測します。線は仮説を表しており、データに近いほど予測が優れています。このセクションでは、線形回帰の概要を説明し、学習アルゴリズムに関する次のセクションとボストンの温泉予測に関するプロジェクトに向けて学習者を準備します。

  • 00:40:00 このセクションでは、インストラクターが仮説関数が線形回帰でどのように機能するかを説明します。仮説は、シータで表されるすべての特徴の重みを使用して構築されます。バイアス項 x0 は、y 切片、つまり線が y 軸と交差する場所を決定します。特徴の重みは機械によって学習され、最適な重みによって最適な予測が生成されます。インストラクターは、機械学習が学習パラメーター、特に特徴の重みに基づいていることを強調しています。仮説関数は、予測に使用できる出力変数に入力変数をマッピングします。

  • 00:45:00 このセクションでは、インストラクターが、特徴の重みとバイアス項を使用した線形回帰の仮説関数と、それをベクトル化された形式で表現する方法について説明します。彼は、Python では 1 行のコードで記述できることを示しました。次に、モデルのパフォーマンスを評価するために使用されるコスト関数と、実際のデータ ポイントと予測されたデータ ポイントの間の距離を計算するために使用される方法を紹介します。費用関数の概念を説明するための例として、散布図が使用されます。

  • 00:50:00 ビデオのこのセクションでは、スピーカーが機械学習におけるコスト関数の概念を説明しています。コスト関数には、残差と呼ばれるすべてのデータ ポイントの予測値と実際の値の差の計算が含まれます。予測値と実際の値の間の距離を取り、それらを 2 乗することによって、コスト関数が生成されます。目標は、モデルの有効性を決定するコスト関数を最小化することです。スピーカーは、最適なモデルを提供する最適なシータを見つけるための最適化手法として、勾配降下アルゴリズムも紹介します。

  • 00:55:00 このセクションでは、講師が勾配降下の背後にある概念について説明します。これは、機械学習でコスト関数を最小化するために使用される方法です。インストラクターは簡単な類推を使用して、勾配降下法が theta の値を微調整してコスト関数を最小化する方法を示します。次に、インストラクターは、このプロセスの数学的導出を説明し、偏導関数を使用してシータ値を更新します。最後に、講師は勾配降下アルゴリズムを紹介し、学習率とコスト関数の偏導関数を使用してシータを更新する手順を概説します。インストラクターは、学習率を調整する方法と、プロセスをベクトル化する利点についても説明します。

パート2

  • 01:00:00 このセクションでは、線形回帰で theta の偏導関数をベクトル化する方法を講師が説明します。シータ ゼロとシータ 1 の偏導関数を別々に取得する代わりに、それをジョイント ベクトル シータに入れて、計算したいものの偏導関数を取り出すことができます。このベクトル化を使用すると、導出された方程式をベクトル化された形式で記述でき、計算能力に使用できます。インストラクターは、1 つの方程式で最適なシータを与える正規方程式も強調します。それらは、線形回帰の仮定と、独立した機能と依存する機能の違いを説明しています。最後に、確率的勾配降下法、Adam 最適化アルゴリズム、RMS プロップなど、高度なレベルで使用できる他の最適化アルゴリズムについて言及しています。

  • 01:05:00 このセクションでは、講師が多項式回帰の概念と、それを使用して非線形データを線形回帰に適した線形形式に変換する方法について簡単に説明します。インストラクターは、ロジスティック回帰や分類タスクなど、コースの今後のトピックについても言及します。線形回帰とロジスティック回帰の違いを説明し、ロジスティック回帰の仮説を線形回帰の仮説と同様に提示しますが、データの分類に使用します。

  • 01:10:00 ビデオのこのセクションでは、インストラクターがロジスティック回帰の仮説を説明します。これには、0 と 1 の間の出力を取得するシグモイド関数が含まれます。次に、出力をしきい値 (0.5 または 0.7) と比較して予測します画像が猫かどうか。コスト関数または損失関数も、モデルの精度を評価する方法として説明されています。インストラクターは、1 つのトレーニング例のコスト関数の式を提供します。

  • 01:15:00 このセクションでは、スピーカーは機械学習における対数損失コスト関数とその式について説明します。この式は、グラウンド トゥルース値とモデル予測値を取り、後者の対数を計算し、グラウンド トゥルース値 (y_i) を乗算します。話者は、両方の値が同じ場合、コストはほぼゼロになり、異なる場合、コストは非常に高くなると説明しています。次に、コスト関数を使用してパラメーターを調整し、theta 値を更新して大域的最適値に近づける勾配降下アルゴリズムについて説明します。コスト関数の偏導関数を取得して、シータ値を更新します。

  • 01:20:00 このセクションでは、講演者は機械学習におけるベクトル化について説明し、ロジスティック回帰におけるコスト関数と勾配降下のベクトル化されたコードを提供します。彼らは、ベクトル化とは時間を節約するためにすべての計算を一度に行うことを意味すると説明しています。講演者は、ロジスティック回帰を分類アルゴリズムとして理解することの重要性を強調します。これには、最適なシータを見つけるための仮説、コスト関数、勾配降下法が含まれます。彼らはまた、次のセクションでは乳がんの検出とサポート ベクター マシンについて説明すると述べています。講演者は、データの読み込み、機能エンジニアリング、データの視覚化、機能の選択を含む、Jupyter Notebook をフォローするよう聴衆に勧めます。

  • 01:25:00 このセクションでは、インストラクターが、numpy、pandas、plotly、seaborn、および matplotlib を含む、プロジェクトで使用される Python ライブラリを紹介します。このプロジェクトには、機械学習を使用してボストンの住宅価格を予測することが含まれ、データは scikit-learn ライブラリから読み込まれます。ターゲット変数は y で、これは販売価格で、x はモデルの予測に使用される独立した特徴です。次に、データはデータ フレームに変換され、インストラクターは、さまざまな pandas 関数を使用して、行と列の数、null 以外の値、データ型など、データに関する情報にアクセスする方法を示します。 describe 関数は、各列の平均、標準偏差、最小値、最大値、およびパーセンタイルを表示するためにも使用されます。

  • 01:30:00 ビデオのこのセクションでは、プレゼンターは、ターゲット変数、販売価格、および機能変数を含む教師あり学習の問題に対する洞察を得るためのデータ分析手法について説明します。分布プロット、ペア プロット、qq プロットなどの視覚化ツールの使用方法を示します。また、外れ値を特定して処理する方法、歪度を計算する方法、およびデータに変換を適用する方法についても説明します。さらに、特徴間の相関の概念と、それを使用して問題に対して高度に相関する特徴を選択する方法を紹介します。

  • 01:35:00 ビデオのこのセクションでは、インストラクターが線形回帰を使用したモデル構築と精度チェックについて説明します。オーバーフィッティングとは、モデルがトレーニング データから多くのことを学習し、新しいデータでパフォーマンスが低下することです。インストラクターは、機能を削減するか、モデルの複雑さにペナルティを適用することで、正則化が過学習をどのように減らすことができるかを説明します。次のセクションでは、Lasso および Ridge 回帰を含む正則化された線形モデルについて説明します。インストラクターは、視聴者が問題に遭遇したときに解決策をオンラインで検索することを奨励し、さらなるプロジェクトのための Github リポジトリを提供します。

  • 01:40:00 このセクションでは、講演者は機械学習における正則化手法、特にリッジ回帰とラッソ回帰について説明します。リッジ回帰は、重要度の低い特徴の特徴の重みにペナルティを課し、それらをゼロに近づけます。 LASSO 回帰はさらに一歩進んで、パラメーターの重みをゼロに等しくすることで、重要度の低い特徴を排除します。 L2 ノルムを使用するリッジ回帰と L1 ノルムを使用するラッソ回帰を使用して、コスト関数の最後に正則化項が追加されます。話者はまた、バイアス項であるシータ ゼロにペナルティを科すべきではないことも強調しています。

  • 01:45:00 このセクションでは、インストラクターが、機械学習で最も重要なトピックの 1 つと考えられている正則化のトピックを紹介します。インストラクターは、モデルがトレーニング セットでは非常にうまく機能するが、テスト セットではうまく一般化できない場合に発生するオーバーフィッティングを減らすのに正則化が役立つと説明しています。正則化の背後にある主なアイデアは、それぞれのハイパーパラメーターまたはシータをゼロに等しくすることによって、重要度の低い機能または含まれる情報が少ない機能を排除することです。インストラクターは、住宅価格予測の例を使用して、正規化があまり役に立たない機能を排除するのにどのように役立つかを示します。

  • 01:50:00 ビデオのこのセクションでは、インストラクターが機械学習における特徴の重み付けと学習の概念について説明します。インストラクターは、住宅価格予測の例を使用して、家のサイズ、扇風機の数、寝室の数、エアコンなどのさまざまな特徴にさまざまな重みを与える方法を示します。これらの重みは、時間の経過とともに学習および最適化できます。重みは、コスト関数の偏導関数に関してパラメーターを微調整することで調整できます。これは、リッジ回帰などの正則化手法によって改善できます。

  • 01:55:00 このセクションのビデオでは、機械学習における正則化、特にリッジ回帰とラッソ回帰について説明しています。どちらのタイプの回帰もシータ値にペナルティを課しますが、リッジ回帰は L2 ノルムを使用し、なげなわ回帰は L1 ノルムを使用します。アルファ項は、モデルがフィーチャに対してどの程度厳密であるかを制御し、値が大きいほど厳密になります。どちらのタイプもバイアス項シータ 0 にペナルティを課すことはありません。LASSO 回帰の L1 ノルムは、重要度の低い特徴の重みをゼロに近づけるのに役立ち、モデルが過剰適合しにくくなります。

パート3

  • 02:00:00 このセクションのビデオでは、正則化における l1 と l2 のノルムと、それらの特定のユース ケースについて説明します。 L1 ノルムは非常に厳密で、重要でない特徴のシータを直接ゼロにしますが、L2 はより柔軟です。次に、ビデオでは、両方の基準の組み合わせであるエラスティック ネットについて簡単に説明します。ビデオでは、サポート ベクター マシン (SVM) について詳しく紹介しています。これは、分類タスクと回帰タスクの両方に使用される教師あり学習アルゴリズムです。 SVM は、猫と猫以外の認識システムで新しい点を猫または猫以外として分類しながら、マージンを最大化するために平行なマージンを持つ超平面を構築します。このビデオでは、SVM に関する今後のセクションで取り上げるトピックについても概説しています。

  • 02:05:00 このセクションでは、インストラクターがサポート ベクター マシン (SVM) と、2 つの並列超平面を構築してデータ ポイントを最大マージンで分離する方法について説明します。 SVM は、最も近いデータ ポイントを超平面から遠ざけながら、このマージンを最大化することを目的としています。最も近いデータ ポイントはサポート ベクターと呼ばれ、データを分離するための平行な超平面をサポートします。インストラクターは、癌の検出に SVM を使用する例を示し、ハード マージン分類とソフト マージン分類の違いを説明します。ハード マージン分類では、過剰適合につながる可能性のあるマージンに違反するデータ ポイントは許可されませんが、ソフト マージン分類では、過適合を防ぐために一部の違反が許可されます。

  • 02:10:00 このセクションでは、SVM のハード マージンとソフト マージンの概念が紹介されました。ハード マージンではデータ ポイントがマージンに入ることはありませんが、ソフト マージンでは一部のデータ ポイントがマージンに違反してオーバーフィットを回避できます。マージンの幅はパラメーター c によって調整されます。ここで、c が非常に大きいとマージンが非常に小さくなり、ac が 1 の場合はマージンが非常に大きくなります。 SVM での超平面の構築についても説明しました。これは、w 転置 x マイナス b = z で定義されます。ここで、w は重みパラメーター ベクトル、b はバイアス項です。ハード マージン予測の制約が定義されました。マージンの上または上は 1 と見なされ、下はゼロと見なされます。

  • 02:15:00 このセクションのビデオでは、サポート ベクター マシン (SVM) の仕組みについて説明し、SVM の数学的な説明を提供します。超平面のマージンは、w のノルムに対して 2 として記述されます。このマージンを最大化するには、w のノルムを最小化する必要があります。 SVM は、予測を行うためにマージンを最大化しようとします。このビデオでは、データの実際のラベルが 1 以上であることを前提として、2 つの超平面間の距離として表される目的関数を記述できることを説明しています。これは w のノルムの 2 倍です。ヒンジ損失またはソフト マージンとして記述される損失関数であり、適切な予測を得るためにどのように機能するかを簡単に説明します。非線形分類について説明する前に、線形 SVM の概念についても説明します。

  • 02:20:00 このセクションのビデオでは、非線形分類の概念と、非線形仕様の実現に役立つカーネル トリックについて説明しています。カーネル トリックは、入力データを x 関数の phi にマッピングすることにより、データを 1 次元から高次元空間に変換します。 RBF カーネル関数は、データを高次元空間に変換する有名なカーネルの 1 つです。このビデオでは、ゼータと呼ばれる新しい変数を導入することで目的関数を形式化するのに役立つ主問題についても説明しています。 zeta 変数は、1 から n へのすべてのラウンドの各メンバー i に対して導入されます。

  • 02:25:00 このセクションでは、講演者はヒンジ損失の概念と、それを使用して機械学習の問題のコスト関数を定式化する方法を紹介します。彼らは、準勾配降下法を使用してコスト関数のパラメーターを更新する方法と主問題がどのように機能するかを説明し、それが機械学習への初心者に優しいアプローチであることを強調しています。講演者は、経験的リスクの最小化とサポート ベクター回帰についても説明し、これらの概念の方程式を示します。質問がある場合は視聴者にコメントしてもらい、次のセクションではエンドツーエンドの機械学習プロジェクトとして株価予測子を作成することに焦点を当てることを述べて終了します。

  • 02:30:00 このセクションでは、スピーカーは、NumPy、Pandas、Matplotlib、Seaborn、YFinance などの Python のライブラリを使用して株価予測子を作成する方法を示します。このコードは Yahoo Finance からデータをダウンロードし、ダウンロードする株式のコードを入力するための入力を受け取ります。データは自動調整で調整され、データの形状が表示され、合計 1256 のトレーニング例と 5 つの列が表示されます。講演者は、これが株価予測を構築するための出発点であると説明しています。

  • 02:35:00 ビデオのこのセクションでは、講演者は株価予測のためのデータ探索と分析について説明します。スピーカーは、データの平均、標準偏差、最大値、最小値などの統計を調べることから始めます。彼らは、株価予測は非常に非線形であり、教育目的でのみ使用する必要があると警告しています.スピーカーは、対象変数「近い」の分析に進み、非線形性と、出力を正確に予測するために信頼できないことを示します。次にスピーカーは、「オープン」と「クローズ」の分布をプロットして、データを処理し、特徴量エンジニアリングを適用する方法をよりよく理解します。最後に、スピーカーは結果を要約し、データについて理解したことを概説して締めくくります。

  • 02:40:00 このセクションでは、線形回帰、ロジスティック回帰、正規化された線形モデル、サポート ベクター マシン、主成分分析など、これまでのコースで取り上げたさまざまな機械学習アルゴリズムについて説明します。講演者は、線形回帰はしばしば悪いアルゴリズムと見なされますが、非線形の株価を予測する場合など、特定の場合には強力になる可能性があると説明しています。データをトレーニング セットとテスト セットに分割することの重要性が強調され、スピーカーはこれを達成するために train_test_split 関数を使用する方法を実演します。次に、線形回帰アルゴリズムがインスタンス化され、トレーニング セットでトレーニングされ、テスト セットの予測に使用されます。予測された出力が表示され、テスト セットからの実際の出力と比較されます。

  • 02:45:00 このセクションでは、線形回帰モデルのパフォーマンスを評価するための行列の計算について話します。彼らは、平均二乗誤差 (MSE)、二乗平均平方根誤差 (RMSE)、および R2 平方を使用してモデルの有効性を評価することについて説明しています。スピーカーはこれらの行列を計算するヘルパー関数を提供し、それを使用して線形回帰モデルのパフォーマンスを評価します。彼らは、MSE と RMSE がほぼゼロに等しいことを発見しました。これは、モデルが値を正確に予測していることを意味します。 R2 の二乗も 1 に近く、モデルが適切に適合していることを示しています。

  • 02:50:00 このセクションでは、スピーカーはリッジやラッソなどの正則化された線形モデルについて説明し、Python で Scikit-Learn を使用してそれらを実装する方法を示します。話者は、なげなわはあまり重要でない機能を排除し、リッジはそれらにペナルティを課すと説明しています。講演者によると、尾根モデルは過適合になりにくいため、モデルを保存してウェブサイトを構築するのに適しています。講演者はサポート ベクター回帰についても説明し、グリッド サーチ CV を使用して微調整してさまざまな値をチェックし、最適なモデルを選択する方法を示します。

  • 02:55:00 このセクションのビデオでは、機械学習に正則化された線形モデルを使用する方法と、以前に使用した方法よりも強力である方法について説明しています。プレゼンターは、joblib を使用してモデルをインポートおよび保存する方法と、将来の使用のために保存されたモデルをロードする方法の例を紹介します。このビデオでは、Flask を使用して単純なアプリを作成し、HTML ファイルからテンプレートをレンダリングする方法についても詳しく説明します。 index.html ファイルを作成し、アプリ ルートでレンダリングする方法のデモが提供されています。

パート 4

  • 03:00:00 ビデオのこのセクションでは、スピーカーはエンド ツー エンドの機械学習プロジェクトのために Flask を使用してサーバーと Web サイトをセットアップする方法を示しています。フォームを使用してデータを入力し、前処理し、読み込まれたモデルを使用して予測を行い、その予測を layout.html テンプレートから派生した predict.html テンプレートに返す方法を説明しています。また、スピーカーは、モデルをより強力にするためにデータ機能を変更することをユーザーに奨励しますが、モデルを複雑にしすぎないように警告します。彼らは、多重共線データを扱う際の線形回帰の限界を理解することの重要性を強調することによって結論付けています。

  • 03:05:00 YouTube 動画「初心者のための機械学習コース」のこのセクションでは、講師が主成分分析 (PCA) を使用してデータの多重共線性を除去する方法を説明しています。相関変数は機械学習モデルで問題になる可能性がありますが、PCA はこの問題に効果的に対処できる次元削減アルゴリズムです。 PCA について学習する準備をするために、インストラクターは次元削減の概念を理解するための基礎となる線形変換と固有ベクトル/固有値を簡単に復習します。インストラクターは、線形代数を深く掘り下げることに関心のある人に YouTube チャンネルを推奨していますが、この資料は PCA を理解するために必要ではないことを強調しています。

  • 03:10:00 このセクションでは、インストラクターが線形変換、固有ベクトル、固有値、および主成分分析 (PCA) におけるそれらの重要性について説明します。線形変換は、各ベクトル空間で線形構造を維持しながら、あるベクトル空間を別のベクトル空間に変換する機能です。 Eigenvectors と eigenvalues は、それぞれ新しい変換されたベクトルとスケーリングされる係数を表します。インストラクターは、特に大規模なデータセットでの次元削減の必要性と、PCA を使用して大規模な機能セットをより小さな機能セットに変換する方法についても説明します。全体として、これらの概念を理解することは、実際のシナリオでテキストおよび画像データを操作するために重要です。

  • 03:15:00 このセクションでは、可能な限り多くの情報を保持しながらデータセットの次元を削減する主成分分析 (PCA) の背後にある基本的な直感についてスピーカーが説明します。これらは、初期変数の線形結合である新しい変数または主成分を PCA がどのように構築するかを説明しています。これらのコンポーネントは無相関であり、ほとんどの情報は最初のコンポーネントに圧縮されています。講演者はまた、主成分へのデータ射影の視覚化についても説明し、アルゴリズムは成分が無相関であることを保証しなければならないことを強調します。

  • 03:20:00 このセクションでは、主成分分析 (PCA) に関連して、データの前処理の重要性について説明します。 PCA の最初のステップは、データが同じ範囲内に収まるようにデータを標準化することです。PCA は外れ値に敏感であるため、これは重要です。データが標準化されると、データの共分散行列が計算され、入力変数が相互にどのように変化しているかが理解されます。相関性の高い変数には不要な情報が含まれている可能性があり、削除することができます。最後に、共分散行列の固有ベクトルと固有値が計算されます。これらは、データを低次元空間に変換する際の重要な要素です。

  • 03:25:00 このセクションでは、インストラクターが Python で固有ベクトルと固有値を計算して、元のベクトルからベクトルを変換するプロセスと、固有値と呼ばれる引き伸ばされる係数について説明します。固有ベクトル行列と固有値行列の列は降順に並べ替えられ、各固有ベクトルの累積エネルギー量が計算されます。次に、エネルギー含有量が最も高い固有ベクトルのサブセットが基底ベクトルとして選択されます。最後に、データが新しい基底に投影されます。インストラクターは、学習理論、バイアスと分散のトレードオフ、近似、推定誤差など、次のセクションで取り上げるトピックの概要を説明して、チュートリアルを終了します。

  • 03:30:00 このセクションでは、インストラクターが経験的リスク最小化の概念と、機械学習におけるバイアスと分散のトレードオフを理解することの重要性について説明します。インストラクターは、バイアスと分散は理解するのが簡単な概念のように思えますが、実際の製品を開発するときにそれらを実際に習得するのは難しいと強調しています.インストラクターは、機能やデータの量が少ないためにモデルがトレーニング セットでうまく機能しない場合に発生するアンダーフィッティングについても説明します。インストラクターは、より多くの機能を生成し、モデルのパフォーマンスを向上させる機能エンジニアリングを提案します。

  • 03:35:00 ビデオのこのセクションでは、アンダーフィッティング、グッド フィット、オーバーフィッティングなど、さまざまな種類の回帰モデルについて説明します。オーバーフィッティングは、モデルがトレーニング セットではうまく機能するが、モデルが複雑すぎるか機能が多すぎるためにテスト セットではうまく機能しない場合に発生します。重要な機能を選択するか、正則化を使用することで防ぐことができます。偏りと分散のトレードオフについても説明します。トレーニング セットでは誤差が小さいが、検証セットでは誤差が大きいモデルは分散が大きいことを示し、アンサンブル学習法でそれを減らすためにバギングが使用されます。

  • 03:40:00 このセクションでは、講師が、モデルの偏りや分散が高いかどうかを特定する方法について説明します。モデルの分散が大きい場合、トレーニング セットのエラー率が 15% であるのに対し、評価セットのエラー率は 16% である可能性があります。一方、偏りが大きい場合、評価で 30% のエラー率が発生する可能性があります。インストラクターは、モデルからの出力である正確な値とその近似値との差である近似推定誤差の概念についても説明します。最後に、彼らは、分類モデルを構築するときの基本エラーまたは人間レベルのパフォーマンスが約 0% であるという仮定に言及しています。

  • 03:45:00 このセクションでは、ビデオで経験的リスク最小化の概念を紹介します。これは、ターゲット関数によってラベルが割り当てられた、大規模な分布からトレーニング セット サンプルを受け取るアルゴリズムです。目標は、未知の分布に関する誤差を最小限に抑えることです。これにより、モデルは、これまで見たことのない新しい例を最小限の誤差で予測できます。このビデオでは、出力予測子がトレーニング セットから学習した重みに依存すること、および経験的リスク最小化と呼ばれるエラーまたはリスクを最小化することが目標であることを強調しています。このビデオでは、視聴者がコメント ボックスで質問したり、コースの Web サイトをチェックしたりするよう呼びかけています。

  • 03:50:00 このセクションでは、講師が機械学習におけるネストされた if-else ステートメントの概念について説明します。これは、質問をすることによってデータを分割する一般的な方法です。彼らは、4 つの特徴と花の種を示すラベルを含む Iris データセットの例を使用します。タスクは、4 つの特徴に基づいて花の種を検出し、バイナリ分類データセットにすることです。インストラクターは、if-else ステートメントを使用して単純な分類器を作成し、特徴に基づいてデータを分割し、ラベルを決定する方法を説明します。

  • 03:55:00 動画のこのセクションでは、花びらの長さとがく片の長さの 2 つの特徴を使用して簡単な決定木を作成する方法を講師が説明します。ディシジョン ツリーは、if-else ステートメントとネストされたループを使用して、さまざまな条件を定義し、ターゲット変数を分類します。インストラクターは、ルート ノード、親ノード、子ノードなどの決定木の用語についても説明します。

パート5

  • 04:00:00 ビデオのこのセクションでは、インストラクターが決定木の基本用語 (ターミナルまたはリーフ ノードとブランチなど) について説明します。また、データの分割とノードの剪定 (ツリー内の特定のノードの削除) についても説明しています。インストラクターは、決定木をよりよく理解するために、メモを取り、用語を理解することの重要性を強調します。次に、決定境界、または超平面が決定木でどのように見えるか、および各結果に対してそれらがどのように構築されるかを説明します。インストラクターは、この例で選択した 2 つの特徴に基づいて超平面をプロットし、結果に応じてそれらがどのように構築されるかを示します。

  • 04:05:00 このセクションでは、インストラクターは、エントロピー、情報利得、ジニ不純物などの属性選択手段を使用して決定木がどのように構築されるかを説明します。これらの測定値は、どのフィーチャをルート ノードにするか、またはデータ セットを分割する方法を決定するのに役立ちます。インストラクターは、悪いモデルにならないように適切な機能を選択することの重要性を強調しています。エントロピーはランダム性の尺度として定義され、エントロピーが高いほど、そこから情報を引き出すのが難しくなります。インストラクターは、決定木を構築する際のエントロピーの重要性を理解するのに役立つ例とエントロピーの特性を提供します。

  • 04:10:00 ビデオのこのセクションでは、インストラクターが、各クラスの確率と確率の対数を含む式を使用して、ランダム性の尺度であるエントロピーを計算する方法を説明します。インストラクターは、ゴルフをするためのデータセットの例を使用し、「はい」と「いいえ」のクラスのエントロピーを計算して、式がどのように機能するかを示します。また、インストラクターは、2 つのクラスを持つバイナリ分類器を含むエントロピーのさまざまな特性と、機械学習モデルの精度を向上させるためにエントロピーを最小化することの重要性についても説明します。

  • 04:15:00 このセクションでは、インストラクターがエントロピーの概念を説明します。エントロピーは、決定木のために分割する必要があるかどうかを決定する属性のランダム性の尺度です。エントロピーは、データ内の一意の値の数に基づいて計算されます。目標は、エントロピーを最小限に抑えて、より良いデシジョン ツリーの結果を得ることです。インストラクターは、さまざまなシナリオの例を示し、それぞれのエントロピーを計算して、属性がいつ葉ノードになるか、さらに分割する必要があるかを理解する方法を示します。最大エントロピーは 1 で、最小エントロピーは 0 です。さまざまなディシジョン ツリー アルゴリズムは、エントロピー値に基づいて、いつ属性をリーフと見なすか、さらに分割するかに関する特定の規則に従います。

  • 04:20:00 このセクションでは、プレゼンターがランダム性の尺度としてのエントロピーの概念とエントロピーの図について説明します。エントロピーの最大値は 1 で、特定の式を使用して計算できます。情報獲得に移ると、発表者はそれを別の属性選択手段として紹介し、それを説明するために使用されるデータセットの例を提供します。データセットは、ラベルの数に基づいて小さなサブセットに分割され、サブセットごとにエントロピーが計算されます。これは情報取得の予備的な説明であり、次のセクションでさらに詳しく説明します。

  • 04:25:00 セクションでは、エントロピーを使用して決定木で情報利得を計算する方法について説明します。このプロセスには、データ分布全体のエントロピーを取得し、データを分割する前後のエントロピーを取得することが含まれます。情報利得の式には、分割後の加重エントロピーから分割前のエントロピーを差し引くことが含まれます。このビデオで使用されている例では、エントロピーと加重エントロピーが分割ごとに計算され、平均化されてデータセット全体の加重エントロピーが得られる方法を示しています。最後に、分割後のエントロピーから分割前のエントロピーを引いて情報利得を求める。

  • 04:30:00 ジニ不純物はエントロピー計算に非常に似ていますが、対数を使用する代わりに、確率の 2 乗を使用します。データセットを複数のカテゴリに分割した後、加重ジニ不純度を計算し、それを前のジニ不純から差し引いて情報利得を取得します。これは、機械学習でよく使用される一般的な方法です。デシジョン ツリー モデルを構築する際には、ジニ不純物、エントロピー、および情報ゲインを理解することが重要です。

  • 04:35:00 このセクションでは、インストラクターは決定木における不純物の別の尺度としてジニ不純物の概念を説明します。ジニ不純度は、y が 1 から i を引いた値が k までずっと 1 に等しい、特定の不純度に対して与えられる記号です。インストラクターは、ジニ不純のシナリオを、yes または no の一意のカテゴリ値を持つ例で説明します。ここで、0.5 は yes の数の確率であり、no の数は 0.5 です。 0.5 のゲイン不純物は、ジニ不純物の最大値です。これは、エントロピーでの対数関数の使用を回避するため、より高速であるため、エントロピーの代替として主に使用されます。最後に、インストラクターはエントロピーとジニ不純物の図を示し、次のセクションで決定木分類器を使用して回帰タスクを実行する方法を示すことを約束します。

  • 04:40:00 ビデオのこのセクションでは、データを分割して情報利得を決定する前にエントロピーを計算する方法をインストラクターが説明します。データ分布のエントロピーを取得し、見通し変数に関する情報利得を計算します。次に、この変数に基づいてデータを分割し、加重エントロピーと温度、湿度、風の変数の情報利得を計算し続けます。最終的に、outlook での情報ゲインが最も高いことがわかり、決定木のルート ノードとして選択されます。

  • 04:45:00 決定木と、それを分類問題と回帰問題の両方に使用する方法。分類では、エントロピーやジニ係数などの不純物の尺度の計算に基づいて決定木が構築され、各ノードで決定が行われます。目的は、ツリーをできるだけ純粋にすること、または純粋になるポイントに達するまでツリーを作成することです。回帰では、リーフ ノードに到達するまで、各分割ポイントでターゲット値の平均をとることによって決定木が構築されます。決定木ではオーバーフィッティングが問題になる可能性があるため、特定の深さで木の成長を止めるか、いくつかの枝を剪定してより堅牢にすることが重要です。

  • 04:50:00 このセクションでは、デシジョン ツリーを操作する際に属性選択の尺度を理解することが重要であることをインストラクターが説明します。例を示し、決定木回帰と住宅分類子の実装について説明します。インストラクターは、実装から学ぶことの重要性を強調し、ツリーの最大深度、最小サンプル分割、最小サンプル リーフ、ランダム状態制御などのハイパーパラメーターについて説明します。また、グラフィックス ツールを使用して決定木をプロットする例も示しています。

  • 04:55:00 このセクションでは、決定木回帰と、平均二乗誤差、平均絶対誤差、ポイズンなど、関数を測定するための基準について説明します。このビデオでは、過剰適合を制御する際のハイパーパラメーター、特に最大ステップの重要性を強調しています。決定木の例とプロットなどの方法も紹介されており、機械学習の重要な概念として決定木を理解することの重要性がビデオで強調されています。次のセクションでは、アンサンブル学習とその 3 つの手法 (バギング、ブースティング、スタッキング) について説明します。これらは、Kaggle コンテストで一般的に使用されます。
Machine Learning Course for Beginners
Machine Learning Course for Beginners
  • 2021.08.30
  • www.youtube.com
Learn the theory and practical application of machine learning concepts in this comprehensive course for beginners.🔗 Learning resources: https://github.com/...
 

初心者向け機械学習コース (パート 6-10)


初心者のための機械学習コース

パート6
  • 05:00:00 このセクションでは、オーバーフィッティングとアンダーフィッティングが発生する可能性がある高分散モデルと高バイアス モデルの概念について説明します。機械学習の目標は、最適な精度を達成するために、バイアスと分散の低いモデルを用意することです。インストラクターは、複数のモデルがデータでトレーニングされ、予測が各モデルから取得されて投票され、最終的に正解または予測が決定される、アンサンブル学習の例を示します。アンサンブル学習では個人の回答よりも多数派の方が正確であることが多く、講師はクイズ問題や選挙投票などの例を使って概念を説明します。

  • 05:05:00 このセクションでは、インストラクターがアンサンブル学習の概要と、それを分類および回帰の問題に使用する方法について説明します。分類では投票の過半数が考慮されますが、回帰では基本モデルからの出力の平均または中央値が最終的な予測に使用されます。アンサンブル学習で使用される手法には、バギング、ブースティング、スタッキング、およびカスケードが含まれます。ほとんどの Kaggle コンテストの勝者は、何らかの形式のアンサンブル学習手法を使用しています。さらに、インストラクターは、Amazon や Google などの企業が、XGBoost やランダム フォレストなどのこれらのアルゴリズムを自社製品で使用していることを指摘しています。

  • 05:10:00 セクションでは、ブートストラップ アグリゲーションとしても知られるアンサンブル学習手法であるバギングの基本について説明します。バギングでは、トレーニング データのサブセットをランダムにサンプリングし、各サブセットでモデルをトレーニングします。アイデアは、複数のモデルのアンサンブルを使用することで、オーバーフィッティングを減らし、モデルの精度を向上させることです。このセクションでは、データをサンプリングする方法、モデルのサブセットをトレーニングする方法、予測を組み合わせて精度を高める方法など、バギングの仕組みについて説明します。

  • 05:15:00 このセクションでは、機械学習モデルの精度を向上させる手法であるバギングの概念について説明します。バギングには、データを置換してサンプリングし、各サンプルでモデルをトレーニングすることが含まれます。次に、個々のモデルを組み合わせて、より正確な予測を生成する集約モデルを形成します。講演者は、バギングは高度な数学を必要としない概念的に単純な手法であると述べています。

  • 05:20:00 このセクションでは、スピーカーはバギングについて説明します。バギングは、高分散および低バイアスの基本モデルの分散を減らすのに役立ちます。バギングはこれらのモデルを組み合わせて、より大きく、分散が小さく、偏りの少ないモデルを作成します。行サンプリングは、データのサンプリング中に使用されます。これには、大量のデータ分布から行のみをサンプリングすることが含まれます。バギングでは、行と列の両方のサンプリングを使用するランダム フォレストとは異なり、行のサンプリングのみが使用されることに注意することが重要です。バギングはブートストラップ集約とも呼ばれ、基本モデルのブートストラップと集約が含まれます。

  • 05:25:00 このセクションでは、インストラクターがバギング手法を要約します。これは、高分散モデルと低バイアス モデルの分散を減らす方法です。バギングには、トレーニングのためにデータのサブセットを取得し、分類のために多数の投票を組み合わせることが含まれます。インストラクターは、これに対する強力なアルゴリズムは、決定木、バギング、および列サンプリングの組み合わせであるランダム フォレストであると考えています。デシジョン ツリーは単純な決定を行い、ノードを分割しますが、バギングにはトレーニング用にデータのサブセットを取得することが含まれます。列のサブセットを取得して、列サンプリングまたは機能バギングも使用されます。インストラクターは、ランダム フォレストは強力であり、Google、Quora、Amazon などの大手企業が使用していると主張しています。

  • 05:30:00 このセクションでは、機械学習インストラクターがバギングとランダム フォレストの概念について説明します。バギングには、置換による行のサンプリングとサブセットでの意思決定ツリーのトレーニングが含まれますが、ランダム フォレストでは列のサンプリングがミックスに追加されます。これは、行と列の両方がサンプリングされることを意味し、アンサンブル学習手法により、モデルのパフォーマンスが向上する可能性が高くなります。インストラクターは、サンプリング後に取り残されたポイントであり、相互検証に使用できるアウト オブ バッグ (oob) ポイントの概念についても言及しています。最後に、講師はバギングとランダム フォレストの主な違いを要約します。

  • 05:35:00 このセクションのビデオでは、機械学習におけるバギングとランダム フォレストの手法について説明します。バギングには行サンプリングが含まれるため、モデルが大きくなり、分散が減少します。ランダム フォレストも同じですが、基本モデルとして列サンプリングと決定木が使用されます。デシジョン ツリーでのトレーニングの複雑さは、n log m × n × d のオーダーですが、ランダム フォレストでは、d × k × n です。このビデオでは、ランダム フォレストを自明に並列化し、トレーニングを容易にする方法についても説明しています。最後に、非常にランダム化されたツリーの概念が導入され、可能な値を試して決定ツリーのしきい値を決定します。

  • 05:40:00 このセクションでは、スピーカーは、ランダム フォレストですべての可能な値を試す計算コストの高い方法の代替として、極端にランダム化されたツリーの概念について説明します。列と行のサブセットをサンプリングすることにより、分散は減少しますが、ランダム フォレストと比較して良い結果が得られる可能性は低くなります。スピーカーは、時間の複雑さによる大規模なデータセットでのランダム フォレストの使用の欠点についても言及していますが、それを試して、グリッド検索を使用してハイパーパラメーターを調整することを提案しています。次に、ランダム フォレストを実装するための scikit-learn API を紹介し、ハイパーパラメーターを微調整するためのプロジェクトについて言及します。

  • 05:45:00 このセクションでは、ランダム フォレスト分類子について、そのパラメーターと属性について説明します。最初のパラメーターは n_estimators で、使用される決定木の数です。ツリーの属性選択基準と最大深度についても、分割に必要な最小サンプル数や特徴の最大数などの他のパラメーターとともに説明します。モデルの重要な機能を選択するために、機能の重要度の使用についても言及されています。ランダム フォレスト リグレッサーについても、分類子との類似点について簡単に説明します。

  • 05:50:00 ビデオのこのセクションでは、インストラクターがアンサンブル テクニック、特にブースティングについて説明します。ブースティングは、もう 1 つの一般的なアンサンブル学習手法です。インストラクターは、勾配ブースティング、適応ブースティング (AdaBoost)、エクストリーム ブースティング (XGBoost) の概要を説明します。講師はまた、視聴者が試すことができる問題セットが GitHub に用意されていることにも言及し、YouTube チャンネルに登録してより多くの無料コンテンツの作成をサポートすることを視聴者に勧めています。

  • 05:55:00 このセクションのビデオでは、機械学習におけるバギングとブースティングのトピックについて説明します。バギングは、列と行のサンプリングを行ってから集計を行うことで、モデルの大きな分散を減らすために使用されます。一方、ブースティングは、弱学習器を加法的に組み合わせて強力なモデルにすることにより、モデルのバイアスを減らすために使用されます。ブースティングを使用する核となるアイデアは、非常に偏りのあるモデルの偏りを減らすことです。このビデオでは、トレーニング データの例を使用して、ブースティングの基本的な直感を提供します。

パート 7

  • 06:00:00 このセクションでは、スピーカーはブーストの背後にある中心的なアイデアと、それがエラーを最小限に抑えるためにどのように機能するかを説明します。ブースティングは、各例のラベルを使用してトレーニング データ (x および y) でモデルをトレーニングすることを含む教師あり学習手法です。次に、モデルを使用して各入力の出力を予測し、予測値とグラウンド トゥルース値の差を測定して損失を計算します。モデルは、誤分類されたデータ、または MSE または MAE が高いデータに焦点を合わせて、残差を減らすようにトレーニングされます。ブースティングでは、残差エラーに複数のモデルを当てはめ、トレーニング例ごとに当てはめることでエラーを最小限に抑えます。最終的なモデルは、アルファで重み付けされたこれらすべてのモデルの合計です。

  • 06:05:00 このセクションでは、機械学習モデルのバイアスを減らす手法であるブースティングの概念について説明します。ブースティングは、以前のモデルからの残差をフィッティングすることにより、弱い学習者を強い学習者に変換します。その結果、トレーニング セットで適切に機能する低バイアスおよび低分散のモデルが得られます。ただし、トレーニング セットでモデルが適切すぎる場合は、オーバーフィッティングのリスクがあります。勾配ブースティング、適応ブースト、極端なブースティングなど、いくつかのブースティング手法について説明します。さらに、モデルのパフォーマンスを向上させるもう 1 つの手法であるバギングの背後にある考え方についても簡単に説明します。

  • 06:10:00 このセクションでは、弱い学習者を強い学習者に変換するブースティング アルゴリズムである勾配ブースティングの概念についてインストラクターが説明します。勾配ブースティングは、大手テクノロジー企業や制作会社で使用される強力なアルゴリズムです。これは微分可能なコスト関数であり、トレーニング セットの下でエラーを改善するために導関数を使用できます。インストラクターは、勾配ブースティングの実際の例を提供し、微分可能なコスト関数とアルゴリズムにおけるそれらの重要性について説明します。議論には、勾配降下法でのトレーニング データとコスト関数の使用が含まれており、機械学習の有用なツールとなっています。

  • 06:15:00 このセクションでは、スピーカーはブースティングを使用してモデルをトレーニングするためのアルゴリズムを説明します。このアルゴリズムには、モデルを定数値で初期化し、残差または疑似残差を計算し、モデルに関するコスト関数の偏導関数を取得し、基本学習器を前のモデルの残差に当てはめ、各モデルを反復処理して、疑似残差を計算し、基本学習器に適合させます。目標は、コスト関数を最小化し、モデルの精度を向上させるラムダ値を見つけることです。

  • 06:20:00 このセクションでは、スピーカーは勾配ブースティング アルゴリズムのプロセスを説明します。これは、モデルを定数で初期化し、for ループを適用して各トレーニング例の残差を取り出すことから始まります。次に、モデルはベース学習器を残差に当てはめ、各モデルの乗数ラムダ m を計算します。モデルを更新するには、前のモデルを前の残差に当てはめ、前のモデルと 1 次元の最適化問題を解いた後に得られる新しいモデルを加算して最終的なモデルを取得します。スピーカーは、正則化と縮小の概念と、バイアスが高いためにブースティングでそれらが必要な理由についても説明します。

  • 06:25:00 このセクションのビデオでは、ブースティングを使用して機械学習モデルの高いバイアスを削減する方法について説明しています。ブースティングでは、反復ごとに以前のモデルの残差をフィッティングする必要があるため、オーバーフィッティングと分散の増加が発生する可能性があります。この問題を回避するために、v と呼ばれる学習可能なパラメーターを使用して正則化と縮小を追加できます。経験的に、v の値が 0.1 に等しいと劇的な改善が得られることがわかっています。このビデオでは、勾配ブースティング決定木の時間の複雑さと、scikit-learn API を介した勾配ブースティングの実装についても説明しています。

  • 06:30:00 このセクションでは、講演者は Scikit-learn API を使用した勾配ブースティング分類子の実装について説明します。それらは、損失、学習率、推定器の数など、関連するさまざまなパラメーターを説明しています。学習率は、過分散を減らし、過剰適合を防ぐために使用されます。 Gradient Boosting Classifier の実装はわずか 1 行のコードであり、予測確率は、特定のクラスについてデータが true である確率を示します。スピーカーは、Gradient Boosting Regressor の実装についても簡単に説明し、ドキュメントから学ぶことの重要性を強調します。

  • 06:35:00 「初心者のための機械学習コース」ビデオのこのセクションでは、講師が AdaBoost 分類器と Cython API を使用したその実装、および Extreme Gradient Boosting (XGBoost) アルゴリズムについて説明します。インストラクターは、XGBoost は、行と列のサンプリングによるランダム化を追加するグラデーション ブースティングの高度なバージョンであり、機械学習の問題に対する強力なツールになると説明しています。このセクションでは、XGBoost で使用されるさまざまなパラメーターと、モデルの微調整におけるそれらの重要性についても説明します。

  • 06:40:00 このセクションでは、スピーカーは、Gradient Boosting Tree、GB Linear、DART などの機械学習アルゴリズムのさまざまなパッケージについて話します。評価マトリックスや正則化など、調整可能なさまざまなパラメーターと、それらがモデルに与える影響について説明します。講演者は XGBoost についても言及し、Python での使用方法を示します。彼らは、モデルを微調整することの重要性と、それがどのように精度の向上につながるかを強調しています。最後に、スピーカーはスタッキングの概念と、それがモデルの精度を向上させる方法を紹介します。

  • 06:45:00 このセクションでは、インストラクターがスタッキングの概念と、バギングやブースティングとの違いを紹介します。スタッキングには、高度に調整され、適切なバイアスと分散のトレードオフを持つさまざまな基本学習器を使用し、それらをさまざまなデータ サブセットでトレーニングして、さまざまなモデルを作成することが含まれます。これは、高分散で低バイアスの基本学習器を使用して高分散を減らすために使用されるバギングや、基本モデルが必ずしも高度に調整されていないブースティングとは異なります。インストラクターは、ロジスティック回帰、サポート ベクター マシン、k 最近傍など、さまざまな基本モデルとの積み重ねの例を提供します。これらは、バイアスと分散のトレードオフが良好な優れたモデルを生成するために広範な微調整が行われています。

  • 06:50:00 このセクションでは、アンサンブル学習の一種であるスタッキングの背後にある基本的な直感についてスピーカーが説明します。スタッキングには、トレーニング データをサブセットに分割し、各サブセットで異なる分類子をトレーニングすることが含まれます。これらの基本学習者は、バイアスと分散のバランスを取るのが得意です。分散が高くバイアスが低いバギングや、バイアスが高く分散が低いブースティングとは異なります。各モデルから予測を取得した後、予測されたクラス ラベルまたはその確率でメタ分類器がトレーニングされます。アイデアは、これらのアンサンブル モデルの予測を組み合わせて、より正確で堅牢な分類器を作成することです。

  • 06:55:00 このセクションでは、複数のモデルを組み合わせてパフォーマンスの高い新しいモデルを作成する方法であるスタッキングについてインストラクターが説明します。このプロセスでは、複数の基本モデルをトレーニングし、それらの予測を機能として使用して、最終的な予測を出力する第 2 レベルの分類器をトレーニングします。インストラクターは、sklearn ライブラリを使用して Python でロジスティック回帰、k 最近傍、ガウス単純ベイズ、およびランダム フォレスト モデルを使用してスタック分類モデルを作成する例を示します。また、mlx10 ライブラリのスタック分類器の使用方法も示しています。

パート8

  • 07:00:00 このセクションでは、スピーカーは、K 近傍、ランダム フォレスト、ロジスティック回帰などのさまざまなモデルを使用して、スタック分類器を実装する方法を説明します。オブジェクトをインスタンス化し、3 分割交差検証を実行して、最高の精度で最適なモデルを選択します。スピーカーは、決定境界をプロットし、グリッド検索を使用してバイアスと分散のトレードオフを調整する方法も示します。最適なパラメーターと機能を選択することで、スタッキング分類器は個々のモデルよりも正確な予測を提供できます。

  • 07:05:00 このセクションでは、バギング、ランダム フォレスト、ブースティング、勾配ブースティング決定木、AdaBoost、XGBoost など、アンサンブル学習に関する前のセクションで説明したトピックを講師がまとめます。また、インストラクターはスタッキングの概要を説明し、実際のアルゴリズムの例を示します。このセクションは、インストラクタの YouTube チャンネルに登録するようリマインダーと、ニューラル ネットワーク、GAN、畳み込みニューラル ネットワークなど、アンサンブル学習を超えたトピックをカバーする機械学習コース CS01 に関する情報で締めくくります。最後に、インストラクターは、教師なし学習と将来のプロジェクトに関する今後のセクションを紹介します。

  • 07:10:00 このセクションでは、スピーカーは教師なし学習の概念を紹介します。教師なし学習では、ラベルや学習プロセスを導くスーパーバイザーなしでデータ ポイントにのみアクセスできます。出力が既知である教師あり学習とは異なり、教師なし学習では、データ ポイントのクラスターを作成して、それらをよりよく理解する必要があります。動機付けとなる例として、講演者は、どの顧客がどのセグメントに属しているかを示すラベルがなくても、類似性に基づいて Amazon のような会社の顧客をセグメント化することを提案しています。教師なし学習の目標は、データ セットのパターンと構造を発見することです。

  • 07:15:00 このセクションでは、講師が教師なし学習とその応用について説明します。彼は、データ サイエンティストは教師なし学習を使用して顧客をセグメントに分割し、Web サイトでの活動に基づいて製品を推奨できると説明しています。彼は、顧客セグメンテーションとレコメンデーション エンジンに教師なし学習を使用する企業の例として、Amazon を使用しています。インストラクターはまた、教師なし学習を使用して、類似したアイテムが互いに近くにあり、異なるアイテムが遠くにある高次元空間でのクラスタリングを行うことができると説明しています。彼は、教師なし学習の応用として、生物学におけるシーケンス分析と、ビジネスにおける同様のクラスターのグループ化の例を挙げています。全体として、インストラクターは、教師なし学習とさまざまな業界での潜在的なアプリケーションの簡単な概要を提供します。

  • 07:20:00 このセクションでは、スピーカーは、ターゲットを絞ったマーケティングのためにビジネス データ内の類似したクラスターをグループ化したり、レコメンデーション エンジンを使用してユーザー アクティビティに基づいて製品を提案したりするなど、機械学習のさまざまなアプリケーションについて説明します。スピーカーは、オブジェクト検出のための画像セグメンテーション、テキストがポジティブかネガティブかを判断するためのセンチメント分析、およびモデル内の外れ値を見つけるための異常検出についても言及しています。これらのさまざまなアプリケーションは、さまざまな分野での機械学習の汎用性を示しています。

  • 07:25:00 このセクションでは、スピーカーはクラスタリングのトピックと、中心ベースや密度ベースなどのさまざまなタイプのクラスタリング アルゴリズムを紹介します。 k-means クラスタリング アルゴリズムに焦点を当て、詳細に検討します。また、講演者は、機械学習をよりよく理解するために、問題セットやプロジェクトに取り組むことを視聴者に勧めています。講演者は、教師なし学習の重要性を強調し、さまざまな分野でクラスタリングを適用する方法を示します。 X および Y 平面でのクラスタリングは、クラスタリングの概念を説明するために使用されます。全体として、このセクションでは、コースでカバーされる今後のトピックを強調し、視聴者が学び続けることを奨励しています。

  • 07:30:00 このセクションでは、スピーカーは教師なし学習とクラスタリングについて説明します。これには、データを異なるクラスターにセグメント化することが含まれます。クラスター内およびクラスター間距離の用語について説明します。ここで、クラスター内はクラスター内のデータ ポイント間の距離を指し、クラスター間はクラスター間の距離を指します。目標は、クラスター内の距離を小さくし、クラスター間の距離を大きくすることです。つまり、クラスター内のデータは類似している必要があり、クラスター間のデータは類似していない必要があります。これは、最適化の目的として知られています。

  • 07:35:00 このセクションでは、クラスタリングまたは教師なし学習モデルの評価手法について学習します。導入された最初の手法はダン インデックスです。これは、クラスター間の最大距離をクラスター内の最小距離で割った値を表します。目標は、ダン指数を高くすることです。つまり、クラスター間の距離を大きくし、クラスター内の距離を小さくする必要があります。この手法により、クラスタリング モデルの品質を評価できます。

  • 07:40:00 このセクションでは、インストラクターがモデルをクラスタリングするための評価手法について説明します。焦点は、クラスター内が大きく、クラスター間が小さいかどうかを判断するために使用される評価マトリックスである Dunn インデックスにあります。インストラクターは、ダン インデックスの基本的な定義を提供します。これには、クラスター内およびクラスター間の異なるデータ ポイント間の最大距離の評価が含まれます。議論されているもう 1 つの評価手法は Davies-Bouldin 指数です。これは Dunn 指数に似ていますが、より多くの制約があります。インストラクターは、特定の方法でオブジェクトまたは要素をグループ化するクラスタリングの 1 行の定義も提供します。

  • 07:45:00 このセクションでは、スピーカーは、類似点と相違点に基づいてデータをグループに編成するプロセスであるクラスタリングの基本的な定義について説明します。クラスタリングには 2 つのケースがあります。クラスタ内とクラスタ間で、それぞれクラスタ内の距離とすべてのクラスタ間の差を測定します。次に、スピーカーは、データを 2 つのクラスターに分割するパーティション ベースのクラスタリングや、樹形図を使用してクラスタリング プロセスを視覚化する階層型クラスタリングなど、さまざまな種類のクラスタリングについて説明します。講演者は、階層的クラスタリング内の凝集的クラスタリングと分裂的クラスタリングについて詳しく説明し、プロセスを説明する樹状図の例を示します。

  • 07:50:00 このセクションでは、インストラクターは、パーティション ベース、階層型、適切に分離されたクラスター、中心ベース、密度ベースなど、さまざまな種類のクラスタリングについて説明します。インストラクターは、クラスター化とは、クラスター内のオブジェクトが互いに類似し、クラスター間のオブジェクトが異なるように、類似したオブジェクトをグループ化することであると説明しています。インストラクターは、ダン指数やデイビス・ボールディン指数など、さまざまな指数を使用してクラスタリング モデルのパフォーマンスを評価する方法についても説明します。次のセクションでは、中心ベースのアルゴリズムの 1 つである k-means クラスタリングに焦点を当てます。

  • 07:55:00 このセクションでは、インストラクターは、教師なし学習アプリケーション、クラスタリングの種類、およびクラスタリングの直感と正式な定義をカバーした前のサブセクションを要約します。次に、ロイドのアルゴリズムとしても知られる k-means クラスタリング アルゴリズムと、初期化、重心、ハイパーパラメーター、評価指標、制限などのさまざまな機能に焦点を移します。講師は、ランダムに初期化された 2 つのセントロイドを使用してアルゴリズムを視覚化し、最初の反復での割り当て手順とそれに続く平均化手順を示します。

パート9

  • 08:00:00 このセクションでは、講師が k-means クラスタリング アルゴリズムについて詳しく説明します。このアルゴリズムには、k 個の重心の初期化、クラスターの割り当て、平均を取り出すことによるクラスターの更新、および最も近いデータ ポイントの割り当てによる重心の更新が含まれます。このプロセスは、アルゴリズムが収束したことを示す重心が変化しなくなるまで繰り返されます。インストラクターはまた、k-means クラスタリングはロイドのアルゴリズムとも呼ばれ、重心をランダムに初期化することを含むと述べています。

  • 08:05:00 このセクションでは、スピーカーは k-means クラスタリング アルゴリズムの手順を説明します。最初にクラスターの数 (k) を選択し、次に各ポイントを最も近いクラスターに割り当てます。平均をとって移動することで重心を再計算し、重心が変化しなくなるまでこのプロセスを繰り返します。最適化の目的は、コスト関数を最小化することです。コスト関数は、データ ポイントとクラスター重心の間のユークリッド距離を使用して計算できます。コスト関数は SSE (二乗誤差の合計) とも呼ばれ、クラスター内の変動性を最小限に抑えることが目標です。スピーカーは、ユークリッド以外の距離メトリックも使用できることに注意します。

  • 08:10:00 このセクションでは、インストラクターが、K-means クラスタリングで重心のランダムな初期化が問題を引き起こす可能性がある理由を説明し、ソリューションとして K-means++ アルゴリズムを紹介します。 K-means++ では、複数の重心を選択し、二乗誤差 (SSE) の合計を最小化するものを選択します。インストラクターは、SSE 対クラスター数のプロットに基づいて最適な重心数を決定するために使用されるエルボ法も紹介します。機械学習でより良いクラスタリング結果を得るには、ランダムな初期化ではなく、K-means++ とエルボー法を使用することをお勧めします。

  • 08:15:00 このセクションでは、クラスター内のポイント間の距離を合計二乗誤差を使用して計算することにより、クラスター内を最小化する k-means の評価手法についてインストラクターが説明します。重心の初期化はアルゴリズムに影響を与えます。k-means ++ 手法は、SSE が低い複数回の実行に基づいて重心を選択するための推奨される方法です。クラスターの数はエルボー法を使用して決定できます。ここで、最適な k 値はエルボーが曲がるポイントです。インストラクターは、DBSCAN や階層的クラスタリングなどの密度ベースの手法を使用して解決できる外れ値に対する感度など、k-means クラスタリングのいくつかの制限についても言及しています。 k-means クラスタリングの時間計算量は、入力サイズ、クラスター数、および次元によって異なります。インストラクターは、時間の複雑さの概念をよりよく理解するために、DSA マスター コースをお勧めします。

  • 08:20:00 クラスタに p1 と p2 を追加し、次に p4 をこのクラスタに追加します。次に、このクラスターを 1 つにマージし、最後に p3 をクラスターに追加して 1 つのクラスターにします。これは、データ ポイントが類似性に基づいてグループ化され、クラスターの階層を形成する手法である階層的クラスタリングの例です。このサブセクションでは、凝集クラスタリングと分割クラスタリング、およびアルゴリズムの手動計算についても説明します。

  • 08:25:00 このセクションでは、スピーカーは階層的クラスタリングと、数値のクラスターをクラスターの階層に変換するプロセスについて説明します。与えられた例は、残りのクラスターが 1 つだけになるまで、類似性に基づいてクラスターが互いに接続される方法を示しています。次にスピーカーは、2 種類の階層的クラスタリング (凝集クラスタリングと分割クラスタリング) について説明し、両方の方法の背後にある直感を示します。凝集クラスタリングは、より類似したクラスターが一緒に接続されるダウンツーアップアプローチであり、分裂的クラスタリングは、類似性に基づいてクラスターがより小さなクラスターに分割されるアップツーダウンアプローチです。

  • 08:30:00 このセクションでは、スピーカーは、数値またはクラスターの階層を作成することを含む、階層的クラスタリングの背後にある基本的な直感について説明します。クラスタリングは、クラスタリングの種類 (凝集型または分割型) に応じて、上から下または下から上へのアプローチで実行できます。凝集クラスタリングは、異なるクラスタを 1 つにマージすることを含み、分割クラスタリングは、クラスタを単一のグループに分割することを含みます。次にスピーカーは、すべてのクラスターがカバーされるまで、近接行列を計算し、クラスターをマージして行列を更新するプロセスを繰り返すことを含む凝集クラスタリングのアルゴリズムを説明します。最後に、話者は、概念を説明するために 4 つの点を含む近似行列の例を提供します。

  • 08:35:00 このセクションでは、スピーカーは、データ ポイントの例を使用して、近接行列とデンドログラムを作成する方法を説明します。近接行列は、2 つのポイントまたはクラスター間の類似性を測定するのに役立ちますが、デンドログラムはクラスターの階層を示します。スピーカーは、クラスター間の類似性を測定するために使用される 3 つの方法、つまり最小、最大、およびグループ平均を強調します。

  • 08:40:00 このセクションでは、インストラクターは、階層的クラスタリングでクラスターをマージするための 2 つの方法について説明します: 最小と最大。最小アプローチでは、2 つのクラスター間の類似性を、クラスター内の任意の 2 点間の最小距離として取得します。最小距離のクラスターが最初にマージされ、すべてのポイントが 1 つのクラスターになるまでプロセスが続行されます。最大アプローチも同様ですが、2 つのクラスター間の類似度を、クラスター内の任意の 2 点間の最大距離と見なします。インストラクターは、これらの概念を説明するために近接行列を使用した例を提供します。

  • 08:45:00 このセクションでは、インストラクターは、別のタイプのクラスター間類似度測定であるグループ平均クラスター間類似度測定の概念について説明します。彼はその方程式を提供し、それがどのように機能するかを説明する樹状図を示します。次に、インストラクターは、最小距離測定の欠点について説明し、外れ値に敏感であることを述べ、学習者がさらに理解するためにウィキペディアのページを参照できることを提案します。彼はまた、凝集クラスタリングの時間と空間の複雑さを提供します。これは、空間では n 平方のオーダーであり、時間の複雑さでは n の平方対数または n 立方体のオーダーです。最後に、機械学習の理解を深めるために、多くのプロジェクトで練習するよう学習者に促して、セクションを締めくくります。

  • 08:50:00 このセクションでは、スピーカーがコースのプロジェクト セクションについて説明し、構築される心不全予測モデルを紹介します。講演者は、このモデルは、年齢、性別、血圧、糖尿病、喫煙などのさまざまな特徴に基づいて人が死亡するかどうかを予測すると説明しています。このプロジェクトのデータは提供されたリンクから入手できます。講演者は、このプロジェクトのビジネス目標は、健康上の懸念を早期に検出して命を救うのに役立つヘルスケア AI システムを構築することであると説明しています。さらに、講演者は、スパム検出システム プロジェクトもコースで提示されると述べています。スピーカーは、必要なライブラリをインポートし、データを読み込み、データの形状を印刷します。

  • 08:55:00 このセクションでは、データの形状とその情報を確認するなど、データを探索するための基本について学習します。 info() メソッドを使用して、null 値、データ型、およびメモリ使用量があるかどうかを確認できます。また、describe() メソッドを使用して、数値データの統計的分布に関する洞察を得ることができます。探索的データ分析 (EDA) は、機械学習の重要なステップであり、データに質問をして、ビジネス ソリューションの提供に役立つ答えを見つけます。この二項分類の問題では、クラスの分布を調べます。「1」は人が死亡したことを意味し、「0」は人が生きていることを意味します。

パート10

  • 09:00:00 ビデオのこのセクションでは、インストラクターが機械学習における不均衡なデータの問題について説明します。コード スニペットは、生存者が 203 人、死亡者が 96 人で、バランスが取れていないデータの分布を示しています。不均衡なデータは、データがクラス間で均等に分散されていないことを意味し、これにより、モデルが特定のクラスに偏る可能性があります。インストラクターは、不均衡なデータは機械学習の大きな問題であり、モデルが多数派クラスでトレーニングされ、そのクラスをより頻繁に予測する傾向があると説明しています。

  • 09:05:00 このセクションでは、スピーカーは、バランスの取れたデータの概念と、より堅牢で偏りのないモデルがどのように最適に機能するかについて説明します。次に、年齢分布や特定の条件に基づくデータのフィルタリングなど、データを分析できるさまざまな方法を示します。講演者は、年齢が 50 歳以上の行を選択し、死亡したかどうかを確認する Python コードを示します。彼らは円グラフを使用してデータを視覚化し、死亡例の総数が生存例の 2 分の 1 であり、ほとんどの年齢が 40 歳から 95 歳まで上昇しているなどのビジネス上の質問に答えます。

  • 09:10:00 このセクションでは、インストラクターが Python のコード スニペットについて説明し、ダイエット ケースと非ダイエット ケースの合計数を計算します。合計203例のうち、ほとんどがダイエット例であるが、そのうち50例以上が50歳以上で死亡していることが判明した。さらに講師は、このデータをもとにさらに多くの質問に回答し、データを視覚的に表現して理解しやすくする方法を説明します。最後に、講師は変数間の相関関係を確認し、相関関係の意味を説明するプロットを提供します。

  • 09:15:00 このセクションでは、インストラクターが相関関係と、それがマイナス 1 からプラス 1 までの範囲について説明します。マイナス 1 に近い変数は非常に類似していることを意味し、ゼロに近い値は線形伝達がないことを意味します。ピアソン相関は、データが線形であるかどうかを判断する方法であり、相関が 1 に近いほど、データはより正の相関があります。インストラクターは、完全な相関関係と、対角線がすべて 1 である方法について話します。つまり、2 乗が各変数自体と相関していることを意味します。データと理解について話し合った後、インストラクターはデータセットの開発と、モデルが最適に機能することを検証するためのトレーニング セットとテスト セットにデータを分割する方法に進みます。インストラクターは、特徴量エンジニアリングの例を提供します。これは、カテゴリ変数を使用して特徴量を追加し、データに変換を適用して特徴量を挿入します。相互作用の用語は 2 つの機能の積を追加することであり、講師はすべての列を反復処理して 2 つの列を乗算する方法を示します。

  • 09:20:00 このセクションでは、プレゼンターがモデルを構築するプロセスについて説明し、モデルの精度、精度、再現率、混同マトリックスを評価します。プレゼンターは、最適化アルゴリズムと呼ばれるアルゴリズムを使用して、10,000 のデータ ポイントと 10 の特徴を持つデータセットを絞り込みます。彼らは、確率的勾配降下法がどのように機能するか、およびそれを使用して計算時間を最小限に抑える方法を説明しています。さらに、モデルの全体的なパフォーマンスを理解する上で重要な「真陽性」や「陽性クラス」などの重要な用語についても説明します。

  • 09:25:00 このセクションでは、スピーカーは、真陽性、偽陽性、真陰性、および偽陰性の概念と、それらを使用して混同マトリックスを作成する方法について説明します。モデルの負のクラス。講演者は、正の予測の精度と実際の発生に関するさまざまな質問に答える適合率と再現率についても説明します。講演者は、パラメータ最適化のためのランダム化された検索を使用して、ロジスティック回帰と広範な微調整を備えたサポート ベクター分類器、および決定木分類器の使用を実演します。各分類子のトレーニングとテストのスコアも表示されます。

  • 09:30:00 ビデオのこのセクションでは、インストラクターが、UCI リポジトリからダウンロードしたデータセットを使用して、スパムとハムの検出システムを構築する方法を説明します。データは表形式であり、講師はそれを読み、タブに基づいて区切ります。ヘッダーはなしに設定され、列には「ラベル」と「メッセージ」というラベルが付けられています。目標は、メッセージをスパムまたは非スパム (ハム) として分類することです。インストラクターは、これを達成するためにさまざまなモデル (ランダム フォレスト分類子や XGBoost 分類子など) を微調整するプロセスを順を追って説明します。また、インストラクターは機能選択の重要性を強調し、将来の使用のために XGBoost モデルを保存する方法を示します。全体として、これは機械学習を使用して現実世界の問題を解決する方法を示す興味深いプロジェクトです。

  • 09:35:00 ビデオのこのセクションでは、プレゼンターは、UCI リポジトリからダウンロードされたテキスト メッセージのデータセットを調査および分析するプロセスを実行します。目標は、スパム メッセージと非スパム メッセージを区別できる機械学習モデルを構築することです。プレゼンターは、モデルを操作するにはテキスト データを数値に変換する必要があることを説明し、テキスト ベクトライザーを使用する方法を実演します。次に、クラスの分布を調査し、スパム メッセージよりも非スパム メッセージの方が多く、データセットのバランスが崩れていることに注目しました。最後に、スペルや大文字/小文字のわずかな違いが誤った分類につながる可能性があるため、テキスト データをクリーンアップすることの重要性について説明しています。

  • 09:40:00 このセクションでは、インストラクターがテキストの前処理のプロセスを説明します。これには、すべてのテキストを小文字に変換し、0 や 3 などの特定の文字を意味のあるテキストに置き換え、不要な文字を削除することが含まれます。インストラクターは、テキスト内の意味のある単語を削減するためにステミングとレンマタイゼーションを検討することも提案しています。ラムダを使用して各メッセージにテキストの前処理を適用する例が示されています。これは、「処理されたテキスト」と呼ばれる新しい列に格納されます。

  • 09:45:00 このセクションでは、スピーカーは、テキストの前処理と、Porter ステマーを使用してステミングを適用して語形変化を減らすことについて話します。講演者は、map メソッドを呼び出すことで手が 0 にエンコードされ、1 に拡張される機能エンジニアリングについても言及しています。次に、トレーニング セットは単語埋め込みに変換されます。これは、カウント ベクトライザー、tf-idf ベクトライザー、bag of words などの手法を使用して単語を数値に変換します。テキストは格納された要素を含むスパース行列に変換され、分類のために Naive Bayes アルゴリズムで使用されます。最後に、スピーカーは、カウント ベクトライザーとモデルを呼び出して新しいテキストをテストし、それがスパムかどうかを判断する方法の例を示します。

  • 09:50:00 ビデオのこのセクションでは、スピーカーは、カウント ベクトル変換や単純ベイズ予測などの自然言語処理 (NLP) 手法を使用して、基本的なスパムおよびハム検出システムを構築する方法を示します。システムはメッセージを入力として受け取り、前処理し、スパムか非スパムかを予測します。講演者は、これは NLP でデータを処理する方法のサンプルに過ぎず、他にも使用できるさまざまな手法があることを強調しています。講演者はコースを終了し、視聴者がコースを修了したことを祝福します。
Machine Learning Course for Beginners
Machine Learning Course for Beginners
  • 2021.08.30
  • www.youtube.com
Learn the theory and practical application of machine learning concepts in this comprehensive course for beginners.🔗 Learning resources: https://github.com/...
 

みんなのための機械学習 – フルコース



みんなのための機械学習 – フルコース

00:00:00 - 01:00:00ビデオのこの部分では、教師あり学習と教師なし学習を含む機械学習の基本について説明します。また、利用可能なさまざまなモデルとその使用方法についても説明します。最後に、機械学習モデルのパフォーマンスを測定する方法について説明します。

01:00:00 - 02:00:00このパートでは、機械学習を使用してイベントの結果を予測する方法について説明します。線形回帰、ロジスティック回帰、およびサポート ベクター マシンについて説明します。また、グリッド検索を使用して機械学習モデルをトレーニングする方法についても説明します。

02:00:00 - 03:00:00このパートでは、線形回帰やバックプロパゲーションなど、機械学習の基本について説明します。 TensorFlow ライブラリを使用してデータを正規化し、線形回帰モデルを適合させる方法について説明します。

03:00:00 - 03:50:00このビデオでは、教師あり学習と教師なし学習を含む機械学習の概念を紹介しています。線形回帰とニューラル ネットワークを使用して予測を行う方法を示します。発表者は、機械学習を使用してデータをクラスター化する方法についても説明します。


パート1

  • 00:00:00 この動画では、Kylie Ying が、教師あり学習モデルと教師なし学習モデル、その仕組み、Google Colab でのプログラミング方法について説明しています。

  • 00:05:00 この 1 段落の要約では、教師あり学習について説明しています。これは、コンピュータに一連の入力が与えられ、与えられた入力のラベルを予測するように求められる機械学習の一種です。

  • 00:10:00 教師あり学習は、機械学習モデルをトレーニングするために入力データにラベルを割り当てるプロセスです。モデルは、指定された入力の予測を出力します。教師なし学習は、ラベルのないデータを使用してデータのパターンについて学習するプロセスです。強化学習では、エージェントは報酬と罰則に基づいてインタラクティブな環境でトレーニングされます。

  • 00:15:00 このビデオでは、機械学習、そのさまざまなアプリケーション、および処理できるさまざまな種類のデータについて説明しています。また、教師あり学習と教師なし学習、および回帰についても説明します。

  • 00:20:00 このビデオでは、インストラクターが機械学習のしくみと、機械学習を使用してデータ セットの結果を予測する方法について説明します。インストラクターは、トレーニング後に機械学習モデルの精度を調整する方法についても説明します。

  • 00:25:00 このビデオでは、損失の概念と、損失が機械学習モデルのパフォーマンスに与える影響について説明しています。損失は、機械学習モデルからの予測が、特定のデータ セットで指定された実際のラベルからどれだけ離れているかの尺度です。利用可能なさまざまな損失関数があり、それぞれに長所と短所があります。最後に、このビデオでは、機械学習モデルのパフォーマンスを計算して検証する方法について説明します。

  • 00:30:00 ビデオでは、機械学習を使用してデータセットからクラス ラベルを予測する方法について説明しています。データセットには 10 個の特徴が含まれており、それぞれがクラスに対応しています。ヒストグラムは、クラス全体の特徴の分布を視覚的に比較するために使用されます。このビデオは、データを改善する方法についての議論で締めくくられています。

  • 00:35:00 このビデオでは、インストラクターが機械学習技術を使用してトレーニング、検証、およびテスト セットを作成する方法を説明しています。インストラクターは、値を比較しやすくするためにデータセットをスケーリングする方法を示し、次に x 値を変換する関数を作成します。最後に、インストラクターは 2 次元の numpy 配列を作成し、hstack 関数を呼び出して配列を並べてスタックします。

  • 00:40:00 このビデオでは、インストラクターが利用可能なさまざまな機械学習モデルと、それらをコードで使用する方法について説明します。説明するモデルの中には、k 最近傍、線形回帰、およびニューラル ネットワークがあります。

  • 00:45:00 このビデオでは、インストラクターの Alan Siegel が、距離関数の使用や最近傍アルゴリズムの使用など、機械学習の基本を復習します。彼は、バイナリ分類では、最近傍アルゴリズムが「k」値を使用して、どの点が「プラス」または「マイナス」ラベルであるかを判断すると説明しています。彼は、これを車の所有権と出産のデータセットに適用する方法を示し、特定のデータ ポイントのどのポイントが「プラス」または「マイナス」ラベルであるかを最近傍アルゴリズムがどのように判断できるかを示しています。

  • 00:50:00 このビデオでは、機械学習を使用してポイントの位置を予測する方法について説明しています。このビデオでは、k-nearest neighbors アルゴリズムを使用して最も近い点を見つける方法を説明しています。このビデオでは、分類レポートを使用してポイントの分類を決定する方法についても説明しています。

  • 00:55:00 このビデオでは、機械学習モデルが説明されています。モデルの精度は 82%、精度は 77%、再現率は 89% です。このモデルは単純な機械学習モデルであるナイーブ ベイズとして説明されています。


パート2

  • 01:00:00 ベイズ ルールは、他のイベントが既に発生した場合のイベントの確率を計算するために使用される数式です。この例では、ベイズ ルールを使用して、陽性検査が与えられた場合の病気の確率を計算します。

  • 01:05:00 このビデオでは、ベイジアン推論に焦点を当てて、機械学習の基礎を説明しています。プレゼンターは、ベイジアン推論を分類問題に適用する方法を示し、関連するさまざまな確率分布について説明します。

  • 01:10:00 このビデオでは、ナイーブ ベイズのルールが説明されており、データ セットが与えられた場合の特定のイベントの確率は、個々のイベントの確率の合計に比例することが示されています。

  • 01:15:00 このビデオでは、機械学習を使用して、サッカーの試合中に雨が降るかどうか、または今日が何日かなど、イベントの結果を予測する方法について説明しています。その後、ビデオでは、より高度な機械学習手法であるロジスティック回帰について説明します。このビデオは、回帰直線を使用してさまざまな結果の可能性を予測する方法を示しています。ビデオは、学生が特定のテストに合格するかどうかを予測するためにロジスティック回帰を使用する方法のデモで締めくくられます。

  • 01:20:00 このビデオでは、線形回帰を使用して分類器が正しい確率を推定する方法を講師が説明しています。これを行うには、最初に p が mx と b を足したものに等しいように方程式を書き直す必要があります。この方程式は、負の無限大から無限大までの範囲を取ることができますが、0 と 1 の間でなければなりません。 p を解くために、オッズの対数を削除すると、1 から確率を引いた p が得られます。

  • 01:25:00 このビデオでは、プレゼンターが、線形回帰、ロジスティック回帰、サポート ベクター マシンの 3 種類の機械学習モデルについて説明します。プレゼンターは、各モデルの使用方法を示し、それぞれの使用方法の例を示します。

  • 01:30:00 このビデオでは、インストラクターが機械学習のしくみと利用可能なさまざまな種類のアルゴリズムについて説明します。また、マージン ライン上にあるデータ ポイントを使用して、サポート ベクター マシン (SVM) のマージンを最大化する方法についても説明します。

  • 01:35:00 このビデオでは、サポート ベクター マシン (SVM)、ニューラル ネットワーク、ロジスティック回帰など、さまざまな機械学習モデルについて説明しています。彼は、SVM が 3 つの中で最も正確であり、ニューラル ネットワークが SVM よりもさらに正確である可能性があることを示しています。

  • 01:40:00 機械学習では、ニューロンはニューラル ネットワークの表現の基本単位です。ニューロンの入力機能に重みが乗算され、乗算されたすべての入力の合計がニューロンに入力されます。ニューロンの活性化関数は、予測に関連するエラーに基づいて入力の線形状態を変更します。勾配降下アルゴリズムを使用して、二次関数の勾配をたどり、誤差を小さくします。

  • 01:45:00 このビデオでは、インストラクターが、機械学習のしくみと、TensorFlow を使用してニューラル ネットワークをプログラミングする方法について説明します。彼は、シーケンシャル ニューラル ネットワークを作成する方法と、重みに関する損失を計算する方法を示します。

  • 01:50:00 このビデオでは、プレゼンターが TensorFlow で機械学習アルゴリズムを使用する方法を示しています。まず、TensorFlow をインポートしてニューラル ネットワーク モデルを作成します。次に、レイヤーのアクティブ化を設定し、損失と精度のメトリックを構成します。最後に、100 エポックのトレーニングと 32 エポックの検証分割を使用してモデルをトレーニングします。

  • 01:55:00 このビデオでは、著者がグリッド検索を使用して機械学習モデルをトレーニングする方法を説明しています。また、ハイパーパラメータの重要性とその設定方法についても説明しています。


パート3

  • 02:00:00 このビデオ チュートリアルでは、予測と分類に機械学習を使用する方法を示します。このビデオでは、機械学習モデルのトレーニング、モデルの履歴の記録、モデルのパフォーマンスのプロットの基本について説明します。

  • 02:05:00 このビデオは、キャスティングと呼ばれる手法を使用して、ニューラル ネットワークの最小損失モデルを作成する方法を示しています。このモデルは、SVM を使用したモデルと同様に機能し、ビデオでは、ネットワークの出力を使用して分類レポートを作成する方法も示しています。

  • 02:10:00 このビデオでは、著者が線形回帰と残差の計算方法について説明しています。残差は、予測と実際のデータ ポイントの間の距離であり、回帰直線に最適な直線を決定するために使用されます。

  • 02:15:00 このビデオでは、線形性と独立性の概念について説明し、これらの仮定が非線形データ セットでどのように破られるかを示しています。次に、正規性と等分散性の仮定と、それらを残差プロットを使用して評価する方法について説明します。

  • 02:20:00 平均絶対誤差の尺度は、予測がトレーニング セットの実際の値からどれだけ離れているかを平均して示します。

  • 02:25:00 平均二乗誤差 (MSE) は、予測のパフォーマンスの指標であり、平均絶対誤差と密接に関連しています。 RMSE は残差のすべての 2 乗の合計をとることによって計算され、期待値に対して予測がどの程度うまく機能しているかを測定するために使用されます。

  • 02:30:00 この 1 時間のビデオ コースでは、線形回帰を含む機械学習の基礎について説明します。このコースでは、残差のトピックと、残差を使用してデータセットの最適な適合線を決定する方法について説明します。

  • 02:35:00 このビデオでは、機械学習の概念と、さまざまなライブラリとデータ セットの使用方法を紹介しています。次に、データ フレームを使用してデータを表現する方法と、データを分析する方法について説明します。

  • 02:40:00 ビデオでは、機械学習を使用して 1 日のさまざまな時間帯の自転車数を予測する方法について説明しています。トレーニング、検証、およびテスト セットを作成する方法と、numpy.split 関数を使用してデータ フレームを異なるグループに分割する方法を示します。

  • 02:45:00 ビデオでは、機械学習を使用して問題を解決する方法について説明しています。インストラクターは、機械学習を使用して温度を予測する例を示し、回帰係数を計算してモデルにスコアを付ける方法に関する情報を提供します。

  • 02:50:00 このビデオでは、作成者が、機械学習を使用して、新しいデータ セットで線形回帰モデルのパフォーマンスを向上させる方法を示しています。

  • 02:55:00 このビデオでは、プレゼンターが TensorFlow ライブラリを使用して Python で線形回帰モデルを構築する方法を説明しています。彼らは、モデルをトレーニングする前にデータを正規化し、逆伝播を使用してモデルを適合させることが役立つと説明しています。これらは、時間の経過に伴うモデルの損失をプロットする方法と、モデルがどのように適切に収束したかを示しています。


パート 4

  • 03:00:00 このビデオでは、機械学習の概念を誰もが理解しやすい方法で説明しています。インストラクターは、ニューラル ネットワークを使用してデータ セットから値を予測する方法を示し、さまざまなパラメーターを変更した場合の効果を示します。

  • 03:05:00 このビデオでは、線形回帰の歴史やニューラル ネットワークの使用方法など、機械学習の基本について説明しています。次に、発表者は、線形回帰とニューラル ネットワークの平均二乗誤差を計算する方法を示し、結果を比較します。

  • 03:10:00 このビデオでは、インストラクターが教師あり学習と教師なし学習の仕組みについて説明します。彼は、線形回帰とニューラル ネットワークを使用して予測を行う方法について説明しています。

  • 03:15:00 このビデオでは、プレゼンターが機械学習を使用してデータを 3 つのクラスターに分割する方法を説明しています。次に、この情報を使用して新しい重心を計算し、新しいクラスターを作成します。

  • 03:20:00 このビデオでは、データのパターンを探す教師なし学習と、トレーニング セットを使用して将来の結果を予測する方法を学習する教師あり学習の 2 種類の機械学習について説明します。教師なし学習手法には、データの主成分を見つけることによって次元を削減する、期待値の最大化と主成分分析が含まれます。教師あり学習手法には、線形回帰とベイジアン推論が含まれます。

  • 03:25:00 機械学習は、未知のデータに関する予測を支援するデータ分析の分野です。このコースでは、講師が主成分分析 (PCA) を使用してデータセットの次元を削減する方法について説明します。これにより、データ ポイントの視覚化と識別が容易になります。

  • 03:30:00 このビデオでは、プレゼンターが線形回帰の概念とその 2 次元 (2D) データへの適用を紹介します。次に、主成分分析 (PCA) の概念を紹介します。これは、データセットを最も関連性の高い次元に縮小するために使用される手法です。最後に、機械学習における教師なし学習の使用について説明します。

  • 03:35:00 このビデオでは、教師なし学習を使用した分類に機械学習を使用する方法について説明しています。プレゼンターは、pandas を使用してデータをインポートする方法を示し、データを相互にプロットして結果を確認します。彼らは、一部のデータがどのように見えるかを議論することで結論を下し、別の分類子を使用することでクラスタリングが改善される可能性があることを示唆しています。

  • 03:40:00 ビデオでは、機械学習アルゴリズムを使用してデータをクラスター化する方法を説明しています。

  • 03:45:00 このビデオでは、機械学習の専門家が、さまざまな機械学習手法を適用して特定の問題を解決する方法について説明しています。このビデオでは、クラスター分析と PCA についても取り上げています。

  • 03:50:00 このビデオでは、機械学習とそのさまざまな段階 (教師なし学習を含む) について説明しています。また、k-means を使用してクラスタリングを行う方法についても説明します。このビデオは、教師あり学習と、分類や回帰を含むそのさまざまな段階についての議論で締めくくられています。
Machine Learning for Everybody – Full Course
Machine Learning for Everybody – Full Course
  • 2022.09.26
  • www.youtube.com
Learn Machine Learning in a way that is accessible to absolute beginners. You will learn the basics of Machine Learning and how to use TensorFlow to implemen...
 

TensorFlow 2.0 集中講座


TensorFlow 2.0 集中講座

「TensorFlow 2.0 クラッシュ コース」ビデオでは、画像分類に焦点を当てて、ニューラル ネットワークとそのアーキテクチャの基礎を説明しています。インストラクターは、スネーク ゲームとファッション マニアックなデータセットを例として使用し、損失関数に基づいて重みとバイアスを調整するプロセスを通じてニューラル ネットワークをトレーニングします。ビデオは、より複雑なモデルを作成するために、データの前処理とシグモイドや ReLU などの活性化関数の使用の重要性を示しています。講演者はまた、データのテストとトレーニングの重要性を強調し、モデルの画像データを読み込んで変更する方法を示します。最後に、プレゼンターは、Keras でモデルのアーキテクチャを定義し、コンパイルおよびフィット メソッドを使用してトレーニングし、「model.predict」を使用して特定の画像を予測する方法を示します。

ビデオ チュートリアルの 2 番目の部分では、ファッション アイテムを分類し、映画のレビューに関する感情分析を実行できる基本的なニューラル ネットワークを作成するさまざまな側面について説明します。チュートリアルでは、トレーニング用のデータの読み込みと準備から始めて、データの前処理と入力シーケンスの長さの正規化の重要性について説明します。次に、チュートリアルでは、埋め込みレイヤーや高密度レイヤーなどのさまざまなレイヤーの使用を含む、適切なモデル アーキテクチャの作成について説明します。最後に、このチュートリアルでは、ハイパーパラメーターの微調整、モデルの検証、モデルの保存と読み込み、および外部データに対するモデルのパフォーマンスの評価の方法について説明します。全体として、このチュートリアルは、より高度なニューラル ネットワークの知識を構築するための重要な構造を提供します。また、モデルのデータのエンコード、予測用の保存済みモデルの実行、Ubuntu Linux への TensorFlow 2.0 GPU バージョンのインストールなど、TensorFlow 2.0 に関連するさまざまなトピックについても説明します。エンコーディング セクションでは、プレゼンターはデータのトリミングとクリーニングのプロセスを順を追って説明し、適切な単語マッピングを確保し、ルックアップ関数を作成して予測のためにデータをエンコードします。次に、モデルが処理する正しい形式で入力データを準備することの重要性を示してから、Linux システムに TensorFlow 2.0 GPU バージョンをインストールするチュートリアルに進み、関連するダウンロードのサイズのために忍耐強くなるよう聴衆にアドバイスします。 .

  • 00:00:00 このセクションでは、インストラクターがニューラル ネットワークの概念とその仕組みを紹介します。ニューラル ネットワークは、相互接続されたニューロンの層で構成されており、私たちの脳のニューロンがどのように機能するかに似ています。これらのニューロンは発火するか発火しないかのいずれかであり、それらの間の接続によって、いつ発火し、他のどのニューロンが発火するかが決まります。ニューラル ネットワークは、ニューロンの 1 つの層から入力を受け取り、最終層から出力を生成する前に、1 つまたは複数の隠れ層を通過することによって機能します。ニューラル ネットワークのアーキテクチャは、解決する問題の種類によって異なりますが、一般的なアプローチの 1 つは、ある層の各ニューロンが次の層のすべてのニューロンに接続されている完全に接続されたニューラル ネットワークを使用することです。インストラクターは、ニューラル ネットワークの背後にある数学を理解して、成功した複雑なネットワークを作成できるようにすることの重要性を強調しています。

  • 00:05:00 このセクションでは、インストラクターがニューラル ネットワークの基礎と、問題解決におけるニューラル ネットワークの仕組みについて説明します。彼は、4 つの入力と 1 つの出力を使用して単純なニューラル ネットワークを構築します。これは、ゲーム内でヘビを生かしておくように訓練されています。入力は、ヘビの前後左右に障害物があるかどうかと、3 つの異なる値を持つ推奨移動方向です: 左の場合は -1、直線の場合は 0、右の場合は 1。入力が与えられると、ニューラル ネットワークは出力として 0 または 1 を与え、推奨される方向に従うべきかどうかを表します。ヘビを生かしておくことができる場合は、推奨される方向に従うように設計されています。そうでない場合は、従いません。

  • 00:10:00 このセクションでは、スピーカーはニューラル ネットワークのアーキテクチャとその機能について説明します。入力層と出力層は重みで接続され、出力はこれらの重みで乗算された値の重み付き合計を取得することによって決定され、バイアス値も含まれます。次に、大量のデータを入力し、正確な出力を生成するためにバイアスと重みを調整することで、ネットワークをトレーニングします。出力が正しい場合、調整は行われませんが、正しくない場合、ネットワークは重みとバイアスを調整して精度を向上させます。

  • 00:15:00 このセクションでは、インストラクターがニューラル ネットワークのトレーニング プロセスについて説明します。ニューラル ネットワークでは、ネットワークを介して情報が渡され、重みとバイアスを調整して、より正しい答えを得ることができます。ネットワークはランダムな重みとバイアスから開始し、高レベルの精度を達成するまでそれらを繰り返し調整します。次に、ネットワークを複雑にする非線形関数である活性化関数が導入されます。特に、シグモイド活性化関数は、負の 1 と 1 の間の任意の入力値をマッピングし、特定の範囲内の出力を可能にするものとして説明されています。これにより、ネットワークがより複雑になり、豊かになります。

  • 00:20:00 このセクションでは、スピーカーは活性化関数とニューラル ネットワークにおけるそれらの役割について説明します。これらの関数は、実世界のデータの近似に適した非線形関数を有効にすることで、モデルをより複雑にすることができます。 Sigmoid は、出力を 0 から 1 の範囲に変換する基本的な活性化関数の 1 つです。最近使用された関数は Rectified Linear Unit (ReLU) で、負の値を 0 に設定し、正の値をより正にすることで、データを保持します。 0 から正の無限大の範囲内のポイント。講演者は、モデルの重みとバイアスをどのように調整する必要があるかを理解する上で、損失関数が重要であることも説明します。予測された出力と実際の出力の間の誤差を計算し、より効率的なチューニングと調整を可能にします。

  • 00:25:00 このセクションでは、スピーカーはニューラル ネットワークの概念と、隠れ層を使用して難しい問題を解決できるより複雑なモデルを作成する方法について説明します。このビデオでは、データの重要性と、アレイに送信する前にデータを前処理して正しい形式にする方法にも焦点を当てています。スピーカーは TensorFlow の 2.0 チュートリアルに基づいて作業していますが、ニューラル ネットワークの初心者にとっては混乱を招く可能性がある追加情報を追加しています。このチュートリアルでは、画像分類の例として、衣料品の画像を含む fashion mnist データセットを使用します。ビデオは、視聴者に TensorFlow 2.0 と matplotlib のインストール方法を示して終了します。

  • 00:30:00 このセクションのビデオでは、画像をグラフ化して表示するために、tensorflow、keras、numpy、matplotlib などのインストールに必要なパッケージについて説明します。このビデオでは、テスト データとトレーニング データの違いについても説明しています。データの約 90 ~ 80% がネットワークに渡されてトレーニングされ、残りのデータは精度をテストするために使用され、ネットワークが単純に記憶していないことを確認します。データ。このビデオでは、Keras を使用して、データセットをラベル付きのトレーニング データとテスト データに分割しています。最後に、このビデオはラベル表現についての洞察を提供し、各画像には 0 から 9 までの特定のラベルが割り当てられています。

  • 00:35:00 このセクションでは、講師が TensorFlow 2.0 モデルの画像データを読み込んで変更する方法を実演します。彼はラベル名のリストを作成し、各ラベル番号が何を表しているかを示します。次に、Matplotlib ライブラリを使用して画像を表示し、それらが 28x28 ピクセルの配列であることを説明します。ピクセル値は 255 で除算され、データのサイズが縮小され、モデルでの作業が容易になります。 10 進数値で構成される変更されたデータがモデルに読み込まれ、クラス、つまりラベル番号が 0 から 9 の間で予測されます。次のセクション。

  • 00:40:00 TensorFlow 2.0 クラッシュ コースのこのセクションでは、スピーカーが画像分類用のニューラル ネットワークのアーキテクチャについて説明します。入力は、グレースケール値を持つ 28x28 ピクセルの配列で、784 ピクセルのリストにフラット化されて、ニューラル ネットワークの入力層に供給されます。出力層には 10 個のニューロンがあり、それぞれが 10 個のクラス (0 ~ 9) の 1 つを表します。目標は、最も活性化されたニューロンが予測されたクラスを表すようにすることです。スピーカーは、隠れ層についても説明し、2 層ネットワークは可能ですが、より複雑な画像認識タスクには理想的ではないことを強調しています。

  • 00:45:00 TensorFlow 2.0 クラッシュ コースのこのセクションでは、インストラクターがニューラル ネットワークの隠れ層の概念について説明します。 128 個のニューロンを含む隠れ層を追加することで、ネットワークは画像を分析し、画像をより適切に認識するのに役立つパターンを特定できます。 128 個のニューロンの選択はいくぶん恣意的なものであり、隠れ層のニューロンの数はアプリケーションによって異なります。次にインストラクターは、Keras でモデルのアーキテクチャまたはレイヤーを定義します。このアーキテクチャには、平坦化された入力層、2 つの高密度または完全に接続された層、10 個のニューロンとソフトマックス アクティベーションを備えた出力層が含まれており、ネットワークが特定のクラスを認識する確率を提供します。

  • 00:50:00 このセクションでは、モデルのパラメーターを設定し、TensorFlow 2.0 の「コンパイル」および「フィット」メソッドを使用してモデルをトレーニングするプロセスをビデオで説明しています。これには、トレーニングのエポック数を設定する前に、コンパイルされたモデルで使用されるオプティマイザー、損失関数、およびメトリックの定義が含まれます。このビデオでは、エポックとは何か、モデルの精度にどのように影響するかについても簡単に説明しています。ファイルを実行した後、モデルのテスト精度が評価され、トレーニング精度よりわずかに低い 87 であることが判明しました。

  • 00:55:00 このセクションでは、プレゼンターがモデルを使用して特定の画像を予測する方法を示します。彼は、メソッド「model.predict」を使用して、画像の入力形状を含むリストまたは np 配列を渡す必要があると説明しています。メソッドは、一連の異なるものを渡すことを期待し、モデルを使用してそれらすべてを予測するため、予測のグループを提供します。出力は一連の異なるリストであり、それぞれが特定の画像に対するモデルの予測を含んでいます。プレゼンターは、チュートリアル ビデオではこの機能が無視されていることがありますが、実際にモデルを使用する方法を理解することが重要であると述べています。
  • 01:00:00 このセクションでは、スピーカーは、リスト内の最大数のインデックスを見つける np.argmax() 関数を使用してネットワーク予測を解釈および検証する方法を示します。この関数の値をクラス名に渡して、予測されるクラスの実際の名前を取得します。スピーカーは、基本的な for ループをセットアップして、テスト画像からいくつかの画像を表示し、それぞれに対応する予測を示します。これを使用して、モデルが正確に予測していること、および予測が表示された入力画像に関連して意味があることを検証する方法を示しています。最後に、スピーカーは、発生したエラーの簡単な修正に注意します。

  • 01:05:00 このセクションのビデオ チュートリアルでは、TensorFlow 2.0 を使用して、シャツや T シャツなどのファッション アイテムを分類できるシンプルなモデルを作成する方法を示します。このチュートリアルでは、複数の画像の予測プロセスと、1 つの画像を予測する方法について説明します。モデルは単純な分類問題に基づいており、基本的なニューラル ネットワークの概要を提供するように設計されています。今後のビデオでは、コンテンツはより高度になり、実際のデータの問題をカバーします。このチュートリアルで使用するデータは単純ですが、大規模なデータセットの読み込みと前処理は困難な場合があり、使用できるようにするには調整が必要になります。ただし、チュートリアルはわかりやすい構造を提供し、ニューラル ネットワークの知識を構築するための健全な基礎を提供します。

  • 01:10:00 このセクションでは、チュートリアルの作成者が、データをロードし、トレーニング セットとテスト セットに分割してトレーニング用に準備する方法を説明します。これらは、整数でエンコードされた単語の概念と、映画のレビューを表す方法を紹介します。次に、著者は、これらの数値が特定の単語に対応していることを説明し、これらの整数をそれぞれの単語にマッピングする方法を示します。また、データセット内の各単語に一意の整数を割り当てる単語インデックスの作成も示しています。最後に、単語索引に特殊キーを追加し、チュートリアルの後半でそれらがどのように使用されるかを説明します。

  • 01:15:00 このセクションでは、スピーカーは、パディング、開始、不明、および未使用の単語の値を、トレーニングおよびテスト データセットのそれぞれのキーに割り当てるプロセスについて説明しています。パディング ワードをリストの最後に追加して映画レビュー全体を同じサイズにすることで、すべての映画レビュー セットが同じ長さになるように pad タグを追加します。整数が単語を指すのではなく、単語を指すことができる辞書を作成するには、逆単語インデックス リストを使用してキーの値を逆にします。最後に、スピーカーは、結合された空白文字列と逆単語インデックスを使用して、トレーニング データとテスト データを人間が読める単語にデコードする機能について説明します。

  • 01:20:00 このセクションでは、パディング タグを使用してレビューの長さを特定することにより、すべてのレビューに対して正規化または明確な長さを設定する方法をチューターが説明します。家庭教師は、データセットの長さが異なる可能性があるため、入力ニューロンの長さを決定することは不可能であると説明しているため、この制限を解決するためにパディング タグが使用されます。チューターは、前処理やシーケンスなどの Tensorflow 関数を使用して、シーケンスを特定の長さにパディングする方法、またはすべてのシーケンスをユーザー定義の長さに正規化する方法を示します。最後に、チューターはセクション全体の要約を提供し、データのロード、エンコード、デコード、および前処理に使用されるさまざまなメカニズムを強調します。

  • 01:25:00 このセクションでは、ビデオ インストラクターがデータの前処理を続行し、モデルが受け入れることができる一貫した形式に仕上げます。データの一貫性を確認した後、ビデオはモデル アーキテクチャの定義に進みます。インストラクターは、埋め込み、グローバル平均プーリング 1D、さまざまな活性化関数を持つ密なレイヤーなど、さまざまなレイヤーの使用について説明します。また、モデルの出力が 0 から 1 の間の値を持つ単一のニューロンになる方法についても説明し、レビューが肯定的または否定的である可能性を示します。ビデオの最後では、単語の埋め込みの重要性と、単語の埋め込みがモデルのアーキテクチャの理解にどのように役立つかについて説明します。

  • 01:30:00 このセクションでは、スピーカーは単語ベクトルの概念と、埋め込みレイヤーが類似した意味を持つ単語をグループ化するのにどのように役立つかについて説明します。埋め込みレイヤーは、入力データ内のすべての単語または整数でエンコードされた用語に対して、基本的に 16 次元空間の係数である単語ベクトルを生成します。最初に、レイヤーは用語ごとに 10,000 個の単語ベクトルを作成し、それらをランダムにグループ化します。次に、レイヤーは、ベクトル間の角度を調べることでベクトル間の類似性を判断し、類似した単語をより近くにグループ化しようとします。このプロセスは、コンピューターが単語の意味と文脈を理解するのに役立ちます。これは、映画のレビューを肯定的または否定的に正確に分類するために不可欠です。

  • 01:35:00 このセクションの動画では、ニューラル ネットワークの埋め込みレイヤーを使用して、内容だけでなく文脈に基づいて類似の単語をグループ化する方法について説明しています。ニューラル ネットワークは、特定の単語の周囲の単語を調べることで、どの単語が互いに関連しているかを判断し、それらを埋め込み層でグループ化できます。この層の出力は、ネットワークの計算とトレーニングを容易にするために、データをより低い次元に配置するグローバル平均プーリング層を使用して縮小されます。このビデオでは、入力データが埋め込み層とニューラル ネットワークの後続の層を通過した後のネットワークの様子を図で示しています。

  • 01:40:00 このセクションのビデオでは、感情分析に使用されるニューラル ネットワークでのパターン認識用の高密度レイヤーの作成について説明します。ニューラル ネットワークは、さまざまな単語を表す単語ベクトルを取得して平均化し、16 個のニューロンを含む高密度層に渡します。密層は単語のパターンを探し、シグモイド関数を使用して肯定的または否定的なレビューを分類して 0 と 1 の間の値を出力しようとします。その後、モデルはオプティマイザー、損失関数、およびバイナリ クロスエントロピーを使用してコンパイルされ、予測値と実際の値の差。テスト中に新しいデータに対するモデルのパフォーマンスを正確に測定するために、データは検証セットとトレーニング セットに分割されます。

  • 01:45:00 このセクションでは、プレゼンターがテスト データを検証データに変更します。これは、モデルの検証に使用されるトレーニング データのサブセットです。彼は、機械学習とニューラル ネットワークではハイパーパラメーターが重要であり、正確な結果を得るにはユーザーが個々のパラメーターを微調整する必要があると説明しています。彼はまた、一度にロードされる映画レビューの数を指定するバッチ サイズの概念を説明し、512 に設定します。最後に、彼はモデルをデータに適合させ、テスト データで評価します。 87%。発表者は、検証データの重要性を強調し、新しいデータではモデルの精度が低下する場合があることを説明します。

  • 01:50:00 ビデオのこのセクションでは、TensorFlow でモデルを保存およびロードして、予測が行われるたびにモデルを再トレーニングする必要がないようにする方法を講演者が説明します。トレーニングに数週間、場合によっては数か月。モデルの語彙サイズを増やした後、スピーカーは「model.save()」関数を使用してモデルを保存する方法を示し、「.h5」拡張子の付いた名前を付けます。これは、TensorFlow で保存されたモデルに使用される拡張子です。そしてケラス。今後のビデオでは、スピーカーはチェックポイント モデルと、さまざまなサイズのデータを含むバッチでのモデルの読み込みについて説明する予定です。

  • 01:55:00 このセクションでは、スピーカーは TensorFlow 2.0 でモデルを保存およびロードする方法を説明します。モデルはバイナリ データで保存できます。これにより、モデルを毎回再トレーニングする必要がないため、予測を行う際の時間を節約できます。モデルをロードするには、ファイル名とともに 1 行のコードを追加する必要があります。次にスピーカーは、テキスト ファイルをコードで開き、データを前処理してモデルに供給できるようにすることで、外部データでモデルをテストする方法を示します。テキスト ファイルのサイズは、トレーニング データと一致するように最大 250 語にする必要があることに注意してください。前処理には、コンマや括弧などの不要な文字の削除が含まれます。
  • 02:00:00 このセクションでは、動画作成者がデータをエンコードして 250 ワードに切り詰め、モデルで予測に使用できるようにするプロセスについて説明します。ピリオド、引用符、括弧などの記号は、正しい単語マッピングを確保するために削除する必要があります。データ内のすべての単語のマッピングを検索し、エンコードされたリストを返す関数が作成されます。データがエンコードされると、モデルを使用して予測が行われ、元のテキスト、エンコードされたレビュー、および予測が出力されます。最後に、review_in_code 関数を定義して、文字列データをエンコードされたリストに変換します。

  • 02:05:00 ビデオのこのセクションでは、プレゼンターが保存されたモデルを実行し、コード エンコーディングの問題によりエラーが発生します。問題を修正した後、プレゼンターは、88,000 語の語彙を使用して、レビュー内の各単語に対応するインデックスを割り当てることにより、レビューをネットワークが理解できる形式に変換する方法を示します。結果の出力は、レビューが肯定的であると正確に識別し、入力データを操作して、ネットワークが処理する正しい形式であることを確認することの重要性を強調しています。その後、ビデオは Ubuntu Linux システムに TensorFlow 2.0 GPU バージョンをインストールするチュートリアルに移り、GPU アクセラレーション用に CUDA と cuDNN をインストールする手順が示されます。

  • 02:10:00 このセクションでは、GPU バージョンを使用して TensorFlow 2.0 をコンピューターにインストールするプロセスをスピーカーが視聴者に案内します。これらは、正しいドライバーを含む NVIDIA パッケージと TensorFlow 2.0 フレームワーク自体をインストールするための段階的なガイドを提供します。講演者は、プロセスは比較的簡単ですが、ダウンロードのサイズが大きいため、完了するまでに時間がかかる場合があることに注意しています。また、GPU の使用に関する問題が発生している視聴者には、TensorFlow の CPU バージョンをアンインストールし、コメント セクションを参照してさらに支援を受けるようアドバイスしています。
TensorFlow 2.0 Crash Course
TensorFlow 2.0 Crash Course
  • 2019.09.26
  • www.youtube.com
Learn how to use TensorFlow 2.0 in this crash course for beginners. This course will demonstrate how to create neural networks with Python and TensorFlow 2.0...
 

機械学習のための Python TensorFlow – ニューラル ネットワーク テキスト分類チュートリアル



機械学習のための Python TensorFlow – ニューラル ネットワーク テキスト分類チュートリアル

この YouTube チュートリアルでは、プレゼンターは、機械学習とニューラル ネットワークのテキスト分類のための Python TensorFlow に関連するさまざまなトピックを取り上げます。まず、Google Colab でのセットアップ プロセスと必要なライブラリのインポートについて説明した後、Wine Reviews データセットに注目し、Matplotlib を使用してさまざまな機能のヒストグラムをプロットします。このチュートリアルでは、教師あり学習を含む機械学習の概念、質的データと量的データの違い、および二項分類や多クラス分類などの分類シナリオにおける入力と予測について説明します。カバーされるその他のトピックには、損失関数、ニューラル ネットワーク、活性化関数、勾配降下、逆伝播、および TensorFlow 内のニューラル ネットの実装が含まれます。最後に、発表者はテキスト分類に TensorFlow を使用してニューラル ネットワークを実装し、パッケージとライブラリを使用して効率を高める利点を示します。

ビデオ チュートリアルの第 2 部では、Python での TensorFlow を使用した機械学習のさまざまな側面について説明します。特に、ニューラル ネットワークのテキスト分類に焦点を当てています。このチュートリアルでは、トレーニング セットとテスト セットへのデータの分割、TensorFlow と Keras を使用した単純なモデルの作成、データセットのスケーリングとバランス調整、再帰型ニューラル ネットワークの使用、テキスト分類のための TensorFlow Hub の使用について説明します。このチュートリアルでは、モデルの精度を評価することの重要性と、活性化関数、ドロップアウト層、さまざまな種類のセルなど、さまざまなニューラル ネットワーク コンポーネントの使用が強調されています。このチュートリアルは、ニューラル ネットワークの構築、テキスト分類のための TensorFlow の使用、数値データの操作など、重要なポイントを要約して締めくくります。

  • 00:00:00 ビデオのこのセクションでは、Kylie Ying が Google Colab で新しいノートブックをセットアップし、NumPy、Pandas、Matplotlib、TensorFlow、TensorFlow Hub などの必要なライブラリをインポートする方法を視聴者に示すことから始めます。これらのライブラリをインポートした後、彼女は「Wine Reviews」というデータセットを CSV ファイルとしてアップロードし、それを Pandas DataFrame として読み取り、国、説明、ポイント、価格など、分析したい列を選択します。彼女は、説明列と点数列の間の関係を分析することに集中して、ニューラル ネットワーク モデルをトレーニングして、ワインのレビューが点数スペクトルの下端にあるか上端にあるかを分類できるかどうかを確認することにしました。

  • 00:05:00 ビデオのこのセクションでは、スピーカーは pandas データフレームに列をドロップし、Matplotlib を使用してヒストグラムをプロットする方法について説明します。ポイント列をプロットして値の分布を確認し、レビューを 90 未満と 90 を超えるように分類することにしました。スピーカーは、人工知能、機械学習、データ サイエンスの違いなど、機械学習についても簡単に説明します。機械学習は、データを使用して特定の問題を解決することに重点を置いた AI のサブセットです。 AI、機械学習、およびデータ サイエンスの分野は重複しており、機械学習技術を使用してデータを分析し、そこから洞察を引き出す場合があります。

  • 00:10:00 このセクションでは、スピーカーは、教師あり学習、教師なし学習、強化学習の 3 種類の機械学習を紹介します。このチュートリアルでは、入力に対応する出力ラベルがあり、モデルをトレーニングして出力を学習するために使用される教師あり学習に焦点を当てています。講演者は、機械学習モデルがデータのパターンを学習して予測を導き出すこと、および入力のリストが特徴ベクトルと呼ばれることを説明します。講演者はまた、質的データ入力の 2 つの異なるタイプについても説明します。カテゴリーまたは有限数のカテゴリーまたはグループです。このチュートリアルでは、ラベル付きの入力と出力の組み合わせを使用して将来の予測を行うことに焦点を当てています。

  • 00:15:00 このセクションのビデオでは、質的特徴と量的特徴の概念と、それらをコンピューターの数値にエンコードする方法を紹介しています。国籍や年齢層などの定性的な特徴は、数値が関連付けられていない特徴であり、ワンホット エンコーディングを使用してエンコードできます。机の大きさや火の温度などの数値特徴は定量的であり、連続的または離散的です。このビデオでは、固有の順序付けを持たない名義データと、固有の順序付けを持つ順序データも区別し、さまざまなタイプの質的特徴にさまざまなエンコード手法が必要になる可能性についても説明しています。

  • 00:20:00 このセクションでは、スピーカーは、教師あり学習におけるさまざまな種類の入力と予測について説明します。入力は連続または離散のいずれかであり、予測はバイナリまたはマルチクラスのいずれかに分類できます。バイナリ分類の場合、モデルは入力が 2 つのカテゴリのいずれかに属しているかどうかを予測しますが、マルチクラス分類では、入力が複数のカテゴリのいずれかにマッピングされます。さらに、回帰を使用して連続値を予測します。次にスピーカーはモデルの話題をからかいますが、まだ詳細には触れません。最後に、スピーカーは、モデルを学習させ、そのパフォーマンスを評価する方法について簡単に触れます。

  • 00:25:00 このセクションでは、スピーカーは実際の例に使用するデータセットについて説明し、データの構造を説明します。このデータセットには、妊娠数、血糖値、血圧などの量的変数や、糖尿病かどうかを示す結果変数など、個人に関する情報が含まれています。各行は異なる個体を表し、各列はモデルに入力できる異なる特徴を表します。特徴ベクトルはモデルにプラグインされるものであり、その特徴ベクトルのターゲットは予測される出力です。講演者は、データ セットがトレーニング データ セット、検証データ セット、およびテスト データ セットに分割されていること、および検証データ セットを使用して、モデルが非表示のデータを処理できることを確認してから、モデルが処理されることを説明します。テストデータセットでテストされました。

  • 00:30:00 このセクションでは、スピーカーは損失関数について説明し、回帰およびバイナリ分類シナリオで予測値と実際の値の差をどのように定量化するかについて説明します。回帰では、L1 損失関数は予測値と実際の値の差を見つけ、L2 損失関数は差を二乗します。バイナリ分類では、バイナリ クロス エントロピー損失は、特定のクラスに属する予測確率と実際の確率の差を見つけます。スピーカーは、分類シナリオにおけるパフォーマンスの尺度としての精度についても説明します。最後に、スピーカーはモデルの概念と、それが全体的な機械学習プロセスにどのように適合するかを紹介します。

  • 00:35:00 このセクションでは、スピーカーはニューラル ネットワークについて説明し、分類と回帰に使用できることで人気があると述べています。ただし、講演者は、ニューラル ネットワークが過剰に使用される場合があり、単純なモデルに使用する必要がない場合があることにも言及しています。講演者は、ニューラル ネットワークがブラック ボックスであるため、透明性に欠けることがあることについて説明します。それらは、機能が活性化関数を通過する前にどのように重みで乗算され、バイアスに追加されるかなど、ニューラル ネットワークの構造を説明します。講演者は、ニューラル ネットワークが単純な線形回帰になるのを防ぐために、非線形活性化関数を使用することの重要性を強調しています。

  • 00:40:00 このセクションのビデオでは、活性化関数とニューラル ネットワークにおけるそれらの役割について説明します。ニューラル ネットワークが単純に線形関数を使用した場合、その目的は果たせません。 sigmoid、tange、relu などの活性化関数を使用すると、各ニューロンを非線形空間に投影できるため、トレーニング プロセスが可能になります。次に、このビデオでは、ニューラル ネットワークが機能する理由である勾配降下と逆伝播の概念について説明します。勾配降下法は損失関数の勾配を測定し、逆伝播は重み値を調整して損失を最小限に抑えます。このプロセスを通じて、各パラメーターに新しい重み値が設定されます。これは、古い重みにアルファを加えたものです。

  • 00:45:00 このセクションのビデオでは、すでに開発および最適化されている TensorFlow などのライブラリを使用した、機械学習におけるニューラル ネットワークの実装について説明しています。 TensorFlow ライブラリは、機械学習モデルの開発とトレーニングに役立つオープンソース ライブラリです。ライブラリは、さまざまなオプティマイザーなど、モデルの作成と最適化でユーザーを支援するモジュールを含む Keras を含む多くのモジュールで構成されています。このビデオでは、ニューラル ネットワークをゼロからコーディングするよりも、確立されたライブラリを使用する方が有益である理由についても説明しています。

  • 00:50:00 このセクションでは、プレゼンターがテキスト分類に TensorFlow を使用してニューラル ネットワークを実装する方法を視聴者に示します。彼らはまず、パッケージとライブラリを使用して効率を改善する利点を紹介してから、読み取り csv 関数を使用して糖尿病.csv というデータセットを読み込む新しいノートブックの作成に進みます。このデータセットは、国立糖尿病および消化器および腎臓病研究所から提供されたもので、さまざまな機能と患者の人口統計、および患者が糖尿病にかかっているかどうかの分類が含まれています。次に、プレゼンターは、Jupyter Notebook の for ループを使用して、患者が糖尿病にかかっているかどうかによってインデックス付けされたさまざまな特徴のヒストグラムをプロットすることにより、データを視覚化する方法を示します。

  • 00:55:00 機械学習とニューラル ネットワークのテキスト分類に Python TensorFlow を使用するビデオ チュートリアルのこのセクションでは、プレゼンターは結果がゼロに設定された新しいデータ フレームと、糖尿病患者を区別するために結果が 1 に設定された別のデータ フレームを作成します。そしてないもの。次のステップでは、糖尿病陽性患者と糖尿病陰性患者の数を視覚化しますが、異なる値の間に分離可能なパターンがないため、決定的ではないように見えます。これは、すべての機能を一緒に考慮して、糖尿病を予測する際の機械学習の重要性を強調しています。最後に、プレゼンターはさらに分析するために、データ フレームを x 値と y 値に分割します。
  • 01:00:00 このセクションでは、スピーカーは、Scikit-learn モジュールを使用してデータをトレーニング セットとテスト セットに分割する方法を説明します。スピーカーはモジュールをインポートし、train_test_split 関数を呼び出し、入力および出力機能を渡します。テスト サイズは 20% に設定され、トレーニング サイズはデータ セットの 60% に設定されます。次に、一時セットを使用して、50/50 分割を使用して検証セットとテスト セットを作成します。最後に、話者は TensorFlow と Keras を使用して単純なモデルを構築します。具体的には、前の層に密に接続された 16 個のニューロンを含む密層です。

  • 01:05:00 このセクションでは、スピーカーは、Python で TensorFlow を使用してバイナリ分類用のニューラル ネットワークを作成するプロセスを説明します。レイヤーと、入力を単一のクラスに属するかどうかの確率にマッピングするシグモイドと呼ばれる活性化関数を追加します。次に、モデルは、「adam」と呼ばれるオプティマイザ、「バイナリ クロス エントロピー」と呼ばれる損失関数、および精度のメトリックを使用してコンパイルされます。モデルをトレーニングする前に、トレーニング データと検証データでパフォーマンスを評価しますが、精度は低くなります。最後に、スピーカーは「model.fit」関数を使用してモデルをトレーニングし、トレーニング データと検証データ、バッチ サイズ、およびエポック数を渡します。

  • 01:10:00 このセクションでは、プレゼンターは、データセットの機能をスケーリングして、より標準化された範囲にあることを確認する必要性について説明します。プレゼンターは、sklearn の前処理と標準的なスカラーを使用して機能をスケーリングするために必要なパッケージをインポートする方法を説明します。機能をスケーリングした後、プレゼンターは値の範囲をチェックし、変換されたデータ フレームをプロットして、ほとんどの機能が同様の縮尺になっていることを示します。特徴をスケーリングすると、範囲が異なるために特徴がニューラル ネットワークの結果に影響を与えないようにすることができます。

  • 01:15:00 このセクションのビデオ チュートリアルでは、ランダム オーバー サンプリングと呼ばれるプロセスを通じて、データセットの正規化とバランス調整に焦点を当てています。データを視覚化することで、インストラクターは、糖尿病患者と非糖尿病患者のデータセットが非常に不均衡であり、ニューラル ネットワークが適切にトレーニングされない可能性があることを示します。ランダム オーバー サンプラーを使用することで、より多くのランダム サンプルがデータセットに追加され、2 つのカテゴリの長さのバランスが取れます。これは、ランダム オーバー サンプラーを含むインバランス学習ドット オーバー サンプリングと呼ばれる別のパッケージをインポートすることによって実現されます。データセットは fit_resample 関数を使用して再度分割され、両方の結果がほぼ 1 に等しくなります。セルを再実行した後、モデルの精度は 50% 近くになり、データセットのバランスをとることでモデルのパフォーマンスが向上したことを示しています。

  • 01:20:00 このセクションでは、作成者がテスト データセットでニューラル ネットワーク モデルを評価し、77.5% の精度を達成しました。これは、モデルが目に見えないデータへの一般化に成功したことを示しています。次にチュートリアルは、再帰型ニューラル ネットワーク (RNN) と、それらがシーケンスまたはシリーズを含むデータにどのように役立つかについて説明します。 RNN を使用すると、ニューラル ネットワーク内にメモリを作成できるため、前の時間ステップからの情報を記憶できます。ただし、RNN を使用すると、逆伝播中に勾配が爆発したり消失したりするなどの問題が発生する可能性があります。

  • 01:25:00 このセクションでは、スピーカーは勾配がますますゼロに近づき、モデルの更新と学習が妨げられる問題について説明します。これに対抗するために、ゲート反復単位や長期短期記憶単位など、使用できるさまざまな種類の細胞またはニューロンがあります。次にスピーカーは、ワイン レビューを使用したテキスト分類を使用した TensorFlow の例に移り、データをトレーニング、検証、およびテスト データセットに分割する方法を示します。講演者は numpy の split 関数を使用して、データを分割する別の方法を示し、データセットを操作する際に柔軟であることの重要性を強調します。

  • 01:30:00 このセクションのビデオ チュートリアルでは、データ セットをトレーニング セット、検証セット、テスト セットに分割する方法と、TensorFlow でそれらを tf.data.Dataset オブジェクトに変換する方法について説明します。インストラクターは、データ セットのサイズが大きいため、より大きなバッチ サイズと tf.data.autotune を使用し、関数コードを調整して、データが既にラベル付けされているため、ターゲット変数を「ラベル」に変更します。このチュートリアルでは、このチュートリアルでテキスト分類に使用される TensorFlow ハブのしくみについても説明します。このビデオでは、TensorFlow データ セット オブジェクト内のデータ セットを視覚化する方法も示しています。

  • 01:35:00 このセクションのビデオ チュートリアルでは、事前トレーニング済みの機械学習モデルのリポジトリである TensorFlow Hub を使用してテキスト分類を支援する方法について説明します。このビデオでは、コンピューターはテキストを理解できないため、テキストをコンピューターが理解できる数値に変換する必要があることを説明しています。この変換を行うために、このビデオでは、英語の Google ニュースでトレーニングされたトークン ベースのテキスト埋め込みである nnlm を使用し、すべてのテキストを数値のベクトルに変換します。ビデオでは、TensorFlow Keras を使用して、高密度レイヤー、ReLU アクティベーション関数、バイナリ分類出力を使用してニューラル ネットワーク モデルを構築する方法を示します。このビデオでは、モデルをコンパイルし、トレーニング データと検証データで評価し、約 40% の精度を示しています。

  • 01:40:00 ビデオのこのセクションでは、スピーカーが機械学習モデルをトレーニングし、結果を観察します。トレーニングの精度が向上し、損失が減少したことは、モデルが十分にトレーニングされていることを示しています。ただし、検証精度は横ばいになり、わずかに低下することさえあります。これは、モデルが適切に一般化されておらず、過適合であることを示しています。この問題を解決するために、講演者はドロップアウト レイヤーを追加することを提案しています。ドロップアウト レイヤーは、各トレーニングの反復中に「オフ」にするノードをランダムに選択します。これにより、モデルのランダム性と変動性が高まり、より一般化するのに役立ちます。最後に、スピーカーはハブ レイヤーを繰り返し、モデルをコンパイルします。

  • 01:45:00 このセクションでは、ユーザーは、前のセクションで作成およびトレーニングされたニューラル ネットワークを評価します。損失は減少し、精度は向上していますが、ユーザーはわずか 5 エポック後にトレーニングを早期に停止します。モデルはテスト データで評価され、精度は約 83% です。次に、ユーザーは LSTM を使用してモデルを再作成する方法を示し、最大トークンを 2000 に設定してエンコーダーを作成することから始めます。次に、モデルは、エンコーダーと、エンコーダーの語彙の長さに設定された入力次元を持つ埋め込みレイヤーを使用して定義されます。最後に、32 個のノードを持つ LSTM 層が追加されます。

  • 01:50:00 ビデオのこのセクションでは、インストラクターが過適合を防ぐために密層とドロップアウト層を追加してニューラル ネットワークを構築しています。出力のアクティベーション関数はシグモイドですが、入力にはトークナイザーが必要です。モデルの精度は約 53、損失は約 0.7 であることがわかります。次に、トレーニング データと検証データを評価して、モデルをトレーニングします。トレーニングの最後に、テスト データの精度は 84 であることがわかりました。チュートリアルは、フィードフォワード ニューラル ネットワークの構築方法、テキスト分類に TensorFlow を使用する方法、および数値を実装する方法を学習しているインストラクターの要点を要約することで終了します。データ。
Python TensorFlow for Machine Learning – Neural Network Text Classification Tutorial
Python TensorFlow for Machine Learning – Neural Network Text Classification Tutorial
  • 2022.06.15
  • www.youtube.com
This course will give you an introduction to machine learning concepts and neural network implementation using Python and TensorFlow. Kylie Ying explains bas...
 

TensorFlow 2.0 の完全なコース - Python Neural Networks for Beginners チュートリアル (パート 1-4)



TensorFlow 2.0 コンプリート コース - 初心者向け Python ニューラル ネットワーク チュートリアル

00:00:00 - 01:00:00 このビデオでは、データ操作と機械学習用のライブラリである TensorFlow 2.0 を紹介しています。インストラクターは、テンソルとは何か、テンソルを使用して部分的に定義された計算を保存する方法について説明します。彼はまた、TF ドット ランクおよび TF ドット形状変更関数を使用して、テンソルの次元数を制御する方法も示しています。

01:00:00 - 02:00:00 ビデオ チュートリアルでは、線形回帰を使用してデータ セットの値を予測する方法を説明しています。タイタニックのデータセットが例として使用されます。プレゼンターは、線形回帰を使用してデータ セット内の値を予測する方法と、TensorFlow を使用してデータ セット内に特徴列を作成する方法について説明します。

02:00:00 - 03:00:00 このビデオ チュートリアルでは、ニューラル ネットワークに Python を使用する基本について説明します。ビデオは、相互接続されたニューロンの層でニューラル ネットワークがどのように構成されているかの説明から始まります。次に、ビデオでは、乱数ジェネレーターの作成方法とニューラル ネットワークのトレーニング方法について説明します。最後に、このビデオでは、ニューロンと重みを接続する方法、ネットワークを介して情報を渡す方法、およびニューロンの出力値を計算する方法を示します。

03:00:00 - 04:00:00 このビデオでは、TensorFlow を使用して画像認識用の畳み込みニューラル ネットワークを構築する方法を説明しています。このビデオでは、畳み込みニューラル ネットワークの仕組みや事前トレーニング済みモデルの使用方法など、畳み込みニューラル ネットワークの基本について説明します。

04:00:00 - 05:00:00 このビデオでは、TensorFlow を使用して、画像のクラスを予測できる機械学習モデルをトレーニングする方法を説明しています。このビデオでは、ディープ ラーニングや畳み込みニューラル ネットワークなどの基本的な概念について説明します。

05:00:00 - 06:00:00 このビデオは、ニューラル ネットワークのトレーニングに TensorFlow 2.0 を使用するための完全なガイドです。ニューラル ネットワークの入力と出力の形状、損失関数の作成方法、モデルを使用してシーケンスを予測する方法について説明します。このビデオでは、TensorFlow を使用してテキストを生成する方法も示しています。

06:00:00 - 06:50:00 このビデオ チュートリアルでは、強力な機械学習ライブラリである TensorFlow 2.0 の基礎を紹介します。 TensorFlow とその主要な概念を紹介した後、このチュートリアルでは、ディープ ラーニングや強化学習などのさまざまな機械学習タスクに関する一連のチュートリアルを視聴者に案内します。


パート1

  • 00:00:00 このビデオ チュートリアルでは、Python でニューラル ネットワークに TensorFlow 2.0 を使用する方法を初心者に説明しています。インストラクターは、人工知能、ニューラル ネットワーク、機械学習の違いを説明し、練習問題やコード例など、コースのリソースを提供します。

  • 00:05:00 機械学習は人工知能のサブフィールドであり、コンピューターが明示的にプログラムしなくても自分でルールを生成できるようにします。

  • 00:10:00 このビデオでは、ニューラル ネットワークとディープ ラーニングの基本と、複数のレイヤーを介してデータを変換することでこれらのシステムがどのように機能するかを説明しています。ニューラル ネットワークは、機械学習や人工知能など、さまざまなタスクに使用できます。このビデオでは、生徒の成績のサンプル データ セットも提供されています。

  • 00:15:00 このビデオでは、人工知能、機械学習、ニューラル ネットワークの違いについて説明した後、教師あり学習について説明します。

  • 00:20:00 入力データがない場合、教師なし機械学習が使用されます。類似したデータポイントのグループを把握するために使用されます。

  • 00:25:00 この動画では、教師あり学習、教師なし学習、強化学習の 3 種類の機械学習の概要を説明しています。最後のタイプである強化学習は、人工知能 (AI) エージェントが特定の目標を達成しようとするゲームの例を使用して、より詳細に説明されています。

  • 00:30:00 このビデオでは、TensorFlow の基本的な紹介が行われ、その後、ライブラリが下位レベルでどのように機能するかについて説明されています。その後、TensorFlow について、グラフとセッションという 2 つの主要コンポーネントを含めて、より詳細に説明します。グラフは相互に関連する部分的な計算の集まりであり、セッションはグラフの一部または全体を実行する方法です。

  • 00:35:00 このビデオでは、インストラクターがグラフやセッションの概念など、TensorFlow の基本を紹介します。次に、Google Collaboratory を使用してコード ブロックを作成および実行する方法と、さまざまなモジュールをインポートして使用する方法を示します。最後に、リソースが限られているコンピューターで TensorFlow を使用する利点について説明します。

  • 00:40:00 このビデオでは、インストラクターが Python ニューラル ネットワークで TensorFlow 2.0 をインポートして使用する方法を実演します。 TensorFlow は、データ操作と機械学習のためのライブラリです。 TensorFlow 2.0 は、パフォーマンスを向上させる新しいバージョンのライブラリです。インストラクターは、テンソルとは何か、ベクトルと行列を一般化する方法についても説明します。

  • 00:45:00 TensorFlow 2.0 では、部分的に定義された計算を格納する重要なオブジェクトであるテンソルが導入されています。テンソルにはデータ型と形状があり、各テンソルにはランクと次数があります。テンソルのランクを決定するには、TF ドット ランク法を使用します。

  • 00:50:00 このビデオでは、作者がテンソル形状の概念を紹介し、テンソルの要素数を識別するためにどのように使用できるかを説明しています。彼はまた、テンソル ランクの概念を紹介し、それを使用してテンソルの次元数を制御する方法を示します。最後に、彼は TF dot reshape 関数を使用して、データのベクトルを別の形状に再形成する方法を示します。

  • 00:55:00 このビデオでは、さまざまなタイプ、テンソルの作成および評価方法、テンソルの再形成方法など、テンソルの基本について説明しています。


パート2

  • 01:00:00 このビデオでは、線形回帰の基本的な考え方を説明しています。線形回帰は、過去のデータから将来の値を予測するために使用される機械学習アルゴリズムです。線形回帰は、データ ポイントが線形に相関する場合に使用されます。

  • 01:05:00 このチュートリアルでは、線形回帰を使用して、最適な線を使用して新しいデータ ポイントを予測する方法を学習します。

  • 01:10:00 このビデオでは、プレゼンターが線形回帰を使用してデータセットの値を予測する方法を説明しています。最初に線形回帰が 3 次元でどのように機能するかを説明し、次に TensorFlow でコーディングする方法を示します。

  • 01:15:00 このビデオでは、タイタニック号のデータ セットを紹介し、船で誰が生き残るかを予測するのに線形回帰が優れたアルゴリズムである理由を説明しています。データ セットは pandas と Excel に読み込まれます。

  • 01:20:00 このビデオでは、データ フレームを使用してデータを格納する方法と、ドット演算子を使用してデータ フレーム内の特定の値を検索する方法について説明しています。

  • 01:25:00 このビデオでは、講師が Tensor の基本と機械学習での使用方法について説明します。次に、トレーニング データ セットとテスト データ セットを使用してモデルを作成する方法を示します。

  • 01:30:00 このビデオでは、作者が TensorFlow を使用してデータセットに特徴列を作成する方法を説明しています。これらの列は、線形推定器またはモデルのトレーニングに使用されます。

  • 01:35:00 このビデオでは、講師が TensorFlow モデルで特徴列と数値列を作成する方法と、バッチを使用してモデルをトレーニングする方法を説明します。

  • 01:40:00 TF 2.0 コンプリート コースでは、Python を使用してニューラル ネットワークを作成する方法と、ネットワークをトレーニングして評価する方法について説明しています。ビデオ チュートリアルでは、入力関数を作成する方法と、関数を使用してパンダ データセットの画像を作成する方法を示します。

  • 01:45:00 この 1 段落の要約では、TensorFlow モデルを使用してデータセットで予測を行う方法を説明しています。まず、estimator モジュールの構文を使用してモデルを作成します。次に、線形分類器オブジェクトを使用してモデルをトレーニングします。最後に、モデルを評価して精度を出力します。

  • 01:50:00 このビデオでは、TensorFlow を使用して結果を予測するためのニューラル ネットワークを作成する方法について説明します。予測をループして実際の値にアクセスする方法も含まれます。

  • 01:55:00 このチュートリアルでは、著者は TensorFlow を使用してニューラル ネットワークをトレーニングし、データ セットから花の種を予測する方法を示します。また、さまざまなタイプのニューラル ネットワークと、入力関数を使用してパフォーマンスを最適化する方法についても説明します。


パート3

  • 02:00:00 このビデオでは、著者が TensorFlow 2.0 でニューラル ネットワークを作成するプロセスを順を追って説明し、利用可能なさまざまなモデルについて説明します。次に、ニューラル ネットワークを構築し、dnn 分類器を使用してトレーニングする方法を示します。

  • 02:05:00 このビデオでは、ニューラル ネットワークのトレーニングと評価関数が作成されます。ラムダを使用して、関数を 1 行で定義します。次に、この関数を使用してニューラル ネットワークをトレーニングします。トレーニングされたニューラル ネットワークの精度が表示されます。

  • 02:10:00 ビデオでは、TensorFlow の予測関数を使用して花のクラスを予測する方法を示しています。ユーザーはまず、がく片の長さ、花弁の長さ、幅などの花の特徴を入力します。次に、予測辞書を作成し、特徴をフィードします。その後、TensorFlow は入力特徴に基づいて花のクラスを予測します。最後に、ユーザーは予測と予測の確率を出力します。

  • 02:15:00 このビデオでは、分類やクラスタリングなど、ニューラル ネットワークの基本について説明します。

  • 02:20:00 ビデオでは、Python ニューラル ネットワークを使用してデータ ポイントをクラスター化する方法について説明しています。ビデオでは、すべてのデータ ポイントにラベルを付けた後、すべてのクラスター間で最も近い重心を見つける方法と、データ ポイントを最も近いクラスターに再割り当てする方法について説明します。

  • 02:25:00 このビデオでは、インストラクターがニューラル ネットワークと隠れマルコフ モデルの基礎について説明します。彼はまず、k-means や線形回帰など、機械学習で使用されるデータ型について説明します。次に、基本的な気象モデルと、特定の日の天気を予測するための隠れマルコフ モデルの作成方法について説明します。

  • 02:30:00 このビデオ チュートリアルでは、プレゼンターがニューラル ネットワークでの使用法など、TensorFlow の基本を紹介します。次に、2 つの状態と 2 つの確率分布を使用して、TensorFlow で基本的な気象モデルを作成する方法を示します。次に、プレゼンターは、モデルを使用して来週の気温を予測する方法を示します。

  • 02:35:00 このビデオでは、TensorFlow を使用してニューラル ネットワークを作成し、特定のシーケンスの各日の平均気温を予測する方法を示しています。必要なモジュールをインポートしてモデルを作成する方法をビデオで説明します。モデルは、シーケンスの最初の日の平均気温を正しく予測しますが、その後の日は間違った気温を予測します。問題をトラブルシューティングした後、別の TensorFlow モジュールを使用してシーケンスの各日の平均気温を正しく予測する方法をビデオで示します。

  • 02:40:00 このビデオでは、Mean コマンドを使用して TensorFlow 2.0 でモデルを実行する方法について説明しています。これは、モデル内の変数の期待値を比較するのに役立つコマンドです。

  • 02:45:00 このモジュールでは、インストラクタがニューラル ネットワークとその仕組みについて説明し、ニューラル ネットワークがどのようにレイヤーで構成されているかを説明します。また、入力層が生データを受け取る方法と、ニューラル ネットワークがそのデータを分類する方法についても説明します。

  • 02:50:00 「TensorFlow 2.0 Complete Course - Python Neural Networks for Beginners Tutorial」では、Python で基本的なニューラル ネットワークを作成するための段階的なガイドが提供されています。最初の層は入力ニューロンで、その後に隠れ層、そして出力層が続きます。出力層には入力情報ごとに 1 つのニューロンがあり、隠れ層のニューロンは互いに接続され、出力層に接続されます。隠れ層は、入力層と出力層に接続されており、密結合ニューラル ネットワークと呼ばれます。

  • 02:55:00 このビデオ チュートリアルでは、ニューラル ネットワークに Python を使用する方法を紹介し、乱数ジェネレーターを作成してニューラル ネットワークをトレーニングする方法を示します。このビデオでは、ニューロンと重みを接続する方法、ネットワークを介して情報を渡す方法、ニューロンの出力値を計算する方法についても説明します。


パート 4

  • 03:00:00 このビデオでは、アクティベーション関数を使用して、Python ニューラル ネットワークについて説明します。この関数は、負の数と正の数を押しつぶして二乗し、ネットワークが赤と青の色をより簡単に識別できるようにします。

  • 03:05:00 このビデオでは、著者はアクティベーション関数の概念と、それがニューラル ネットワークの出力に与える影響について説明しています。また、アクティベーション関数を使用してネットワークを複雑にする方法についても説明しています。次に、ニューラル ネットワークのトレーニングに使用される損失関数について説明します。

  • 03:10:00 このビデオでは、ニューラル ネットワークの概念を紹介し、ニューラル ネットワークのトレーニングで使用される 3 つの主な損失関数 (平均二乗誤差、平均絶対誤差、ヒンジ損失) について説明します。次に、ニューラル ネットワークのパフォーマンスを最適化するために使用されるアルゴリズムである勾配降下について説明します。

  • 03:15:00 このビデオ チュートリアルでは、ニューラル ネットワークの作成方法やトレーニング方法など、TensorFlow の基本を紹介しています。このビデオでは、ニューラル ネットワーク最適化アルゴリズムの使用についても説明し、ニューラル ネットワークのパフォーマンスを評価する方法について説明します。

  • 03:20:00 このビデオでは、講師が TensorFlow を使用して Python でニューラル ネットワークをトレーニングする方法を実演しています。デモンストレーションで使用されるデータ セットにはさまざまな種類の衣類の画像が含まれており、インストラクターは TensorFlow のトレーニングおよびテスト機能を使用してネットワークの予測を検証する方法を示します。

  • 03:25:00 このビデオでは、インストラクターが、ニューラル ネットワークのレイヤーとノード、ニューロンの出力値を決定するために使用される活性化関数など、ニューラル ネットワークの基本について説明します。インストラクターは、TensorFlow でモデルを作成する方法と、モデルを実行する方法についても説明します。

  • 03:30:00 この 1 時間のビデオ チュートリアルでは、作成者がニューラル ネットワークのアーキテクチャと機能を含む TensorFlow の基本について説明します。次に、ニューラル ネットワークをコンパイルして適合させる方法を示し、最後にトレーニング セットでトレーニングします。オーバーフィッティングについて説明し、トレーニング済みモデルの精度をテスト セットの精度と比較します。

  • 03:35:00 このビデオでは、インストラクターが、ニューラル ネットワークがどのようにオーバーフィットする可能性があるか、およびハイパーパラメーターを微調整して一般化を改善する方法を説明します。次に、ニューラル ネットワークから予測されたオブジェクトを使用して、テスト イメージで予測を行う方法を示します。

  • 03:40:00 このビデオ チュートリアルでは、TensorFlow を使用してディープ コンピューター ビジョン用の畳み込みニューラル ネットワークを構築する方法を説明しています。このビデオでは、畳み込みニューラル ネットワークとは何か、そのしくみ、および事前トレーニング済みモデルの使用方法について説明します。

  • 03:45:00 ビデオでは、高密度ニューラル ネットワークと畳み込みニューラル ネットワークの違いが説明されており、畳み込みニューラル ネットワークはグローバル パターンではなくローカル パターンを学習することが説明されています。

  • 03:50:00 畳み込みニューラル ネットワーク (CNN) は、画像の分析と理解に使用される機械学習アルゴリズムです。畳み込みニューラル ネットワークは、画像の分析と理解に使用されるさまざまなレイヤーで構成されています。最初のレイヤーは、画像内の特定のフィルターの存在を識別するために使用されます。

  • 03:55:00 このビデオでは、インストラクターが外積を使用して画像内のフィルターを見つける方法を説明しています。フィルターは、画像とフィルターの間のピクセル値がどの程度類似しているかに基づいて決定されます。
TensorFlow 2.0 Complete Course - Python Neural Networks for Beginners Tutorial
TensorFlow 2.0 Complete Course - Python Neural Networks for Beginners Tutorial
  • 2020.03.03
  • www.youtube.com
Learn how to use TensorFlow 2.0 in this full tutorial course for beginners. This course is designed for Python programmers looking to enhance their knowledge...
 

TensorFlow 2.0 コンプリート コース - Python Neural Networks for Beginners チュートリアル (パート 5-7)



TensorFlow 2.0 コンプリート コース - 初心者向け Python ニューラル ネットワーク チュートリアル


パート5

  • 04:00:00 ビデオでは、畳み込みニューラル ネットワークがどのように機能するか、およびネットワークを使いやすくするためにパディングとストライドがどのように役立つかについて説明しています。

  • 04:05:00 このビデオでは、講師が最小値や最大値などのプーリング操作を使用して特徴マップの次元を削減する方法について説明します。次に、特徴マップから値をサンプリングし、次元を減らした特徴マップを生成する方法を示すことで、これがどのように行われるかを示します。次に、インストラクターは、2 x 2 プーリング操作を使用して、特徴マップのサイズを半分に縮小する方法を示します。次に、マックス プーリング操作を使用してエリア内のフィーチャを検索する方法を示します。次に、平均プーリング操作を使用してエリア内のフィーチャを見つける方法を示します。最後に、インストラクターは、Kerris を使用して畳み込みニューラル ネットワークを作成する方法を示します。

  • 04:10:00 このビデオ チュートリアルでは、講師が Python を使用して畳み込みニューラル ネットワーク (CNN) を作成する方法を示します。 CNN の最初の層は、入力データの次元を削減する最大プーリング層です。次の 2 つの層は、畳み込み層と最大プーリング層です。最後の層は、入力データを分類する密な層です。

  • 04:15:00 このビデオでは、データ拡張を使用して機械学習モデルのパフォーマンスを向上させる方法について説明しています。データ拡張には、画像を変更してトレーニング データにより似たものにすることが含まれます。これにより、モデルの一般化能力を向上させることができます。

  • 04:20:00 このビデオは、TensorFlow 2.0 で事前トレーニング済みのモデルを使用して分類の精度を向上させる方法を示しています。

  • 04:25:00 このビデオでは、プレゼンターが事前トレーニング済みの TensorFlow モデルを使用してさまざまな動物の画像を認識する方法を説明しています。まず、モデルを TensorFlow にロードし、画像を同じサイズにスケーリングする方法を説明します。次に、モデルをトレーニングおよび検証データセットに適用する方法を示します。最後に、モデルを使用して動物の画像を認識する方法を示します。

  • 04:30:00 このビデオでは、インストラクターが TensorFlow 2.0 を使用してニューラル ネットワークを作成し、犬と猫の 1000 クラスのデータセットでトレーニングする方法を示しています。ネットワークは、基本モデルを使用して事前にトレーニングされてから、予測レイヤーが追加されます。インストラクターは、レイヤーのトレーニング可能なパラメーターをフリーズして、ネットワークを予測に使用するときにネットワークが再トレーニングされないようにする方法も示します。次に、モデルが評価され、新しいデータセットでトレーニングされます。

  • 04:35:00 このビデオでは、TensorFlow を使用して、画像のクラスを予測できるモデルをトレーニングする方法を説明しています。このビデオでは、ディープ ラーニングや畳み込みニューラル ネットワークなどの基本的な概念について説明します。

  • 04:40:00 このビデオでは、リカレント ニューラル ネットワークを使用して自然言語を理解し処理する方法を説明しています。最初のセクションでは、自然言語処理とは何か、再帰型ニューラル ネットワークと通常のニューラル ネットワークとの違いについて説明します。 2 番目のセクションでは、テキスト データを再帰型ニューラル ネットワークで使用できる数値データに変換する方法について説明します。最後のセクションでは、リカレント ニューラル ネットワークを使用して感情分析と文字スラッシュ テキスト生成を実行する方法について説明します。

  • 04:45:00 説明する最初の方法は、bag of words と呼ばれます。このアルゴリズムは、文を見て、文中のすべての単語が数字でエンコードされた数値表現に変換します。これは、単語が存在するだけで文の意味を判断するのに十分なタスクに役立ちます。ただし、より複雑な入力を処理する場合、この手法は機能しなくなる可能性があります。

  • 04:50:00 ビデオでは、テキストのバッグ オブ ワード エンコーディングの使用と、その他のいくつかのエンコーディング方法について説明しています。このアプローチの問題点の 1 つは、単語の順序が失われることです。これにより、機械学習モデルがテキスト内の感情を正しく識別することが難しくなる可能性があります。

  • 04:55:00 このビデオでは、インストラクターが、単語の埋め込みがどのように機能し、それらを使用してニューラル ネットワークの予測の精度を向上させる方法について説明します。次に、インストラクターは、特にテキスト データの処理に優れたニューラル ネットワークの一種である再帰型ニューラル ネットワークを紹介します。


パート6

  • 05:00:00 リカレント ニューラル ネットワークは、さまざまな時間ステップでデータを処理し、内部メモリを維持するニューラル ネットワークの一種です。これにより、ネットワークはテキストまたは入力の理解を徐々に構築できます。

  • 05:05:00 このビデオでは、TensorFlow 2.0 の基本について説明しています。これには、単純な再帰型ニューラル ネットワーク (RNN) レイヤーと長短期記憶 (LSTM) レイヤーの説明が含まれています。 LSTM レイヤーは、RNN レイヤーがテキスト シーケンス内の前の文を記憶できるように設計されています。これは、シーケンスの長さが増加するにつれてますます難しくなる可能性があります。

  • 05:10:00 TensorFlow 2.0 コンプリート コース - Python Neural Networks for Beginners チュートリアルでは、映画レビューのセンチメント分析に使用される再帰型ニューラル ネットワークなど、ニューラル ネットワークの基礎について説明します。

  • 05:15:00 このビデオでは、プレゼンターが Python を使用してテキスト レビューを特定の長さにパディングする方法を示し、モデルがどのようにトレーニングされるかを説明します。彼らはまた、GPU を使用してトレーニング プロセスを高速化することにも言及しています。

  • 05:20:00 このビデオでは、著者が初心者向けに Python ニューラル ネットワークを教える完全なコースを提供しています。このコースは、ニューラル ネットワークの概要から始まり、TensorFlow 2.0 を使用してニューラル ネットワークをトレーニングする方法に関するチュートリアルが続きます。ニューラル ネットワークがトレーニングされると、著者は映画レビュー データセットで予測を行う方法を示します。結果は、ニューラル ネットワークが十分に正確ではないことを示しており、作成者は、ニューラル ネットワークが処理できるようにテキストをトークンにエンコードする機能を提供しています。著者は、テキストを単語に変換するデコード機能も提供しています。

  • 05:25:00 この 1 段落の要約では、decode integers 関数が Python で映画レビューにテキストをエンコードする方法を説明しています。この関数は、単語のシーケンスを取得して整数に変換し、ENCODE テキスト関数を使用して整数をエンコードします。最後に、モデルを使用して、特定のテキストのレビューを予測します。最初のレビューは 72% 肯定的であると予測され、2 番目のレビューは 23% 肯定的であると予測されます。

  • 05:30:00 TensorFlow 2.0 コンプリート コースのこの最後の動画では、再帰型ニューラル ネットワークを作成して、シェイクスピアのテキストに基づいた戯曲を生成します。ファイルがロードされて読み込まれ、テキストの長さが計算されます。最初の 250 文字が読み取られて分析され、エンコード方式が決定されます。文字は整数としてエンコードされ、語彙が作成されます。各文字のインデックスが計算され、語彙に格納されます。

  • 05:35:00 このビデオでは、講師が TensorFlow を使用して、テキスト データ セットを使用してニューラル ネットワークをトレーニングする方法を教えています。インストラクターは、まずテキスト データ セットを整数に変換し、エポックごとに 101 個のトレーニング サンプルのシーケンスを使用してニューラル ネットワークをトレーニングします。

  • 05:40:00 このビデオでは、TensorFlow 2.0 で組み込み関数「モデルのビルド」を使用してモデルを作成する方法を説明しています。モデルは 64 個のトレーニング例のセットでトレーニングされ、1 つの入力シーケンスで予測を行うことができるように保存されます。

  • 05:45:00 著者は、TensorFlow を使用してニューラル ネットワークをトレーニングするために必要な手順を説明しています。まず、ニューラル ネットワークの入力と出力の形状について説明します。次に、ニューラル ネットワークを最適化するための損失関数の作成方法について説明します。最後に、モデルを使用して 100 サンプルのシーケンスを予測する方法を示します。

  • 05:50:00 このビデオでは、TensorFlow が再帰型ニューラル ネットワークでどのように機能するかなど、詳細に説明されています。このビデオでは、損失関数を作成してモデルのパフォーマンスを判断する方法についても説明しています。

  • 05:55:00 このビデオでは、ニューラル ネットワークをトレーニングするための TensorFlow 2.0 ライブラリを紹介し、新しいバッチ サイズ 1 でモデルを再構築する方法を示します。ビデオには、TensorFlow を使用してテキストを生成する方法のデモも含まれています。


パート 7

  • 06:00:00 このビデオ TensorFlow 2.0 Complete Course - Python Neural Networks for Beginners Tutorial では、リカレント ニューラル ネットワークを使用して一連のテキストを生成する方法をユーザーが説明しています。最初のステップは、ネットワークのステータスをリセットし、予測のリストを生成することです。次に、ユーザーは B ムービー スクリプトでネットワークをトレーニングし、結果を表示します。

  • 06:05:00 このビデオ チュートリアルでは、Python で単純なニューラル ネットワークを作成する方法など、TensorFlow 2.0 の基本について説明します。次にビデオは、より複雑で高度な手法である強化学習の説明に移ります。このビデオは、用語の説明と強化学習とは何かの要約で締めくくられています。

  • 06:10:00 強化学習は、パフォーマンスの向上につながる行動に対して報酬を与えることで、環境内でタスクを達成するように AI をトレーニングする方法です。強化学習の目標は、報酬を最大化することです。これは、エージェントが環境で達成しようとしているものであれば何でもかまいません。このコースでは、講師は状態、アクション、および報酬の概念について説明します。

  • 06:15:00 この例のエージェントの目標は、さまざまな状態でのさまざまなアクションに対する報酬を予測するキュー テーブルを学習することで、環境内での報酬を最大化することです。

  • 06:20:00 TensorFlow は、ユーザーがデータから学習できるモデルを作成できる機械学習ライブラリです。このビデオでは、講師が Q 学習のしくみと、シミュレートされた環境でエージェントの動作を最適化するために Q 学習を使用する方法について説明します。彼は続けて、キュー テーブルを使用してエージェントの動作を最適化する方法を説明します。

  • 06:25:00 このビデオでは、TensorFlow 2.0 の初心者向けチュートリアルで使用されているニューラル ネットワークについて学びます。ビデオの最初の部分では、ニューラル ネットワークの基本とそのしくみについて説明します。次に、現在のキュー テーブルを使用するか、アクションをランダムに選択することによって、3D 環境をナビゲートすることを学習する単純なエージェントを作成する方法を探ります。ビデオの 2 番目の部分では、エージェントのキュー テーブルを更新するために使用される数式について説明します。

  • 06:30:00 「TensorFlow 2.0 Complete Course - Python Neural Networks for Beginners Tutorial」ビデオでは、TensorFlow 2.0 プログラミング言語と、機械学習モデルの一種であるニューラル ネットワーク用の関連するデータ構造とアルゴリズムを紹介しています。次に、このビデオでは、openAI gym ソフトウェアを使用して単純なニューラル ネットワーク モデルを作成およびトレーニングする方法を示します。

  • 06:35:00 TensorFlow 2.0 コンプリート コースは、ニューラル ネットワークのトレーニングに使用されるアクター クリティック モデルの紹介から始まります。次に、NumPy と TensorFlow を使用して凍った湖環境を作成する方法を示します。このコースでは、環境内のナビゲーションの問題を解決するために q ラーニングを使用する方法について説明します。

  • 06:40:00 このビデオは、TensorFlow 2.0 を使用して初心者向けのニューラル ネットワークを作成する方法に関する完全なチュートリアルを提供します。最初に、インストラクターはイプシロン変数と、それがエージェントがランダムな行動を取る可能性にどのように影響するかを説明します。次に、インストラクターは、報酬リストを作成する方法と、報酬式を使用してエージェントの q 値を更新する方法を示します。最後に、インストラクターは、エージェントの現在の状態を設定し、環境の探索が終了したかどうかを確認する方法を示します。

  • 06:45:00 「TensorFlow 2.0 Complete Course - Python Neural Networks for Beginners Tutorial」のこの最終モジュールでは、キュー テーブルを使用してイプシロン値を調整し、エージェントが動き回るにつれて平均報酬をゆっくりと増加させる方法をインストラクターが説明します迷路。

  • 06:50:00 このビデオ チュートリアルでは、強力な機械学習ライブラリである TensorFlow の基礎を紹介します。 TensorFlow とその主要な概念を紹介した後、このチュートリアルでは、ディープ ラーニングや強化学習などのさまざまな機械学習タスクに関する一連のチュートリアルを視聴者に案内します。
TensorFlow 2.0 Complete Course - Python Neural Networks for Beginners Tutorial
TensorFlow 2.0 Complete Course - Python Neural Networks for Beginners Tutorial
  • 2020.03.03
  • www.youtube.com
Learn how to use TensorFlow 2.0 in this full tutorial course for beginners. This course is designed for Python programmers looking to enhance their knowledge...
 

TensorFlow コースを使用した Keras - 初心者のための Python 深層学習とニューラル ネットワークのチュートリアル



TensorFlow コースを使用した Keras - 初心者のための Python 深層学習とニューラル ネットワークのチュートリアル

Keras with TensorFlow コースは、Python で記述され、TensorFlow と統合されたニューラル ネットワーク API である Keras の使用方法をユーザーに教えることに重点を置いています。データの整理と前処理、人工ニューラル ネットワークの構築とトレーニング、データの正規化と検証セットの作成の重要性について説明します。このコースでは、ビデオやテキスト ファイルなどのリソースや、GPU をセットアップして効率を高める方法についてのガイドも提供します。ユーザーは、すべて、アーキテクチャのみ、または重みのみを保存するオプションを含め、モデルを保存およびロードする方法も学びます。このコースは、基本的なプログラミング スキルと Python の使用経験がある方に適しています。

「Keras with TensorFlow コース」の 2 番目のセクションでは、元のモデルと同じアーキテクチャを持つ新しい Keras モデルに重みをロードすることから始めて、さまざまなトピックを取り上げます。次に、インストラクターは、最初の CNN の Keras シーケンシャル モデルの構築とトレーニングに進む前に、畳み込みニューラル ネットワークをトレーニングして画像を猫または犬のいずれかに分類するための画像データを準備および前処理する方法を説明します。このセクションでは、モデルの適合時に検証用のラベル データを含むジェネレーターを使用してモデルをトレーニングする方法と、混同行列をプロットしてモデルのパフォーマンスを評価する方法について詳しく説明します。最後に、事前トレーニング済みの VGG 16 モデルを微調整して猫と犬の画像を分類し、前処理を調整し、トレーニングも行う方法を示します。

3 番目のセクションでは、インストラクターは MobileNets を紹介します。これは、より複雑なモデルに代わる、より小さくて高速な代替手段です。彼らは、Jupyter Notebook での MobileNets のダウンロードと使用、手話数字のデータセットの編成、および新しい分類タスク用のモデルの微調整を示しています。インストラクターは、イテレーターがディスク上のデータセットの場所を正しく指すこと、トレーニング中にフリーズするレイヤーの数、過適合の問題を減らすためのハイパーパラメーターの調整の重要性を強調しています。最後のセクションでは、データ拡張と、オーバーフィッティングを減らしてデータセットのサイズを大きくする可能性を紹介し、さまざまなタイプの拡張 (シフト、反転、回転など)、拡張された画像のディスクへの保存、トレーニングへの追加について説明します。設定。

  • 00:00:00 このセクションでは、Python で記述され、TensorFlow と統合されたニューラル ネットワーク API である Keras の使用方法を教えることに重点を置いていることが説明されています。データの整理と前処理の基本から始めて、人工ニューラル ネットワークの構築とトレーニングに進みます。このコースでは、いくつかの基本的なプログラミング スキルと Python の使用経験を推奨していますが、コードの実装を行う前に、各ディープ ラーニングの概念について簡単に紹介します。このコースでは、コースで使用されるコード ファイルを含む、定期的にテストおよび保守されているビデオおよびテキスト リソースも提供されます。これらのファイルへのダウンロード アクセスは、Deep Lizard Hive Mind のメンバーが利用できます。さらに、Keras は迅速なユーザー実験を可能にすることに重点を置いて開発され、TensorFlow と統合されたことで、Keras は現在 TensorFlow API と完全に統合されていることが説明されています。複数のニューラル ネットワーク API を学習し、1 つの API に永遠に固執するのではなく、それらの経験と比較を示すことで、候補者の価値を高めるための推奨事項が提供されます。

  • 00:05:00 Keras with TensorFlow コースのこのセクションでは、GPU の必要性について説明しますが、このコースでは GPU は必須ではないことに注意してください。ただし、ユーザーが GPU を使用したい場合は、TensorFlow で動作するように GPU をセットアップする方法に関するガイドを利用できます。最初に CPU でコースを実行してから、効率と速度を向上させるために GPU をセットアップすることをお勧めします。次のセクションでは、人工ニューラル ネットワークの数値データを準備および処理する方法と、Keras のシーケンシャル モデルが期待するデータのさまざまな形式について説明します。 fit 関数は、入力データ (x) が NumPy 配列、TensorFlow テンソル、dict マッピング、TF データ データセット、または Keras ジェネレーターにあることを想定しています。ターゲット データ (y) も x と同じ形式である必要があります。

  • 00:10:00 このセクションでは、インストラクターは、データの正規化または標準化の手法によって、ディープ ラーニング モデルが学習しやすい形式にデータを変換できることを説明します。講師は単純な数値データセットを例として使用します。この例では、実験薬が 13 歳から 100 歳までの個人でテストされ、65 歳以上の高齢者集団に属する患者の約 95% が副作用を経験し、約 95 歳の患者が副作用を経験しました。 65 歳未満の患者の % は、副作用を経験しませんでした。次に、インストラクターは、副作用を経験した、または経験しなかった患者の実際のシナリオを模倣するランダムな整数を生成する for ループを通過し、これらのサンプルと対応するラベルを 2 つの個別のリストに追加します。

  • 00:15:00 ビデオのこのセクションでは、講師が TensorFlow 内に統合された Keras API で NumPy 配列を使用してニューラル ネットワークのデータを生成および準備するプロセスを要約します。彼らは、サンプル リストには年齢が含まれ、ラベル リストには、各年齢に対応する副作用または副作用がないことを表す 0 と 1 が含まれていると説明しています。次に、データが処理され、fit 関数が期待する NumPy 配列形式に変換されます。データは、shuffle 関数を使用してシャッフルされ、データ生成プロセスから強制された順序が削除されます。さらに、データは 13 から 100 のスケールから 0 から 1 のスケールに再スケーリングされ、フィット変換関数が 1 次元データを受け入れるように再形成されます。最後に、インストラクターは、keras API のシーケンシャル モデルを使用して、このデータに人工ニューラル ネットワークを構築する方法を示します。

  • 00:20:00 ビデオのこのセクションでは、発表者が TensorFlow と統合された Keras API を使用してニューラル ネットワーク モデルを作成する方法を説明します。モデルはシーケンシャル モデルであり、Sequential クラスのインスタンスとして作成されます。最初の密層は、最初の隠れ層を作成し、ReLU 活性化機能を備えた 16 のユニットを持ちます。 2 番目の密層は、2 番目の隠れ層を作成し、ReLU 活性化機能を備えた 32 個のユニットを持ちます。最後の層は、2 つの可能な出力クラスを表す 2 つのユニットを持つ出力層です。プレゼンターは、出力層の後に各出力クラスの確率を与える Softmax 関数が続くと説明しています。次にプレゼンターは、model.summary() 関数を使用して、モデル アーキテクチャの視覚的な概要を表示する方法を示します。

  • 00:25:00 このセクションでは、前のセクションで作成および処理されたデータでニューラル ネットワークをトレーニングする方法を学習します。モデルを構築した後、適切な損失、オプティマイザ、およびメトリックを使用してコンパイルします。次に、fit 関数でトレーニングするための入力データ、ターゲット データ、バッチ サイズ、およびエポック数を指定します。トレーニングが開始され、30 エポック以内に、単純なモデルがそれほど労力をかけずに 94% の精度を達成することがわかります。これは、Keras を簡単に使い始められる好例です。

  • 00:30:00 このセクションでは、検証セットの概念が機械学習モデルのトレーニングのコンテキストで説明され、その使用の重要性が強調されています。検証セットを作成すると、ユーザーはモデルがトレーニングされていないデータでどの程度一般化されているかを測定できます。オーバーフィッティングは、検証セットの結果の精度を調べることで回避できます。これは、トレーニング データの精度よりも大幅に低くすべきではありません。 Keras シーケンシャル モデルで検証セットを作成して使用する 2 つの方法について説明します。2 番目の方法では、Keras がユーザーの検証セットを作成できるようにします。

  • 00:35:00 このセクションのビデオでは、検証分割パラメーターを使用してトレーニング セットから検証セットを作成する方法について説明します。これにより、トレーニング データの指定された割合が検証セットに分割されます。このビデオでは、検証セットがトレーニング セットから完全に除外されており、fit 関数が呼び出されるたびにオンザフライで作成されることに注意してください。検証セットがシャッフルされていないデータの最後の X パーセントだけにならないようにするために、トレーニング データを渡す前にシャッフルすることも重要です。このビデオでは、検証セットを使用してモデルがオーバーフィットまたは一般化されているかどうかを確認する方法についても説明し、テスト セットを使用して推論を行う次のステップについて説明します。

  • 00:40:00 このセクションでは、講師が深層学習における推論のプロセスについて説明します。推論とは、トレーニング済みのモデルを実世界のデータセットにデプロイして、モデルがこれまでに見たことのない新しいデータに関する予測を取得するプロセスです。モデルが十分に一般化され、新しいデータに対して正確な予測ができるようにするために、講師はテスト セットの使用を提案します。テスト セットは、トレーニング データと同じ形式で処理する必要があります。著者は、テスト データをシャッフルし、0 から 1 の間になるようにスケーリングし、トレーニング済みモデルを使用してテスト データを予測して、テスト セットの各要素が属するクラスの確率を取得することで、これを行う方法を示します。

  • 00:45:00 このセクションでは、混同行列を使用して、ニューラル ネットワーク モデルがテスト データをどの程度予測しているかを視覚的に観察する方法について説明します。必要なパッケージをインポートし、scikit-learn を使用して混同行列を作成することで、テスト セットの真のラベルと予測されたラベルを比較できるため、モデルの予測の精度をよりよく理解できます。また、混同行列関数をプロットする方法と、その中の特定の値がどのように取得され、前処理され、視覚化されるかについても説明します。 Keras with TensorFlow コースに役立つ関数へのリンクは、深いトカゲのブログでも利用できます。

  • 00:50:00 このセクションでは、インストラクタが混同行列をプロットしてモデルの予測の精度を視覚化する方法を示します。プロットは、予測されたラベルを x 軸に、真のラベルを y 軸に示します。正しい予測は、プロットの左上から右下に対角線上にある青い四角で示されます。混同行列により、ユーザーはモデルのパフォーマンスを視覚化し、改善が必要なクラスを特定できます。インストラクターは、混同マトリックスはモデルのパフォーマンスを評価するために使用する優れたツールであり、さらに作業が必要なクラスをドリルダウンするのに役立つと説明しています。最後に、インストラクターは、モデルのアーキテクチャ、重み、およびトレーニング構成を h5 ファイルに保存する `.save()` 関数を使用して Keras シーケンシャル モデルを保存する方法を示します。

  • 00:55:00 このセクションでは、講師が TensorFlow を使用して Keras でモデルを保存およびロードするさまざまな方法について説明します。最初の最も包括的なオプションは、アーキテクチャ、重み、トレーニング構成など、モデルに関するすべてを保存して読み込むことです。 2 番目のオプションは、"to JSON" 関数を使用してモデルのアーキテクチャのみを保存することです。これは、後で同じアーキテクチャで新しいモデルを作成するために使用できます。 3 番目のオプションは、「重みの保存」機能を使用してモデルの重みのみを保存することです。これは、新しいモデルに読み込んでその重みを更新できますが、モデルに関するその他の詳細は保存しません。インストラクターは、JSON 文字列の代わりに YAML 文字列を使用して同じプロセスを実行できることも説明しています。
  • 01:00:00 このセクションでは、プレゼンターが元のモデルと同じアーキテクチャを持つ新しい Keras モデルに重みをロードする方法について説明します。彼は、重みのマッピングが機能するためには、ロードされる重みの形状がモデル アーキテクチャの形状と一致する必要があると説明しています。次にプレゼンターは、Keras の「load weights」および「get weights」機能を使用して、元のモデルの重みを新しいモデルにロードして設定する方法を示します。次に、新しいトピックに移ります。このトピックでは、Kaggle の猫と犬のコンテストのデータセットを使用して、畳み込みニューラル ネットワークをトレーニングし、画像を猫または犬として分類するための画像データを準備および処理します。プレゼンターは、処理用のデータを準備するために必要な手動およびプログラムによる手順について説明します。

  • 01:05:00 このセクションでは、インストラクターはデータをトレーニング、検証、およびテスト セットの 3 つのサブセットに編成します。チュートリアルで使用するデータ セットには 25,000 枚の猫と犬の画像がありますが、トレーニング プロセスを高速化するために、トレーニングには 1,000 枚の画像、検証には 200 枚、テストには 100 枚の画像のみを使用します。データはセットごとに異なるディレクトリに編成され、ディレクトリ構造がチェックされて、そのディレクトリがまだ存在していないことが確認されます。画像はファイル名に基づいてランダムに選択されます。猫と犬の画像には、それぞれのファイル名に「猫」と「犬」という単語が含まれています。最後に、ディスク上の正しい場所を指すように、各セットのデータ パスが指定されます。

  • 01:10:00 このセクションでは、画像データ ジェネレーターを使用してデータのバッチを作成することにより、Keras シーケンシャル モデルのデータを準備する方法をビデオで説明します。トレーニング、検証、およびテスト セットが定義され、均一性のために指定された高さと幅にサイズ変更されます。前処理関数 tf.keras.applications.VGG16.preprocess_input は、ネットワークに渡される前に画像に適用されます。ビデオは、今後のエピソードで説明されるように、前処理の技術的な詳細を強調しないよう視聴者に警告します。さらに、このビデオでは、テスト セットに対してシャッフルが false に等しいことを指定しており、推論を実行するときに、混同行列で予測結果を表示するにはテスト セットの未確定ラベルが必要であり、それらにアクセスするためにデータをシャッフルしてはならないことを説明しています。

  • 01:15:00 このセクションでは、講師が畳み込みニューラル ネットワークの画像データを取得して整理する方法を示します。 10 個のイメージと対応するラベルで構成されるトレーニング バッチは、RGB カラー データを歪める前処理関数を使用してプロットされます。ただし、ラベル用の 1 つのホット エンコード ベクトルの助けを借りて、画像を猫または犬として区別することはできます。インストラクターは、テスト セットに対応するラベルが利用できない場合があることに注意し、そのような場合の処理に関するガイダンスについてブログに閲覧者を誘導します。このエピソードは、畳み込みニューラル ネットワークが構築され、猫と犬の画像データでトレーニングされる次のセクションのプレビューで締めくくられます。

  • 01:20:00 TensorFlow チュートリアルのこのセクションでは、最初の畳み込みニューラル ネットワーク (CNN) に Keras シーケンシャル モデルが使用されます。モデルの最初のレイヤーは、32 個のフィルターと 3x3 のカーネル サイズを備えた 2D 畳み込みレイヤーであり、その後に画像をゼロ パディングするための「同じ」パディングを使用する一般的な ReLU アクティベーション関数が続きます。入力形状は、RGB 形式の画像に対して 224x224x3 として指定されます。次に、最初の畳み込み層の後に、プール サイズが 2x2 でストライドが 2 の最大プーリング層が続きます。最初の畳み込み層と似ていますが、32 個ではなく 64 個のフィルターを持つ別の 2D 畳み込み層が追加され、その後に別の最大プーリング層が続きます。次に、最大プーリング層の平坦化された出力は、それぞれ猫と犬に対応する 2 つのノードを持つ高密度出力層に渡されます。出力層の後には、softmax 活性化関数が続き、モデルからの対応する各出力の確率が得られます。

  • 01:25:00 このセクションでは、講師が TensorFlow で Keras を使用してモデルをトレーニングする方法と、モデルの適合時に検証用のラベル データを含むジェネレーターを使用する方法について説明します。モデルはコンパイルでトレーニングされ、トレーニング セットと検証セットを使用して適合関数が定義され、エポックと詳細度が設定されます。トレーニング中に発生する警告は TensorFlow 内のバグであり、インストラクターはこの警告を無視する方法を指摘しています。結果は、トレーニング セットの精度が 100% であるのに対し、検証精度はわずか 69% であり、オーバーフィッティングを示していることを示しています。モデルを本番環境で使用する場合は、オーバーフィッティングの問題に対処するために、モデルにさらに注意を払う必要があります。次のエピソードでは、トレーニングされたモデルが、テスト セット内の画像の予測においてどのように推論に耐えられるかを探ります。

  • 01:30:00 ビデオのこのセクションでは、インストラクターがイメージのプロット機能を使用して、テスト バッチからテスト データのバッチをプロットし、イメージに対応するラベルを印刷するプロセスを説明します。インストラクターは、ラベルとサンプル間の正しいマッピングを確保するために、テスト データ セットをシャッフルしないことの重要性を強調しています。次に、入力として指定されたテスト バッチを使用して model.predict を呼び出すことにより、予測が取得されます。インストラクターは丸められた予測を出力し、それらを解釈する方法を説明します。また、結果を視覚化するための混同行列の使用についても言及しており、scikit-learn の混同行列関数は、テスト バッチ クラスを使用して渡された真のラベルと共に使用されます。

  • 01:35:00 このセクションでは、混同行列をプロットして、TensorFlow の Keras API を使用して猫と犬の画像を分類するモデルのパフォーマンスを評価する方法について説明します。混同行列は、scikit-learn の関数を使用してプロットされ、それに応じてクラス インデックスが調整されます。混同行列の対角線は正しい予測を表し、モデルは過剰適合しているように見えます。次のセクションでは、事前トレーニング済みの VGG 16 モデルを微調整して、2014 年の ImageNet コンテストで優勝した猫と犬の画像を分類する方法を示します。このビデオでは、トレーニング セットの各ピクセルから計算された平均 RGB 値のみを画像データから差し引く VGG 16 前処理関数についても簡単に説明しています。

  • 01:40:00 このセクションでは、VGG-16 モデルに対して行われた前処理と、VGG-16 が最初にトレーニングされた方法と一致するように新しいデータを同じ方法で処理する必要がある方法について、インストラクターが説明します。インストラクターは、Keras には VGG-16 のような人気のあるモデル用の機能が組み込まれており、対応するモデルに合わせた前処理が行われていると述べています。講師はまた、VGG-16 モデルはもともと 1000 の異なる imageNet クラスを予測していたと説明しています。目的は、最後の出力レイヤーを変更して、猫と犬に対応する 2 つの出力クラスのみを予測することです。最後に、インストラクターは、すべての VGG-16 レイヤーをループし、最後の出力レイヤーを除外することによって、新しいシーケンシャル モデルを作成します。この新しいモデルは微調整用で、2 つの出力クラスしかありません。

  • 01:45:00 このセクションでは、猫と犬のデータセットで微調整された VGG 16 モデルを変更してトレーニングする方法を説明します。 1000 の出力クラスを予測するモデルの最後のレイヤーが削除され、猫と犬の 2 つの出力クラスのみを持つ新しい密なレイヤーが追加されました。 8000 個のトレーニング可能なパラメーターを含む出力レイヤーを除いて、以前のレイヤーはすべてトレーニング不可に設定されています。モデルは、カテゴリカル クロス エントロピーを損失として、精度をメトリックとして使用してコンパイルされ、トレーニング データセットと検証セットを渡すことで fit() メソッドを使用してトレーニングされます。

  • 01:50:00 このセクションでは、インストラクターが猫と犬の画像で VGG 16 モデルをトレーニングした結果について説明し、トレーニング セットと検証セットの精度について具体的に説明します。 VGG 16 モデルは、イメージ ネット ライブラリの猫と犬の画像で既にトレーニングされており、出力層で行われているトレーニングは、猫または犬のクラスのみを出力するようにモデルをトレーニングすることです。わずか 5 エポックで、VGG 16 モデルは 99% のトレーニング精度を達成しましたが、検証精度は 98% で同等でした。これは、単純な畳み込みニューラル ネットワークと比較して、このモデルが検証セット内の猫と犬のデータにどれだけうまく一般化できるかを示しています。次のエピソードでは、微調整された VGG 16 モデルを推論に使用して、テスト セットの猫と犬の画像を予測します。検証セットの精度を考えると、テスト セットでも良い結果が得られると期待できます。 .

  • 01:55:00 ビデオのこのセクションでは、インストラクタが混同行列を使用して、微調整された VGG16 モデルのパフォーマンスを目に見えないテスト セットで評価する方法について説明します。混同行列の対角線を調べると、モデルが 96% の精度を達成したことがわかります。 VGG16 モデルで採用された微調整アプローチは最小限でしたが、インストラクターは、今後のエピソードでは、MobileNets などの他の事前トレーニング済みモデルでの微調整方法をさらにカバーする予定であると説明しています。これらの小型で低電力のモデルは、サイズとパラメーターの数がかなり小さいため、モバイル デバイスでの展開に適しています。
  • 02:00:00 ビデオのこのセクションでは、インストラクターが MobileNets を紹介します。これは、VGG 16 のような大きなモデルに代わる、より小型で高速な代替手段です。MobileNets は、これらの重いモデルほど正確ではありませんが、精度の低下は比較的小さいものです。インストラクターは、必要なパッケージのインポート、MobileNet モデルのダウンロードと割り当て、「prepare_image」と呼ばれる関数の作成を含む、Jupyter Notebook で MobileNets をダウンロードして操作する手順を順を追って説明します。加工用モデル。全体として、さまざまな深層学習モデルを使用する際の精度とサイズ/速度のトレードオフと、それらを効果的に使用する方法を理解することに重点が置かれています。

  • 02:05:00 このセクションでは、インストラクターが、トレーニング済みの MobileNet モデルを使用して、指定された画像の上位 5 つのクラスを予測する方法を示します。最初にトカゲの画像を表示し、それを前処理関数に渡してから、MobileNet の予測関数に渡します。 MobileNet は、高い確率で上位 3 つのクラスを予測し、アメリカのカメレオンが最も可能性が高いと予測します。 1 杯のコーヒーの画像で同じプロセスを繰り返すと、モデルはそれが 99% の確率でエスプレッソであると予測します。最後に、イチゴの画像をモデルに渡し、可能な上位クラスの予測を取得します。

  • 02:10:00 ビデオのこのセクションでは、プレゼンターは、イチゴやその他の果物を含む画像のランダム サンプルに対するモバイル ネットワーク モデルの予測の結果を示しています。プレゼンターは、モデルの精度がわずかに低下しましたが、ビデオに示されているようなテストを行う場合は目立たないと述べています。次のステップは、手話数字で構成されるカスタム データ セットのモバイル ネット モデルを微調整することです。プレゼンターは、Jupyter Notebook でプログラムによって処理する前に、ディスク上のデータ セットを整理し、作業ディレクトリに移動する方法を示します。

  • 02:15:00 このセクションでは、講師が Python スクリプトを使用して、画像データを train、valid、および test ディレクトリに整理する方法を説明します。最初のステップは、204 から 208 の範囲の各クラスのサンプル数を確認することです。次に、for ループを使用して、スクリプトは各クラス ディレクトリを train ディレクトリに移動し、各クラスの有効セットとテスト セット用に個別のディレクトリを作成します。 .最後に、スクリプトは train ディレクトリ内の各クラスからランダムに画像をサンプリングし、それらを有効なディレクトリに移動し、さらに画像をサンプリングして test ディレクトリに移動します。スクリプトを実行すると、データはセットごとに個別のディレクトリに編成され、対応するディレクトリを確認することで、各クラスの画像の数を確認できます。

  • 02:20:00 ビデオのこのセクションでは、講演者が使用するデータ セットの編成構造について説明します。これは、コースの前半で使用した猫と犬のデータ セットに似ていますが、代わりに 10 個のクラスが含まれています。二。次に、train、validation、および test ディレクトリを定義し、画像データ ジェネレーターを使用してディレクトリ イテレーターを作成することにより、データを前処理する方法を示します。使用される前処理関数は、モバイル ネットの前処理関数であり、画像データをマイナス 1 から 1 のスケールにスケーリングします。ターゲット イメージ サイズやバッチ サイズなどの反復子の設定も定義されます。講演者は、イテレータがディスク上のデータセットの場所を正しく指すことの重要性を強調しています。誤った指すと、ゼロの画像が見つかる可能性があるからです。

  • 02:25:00 TensorFlow を使用した Keras コースのこのセクションでは、インストラクターが新しい分類タスクのために事前トレーニング済みの MobileNet モデルを微調整する方法を説明します。最初のステップは、MobileNet モデルをダウンロードし、「model.summary()」関数を使用してそのレイヤーを調べることです。次に、最後から 6 番目のレイヤーまでのレイヤーを選択し、10 単位の新しい高密度出力レイヤーを作成します。これに続いて、前のすべての層から最後の層までのすべての層とモバイル ネットを出力層に渡す新しい機能モデルを作成します。新しいモデルが作成され、次のステップでは、トレーニング用に最後の 23 レイヤーを除くすべてのレイヤーをフリーズします。インストラクターは、フリーズするレイヤーの数は個人的な実験が必要であり、タスクによって異なる可能性があることに注意しています。

  • 02:30:00 このセクションでは、インストラクターは元の MobileNet モデルを微調整し、最後の 23 層のみをトレーニングし、出力層を 1,000 ではなく 10 クラスを持つものに置き換えます。モデルは、0.0001 の学習率とカテゴリカル クロス エントロピー損失関数を使用して、Adam オプティマイザーを使用してコンパイルおよびトレーニングされます。 30 エポックのトレーニング後、モデルはトレーニング セットで 100% の精度を達成し、検証セットで 92% の精度を達成します。トレーニングの精度よりも検証の精度が低いオーバーフィッティングがいくつかありますが、インストラクターは、より多くのエポックを実行するか、ハイパーパラメーターを調整すると、オーバーフィッティングの問題を軽減できる可能性があると示唆しています。

  • 02:35:00 ビデオのこのセクションでは、インストラクターがテスト セットで微調整されたモデルを使用し、予測を混同行列にプロットする方法を示します。混同行列は、テスト セットでの予測がほぼ正しく、モデルのパフォーマンスが良好であることを示しています。モデルは、テスト セットで 90% の精度を持ちます。これは、検証セットでの精度を考えると予想されます。インストラクターは、MobileNet のシリーズが、カスタム データセットのモデルを微調整し、転移学習を使用する方法についての洞察を提供したことを強調しています。次のエピソードでは、TensorFlow の Keras API を使用して画像でデータ拡張を使用する方法を紹介します。

  • 02:40:00 このセクションでは、特にモデルをトレーニングするのに十分なデータがない場合に、ディープ ラーニングのデータ拡張の重要性が強調されています。データ拡張は、オーバーフィッティングを減らし、トレーニング セットのサイズを増やすのに役立ちます。次に、Keras を使用して画像データを拡張するためのコードを紹介します。ここでは、画像データ ジェネレーターを作成し、回転範囲、幅シフト範囲、ズーム範囲などのさまざまな拡張パラメーターを指定します。犬のディレクトリからランダムな画像が選択され、フロー関数が呼び出されて、この単一の画像から拡張された画像のバッチが生成されます。得られた拡張画像は、定義済みのプロット画像関数を使用してプロットされます。

  • 02:45:00 このセクションでは、インストラクターがデータ拡張について説明します。これは、既存のデータのバリエーションを作成することによって、データセットのサイズを人為的に増やす方法です。インストラクターはさまざまな画像を見て、シフト、反転、回転などのデータ拡張の種類を特定し、この手法がデータセットの成長にどのように役立つかを説明します。データセットの種類を増やすことで、モデルはより堅牢になり、データの分類が向上します。インストラクターは、これらの増強された画像をディスクに保存し、それらをトレーニング セットに戻すための簡単な指示も提供します。
Keras with TensorFlow Course - Python Deep Learning and Neural Networks for Beginners Tutorial
Keras with TensorFlow Course - Python Deep Learning and Neural Networks for Beginners Tutorial
  • 2020.06.18
  • www.youtube.com
This course will teach you how to use Keras, a neural network API written in Python and integrated with TensorFlow. We will learn how to prepare and process ...
 

scikit-learn クラッシュ コース - Python 用機械学習ライブラリ



scikit-learn クラッシュ コース - Python 用機械学習ライブラリ

「Scikit-learn クラッシュ コース」ビデオでは、Python での機械学習に Scikit-learn ライブラリを使用する方法の概要を説明しています。このビデオでは、データの準備、モデルの作成とフィッティング、グリッド検索によるハイパーパラメーターの調整、モデルの評価について説明しています。モデルのパフォーマンスを向上させる上での前処理とトランスフォーマーの重要性が強調され、標準のスケーラーと分位トランスフォーマーの例が示されています。このビデオでは、モデル評価の重要性、問題に適したメトリックの選択、およびワンホット エンコーディングでの不均衡なデータセットと未知のカテゴリの処理についても説明しています。講演者は、データ セットとモデル予測における潜在的なバイアスを理解することを強調し、クレジット カード詐欺検出の例を示します。

ビデオの 2 番目の部分では、グリッド検索、メトリクス、パイプライン、しきい値調整、時系列モデリング、外れ値の処理など、いくつかのトピックについて説明します。インストラクターは、カスタム定義されたメトリクスの使用と、モデル作成における適合率と再現率のバランスを取ることの重要性を探ります。さらに、投票分類器は、モデルの柔軟性と表現力を高めるメタ推定器として紹介されています。このビデオは、機械学習アルゴリズムと組み合わせることができるルールベースのシステムの構築とベンチマークに役立つヒューマン ラーン ツールの紹介で締めくくられています。さらに、FunctionClassifier ツールが調査され、ユーザーはカスタマイズされたロジックを分類子モデルとして作成し、外れ値検出などの動作を追加できます。全体として、ビデオは Scikit-learn とその柔軟な API の包括的な概要を提供し、モデルの作成とカスタマイズに関連するメトリックを理解することの重要性を強調しています。

  • 00:00:00 データ y. X には特徴または入力変数が含まれ、Y には予測するターゲットまたは出力変数が含まれます。モデルのパフォーマンスを評価するために、データをトレーニング セットとテスト セットに分割します。次に、データを前処理する必要があります。最も重要な前処理手法の 1 つはスケーリングです。これには、フィーチャの値を正規化して、すべてが同様の範囲内に収まるようにする必要があります。これは、モデルがより効果的に学習するのに役立ちます。最後に、モデルを選択し、トレーニング セットでトレーニングします。モデルがトレーニングされると、テスト セットでそのパフォーマンスを評価し、新しいデータで予測を行います。次のセクションでは、前処理、モデル評価、およびメタ推定器のトピックについて詳しく説明します。

  • 00:05:00 このセクションでは、講演者は機械学習モデルのためにデータを x と y のセットに分割する方法について説明します。 x セットは予測に使用されるデータを表し、y セットには目的の予測が含まれます。 scikit-learn ライブラリを使用すると、ユーザーは教育目的でベンチマーク データセットを読み込むことができます。講演者は、予測を行うためにデータから学習するモデルを作成して適合させる 2 段階のプロセスについても説明します。例として k 最近傍モデルが使用されていますが、異なるモデルが scikit-learn 内で同じ API を持つ方法を示すために、線形回帰モデルも示されています。

  • 00:10:00 このセクションでは、Scikit-learn クラッシュ コースのビデオで、家屋の平方フィートと学校への近さを特徴とする単純なデータセットで K 最近傍モデルがどのように機能するかを説明しています。このモデルは、最も近い 5 つの近傍に基づいて予測を行いますが、スケールが異なる距離を使用すると問題が発生する可能性があります。つまり、1 つの軸が別の軸よりも予測に大きな影響を与える可能性があります。これには、機械学習モデルとは何かを再考する必要があり、予測が行われる前にスケーリングが行われるように、データが K 最近傍モデルに与えられる前に何らかの前処理が必要であることを示唆しています。加工ボックスはモデルの一部です。

  • 00:15:00 このセクションでは、ビデオで Scikit-learn のパイプラインの概念を探ります。これにより、トレーニング時にパイプライン全体の処理ステップの連鎖とドット フィットとドット予測の呼び出しが可能になります。パイプラインを使用することで、スケーリングや正規化などの前処理ステップを自動的に処理し、データから学習して堅牢なシステムを確保できます。ただし、このアプローチでは、モデルが元のデータを記憶できるという問題が発生します。ビデオは、チャートが完全な予測を誤って示唆する方法を示していますが、モデルは元のデータ ポイントを記憶することを許可されているため、そうすることができるだけであり、新しいデータに対する公正な比較と信頼できる予測可能性が妨げられています。

  • 00:20:00 このセクションでは、インストラクターは、別のテスト データセットを使用してモデルのパフォーマンスを評価する方法を説明し、トレーニングに使用されたのと同じデータ セットでモデルを判断しないようにします。彼は、データセットをセグメントに分割し、1 つをトレーニング用に、もう 1 つをテスト用に使用することを提案しています。さらに、彼は Scikit-learn のグリッド検索 cv オブジェクトを紹介します。これにより、モデルで使用する最適なハイパーパラメーターを決定するための自動交差検証が可能になります。このオブジェクトを以前に作成したパイプラインで使用して、モデルを微調整し、その予測機能を向上させることができます。

  • 00:25:00 このセクションでは、インストラクターは KNearestNeighbors モデルのさまざまなパラメーターを調べ、GridSearch オブジェクトを使用してハイパーパラメーターの最適なセットを見つける方法を示します。 GridSearch オブジェクトは自動的に相互検証を実行し、結果を追跡するため、分析が容易になり、最適な構成を選択できます。ただし、インストラクターは、scikit-learn を使用する際に適切な API とビルディング ブロックを使用することが重要であると同時に、使用されているデータ セットを理解して分析することも同様に重要であることを強調しています。インストラクターは、データ セットの説明にアクセスして表示する方法を示し、モデルを構築する前にデータ セット内の変数を理解するために時間をかけることの重要性を強調します。

  • 00:30:00 このセクションでは、スピーカーは、トレーニングと予測に使用されるデータを完全に理解せずに機械学習モデルを盲目的に適用することの潜在的な落とし穴について説明します。町内の特定の人種の割合など、一見無害に見える変数でさえ、偏った人種差別的なアルゴリズムにつながる可能性があります.講演者は、モデルを本番環境にデプロイする前に、モデルを徹底的に調べてテストすることの重要性を強調しています。グリッド検索やその他の方法を使用すると、統計的な保証が得られますが、誤った楽観主義が生まれ、死角が生じる可能性もあります。使用されているデータについて自分自身を教育し、倫理的メカニズムとフィードバック メカニズム、および本番環境で問題が発生した場合のフォールバック シナリオを検討することは、ユーザーの責任です。

  • 00:35:00 このセクションでは、モデル構築におけるデータ変換の重要性が強調されています。このビデオでは、トランスフォーマーの使用と、モデルのパフォーマンスを向上させる上でのトランスフォーマーの重要性について説明します。 Scikit-Learn の標準スケーラーは、データセットの再スケーリングに使用されます。そのパフォーマンスは優れていますが、ビデオは、他のスケーリング方法を使用してどのように改善できるかを示しています。このアプローチでは、データセットから平均を引き、標準偏差で割ります。このアプローチはデータをスケーリングしますが、外れ値が残り、一部のアルゴリズムに影響を与える可能性があります。ビデオは、目的のモデル結果を達成するための前処理の重要性をさらに強調しています。

  • 00:40:00 ビデオのこのセクションでは、スピーカーは、正規化の概念と、平均値ではなく分位数を計算することによってそれを効果的に使用する方法について説明します。変位値を使用することで、データに対する外れ値の影響が減少し、プロセスがより堅牢になります。講演者は、機械学習モデルでより良い結果を得るために、標準のスケーラーを置き換える前処理ステップとして分位変換器を実装する方法を実演します。出力データに対するトランスフォーマーの大きな影響は、k 最近傍モデルをトレーニングし、標準スケーラーと分位トランスフォーマーの両方の予測を生成するプロット出力関数によって示されます。

  • 00:45:00 ビデオのこのセクションでは、スピーカーは前処理がデータセットの分類にどのように大きな影響を与えるかを説明しています。最初の例では、話者はクォンタイル変換を採用しています。これにより、モデルがより安定し、長期的に外れ値を処理するのにより適したものになります。 2 番目の例は、新しい機能を追加するとモデルのパフォーマンスがどのように向上するかを示しています。ロジスティック回帰モデルは、多項式機能を使用して、x1 掛ける x2 および x1 の 2 乗、x2 の 2 乗などの非線形機能を生成することにより、ほぼ完全な分類を生成することができました。最後に、One Hot Encoder は、テキストまたはカテゴリを低、中、高リスクなどのクラスの予測に役立つ数値データに変換する手法として導入されています。

  • 00:50:00 このセクションのビデオでは、Scikit-learn ライブラリでワンホット エンコーディングを使用する場合に不明なカテゴリを処理する方法について説明します。プレゼンターは、エンコーダーが以前に見たことのないデータを変換するように求められた場合、値エラーが発生すると説明しています。ただし、これは「handle_unknown」パラメーターを「ignore」に調整することで変更できます。ビデオでは、「DrawData.xyz」という Web サイトも紹介されています。この Web サイトでは、ユーザーが前処理とパイプラインの練習用に独自のデータ セットを作成できます。講演者は、モデルの結果に大きな影響を与える可能性があるため、前処理の手順が重要であることを強調しています。最後に、このビデオでは、グリッド検索を使用して複数のモデルを比較し、予測に最適なモデルを選択する利点について、クレジット カード詐欺のデータ セットを例として説明します。

  • 00:55:00 このセクションのビデオでは、適切な指標を選択することの重要性と、Scikit-learn がそれをどのように処理するかについて説明しています。このビデオでは、匿名化された特徴とトランザクション金額のデータセットを使用して、Scikit-learn を使用して詐欺事件を正確に予測する方法を示しています。ただし、データセットは不正でないケースよりも多くの不正ケースで不均衡であるため、モデルはデフォルトの反復回数で収束しません。したがって、反復の最大回数が増加し、クラスの重みパラメーターが調整されて不正ケースの重みが 2 倍になり、モデルの不正検出が改善されます。このビデオでは、クラスの重みパラメーターの最適な値を見つけるための GridSearchCV も紹介しています。
  • 01:00:00 このセクションでは、講師がグリッド検索を使用して scikit-learn のロジスティック回帰に最適なモデル パラメーターを見つける方法を説明します。パラメーター値のグリッドを定義することにより、講師はこれらのハイパーパラメーターをループ処理し、相互検証を使用してテストする方法を示します。 grid オブジェクトは、クラスの重みとスコアを含む結果のディクショナリを返します。ロジスティック回帰モデルには、最良のモデルを決定するために使用されるスコアと呼ばれるバインドされたメソッドがあります。次に、インストラクターは、scikit-learn メトリック モジュールからの 2 つのメトリック、適合率スコアと再現率スコアを紹介し、スコアリング ディクショナリを使用してそれらをグリッド検索に含める方法を説明します。

  • 01:05:00 このセクションでは、スピーカーはテストの精度とテストの再現率のスコアを追加し、相互検証結果にトレーニング スコアを追加できるようにするフラグを設定します。次に、相互検証の数を増やし、4 の範囲をでこぼこした線形空間に置き換え、より高い値を設定して、アルゴリズムに不正ケースに焦点を当てるように指示します。彼らは、結果を要約したいくつかのグラフを作成し、再現率または適合率に焦点を当てると、まったく異なる結果が得られることに注意しています。次に、精度と再現率の間の最小値を計算するメトリクスである最小再現率精度を作成し、それをグリッド検索に追加することを決定します。これは、2 つの指標のバランスを取り、再現率と適合率のスコアのバランスをとるモデルを用意するために行われます。

  • 01:10:00  、入力として y_true と y_pred を受け入れるカスタム定義メトリック min_precision_recall を使用して、グリッド検索で make_scorer 関数を使用しています。ただし、make_scorer 関数には推定量、X データセット、y true、および何らかの形式のサンプル重みが必要であるため、メトリック関数をグリッド検索で使用できる予測スコアラー オブジェクトに変換します。サンプルの重みは、機械学習モデルに渡すことができる追加機能であり、特定の行が別の行よりも重要であると言えます。 make_scorer 関数を使用する代わりに、estimator を直接渡し、predict 関数で予測された y 値を計算できます。

  • 01:15:00 このセクションでは、スピーカーは詐欺を検出する際のサンプルの重みの使用について説明し、数値安定性のために関数にどのように追加できるかを示します。また、アルゴリズム モデルにサンプルの重みを追加した場合の効果も示しています。次にスピーカーは、外れ値検出アルゴリズムを使用して不正を検出することを提案し、このアプローチにメトリックを適応させる方法を示します。彼らは、ロジスティック回帰をアイソレーション フォレスト アルゴリズムに置き換え、これが適合率と再現率のスコアにどのように影響するかを示しています。最後に、話者はメトリクス関数のバリアントを記述して、外れ値予測を不正ラベル予測に変えます。

  • 01:20:00 このセクションでは、ナレーターが Scikit-learn の API の柔軟性と、カスタム メトリクスで y ラベルを渡すことにより、異常値検出アルゴリズムを分類子のように使用する機能について説明します。これは、外れ値モデルが分類問題で役立つかどうかを判断するのに役立ちます。ただし、ナレーターは、モデルのメトリックに大きな影響を与える可能性があるため、ラベルの品質に注意することが重要であると警告しています.さらに、ナレーターは、大きい方が良いかどうかの指定や、一部のメトリックの確率測定の必要性など、メトリックのいくつかのカスタマイズ設定を指摘します。最後に、ナレーターは、Scikit-learn がメタ モデルを操作する機能について言及します。

  • 01:25:00 このセクションでは、インストラクターが scikit-learn パイプラインのしくみと、機械学習モデルに scikit-learn パイプラインのみを使用する場合の制限について説明します。インストラクターは、パイプラインの制限を回避する方法としてメタ推定器を使用して、追加のステップと後処理ツールをモデルに追加することを提案しています。インストラクターは、メタ推定器、投票分類子の例、および各推定器に重みを与えることによって、データセットのさまざまなモデルのバランスをとるために使用する方法を提供します。

  • 01:30:00 このセクションでは、インストラクターが scikit-learn で投票分類子を使用する方法を示します。これにより、さまざまな方法で機能するさまざまなモデルを組み合わせて、より正確な予測を生成できます。さらに、このモデルは他の推定器による入力として使用できるため、柔軟性と表現力が向上します。講師はまた、ロジスティック回帰モデルのしきい値を、しきい値メタモデルを使用してリコールのトレードオフ精度に調整する、またはその逆に調整するというアイデアを紹介します。これは、グリッド検索でしきい値モデルを使用する方法の例によって示されます。 scikit-learn が提供するこれらの手法を使用することで、モデル パラメーターを調整し、パフォーマンスを向上させることができます。

  • 01:35:00 このセクションでは、スピーカーは、グリッド検索を使用してバイナリ分類器のしきい値を調整することについて話します。これらは、しきい値が変化すると精度と再現率の曲線が変化することを示していますが、精度は比較的一定のままです。講演者は、この種の後処理ステップは、別のモデルを入力として受け入れるメタモデルとして実装するのが最適であると説明しています。次にスピーカーは、Scikit-learn の Pipeline と Group( byRegressor クラスを使用してメタモデルを構築し、食事によってデータをグループ化し、グループごとに異なる線形回帰モデルを使用する例を示します。この種のグループ化は、カテゴリ変数の影響が単に一定のシフトではない可能性がある状況。

  • 01:40:00 このセクションのビデオでは、時系列タスクについて説明し、グループ化された予測変数とダミーの回帰変数を使用してそれをモデル化する方法を示します。予測は中期には良好ですが、近年はアンダーシュートし、過去にはオーバーシュートしていることに注意してください。モデルをより良くするために、ビデオは、より最近のデータに焦点を合わせ、過去のデータを忘れることを提案しています。サンプル重みの概念が導入され、ユーザーは特定のデータ ポイントをどの程度重み付けするかを指定できます。次に、ビデオは、モデルに減衰を追加する方法を示します。これにより、最近のデータ ポイントが古いデータ ポイントよりも重要になります。これを行うことにより、モデルはより表現力豊かになり、遠く離れた履歴を無視しながら、最近のデータでより優れたパフォーマンスを発揮します。ただし、このトリックを使用すると、トレーニング データのパフォーマンスがテスト データよりも低くなる可能性があります。

  • 01:45:00 このセクションでは、スピーカーは Human Learn と呼ばれるツールを紹介します。これは、ルールベースのシステムの構築とベンチマークに役立つ scikit-learn 互換ツールを提供するように設計されたオープンソース プロジェクトです。過去には、機械学習アルゴリズムではなく、人間の専門家を使用してデータ分類のビジネス ルールとシステムを考案することがより一般的であったとスピーカーは説明します。ただし、機械学習モデルは完全ではなく、問題のある動作や効果のない動作を示す場合があります。 Human Learn の目標は、機械学習モデルと組み合わせながら、機械学習モデルに対して簡単にベンチマークできるルールベースのシステムを構築することです。講演者は、Titanic データセットを使用してルールベースのシステムを構築する方法を実演し、Human Learn を使用してこれらのシステムを日常のワークフローに組み込む方法を説明します。

  • 01:50:00 ビデオのこのセクションでは、スピーカーは、ユーザー定義の関数を受け取り、それを scikit-learn 互換の分類器に変換する scikit-learn の FunctionClassifier ツールを紹介します。このツールは、ユーザーの関数で定義されたパラメーターのグリッド検索の最適化も可能にします。講演者は、FunctionClassifier ツールを使用して、タイタニック号の災害に関連するデータセットを使用して、しきい値パラメーターでグリッド検索を実行する方法を示します。ツールの柔軟性により、ユーザーはカスタマイズされたロジックを分類子モデルとして使用して任意の Python 関数を作成し、外れ値検出などの動作を追加できます。

  • 01:55:00 このセクションでは、既存の機械学習モデルで異常値を処理する方法についてインストラクターが説明します。モデルの前にロジックを追加することで、外れ値を識別して別のラベルを割り当てることができます。このパッケージにより、既存の機械学習モデルを使用してルールベースのシステムを構築し、自然知能と人工知能のバランスを取ることができます。インストラクターは、scikit-lego パッケージと load penguins 関数を使用して、その特性に基づいてペンギンの種を効率的に予測する方法を説明します。関数はインタラクティブなチャートを使用し、講師は分類が必要なデータ ポイントの周りに多角形を描画します。次に、ポイント イン ポリ アルゴリズムを使用して、データ ポイントを分類します。インタラクティブな分類子により、json blob からの scikit-learn 互換モデルの定義が可能になります。次に、x および y データセットをデータ フレームから生成し、モデルを他のサイクラー モデルと同様に使用できます。
  • 02:00:00 このセクションでは、スピーカーは描画された機械学習モデルの特性と利点を強調します。彼は、Matplotlib のチャート機能を使用して、描画されたモデルが新しい例の分類を予測し、欠損データを効果的に処理する方法を示しています。さらに、スピーカーは、点がポリゴンの外側にあるかどうかをチェックすることによって、外れ値検出システムとして同じ図面をどのように使用できるかを示します。彼はまた、ラベルがすぐに利用できない場合でも、描画メカニズムを使用してデータ ポイントにラベルを割り当てる方法を示し、それを有用な前処理ステップにしています。

  • 02:05:00 このセクションでは、スピーカーは Interactive Charts API について説明します。これは比較的実験的なものであり、scikit-learn トランスフォーマーとして、または pandas パイプラインで機能して、データ ポイントの外観に関するカウントを含む 2 つの新しい列を追加できます。ポリゴン。講演者は、ルールベースのシステムを作成するために、ビジネス ルールと共に機械学習アルゴリズムを使用することを推奨しています。さらに、講演者は、機械学習と scikit-learn についてさらに学ぶために、freeCodeCamp、pi データ YouTube チャンネル、scikit-learn ドキュメント ページなどのいくつかのリソースを提案しています。
Scikit-learn Crash Course - Machine Learning Library for Python
Scikit-learn Crash Course - Machine Learning Library for Python
  • 2021.04.07
  • www.youtube.com
Scikit-learn is a free software machine learning library for the Python programming language. Learn how to use it in this crash course.✏️ Course created by V...
 

深層学習と機械学習のための PyTorch – フルコース (パート 1-4)


深層学習と機械学習のための PyTorch – フルコース

00:00:00 - 01:00:00 「PyTorch for Deep Learning & Machine Learning」オンライン コース インストラクターの Daniel Bourke が、Python コードを使用して PyTorch で機械学習の概念を実装することに焦点を当てたコースを視聴者に紹介します。このコースで取り上げる主なトピックには、転移学習、モデルのデプロイ、実験の追跡などがあります。このビデオでは、機械学習とディープ ラーニング、およびそれらの違いについて紹介します。ディープ ラーニングは、大量のデータを必要とする複雑な問題に適しており、非構造化データの洞察を提供します。ニューラル ネットワークの構造が説明され、コースでは、教師あり学習や転移学習など、機械学習のさまざまなパラダイムがカバーされます。さらに、このビデオでは、特にオブジェクト検出と自然言語処理におけるディープ ラーニングの潜在的なアプリケーションについても説明します。最後に、PyTorch の利点について説明します。たとえば、研究方法論の標準化や GPU での機械学習コードの実行が可能になり、数値計算の効率的なマイニングが可能になります。

01:00:00 - 02:00:00 このパートでは、PyTorch の基本、データの前処理、事前トレーニング済みの深層学習モデルの構築と使用、データセットへのモデルの適合、予測の作成、モデルの予測の評価について説明します。インストラクターは、GitHub、ディスカッション、learnpytorch.io などのコースのリソースを使用するだけでなく、実験、視覚化、質問をすることの重要性を強調しています。学習者は、GPU または TPU アクセラレーションを使用して計算時間を高速化する機能、プリインストールされた PyTorch、およびその他のデータ サイエンス パッケージを提供する Google Colab も紹介されます。このコースでは、深層学習の基本的な構成要素としてのテンソルについて詳しく説明し、スカラー、ベクトル、行列テンソルなど、さまざまな次元と形状のテンソルを作成する方法を示します。このコースでは、ランダム テンソル、0 と 1 のテンソルの作成、およびテンソルの作成時にデータ型、デバイス、必要な grad パラメータを指定する方法についても説明します。

02:00:00 - 03:00:00 この PyTorch チュートリアルでは、インストラクターは、トラブルシューティング、操作、行列の乗算、転置、集計など、テンソル演算のさまざまな側面について説明します。深層学習モデルを操作する際に正しいテンソル形状とデータ型を維持することの重要性を説明し、PyTorch コマンドを使用してこれらのパラメーターを確認および変更する方法を示します。このチュートリアルには、行列の乗算の練習やテンソルの位置の最小値と最大値の検出などの視聴者向けの課題が含まれており、for ループでのベクトル化の使用など、一般的な形状エラーを回避してパフォーマンスを向上させるための役立つヒントが提供されています。さらに、インストラクターは、テンソルの再形成、スタック、スクイーズ、アンスクイーズに役立ついくつかの PyTorch 関数を紹介します。

03:00:00 - 04:00:00 このパートでは、reshape、view、stacking、squeeze、unsqueeze、および permute などのテンソル操作メソッドを含む、PyTorch に関連するさまざまなトピックについて説明します。インストラクターはコード例を提供し、機械学習と深層学習におけるテンソル形状操作の重要性を強調し、テンソルにインデックスを付けて特定の値を返すよう視聴者に挑戦します。このコースでは、PyTorch テンソルと NumPy 配列の間でデータを変換する方法と、それぞれのデフォルトのデータ型、ニューラル ネットワークの再現性の概念、実験でのランダム性を減らすためのランダム シードの使用についても説明します。インストラクターは、計算を高速化するために GPU にアクセスする方法を説明し、Google Colab、Colab Pro、独自の GPU の使用、または GCP、AWS、Azure などのクラウド コンピューティング サービスの使用などのオプションを提供します。

04:00:00 - 05:00:00 このパートでは、PyTorch で GPU アクセスを設定する方法、PyTorch で nn モジュールを使用する方法、線形回帰モデルを作成する方法など、初心者向けの幅広いトピックを取り上げます。インストラクターは、デバイスに依存しないコードをさまざまなデバイスで実行し、テンソルとモデルが保存されているデバイスのタイプに留意することの重要性を強調しています。このコースには、学んだことを実践するための演習と追加のカリキュラムも含まれており、インストラクターは、Colab で演習に取り組む方法についてのヒントを提供します。このコースでは、機械学習モデルのトレーニングと評価、一般化のためのトレーニング セットとテスト セットへのデータの分割、およびデータの視覚化について説明します。インストラクターは、純粋な PyTorch を使用して線形回帰モデルを作成する方法を説明します。これには、init 関数を使用してコンストラクターを作成し、nn.parameter を使用して重みパラメーターを作成し、torch.rand を使用してランダム パラメーターに設定することが含まれます。

05:00:00 - 06:00:00 このパートでは、PyTorch を使用した線形回帰モデルの作成、PyTorch による勾配降下やバックプロパゲーションなどの最適化アルゴリズムの実装、PyTorch モデルの予測力のテスト方法の理解などのトピックを扱います。予測を行う際に torch.inference_mode コンテキスト マネージャーを使用すること、モデル パラメーターを初期化すること、損失関数を使用してモデルの予測の精度を測定すること、およびモデル パラメーターを最適化してモデルの精度を向上させることの重要性についても説明します。さらに、torch.nn、torch.nn.module、torch.optim、および torch.utils.dataset を含む PyTorch の基本的なモジュールが提示されます。

06:00:00 - 07:00:00 このパートでは、PyTorch と機械学習のさまざまな側面について説明します。 1 つのセクションでは、データのループ、損失の計算、逆伝播の実行など、PyTorch でトレーニング ループを構築するために必要な手順に焦点を当てました。インストラクターは、適切な損失関数とオプティマイザーを選択することの重要性を強調し、勾配降下の概念を紹介しました。別のセクションでは、オプティマイザーと学習率、およびそれらがモデルのパラメーターに与える影響について説明しました。このビデオでは、テストの重要性も強調し、テスト予測の作成とテスト損失の計算の概要を説明しました。このコースは、バックプロパゲーションと勾配降下の数学的背景に関心のある人向けの追加リソースを提供します。

07:00:00 - 08:00:00 このパートでは、PyTorch に関連する複数のトピックを扱います。このコースでは、損失値の記録を保持し、減少傾向を示す損失曲線をプロットすることにより、モデルの進行状況を追跡することの重要性について説明します。インストラクターは、状態辞書の保存、torch.nn.module.loadStateDict メソッドまたは torch.load メソッドを使用したモデルのロード、ロードされたモデルのテストなど、PyTorch モデルの保存とロードの方法についても説明します。後のセクションでは、線形回帰モデルの作成と、nn.module をサブクラス化することによる、線形層などの PyTorch での既存のモデルの使用について説明します。

08:00:00 - 09:00:00 このパートでは、深層学習と機械学習の領域における幅広いトピックを取り上げます。最初のセクションでは、torch.nn で利用可能なさまざまなレイヤー、これらのレイヤーの事前構築済みの実装、および損失関数とオプティマイザー関数を使用して PyTorch モデルをトレーニングする方法について説明します。以降のセクションでは、インストラクターは、デバイスに依存しないコードの重要性、PyTorch モデルの保存と読み込み、および分類問題へのアプローチ方法について説明します。インストラクターは例を示し、入力の数値エンコーディング、カスタム データの作成、および隠れ層、ニューロン、損失関数、オプティマイザーの数などの分類モデルに関連する設計の複雑さの重要性を強調します。最後に、インストラクターは、データを使用して機械学習の問題を開始することが最も重要なステップであることを強調しています。

09:00:00 - 10:00:00 このパートでは、バイナリ分類に PyTorch を使用してニューラル ネットワークを作成およびトレーニングする方法の概要を説明します。このビデオでは、カスタム データセットの作成、入力と出力の形状の確認、トレーニング用のデータの準備、モデルの作成と GPU への送信、モデルのオプティマイザーと損失関数の選択、予測の作成など、幅広いトピックを取り上げています。このコースには、これらの概念の実践的なデモンストレーションが含まれており、機械学習プロジェクトでの PyTorch の使用に関する包括的な理解を提供することを目的としています。

10:00:00 - 11:00:00 このパートでは、損失関数、オプティマイザー、アクティベーション関数、トレーニング ループ、評価指標など、いくつかのトピックについて説明します。インストラクターは、損失関数とオプティマイザーを設定し、精度関数を作成し、生のロジットを予測確率とラベルに変換する方法を説明します。このコースでは、BCE 損失とロジット損失を伴う BCE の違い、および分類モデルのテスト損失と精度を計算する方法についても確認します。さらに、インストラクターは、ニューラル ネットワークの深さの増加、ハイパーパラメーターの調整、外部 Python スクリプトからのヘルパー関数のインポートと使用など、モデルのパフォーマンスを改善するためのヒントを提供します。

11:00:00 - 12:00:00 このパートでは、講師が隠れユニットの数、レイヤーの数、エポックの数などのハイパーパラメーターを変更してモデルを改善する方法を説明し、テストの重要性を強調します改善または低下を特定するために、一度に 1 つずつ変更します。また、パラメーターとハイパーパラメーターの違いと、この区別が重要な理由についても説明します。さらに、インストラクターは、モデルが機能していない場合のトラブルシューティング手法についても説明し、機械学習および深層学習モデルにおける非線形性の重要性を紹介します。インストラクターは、線形および非線形回帰の問題を含むさまざまな例を使用してこれらの概念を示し、さまざまなハイパーパラメーターと損失関数をテストしながらモデルをトレーニングおよび評価する方法を示します。

12:00:00 - 13:00:00 この PyTorch for Deep Learning and Machine Learning コースでは、モデルを構築するための基本から高度な PyTorch の概念について説明します。インストラクターは、非線形性の概念を紹介し、PyTorch で非線形性を使用して分類モデルを構築する方法を示します。また、オプティマイザの構築、損失関数、およびカスタム アクティベーション関数についても説明します。線形関数と非線形関数を組み合わせて、これらの関数のレイヤーを積み重ねてモデルを作成し、データのパターンを見つけることの重要性が強調されています。このコースでは、バイナリ分類モデルとマルチクラス分類モデルの両方をカバーし、それらを PyTorch で設定する方法を説明します。このセクションの最後に、入力機能と出力機能を使用してマルチクラス分類モデルを初期化する方法を示します。

13:00:00 - 14:00:00 このパートのインストラクターは、PyTorch の nn.Sequential メソッドを使用して線形レイヤー スタック モデルを作成し、マルチクラス分類を実行する方法について説明します。彼らは、クロスエントロピー損失と確率的勾配降下 (SGD) を使用した損失関数とオプティマイザーの作成について説明しています。インストラクターは、ドロップアウト レイヤーと、エラーを解決するための機械学習コードのトラブルシューティングの重要性についても説明します。これらは、精度、精度、再現率、F1 スコア、混同行列、トーチメトリクスと scikit-learn ライブラリを使用した分類レポートなどのさまざまな分類評価方法を使用して、トレーニング済みモデルの評価を示しています。最後に、インストラクターは torchmetrics パッケージを使用して PyTorch で事前構築済みのメトリクス関数をインポートして使用する方法を示し、さらに調査するために torchmetrics モジュールと課外記事へのリンクを提供します。

14:00:00 - 15:00:00 このパートでは、機械学習を使用した PyTorch とコンピューター ビジョンに関連するさまざまなトピックについて説明します。これには、バイナリまたはマルチクラスの分類問題などのコンピューター ビジョンの問題の理解と、機械学習モデルがさまざまな画像の例からパターンを学習する方法の学習が含まれます。このビデオでは、TorchVision などの PyTorch ライブラリと、データセット、事前トレーニング済みモデル、ビジョン データを機械学習モデルで使用できる数値に操作するための変換がどのように含まれているかについても説明しています。さらに、インストラクターは、FashionMNIST データセットの入力と出力の形状、潜在的な問題を特定するためにデータセットを視覚化および調査することの重要性について説明し、PyTorch と Matplotlib を使用して画像データをプロットおよび視覚化する方法のデモンストレーションを提供します。

15:00:00 - 16:00:00 深層学習と機械学習のための PyTorch に関するこのビデオ コースでは、データを準備し、PyTorch データ セットとデータ ローダーを使用することの重要性について説明します。ディープ ラーニングにおけるミニバッチの概念が強調され、バッチ サイズ ハイパーパラメーターが 32 に設定された PyTorch を使用して、トレーニングおよびテスト データ ローダーを作成するプロセスが説明されます。 PyTorch モデルで使用するために、多次元データを単一のベクトルに変換するために平坦化の機能が導入されました。フラット化レイヤーと 2 つの線形レイヤーを使用して単純なニューラル ネットワーク モデルを作成するプロセスがカバーされ、Python 機械学習プロジェクトでヘルパー関数を使用する概念が説明されています。最後に、モデルのトレーニングにかかる時間を測定するためのタイミング関数の重要性と、プログレス バーへの TQDM の使用について説明します。

16:00:00 - 17:00:00 コースのこのパートでは、PyTorch に関連するさまざまなトピックを扱います。トレーニングとテスト ループのセットアップ、一般的なエラーのトラブルシューティング、モデルの評価、予測の作成から始めます。インストラクターは、特定のデータセットに最適なニューラル ネットワーク モデルを見つけるための実験の重要性を強調し、非線形データをモデル化するための非線形性の利点について説明します。また、PyTorch でヘルパー関数を作成し、ループを最適化して評価し、トレーニングとテストの手順を実行する方法も示します。このコースでは、デバイスに依存しないコードと、CPU と GPU でモデルをトレーニングする利点をさらに探究し、両方のデバイスでトレーニング時間を測定する方法のデモンストレーションで締めくくります。

17:00:00 - 18:00:00 このパートでは、深層学習と機械学習に関する多くのトピックを取り上げます。インストラクターは、深層学習モデルを作成してテストする方法、PyTorch を使用して畳み込みニューラル ネットワーク (CNN) を構築する方法、および PyTorch でブロックを作成する方法を示します。さらに、このチュートリアルでは、PyTorch モデルの構成と、畳み込みが実際にどのように機能するか、畳み込みレイヤーのストライドとパディング値の変更、および PyTorch の畳み込みと最大プーリング レイヤーについて説明します。ビデオ全体を通して、講師はリソースを共有し、PyTorch コードと段階的な説明を提供し、効率的で再利用可能なコードを作成する方法についてガイダンスを提供します。

19:00:00 - 20:00:00 このパートでは、機械学習モデル予測の視覚化、PyTorch での混同行列を使用したマルチクラス分類モデルの評価、Google Colab でのパッケージのインストールとアップグレード、PyTorch の保存と読み込みなど、さまざまなトピックについて説明しますモデル、およびカスタム データセットの操作。このコースでは、PyTorch を使用してコンピューター ビジョン モデルを構築するプロセスも示します。インストラクターは、データ読み込み関数とカスタマイズ可能なデータ読み込み関数にドメイン ライブラリを利用することの重要性を強調し、ビジョン、テキスト、オーディオ、レコメンデーションなどのさまざまなカテゴリの例を提供します。また、learn pytorch.io Web サイトや PyTorch ディープ ラーニング リポジトリなどの役立つリソースも提供しています。

20:00:00 - 21:00:00 この PyTorch for Deep Learning & Machine Learning コースのインストラクターは、Food 101 データセットを紹介することから始めますが、3 つの食品カテゴリと画像の 10% のみを含む小さなサブセットを提供して練習します。 PyTorch。インストラクターは、データ用に別のディレクトリを持つことの重要性を強調し、Python 画像ライブラリの Pillow メソッドと PyTorch メソッドを使用して画像を開き、視覚化し、変換する方法を示します。このセクションでは、画像のサイズ変更や反転など、PyTorch を使用したデータ変換についても説明し、インストラクターは、PyTorch を使用して機械学習モデルのテンソルとして画像を読み込んで変換する方法を示します。このセクションは、PyTorch で利用可能なさまざまな画像変換オプションを調べるための提案で終わります。

21:00:00 - 22:00:00 この PyTorch コースでは、インストラクターが画像データをロードしてテンソルに変換する方法、トレーニングとテスト用のデータ ローダーを作成およびカスタマイズする方法、カスタム データ ロード クラスを作成する方法について説明します。これらは、すべての画像の変換をカスタマイズするために使用できる、事前構築済みのデータ セット機能である画像フォルダーの機能を示しています。また、ディレクトリからクラス名とマッピングを取得する関数の作成、torch.utils.data.Dataset のサブクラス化、get item および len メソッドの上書きなど、カスタム データ ローダーを構築するために必要な手順についても説明します。データ ローダーのカスタマイズ機能は便利ですが、エラーのあるコードを記述するリスクがあります。

22:00:00 - 23:00:00 コースのこのパートでは、PyTorch でカスタム データセットとカスタム ローダーを作成して利用する方法、およびデータ拡張技術を実装する方法について説明します。インストラクターは、PyTorch ライブラリを使用して畳み込みニューラル ネットワークを構築する方法を示し、カーネル サイズやストライドなどのハイパーパラメータを含む、実験する領域に関するアドバイスを提供します。このコースでは、拡張パイプラインをテストし、単純な拡張手法を活用してモデルの精度を向上させる方法についても説明します。このコースから得られるものには、PyTorch の柔軟性と、ベース データセット クラスから継承してカスタム データ セット ロード関数を作成する機能が含まれます。

23:00:00 - 24:00:00 インストラクターは、深層学習と機械学習のための PyTorch のさまざまな側面について説明します。これには、モデルの形状エラーのトラブルシューティング、Torch Info を使用した PyTorch モデルの要約の出力、評価用のトレーニングとテスト ステップ関数の作成が含まれますデータセットのパフォーマンスを向上させ、これらの関数をトレーニング関数に組み合わせて、モデルのトレーニングを容易にします。また、インストラクターは、深層学習モデルのトレーニング プロセスのタイミング、時間の経過に伴うモデルの進行状況を追跡するための損失曲線のプロット、レイヤーの追加や学習率の調整など、さまざまな設定を試してモデルのパフォーマンスを評価することについても説明します。最終的に、これらのスキルは、PyTorch を使用して高度なモデルを構築および評価するための強固な基盤を提供します。

24:00:00 - 25:00:00 PyTorch for Deep Learning & Machine Learning コースのこのセクションでは、インストラクターがモデルのオーバーフィッティングとアンダーフィッティングの概念と、データ拡張などの対処方法について説明します。モデルを早期に停止し、単純化します。それらは、損失曲線を使用して経時的にモデルのパフォーマンスを評価することの重要性を強調し、異なるモデルのパフォーマンスを比較するためのツールを提供します。このセクションでは、予測用にカスタム画像を準備する方法についても説明し、torch vision.io を使用して画像を PyTorch にロードし、それをテンソルに変換する方法を示します。インストラクターは、画像をモデルに渡す前に、サイズを変更し、float32 に変換し、適切なデバイスに配置する必要があるかもしれないと指摘しています。

25:00:00 - 26:35:00 PyTorch コースのこのパートでは、データ型や形状、PyTorch の変換パッケージを使用した画像データの変換、事前トレーニング済みモデルを使用したカスタム データの予測など、さまざまなトピックを扱います。モデルにフィードする前にデータが正しい形式であることを確認するには、データを前処理し、0 から 1 の間でスケーリングし、必要に応じて変換し、正しいデバイス、データ型、および形状であることを確認することが重要です。 .インストラクターはまた、学習者が PyTorch カスタム データ セットの演習を行うことで練習することを奨励し、参照としてソリューションを提供します。インストラクターはまた、learnpytorch.io で探索する追加の 5 つの章があり、転移学習、pytorch モデル実験の追跡、pytorch ペーパーの複製、pytorch モデルの展開などのトピックをカバーしていると述べています。


パート1

  • 00:00:00 ビデオのこのセクションでは、インストラクターの Daniel Bourke が視聴者に PyTorch コースを紹介し、初心者向けのビデオ チュートリアルへの期待を設定します。このコースの焦点は、視聴者がコードを書くことによって学習する Python ベースのフレームワークである PyTorch で機械学習の概念を実装することにあります。 Bourke 氏は、このコースでは転移学習、モデルのデプロイ、実験の追跡などの重要なトピックを取り上げると述べています。視聴者が PyTorch についてさらに学びたい場合は、learn pytorch.io で利用可能な追加のリソースがあります。最後に、Bourke は機械学習を、データを数値に変換し、アルゴリズムと数学を使用してパターンを見つけるプロセスと定義し、コースの焦点はコードを書くことにありますが、視聴者が数学をより深く掘り下げたい場合は、追加のリソースを見つけることができると説明しています。コードの後ろ。

  • 00:05:00 このセクションでは、従来のプログラミングと機械学習の違いについて説明します。従来のプログラミングでは、タスクのルールを作成する必要がありましたが、機械学習アルゴリズムは入力データと出力データに基づいてルールを見つけ出しました。従来のプログラミングではなく機械学習を使用する理由は、すべてのルールを手動で記述するのが面倒になるような複雑な問題に対応するためです。機械学習は数値に変換できれば何にでも使えますが、Googleの機械学習の一番のルールは、機械学習に向かう前に、まず単純なルールベースのシステムを構築しようとすることです。

  • 00:10:00 このセクションでは、講師が深層学習のメリットとデメリットについて説明します。ディープ ラーニングは、ルールの長いリストを必要とする問題に取り組み、絶えず変化する環境を処理し、大規模なデータセット内で洞察を発見するのに役立ちます。ただし、ディープ ラーニング モデルによって学習されたパターンは通常、人間には解釈できないため、ディープ ラーニングは説明可能性を必要とするタスクには適していません。さらに、単純なルールベースのシステムで目前の問題を解決できる場合は、ディープ ラーニングの代わりにそれを使用する方がよい場合があります。

  • 00:15:00 深層学習と機械学習のための PyTorch のフル コースのこのセクションでは、インストラクターが機械学習と深層学習を比較します。 xg ブーストなどの勾配ブースト マシンなどの従来の機械学習手法は、行と列の構造化データに最適です。自然言語や画像などの非構造化データの場合、一般的にディープ ラーニングが適しています。ディープ ラーニング モデルは確率論的です。つまり、結果に賭けますが、ルールベースのシステムは予測可能な出力を生成します。さらに、ディープ ラーニング モデルで優れた結果を得るには大量のデータが必要ですが、より少ないデータで優れた結果を得る手法があります。

  • 00:20:00 このセクションでは、インストラクターが、構造化データと非構造化データの違い、および機械学習と深層学習で各タイプに使用されるアルゴリズムについて説明します。構造化データは、ランダム フォレストや勾配ブースト マシンなどの浅いアルゴリズムでうまく機能しますが、非構造化データにはニューラル ネットワークが必要です。次に、インストラクターは、完全に接続されたニューラル ネットワーク、畳み込みニューラル ネットワーク、リカレント ニューラル ネットワーク、トランスフォーマーなどのニューラル ネットワークの種類について詳しく説明します。インストラクターは、ニューラル ネットワークの基本的な構成要素を学習すると、他のスタイルのニューラル ネットワークを理解しやすくなるとアドバイスしています。このセクションは、次のビデオの前に、視聴者がニューラル ネットワークについて調べて独自の定義を形成するようインストラクターが奨励することで終わります。

  • 00:25:00 PyTorch コースのこのセクションでは、インストラクターがニューラル ネットワークとその構造の概要を説明します。ニューラル ネットワークは、入力データを数値に変換する入力層、データのパターンを操作して学習する複数の隠れ層、学習した表現を出力する出力層で構成されます。隠れ層のノード数はカスタマイズ可能で、ニューラル ネットワークは特徴または重みとも呼ばれる表現を独自に学習します。画像用の CNN や自然言語処理用のトランスフォーマーなど、さまざまなタイプのニューラル ネットワークをさまざまな問題に使用できます。ニューラル ネットワークがその表現を出力すると、人間が理解できる形式に変換できます。ニューラル ネットワークの解剖学的構造もカスタマイズでき、層の数は数個から 100 個を超える範囲です。

  • 00:30:00 このセクションでは、ニューラル ネットワークの構造について説明します。ニューラル ネットワークは、入力層、それぞれが多数のニューロンまたは隠れユニットを含む 1 つ以上の隠れ層、および出力層で構成されます。パターンとデータセットは、線形関数と非線形関数を使用して数値データに変換されます。パターンは、線形関数と非線形関数の組み合わせを使用して描画され、目的の結果が生成されます。データとラベルを一緒に使用する教師あり学習や、データのみを使用する教師なし学習など、さまざまな学習パラダイムについて説明します。自己教師あり学習アルゴリズムでは、データを使用してパターンを見つけますが、転移学習では、別のモデルで既に学習されたパターンを使用します。

  • 00:35:00 このセクションでは、インストラクターが機械学習のさまざまなパラダイム、特に教師あり学習、転移学習、強化学習について説明します。このコースでは教師あり学習と転移学習に焦点を当てますが、インストラクターは学習者が自分の時間に強化学習を探求することを奨励します。さらに、インストラクターは、レコメンデーション システム、翻訳、音声認識、コンピューター ビジョンなど、深層学習がどのように使用されているかの例を提供します。数値に変換でき、パターンを見つけるようにプログラムできるものは何でも機械学習アルゴリズムで使用できるため、機械学習の汎用性が強調されています。

  • 00:40:00 ビデオのこのセクションでは、コンピューター ビジョンを使用してひき逃げ事故をキャプチャし、犯人の車を特定するオブジェクト検出など、ディープ ラーニングの潜在的なアプリケーションについてインストラクターが説明します。インストラクターは、自然言語処理の概念と、スパム検出での使用方法について説明します。その後、ビデオは PyTorch の基礎をカバーします。PyTorch は、Python での高速ディープ ラーニング、事前構築済みモデルへのアクセス、GPU パフォーマンスの高速化を可能にする、最も人気のある研究用ディープ ラーニング フレームワークです。 PyTorch Web サイトは、コースに必要なリソースとして識別されます。

  • 00:45:00 このセクションでは、講師が PyTorch について説明します。PyTorch は、最も人気のある深層学習研究フレームワークであると彼は主張しています。彼は、コードを含む機械学習の論文を追跡する Papers with Code を引用して、PyTorch の人気を実証し、サイトが追跡した 65,000 の論文の 58% が PyTorch で実装されていることを示しています。さらに、Facebook/Meta、Tesla、Microsoft、OpenAI などの企業による PyTorch の使用や、研究方法論を標準化する能力など、PyTorch の人気のさまざまな理由を説明しています。インストラクターは、Francois Chale のツイートにも注目しています。このツイートでは、多額の投資やエンジニアリング チームを必要とせずに誰でも問題を解決できるツールとして PyTorch を称賛しています。全体として、インストラクターは、PyTorch が多様なエコシステムと業界の大物の間での高い採用率を備えた研究のお気に入りであると結論付けています。

  • 00:50:00 PyTorch for Deep Learning & Machine Learning コースのこのセクションでは、インストラクターが農業や Facebook や Microsoft などのソーシャル メディア プラットフォームなど、PyTorch のさまざまなアプリケーションについて説明します。さらに、彼は PyTorch を使用してユーザーが GPU で機械学習コードを実行できるようにする方法について説明しています。GPU は数値計算、特に並列処理の実行において非常に効率的です。 PyTorch は CUDA を活用して、機械学習コードを NVIDIA GPU で実行できるようにします。TPU も利用できますが、PyTorch コードを実行する場合は GPU の方が一般的です。さらに、彼は「テンソルとは何か?」という疑問を残しています。次のセクションでは、このトピックについて詳しく説明します。

  • 00:55:00 このセクションでは、講師はテンソルが PyTorch の基本的な構成要素であり、数値を表すものであれば何でもよいと説明しています。入力データは、数値でエンコードされてテンソルに変換されます。テンソルは、1 枚または 100 万枚の画像になる可能性があります。次に、入力テンソルはニューラル ネットワークに渡され、ニューラル ネットワークは数学演算によって操作し、別のテンソルを出力します。このテンソルは、人間が理解できる形式に変換されます。 PyTorch を使用し、質問への回答をオンラインで検索する理由と、コースでカバーされる特定のトピックの紹介が強調されています。

パート2

  • 01:00:00 このセクションでは、インストラクターが PyTorch コースで取り上げるトピックを取り上げます。このコースは、テンソルとテンソル演算に焦点を当てた PyTorch の基本から始まり、データの前処理、事前トレーニング済みの深層学習モデルの構築と使用、データセットへのモデルの適合、予測の作成、モデルの予測の評価に進みます。インストラクターは、データの準備、事前トレーニング済みモデルの選択、損失関数とオプティマイザーの選択、トレーニング ループの構築、モデルのフィッティング、実験によるモデルの改善などのワークフローを説明します。最後に、インストラクターは、コードの背後にある理論についてさらに学ぶために課外リソースをリンクしながら、コーディングに沿ってコーディングし、コードを探索して実験することの重要性を強調します。

  • 01:05:00 このセクションでは、PyTorch for Deep Learning & Machine Learning コースのインストラクターが、科学者とシェフの心でコースに取り組むよう学習者にアドバイスします。彼は、深層学習でデータを理解するための実験と視覚化の重要性を強調しています。さらに、インストラクターは、学習者が質問をしたり、提供されている演習を行ったり、自分の学習を他の人と共有して自分自身や他の人の学習を支援したりすることを奨励しています.最後に、彼は学習者に、考えすぎたり、学習できないと言ったりしないようにアドバイスし、脳に火がつくのを避けるように促します.最後に、必要なすべての資料を含む GitHub リポジトリなど、コースに必要な基本的なリソースに学習者を誘導します。

  • 01:10:00 このセクションでは、スピーカーがコースで利用できるリソースと、それらを効果的に利用する方法について説明します。コードやノートブックを含むコースの資料は GitHub で入手できますが、コースの Q&A は同じリポジトリのディスカッション タブにあります。さらに、learnpytorch.io で入手できるオンライン ブックがあります。コース固有ではない PyTorch 関連の質問については、PyTorch フォーラムと Web サイトを強くお勧めします。次にスピーカーは、コース全体で使用される主要なツールとなる Google Colab を紹介し、ユーザーが colab.research.google.com からアクセスしてコーディングすることを奨励します。

  • 01:15:00 このセクションでは、講師が Google Colab を使用して新しいノートブックを作成し、PyTorch コードを記述する方法を説明します。 Google Colab は、GPU または TPU アクセラレーションを使用して計算時間を高速化する機能や、プリインストールされた PyTorch およびその他の一般的な Python データ サイエンス パッケージなどの利点を提供します。インストラクターは、learnpytorch.io のリソース ノートブックにリンクし、学習者がコースに関連する質問をすることができる GitHub リポジトリを提供します。インストラクターは、Google Colab の有料版を使用している間、コースを完了するには無料版で十分であるとも述べています。

  • 01:20:00 このセクションでは、Google Colab を使用するか、ローカル セットアップのセットアップ ドキュメントを参照して、PyTorch をセットアップする方法をビデオで紹介します。コースを完了するための推奨セットアップは、PyTorch 1.10 および CUDA 11.3 です。このビデオでは、分割ウィンドウのアプローチを使用して、練習用のノートブックを作成することも提案しています。このビデオの主な焦点は、深層学習の主要なビルディング ブロックであるテンソルの紹介であり、数字の 7 で満たされたスカラー テンソルを作成する例と、torch.tensor の PyTorch のドキュメントにアクセスする方法を提供します。

  • 01:25:00 このセクションでは、インストラクターが PyTorch テンソルの基本を説明し、torch.dot.tensor を使用したテンソルの作成から始めます。彼は、学習者が PyTorch のドキュメントを熟読して、ライブラリについてさらに学ぶことを奨励しています。続いて、講師はスカラー、ベクトル、行列の属性について説明します。彼は、スカラーには次元がなく、ただ 1 つの数値であるのに対し、ベクトルには 1 つの次元があり、通常は大きさと方向として表されることを明確にしています。行列は次のステップであり、2 組の角括弧で表される 2 つの次元を持ちます。彼は、次元と形状の違い、および次元に関してベクトルの形状を見つける方法を説明しています。

  • 01:30:00 このセクションでは、インストラクターが PyTorch のテンソルを紹介し、それらがディープ ラーニング ニューラル ネットワークの基本的なビルディング ブロックであることを説明します。インストラクターは、スカラーから行列、3 つの角かっこのペアを持つテンソルまで、さまざまな次元のテンソルを作成する方法を示します。インストラクターは、次元の数は角括弧のペアリングの数で示され、形状は各次元の要素の数で決まると説明しています。さらに、インストラクターは、手でテンソルを書き出すのは面倒ですが、PyTorch がテンソルを広範囲に使用するため、テンソルがどのように機能するかを理解することが重要であると述べています。

  • 01:35:00 このセクションでは、インストラクターが機械学習と深層学習における PyTorch のランダム テンソルの重要性について説明します。乱数でいっぱいのテンソルから始めて、それらを調整してデータをより適切に表現することは、ニューラル ネットワークの重要な概念です。 PyTorch でランダム テンソルを作成するために、講師は torch.rand 関数の使用方法を示し、「サイズ」と「形状」は同じものの 2 つの異なるバージョンであることを説明します。スカラーとベクトルは小文字、行列とテンソルは大文字など、深層学習における変数の命名規則についても簡単に説明します。

  • 01:40:00 このセクションでは、講師が PyTorch を使用してランダム テンソルを作成する方法を示し、画像を含むさまざまなタイプのデータをテンソル形式で表現できることを説明します。講師は、PyTorch はテンソルを作成するプロセスを簡素化し、多くの場合、舞台裏でプロセスを処理すると説明しています。それらは、画像テンソルの形状に似た形状のランダム テンソルを作成する方法を示し、画像は一般にカラー チャネル、高さ、幅を持つテンソルとして表されることを説明しています。インストラクターは、ほとんどすべてのタイプのデータをテンソルとして表現できることを強調しており、PyTorch はディープ ラーニングおよび機械学習アプリケーションの強力なツールになっています。

  • 01:45:00 このセクションでは、インストラクターがゼロと 1 のテンソルを作成する方法と、テンソルの範囲を作成する方法を紹介します。すべてゼロのテンソルは、テンソルの特定の列をゼロにすることができるテンソル マスクを作成するのに役立ちます。すべてが 1 のテンソルは、状況によっては役立つこともあります。インストラクターは torch.range の使用方法を説明しますが、PyTorch の一部のバージョンでは非推奨になる可能性があることを警告し、代わりに range 関数を使用することを提案します。

  • 01:50:00 このセクションでは、範囲を使用してテンソルを作成する PyTorch 機能と、別のテンソルと同じ形状を持つものについて説明します。テンソルの範囲は torch.arange() を使用して作成され、start、stop、および step を定義できます。同様に、 torch.zeros_like() は、入力テンソルと同じ形状のゼロのテンソルを作成するために使用されます。このセクションでは、PyTorch でテンソル データ型を紹介し、何も指定されていない場合でも、デフォルトの型が float 32 であることを指定します。

  • 01:55:00 このセクションでは、PyTorch でテンソルを作成する際の重要なパラメーター (データ型、デバイス、required grad など) について学びます。データ型はコンピューティングの精度レベルを指し、一般的に 32 ビット浮動小数点および 16 ビット浮動小数点テンソルと相互作用することがわかりました。単精度は 32 ビット、半精度は 16 ビットで、32 ビットが PyTorch のデフォルトのテンソル型です。 PyTorch と深層学習の使用中に遭遇する可能性のある 3 つの重大なエラーの 1 つであるため、テンソル データ型に関する注意は不可欠です。他の 2 つのエラーには、テンソルが正しい形状を持たず、正しいデバイス上にないことが含まれます。

パート3

  • 02:00:00 このセクションでは、インストラクターは、PyTorch でテンソルを操作する際に正しい形状とデバイスを維持することの重要性について説明します。テンソルの形状が異なる場合、または異なるデバイス (CPU または GPU) に配置されている場合、エラーが発生する可能性があります。さらに、インストラクターは、数値計算中に勾配を追跡する際の「grad」パラメーターの役割について説明します。このレッスンには、視聴者がさまざまなデータ型のテンソルを作成し、さまざまな型のテンソルを乗算した場合の影響をテストするという課題が含まれています。インストラクターは、特に大規模なニューラル ネットワークをトレーニングする場合、エラーにならない操作もあれば、データ型の問題が発生する可能性があることを警告しています。

  • 02:05:00 ビデオのこのセクションでは、講師がテンソル操作のトラブルシューティング方法を説明し、テンソルが機械学習モデルで使用するための正しいデータ型と形状であることを確認します。これらは、コマンド tensor.Dtype、tensor.shape、および tensor.device を使用して、PyTorch を使用してテンソルのデータ型、形状、およびデバイスをチェックする方法を示しています。インストラクターは、テンソルが正しいデータ型または形状でない場合に PyTorch がエラーをスローする可能性があることにも注意し、必要に応じてデータ型を変更する方法を示します。最後に、サイズと形状のコマンドを比較し、一方が関数で、もう一方が属性であり、それらが交換可能であることを指摘します。

  • 02:10:00 このセクションでは、インストラクターが PyTorch でのテンソルの操作、特に加算、減算、乗算、除算、行列乗算などのテンソル操作について説明します。これらの操作は、ディープ ラーニング モデルの構築に関する最も一般的な問題の解決に役立つため、ニューラル ネットワークの構築にとって重要です。さらに、ニューラル ネットワークはこれらの関数をさまざまな方法で組み合わせて、ランダム テンソルの数値を分析および調整し、データセットを表します。インストラクターは、PyTorch コード例を使用して、加算、乗算、および行列乗算の基本的なテンソル操作を実行する方法を示します。

  • 02:15:00 このセクションでは、インストラクターが PyTorch を使用したテンソル演算について説明し、行列乗算の概念を紹介します。これらは、Python 演算子と PyTorch 組み込み関数を使用して、要素単位の乗算、加算、および減算を実行する方法を示しています。インストラクターは、視聴者が行列の乗算に飛び込む前に検索して理解するように課題を出します。彼らは、ニューラルネットワークで乗算を実行する主な方法が2つあると説明しています。要素ごとの乗算と、ドット積とも呼ばれる行列乗算です。インストラクターは、行列を使用した両方のタイプの乗算の例を示し、行列の乗算がニューラル ネットワークで最も一般的なテンソル操作の 1 つであることを強調します。

  • 02:20:00 このセクションでは、インストラクターが PyTorch における要素単位の乗算と内積乗算の違いについて説明します。概念を実証するために、講師は 2 つの行列を乗算する段階的なプロセスを実行し、各要素がどのように乗算されて加算されて最終結果が得られるかを強調します。次に、インストラクターは、初歩的な例を使用して要素ごとの乗算を実行する方法を示し、続いて torch dot mat mall 関数を使用して行列乗算を実行します。このセクションでは、for ループを使用して行列の乗算を実行する方法についても説明し、2 つの方法のパフォーマンスの違いについて説明します。

  • 02:25:00 このセクションのビデオでは、行列乗算の例を使用して、PyTorch の for ループに対するベクトル化の利点を説明しています。 torch メソッド torch dot matmore は、小さなテンソルに対して for ループを使用するよりも 10 倍高速であることが示されています。ただし、このビデオでは、行列の乗算での形状エラーを回避するために、より大きなテンソルに対して 2 つの主な規則を満たさなければならないことを警告しています。最初のルールは、2 つのテンソルの内次元が一致しなければならないということです。

  • 02:30:00 このセクションでは、インストラクターが行列の乗算のルールと、テンソルを乗算する際の一般的な形状エラーを回避する方法について説明します。最初の規則は、行列の内部次元が一致する必要があるということです。これを実証するために、インストラクターはサイズ 3x2 のテンソルを作成し、同じ内部次元を持たない別のテンソルを掛けようとして、エラーが発生します。 2 番目の規則は、結果の行列が外部次元の形状を持つことです。インストラクターは、さまざまなテンソル形状と次元を使用した行列乗算の例と、それらがどのようにさまざまな行列形状になるかを示します。インストラクターは、次のビデオの前に、課題として行列の乗算を練習するための Web サイトを使用することを視聴者に勧めています。

  • 02:35:00 このセクションでは、深層学習で最も一般的なエラーの 1 つである、ニューラル ネットワークの形状エラーについてインストラクターが説明します。ニューラル ネットワークは複数の行列乗算演算で構成されているため、わずかなテンソル形状エラーでも形状エラーにつながる可能性があります。次に、インストラクターは 2 つのテンソル、テンソル a とテンソル b を作成し、それらの間で行列の乗算を実行しようとすると、形状エラーが発生します。このエラーを修正するために、インストラクターは転置の概念を導入します。これは、指定されたテンソルの軸または次元を切り替え、PyTorch コードでテンソルの形状を調整するためにそれを使用する方法を示します。

  • 02:40:00 このセクションでは、インストラクターがテンソルの転置の概念と、行列の乗算におけるその重要性について説明します。転置は、基になるデータを変更せずにテンソルの要素を再配置し、「ドット t」で表されます。また、インストラクターは、テンソル b が転置されたときに行列乗算演算がどのように機能するかを示し、ニューラル ネットワークと深層学習におけるこの演算の重要性を強調します。テンソルを転置するプロセスは視覚的に示され、インストラクターは段階的なコード例を提供して、学生が概念を理解し、実践できるようにします。

  • 02:45:00 このセクションでは、講師が PyTorch と Matrix Multiplication という Web サイトを使用した行列乗算について説明します。彼は 2 つのテンソル、テンソル a とテンソル b を作成し、それらの乗算が特定の出力形状を持つ新しいテンソルになることを示しました。彼は視聴者に、テンソル b の代わりにテンソル a を転置し、結果を確認するように要求しています。次に、インストラクターはテンソル集約について説明し、PyTorch メソッドを使用してテンソルの最小値、最大値、平均値、および合計値を見つける方法を示します。彼はまた、テンソルの集約がテンソルの要素数の削減にどのように役立つかについても説明しています。

  • 02:50:00 PyTorch チュートリアルのこのセクションでは、インストラクターが PyTorch で最も一般的なエラーの 1 つを解決する方法を紹介します。これは間違ったデータ型です。彼は、データ型 long のテンソルを作成することでこれを実証します。これにより、トーチ平均関数の使用が妨げられます。次に、x.type() メソッドを使用して、平均関数で必要なテンソルを float 32 に変換する方法を説明します。インストラクターは、テンソルの最小値、最大値、平均値、合計を見つけることに加えて、位置の最小値と最大値を見つけるための課題も設定します。これについては、次のビデオで説明します。

  • 02:55:00 このセクションでは、テンソルの位置の最小値と最大値を見つけるための PyTorch での argmin と argmax 関数の使用について説明しました。 argmin 関数は最小値を持つテンソル内の位置を返し、argmax 関数は最大値を持つテンソル内の位置を返します。これらの関数は、テンソルの最小値または最大値を定義する必要がなく、それらの値の位置のみを定義する場合に役立ちます。さらに、テンソルの再形成、積み重ね、スクイーズ、およびアンスクイーズの概念が導入されました。これは、機械学習と深層学習における形状の不一致を管理するのに役立ちます。

パート 4

  • 03:00:00 このセクションでは、インストラクタが PyTorch でのさまざまなテンソル操作方法 (reshape、view、stacking、squeeze、unsqueeze、permute など) について説明します。 Reshape は入力テンソルの形状を変更し、view は異なる形状のテンソルのビューを返し、スタッキングは複数のテンソルを垂直または水平に結合し、squeeze は 1 に等しいすべての次元を削除し、unsqueeze はサイズを持つ新しい次元を追加します最後に、permute はテンソルの次元を交換します。インストラクターは、これらの各方法を示すコード例を提供し、機械学習と深層学習におけるテンソル形状操作の重要性を強調します。

  • 03:05:00 このセクションのビデオ チュートリアルでは、PyTorch テンソルを再形成して表示する方法を探ります。再形成には元のサイズとの互換性が必要であり、'reshape' または 'view' 関数のいずれかを使用して行うことができます。 「ビュー」は元のテンソルと同じメモリを共有することに注意することが重要です。さらに、「stack」関数は新しい次元に沿ってテンソルを連結し、デフォルトの次元はゼロです。 Google CoLab やその他の形式の Jupyter Notebook を使用しているときにエラーが発生する可能性があるため、作業内容を頻繁に保存することをお勧めします。

  • 03:10:00 このセクションでは、インストラクターが PyTorch でのスクイーズとアンスクイーズの概念を紹介します。これらのメソッドの使用を練習するには、ドキュメントを参照して試してみることをお勧めします。インストラクターは、単一の次元がターゲット テンソルから削除されるスクイーズ メソッドを示します。これらの操作中にテンソルに加えられた変更を視覚化するために、インストラクターは、各変更を印刷してテンソルのサイズを確認することを提案しています。さらに、インストラクターは、これらの概念に慣れるために、これらの概念を何度も練習することの重要性を強調しています。

  • 03:15:00 このセクションでは、インストラクターがメソッド「squeeze」と「unsqueeze」を使用して PyTorch tensor で次元を追加および削除する概念について説明します。彼は、テンソルから次元を追加および削除し、それらの形状を印刷することによって、これらの方法の効果を示しています。インストラクターは、指定された順序でターゲット テンソルの次元を再配置する "permute" メソッドも紹介します。彼は、並べ替えを画像で使用する方法の例を示し、ディープ ラーニングでデータを数値表現に変換することの重要性について説明しています。

  • 03:20:00 このセクションでは、インストラクターは、PyTorch の permute() メソッドを使用して次元を再配置することにより、テンソルを並べ替えることについて教えます。与えられた例は、カラー チャネルの次元が最初のインデックスに移動されたイメージ テンソルです。インストラクターは、並べ替えられたテンソルは単なるビューであり、元のテンソルと同じメモリを共有していることを説明します。これは、元のテンソルの値を更新し、同じ値が並べ替えられたテンソルにコピーされることによって実証されます。このセクションでは、PyTorch でのインデックス作成と、別の一般的な数値計算ライブラリである NumPy でのインデックス作成との類似点についても説明します。

  • 03:25:00 このセクションでは、インストラクターが torch をインポートする方法を紹介し、小さな範囲を作成して互換性のある方法で再形成する方法を示します。次に、このチュートリアルでは、テンソルを使用したインデックス作成について詳しく説明し、1 番目と 2 番目の次元でインデックスを作成する方法を示します。このチュートリアルでは、セミコロンを使用してすべてのターゲット ディメンションを選択する機能についても説明します。このセクションは、コードを再配置して 9 番を取得するチャレンジで終了します。

  • 03:30:00 このセクションでは、インストラクターが PyTorch を使用してテンソルから特定の値を選択する方法を示します。例では、適切なインデックス値を指定して、テンソルのさまざまな次元から要素を選択します。次に、インストラクターは視聴者にテンソルのインデックスを作成して特定の値を返すように要求します。次のセクションでは、講師が PyTorch テンソルが人気のある科学数値計算ライブラリである NumPy とどのように相互作用するかを説明します。 PyTorch はそれを必要とするため、NumPy 配列と PyTorch テンソル間の簡単な移行を可能にする機能が組み込まれています。

  • 03:35:00 このセクションのビデオでは、データを NumPy から PyTorch テンソルに、またはその逆に変換する方法について説明します。 NumPy から PyTorch に移行するには、NumPy 配列で torch.fromNumPy メソッドが使用されますが、NumPy のデフォルトのデータ型が float32 であるのに対し、PyTorch のデフォルトのデータ型は float32 であることに注意してください。そのため、変換時にデータ型を指定する必要がある場合があります。元の NumPy 配列の値を変更する場合、 fromNumPy メソッドを使用して作成された場合、PyTorch テンソルの値は変更されないことに注意することも重要です。 PyTorch から NumPy に移行するには、メソッド torch.tensor.numpy() を使用できます。

  • 03:40:00 このセクションのビデオでは、PyTorch と NumPy の間を行き来する方法と、それぞれのデフォルトのデータ型について説明します。 PyTorch のデフォルトのデータ型は float32 ですが、NumPy のデフォルトのデータ型は float64 です。PyTorch でデータ型を変更すると、NumPy テンソルは元のデータ型を反映します。このビデオでは、ニューラル ネットワークにおける再現性の概念と、ランダム シードを使用して実験でのランダム性を減らす方法についても説明しています。ランダム シードを設定すると、ランダム性が強調され、コンピューターがより決定論的になり、より再現性の高い結果が得られます。

  • 03:45:00 このセクションでは、インストラクターが PyTorch のランダム性と再現性の概念を紹介します。 torch.rand 関数を使用して 2 つのランダム テンソルが作成され、それらの値が出力されて比較されます。インストラクターは、PyTorch で再現可能なランダム性を作成するために使用されるランダム シードの概念について説明します。ランダム シード値は、42 などの任意の数値に設定し、さまざまなランダム関数で使用して、フレーバー付きのランダム性を得ることができます。 torch.manual_seed 関数が使用される場合、通常、ノートブック内の 1 つのコード ブロックに対してのみ機能することに注意することが重要です。

  • 03:50:00 ビデオのこのセクションでは、機械学習とディープ ラーニングにおける再現性の重要性が強調され、ランダム シードの概念が説明されています。マニュアル シードは、PyTorch ランダム テンソルのランダム性を調整し、それらを再現可能にする方法です。 PyTorch の再現性に関するドキュメントは、再現性について学習するための優れたリソースとして推奨されます。このセクションでは、計算を高速化するために GPU で PyTorch オブジェクトを実行する方法と、GPU にアクセスする方法についても説明します。これには、Google Colab を使用して無料の GPU を使用したり、Google Colab Pro を使用して GPU を高速化し実行時間を長くしたり、Google Colab Pro Plus を使用してより高度な利点を得たりすることも含まれます。

  • 03:55:00 このセクションでは、ディープ ラーニングおよび機械学習タスクのために GPU にアクセスするさまざまな方法について講師が説明します。オプションは、Google Colab を使用するか、Colab Pro にアップグレードするか、独自の GPU を使用するか、GCP、AWS、Azure などのクラウド コンピューティング サービスを使用することです。インストラクターは、簡単で無料で使用できる Google Colab から始めることをお勧めします。ただし、より多くのリソースが必要な場合や、より大規模な実験を実行したい場合は、アップグレードするか、独自の GPU またはクラウド コンピューティングを使用することをお勧めします。インストラクターは、ランタイム タイプを変更し、PyTorch で GPU アクセスをチェックすることによって、Google Colab で GPU を取得する方法も示します。

PyTorch for Deep Learning & Machine Learning – Full Course
PyTorch for Deep Learning & Machine Learning – Full Course
  • 2022.10.06
  • www.youtube.com
Learn PyTorch for deep learning in this comprehensive course for beginners. PyTorch is a machine learning framework written in Python.✏️ Daniel Bourke develo...