【SQL】ブラウザ上でちょっとしたクエリを実行して結果を確認したいときに便利なサイト

SQLの勉強のときに、テキストに記載されているクエリを簡単にブラウザ上で試してみたいときに以下のサイトがよさげだったので、忘れないように記録を残しておく。
sqlfiddle.com

このサイトでは画面が左右で分割されており、左側でテーブルの作成(CREATE TABLE)やテーブルへのデータの登録(INSERT)を行い、右側でデータの操作(SELECTなど)を実行します。
具体的な画面は以下のとおり。
f:id:joure:20180430120019p:plain

f:id:joure:20180430120059p:plain

【参考URL】
こちらのURLにより詳しいことが記載されている。
ブラウザでRMDB別のSQLを実行できる「SQL Fiddle」 │ Web備忘録

【メモ】Windows環境でGPU版TensorFlowを利用するための環境構築

WindowsでtensorflowのGPU版を利用するための環境構築のメモを以下のとおり残しておく。
Windows環境におけるTensorFlowのGPU版はCUDA, cuDNNのバージョン依存があるので注意が必要。

続きを読む

【Python】多腕バンディット問題①―ε-greedyアルゴリズムのPythonコードの詳細メモ

 ディスプレイ広告を出稿するにあたり、広告のレイアウト案1と案2をどちらにすべきかであったり、ウェブページのレイアウトをA案とB案のどちらにするかなどの意思決定の場面に遭遇する機会が仕事でありました。
 前者では決裁関与者による手直しにより案1に絞られ、後者では会議の出席者の多数決でA案になりました。前者の場合は、広告をより多くの人に見てもらうことが主な目的であり、一定数以上のインプレッション数を契約に盛り込めばいいという考えでした。一方、後者ではウェブページのレイアウトが煩雑でありもっと見やすくしたいという上の意見によりウェブページのレイアウトを修正することになりました。
 このとき、1つの案に多数決で絞り込むのではなく、現状のレイアウトも含めて3パターンのウェブページのレイアウトをすべて利用して、直帰率などの定量的な指標を用いて検証すればいいのになーと思うとともに、そういえばA/Bテスト以外にもバンディットアルゴリズムとかあるけど具体的にどんな手法なんだっけという状態でした。なので、これは多腕バンディット問題について勉強する機会が訪れたんだということにして、今回はε-greedyアルゴリズムについての学習メモを残しておきます。

続きを読む

【式展開】2値分類問題における交差エントロピー誤差関数及びパラメータに対する勾配の導出について

『詳解ディープラーニング』(PP.88-91)を読んだので、復習を兼ねて該当ページの式展開をより詳細に記載してみました。

続きを読む

【式展開】シグモイド関数自身でその1階の微分を表現できることについて

シグモイド関数(sigmoid function)


{ \displaystyle
\sigma(x) = \frac{1}{1+e^{-x}}
}


微分すると、


{ \displaystyle
\sigma'(x) = (1 - \sigma(x))\sigma(x)
}


として表現できるのがこの関数の特徴だそうです。以下ではこのような式になるのか確認してみます。

続きを読む

【学習メモ】 単純パーセプトロンのpythonコードの一部

そろそろ深層学習の手法も勉強してみたいと思い『詳解ディープラーニング』を少しずつ読んでいます。
この本で分からなかったことやメモを残しておきたいことなどを個人的な学習メモとして残しておきます。

なお、上記の書籍のコードは著者が以下で公開しています。
GitHub - yusugomori/deeplearning-tensorflow-keras

続きを読む

【Java】Commons-Math3.xライブラリによる単回帰分析のコードの紹介

javaによる単回帰分析の簡単なコードをメモ代わりに残しておきます。

単回帰なので目的変数と説明変数の共分散を説明変数の分散で割り算すればいいだけであり、わざわざライブラリを使用するほどではないですが、せっかくなのでApache Commonsの Commons-Math3.xライブラリを使用してみます。
このライブラリの概要については以下のスライドで簡単にまとめられてます!

speakerdeck.com

コード例は以下のとおりです。

//simpleRegressionクラスをインポート
import org.apache.commons.math3.stat.regression.SimpleRegression;

public class Regression {

    public static void main(String[] args) {

        // インスタンスの作成(引数のtrueは定数項ありを意味する)
        SimpleRegression simpleRegression = new SimpleRegression(true);

        // addDataメソッドを利用してsimpleRegressionにデータを渡す
        simpleRegression.addData(new double[][] {
                {1, 2},{2, 3},{3, 4},{4, 5},{5, 6}
        });

        // 推定したパラメタを表示する
        System.out.println("** 出力結果 **");
        System.out.println("定数項 : " + simpleRegression.getIntercept());
        System.out.println("係数推定値 : " + simpleRegression.getSlope());
    }
}

出力結果は以下のとおりです。

** 出力結果 **
定数項 : 1.7
係数推定値 : 1.1



(補足)
simpleRegressionクラスには決定係数を取得するメソッドなど様々なメソッドがあります。メソッドの一覧については以下のリンク先をご覧ください!
SimpleRegression (Apache Commons Math 3.3 API)