記号の意味を検索して調べる

プログラミング中などによくある「Vimでテキストファイルを開いたら^@という文字が表示されてるけどこれどういう意味だっけ」「Makefile中の$<や$@の意味がわからない」という疑問に対してGoogleは悲しいほどに無力です.そんなときの選択肢.

  1. Stack Overflowで検索する
    • 記号検索が可能な質問サイト.大体誰かが質問している.
  2. SymbolHoundで検索する

論文メモ(2013/12/29-2014/01/04)

D. Mnih et al. (2013), "Playing Atari with Deep Reinforcement Learning"

  • 強化学習におけるDeep Learningの試み
  • Q-learningにおけるQ関数の学習に3つの隠れ層を持つネットワークを用いる(Deep Q-Network,略してDQN
    • 入力は画面のピクセルの縮小・グレイスケール版(84x84x4)
    • 最初の2つの隠れ層は畳み込み層
  • Experience Replay
    • 各ステップの遷移(\phi(s_t), a_t, r_t, \phi(s_{t+1}))をreplay memoryに保存
    • replay memoryからランダムサンプリングした遷移を学習に使う
  • Atari 2600のゲームのうち7つで評価
    • 6つのゲームで既存手法を上回る
    • 3つのゲームでHuman Expertを上回る

J. Duchi and Y. Singer (2009), "Efficient learning using forward-backward splitting"

  • 機械学習における経験損失と正規化項の和の最小化のためのアルゴリズムFOBOSを提案
  • 重みベクトルの更新のイテレーションを2ステップに分ける
    1. 経験損失を劣勾配法で最小化する方向に更新したw_{t+1/2}を求める
    2. w_{t+1/2}との距離を小さく保ちながら正則化項を劣勾配法で最小化
  • L1正則化とともに用いた場合に,劣勾配法に比べてスパースな解が得られやすい

OS X Mavericksにアップデートしたらホットコーナーからスクリーンセーバーを開始できなくなった場合の対処法

環境

症状

ホットコーナーからスクリーンセーバーを開始するように設定していたところ,OS X Mavericksにアップデートしてから,ホットコーナーにカーソルを移動させてもスクリーンセーバーが表示されなくなった.ホットコーナーに設定できる他の機能(デスクトップの表示,Launchpad等)は問題なく動作する.

対処法

Hot corners don't work: Apple Support Communitiesを参考にした.

  1. スクリーンセーバー開始までの時間を(一時的に)1分に設定する
  2. 1分間待ってスクリーンセーバーを表示させる
  3. ホットコーナーからスクリーンセーバーが開始できるようになる
  4. スクリーンセーバー開始までの時間をもとに戻す

同値を表す矢印の上に三角形を載せた記号が「定義」を表すこと

X\Longleftrightarrow^{\triangle}Y

こういう同値を表す矢印の上に三角形を載せた記号を板書で見て,使い方から「定義」っぽいなと思いつつも自信がなかったので質問してみたところやはり「定義」という意味でした.「同値 三角形 記号」とかで検索しても全然出てこないのでメモしておきます.しかし,なぜ三角形なんでしょうか.

安定結婚問題のためのGale-ShapleyアルゴリズムをPythonで実装してみた

使う予定はとくにありませんが,授業で見て面白かったので書いてみました.

安定結婚問題 - Wikipedia

"""
Gale-Shapley Algorithm
"""

import random

def shuffled(lst):
    tmp = lst[:]
    random.shuffle(tmp)
    return tmp

n = 10
men = ["M" + str(i) for i in xrange(n)]
women = ["W" + str(i) for i in xrange(n)]

men_preference = {m: shuffled(women) for m in men}
women_preference = {w: shuffled(men) for w in women}

print "men_preference:"
print men_preference

print "women_preference:"
print women_preference

m_to_w = {}
w_to_m = {}

while len(m_to_w) < n:
    man = [m for m in men if m not in m_to_w][0]
    woman = men_preference[man][0]
    if woman in w_to_m:
        # Not first propose for woman
        another_man = w_to_m[woman]
        if women_preference[woman].index(man) < women_preference[woman].index(another_man):
            # Win
            del m_to_w[another_man]
            m_to_w[man] = woman
            w_to_m[woman] = man
            men_preference[another_man].pop(0)
        else:
            # Lose
            men_preference[man].pop(0)
    else:
        # First propose for woman
        m_to_w[man] = woman
        w_to_m[woman] = man

print "matching:"
print m_to_w

LaTeX Beamerにカスタムテーマをインストールして使う

LaTeX Beamerのデフォルトテーマのダサさに堪え兼ねたのでにカスタムテーマをインストールして使ってみました。

環境

OS Mac OS X(10.8.4)
TeX e-pTeX 3.1415926-p3.4-110825-2.6 (utf8.euc) (TeX Live 2013)
kpathsea version 6.1.1
ptexenc version 1.3.1

カスタムテーマを探す

http://latex.simon04.net/にカスタムテーマの画像付きの一覧があります。この中で気になったTorinoをインストールしてみました。

Torinoのインストール

  1. Marco Barisione’s Weblog » Torino, a pretty theme for LaTeX Beamerからbeamer-torino-0.1.tar.gzをダウンロードし適当な場所に解凍
  2. beamerouterthemedecolines.styの22行目と103行目のpxをptに置換
  3. ファイルをコピー

    sudo cp beamercolor*.sty /usr/local/texlive/2013/texmf-dist/tex/latex/beamer/themes/color/
    sudo cp beamerinner*.sty /usr/local/texlive/2013/texmf-dist/tex/latex/beamer/themes/inner/
    sudo cp beamerouter*.sty /usr/local/texlive/2013/texmf-dist/tex/latex/beamer/themes/outer/
    sudo cp beamertheme*.sty /usr/local/texlive/2013/texmf-dist/tex/latex/beamer/themes/theme/
    


サンプル(chameleon.tex, nouvelle.tex, freewilly.tex)をコンパイルしてみる

  1. 画像の.xbbファイルを作る

    extractbb watermark-polito.png
    extractbb logo-telekinesis.png
    extractbb logo-polito.pdf
    


  2. chameleon.tex, nouvelle.tex, freewilly.texの一行目を修正

    \documentclass[dvipdfmx]{beamer}


  3. chameleon.tex, nouvelle.texのwatermarkheight=100ptのptをpxに置換

  4. コンパイル

    platex chameleon && dvipdfmx chameleon
    platex nouvelle && dvipdfmx nouvelle
    platex freewilly && dvipdfmx freewilly
    


chameleonとnouvelleのwatermark(右下の透かし画像)の描画が少しおかしくなってしまいました。watermark非表示の場合の描画は問題なさそうです。

chameleon
freewilly

Fizz BuzzをGame Description Language(GDL)で書いた

プログラマにお馴染みのFizz BuzzゲームをGame Description Language(GDL)で書きました.

FizzBuzz in Game Description Language version 1

一般的なFizz BuzzプログラムといえばFizz Buzzのルール通りに1, 2, Fizz, 4, Buzz, ...と出力するプログラムですが,それとは異なりFizz Buzzゲームそのもの(Fizz Buzzのルール通りの出力を返すほど高得点がもらえるゲーム)を書いています.

GDLはゲームルールを記述するための言語で,様々な未知のゲームをうまくプレイできるようなプログラムを実現することを目標とするGeneral Game Playing(GGP)と呼ばれる研究のために使用されています.GDLの文法はDatalogをベースとしています.

GDLには数値リテラルも四則演算子も無いので,アトム間のインクリメントを定義→減算を定義→倍数を定義,という順に実装しています.