react-native initしたばかりのアプリが`bundling failed: Error: Unable to resolve module /../react-transform-hmr/lib/index.js`を吐いて立ち上がらない

bundling failed: Error: Unable to resolve module /../react-transform-hmr/lib/index.js · Issue #21530 · facebook/react-native · GitHub

react-native start --reset-cacheで直った。

rake db:migrateでmigrationファイルのパス指定

config/application.rb(全環境向け)か、config/environments/#{environment}.rbに以下の行を追加する。

config.paths['db/migrate'] = ['your_migrate_path']

デフォルトのdb/migrateと両方読み込みたい場合は

config.paths['db/migrate'] << 'your_migrate_path'

と言うのも、redmineプラグイン開発で個別プラグインマイグレーションはどうするんだろうと思って調べました。 正しくは

rake redmine:plugins:migrate

でよかった。。

Python 機械学習プログラミング 学習メモ 2章前半

パーセプロトンアルゴリズム

  • 人工ニューロンの一種であるパーセプトロンの学習規則について学ぶ
  • Frank Rosenblattが、MCPニューロンモデルに基づき発明した
  • 教師あり学習の分類はこのアルゴリズムで予測できる(線形分離可能なもののみ学習できる)
  • 入力ベクトルxと対応する重みベクトルwの線形結合zを引数にとる単位ステップ関数
    •  x_iw_iを掛け合わせた結果が閾値\thetaより大きければ1, そうでなければ-1を返す
  • 重みの更新
    •  w_j := w_j + \Delta w_j
    •  \Delta w_j = \eta (y^{(i)} - \hat{y}^{(i)})x^{(i)}
    • 学習率 * (実際のクラス - 予測されたクラス)* 入力
    • iは何番目のデータセットか、jは特徴量の次元数を表す
      • 実際, 予測 = 1, 1 => 0 => 重みは変化しない
      • 実際, 予測 = 1, -1 => 正の数 => 1に分類される可能性が高くなる
      • 実際, 予測 = -1, 1 => 負の数 => -1に分類される可能性が高くなる
      • 実際, 予測 = -1, -1 => 0 => 重みは変化しない

2.2 パーセプトロンの学習アルゴリズムPythonで実装する

サンプルコードがありましたが、写経しながらコメントを追加しました

python-ml-programming/chap02.ipynb at master · manaminakamura/python-ml-programming · GitHub

2.3 Irisデータセットでのパーセプトロンモデルのトレーニング

  • 可視化のため、特徴量は「がく片の長さ」「花びらの長さ」の二つに
  • 2クラスの方が説明が楽なので、クラスラベルもSetosaとVersicolorの2つに
  • 多クラス問題に拡張する場合
    • パーセプトロンの場合はクラスラベルの数だけ分類器を用意し、総入力の絶対値が最大となるクラスラベルを選択する。

決定領域のプロットでは、決定境界を表す関数を描画するのではなく、元の学習データの各特徴量の最小値から最大値まで0.2cm刻みのグリッド行列から学習データを作って、各グリッドポイントのデータがどちらのクラスに属すかパーセプトロンで予測した結果を描画しました。 (パーセプトロンの学習規則は学習結果が線形に収束するモデルです)

Python 機械学習プログラミング 学習メモ 1章

正月明けからやっていたけど、数式が読めなくて挫折しました

その間に線形代数微分積分を少々、はじめてのパターン認識を読んで勉強したので最初からやり直します

1.2 3種類の機械学習

  • 1.3 教師あり学習 (supervised learning)
    • (クラス)ラベル付けされたトレーニング(学習)データからモデルを学習し、未知のデータや将来のデータを予測する
    • 「分類」周りは色々な用語が出て来てすでに読みづらいが、はじパタを読んでいたので理解できた
    • 「回帰」とは?
      • クラスラベルのような離散的、順序性のない値ではなく、連続的な値を予測する
      • 分類は「健康/不健康」回帰は「数学のテストの点数」を予想する
      • 線形回帰は、予測変数を応答変数をx, yとし、サンプル点との距離(主に平均二乗誤差)が最も短くなる直線をデータに当てはめる
  • 1.4 強化学習 (reinforcement learning)
    • 教師あり学習に関連する分野
    • 環境とのやりとりに基づいて性能を改善する「エージェント」を開発する
    • 教師あり学習は正解のラベルや値をフィードバックするが、強化学習がフィードバックするのは「報酬」によって測定された行動の出来具合を数値化したもの <= ???
    • 桜花学習の例はチェスエンジン。チェス盤が「環境」、ゲームの勝ち負けが「報酬」
  • 1.5 教師なし学習 (unsupervised learning)
    • 結果変数や報酬関数がなくても、データの構造を調べることで意味のある情報を取り出すことができる
    • クラスタリングは教師なし分類
    • 次元削減
      • 測定値からノイズを取り除き、データをより低い次元の部分空間に圧縮する

1.7 機械学習システムを構築するためのロードマップ

  • 前処理 => 学習 => 評価 => 予測
    • 前処理
      • 特徴抽出とスケーリング・・・意味のある特徴量を選ぶ。データを標準正規分布に変換したりする。
      • 特徴選択
      • 次元削減・・・相関が高い特徴を削減するとか?
      • サンプリング
    • 学習
      • モデル選択
      • 交差検証・・・学習データとテストデータを分割して検証
      • 性能指標
      • ハイパーパラメータ最適化・・・モデルの性能を向上させる

neo4jで服の管理

nodeを入れてみるぞ

CREATE (bdt:Tops { name: "ボーダーT", brand: "orchival" }), (kakiskt:Bottoms { name: "カーキのスカート", brand: "gymphlex" });

f:id:mnmandahalf:20180415222450p:plain

ノードを増やし、関係性を追加してみました

MATCH (a: Tops), (b: Tops)
WHERE a.name = "グレーのカーディガン" AND b.name = "グレーの半袖ニット"
CREATE (a)-[r:上に羽織る]->(b)
RETURN r;

グラフ感が出始めた f:id:mnmandahalf:20180415222324p:plain