Runwayで物体認識

RunwayはPCにインストールすることにより、無料でAIを体験できるアプリケーションである。物体認識(COCO-SSD、DenseCap)では、写真を取り込むと、写り込んだ物の名前を判定する。写真(上)の例では、"car" と "motorcycle" が検出された。

COCO-SSD

DenseCap

FastStyleTransfer

p5jsで機械学習

ml5jsはp5jsというwebフレームワーク上で、tensorflow.jsを使えるようにしている。p5jsによる時計などのサンプルコードのシリーズを見てみると、index.htmlにおいては、一連の関連scriptへの引用が記載されているだけで、bodyの中に何も記載されていない。必要なプログラムは全てsketch.jsの中に集約されている。プログラムを変える場合、書き換えるのはsketch.jsの中身だけになる。

    <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.9.0/p5.min.js">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.9.0/addons/p5.dom.min.js">
    <script src="https://unpkg.com/ml5@0.1.1/dist/ml5.min.js">
    <script src="sketch.js">

sketch.jsの中身を見てみると、いくつかのfunctionが並列されている。それぞれのfunctionはjavascriptらしい記述は無く、p5js、ml5jsのフレームワークを扱うための書式でほぼ満たされている。

機械学習の流れ:clf.ft → clf.score

機械学習の流れについて。

import numpy as np

from sklearn.datasets import load_breast_cancer
data = load_breast_cancer()

X = data.data
y = data.target

from sklearn import linear_model
clf = linear_model.LogisticRegression()

データセットをインポートする。データセットはdata部分とtarget部分に別れている。識別器を選択する。

from sklearn.model_selection import ShuffleSplit
ss = ShuffleSplit(n_splits=1, 
                  train_size=0.5, 
                  test_size=0.5)

train_index, test_index = next(ss.split(X, y))

データセットをtrain用とtest用にシャフルする。

clf.fit(X[train_index], y[train_index]);
clf.score(X[test_index], y[test_index])

train用データセットで識別器に学習させる(clf.fit)。test用データセットで学習結果を評価する(clf.score)。