「AIってどこでダウンロードできるの？」って方への画像認識入門以前 chapter 1

## 概要
最近テレビのニュースやネット記事でやたらAIという言葉を見かけるが、プログラミングとか全然経験ないし、
試しにいろんな記事読んでみたけど何言ってるか全然わからん、でも試してみたい。

なんて人のために、この記事を書きました。
何回かに分けて投稿したいと思います。

この記事ではとにかく実際に動かすことに重点を置いています。
なので理論的な話はほとんどしません。
理論的な話が気になった方は、他の方々が素晴らしい記事を書いてくれていますので、そちらを閲覧ください。


## AIとか人工知能とか、機械学習とか
まず始めにAI, 人工知能について少しだけお話させてください。

今日AI, 人工知能と呼ばれているものは機械学習と呼ばれる技術あるいは理論に過ぎません。

AI, 人工知能を実現する手法の一つが機械学習です。

その機械学習の分野でも近年非常に注目度が増しているのがDeep Learningと呼ばれる手法あるいはパラダイムになります。

特に画像認識の分野では、もはやDeep Learningなしには語れません。

この記事でも画像認識を取り扱います。


## ちょっと自己紹介

東京都千代田区のベンチャー企業で機械学習を用いた研究開発を行っています。
とは言うものの、プログラミング歴1年ほど、機械学習歴についても1年ほどの初心者です。
Pythonぐらしかロクに読み書きできない...。

私自身、去年の今頃人工知能に興味を持ち始め、機械学習を学び始めました。
当時様々な記事を読んでは、もっと初心者に優しいものはないのかと常々思っていました。

初学者への入門としては

[Coursera Machine Learning](https://www.coursera.org/learn/machine-learning)　で機械学習全般について学んだ後
[ゼロから作るDeep Learning](https://www.oreilly.co.jp/books/9784873117584/) でDeep Learningについて学ぶと良いかと思います。

これらがお薦めですし、私自身Coursera Machine Learningで機械学習を学びはじめ、約2ヶ月で修了できましたので、英語をそこそこ読めるならば、これほど初学者にありがたい教材はないと思います。

またこれらを入門と位置づけると、この記事は入門以前になります。


## 結局何をやるのか？

「画像に写っているのは何か」をコンピューターに学ばせます。つまり画像認識です。

はじめは有名なMNISTのデータセットを利用して、実際に学習させてみます。
その後、自分の手持ち画像で画像認識に挑戦します。




## 対象読者

この記事では以下のような読者レベルを想定しています。

・何らかのプログラミング言語をちょっとでも学んだことがある
  
・コマンドプロンプト、あるいはターミナルを使った経験がある

コマンド操作については、適宜簡単な解説をはさみますが、基本は
ディレクトリ移動のcd
現在いるディレクトリのファイルやフォルダを表示するdir(Ubuntuではls)
コマンドを使える、あるいは覚えていただければ大丈夫です。



## chapter 予定

- chapter. 1
  今回の記事。環境構築まで行います。既にAnaconda環境のPythonがある方は飛ばし読みで大丈夫です。
  Chainerまで導入済みの方は読み飛ばしてくださっても問題ありません。
  というか、そのレベルの環境がすでにある方にとっては、あまりこの記事読んでも知ってることしか書かれてないかも。


- chapter. 2
　Chainerのサンプルプログラムを利用して、実際に画像認識します。
 9/30までには公開予定です。
 
 - chapter. 3
  実際に自分の手持ちの画像を使う方法などを解説します。

- chapter. 4
  未定。


## 環境構築

ここでは筆者の環境Windowsで話を進めていきます。Ubuntuの場合については時々コメントをはさみますが、
Macについては環境がないため自己補完でお願いします。

さて、
プログラミング言語はPythonを用いますが、なにかと便利なのでPythonの導入には
Anacondaを利用します。Anacondaはインストール時にPythonだけでなく様々なライブラリを一緒にインストールしてくれます。

以下のサイトより、自分の環境にあったものをダウンロードし、インストールしてください。

[Download Anaconda](https://www.anaconda.com/download/)


インストールの仕方については以下の記事が非常に参考になります。
[Anaconda で Python 環境をインストールする](http://qiita.com/t2y/items/2a3eb58103e85d8064b6)


インストールが完了しましたら、

Windowsではコマンドプロンプト、Ubuntuではターミナル(端末)を起動して

    Conda -V
と入力してみてください。

うまくインストールされ、パスが通っていれば、下記のようにインストールしたAnacondaのバージョンが表示されるはずです。

    C:\Users\Username>conda -V
    conda 4.3.8


## Pythonについて

コマンドプロンプトでpythonと打つと以下のような画面になるかと思います。

    C:\Users\Username>python
    Python 3.6.0 |Anaconda 4.3.0 (64-bit)| (default, Dec 23 2016, 11:57:41) [MSC v.1
    900 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>>

この画面はインタラクティブモードと呼ばれ、ここで数値計算をしたり関数を試せたりします。
例えば

    >>> 1+1
    2
    >>> print("Hello World!")
    Hello World!
    >>>

という様に実際にソース(プログラム)を書くまでもない計算をさせたり、ライブラリをインポートして試してみたり。というわけで試しに既にインストールされているライブラリNumpyをインポートしてみましょう。

以下のように import <ライブラリ名>でインポートできます。

    >>> import numpy
    >>>

Windowsで環境でインポートできない場合は以下記事が参考になるかもしれません。
[anacondaにおけるnumpyやscipyのインポートエラーについて](http://qiita.com/lmond/items/20395b8ff558cd39dabd)


## Chainerについて

ChainerはTensorFlowやKeras, Caffeに並ぶ機械学習の分野でよく利用されるライブラリの一つです。
コマンドプロンプトで以下のコマンドを入力すればインストールできます。

	$ pip install chainer

また以下のGitHubのChainerページからサンプルプログラムをダウンロードしてください。

[GitHub Chainer](https://github.com/chainer/chainer)

緑の[clone or download]ボタンをクリックして、zipファイル形式でダウンロードして、
解凍してください。

gitコマンドが使える場合は git cloneでもOKです。

解答したフォルダはコマンドプロンプトで移動しやすい場所、
ドキュメントフォルダの中などにおくと良いでしょう。


## 今回はここまでです。

次回はダウンロードしたサンプルプログラムを利用して、画像認識に挑戦したいと思います。

また、何か質問やここ違うんじゃね？ってとこがあればコメントで突っ込んでいただけると励みになります。

では、お疲れ様でした。