読者です 読者をやめる 読者になる 読者になる

今日も窓辺でプログラム

外資系企業勤めのエンジニアが勉強した内容をまとめておくブログ

初めてはてなブックマークのホットエントリーに掲載されたので、アクセスログを解析してみた

ホットエントリーに掲載されました 先日、当ブログのこの記事がはてなブックマークのホットエントリーに掲載されました。 www.madopro.netこの記事を書いている時点で500個以上のブックマークをいただいています。私が観測していた限り、このブログの記事が…

RNN/LSTMを使った言語モデルをTensorFlowで実装してみる

はじめに 以前、TensorFlowのBasicRNNCellを使用して文字レベルの言語モデルを実装しました シンプルなRNNで文字レベルの言語モデルをTensorFlowで実装してみる - 今日も窓辺でプログラム今回は、前回のコードを少しだけいじって、単語レベルの言語モデルを…

Pythonの標準出力でのUnicodeEncodeErrorの原因となる文字を置換する方法

目次 標準出力でのUnicodeEncodeError 標準出力はio.TextIOWrapperで管理されている 解決方法 参考記事 標準出力でのUnicodeEncodeError Pythonで日本語の処理をしていると、UnicodeEncodeErrorに出くわすことがあるかと思います。例えば私が今回遭遇したの…

CNTKでロジスティック回帰を試してみました

はじめに CNTKのチュートリアルの一つ目の題材がロジスティック回帰だったので、チュートリアルに沿ってロジスティック回帰をしてみます。 今回は、下記のチュートリアルを追いかけたものを日本語で解説しているような記事になります。 CNTK/CNTK_101_Logist…

CNTKの環境構築と動作確認をしてみる

はじめに GoogleがTensorFlowというディープラーニングのフレームワークを提供しているように、MicrosoftもCNTKというディープラーニングのフレームワークを提供しています。 普段はTensorFlowを触っていたのですが、仕事でCNTKも触らなきゃいけなさそうなの…

TensorBoardのEmbedding Visualizationで単語ベクトルたちを可視化してみる

はじめに TensorFlowの0.12から、Embedding Visualizationという機能が追加されました。 単語や画像などを表現しているベクトルを可視化するためのツールです。公式サイトの説明ページを開いてみてください。Embeddingが3次元空間にきれいに可視化されていて…

日経平均のテクニカル指標を計算してヒストグラムや散布図を書いてみる

はじめに 以前、日経平均が日中にどの程度動くかの予想にチャレンジしていました。 www.madopro.netS&P500、ハンセン、DAXなど、世界各国の指標をもとにして予想するというアプローチだったのですが、以前のアプローチだと日中の値動きを予測するのにはあま…

Pythonでローソク足と出来高を1つのチャートに簡単に描く方法

今回やること Pythonを使ってYahoo!ファイナンスの株価時系列データを読み込み、ロウソク足と出来高のチャートをひとつの図に描く方法を紹介します。 データの読み込みにpandas、描画にはmatplotlibを使用します。

「SOFT SKILLS ソフトウェア開発者の人生マニュアル」がブログを書き始めたきっかけでした

読んだ本 まだ年始のお休み中で少し時間もあるので、たまには気分転換に書評というか、読んだ本の感想でも書いてみようと思います。今回読んだ本は、「SOFT SKILLS ソフトウェア開発者の人生マニュアル」という本です。SOFT SKILLS ソフトウェア開発者の人生…

金融データのPythonでの扱い方

はじめに Udacityというネット上のビデオを視聴する形で受講できる講義を提供しているサイトがあります。 Udacity - Free Online Classes & Nanodegreesサイトや講義は英語なのですが、その中で Machine Learning for Tradingという講義を見つけました。 こ…

TensorFlowでボートレースの予想しようとして失敗した話

はじめに 以前は日経平均が上がるか下がるかを予測していましたが、少し気分を変えてボートレースの結果を予測してみようと思い立って実装しました。 結論からいうと、今回は非常に単純なモデルを使い、訓練データに対しては完璧な精度を出したのですがテス…

TensorFlowでword2vecを使って単語ベクトルを学習する

今回やること 前回の記事で、RNNを使って文字レベルの言語モデルを実装しました。 シンプルなRNNで文字レベルの言語モデルをTensorFlowで実装してみる - 今日も窓辺でプログラム英語を対象にしたので入出力の次元は26文字+スペースの27次元で済んだのですが…

Pythonでunzipってどうやるの?

Pythonのリストを結合するzip関数の逆の挙動を実現する方法について、今日初めて知ったので記事として残しておきます。 そもそもzip関数とは zip関数は次の例のように、複数のイテラブル(下の例の場合はリスト)のi番目の要素をまとめた新しいイテレータを…

シンプルなRNNで文字レベルの言語モデルをTensorFlowで実装してみる

はじめに GoogleやMicrosoftなどがディープラーニングを使用した機械翻訳をリリースして各所で話題になっています。こんな感じで記事にもなっています。 Google翻訳、深層学習による新システムで人に迫る自然で正確な翻訳を実現 | マイナビニュース Google翻…

「ゼロから作るDeep Learning」を読んで知ったことのメモ

ディープラーニングの知識があまりない私が「ゼロから作るDeep Learning」を読んで知ったことを、自分用のメモも兼ねてまとめておきます。 本では実際のコードを使ってディープラーニングの基礎を解説していますが、今回の記事はメモなのでコードは出さずに…

日経平均の日中の値動きと高い相関のある他国の指数は存在するのか?

この記事について 以前までの記事で、「日経平均株価の終値が、その日の始値に比べて上がる(UP)のか、下がる(DOWN)のか、ほぼ変わらない(SAME)のか」をTensorFlowを使って予測しようとするシリーズを投稿していました。 日経平均が日中どのくらい変動するか…

pandasで使われるデータ構造 ~1次元、2次元、3次元のデータの扱い方~

この記事について 今までなんとなくで使用していたpandasですが、なんとなくで実装していたコード(日経平均予想のやつです)が汚くメンテナンスが難しくなってきたので、一度ちゃんとpandasでのデータの扱い方をまとめておこうと思って書いたものです。pand…

LeetCode 307: Range Sum Query - Mutable をセグメント木で解く

この記事について Union-findに続き、コーディング面接に備える上で大事そうなデータ構造であるセグメント木を勉強したので、セグメント木を使用して解ける問題を解いてみます。 セグメント木とは? セグメント木自体の説明は、また他の方のスライドに丸投げ…

Microsoft Bot Framework と LUIS で複数の状態を持ったBotを作ってみる (完結編)

この記事について 以前投稿していたMicrosoft Bot Framework シリーズの完結編です。期間も空きましたし、その間にSDKのバージョンが上がったりLUISが日本語対応したりといろいろあったので、今までやってきたことの復習も含めて書いていきます。 Microsoft …

LeetCode 200: Number of Islands をUnion-findを使って解く

この記事について Union-findについて勉強したので、LeetCodeのNumber of Islandsという問題をUnion-findを使用して解いてみます。 Union-findとは? Union-findは素集合データ構造を操作するためのアルゴリズムで、2つの要素が同じ集合に属しているのかを判…

LeetCode 392: Is Subsequence

この記事で扱う問題 LeetCodeの392 Is Subsequenceという問題を解きます。 文字列 s と t があるとき、sがtの部分列 (subsequene)かどうかを判定せよ。sとtは英語の小文字のみを含む文字列で、tは長い(50万文字)こともあるが、sは短い文字列(100文字以下)で…

LeetCode 338: Counting Bits

この記事で扱う問題 LeetCodeのCounting Bitsという問題を解きます。問題を適当日本語訳で引用すると、 負でない整数 num が与えられる。 0 例:num = 5 の場合、戻り値は [0,1,1,2,1,2] となる。 https://leetcode.com/problems/counting-bits/ といった感…

日経平均が日中どのくらい変動するかをTensorFlowで予測する (今までのまとめ)

この記事について 少し時間が空いてしましましたが、日経平均予測シリーズの続編です。 ニューラルネットワークを用いて、ある日の日経平均の終値が当日の始値と比べて「上がる」か「下がる」か「ほぼ変わらない」かを予測します。今まで数回の記事で日経平…

加算演算子だけを使用して、減算・乗算・除算を実装する

今回解いた問題 「加算演算子(+)だけを使用して、減算・乗算・除算を実装せよ」『世界で闘うプログラミング力を鍛える150問 トップIT企業のプログラマになるための本 』を解いている際に見つけた問題を解いてみました。 以前LeetCodeでも似たような問題を解…

n & (n - 1) == 0 の意味とは?

最近問題を解いていて n & (n - 1) == 0 というような条件式をたまに見かけます。結論から言うとこれは n が0または2の累乗 (= )かどうかを判定する条件式なのですが、どうしてそうなるのか丁寧に見ていきたいと思います。

mapとunordered_mapの実装や性能の違い

C++のstd::mapとstd::unordered_mapの実装の違いを知らなくて恥ずかしい思いをしたので、調べた結果をまとめておきます。 記事のまとめ std::mapは平衡二分探索木、std::unordered_mapはハッシュテーブルで実装されている。 キーの順番を保持したい場合はmap…

LeetCode: コーディング面接に向けた練習に使えるサイトの紹介

この記事について LeetCode Online Judge というアルゴリズムやデータ構造に関する問題を解いて、オンラインジャッジまでできるサイトがあるので、どのようなサイトかを簡単に紹介します。

モデルの評価とバックテスト ~株価予測(6)~

この記事について 前回、は日経平均の終値が始値より「上がる」か「下がる」か「ほぼ変わらない」かを予測するモデルをTensorFlowで構築しました。 今回の記事では、そのモデルの性能について詳しく評価していきます。

PythonとJupyter Notebookを使ってデータと遊ぶ方法

この記事について Pythonを使って、CSVなどのデータを分析・可視化する方法を紹介します。 今回は、インタラクティブにデータの分析ができるJupyter Notebookというツールの使用方法をインストール段階から解説していきます。

日経平均の終値が始値より上がるか下がるかを予測する ~株価予測(5)~

今回やること 日経平均の終値が、その日の始値に比べて「上がる」か「下がる」か「ほぼ変わらない」かを、TensorFlowを使用して予測してみたいと思います。前回までの記事では、日経平均の終値が前日の終値と比べて上がるか下がるかを予測するモデルを作成し…

隠れ層の数を調整してみる ~株価予測(4)~

今回やること 前回 はTensorBoardでグラフや損失関数、精度の変化を可視化する環境を整えました。 今回は隠れ層の層数や、各層のノードの個数を変えてみて、精度がどのように変化するのかを可視化したグラフを見ながら確認してみたいと思います。前回記事: …

TensorBoardで学習の過程を可視化する ~株価予測(3)~

今回やること 前回までに用意したデータ・ニューラルネットでは、日経平均の終値が前日より上がるか下がるかを60%後半台の精度で予測できていました。 今回は、ネットワークが最適化されていく過程をTensorBoardを使って可視化して確認してみたいと思います。

日経平均の終値が前日より上がるか下がるかをTensorFlowで予測する(2.5)

今回やること 前回まで使用していたプログラムがYahoo!Financeの仕様変更で使えなくなっていたので、書き直します。 前回までの記事はこちら: 日経平均の終値が前日より上がるか下がるかをTensorFlowで予測する(1) - 今日も窓辺でプログラム 日経平均の…

Windows 10 + bash + Atom + scriptパッケージでC++をお手軽コンパイルしたかった…

Windows 10のAnniversary Updateで追加された Bash on Windows を使ったら、Atomのscriptパッケージ でC++をお手軽コンパイルできるんじゃないかと思ったけど、結局できなかった作業ログです。

Neural-style を Windows 10 の bash で動かしてみる

この記事でやること Windows 10 で bash が使えるようになったということで、試しに neural-style を動かしてみたいと思います。ただの動作報告です。

日経平均の終値が前日より上がるか下がるかをTensorFlowで予測する(2)

この記事について 前回記事の続きです。 日経平均の終値が前日より上がるか下がるかをTensorFlowで予測する(1) - 今日も窓辺でプログラムこのシリーズでは、以下の記事で解説されていることを、日経平均に置き換えて実行しています。 datalab/FinancialTi…

日経平均の終値が前日より上がるか下がるかをTensorFlowで予測する(1)

この記事について この記事は、 datalab/FinancialTimeSeriesTensorFlow.ipynb at master · corrieelston/datalab · GitHub を日経平均に置き換えてなぞっていくシリーズの3つ目の投稿で、以下の2つの記事の続きです。 日経平均と相関のある経済指数は何か?…

日経平均と相関のある経済指数は何か?(2)

前回のまとめ 前回の記事の続きです。 日経平均と相関のある経済指数は何か?(1) - 今日も窓辺でプログラムdatalab/FinancialTimeSeriesTensorFlow.ipynb at master · corrieelston/datalab · GitHub で紹介されている、世界の経済指数を使って株価を予想…

日経平均と相関のある経済指数は何か?(1)

今回やること このページで、Google Cloud Platformを使用してアメリカの株価(S&P 500)が上がるか下がるかを予想する方法を紹介しています。 datalab/FinancialTimeSeriesTensorFlow.ipynb at master · corrieelston/datalab · GitHubリンク先の記事内では、…

LeetCode 31: Next Permutation

順列苦手で解けなかったのでメモ。問題はLeetCodeに掲載されていたものを使用します。LeetCode自体の紹介はこちら。 LeetCode: コーディング面接に向けた練習に使えるサイトの紹介 - 今日も窓辺でプログラム 問題 適当な和訳 整数の配列が入力として与えられ…

Microsoft Bot Frameworkで簡単なBotを作ってみる (4) ~FormFlowを使った対話~

今までにやったことと今回のゴール 前回の記事やそれ以前の記事では、次のようなことを行いました。 。 電力使用状況を聞くとPromptDialogで確認したうえで電力使用状況を教えてくれるDialogを作成 電力使用状況は、Yahoo!の提供するAPIを使用して取得 Botを…

LeetCode 232: Implement Queue using Stacks

LeetCodeに、スタックを使ってキューを実装せよという問題がありました。 Implement Queue using Stackspushが計算量、popも償却計算量がとなる方法が紹介されていたので、まとめておきます。 償却計算量が何かについては、私の以前の記事を参照してください…

Pythonのlist型の実装を読んでみる

この記事を読むとわかること Pythonのリスト型の実装に軽く目を通してみます。この記事で、次のような疑問が解消されるはずです。 Pythonのリスト型は実際はどのような形で定義されているのか? リストの要素へのインデックスでのアクセスはなぜなのか? リ…

償却計算量とは何か

時間計算量というと、平均計算量と最悪計算量についてはよく見聞きしましたが、償却計算量という言葉を知らなかったので、それについてまとめておきます。

Microsoft Bot Frameworkで簡単なBotを作ってみる (3) ~Dialogを使った簡単な対話~

前回は、サンプルコードを少しだけいじった単純なbotを、AzureにあげてSkype上で会話できるようにしました。 今回はBot Builderに用意されているDialogクラスを使って、シンプルな会話を可能にする能力を実装してみたいと思います。

Microsoft Bot Frameworkで簡単なBotを作ってみる (2) ~1つのフレーズだけに答えてくれるBot~

前回の記事でMicrosoft Bot Frameworkと、どのようなbotを作りたいかを簡単に説明しましたので、今回からは実際にbotを作成していきたいと思います。 今回のゴール 前回、電力の使用状況を教えてくれるbotを作るとの述べましたが、まずは一番シンプルなもの…

Microsoft Bot Frameworkで簡単なBotを作ってみる (1) ~Microsoft Bot Frameworkとは?~

Microsoft Bot Framework で簡単なbotを作ってみようと思ったので、その過程を記録に残しておきます。 Microsoft Bot Framework とは? 今年の4月に Microsoft Bot Framework というBotを簡単に作るためのフレームワークが公開されました。 公式ドキュメント…

Atomに愛着を持つため痛エディタにしてみた

概要 Atomに愛着を持つために、痛エディタ化してみました。Atomの左右にそれぞれお気に入りのキャラを表示し、Tree-ViewやMinimapにも同じような明るさで画像を表示するよう調整しました。 環境 Windows 10 (Update 1511) Atom 1.2.4 やったこと style.less …