この投稿では,複数の画像データ間に対して,主成分分析を適用する場合における,数学的背景を示します.
MNISTのデータ (手書き数字の画像データ) の各画像間の変化に対して,PCAを適用した場合,下記のような式展開となります.
(画像1枚に対して,PCAを適用する場合は,また別の式展開となります.)
2016年8月28日
2016年8月25日
Emacsの設定 (based on Cygwin)
Cygwinは,後から追加インストールが度々必要となるため,全てインストールすると良い.(10~20GB程度)
Emacsは,下記のように設定した.
[c:/cygwin/home/<usrname>/.emacs]
\S: Shift
\M: Alt(Meta)
-:「同時に押す」の意味
;:コメント
(keyboard-translate ?[入力] ?[出力])
[\XXX]という番号は,emacs起動中にキーを押すと出てきた数値を入力している.PCによって異なる可能性はありうるので,注意.(当然ショートカットを割り当てた後は,数値は出ずに,割り当てたショートカットが実行される.)
windows上では,[.]から始まるファイル名を指定できないので,
一度 emacs.txt などの別名を指定した後,
windowsのキー配置では,Emacsを使用し難いため,[Caps Lock]->[Ctrl]に変更しておく(keyswapを利用).
今回は,[無変換]->[英数],[変換]->[かな]の変換も行った(IMEの設定から変更可能).
参考資料
kakakikikekeのブログ 2015年3月24日火曜日 emacs で clipborad を共有する方法
Emacsは,下記のように設定した.
[c:/cygwin/home/<usrname>/.emacs]
; このファイルは emacs の設定ファイルです.
; emacs の設定ファイルではセミコロン ';' 以降の文字がコメントとして扱われます.
; ファイル名を指定して起動した場合でも,分割 2 画面にしない.
(setq inhibit-startup-message t)
; バックアップファイルを作成しない
(setq make-backup-files nil)
; 自動保存を無効
(setq auto-save-default nil)
(keyboard-translate ?\C-h ?\C-?); \C-h: Delete
(keyboard-translate ?\216 ?\C-\S-n);\C-\S-n: [\C-\S-n]でも選択しながら下へ移動できるようにする
(keyboard-translate ?\220 ?\C-\S-p);\C-\S-p: [\C-\S-p]でも選択しながら下へ移動できるようにする
(keyboard-translate ?\206 ?\C-\S-f);\C-\S-f: 前方向に選択
(keyboard-translate ?\202 ?\C-\S-b);\C-\S-b: 後ろ方向に選択
(keyboard-translate ?\227 ?\S-\M-f);\C-\S-w: 単語単位で前方向に選択.[\M-\S-f]に同じ
(keyboard-translate ?\221 ?\S-\M-b);\C-\S-q: 単語単位で後ろ方向に選択.[\M-\S-b]に同じ
(keyboard-translate ?\201 ?\C-\S-a);\C-\S-a: カーソルから先頭まで選択
(keyboard-translate ?\205 ?\C-\S-e);\C-\S-e: カーソルから末尾まで選択
(keyboard-translate ?\203 ?\M-w);\C-\S-c: コピー
(keyboard-translate ?\226 ?\C-y);\C-\S-v: 貼り付け
(keyboard-translate ?\230 ?\C-w);\C-\S-x: 切り取り
(keyboard-translate ?\232 'undo);\C-\S-z: undo
;(global-set-key "\C-z" 'undo);UndoをCtr+z でもできるようにする
;; init.el だけに設定されてしまう
(setq c-basic-offset 4)
;; ホックを使った設定
;(defun my-c-c++-mode-init ()
; (setq c-basic-offset 4)
; )
;(add-hook 'c-mode-hook 'my-c-c++-mode-init)
;(add-hook 'c++-mode-hook 'my-c-c++-mode-init)
;(setq-default tab-width 2 indent-tabs-mode nil); タブにスペースを使用する
(setq default-tab-width 4);タブの表示幅の設定
;(setq indent-tabs-mode nil)
;(keyboard-translate ?\t ?\M-i);\C-q \t: タブキーを何が何でも tab キーとして入力するための設定.[タブの入力方法: Ctrl-i/ESC-i/Alt-iのいずれか,または,Ctrl-qでエスケープしてTABキーで入力];これだと 1 タブ = 8 スペースにしないと,1 タブで 1 タブ 4 スペースが 2 つ挿入される
;(setq c-tab-always-indent t); タブ (よくあるタブの設定,上記設定と競合するため注意)
;; 改行コードを表示する
(setq eol-mnemonic-dos "(CRLF)")
(setq eol-mnemonic-mac "(CR)")
(setq eol-mnemonic-unix "(LF)")
(global-linum-mode t);行番号の表示
(setq linum-format "%4d ");行番号との間に1スペース挿入する
(delete-selection-mode t);リージョンを削除できるようにする
(setq scroll-conservatively 1); スクロールを1行ごとにする
(global-set-key "\M-n" (lambda () (interactive) (scroll-up 1)));スクロール
(global-set-key "\M-p" (lambda () (interactive) (scroll-down 1)));スクロール
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; http://myemacs.readthedocs.io/ja/latest/basic-customize.html
;; xterm のマウスイベントを取得する
(xterm-mouse-mode t)
;; マウスホイールを取得する
(mouse-wheel-mode t)
;; ホイールでポインタを移動できるようにする
;(global-set-key [mouse-4] (kbd "C-p"))
;(global-set-key [mouse-5] (kbd "C-n"))
;; ポインタの移動ではなくて画面をスクロールさせたい場合はこっち
(global-set-key [mouse-4] '(lambda () (interactive) (scroll-down 6)))
(global-set-key [mouse-5] '(lambda () (interactive) (scroll-up 6)))
;;;; カーソルのある行のハイライトを有効にする
;(global-hl-line-mode t)
;; ハイライトの色を設定します
;(custom-set-faces '(hl-line ((t (:background "dark gray")))));; これが上手く動かない
(setq hl-line-face '(background "dark gray"))
;; ハイライトのスタイルをアンダーラインにします
;; ただしアンダーバーが見えづらくなる問題があります
;(setq hl-line-face 'underline)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; http://d.hatena.ne.jp/khiker/20070409/emacs_hl_line
;; 現在行をハイライト
;(global-hl-line-mode t)
;(defface my-hl-line-face
; '((((class color) (background dark)) ; カラーかつ, 背景が dark ならば,
; (:background "DarkSlateBlue" t)) ; 背景を黒に. ; ここ,動作はするが,#FFFFFF で任意の色を指定できないのでダメ.
; (((class color) (background light)) ; カラーかつ, 背景が light ならば,
; (:background "ForestGreen" t)) ; 背景を ForestGreen に.
; (t (:bold t)))
; "hl-line's my face")
;(setq hl-line-face 'my-hl-line-face)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; http://keisanbutsuriya.hateblo.jp/entry/2015/02/01/162035
(show-paren-mode t) ;; 対応する括弧をハイライト
(setq show-paren-style 'parenthesis) ;対応する括弧だけをハイライト
;(setq show-paren-style 'expression) ;括弧で囲まれた部分をハイライト
(setq show-paren-style 'mixed) ;画面内に対応する括弧がある場合は括弧だけを,ない場合は括弧で囲まれた部分をハイライト
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;(keyboard-translate ?\C-\S-b ?\S-\M-b)
;(global-set-key "\C-h" 'delete-backward-char)
;;; 画面右端で折り返さない
(setq-default truncate-lines t)
(setq truncate-partial-width-windows t)
(setq x-select-enable-clipboard t);OSとクリップボードを共有(これだと上手く動作していない. Cygwin だから?)
; for clipborad
(setq sysname system-type)
(if (eq sysname 'darwin)
(progn
(defun copy-from-osx ()
(shell-command-to-string "pbpaste"))
(defun paste-to-osx (text &optional push)
(let ((process-connection-type nil))
(let ((proc (start-process "pbcopy" "*Messages*" "pbcopy")))
(process-send-string proc text)
(process-send-eof proc))))
(setq interprogram-cut-function 'paste-to-osx)
(setq interprogram-paste-function 'copy-from-osx)
)
(message "This platform is not mac")
)
(if (eq sysname 'cygwin)
(progn
(defun paste-from-cygwin ()
(with-temp-buffer
(insert-file-contents "/dev/clipboard")
(buffer-string)))
(defun cut-to-cygwin (text &optional push)
(with-temp-file "/dev/clipboard"
(insert text)))
(setq interprogram-cut-function 'cut-to-cygwin)
(setq interprogram-paste-function 'paste-from-cygwin)
)
(message "This platform is not cygwin")
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;(add-hook 'c-mode-hook
; '(lambda ()
; (c-toggle-electric-state -1)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
\C: Ctrl\S: Shift
\M: Alt(Meta)
-:「同時に押す」の意味
;:コメント
(keyboard-translate ?[入力] ?[出力])
[\XXX]という番号は,emacs起動中にキーを押すと出てきた数値を入力している.PCによって異なる可能性はありうるので,注意.(当然ショートカットを割り当てた後は,数値は出ずに,割り当てたショートカットが実行される.)
windows上では,[.]から始まるファイル名を指定できないので,
一度 emacs.txt などの別名を指定した後,
$mv emacs.txt .emacs
のようにして,ファイル名を変更すると良い.windowsのキー配置では,Emacsを使用し難いため,[Caps Lock]->[Ctrl]に変更しておく(keyswapを利用).
今回は,[無変換]->[英数],[変換]->[かな]の変換も行った(IMEの設定から変更可能).
参考資料
kakakikikekeのブログ 2015年3月24日火曜日 emacs で clipborad を共有する方法
登録:
コメント (Atom)