2の部分を追っていきます。前回は線形回帰でしたが、今回はロジスティック回帰です。今回は2クラス分類問題を考えます。予測にはロジスティック回帰というモデルを使用します。1次元のモデルを考えます。属している確率を表すこととします。入力データを用意します。)の2クラスを用意します。上記のデータを生成するには、次のようなコードを使用します。1))))これで、Xには入力の値、tには正解ラベルが格納されている状態になりました。適用してあげることで得られます。次のように定義します。これを素直にPythonに落としていくと次のようになります。予測することができます。w))コスト関数ロジスティック関数のコスト関数には、クロスエントロピーが使用されることが多いです。クロスエントロピーを最小化することは、尤度を最大化することと同等のようです。*1クロスエントロピーは次のように定義されます。y)))最初に用意した入力Xと正解ラベルtにを使用して、コスト関数を可視化すると次のようになります。色が濃い部分が値が小さい部分となります。この色が濃い部分に入るような重みを見つけるために最適化を行っていくことになります。1同様、最急降下法を使用してコスト関数を最適化していきます。具体的な数式の導出過程は長くなるので省略してしまいますが、重みの更新は以下のように行います。これもコードに落とすと次のようになります。t)それでは今までのコードを使って重みの更新をしていきます。w_iter.append(w)イテレーションが進むにつれて重みがどのように更新されていくかを可視化したものが下図になります。色が濃い部分に向かって重みが最適化されている様子が確認できます。どちらのクラスに分類されるかを可視化します。nn_predict関数を使用して予測します。boundary')plt.show()上記コードを実行すると次の図が得られます。確かに、初めに生成した入力を大体分類できるような重みが学習できていることが確認できます。Notebookは下記においてあります。次回の記事:www.madopro.net前回の記事:www.madopro.net*1:ここに式変形の過程があります。PytorchでMNISTをやってみたいと思います。前回の記事の続きです。アーカイブおすすめの本はてなブログをはじめよう!kanohkさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。