2018-01-01から1年間の記事一覧

多層パーセプトロン(MLP)による手書き数字認識(Kerasでの実装)

多層パーセプトロン(MLP)で、MNISTの手書き数字を認識する。 実装するのは3層のMLPだ。つまり、中間層が2層と出力層が1層の構成となる。高い正解率を目指すため、ユニット数も多くする。ただし、過学習を防ぐために、何らかの正則化をする必要がある。 今回…

2層フィードフォワードニューラルネットワークによる手書き数字認識(Kerasでの実装)

2層フィードフォワードニューラルネットワークで、MNISTの手書き数字を認識する。 一般的に、入力層はニューラルネットワークの層に含めない。2層だと、中間層が1層と、出力層のみの構成になる。 また、フィードフォワード(順伝播)なので、データは一方向に…

Kerasに含まれるMNISTのデータ構造

機械学習の例として、手書き数字の判定をさせることがある。サンプルデータとしては、MNISTがよく使われる。Kerasのサンプルデータセットにも、MNISTが含まれている。今回は、そのデータ構造を確認する。

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

分類問題が線形分離可能であれば、単純パーセプトロンで解決できる。例として、パーセプトロンで論理回路を作るというものがある。 論理回路の場合、座標上の4点(0, 0), (0, 1), (1, 0), (1, 1)を考える。各点は、論理回路の2つの入力の組に対応する。信号を…

単純パーセプトロンによる論理回路(2)

単純パーセプトロンで、ANDゲート・NANDゲート・ORゲートを作ることができる。また、これらを組み合わせることで、XORゲートも作ることができる。 実は、NANDゲートだけで、他の全ての論理回路を実現できる。論理回路どころか、あらゆる回路を実現できるが、…

単純パーセプトロンによる論理回路(1)

単純パーセプトロンで、ANDゲート・NANDゲート・ORゲート・XORゲートを実装する。ただし、XORゲートは単層では実装できない。非線形領域は単純パーセプトロンで分離できないからだ。そこで、他の3種を組み合わせることで、XORゲートも実装する。

FX, EURUSD(ユーロドル), 2018/05/18

FX

【メモ】 4時間足の下降トレンドが一旦終了して、大きく戻してからのもう一段の下げ途中だった。 4時間足の短期移動平均線(1時間足の中期移動平均線)への戻しからの戻り売り。 基本的に週持ち越しはしたくない(本日は金曜日)し、既にお酒を飲んでいたことも…

FX, GBPUSD(ポンドドル), 2018/05/15

FX

【メモ】 4時間足の大きな下降トレンド終了からの横ばいが続いていた。 日足の短期移動平均線が追いついてきて、もう一段下げそうな局面になっていた。 1時間足でヘッドアンドショルダーズを形成したところでショート。 レートが大きく戻してきたので、建値…

FX, EURUSD(ユーロドル), 2018/05/11

FX

【メモ】 4時間足レベルの下降トレンド終了後の戻しを取りに行った。 ダブルボトムのネックラインでさらに小さくダブルボトムからのネックライン抜け。 金曜日の夜なので、早めの利益確定。 結果的にプラスだが、早めに利益確定することを考えると、損切り幅…

FX, USDJPY(ドル円), 2018/04/03

FX

【メモ】 4時間足の高値切り下げ、安値更新が見えつつある場面で、1時間足の直近安値割れの位置に逆指値の売り注文を入れて就寝。 夜間に注文が通って、1時間足・4時間足の短期移動平均が共に水平から下向きに。 起床したときには、利益を確保した状態で損切…

FX, GBPUSD(ポンドドル), 2018/03/21

FX

【メモ】 週足は、上昇中の短期移動平均と水平の節目ラインに支えられて上昇中。 日足の短期移動平均は上昇から一旦下降して水平気味。 4時間足の短期移動平均は上向き。水平の節目ラインに支えられて 安値切り上げが見えつつある状況。 1時間足で、安値切り…

毎月資金の追加がある場合の複利計算をするプログラム

投資をするときに、初期資金・月利・毎月追加する資金を固定すると、nヶ月後の資金がどうなるか、様々なパターンでシミュレーションするプログラムが欲しかったので書いてみました。 例として、初期資金200万円、月利10%、毎月20万円を追加することにしてシ…

Reactで作ったアプリにFirebase Authenticationでログインを実装

結論から言うと、index.jsでonAuthStateChangedを実行して、コールバックが返ってきてからReactDOM.renderを実行です(詳細は後述)。 はじめはcomponentWillMountでfirebaseのonAuthStateChangedを実行しようと思いました。 調べてみると、そのようにしている…

JavaScriptでnullなどが入った配列をソートする

JavaScriptで配列をソートするとき、nullなどが入っていると、うまくソートされないことがあります。 そこで、ソートするための関数を作りました。 var compare = (a, b, desc = true) => { if (a !== a && b !== b) return 0; if (a !== a) return 1; if (b…

JupyterでGo言語とJavaScript(Node.js)を使う

以前、 仮想マシンでJupyterを使うときの初期設定 を書いたのですが、さらに設定を追加しました。 Jupyterの拡張機能が結構充実しているので、どうせならPython以外の言語も使えるようにしておきたいところです。 今回はGo言語とJavaScript(Node.js)を使える…

仮想マシンでGo言語を使うときの初期設定

以下のようなシェルスクリプトを用意しました。 引数でバージョンを指定できます。デフォルトは1.9.2です。 レポジトリ管理のためのghqと、パッケージ管理のためのglideもインストールします。 #!/bin/bash echo '# goenv' >> ~/.bash_profile git clone htt…

仮想マシンでNode.jsを使うときの初期設定

以下のようなシェルスクリプトを用意しました。 引数でnvm, node, npmのバージョンを指定できます。指定しなければデフォルトの値が入ります。nodeのバージョンは現時点のLTS版をデフォルトとしています。 #!/bin/bash nvm_version=${1:-0.33.2} node_versio…

仮想マシンでJupyterを使うときの初期設定

さっとPythonで何かを試すときに、仮想マシンを用意して、以下のシェルスクリプトでJupyterを初期化することにしました。 引数でPythonのバージョンも指定できるようにしました。デフォルトは3.5.4です。 numpy, scipy, pandasはたいてい必要になるので、つ…

Pythonによる仮想通貨自動売買への道(1)

全何回になるのか未定ですが、Pythonで仮想通貨自動売買のプログラムを書いていきます。 なぜPythonでやるかというと、いずれ機械学習を試したくなった時のことを考慮に入れているからです。他の言語でも良いのですが、やはり機械学習まわりのライブラリが充…