unhurried

コンピュータ関連ネタがほとんど、ときどき趣味も…

ソーシャルアプリプラットフォーム構築技法

立ち寄った書店で見かけて衝動買いした書籍ですが、簡単に感想をまとめました。

自社サービスを社外の開発者に公開するためのプラットフォームを構築するときに必要となる、社内の組織構造や企画・開発・運用について、筆者の経験をもとに解説されています。

最近は多くの企業が他社と連携するためのプラットフォームを開発しており、私も同様のプラットフォーム(筆者のものに比べれば小規模ですが)の開発に携わったことがあります。

構築の際にまず困ることがこれらのプラットフォームの企画・開発・運用に関する情報はあまり公にはされていなく、他社事例の情報が少ないことです。この書籍は開発時のアーキテクチャやデータの設計まで踏み込んで解説されているため、プラットフォームの1つの構築事例としてとても参考になりました。

もちろん書籍で解説されていることが全てのプラットフォームにそのまま適用できるわけではありませんが、これからプラットフォーム構築を検討されている方には事例として役に立つでしょうし、すでにプラットフォームを運用している方にとっては、自分のサービスと比較することで今後の方針検討に活用できると思います。

Pythonではじめる機械学習

Pythonではじめる機械学習を読みましたので、簡単に内容をご紹介します。

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

本書は、機械学習の数学的な理論を概念レベルで理解しつつ、実践で機械学習アルゴリズムを使えるようにすることを目指す書籍である。

sckit-learnで利用できる機械学習アルゴリズムについて、それぞれの特徴と使い方が説明されている。また、実践的なテクニックとして、グリッドサーチを使ったパラメータのチューニングや、前処理を組み合わせてパイプラインを構成する方法についても詳細な解説がある。

機械学習を理解するための数学のきほん

私が機械学習を始めるときに最初に読んだ本を簡単に紹介します。

概要

線形モデルを使った機械学習の数学的理論が、高校数学の知識で理解できるように解説されている。取り上げられている主な内容は以下の通り。

  • 回帰問題
    • 最小二乗法を使って、誤差関数を定義し、最急降下法でパラメータ更新式を求める手順
    • 多項式回帰、重回帰、確率的勾配法の適用方法
  • 分類問題
    • パーセプトロンを使って、座標的な意味からパラメータ更新式を求める手順
    • ロジスティック回帰の尤度関数を定義し、最急降下法でパラメータ更新式を求める手順
    • ロジスティック回帰への多項式特徴量の適用方法
  • モデルを評価するための交差検証
  • 線形モデルの過学習を防ぐための正則化(L1、L2)

また、これらの機械学習モデルをPythonでの実装方法(scikit-learnなどのライブラリを使わずに、NumPyを使って自分で実装する)も解説されている。

感想

機械学習を始めるに当たって、取っ付きやすい書籍を探して行きついたのが本書であった。グラフを使って数式の図形的な意味が解説されていて、巻末には数学を離れて久しい人が忘れていそうな基礎知識もまとめられているため、線形モデルの数学的理論の基礎を途中で詰まることなく理解することができた。

本書は機械学習で最近よく使われるアルゴリズムや、実践的なテクニックまでは触れていないが、数学を忘れかけている人が機械学習の基礎となる線形モデルの理論を理解するのにとても役に立つ本であると感じた。

bashrcとbash_profileの使い分け

読み込みタイミング

  • ログイン時
    • .bash_profile.bashrc の順に実行される
  • bash起動時
    • .bashrc のみ実行される

用途

参考

Visual StudioサブスクリプションでMicrosoft Azureを利用する

Visual Studioサブスクリプション(旧MSDNサブスクリプション)にはMicrosoft Azureを利用できるクレジットが付いてくるものがある。(例えば、Visual Studio Professionalサブスクリプションでは月間50ドルのクレジットが付く。)

ただし、このクレジットで利用できるサービスには以下の制限があることに注意が必要である。

  • 開発もしくはテストでのみ使用でき、運用目的では使えない。
  • SLAの保証はなく、120時間以上の連続稼働が禁止されている。
  • 利用できないリージョンがある。
    • 例えば、仮想VMは米国東部、米国中南部、ヨーロッパ西部、東南アジア、米国西部2、米国中西部のリージョンにのみ作成できる。
  • 利用できないサービスがある。
  • 有料サブスクリプションよりクォータが低いものがある

参考