Google CalendarのStylishの設定
追記
Googleカレンダーの仕様が変わったため、使用できなくなった……
本文
Googleカレンダーで一番左を月曜日にすると、
休日がまとまって嬉しいんだけど、
普通のカレンダーは一番左が日曜日だから、
曜日と日付の対応を間違える。
そこで、Chromeの拡張機能のStylishを使って、
土日の背景色を変えた。
Stylishはスタイルの同期してくれないみたいだから、 メモっておく。とても簡単だけど多少よくなった。
.st-bg-table tbody tr :nth-child(6) { background-color : #aaf !important; } .st-grid tbody tr :nth-child(6) { background-color : #aaf !important; } .st-bg-table tbody tr :nth-child(7) { background-color : #faa !important; } .st-grid tbody tr :nth-child(7) { background-color : #faa !important; }
Ubuntu導入時に個人的にやることまとめ
なんどかLinuxを導入する機会があるんだけど、そのたびに同じことを調べているような気がするので、 やることをまとめておく。思い出しつつ追加する形で。
環境は以下の通り
- Ubuntu16.04 LTS (trusty)
- GNOME shell
諸々をインストール
Lubuntuなどでは、まさかのvimが入っていないのでインストールをする。luaなどは使ってないので普通にaptで入れる。
sudo apt install -y git vim sudo apt install ubuntu-restricted-extras
あとは、ネットからこいつらをダウンロードして、dpkgでインストール。
- Atom
- VisalStudio Code
- Google Chrome
- Vivaldi
- Thunderbird
- Dropbox
- Terminator
- キーバインドでCtrl+Shift+HとCtrl+Shift+Lで画面分割を入れる
zshのインストール
うまく行かない時は、/etc/shellsにzshのパスが追加されていないかもしれない。
sudo apt install zsh sudo chsh -s $(which zsh)
dotfilesを適用
管理しているdotfilesを適用(ここは本当に個人用)
git clone https://github.com/b1013251/dotfiles ~/dotfiles bash ~/dotfiles/setup.sh
GNOME shellのインストール
個人的にGNOME shellのほうが好きなのでGNOMEを入れる。今後はデフォルトでGNOME shellになるらしい。 tweak toolも便利なのでインストールする
sudo apt install gnome-tweak-tool sudo apt install gnome-shell-extensions sudo apt install gnome-shell
便利なエクステンションをTweakToolをつかって入れる。 Put windowはWin+矢印で横幅を任意の長さに切り替えてくれるツール。 もともとのキーバインドがかぶるので、元の設定を、「設定」→「キーボード」から削除
- Dash to dock
- Alternatetab
- Put window
- Suspend button
また、TweakToolから以下の部分を設定
Rubyをインストール
rbenvでインストール。必要なパッケージをaptで入れる。入れないと長いビルド中に怒られて異常終了する。
別ディストリビューションはHome · rbenv/ruby-build Wiki · GitHubを参照
sudo apt install -y autoconf bison build-essential libssl-dev\ libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev\ libffi-dev libgdbm3 libgdbm-dev
gitでrbenvとrbenv-build入れる。rbenvだけではRubyをインストール導入できない。
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
PATHを通す。.zshrcで~/.zshlocalという名前を個人的にsourceしているので、そこに追加。
: ruby export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)"
Rubyをビルド
rbenv install -l : 最新のバージョンを入れる rbenv install 2.4.1 rbenv global 2.4.1
Pythonのインストール
Anacondaが便利なので、Anacondaを使って入れる。bashでインストール。 とりあえず、最新のPythonが入るので環境などは作らなくてもいい。
: 最新のものを入れる bash Anaconda3-4.4.0-Linux-x86_64.sh : 環境を作成(tensorflowを入れる場合は現状はPython3.5で対応しているので3.5を入れる) conda create -n [環境名] python=3.5 anaconda
.zshlocalに追加
# anaconda export PATH=$HOME/anaconda3/bin:$PATH
Node.jsをインストール
nodebrewをつかう
curl -L git.io/nodebrew | perl - setup nodebrew ls-remote : 最新を入れる nodebrew install-binary v7.10.1 nodebrew use v7.10.1
pythonに機械学習系のライブラリを入れるとき必要なパッケージ
ライブラリを入れるときに先に入れる必要があるものリスト.
: #scipy sudo apt-get install libatlas-base-dev sudo apt-get install libatlas-doc : #matplotlib sudo apt-get install pkg-config sudo apt-get install libfreetype6 sudo apt-get install libfreetype6-dev sudo apt-get install libpng-dev
anacondaが便利すぎて忘れてたけど
入ってないとエラーが出るし,そのたびに検索するのが面倒だったりする.
線形回帰のカーネルトリック
前提
関数は以下のものにノイズを加える
$$ y=x3+\epsilon $$
見ての通り線形回帰だとうまくいきそうにないのでガウシアンカーネルで回帰を行う
また、コスト関数には誤差の総和を用い解析的に解く
まずは線形回帰
import numpy as np import matplotlib.pyplot as plt size = 25 #サンプル数 x = np.linspace(-6, 6, size) y_truth= (-0.05 * x ** 4) + ( 0.1 * x ** 3) + (-0.5 * x ** 2) + (0.6 * x ) np.random.seed(0) y_noise = y_truth + np.random.randn(size) * 10.0 plt.plot(x, y_truth, color='#aaaaaa') plt.scatter(x, y_noise, color="#aaaaaa") w = (1 / np.dot(x, x) * x).dot(y_noise) y_predict = w * x plt.plot(x, y_predict, color="r") plt.scatter(x, y_predict, color="r")
次に正則化していないカーネル
import numpy as np import matplotlib.pyplot as plt size = 25 # サンプル数 x = np.linspace(-6, 6, size) y_truth= x**3 np.random.seed(0) # ノイズ固定 y_noise = y_truth + np.random.randn(size) * 10.0 # 本来のデータ plt.plot(x, y_truth, color='#aaaaaa') plt.scatter(x, y_noise, color="#aaaaaa") # ガウシアンカーネル def kernel(x1, x2, beta=1.0): return np.exp(- beta * (x1 - x2)**2) # グラム行列 K = np.zeros((size, size)) for i in range(size): for j in range(size): K[i,j] = kernel(x[i], x[j]) # 解析計算 alpha = np.linalg.inv(K) * y_noise # 計算したパラメータをもとに予測 y_predict_kernel = np.zeros(length) for _x, a in zip(x, alpha): y_predict_kernel += a * kernel(_x, _x) # プロット plt.plot(x, y_predict_kernel, color="b") plt.scatter(x, y_predict_kernel, color="b") plt.xlim([-6,6]) plt.ylim([-50, 50])
予想通りぐちゃぐちゃ
正則化を行って計算
size = 25 # サンプル数 x = np.linspace(-6, 6, size) y_truth= x**3 np.random.seed(0) # ノイズ固定 y_noise = y_truth + np.random.randn(size) * 10.0 # 本来のデータ plt.plot(x, y_truth, color='#aaaaaa') plt.scatter(x, y_noise, color="#aaaaaa") # ガウシアンカーネル def kernel(x1, x2, beta=1.0): return np.exp(- beta * (x1 - x2)**2) # グラム行列 K = np.zeros((size, size)) for i in range(size): for j in range(size): K[i,j] = kernel(x[i], x[j]) # 解析計算 (アルゴリズム的にはここに単位行列を足しただけ) alpha = np.linalg.inv(K + np.identity(size)) * y_noise # 計算したパラメータをもとに予測 y_predict_kernel = np.zeros(length) for _x, a in zip(x, alpha): y_predict_kernel += a * kernel(_x, _x) # プロット plt.plot(x, y_predict_kernel, color="b") plt.scatter(x, y_predict_kernel, color="b") plt.xlim([-6,6]) plt.ylim([-50, 50])
正則化項が働いて多少汎化された。
それで
モデルを通常の線形パラメータとは違うものに置き換えていることや、ガウシアンカーネルの次元数が無限にあることにより、正則化による影響が直感的にわかりにくいけど、うまくはいっているみたい。
Anaondaを入れる流れ(Windows 8.1)
複数のサイトで解説されているけど自分用に書く。
現状でTensorflowはPython 3.6に入らないようなので、3.5の環境を作ってそこにいろいろぶっこむ。
通常のPythonインストーラからやろうとすると、matplotlib、scipyのインストールあたりで詰まって面倒だからAnaconda助かる。
環境
- Windows 8.1
- Anaconda3 (4.3.1 : 64bit)
- Python3.5
- numpy
- scipy
- matplotlib
- pandas
- scikit-learn
- tensorflow
Anacondaの導入
- まず、ダウンロードする。
Download Anaconda Now! | Continuum - インストールは特に注意点は特になし。
Python3.5の環境作成
コンソールから新しい環境を作る
> conda create -n [環境名] python=3.5 anaconda
Python3.5の環境に移行する
> activate [環境名]
諸パッケージのインストール
scipy, numpy, matplotlib,pandas,scikit-learnをインストールする。
ただ、conda createで環境を作った時点でインストールされていたので、実際に以下のコマンドは実行しなかった。
> conda install numpy scipy matplotlib pandas scikit-learn
tensorflowをインストール
最新のパッケージはInstalling TensorFlow on Windows | TensorFlowのURLを参照。
今回は現状のCPU最新版を使う。
> pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.1.0-cp35-cp35m-win_amd64.whl
Visual Studio Code
VS CodeはCtrl+F5での実行と入力補完が特に設定しなくてもできるから便利。 設定は、3.5環境のパス設定とlintの無効化をしたぐらい。
[ "python.pythonPath": "C:/……/Anaconda3/envs/tensor/python", "python.linting.enabled": false, ]
開いているタブをMarkdownのリンク形式でクリップボードにコピーするChromeエクステンションを作ったけど既にあった
タイトルの通り
公開したものの意味が無いので、
ハイパーリンクをコピーする機能などを追加して付加価値を作りたい
Chrome
Copy this tab as Markdown Link - Chrome ウェブストア
プレビュー