今日も窓辺でプログラム

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

Wikipediaの日本語記事を全行を、分かち書きしてforループで回す

はじめに

機械学習の勉強をするにあたって、日本語Wikipedia全文を学習データにできるとよさそう、ということでデータのダウンロードから、分かち書きされた文章をPythonのfor文で回す段階にもっていく方法をまとめました。

  • はじめに
  • 環境
  • コード
  • Wikipedia全記事のダウンロード
  • Wikipedia Extractor
  • 行ごとにfor文を回す
  • 分かち書きして一つのファイルに保存
  • 実行してみる
  • おわりに
  • 参考ページ
続きを読む

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
  • 関連記事
続きを読む