今日も窓辺でプログラム

外資系企業勤めのエンジニアが勉強した内容をまとめておくブログ

scikit-learnのtrain_test_splitで訓練データとテストデータを分割する

はじめに

scikit-learnのtrain_test_splitという関数を使うと、データセットを訓練データをテストデータに簡単に分割できます。
同じくscikit-learnに付属している数字手書き文字のデータセットを使用した例を紹介します。

続きを読む

ニューラルネットワークを実装する [Part 4 バックプロパゲーションのベクトル化]

はじめに

前回に引き続き、Peters' NoteのPart 4 Vectorizationを見ていきます。

今回の記事では2クラス分類問題に対して、

  • バックプロパゲーションをベクトルで扱う方法
  • Gradient Checking
  • モーメンタム法

を順に実装していきます。

目次

  • はじめに
  • 目次
  • 今回扱うニューラルネットワーク
  • 使用するデータセットの用意
  • ベクトル化
    • 順伝播
      • 隠れ層の出力
      • 出力層の出力
    • 逆伝播
      • 出力層での逆伝播
      • 隠れ層での逆伝播
  • Gradient Checking
  • モーメンタム法を使った最適化
  • 最急降下法を使ったらどうなるの?
  • GitHub
  • 関連記事
続きを読む

ニューラルネットワークを実装する [Part 3 隠れ層とバックプロパゲーション(誤差逆伝播法)編]

はじめに

前回の記事の続きです。Peters's NoteのPart 3を追っていきます。
非常にシンプルなモデルを使って、隠れ層が果たす役割や、バックプロパゲーション(誤差逆伝播法)の考え方を見つつ、実装していきます。

目次

  • はじめに
  • 目次
  • 今回扱うニューラルネットワークのモデル
  • 使用するデータの用意
  • 非線形活性化関数
  • バックプロパゲーションで重みの最適化
    • バックプロパゲーションの概要
      • 順伝播
      • 逆伝播
  • 実際にバックプロパゲーションで重みを更新してみる
  • 学習したモデルの可視化
  • GitHub
  • 関連記事
続きを読む

ニューラルネットワークを実装する [Part 2 ロジスティック回帰編]

はじめに

Peter's Notes のニューラルネットワークに関するメモのPart 2の部分を追っていきます。
前回は線形回帰でしたが、今回はロジスティック回帰です。

前回の記事:
www.madopro.net

目次

  • はじめに
  • 目次
  • ロジスティック回帰
  • 重みの学習に使用する入力の用意
  • モデルの出力
  • コスト関数
  • 最急降下法
  • 学習結果の可視化
  • GitHub
  • 関連記事
続きを読む