(セッション第4回) 教師あり学習:ロジスティック回帰の理解

AI入門
この記事は約39分で読めます。

この動画は機械学習の教師あり学習におけるロジスティック回帰について解説した講義である。線形回帰の復習から始まり、分類問題における課題を説明した後、ロジスティック分布とシグモイド関数の特性を活用した分類手法を詳しく解説している。癌診断データを用いた実装例を通じて、交差エントロピー損失関数の必要性、正則化による過学習防止、そして多クラス分類におけるソフトマックス関数の応用まで体系的に学習内容を網羅している。

(Session #4) Supervised Learning: Understanding Logistic Regression
This is Session #4 of our workshop series - Supervised Learning: Understanding Logistic Regression.In this session, you ...

セッション第4回の開始

おう、すまんすまん、ミュートになっとったわ。今度はZoomで聞こえるはずやで。

聞こえとるか?

よっしゃ、完璧や。そしたら…

もしAISASU.comスラッシュeventsに行くか、単にAISASU.comに行ってここをクリックしたら、このページに着くで。ここに埋め込みがあるんや。

AIS-ASU.comやで。

そこに行って、eventsをクリックしたら、この埋め込みページが表示されるはずや。ここに録画、コード、それにスライドを全部アップしていくからな。

よっしゃ、ええ感じや。今日の内容を始めよか。

セッション3の復習

セッション3で話したことを簡単に振り返ってみよか。そこで話したことが今日学ぶことにつながってくるからな。

教師あり学習とは何かを理解したんやったな。例を見てみよか。猫の画像があって、それに「猫」というラベルが付いてる。別の犬の画像があって、それには「犬」というラベルが付いてる。

機械学習では、モデルに入る画像、つまり入力データを入力データと呼んで、通常は変数Xで表す。そして出力、つまり「猫」と「犬」のテキストは、出力ラベルYと呼ぶんや。通常、これは深層学習の問題なんやけど、応用は基本的に同じや。画像がこれらの深層学習モデルに入って、出力ラベルが何かを見て、訓練するネットワーク構造を通してパターンを学習しようとするんや。

どうやってそれが起こるかというと、このラベル付きデータセットを取って、XとYという入力と出力を両方ともAIモデルに渡すんや。それが訓練されたら、次の段階では…これが基本的に訓練フェーズや。モデルが訓練された後の次のフェーズは、推論フェーズと呼ばれる。推論フェーズでは、入力データであるXだけを取って、モデルに渡すんや。

ここで起こることは、モデルが猫か犬かの出力を出すということや。

この入力データとそれに関連するラベルがある全体のプロセスが教師あり学習と呼ばれるんや。教師あり学習は大きく2つのカテゴリーに分類できる。一つは回帰で、もう一つは分類や。回帰では基本的に連続値の出力を得る。小数値、浮動小数点値、または単なる整数かもしれん。

一方、分類では、カテゴリー別の出力がある。3つのカテゴリーや4つのカテゴリーかもしれん。前のスライドで見たように、猫と犬だけがあった。そこでは2つのカテゴリーだけがあったんや。こうしたデータセットがあるとき、分類を中心とした問題を構築しようとするんや。

線形回帰の復習

前回のセッションで話した線形回帰について簡単に振り返ってみよか。

線形回帰では何が起こるんや?線形回帰の全体のフェーズでは、基本的に家の価格を予測する同じ問題設定を仮定してみよう。家の一つの特徴、家の面積を取る。それがx軸になって、予測したい家の価格がある。これは基本的に単変量線形回帰と呼ばれるんや。

X値が1つだけあって、それが特徴の配列やリストではないんや。

そうしたら…この全てのデータは…このデータはCSV、つまりCSVとは何か?基本的にExcelシートのようなもので、表形式になってる。そこで、そのExcelシートにある全ての値を取ってここにプロットするんや。

全ての点がプロットされたら、それは訓練データから得られる。次に何をするかというと、線形回帰方程式Y = WX + Bの初期仮定から始めるんや。ここでWは直線の傾きや。

Bはy切片やな。WとBのランダムな初期化から始めて、その線を引く。そして次にすることは、実際に存在するデータから線までのコストや損失を計算することや。

これが起こることやな。コスト計算全体のアイデアは、直線の傾きとy切片が確定するような方法でこのコストを減らしたいということや。

つまり、基本的にこの線を全ての点からのコストが低い位置に動かしたいんや。それが起こることで、そこでモデルの訓練を始めるんや。先週、コードでどのように起こるかを見たし、損失曲線も減少していくのを観察できたな。今日は、それがどのように起こるかをもっと詳しく探っていくで。

最終的にモデルが訓練されたら、コストが最小かどうかを検証して確認するために、線から全ての点までのコストを計算するんや。点から線に垂直線や直線を引いて、それが青い線として見えるものや。

これがどのように訓練されるかというと、バックプロパゲーションを見るんや。訓練全体はバックプロパゲーションの原理を通して起こる。

バックプロパゲーション

バックプロパゲーションはどのように動くんや?バックプロパゲーションを理解するために、見る必要のある方程式を見てみよう。

Y = WX + Bという直線の方程式を知ってる。線と点の間の距離、前のスライドで見た青やオレンジの線をどうやって計算するか?それは損失項Lを使って、平均二乗誤差、距離計算、距離測定を使って点が線からどれくらい離れているかを見つけるんや。そして次にすることは、傾きやy切片をあまり大きく変えたくないことを確認したい。小さな増分でやりたくて、そこで次の方程式が登場するんや。Wの値、そしてBの値も…方程式はここにないけど、これの微分を計算した後、小さな増分を使ってBの値も更新するんや。

微分は何をするんや?微分は点がその最適位置からどれくらい離れているかを教えてくれるんや。Wと Bの値がその最適位置からどれくらい離れているかのこの測定値を取って、そして勾配降下を計算するんや。これが勾配降下や。

その後、バックプロパゲーションを計算したい。バックプロパゲーションは具体的にどのように動くんや?

これは基本的にこの微分項や。

損失方程式がある。することは、これをWに関して微分して、ここに連鎖律を適用するんや。n2乗があって、それが2Nになる。そしてNはWXI + Bや。そして最終的にこの方程式を得るんや。

どれや?

ここに2が足りないと言ってるんか?

ここにあるべきや。ああ、基本的に、ここに2が足りないのは正しいで。1/2Nなので、2が相殺される。

それが足りない。修正するわ。同様に、バイアス項、つまりy切片に関しても微分を計算して、この方程式を得るんや。

これが基本的にバックプロパゲーションがどのように動くかの原理で、損失関数に連鎖律を適用するんや。損失とは何か?損失は基本的に実際の値と予測値の差で、後でさまざまなタイプの損失関数を見ていくで。

回帰と分類の違い

こうして線形回帰モデル全体を訓練してきたんやけど、回帰と分類を見たら、具体的に何が違うんや?

家の価格予測の同じ例を取ってみよう。家の面積がある、家の価格がある。

すまんな。

全てのデータ点がある。分類に関しては、癌の予測を見てるとしよう。

すまんな。

そのデータセットの特徴である「最悪周囲長」という特徴を見てる。これは基本的に腫瘍がどれくらい大きいかを言う。

癌の腫瘍は何か…つまり、腫瘍は良性か悪性か?基本的に、データの2つの異なる状態を見てるんや。それがここで見えることや。

1つのカテゴリーが1つのx軸、つまり1つのX値にあって、他の値が別のカテゴリーで別のX値にある。

これが…回帰と分類データがどのように見えるかの主要な違いや。

ポイントが癌性かどうかを予測したい場合、線形回帰を使えるか?

この種のデータセットに対して線形回帰を使えると皆思うか?

トニー?

正規化する?

関係ないやろ?でも、まだできるやろ?つまり、この分類データセットにも線形回帰を使えるってみんな同意するか?線形回帰を使えるか?実際にどのように動くか見てみよう。

両方の軸がある。そして一方のx軸にデータがあって、他方のx軸のレベルに他のデータがある。基本的に、この両方を見ると、一方は良性のデータセットで、他方は悪性と言えるんや。

この2つのカテゴリーの値を見たい場合、良性は0で、悪性は1になる。

線形回帰をどのように使えるか?線形回帰の原理は何か?直線を引くだけや。それが線形回帰が言ってることや。そこで、ここに直線を引くことができる。こんな風に。

でも、ここで悪性か良性かの腫瘍をどうやって区別できるんや?

何か考えはあるか?

どこで…

こんな風に見てるけど、どうやって…新しいデータポイントを得たとしよう。家の予測で、家の価格がわからない場所のように。ここかここに新しいデータポイントが出てきたとする。それが悪性か良性かどうやって言えるんや?

ああ。

Y値ってどういう意味や?

バイ。

できることは基本的に閾値を持つことや。そして線形回帰モデルがその閾値点と出会う場所で、左にあるものは悪性で、右にあるものは良性と言えるんや。

または、逆もある。

しかし、以前はなかった、ここにポップアップするデータポイントを取ってみよう。線形回帰モデルに今何が起こるやろうか?

こんな風になる。

一度これが完了すると、分離していた境界、つまり悪性か良性かを分離していた境界が、ここの方へシフトする。

上を見ると、良性として誤分類された2つの悪性のケースがある。

これが分類に線形回帰を使いたいときの主要な問題の一つや。これをどうやって克服できるか?

ロジスティック回帰の導入

今日のセッションはそれについてや。

見ているのは、ロジスティック回帰と呼ばれる別のモデル構造や。ロジスティック回帰を使って分類する。

癌が…または腫瘍が悪性か良性かを。

正式に分類とは何かを定義してみよう。分類は、正しいカテゴリーが分かっているデータセットから学習することによって、新しいデータポイントがどのカテゴリーやクラスに属するかを予測するために使用される教師あり学習技術や。

それはどういう意味や?前の画像自体、または前の例を見た場合。

悪性と良性のデータポイントが具体的にどこにあるかを見ることによって、この線上に来る任意のポイントを悪性として分類でき、実際に悪性であるすべてのポイントが悪性のままであることを決定する方法を決めることができるか?

それが今日探ろうとしてることや。

どうやってそれをできるか?統計学で多くの分布について聞いたことがあるやろう、正規分布、ガウス分布。同様に、ロジスティック分布と呼ばれる別の分布がある。

そして、シグモイドと呼ばれる別の数学関数もある。シグモイドを具体的にどのように使って分類するか。

腫瘍が悪性か良性かを。同じ例をもう一度取ってみよう。ここにデータポイントがある。

ソフトマックスでは何をするか…

ソフトマックス曲線は基本的にS曲線で、1から0の範囲にある。その方法で、実際にポイントがどこにあるかを分類してるんや。線形回帰の同じ原理に戻って。

どこの部分が悪性でどこの部分が良性かをどうやって決めるか?再び0.5の閾値を持って、決定境界を引き、左にあるものは良性で、右にあるものは悪性と言えるんや。

このシナリオでは、新しいデータポイントが悪性側に入ってきても、非常に遠く離れていても、またはそれ自体が外れ値であっても。

モデルがどのように動作しているかには影響しない。

ここでのモデルはシグモイド関数に他ならない。

それが分類にシグモイド関数を使うことの主な利点や。

進む前に、ここで何か質問あるか?

すまんな?

あー、すまんな?

聞こえるか。

わかった、そしたら…

なぜロジスティック分布か

なぜ具体的にロジスティック回帰、またはロジスティック分布なのか?

正規分布のような多くの他のタイプの分布があることを知ってる。代わりに正規分布を使えないのはなぜか?

誰からかアイデアはあるか?

ロジスティック分布と正規分布の違いを具体的に見てみよう。グラフがあって、ロジスティック分布プロットをプロットしたとしたら、このような見た目になる。正規分布をプロットしよう。正規分布はこのような見た目になる。

この2つのプロットを見て、なぜロジスティック分布プロットなのか教えてくれるか?

うん。

なぜパフォーマンスが向上すると思うか?

ロジスティック分布のどの性質がそれを可能にすると思うか?

うん。

それは何に変換されるか?

それは中程度や。

分散とは何か?

分散はみんなにとって馴染みのない概念やと思う。分散の部分を無視して、彼が言ってることを定義するとしたら。

分布の中央により多く分散してるというのはある程度正しい。しかし…

ロジスティック分布では、決定境界がここにあるとしたら。

持ってるすべてのデータポイントが分布の両側に位置することになる。

これが分類モデルとして使用するのに非常に実用的になる性質や。ロジスティック分布を使用してプロットする任意のデータポイントについて、すべてのデータが末尾重要になる傾向がある。それが彼らが言うことや。末尾は基本的に分布プロットの端や。データのほとんどがここにとどまる。

この性質が、分類モデルとして使用することを非常に…魅力的にするんや。曲線が山のようなのを見るかもしれない。しかし、なぜ…どのようにしてS曲線に変換されるか?それがシグモイド関数が登場する場所や。

シグモイド関数がどのように見えるかを見る前に、正規分布ではデータ分布の大部分がどこにあるか誰か言えるか?

基本的に中央にある。データのほとんどが中央にある時。

ここに決定境界を引いても、クラスをカテゴリーAかカテゴリーB、または悪性か良性として簡単に分類できない。正規分布のこの性質が、分類のモデルとして使用することを難しくするんや。

この理解で、シグモイド関数がどのように見えるかを見てみよう。シグモイドが基本的にS曲線であることを確立したな。それ以上のものではない。

しかし、その数学的表現は何か?

その前に、明確にするために、紫の線は訓練するロジスティック回帰モデルで、白い線、つまり垂直なものは決定境界や。

数学的定義の方程式はどのように見えるか?これがシグモイドの方程式や。

なぜこのようになってるかと聞かれても。

わからない。このようになることが証明されてるんや。この方程式にシグモイドという名前が付けられてる。それ以外に答えはない。

しかし…どうやって…しかし、ここで何が足りてないか?

1 over 1 plus e to the power of minus Zがある。

しかし…

線形回帰でモデルを訓練するために使用できた、ここにないものは何か?

正確や!重みとバイアスがここでは不足してるんや。WやBが見えないし、入力も見えない、それはXや。

Xとして定義してる入力がここには全く見えない。それをどうやって導入できるか?

Zをその方程式として定義するんや。

君は…つまり、線の方程式を使って、それがZだと言うんや。

数学やから、できるんや。このすべてを行った後、方程式はどのように見えるか?我々のモデル、Y hat of Xは、Zのシグモイドに他ならなくて、ZはWX + Bや。

これは何を達成するか?

分類にシグモイドモデルを使用しようとしてる。これはこのS曲線や。

これは、決定境界を使用してデータをカテゴリーAまたはカテゴリーBのいずれかに分割できると言ってる。これはシグモイドを通して可能や。

そして、導入もしてる…

訓練可能なパラメータ、つまり重みとバイアス、またはここでの傾きやy切片を、この方程式を通して。

すごくない?

これで、境界条件で、カテゴリーAかカテゴリーBに属することをどのように見るか。この0.5を閾値として定義できるんや。これは私たちによって定義される。シグモイド関数や他の関数によって定義されるものではない。決定境界を0.5に設定すると言ってるんや。もし

シグモイド関数からの出力の任意の値、つまりシグマ of Zが0.5以上の場合、クラス1として分類する。

0.5未満の場合、クラス0として分類する。

非常にシンプルや。

これをどのように実装できるか?我々のシグモイド関数はこれやとわかってる。これは…

持ってる線方程式なので、それをシグモイド関数に入れて、分類モデル用の訓練可能なパラメータ化されたシグモイド関数を持つことができる。

モデルを訓練するために、何をもっとすべきか?

その前に、これまでで何か質問はあるか?

ああ。

次に、理論を理解した後、どうやってコードで実装するかを見る。そのハンズオンも行う予定や。

何か質問は?

シグモイドについて何か質問は?またはシグモイド関数で線方程式を使用する理由について何か質問は?

何で?

確かに。

じゃあ、これは君にとって明確か?つまり、プロットがあるとしよう。これは単なる表現で、使用してる一種の特徴があって、その特徴を使って、このデータポイントは悪性、つまり良性で、これらは悪性と言ってる。これは明確か?

単にそれらをプロットしてるだけや。

何をしたいかというと、要件に役立つ、要件に利益をもたらすことができる数学的モデル、または数学的方程式をどのように使用できるかということや。0.5の閾値を設定することに基づいて決定境界を決めることができ、ポイントが悪性か良性かを分類できる定義に適合する最良のモデルは何か?

シグモイド関数がそれに適合するんや。

うん。

それで君の質問に答えられたか、それともまだ不明確か?

よし、クール。わかった、それで…

モデルがどのように見えるかを定義したので、どのようにして訓練するかを見る必要がある。

モデルの訓練には何が必要か?

実際の値と予測値の違いをどのように計算できるかを見る必要がある。

それが、使用するコスト関数を見る場所や。

線形回帰に戻ると、平均二乗誤差を使用したな?ロジスティック回帰にも平均二乗誤差を使用できるか?

平均二乗誤差を選択した場合に何が起こるかを見てみよう。方程式は何か?これが平均二乗誤差の方程式や。

これについて何か質問は?

明確か?

うん? よし。我々のモデル方程式は何か?

これや。

ZはWX + Bに等しい場所。

モデルを訓練するために。

山を下降する、または勾配降下を見ることができるはずや。

モデルが非常に簡単に訓練できるように。それはどのように見えるか?これのように見える。コスト関数が凸関数のように見えることを望んでる。

凸関数が何か知ってるか?

ここにあるものが、これが凸関数や。

これは…放物線のようなもので、二次的な関連がある。放物線を微分すると、このような種類の曲線を得る。

これが定義されている状態で、我々の…

ロジスティック回帰モデル、またはロジスティックモデルが、損失を微分したときにこのような曲線につながるか?

それはどのように見えるか?重みに関して損失を微分する場合、Yは損失があって、そこにある即座の値なので、最初にYに関して微分する必要があり、それから

YをZに関して微分する必要がある。

そして、Zの内部にWX + Bがあって、Wに関して微分してるので、ZをWに関して微分する必要がある。

これを行うと、このような種類の方程式を得る。

これは、コスト関数やグラフ表現が凸になると言ってるか?どのように、損失関数の導関数が凸かどうかを証明できるか?

うん。

ここに二乗がある、もう二乗になってる。

何か…応答はあるか?それについて知ってる人はいるか?わかった、それで…

コスト、もし方程式の導関数、または平均二乗誤差方程式が、Y定義で凸かどうかをどのように決定できるかは、同じ方程式の二階導関数を取ることや。

それと同じくらい簡単や。

すべてのシナリオで。

凸関数であるためには、二階導関数の出力が常に一階導関数の値以上でなければならない。

それは何を意味するか?

これが凸関数定義をどのように定義するかや、つまり、コスト関数が凸であるためには、二階導関数、つまりdel square L by dot W squaredが

すべての可能なWの値に対して0以上でなければならない。同時に、YとY hatの事前に決定された値でこの方程式の例を見ると、これが得られる。

二階導関数が一階導関数よりも小さい場所。

これをグラフや数学ツールにプロットすると、このような種類のグラフを提供する。これは何を意味するか?勾配降下を見てて、WとBの初期…初期化がここにあるとしよう。下降を始めると、ここで立ち往生するやろう。しかし、我々にとって最良の解決策はどこにあるか?ここにある。

この性質のため…

平均二乗誤差では、分類に実際に使用することはできない。

何がうまくいくか?

クロスエントロピー損失を見る。

別の新しい損失や。

クロスエントロピー損失とは何か?

これだけや。

Y hatの負の対数を取ってる。

Y hatの負の対数が…Yが1に等しい場合にこれを損失項として考える。

Yが分類値で、クラス0がある場合、1引くYの負の対数を見る。

なぜYの対数を見てるか?

1の対数は0や。

それが理由や。しかし、これは両方の方程式が分離されてるような方法でまだある。これらの両方をどのように組み合わせることができるかを見る前に、実際に、これらの両方を組み合わせる方法に飛ぶ前に、これらのプロットがどのように見えるかを見てみよう。

これがYの対数のプロットがどのように見えるかや。これが1引くYのプロットがどのように見えるかや。

値が0の場合、1にある。1に行くと、0に向かう傾向がある。同様に、もう一方は、基本的にその鏡や。

両方を組み合わせると、凸関数を与えてくれる。

それが、深層学習分類モデルを訓練するために必要なものや。深層学習にはまだ入ってない、すまん。しかし、これは同じ原理がどこでも適用される。

これをどうやって組み合わせることができるか?誰か考えて…

知らせてくれるか、組み合わせる方法を思いつけるか。

できることは基本的にこれや。

2つの分離された方程式からこれまでの違いは何か?この1引くYにすぎない。

もしY…カテゴリーが1の場合、この項は0になる。

カテゴリーが0の場合、この項は…0になる傾向がある。基本的に、前の方程式を我々の訓練に使用できるような方法で組み合わせたんや。

1つの方程式表現で。

深層学習では、複数のデータポイントがある。1つのデータポイントだけではない。

複数のデータポイントでどのように使用できるか?

総和を加えるだけや。

ここで、やってることは基本的に、すべての可能なポイントについて損失を計算することや。

データセットにn個のポイントがある場合、すべてのn値を取って、すべてのnポイントについて損失を計算する。

その方法で、ここでコスト関数を定義したんや。

このコスト関数を使用して、それは何を導くか?

基本的にこの曲線や。どこから始めても、WとBの初期値がこれに関連してるとしよう、簡単に下降して、凸曲線の最小値に来ることができる。

凸曲線の最小値に来ると、エラーは0ではないかもしれないが、最良の位置にあって、これが最良の汎化可能なモデルやと言えるんや。

これまでで何か質問はあるか?

何か疑問は?

コードでどのように実装するか?

来てる場所はここや。これが損失の定義で、カテゴリーが1の場合はlog Yの負、カテゴリーが0の場合は1引くYのlog負を見てる。

これは基本的に2つの異なるプロットにつながる。

どうやって…数学的にそれを組み合わせて

凸曲線を与えてくれるが、同時に、モデルを訓練するために使用できる1つの方程式を与えてくれる方法はどうか?

再び、それに答えるために、見てみよう…よし、これを取るだけや。以前に2つのクラスがあった。Y = 0とY = 1がある。

ここに行くと、yが0に等しい場合何が起こるか?

どの項が機能するか?

基本的に、このY into log Yは0になる。これを見てる。

これが1や。Yが0に等しい場合、それは1引くY、log of 1引くY曲線にすぎない。1引くY曲線はこのような感じや。

そして、yが1に等しい場合何が起こるか?

右側の項が0になる。

このような曲線になる。基本的に、両方を1つの方程式に組み合わせたんや。

それがこれですべてや。それと同じくらい簡単や。

うん。

マイナスは、コストを削減しようとしてる。

このような曲線を下りたい。

我々の重みにコスト値を加えてるなら。

重みからコストを引いてたら…勾配降下に戻ろう…

ここで引いてる、でも…加算の方がより簡単な操作やったら、

その理由でそのマイナスが必要なんや。引き算を加算に変えるなら、そこにマイナスは必要ない。

それだけや。つまり、コストが高い場合、重みやバイアスの値を減らし、コスト値が低い場合、それほど変更しないようにする。それがマイナスを加える理由や。

うん。

ここで他に質問はあるか?

なければ、実装を見てみよう…うん。

なぜ開いてない…ロード。

これは二項分類には十分良い。焦点損失は異なる観点を持ってるので、焦点損失について知らない人がいても心配しないで、このセッションではあまり重要じゃない。しかし、焦点損失を見るとき、焦点損失を見る理由は全く異なる。

クラス不均衡があるときに焦点損失を見る。つまり、カテゴリー0に多くのデータポイントがあり、カテゴリー1に非常に限られた数のデータポイントがある場合、それが焦点損失を見るときや。しかし、分類が適切に機能することを確認するために、焦点損失をクロスエントロピー損失に追加する。

それがそれの機能や。

しかし、機能の…焦点損失を使う理由は全く異なる。

それで君の質問に答えられたか?

よし。

わかった、コーディングに入ろう。

これが行うことや。ノートブックへのアクセスを与える。

ノートブックからの内容をコピーして、君たちのColabノートブックに貼り付けてほしい。そうすることで、どのように…コードを見て行き、それがどのように実際に動作するかを見ることができる、つまり…

それともタイプしたい?みんなは何を好む?

よし。

君たち全員Zoomにいるか?

よし。

これがみんなにとってうまくいくかどうか教えてくれるか?

Zoomの人たちには、チャットでそれを共有する。

うまくいくか?うん?

みんなが持ったら親指を立ててくれるか?または、実際に、これができる。

これが誰かにとってうまくいかない場合、我々のウェブサイトに行けば、そこにもノートブックを追加してるので、そこからも取得できる。

そのリンクは…

うん。

ここに表示されてる。誰もアクセスできない場合は、ここに行ってコードを取得できる。

わかった、テキストは無視していい、後で読むことができる。

今見てる目標は線形回帰をどのように実装できるかや。直接それに飛び込もう。

最初のステップとして、これらすべてのインポートをコピーして、Colabノートブックに貼り付けて実行できるようにしてくれ。

これが完了したら、癌データの読み込みを見てみよう。

これが読み込み方で、このデータセットの詳細を見たい場合は、cancerdata.descriptionを見ることができる。DACRは説明に他ならない。説明を見ると、複数の属性情報がある。これらの属性とは何か?これらは、モデルを訓練するために使用したい特徴にすぎない。検出しようとしてることは基本的に腫瘍が癌性かどうかや。

そのために、このデータセットは異なる方法があると思う。

ターゲットを取得する方法。ターゲットは腫瘍が癌性かどうかを持ってるだけで、0か1のどちらかで、後で見ていく。

データセットを読み込んで、そこにあるすべてのデータを見て、それを特徴に読み込む。そして、データが…どれが…

基本的に癌性かどうかを言うターゲットを取得する。そして、1つの特徴から始めたいので、以下を見る。

悪性か良性かを決定するために使用できる最良の特徴。そのために、相関と呼ばれるものを見る。相関は何をするかというと、特徴をそれ自体と関連付ける種類のことや。

もし…これを実行し始めよう…

相関を見ると…

うん。

これが相関がどのように見えるかや。ここで最悪の実行カテゴリーは何かを見る。最悪のパラメータを見る。

それを使って、モデルの訓練を見る。その特定の特徴をどのように抽出できるか?リスト、内包表記を使って呼び出すだけで、列の名前を述べて、そのデータを取得し、Xに読み込む。

そして再びターゲットを取得し、Yに読み込む。Y、X、Y?それがずっと方程式を定義するために使用してる変数や。それを見ると、これがどのように…

プロットは…x軸に沿った値1に1つのカテゴリーがあり、0に沿った別のカテゴリーが0にある。別の特徴も見てみよう。

平均凹点を取ろう。

これは異なる表現を持ってる。このデータすべての表現は、個別に見るとかなり似てるが、すべてのデータを一緒に考慮するとしたら、len of dataを実行してみよう。

関数じゃない。

うん、31の特徴がある。今、ターゲットと一つの特徴だけを考慮すると、2Dプロットを見てる。

すべての31の特徴をターゲットと、または30の特徴をターゲットと考慮するなら、31次元プロットを見てることになり、それは実際にプロットできないので、ここでは1つの特徴だけで始めてる。

持ってた実際の値、つまり最悪のパラメータに戻ろう。

モデルが機能するかどうかをテストするために、データをtrainとtestに分割する必要がある。それがここでやってることや。

検証への分割は見てない。なぜなら

Kaggleのような競技や、データの束を与えて彼らがいくらかを保持してる顧客を見てるときに行われることやからや。モデルがうまく機能してることを確認するために、trainとtestに分割し、彼らが検証データを持つことになる。

trainとtestだけを見てる。値を正規化するために、それらをスケーリングしてるだけや。

バイアスを追加する必要がある。ここにあるのはWだけや。B項を追加するために、X train biasとX test biasをここに追加してるだけや。

それが完了すると。

xtraneの形状の合計値を取得する。

基本的に455の値がある。シグモイドの理論は、再び、話し合ったこれと似てる。これをどのように実装するか?

学習率を見てる。学習率とは何か、これは訓練したいときのアルファで、つまり、我々のステップがどのくらい小さくあるべきか、凸、曲線を下降するためにどのくらい小さなステップを取るべきかや。そして反復は、取りたいステップの総数は何かや。重みは単にW、

項で、損失がどのように減少してるかを追跡したい。そのために、ここにリストがある。

シグモイド関数を定義することから始める。これがそれや。

データを訓練したい。最初に行うことは、Xからすべてのサンプルとすべての特徴を取得することや。

そしてそれらを重み列に変換する。これが持ってるものは…

基本的に、この値自体、つまり455, 2を見ると、これは455の値を一緒に持つことになる。

そしてそれを線形方程式で訓練したい。WX + Pもシグモイド関数に追加されたい。それがこの線形モデルがやってることや。

重みとの入力を計算してる。そして後でバイアスを追加してる。

ここでの重みが示すことは、それらの1つが特徴列で、もう1つがバイアス列やということや。

それは明確か?ここで何か質問は?

わかった、それで…

両方の値がそこで定義されていて、内積を計算する。先週やったことは、これらすべてをPython的な方法で定義しようとしたことやった。今日やろうとしてることは、関数として定義することから、よりクラスに向かって移動することや。なぜなら、それが後でも実装を始める方法やからや。

それが完了すると、線形モデルを見てる。

WX + Bが定義されて、それをシグモイド関数に渡して、予測値を得る。

渡すXの任意の値で、各…Xの各値に対して、出力としてYの値を取得する。それがY predictedに配列として格納される。次に行うことは勾配を計算することや。そのために、勾配降下、つまりコスト関数定義を見てる。

コストを計算するために、どのように微分を行うかを理解する必要がある。これがシグモイド関数の微分や。

シグモイド関数の微分はsigma of X into 1 minus sigma of Xや。

それと同じくらい簡単や。そこで、それをコスト関数で使用し、計算されたコストをコスト履歴に追加する。

それが完了すると、訓練プロセスを開始し、予測を見る。この全体のセルがカバーしてるのは…

ロジスティック回帰の構築や。

このコードの機能について何か質問はあるか?みんなコードを理解したか?

どこでそれを見るか?

ああ、うん。内積を行うときはいつでも、内積はどのように動作するか?

うん、それは行列の掛け算や。ここでのXは何か?455 cross 2や。ここでのYは何か?

それも455 cross 2や。

または455 cross 1や。

やりたいことは、Xを2,1になるように反転させることや。重みに1つの値、バイアスに1つの値や。

うん。

はい。

うん。

ここで他に質問はあるか?

わかった、実行してみよう。

どのように傾向があるかを見てみよう。かなり速い。

ここでコストを見ると、0.3から始まって、ずっと0.2まで下がってる。

なぜこれが起こってるか?学習率が0.1やとしよう。それを1にしたら何が起こるか?

うん。

0.2…0.282から始まって、0.2025まで下がった。0.20、うん。

これは何を言ってるか?

モデルが訓練してるかどうかを知るために、小さなステップを取る方が良い場合がある。ここで2を取ったら、モデルが訓練してることすら見えないかもしれん。

モデルが訓練してるかどうかをどうやって知るか?学習率を変えることやな。学習率は制御できるハイパーパラメータで、よし、0.1か0.2、または何であれ値にしようと言って、その値を学習率に割り当てて、モデルを訓練できる。

それが完了したら、精度を見てみよう。うん。

ここで0.1で…

もし0.1でのコスト値の数字を見ると、それは0で始まる。

初期コストとして3である。それは何を言ってるか?

S線を覚えてるやろ?

XSが超拡張されてて、SがSのようには見えないけど、このような直線のようなものやと想像してくれ。

そして線がこのように行って、それからこのようになる。

それがシグモイド関数の初期状態になる。やろうとしてることは、どうやってより近づけることができるか?決定境界と2つの側面の間の分離がはるかに近くにあることをどうやって確認できるか?

曲線があまりにも大きいと、どこかに決定境界をプロットすると、いくつかのポイントが一方の側にあるかもしれんし、いくつかのポイントが他方の側にあるかもしれん、つまり…

コンパクトにするのではなく、それが起こってるかどうかを見るために。

どのように見えるかを正確に見せる。

ああ、持ってない。

これを見ると…

初期状態では、線はこのようなものになる。

確実にしたいのは…この線上にすべてのポイントがあって、ここに存在する曲線に関連する場所にはないことを望んでる。

これを拡張すると何が起こるかというと、これらのポイントの一部はそこのシグモイド曲線の一部ではない。

これは基本的に、そこにあるこのプロットが非常に幅が広いことを意味する。

可能な限り狭くしたい。

しかし、それが行ってるかどうかを見るために…つまり、よし、これが訓練がこのロジスティック分布の幅にどのように影響するかやけど、見ようとしてることは具体的にはこれや。

WとBの初期値から始めるとしたら、それが最良の位置にあるかどうかをどうやって知るか?

値が減少してることを確認したい。

本当に高い学習率があると、この変化を見ないかもしれん。

または起こる可能性があるのは、つまり…

コストが増加するかもしれん。最初は0.3やったが、0.6や1まで上がるかもしれん。そういうシナリオも可能や。

凸曲線がどれくらい狭いか広いかによって。これがこのようになってて…

学習率が0.1やったとしよう。左側で一歩下がった。

0.5やったとしたら、起こった可能性があることは、はるかに大きな力を与えてる…はるかに大きなステップを取ることを許可してる。小さなステップを取る代わりに、巨大なステップを取って、反対側に終わるかもしれん。

まだ低いとしても、起こる可能性があるのは、その大きなステップでここで振動するだけで、凸曲線の可能な最小の最小値にすら到達しないかもしれんということや。

小さな学習率があると、小さなステップを取ることを確認してる。時間はかかるが。

最終的に、最小値に到達する。

時間がかかりすぎる、それだけや。

いくつかの問題では、それをする必要があるかもしれん。いくつかの問題では、1の学習率でさえうまくいくかもしれん。

つまり、君の…0.000001の学習率は、凸曲線がこのような見た目の場合にうまくいくかもしれん…

これら2つの端…端がほとんど互いに接触してると想像してくれ。その時点で、そのような小さな学習を使用する必要があるかもしれん。1や2がうまくいくかもしれん。これらの終点がスライド、つまり、スライド全体に広がってると想像してくれ。

巨大なステップを取っても、まだ同じ側にいて、それでも下に行ってる。

モデルを訓練した後、予測を見てる。予測は何をするかというと、基本的に、すべてのテストX値を訓練されたモデルを通して渡すことや。訓練されたモデルは何を持ってるか?訓練された重み、訓練されたバイアスを持ってる。

そして、すべてのX値をそれに渡して、X testのすべての値について個別の予測を得る。X testのすべての値を得た後、すべてを加算する。つまり、加算する前に、実際の値と比較する。

各予測…各テストXの各予測値を、それらが同じかどうかYの実際の値と比較する。同じ場合、1としてマークする。そうでなければ、0としてマークする。

それが完了すると、これらの比較をすべて一緒に加算して、テストデータセットが約100のデータポイントを持ってたとしたら、そのうち約90が予測と真実、つまり実際の値の間で正しく分類されたかを見る。

モデルは90%正確やと言う。

10のポイントを正しく分類しなかったからや。

予測されたYの値、つまりY hatは、0か1のいずれかになることができる。同様に、真実値や実際のY値も0か1になることができる。基本的にこれらの値を比較してるんや。

この比較が実際にどのように見えるか?可視化してみよう、それに飛ぶ前でさえ、訓練プロットが具体的にどのように見えるかを見てみよう。

これが訓練されたモデルがどのように見えるかや。そこで見るすべての青い点は訓練データを表し、すべての緑の点はテストデータを表し、赤い線はロジスティック回帰モデルで、直線は決定境界や。

ここで、他の側に横たわってるいくつかの点を見る、カテゴリー1、そしてカテゴリー0についても。

これらの値が君の精度を下げるものや。これらの値も可能な限り最大限に考慮されることを確認したい。時にはまったく不可能かもしれんが、それは問題ない。

やろうとしてることは、確実にすることや、我々は…我々は…

カテゴリー1のすべてのポイントが訓練セットでカテゴリー1として分類され、新しいデータポイントが入ってきたときに、それが1か0かを正しく言えない。

私が今言ったことを理解する前に、データセット内のすべての30の特徴を考慮した場合に何が起こるかも見てみよう。

すべてのデータセットを読み込んでる、これを実行していく。

ここで、コストの違いも減少してるのを見る。0.1から始まって、ずっと0.06まで下がる。そして予測を見る。ここで、精度は1つの特徴だけを考慮するよりもはるかに良い。

1つの特徴での精度は96%やったが、ここでは98%にいる。

再び、どのように見えるかを可視化してみよう。

そして訓練曲線、つまりコストがどのように…これがコストがどのように減少したかや。ゼロまで行ってない。

それは意味する、つまり、まだある…

100%と98%の違い、つまり約1.25%が残ってた。これが、訓練されてないか、つまり、それらの値を考慮してない値を表すコストや。

基本的に言ってることは、このコストがそれらの外れ値によって影響されるということや。

次のプロットはこの混同行列や。混同行列が何をするかというと、良性と悪性という真実があって、悪性と良性の予測ラベルがある。

この行列が言うことは、真のカテゴリーが良性やった場合、真のカテゴリーのうち何個が悪性として分類されたか?

そして何個が良性として正しく分類されたか?

悪性の場合についても同様で、真のカテゴリーが悪性やった場合、そのうち何個が実際に悪性として分類されたが、何個が良性として誤分類されたか?

これによって、モデルがどのようにうまく実行してるかの全体像を得ることができる。

これらのアウトラインがあるシナリオに戻って…時に我々がしたいことは、つまり、モデルが訓練データで本当によく訓練されてない、精度が70%やとしよう。

もっと訓練して、85%の精度に行く。

しかし、テストすると、精度は約60%になる。

そのようなシナリオでは、具体的に何が起こってるかというと、

そこにあるこのモデルは、ずっと…最後の青い点まで行って、ここに来て、それから戻る。決定境界自体がそこで欠陥がある。

つまり、曲線、シグモイド曲線がこのように見える、これはSで、我々が探してる種類の曲線ではない。悪性と良性の間の明確な分離を望んでる。そのようなケースをどのように見るか?

次の、部分に入る前に、コードで何か質問がある人はいるか?うん。

イーサン?

bi-predictateが0と1に近づくとき、それをどう扱うか?

ああ…もしY…Yの予測値が0と1の範囲にある場合、

覚えてるやろ、なぜ、

うん、0と1の範囲にある。しかし、より深く見ると、直線の方程式を使ってる。

そこでやってることは、0.5の設定してる閾値に関係なく、方程式で値が0.5より大きい場合、カテゴリー1として分類される。0.5未満の場合、カテゴリー0として分類する。

ロジスティック回帰の出力は連続や。なぜか?線形方程式をベースとして使用してるからで、そこで重みとバイアスを考慮したかったからで、それらが訓練可能なパラメータや。

しかし、直線を使用してるので、得られる出力は…

連続や。それがロジスティック回帰とも呼ばれる理由や。

しかし、出力…Y = …またはZ = WX + Bのこの出力を、値を0と1の間に押し込むシグモイド関数を通して渡してる。

値を0と1の間に押し込むとき、0.5で定義された決定境界で、0.5未満は何でもカテゴリー0で、0.5より大きいものは何でもカテゴリー1やと言える。

それを扱うとはどういう意味や?

ありがとう、相棒。

ああ、私は、理解できない。

0または1。それらには何らかの優先順位があるか、0に無視できる。

しかし、その中で、潜在的価値で安定性を作ってるので、どうやってその価値を分析できるか。

それは…ああ、よし、スライドに戻ろう。

これがモデルをどのように定義してるかや。

見てる…これがシグモイド関数で、線形方程式を通して訓練可能なパラメータを提供してる。

それは明確か?その部分は明確か?よし。やってることは、この値をここに接続することや。

これをただ使うと、線形回帰のような出力を与える、つまり直線になる。

どこからどこまでの範囲にもなりうる。

線形回帰の観点から、その部分は明確か?これを念頭に置いて、S種の曲線を得るために、シグモイド関数を通して渡すんや。

それが基本的にやることは、対数スケールで0と1の間のすべての値を押し潰すことや。

値がマイナス無限大からプラス無限大の間やった場合、シグモイドを通してそれらの値を渡すと、それらの値は0と1の間に押し潰される。

これらの値は…閾値に応じて分類するために使用される。これらの値はまだ連続やからや。だから閾値を設定してるんや。

もし…このシグモイド関数の予測が…0以上やったとしよう。

51なら、

まだカテゴリー1やと言ってる。

0.49なら、カテゴリー0やと言ってる。

それが線形回帰の内部的な制限や。

それで君の質問に答えられたか?

うん。

他にもっと質問がある前に、レートに戻ろうか?

わかった。それで…

先ほど話してた通り、モデルを過剰に訓練する可能性のあるシナリオ、またはモデルを不十分に訓練する可能性のあるシナリオを見てる。

モデルを過剰に訓練したか、または不十分に訓練したかをどのように決定するか?

この現象は、未学習または過学習と呼ばれる。線形スケールで持ってた癌プロットを仮定してみよう。それを見てたところや。

側面図から。それをトップビューから見ると想像してくれ。

どのように見えるか?再び、データ分布のように見える。このように見える。

すべてのオレンジの点が…

クラス0で、すべての緑の点がクラス1や。

サイドビューにあったものを、ただ傾けて、トップビューから見てるんや。

モデルを訓練してて、モデルが訓練されたかどうかを見たい段階にいるとしよう。

何をするか?何に基づいて値が良いかどうかを決める?決定境界や。決定境界をプロットする。

この決定境界を見ると、まだ改善の余地があることがわかる。このように行くことができる。そうすれば…

緑の点がオレンジのサイトの一部でも、オレンジの点が緑の側の一部でもない。

もう少し訓練して、この決定境界を達成するとしよう。

ここで我々は…汎化したが、一つの点がまだ…

正しく分類されてない。そこで、もっと訓練する。

そして、このようなものを達成する。

これはデータ上で素晴らしいモデルや。

しかし今。

訓練データが完了した後の次の種類のデータは何か?

テストデータで始める。

モデルがどれほど汎化可能かどうかは、テストデータによって決定される。なぜなら、訓練データの正確なラベルがわかってて、訓練データで100%の精度を達成するためにモデルを訓練し続けることができるからや。

しかし、それをすると。

以前に見たことのないデータポイントで実行できるかどうかをどのように決定するか?

それがこれらすべてのテストデータが登場する場所や。

テストデータを見ても、最初の左端のプロットを見ると、一部のテストポイントがまだ緑の側にある。

テストデータ側では、カテゴリー化は青い点がクラス0で、これはオレンジの点と同じクラスに属し、紫の点は緑の点と同じクラスや。

それは明確か?最初のプロットを見ると。

まだ青い点の一部が緑の側にあって、紫の点の一部がオレンジの側にあるのを見る。

次のを見ると、かなり良い、ただ一つのポイントがあるだけや。

この…

本当によく汎化してるかなり良いシナリオやが、少しの不一致があるが、それは問題ない。

それは99%の精度を支払う。次に、訓練データで100%の精度を目指すと、より汎化が減少することにつながり、緑のテストサンプルの一部がオレンジ、またはオレンジの側の一部になってるのを見る。

何が…

見てる3つのタイプのプロット、またはこれらをどのように定義するか?モデルが十分に訓練されてない場合に言う。

そしてテストデータ…またはテスト精度は低いが、訓練精度も低い。訓練点…訓練プロットは…訓練点も他のサイトにあるが、テスト点も両側にもある。

それを未学習と呼ぶ。

次のは、訓練とテストポイントの両方が正しく分散してるが、いくらかの不一致があり、それは受け入れ可能や。それをバランスの取れた幅と呼ぶ。

別のを見ると、すべての訓練データが100%正確やが、テストデータが本当に悪く実行してる場合、それを過学習と呼ぶ。

これらをどのように避けることができるか?未学習はかなりわかりやすい。訓練を続けると、バランスの取れた重みに到達する。

しかし、モデルが過学習しないことをどのように確認するか?

それを見るために、正則化と呼ばれるものがある。

正則化とは何か?これらすべての決定境界はどのように形成されてるか?

コスト関数に基づいて?

コスト関数がモデルがどのように見えるべきかを決定してるので、コードに戻ると。

この赤い線のプロット。

WとBのパラメータをどれだけ訓練したか、そしてどれだけ…どれだけ変更したかによって決定される。

そして、このパラメータ変更はどのように起こってるか?コスト関数を通して。

正則化では、コスト関数に別の項を追加するんや。これが元のコスト関数や。コスト関数にペナルティを追加して、損失が100%、損失が可能な限り最大限に減少しないことを確認しない。

そしてそれはどのように見えるか?

このように。損失関数を取って、ペナルティを追加する。

ペナルティが二乗の場合、L2正則化またはリッジ正則化と呼ばれる。

それは何を意味するか?

それは言う…

非常に大きい重みを罰するんや。すべてのWとBも値を持ってる。0から1、またはマイナス2から2、またはマイナス4から4の範囲にある可能性がある。

そして、すべての特徴を見ると30の異なる値があるとしたら。

Wの値の一部は…Wの値の一部は本当に大きいかもしれん。この正則化はそれらの項を罰する。

なぜか?損失がそれらの値を引いてるが、ここでその罰を損失項に戻って加えてるからや。

同様に、ラッソとも呼ばれるL1と呼ばれる別の正則化もあり、絶対値を追加する。

これは何をするか?

それは確実に…それは…

基本的に、重要でない特徴、何の効果もない特徴を作る。

モデルの訓練に、それらの重み値をゼロにする。

そうやってる。その方法で、重要でない重みがモデルがどのように訓練されるかに影響してない。

これがコードでどのように変換されるかを正確に観察してみよう。コードに戻ると。

実装した…このコードの詳細には入らない。何か質問があれば、後で私に連絡してもらえれば、手助けする。しかし。

どのように正確に影響するかを見るだけ…それを見てみよう。

今、訓練されたモデルがある。

そして…どの正則化を追加したか?正則化をどこに追加したか?

ここや。コストを計算してから、L2やL1を追加してる。

そして下で、ここでL2モデルを訓練してる…定義してて、同様に、ここでL1モデルを訓練してる。

訓練されたら、どのように正確に…それは…このすべての影響が重みで起こってるかを見ると。これらのモデルの重み。すべての30特徴の重みを見ると。

正則化されてない場合、重み値がかなり高いのをまだ見る。

リッジの場合、重み値は少し低い。

しかし、ラッソの場合、重み値は本当に低い。

なぜか?話し合った通り、重み損失は重要でない重みをゼロに押し込む。

ラッソだけ、L2は本当に大きい重みを罰するだけや。

その訓練プロセスで、そのような変動を見る。これが何をするかというと、それは…

モデルの過学習の可能性を劇的に減少させる。

そして…これまでで何か質問は?

正則化が理解されたので。

2つのクラスだけを持つデータセットを見てた、つまり悪性または良性や。

2つ以上のクラスがある場合、どのようにモデルを訓練するか?

シグモイドを使えるか?

なぜ使えない?シグモイドを使えないのはなぜか?

複数の閾値…複数の閾値はどのように機能するか?

しかし、ロジスティック回帰、またはロジスティック分布のプロットを見ると。

ここの赤い線。

ポイントを見ることができる2つの…エリアだけがある。3番目のポイントをどのように追加できるか?

変更する必要がある…基本的に移動する必要がある

シグモイド関数から、これは基本的に、累積分布関数や。シグモイドは何をするか?ロジスティック分布を取って、それを0または1に入れる。それがシグモイドがやってることすべてや。しかし、それから外に移動したい場合、確率的分布のようなものを考慮する必要がある。

確率の観点で予測を得る必要がある。確率とは何を意味するか?3つのカテゴリーがあるとしよう。

クラスA、クラスB、クラスCがあって、モデルが入力データXが70%クラスA、20%クラスB、そして30%、つまり10%クラスCやと予測してると言ってる。

すべての予測値を加算すると、予測値は100%に加算される。これはどのように見えるか?

それを可視化してみよう。Iris Flower Datasetと呼ばれるデータセットがある。それを見ると、3つの異なるタイプのアイリスの花がある。

これらがそれらの名前やが、私に発音させないでくれ。

これをどのように訓練するか?

ソフトマックスと呼ばれる確率的分布関数に行く。

ソフトマックスは何をするか?各

入力、または各入力サンプルについて。

そこにあるすべてのカテゴリーについての予測は何か?それらすべてを加算して、予測スコアは何か?これは何を意味するか?

この例を取ろう。今のところ総和関数を無視して、後で戻ってこよう。このサンプルを取ろう。前のスライドに戻ると。

これはカテゴリー1、つまりこれや。

ここに行くと…

やることは、このデータ、この画像のすべての特徴データ、またはExcelの特徴が何であれ、

モデルを通して渡して、これら3つのカテゴリー間の確率分布を与えてくれと言う。やることは、それらすべてについて出力スコアを与えて、最初のカテゴリーにスコア7を与えてると確信してる。

そして2番目のカテゴリーにスコア2、3番目のカテゴリーにスコア1。

これで十分かもしれんが…

いくつかの応答は、最初のカテゴリーがスコア

3やということかもしれん。2番目のカテゴリーがスコア3、3番目のカテゴリーがスコア4。どれが正しいクラスかをどのように決定するか?これらすべてをシグモイドを通して渡す。

シグモイド関数は何をするか?

これら3つの値を考慮して…計算して、それらをシグモイド関数に接続すると、最初のカテゴリーについて、Eパワーナナをやる、

E power 7をE power 7 + e power 2 + e power 1の総和で割る。

そしてそれはスコア…0.99のスコアを与える。

カテゴリー2については、E power 2を…E power 7 + E power 2 + E power 1の総和で割る。

そしてそれはこのスコアを与える。そして同様に最後のについても、これがスコアになる。

目標は、この確率分布を1に合計できるかということや?

それが多クラス分類の全体的な原理や。

2つのクラスがある場合、シグモイド関数を見る。

2つ以上のクラスがある場合、ソフトマックス関数を見る。

なぜか?シグモイドは処理できない、ロジスティック分布は2つ以上のディストラ…2つの分離を処理できない。

または2つの値の間の単一の分離。

これもコード化するなら、それはすでにノートブックにある。

アイリスデータを読み込んで、クラスの定義はロジスティック回帰をやった方法にかなり似てる。X、Y、Zがどうあるべきかを定義してて、シグモイド関数を通してどのように渡すか。

確率スコアを得て、それから微分、または…

すまん、シグモイドじゃない、間違った。

ソフトマックス関数の微分を計算して、

ソフトマックス関数の微分、そしてそれに基づいてコストを計算して、予測を見る。

そして…

これは本当に小さなデータセットやから、100%の精度を見てる。そして…

異なるクラスの混同行列はこのようなものになる。

よし?

線形回帰モデルをどのように正確に訓練したかから始まって、ずっと

ロジスティック関数を見る必要がある理由まで来た。

そして、ロジスティック関数を訓練可能にするために、どのようにパラメータを追加するか?そしてそれを理解したら、分類がどのように機能するかの景観をつかんだ。

そしてそれをしたら、多クラス分類に来た。

これが…機械学習における分類の全体や。

何か質問、何か疑問、何か懸念、何かあるか?

Zoomからも何か質問はあるか?

クール。わかった、やることは、今日参加してくれたみんなに簡単なフィードバックフォームを共有することや。

セッションをどのようにやってるかを改善したいから、みんなから改善できるようにフィードバックを聞きたい。時間を取ってくれ。5から10分しかかからない。時間を取って、そのフィードバックフォームを記入してくれ。そして、シッダールト、我々は…

シド?

それを言うか?

我々は大丈夫か?

よし、今夕食のために休憩できると思う。

何か質問がある人がいたら、ここにいるし、喜んで答えるで。

コメント

タイトルとURLをコピーしました