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

分類問題が線形分離可能であれば、単純パーセプトロンで解決できる。例として、パーセプトロンで論理回路を作るというものがある。それについては 単純パーセプトロンによる論理回路(1) 単純パーセプトロンによる論理回路(2) を参照。 論理回路の場合、座標…

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

単純パーセプトロンで、ANDゲート・NANDゲート・ORゲートを作ることができる。また、これらを組み合わせることで、XORゲートも作ることができる。 このことについては、 単純パーセプトロンによる論理回路(1) を参照。 実は、NANDゲートだけで、他の全ての論…

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

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

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

2層フィードフォワードニューラルネットワークで、MNISTの手書き数字を認識する。 MNISTについては、 Kerasに含まれるMNISTのデータ構造 を参照。 一般的に、入力層はニューラルネットワークの層に含めない。2層だと、中間層が1層と、出力層のみの構成になる…

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

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

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

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

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

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

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

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

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

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

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

【メモ】 週足は、上昇中の短期移動平均と水平の節目ラインに支えられて上昇中。 日足の短期移動平均は上昇から一旦下降して水平気味。 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でやるかというと、いずれ機械学習を試したくなった時のことを考慮に入れているからです。他の言語でも良いのですが、やはり機械学習まわりのライブラリが充…

Pythonでアプリオリ・アルゴリズムを実装してPyPI登録

アソシエーション分析(バスケット分析) Pythonでアプリオリ・アルゴリズムを実装したライブラリはいくつかありますが、リフト(Lift)値を考慮に入れたものは、Orangeしか見当たりませんでした。 しかし、Orangeはpip installできないので不便だと思い、自…

BigQueryのライブラリ(Python)が変更

AttributeError: ‘QueryJob’ object has no attribute ‘results’ 以前に作ったJobで、PythonでBigQueryを叩くものがあり、cronで毎日動かしていたのですが、昨日はエラーになっていました。 予想通り、ライブラリ https://github.com/GoogleCloudPlatform/go…

pip installがこけた

AttributeError: ‘_NamespacePath’ object has no attribute ‘sort’ 今日新しくmkvirtualenvでPython3.5.2の環境を作り、pip installするとエラーになりました。 $ pip install --upgrade pip としても直らず。エラーをよく見ると、setuptoolsが怪しいことに…

RubyによるFX自動売買システム(導入検討)

Jiji FXの自動売買システムを構築しようとすると、メタトレーダー4(MT4)という有名なツールを使うのが普通です。しかし、取引アルゴリズムを実装する際には、MQLという独自言語を使う必要があります。 Pythonから実行できるブリッジライブラリもあるんです…

ダミー変数を生成するgemを作ってみた

dummy_variables 時系列分析をする際に、量的データ以外の事項を考慮に入れたい場合があります。 例えば、商品の売上推移をモデリングするために、価格などの数値以外にも、曜日の影響を取り入れたい場合です。曜日は数値ではないので、何らかの形で数値化す…