タグ

ブックマーク / kivantium.hateblo.jp (4)

  • アセンブリ言語 その2 - kivantium活動日記

    この記事はkivantium Advent Calendarの19日目です。 前回は最初のCPUの設計に使う命令セットを紹介しました。 今回はこの命令を使っていろいろなプログラムを書いてみます。 SPIM ここではMIPSのシミュレータとして有名なSPIM (MIPSを逆から読んだ名前) を使うことにします。 GUIがついたQtSPIMをダウンロード・インストールします。 QtSPIMはアセンブリで書いたテキストファイルを読み込んで実行します。 実行したいファイルを保存して、File > Reinitialize and Load Fileとすることでファイルが読み込まれます。 再生ボタンのようなRun/Continueを押すと実行されます。 最初のプログラム まずはHello, World代わりに数字の1を表示することにします。 .text # アセンブリ命令がここから始まることを示す

    アセンブリ言語 その2 - kivantium活動日記
  • ソートアルゴリズム高速化への道 - kivantium活動日記

    先日、アルゴリズムの授業でソートのアルゴリズムをいくつか習いました。ソートアルゴリズムの名前と原理くらいは聞いたことがありましたが、実装したことはなかったのでいい機会だと思い実装してみることにしてみました。ただ実装するだけでは面白くないので高速化の限界に挑戦してみたいと思います。 計測用プログラム 今回の計測では、ランダム値が入った配列のソートを100回行い、平均時間を各アルゴリズムに競わせるというシンプルなルールにしました。プログラムは以下の通りです。 C++11で入ったメルセンヌ・ツイスタなどの機能を使っているので、ビルド時には-std=c++11を指定する必要があります。 実験に使用したパソコンのCPUはCore i3-3227U@1.90GHz、コンパイラはgcc version 4.8.4で最適化オプションには-O3を指定しました。 #include <iostream> #in

    ソートアルゴリズム高速化への道 - kivantium活動日記
  • 強化学習で考えるギャンブラーの最適行動 - kivantium活動日記

    強化学習と呼ばれる機械学習の一分野があります。機械学習というと、入力に対して正解の出力を当てる教師あり学習が話題になることが多いですが、強化学習では明示的に正解が与えられません。ある行動を試してみて、それに対して得られる「報酬」から自分でどのような行動が良い結果をもたらすのかを判断して、より良い行動を学習するアルゴリズムになっています。 強化学習にはチェスやリバーシなどといったボードゲームAIやロボットの行動学習などの応用例があります。この前話題になったDeep Q Network、通称DQNも強化学習の一種です。応用例が面白いにも関わらず、PRMLなどの主要な機械学習の教科書では強化学習を扱わないことが多いので、いま強化学習だけの参考書を買って勉強しています。 強化学習 作者: Richard S.Sutton,Andrew G.Barto,三上貞芳,皆川雅章出版社/メーカー: 森北出

    強化学習で考えるギャンブラーの最適行動 - kivantium活動日記
  • ご注文は機械学習ですか? - kivantium活動日記

    先日書いたOpenCVでアニメ顔検出をやってみた - kivantium活動日記の続編です。アニメ顔を検出するところまではうまくいったので、今度はキャラの分類をやってみようと思います。環境はUbuntu 14.10です。 ひと目で、尋常でない検出器だと見抜いたよ まずは分類に使う学習用データを用意します。投稿から半年以上経つのにまだランキング上位に残っている驚異の動画ご注文はうさぎですか? 第1羽「ひと目で、尋常でないもふもふだと見抜いたよ」 アニメ/動画 - ニコニコ動画を使います。 動画のダウンロード Ubuntuならaptで入れられるnicovideo-dlというツールを使います。 sudo apt-get install nicovideo-dl nicovideo-dl www.nicovideo.jp/watch/1397552685その後avidemuxでOP部分だけの動画を

    ご注文は機械学習ですか? - kivantium活動日記
  • 1