機械学習環境を自宅のWSに構築しました。

昨年、苦しみながら機械学習環境を構築したものの、端末が変わって全て0からスタートに。
次もこんな事があると嫌なので、一応メモを残しておきます。

最後に、画像認識の簡単な例題をやってみました。
前半はメモなので読み飛ばしてください。

AnacondaとPycharmをインストールします。

Environments作成
Anaconda Navigatorを起動して、新しくEnvironments(環境)を作成します。
環境は、RかPythonで作成することができますが、今回はPythonの3.7で作ることにします。
209.12.29 時点では、Python3.8はTensorflowに対応していないためです。

pycharm設定


Pycharmにて、
File>Setting>Project Interpreter で、Anacondaで作った環境を適用。
python.exeの場所を指定します。

作成したプロジェクトファイルの直下にでも、適当に名前を付けた.pyファイルを作成します。
このファイルに、適当なpythonのコードを入力して実行します。

print("Hello world!")

などと入力、実行(右上の三角ボタン)して、下のpythonコンソールに

Hello World

と出ればok。pythonの動作確認は終了。


TensorFlow+Kerasインストール

anaconda設定

次に、TensorflowとKerasを入れます。
Googleが提供している機械学習用ライブラリです。

Anaconda Nabigatorにて、
not installedのリストからtensorflowとkerasを選択してインストールします。

このインストールのタイミングで、下記のライブラリは一緒に入れておくと何かと便利です。

pillow
NumPy
datetime
scipy
matplotlib
pandas

これで一通りの環境構築が終わり。
KerasとTensorflowの動作確認をします。

動作検証


↑Kerasで稀勢の里と橋本環奈を見分けられるのかやってみた、というQiita投稿を真似してみます。
画像を3種類に分類する、というもの。

全く同じだと面白くないので、

橋本環奈石原さとみと、
習近平見分けられるのか?


検証しました。

■橋本環奈の教師データ
スクリーンショット (28)

■石原さとみの教師データ
スクリーンショット (30)

■習近平の教師データ
スクリーンショット (29)

教師データは適当に集めた各20枚の画像。
テストデータ各2枚を分類できるか試してみます。

画像収集はもちろんグーグル検索から手作業で。スクレイピング?なにそれおいしいの?

美人の画像を集めるのは楽しいですが、習近平の画像を20枚ダウンロードしてくるのは苦痛でした


    if dir == "kinpei":    # 習近平はラベル0
        label = 0
    elif dir == "hashimoto":   # 橋本環奈はラベル1
        label = 1
    elif dir == "satomi":      # 石原さとみはラベル2
        label = 2



結果

labelとresultが一致していれば正解です。

data/test/hashimoto/04bb217706797ca21b7e92fd928792e7-1.jpg
label: 1 result: 0
data/test/hashimoto/7n7jAzQgCy-kI5K3HI5bA7qo4WCvbNcLvq_7ai1CakY.jpg
label: 1 result: 1

data/test/kinpei/BN-KB739_xi1_P_20150830213726.jpg
label: 0 result: 0
data/test/kinpei/Xi_Jinping_2019.jpg
label: 0 result: 2

data/test/satomi/metro190180724_059_head.jpg
label: 2 result: 2
data/test/satomi/石原さとみ.jpg
label: 2 result: 2

seikai:  66.66666666666666 %

石原さとみの画像は完璧に見分けられるようです。
が、ときたま習近平を石原さとみに見間違えています。

なんでそうなるのか。

Xi_Jinping_2019

AIにはこれが石原さとみに見えるようです。
確かに、ちょっと可愛い
石原さとみに見えなくも…

とりあえず環境構築はできたので
今日はこのへんで。


■メモ
Pythonなどを使う場合、エディタにjupyter notebookを使う方が多いようです(簡単にできるから?)。
私は最初に教わったのがPycharmだったのでそのまま使い続けていますが、エディタは好みで選べばよいと思います。

最近は、わざわざエディタでコーディングしなくてもPredictionOneやらGoogle Colaboratoryやらのツールが出てきたり、GUI操作だけで学習・テストのできるツールが増えています。

私も機械学習のアルゴリズムを考えたいというより、そのへんに落ちてるものを組み合わせて、予測器として使いたい程度なので、この環境でいつまでコーディングやるかは考え物です。