[機械学習]ロジスティック回帰の基本とは

広告

単純パーセプトロンでは0または1の2つの値しか取れませんでしたね。それがステップ関数の特徴であります。単純パーセプトロンの式を再喝します。

このかっこの中の部分は変更せずに、ステップ関数を別の関数に置き換えることで、0から1までの連続値をとるようにしたいです。そうすると確率っぽく表せてより便利になりますよね。0から1までの関数であればなんでも良いのではありません。シグモイド関数が使われます。シグモイド関数はσ(x)と書かれ次のように表せます。

そしてグラフはこれのT=0としたものです。

なぜ、他の関数ではなく、シグモイド関数なのかは後々説明します。活性化関数にシグモイド関数を使ったものをロジスティック回帰と言います。ロジスティック回帰ではニューロンの出力は次のようになります。

ほんとに活性化関数を変えただけですね。大事なことですが、出力yは入力xのもとで、ニューロンが発火する確率を表しています。つまりニューロンが発火することを発火=1として、発火しないことを発火=0と表すようにすると、式で表すと次のようになります。

というようになりますね。そして、t=0,1として、この二つをまとめると次のようになります。

一見ややこしいですが、計算してみると



というようにうまくまとまっていることがわかります。ここまではまだまだ準備段階でありまして、これから教師データを考えて、重みとバイアスの更新というものを考えていきます。

N組の教師データの組が与えられたとしましょう。ここでの教師データとは

  • 入力ベクトルxn
  • ラベルtn

が一つの組みになります。N組の教師データを使って、どうやって学習して重みとバイアスを更新していくのかと言いますと、

入力ベクトルxとラベルtをデータとして、尤度関数(ゆうどかんすう)を計算します。尤度関数が最大となるような重みwとバイアスbを探してこようというのが、ロジスティック回帰の重み更新の方法となります。これを最尤推定法と言います。

注. 尤度関数を知らないという方はこちら(以前の記事のリンクを貼っています。)

やっと学習っぽい話になりましたね。尤度関数の考え方を先ほどの記事で理解していただいたものとして話を進めると、尤度関数の式は重みとバイアスの関数であり、次のようになります。

この鳥居のような記号は大文字のπでして、意味はΣ記号のかけ算バージョンです。データという結果から、原因を考えるというのが尤度関数の考え方でありました。

これを最大化する重みとバイアスを探してくるには、偏微分して求めようとするのが今まででしたが、このレベルになってくると解析的に解くことが不可能になっています(解析的に解けるならわざわざ学習する必要はなく、一発で重みとバイアスを計算することができます)。

次回は勾配降下法というアプローチで重みとバイアスを更新する方法を学んでいきたいと思います。

関連記事