金融と工学のあいだ

興味関心に関するメモ(機械学習、検索エンジン、プログラミングなど)

CS224n「Lecture1 Intro to NLP and Deep Learning」


CS224D Lecture 1 - 29th Mar 2016 - Introduction.mp4

Deep Learningを研究する理由

  • 下記によりパフォーマンスが上がった

DLが効果を発揮した分野

Phonology・Morphology・Word・Syntax・Semantics

  • Phonology:ある言語の音の体系およびその音素の分析と分類の研究
  • Morphology:形態。容認可能な単語を形成するための規則の研究。
  • word
  • syntax
  • semantics
  • DLは上記すべてvectorとして表現する。
  • その他にも
    • Sentiment Analysis
    • Question Answering
    • Machine Translation

リンク

Chainerで「Python機械学習プログラミング」の例題を解く~感情分析~

目的

  • 上記の本の解説部分(1章~6章)は読み終わったので実際に例題を解いてみたい。
  • どうせなら流行りのDeep LearningライブラリChainerを使って解いてみたい。

Chainerにコントリビュート ~Documentation編~

Chainerにコントリビュートしよう

  • 以下がDocumentationに関するIssue。

github.com

  • その中でも関数の説明に関するIssueがこれ。

github.com

作業手順

手順の確認

[WIP] Improve docs of functions and links · Issue #2182 · pfnet/chainer · GitHubに手順が書いてるので確認

gitレポジトリの準備

  1. 自分のスペースにchainerをforkする(pfnet/chainerのmasterと自分のmasterが追従するようにはここ )
  2. documentation用のbranchを作成する(ex. improve-docs-examples)

softmax関数にDocumentationを追加してみよう

  1. 様子を見る
  2. 既にDocumentation済みの関数を見てみる
    • 同様に、関数にはdocは付いているが、クラスにはついていない。
    • ただ、よりtemplateに近い形になるように関数のdocが修正されている。
  3. テンプレートを見る

    chainer/sigmoid.py at master · pfnet/chainer · GitHub

  4. 真似して書く

  5. ちゃんと生成できるかチェックする
  6. プルリクエスト作成

Chainer導入

前提

Python

  • Python 2.7.6+, 3.4.3+, 3.5.1+, 3.6.0+が入っている
  • NumPy 1.9, 1.10, 1.11, 1.12が使える
  • six 1.9が使える
  • cythonが入っている
  • virtualenvが使える

CUDA

  • CUDA 8.0のインストールが済んでいる
  • g++ 4.8.4+が入っている

Install

手順

  1. 適当な場所でgit clone git@github.com:pfnet/chainer.git
  2. virtualenvの環境作成
~/dev/chainer$ virtualenv venv --python=/usr/bin/python3.4
~/dev/chainer$ source activate venv/bin/activate
  1. cuDNN用の環境マネージメントツールcudnnenvでcuDNNを入れる
$ pip install cudnnenv
$ cudnnenv install v5-cuda8
$ cudnnenv activate v5-cuda8
$ cudnnenv version
v5-cuda8
  1. 必要な環境変数を設定する
$ tail -n 11 ~/.bashrc 
#path for cuDNN
export LD_LIBRARY_PATH=~/.cudnn/active/cuda/lib64:$LD_LIBRARY_PATH
export CPATH=~/.cudnn/active/cuda/include:$CPATH
export LIBRARY_PATH=~/.cudnn/active/cuda/lib64:$LIBRARY_PATH
# path for chainer
export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
export CFLAGS=-I~/.cudnn/active/cuda/include
export LDFLAGS=-L~/.cudnn/active/cuda/lib64
export LD_LIBRARY_PATH=~/.cudnn/active/cuda/lib64:$LD_LIBRARY_PATH
  1. 開発者ようにchainerをビルドする
    ~/dev/chainer$ python setup.py develop
    ...
    ...
    Finished processing dependencies for chainer==1.21.0

これからのパーソナルデータの話(1) ~はじめに~

はじめに

個人の情報の活用が進む現在

日々、SNSWebサービスを利用する中で、私たち自身の個人の情報がサービス提供者に収集され、私たちユーザーの利便性向上のために活用されていることを感じます。例えば、Twitter広告[1]では、広告主がユーザーの性別、行動履歴、興味などで広告を出したいユーザー層を指定することができます。これは、Twitterがユーザーの情報を収集することで実現ができています。同様のサービスは、GoogleFacebook、国内ではヤフーなども提供しています。

個人の情報を利用してユーザーの利便性を向上を目指す動きは、広告分野だけではなく他の分野でも行われています。amazonなどのeコマース分野、AppleYoutubeなどの音楽・動画配信分野、Facebook・LINEなどのSNS分野も挙がるでしょう。

個人の情報の活用の背景

上記を見るとわかるように、Webサービスを提供する大企業のほとんど全てが、個人の情報を用いてユーザーの利便性の向上を目指しています。この理由として、様々な要因が挙げられますが主に以下の3つが要因だと考えられます。

  1. スマートデバイスの普及
  2. 深層学習に代表される機械学習、AI技術の進化
  3. ハードウェア・ソフトウェア技術の進化

今回は項目として上げるだけで詳しくは話しませんが、簡単に説明します。上記3つの要因により個人のデータに対して以下のような変化が生まれました。

  1. スマートデバイスの普及」により大量のデータが生成されるようになった
  2. 「深層学習に代表される機械学習、AI技術の進化ハードウェア・ソフトウェア技術の進化」により対象のデータを分析できるようになった
  3. 「ハードウェア・ソフトウェア技術の進化」により大規模なデータを高速に利用できるようになった

このように、大規模なデータを生成・分析・利用できるようになったことが背景にあると考えられます。

この文章を書く理由

まだ、しっかりと書きたいことの方向性が決まっていませんが、以下のような疑問を持つようになり、それについて調べたいと思っています。

  1. パーソナルデータって何なの?
    • 個人情報とパーソナルデータの法律的解釈
    • 企業のプライバシポリシーの変遷
    • これからのパーソナルデータの定義
  2. パーソナルデータはどのように活用されるの?
  3. パーソナルデータは大企業に専有されていいの?
    • 大量のデータを持つ企業が勝ち残るのか
    • 他の企業は生き残れないのか
  4. 個人としてパーソナルデータを活用するには?
    • パーソナルデータの持ち主はだれか
    • パーソナルデータをユーザー自ら活用できないのか

参考文献

[1]