いものやま。

雑多な知識の寄せ集め

技術

楽譜作成ソフトLilyPondをインストールしてみた。

年初に書いた、今年やっていきたいことの一つの「作曲、音楽理論」の研究。 ぶっちゃけ、ラモーの音楽理論の「不協和音の二重用法」がホントに意味不明で、ずっと止まってたんだけど、ちょっとずつ再開しようかなと。 そのうえでブログを書くときに必要にな…

MacでiPhoneの画面を録画してみた。

iPhoneをいじってるとたまにあるのが、iPhoneの画面を録画したいなぁ、ということ。 例えば、ゲームをやっていて、そのゲームを紹介するため、とか。 けど、iPhoneの画面のスクリーンショットを撮ることは簡単に出来るわけだけど(電源ボタンを押しながらホ…

『OS自作入門』を読んでみた。(その6)

前回はリンカとリンカスクリプトを使ってアドレスの問題を解決した。 これで最初のOSっぽいプログラムは一応完了で、次はちゃんとフロッピーディスクの内容をメモリに読み込んで実行するIPL(Initial Program Loader)を作っていくことになる。 ただ、その前…

『OS自作入門』を読んでみた。(その5)

またまた間が空いてしまったけど、前回の続き。 今回はアドレスの問題を解決していく。 逆アセンブル おさらいで、何が問題だったかというと、ブートセクタはBIOSによってメモリの0x7c00に読み込まれるのだけど、このコードだと先頭が0x0000だと思ってリンク…

『OS自作入門』を読んでみた。(その4)

またまた間が空いてしまったけど、前回の続き。 今日は実際のブートコードの部分を見ていく。 Intel構文とAT&T構文 前回も少し触れた通り、本はNASMに似た筆者作のアセンブラを使っていて、その構文はIntel構文になっている。 一方、自分の使っているGNU as…

『OS自作入門』を読んでみた。(その3)

前回からだいぶ間が空いてしまったけど、続き。 前回は擬似命令を使ってただデータを作っただけだったけど、それではアセンブラを使ったとは言い難いので、今回はちゃんとしたアセンブラを書いてみる。 ちゃんとしたアセンブラのコード と言うことで早速、ち…

『OS自作入門』を読んでみた。(その2)

前回はVimをバイナリエディタとして使って直接フロッピーディスクのイメージを作った。 今回はアセンブラを使ってフロッピーディスクのイメージを作ってみる。 Binutilsのインストール 本ではNASMに似たnaskという著者作のアセンブラを使ってるけど、やっぱ…

『わかばちゃんと学ぶ Git使い方入門』を読んでみた。

ツイッターを見ていたら、社畜ちゃんで有名なビタワンさんの次のツイートが。 閉店ギリギリの本屋に駆け込んで、湊川あい(@llminatoll )さんの「わかばちゃんと学ぶGit 使い方入門」を買ってきた!これからGitを覚える人は是非!うろ覚えで今から復習した…

『OS自作入門』を読んでみた。(その1)

前回、『30日でできる! OS自作入門』を読んでいることをちょこっと書いた。 30日でできる! OS自作入門作者: 川合秀実出版社/メーカー: 毎日コミュニケーションズ発売日: 2006/03/01メディア: 単行本購入: 36人 クリック: 735回この商品を含むブログ (299件)…

MacでQEMUのビルドをしてみた。

最近、『30日でできる! OS自作入門』を読んでる。 30日でできる! OS自作入門作者: 川合秀実出版社/メーカー: マイナビ出版発売日: 2006/03/01メディア: Kindle版この商品を含むブログを見る この本自体はだいぶ昔に買っていたんだけど、分厚いので完全に積…

『熱血!アセンブラ入門』を読んでみた。

『熱血!アセンブラ入門』を読んでみたので、感想とか。 熱血! アセンブラ入門作者: 坂井弘亮出版社/メーカー: 秀和システム発売日: 2015/06/12メディア: Kindle版この商品を含むブログを見る 購入に至るまで この本を初めて見たのは、近くのショッピングモ…

輪行するなら知っておきたいテクニック。

自転車で遠出するなら、覚えておきたいのが輪行。 輪行が出来れば、電車で遠くまで移動してから自転車に乗ることも出来るし、あるいは逆に、遠くまで自転車で走っていって、そこから電車で帰ってくるといったことも出来る。 あまり起きて欲しくないけど、も…

MacにErlangをインストールしてみた。

最近、関数型言語に関してちょっと思うところがあって、いろいろ勉強中。 といっても、モナドとかではなく、並列性に関して。 それについてはまた別の機会に書くとして、今日はそれに関係してErlangをMacに入れてみたので、それについて。 全体の流れ 最初に…

Javaで動画作成ツールを作った話。(その1)

自分はニコニコ動画にいくつかボードゲーム動画を上げてるんだけど、動画を作るときに使っている自作ツールの話を少ししようかなと。 ちなみに、ツールの名前はMSC。 Movie-create-tool by Script and Commandの頭文字をとってMSCーーというのは建前で、実際…

Mac用とiOS用のフレームワークを作ってみた。

以前、強化学習用のニューラルネットワークをSwiftで書いていた。 ここで最後に触れた問題が、これ。 NSKeyedArchiver/NSKeyedUnarchiverでオブジェクトをエンコード/デコードすると、クラス名が(モジュール名).(クラス名)となるため、ある実行ファイルで保…

強化学習用のニューラルネットワークをSwiftで書いてみた。(その8)

前回は○×ゲームをSwiftで実装した。 今日はSarsaComの実装。 なお、Rubyでの実装は、以下を参照: SarsaComクラス ということで、さっそく。 //============================== // TicTacToe //------------------------------ // SarsaCom.swift //========…

強化学習用のニューラルネットワークをSwiftで書いてみた。(その7)

昨日はValueNetworkの保存とロードの実装をした。 (ただ、いろいろ問題があったので、後で修正する予定) これで実際に学習をするために、今日は○×ゲームをSwiftで実装する。 Markクラス まずはマークを表すMarkクラスから。 enumで実装するのも一つの手だ…

強化学習用のニューラルネットワークをSwiftで書いてみた。(その6)

昨日は強化学習用のHMEの実装を行った。 今日はそれらのデータの保存とロードが出来るようにする。 (2016-04-08追記:いろいろ問題があったので、大幅に修正する予定) NSKeyedArchiver、NSKeyedUnarchiver データをファイルに保存し、ロードする一つの方法…

強化学習用のニューラルネットワークをSwiftで書いてみた。(その5)

昨日は強化学習用のHMEの計算を行列で表現した。 今日はそれを使って実際に実装していく。 なお、Rubyでの実装は、以下を参照: GateNetworkクラス まずはゲートネットワークの実装。 //============================== // ValueNetwork //-----------------…

強化学習用のニューラルネットワークをSwiftで書いてみた。(その4)

昨日は強化学習用のニューラルネットワークの実装を行った。 今日はHMEの実装を行うために、同様にHMEの計算を行列で表現していく。 強化学習用のHMEの計算 ここでは、HMEへの入力を 、出力を とする。 また、エキスパートネットワーク の出力を 、パラメー…

強化学習用のニューラルネットワークをSwiftで書いてみた。(その3)

昨日は強化学習用のニューラルネットワークの計算を行列で表現した。 今日はそれを使って実際に実装していく。 なお、Swiftでの行列演算については、以下を参照: ここで定義したMatrixクラス、Vectorクラスを使っていくことになる。 また、Rubyでの実装は以…

強化学習用のニューラルネットワークをSwiftで書いてみた。(その2)

昨日は乱数生成器の実装を行った。 今日は強化学習用のニューラルネットワークの計算を行列で表現する。 強化学習用のニューラルネットワークの計算 説明を簡単にするために、ここでは次のようなニューラルネットワークを考える: 3層ニューラルネットワーク…

強化学習用のニューラルネットワークをSwiftで書いてみた。(その1)

強化学習の関数近似にニューラルネットワークを組合せるということをやってきていた。 強化学習については以下から: ニューラルネットワークについては以下から: 複数のニューラルネットワークを組合せるHME(Hierarchical Mixtures of Experts)について…

Swiftでの行列計算について調べてみた。(まとめ)

これまでの各記事は以下から。 行列、ベクトル、Splatの生成 Swiftでの行列計算について調べてみた。(その1) - いものやま。 Swiftでの行列計算について調べてみた。(その2) - いものやま。 行列、ベクトルの演算 Swiftでの行列計算について調べてみた。…

Swiftでの行列計算について調べてみた。(その4)

昨日は行列とベクトルの演算について説明した。 今日はもうちょっとスマートな書き方が出来るようにするために、ラッパークラスを作っていく。 Matrixクラス まず、行列を表すMatrixクラスの実装。 なお、途中に出てくるVectorクラスはMatrixクラスを継承し…

Swiftでの行列計算について調べてみた。(その3)

昨日はベクトルとSplatの説明をした。 今日はこれらを使った演算について。 転置 まずは転置。 次の関数が用意されている: // 転置した行列を生成して返す。 la_object_t la_transpose( la_object_t matrix); // 行列 スカラー倍 次はスカラー倍。 // スカ…

Swiftでの行列計算について調べてみた。(その2)

昨日はAccelerateフレームワークの概要と、行列の生成と内容の取得について説明した。 今日はベクトルとSplatについて。 ベクトルの生成 ベクトルといっても、実際には1行もしくは1列の行列。 ただ、扱いやすいように、いろいろマクロや関数が用意されている…

Swiftでの行列計算について調べてみた。(その1)

ニューラルネットワークの実装をするときに必要となるのが、行列計算。 もちろん、Arrayを使ってベタに実装してもいいんだけど、それだと速度が気になるところ。 調べてみると、Accelerateフレームワークを利用するといいようだったので、少し調べてみた。 …

端末でGitを使いやすくする。

Gitには、端末での操作を楽にするためのツールが用意されている。 今日はそれらの紹介。 なお、シェルはBashを使っているという前提。 プロンプトに現在のブランチを表示する Gitのワークツリーで作業をしているとき、GitはSubversionとは違ってブランチを頻…

Curses for Ruby。(まとめ)

これまでの各記事は以下から。 インストールと動作確認 Curses for Ruby。(その1) - いものやま。 cursesライブラリの初期化・終了と、構成要素 Curses for Ruby。(その2) - いものやま。 ウィンドウの描画について Curses for Ruby。(その3) - いもの…