Chainerでサクッとニューラル英日翻訳を試してみた

これはChainer Advent Calendar 2016の6日目です。 qiita.com Chainerによる実践深層学習がとても読みやすくて面白かったので8章の翻訳モデルを参考に英日翻訳するプログラムを組んで遊んでみました。 今回の環境 今回は下記のMacBook Airで実施しました。 O…

TensorFlowの手書き数字認識チュートリアルからざっくりディープラーニングを勉強してみました

手書き数字画像の認識を行うTensorFlowのチュートリアルであるMNIST For ML Beginners[日本語訳]およびDeep MNIST for Experts[日本語訳]を通してディープラーニングについて勉強したので理解した内容をまとめてみました。的な話です。 TensorFlowとディープ…

PHPで「1時間以内に解けなければプログラマ失格となってしまう5つの問題」の問題4と5を改めて解いてみました

PHP

前回、解いた 1時間以内に解けなければプログラマ失格となってしまう5つの問題が話題に ですが、さすがにあんまりな内容だったので問題4と5の答えを改めてそれっぽい感じにつくってみました。 主に次のページを参考にしました。 http://qiita.com/tanakh/ite…

プログラマ失格になりました

プログラマになりたいなぁと思って、 1時間以内に解けなければプログラマ失格となってしまう5つの問題が話題に 解いてみました、PHPで。 トータル1時間半ちょいかかってしまいプログラマ失格になってしまいました。 残念。 解き方が全くスマートで無く、関…

D言語でMVarしだした

前に参加したHaskellによる並列・並行プログラミングの読書会にて、 #heyhey_haskell 7.5の無制限チャネルはC言語みたいなポイント操作が素敵でした— にへまk (@nihemak) January 24, 2015 ×ポイント操作 ◯ポインタ操作— にへまk (@nihemak) 2015, 1月 24 で…

Pythonにロジスティック回帰で画像を学習させてみました

今回はロジスティック回帰で画像とラベルの対応関係を教師付き学習させて画像分類の精度を検証して遊んでみました。 ちなみに前回は画像を教師なし学習のk-means法でカテゴリ分けしました。 Pythonで画像の簡単なカテゴリ分け - Inside Closure - にへろぐ …

珠玉のアルゴリズムデザイン19章の数独ソルバー読みました

関数プログラミング 珠玉のアルゴリズムデザインの第19章の"単純な数独ソルバー"のアルゴリズムを追いました。 各効率化の戦略を読み解くのが大変だったので後でまた読むときのために概要だけメモを残します。 お題は数独ソルバー 数独を解くアルゴリズム…

モンティ・ホール問題をGoで確かめてみました

少し前に参加した続・わかりやすいパターン認識の読書会でモンティ・ホール問題について知ったので”司会が正解を知っているか否かによる結果の違い”について、ちょうど触ってみたかったGoで確かめてみました。(Go触りたかっただけ) モンティ・ホール問題って…

Pythonで画像の簡単なカテゴリ分け

これはPython Advent Calendar 2014の16日目です。 実践 機械学習システムを読んでいて画像のパターン認識が面白そうだったので実装して遊んでみました。主に10章のコンピュータビジョンと3章のクラスタリングを参考にしました。ほとんど、NumPyやscikit-lea…

FRPを調べててelmに入門した話

これはElm Advent Calendar 2014の11日目です。 よく知らなかったFRP(Functional Reactive Programming,リアクティブプログラミング)について調べてて少しだけElmに入門しました。 ※先週やった実装なのでElmのバージョンは0.13です。いろいろ変わったらしい0…

ScalaでFizzBuzzやってみた

(4年半ほど仕事にやられてましたが何とか元気です。) 先日ひさしぶりにFizzBuzzを書く機会があったので再学習中のScalaでもやってみました。 ■ 無限リストによる実装 まず、1から始まるFizzBuzzの無限リストを100まで評価する方法で実装してみました。 // 1…

アプレンティスシップ・パターン

本書は「徒弟制度」をキーワードとして物事に習熟するための方法が記載されている。確かに「無知の受け入れ」と「適切なフィードバック」の繰り返しは大事だと思う。後は終わりが無いことを楽しむこと。 問題は「適切にフィードバックしてくれる環境と人」を…

Perl6はまだ様子見する。

そろそろかなとrakudo(#29)を触ってみた感想。もう少し待とう・・・。とりあえず触った事を記録。試したのは加算器関数。まず、イメージで実装してみる。 sub make_adder($n) { {$n += $^i} } my $adder30 = make_adder(30); $adder30.(1).say; # 31になる $…

PerlでDSL

『Rubyによるデザイン・パターン』を読み終えて内部DSLが分かった気になった。調子に乗ってPackRat*1をPerlに移植してみた。少しPerl風にアレンジ。まず、内部DSLから。 # 内部DSL(backup.pr) backup { from => '/home/hoge/old1', to => '/tmp/backup', fil…

Rubyでチャーチ数

Rubyに慣れるとっかかりとしてチャーチ数を定義してみた。 lambdaで包まずに関数リファレンスを関数に渡す方法がわからない。。 # 数値(xに対するs関数の適用回数で数値を表す) def zero (s, x) x end def one (s, x) s[x] end def two (s, x) s[s[x]] end d…

PHPとファーストコンタクト

PHP

食わず嫌いだったPHP。触ってみると手に馴染みそうで良い。 早速、フィボナッチ数列に挑む。

Perlで対話型コマンドの実行

前回はTeraTermマクロで対話型コマンドの実行をがんばった。けど扱いづらい。Perl使いたい。というわけで、telnetコマンドをfork/execしてpipeで標準入出力を操作してみた。*1 *2まず、ファイルハンドルから値を読み込む関数と書き出す関数。読み出しでは応…

TeraTermマクロで対話型コマンドのテスト

定期的に行われる対話型コマンドの回帰テスト。バッチ化できないからって毎度手動でやるのはアホらしいよね。というわけで、TeraTermマクロでがんばってみる。まずは簡単なテスト対象。 #include <stdio.h> int main() { int n = 0; do { printf("in => "); scanf("%d</stdio.h>…

そしてCOBOLerへ…

仕事でCOBOLを扱うことになった。少し勉強中。とりあえずオブジェクト指向してみる。まず、speakメソッドを有するAnimalインタフェースを定義する。 *>「Animal」インタフェース identification division. interface-id. Animal. procedure division. identi…

非決定性 with 例外

『On Lisp』の非決定性が面白い。 (define (two-numbers) (list (choose '(0 1 2 3 4 5)) (choose '(0 1 2 3 4 5)))) (define (parlor-trick sum) (let ((nums (two-numbers))) (if (= (apply + nums) sum) `(the sum of ,@nums) (fail)))) > (parlor-trick …

Perlで継続

現在、『On Lisp』が3巡目の終盤に差し掛かっている。でも、いまいち継続を理解できていない。分かり易い解説を見つけたのでPerlに翻訳してみた。(本を読む FizzBuzzとGaucheで学ぶ継続の基礎) use strict; use warnings; sub fizzbuzz { my ($next, ($n)) …

副作用関数のユニットテスト

ユニットテストの自動化で困るのが副作用を起こすコード。例えば、ファイルのI/Oを含む関数は自動テスト化に少し悩む。 # hoge.pl use strict; use warnings; package HOGE; use IO::File; main(@ARGV) if ($0 eq __FILE__); # テストしたい関数 sub main { …

Perlで遅延評価

遅延評価とは、HaskellやD言語なんかにある「アレ」のことだ。 遅延評価(ちえんひょうか、lazy evaluation、delayed evaluation)とは、計算機科学におけるプログラムの評価手法の一つ。主に関数型言語で使用される。対義語は先行評価(eager evaluation、s…

Perlでbind

関数に引数を束縛するbind関数のperl版。 sub sub_bind { my ($sub, @args) = @_; sub { $sub->(@args, @_); }; } 上位は呼び出すだけにしたい場合などに重宝する。

Lispお勉強中

心に余裕が出てきたこともあってLispを再学習中。今は『実践Common Lisp』を読んでいる。やっと第12章が終わった。 思い返すと腰を落ち着けてプログラミング言語の勉強をやってない。何とか使いこなしているのはC言語とPerlくらい。どちらも仕事で使ってい…

Binary Hacks

『Binary Hacks ―ハッカー秘伝のテクニック100選』を読み終えた。 本書はその名のとおりGNU/Linux依存のハックが満載だ。ダンプを読み読みしたり、プロセスの中からプロセス情報を読み読み・書き書きしたり、etc。 抽象化には限界がある。移植性を完全に無視…

C言語でクロージャ

クロージャって何だろう? クロージャは関数と環境を一緒にしたものである。クロージャは、関数がレキシカル環境から何かを参照するときには暗黙に必ず作られている。 『ANSI Common Lisp』- 6.5 クロージャ より どんな風に使うのだろう? アキュムレータを…

map and grep, foreach on C

Perlでリスト処理といえばmapとgrepにforeachだと思う。 たとえば、こんな感じで使える。実行すると"6 12 18 24 30"が標準出力に出力される。 #! /usr/bin/perl use strict; use warnings; # 要素に1から10を持つリストを生成する。 my @list1 = (1..10); # …

プロダクティブ・プログラマ -プログラマのための生産性向上術

『プロダクティブ・プログラマ -プログラマのための生産性向上術』を読了。本書のテーマはプログラマの生産性向上だ。どうすれば向上するのだろう?道具の習熟度を上げて適切に使いこなせば良い。これが本書の結論だ。それを個別の、例えばショートカットの…

クロージャによるクラスの代替

個人的にクロージャが使えればクラスの構文は要らないと思っている。例としてスタックを表すクラスをクロージャを使って定義してみる。まず、D言語で。