読者です 読者をやめる 読者になる 読者になる

pip install deeplearning

こちらもどうぞ。http://monthly-hack.com

0から始めるMacのDeepLearning環境構築

MacBook Pro (Retina 13-inch、Early 2015)の出荷時状態からChainerをimportするまで。

MBPを新調しました

こんにちは、2週間ほど前に以前使っていたMacBookProが故障してしまいました。
半年前にもメモリが故障してしまったんですが、今回はHDDを読み取る部分で修理できず。
2011年の春学期に購入したので既に4年目なので、そろそろ需要かなと思い、
新調する運びになりました。


ちなみにブログの更新ができなかったのも↑が原因です。

スペック

MacBook Pro (Retina 13-inch、Early 2015)
CPU 3.1 GHz Intel Core i7
メモリ 16 GB 1867 MHz DDR3
OS X El captain

Permission denied 問題

PCを買い換えたので早速、Chrome, Google 日本語入力, Sublime Text2, etc...
をインストール。一通り揃えたところで、いざPython及びDeepLearningの環境構築です。

環境構築でよく出会う問題がPermission denied
慣れている人は「sudoすればいいんでしょ?」と思うでしょう。
けれども、それはあまりスマートじゃないし、
将来的にoperation not permittedという違う問題も引き起こしてしまいます。

今回は「ある手順を踏みながら環境構築をすると、これらの問題に対処できるよ。」
という内容の記事です。

環境構築

Homebrew

まず導入するのはHomebrew
OS X用のパッケージマネージャーで以下のコマンドで様々なパッケージをインストールできます。

brew install #package_name

Homebrew自身の導入は下記のスクリプトを実行するだけです。

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

実行ログを見ると、途中でパスワード入力を求められています。
おそらく、ここで特定のファイルのpermissionを変更していると思います。
この動作によって以下、pipやその他のパッケージをインストールする際に
Permissionに関わる諸問題が発生しなくなります。

mutoumasahiro-no-MacBook-Pro:~ mutoumasahiro$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
==> This script will install:
/usr/local/bin/brew
/usr/local/Library/...
/usr/local/share/man/man1/brew.1
==> The following directories will be made group writable:
/usr/local/.
/usr/local/bin
==> The following directories will have their owner set to mutoumasahiro:
/usr/local/.
/usr/local/bin
==> The following directories will have their group set to admin:
/usr/local/.
/usr/local/bin

Press RETURN to continue or any other key to abort
==> /usr/bin/sudo /bin/chmod g+rwx /usr/local/. /usr/local/bin

WARNING: Improper use of the sudo command could lead to data loss
or the deletion of important system files. Please double-check your
typing when using sudo. Type "man sudo" for more information.

To proceed, enter your password, or type Ctrl-C to abort.

Password:
==> /usr/bin/sudo /usr/sbin/chown mutoumasahiro /usr/local/. /usr/local/bin
==> /usr/bin/sudo /usr/bin/chgrp admin /usr/local/. /usr/local/bin
==> /usr/bin/sudo /bin/mkdir /Library/Caches/Homebrew
==> /usr/bin/sudo /bin/chmod g+rwx /Library/Caches/Homebrew
==> /usr/bin/sudo /usr/sbin/chown mutoumasahiro /Library/Caches/Homebrew
==> Downloading and installing Homebrew...
remote: Counting objects: 3914, done.
remote: Compressing objects: 100% (3758/3758), done.
remote: Total 3914 (delta 30), reused 2324 (delta 19), pack-reused 0
Receiving objects: 100% (3914/3914), 3.41 MiB | 2.00 MiB/s, done.
Resolving deltas: 100% (30/30), done.
From https://github.com/Homebrew/homebrew
 * [new branch]      master     -> origin/master
HEAD is now at 6ccecbd xapian: update 1.2.21 bottle.
==> Installation successful!
==> Next steps
Run `brew help` to get started
<||

** PyPI
次に導入するのはPythonista御用達の[https://pip.pypa.io/en/latest/installing/:title=PyPI](通称:pip)です。
Python周りのパッケージを以下のコマンドで簡単に導入できます。
>||
pip install #package_name

そんなpip自身の導入は以下のスクリプトを実行するだけです。

curl -kL https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python

または、公式サイトからget-pip.pyをダウンロードして実行。

python get-pip.py

先にHomebrewを導入していれば、ここでsudoをすることはありません。
sudoを使ってpip自身をインストールすると、今後のパッケージ導入でもsudoすることになります。
というか、sudoしてもoperation not permittedになって行き詰まってしまいます...。

なのでHomebrewを先にインストールして、pipをsudoなしでインストールできれば安心です。

Chainer

最後にDeepLearningをするためにChainerをインストールします。
最新のChainer(v1.5.1)ではインストール時に様々な問題が報告されていて、
それを回避するためにChainerで必要とされているパッケージを予め導入または最新版にします。

どれも先に導入したpipがあれば簡単にインストールできます。

pip install cython
pip install -U setuptools
pip install -U numpy
pip install chainer

さいごに

最後にターミナルで以下を確認できたら環境構築は完了です。

import chainer

追記(2016/2/4)

numpyの計算ライブラリをmklにすると, 高速化できます.
pip-install-deeplearning.hatenadiary.jp

Chainerと読む「深層学習」-vol.1

深層学習 (機械学習プロフェッショナルシリーズ) 」をChainerのコードと交えて読み進めようという趣旨。

 

こんにちは。最近DeepLearningの学習環境が整ってきていますね。

先日「機械学習(DeepLearing)の本と実際のコードを交えた資料があるとわかりやすい」という声を聞いたので、"Chainerと読む「深層学習」"をやってみたいと思います。

手探りで試行錯誤しながらなので、何か質問や意見があればコメントをください。

 

今回は導入として内容は2つです。

  • 環境設定
  • 深層学習の概要

では、よろしくお願いします。

 

Chapter0 事前準備

僕の機械学習環境を紹介します。

この記事を読むにあたって、必要なものは随時用意しましょう。

PythonやChainerのインストールはQiitaや個人ブログにたくさんあるので、適宜参考してください。

import chainer

が成功すれば準備は完了です。

 

Chapter1 はじめに

1.1 本書の紹介

本書深層学習 (機械学習プロフェッショナルシリーズ) 」は機械学習プロフェッショナルシリーズ】の一つで初めてDeepLearningを学ぶ人にオススメです。

QiitaやSlideShareにもDeepLearningを紹介するものがたくさんあるのですが、

簡略化されている部分が多いので、きちんと理解したい人は本書をどうぞ。

 

本書の目次は以下のとおり

第1章 はじめに
第2章 順伝播型ネットワーク
第3章 確率的勾配降下法
第4章 誤差逆伝播
第5章 自己符号化器
第6章 畳込みニューラルネット
第7章 再帰ニューラルネット
第8章 ボルツマンマシン 

 

DeepLearningの基礎となる情報が揃っていますね。これを一通り学べば最近の研究内容も理解しやすいでしょう。ちなみに第5, 7, 8章は自分自身もまだ詳しくないので勉強しておきます。

1.2 DeepLearningの歴史

第1章はコード化する部分がないので要約だけ。

  • 1940, 90年代: 多層NNの研究はあったが学習がうまくいかなかった。*5
  • 2000年代: 事前学習によって初期値をうまく設定すると学習がうまくいった。
  • 2010年代: 画像認識や音声認識の分野で大きな成果を残した。*6
  • 現在: 様々なタスクで成果を収める。とても流行する。
  • 理論だけでなく分散処理, GPU計算など計算能力の向上もDeepLearningが成功した大きな要因。

最近はトヨタ人工知能に投資していて、本当に流行っているんだなあとしみじみ。

過度な期待をされていて、いつかバブルが崩壊するのではと危惧しています...。けれども、しばらくは様々な分野に応用できる素晴らしい技術なのは確実。このビックウェーブを逃さず、しっかり知識をつけましょう。

 

www.nikkei.com 

深層学習 (機械学習プロフェッショナルシリーズ)

深層学習 (機械学習プロフェッショナルシリーズ)

 

 

*1:自分が普段使っている個人PC

*2:GPU計算もできる高性能な研究室PC

*3:執筆時はv1.5.0

*4:pip, easy_install, numpy, scipy, etc...

*5:勾配消失問題

*6:ILSVRC2012, Googleの猫, etc...

Chainerのすゝめ

研究室でDeepLearningのライブラリといえば、Chainer。

今日はAdvent Calendarの2番手としてChainerを紹介します。

 

Chainerとは

PFIが提供する、DeepLearingのフレームワークです。

2015年6月に公開され、機械学習界隈で注目を集めている期待の新星です。

現在も精力的に機能改善が行われ、この記事を執筆している時点(12/1)では、v1.5.0がリリースされています。(リリースのたびに既存コードの修正をするのが大変なのは秘密です...)

 

公式サイトをリンクしておくので、英語がデキる人は読んでください。

chainer.org

 

Chainerの魅力

Chainerの魅力といえば、なんといってもPython Onlyで書けるところです。

Advent Calendar初日の日暮くんの記事にある通り、Pythonは研究室の公用語なので、他のプログラミング言語をわざわざ習得しなくてよいです。

2015adventcalendar.hatenablog.com

 

Pythonistaにとってはニューラルネットワークをわかりやすく、直感的に書くことができたり、Chainerのサンプルコードを読むことでDeepLearningの仕組みを再理解できたりもします。

 

参考までに他のフレームワークと比較しましょう。(画像はこちらのスライドから拝借しました。http://www.slideshare.net/ryokuta/dlchainer)

注目すべきは設定ファイル。DeepLearningのライブラリで有名なCaffeやtheanoは設定ファイルに別の言語を用いています。これから始める人にとっては大きな障害です。

f:id:mutomasahiro1111:20151201120236p:plain

 

Chainerの今後とまとめ

ここまででChainerの素晴らしさを理解できた、むしろ使ってみたくなったと思います。個人的には次の人達にChainerを強くお勧めします。

  1. DeepLearningの初級者
  2. Pythonista
  3. 櫻井研究室の学生

日本語の公式ドキュメントがないことはネックですが、Qiitaや個人ブログには多くのChainer活用法が投稿されていて様々な応用例をみることができますし、詰まってしまっても解決できるでしょう。

 

DeepLearningライブラリ界の黒船、TensorFlowに負けずに発展してほしいと願います。

はじめに

pip install deeplearning

は情報系大学院生が深層学習(deeplearning)を勉強する過程の記録です。

 

はじめまして、hiroと申します。

関東にある大学院で機械学習を専攻しています。学部時代は機械学習自然言語処理を扱っていました。修士課程から機械学習の最先端であるdeeplearningを勉強し始めました。

 

勉強し始めて半年ぐらいたって基礎的な内容は理解しました。基本的にはSlideShareや本で様々なネットワークの構造や最適化アルゴリズムを掴みました。

実際にコードも書いてみました。Pythonが得意(Pythonしかできない)のでPython Onlyで書けるChainer、最近だとTensorFlowを使ってみました。

 

けれどもわからないことはまだまだあるし、最新論文は次々出てくるし、全然追いつけません。それと半年ぐらい勉強していて課題に感じたのが、

  • 論文を読むために必要な知識が足りない
  • 日本語、入門者向けの情報が少ない

の2つ。論文を読むために論文を読むマトリョーシカ状態と語学力、知識量の低さが組み合わさって大きな壁になっています。

 

というわけでブログの目的は以下のとおり

  • deeplearingに関する知識をoutputをすることでより理解を深める。
  • これからdeeplearingを勉強する人の手助けになる。
  • deeplearingに詳しい人から意見をもらう。

 

では、具体的にどんな内容にするかというと、

  • 主に海外(英文)の論文紹介します。
  • Pythonベースのフレームワークで実装します。
  • その他、本や学会、最新ニュースを報告します。

 

できれば週1回、最低でも月2回ぐらいは投稿したいと思います。

それでは、よろしくお願いします。