オムライスの備忘録

数学・統計学・機械学習・プログラミングに関することを記す

「データサイエンティストとして読んで役立った本たち@2020-07」を読んで

参考

モチベーション

  • データ解析が好きなものとして気になってしまう
  • 書籍のリストだけ作って、あとで確認する用

書籍リスト

  • 数学
    • 解析入門 Ⅰ(基礎数学2) ;杉浦 光夫
    • 線型代数学 ;齋藤正彦
  • 統計学基礎
  • トピック別
    • 統計モデリング
      • 調査観察データの統計科学―因果推論・選択バイアス・データ融合 (シリーズ確率と情報の科学) ; 星野 崇宏
      • データ解析のための統計モデリング入門――一般化線形モデル・階層ベイズモデル・MCMC (確率と情報の科学) ; 久保 拓弥
    • 機械学習
    • 深層学習
    • 因果推論
      • 効果検証入門〜正しい比較のための因果推論/計量経済学の基礎 ; 安井 翔太
    • 画像
      • 画像認識 (機械学習プロフェッショナルシリーズ) ; 原田達也
    • 言語
    • 時系列
      • 時系列解析入門 ; 北川 源四郎
    • SQL
    • テスト?
      • サンプルサイズの決め方 (統計ライブラリー) ; 永田 靖
  • ビジネス書
    • 仮説思考 BCG流 問題発見・解決の発想法 ; 内田 和成
    • 論点思考 ; 内田 和成
    • [新装版] 企業参謀 戦略的思考とは何か ; 大前 研一
    • 確率思考の戦略論 USJでも実証された数学マーケティングの力 ; 森岡 毅 ,今西 聖貴
    • 東大生が書いた 問題を解く力を鍛えるケース問題ノート―50の厳選フレームワークで、どんな難問もスッキリ「地図化」! ; 東大ケーススタディ研究会
    • ジョブ理論 イノベーションを予測可能にする消費のメカニズム ; クレイトン・M・クリステンセン

Note

  • ビジネス書、全然知らない書籍だったので、上から読んでいきます

リンク

解析入門 Ⅰ(基礎数学2)

解析入門 Ⅰ(基礎数学2)

齋藤正彦 線型代数学

齋藤正彦 線型代数学

統計学入門 (基礎統計学Ⅰ)

統計学入門 (基礎統計学Ⅰ)

  • 発売日: 1991/07/09
  • メディア: 単行本

現代数理統計学 (創文社現代経済学選書)

現代数理統計学 (創文社現代経済学選書)

はじめてのパターン認識

はじめてのパターン認識

  • 作者:平井 有三
  • 発売日: 2012/07/31
  • メディア: 単行本(ソフトカバー)

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

  • 作者:斎藤 康毅
  • 発売日: 2016/09/24
  • メディア: 単行本(ソフトカバー)

ゼロから作るDeep Learning ❷ ―自然言語処理編

ゼロから作るDeep Learning ❷ ―自然言語処理編

  • 作者:斎藤 康毅
  • 発売日: 2018/07/21
  • メディア: 単行本(ソフトカバー)

ゼロから作るDeep Learning ❸ ―フレームワーク編

ゼロから作るDeep Learning ❸ ―フレームワーク編

  • 作者:斎藤 康毅
  • 発売日: 2020/04/20
  • メディア: 単行本(ソフトカバー)

効果検証入門〜正しい比較のための因果推論/計量経済学の基礎

効果検証入門〜正しい比較のための因果推論/計量経済学の基礎

  • 作者:安井 翔太
  • 発売日: 2020/01/18
  • メディア: 単行本(ソフトカバー)

画像認識 (機械学習プロフェッショナルシリーズ)

画像認識 (機械学習プロフェッショナルシリーズ)

  • 作者:原田 達也
  • 発売日: 2017/05/25
  • メディア: 単行本(ソフトカバー)

時系列解析入門

時系列解析入門

ビッグデータ分析・活用のためのSQLレシピ

ビッグデータ分析・活用のためのSQLレシピ

サンプルサイズの決め方 (統計ライブラリー)

サンプルサイズの決め方 (統計ライブラリー)

  • 作者:永田 靖
  • 発売日: 2003/09/28
  • メディア: 単行本(ソフトカバー)

論点思考 内田和成の思考

論点思考 内田和成の思考

ロジスティック回帰 におけるNewton-Raphson 法 と Fisher Scoring 法

Note

  • ロジスティクス回帰では、最尤法を利用してパラメータを推定する
    • 対数尤度関数を最大(最小)にするパラメータを推定する
  • その際どのように最適化するかとなったときに、解析的に最小値を求められないので以下の2つのどちらで最適化する
    • Newton-Raphson 法
    • Fisher Scoring 法
  • Newton-Raphson 法よりは。Fisher Scoring 法の方が簡易に求められる?

ロジスティック回帰

  • 2020/08/15

Note

  • 回帰分析の一つ
  • 被説明変数が量的(Quantitative)データではなく質的(Qualitative)データであるケースも多い

参考

「ロジスティック回帰」


Newton-Raphson法

Note

参考

ニュートン・ラフソン法」

ニュートン・ラフソン法 ロジスティック回帰」


Fisher Scoring法

Note

  • フィッシャースコア法

参考

「フィッシャースコア法」

tensorboard error 「directory_watcher.py file updated even though the current file is file」

  • 20200814
  • 「tensorboard directory_watcher updated even though the current file is」

環境

  • tensorflow 2.0

問題

  • tensorflow で学習ログが validation はでるが、train はでず、tensorboardに表示されない
  • 「directory_watcher.py file updated even though the current file is file」のようなエラーがtensorboardからでる
  • trainログフォルダには、「xxx..profile-empty」のようなファイルが発生する

参考

「could not select device driver "" with capabilities: [[gpu]].」エラー

  • 2020/08/13

環境

  • Ubuntu 16.4
  • docker 19.03.12
  • cuda 10.2

参考

対応

  • nvidia-container-runtime-script.shを起動して、nvidia-container-runtime をインストールすることで対応
./nvidia-container-runtime-script.sh

sudo apt-get install nvidia-container-runtime

docker run -it --rm --gpus all ubuntu nvidia-smi

systemctl restart docker.service

tensorflow v.2.x で tensorboard in keras

  • 2020/08/13

参考

# writer を作成

file_writer = tf.summary.create_file_writer(logdir + "/metrics")

# 書き込む

tf.summary.scalar('learning rate', data=learning_rate, step=epoch)
  • TensorBoardでの画像データの表示
    • tensorflow 公式
    • training は fit function を使いたかったので、「画像分類器の作成」が参考になった
    • TensorBoard class と writer (tf.summary.create_file_writer)をどちらも作成
    • epoch ごと(もしくは batchごと)に実行したい処理を関数で作成
    • keras.callbacks.LambdaCallback で使用できる形に
    • fit 実行時に callback に含める
tensorboard_callback = keras.callbacks.TensorBoard(log_dir=logdir)

file_writer_cm = tf.summary.create_file_writer(logdir + '/cm')

# 実行する処理

cm_callback = keras.callbacks.LambdaCallback(on_epoch_end=log_confusion_matrix)

# callbackに含める

model.fit(

    train_images,

    train_labels,

    epochs=5,

    verbose=0, # Suppress chatty output

    callbacks=[tensorboard_callback, cm_callback],

    validation_data=(test_images, test_labels),

)

Docker 環境で tensorboard 起動して外部IP からアクセスしたい

  • 2020/08/12

iamge

参考

【画像処理】セグメンテーション / Segmentation #まとめ編 #00

Index

Segmentation とは

画像処理のタスクの一つである領域検知.

画像を入力としてピクセルレベルで領域を分割しラベルを付けていくタスク.

Segmentation の分類

以下のように3つに分類することができる.

  • Semantic Segmentation : 画像上の全ピクセルをクラスに分類する
  • Instance Segmentation : 物体ごとの領域を分割しかつ物体の種類を認識する
  • Panoptic Segmentation : それらを組み合わせる

処理の流れ

Sliding Window + Markov Random Fields を用いたアプローチ

Sliding Window を用いて、局所領域を取得する.

また、Markov Random Fields を用いて、後処理でピクセル間の予測クラスを補完する.

ニューラルネットワークを用いたアプローチ

アルゴリズム

画像処理を利用したアルゴリズム

動的輪郭モデル等.

(画像処理 +) 機械学習を利用したアルゴリズム

深層学習を利用したアルゴリズム

評価指標

mIoU (mean intersection over union) が使用される.

ライブラリ

PP Seg

  • PP-MobileSeg: Explore the Fast and Accurate Semantic Segmentation Model on Mobile Devices

参考

論文メモ
Section 2 : segmentation アルゴリズムの分類
Section 3 : 精度評価とデータセット
(Section 4 : Segmentation の流れ)
Section 5 : 従来のアルゴリズム
Section 6 : NN を利用したアルゴリズム
Section 7 : 将来的な課題

書籍

Web サイト