今日も窓辺でプログラム

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

HHKB + AutoHotKey で、Mac の Command と Control を使い分けられる操作感を Windows でも手に入れる

Windows と Mac の Control キーの違いから生じる問題 Windows ではコピーやペースト等のショットカットの実行に Control キー (Ctrl) を多用します。 一方で Mac では Ctrl キーはカーソル移動等に使うことが多く、コピーやペーストといった操作には代わり…

ChatGPT にコーディング面接の面接官をやらせてみる

背景 ChatGPT (GPT-4) が話題ですね。日々驚くべき記事や活用方法を目にしていますが、中でも次の記事のように、プロンプトを与えるだけで自然言語を活用したゲームが簡単に実現できてしまうことに感動しました。 note.com コーディング面接の問題を解かせる…

SimpleImputerで欠損値を補完する

この記事について Scikit-learnのSimpleImputerクラスを使用すると、データセットの欠損値を簡単に補完することができます。Kaggleの練習用Competitionでも使われているタイタニックのデータセットを例に、SimpleImputerをどのように使うか見ていきたいと思…

MT4でカスタム指標を定義してみる

前回はMT4でスクリプトを実行してみました。今回はチャートに自分で定義した指標を描画するカスタム指標を定義してみようと思います。 カスタム指標とは 前回も紹介した通り、カスタム指標 (Custom Indicator) とは独自に作成したテクニカル指標をチャートに…

MT4でスクリプトを実行してみる

FXなどの自動売買で使用されるMT4でスクリプトを実行してみます。 MT4とは? FXの取引に使われるソフトウェアです。色々な通貨ペアのチャートを表示することに加え、そのチャートに対してプログラムを走らせることができます。 プログラムは次の3種類に分け…

VSCodeでscrollPageDownした時にカーソルも付いてきてほしい

問題点 今までVisual Studio Codeに表示しているテキストをページスクロールする時にはscrollPageDown, scrollPageUpにショートカットを割り当てて使っていました。 手元の環境だと、scrollPageDownなどでテキストをスクロールした際に、文字入力のカーソル…

Scala + SparkでDatasetを使ってTFIDFを計算する

はじめに 前回の記事ではSparkをローカルで試せる環境を用意しました。 Windows Subsystem for Linux(WSL)でSpark環境を構築してみる - 今日も窓辺でプログラム 今回は日本語のテキストファイルに含まれる単語数をカウントする処理をSpark上で行ってみたいと…

Windows Subsystem for Linux(WSL)でSpark環境を構築してみる

Sparkで走らせるプログラムの開発のため、WindowsのローカルでSparkを走る環境を用意したかったので作業内容をメモしておきます。 環境 Windows 10 Version 1803 WSLでUbuntu 16.04をインストール 以下手順に出てくるコマンドはWSLで走らせたbashに入力した…

Tensor2Tensorを使って独自データでseq2seqしてみる

はじめに Tensor2Tensorという、広く使われているモデルやデータセットが実装されているディープラーニングのライブラリがあります。 GitHubのREADMEによると、Tensor2TensorはGoogle Brainチームなどによって開発されているようで、中身はTensorFlowで実装…

SentencePieceを使用してRNN言語モデルを学習させてみる

はじめに 前回の記事ではpytorchのサンプルコードを参考にし、Wikipediaの記事の一部に対してRNN言語モデルを学習させてみました。 RNN言語モデルのpytorch実装をWikipediaの記事で学習させてみる - 今日も窓辺でプログラムその際にWikipediaの記事を単語に…

RNN言語モデルのpytorch実装をWikipediaの記事で学習させてみる

はじめに pytorchのGitHubに上がっているサンプルを見ていたら、RNNを使って言語モデルを実装しているものがありました。 examples/word_language_model at master · pytorch/examples · GitHub本当はいろんなネットワークを1から実装するのがよいのでしょう…

ビットコインの約定履歴を取得してローソク足チャートを描いてみる

はじめに ここ最近、ビットコインを筆頭とした仮想通貨が世間を騒がせているようです。私は完全に乗り遅れてしまいました。仮想通貨の取引所はAPI等も多く公開しているようなので、遅れながらも何もやらないよりはと思い、公開APIを読んでビットコイン取引の…

PyTorchでMNISTをやってみる

はじめに PytorchでMNISTをやってみたいと思います。 chainerに似てるという話をよく見かけますが、私はchainerを触ったことがないので、公式のCIFAR10のチュートリアルをマネする形でMNISTに挑戦してみました。Training a classifier — PyTorch Tutorials 0…

Bash on Windows 起動時に ~/.bashrc が読み込まれない

現象 Bash on Windows 環境で ~/.bashrc に設定を追記しても、bash起動時に設定が読み込まれない、という現象に遭遇しました。 source ~/.bashrcとすれば設定は反映されるものの、毎回これは面倒くさい…。 解決策 GitHubのIssueにありました。 .bashrc file …

Wikipediaでword2vecの学習してEmbedding Projectorで可視化してみる

はじめに 前回の記事で、Wikipediaの全行に対してループを回せるような環境を用意しました。 www.madopro.netそのコードを利用して、今回はWikipediaの全記事をもとに gensimを使ってword2vecモデルを学習して、 その結果をEmbedding Projectorを使って可視化…

Wikipediaの日本語記事を全行を、分かち書きしてforループで回す

はじめに 機械学習の勉強をするにあたって、日本語Wikipedia全文を学習データにできるとよさそう、ということでデータのダウンロードから、分かち書きされた文章をPythonのfor文で回す段階にもっていく方法をまとめました。 はじめに 環境 コード Wikipedia…

scikit-learnのtrain_test_splitで訓練データとテストデータを分割する

はじめに scikit-learnのtrain_test_splitという関数を使うと、データセットを訓練データをテストデータに簡単に分割できます。 同じくscikit-learnに付属している数字手書き文字のデータセットを使用した例を紹介します。

ニューラルネットワークを実装する [Part 4 バックプロパゲーションのベクトル化]

はじめに 前回に引き続き、Peters' NoteのPart 4 Vectorizationを見ていきます。今回の記事では2クラス分類問題に対して、 バックプロパゲーションをベクトルで扱う方法 Gradient Checking モーメンタム法 を順に実装していきます。 目次 はじめに 目次 今回…

ニューラルネットワークを実装する [Part 3 隠れ層とバックプロパゲーション(誤差逆伝播法)編]

はじめに 前回の記事の続きです。Peters's NoteのPart 3を追っていきます。 非常にシンプルなモデルを使って、隠れ層が果たす役割や、バックプロパゲーション(誤差逆伝播法)の考え方を見つつ、実装していきます。 目次 はじめに 目次 今回扱うニューラルネッ…

ニューラルネットワークを実装する [Part 2 ロジスティック回帰編]

はじめに Notes on machine learning のニューラルネットワークに関するメモのPart 2の部分を追っていきます。 前回は線形回帰でしたが、今回はロジスティック回帰です。前回の記事: www.madopro.net 目次 はじめに 目次 ロジスティック回帰 重みの学習に使…

ニューラルネットワークを実装する [Part 1 線形回帰]

はじめに 最近機械学習の勉強ができてなかったのですが、知人にとあるチュートリアルをおすすめされたので、自分の学習も兼ねて紹介記事を書いていきます。Notes on machine learning というメモの How to implement a neural networkというシリーズです。 …

Python (Flask) を使って簡単なLINEのBotを作ってみる

はじめに ここ最近新しいチームに参加し、仕事がバタバタしていて更新が滞ってしまっていました。 以前のチームとはかなり毛色や作業内容が異なるので、今回は新しいチームでの勉強も兼ねて記事を書いてみます。今回は、LINEが提供しているMessaging APIを使…

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

ホットエントリーに掲載されました 先日、当ブログのこの記事がはてなブックマークのホットエントリーに掲載されました。 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を使用します。