サルなら分かる人工知能・機械学習④ 完結編

第一弾はこちら(顔の細長さで資産家を探すマチコ)。
第二弾はこちら(マチコの舞台裏・Gradient Descent)。
第三弾はこちら(ウーパールーパー探知機・Logistic Regression)

このブログ記事は、機械学習という流行り言葉を

  1. 用語を勝手にメルヘンな名前に呼び変え
  2. なんに使うんだよボケ?を意識し
  3. なんでそうなるんだよカス?(数学的背景)をなんとか頑張って整理する

営みで御座います。

 

ご意見・ご質問、また結婚を前提とした交際の依頼(重婚となりますことご了承下さい)は、ryosuke.yamawaki(at)berkeley.eduまでお願いします。

 

***

今回は昨今世間のニュースを騒がせているキーワード、ディープラーニング・ニューラルネットワークについて説明したい。

 

本論に行く前に、おさらいの意味も込めて機械学習に関連するキーワードの関係性を図示してみた。前にも述べた通り、ビッグデータは食材、機械学習は調理法と言える。結果として出てくるもの(料理)は何かを予測するモデル、すなわち、何かヒントを与えると答えを教えてくれるというものだ(犬か猫かを判断する画像認識も、囲碁の手を考えるAlphaGoも突き詰めれば予測だ)。

 

与えられたデータから最も予測の「間違い」の少ないモデルを作るプロセス、それが機械学習である。そのモデルの中身がなんなのか?は人間が教えるのではなく(複雑な事象になるほど数式化して把握することなど人間にはそもそも不可能になる)、機械が自ら見出していく。「機械」が「学習」するから機械学習と呼ばれるわけだ。どうやって最小になるモデルを探すの?というのは、こちらでも述べた通り、Gradient Descentをはじめとして、数学的な方法論が既に確立されているのでそれを使えば良いだけ。エクセルで言うと、ソルバーファンクションのようなもんだ。y=a+bxを最小にするようなbを探せ、的な。そもそも「間違い」ってなんなの?というのはこちらを見て頂ければ分かるだろう。

 

機械学習を繰り返していくと、与えられたデータに対してはかなり精度の高い(間違いの少ない)予測モデルが完成する。

 

こうして出来上がった予測モデルは学習に使っていない未知のものでもきちんと効果を発揮してそれなりの予測精度(間違いの少なさ)を見せてくれるはずだ(以下数字は全て適当)。

きちんと機械学習を終えた予測モデルは、めっちゃ役に立つ仕事をしてくれる。例えば、ガン患者とそうでない人の画像を大量に使って学習させた予測モデルは、新しい患者の画像を見せれば「ガンか否か」を判断してくれるはずだ(実際に実用化されつつある)。もっと卑近な例を考えてみれば、どこのスーパーで買うと一番野菜が安いかを予測してくれるモデルがあったらどうだろうか(曜日、天候、インターネット上の市場情報を考慮)。さらに冷蔵庫と連携して、既に消費した食材のデータから「今日は何の料理がおすすめか」を栄養面からアドバイスしてくれたらどうか。

 

「最近、油モノが多いですね。もう既に豚のようにパンパンで今にも床に転がりそうですから、ビタミン摂取が必要ですね。今日はレモンの丸かじりでもしておいたらどうでしょうか?」

 

しかし、こういった複雑な事象の予測をするには、さすがにhθ(x) = θ0 + θ(x)みたいな単純なモデルでは全然予測仕切れない。マチコには申し訳ないが、保有資産額に影響を与える要素は数えきれない程あり、顔の細さは実際にはミジンコのうんこ程にも役には立たないだろう。

 

では、色々な要素が絡まって発生する事象はどのように予測すれば良いのか?

 

一つの手段は「手がかり」を増やす、である。保有資産額の予測に、もっと出身地とか、身長とか、最終学歴とか、まぁなんでも良いが関係ありそうなものを沢山つけるのだ(しかし、関係ないものをいれると精度は下がる)。

 

もう一つの手は、同じ「手がかり」でも、予測モデル内でのその計算方法を工夫するというものだ。hθ(x) = x+ x^2 + x^3 + x^4・・・という風に複雑な数式にする。そうすると、単なる直線ではない、複雑な関係性を捉えたモデルが描ける(が、これは計算能力を莫大に消費するので処理がすごく遅くなるのと、やりすぎると与えられたデータセットにしか適応出来ない「過学習」という問題が起こる。いわば問題集をただ暗記しただけで、実際の試験が解けないバカになるということだ)。

 

もう一つ有効な手段がある。hθ(x)をそのまま予測に使うのではなく、それを材料として、もう一度何等かの形で加工して予測をしてみたらどうだろうか?材料となるhθ(x)を複数用意し、データを中間加工した上で、さらに数式で加工を行って予測を行う。

これが世間でディープラーニング(深層学習)と呼ばれるものだ。どういうことなのか、まずはとりあえず図示してみよう。

 

なんじゃこらという人もいるかもしれない。分かりやすいように、これまでの予測モデルと並べてみよう。

 

ちょっと分かりやすくなっただろうか?今までの予測モデルは、単純に「手がかり」から一発で答えが出るものであったのに対し、ディープラーニングでは、一旦「a1~a2」とかいうわけ分からんのを間に挟んでいる。この「間に挟む」作業こそがディープラーニングの要諦だ。上でも述べた通り、これによって、たとえ同じ「手がかり」の数であっても、より複雑な事象に対して、より精度高い予測をすることが可能になるのだ。(なんで複雑な事象に対する予測が出来るの?に対する簡単な答えは、もしも要望があれば説明します。)

 

では、ディープラーニングで構築されたモデルをいつものように「機械学習」させるにはどうすれば良いのか?

答えは簡単。「同じ」なのである。

「間違い」を計算させて(「間違い」の定義はこちらから)、それを最小化させるようなθを探せば良い。少し注意が必要なのは、a1~a4とあるものは一つ一つがいわば、別個の予測モデルと言えるので、それぞれが違ったθの値を持っている。最小化をするためにはすべてのθを変更していく必要がある。尚、ディープラーニングでそれをやるには、Forward propagationとBack propagationという作業が必要になるがあまりに細かい話になるので飛ばす。

 

最後に似たような言葉の整理をしたい。上の図で出したディープラーニングの例は、正確に言うとニューラルネットワークである。もっと細かく言えば、パーセプトロンと呼ばれるモデルの形式である(「ウーパールーパー探知機」(logistic regression)と同じように、モデルの種類に名前がついている。

何が違いを分けているのかというと、「a1~a4」と書いたオレンジ色のキン●玉の層の数だ。キン●玉自体の数ではなく、それが何層あるのかで名前が変わっていく。ニューラルネットワークはもっと広義な言葉で、「手がかり」と「知りたいこと」に層が分かれて言うものをすべからくそう呼ぶ(が、「ウーパールーパー探知機」等単純なモデルと区別する為、普通は3層以上を指すはず)。

 

ごちゃごちゃしてきたので、関係を図示してみよう。

 

いわばこういうことだ。

 

***

さて、ここで最後のまとめをしたい。

  • 「アタックNo.1」(機械学習)は、ビッグデータを使って、「間違い」(Cost function)が最も少ない「良い感じにチューニングさん」(parameters: θ)を発見する営みだ

 

 

  • 「良い感じにチューニングさん」を発見すると、「手がかり」(Independent variable)から「知りたいこと」を教えてくれる予測モデルが出来る

 

  • 「良い感じにチューニングさん」は「ちょっとずつ直そうぜ」(Gradient Descent)等の数学的手法を使うと算出できる

 

  • 数値化できない「知りたいこと」(Aか否か)は「ウーパールーパー探知機」(Logistic Regression)を使うと上手くいく

 

  • 「ウーパールーパー探知機」では予測しきれない複雑な事象は、予測モデルをミルフィーユして作る「スーパーサイヤ人3」(ディープラーニング)を使うと上手くいく(事例:CT画像から悪性がんの有無を判別する)

 

以上です。大変長くなりましたが、いかがでしたでしょうか?ここまでの知識があればきっとニュースで飛び込んでくる奇怪な専門用語達も全くもってメルヘンに見えるはずです。

とりあえずこのくらいで終わりにしますが、AI・機械学習の世界は当然もっと奥深く、ダークドレアム並の名前のインパクトを持った用語達が洞窟の奥で待ち構えています。サポートベクターマシーン、ガウシアンカーネル、Kミーンズクラスタリング、プライマリーコンポーネントアナリシス・・・等々。もしご要望あればこれらも解説します。

 

最後までお読み頂き有難う御座います。

 

ご意見・ご質問、また結婚を前提とした交際の依頼(重婚となりますことご了承下さい)は、ryosuke.yamawaki(at)berkeley.eduまでお願いします。

Advertisements

サルなら分かる:人工知能・機械学習③

第一段はこちら(顔の細長さで資産家を探すマチコ)。
第二弾はこちら(マチコの舞台裏・Gradient Descent)。
第四弾はこちら(完結編)

このブログ記事は、機械学習という流行り言葉を

  1. 用語を勝手にメルヘンな名前に呼び変え
  2. なんに使うんだよボケ?を意識し
  3. なんでそうなるんだよカス?(数学的背景)をなんとか頑張って整理する

営みで御座います。

 

ご意見・ご質問、また結婚を前提とした交際の依頼(重婚となりますことご了承下さい)は、ryosuke.yamawaki(at)berkeley.eduまでお願いします。

 

***前回までのおさらい***

「アタックNo.1」(機械学習)とは、

大量のデータを使って(いわゆるビッグデータ)

予測と結果のズレである「間違い」(Cost function)が最も少ない

「良い感じにチューニングさん」(Parameters)を発見する営みであり、

その発見法の一つとして、「ちょっとずつ直そうぜ」(Gradient Descent)がある。

***おさらい以上***

今回のテーマであるLogistic Regressionに行く前に、頂いたコメントを踏まえ、「手がかり」と「良い感じにチューニングさん」の違いをさらっと説明しよう。

マチコが作ったhθ(x)は、顔の細長さを「手がかり」にしたものだったが、別にこれはなんでも良いわけだ。例えば、「息の臭さ」「足の臭さ」「生臭さ」「うさん臭さ」等、予測に役立つそうなものであり、データがそろっていれば何でも良いし、全てを組み合わせても良い。

仮にマチコが当初作ったhθ(x)を資産家発見機・初号機と呼ぼう。
初号機: hθ(x) = 41 + 32*[顔の細長さ] だ

マチコはあらゆるデータを駆使して別のhθ(x)をも作り上げた。弐号機だ。
弐号機: hθ(x) = 4 + 10*[顔の細長さ] + 15*[息の臭さ] -30*[生臭さ] + 24*[きな臭さ] + 100*[うさん臭さ] + 13*[顔の細臭さ]

ここで書いた、「顔の細長さ」「~臭さ」という色々が「手がかり」である 。統計学ではIndependent variableと言う。そして、それぞれの「手がかり」の前についている数字、10とか15とか24とか、これが「良い感じにチューニングさん」であり(統計学ではcoefficient、機械学習ではparameterもしくはweightと呼び、θという記号で表記する)、これを探し当てるのが機械学習の役目だ。

初号機・弐号機いずれも、「良い感じにチューニングさん」になんの数値を入れるかで性能は大きく異なるが、一案良いものを探すのが機械学習。つまり、機械学習は与えられた「手がかり」を前提として、hθ(x)を一番良いものに磨き上げる、という役割を担っている。「手がかり」に何を使うか、は人間次第だ。

こんなところで本題へ。

***

高精度の予測マシーンhθ(x)を作り上げたマチコは恍惚とした表情で、google calendarを眺めていた。

「今宵の戦・・・取ったり」

 

 

ざわ・・・。

ふとした瞬間、マチコは自分の心のざわめきに気が付く。

 

 

本当に金持ちというだけで結婚して良いのか?結婚という一大事、お金だけじゃなく、相手についてもっと知らなければいけないことがあるのではないか?

 

そうだ、私

 

 

ウーパールーパーと結婚したい。

 

そう、年間400試合超を消化するメジャー合コンーガーのマチコは、もはや人類程度では満足できなくなっていた。高望みかもしれない、でも、ここまで来たからには、とことん欲張りたい!マチコの心は決まった。資産家のウーパールーパーと結婚するのだ。

 

しかし、どうやって相手がウーパールーパーか確かめれば良いのだろうか。

 

「ねぇねぇ、あなたウーパールーパー?」と直球を投げ込む手ももある。だが、そんな無粋な質問をした時点で玉の輿の線が消えてしまう。じゃあどうすればいいのか?

 

  • Logistic Regression(ロジスティック回帰) 改め「ウーパールーパー探知機」

マチコは必死になって「手がかり」を探した。『小学館の図鑑NEO〔新版〕 魚 DVDつき』(小学館)を精査した結果、あることに気が付く。

 

ウーパールーパー、えりあし長くね?

 

 

これだ!!!!この瞬間、マチコはえりあしを「手がかり」に新たな予測モデルhθ(x)を作ることを決意する。

まずマチコは、(x,y)を(襟足の長さ, ウーパールーパーか否か)として、グラフに落とし込んでみた。

 

そして、ここに「ちょっとずつ直そうぜ」を駆使して編み出した「良い感じにチューニングさん」をぶち込んで、hθ(x)を作り上げる。それがこの赤線だ。縦軸の数字を「ウーパールーパー度合」だとすれば、0.5=50%を超えていればウーパールーパーと言えそうだ。実際に、0.5を超える為には12 cm近い襟足の長さが必要であり、実際12 cm以上ならほとんどがウーパールーパーだ。

 

これはいける・・・!

 

しかし、このグラフには5cm以上のえりあしのケースしかないが、実際にはもっと短いやつらもいるはずだ。マチコはそのデータもグラフに入れてみた。なんと、hθ(x)がかなり左に動いてしまった。おかげで、「10 cm以上あればウーパールーパーとみなす」という予測に変わってしまい、間違えて「えりあしが長いだけの人類」を選んでしまう可能性が出て来た!(赤丸)これはまずい。

 

境界線になりそうなところ(えりあしの長さ)で、綺麗にウーパールーパー度合が0と1に分かれるような予測方法はないのか・・・?

 

それを解決するのが、Logistic Regression、改めウーパールーパー探知機だ。どういうモデルなのか?まずは答えから。

 

「ウーパールーパー度合」= 1/(1+e^(-hθ(x)))

 

グラフに落とすとこうなる。

 

うん、なかなか収まりが良さそうである。

なぜこうなるか。式を分解してみよう(数式を見ると産気づいてしまう方は飛ばしてOKです)。

 

まず

1/(1+e^(-hθ(x)))

1/(1+何か)

とおいてみよう

何かの部分がややこしいので、そこは一旦忘れてみよう。

そして、「何か」は必ず0以上であるとする。

 

そうすると、1/(1+何か)は何かがゼロの時に最大の大きさ(=1)となり、何かが無限に大きい時に最小(≒0)になる。1 割る 無限+1 はほぼゼロだ。グラフにするとこう。

 

さて、次は本丸、eの登場だ。

 

eとは・・・

ネイピア数(ネイピアすう、Napier’s constant)は数学定数の一つであり、自然対数の底である。ネーピア数とも表記する。記号として通常は e が用いられる。その値は

e = 2.71828 18284 59045 23536 02874 71352 …

と続く超越数である。

(Wikipedia)

 

こんなことは忘れてもらって良い。

 

eはネイピア数なんて名前はどうでも良い。とにかくeは便利なのだ。なにがどう便利かというと、まさにこの「ウーパールーパー探知機」の根幹を成す要素だし、経営学の分野では価格と需要の関係を表す需要曲線にこのeが重要な役割を果たす。

 

とにかく色々なところで役に立つ。なぜそうなのかはよく分からんし、成り立ちも不明だが、毎日でも使いたい。

 

そう、これはティッシュだ。ティッシュと呼ぼう。みなさんはティッシュをつかう時、「はて、これはどうやって製造したんだろうか?」「なぜトイレットペーパーと違って鼻をかんでもガサつかないんだろう?」などと考えるだろうか?

否だ。

そんなのどうでも良いのだ。とにかくおうちにティッシュがあって、テーブルの汚れをさっと拭いたり、子供の鼻をかんであげたり、夜になったらあんなことやこんなことに使えば良い。自由だ。ティッシュの自由を謳歌しよう。

 

ということで、eとは「中身が約2.7のティッシュ」ということで、定義が完了した。

 

さて、「ウーパールーパー探知機」の数式に戻ろう。

1/(1+何か) だ。

この何かは、e^(-hθ(x))であった。

 

記号がいっぱいだとややこしいので、hθ(x)は「別の何か」としておこう。

すると、何か = e^(-別の何か)ということになる。上で述べた通りティッシュ(e)の中身はだいたい2.7なので、^以降の部分は、2.7をマイナス乗するということだ。別の何かがそのマイナス乗の回数を表す。マイナス乗というのは自分で自分を割ることなので、やればやるほど小さくなる(そして、いくら割ってもマイナスにはならないので、ほぼ0のところで収束する)。

ただ、「別の何か」自体がマイナスだった場合、「-別の何か」はプラスの値になるので、^(-別の何か)は普通にティッシュをべき乗することを表す。「別の何か」の値に制限はないので、何かはどこまでも大きくなれるということだ。

 

ここで、「何か」をy軸に、「別の何か」をx軸においてグラフ化してみよう。別の何かがでかいとほぼ0収束し、小さいと無限に大きなって行くのが分かるだろう。

 

さて、ウーパールーパー探知機の数式に戻ろう。

 

1/(1+e^(-hθ(x)))

 

上で見た、「別の何か」がhθ(x)、つまり、データからはじき出される予測モデル(直線)であり、それが大きいほど(つまりウーパールーパー度合が高いほど)、「何にか」がゼロに近づき、1/(1+0)になる。すなわちこれは1なる、ということで、晴れて「ウーパールーパーだ!」と判別されることになる。

その関係を示したのが、最初に出したグラフだ。

 

ということで、おさらい。

 

「ウーパールーパー探知機」(Logistic Regression)は、

「ティッシュ」(ネイピア数)を用いて、

数式を1/(1+e^(-hθ(x)))という形に書き換えることで、

「~か否か」という判別を精度高く行うことが出来る便利なものである。

 

こんなところでしょうか。

***

 

次回から、巷で猛威をふるう「ディープラーニング」とその代表である「ニューラルネットワーク」に本質に迫ります。ここまでくれば、あと一回で、「ニューラルネットワークを使うとなぜ画像認識が出来るか?」が、自信をもって説明することが出来ます!

お楽しみに。

 

サルなら分かる:人工知能・機械学習 その②

第一弾はこちら。
第三弾はこちら(ウーパールーパー探知機・Logistic Regression)
第四弾はこちら(完結編)

 

このブログ記事は、機械学習という流行り言葉を

  1. 用語を勝手にメルヘンな名前に呼び変え
  2. なんに使うんだよボケ?を意識し
  3. なんでそうなるんだよカス?(数学的背景)をなんとか頑張って整理する

営みで御座います。

 

ご意見・ご質問、また結婚を前提とした交際の依頼(重婚となりますことご了承下さい)は、ryosuke.yamawaki(at)berkeley.eduまでお願いします。

 

***

  • 最急降下法(Gradient Descent) 改め「ちょっとずつ直そうぜ!」

前回のおさらい:

アタックNo.1とは、

「間違い」を最も小さくするような

「良い感じにチューニングさん」を

探し当てる営み。

 

※用語が分からない方はこちらをおさらい

 

じゃあ、実際にどうやって一番良い「良い感じにチューニングさん」を探すんだよ?というのは当然の疑問だろう。

「あんまり深入りしたくねーな。男は黙ってミディアムローストだろ」

という人はここは飛ばしてもらって問題ない。なぜかと言うと世の中には、それをやる為の便利な数式が何種類もテンプレート化されており(プログラミングの世界では、テンプレートを集めたものライブラリと言ったりして、まるで召喚獣のように、一言呪文を唱えるだけでさっと登場する)、数学的背景が全く分かっていなくても、とりあえず正しい答えは簡単に導けるからだ。

 

「いや、俺っちは風呂のお湯までエスプレッソだよ?」という江戸っ子さんの為に、もう少し前に進んでみましょう。

 

まず、前回定義した「間違い」というのをもう一度見てみます。

 

{(予測した資産額)引く(実際の資産額)}の 二乗、そして、それを持っているデータ分全部足し上げたもの。つまり、以下のグラフの赤矢印とか、青矢印の長さを二乗したものを、全部足し上げた数値ということですね(尚、赤と青は別の直線なので、それらを足してはいけない)。

回帰4

 

ここで中学数学に戻って、これら直線を数式で記述するとこうなります(これも前回のおさらい)。

y = b + ax

更に一歩進んで、高校数学的な書き方をするとこうですね。

f(x) = b + ax

f( )というのは、いわば「数字を変換してくれるマシーン」でカッコの中に適当な数字を入れると何等かの処理をして、答えが出るというものです。

赤線の例でいくと、

f(x) = 41.786x + 31.905

なので、例えば顔の長さは23センチの人がいたら、その資産額は23*41.786+31.905で、992.983億円が答えとなる。

 

さらにもう一歩進んで、機械学習で使われる記述方法になおすとこう。

hθ(x) = θ0 + θ1*x

hは仮説(Hypothesis)の略で、最初に適当に探しあてた直線は正しいかどうか全くわからない(上のグラフの青線みたいな、全然ダメなやつかもしれない)ので、とりあえずhypothesisと呼ぶわけです。ほんで、このhypothesisは、θに何をいれるかによって決まるので(上下に動いたり、傾きが変わったりする)、そういう感じに「まだ、hypothesisなんで、色々かわりますよー!θによってね。」ということを示して、hθ(x)という記述になっている。

さて、もともと考えていた「間違い」(グラフの矢印の長さの二乗を足しまくったやつ)に戻ると、この数式を使うとこう書ける。

「間違い」 = (hθ(x) – y)を二乗して、それを全部足す

ここでのyは、使ったデータ(マチコがForbs億万長者リストから抜き出してきた、「Aさんは顔の長さ21cmで、資産は990億円」「Bさんは・・・」というやつ)の資産の額の部分だ。

hθ(x)に21cmを入れると資産額が出てくるが、それはAさんの資産額の「予測」ということになる。しかし、マチコはその答えすなわち実際のデータ「990億円」を持っているのだから(これがy)、それを引き算すれば間違いが出るということだ。

仮にAさん分しかデータががなかったとすると、

赤線が犯す「間違い」 = (993億円 – 990億円)^2 = 3

ということになる。これを全員分やると、どんだけ「間違っているか」が分かるのだ(^は何乗という意味。^2は二乗)。

 

さて、だいぶ遠回りをしたが、この「間違い」を最小化するθを探し当てる方法の一つが、Gradient Descent 改め「ちょっとずつ直そうぜ!」だ。

 

どういう仕組みか?答えは、θを「ちょっとずつ直す」だ。今、θ0を108、θ1を20として、hθ(x)を直線としてグラフ化してみた(青線)。かなり「間違い」が多そうである。

今度はθ1を35にしてみる。かなり良い感じになった!

 

調子にのって、45まで上げてみる。おっと!また遠のいてしまった。さっきよりも「間違い」が大きそうだ・・・

 

てな具合に、θ1を動かすと「間違い」の量が変動していくわけだ。θ0は線の高さを決めるので、同様にθ0を動かしても「間違い」の量が変動する。

ある一定の地点で、一番少ない「間違い」になりそれ以降はどんどん間違いが大きくなっていくというこの関係性は、なんとぐにょーーんという二次関数の放物線になっている。θ0についても同様の放物線が描ける。

ほんで、行きつきたいのはココ!赤丸のとこ。

 

どうやってここに行くか? 一歩ずつ進めば良い。

 

まず最初の適当なhθ(x)、すなわちθ1が20の時の直線と、「間違い」の放物線を並べてみよう。左のグラフで、青線は実際のデータ(オレンジの点たち)からかなり離れている。だから、「間違い」の放物線、すなわち、右のグラフで見たときに、その点の高さはかなり高い。つまり間違えまくっている。

 

 

ここで、文系高校生を一斉に阿鼻叫喚の地獄へ陥れる魔界の番人・微分の登場だ。細かい背景は無視して、「二次関数を微分すると、ある点での傾きが算出できる一次関数になる」という点に着目したい。ここで言うと、θ1が20の時の点が、次の点(例えば、θ1=21)に向かうときにどういう傾きで向かうのかが、分かるということだ。下のグラフの緑の線だ。

この緑の線の傾きは数式でもなんでもなくただの数値だ。固定された数値。美しい。これを使って、θを変動させていけば良い、それが「ちょっとずつ直そうぜ!」(Gradient Descentと世間は呼ぶ)の考え方だ。

見ての通りこの傾きはマイナスだ。この傾きをAと置いたとき、これに-1をかけると、プラスの数字になる。-A > 0ということ。

少しずつ動かすというのは、θ1(元のパラメータ)に-Aをするということだ。ザッツオール。-Aは > 0 なので、「間違いの放物線」上の赤い丸の地点は、右に動くことになる!仮に-A = 5だったとしよう。すると、一回分「ちょっとずつ直そうぜ!」をした結果はこれだ。おお!間違いの大きさがかなりマシになったではないか!!

ほんでこの地点でもまた微分をすると、新たな傾きA出てくる。それをまた-Aして、微分して、-Aをして・・・とやっていくといつか一番下にたどり着く!(なぜなら、一案したの地点は傾き0なので、それ以降は-A = 0となり、θ1に変動は起きない。ただ、これは実は例外も結構あるが、こまかいところはおいておこう)。

こんな感じで、目的にたどりつけましたね。ちゃんちゃん。これをθ0でも同時にやると、一番最高なhθ(x)、つまり、最初の赤線のやつになれるということです。

***

結局Logistic Regressionに入れなかったので、次回に回します。