taka5hi’s blog

統計と機械学習の話題をメインに記事を書いています。

DEEP LEARNING LAB の 2 周年イベント「ディープラーニングの社会実装を阻むものは何か?」に参加しました

昨日 (2019/06/08) に、マイクロソフト様などの企業が主催するコミュニティー DEEP LEARNING LAB の 2 周年イベントに参加してきました。
というのもここ1ヶ月ほど、対応しなければいけないことができてしまい機械学習の勉強にあまり時間を割くことができておらずフラストレーションが溜まっていたんです。
そんなとき、connpass で、このイベントを見かけて、テーマにもすごく興味を惹かれたので参加させてもらうことにしたという次第です。

続きを読む

機械学習アルゴリズム:XGBoost の仕組みとパラメーター

XGBoost は、アンサンブル学習の一種であるブースティングを利用した手法及び実装です。
アンサンブル学習とは、複数のモデル(弱学習器)を組み合わせて、より強力なモデルを作る手法のことです。
XGBoost は、性能的にも優れており、たびたびコンペの上位入賞者が使う手法です。
多数のハイパーパラメーターを持ち、調整するためにはある程度手法について知っている必要があります。
そこで、このページでは、XGBoost のパラメーターの意味を理解できることを目標に、仕組みをまとめます。
なお、このページでは弱学習器に木を使う場合を主に説明します。

続きを読む

Kaggle Titanic コンペ:分析の枠組み構築

こちらの記事にも書いたとおり、昨年末から Kaggle のコンペに参加し始めました。
しかし、なんとなく EDA (Explanatory Data Analysis: 探索的データ解析) を行うものの次第に発散していってしまうことがよくあります。
そこで、基本的な EDA を行ったうえで、最初の prediction を提出するまで流れをある程度形式化できないかを考えてみました。

形式化した手順をこの記事では、「フレームワーク」と呼ぶことにします。
作成したフレームワークを使って Kaggle の Titanic コンペ で prediction の作成までを行うコードを実装します。

続きを読む

Ubuntu 18.04 に NVIDIA Docker をインストール

今年の初めに自宅の Deep Learning 用環境を壊してしまいました。
原因は、不用意に Python モジュールのバージョンを変更してしまったことなんですが、なんだかんだで復旧に数時間かかってしまいました。
この経験から、Deep Learning 環境を Docker 化することを決意しました。
Docker で GPU を扱ったことがなかったのですが、NVIDIA Docker を使うことで対応できるようです。

今回は、Ubuntu 18.04 環境に NVIDIA Docker を使って TensorFlow 環境を用意しますが、CUDA を使うような環境なら基本的な流れは同じなので参考にできるかと思います。

続きを読む

TFRecord、DataSet API を Keras で使う

機械学習では、時にはメモリに収まりきらないほどの大量のデータを扱う必要があります。
データを準備・加工する処理がボトルネックにならないようにするためには、例えば以下のような工夫が必要になります。

  • 複数のデータをまとめて単一のファイルに保存することでファイルI/Oにかかるオーバーヘッドを減らす
  • データをファイルから読み出してミニバッチを作成する一連のパイプラインを別スレッドで行う

TensorFlowでは、前者に対しては TFRecord というバイナリ形式、後者に対しては DataSet API という強力な仕組みをサポートしています。
普段、Keras を使うことが多いのですが、Keras でも TensorFlow の便利な仕組みを使えないかと思いまとめてみました。

続きを読む

Kaggleへの初参加

2018年も残すところわずかとなりました。
今年やり残したことを一つでも減らそうと、以前より挑戦したかったKaggleに挑戦してみました。
初めてコンペに参加して、結果を提出するところまでをまとめましたので、これからKaggleに挑戦しようと思っている方の参考になればうれしいです。

続きを読む